ЗАКРЫТО: старый заголовок темы - "странная модель записи на диск на исходных дисках при перемещении виртуального диска". Он был изменен, чтобы соответствовать билету в Bugzilla. Речь идет о регрессии производительности, которая, похоже, влияет на виртуальные машины с qcow2, когда они хранятся на ZFS. Это было обнаружено/проверено с использованием локального ZFS. В настоящее время неизвестно, воспроизводится ли это с удаленным/подключенным по NFS хранилищем ZFS. Возможно, у кого-то есть такая настройка для тестирования. Пожалуйста, сообщите о результатах.
Привет, я сделал какое-то действительно странное наблюдение, которое не могу объяснить самому. Я переместил несколько ВМ с кластера 6.4 на новый кластер 7.3 (копирование через scp). Виртуальные машины имеют диски qcow2 и находятся на ZFS-датасетах. После перемещения ВМ на новый кластер я переместил один из виртуальных дисков ВМ с ZFS-датасета на жестком диске на ZFS-датасет на SSD с помощью "переместить диск" через веб-интерфейс (хотя ВМ была запущена, но то же самое применимо, если ВМ выключена и вместо этого используется qemu-img). Перемещение диска выполняется очень медленно, примерно 5-20 МБ/с. Странное то, что оно медленное, потому что, по-видимому, на исходном датасете наблюдаются высокие WRITE IOPS, что приводит к достижению лимита IOPS обычного жесткого диска. На этом датасете нет ничего другого – только виртуальная машина, которая полностью простаивает внутри. Высокие WRITE IOPS на ИСХОДНОМ датасете вызывает перемещение диска, но я не могу определить, что там записывается и кто записывает – и зачем.
По моему пониманию, на исходном датасете должны быть операции чтения, а на целевом – записи. Выдает ли qemu-img или qemu drive mirror записи на исходный файл виртуального диска при его перемещении? У кого-нибудь есть предположения о том, что происходит и почему проблема исчезает после первого перемещения? Я могу перемещать виртуальный диск туда и обратно, и это всегда происходит быстро, и я не вижу высоких WRITE IOPS больше. Только первое перемещение выполняется медленно.
```
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------------------- ----- ----- ----- ----- ----- -----
hddpool 444G 668G 30 1.04K 918K 6.56M
mirror-0 222G 334G 25 536 775K 2.85M
scsi-35000cca0561119d4 - - 10 271 319K 1.43M
scsi-35000cca05601fd28 - - 14 265 456K 1.42M
mirror-1 222G 334G 4 534 143K 3.71M
scsi-35000cca05601fad8 - - 4 263 143K 1.85M
scsi-35000cca043dae6dc - - 0 271 0 1.86M
----------------------------------------------------- ----- ----- ----- ----- ----- -----
rpool 2.67G 106G 0 0 0 0
mirror-0 2.67G 106G 0 0 0 0
ata-INTEL_SSDSC2BB120G6R_PHWA6384053K120CGN-part3 - - 0 0 0 0
ata-INTEL_SSDSC2BB120G4_PHWL442300A2120LGN-part3 - - 0 0 0 0
----------------------------------------------------- ----- ----- ----- ----- ----- -----
ssdpool 277G 611G 0 440 0 20.2M
mirror-0 277G 611G 0 440 0 20.2M
sdd - - 0 216 0 10.1M
sdc - - 0 224 0 10.1M
----------------------------------------------------- ----- ----- ----- ----- ----- -----
```
Медленно: [ >)
Быстро: [ >)
```
# cat /etc/pve/qemu-server/223.conf
agent: 1
boot: order=ide2;scsi0
cores: 4
cpu: host
ide2: none,media=cdrom
memory: 8192
name: gitlab
net0: virtio=72:A6:BD:68:E4:3A,bridge=vmbr1,firewall=1,tag=23
numa: 0
onboot: 1
ostype: l26
scsi0: vms-qcow2-ssdpool:223/vm-223-disk-0.qcow2,aio=threads,discard=on,iothread=1,size=40G
scsi1: vms-qcow2-ssdpool:223/vm-223-disk-1.qcow2,aio=threads,discard=on,iothread=1,size=50G
scsi2: vms-qcow2-hddpool:223/vm-223-disk-1.qcow2,aio=threads,discard=on,iothread=1,size=300G
scsihw: virtio-scsi-single
smbios1: uuid=0df9d070-b1a6-4fa5-8512-0ddf8673fe87
sockets: 1
tablet: 0
tags: centos7
vmgenid: 509ea882-dabf-4394-8477-06aaa931da1b
```
Привет, я сделал какое-то действительно странное наблюдение, которое не могу объяснить самому. Я переместил несколько ВМ с кластера 6.4 на новый кластер 7.3 (копирование через scp). Виртуальные машины имеют диски qcow2 и находятся на ZFS-датасетах. После перемещения ВМ на новый кластер я переместил один из виртуальных дисков ВМ с ZFS-датасета на жестком диске на ZFS-датасет на SSD с помощью "переместить диск" через веб-интерфейс (хотя ВМ была запущена, но то же самое применимо, если ВМ выключена и вместо этого используется qemu-img). Перемещение диска выполняется очень медленно, примерно 5-20 МБ/с. Странное то, что оно медленное, потому что, по-видимому, на исходном датасете наблюдаются высокие WRITE IOPS, что приводит к достижению лимита IOPS обычного жесткого диска. На этом датасете нет ничего другого – только виртуальная машина, которая полностью простаивает внутри. Высокие WRITE IOPS на ИСХОДНОМ датасете вызывает перемещение диска, но я не могу определить, что там записывается и кто записывает – и зачем.
По моему пониманию, на исходном датасете должны быть операции чтения, а на целевом – записи. Выдает ли qemu-img или qemu drive mirror записи на исходный файл виртуального диска при его перемещении? У кого-нибудь есть предположения о том, что происходит и почему проблема исчезает после первого перемещения? Я могу перемещать виртуальный диск туда и обратно, и это всегда происходит быстро, и я не вижу высоких WRITE IOPS больше. Только первое перемещение выполняется медленно.
```
capacity operations bandwidth
pool alloc free read write read write
----------------------------------------------------- ----- ----- ----- ----- ----- -----
hddpool 444G 668G 30 1.04K 918K 6.56M
mirror-0 222G 334G 25 536 775K 2.85M
scsi-35000cca0561119d4 - - 10 271 319K 1.43M
scsi-35000cca05601fd28 - - 14 265 456K 1.42M
mirror-1 222G 334G 4 534 143K 3.71M
scsi-35000cca05601fad8 - - 4 263 143K 1.85M
scsi-35000cca043dae6dc - - 0 271 0 1.86M
----------------------------------------------------- ----- ----- ----- ----- ----- -----
rpool 2.67G 106G 0 0 0 0
mirror-0 2.67G 106G 0 0 0 0
ata-INTEL_SSDSC2BB120G6R_PHWA6384053K120CGN-part3 - - 0 0 0 0
ata-INTEL_SSDSC2BB120G4_PHWL442300A2120LGN-part3 - - 0 0 0 0
----------------------------------------------------- ----- ----- ----- ----- ----- -----
ssdpool 277G 611G 0 440 0 20.2M
mirror-0 277G 611G 0 440 0 20.2M
sdd - - 0 216 0 10.1M
sdc - - 0 224 0 10.1M
----------------------------------------------------- ----- ----- ----- ----- ----- -----
```
Медленно: [ >)
Быстро: [ >)
```
# cat /etc/pve/qemu-server/223.conf
agent: 1
boot: order=ide2;scsi0
cores: 4
cpu: host
ide2: none,media=cdrom
memory: 8192
name: gitlab
net0: virtio=72:A6:BD:68:E4:3A,bridge=vmbr1,firewall=1,tag=23
numa: 0
onboot: 1
ostype: l26
scsi0: vms-qcow2-ssdpool:223/vm-223-disk-0.qcow2,aio=threads,discard=on,iothread=1,size=40G
scsi1: vms-qcow2-ssdpool:223/vm-223-disk-1.qcow2,aio=threads,discard=on,iothread=1,size=50G
scsi2: vms-qcow2-hddpool:223/vm-223-disk-1.qcow2,aio=threads,discard=on,iothread=1,size=300G
scsihw: virtio-scsi-single
smbios1: uuid=0df9d070-b1a6-4fa5-8512-0ddf8673fe87
sockets: 1
tablet: 0
tags: centos7
vmgenid: 509ea882-dabf-4394-8477-06aaa931da1b
```
