Jak skopiować szablony maszyn wirtualnych między centrami danych vSphere?

9

Architektura tła / środowiska:

Moje obecne środowisko $corp_overlords$jest skonfigurowane w modelu hub-and-speak z dobrze wyposażonym technologicznie hubem domowego biura (SAN, klaster bladecenter / bladesystem ESXi, światłowodowe połączenie internetowe itp.) Podłączonym do wielu zdalnych szprych witryny, które są nie tak dobrze i zwykle zawiera pojedynczy serwer hosta ESXi i łączy się z koncentratorem biura domowego za pośrednictwem T1. Cały ruch pochodzący z dowolnej zdalnej lokalizacji kieruje z powrotem do domowego biura przez „sieć MPLS” (która jest tak naprawdę tylko T1 łączącym zdalną stronę z domowym biurem).

W biurze domowym w sieci SAN mamy wiele szablonów maszyn wirtualnych, które utworzyłem w celu wdrażania maszyn wirtualnych. Są one przechowywane w wolumenie NFS, czyli magazynie danych vSphere, dołączonym do obiektu centrum danych biura domowego w ramach vSphere.

Każda zdalna witryna ma odpowiedni obiekt centrum danych vSphere, zawierający obiekt magazynu danych, który jest podłączony do lokalnie podłączonej pamięci na serwerze hosta ESXi fizycznie zlokalizowanej w zdalnej witrynie.

Ponieważ te szablony maszyn wirtualnych istnieją w woluminie NFS, zajmują ~ 40 GiB (cienkie przydzielanie). Jako pliki w systemie plików NTFS (lub Linux FS) zajmują ~ 100 GiB.

Pytanie:

Jak mam skopiować te 40 GiB danych cienko alokowanych (które zajmują 100 GiB przestrzeni systemu plików) między moimi witrynami?

Mam ograniczenia, które mam na to około 5 dni i nie mogę (zauważalnie) zakłócać „normalnego ruchu sieciowego”.

Beznadziejny
źródło
Masz w domu bladecentre ?!
Tom O'Connor
@ TomO'Connor Heh. Nie moje domowe biuro, ale witryna „domowego biura” korporacji . Chociaż jestem pewien, że gdybym ładnie o to poprosił, mógłbym odciągnąć starą EVA SAN i HP Bladesystem na własny użytek ... spodziewaj się, że nie mam ~ 25 000 dolarów, które kosztowałyby mnie prowadzenie domu.
HopelessN00b
Och To ma sens ... po prostu
Tom O'Connor

Odpowiedzi:

13

Co powiesz na użycie ovftool do kopiowania szablonów bezpośrednio między hostami?

Użyłem tego wcześniej dla maszyn wirtualnych i działa całkiem dobrze. Nie jestem pewien, czy to również działa w przypadku szablonów, ale jeśli nie, możesz po prostu tymczasowo ukryć szablony na maszynach wirtualnych w celu ich skopiowania.

Instrukcje, z przykładem są tutaj .

Możesz również użyć ovftool do konwersji szablonów na .ovfpakiety, które powinny być bardzo kompaktowe, a następnie przenieś pakiety między centrami danych za pomocą BITS lub FTP lub SCP lub dowolnego protokołu, który chcesz.

VFrontDe
źródło
Fajna opcja !! Często zapominam o narzędziach cli.
ewwhite
Zredagowałem twoją odpowiedź i dodałem tam ostatnie zdanie, ponieważ tak właśnie skończyłem. Konwersja szablonów na .ovfpakiety spowodowała, że ​​każdy miał po kilka GB, które mogłem łatwo przenosić między stronami za pomocą BITS.
HopelessN00b
8

Opcje:

Z tego, co widzę, mam trzy możliwe podejścia, ale mam nadzieję, że brakuje mi lepszego, na które ktoś mógłby mnie tutaj wskazać. (Idealnie taki, w którym przenoszę tylko 40 GiB rzeczywistych danych i można go wznowić metodą „tła” lub ograniczania prędkości.)

  1. Skopiuj pliki między magazynami danych za pośrednictwem klienta vSphere.
    • Zaleta: Przeprowadzka tylko ~ 40 GiB, a nie ~ 100 GiB.
    • Wada: wszystko inne - nie może być wznowione, nie działa w tle / przepustowość, interfejs SUCKS .

  2. Skopiuj plik między gośćmi systemu Windows za pomocą usługi BITS
    • Zaleta: możliwość wznowienia, transfer w tle.
    • Wada: przeniesienie ~ 60 GiB danych, które tak naprawdę nie istnieją.
    • Bonus: używa PowerShell. <3
    • Double Secret Probation Bonus: PowerShell Remoting pozwala to zrobić za pomocą jednego polecenia.

  3. Skopiuj plik między hostami ESXi za pośrednictwem SCP
    • Zaleta: Ograniczenie prędkości i potencjalne wznowienie.
    • Wada: przeniesienie ~ 60 GiB danych, które tak naprawdę nie istnieją. Nie transfer w tle.
    • Premia: broda na szyi. Dodatkowa broda na szyję dla wznowienia.

  4. Lepsza opcja sugerowana w przypadku błędu serwera.
    • Zaleta: Wznawiany, dławiony szybkością transfer w tle, który przenosi tylko ~ 40 GiB danych, które istnieją.
    • Wada: Przyznanie premii za koszty nagród.
    • Bonus: Naucz się czegoś nowego, uzasadnij grę ServerFault w pracy.
Beznadziejny
źródło
Co powiesz na zmniejszenie magazynu danych za pomocą powerCLI, a następnie użycie BITS do przeniesienia pliku? Oczywiście najpierw spróbuj tego z klonem.
Nathan C
@NathanC Niezła myśl, ale magazyny danych w domowym biurze SAN to tak naprawdę woluminy NFS o pojemności 2 TB, które zawierają więcej niż tylko szablony. Brakuje również wolnego miejsca w sieci SAN, więc nie możemy przydzielić dodatkowego wolumenu NFS, aby utworzyć w tym celu nowy magazyn danych (lub przenieść rzeczy, aby otrzymać jeden magazyn danych zawierający tylko to, co musimy skopiować).
HopelessN00b
Eee, ups ... zły termin. Zmniejszenie ma miejsce w woluminie , a nie w magazynie danych. Najwyraźniej potrzebuję drinka.
Nathan C
1
Opcja 5. Skopiuj szablony do pamięci wymiennej i wyślij je do zdalnych stron.
joeqwerty
@joeqwerty Tak, Sneakernet jest zawsze opcją. Może nie z tego powodu z przyczyn nietechnicznych, ale to nie znaczy, że nie jest to dobra odpowiedź w ogólnym przypadku. (W pewnym momencie spodziewałem się, że ktoś postawi FedEx / UPS / USPS jako odpowiedź na to pytanie).
HopelessN00b
5

Oto nieco interesujący pomysł dla Ciebie. To nie pomoże w początkowym zaszczepieniu, ale zastanawiam się, czy użycie czegoś takiego jak darmowy produkt Crashplan pomógłby ci w twoich szablonach.

https://www.code42.com/store/

Robi różnicę poziomów deduplikacji i bloków, więc można ją zainstalować na jednym lokalnym serwerze w centrali jako „seeder”, a na każdym serwerze mówionym (jak sądzę w maszynie wirtualnej) jako „odbiornik”. Skonfiguruj kopie zapasowe, aby zawierały tylko folder, w którym szablony będą przechowywane na serwerze HQ. Może także tworzyć kopie zapasowe do wielu miejsc docelowych (takich jak każdy „przemówiony”) https://support.code42.com/CrashPlan/Latest/Getting_Started/Choosing_Destinations

Kroki (po skonfigurowaniu aplikacji Crashplan po każdej stronie) będą działać w następujący sposób:

  1. Skopiuj szablony z magazynu danych na serwer „seed” do katalogu na nim monitorowanego przez Crashplan. W sieci gigabitowej może to zająć trochę czasu, ale nie powinno być tak źle.
  2. Crashplan powinien monitorować i rozpocząć tworzenie kopii zapasowej plików w szprychach / odbiornikach. To oczywiście potrwa dość długo.
  3. Po początkowym zaszczepieniu / utworzeniu kopii zapasowych, gdy przyszłe szablony zmienią się, skopiuj je z rzeczywistych magazynów danych do katalogu serwera „seed”, który monitoruje Crashplan, zastępując oryginalną kopię szablonu. Następnie Crashplan dedupeuje i zastępuje tylko zmiany poziomu bloku w szprychach.

Pomysł ... może być interesującą drogą do zaryzykowania i sprawdzenia, czy działa ona jako replikacja deduplikacji / bloków biedaka dla tylko tych plików.

TheCleaner
źródło
5

Zrobiłem tego rodzaju ruch na wiele sposobów, ale biorąc pod uwagę to, co opisałeś ...

FedEx lub UPS z niespodzianką ...

Wiem, że używane serwery to HP ProLiant i Dell PowerEdge. VMware nie ma dobrego wsparcia dla urządzeń wymiennych (np. USB) jako celów magazynów danych. Jednak użycie jednego dysku logicznego RAID 0 (w HP-speak) w głównej witrynie może działać. Możesz dodawać i usuwać lokalnie podłączone dyski w systemach HP i Dell i używać ich jako środka transportu magazynów danych.

Będąc szablonami, możesz przenosić / kopiować je na dysk lokalny za pomocą vCenter. Wyślij dyski. Włóż do odbierającego autonomicznego serwera. Tablica i magazyn danych zostaną rozpoznane przez ponowne skanowanie systemu pamięci masowej. Skopiuj dane. Zysk.

Użyłem tego również jako narzędzia do inicjowania kopii do replikacji vSphere, ponieważ 24 godziny delt są o wiele łatwiejsze do zarządzania niż wielokrotne pełne synchronizacje.

ewwhite
źródło
3

Jest to metoda, której dość często używam w tego rodzaju scenariuszach. Wydaje się to sprzeczne z intuicją, ponieważ przesyłasz pliki z maszyny wirtualnej przechowywanej w magazynie danych do samego magazynu danych. Daje to jednak o wiele większą kontrolę nad sposobem realizacji transferu.

  • Użyj WinRAR lub 7Zip, aby podzielić szablon na 1 GB-2 GB części.
  • Utwórz maszynę wirtualną na serwerze ESXi w każdej zdalnej lokacji. Potrzebne są minimalne zasoby, to tylko obszar przejściowy.
  • Dołącz VMDK do każdej z tych maszyn wirtualnych, która jest wystarczająco duża, aby pomieścić przesyłane dane.
  • Zainstaluj wybrany system operacyjny i narzędzie do przesyłania (używam do tego serwera SFTP).
  • Prześlij szablon RAR'd na maszynę wirtualną pomostową.
  • Rozpakuj szablon RAR.
  • Użyj vSphere lub internetowego interfejsu użytkownika, aby przesłać szablon z pomostowej maszyny wirtualnej do magazynu danych ESXI. (będzie to przelew SZYBKI).

Plusy:

Dzieląc szablon na mniejsze części, zmniejszasz ryzyko uszkodzenia danych podczas transferu. (Jeśli plik ulegnie uszkodzeniu, wystarczy ponownie przesłać ten fragment pliku RAR, a nie cały plik 40 GB).

Przesyłasz tylko 40 GB (prawdopodobnie mniej, ponieważ RAR'ing będzie kompresował dalej).

Dostajesz wybór narzędzi do przesyłania podczas wykonywania transferu w wybranym systemie operacyjnym.

Cons:

Musisz utworzyć maszynę wirtualną pomostową. Ułatwiam to, mając wstępnie utworzony szablon o wielkości <1 GB, który zawiera tylko instalację systemu operacyjnego + serwer SFTP.

Kompresowanie / dekompresowanie szablonu 40 GB zajmie około 4-6 godzin, w zależności od zasobów procesora.

jlehtinen
źródło
1

Z tym samym problemem poradziłem sobie już kilka razy i mniej więcej w połowie przypadków odkrywam, że znacznie lepiej jest zbudować nowe maszyny w zdalnej lokalizacji. Jest to szczególnie prawdziwe w przypadku maszyn, które nazywam „szablonami”. Moja wersja tego jest dość prostą maszyną. Twoja wersja może być trochę inna.

Keith Stokes
źródło