GNU/Linux >> Znalost Linux >  >> Linux

Šifrování ZFS RAID a LUKS v Linuxu

Řešení 1:

Jeden ze serverů, které spravuji, provozuje typ konfigurace, který popisujete. Má šest 1TB pevných disků s LUKS šifrovaným RAIDZ poolem. Mám také dva 3TB pevné disky v zrcadle ZFS šifrovaném LUKS, které se každý týden vyměňují, aby je bylo možné odvézt mimo pracoviště. Server používá tuto konfiguraci asi tři roky a nikdy jsem s ní neměl problém.

Pokud potřebujete ZFS s šifrováním na Linuxu, doporučuji toto nastavení. Používám ZFS-Fuse, ne ZFS na Linuxu. Domnívám se však, že by to nemělo žádný vliv na výsledek, kromě toho, že ZFS na Linuxu bude mít pravděpodobně lepší výkon než nastavení, které používám.

V tomto nastavení jsou redundantní data několikrát zašifrována, protože LUKS si "neuvědomuje" Z-RAID. V řešení LUKS-on-mdadm jsou data šifrována jednou a pouze několikrát zapsána na disky.

Mějte na paměti, že LUKS nezná RAID. Ví pouze, že sedí na blokovém zařízení. Pokud použijete mdadm k vytvoření zařízení RAID a poté luksformat je to mdadm, kdo replikuje zašifrovaná data na základní úložná zařízení, nikoli LUKS.

Otázka 2.8 v LUKS FAQ řeší, zda má být šifrování nad RAID nebo naopak. Poskytuje následující diagram.

Filesystem     <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks      <- bottom

Protože ZFS kombinuje funkce RAID a souborového systému, vaše řešení bude muset vypadat následovně.

RAID-Z and ZFS Filesystem  <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks                  <- bottom

Nezpracované oddíly jsem uvedl jako volitelné, protože ZFS očekává, že bude používat úložiště raw bloků spíše než oddíl. I když můžete vytvořit svůj zpool pomocí oddílů, nedoporučuje se to, protože to přidá zbytečnou úroveň správy a bude třeba to vzít v úvahu při výpočtu, jaký bude váš offset pro zarovnání bloku oddílu.

Nebude to výrazně bránit výkonu zápisu? [...] Můj procesor podporuje Intel AES-NI.

Neměl by nastat problém s výkonem, pokud zvolíte metodu šifrování, kterou podporuje váš ovladač AES-NI. Pokud máte cryptsetup 1.6.0 nebo novější, můžete spustit cryptsetup benchmark a uvidíte, který algoritmus bude poskytovat nejlepší výkon.

Tato otázka o doporučených možnostech pro LUKS může být také užitečná.

Vzhledem k tomu, že máte podporu hardwarového šifrování, je pravděpodobnější, že budete čelit problémům s výkonem v důsledku nesprávného zarovnání oddílu.

ZFS na Linuxu přidal ashift vlastnost na zfs příkaz, který vám umožní určit velikost sektoru pro vaše pevné disky. Podle odkazovaných nejčastějších dotazů ashift=12 by řekl, že používáte jednotky s velikostí bloku 4K.

LUKS FAQ uvádí, že oddíl LUKS má zarovnání 1 MB. Otázky 6.12 a 6.13 o tom podrobně pojednávají a také poskytují rady, jak zvětšit hlavičku oddílu LUKS. Nejsem si však jistý, zda je možné udělat to dostatečně velké, aby bylo zajištěno, že váš souborový systém ZFS bude vytvořen na hranici 4K. Zajímalo by mě, jak to funguje u vás, pokud je to problém, který potřebujete vyřešit. Vzhledem k tomu, že používáte 2TB disky, nemusíte čelit tomuto problému.

Bude si ZFS uvědomovat selhání disku při provozu na kontejnerech LUKS mapujících zařízení na rozdíl od fyzických zařízení?

ZFS si bude vědom selhání disku, pokud na ně může bez problémů číst a zapisovat. ZFS vyžaduje blokové úložiště a nezajímá se ani neví o specifikách tohoto úložiště a odkud pochází. Sleduje pouze chyby čtení, zápisu nebo kontrolního součtu, na které narazí. Je na vás, abyste sledovali stav základních úložných zařízení.

Dokumentace ZFS obsahuje část o odstraňování problémů, kterou stojí za to si přečíst. Část o výměně nebo opravě poškozeného zařízení popisuje, s čím se můžete setkat během scénáře selhání a jak jej můžete vyřešit. Zde byste udělali to samé, co byste udělali pro zařízení, která nemají ZFS. Zkontrolujte syslog, zda neobsahuje zprávy z vašeho ovladače SCSI, řadiče HBA nebo HD a/nebo monitorovacího softwaru SMART, a pak podle toho jednejte.

A co deduplikace a další funkce ZFS?

Všechny funkce ZFS budou fungovat stejně bez ohledu na to, zda je základní blokové úložiště šifrováno nebo ne.

Shrnutí

  1. ZFS na zařízeních šifrovaných LUKS funguje dobře.
  2. Pokud používáte hardwarové šifrování, nedojde k žádnému snížení výkonu, pokud používáte metodu šifrování, kterou váš hardware podporuje. Použijte cryptsetup benchmark abyste viděli, co bude na vašem hardwaru fungovat nejlépe.
  3. Představte si ZFS jako RAID a souborový systém spojený do jediné entity. Podívejte se na ASCII diagram výše, kde je uvedeno, kam se vejde do zásobníku úložiště.
  4. Budete muset odemknout každé blokové zařízení šifrované LUKS, které používá souborový systém ZFS.
  5. Sledujte stav hardwaru úložiště stejným způsobem jako nyní.
  6. Pokud používáte jednotky s bloky 4K, pamatujte na zarovnání bloků souborového systému. Možná budete muset experimentovat s možnostmi formátu luks nebo jinými nastaveními, abyste dosáhli zarovnání, které potřebujete pro přijatelnou rychlost.

Aktualizace z února 2020

Je to šest let, co jsem napsal tuto odpověď. ZFS na Linuxu v0.8.0 podporuje nativní šifrování, což byste měli zvážit, pokud nepotřebujete konkrétně LUKS.

Řešení 2:

Alternativní implementací je vytvořit blokové zařízení ZVOL (http://zfsonlinux.org/example-zvol.html), pomocí LUKS zašifrovat nově vytvořený ZVOL a poté vytvořit souborový systém ext4 (nebo jiný) nad zašifrovaným blokem. zařízení.


Linux
  1. Co se Stratis naučil od ZFS, Btrfs a Linux Volume Manager

  2. Linux – Sysfs a Devtmpfs?

  3. Zjistěte typ a model řadiče RAID v systému Linux

  1. Jak používat snímky, klony a replikace v ZFS na Linuxu

  2. Jak nainstalovat a nakonfigurovat ZFS na Linuxu pomocí Debian Jessie 8.1

  3. Linuxové příkazy:jobs, bg a fg

  1. Vytvořte šifrovanou úschovnu v systému Linux

  2. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

  3. Linux Odstraňte soubory a adresáře