Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


26.10.2020

Nowa wersja nVision

Można już pobierać nową wersję nVision
26.10.2020

Monitorowanie infrastruktury

Vertiv Environet Alert
23.10.2020

Telefonia w chmurze

NFON Cloudya
23.10.2020

Nowości w EDR

Bitdefender GravityZone
23.10.2020

Wykrywanie anomalii

Flowmon ADS11
23.10.2020

Mobilny monitor

AOC 16T2
22.10.2020

HP Pavilion

HP zaprezentowało nowe laptopy z linii Pavilion.
22.10.2020

Inteligentny monitoring

WD Purple SC QD101
22.10.2020

Przełącznik 2,5GbE

QNAP QSW-1105-5T

Snapshoty LVM

Data publikacji: 22-10-2020 Autor: Konrad Kubecki

Logical Volume Management jest powszechnie stosowany do organizowania zasobów dyskowych w systemach Linux. Wśród wielu interesujących i przydatnych możliwości posiada m.in. obsługę migawek.

 

 LVM uwalnia od ograniczeń typowych dla zarządzania przestrzenią skonfigurowaną bezpośrednio na dyskach fizycznych. Pozwala na tworzenie wirtualnych urządzeń blokowych, które dzieli się na logiczne partycje i finalnie udostępnia systemowi operacyjnemu. Kreowanie, usuwanie, zmiana rozmiaru bez przerwy w dostępności to podstawowe operacje, które można wykonać na wirtualnych zasobach. 
 
> Wirtualizacja serwerów
 
Stosowanie LVM niesie wiele korzyści:
 
  • możliwość tworzenia nowych partycji oraz zmiana ich rozmiaru bez konieczności restartu systemu operacyjnego, a nawet bez restartowania usług korzystających z modyfikowanych partycji (nie ma również potrzeby wynoszenia danych z partycji przeznaczonej do modyfikacji – powiększanie pojemności zasobu odbywa się w trybie online i nie wymaga praktycznie żadnych kroków przygotowawczych; nawet backup danych przed pracami – choć zawsze warto go posiadać – nie jest koniecznością);
  • możliwość organizowania wielu urządzeń dyskowych w jeden większy dysk logiczny (analogicznie do korzyści osiąganych po zastosowaniu macierzy typu raid);
  • LVM doskonale sprawdza się w środowiskach budowanych w oparciu o wirtualizację serwerów (dodawanie kolejnego dysku do maszyny wirtualnej to zazwyczaj kilka prostych kroków w interfejsie webowym do zarządzania platformą wirtualizacyjną oraz kilka poleceń linii komend – w dalszej kolejności następuje już konfiguracja LVM w systemie gościa);
  • możliwość tworzenia maszyn wirtualnych posiadających niewielkie początkowe zasoby dyskowe z perspektywą ich zwiększania w trakcie użytkowania maszyny (jest to doskonała alternatywa dla strategii polegającej na przyznawaniu maksymalnych zasobów jeszcze na etapie tworzenia maszyny wirtualnej; w przypadku gdy początkowe ustalenia okażą się mocno przeszacowane, to zmniejszenie przydzielonej przestrzeni dyskowej – zwłaszcza przy braku LVM – jest stosunkowo trudne; prościej i efektywniej jest wykorzystać LVM do stopniowego powiększania partycji wedle rzeczywistych potrzeb);
  • LVM, w kontekście wirtualizacji serwerów, pozwala na szybkie reagowanie w sytuacjach, gdy na partycjach zaczyna brakować wolnej przestrzeni, a kompresowanie starych danych lub kasowanie nie wchodzi w grę;
  • możliwość tworzenia migawek stanowiących temat przewodni niniejszego artykułu.

 

> Migawki
 
Jedną z możliwości oferowanych przez LVM jest tworzenie migawek. Migawka partycji zawiera stan umieszczonych na niej danych w chwili tworzenia migawki. Służy ona do zapisania stanu partycji w wybranym punkcie w czasie. W dalszej kolejności może być wykorzystana do przywrócenia zawartości partycji. Czynność tworzenia migawki nie trwa długo, nawet gdy tworzona jest dla partycji zawierającej wiele gigabajtów lub nawet terabajtów danych. W chwili ustanawiania migawki nie są bowiem kopiowane żadne dane. Proces ten odbywa się później, już po utworzeniu snapshota, czyli w chwili gdy modyfikacji poddawany jest plik znajdujący się na źródłowej partycji. Najpierw kopiowana jest pierwotna wersja pliku do snapshota. Dopiero w drugiej kolejności ma miejsce zapis nowej wersji pliku na partycji źródłowej. Dzięki temu do snapshota trafiają pliki w wersji takiej, jaka obowiązywała podczas uruchomienia polecenia służącego do ustanawiania migawki. Warto pamiętać, że podczas kolejnych modyfikacji pliku zapis zmian odbywa się już jedynie na partycji źródłowej. Zapis pliku w migawce odbywa się jedynie przy pierwszej modyfikacji. W przeciwnym wypadku migawka nie odzwierciedlałaby stanu z konkretnego punktu w czasie. Decydując się na korzystanie ze snapshotów, należy mieć wiedzę o intensywności zmian w plikach partycji źródłowej i wydajności, szczególnie w kontekście zapisów i odczytów z dysku. Korzystanie z migawek może mieć negatywny wpływ na wydajność serwerów, na których odbywa się częsta modyfikacja wielu plików. Oznacza to konieczność skopiowania oryginalnej wersji pliku do snapshota przed pierwszym zapisem nowej wersji pliku już po ustanowieniu migawki. To dodatkowy nakład pracy dla systemu operacyjnego. 
 
Dlatego dobrą praktyką jest zidentyfikowanie serwerów, które wydają się bezpiecznymi kandydatami do stosowania snapshotów. Wyobraźmy sobie, że czeka nas zadanie dokonania aktualizacji serwera aplikacyjnego lub znaczącej modyfikacji komponentów systemu operacyjnego. Migawka wykonana przed przystąpieniem do pracy stanowi zabezpieczenie na wypadek, gdyby w trakcie tych prac pojawiły się problemy lub system nie działał prawidłowo już po ich zakończeniu. Wykorzystanie migawki do cofnięcia stanu partycji do punktu w czasie sprzed prac to sensowna metoda na kompleksowy rollback. Podobny scenariusz dotyczy wgrywania nowych wersji aplikacji. Snapshoty zapewniają możliwość kompleksowego i szybkiego cofnięcia aplikacji do stanu sprzed prac, gdyby okazało się, że działa ona nieprawidłowo, a szybka naprawa nie jest możliwa. Stosowanie migawek oferowanych przez LVM pozwala także na tworzenie backupu danych, które charakteryzują się dużą częstotliwością zmian lub długotrwałym blokowaniem plików przez procesy (na przykład bazodanowe), a celem jest wykonanie kopii zapasowej odzwierciedlającej konkretny punkt w czasie. Od momentu rozpoczęcia tradycyjnego – plikowego backupu do chwili jego zakończenia może nastąpić wiele modyfikacji w objętych backupem plikach. Doprowadzi to do niespójności backupu. Jednym z rozwiązań dla tego typu problemów jest utworzenie snapshota partycji zawierającej dane przeznaczone do ochrony, uruchomienie backupu dla danych widocznych w snapshocie i usunięcie go już po weryfikacji poprawności zadania backupu. 
 
Migawki mogą się także przydać do przetestowania działania nowych programów lub skryptów. Zanim zostaną uruchomione na produkcyjnych danych, można sprawdzić ich poprawność na snapshocie. Po zakończeniu jest on kasowany, a sprawdzone narzędzia uruchamiane na produkcji. 
 
W kontekście stosowania migawek warto pamiętać o jednej istotnej kwestii. Bardzo przydaje się świadomość o tym, jak mocno modyfikowane będą pliki na partycji źródłowej i tym samym, jak mocno będzie przyrastać zajętość migawki. Jednym z wymaganych parametrów podczas tworzenia snapshota jest określenie jego rozmiaru. Jeżeli, w trakcie istnienia migawki, zostanie ona całkowicie zapełniona danymi, to system skasuje ją. Teoretycznie najbezpieczniejszym rozwiązaniem wydaje się nadanie migawce takiego samego rozmiaru, jaki ma partycja źródłowa. Nie zostanie on wówczas zatkany i skasowany, nawet gdy modyfikacji poddane będą wszystkie pliki istniejące na partycji. Tylko czy można z czystym sumieniem powiedzieć o efektywnym gospodarowaniu zasobami, gdy dla partycji o pojemności 2 TB tworzony jest tak samo wielki snapshot? Dlatego podczas ustalania rozmiaru snapshota trzeba uwzględnić charakter plików, cel tworzenia snapshota, przewidywany czas istnienia oraz dostępność miejsca do wykorzystania. Analizując te dane, możemy dojść do wniosku, że snapshot, bez ryzyka skasowania go przez system, spełni swoją rolę, posiadając rozmiar stanowiący zaledwie 10% rozmiaru partycji źródłowej. LVM oferuje pewne ustawienia, które potrafią zabezpieczyć przed sytuacjami, w których snapshot jest kasowany ze względu na całkowite zapełnienie danymi. 
 
W pliku /etc/lvm/lvm.conf znajdują się opcje snapshot_autoextend_threshold oraz snapshot_autoextend_percent. Pierwsza z nich informuje, przy jakiej zajętości miejsca na snapshocie dokonane zostanie jego rozszerzenie. Druga definiuje, o jaki procent aktualnej przestrzeni zostanie powiększony. Dzięki uaktywnieniu powyższych opcji migawka będzie rosła automatycznie, wedle potrzeb. Rozszerzanie będzie miało miejsce, dopóki dostępna będzie wolna przestrzeń w grupie LVM. Przykładowe ustawienia mogą zatem wyglądać następująco:
 
snapshot_autoextend_threshold = 90 
snapshot_autoextend_percent = 10 
 
Powyższy zapis oznacza, że snapshot zostanie powiększony o 10% w chwili, gdy jego zapełnienie osiągnie 90%.
 
[...]
 
Specjalista ds. utrzymania infrastruktury i operacji. Zajmuje się problematyką budowy i utrzymania centrów przetwarzania danych oraz zarządzania nimi i koordynowaniem zmian dotyczących krytycznej infrastruktury IT.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"