Uno dei server che gestisco esegue il tipo di configurazione che descrivi. Ha sei dischi rigidi da 1 TB con un pool RAIDZ crittografato LUKS su di esso. Ho anche due dischi rigidi da 3 TB in un mirror ZFS con crittografia LUKS che vengono scambiati ogni settimana per essere portati fuori sede. Il server utilizza questa configurazione da circa tre anni e non ho mai avuto problemi.
Se hai bisogno di ZFS con crittografia su Linux, ti consiglio questa configurazione. Sto usando ZFS-Fuse, non ZFS su Linux. Tuttavia, credo che non influirebbe sul risultato diverso da ZFS su Linux probabilmente avrà prestazioni migliori rispetto all'impostazione che sto usando.
In questa configurazione i dati ridondanti vengono crittografati più volte perché LUKS non è "a conoscenza" di Z-RAID. Nella soluzione LUKS-on-mdadm i dati vengono crittografati una volta e semplicemente scritti su dischi più volte.
Tieni presente che LUKS non è a conoscenza di RAID. Sa solo che si trova sopra un dispositivo a blocchi. Se si utilizza mdadm per creare un dispositivo RAID e successivamente luksformat
, è mdadm che replica i dati crittografati nei dispositivi di archiviazione sottostanti, non LUKS.
La domanda 2.8 delle FAQ di LUKS indica se la crittografia dovrebbe essere in cima al RAID o viceversa . Fornisce il seguente diagramma.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Poiché ZFS combina le funzionalità RAID e del filesystem, la soluzione dovrà essere simile alla seguente.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
Ho elencato le partizioni non elaborate come facoltative poiché ZFS prevede che utilizzerà l'archiviazione in blocchi grezzi anziché una partizione. Sebbene tu possa creare il tuo zpool usando le partizioni, non è raccomandato perché aggiungerà un livello inutile di gestione e dovrà essere preso in considerazione nel calcolo di quale sarà il tuo offset per l'allineamento del blocco delle partizioni.
Non ostacolerebbe in modo significativo le prestazioni di scrittura? [...] La mia CPU supporta Intel AES-NI.
Non dovrebbero esserci problemi di prestazioni purché si scelga un metodo di crittografia supportato dal driver AES-NI. Se hai cryptsetup 1.6.0 o versioni successive puoi eseguire cryptsetup benchmark
e vedere quale algoritmo fornirà le migliori prestazioni.
Anche questa domanda sulle opzioni consigliate per LUKS può essere utile.
Dato che si dispone del supporto per la crittografia hardware, è più probabile che si verifichino problemi di prestazioni a causa del disallineamento della partizione.
ZFS su Linux ha aggiunto la ashift
proprietà al zfs
comando per consentire di specificare le dimensioni del settore per i dischi rigidi. Secondo le FAQ collegate, ashift=12
diresti che stai usando unità con una dimensione di blocco 4K.
Le FAQ LUKS indicano che una partizione LUKS ha un allineamento di 1 MB. Le domande 6.12 e 6.13 ne discutono in dettaglio e forniscono anche consigli su come ingrandire l'intestazione della partizione LUKS. Tuttavia, non sono sicuro che sia possibile renderlo abbastanza grande da garantire che il tuo filesystem ZFS verrà creato su un confine 4K. Sarei interessato a sapere come funziona per te se questo è un problema che devi risolvere. Poiché si utilizzano unità da 2 TB, è possibile che non si verifichi questo problema.
ZFS sarà a conoscenza degli errori del disco quando opera su contenitori LUKS Device Mapper anziché su dispositivi fisici?
ZFS sarà a conoscenza degli errori del disco in quanto può leggere e scrivere senza problemi. ZFS richiede l'archiviazione a blocchi e non si preoccupa né conosce i dettagli di tale archiviazione e da dove proviene. Tiene traccia solo degli errori di lettura, scrittura o checksum che incontra. Spetta a te monitorare lo stato dei dispositivi di archiviazione sottostanti.
La documentazione di ZFS contiene una sezione sulla risoluzione dei problemi che vale la pena leggere. La sezione sulla sostituzione o riparazione di un dispositivo danneggiato descrive ciò che potresti incontrare durante uno scenario di errore e come risolverlo. Faresti la stessa cosa qui per i dispositivi che non hanno ZFS. Controllare syslog per i messaggi dal driver SCSI, dal controller HBA o HD e / o dal software di monitoraggio SMART, quindi agire di conseguenza.
Che ne dici di deduplicazione e altre funzionalità di ZFS?
Tutte le funzionalità di ZFS funzioneranno allo stesso modo indipendentemente dal fatto che l'archiviazione a blocchi sottostante sia crittografata o meno.
Sommario
- ZFS su dispositivi crittografati LUKS funziona bene.
- Se disponi della crittografia hardware, non vedrai un impatto sulle prestazioni finché utilizzi un metodo di crittografia supportato dal tuo hardware. Usa
cryptsetup benchmark
per vedere cosa funzionerà meglio sul tuo hardware.
- Pensa a ZFS come RAID e filesystem combinati in un'unica entità. Vedere il diagramma ASCII sopra per dove si adatta allo stack di archiviazione.
- Dovrai sbloccare ogni dispositivo a blocchi crittografato LUKS utilizzato dal filesystem ZFS.
- Monitora lo stato dell'hardware di archiviazione come fai ora.
- Prestare attenzione all'allineamento dei blocchi del file system se si utilizzano unità con blocchi 4K. Potrebbe essere necessario sperimentare opzioni luksformat o altre impostazioni per ottenere l'allineamento necessario per una velocità accettabile.