KVM ve Libvirt - Yeni bir virtio diski nasıl açarım?


24

Çalışan bir KVM sanal sunucusuna dosya tabanlı bir disk çalışırken eklemeyi deniyorum. Komutu kullanarak sıfırdan yeni bir disk oluşturdum

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

ve bunu bataklık kabuğunda yaparak konuğa sıcak eklemeyi umuyordum:

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

Etki alanının XML tanımı daha sonra şöyle olur:

<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>

Gördüğünüz gibi, sürücü adı yanlış olur driver name='qemu', mevcut vdadisk gibi olmalıdır . Denedim --drive=qemuama desteklenmediğini belirtiyor.

İkinci olarak, Ubuntu 10.04.4 LTS çalıştıran sanal makineyi yeniden başlattığımda yeni eklenen sürücüyü yalnızca "görüyorum". "Hotplug" sürücüsünü nasıl yapabilirim? Sanal makinenin yeni sürücüyü yeniden başlatmadan hemen "görmesini" istiyorum.


1
İlişkili olmayan öneri, qemu-imgyerine kullanın dd- argümanları daha doğal hale gelir ve aynı şeyi yapar:qemu-img create test.img 5G
chutz

Yanıtlar:


31

virsh attach-diskSınırlı seçenekleriyle kullanmaktan kaçınmanız gereken bir not ile başlamak istiyorum . Bunun yerine, tercih ettiğiniz tam disk biçimini ayrı, geçici bir XML dosyasında veya virt-manager GUI uygulamasını kullanarak (ikincisi için ilk adımı atlayın) belirtmenizi öneririm.

  1. Aşağıdaki gibi bir disk tanımı ile geçici bir dosya oluşturun .

    durumunuza uyacak şekilde özellikleri ayarlayın

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

    İpucu: Geçerli XML etki alanı yapılandırmanıza göz atın ve <disk>oradan bir bölüm kopyalayın .

    virsh dumpxml <domainname>
    
  2. Şimdi, diski geçerli bir etki alanına eklemeden önce, gerekli hotplug çekirdek modüllerinin konuğa yüklendiğinden emin olun.

    Son CentOS / RHEL / Fedora gibi bazı Linux dağıtımları çekirdekte yerleşiktir. Bu durumda kontrol edin CONFIG_HOTPLUG_PCI_ACPI. Eğer öyleyse y, hepiniz hazırsınız ve bu adımı atlayabilirsiniz.

    modprobe acpiphp
    modprobe pci_hotplug
    

    /etc/modulesVarsayılan olarak önyüklemede yüklenmelerini istiyorsanız bu iki modülü eklemeyi düşünün .

  3. Diski kullanarak çalışan VM'ye ekleyin

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

    İsteğe bağlı olarak, --persistentLibvirt'in 'kalıcı' alan XML tanımını güncellemesine izin veren seçeneği ekleyin .

  4. Son olarak, diskin gerçekten hotplug takılı olup olmadığını konuk içinde kontrol edin. Çekirdek, şu şekilde kontrol edilebileceği gibi tetiklenmelidir dmesg:

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

    Yukarıdaki örnekte vdb, bölüm tablosundaki iki bölüm gibi bir disk ekledim .

Referanslar


--persistentSanal makineyi kapattığınızda bu yapılandırmanın kaybolmadığından emin olmak için de eklemeniz gerekmez mi?
chutz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.