[libvirt] [PATCH] activate and refresh logical volumes while refreshing logical pool

When using remote attached disks like srp/iser its useful to auto activate volumes list and refresh its metadata because volume may be created outside of libvirt and on different node. Vasiliy Tolstov (1): activate and refresh logical volumes while refreshing logical pool src/storage/storage_backend_logical.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) -- 2.9.3

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru> --- src/storage/storage_backend_logical.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 67f70e551729..0c34476de38e 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -811,6 +811,25 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED, virWaitForDevices(); + cmd = virCommandNewArgList("vgchange", + "-aay", + pool->def->source.name, + NULL); + if (virCommandRun(cmd, NULL) < 0) + goto cleanup; + + virCommandFree(cmd); + + cmd = virCommandNewArgList("vgchange", + "--refresh", + pool->def->source.name, + NULL); + if (virCommandRun(cmd, NULL) < 0) + goto cleanup; + + virCommandFree(cmd); + + /* Get list of all logical volumes */ if (virStorageBackendLogicalFindLVs(pool, NULL) < 0) goto cleanup; -- 2.9.3

On Tue, Aug 01, 2017 at 04:26:07PM +0300, Vasiliy Tolstov wrote:
Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru> --- src/storage/storage_backend_logical.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 67f70e551729..0c34476de38e 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -811,6 +811,25 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
virWaitForDevices();
+ cmd = virCommandNewArgList("vgchange", + "-aay", + pool->def->source.name, + NULL); + if (virCommandRun(cmd, NULL) < 0) + goto cleanup; +
NACK, pool refresh should make libvirt update its internal state to match the on-disk state. Activating the volume should be done by whatever software created it. Jan
+ virCommandFree(cmd); +

2017-08-01 17:36 GMT+03:00 Ján Tomko <jtomko@redhat.com>:
On Tue, Aug 01, 2017 at 04:26:07PM +0300, Vasiliy Tolstov wrote:
Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru> --- src/storage/storage_backend_logical.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 67f70e551729..0c34476de38e 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -811,6 +811,25 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
virWaitForDevices();
+ cmd = virCommandNewArgList("vgchange", + "-aay", + pool->def->source.name, + NULL); + if (virCommandRun(cmd, NULL) < 0) + goto cleanup; +
NACK,
pool refresh should make libvirt update its internal state to match the on-disk state. Activating the volume should be done by whatever software created it.
Ok, why libvirt in vol-list does not display inactive lv? -- Vasiliy Tolstov, e-mail: v.tolstov@selfip.ru
participants (3)
-
Ján Tomko
-
Peter Krempa
-
Vasiliy Tolstov