Re: rbd-nbd not resizing even after kernel tweaks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 11, 2018 at 2:13 PM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote:
> I've tested the patch on both 4.14.0 and 4.16.0 and it appears to
> function correctly for me. parted can see the newly added free-space
> after resizing the RBD image and our stress tests once again pass
> successfully. Do you have any additional details on the issues you are
> seeing?

I recompiled again with 4.14-24 and tested, the resize shows up OK
when the filesystem is not mounted.  dmesg shows also the "detected
capacity change" message.  However, if I create a filesystem and mount
it, the capacity change is no longer detected.  Steps as follows:

root@lumd1:~# rbd create -s 1024 --image-format 2 matte/n4
root@lumd1:~# rbd-nbd map matte/n4
/dev/nbd2
root@lumd1:~# mkfs.xfs /dev/nbd2
meta-data=/dev/nbd2              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@lumd1:~# parted /dev/nbd2 p
Model: Unknown (unknown)
Disk /dev/nbd2: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  1074MB  1074MB  xfs

root@lumd1:~# rbd resize --pool matte --image n4 --size 2048
Resizing image: 100% complete...done.
root@lumd1:~# parted /dev/nbd2 p
Model: Unknown (unknown)
Disk /dev/nbd2: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  2147MB  2147MB  xfs

-- All is well so far, now let's mount the fs

root@lumd1:~# mount /dev/nbd2 /mnt
root@lumd1:~# rbd resize --pool matte --image n4 --size 3072
Resizing image: 100% complete...done.
root@lumd1:~# parted /dev/nbd2 p
Model: Unknown (unknown)
Disk /dev/nbd2: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  2147MB  2147MB  xfs

-- Now the change is not detected


>
> On Wed, Apr 11, 2018 at 12:06 PM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote:
>> I'll give it a try locally and see if I can figure it out. Note that
>> this commit [1] also dropped the call to "bd_set_size" within
>> "nbd_size_update", which seems suspicious to me at initial glance.
>>
>> [1] https://github.com/torvalds/linux/commit/29eaadc0364943b6352e8994158febcb699c9f9b#diff-bc9273bcb259fef182ae607a1d06a142L180
>>
>> On Wed, Apr 11, 2018 at 11:09 AM, Alex Gorbachev <ag@xxxxxxxxxxxxxxxxxxx> wrote:
>>>> On Wed, Apr 11, 2018 at 10:27 AM, Alex Gorbachev <ag@xxxxxxxxxxxxxxxxxxx> wrote:
>>>>> On Wed, Apr 11, 2018 at 2:43 AM, Mykola Golub <to.my.trociny@xxxxxxxxx> wrote:
>>>>>> On Tue, Apr 10, 2018 at 11:14:58PM -0400, Alex Gorbachev wrote:
>>>>>>
>>>>>>> So Josef fixed the one issue that enables e.g. lsblk and sysfs size to
>>>>>>> reflect the correct siz on change.  However, partptobe and parted
>>>>>>> still do not detect the change, complete unmap and remap of rbd-nbd
>>>>>>> device and remount of the filesystem is required.
>>>>>>
>>>>>> Does your rbd-nbd include this fix [1], targeted for v12.2.3?
>>>>>>
>>>>>> [1] http://tracker.ceph.com/issues/22172
>>>>>
>>>>> It should, the rbd-nbd version is 12.2.4
>>>>>
>>>>> root@lumd1:~# rbd-nbd -v
>>>>> ceph version 12.2.4 (52085d5249a80c5f5121a76d6288429f35e4e77b) luminous (stable)
>>>>> _______________________________________________
>>>
>>> On Wed, Apr 11, 2018 at 10:39 AM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote:
>>>> Do you have a preliminary patch that we can test against?
>>>> Jason
>>>
>>> Hi Jason,
>>>
>>> This is the one Josef did, which fixes detection of the new size via
>>> sysfs (lsblk eetc.), but parted still requires complete unmapping and
>>> remapping of the NBD device to detect the change.
>>>
>>> I built a kernel with this patch based on 4.14.24, and also tested
>>> with the latest mainline 4.16.1 - same behavior.
>>>
>>> cc: stable@xxxxxxxxxxxxxxx
>>> Fixes: 639812a ("nbd: don't set the device size until we're connected")
>>> Signed-off-by: Josef Bacik <jbacik@xxxxxx>
>>> ---
>>>  drivers/block/nbd.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
>>> index 86258b00a1d4..7106b98a35fb 100644
>>> --- a/drivers/block/nbd.c
>>> +++ b/drivers/block/nbd.c
>>> @@ -243,6 +243,8 @@ static void nbd_size_set(struct nbd_device *nbd,
>>> loff_t blocksize,
>>>         struct nbd_config *config = nbd->config;
>>>         config->blksize = blocksize;
>>>         config->bytesize = blocksize * nr_blocks;
>>> +       if (nbd->task_recv != NULL)
>>> +               nbd_size_update(nbd);
>>>  }
>>>
>>>  static void nbd_complete_rq(struct request *req)
>>>
>>> Regards,
>>> Alex
>>
>>
>>
>> --
>> Jason
>
>
>
> --
> Jason
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux