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.
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.
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.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Ponieważ ZFS łączy funkcje RAID i systemu plików, Twoje rozwiązanie będzie musiało wyglądać następująco.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
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.
Czy nie wpłynęłoby to znacząco na wydajność zapisu? [...] Mój procesor obsługuje Intel AES-NI.
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ść do zfs
polecenia, aby umożliwić określenie rozmiaru sektora dla dysków twardych. Według połączonego FAQ ashift=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.
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?
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.
Co powiesz na deduplikację i inne funkcje ZFS?
Wszystkie funkcje ZFS będą działać tak samo, niezależnie od tego, czy bazowa pamięć blokowa jest szyfrowana, czy nie.
Podsumowanie
- ZFS na urządzeniach szyfrowanych przez LUKS działa dobrze.
- Jeśli masz szyfrowanie sprzętowe, nie zobaczysz spadku wydajności, dopóki użyjesz metody szyfrowania obsługiwanej przez Twój sprzęt. Użyj,
cryptsetup benchmark
aby zobaczyć, co będzie działać najlepiej na twoim sprzęcie.
- Pomyśl o ZFS jako o macierzy RAID i systemie plików połączonych w jedną całość. Zobacz diagram ASCII powyżej, gdzie pasuje do stosu pamięci.
- Musisz odblokować każde urządzenie blokujące zaszyfrowane przez LUKS, z którego korzysta system plików ZFS.
- Monitoruj kondycję sprzętu pamięci masowej w taki sam sposób, jak teraz.
- Jeśli korzystasz z napędów z blokami 4K, pamiętaj o wyrównaniu bloków systemu plików. Może być konieczne eksperymentowanie z opcjami luksformat lub innymi ustawieniami, aby uzyskać wyrównanie potrzebne do akceptowalnej prędkości.