QNAP x HASS.io – zabezpieczamy nasze środowisko

Kontynuujemy konfigurację HASS.io na QNAP. Dla przypomnienia, w poprzednich częściach:
1. Stworzyliśmy maszynę wirtualną i zainstalowaliśmy Ubuntu
2. Zainstalowaliśmy Docker oraz HASS.io w maszynie wirtualnej

Dzisiaj skupimy się na tym, jak na QNAP możemy skonfigurować zabezpieczenie naszego środowiska poprzez narzędzia dostępne bezpośrednio w systemie QTS.

Mechanizm migawek (snapshot) woluminów, który pozwala zabezpieczyć stan woluminów – a więc i danych, przed przypadkową modyfikacją, usunięciem czy działaniem oprogramowania typu ransomware. 

Uwaga, czas na odrobinę teorii.

Każdy QNAP NAS, który obsługuje wbudowaną wirtualizację, pozwala również na wykonywanie migawek danych. Migawki można uznać za wewnętrzne zabezpieczenie przed niepowołanymi zdarzeniami, jednak nie są typowym backupem, ponieważ nie kopiują nigdzie naszych danych.  W momencie, gdy jakiekolwiek dane są zapisywane na naszym urządzeniu, system zapisuje je na woluminie, który stworzony jest w puli dyskowej – Puli Pamięci. Pula Pamięci obejmuje fizyczne bloki dysków twardych, natomiast wolumin to ich wirtualna reprezentacja. W momencie gdy dane są zapisywane na woluminie, faktycznie lądują w fizycznych sektorach Puli Pamięci. Gdy je z woluminu odczytujemy – czytamy plik z woluminu, jednak faktycznie odczytywana jest zawartość określonych bloków. W momencie wykonywania migawki system blokuje możliwość edycji zapisanych bloków na poziomie Puli Pamięci. Na poziomie woluminu dalej można pracować na plikach, jednak zapisywane zmiany nie będą nadpisywały oryginalnych bloków w puli pamięci, ale będą zapisywane obok. Dzięki temu w momencie, gdy nasze dane zostaną np. zaszyfrowane, będzie można je odczytać z migawki – czyli z chronionych oryginalnych bloków. Co ważne, zmiany w plikach odwzorowane są na poziomie bloków, więc zapisywane są tylko faktyczne zmiany (a nie np. całe nowe pliki). Migawki mogą być wykonywane z określonym harmonogramem, możemy również określić, jak długo będą przechowywane (czyli przez jaki czas będziemy mogli wrócić do określonej wersji plików).

Jak skonfigurować mechanizm migawek?

Aby skonfigurować mechanizm migawek na QNAP, przechodzimy do aplikacji Pamięć masowa i migawki, a następnie do części Pamięć masowa/migawki.

W tym oknie zaznaczamy wolumin, a następnie klikamy przycisk Kopia migawkowa i wybieramy Manager migawek

Zostanie wyświetlone okno Managera Migawek, w którym możemy skonfigurować harmonogram tworzenia migawek, ale także w przyszłości migawki przeglądać i przywracać (całe, lub wybrane pliki albo foldery). Ponieważ dla głównego woluminu mam włączony mechanizm migawek, widzimy na ekranie zawartość ostaniej wykonanej migawki:

Aby skonfigurować tworzenie migawek, klikamy przycisk harmonogram tworzenia kopii migawkowych. Zostanie wyświetlone okno Ustawienia migawek, w którym przede wszystkim musimy włączyć harmonogram, a następnie ustawić, kiedy mają być tworzone, jak długo będziemy je przechowywać (generalnie warto tworzyć migawki minimum raz dziennie i przechowywać je minimum 3-4 dni), oraz czy chcemy tworzyć migawki inteligentne. Ostatnia opcja pozwala wykonywać migawki tylko tych danych, które pojawiły się od ostatnio utworzonej migawki. Po kliknięciu OK, harmonogram zostanie włączony i zgodnie z jego ustawieniami system będzie wykonywał migawki, zabezpieczając tym samym wszystkie dane na woluminie. Uwaga – jeśli mamy więcej woluminów, trzeba dla nich ustawić osobne harmonogramy.

No dobra, ale co nam daje włączenie mechanizmu migawek? Przede wszystkim, chroni całość naszego środowiska – a więc wszystkie dane zapisane na woluminie. To znaczy, że maszyna wirtualna też jest chroniona. Jednak tutaj warto się zatrzymać na chwilę. Generalnie maszyna wirtualna jest chroniona mechanizmem migawek, ale może się okazać, że w sytuacji awaryjnej, przywrócimy ją z migawki, a ona… nie zadziała…

Jak to, przecież migawka miała chronić wszystko na dysku!?

Tak jest – migawka chroni wszystko na dysku, jednak maszyna wirtualna jest specyficznym typem danych. Może się okazać, że podczas tworzenia migawki na poziomie bloków puli pamięci, maszyna wirtualna akurat wykonywała operacje zapisu, była aktualizowana, albo aktualizowany była któraś z aplikacji. W tej sytuacji może się okazać, że faktycznie bloki są chronione, ale są one uchwycone w takim momencie, gdy nie wszystkie dane zostały odpowiednio zapisane. Dlatego warto skorzystać z drugiego mechanizmu, który dostępny jest już bezpośrednio dla maszyny wirtualnej – czyli typowy backup.

Virtualization Station na QNAP ma wbudowany mechanizm tworzenia backupu dla maszyn wirtualnych. W tym momencie możemy mieć pewność, że tak stworzona kopia pozwoli nam na przywrócenie systemu do działania w przypadku awarii. Co ważne, jeśli będziemy tworzyć backup, będzie on zapisywany na woluminie, który jest objęty tworzeniem migawek. W tym momencie mamy niejako podwójną ochronę – maszyna wirtualna jest zabezpieczana w sposób spójny, a dodatkowo backup chroniony jest przez migawki.

Jak skonfigurować backup maszyny wirtualnej?

Uruchamiamy aplikację Virtualization Station, a następnie wybieramy opcję Kopia zapasowa i przywracanie z lewego menu:

W wyświetlonym oknie zobaczymy na razie pustą listę. Dlatego klikamy Utwórz kopię zapasową maszyny wirtualnej:

Zaczynamy od wpisania nazwy zadania backupu:

Następnie klikamy przycisk z „+” i z wyświetlonej listy wybieramy maszynę(y), która ma być bac kupowana. Po zaznaczeniu klikamy Dodaj.

W następnym kroku musimy wskazać miejsce, gdzie będą zapisywany backupy:

Następnie ustawiamy harmonogram, który pozwala określić, kiedy mają być tworzone kopie bezpieczeństwa. Do dyspozycji mamy kilka opcji, jednak tutaj musimy samodzielnie zdecydować, jak często nasza maszyna ma być bac kupowana. W moim przypadku zostawię opcję jednej kopii dziennie, w nocy o godzinie 01:00.

Ostatni krok konfiguracji, to ustawienie retencji, czyli określenie, ile kopii zapasowych ma być dostępnych – starsze będą usuwane, aby niepotrzebnie nie zajmowały miejsca na dysku.

Klikamy Następny i zobaczymy krótkie podsumowanie:

Uwaga – klikając Zakończ możemy zdecydować, czy kopia ma być wykonana od razu, czy czekamy do określonej w harmonogramie godziny:

Gdy skończymy tworzenie zadania backupu, powinniśmy zobaczyć na liście nasze nowo utworzone zadanie, które będzie uruchamiane zgodnie z harmonogramem, ale możemy też je wykonać w dowolnym momencie ręcznie.

Teraz możemy uznać, że nasz system jest odpowiednio zabezpieczony:) A jak możemy skorzystać z obu powyższych opcji, aby w razie awarii przywrócić system do działania. Aby pokazać to w zwarty sposób, połączę obie opcje – backupu i migawek przy przywracaniu. Zasymulujemy sytuację, gdzie nasze pliki z backupem zostały usunięte, a maszyna wirtualna w tym momencie przestała działać.

W tym przykładzie symuluję uszkodzenie backupu oraz maszyny wirtualnej. Dla maszyny wirtualnej, czyli naszego systemu z home assistant, wykonałem komendę kasującą zawartość katalogu /usr, więc system działa, ale nie jest w stanie poprawnie pracować, większość aplikacji jest niedostępna:

W tej sytuacji wystarczyłoby skorzystać z backupu, ale w tej symulacji backup też jest uszkodzony (na potrzeby tego scenariusza, nadpisałem jego zawartość losowymi danymi wygenerowanymi z /dev/urandom). Przywrócenie maszyny z tego backupu przyniosło taki efekt:

>>>>> PRZYWRACAMY BACKUP Z MIGAWKI <<<<<<

W tym celu przechodzimy w File Station do katalogu, w którym zapisany był backup. W moim przykładzie zapisałem go do katalogu Downloads. Tam klikamy przycisk Kopia migawkowa > Manager kopii migawkowych > DataVol1 (Uwaga – standardowo wolumin systemowe nazywa się DataVol1, ale jeśli podczas tworzenia została ustawiona inna nazwa – taką tutaj zobaczymy).

Zostanie wyświetlone okno Managera kopii migawkowych, w którym powinna zostać wyświetlona zawartość ostatniej wykonanej migawki. Jak widać na zrzucie ekranu – katalog backupu jest obecny.

Zaznaczamy interesujący nas plik lub katalog (w moim przypadku katalog) a następnie klikamy Przywróć Przywróć folder

Ta opcja powoduje przywrócenie danych w oryginalne miejsce na woluminie, a więc w tym przypadku starsza wersja z migawki ma nadpisać obecną zawartość katalogu. Dlatego musimy taką operację potwierdzić klikając OK.

Na ekranie zostanie wyświetlony komunikat, że rozpoczyna się przywracanie danych z migawki, a w dolnej części okna będzie widoczny postęp przywracania danych.

Po zakończeniu przywracania danych z migawki możemy sprawdzić, czy nasz plik z backupu jest dostępny:

>>>>> PRZYWRACAMY MASZYNĘ Z BACKUPU <<<<<< 

Wszystko wydaje się być w porządku, więc przechodzimy do przywracania maszyny wirtualnej z backupem który przed chwilą odzyskałem z migawki. W tym celu wracamy do Virtualization Station -> Kopia zapasowa i przywracanie.

Następnie klikamy ikonę przywracania:

Zostanie wyświetlone okno przywracania, w którym zaznaczamy backup do przywrócenia a następnie musimy zdecydować, czy przywrócona maszyna ma zastąpić istniejącą lub zostać uruchomiona obok niej. W przypadku, gdy maszyna nie działa, możemy ją zastąpić tą z backupu, a więc dokładnie tak, jak potrzebujemy:

W kolejnym oknie widzimy nazwę maszyny wirtualnej (uwaga – jeśli nadpisujemy maszynę, tej nazwy nie zmieniamy. Jeśli uruchamiamy maszynę obok istniejącej – możemy nazwać ją inaczej). Dodatkowo możliwa jest zmiana liczby rdzeni i ilości pamięci RAM. Ostatnim krokiem jest zdefiniowanie, do którego przełącznika wirtualnego maszyna ma być podłączona – tutaj powinien być wybrany ten, z którym połączona była oryginalna maszyna.

Kolejne okno to podsumowanie, a więc klikamy Przywróć


i potwierdzamy, że maszyna ma zastąpić istniejącą:

Teraz pozostaje nam poczekać na zakończenie procesu przywracania, który możemy śledzić w Virtualization Station:

Po zakończeniu przywracania uruchamiamy maszynę i sprawdzamy, czy wszystko działa:

Jak widać, mamy dwa mechanizmy zabezpieczające nasze środowisko przed uszkodzeniem i utratą danych. Ponieważ maszyna wirtualna to działający system, warto zabezpieczać ją backupem wbudowanym w Virtualization Station. Aby jednak sam backup był bezpieczny – korzystamy z migawek woluminu.

To wszystko na dzisiaj, ale to jeszcze nie ostatnie słowo, jeśli chodzi o bezpieczeństwo. W kolejnym odcinku poruszymy temat migawek samej maszyny wirtualnej, które przydadzą się podczas wprowadzania różnych zmian w konfiguracji.

 

O Łukasz Milic

Łukasz Milic
Z IT związany od zawsze, a przynajmniej od pierwszego komputera Atari 120XE z wrażliwym na wstrząsy magnetofonem. Doświadczony administrator sieci i systemów, od kilku lat związany z tematyką storage i backup. Miłośnik sprzętu Apple, minimalizmu i dobrego designu.

Check Also

QNAP x MSSQL – instalacja i zarządzanie

MSSQL dla linux dostępny jest już od dłuższego czasu – pierwsze wersje pojawiły się już …