Eu tenho dois Virtual Machine Servers, ambos são máquinas de 64 bits de especificação similar, mesmo processador, etc. Ambos estão executando o KVM com discos baseados em LVM. Uma máquina está usando o CentOS 6 Minimal como o SO Host, a outra usa o Ubuntu Server 11.04.
Mudei os discos da máquina convidada usando dd sobre ssh, enquanto os convidados estavam desligados.
Eu posso mover as máquinas convidadas do servidor Ubuntu entre os dois hosts e elas funcionam muito bem em ambos. Minha máquina de convidado de Windows foi criada no anfitrião de Ubuntu e corre bem lá, mas adquire o Erro de Tela Azul imediatamente em inicializar quando eu tento executar isto no anfitrião de CentOS.
O erro é lado a lado: IRQL_NOT_LESS_OR_EQUAL
e diz:
STOP: 0x0000000A (0x00001016, 0x00000002, 0x00000000, 0x804F8FEC)
As informações de suporte da Microsoft parecem indicar um problema de hardware e sugerem coisas como atualizações do BIOS e remoção de componentes do computador. Obviamente, esse não é o problema aqui, já que o hardware é virtualizado.
Eu tentei mover o disco de convidado novamente para garantir que os dados não foram danificados durante a movimentação, mas isso não resolveu o problema.
Alguém mais encontrou esse problema ao tentar mover máquinas convidadas do Windows entre hosts KVM? Existe alguma coisa que possa ser feita para permitir que o Windows se mova suavemente de uma máquina para outra?
Meu entendimento é que, com o hardware virtualizado, o sistema vê os mesmos dispositivos de hardware em qualquer máquina e, portanto, pode usar os mesmos drivers, pois o hardware real está oculto no sistema operacional. Existem exceções para isso, onde os drivers podem ser um problema? E por último, existe alguma maneira (além de uma reinstalação completa do Windows) para se recuperar deste problema?
ATUALIZAÇÃO:
Definição da máquina XML:
<domain type='kvm'>
<name>xpvm2</name>
<uuid>6ddec00b-9f00-29ad-5197-98264c24cabf</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.2.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/mapper/mainvg-vm_xpvm2'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:f8:3a:21'/>
<source bridge='br0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes'/>
<video>
<model type='vga' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</memballoon>
</devices>
</domain>
UPDATE 2
ps -ef | grep qemu (broken into lines for readability)
Máquina CentOS:
qemu 9742 1 99 Feb18 ? 22:51:48 /usr/libexec/qemu-kvm
-S -M rhel6.2.0 -enable-kvm
-m 1024
-smp 1,sockets=1,cores=1,threads=1
-name xpvm2
-uuid 6ddec00b-9f00-29ad-5197-98264c24cabf
-nodefconfig
-nodefaults
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xpvm2.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control
-rtc base=localtime
-> -no-shutdown
-drive file=/dev/mapper/mainvg-vm_xpvm2,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
-> -netdev tap,fd=28,id=hostnet0
-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f8:3a:21,bus=pci.0,addr=0x3
-chardev pty,id=charserial0
-device isa-serial,chardev=charserial0,id=serial0
-usb
-device usb-tablet,id=input0
-vnc 127.0.0.1:5
-vga std
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
-> root 23564 9518 0 17:38 pts/0 00:00:00 grep qemu
Máquina Ubuntu:
105 1616 1 7 17:46 ? 00:00:14 /usr/bin/kvm -S -M pc-0.14
-enable-kvm
-m 1024
-smp 1,sockets=1,cores=1,threads=1
-name xpvm2
-uuid 6ddec00b-9f00-29ad-5197-98264c24cabf
-nodefconfig
-nodefaults
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xpvm2.monitor,server,nowait
-> -mon chardev=charmonitor,id=monitor,mode=readline
-rtc base=localtime
-> -boot c
-drive file=/dev/mapper/mainvg-vm_xpvm2,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0
-> -netdev tap,fd=18,id=hostnet0
-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f8:3a:21,bus=pci.0,addr=0x3
-chardev pty,id=charserial0
-device isa-serial,chardev=charserial0,id=serial0
-usb
-device usb-tablet,id=input0
-> -vnc 127.0.0.1:0
-vga std
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
-> myname 1626 1493 0 17:49 pts/0 00:00:00 grep --color=auto qemu
UPDATE 3:
Eu substituí o sistema operacional Ubuntu com o CentOS na máquina original. De volta ao host original, mas com o CentOS agora, a VM XP ainda não inicializa. Isso me leva a acreditar que o problema está relacionado à compatibilidade do CentOS com o Ubuntu, e não à compatibilidade do Hardware do Host. Ainda não faço ideia do que tentar.