Добавить физический диск в виртуальную машину KVM

12

Я настраиваю файловый сервер (nas4free) как виртуальную машину KVM в системе Ubuntu Server 12.04.

Как добавить физические жесткие диски непосредственно к виртуальной машине, чтобы они могли использоваться гостем (nas4free), но не хостом?

В частности, жесткий диск, который я хотел бы смонтировать, это / dev / sda (который в данный момент не смонтирован на сервере).

До сих пор я нашел два решения, но я не получил ни на работу.

Первый из них - ошибка сервера, где предлагается использовать virt-manager. Я не хотел, чтобы это работало, потому что, когда я пытаюсь выбрать существующий диск, ничего не появляется в списке. Мое лучшее предположение о том, почему это так, потому что я использую virt-manager поверх ssh, а не подключаюсь как root, должно ли это иметь значение?

Второе решение, которое я нашел здесь, это просто запустить команду (модифицировано для моей системы).

qm set nas4free -virtio /dev/sda

но это, кажется, требует Proxmox, который я не установил и, кажется, не в репозиториях по умолчанию?

Наконец, после того, как вышеперечисленное рассортировано и я могу подключить диск непосредственно к виртуальной машине, кто-нибудь знает, должен ли диск быть подключен к виртуальной машине как scsi, ide или virtio? (Я знаю, что virtio рекомендовано на связанной странице ServerFault, но я не слышал об этом раньше, так как в основном использую VMWare).

Спасибо за вашу помощь!!!

Evan
источник
1
Запустите sudo virt-manager, не нужно подключаться как root. Не знаю, virtioработает ли для физических устройств ...
Иш
@izx, спасибо за ваш ответ! Должно ли это иметь значение, хотя virt-manager запускается на моем рабочем столе, а не на сервере?
Эван

Ответы:

11

Хотя на этот вопрос уже дан ответ, вместо использования / dev / sda следует использовать / dev / disk / by-id / откуда вы получаете

    ls -l /dev/disk/by-id

Таким образом, вы защищены на случай, если диск изменится с / dev / sda на / dev / sdb.

smccloud
источник
2
На данный момент это единственный ответ (который когда-либо был) опубликован на этот вопрос. В комментариях есть некоторая информация, которая может помочь, но, насколько я могу судить, далеко не уверен, что они решат проблему. Вы можете рассмотреть возможность расширения этого, чтобы обеспечить полное решение. Если части вашего решения были разработаны другими, вы всегда можете ссылаться на них и ссылаться на них. Я сомневаюсь, что izx будет возражать .. тем более, что (когда я сейчас комментирую) izx не заходил на сайт более года.
Элия ​​Каган
Я использую, virsh attach-device domain XML-file...чтобы прикрепить диски. Вы также можете использовать идентификатор диска в <source dev='/dev/...'/>элементе?
Мистер Калвин
8

Имея точно такую ​​же потребность, я обнаружил следующее:

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

(весь следующий текст взят из вышеуказанного источника)

Это невозможно сделать с помощью virt-manager. Это заняло у меня некоторое время, чтобы выяснить. Насколько я могу сказать, virt-manager работает с пулами памяти. Вы можете превратить диск в пул хранения, но не можете добавить существующий диск непосредственно в виртуальную машину.

К счастью, это легко исправить: вы добавляете диск в конфигурационный файл xml домена вручную. Так что откройте /etc/libvirt/qemu/.xml в вашем любимом редакторе и добавьте раздел в раздел:

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

Это сделает хост / dev / md / storage доступным в гостевой системе как / dev / vdb. После изменения конфигурации домена вручную, вы должны перезагрузить конфигурацию вручную. Войдите на свой хост и выполните эту команду:

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

Вот хороший ресурс с дополнительной информацией об управлении vms с помощью libvirt: https://help.ubuntu.com/community/KVM/Managing

Я настоятельно рекомендую вам следовать советам, данным smccloud. Это работает как очарование для меня. Остерегайтесь не монтировать том на физических дисках, используемых в вашем госте, иначе вы серьезно повредите его файловую систему!

dethegeek
источник
4
Вместо virsh define...этого рекомендуется использовать virsh edit <NAME>Это позволяет вам редактировать XML в вашем любимом текстовом редакторе и автоматически вносить изменения в виртуальную машину.
Натан Осман