L'extension de volume logique est utilisée pour fournir un stockage supplémentaire et faciliter les opérations continues de la machine virtuelle. Cet article expliquera le processus d'extension de volume logique de type Qcow2 avec allocation de provision mince.
Voici le processus d'extension LV :
1. Lorsque l'image du disque virtuel est stockée sur un stockage au format Qcow2, Qemu fournit un mappage logique entre les blocs dans la VM et les blocs sur le disque.
2. S'il y a une activité d'écriture de machine virtuelle, Qemu écrit l'accès au volume logique, puis l'image qcow2 se développe.
3. Qemu continue de signaler les utilisations à vdsm. Et vdsm a un seuil par défaut (volume_utilization_percent &volume_utilization_chunk_mb) pour comparer l'allocation de stockage local avec l'utilisation réelle du stockage. Lorsque l'espace libre <(100 % - volume_utilization_percent%) * volume_utilization_chunk_mb, cela signifie qu'il a dépassé le seuil limite.
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 devient pause et vdsm émet une demande d'extension et écrit un message à SPM via la boîte aux lettres de stockage pour étendre LV et continue de surveiller la réponse de SPM dans le courrier entrant toutes les 2 secondes. Les journaux associés peuvent être trouvés dans vdsm.log comme suit :
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. S'il y a suffisamment d'espace de stockage physique disponible, le SPM étend le LV et répond avec un message de réussite. SPM met à jour les métadonnées.
6. Lorsque le vdsm reçoit les réponses réussies à sa demande d'extension lv, il actualise sa carte lv pour reconnaître le volume nouvellement alloué. Ensuite, vdsm poursuivra l'exécution de la VM. Les journaux associés peuvent être trouvés dans vdsm.log comme suit :
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. S'il n'y a pas d'espace de stockage physique disponible, l'extension échouera et vdsm signalera l'erreur enospc comme suit :
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)
Dans ce cas, vous devez ajouter manuellement de la capacité de stockage pour l'étendre. Lorsqu'un nouveau LUN est ajouté au groupe de volumes, le SPM distribue automatiquement le stockage supplémentaire aux volumes logiques qui en ont besoin. L'allocation automatique de ressources supplémentaires permet aux machines virtuelles concernées de poursuivre automatiquement les opérations sans interruption ou de reprendre les opérations si elles sont arrêtées.