System CC1 umożliwia organizację zasobów komputerowych w formie prywatnej chmury obliczeniowej typu IaaS (Infrastructure as a Service) opartej na wirtualizacji sprzętowej. Główną funkcją systemu jest dostarczenie na życzenie: maszyny wirtualnej, przestrzeni dyskowej oraz infrastruktury sieciowej. Z punktu widzenia użytkownika maszyna wirtualna może być uważana jako fizyczny komputer zlokalizowany w odległej serwerowni. Zasoby obliczeniowe są zarządzane za pomocą dedykowanego intuicyjnego interfejsu WWW a ich rezerwacja przeprowadzana jest w sposób samoobsługowy bez udziału administratora systemu co jest jedną z kluczowych cech techniki Cloud Computing. Wirtualizacja umożliwia współistnienie maszyn o różnych systemach operacyjnych na jednym fizycznym komputerze. Zasoby są dostępne w krótkim czasie bez konieczności wcześniejszej deklaracji wielkości wymaganych zasobów i ich czasie wykorzystania. Po wykonaniu zadań, zasoby moga być zwolnione do wykorzystania przez innych użytkowników. Ten elasyczny sposób dostępu pozwala wielokrotnie zwiększyć efektywność wykorzystania infratruktury obliczeniowej. Jedną z istotnych cech techniki Cloud Computing jest iluzja nieograniczonej wielkości zasobów w dyżych systemach. W przypadku chmury prywatnej zasoby muszą być limitowane poprzez ustalenie maksymalnych wartości na liczbę dostępnych rdzeni CPU, przestrzeni dyskowej czy liczby publicznych numerów IP. Zabezpiecza to przed rezerwacją wszystkich zasobów przez pojedynczego użytkownika zapewniając tym samym stabilność działania.
Uwaga: Funkcjonalność dotycząca Farm zostanie dodana do kolejnej rewizji wersji 1.5.
Ogólny układ interfejsu WWW przedstawiony jest na rysunku CC1 Web interface layout.. Można wyróżnić cztery główne elementy:
Dostępne są także podpowiedzi on-line wyświetlane po naciśnięciu znaku zapytania. Wyświetlane są podstawowe informacje na temat funkcjonalności danego okna.
Po naciśnięciu przycisku Pomoc (ostatnia pozycja menu sesji) wyświetlane są dane kontaktowe do administartorów systemu. Dwa pola wyboru w górnym prawym rogu pozwalają na ustawienie języka interfejsu lub na przełączanie pomiędzy dostępnymi klastrami (Cluster Manager). Okna intefejsu są automatycznie odświeżane co kilka sekund. Komunikacja z interfejsem WWW odbywa się za pomocą bezpiecznego protokołu https.
Jedynie zarejestrowani użytkownicą mają dostępo do zasobów systemu. Rejestracji można dokonać za pomocą głównej strony interfejsu WWW. Standardowa procedura rejestracyjna wymaga podania adresu email na ktory wysyłane są automatyczne wiadomości z systemu po kolejnych krokach:
Opisana procedura rejestracji stosowana jest jako standardowa w systemach dostępnych publicznie. W szczególnych przypadkach sposób rejestracji może być odmienny. Rejestracja może odbywać sie bez kroku potwierdzenia za pomocą wiadomości email. Możliwa jest też opcja automatycznej aktywacji konta bezpośrednio po wypełnieniu formularza bez konieczności akceptacji przez administratora.
Po wciśnięciu pozycji Moje konto w menu sesji wyświetlane są właściwości konta. Możliwa jest zmiana danych konta za pomocą przycisku Zmień dane konta. Umieszczone poniżej Dane uwierzytelniające EC2 służą do dostępu do systemu z użyciem intefejsu EC2. Wybranie pozycji Ograniczenia konta pozwala na sprawdzenie wielkości używanych zasobów oraz ich limitów: liczby rdzeni, pamięci RAM, rozmiaru przestrzeni dyskowej (suma rozmiarów obrazów prywatnych i rozmiarów dysków wirtualnych), liczbę przydzielonych numerów IP oraz liczbę wykorzystanych punktów w danym miesiącu. Możliwa jest także zmiana hasła dostępowego (pozycja Zmien hasło).
Zarejstrowani użytkownicy mogą wejsć do systemu ze strony głównej interfejsu WWW podając nazwę użytkownika i hasło. Aby wystartować maszynę należy wybrać Maszyny wirtualne -> Nowa maszyna. Procedura uruchamiania rozbita jest na cztery proste kroki:
Drugi krok uruchamiania VM jest pokazany na rysunku VM creation.
Uruchomiona maszyna wirtualna powinna pojawić się na liscie maszyn użytkownika (Maszyny wirtualne -> Pokaż maszyny) ze statusem init, który po chwili powinien zmienić się na running (rysunek VM list ). Czas przejścia ze stanu init do stanu running zależy od rozmiaru obrazu VM oraz od obciążenia systemu a w szczególności od obciążenia jednostki roboczej na której uruchamiana jest VM. Zwykłe start VM trwa nie wiecej niż kilka minut. W poszczególnych linijkach listy aktywnych maszyn wirtualnych można wyróżnić następujące elementy:
Należy pamiętać ze VM jest uruchomiane z kopii obrazu. Wszelkie zmiany wykonywane są na dysku kopii obrazu. W celu zachowania modyfikacji nalezy wybrać opcję Zapisz i zamknij. W przciwnym wypadku można zatrzymać maszynę przyciskiem Zniszcz. Szczegółowy opis znajduje się w rozdziale Kontrola maszyny wirtualnej.
Sterowanie maszyną wirtualną odbywa się z poziomu listy maszyn Maszyny wirtualne -> Pokaż maszyny. Udostępnione są dwa sposoby. Po najechaniu na linie opisu danej VM i kliknięciu prawym przyciskiem rozwijane jest menu możliwych akcji. Drugą możliwością jest kliknięcie lewym przyciskiem na linię opisu maszyny po którym wyświetlany jest panel informacyjny pokazany na rysunku Szczegóły VM.
Wyróżniono kilka tematycznych obszarów zawierających informacje oraz możliwe akcje.
Zarządzanie
- Zniszcz - niszczy maszynę wirtualną i zwalnia jej wszystkie zasoby. Wszelkie zmiany poczynione na dysku obrazu zostają utracone.
- Zapisz zamknij - akcja możliwa tylko w przypadku aktywnej kontekstualizacji. Maszyna zostaje zamknięta w sposób kontrolowany (shutdown systemu operacyjnego) a jej obraz zostaje zapisany w puli obrazów prywatnych (Moje obrazy). W przypadku nieaktywnej kontekstualizacji, użycie akcji Zapisz i zamknij skutkuje jedynie ustawiniem nazwy i opisu obrazu a zamknięcie systemu musi zostać wykonane przez użytkownika. W przypadku zamknięcia systemu bez uprzedniego użycia Zapisz i Zamknij obraz zostanie zapisany w puli obrazów prywatnych z dołączonym do nazwy dodatkiem _autosave
- Reset - odpowiednik przycisku reset na fizycznym komputerze
- Edycja - pozwala zmienic nazwę i opis maszyny.
- Monitoring - umożliwia podgląd obciążenia maszyn wirtualnych i śledzenie historii ich wykorzystania.
Dostęp
- Aktywuj/Deaktywuj VNC - aktywacja i deaktywacja połączeń VNC.
- Konsola graficzna (VNC) - uruchamianie konsoli graficznej VNC w oknie przeglądarki z wykorzystaniem wbudowanego programu klienta VNC (wymagany plugin w przeglądarce - Java).
- Hasło VNC: Pokaż/ukryj - przycisk służy do podglądnięcia wygenerowanego losowo hasła, pozwalającego na dostęp do konsoli maszyny za pomocą VNC.
Dwa aktywne elementy w obszarze Dostęp:
- Publiczny adres IP: Podepnij - podpięcie publicznego adresu z puli własnych adresów IP. Sposób uzyskania adresu IP opisany jest w rodziale Przypinanie numeru IP. Akcja odpięcia numeru IP jest możliwa po kliknięciu na wyświetlony numer IP.
Kontekstualizacja
- Ustaw hasło - służy do zmiany hasła dla wybranego użytkownika maszyny VM.
- Ustaw klucz SSH - wstrzyknięcie klucza SSH umożliwiające login bez podania hasła.
Monitoring
Mechanizm elastycznych numerów IP pozwala optymalnie korzystać z ograniczonej puli publicznych adresów IP. Jego działanie oparte jest na dynamicznym przypinaniu i odpinaniu adresów publicznych IP bez konieczności rekonfiguracji systemu operacyjnego działającej maszyny wirtualnej. W ten sposób publiczy adres może być przypisany do jednej wybranej maszyny dla której jest to wymagane w danym momencie. Dostęp do innych maszyn użytkownika może być zapewniony za pośrednictwem maszyny z przypisanym numerem IP z wykorzystaniem sieci prywatnej. Należy pamiętać, że komunikacja sieciowa z zewnętrznymi adresami możliwa jest z każdej VM niezależne od tego czy VM ma przypisany elastyczny numer IP. Zarządzanie adresami IP odbywa się za pomocą pozycji menu Zasoby maszyn -> Elastyczne numery IP Początkowo pula adresow użytkownika jest pusta. Należy dołączyć adres IP za pomocą przycisku Poproś o nowe IP. Przydzielone adresy można przyłączać w fazie tworzenia VM lub do już uruchomionych VM.
Istnieją trzy główne metody dostępu do maszyny wirtualnej:
Istnieją 3 pule obrazów maszyn wirtualnych (pozycja Obrazy w menu głównym):
Operacje na obrazach dostępne są z poziomu popup menu, które pojawia się po przyciśnięciu odpowiedniego elementu w kolumnie Akcja na liście aktualnie przeglądanych obrazów w linijce odpowiadającej danemu obrazowi. W przypadku obrazów prywatnych dostępne akcje to:
Zewnętrzny obraz można wgrać za pomocą przycisku na pasku u dołu listy prywatnych obrazów, Wgraj obraz. Lokalizację obrazu podaje się w postaci adresu http. Wgrany obraz pojawia się na liscie obrazów prywatnych ze standardowymi ustawieniami, które można odpowiednio zmodyfikować.
Nowe wirtualne dyski danych mogą być tworzone z poziomu panelu Zasoby maszyn -> Dyski danych za pomocą przycisku Utworz nowy dysk. Nalezy wypełnić prosty formularz zawierający kilka pól takich jak nazwa, opis, rozmiar i rodzaj systemu plików (rysunek Disk creation). Alternatywną metodą jest załadowanie zewnętrznego dysku za pomocą przycisku Wgraj dysk. Ważnym parametrem dysku jest interfejs za pomocą którego dysk jest przyłączany do VM. Domyślną wartością jest USB, który ma tę zaletę że dysk może być podłączany i odłączany przy uruchomionej maszynie wirtualnej. Inne mozliwości takie jak scsi, virtio, ide, sata są mniej wygodne jako, że pozwalają na podłączenie dysku jedynie w fazie tworzenia VM.
W większosci przypadków podłączony do maszyny wirtualnej dysk należy zamontować za pomocą komend systemowych (w niektórych systemach operacyjnych dyski USB moga być montowane automatycznie). W systemach rodziny Linux można zastosować następującą procedurę montowania. Za pomocą komendy fdisk -l uzyskujemy informację o dyskach rozpoznanych przez system operacyjny. Typowy wydruk po wykonaniu polecenia powinień zawierać informację o co najmniej dwóch dyskach:
Disk /dev/sda: 10.7 GB, 10737418240 bytes
...
Disk identifier: 0x00076574
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1244 9990144 83 Linux
/dev/sda2 1244 1306 492545 5 Extended
/dev/sda5 1244 1306 492544 82 Linux swap / Solaris
Disk /dev/sdb: 5243 MB, 5243928576 bytes
...
Disk identifier: 0x00012503
Device Boot Start End Blocks Id System
/dev/sdb1 17 80016 5120000 83 Linux
Jednym z nich powinien być dysk stowarzyszony z obrazem VM oznaczonym w powyższym przykładzie jako /dev/sda i zawierającym od jednej do kilku partycji. Drugi z nich, /dev/sdb, odpowiada podłączonemu dyskowi z danymi.
Dysk z danymi, jezeli zawiera prawidłowy system plików, może być zamontowany za pomocą komendy:
mount /dev/sdb1 /mydisk
gdzie /mydisk jest nazwą pustego katalogu utworzonego wcześniej. Jeżeli dysk nie posiada systemu plików, to należy go wcześniej utworzyć używając odpowiednich komend systemowych.
W systemie CC1 wprowadzono strukturę grup użytkowników. Jej celem jest umożliwienie samoorganizacji użytkowników w zespoły, które mogą współdzielić zasoby np. tworząc pulę wspólnych obrazów grupowych w sposób opisany w rozdziale Obrazy VM. Proces tworzenia group nie wymaga interakcji z administartorem systemu CC1. Każdy użytkownik może utworzyć nową grupę za pomocą akcji Utwórz grupę z poziomu panelu Grupy -> Moje grupy. Użytkownik tworzący grupę staje się automatycznie jej administratorem. Inni użytkownicy mogą przeglądać listę wszystkich grup za pomocą panelu Grupy->Przeglądaj grupy i wystąpić o przypisanie do wybranej grupy z listy wybierając Wyślij prośbę w kolumnie Akcje w lini tej grupy. Ta prośba pojawia się po wyświetleniu szczegółów grupy przez administratora grupy, który może tę prośbę zaakceptować. Administratorem grupy może być także inny członek grupy nominowany przez administartora. Administrator może zrezygnować ze swojej funkcji w przypadku gdy grupa posiada drugiego administratora. Uzytkownik może należeć do wielu grup.
Duża skala publicznych chmur obliczeniowych stwarza w praktyce złudzenie dostępności nieograniczonych zasobów dla pojedynczego użytkownika. W przypadku prywatnej chmury, ograniczona wielkość zasobów wymaga wprowadzenia odpowiednich mechanizmów zabezpieczajacych. Aby zapewnić stabilność działania a w szczególności aby zabezpieczyć przejęcie wszystkich zasobów przez jednego użytkownika wprowadzono system limitów:
Limity CPU i sieci są sztywne. W przypadku przestrzeni dyskowej limit może zostać przekroczony np. aby uniknąc utraty danych podczas operacji zapisywania obrazu VM. Jednak po przekroczeniu limitu większość operacji użytkownika jest zablokowana. Możliwe są tylko operacje prowadzące do zwolnienia przestrzeni dyskowej. Użytkownik powinien zredukować przestrzeń dyskową albo zwrócić się do administratora o zwiększenie przydziału.
Wprowadzono także miesięczny limit wykorzystania zasobów oparty o system punktowy. Każdy szablon VM posiada dodatkowy parametr, liczbę punktów za godzinę użytkowania VM utworzonej na bazie tego szablonu. W ten sposób system rozliczeniowy oblicza całkowitą liczbę punktów zużytych od początku miesiąca na podstawie czasu działania maszyn wirtualnych danego użytkownika. W przypadku przeroczenia limitu tworzenie nowych maszyn zostaje zablokowane. Użytkownik powinien zwrócić się do administratora o zwiększenie miesięcznego limitu punktów. Należy pamiętać, ze celem wprowadzenia systemu punktowego jest optymalizacja wykorzystania mocy obliczeniowej w prywatnych chmurach gdzie nie stosuje się odpłatności za wykorzystanie zasobów. Wobec łatwości uruchamiania nowych maszyn wirtualnych, powinno to mobilizować użytkowników do zwalniania nieużywanych maszyn wirtualnych udostepniając zasoby dla innych użytkowników.
Funkcja tworzenia wirtualnych farm obliczeniowych (prekonfigurowanych klastrów maszyn wirtualnych) umożliwia łatwe przeprowadzanie intensywnych obliczeń wymagających większych mocy CPU. Farma może być utworzona na bazie dowolnego obrazu VM z rodziny Linux z zainstalowaną kontekstualizacją. Strukura farmy składa się z kontrolera klastra HN (Head Node) oraz pewnej liczby jednostek roboczych WN (Worker Node). Zarówno HN jak i WN są tworzone z tego samego obrazu VM. Proces tworzenia farmy przebiega w dwóch etapach. W pierwszym etapie operacje wykonywane są automatycznie w ramach systemu CC1 z wykorzystaniem kontekstualizacji. Procedurę tworzenia farmy rozpoczyna się za pomocą sekwencji Farmy -> Nowa farma. Czterokrokowy formularz jest podobny do formularza tworzenia pojedynczej VM (rozdział Uruchomienie maszyny wirtualnej). Dodatkowo należy podać liczbę jednostek roboczych oraz wybrac szablon. Po zatwierdzeniu za pomocą przycisku Utwórz na formularzu ostatniego kroku sprawdzana jest dostępność zasobów do utworzenia farmy. Po potwierdzeniu zasoby są rezerwowane i tworzony jest HN. Po nawiazaniu komunikacji HN z serwerem kontekstualizacji tworzone są jednostki robocze WN. Po nawiązaniu komunikacji pomiędzy WN i serwerm kontekstualizacji następuje konfiguracja całej farmy. Na HN tworzona jest para kluczy SSH, publiczny klucz jest wgrywany na wszystkie WN aby umożliwić bezhasłowy login ssh z HN do WN, na wszytkich WN dodawane są wpisy do /etc/hosts zawierające numery IP i nazwy jednostek klastra. Po pomyślnie zakończonych operacjach pierwszej fazy, farma otrzymuje status runing ktory jest wyświetlany na stronie informacyjnej (rysunek Szczegóły farm). Jedynie status runing gwarantuje poprawne zachowanie farmy.
Druga faza dotyczy konfiguracji wyższego rzędu. Nie jest integralną częścią systemu CC1 a jedynie właściwością odpowiednio skonfigurowanego obrazy VM. HN pełni rolę serwera NFS oraz kontrolera systemu zadań wsadowych. Wszystkie jednostki WN mają zamontowany katalog /home wyeksportowany z HN. Opcjonalnie można udostępnić poprzez NFS inny katalog z HN. Obecnie stosowany jest system zadań wsadowych Slurm, który ma stosunkowo prostą procedurę instalacji, jednakową zarówno dla kontrolera jak i węzłów roboczych a wybór roli kontrolera odbywa się w momencie startu Slurm’a.
Konfiguracja drugiej fazy odbywa się za pomocą skryptu umieszczonego w katalogu /opt/cc1/farm. Uruchomienie skryptu z parametrami przeprowadza odpowiednią konfigurację. Podstawowa komeda z parametrem configure:
/opt/cc1/farm/farm_configure.sh configure
uruchamia procesy systemu Slurm oraz eksportuje katalog /home na wszystkie jednostki WN. Komenda systemu Slurm sinfo powinna wyświetlic następującą informację:
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
infini* up infinite 3 idle farm-901-WN[0-2]
Pełną instrukcję dotyczącą systemu zadań wsadowych można znaleźć w Slurm User Guide na stronach WWW systemu Slurm.
Ze względu na ograniczony rozmiar dysków VM, interesującą opcją jest zamontowanie dodatkowego dysku na HN tak jak jest to opisane w rozdziale Dyski danych. W poniższym przykładzie dysk danych zamontowano w katalogu /soft. Ten katalog może być następnie wyeksportowany poprzez NFS na wszystkie jednostki WN za pomocą komendy:
/opt/cc1/farm/farm_configure.sh mount /soft
Funkcja odmontowania jest także dostępna:
/opt/cc1/farm/farm_configure.sh unmount /soft
Po zakończeniu obliczeń farma może zostać zniszczona (przycisk Zniszcz) lub zapisana (Zamknij i zapisz) W przypadku Zniszcz zarówno HN jak i wszystkie WN zostaną usunięte wraz ze wszelkimi modyfikacjami. Komenda Zamknij i zapisz powoduje zapis obrazu HN tak jak w przypadku pojedynczej maszyny VM oraz zwolnienie wszystkich zasobów. Maszyny wirtualne WN są niszczone.
Środowisko Cloud Computing jest szczególnie narażone na ataki komputerowe. Użytkownicy maszyn wirtualnych posiadają prawa administartora i powinni zapewnić odpowiednio wysoki poziom bezpieczeństwa systemu tak jak w przypadku rzeczywistych komputerów. Powinni przstrzegać minimum podstawowych reguł opisanych w popularnych artykułach dotyczących bezpieczeństwa komputerowego. Regularne uaktualnienia systemu oraz wybów trudnych haseł powinny być bezwględnie przestrzegane.