Re: [RFC] Live resize of backing device

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

 



On Fri, 3 Feb 2023, Coly Li wrote:
> > 2023年1月27日 20:44,Andrea Tomassetti <andrea.tomassetti-opensource@xxxxxxxx> 写道:
> > From 83f490ec8e81c840bdaf69e66021d661751975f2 Mon Sep 17 00:00:00 2001
> > From: Andrea Tomassetti <andrea.tomassetti-opensource@xxxxxxxx>
> > Date: Thu, 8 Sep 2022 09:47:55 +0200
> > Subject: [PATCH v2] bcache: Add support for live resize of backing devices
> > 
> > Signed-off-by: Andrea Tomassetti <andrea.tomassetti-opensource@xxxxxxxx>
> > ---
> > Hi Coly,
> > this is the second version of the patch. As you correctly pointed out,
> > I implemented roll-back functionalities in case of error.
> > I'm testing this funcionality using QEMU/KVM vm via libvirt.
> > Here the steps:
> >  1. make-bcache --writeback -B /dev/vdb -C /dev/vdc
> >  2. mkfs.xfs /dev/bcache0
> >  3. mount /dev/bcache0 /mnt
> >  3. dd if=/dev/random of=/mnt/random0 bs=1M count=1000
> >  4. md5sum /mnt/random0 | tee /mnt/random0.md5
> >  5. [HOST] virsh blockresize <vm-name> --path <disk-path> --size <new-size>
> >  6. xfs_growfs /dev/bcache0
> >  6. Repeat steps 3 and 4 with a different file name (e.g. random1.md5)
> >  7. umount/reboot/remount and check that the md5 hashes are correct with
> >        md5sum -c /mnt/random?.md5
> 
> [snipped]
> 
> Hi Andrea,
> 
> For the above step 5, could you provide a specific command line for me to reproduce?
> 
> I tried to resize the disk by virsh from 400G to 800G, the disk resize 
> doesn’t happen online, I have to stop and restart the virtual machine 
> and see the resized disk.

Coly, 

The `virsh blockresize` command only informs the vm that the size has 
changed. You will need to resize the disk itself using `lvresize` or 
whatever your VM's backing device is. If you're backing device for the 
virtual machine is a file, then you could use `truncate -s <size> 
/file/path` before issuing `virsh blockresize`.

Another possibility: are you using virtio-blk as shown in his example, or 
a different virtual driver like virtio-scsi?

If the VM doesn't detect it you might need to do this if its a 
virtio-scsi disk on the inside:

	for i in /sys/class/scsi_host/*/scan; do echo - - - > $i; done

If you're using virtio-blk (vda) then it should be immediate.  I don't 
think IDE will work at all, and not sure about nvme.

--
Eric Wheeler

	 
> Thanks.
> 
> Coly Li
> 
> 

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux