Cluster Shared Volumes

Wsród nowosci majacych nadejsc w Windows 2008 R2, wymienia sie kilka bardzo ciekawych drobiazgów zwiazanych z klastrowaniem. Przykladem moze byc opisany juz tutaj Live Migrate. Dzisiaj pora na kolejny: Cluster Shared Volumes.

Kazdy, kto mial do czynienia z klastrami wie, ze minimalnym poziomem pozwalajacym na przydzielanie zasobów do wezlów jest grupa. To znaczy, ze jezeli w grupie mamy 2 wirtualne nazwy, 3 dyski, 4 adresy i 5 uslug, to wszystkie razem sa na wezle pierwszym, drugim albo dowolnym innym dozwolonym. Tak czy inaczej, wszystkie zawsze sa razem. Warto tu przypomniec, ze ograniczeniem jest liczba 32. Wiecej komputerów (wezlów) nie da sie polaczyc w jeden klaster.

W przypadku maszyn wirtualnych jest tak samo. Typowa grupa klastrowa utworzona w celu utrzymania wysokiej dostepnosci maszyny wirtualnej sklada sie z jakiegos dysku, z którym powiazana jest konfiguracja i na tym wszystkim jest wlasciwa maszyna Hyper-V. Problem moze sie jednak pojawic w kilku przypadkach:

  • nie mamy tylu dysków (LUNów) na macierzy ile chcemy miec maszyn wirtualnych albo uwazamy, ze jeden LUN dla kazdej maszyny to zbyt duzo
  • mamy wiecej niz 25 maszyn wirtualnych (w 32 wezlowym klastrze to nie tak strasznie duzo) i zaczyna nam brakowac liter na dyski. Mozna to obejsc (opisze niedlugo jak) ale jest to czasem klopotliwe w zarzadzaniu
  • chcemy skorzystac z dobrodziejstw dynamicznych dysków VHD. Mimo, ze jest to odradzane w produkcyjnym srodowisku, to jednak czasem sie przydaje. Jezeli i tak rezerwujemy caly LUN, to dysk dynamiczny nie daje nam oczekiwanych korzysci a czasem milo byloby na macierzy 1TB zmiescic 100 dysków po 100GB kazdy.

Aby wyeliminowac te i inne problemy, w Windows Server 2008 R2 wprowadzono nowa funkcjonalnosc: Cluster Shared Volumes czyli wolumeny wspóldzielone. Kazdy pewnie slyszal, ze klaster wymaga wspóldzielonych dysków. Jest to prawie prawda. Jezeli mamy takie dyski i nie mamy klastra – mamy spora szanse na zniszczenie danych. Gdy uruchomimy klaster – okazuje sie, ze "wspóldzielone" nie oznacza, ze wszystkie wezly moga z nich czytac i pisac. Moze to robic tylko jeden wezel na raz a wspóldzielenie oznacza, ze inne wezly równiez moga stac sie wlascicielami dysku, gdy tak zadecyduje klaster. Wazne jest, ze na raz dostep ma tylko jeden chetny. Wsród wielu potencjalnie klopotliwych sytuacji wynikajacych z takiego "wspóldzielenia" dla nas interesujaca jest ta, w której chcemy, aby na jednym dysku fizycznym kilka maszyn wirtualnych moglo trzymac swoje pliki VHD, przy czym chcielibysmy, zeby mogly one pracowac na róznych wezlach. Czyli w skrócie cos dla klastrów Microsoft zupelnie rewolucyjnego: wlascicielem dysku jest jeden wezel a wlascicielem maszyny, która z niego korzysta – drugi.

Otóz w Windows Server 2008 R2 da sie tak!

csv

Wystarczy miec w klastrze jakies niezagospodarowane dyski, wybrac opcje Cluster Shared Volumes i wskazac dysk. Gotowe. Dysk zostaje zamapowany jako folder w C:\ClusterStorage\VolumeX, gdzie X to kolejne numery dla kolejnych wolumenów. Co wazne, folder taki jest dostepny na kazdym wezle klastra, niezaleznie od tego, kto dokladnie jest wlascicielem dysku. W folderze takim mozna sobie zakladac na przyklad wirtualne maszyny i korzystac z wielu maszyn na jednym fizycznym dysku. Bardzo wygodna opcja.

Dodatkowa zaleta Cluster Shared Volumes jest to, ze skoro sa one dostepne na kazdym wezle, to nie musza sie przelaczac podczas przenoszenia grup zasobów. Czyli standardowa procedura migracji wygladajaca tak: usluga offline na pierwszym wezle, dysk offline, przeniesienie dysku, dysk online, usluga online na drugim wezle, sprowadza sie do: usluga offline na pierwszym wezle, usluga online na drugim wezle. Przeniesienie dysku nie trwa zazwyczaj bardzo dlugo, ale dzieki zastosowaniu CSV, w ogóle nie powoduje dodatkowego czasu przestoju.

Cenna cecha Cluster Shared Volumes moze byc równiez mozliwosc "przezycia" przez usluge sytuacji, gdy wlasciciel dysku utraci z nim lacznosc. W przypadku CSV, kto inny ta lacznosc zapewni a z punktu widzenia uslugi folder w C:\ClusterStorage\ bedzie caly czas normalnie dostepny.

Tak jako ciekawostke na koniec, warto wspomniec, ze zarzadzanie klastrem w Windows 2008 nie ma funkcjonalnosci przenoszenia nieuzywanych dysków z wezla na wezel. Czasem bywa to potrzebne, zwlaszcza podczas instalacji uslug. Zeby sobie w takiej sytuacji poradzic mozna albo uzyc prostego skryptu opartego o polecenie cluster.exe albo z GUI zalozyc nowa pusta grupe, dodac do niej ten dysk i przeniesc grupe. Grupe z dyskiem mozna przenosic a samego dysku – nie. Po przeniesieniu grupe mozna skasowac a dysk zostanie juz tam, gdzie wskazalismy. Proste i skuteczne choc malo logiczne. Przy CSV oczywiscie problem praktycznie nie wystepuje, bo dostep do dysku mamy z kazdego wezla i zupelnie nieistotne, kto w danym momencie jest jego wlascicielem.

Autor: Grzegorz Tworek [MVP]