Udziały sieciowe w klastrze
Czasem zdarza sie, ze zasoby plikowe w sieci powinny miec wysoka dostepnosc. Czasem do tego, zdarza sie, ze z posród kilku dostepnych opcji, najlepiej sprawdzi sie klasyczny klaster MSCS. Nawet moze zdarzyc sie i tak, ze klient da sie przekonac, zeby ten klaster zbudowac na Windows Server 2008R2.
I wszystko jest super, póki nie okaze sie, ze majac stary serwer plików, nowy klaster i skopiowane dane, musimy teraz pracowicie jeszcze raz udostepnic wszystkie foldery konfigurujac dla kazdego z nich parametry takie jak nazwa, sciezka, opis, uprawnienia i ilosc dozwolonych uzytkowników. I to nie identycznie, ale z delikatnymi zmianami. Dla dwóch udzialów jest prosto, dla dziesieciu – da sie przezyc, dla piecdziesieciu – zaczne sie zastanawiac, czy nie mam pod reka jakiegos praktykanta a dla tysiecy...? Pozostaja rozwiazania automatyczne, czytaj skryptowe. Mialo nie byc przez jakis czas o PowerShellu, ale cóz poradze, ze wlasnie to srodowisko dziala najlepiej...?
Tak czy inaczej, przy tworzeniu udzialów dobrze sprawdza sie WMI. Majac klase Win32_Share mozna sobie prosto czytac i tworzyc udzialy i niejeden skrypt produkcyjnie to robi uszczesliwiajac uzytkowników.
Nieco gorzej jest w klastrze. Platalo mi sie po glowie, ze zrobienie udzialu przez Win32_Share zrobi go lokalnie na wezle bedacym w danej chwili wlascicielem zasobu. A nie o to chodzi! Mialo byc w klastrze. Do udzialów w klastrze byla klasa Win32_ClusterShare. Czasem tez spotykalo sie rozwiazania polegajace na uzyciu innej przestrzeni niz cimv2, czyli zasadniczo – "rzezbienie". Zalozylem wiec sobie, ze troche czasu mi na rozgryzienie tego wszystkiego zejdzie. Próby wydawaly sie obiecujace, tylko metoda Create() zamiast upragnionego 0 zwracala uparcie 25 i udzialy nie chcialy sie pojawiac.
Zaczalem wiec dlubac i szukac i szukac i szukac... I nic madrego nie znalazlem poza artykulem zupelnie nie na temat mojego problemu: https://support.microsoft.com/kb/971403 Otóz wezly klastra zapytane o udzialy, nie zwracaja informacji o udzialach lokalnych. I tu pojawilo mi sie w glowie pytanie: to co zwracaja? Oczywiscie w wersj 2008 R2, wspomniany powyzej blad dawno jest usuniety, ale i tak efekt mnie zaskoczyl: Win32_Share zwraca informacje o zasobach lokalnych i klastrowych. Szybka próba z Create() i jest! Zalozony na dysku klastra staje sie udzialem klastrowym a na innym dysku – udzialem lokalnym. Dziala to przez tak przez WMI jak i przez stare dobre "net share".
A ja tak kombinowalem. Na usprawiedliwienie mam tylko to, ze w Windows 2003 to bylo naprawde duzo bardziej skomplikowane...
Szczesliwi, którzy nie znaja starszych systemów... ;)
Autor: Grzegorz Tworek [MVP]
PS. W Windows Server 2008 nie ma juz magicznego ograniczenia do 1674 zasobów w klastrze, ale i tak nie byloby ono tutaj problemem. Tyle, ze to juz zupelnie inna historia.