Agregar disco físico a la máquina virtual KVM

12

Estoy configurando un servidor de archivos (nas4free) como una máquina virtual KVM en un sistema Ubuntu Server 12.04.

¿Cómo agrego discos duros físicos directamente a la VM para que puedan ser utilizados por el invitado (nas4free), pero no por el host?

Específicamente, el disco duro que me gustaría montar es / dev / sda (que actualmente no está montado en el servidor).

Hasta ahora he encontrado dos soluciones, pero tampoco he podido trabajar.

El primero es de Server Fault, donde se sugiere usar virt-manager. No he pensado que esto funcione porque cuando trato de seleccionar una unidad existente no aparece nada. Mi mejor conjetura de por qué es esto, es porque estoy usando virt-manager sobre ssh y no me conecto como root, ¿debería eso hacer la diferencia?

La segunda solución que he encontrado aquí es simplemente ejecutar el comando (modificado para mi sistema)

qm set nas4free -virtio /dev/sda

pero eso parece requerir proxmox que no he instalado y no parece estar en los repositorios predeterminados?

Finalmente, una vez que se solucionó lo anterior y puedo montar la unidad directamente en la VM, ¿alguien tiene experiencia sobre si la unidad debe montarse en la VM como scsi, ide o virtio? (Sé que virtio se recomendó en la página vinculada ServerFault, pero no había oído hablar de eso antes, ya que principalmente uso VMWare).

¡¡¡Gracias por tu ayuda!!!

evan
fuente
1
Ejecutar sudo virt-manager, no es necesario conectarse como root. No sé si virtiofunciona para dispositivos físicos ...
ish
@izx, gracias por tu respuesta! ¿debería eso hacer una diferencia a pesar de que virt-manager se ejecuta en mi escritorio y no en el servidor?
evan

Respuestas:

11

Aunque esto ha sido respondido, en lugar de usar / dev / sda, debe usar / dev / disk / by-id / de donde proviene

    ls -l /dev/disk/by-id

De esta forma, estará cubierto en caso de que el disco cambie de / dev / sda a / dev / sdb.

smccloud
fuente
2
Actualmente esta es la única respuesta (que alguna vez ha sido) publicada en esta pregunta. Hay algo de información en los comentarios que podría ayudar, pero por lo que puedo decir, no está nada seguro de que solucionarán el problema. Puede considerar expandir esto para proporcionar una solución completa. Si otras personas diseñaron partes de su solución, siempre puede citarlas y vincularlas. Dudo que a izx le importe ... especialmente porque (cuando comento ahora) izx no se ha registrado en el sitio por más de un año.
Eliah Kagan
Estoy usando virsh attach-device domain XML-file...para adjuntar discos. ¿También puedes usar disk-id en el <source dev='/dev/...'/>elemento?
MrCalvin
8

Teniendo exactamente la misma necesidad, encontré lo siguiente:

http://ronaldevers.nl/2012/10/14/adding-a-physical-disk-kvm-libvirt.html

(todo el siguiente texto proviene de la fuente anterior)

No se puede hacer con virt-manager. Ese me llevó un tiempo darme cuenta. Por lo que puedo decir, virt-manager trabaja con agrupaciones de almacenamiento. Puede convertir un disco en un grupo de almacenamiento, pero no puede agregar un disco existente directamente a una VM.

Afortunadamente, la solución es fácil: agrega el disco al archivo de configuración xml del dominio a mano. Abra /etc/libvirt/qemu/.xml en su editor favorito y agregue una sección a la sección:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/md/storage'/>
  <target dev='vdb' bus='virtio'/>
</disk>

Esto hará que el almacenamiento / dev / md / host del host esté disponible en el invitado como / dev / vdb. Después de cambiar la configuración de un dominio a mano, debe volver a cargar la configuración a mano. Inicie sesión en su host y emita este comando:

# virsh define /etc/libvirt/qemu/jetsetetser.xml
Domain jetser defined from /etc/libvirt/qemu/jetsetetser.xml

Aquí hay un buen recurso con más información sobre cómo administrar vms con libvirt: https://help.ubuntu.com/community/KVM/Managing

Le recomiendo que siga los consejos de smccloud. Esto funciona como un encanto para mí. ¡Tenga cuidado de no montar ningún volumen en las unidades físicas utilizadas en su invitado, o dañará gravemente su sistema de archivos!

Dethegeek
fuente
44
En lugar de virsh define..., la recomendación es usar virsh edit <NAME>Esto le permite editar el XML en su editor de texto favorito y hacer que los cambios actualicen automáticamente la VM.
Nathan Osman