Talked to lyarwood and sean-k-mooney at #openstack-nova [0] and did some tests.
In summary, n-cpu is able to extend an attached NFS volume by itself, but c-vol is preventing this from happening when it tries to perform `qemu-img resize`.
The should be fixed in 2 patches:
1. Add a condition to `image_utils.resize_image` [1], so c-vol will call `qemu-img resize`only when the volume is detached.
2. Implement `LibvirtNFSVolumeDriver.extend_volume` [2], so it won't raise `
NotImplementedError` [3].
On the n-cpu side, `LibvirtDriver.extend_volume` [4] will call `LibvirtNFSVolumeDriver.extend_volume` [5] implemented in step 2, and then `LibvirtDriver._resize_attached_volume` [6] will call `BlockDevice.resize`, which in turn calls `blockResize` [7] method that will perform the actual resize operation.
Talked to lyarwood and sean-k-mooney at #openstack-nova [0] and did some tests.
In summary, n-cpu is able to extend an attached NFS volume by itself, but c-vol is preventing this from happening when it tries to perform `qemu-img resize`.
The should be fixed in 2 patches:
1. Add a condition to `image_ utils.resize_ image` [1], so c-vol will call `qemu-img resize`only when the volume is detached. meDriver. extend_ volume` [2], so it won't raise ` rror` [3].
2. Implement `LibvirtNFSVolu
NotImplementedE
On the n-cpu side, `LibvirtDriver. extend_ volume` [4] will call `LibvirtNFSVolu meDriver. extend_ volume` [5] implemented in step 2, and then `LibvirtDriver. _resize_ attached_ volume` [6] will call `BlockDevice. resize` , which in turn calls `blockResize` [7] method that will perform the actual resize operation.
[0] http:// eavesdrop. openstack. org/irclogs/ %23openstack- nova/%23opensta ck-nova. 2020-07- 01.log. html#t2020- 07-01T13: 08:24 /github. com/openstack/ cinder/ blob/master/ cinder/ image/image_ utils.py# L408 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ volume/ nfs.py# L20 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ volume/ volume. py#L153 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ driver. py#L2105 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ driver. py#L1665 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ driver. py#L2053 /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ guest.py# L819
[1] https:/
[2] https:/
[3] https:/
[4] https:/
[5] https:/
[6] https:/
[7] https:/