Powrót do bloga

Zarządzanie pamięcią masową z automatycznymi, okresowymi migawkami

Zarządzanie pamięcią masową z automatycznymi, okresowymi migawkami

Jakiś czas temu wprowadziliśmy możliwość tworzenia migawek dysku. To bardzo przydatna funkcja, która pozwala szybko i wydajnie zapisywać stany dysków nawet na działających systemach.

Dzięki ZFS, automatyczne migawki będą zużywać tylko deltę między stanem bieżącym a momentem wykonania migawki. Oznacza to, że jeśli Twój oryginalny dysk miał 15 GB, a między migawką a stanem bieżącym zmienił się tylko 1 MB danych, rozmiar migawki wyniesie 1 MB. Jeśli zapiszesz kolejny megabajt na dysku, migawka powiększy się o kolejny megabajt.

Kolejną zaletą tego systemu jest to, że każdą migawkę można przekształcić (sklonować) w pełny dysk. Oznacza to, że można utworzyć niezależną kopię, którą można zamontować na serwerze, potencjalnie w zupełnie innym systemie pamięci masowej. W ten sposób stanowi to podstawę strategii zarządzania pamięcią masową (w zależności od obciążenia pracą).

Słowo ostrzeżenia

Chociaż korzystanie z okresowych migawek może być częścią strategii tworzenia kopii zapasowych, nierozsądne jest poleganie na migawkach jako jedynej strategii.

Istnieje również wiele sytuacji, w których korzystanie z tych migawek nie zadziała, np. tworzenie migawki działającego serwera bazy danych. Funkcja migawek może być nadal przydatna na zatrzymanych serwerach baz danych (w celu przywrócenia stanu z określonego momentu), ale ponownie, nie powinna to być jedyna strategia tworzenia kopii zapasowych.

Tworzenie automatycznych migawek

Korzystając z naszej biblioteki Pythona, automatyzacja migawek jest naprawdę prosta. Jednak biorąc pod uwagę, że musimy przechowywać dane uwierzytelniające CloudSigma w systemie, który wyzwala migawki, zdecydowanie odradzamy niebezpieczne ujawnianie danych uwierzytelniających usług produkcyjnych. Jeśli chcesz uruchomić to na przykład na serwerze chmurowym, upewnij się, że jest on odizolowany od reszty infrastruktury (na przykład za pomocą naszej funkcji zasad sieciowych) i w pełni zabezpieczony.

Po zainstalowaniu biblioteki Pythona, możesz pobrać i uruchomić skrypt w następujący sposób:

[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot.py
$ python snapshot.py drive-uuid my-snapshot
[/bash]

snapshot.py przyjmuje dwa argumenty:

  • UUID dysku, którego migawkę chcesz utworzyć
  • Przyjazną nazwę dla migawki

Po ręcznym utworzeniu migawki i zweryfikowaniu, że działa (możesz to zobaczyć w sekcji ‘snapshot’ dysku), możemy teraz to zautomatyzować.

Najbardziej odpowiednim i standaryzowanym sposobem uruchamiania takiego zadania byłoby użycie crontab (zakładając, że korzystasz z systemu Linux lub Mac OS X).

Uruchom jako ten sam użytkownik, dla którego utworzyłeś powyższą migawkę:
[bash light=”true”] $ crontab -e
[/bash]

Jeśli chcesz tworzyć migawkę każdej nocy o 1:00, dodaj następującą linię:

Zauważysz również, że skrypt będzie zapisywał logi do pliku o nazwie snapshot.log w katalogu domowym użytkownika uruchamiającego skrypt.

Automatyczne usuwanie migawek

Ponieważ migawki z czasem rosną, prawdopodobnie będziesz chciał je po pewnym czasie usunąć. Aby rozwiązać ten problem, stworzyliśmy kolejny skrypt, który może to zrobić za Ciebie. Skrypt nazywa się snapshot_purge.py i przyjmuje dwa argumenty:

  • UUID dysku
  • Liczbę dni, z których migawki chcesz zachować

Na przykład, jeśli chcesz zachować migawki z ostatnich 30 dni, możesz po prostu uruchomić:
[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot_purge.py
$ python snapshot_purge.py drive-uuid 30
[/bash]

Możesz oczywiście to również zautomatyzować. Na przykład, jeśli chcemy usunąć migawki starsze niż 30 dni, możemy dodać do naszego crontaba następujący wpis (który zostanie uruchomiony o 1:30):

Podsumowanie

To już wszystko, moi drodzy. Korzystając z tych dwóch skryptów, będziesz w stanie zautomatyzować migawki swoich dysków. Jeśli chcesz tworzyć migawki wielu dysków, po prostu dodaj więcej linii snapshot.py do swojego crontaba z różnymi UUID.

Oczywiście jedynie muskamy powierzchnię tego, co możemy zrobić z migawkami, ale mam nadzieję, że posłuży to jako szybki kurs korzystania z migawek w procedurach zarządzania pamięcią masową.

Jeśli masz bardziej zaawansowane potrzeby w zakresie retencji danych, miejmy nadzieję, że uda Ci się ponownie wykorzystać część kodu z powyższych skryptów.

author

Viktor Petersson

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.