Aggiungi disco fisico alla macchina virtuale KVM


12

Sto configurando un file server (nas4free) come macchina virtuale KVM su un sistema Ubuntu Server 12.04.

Come faccio ad aggiungere dischi rigidi fisici direttamente alla VM in modo che possano essere utilizzati dal guest (nas4free), ma non dall'host?

In particolare il disco rigido che vorrei montare è / dev / sda (che non è attualmente montato sul server).

Finora ho trovato due soluzioni, ma non sono nemmeno riuscito a lavorare.

Il primo proviene da Server Fault dove si suggerisce di usare virt-manager. Non ho fatto in modo che funzioni perché quando provo a selezionare un'unità esistente non viene elencato nulla. La mia migliore ipotesi sul perché sia ​​perché sto usando virt-manager su ssh e non mi sto collegando come root, dovrebbe fare la differenza?

La seconda soluzione che ho trovato qui è semplicemente eseguire il comando (modificato per il mio sistema)

qm set nas4free -virtio /dev/sda

ma questo sembra richiedere proxmox che non ho installato e non sembra essere nei repository predefiniti?

Infine, una volta risolto quanto sopra e posso montare l'unità direttamente sulla VM, qualcuno ha un'esperienza con se l'unità deve essere montata sulla VM come scsi, ide o virtio? (So ​​che virtio era consigliato nella pagina ServerFault collegata, ma non ne avevo mai sentito parlare da quando utilizzo principalmente VMWare).

Grazie per l'aiuto!!!


1
Esegui sudo virt-manager, non è necessario connettersi come root. Non so se virtiofunziona per dispositivi fisici ...
ish

@izx, grazie per la tua risposta! questo dovrebbe fare la differenza anche se virt-manager è in esecuzione sul mio desktop e non sul server?
evan,

Risposte:


11

Anche se questo è stato risposto, piuttosto che usare / dev / sda dovresti usare / dev / disk / by-id / da dove arrivi

    ls -l /dev/disk/by-id

In questo modo sei coperto nel caso in cui il disco cambi da / dev / sda a / dev / sdb.


2
Attualmente questa è l'unica risposta (che sia mai stata) pubblicata su questa domanda. Ci sono alcune informazioni nei commenti che potrebbero aiutare, ma per quanto posso dire è tutt'altro che certo che risolveranno il problema. Potresti considerare di ampliare questo per fornire una soluzione completa. Se parti della tua soluzione sono state ideate da altri, puoi sempre citarle e collegarle ad esse. Dubito che a izx dispiacerebbe ... specialmente perché (quando commento adesso) izx non si collega al sito da oltre un anno.
Eliah Kagan,

Sto usando virsh attach-device domain XML-file...per collegare i dischi. Puoi usare anche disk-id <source dev='/dev/...'/>nell'elemento?
MrCalvin

8

Avendo esattamente lo stesso bisogno, ho trovato quanto segue:

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

(l'intero testo seguente proviene dalla fonte sopra)

Non può essere fatto con virt-manager. Mi ci è voluto un po 'per capire. Per quanto ne so, virt-manager lavora con i lotti di memoria. È possibile creare un disco in un pool di archiviazione, ma non è possibile aggiungere un disco esistente direttamente a una macchina virtuale.

Fortunatamente la correzione è semplice: aggiungi manualmente il disco al file di configurazione XML del dominio. Quindi apri /etc/libvirt/qemu/.xml nel tuo editor preferito e aggiungi una sezione alla sezione:

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

Ciò renderà l'host / dev / md / storage disponibile nel guest come / dev / vdb. Dopo aver modificato manualmente la configurazione di un dominio, è necessario ricaricare manualmente la configurazione. Accedi al tuo host ed emetti questo comando:

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

Ecco una bella risorsa con maggiori informazioni sulla gestione di vms con libvirt: https://help.ubuntu.com/community/KVM/Managing

Consiglio vivamente di seguire i consigli di smccloud. Questo funziona come un incanto per me. Fai attenzione a non montare alcun volume nelle unità fisiche utilizzate nel tuo guest, altrimenti danneggierai gravemente il suo filesystem!


4
Invece di virsh define..., la raccomandazione è di usare virsh edit <NAME>Questo ti permette di modificare l'XML nel tuo editor di testo preferito e le modifiche aggiornano automaticamente la VM.
Nathan Osman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.