GNU/Linux >> Linux Esercitazione >  >> Linux

ZFS RAID e crittografia LUKS in Linux

Soluzione 1:

Uno dei server che gestisco esegue il tipo di configurazione che descrivi. Dispone di sei dischi rigidi da 1 TB con un pool RAIDZ crittografato LUKS. Ho anche due dischi rigidi da 3 TB in un mirror ZFS crittografato 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 con essa.

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 avrebbe alcuna influenza sul risultato diverso da ZFS su Linux probabilmente avrà prestazioni migliori rispetto alla configurazione 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 sui dischi più volte.

Tieni presente che LUKS non è a conoscenza del RAID. Sa solo che si trova sopra un dispositivo a blocchi. Se usi mdadm per creare un dispositivo RAID e poi luksformat it, è mdadm che replica i dati crittografati sui dispositivi di archiviazione sottostanti, non LUKS.

La domanda 2.8 delle FAQ di LUKS indica se la crittografia dovrebbe essere al di sopra del RAID o viceversa. Fornisce il seguente diagramma.

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

Poiché ZFS combina le funzionalità RAID e filesystem, la tua 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 di blocchi non elaborati anziché una partizione. Sebbene tu possa creare il tuo zpool utilizzando le partizioni, non è consigliato perché aggiungerà un inutile livello di gestione e dovrà essere preso in considerazione quando si calcola quale sarà il tuo offset per l'allineamento del blocco della partizione.

Non ostacolerebbe in modo significativo le prestazioni di scrittura? [...] La mia CPU supporta Intel AES-NI.

Non dovrebbero esserci problemi di prestazioni se scegli un metodo di crittografia supportato dal tuo driver AES-NI. Se hai cryptsetup 1.6.0 o più recente puoi eseguire cryptsetup benchmark e vedere quale algoritmo fornirà le migliori prestazioni.

Anche questa domanda sulle opzioni consigliate per LUKS potrebbe essere utile.

Dato che disponi del supporto per la crittografia hardware, è più probabile che tu debba affrontare problemi di prestazioni a causa del disallineamento delle partizioni.

ZFS su Linux ha aggiunto il ashift proprietà al zfs comando per consentire di specificare la dimensione del settore per i dischi rigidi. Secondo la FAQ collegata, ashift=12 direbbe che stai utilizzando unità con una dimensione del blocco di 4K.

Le FAQ LUKS affermano 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 venga creato su un limite 4K. Sarei interessato a sapere come funziona per te se questo è un problema che devi risolvere. Dato che stai utilizzando unità da 2 TB, potresti non riscontrare questo problema.

ZFS sarà a conoscenza dei guasti del disco durante il funzionamento sui contenitori LUKS del device-mapper anziché sui dispositivi fisici?

ZFS sarà a conoscenza dei guasti del disco nella misura in cui può leggerli e scriverli senza problemi. ZFS richiede l'archiviazione a blocchi e non si preoccupa né conosce le specifiche di tale archiviazione e da dove proviene. Tiene traccia solo di eventuali errori di lettura, scrittura o checksum che incontra. Sta a te monitorare lo stato dei dispositivi di archiviazione sottostanti.

La documentazione ZFS ha una sezione sulla risoluzione dei problemi che vale la pena leggere. La sezione sulla sostituzione o riparazione di un dispositivo danneggiato descrive cosa potresti incontrare durante uno scenario di guasto e come potresti risolverlo. Faresti la stessa cosa qui che faresti per i dispositivi che non hanno ZFS. Controlla il syslog per i messaggi dal tuo driver SCSI, controller HBA o HD e/o software di monitoraggio SMART e poi agisci di conseguenza.

Che ne dici di deduplicazione e altre funzionalità ZFS?

Tutte le funzionalità ZFS funzioneranno allo stesso modo indipendentemente dal fatto che l'archiviazione a blocchi sottostante sia crittografata o meno.

Riepilogo

  1. ZFS su dispositivi con crittografia LUKS funziona bene.
  2. Se disponi di crittografia hardware, non noterai un calo delle prestazioni se utilizzi un metodo di crittografia supportato dal tuo hardware. Usa cryptsetup benchmark per vedere cosa funzionerà meglio sul tuo hardware.
  3. Pensa a ZFS come RAID e filesystem combinati in un'unica entità. Vedi il diagramma ASCII sopra per sapere dove si inserisce nello stack di archiviazione.
  4. Dovrai sbloccare ogni dispositivo a blocchi crittografato LUKS utilizzato dal filesystem ZFS.
  5. Monitora l'integrità dell'hardware di archiviazione nello stesso modo in cui lo fai ora.
  6. Prestare attenzione all'allineamento dei blocchi del filesystem se si utilizzano unità con blocchi 4K. Potrebbe essere necessario sperimentare le opzioni luksformat o altre impostazioni per ottenere l'allineamento necessario per una velocità accettabile.

Aggiornamento di febbraio 2020

Sono passati sei anni da quando ho scritto questa risposta. ZFS su Linux v0.8.0 supporta la crittografia nativa, che dovresti considerare se non hai un'esigenza specifica per LUKS.

Soluzione 2:

Un'implementazione alternativa consiste nel creare un dispositivo a blocchi ZVOL (http://zfsonlinux.org/example-zvol.html), utilizzare LUKS per crittografare lo ZVOL appena creato e quindi creare un filesystem ext4 (o altro) sopra il blocco crittografato dispositivo.


Linux
  1. Cosa ha imparato Stratis da ZFS, Btrfs e Linux Volume Manager

  2. Come installare e configurare ZFS su Linux usando Debian Jessie 8.1

  3. Linux – Sysfs e Devtmpfs?

  4. Linux:directory standard e/o comuni su OS Unix/linux?

  5. Linux Elimina file e directory

Kernel Linux e le sue funzioni

Installa e configura Ansible in Linux

Installazione e configurazione di Jenkins in Linux

RAID Linux

Panoramica di RAMFS e TMPFS su Linux

20 migliori software di crittografia di dischi e file per desktop Linux