XenServer i przerwany export maszyny wirtualnej

Konrad Kowalski
Citrix XenServer

Podczas eksportu maszyny wirtualnej, komputer z XenCenter, wykonujący zadanie, utracił łączność z serwerem XenServer. Mimo prób, wznowienie eksportu nie powiodło się. Z poziomu XenCenter VM była oznaczona nadal jako „w trakcie eksportu”. Nie dało się z nią nic zrobić. Anulowanie zadania powiodło się dopiero po wykonaniu polecenia xe-toolstack-restart.

Niepoprawne zakończenie operacji eksportu skutkowało brakiem możliwości uruchomienia maszyny wirtualnej. Próba uruchomienia kończyła się błędem:

xe vm-list uuid=cc97de02-c753-7029-7027-d2fd4a8d97c3

uuid ( RO)           : cc97de02-c753-7029-7027-d2fd4a8d97c3
     name-label ( RW): KowalsioXenVM
    power-state ( RO): halted
xe vm-start uuid=cc97de02-c753-7029-7027-d2fd4a8d97c3
The server failed to handle your request, due to an internal error.  The given message may give details useful for debugging the problem.
message: xenopsd internal error: Storage_interface.Illegal_transition(_)

Według dokumentacji Citrixa podczas zadań takich jak eksport, kopiowanie czy przenoszenie maszyny wirtualnej, jej dysk wirtualny (VDI) przypisywany jest (poprzez „połączenie” VBD) do Dom0, który jest odpowiedzialny za przeprowadzenie żądanych przez nas operacji. Jeśli wykonywany proces z jakiś powodów się nie powiedzie, wirtualny dysk twardy VM może nadal pozostać przypisany do Dom0. Aby maszyna mogła wystartować należy to połączenie usunąć.

W tym celu na XenSerwerze, na którym znajduje się nasza VM należy odszukać uuid Dom0. Wydajemy polecenie list_domains i notujemy uuid dla id=0

[[email protected] ~]# list_domains
 0 | 788f29c6-7b97-47d9-a34b-05c54418ec68 |     R

Następnie należy wyświetlić „połączania” VBD Dom0 za pomocą polecenia vbd-list

xe vbd-list vm-uuid=788f29c6-7b97-47d9-a34b-05c54418ec68

uuid ( RO)             : 10d306b3-f58a-50d2-8753-f7246c56570a
          vm-uuid ( RO): 788f29c6-7b97-47d9-a34b-05c54418ec68
    vm-name-label ( RO): Control domain on host: xen8
         vdi-uuid ( RO): 3512e701-66e2-4117-b221-e90716fb8fa2
            empty ( RO): false
           device ( RO): sm/backend/0ce4caac-6d4f-df2e-39e3-6995de8a571c/3512e701-66e2-4117-b221-e90716fb8fa2

Po zanotowaniu uuid połącznia, należy odłączyć VBD od Dom0 (vbd-unplug)

xe vbd-unplug uuid=10d306b3-f58a-50d2-8753-f7246c56570a

A następnie usunąć (vbd-destroy)

xe vbd-destroy uuid=10d306b3-f58a-50d2-8753-f7246c56570a

Po wykonaniu tych czynności maszyna wirtualna powinna dać się uruchomić.

xe vm-start uuid=cc97de02-c753-7029-7027-d2fd4a8d97c3
xe vm-list uuid=cc97de02-c753-7029-7027-d2fd4a8d97c3
uuid ( RO)           : cc97de02-c753-7029-7027-d2fd4a8d97c3
     name-label ( RW): KowalsioXenVM
    power-state ( RO): running

Dodaj komentarz