La extensión de volumen lógico se utiliza para proporcionar almacenamiento adicional y facilitar las operaciones continuas de la máquina virtual. Este artículo explicará el proceso de extensión de volumen lógico de tipo Qcow2 con asignación de provisión delgada.
Aquí está el proceso de extensión de LV:
1. Cuando la imagen del disco virtual se almacena en el almacenamiento con formato Qcow2, Qemu proporciona una asignación lógica entre los bloques en la VM y los bloques en el disco.
2. Si hay alguna actividad de escritura de VM, Qemu escribe acceso al volumen lógico y luego crece la imagen qcow2.
3. Qemu sigue informando los usos a vdsm. Y vdsm tiene un umbral predeterminado (volume_utilization_percent &volume_utilization_chunk_mb) para comparar la asignación de almacenamiento local con el uso de almacenamiento real. Cuando el espacio libre <(100% - volume_utilization_percent%) * volume_utilization_chunk_mb, significa que ha excedido el límite del umbral.
294 # Together with volume_utilization_chunk_mb, set the minimal free 295 # space before a thin provisioned block volume is extended. Use lower 296 # values to extend earlier. 297 # volume_utilization_percent = 50 298 299 # Size of extension chunk in megabytes, and together with 300 # volume_utilization_percent, set the free space limit. Use higher 301 # values to extend in bigger chunks. 302 # volume_utilization_chunk_mb = 1024
4. qemu se pone en pausa y vdsm emite una solicitud de extensión y escribe un mensaje en SPM a través del buzón de almacenamiento para extender LV y sigue monitoreando la respuesta de SPM en el correo entrante cada 2 segundos. Los registros relacionados se pueden encontrar en vdsm.log de la siguiente manera:
2020-09-11 10:11:20,551-0700 INFO (periodic/187) [virt.vm] (vmId='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') Requesting extension for volume 1e4f0bee-1c3b-4f4d-9d4a-bafed6cd773f on domain a1ce94f1-8001-48f6-ade2-cc1ac11660cb (apparent: 42949672960, capacity: 2197949513728, allocated: 42637918208, physical: 42949672960 threshold_state: exceeded) (vm:1277) 2020-09-11 10:11:20,551-0700 INFO (periodic/187) [vdsm.api] START sendExtendMsg(spUUID='2dc32f8e-5b7a-4183-974f-aa96c8eb5bc2', volDict={'newSize': 44023414784, 'domainID': 'a1ce94f1-8001-48f6-ade2-cc1ac11660cb', 'name': 'xxx', 'poolID': '2dc32f8e-5b7a-4183-974f-aa96c8eb5bc2', 'clock':, 'internal': False, 'volumeID': '1e4f0bee-1c3b-4f4d-9d4a-bafed6cd773f', 'imageID': 'd1b292cb-2518-4c89-9730-6b56bae10c90'}, newSize=44023414784, callbackFunc= >) from=internal, task_id=4f42cdc3-a2a7-4b91-93d4-4eab80e57a7f (api:48) 2020-09-11 10:11:20,564-0700 INFO (mailbox-hsm) [storage.MailBox.HsmMailMonitor] HSM_MailMonitor sending mail to SPM - ['/usr/bin/dd', 'of=/rhev/data-center/2dc32f8e-5b7a-4183-974f-aa96c8eb5bc2/mastersd/dom_md/inbox', 'iflag=fullblock', 'oflag=direct', 'conv=notrunc', 'bs=4096', 'count=1', 'seek=2'] (mailbox:380) 2020-09-11 10:11:20,551-0700 INFO (periodic/187) [vdsm.api] FINISH sendExtendMsg return=None from=internal, task_id=4f42cdc3-a2a7-4b91-93d4-4eab80e57a7f (api:54)
5. Si hay suficiente espacio de almacenamiento físico disponible, el SPM extiende el LV y responde con un mensaje de éxito. SPM actualiza los metadatos.
6. Cuando el vdsm recibe las respuestas correctas a su solicitud de extensión lv, actualiza su mapa lv para reconocer el volumen recién asignado. Luego, vdsm continuará con la ejecución de la VM. Los registros relacionados se pueden encontrar en vdsm.log de la siguiente manera:
2020-09-11 10:11:22,615-0700 INFO (mailbox-hsm/0) [vdsm.api] START refreshVolume(sdUUID='a1ce94f1-8001-48f6-ade2-cc1ac11660cb', spUUID='2dc32f8e-5b7a-4183-974f-aa96c8eb5bc2', imgUUID='d1b292cb-2518-4c89-9730-6b56bae10c90', volUUID='1e4f0bee-1c3b-4f4d-9d4a-bafed6cd773f') from=internal, task_id=405c92c8-3b4b-4ba1-b0ba-c24b72444529 (api:48) 2020-09-11 10:11:22,780-0700 INFO (mailbox-hsm/0) [storage.LVM] Refreshing LVs (vg=a1ce94f1-8001-48f6-ade2-cc1ac11660cb, lvs=('1e4f0bee-1c3b-4f4d-9d4a-bafed6cd773f',)) (lvm:1466)
7. Si no hay espacio de almacenamiento físico disponible, la extensión fallará y vdsm informa el error enospc de la siguiente manera:
2020-09-11 10:11:21,527-0700 INFO (libvirt/events) [virt.vm] (vmId='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') abnormal vm stop device ua-d1b292cb-2518-4c89-9730-6b56bae10c90 error enospc (vm:5064) 2020-09-11 10:11:21,571-0700 WARN (libvirt/events) [virt.vm] (vmId='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') device xxx out of space (vm:3986) 2020-09-11 10:12:16,882-0700 INFO (libvirt/events) [virt.vm] (vmId='0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') underlying process disconnected (vm:1066) 2020-09-11 10:12:16,882-0700 INFO (libvirt/events) [virt.vm] (vmId='0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') Release VM resources (vm:5168) 2020-09-11 10:12:16,882-0700 INFO (libvirt/events) [virt.vm] (vmId='0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') Stopping connection (guestagent:455)
En este caso, debe agregar manualmente la capacidad de almacenamiento para expandirla. Cuando se agrega un nuevo LUN al grupo de volúmenes, SPM distribuye automáticamente el almacenamiento adicional a los volúmenes lógicos que lo necesitan. La asignación automática de recursos adicionales permite que las máquinas virtuales relevantes continúen automáticamente las operaciones sin interrupciones o las reanuden si se detienen.