On Thu, Apr 12, 2018 at 7:57 AM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote: > If you run "partprobe" after you resize in your second example, is the > change visible in "parted"? No, partprobe does not help: 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 root@lumd1:~# partprobe 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 > > On Wed, Apr 11, 2018 at 11:01 PM, Alex Gorbachev <ag@xxxxxxxxxxxxxxxxxxx> wrote: >> 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 > > > > -- > Jason _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com