piątek, 8 czerwca 2012

XenServer - prosty backup maszyny wirtualnej


Istnieje co najmniej kilka metod wykonywania kopii zapasowych maszyn w Citrix XenServer. Większość z nich to dość drogie rozwiązania komercyjne jak PHD Virtual Backup . Oczywiście oferują one wiele użytecznych funkcji, ale czy jest to niezbędne, gdy mamy do backupu kilka maszyn wirtualnych, które na dodatek pracują na darmowej wersji XenServera? Nie, XenServer ma wbudowane narzędzie do wykonania i przywracania kopii zapasowej maszyny. Nie jest ono może intuicyjne i wymaga nieco wiedzy od użytkownika, ale jest w pełni funkcjonalne i sprawnie wykonuje żądane czynności. Zatem, jak to zrobić?

 przygotowanie do backupu

Do wykonania kopii zapasowej musimy przygotować miejsce. Najlepiej by był to jakiś dysk sieciowy, który potrafi udostępniać swoje zasoby jako dysk NFS. Oczywiście musi być on udostępniony z prawami do zapisu. Z konsoli XenServera należy utworzyć miejsce, gdzie podmontujemy dysk sieciowy:

 ~# mkdir /mnt/nfs

a następnie montujemy zasób sieciowy

~# mount -t nfs <IP_ADDR_>:<PATH> /mnt/nfs

<IP_ADDR> - adres IP dysku sieciowego 
<PATH>     - ścieżka do katalogu na dysku sieciowym, gdzie będzie wykonywana kopia zapasowa

UWAGA: nie jest to ścieżka zasobu SMB tylko NFS więc o ile jest to możliwe, należy sprawdzić na dysku, jaka jest prawidłowa ścieżka. Np. na moim Icy Box IB-NAS4220-B ścieżka NFS do zasobu public to /mnt/ide1/public

  wykonanie backupu 

Gdy mamy już przygotowane miejsce, możemy przystąpić do wykonywania kopii zapasowej. Najpierw należy wyświetlić listę maszyn wirtualnych:

 # xe vm-list
  
uuid ( RO)           : 2eff6db7-cf0d-24c2-8009-6c45c4435e0f
     name-label ( RW): machine1
    power-state ( RO): running


uuid ( RO)           : 2e4a8a77-e75a-47e7-5eb6-1aa9b5cf6b54
     name-label ( RW): machine2
    power-state ( RO): running


Jeśli zostały zainstalowane poprawnie XenTools na maszynach wirtualnych to wykonujemy kopię zapasową maszyny

 # xe vm-export vm=<UUID> filename=<PATH and FILENAME.xva>

np.

# xe vm-export vm=2eff6db7-cf0d-24c2-8009-6c45c4435e0f filename=/mnt/nfs/machine1_backup.xva

I możemy się cieszyć wykonana kopią maszyny. Nieco problemów stworzy maszyna, która z różnych powodów nie ma zainstalowanych XenTools. Taką maszynę musimy zatrzymać przed wykonaniem kopii zapasowej i uruchomić po zakończeniu operacji

 # xe vm-shutdown vm=<UUID>

 # xe vm-start vm=<UUID>

Kopię zapasową wykonujemy w identyczny sposób jak poprzednio. 

TU jest prosty skrypt, który realizuje backup wybranych maszyn. Nazwy maszyn trzeba wpisać w zmienną $HOSTS.

  przywracanie kopii zapasowej

Przywrócenie kopii zapasowej wykonujemy w podobny sposób jak backup. Najpierw należy sie upewnić czy jest prawidłowo podmontowany zasób z kopią zapasową. Następnie należy wyświetlić listę dostępnych Storage Repository i ich UUID

# xe sr-list

uuid ( RO)                : fffb9b4d-16e5-20b0-8154-962781d362c2
          name-label ( RW): Local storage
    name-description ( RW):
                host ( RO): xen1
                type ( RO): lvm
        content-type ( RO): user


uuid ( RO)                : d5175b5c-d042-aa49-ec90-1fcc6d2fc7a2
          name-label ( RW): Local Storage 2
    name-description ( RW):
                host ( RO): xen1
                type ( RO): lvm
        content-type ( RO): user 


Przywrócenie kopii wykonujemy za pomocą komendy

# xe vm-import sr-uuid=<UUID> filename=<PATH and FILENAME.xva>

np.

# xe vm-import sr-uuid=fffb9b4d-16e5-20b0-8154-962781d362c2 filename=/mnt/nfs/machine1_backup.xva



Brak komentarzy:

Prześlij komentarz