xfs
[Top] [All Lists]

Re: Disable fiemap lead to Data In-balance between OSD

To: Haomai Wang <haomai@xxxxxxxx>, "sjust@xxxxxxxxxx" <sjust@xxxxxxxxxx>
Subject: Re: Disable fiemap lead to Data In-balance between OSD
From: Ning Yao <zay11022@xxxxxxxxx>
Date: Fri, 14 Oct 2016 01:06:33 +0800
Cc: Jeff Liu <jeff.liu@xxxxxxxxxxxx>, ceph-devel <ceph-devel@xxxxxxxxxxxxxxx>, "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=iHDMXhqr587soHeKNNFyntWtiR9p3bH0PiezgMbTCkY=; b=WrqE5En6J9tTnC5hA5kgOrRrq4rLl837SNShq0+UyXAecOAlrdPiPoe8nLfSXDq/GT 5NhkF4JgQ/u+M2+jCYO5u4IVnDlObZ1oabPL8MaCgxK+Kf8G4vGIrzzQ7+7dgZG/9BQP FlQmTHUcjVDDcZaN7mkTvM+nx5kSM43xwZugXDb8MkA7iwWRasdnD7NIykwWMxXvZLJo mcc7xGO3SFtn5XqaUCOHsYBx8Y+Bwe7HJfxPDGsPiU37HT9vm4v7oWgTtZrIp0cngQS8 fcuVrGYVvdTSOQjvB7MevF5f9JQYwCit6SEaqTl/OdDdWz5mu5VNonM6JTwLPTeHQ57G XdfA==
In-reply-to: <CACJqLyY5i5JKjgEyM-6kbZq9U1haO=U6KCThQe31N1pO126=Yw@xxxxxxxxxxxxxx>
References: <CALZt5jzUheF7C4OuYJ2hDwjserLX3wXgtDTZQM6Nk+C1k1QhTw@xxxxxxxxxxxxxx> <CACJqLyZpT=dF4LeBOpNpuCAvUsasFN-63r8BGMT5XDvTS7K4Mg@xxxxxxxxxxxxxx> <CACJqLyZnZiJkQmRYRPk23qa4KO+FHeeNFpsq9cD9fYm67aEwfw@xxxxxxxxxxxxxx> <CALZt5jwaVhpjdw22avC4kNwQ44VFtAQxCuhCqSYsmRK4SMF8Ow@xxxxxxxxxxxxxx> <57EDDA9B.5030807@xxxxxxxxxxxx> <CACJqLyY5i5JKjgEyM-6kbZq9U1haO=U6KCThQe31N1pO126=Yw@xxxxxxxxxxxxxx>
Thanks to Haomai's suggested solutions. What about this:
https://github.com/mslovy/ceph/commit/539b7998fea16f8af3f6cbbbd243f6996f292acc
https://github.com/mslovy/ceph/commit/33240080f3324a70a288c79a77846688c1f29db5

As Haomai described, fiemap is default disabled in previous version
and may not use in newest version.
So is it really needed or should we backport the this fix?  any suggestions?

Ping Sam.

Regards
Ning Yao


2016-10-12 23:02 GMT+08:00 Haomai Wang <haomai@xxxxxxxx>:
> thanks to Ning Yao. We have found ceph's incorrect usage in xfs fiemap.
>
> Actually this reminds me when I'm looking for unaligned fiemap lookup,
> we also observe this case. Refer to
> http://www.spinics.net/lists/xfs/msg38001.html, if fiemap extents
> larger than 1364, single fiemap call will only return 1364. We need to
> check the last fiemap extent with FIEMAP_EXTENT_LAST flag. If not, we
> need to continue to call fiemap.
>
> Fortunately 1364 extents requires at least 8MB object but rbd's
> default object size is 4MB. So if we don't change object size, nothing
> happen. But I remember openstack glance's default object size is 64MB.
> So it maybe problem for that case. Since I often advertise rbd users
> to turn fiemap on, I hope no one don't hit this bug....
>
> And one way is fix fiemap usage in GenericFilesystemBackend, another
> is totally abandon fiemap in hammer. Or we don't need to do anything
> since fiemap is disable default?
>
> Anyway, thanks Ning Yao again!
>
>
> On Fri, Sep 30, 2016 at 11:23 AM, Jeff Liu <jeff.liu@xxxxxxxxxxxx> wrote:
>> Could you please show your test cases about the fiemap issue against XFS?
>> I'd like to dig into it if that is still existing in upstream code base.
>>
>> On 2016å09æ29æ 21:49, Ning Yao wrote:
>>
>> XFS has #fiemap extent intervals limitted in kernelï so if we do not
>> use seek_data, seek_hole. It will lead to getting a wrong fiemap
>> (absence of some extents)  from a large object. It is actually not
>> security before Jewel with enabling filestore_seek_data_hole.
>> Regards
>> Ning Yao
>>
>>
>> 2016-09-29 10:27 GMT+08:00 Haomai Wang <haomai@xxxxxxxx>:
>>
>>> On Thu, Sep 29, 2016 at 10:25 AM, Haomai Wang <haomai@xxxxxxxx> wrote:
>>>> On Thu, Sep 29, 2016 at 12:26 AM, Ning Yao <zay11022@xxxxxxxxx> wrote:
>>>>> Hi,
>>>>>
>>>>> As lots of fiemap issues in XFS, fiemap is default disabled now,
>>>>> especially in Hammer, before seek_data, seek_hole is added.
>>>>>
>>>>> But disabling fiemap feature will cause a small sparse object become a
>>>>> large full object during PushOps, which may lead to notably data
>>>>> in-balance between OSD, especially on the new added OSD  during data
>>>>> rebalance. With those full objects, some OSDs may simultaneously
>>>>> becomes full.
>>>> Until now, I don't know existing problem with fiemap enabled in
>>>> hammer. Although we find it maybe problem when clone to a existing
>>>> overlap data range, but it won't exists in real case.
>>> Hmm, I can't guarantee this... I only means if you want to have sparse
>>> object, you can enable this. ....
>>>
>>>>> Furthermore, currently, it is impossible to make the full objects
>>>>> sparse again if we enable the fiemap feature in the future.
>>>>>
>>>>> So I think if any solutions to make a full object back to a sparse
>>>>> object again?ãOne of the idea is to check whether the content in the
>>>>> object contains consecutive zero and punch zeros for those object
>>>>> during deep-scrub,  is that possible and reasonable?
>>>> Obviously it's a complex thing more than we get.
>>>>
>>>>>
>>>>> Regards
>>>>> Ning Yao
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>> --
>> Cheers,
>>
>> Jeff Liu
>>

<Prev in Thread] Current Thread [Next in Thread>