Instalacja jakiegokolwiek serwera bez kontrolera RAID jest dość ryzykowna, tym bardziej gdy w grę wchodzi instalacja systemu na fizycznym sprzęcie.
Wizja uszkodzonego dysku systemowego serwera na którym mają być uruchamiane maszyny wirtualne może mrozić krew w żyłach u wielu administratorów.
Czasem jednak zdarza się tak, że nie możemy sobie pozwolić na kontroler. Może być to celowe działanie podyktowane wymogiem uruchomienia dysków w trybie non-raid, ale najczęściej są to kwestie finansowe.
W takich przypadkach z pomocą przychodzą tzw software raid. Problem polega na tym że nie zawsze wdrożenie tego rozwiązania jest łatwe i przyjemne.
Proxmox umożliwia instalację systemu z wykorzystaniem raid opartego o system plików ZFS. W porównaniu ze zwykłym software raidem, funkcjonalność i stabilność ZFS to swego rodzaju game changer. Tym bardziej, że wdrożenie tego rozwiązania to dosłownie parę „kliknięć”.
Co to jest ZFS?
ZFS (Zettabyte File System) to zaawansowany system plików stworzony przez Sun Microsystems, obecnie rozwijany przez OpenZFS. Jest unikatowy ze względu na swoje zaawansowane funkcje, które obejmują zarządzanie magazynowaniem, ochronę integralności danych, oraz łatwe skalowanie.
Dyski fizyczne są grupowane w „pule” (z ang. pools), co ułatwia zarządzanie przestrzenią dyskową. Pule pozwalają na dynamiczne dodawanie, usuwanie i wymianę dysków bez przerywania pracy systemu.
Dzięki ZFS możemy korzystać z takich funkcjonalności jak:
- Skalowanie (Dodając kolejne dyski do puli możemy obsłużyć ogromną ilość danych – teoretycznie nawet do 256 ZiB)
- Deduplikacja
- Kompresja
- Snapshoty (Możemy tworzyć migawki na poziomie systemu plików do których możemy wrócić).
- Klonowanie
- RAID-Z
Obecnie ZFS jest używany i wspierany między innymi przez takie firmy jak: Canonical (Ubuntu), iXsystems (True NAS), Oracle, Dell a także Proxmox.
Instalacja Proxmox
Proxmox Virtual Environment to oparte na Debianie darmowe i otwarte oprogramowanie służące do wirtualizacji.
Umożliwia uruchamianie maszyn wirtualnych opartych na KVM jak również kontenerów LXC co daje elastyczność w wyborze najlepszego rozwiązania dla danych potrzeb. Proxmox VE umożliwia także tworzenie klastra wysokiej dostępności (HA). Co ważne, Proxmox posiada narzędzia do tworzenia kopii bezpieczeństwa maszyn.
Proxmox posiada wsparcie dla ZFS i umożiwia tworzenie RAID już na samym etapie instalacji. Dzięki temu w instalatorze Proxmox możemy wybrać dwa dyski i stworzyć na nich Raid 1 (mirror), na którym zainstalujemy nasz wirtualizator.
Przygotowanie ISO
Ze strony producenta: https://www.proxmox.com/en/downloads, pobieramy aktualny obraz ISO z Proxmox VE.
Bootowalny pendrive przygotujemy za pomocą oprogramowania Balena Etcher, ktory działa zarówno na Windows, MacOS i Linux.
Instalator
Gdy uruchomiliśmy instalator, pierwszym krokiem będzie akceptacja umowy licencyjnej. Gdy ją zaakceptujemy instalator przeniesie nas do konfiguracji partycji i dysków. W tym miejscu wybieramy Options
a następnie w okienku Harddisk options w sekcji filesystem wybieramy zfs (RAID1)
. w zakładce Advanced Options
, można wybrać dodatkowe opcję. Tym razem je pomijamy i klikamy OK
.
W dalszej części będziemy musieli stworzyć hasło root’a, podać adres mailowy do powiadomień, skonfigurować sieć i podać nazwę FQDN naszego przyszłego serwera Proxmox. Tak na prawdę sama instalacja jest prosta i intuicyjna.
Rekonesans po instalacji
Schemat blokowy
Ponieważ nasz serwer Proxmox jest maszyną wirtualną uruchomioną na KVM, dyski na których pracujemy nazywają się vda
i vdb
. To standardowe nazwy dla sterownika VirtIO. Oczywiście w środowisku produkcyjnym nie zalecamy używania tzw. zagnieżdżonej wirtualizacji (nested virtualization).
Gdzie:vdx1
– partycja bootującavdx2
– partycja EFIvdx3
– partycja root z systemem Proxmox.
ZFS Pool
Proxmox tworzy pulę o nazwie rpool
do której należą zwykle dwie ostatnie partycje. W tym przypadku sa to /dev/vda3
oraz /dev/vdb3
.
Output polecenia: zpool status -v rpool
Awaria i naprawa puli
Po uruchomieniu serwera i wywołaniu polecenia lsblk
widzimy że nowy dysk /dev/vdb
nie ma założonych partycji.
Wynik polecenia zpool status -v
rpool jasno wskazuje, że mamy problem i nasza pula ma obecnie status DEGRADED. W przypadku uszkodzenia dysku /dev/vda
zakończy się to całkowitą utratą danych.
Narzędzie od Proxmox’a proxmox-boot-tool status
również informuje nas o problemie.
Kopia tablicy partycji
Pierwszą czynnością którą musimy teraz zrobić jest odwzorowanie tych samych partycji na nowym dysku jakie znajdują się na zdrowym dysku z Proxmox.
Można to zrobić ręcznie np za pomocą polecenia fsdisk
ale o wiele bardziej prostym sposobem jest skorzystanie z narzędzia sgdisk
Składnia tego polecenia to:
sgdisk [dysk_wzorcowy] -R [nowy_dysk]
Czyli w tym przypadku polecenie będzie nastepujące:
sgdisk /dev/vda -R /dev/vdb
Teraz dla nowego dysku musimy wygenerować nowy GUUID
sgdisk -G /dev/vdb
Jak widać poniżej polecenie wykonało się poprawnie i cel został osiągnięty
Zamiana dysku w puli ZFS
Wracając do ZFS wywołujemy polecenie
zpool status -v rpool
Na zrzucie ekranu widzimy, że pula w dalszym ciągu ma status DEGRAED. Dzieje się tak ponieważ ZFS probuje odnaleźć poprzednią partycję /dev/vdb3
Kolejnym krokiem jaki wykonamy będzie dołączenie partycji z nowego dysku i wymuszenie replikacji
zpool replace -f rpool 7466380360375522658 vdb3
Czas trwania replikacji zależy od ilości danych jakie znajdują się na dysku.
Gdy sprawdzimy ponownie status naszej puli poleniem zpool status -v rpool
, zobaczymy że wszystkie dyski są online i nasza pula wróciła do zdrowia.
Konfiguracja bootloader’a
Co prawda dane pomiędzy partycjami się już synchronizują, jednakże gdybyśmy zakończyli na tym etapie mogłoby się okazać że podczas wymiany kolejnego dysku Proxmox nie uruchomi sie po restarcie. Przyczyną jest brak konfiguracji bootloadera na wymienionym dysku.
Za pomocą narzędzia proxmox-boot-tool
formatujemy partycję 2 nowego dysku.
proxmox-boot-tool format /dev/vdb2
Następnie przebudowujemy initramfs
proxmox-boot-tool init /dev/vdb2
Podsumowanie
Jak się okazuje instalacja Proxmox bez tradycyjnego kontrolera RAID, jest procesem prostym, bezpiecznym i oferującym bardzo wiele korzyści.
Pomimo iż skorzystanie z kontrolera RAID jest podejściem rekomendowanym, to warto znać inne rozwiązania i możliwości. Każde z rozwiązań ma swoje zalety i wady, dlatego zawsze warto rozwiązania dopasowywać do danej sytuacji