Ok I got your point seems logic, but why is this possible with LVM for example?

You can easily do this with LVM without un-mounting the device.

Cheers.


On Thu, Jul 19, 2012 at 5:15 PM, Wido den Hollander <w...@widodh.nl> wrote:
> Hi,
>
>
> On 19-07-12 16:55, Sébastien Han wrote:
>>
>> Hi Cephers!
>>
>> I'm working with rbd mapping. I figured out that the block device size
>> of the rbd device is not update while the device is mounted. Here my
>> tests:
>>
>
> iirc this is not something RBD specific, but since the device is in use it
> can't be re-read by the kernel.
>
> So when you unmount it the kernel can re-read the header and resize the
> device.
>
> Wido
>
>> 1. Pick up a device and check his size
>>
>> # rbd ls
>> size
>>
>> # rbd info test
>> rbd image 'test':
>> size 10000 MB in 2500 objects
>> order 22 (4096 KB objects)
>> block_name_prefix: rb.0.6
>> parent:  (pool -1)
>>
>> 2. Map the device
>>
>> # rbd map --secret /etc/ceph/secret test
>> # rbd showmapped
>> id pool image snap device
>> 1 rbd test - /dev/rbd1
>>
>> 3. Put a fs on it and check the block device size
>>
>> # mkfs.ext4 /dev/rdb1
>> ...
>> ...
>>
>> # fdisk -l /dev/rbd1
>>
>> Disk /dev/rbd1: 10.5 GB, 10485760000 bytes
>>
>> 4. Mount it
>>
>> # mount /dev/rbd1 /mnt
>> # df -h
>> /dev/rbd1                   9.8G  277M  9.0G   3% /mnt
>>
>>
>> 5. Change the image size
>>
>> # rbd resize --size 11000 test
>> Resizing image: 100% complete...done.
>>
>> # rbd info test
>> rbd image 'test':
>> size 11000 MB in 2750 objects
>> order 22 (4096 KB objects)
>> block_name_prefix: rb.0.6
>> parent:  (pool -1)
>>
>> At this point of time, if you perform the fdisk -l /dev/rbd1, the
>> block device size will remain the same.
>>
>> 6. Unmount the device:
>>
>> # umount /media
>>
>> # fdisk -l /dev/rbd1
>> Disk /dev/rbd1: 11.5 GB, 11534336000 bytes
>>
>> Unmounting the directory did update the block device size.
>>
>> Of course you can do something really fast like:
>>
>> # umount /media && mount /dev/rbd1 /media
>>
>> That will work, it's a valid solution as long as there is no opened
>> file. I won't use this trick in production...
>>
>> I also tried to "mount -o remount" and it didn't work.
>>
>> 7. Resize the fs (this can be performed while the fs is mounted):
>>
>> # e2fsck -f /dev/rbd1
>> e2fsck 1.42 (29-Nov-2011)
>> Pass 1: Checking inodes, blocks, and sizes
>> Pass 2: Checking directory structure
>> Pass 3: Checking directory connectivity
>> Pass 4: Checking reference counts
>> Pass 5: Checking group summary information
>> /dev/rbd1: 11/644640 files (0.0% non-contiguous), 77173/2560000 blocks
>>
>> # resize2fs /dev/rbd1
>> resize2fs 1.42 (29-Nov-2011)
>> Resizing the filesystem on /dev/rbd1 to 2816000 (4k) blocks.
>> The filesystem on /dev/rbd1 is now 2816000 blocks long.
>>
>>
>> Did I miss something?
>> Is this feature coming?
>>
>> Thank you in advance :)
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majord...@vger.kernel.org
>> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to