Próbuję dodać dysk oparty na plikach do działającego serwera wirtualnego KVM. Utworzyłem nowy dysk od zera za pomocą polecenia
dd of=/home/cloud/vps_59/test.img bs=1 seek=5G count=0
i miałem nadzieję, że zostanie to dodane do gościa na gorąco, robiąc to w powłoce virsh:
virsh # attach-disk vps_59 /home/cloud/vps_59/test.img \
vdd --driver=file --subdriver=raw
Definicja XML domeny staje się wtedy:
<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>
Jak widać, nazwa sterownika staje się błędna, tak powinno być driver name='qemu'
jak istniejący vda
dysk. Próbowałem z, --drive=qemu
ale stwierdza, że nie jest obsługiwany.
Po drugie „widzę” nowo dodany dysk dopiero po ponownym uruchomieniu maszyny wirtualnej z systemem Ubuntu 10.04.4 LTS. Jak mogę ustawić dysk jako „hotplug”? Chcę, aby maszyna wirtualna natychmiast „zobaczyła” nowy dysk bez ponownego uruchamiania.
virtualization
virtual-machines
storage
kvm-virtualization
libvirt
Daniele Testa
źródło
źródło
qemu-img
zamiastdd
- jej argumenty stają się bardziej naturalne i robią to samo:qemu-img create test.img 5G
Odpowiedzi:
Chciałbym zacząć od notatki, której powinieneś unikać przy
virsh attach-disk
ograniczonej liczbie opcji. Zamiast tego sugeruję określenie dokładnego formatu dysku w osobnym, tymczasowym pliku XML lub za pomocą aplikacji GUI virt-manager (w tym drugim przypadku pomiń pierwszy krok).Utwórz plik tymczasowy z definicją dysku taką jak ta poniżej.
dostosuj właściwości do swojej sytuacji
Wskazówka: zajrzyj do bieżącej konfiguracji domeny XML i
<disk>
stamtąd skopiuj sekcję.Teraz, przed dodaniem dysku do bieżącej domeny, upewnij się, że wymagane moduły jądra hotplug są załadowane do gościa.
Niektóre dystrybucje Linuksa, takie jak najnowsze CentOS / RHEL / Fedora, mają tę wbudowaną funkcję w jądrze. W takim przypadku sprawdź
CONFIG_HOTPLUG_PCI_ACPI
. Jeśli taky
, to wszystko gotowe i możesz pominąć ten krok.Rozważ dodanie tych dwóch modułów,
/etc/modules
jeśli chcesz, aby były ładowane domyślnie podczas rozruchu.Dodaj dysk do działającej maszyny wirtualnej, używając
Opcjonalnie dodaj
--persistent
opcję, aby Libvirt zaktualizował definicję XML domeny jako „trwałą”.Na koniec sprawdź, czy dysk rzeczywiście został włożony w trybie hotplug. Jądro powinno zostać uruchomione, co można sprawdzić za pomocą
dmesg
:W powyższym przykładzie dodałem dysk
vdb
z dwiema partycjami w tablicy partycji.Referencje
źródło
--persistent
aby upewnić się, że ta konfiguracja nie zginie po wyłączeniu maszyny wirtualnej?