Я уже говорил, что нельзя использовать qemu-nbd --fork, если диск используется виртуальной машиной. Пожалуйста, не повторяй те же вопросы. Могу только рекомендовать реализовать API провайдера резервного копирования вместо того, чтобы пытаться встроить собственное решение в Proxmox VE.
Код: [I] root@pve8a1 ~# echo '{"execute": "qmp_capabilities"}{"execute": "query-block"}' | socat - /var/run/qemu-server/106.qmp | jq | grep node-name
"node-name": "#block141",
"node-name": "#block319",
[I] root@pve8a1 ~# echo '{"execute": "qmp_capabilities"}{"execute": "block-dirty-bitmap-add","arguments":{"node":"#block319","name":"beemo","granularity":65536}}' | socat - /var/run/qemu-server/106.qmp
{"QMP": {"version": {"qemu": {"micro": 2, "minor": 0, "major": 10}, "package": "pve-qemu-kvm_10.0.2-1"}, "capabilities": []}}
{"return": {}}
{"return": {}}
[I] root@pve8a1 ~# echo '{"execute": "qmp_capabilities"}{"execute":"nbd-server-start","arguments":{"addr":{"type":"unix","data":{"path":"/tmp/nbd.socket"}}}}' | socat - /var/run/qemu-server/106.qmp
{"QMP": {"version": {"qemu": {"micro": 2, "minor": 0, "major": 10}, "package": "pve-qemu-kvm_10.0.2-1"}, "capabilities": []}}
{"return": {}}
{"return": {}}
[I] root@pve8a1 ~# echo '{"execute": "qmp_capabilities"}{"execute":"block-export-add","arguments":{"id":"exp0","node-name":"#block319","type":"nbd","name":"exp0","bitmaps":[{"node":"#block319","name":"beemo"}]}}' | socat - /var/run/qemu-server/106.qmp
{"QMP": {"version": {"qemu": {"micro": 2, "minor": 0, "major": 10}, "package": "pve-qemu-kvm_10.0.2-1"}, "capabilities": []}}
{"return": {}}
{"return": {}}
[I] root@pve8a1 ~ [1]# qemu-img map --output=json --image-opts "driver=nbd,server.type=unix,server.path=/tmp/nbd.socket,export=exp0,x-dirty-bitmap=qemu:dirty-bitmap:beemo"
[{ "start": 0, "length": 34359738368, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": 0}] Теперь в виртуальной машине выполняются некоторые записи, а затем:
Код: [I] root@pve8a1 ~# qemu-img map --output=json --image-opts "driver=nbd,server.type=unix,server.path=/tmp/nbd.socket,export=exp0,x-dirty-bitmap=qemu:dirty-bitmap:beemo"
[{ "start": 0, "length": 10485760, "depth": 0, "present": false, "zero": false, "data": false, "compressed": false},
{ "start": 10485760, "length": 34349252608, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": 10485760}] И, как уже упоминалось ранее в этой ветке обсуждения, метки в выводе qemu-img map для bitmap неверны. Используйте nbdinfo, если не хотите переинтерпретировать их.