Tworzenie kopii zapasowej gości qcow2 kvm

13

Nie mogę znaleźć żadnych dobrych informacji na temat tworzenia kopii zapasowych gości qcow2 kvm. Tak naprawdę nie interesuje mnie stan gości, tylko system plików. To pytanie sugeruje użycie, savevmale tworzy migawkę w miejscu. Chciałbym zdalnie wykonać kopię zapasową systemu plików.

Czy istnieje lepszy sposób niż:

  1. Zawieś virt_machine # wstrzymaj maszynę wirtualną
  2. rsync --sparse /home/vm/image.qcow2 /tmp/image.dec_14_2010.qcow2 # skopiuj obraz na ten sam dysk
  3. wznowić virt_machine
  4. rsync --sparse /tmp/image.dec_14_2010.qcow2 ssh: // backup @ backupmachine: / vmbackups

Istnieje kilka wad tego rozwiązania. Po pierwsze, skopiowanie dużego pliku obrazu zajmuje (stosunkowo) dużo czasu. Po drugie, zawsze muszę się upewnić, że mam wystarczająco dużo miejsca, aby wykonać kopię zapasową moich komputerów. To nie jest idealne. Czy istnieją inne lepsze sposoby zarządzania kopiami zapasowymi KVM?

Dzięki.

Osiemdziesiąt osiem
źródło

Odpowiedzi:

7

Sugerowałbym funkcję migawki qemu-nbd:

qemu-nbd --snapshot --connect=/dev/nbd0 image.qcow2

następnie zamontuj / dev / nbd0p1 (partycja 1), rsync, odmontuj i na końcu odłącz:

qemu-nbd --disconnect / dev / nbd0

phhe
źródło
5

Brudny obraz z tym (Twoja przerwa może prawdopodobnie pomóc, ale nadal może nie być w pełni spójna):

Wykonaj migawkę w systemie plików LVM z rzadkim plikiem qcow2 (ponownie zakładając, że masz miejsce na migawkę LVM)

Zamontuj migawkę LVM.

Zamontuj pilota za pomocą sshfs.

Skopiuj do punktu montowania sshfs przy użyciu rzadkiej kopii (cp --sparse = always src dest)

Mniej czasu na kopiowanie, ale nadal zajmie pełny czas, jeśli obraz jest w większości pełny.

Kopie zapasowe danych z maszyny wirtualnej są prawdopodobnie lepszym pomysłem (mniej miejsca / czasu). Traktuj poszczególne maszyny wirtualne jako zwykłe hosty, których kopie zapasowe / przywracanie należy wykonać - tj. Po prostu zdobądź to, czego potrzebujesz i zachowaj zestaw maszyn wirtualnych bez danych, aby szybko wrócić do pracy.

ax25
źródło
Ciekawe dzięki. Dla uproszczenia nie mam LVM na moim systemie plików. Wolałbym skopiować cały obraz, ponieważ pozwoliłoby mi to na przejście w tryb gotowości awaryjnej na wypadek awarii komputera w dowolnym momencie.
Osiemdziesiąt osiem
1
Nie ma problemu. LVM po prostu uratuje cię przed koniecznością zatrzymania maszyny wirtualnej i pozwoli ci na zrobienie migawki, aby nadal działała.
ax25
3

Osobiście miałem BARDZO trudny czas z tym problemem i odkryłem, że nawet po wyciszeniu kopie zapasowe gości były często niestabilne. Pamiętaj - jeśli nie próbujesz regularnie przywracać tych kopii zapasowych, naprawdę nie masz pojęcia, czy działają.

Po wielu eksperymentach postanowiłem całkowicie wykonać kopię zapasową obrazu i zdecydowałem się na tradycyjne sieciowe rozwiązanie do tworzenia kopii zapasowych, które można zastosować do serwerów bez systemu operacyjnego. W moim przypadku wybraliśmy BackupPC, który jest stary, ale bardzo niezawodny. Na każdym serwerze skonfigurowałem rozwiązanie do tworzenia kopii zapasowych dla konkretnej używanej aplikacji. Na przykład sqldump dla MySQL, wtyczka dla Joomla itp.

To PIA, ale jest znacznie szybszy i bardzo niezawodny.

hdave
źródło
Dzięki @hdave. Wydaje mi się, że dzięki takiemu podejściu tracę jedną z głównych zalet maszyn wirtualnych, a mianowicie ograniczenie. Aby przywrócić, musiałbym ponownie zainstalować wszystko ręcznie i skonfigurować. Nie do końca takie podejście, jakie chcę przyjąć. Jednak dzięki i tak jest to ważna technika.
Osiemdziesiąt osiem
100% zgadza się, że jest to królewski ból. Jeśli kiedykolwiek złamiesz ten orzech, daj nam znać, jak to zrobiłeś!
hdave
@EightyEight: Bardzo polecam oprogramowanie do zarządzania konfiguracją, takie jak Chef lub Puppet. Jest o wiele bardziej elastyczny, a także mniej bolesny, jeśli chcesz skonfigurować identyczny drugi serwer (fizyczny lub wirtualny, nie ma znaczenia). Szef kuchni ma wtyczki dla prawie wszystkich hiperwizorów i może pomóc w zapewnieniu i skonfigurowaniu hosta. W ten sposób zyskujesz mniej miejsca na kopie zapasowe (cała maszyna wirtualna jest większa w porównaniu do określonych zestawów danych) i krótszy czas wdrażania w nowych środowiskach. Ponadto CM przypomina dokumentację infrastruktury w kodzie.
Rafael Bugajewski
2

Bez względu na to, gdzie wykonasz migawkę - LVM lub qcow2, maszyna wirtualna nadal musi zostać wygaszona przed jej zrobieniem. W przeciwnym razie utracisz dane i uszkodzisz obrazy.

dyasny
źródło
nie bardziej niż gdybyś wyciągnął przewód zasilający?
1
nie więcej i nie mniej oczywiście :)
dyasny
myśląc o tym więcej, wyciszenie domeny nic nie dodaje - tak czy inaczej migawka jest „spójna z awarią”, nic więcej, nic więcej, mam rację?
errr, zdefiniuj „zgodny z awariami”. System operacyjny gościa może mieć pewne dane w locie przeznaczone na dysk v, które zostaną utracone po wyciągnięciu wtyczki. Teoretycznie te dane mogą zostać zapisane w migawce po jej uruchomieniu na żywo, ale istnieje dobry powód, aby migawki na żywo na wszystkich platformach virt obejmowały wyciszanie / rozmrażanie w agentach gości. Co więcej, jeśli dane nie zostaną utracone, nadal trafią do migawki zamiast do obrazu podstawowego, co
przeczy
„spójny z awarią” oznacza po prostu „tak spójny, jak można się spodziewać po awarii” iiuc - tj. poleganie na czasopismach itp. i akceptowanie pewnej utraty danych z powodu braku terminowego fsync. „istnieje dobry powód, dla którego migawki na żywo na wszystkich platformach virt obejmują wyciszanie / rozmrażanie w agentach gości”. Rozumiem, że dobry powód jest dokładnie taki sam, jak robienie migawki LVM - czy wiesz inaczej? KVM nie wydaje się fsynchronizować przed wygaszeniem bardziej niż migawka LVM? Oczywiście, jeśli nie używasz LVM do robienia zdjęć, głupotą byłoby nie poddawać się - ale to jest inne i nie to, co mówisz.