Niezawodne wdrożenie w chmurze oznacza posiadanie dobrze przemyślanej strategii zarządzania danymi. W CloudSigma oferujemy bezpłatne funkcjonalności, takie jak tworzenie migawek (snapshotting), a także pamięć masową podzieloną na poziomy (tiered storage). Dzięki temu możliwe jest wdrożenie świetnego systemu zarządzania danymi, aby zapewnić silną ochronę dostępności i integralności danych przechowywanych w chmurze.
W tym poście udostępniamy skrypt, który pozwala zautomatyzować proces przekształcania migawki dysku w pełny dysk. Jest to świetne rozwiązanie do tworzenia kopii zapasowych różnych punktów przywracania utworzonych za pomocą funkcji kopii zapasowej dysku. Funkcjonalność tę uzyskuje się za pomocą skryptu python, który z kolei wykorzystuje darmową bibliotekę CloudSigma Python Library (można ją pobrać z tutaj).
A więc zacznijmy!
Najpierw musisz zainstalować Pythona na swoim lokalnym komputerze lub serwerze, jeśli jeszcze go nie masz. Instalacja Pythona jest ogólnie łatwa, a obecnie wiele dystrybucji systemów Linux i UNIX domyślnie zawiera najnowszą wersję Pythona. Nawet niektóre komputery z systemem Windows mają już zainstalowanego Pythona. Oto krótki przegląd instalacji Pythona dla różnych systemów operacyjnych.
Instalacja według systemu operacyjnego
Mac OS X
|
1 |
sudo pip install cloudsigma |
Ubuntu
|
1 2 |
sudo apt-get -y install python-pip pip install cloudsigma |
CentOS / RHEL
Aby zainstalować moduł CloudSigma, musisz najpierw zainstalować repozytorium EPEL, aby móc zainstalować PIP. Poniższe instrukcje dotyczą systemów RHEL 6.x / CentOS 6.x. Więcej szczegółów na temat instalacji repozytorium można znaleźć na stronie EPEL pod adresem tutaj.
|
1 2 3 4 5 |
yum install -y wget wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm yum install -y python-pip pip install cloudsigma |
Konfiguracja Pythona i skryptu
Teraz zweryfikujmy, czy Python jest poprawnie zainstalowany, za pomocą tego prostego polecenia:
|
1 |
python --version |
Wersja wyjściowa powyższego polecenia powinna być podobna do: Python 2.7.10
Po zainstalowaniu Pythona na swoim komputerze możemy przejść do konfiguracji py-cloudsigma.
Aby biblioteka CloudSigma mogła wchodzić w interakcję z API, musisz podać swoje dane uwierzytelniające.
Są one ustawiane w pliku ~/.cloudsigma.conf.
Oto przykładowa wersja pliku, który „komunikuje się” z centrum danych w San Jose. Jeśli zamiast tego chcesz korzystać z centrum danych w Zurychu, po prostu zastąp sjc przez zrh w api_endpoint oraz ws_endpoint.
|
1 2 3 4 |
api_endpoint = https://sjc.cloudsigma.com/api/2.0/ ws_endpoint = wss://direct.sjc.cloudsigma.com/websocket username = password = |
Ponieważ ten plik zawiera dane uwierzytelniające, wysoce zalecane jest ustawienie uprawnień pliku na chmod 600 tak, aby plik ten mógł być odczytywany wyłącznie przez właściciela:
|
1 |
chmod 600 ~/.cloudsigma.conf |
Teraz jesteśmy gotowi do utworzenia i wykonania skryptu python. Poniżej zamieszczamy pełny kod źródłowy, więc po prostu otwórz swój ulubiony edytor tekstu i wklej go tam lub skorzystaj z linku do pobrania tutaj
Pamiętaj, że rozszerzenie pliku musi wynosić .py podczas jego zapisywania.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/usr/bin/python import cloudsigma from pprint import pprint import time uid = raw_input("UUID migawki: ") snapshots = cloudsigma.resource.Snapshot() ssd_drive = snapshots.clone(uid) pprint(ssd_drive) time.sleep(10) drive = cloudsigma.resource.Drive() zadara_drive = drive.clone((ssd_drive['uuid']), {'storage_type': 'zadara'}) pprint(zadara_drive) zadara_ready = False while not zadara_ready: if drive.get(zadara_drive['uuid'])['status'] == 'unmounted': zadara_ready = True print "Gotowe" drive.delete(ssd_drive['uuid']) else: time.sleep(1) |
Uruchom skrypt za pomocą następującego polecenia:
|
1 |
.py |
Głównym celem tego skryptu jest maksymalne ułatwienie i uproszczenie zarządzania pamięcią masową, szczególnie dla nowych użytkowników oraz tych, którzy wolą konsolę od interfejsu graficznego 🙂
Komentarze
Brak komentarzy. Bądź pierwszy.