Configurer un RAID1 (miroir) encrypté sur NetBSD 10.0
Introduction
Sur NetBSD, seuls les niveaux de raids 0, 1, 4 et 5 sont configurables avec l'utilitaire raidctl.
Pour rappel
- RAID 0 : Striping. Il répartit les données sur plusieurs disques pour améliorer la vitesse, mais n'offre aucune redondance.
- RAID 1 : Mirroring. Il stocke des copies identiques des données sur deux ou plusieurs disques, offrant ainsi une bonne redondance pour la protection des données.
- RAID 4 : Striping avec parité. Il répartit les données sur tous les disques sauf un, le disque de parité étant utilisé pour stocker des informations de redondance. La parité est stockée sur un seul disque dédié.
- RAID 5 : Striping avec parité distribuée. Semblable au RAID 4, mais la parité est répartie entre tous les disques, offrant un bon équilibre entre l'espace de stockage efficace et la redondance.
Ici nous allons aborder la configuration d'un raid 1
Etape 1 : Préparation des disques
1) Brancher les 2 disques
2) Identifier les 2 disques :
sysctl hw.disknames
(sd1 sd2.. par exemple)
Etape 2 : Création et initialisation du RAID 1
3) Créer le fichier de configuration du RAID1
vi /etc/raid.conf
START array
1 2 1 # Ici, le '1' indique que c'est un RAID1
START disks
/dev/sd1
/dev/sd2
START layout
128 1 1 1 # Cela définit la taille du stripe, l'interleave, etc.
START queue
fifo 100
4) Initialiser le RAID 1
raidctl -C /etc/raid.conf raid0
Etape 3 : Chiffrement du RAID 1
5) Effacer les premiers secteurs du RAID pour s'assurer qu'il n'y a pas de données résiduelles
dd if=/dev/zero of=/dev/raid0 bs=1m count=100
6) Générer la configuration de chiffrement :
cgdconfig -g -o /etc/cgd/cgd0.conf aes-xts 512
7) Configurer le chiffrement avec le mot de passe
cgdconfig -V re-enter /dev/cgd0 /dev/raid0 /etc/cgd/cgd0.conf
Etape 4 : Création et montage du système de fichiers
8) Créer le système de fichiers sur le dispositif chiffré
newfs /dev/cgd0a
9) Monter le système de fichiers chiffré
mkdir /SFTP
mount /dev/cgd0a /SFTP
Etape 5 : Vérification du chiffrement
10) Créer des fichiers de test
dd if=/dev/urandom of=/SFTP/testfile1 bs=1m count=100
dd if=/dev/urandom of=/SFTP/testfile2 bs=1m count=100
11) Calculer les sommes de contrôle des fichiers de test
md5 /SFTP/testfile1 > /tmp/checksums
md5 /SFTP/testfile2 >> /tmp/checksums
12) Démonter le système de fichiers et arrêter le chiffrement
umount /SFTP
cgdconfig -u cgd0
13) Vérifier que les données sont chiffrées : essayez de lire directement les données brutes du RAID pour vérifier qu'elles sont bien illisibles :
hexdump -C /dev/raid0 | head
Etape 6 : Sauvegarde des fichiers de configuration
14) Sauvegarder les fichiers de configuration /etc/raid.conf et /etc/cgd/cgd0.conf sur un support externe sécurisé.
Ne pas laisser le fichier /etc/cgd/cgd0.conf sur le serveur en production !
En cas de redémarrage imprévu de la machine
Recharger le raid :
(attention, vous avez impérativement besoin du fichier /etc/cgd/cgd0.conf pour recharger le raid. Vous devez l'avoir remis sur le serveur avant de commencer - puisque vous l'avez logiquement protégé en le transférant sur un autre serveur).
1) Ré-initialiser le RAID1
raidctl -C /etc/raid.conf raid0
cgdconfig -V re-enter /dev/cgd0 /dev/raid0 /etc/cgd/cgd0.conf
Entrer la même clef que précédemment...
mount /dev/cgd0a /SFTP
En cas de défaillance d'un des disques
1) Afficher le statut du RAID :
raidctl -s raid0
Constater le disque défaillant.
2) Eteindre le serveur et procéder au remplacement physique du disque.
3) Rallumer, chercher le nom du nouveau disque avec sysctl hw.disknames puis l'ajouter au RAID :
raidctl -a /dev/sdX raid0
↑ Haut de page