Warning |
---|
Usługa Cloud Computing została wycofana |
Cloud Computing - obliczenia w chmurze - to rodzaj korzystania z mocy obliczeniowej i przestrzeni pamięci masowej polegający na tym, że użytkownik uzyskuje do swojej dyspozycji zestaw maszyn wirtualnych z uprawnieniami administratora do systemu operacyjnego.Maszyny pracują w wyizolowanej sieci lokalnej z możliwością udostępnienia wyselekcjonowanych usług publicznie.Dostęp do maszyn uzyskuje się za pomocą tunelu VPN. Maszyny mogą mieć podłączone odpowiednie zasoby dyskowe bezpośrednio, bądź użytkownik może korzystać z przestrzeni ogólnodostępnej. Odpowiedzialność za zarządzanie maszynamileży maszynami leży w gestii użytkownika, natomiast PL-Grid prowadzi monitorowanie mające na celu prawidłowe funkcjonowanie i bezpieczeństwo infrastruktury. Obecnie platforma Cloud Computing jest na etapie prototypowania i możliwe jest jedynie korzystanie z niej na zasadzie testowania.
Lokalizacja | ACK CYFRONET AGH |
---|---|
Nazwa systemu | Zeus |
Nazwa maszyny dostępowej | ui.cyfronet.pl |
Port dostępowy | 22 |
Kontakt (maszyna dostępowa) | cyfronet-lcg2@helpdesk.plgrid.pl |
Kontakt (usługa Cloud) | Cloud@helpdesk.plgrid.pl |
Dostęp do platformy Cloud Computing jest możliwy jednie z klastra Zeus.
Należy zatem najpierw uzyskać w Portalu PL-Grid :
Następnie należy:
W celu uzyskania dostępu do platformy należy uprzednio posiadać:
Przed rozpoczęciem pracy z platformą “Cloud Computing” należy uzyskać do niej dostęp z poziomu Portalu.
W tym celu należy:
Po aktywacji usługi przez administratora Po pozytywnym rozpatrzeniu wniosku można rozpocząć używanie platformy zgodnie z poniższą instrukcją.
Zestaw aplikacji klienckich umożliwiających zarządzanie usługą został udostępniony na UI w ACK CYFRONET AGH. Pracę należy rozpocząć od zalogowania się za pomocą klienta SSH na ui.cyfronet.pl .– więcej informacji o logowaniu
...
Note | ||
---|---|---|
| ||
Poprzednio stosowany moduł cloud/one-client jest nadal dostępny dla zachowania zgodności wstecznej - jednak ze względu na wygodę zalecamy moduł opisany poniżej. Jednocześnie informujemy, że moduł cloud/one-client może zostać usunięty w przyszłości. |
Przed rozpoczęciem pracy z klientem niezbędne jest załadowanie modułu cloud/rest-api-client. Operację tę można przeprowadzić . Operację tę można przeprowadzić za pomocą polecenia:
module add cloud/onerest-api-client
...system powinien odpowiedzieć komunikatem:
'cloud/
onerest-api-client/
current1.0' load complete.
'ruby/1.8.7-
p330.el5' load complete.p330.el5' load complete.
Note | ||
---|---|---|
| ||
Prosimy do generowania certyfikatu stosować polecenie "voms-proxy-init", nie "grid-proxy-init". Osoby nie posiadające certyfikatu mogą skorzystać z poprzedniej wersji nie wymagających certyfikatów dostępnej po załadowaniu modułu cloud/one-client lecz wersja ta zostanie niebawem usunięta. |
Wykonananie jakiejkolwiek operacji za pomocą w/w modułu wymaga uprzedniego załadowania modułu cloud. W tym celu prosimy wykonać polecenie:
voms-proxy-init
Jeśli posiadamy prowidłowo zlokalizowany certyfikat gridowy i klucz do niego zostaniemy poproszeni o hasło a następnie, po podaniu prawidłowego hasła, poinformowani o sukcesie procedury generowania "proxy":
Enter GRID pass phrase for this identity:
Created proxy in /tmp/x509up_uXXXXX.
Your proxy is valid until ...
Od tego momentu kolejne polecenia nie będą wymagać podawania hasła (z wyjątkiem polecnia oneport).
W ramach usługi dostępny jest zestaw obrazów systemów operacyjnych, które mogą zostać uruchomione przez użytkowników jako instancje maszyn wirtualnych. Ponieważ podstawową cechą usługi jest jej elastyczność lista ta może dynamicznie się zmieniać dostosowując się do wymagań.
W związku z tym przed utworzeniem nowego szablonu maszyny zalecamy zapoznanie się z aktualną listą poprzez wywołanie komendy:
oneimage list
Następnie po zapytaniu “Login” należy podać login użytkownika PL-Grid (ten sam który został użyty do logowania na ui.cyfronet.pl) a po zapytaniu “Password” - hasło w/w użytkownika.
zalecamy zapoznanie się z aktualną listą poprzez wywołanie komendy:
oneimage list
Jeżeli certyfikaty zostały zainstalowane zgodnie z instrukcją, to powinna ukazać się lista dostępnych obrazów.
W przypadku podania poprawnych danych klient powinien odpowiedzieć listą aktualnie dostępnych systemów operacyjnych w postaci tabeli. Najistotniejsze pola oznaczone są jako “ID” - identyfikator obrazu, który należy zapamiętać/zapisać, gdyż jest on niezbędny do stworzenia szablonu wirtualnej maszyny i “NAME” - czyli nazwa obrazu umożliwiająca odnalezienie właściwego obrazu.
W przypadku generycznych obrazów systemów określa ona nazwę systemu operacyjnego / dystrybucji oraz wersję. W przypadku specjalizowanych obrazów na potrzeby konkretnych zespołów naukowych (np. zawierających specjalistyczne oprogramowanie) nazwa ta jest indywidualnie uzgadniania z zespołem.
Podobnie jak identyfikator obrazu – identyfikator wirtualnej sieci jest niezbędny do stworzenia szablonu używanego do uruchamiania instancji maszyn wirtualnych.
Listę sieci wirtualnych można uzyskać za pomocą komendy (jak poprzednio zostaniemy zapytani o login i hasło):
onevnet list
W odpowiedzi powinna zostać zwrócona tabelka podobna do poprzedniej – również zawierająca pola ID i NAME. Wszystkie osoby posiadające dostęp do usługi mają dostęp do sieci o ID 0 (LAN_PLG_COMMON) - jest to wspólna sieć przydzielające prywatne adresy IP (dostęp z zewnątrz możliwy jest poprzez opisany poniżej mechanizm przekierowania portów TCP/UDP lub poprzez usługę dostępową PL-Grid VPN). Niektóre osoby mogą posiadać dodatkowo dostęp do wydzielonych sieci - będą one wtedy wyświetlone również w odpowiedzi na powyższe polecenie.
Przed uruchomieniem maszyny wirtualnej konieczne jest istnienie jej szablonu. Określa on m.in. powiązanie między ID obrazu systemu operacyjnego, ID wirtualnej sieci oraz kluczem publicznym, który ma zostać umieszczony w maszynie (w celu umożliwienia zalogowania się na maszynę przez SSH z użyciem klucza prywatnego). Dlatego też dla każdej w/w trójki musi zostać utworzony nowy szablon, jednak później może on być używany do uruchomienia wielu instancji maszyn wirtualnych (tego samego typu).
W celu ułatwienie tworzenia i rejestracji szablonów udostępniliśmy specjalny skrypt, który należy uruchomić w następujący sposób:
onegentemlonegentempl.sh
Na kolejne pytania skryptu należy odpowiedzieć zgodnie z poniższymi wskazówkami:
...
...
W odpowiedzi system powinien wyświetlić ID zarejestrowanego szablonu, który będzie potrzebny do uruchomienia maszyny wirtualnej. W przyszłości możliwe będzie odnalezienie tego identyfikatora zgodnie z procedurą opisaną w kolejnym punkcie.
Jeśli już wcześniej utworzyliśmy szablon maszyny wirtualnej, a nie wiemy jakie posiada on ID możemy uzyskać tę informację za pomocą komendy:
...
W odpowiedzi powinniśmy uzyskać tabelę podobną jak poprzednio zawierającą m.in. pola ID i NAME. ID jest poszukiwanym identyfikatorem maszyny, natomiast pole NAME utworzonego w/w skryptem szablonu zawsze zaczyna się od sekwencji AUTO<ID>- gdzie <ID> zastąpione jest numerem obrazu – np. AUTO3-... .
Jeśli jesteśmy pewni, że nie będziemy potrzebowali tworzyć kolejnych maszyn wirtualnych danego typu możemy usunąć wcześniej utworzony szablon. W tym celu możemy posłużyć się poleceniem:
...
...zastępując <ID> przez właściwy identyfikator szablonu.
W celu uruchomienia instancji wirtualnej maszyny na podstawie uprzednio utworzonego szablonu należy wykonać polecenie:
...
Jeśli operacja ta przebiegnie poprawnie system zwróci wartość „VM ID”, czyli identyfikatora maszyny wirtualnej. Jest on niezbędny m.in. do uzyskiwania informacji o maszynie (takiej jak jej status, przydzielony adres IP), a także np. do zatrzymania i usunięcia maszyny.
Użytkownik ma możliwość przeglądania listy maszyn do których posiada uprawnienia (w szczególności – maszyn, które sam uruchomił). W tym celu należy zastosować komendę:
...
Najistotniejszym polem w tabeli (poza ID) jest pole STAT – dzięki niemu możemy szybko sprawdzić czy nasza maszyna została już przygotowana i uruchomiona – informuje o tym wpis „runn” w w/w polu.
W celu uzyskania szczegółowych informacji, takich jak adres IP niezbędny do zalogowania się na maszynę wirtualną, należy wykonać polecenie:
...
Szczególnie istotne jest oczywiście pole IP – niezbędne do uzyskania dostępu do maszyny.
W celu udostępnienia "na zewnątrz" usługi (np. SSH, HTTP) oferowanej przez oprogramowanie zainstalowane na maszynie wirtualnej możliwe jest przekierowanie portu/ów TCP i/lub UDP. Dokonać tego można za pomocą polecenia:
oneport -A -a <IP> -p <port> -P <protokól>
gdzie <IP> - to otrzymany wg. wcześniej opisanego sposobu prywatny adres IP maszyny, <port> to numer portu jaki chcemy przekierować (22, 80 itp) a <protokół> to wybrany protokół - odpowiednio tcp lub udp . Opcję -P można pominąć dla TCP (jest to domyślny protokół) stąd np. w celu przekierowania usługi SSH możemy zastsować polecenie analogiczne do poniższego (IP trzeba zamienić na właściwe):
oneport -A -a 172.16.XX.XX -p 22
W odpowiedzi powinniśmy otrzymać odpowiedź podobną do poniższej:
Successful redirectionPort redirected:
149Public IP: 149.156.XX.XX:6747 ->
Public port: YYYYY
Private IP: 172.16.XX.XX
Private port: 22 22
...bardzo istotną informacją (wartą zapamiętania) jest to co znajduje się przed '->' - jest to zewnętrzny (publiczny) adres i port którym należy się posługiwać przy połączeniach z zewnątrz (przykład został zamieszczony poniżej).
Przed właściwą próbą logowania warto upewnić się czy maszyna jest w stanie „runn”.
...
… należy zwrócić uwagę czy zapytanie ma formę podobną do powyższej – zapytanie o hasło na konto roota (a nie do w/w klucza prywatnego) jest nieprawidłowe i oznacza, że klient nie może użyć klucza. Należy się upewnić czy klucz prywatny w katalogu .ssh nie został gdzieś przeniesiony, skasowany oraz, że nie zmieniono jego uprawnień. Jeśli zaistniała któraś z powyższych operacji niezbędne będzie jej cofnięcie / przywrócenie klucza z kopii. Jeśli klucz został bezpowrotnie skasowany (nie ma jego kopii) oraz użytkownik nie utworzył innego dostępu do maszyny (inny klucz, hasło) odzyskanie dostępu do maszyny wymaga interwencji administratora platformy „Cloud Computing”.
Note | ||
---|---|---|
| ||
WAŻNE: Ze względu na stosowanie mechanizmu przekierowania portów - a co za tym idzie wspólnego zewnętrznego adresu IP dla wielu maszyn wirtualnych - klient OpenSSH w domyślnej konfiguracji po próbie dostępu do drugniej maszyny zgłosi ostrzeżenie dot. możliwego ataku Man-in-the-middle i odmówi dostępu - należy podjąć wtedy dodatkowe kroki opisane poniżej. |
Informacja o możliwym ataku wygląda następująco:
...
...w tym przypadku jest to jednak "fałszywy alarm" wynikający z faktu, że w pliku known_hosts maszyny identyfikowane są tylko po adresie / nazwie bez portu. Obecnie domyślna konfiguracja nie pozwoli na zalogowanie się w przypadku wykrycia powyższej sytuacji nawet za pomocą klucza. Aby nie usuwać za każdym razem wpisu w known_hosts istnieją 2 rozwiązania opisane poniżej.
Można ustawić każdej maszynie osobny plik do którego będą zapisywane "odciski palca" klucza poprzez dodanie do pliku ~/.ssh/config wpisu:
...
Oczywiście "cloud_p6747" należy zamienić na właściwą nazwę (podaną w pliku konfiguracyjnym). UWAGA: Jak widać powyżej nie używamy tu opcji -p gdyż numer portu zawarty jest w konfiguracji.
Note | ||
---|---|---|
| ||
To rozwiązanie wydaje się łatwiejsze (wymaga tylko pojedyńczej zmainy pliku konfiguracyjnego) lecz wpływa negatywnie na bezpieczeństwo - stąd jest mniej polecane. |
Należy raz dla danego IP (zewnętrznego) dodać do pliku ~/.ssh/config wpis:
...
W obu powyższych przypadkach po podaniu hasła do klucza użytkownik uzyskuje dostęp do konta root na maszynie wirtualnej.
Istnieje możliwość zapisania stanu maszyny wirtualniej. W wyniku tej operacji powstaje obraz systemu operacyjnego, analogiczny jak obrazy omawiane na początku tego dokumentu, który jest jednak dostępny tylko dla osoby która go zapisała. Poprzez zgłoszenie w Helpdesku można poprosić administratorów usługi o zmianę praw dostępu do tego obrazu (np. udostępnienie go w ramach grupy lub wręcz upublicznienie dla wszystkich). Obraz ten można użyć jak każdy inny do tworzenia nowych maszyn wirtualnych. Zawiera on wszystkie dane zapisane na lokalnym dysku maszyny - w tym zainstalowane oprogramowanie i dane użytkowników.
...
... w odpowiedzi system powinien zwrócić ID zaalokowanego obrazu np.:
Image ID: 17
...
Note | ||
---|---|---|
| ||
Powyższe polecenie NIE zapisuje obrazu a jedynie "oznacza go do zapisania podczas prawidłowego wyłączenia maszyny !!! |
Powyższy fakt możena potwierdzić wyświetlając listę obrazów poprzez:
...
W celu zakończenia procesu zapisu maszyny należy ją prawidłowo zatrzymać zgodne z opisem w kolejnej sekcji.
Gdy maszyna nie jest już potrzebna należy ją zatrzymać (co spowoduje jej usunięcie, z możliwością zapisu stanu jeśli maszyna została oznaczona "do zapisania") w celu zwolnienia zajmowanych przez nią zasobów. W tym celu należy wydać polecenie:
...
... patrząc na kolumnę "STAT". Zapisany obraz maszyny można uruchomić jak każdy inny dostępny obraz systemu operacyjnego.
Warning | ||
---|---|---|
|
...
Opcje tą należy używać tylko jeśli jest to absolutnie konieczne, np. maszyna którą nie zawiera istotnych danych nie chce się prawidłowo wyłączyć powyżej opisaną metodą. Spowoduje ona natychmiastowe zatrzymanie maszyny wirtualnej i bezpowrotne usunięcie jej obrazu nawet w przypadku wcześniejszego oznaczenia go do zapisu poleceniem "onevm saveas" (w tym przypdku dodatkowo powtaje niekompletny obraz). Jeśli maszyna zawiera istotne dane - nigdy nie należy używać tej opcji. W tym przypadku jeśli maszyna nie chce się wyłączyć sposobem opisanym w poprzedniej sekcji należy pozostawić ją włączoną i zgłosić ticket do Helpdesku. |
Należy pamiętać, że usunięcie maszyny wirtualnej tym sposobem spowoduje nieodwracalne skasowanie wszystkich danych z jej lokalnego dysku – należy więc upewnić się, że wszystkie wyniki prowadzonych obliczeń (oraz inne ważne dane) została skopiowane na inny serwer (np. przez SCP).
...
… zastępując <ID> identyfikatorem maszyny do usunięcia. Po potwierdzeniu operacji za pomocą loginu i hasła maszyna zostanie usunięta. Fakt usunięcia maszyny można zweryfikować przeglądając listę maszyn wcześniej opisanym sposobem.