Outra dessa noite:
Precisei remover um dos vdisks de uma máquina para-virtualizada em tempo real, sem desligá-la. Tudo isso em cima de CentOS 5.2, com XEN 3.0 e kernel 2.6.18. Pra fazer isso, tem que identificar pela hospedeira qual o ID do disco da hospedada, e mandar fazer um block-detach.
Antes do detach:
[root@pvm /]# fdisk -l
Disk /dev/xvda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/xvda1 * 1 1208 9703228+ 83 Linux
/dev/xvda2 1209 1273 522112+ 82 Linux swap / SolarisDisk /dev/xvdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/xvdb1 1 1305 10482381 83 Linux
[root@pvm /]#
Então, através da hospedeira, pode-se fazer o detach do xvdb da PVM:
[root@hospedeira /]# xm block-list 5
Vdev BE handle state evt-ch ring-ref BE-path
51712 0 0 4 8 8 /local/domain/0/backend/vbd/5/51712
51728 0 0 4 9 9 /local/domain/0/backend/vbd/5/51728
[root@hospedeira /]# xm block-detach 5 51728
Sendo que esse ID do dispositivo de bloco é sempre igual para qualquer hospedeira XEN:
xvda = 51712
xvdb = 51728
xvdc = 51744
xvdd = 51760
Depois do detach, apenas um disco permanece na PVM:
[root@pvm /]# fdisk -l
Disk /dev/xvda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/xvda1 * 1 1208 9703228+ 83 Linux
/dev/xvda2 1209 1273 522112+ 82 Linux swap / Solaris
[root@pvm /]#
Por: Hudson Murilo dos Santos
Referências: Franklin Moretti
man xm
nabble