web-dev-qa-db-fra.com

Ajouter un disque physique à la machine virtuelle KVM

Je configure un serveur de fichiers (nas4free) en tant que machine virtuelle KVM sur un système Ubuntu Server 12.04.

Comment ajouter des disques durs physiques directement à la VM afin qu'ils puissent être utilisés par l'invité (nas4free), mais pas par l'hôte?

Plus précisément, le disque dur que je voudrais monter est/dev/sda (qui n’est actuellement pas monté sur le serveur).

Jusqu'à présent, j'ai trouvé deux solutions, mais je n'ai pas non plus réussi à travailler.

Le premier provient de Server Fault où il est suggéré d'utiliser virt-manager. Je n'ai pas réussi à ce que cela fonctionne parce que lorsque j'essaie de sélectionner un lecteur existant, rien n'est répertorié. Je suppose que c'est parce que j'utilise virt-manager sur ssh et que je ne me connecte pas en tant que root, cela devrait-il faire une différence?

La deuxième solution que j'ai trouvée ici consiste à exécuter la commande (modifiée pour mon système)

qm set nas4free -virtio /dev/sda

mais cela semble requérir proxmox que je n’ai pas installé et qui ne semble pas être dans les référentiels par défaut?

Enfin, une fois que ce qui précède est réglé et que je peux monter le lecteur directement sur la machine virtuelle, est-ce que quelqu'un sait si le lecteur doit être monté sur le VM en tant que scsi, ide ou virtio? (Je sais que virtio était recommandé dans la page liée ServerFault, mais je n'en avais jamais entendu parler auparavant, car j'utilise principalement VMWare).

Merci de votre aide!!!

10
evan

Bien que cela ait été répondu, plutôt que d'utiliser/dev/sda, vous devriez utiliser/dev/disk/by-id/d'où vous venez

    ls -l /dev/disk/by-id

De cette façon, vous êtes couvert au cas où le disque passerait de/dev/sda à/dev/sdb.

11
smccloud

Ayant exactement le même besoin, j'ai trouvé ce qui suit:

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

(tout le texte suivant provient de la source ci-dessus)

Cela ne peut pas être fait avec virt-manager. Celui-là m'a pris un certain temps à comprendre. Autant que je sache, virt-manager fonctionne avec des pools de stockage. Vous pouvez créer un disque dans un pool de stockage, mais vous ne pouvez pas ajouter directement un disque existant à un ordinateur virtuel.

Heureusement, la solution est simple: vous ajoutez manuellement le disque au fichier de configuration XML du domaine. Ouvrez donc /etc/libvirt/qemu/.xml dans votre éditeur préféré et ajoutez une section à la section:

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

Cela rendra le stockage/dev/md/de l’hôte disponible dans l’invité en tant que/dev/vdb. Après avoir modifié manuellement la configuration d’un domaine, vous devez la recharger manuellement. Connectez-vous à votre hôte et lancez cette commande:

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

Voici une ressource de Nice contenant plus d'informations sur la gestion de vms avec libvirt: https://help.ubuntu.com/community/KVM/Managing

Je vous recommande fortement de suivre les conseils donnés par smccloud. Cela fonctionne comme un charme pour moi. Attention à ne pas monter aucun volume sur les disques physiques utilisés dans votre invité, sinon vous endommagerez gravement son système de fichiers!

6
dethegeek