Planuję skonfigurować zestaw 3 dysków 2 TB 7200 obr./min jako pule Z-RAID szyfrowane LUKS w systemie Linux (dla rozwiązania NAS).
Rozumiem ten problem, ponieważ jedynym sposobem na osiągnięcie tego jest luksFormat
każde urządzenie fizyczne, a następnie złożenie zpool z odblokowanych pojemników LUKS.
Mam z tym następujące obawy:
Czy nie wpłynęłoby to znacząco na wydajność zapisu? W tej konfiguracji nadmiarowe dane są szyfrowane kilka razy, ponieważ LUKS nie „rozpoznaje” Z-RAID. W rozwiązaniu LUKS-on-mdadm dane są szyfrowane raz i tylko wielokrotnie zapisywane na dyskach. Mój procesor obsługuje Intel AES-NI.
Czy ZFS będzie wiedział o awariach dysków podczas pracy na kontenerach LUKS odwzorowujących urządzenia w przeciwieństwie do urządzeń fizycznych? Co powiesz na deduplikację i inne funkcje ZFS?
źródło
Odpowiedzi:
Jeden z serwerów, którymi administruję, uruchamia opisaną przez ciebie konfigurację. Ma sześć dysków twardych 1 TB z pulą RAIDZ zaszyfrowaną przez LUKS. Mam również dwa dyski twarde o pojemności 3 TB w zwierciadle ZFS zaszyfrowanym przez LUKS, które są wymieniane co tydzień w celu wyniesienia poza witrynę. Serwer używa tej konfiguracji od około trzech lat i nigdy nie miałem z tym problemu.
Jeśli potrzebujesz ZFS z szyfrowaniem w systemie Linux, polecam tę konfigurację. Używam ZFS-Fuse, a nie ZFS w systemie Linux. Jednak uważam, że nie miałoby to wpływu na wynik inny niż ZFS w Linuksie prawdopodobnie będzie miał lepszą wydajność niż konfiguracja, której używam.
Pamiętaj, że LUKS nie jest świadomy RAID. Wie tylko, że siedzi na urządzeniu blokowym. Jeśli używasz mdadm do utworzenia urządzenia RAID, a następnie
luksformat
to właśnie mdadm replikuje zaszyfrowane dane do bazowych urządzeń pamięci masowej, a nie LUKS.Pytanie 2.8 LUKS FAQ dotyczy tego, czy szyfrowanie powinno być nad RAID, czy na odwrót . Przedstawia poniższy schemat.
Ponieważ ZFS łączy funkcje RAID i systemu plików, Twoje rozwiązanie będzie musiało wyglądać następująco.
Wymieniłem surowe partycje jako opcjonalne, ponieważ ZFS spodziewa się, że użyje surowej pamięci blokowej, a nie partycji. Chociaż możesz utworzyć swój system zpool za pomocą partycji, nie jest to zalecane, ponieważ spowoduje to dodanie bezużytecznego poziomu zarządzania i trzeba będzie wziąć to pod uwagę przy obliczaniu przesunięcia dla wyrównania bloku partycji.
Nie powinno być problemu z wydajnością, o ile wybierzesz metodę szyfrowania obsługiwaną przez sterownik AES-NI. Jeśli masz cryptsetup 1.6.0 lub nowszy, możesz uruchomić
cryptsetup benchmark
i sprawdzić, który algorytm zapewni najlepszą wydajność.To pytanie dotyczące zalecanych opcji dla LUKS może być również cenne.
Biorąc pod uwagę, że masz obsługę szyfrowania sprzętowego, bardziej prawdopodobne jest, że napotkasz problemy z wydajnością z powodu niedopasowania partycji.
ZFS w systemie Linux dodał
ashift
właściwość dozfs
polecenia, aby umożliwić określenie rozmiaru sektora dla dysków twardych. Według połączonego FAQashift=12
powiedziałby, że używasz dysków o rozmiarze bloku 4K.LUKS FAQ stwierdza, że partycja LUKS ma wyrównanie 1 MB. Pytania 6.12 i 6.13 omawiają to szczegółowo, a także zawierają porady, jak zwiększyć nagłówek partycji LUKS. Nie jestem jednak pewien, czy jest możliwe, aby był wystarczająco duży, aby zapewnić, że system plików ZFS zostanie utworzony na granicy 4K. Chciałbym dowiedzieć się, jak to działa, jeśli jest to problem, który musisz rozwiązać. Ponieważ używasz dysków 2 TB, możesz nie napotkać tego problemu.
ZFS będzie wiedział o awariach dysków, o ile może je odczytywać i zapisywać bez problemów. ZFS wymaga przechowywania blokowego i nie dba o specyfikę tego magazynu i jego pochodzenie. Śledzi tylko napotkane błędy odczytu, zapisu lub sumy kontrolnej. Od Ciebie zależy monitorowanie stanu podstawowych urządzeń pamięci masowej.
Dokumentacja ZFS zawiera sekcję dotyczącą rozwiązywania problemów, którą warto przeczytać. W sekcji dotyczącej wymiany lub naprawy uszkodzonego urządzenia opisano, co możesz napotkać podczas scenariusza awarii i jak to rozwiązać. Zrobiłbyś tutaj to samo, co dla urządzeń, które nie mają ZFS. Sprawdź syslog pod kątem komunikatów ze sterownika SCSI, kontrolera HBA lub HD i / lub oprogramowania monitorującego SMART, a następnie działaj odpowiednio.
Wszystkie funkcje ZFS będą działać tak samo, niezależnie od tego, czy bazowa pamięć blokowa jest szyfrowana, czy nie.
Podsumowanie
cryptsetup benchmark
aby zobaczyć, co będzie działać najlepiej na twoim sprzęcie.źródło
geli
służy do utworzenia zaszyfrowanego urządzenia, a dane w postaci zwykłego tekstu są udostępniane za pośrednictwem drugiego urządzenia, którego używa ZFS. Zobacz drugi punkt na doc.freenas.org/index.php/Volumes#Encryption .Alternatywną implementacją jest utworzenie urządzenia blokowego ZVOL ( http://zfsonlinux.org/example-zvol.html ), użycie LUKS do zaszyfrowania nowo utworzonego ZVOL, a następnie utworzenie systemu plików ext4 (lub innego) na szczycie zaszyfrowanego bloku urządzenie.
źródło