перенос root-volume
1. остановим виртуалку в вебморде
2. найдем файл от VOLUME:
mysql> select uuid,path,pool_id from volumes where name='ROOT-1109'; +--------------------------------------+--------------------------------------+---------+ | uuid | path | pool_id | +--------------------------------------+--------------------------------------+---------+ | 99c3623a-fcc5-422a-83d8-e484c13c8fdb | 99c3623a-fcc5-422a-83d8-e484c13c8fdb | 31 | +--------------------------------------+--------------------------------------+---------+ 1 row in set (0.00 sec)
[root@ad206 ~]# ls -lah /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb -rwxr--r-- 1 root root 13M Jun 13 12:24 /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb
3. копируем его на shared datastore
[root@ad206 ~]# qemu-img convert -f qcow2 -O qcow2 -p /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/99c3623a-fcc5-422a-83d8-e484c13c8fdb
4. выставим права 744, проверим
[root@ad206 ~]# chmod 744 /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/99c3623a-fcc5-422a-83d8-e484c13c8fdb [root@ad206 ~]# ls -lah /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/99c3623a-fcc5-422a-83d8-e484c13c8fdb -rwxr--r-- 1 root root 1.1G Jun 13 12:31 /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/99c3623a-fcc5-422a-83d8-e484c13c8fdb -rwxr--r-- 1 root root 13M Jun 13 12:24 /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb
Как видно, размер перенесенного образа больше. Это связано с тем, что оригинальный образ - это ссылка на разницу от оригинального темплейта.
5. переименуем старый диск
[root@ad206 ~]# mv /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb.old
6. поменяем пул для диска
mysql> update volumes set pool_id=42 where uuid='99c3623a-fcc5-422a-83d8-e484c13c8fdb'; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0
7. найдем его текущий диск офферинг
mysql> select disk_offering_id from volumes where uuid='99c3623a-fcc5-422a-83d8-e484c13c8fdb'; +------------------+ | disk_offering_id | +------------------+ | 302 | +------------------+ 1 row in set (0.00 sec)
8. смотрим на этот офферинг
mysql> select id,domain_id,name,use_local_storage,disk_size,tags,state from disk_offering where id=302; +-----+-----------+------------------+-------------------+-----------+-----------+--------+ | id | domain_id | name | use_local_storage | disk_size | tags | state | +-----+-----------+------------------+-------------------+-----------+-----------+--------+ | 302 | 211 | cloud vds master | 1 | 0 | local_sas | Active | +-----+-----------+------------------+-------------------+-----------+-----------+--------+ 1 row in set (0.00 sec)
9. меняем тип локал_стораджа и убираем теги
mysql> update disk_offering set use_local_storage=0 where id=302; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update disk_offering set tags='sharedstor' where id=302; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0
10. смотрим текущий compute офферинг для виртуалки
mysql> select service_offering_id from vm_instance where instance_name='i-2-1109-VM'; +---------------------+ | service_offering_id | +---------------------+ | 302 | +---------------------+ 1 row in set (0.00 sec)
11. смотрим его подробности
mysql> select id,name,use_local_storage,host_tag,domain_path from service_offering_view where id=302; +-----+------------------+-------------------+-----------+-------------------------+ | id | name | use_local_storage | host_tag | domain_path | +-----+------------------+-------------------+-----------+-------------------------+ | 302 | cloud vds master | 0 | local_sas | /colobridge/vds/master/ | +-----+------------------+-------------------+-----------+-------------------------+ 1 row in set (0.00 sec)
12. ищем соответствующий офферинг для шаред стораджа
mysql> select id,name,use_local_storage,host_tag,domain_path from service_offering_view where domain_path='/colobridge/vds/master/'; +-----+-------------------+-------------------+-----------+-------------------------+ | id | name | use_local_storage | host_tag | domain_path | +-----+-------------------+-------------------+-----------+-------------------------+ | 302 | cloud vds master | 0 | local_sas | /colobridge/vds/master/ | | 660 | cloud vds master2 | 0 | NULL | /colobridge/vds/master/ | +-----+-------------------+-------------------+-----------+-------------------------+ 2 rows in set (0.00 sec)
13. меняем офферинг
mysql> update vm_instance set service_offering_id=660 where instance_name='i-2-1109-VM'; Query OK, 1 row affected (0.08 sec) Rows matched: 1 Changed: 1 Warnings: 0
14. запускаем виртуалку из вебморды
15. проверяем
[root@ad206 ~]# ps auxww|grep i-2-1109-VM|grep --color file root 3737 62.5 0.1 11464888 444520 ? Sl 13:19 0:10 /usr/libexec/qemu-kvm -name i-2-1109-VM -S -M rhel6.5.0 -enable-kvm -m 8192 -realtime mlock=off -smp 4,sockets=1,cores=4,threads=1 -uuid bcd5781b-ac4f-4b7c-a46f-aa755cc35748 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/i-2-1109-VM.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/99c3623a-fcc5-422a-83d8-e484c13c8fdb,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19,if=none,id=drive-virtio-disk1,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,id=virtio-disk1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,cache=none -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=35,id=hostnet0,vhost=on,vhostfd=72 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=06:04:c2:00:04:5a,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 172.16.0.242:45,password -vga cirrus
16. удаляем старый файл
[root@ad206 ~]# rm /var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb.old
миграция DATA-дисков
[root@ad206 ~]# qemu-img convert -f qcow2 -O qcow2 -p /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19 /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19 [root@ad206 ~]# mv /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19 /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19.old [root@ad206 ~]# chmod 744 /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19 [root@ad206 ~]# ls -lah /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19 /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19 -rwxr--r-- 1 root root 211K Jun 13 12:04 /mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19 -rwxr--r-- 1 root root 211K Jun 13 11:24 /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19 [root@ad192 ~]# mysql cloud mysql> update volumes set pool_id=42 where uuid='e353f155-be74-436d-8138-e5e10b3d8f19'; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select disk_offering_id from volumes where uuid='e353f155-be74-436d-8138-e5e10b3d8f19' \G *************************** 1. row *************************** disk_offering_id: 346 1 row in set (0.00 sec) mysql> select id,domain_id,name,use_local_storage,disk_size,tags,state from disk_offering where id=346; +-----+-----------+--------------------+-------------------+---------------+-----------+--------+ | id | domain_id | name | use_local_storage | disk_size | tags | state | +-----+-----------+--------------------+-------------------+---------------+-----------+--------+ | 346 | 211 | Data Disk - Master | 1 | 1250909224960 | local_sas | Active | +-----+-----------+--------------------+-------------------+---------------+-----------+--------+ 1 row in set (0.00 sec) mysql> update disk_offering set use_local_storage=0 where id=346; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update disk_offering set tags='' where id=346; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 [root@ad206 ~]# ps auxww|grep --color e353f155-be74-436d-8138-e5e10b3d8f19 root 12825 25.8 0.1 9916888 439944 ? Sl 12:20 0:12 /usr/libexec/qemu-kvm -name i-2-1109-VM -S -M rhel6.5.0 -enable-kvm -m 8192 -realtime mlock=off -smp 4,sockets=1,cores=4,threads=1 -uuid bcd5781b-ac4f-4b7c-a46f-aa755cc35748 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/i-2-1109-VM.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/libvirt/images/99c3623a-fcc5-422a-83d8-e484c13c8fdb,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/mnt/14bac4dc-53b5-3e73-8ad9-7fd57a4cf73c/e353f155-be74-436d-8138-e5e10b3d8f19,if=none,id=drive-virtio-disk1,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,id=virtio-disk1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,cache=none -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=79,id=hostnet0,vhost=on,vhostfd=29 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=06:04:c2:00:04:5a,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 172.16.0.242:49,password -vga cirrus data-диск перемещен. [root@ad206 ~]# rm /var/lib/libvirt/images/e353f155-be74-436d-8138-e5e10b3d8f19.old