KVM и Libvirt - Как подключить новый виртуозный диск?

Я пытаюсь добавить файл с файловым файлом на виртуальный сервер KVM. Я создал новый диск с нуля с помощью команды

dd of=/home/cloud/vps_59/test.img bs=1 seek=5G count=0

, и я надеялся получить его горячим добавлением к гостю, выполнив это в оболочке virsh:

virsh # attach-disk vps_59 /home/cloud/vps_59/test.img \
        vdd --driver=file --subdriver=raw

XML-определение домена затем становится:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/home/cloud/vps_59/root.img'/>
  <target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='disk'>
  <driver name='file' type='raw'/>
  <source file='/home/cloud/vps_59/test.img'/>
  <target dev='vdd' bus='virtio'/>
</disk>

Как вы можете видеть, имя драйвера становится неправильным, оно должно быть driver name='qemu' как существующий vda. Я пробовал с --drive=qemu, но он утверждает, что он не поддерживается.

Во-вторых, я только «вижу» вновь добавленный диск после перезагрузки виртуальной машины с Ubuntu 10.04.4 LTS. Как я могу сделать диск «hotplug»? Я хочу, чтобы виртуальная машина сразу «увидела» новый диск без перезагрузки.

22 голоса | спросил Daniele Testa 12 WedEurope/Moscow2012-12-12T03:22:04+04:00Europe/Moscow12bEurope/MoscowWed, 12 Dec 2012 03:22:04 +0400 2012, 03:22:04

1 ответ


28

Я хотел бы начать с примечания, что вам следует избегать использования virsh attach-disk с его ограниченным количеством опций. Вместо этого я бы предложил указать формат точного диска, который вы предпочитаете в отдельном временном файле XML, или с помощью приложения GUI virt-manager (для последнего пропустите первый шаг).

  1. Создайте временный файл с определением диска как ниже.

    настроить свойства в соответствии с вашей ситуацией

    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/path/to/disk-image.img'/>
      <target dev='vdb' bus='virtio'/>
    </disk>
    

    Совет. Загляните в текущую конфигурацию домена XML и скопируйте раздел <disk>.

    virsh dumpxml <domainname>
    
  2. Теперь, перед добавлением диска в текущий домен, убедитесь, что необходимые модули ядра hotplug загружены в гостевой файл.

    Некоторые дистрибутивы Linux, такие как последние CentOS /RHEL /Fedora, встроены в ядро. В этом случае проверьте CONFIG_HOTPLUG_PCI_ACPI. Если это y, тогда вы все настроены, и вы можете пропустить этот шаг.

    modprobe acpiphp
    modprobe pci_hotplug
    

    Попробуйте добавить эти два модуля в /etc/modules, если вы хотите, чтобы они загружались при загрузке по умолчанию.

  3. Добавьте диск в рабочую виртуальную машину с помощью

    virsh attach-device <domain name> /path/to/disk.xml
    

    Необязательно добавьте параметр --persistent, чтобы Libvirt обновил определение XML домена «постоянный».

  4. Наконец, проверьте внутри гостя, если диск действительно вставлен в hotplug. Ядро должно быть запущено, что можно проверить с помощью dmesg:

    [  321.946440] virtio-pci 0000:00:06.0: using default PCI settings
    [...]
    [  321.952782]  vdb: vdb1 vdb2
    

    В приведенном выше примере я добавил диск как vdb с двумя разделами в таблице разделов.

Ссылки

ответил gertvdijk 12 WedEurope/Moscow2012-12-12T03:43:19+04:00Europe/Moscow12bEurope/MoscowWed, 12 Dec 2012 03:43:19 +0400 2012, 03:43:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132