Rozšíření logického svazku se používá k poskytnutí dalšího úložiště a usnadnění pokračujících operací virtuálního stroje. Tento článek popisuje proces rozšíření logického svazku typu Qcow2 s alokací tenkých provizí.
Zde je postup prodlužování LV:
1. Když je obraz virtuálního disku uložen na úložišti ve formátu Qcow2, Qemu poskytuje logické mapování mezi bloky ve VM a bloky na disku.
2. Pokud dojde k jakékoli aktivitě zápisu VM, Qemu zapíše přístup k logickému svazku a poté se obraz qcow2 zvětší.
3. Qemu neustále hlásí použití do vdsm. A vdsm má výchozí práh ( volume_utilization_percent &volume_utilization_chunk_mb) pro porovnání alokace místního úložiště se skutečným využitím úložiště. Když je volné místo <(100 % - volume_utilization_percent%) * volume_utilization_chunk_mb, znamená to, že překročil prahový limit.
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 přejde do pauzy a vdsm vydá požadavek na rozšíření a zapíše zprávu do SPM přes úložnou schránku, aby prodloužil LV, a každé 2 sekundy sleduje odpověď SPM v příchozí poště. Související protokoly lze nalézt na vdsm.log takto:
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. Pokud je k dispozici dostatek fyzického úložného prostoru, SPM prodlouží LV a odpoví zprávou o úspěchu. SPM aktualizuje metadata.
6. Když vdsm obdrží úspěšné odpovědi na svůj požadavek na rozšíření lv, obnoví svou mapu lv, aby rozpoznal nově přidělený svazek. Poté bude vdsm pokračovat ve vykonávání virtuálního počítače. Související protokoly lze nalézt na vdsm.log takto:
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. Pokud není k dispozici žádný fyzický úložný prostor, rozšíření selže a vdsm hlásí chybu enospc následovně:
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)
V takovém případě musíte kapacitu úložiště přidat ručně, abyste ji rozšířili. Když je do skupiny svazků přidána nová logická jednotka, SPM automaticky rozdělí další úložiště na logické svazky, které to potřebují. Automatické přidělování dalších zdrojů umožňuje příslušným virtuálním strojům automaticky pokračovat v operacích bez přerušení nebo obnovit operace, pokud jsou zastaveny.