Temat: Odzyskanie maszyny wirtualnej
XenCenter nie używam, ale mogę napisać jak podłączyć obiekty VDI z jednej wirtualnej maszyny to drugiej przy użyciu CLI.
Ponieważ, odzyskałeś wirtualną maszynę ze snapshotu. Wykorzystamy to.
Do poniższej procedury potrzebna będzie inna/nowa/działająca wirtualna maszyna. Nazwijmy ją
"ubu64-new".
Będąc w CLI lokalizujemy jej UUID:
xe vm-list name-label="ubu64-new" --minimal
Dla potrzeb poniższej procedury umówmy się, że otrzymany UUID przetrzymujemy w zmiennej
NEW_UUID.
Następnie, potrzebujemy listę obiektów VDI podłączonych (poprzez VBD) do twojej odzyskanej ze snapshotu wirtualnej maszyny (
x-ubuserv).
xe vm-disk-list name-label="x-ubuserv"
Otrzymasz listę obiektów VBD wraz z odpowiadającymi im obiektami VDI. Interesują Cię parametry UUID obiektów VDI.
Wybieramy dysk, który chcemy odzyskać/naprawić i podłączamy do nowej wirtualnej maszyny (
ubu64-new), której UUID mamy w umownej zmiennej NEW_UUID:
xe vbd-create vm-uuid=NEW_UUID vdi-uuid=VDI_UUID device=DISK_NUM bootable=false type=Disk
gdzie:
-
NEW_UUID to UUID naszej nowej wirtualnej maszyny (
ubu64-new),
-
VDI_UUID to UUID podłączanego dysku ze snapshotu
-
DISK_NUM to numer urządzenia pod jakim dany dysk zostanie podmontowany do nowej wirtualnej maszyny
Zakładając, że nowa wirtualna maszyna (
ubu64-new) ma juz dwa dyski, komenda mogłaby wyglądać następująco:
xe vbd-create vm-uuid=NEW_UUID vdi-uuid=VDI_UUID device=2 bootable=false type=Disk
Otrzymasz w rezultacie UUID obiektu VBD, który łączy nową wirtualną maszynę z dyskiem, który montujemy. Ponieważ device=2, dysk powinien pojawić się pod urządzeniem
/dev/xdvc.
Jeżeli wirtualna maszyna (
ubu64-new) jest włączona i obsługuje hot-plug, możemy te dyski podłączyć w locie:
xe vbd-plug uuid=VBD_UUID
gdzie
VBD_UUID to właśnie identyfikator otrzymanego obiektu VBD w poprzednim kroku.
Jeżeli wirtualna maszyna (
ubu64-new) jest wyłączona, po starcie, będzie widziała nowy dysk.
Logując się na nową wirtualną maszynę
ubu64-new, powinieneś mieć już dostęp do starego dysku, który właśnie podmonotwałeś (fdisk, mount, etc.).
Po skończonej pracy/naprawie, jeżeli chcesz odmontować dysk to:
xe vbd-unplug uuid=VBD_UUID
a, żeby usunąć utworzony wcześniej obiekt VBD:
xe vbd-destroy uuid=VBD_UUID
hint 0: dom0 to też wirtualna maszyna i do niej też można montować dyski z innych maszyn, ale wydaje mi się, że lepiej byłoby zrobić to na nowej wirtualnaj maszynie (ubu64-new) i izolowanym środowisku.
hint 1: jeżeli dwie wirtualne maszyny posiadają VBD połączone z tym samym VDI to tylko jedna maszyna może być wystartowana
hint 2: przed odmontowaniem obiektu VBD należy odmontować urządzenie w systemie operacyjnym