Jakiś czas temu opisałem instalację ScaleIO w VMware vSphere, tym razem zainstalujemy ScaleIO wykorzystując wirtualne serwery z systemem CentOS 7. Wielką zaletą EMC ScaleIO jest jego ogromna uniwersalność i brak krytycznych wymagań które musielibyśmy spełnić. Aby skonstruować na własne potrzeby zasób dyskowy o dużej wydajności nie musimy godzinami analizować list zgodności HCL lub zastanawiać się co musimy kupić i ile to będzie kosztować. Możemy wykorzystać to co mamy pod ręką. Dowolny serwer (lub starą stację roboczą) z dyskami wewnętrznymi. Mogą to być też oczywiście wirtualne maszyny, można zapytać: po co? EMC ScaleIO może być doskonałym zamiennikiem rozproszonych systemów plików (open source) typu GlusterFS. Jeśli potrzebujemy kilku serwerów linuks ze współdzielonym zasobem (np. pod Apache) które rezydują w dwóch lokalizacjach (a nie mamy replikacji macierzowej) to ScaleIO jest dobrym rozwiązaniem.
Zaczynamy od przygotowania minimum trzech nodów z systemem CentOS 7 (w moim przypadku jest to sześć, im więcej tym lepiej), wymagania sprzętowe są niewielkie, 2xCPU i 2GB RAM. Pamiętajmy, że ScaleIO działa podobnie do klasycznego RAID, im więcej nodów tym większe bezpieczeństwo danych i większa wydajność. Wymagany jest dostęp do nodów poprzez SSH (reszta to tzw. minimal install). Zainstalujemy najnowszą wersję EMC ScaleIO 1.32.3 (sam proces instalacji jest bardzo prosty i zajmuje dosłownie klika minut). W pierwszym kroku na wybranego noda kopiujemy plik instalacyjny EMC ScaleIO Gateway (RPM), eksportujemy zmienną GATEWAY_ADMIN_PASSWD wskazującą hasło admina i instalujemy rpm.
I to wszystko jeśli chodzi o CMD, teraz otwieramy przeglądarkę www i wchodzimy na adres https:\\gateway_ip. Logujemy się jako admin i hasło które ustawiliśmy.
W sekcji Packages ładujemy pozostałe pliki RPM.
Tutaj podajemy parametry naszego środowiska, jeżeli mamy tylko kilka nodów to możemy parametry podać bezpośrednio na tym ekranie. Przy większych ilościach lepiej wcześniej przygotować stosowny plik CSV zawierający wszystkie potrzebne informacje (przykładowy plik jest częścią archiwum instalacyjnego). Plusem dodajemy kolejne pozycje, każda z maszyn zarządczych (MDM/P, MDM/S, TIE) jest jednocześnie SDS/SDC (nie ma przeciwskazań aby Gateway też funkcjonowało jako SDS/SDC). Co oznaczają te skróty?
Dokładnie o usługach pisałem tutaj, przypomnę, że MDM (Data Manager) to usługa zarządzania metadanymi, działa w klastrze złożonym z trzech nodów (Primary to aktywny Manager, Secondary to zapasowy Manager, TIE Breaker pełni funkcję świadka i zapobiega sytuacjom typu split brain). ScaleIO Data Server (SDS) zarządza pojemnością i dostępem dla SDC (Data Client). W przypadku ScaleIO możemy dość dowolnie manipulować środowiskiem, mimo że wszystkie nody pełnią funkcję Data Server to dostęp do poszczególnych volumenów możemy przyznawać dowolnie (jeden lub więcej nodów). Startujemy instalację, składa się ona z kilku kroków, zanim uruchomimy kolejny, poprzedni musi skończyć się poprawnie.
Faza załadowania plików instalacyjnych na serwery zakończył się poprawnie.
Faza instalacji zakończyła się poprawnie.
Instalacja zakończona.
Instalujemy GUI for Windows, logujemy się do Primary MDM. Z poziomu GUI możemy generalnie podglądać co się dzieje w całym środowisku.
Jedną z nielicznych opcji konfiguracyjnych jakie możemy wykonać z poziomu GUI to dodanie dysków do poszczególnych SDS (ścieżkę podajemy tak jak to widzi system operacyjny czyli np. /dev/sdb). W moim przypadku do każdego noda dodałem pojedynczy dysk 200gb.
Sześć dysków po 200GB daje 1,2T widzimy jednak że już na tym etapie 203GB zostały zaalokowane jako Spare (ta wartość jest podawana w procentach (17%) i w pełni konfigurowalna z GUI i CMD). Jak zobaczycie dalej, dostępna przestrzeń jest i tak mniejsza niż te 991GB (RAID) ale i tak większa niż np. w przypadku GlusterFS gdzie mamy tyle miejsca ile jest na pojedynczym nodzie.
Dalszą konfigurację wykonujemy z CMD głównego MDM (logujemy się jako użytkownik root). W domyślnej konfiguracji mamy założoną “Protection Group (PG)” o nazwie default w skład której wchodzą wszystkie SDS (i tak jest ok, przy tak małym środowisku nie potrzebujemy więcej PG). W ramach PG jest założona domyślna “Storage Pool (SP)” o nazwie default obejmująca całą dostępną przestrzeń (i tak też jest ok w małym środowisku). Z poziomu GUI możemy zmienić nazwę PG (ja zmieniłem na PULAB), wystarczy kliknąć prawym klawiszem myszy na default i wybrać rename. To samo można zrobić z SP, wystarczy w GUI zmienić widok (prawy górny róg) z “By SDS” na “By Storage Pools” (oczywiście obydwie operacje można wykonać z CMD, pełen spis komend jest zawarty w EMC ScaleIO User Guide. W dalszej kolejności założymy pierwszy volumen w ramach SP. Zanim jednak wykonamy jakiekolwiek polecenia, musimy zalogować się jako admin do MDM. Robimy to poleceniem scli –login –username admin (jest to czasowa sesja).
Tworzymy pierwszy volumen: scli –add_volume –protection_domain_name PULAB –storage_pool_name ScaleIO-Linux –size_gb 400 –volume_name SCIO-1
Dla domyślnych parametrów stworzenie volumenu o wielkości 400GB zajęło aż 800GB przestrzeni:
Mapujemy volumen do noda: scli –map_volume_to_sdc –volume_name SCIO-1 –sdc_ip 172.18.50.82 –allow_multi_map
Flaga –allow_multi_map jest bardzo ważna, pozwoli zamapować volumen do więcej niż jednego noda.
Poleceniem /opt/emc/scaleio/sdc/bin/drv_cfg –rescan odświeżamy urządzenia w systemie.
W systemie volumen jest widoczny jako dysk /dev/sciniX z którym postępujemy tak jak z każdym innym dyskiem w systemie Linuks.
Mapujemy volumen do kolejnego noda (robimy to ciągle z poziomu MDM):
Na nowym nodzie montujemy volumen:
Podobną operację przeprowadzamy na wszystkich nodach. W przypadku Linuksa wszelkie operacje ScaleIO możemy w pełni zautomatyzować, np. za pomocą Vagrant lub Puppet. Do archiwum instalacyjnego dołączona jest pełna dokumentacja, szczegółowo wyjaśniająca wszystkie kwestie. Bardzo zachęcam do zapoznania się z EMC ScaleIO.
2 Comments
Leave a reply →