zalecenia dotyczące wydajnego rozwiązania do zdalnego tworzenia kopii zapasowych maszyn wirtualnych

15

Szukam rekomendacji dla tworzenia kopii zapasowych moich obecnych 6 maszyn wirtualnych (i wkrótce dojdę do 20). Obecnie prowadzę dwuwęzłowy klaster proxy (który jest bazą Debiana używającą kvm do wirtualizacji z niestandardowym interfejsem WWW do administrowania). Mam dwa prawie identyczne pudełka z amd phenom II x4 i płytami głównymi asus. Każdy z nich ma 4 500 GB dysków twardych sata2, 1 dla systemu operacyjnego i inne dane do instalacji proxy, a 3 dla mdadm + drbd + lvm do współdzielenia 1,5 TB przestrzeni dyskowej między dwoma komputerami. Montuję obrazy lvm do kvm dla wszystkich maszyn wirtualnych. Obecnie mam możliwość transferu na żywo z jednej maszyny na drugą, zazwyczaj w ciągu kilku sekund (zajmuje to około 2 minut na największej maszynie wirtualnej z systemem win2008 z serwerem m $ sql). Korzystam z wbudowanego narzędzia vzdump proxy w celu robienia migawek vm ' i przechowuj je na zewnętrznym dysku twardym w sieci. Następnie mam usługę jungledisk (używając rackspace), aby zsynchronizować folder vzdump do zdalnej kopii zapasowej poza siedzibą.

Wszystko jest w porządku i eleganckie, ale nie jest bardzo skalowalne. Po pierwsze, same kopie zapasowe mogą trwać do kilku godzin każdej nocy. Przy przyrostowych transferach na poziomie blokowania przez dżungledisk synchronizacja przenosi tylko niewielką część danych poza siedzibą, ale nadal zajmuje to co najmniej pół godziny.

O wiele lepszym rozwiązaniem byłoby oczywiście coś, co pozwala mi od razu wziąć różnicę dwóch punktów czasowych (powiedzmy, co napisano od 6 rano do 7 rano), skompresować, a następnie wysłać ten plik różnicowy na serwer zapasowy, który natychmiast prześle na zdalne przechowywanie w szafie rack. Zajrzałem trochę do ZFS i jego zdolności do wysyłania / odbierania. To w połączeniu z potokiem danych w bzipie lub czymś innym wydawałoby się idealne. Wydaje się jednak, że zaimplementowanie serwera nexenta z systemem zfs wymagałoby co najmniej jednego lub dwóch dedykowanych serwerów pamięci do obsługi woluminów blokowych iSCSI (za pośrednictwem ?? z ??) na serwerach proxy. Wolałbym, aby konfiguracja była jak najmniejsza (tj. NIE posiadająca oddzielnych serwerów pamięci), jeśli to w ogóle możliwe.

Przeczytałem także krótko o zumastorze. Wygląda na to, że może również robić to, co chcę, ale wydaje się, że wstrzymał rozwój w 2008 r.

Więc ZFS, Zumastor czy inny?

senorsmile
źródło

Odpowiedzi:

3

Może to nie być możliwe w twojej sytuacji, więc mam nadzieję, że w tym przypadku nie zostaniesz odrzucony, ale zmiana strategii tworzenia kopii zapasowych może być bardziej wydajna. Jeśli utworzysz kopię zapasową określonych danych zamiast migawek maszyn wirtualnych, kopie zapasowe będą działać znacznie szybciej i łatwiejsze będzie przechwytywanie zmian.

W zależności od maszyn wirtualnych i ich zastosowania możesz po prostu tworzyć kopie zapasowe danych w miejscu, w którym przechowujesz migawki codziennie (lub według dowolnego harmonogramu), a następnie JungleDisk może wykonać kopię zapasową tylko danych. W ten sposób bardziej wydajnie przesyłane byłyby zmienione pliki, a przestrzeń wymagana na kopie zapasowe, a także potrzebny czas byłyby zmniejszone. Ponadto nadal możesz robić migawki, aby zachować i robić to znacznie rzadziej (na przykład co tydzień).

W takim przypadku zawsze możesz po prostu przywołać nową maszynę wirtualną i przywrócić dane lub użyć starszej migawki, aby przywrócić maszynę wirtualną, a następnie użyć kopii zapasowej danych, aby przywrócić do najnowszego punktu.

Paul Kroon
źródło
1
Rozważałem już coś takiego. Problem polega na tym, że co najmniej jeden z podstawowych maszyn wirtualnych korzysta z niestandardowego oprogramowania bazy danych specjalnie dostosowanego do branży HVAC i nie ma funkcji zrzutu, którą można zobaczyć w bazie danych SQL. Eksportujemy niektóre z tych danych do M $ SQL, ale nie wszystkie, tylko raz dziennie. Niestety samo bycie administratorem sieci nie pozwala mi podejmować takich decyzji projektowych w tym, co działa w vm ... tylko w jaki sposób uruchomić vm i wykonać ich kopię zapasową.
senorsmile,
1

Gdybym robił kopie zapasowe poza siedzibą, wybrałbym następujące opcje:

(a) skrypt powłoki, który kopiuje SCP na zdalny serwer. W ten sposób możesz dodać zadanie cron, które automatycznie uruchamia skrypt tworzący kopię zapasową. Dodatkowo możesz to zrobić, aby tworzył tymczasowy plik archiwum przed faktycznym przesłaniem plików, oszczędzając w ten sposób przepustowość, nie przesyłając podczas gzipowania.

lub

(b) Zainstaluj narzędzie do zarządzania serwerem, takie jak Webmin, i zrób to, aby wykonać automatyczne kopie zapasowe. Obecnie śpiewam to na moich serwerach produkcyjnych bez żadnych problemów. Po prostu działa bezbłędnie. Poleciłbym również cloudmin (płatny) do zarządzania wieloma maszynami wirtualnymi, ponieważ zapewnia rozwiązanie typu „wszystko w jednym”.

kilka dodatkowych linków:

http://www.debianhelp.co.uk/backup.htm

http://ubuntuforums.org/showthread.php?t=35087

Mam nadzieję, że to pomaga, RayQuang

RayQuang
źródło
Dzięki! Te linki mają wiele dobrych informacji. Chodzi o to, że potrzebuję czegoś, co może działać na maszynach wirtualnych na żywo i nie muszę biegać godzinami, aby obliczyć różnice. Ostateczna pojedyncza maszyna byłaby instalacją nexenta, która mogłaby uruchamiać xen, kvm (oczywiście włączony w jądrze Linuksa) lub coś podobnego. W ten sposób mam wysoko wydajne rozwiązanie do wirtualizacji instalacji systemu Windows i Linux na plikach graficznych lub lvm (lub zvol), a także sposób na robienie nieograniczonych migawek i szybkie przenoszenie różnic z ostatniej kopii zapasowej!
senorsmile,
1

możesz zajrzeć do backuppc.

backuppc może działać na rsync, który wykonuje przyrostowe kopiowanie.

co więcej, możesz łatwo napisać czarną listę folderów, których nie trzeba kopiować. Na przykład: temp / / tmp .garbages / ...

http://backuppc.sourceforge.net/

backuppc ma przejrzysty interfejs sieciowy umożliwiający pobranie niektórych części kopii zapasowej bezpośrednio jako plik zip. Może być monitorowany przez nagios za pomocą check_backuppc.

Aligot
źródło
Myślę, że backuppc będzie idealny dla zupełnie innego projektu! Wielkie dzięki. Może być również dobrym zamiennikiem do uruchamiania zdalnych kopii zapasowych w innej witrynie, dodawania lub zastępowania jungledisk dla kopii zapasowych poza siedzibą.
senorsmile,
1

Nie jestem pewien, ile zmian architektonicznych zamierzałeś wprowadzić, aby zwiększyć skalowalność. Jeśli jednak jesteś otwarty na przełączanie platform VM, możesz spojrzeć na VMWare.

Istnieje wiele dobrych rozwiązań do tworzenia kopii zapasowych VMWare, osobiście korzystałem z VzionCore. Następnie możesz zrobić fajne rzeczy z migawkami i odzyskać czas. Istnieje nawet możliwość przełączenia awaryjnego na zdalną stronę.

JamesBarnett
źródło
Niestety szukam czegoś dość podobnego do tego, co teraz prowadzę; szczególnie musi być open source i skalowalny. Przejrzałem rozwiązania VMWare, a koszt nawet dwuwęzłowego klastra virt z dobrym zewnętrznym rozwiązaniem do tworzenia kopii zapasowych w pobliżu CDP jest bardzo kosztowny.
senorsmile,
Myślę, że masz na myśli VizionCore, a nie VzionCore.
Sean Reifschneider,
0

zfs robi to świetnie, wspominałeś już o tym wiedząc, a wadą jest to, że nie działa świetnie w skali 2 serwerów. Nie da ci również przełączenia awaryjnego DRDB, tzn. Nexenta będzie pojedynczym punktem awarii.

Możesz rozważyć zdobycie VirtualBox na OpenSolaris lub NexentaCore, ale nie tak proste jak ProxMox + DRDB, abyś mógł ponownie wykorzystać swoje istniejące maszyny.

Jeśli zmierzysz zmiany i stwierdzisz, że są wystarczająco niskie, możesz wypróbować DRDB z trzecim serwerem lustrzanym poza siedzibą - To zadziała tylko wtedy, gdy liczba zapisów jest bardzo niska na twoich maszynach wirtualnych.

Steve Radich - Windows Hosting i wydajność SQL od 1995 - http://www.BitShop.com/Blogs.aspx

Steve Radich-BitShop.com
źródło
0

Prowadzę duży klaster proxy i muszę zasugerować zmianę strategii tworzenia kopii zapasowych w porównaniu z wbudowanymi kopiami zapasowymi w stylu migawki vzdump, które zajmują wieki, są zawsze pełne, dlatego są duże i dlatego przywracanie pojedynczych plików jest wyjątkowo długie.

Rozważ rozwiązanie do tworzenia kopii zapasowych plików „gości”, których jest wiele. Backuppc, Urbackup, bacula, amanda itp ...

Będzie znacznie szybszy, zużyje znacznie mniej miejsca i będzie znacznie łatwiej przywracać określone pliki.

tomstephens89
źródło
0

Myślę, że mogłem znaleźć ostateczną odpowiedź na moje pytanie:

BUP https://github.com/bup/bup

Cechy:

  • Wykorzystuje algorytm kroczącej sumy kontrolnej (podobny do rsync) do dzielenia dużych plików na części. Najbardziej użytecznym wynikiem tego jest stopniowe tworzenie kopii zapasowych ogromnych obrazów dysków, baz danych i plików XML maszyn wirtualnych (VM), nawet jeśli zazwyczaj wszystkie są w jednym ogromnym pliku, i nie używają ton miejsca na dysku dla wielu wersji.

    Używa formatu pliku pakietu git (system kontroli wersji Open Source), dzięki czemu możesz uzyskać dostęp do przechowywanych danych, nawet jeśli nie lubisz interfejsu użytkownika bup.

    W przeciwieństwie do git, zapisuje bezpośrednio pliki pakietów (zamiast osobnego etapu usuwania / przepakowywania), więc jest szybki nawet przy niewiarygodnie dużych ilościach danych. Ulepszone formaty indeksu bup pozwalają także na śledzenie znacznie większej liczby nazw plików niż git (miliony) i śledzenie znacznie większej liczby obiektów (setek lub tysięcy gigabajtów).

    Dane są „automatycznie” współdzielone między przyrostowymi kopiami zapasowymi bez konieczności określania, która kopia zapasowa jest oparta na którym innym - nawet jeśli kopie zapasowe są tworzone z dwóch różnych komputerów, które nawet się nie znają. Po prostu powiedz bup, aby tworzył kopie zapasowe, a to oszczędza tylko minimalną ilość potrzebnych danych.

    Możesz wykonać kopię zapasową bezpośrednio na zdalnym serwerze bup, bez potrzeby tworzenia ton tymczasowego miejsca na dysku na komputerze, którego kopię zapasową chcesz wykonać. A jeśli twoja kopia zapasowa zostanie przerwana w połowie, następne uruchomienie rozpocznie się w miejscu, w którym zostało przerwane. I łatwo jest skonfigurować serwer bup: po prostu zainstaluj bup na dowolnym komputerze, na którym masz dostęp ssh.

    Bup może użyć redundancji „par2”, aby odzyskać uszkodzone kopie zapasowe, nawet jeśli na dysku nie wykryto uszkodzonych sektorów.

    Nawet jeśli kopia zapasowa jest przyrostowa, nie musisz się martwić przywróceniem pełnej kopii zapasowej, a następnie każdą z nich po kolei; przyrostowa kopia zapasowa działa tak, jakby była pełną kopią zapasową, zajmuje tylko mniej miejsca na dysku.

    Możesz zamontować swoje repozytorium BUP jako system plików FUSE i uzyskać dostęp do treści w ten sposób, a nawet wyeksportować je na Sambie.

Edycja: (19 sierpnia 2015 r.) I pojawia się jeszcze jedno świetne rozwiązanie, które jest jeszcze lepsze: https://github.com/datto/dattobd

Pozwala na tworzenie migawek na żywo, zasadniczo zapewniając funkcje podobne do COW do każdego zwykłego starego systemu plików w systemie Linux.

Edycja: (15 lipca 2016 r.) I jeszcze inne świetne rozwiązanie, które wyrzuca bup z wody: https://github.com/borgbackup/borg

Jest to szczególnie lepsze niż bup w przycinaniu. Wydaje się, że ma doskonałą obsługę kompresji, szyfrowania i wydajnej deduplikacji. dattobd + borg ftw !!!

senorsmile
źródło