GNU/Linux >> Tutoriels Linux >  >> Linux

Cryptage ZFS RAID et LUKS sous Linux

Solution 1 :

L'un des serveurs que j'administre exécute le type de configuration que vous décrivez. Il dispose de six disques durs de 1 To avec un pool RAIDZ chiffré par LUKS. J'ai également deux disques durs de 3 To dans un miroir ZFS crypté LUKS qui sont échangés chaque semaine pour être emportés hors site. Le serveur utilise cette configuration depuis environ trois ans et je n'ai jamais eu de problème avec.

Si vous avez besoin de ZFS avec chiffrement sous Linux, je recommande cette configuration. J'utilise ZFS-Fuse, pas ZFS sous Linux. Cependant, je pense que cela n'aurait aucune incidence sur le résultat autre que ZFS sur Linux aura probablement de meilleures performances que la configuration que j'utilise.

Dans cette configuration, les données redondantes sont cryptées plusieurs fois car LUKS n'est pas "conscient" de Z-RAID. Dans la solution LUKS-on-mdadm, les données sont chiffrées une seule fois et simplement écrites plusieurs fois sur les disques.

Gardez à l'esprit que LUKS n'est pas conscient du RAID. Il sait seulement qu'il est assis au-dessus d'un périphérique de bloc. Si vous utilisez mdadm pour créer un périphérique RAID puis luksformat c'est mdadm qui réplique les données chiffrées sur les périphériques de stockage sous-jacents, pas LUKS.

La question 2.8 de la FAQ LUKS indique si le chiffrement doit être au-dessus du RAID ou l'inverse. Il fournit le schéma suivant.

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

Étant donné que ZFS combine les fonctionnalités RAID et de système de fichiers, votre solution devra ressembler à ce qui suit.

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

J'ai répertorié les partitions brutes comme facultatives car ZFS s'attend à ce qu'il utilise le stockage de blocs bruts plutôt qu'une partition. Bien que vous puissiez créer votre zpool à l'aide de partitions, cela n'est pas recommandé car cela ajoutera un niveau de gestion inutile et devra être pris en compte lors du calcul de votre décalage pour l'alignement des blocs de partition.

Cela n'entraverait-il pas considérablement les performances d'écriture? [...] Mon processeur prend en charge Intel AES-NI.

Il ne devrait pas y avoir de problème de performances tant que vous choisissez une méthode de chiffrement prise en charge par votre pilote AES-NI. Si vous avez cryptsetup 1.6.0 ou plus récent, vous pouvez exécuter cryptsetup benchmark et voyez quel algorithme offrira les meilleures performances.

Cette question sur les options recommandées pour LUKS peut également être utile.

Étant donné que vous disposez d'une prise en charge du chiffrement matériel, vous êtes plus susceptible de rencontrer des problèmes de performances en raison d'un désalignement des partitions.

ZFS sur Linux a ajouté le ashift propriété au zfs pour vous permettre de spécifier la taille de secteur de vos disques durs. Selon la FAQ liée, ashift=12 lui indiquerait que vous utilisez des lecteurs avec une taille de bloc de 4K.

La FAQ LUKS indique qu'une partition LUKS a un alignement de 1 Mo. Les questions 6.12 et 6.13 en discutent en détail et fournissent également des conseils sur la façon d'agrandir l'en-tête de partition LUKS. Cependant, je ne suis pas sûr qu'il soit possible de le rendre suffisamment grand pour garantir que votre système de fichiers ZFS sera créé sur une limite de 4K. Je serais intéressé de savoir comment cela fonctionne pour vous si c'est un problème que vous devez résoudre. Puisque vous utilisez des disques de 2 To, vous ne rencontrerez peut-être pas ce problème.

ZFS sera-t-il conscient des pannes de disque lorsqu'il fonctionne sur des conteneurs LUKS de mappage de périphériques par opposition aux périphériques physiques ?

ZFS sera conscient des pannes de disque dans la mesure où il peut y lire et y écrire sans problème. ZFS nécessite un stockage en bloc et ne se soucie pas ou ne connaît pas les spécificités de ce stockage et d'où il vient. Il garde uniquement une trace des erreurs de lecture, d'écriture ou de somme de contrôle qu'il rencontre. C'est à vous de surveiller la santé des périphériques de stockage sous-jacents.

La documentation ZFS contient une section sur le dépannage qui mérite d'être lue. La section sur le remplacement ou la réparation d'un périphérique endommagé décrit ce que vous pourriez rencontrer lors d'un scénario de panne et comment vous pourriez le résoudre. Vous feriez la même chose ici que pour les appareils qui n'ont pas de ZFS. Vérifiez si le journal système contient des messages provenant de votre pilote SCSI, de votre contrôleur HBA ou HD et/ou du logiciel de surveillance SMART, puis agissez en conséquence.

Qu'en est-il de la déduplication et des autres fonctionnalités ZFS ?

Toutes les fonctionnalités ZFS fonctionneront de la même manière, que le stockage de blocs sous-jacent soit chiffré ou non.

Résumé

  1. ZFS sur les appareils chiffrés LUKS fonctionne bien.
  2. Si vous disposez d'un chiffrement matériel, les performances ne seront pas affectées tant que vous utiliserez une méthode de chiffrement prise en charge par votre matériel. Utilisez cryptsetup benchmark pour voir ce qui fonctionnera le mieux sur votre matériel.
  3. Considérez ZFS comme un RAID et un système de fichiers combinés en une seule entité. Voir le diagramme ASCII ci-dessus pour savoir où il s'intègre dans la pile de stockage.
  4. Vous devrez déverrouiller chaque périphérique de bloc chiffré par LUKS utilisé par le système de fichiers ZFS.
  5. Surveillez l'état du matériel de stockage comme vous le faites actuellement.
  6. Soyez attentif à l'alignement des blocs du système de fichiers si vous utilisez des disques avec des blocs 4K. Vous devrez peut-être tester les options de format luks ou d'autres paramètres pour obtenir l'alignement dont vous avez besoin pour une vitesse acceptable.

Mise à jour de février 2020

Cela fait six ans que j'ai écrit cette réponse. ZFS sur Linux v0.8.0 prend en charge le chiffrement natif, que vous devriez envisager si vous n'avez pas besoin de LUKS.

Solution 2 :

Une implémentation alternative consiste à créer un périphérique de bloc ZVOL (http://zfsonlinux.org/example-zvol.html), à utiliser LUKS pour chiffrer le ZVOL nouvellement créé, puis à créer un système de fichiers ext4 (ou autre) au-dessus du bloc chiffré appareil.


Linux
  1. Comment utiliser les instantanés, les clones et la réplication dans ZFS sous Linux

  2. Comment installer et configurer ZFS sur Linux avec Debian Jessie 8.1

  3. Commandes Linux :jobs, bg et fg

  4. Linux Supprimer des fichiers et des répertoires

  5. utilisation des caractères génériques linux dans cp et mv

Le noyau Linux et ses fonctions

Installer et configurer Ansible sous Linux

Installer et configurer Jenkins sous Linux

RAID Linux

Présentation de RAMFS et TMPFS sous Linux

20 meilleurs logiciels de chiffrement de disque et de fichier pour Linux Desktop