OpenNebula no puede iniciar vm después de reiniciar

OpenNebula no puede iniciar vm después de reiniciar

Instalé una nueva instalación de Debian-7-opennebula-4.4.0-1.tar.gz en un Debian nuevo y obtuve una máquina virtual para iniciar a través de sunstone.

La salida de libvirt fue:

2013-12-26 12:48:12.919+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/root USER=root LOGNAME=root QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.1 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name one-30 -uuid f12869a4-52e0-0568-9a04-53986c8c73c9 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-30.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/one//datastores/0/30/disk.0,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/var/lib/one//datastores/0/30/disk.1,if=none,id=drive-ide0-0-1,readonly=on,format=raw,cache=none -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive file=/var/lib/one//datastores/0/30/disk.2,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=02:00:0a:0a:00:04,bus=pci.0,addr=0x3 -vnc 0.0.0.0:30 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
qemu: terminating on signal 15 from pid 13422
2013-12-26 13:13:30.448+0000: shutting down

Pero después de reiniciar el host, OpenNebula/Sunstone/KVM cambió sus acciones y la VM ya no se inicia, el resultado es:

2013-12-27 09:39:06.511+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.1 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name one-30 -uuid 1dcb4efc-4915-5685-b2d0-4a66e12c81c9 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-30.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/one//datastores/0/30/disk.0,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/var/lib/one//datastores/0/30/disk.1,if=none,id=drive-ide0-0-1,readonly=on,format=raw,cache=none -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive file=/var/lib/one//datastores/0/30/disk.2,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=02:00:0a:0a:00:04,bus=pci.0,addr=0x3 -vnc 0.0.0.0:30 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
kvm: -drive file=/var/lib/one//datastores/0/30/disk.0,if=none,id=drive-ide0-0-0,format=raw,cache=none: could not open disk image /var/lib/one//datastores/0/30/disk.0: Permission denied
2013-12-27 09:39:06.917+0000: shutting down

Al comparar estos dos, lo primero que noto es la diferencia de parámetros. Antes del reinicio, era HOME=/root USER=root LOGNAME=rooty ahora es simplemente HOME=/.

¿Qué cambió y cómo puedo hacer que vuelva a funcionar? No cambié nada en los archivos de configuración, solo usé sunstone para trabajar con opennebula.

Para más detalles, aquí el contenido del almacén de datos:

 # ls -ahl /var/lib/one//datastores/0/30/
total 388K
drwxr-xr-x 2 oneadmin     oneadmin     4.0K Dec 27 10:47 .
drwxr-xr-x 5 oneadmin     oneadmin     4.0K Dec 27 10:36 ..
-rw-r--r-- 1 oneadmin     oneadmin     1.1K Dec 26 13:48 deployment.0
-rw-r--r-- 1 oneadmin     oneadmin     1.1K Dec 27 10:39 deployment.1
-rw-r--r-- 1 oneadmin     oneadmin     1.1K Dec 27 10:47 deployment.2
lrwxrwxrwx 1 oneadmin     oneadmin       18 Dec 26 13:48 disk.0 -> /dev/vg0/lv-one-10
lrwxrwxrwx 1 oneadmin     oneadmin       58 Dec 26 13:48 disk.1 -> /var/lib/one/datastores/1/7793795d8fa6b6e82aecec2b129c5ba3
-rw-r--r-- 1 libvirt-qemu libvirt-qemu 364K Dec 26 13:48 disk.2
lrwxrwxrwx 1 oneadmin     oneadmin       35 Dec 26 13:48 disk.2.iso -> /var/lib/one/datastores/0/30/disk.2

# ls -ahl /dev/vg0/lv-one-10
lrwxrwxrwx 1 root root 7 Dec 26 14:15 /dev/vg0/lv-one-10 -> ../dm-6

# ls -ahl /dev/dm-6
brw-rw---T 1 root disk 253, 6 Dec 26 14:15 /dev/dm-6

Respuesta1

Parece que el demonio OpenNebula se inició como root la primera vez. OpenNebula está diseñado para ejecutarse como oneadminusuario, pero necesita algunos permisos establecidos para poder realizar algunas operaciones. La primera vez funcionó porque ejecutaba máquinas virtuales como root y podía acceder a los discos.

En una instalación estándar, las VM se ejecutan como oneadminusuario y para acceder a LVM LV, ese usuario debe estar en el grupo disk. Como puede ver, LV tiene permisos RW para agrupar disk( /dev/dm-6).

Puede encontrar los requisitos para LVM en elpágina de documentación.

información relacionada