Installation sur RAID logiciel

Updated 13 Mars 2019

Introduction

RAID (stands for Redundant Array of Independent Disks) est une technologie de virtualisation de données qui combine plusieurs disques en un élément logique pour améliorer la fiabilité (à l'exception du RAID 0) et augmenter les performances. Vous n'avez pas besoin d'acheter un contrôleur RAID pour utiliser une matrice RAID. Un tel tableau n'est pas lié au matériel et, si nécessaire, peut être copié sur un autre serveur exécutant Linux.

Vous devez comprendre que le RAID ne remplace pas - et n'exclut pas la sauvegarde des données, car il ne protège qu'en cas de panne de disque. Les données peuvent également être perdues à la suite d'une défaillance du système de fichiers ou d'une suppression accidentelle. En outre, le volume de réserve peut être endommagé par une utilisation intensive de la matrice RAID.

Pour installer Calculate Linux sur un RAID logiciel, vous devez partitionner l'un des disques durs, copier la table de partition sur les autres disques et finalement construire un tableau RAID à partir des mêmes partitions. Ci-dessous, la marche à suivre pour créer une matrice RAID 5~ sur trois volumes : /dev/sda, ~/dev/sdb et /dev/sdc. Il est possible d'utiliser RAID plutôt que RAID 5.

Créer une matrice RAID

Créez deux partitions sur un volume, un démarrage du BIOS et une partition RAID. Vous pouvez utiliser fdisk pour le faire:

fdisk /dev/sda

Ensuite, entrez ce qui suit:

g¶
n¶
¶
¶
+50M¶
t¶
4¶
n¶
¶
¶
¶
t¶
2¶
29¶
w¶

"¶" est le caractère de saut de ligne. Une table de partition GPT et deux partitions, "BIOS boot" de 50 Mo et un futur RAID, seront créés.

Vous pouvez également copier et exécuter la commande suivante, en remplaçant /dev/sda par le nom de votre appareil:

echo -e "g\nn\n\n\n+50M\nt\n4\nn\n\n\n\nt\n2\n29\nw" | fdisk /dev/sda
 Welcome to fdisk (util-linux 2.30.2).
 Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): Created a new GPT disklabel (GUID: 3AF4A8EF-7D70-4E98-B340-7D8BFCFD1A66).

Command (m for help): Partition number (1-128, default 1): First sector (2048-23437770718, default 2048): Last sector + sectors or + size {K,M,G,T,P} (2048-23437770718, default 23437
Created a new partition 1 of type 'Linux filesystem' and of size 50 MiB.

Command (m for help): Selected partition 1
Type of partition (enter L to get the list of partition type codes): Changed type of partition 'Linux filesystem' to 'BIOS boot'.

Command (m for help): Partition number (2-128, default 2): First sector (104448-23437770718, default 104448): Last sector + sectors or + size {K,M,G,T,P} (104448-23437770718, default 234
Created a new partition 2 of type 'Linux filesystem' and of size 10.9 TiB.

Command (m for help): Partition number (1,2, default 2): Type of partition (enter L to get the list of partition type codes): 
Changed type of partition 'Linux filesystem' to 'Linux RAID'.

Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Vérifiez les partitions :

fdisk -l /dev/sda
 Disk /dev/sda: 10.9 TiB, 12000138625024 bytes, 23437770752 sectors
 Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt
Disk identifier: 3AF4A8EF-7D70-4E98-B340-7D8BFCFD1A66

 Device      Start        End     Sectors Size Type
/dev/sda1    2048      104447      102400    50M BIOS boot
/dev/sda2  104448 23437770718 23437666271  10.9T Linux RAID

Copie Pour ce faire, copiez la table de partition sur /dev/sda vers /dev/sdb~ et recréez les UUIDs sur sdb~ :

sgdisk -R /dev/sdb /dev/sda

sgdisk -G /dev/sdb

Pour ce faire, copiez la table de partition sur /dev/sda vers /dev/sdc~ et recréez les UUIDs sur sdc~ :

sgdisk -R /dev/sdc /dev/sda

sgdisk -G /dev/sdc

Créez un tableau RAID 5:

mdadm --create /dev/md0 --level=5 --raid-devices=3 --metadata=1.2 /dev/sda2 /dev/sdb2 /dev/sdc2
mdadm: array /dev/md0 started.

Pour suivre las progression, exécutez :

watch cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdc2[3] sdb2[1] sda2[0]
      23437403136 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [>....................]  recovery =  0.1% (20175232/11718701568) finish=943.1min speed=206732K/sec
      bitmap: 0/88 pages [0KB], 65536KB chunk

unused devices: <none>

Pour une synchronisation plus rapide des données, définissez une limite de vitesse de synchronisation plus élevée:

echo 10000000 > /proc/sys/dev/raid/speed_limit_max

Vérifiez le partitionnement:

lsblk /dev/sda /dev/sdb /dev/sdc
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda       8:0    0 10.9T  0 disk  
├─sda1    8:1    0   50M  0 part  
└─sda2    8:2    0 10.9T  0 part  
  └─md0   9:0    0 21.8T  0 raid5 
sdb       8:16   0 10.9T  0 disk  
├─sdb1    8:17   0   50M  0 part  
└─sdb2    8:18   0 10.9T  0 part  
  └─md0   9:0    0 21.8T  0 raid5 
sdc       8:32   0 10.9T  0 disk  
├─sdc1    8:33   0   50M  0 part  
└─sdc2    8:34   0 10.9T  0 part  
  └─md0   9:0    0 21.8T  0 raid5

Installation de Calculate

Pour installer Calculate Linux sur un RAID logiciel, faites comme s'il s'agissait d'une installation classique. Votre réseau RAID sera automatiquement partitionné. Pour installer Calculate Linux sur votre RAID, il suffit d'exécuter:

cl-install -D /dev/md0

Vous pouvez redémarrer votre ordinateur maintenant.

Restauration du système

Si un volume RAID échoue, le démarrage du système peut prendre beaucoup plus de temps, car le bootloader s'attend à ce que le RAID soit complètement construit.

Après avoir remplacé le disque endommagé (par exemple /dev/sdb), créez la même table de partitions, en copiant l'un des disques que vous avez déjà eus (par exemple /dev/sda):

sgdisk -R /dev/sdb /dev/sda

sgdisk -G /dev/sdb

Maintenant, ajoutez la partition au tableau:

mdadm /dev/md0 -a /dev/sdb2

Vérifiez les progrès:

watch cat /proc/mdstat

Pour accélérer la synchronisation, augmentez la limite de vitesse maximale:

echo 10000000 > /proc/sys/dev/raid/speed_limit_max

Note

Si vous remplacez un disque endommagé par un disque plus grand, l'espace restant peut également être utilisé pour de nouvelles partitions.

Supprimer un tableau RAID

Pour supprimer un tableau, arrêtez le RAID et supprimez les métadonnées qui y sont stockées:

mdadm -S /dev/md0
mdadm: stopped /dev/md0

mdadm --zero-superblock /dev/sda2 /dev/sdb2 /dev/sdc2

Notifications

Pour être averti des erreurs RAID, vous devez configurer la notification par e-mail.

Vous pouvez utiliser n'importe quel SMTP comme expéditeur, tel que mail-mta/nullmailer qui vient avecCalculate Linux Desktop. Pour le configurer, exécutez:

emerge --config nullmailer
Configuration de pkg...

 * Setting /etc/nullmailer/me
 * Setting /etc/nullmailer/defaultdomain


Spécifiez le serveur SMTP:

/etc/nullmailer/remotes

smtp.domain.org smtp

Lancez nullmailer et ajoutez-le au démarrage automatique:

/etc/init.d/nullmailer start

rc-update add nullmailer

Spécifiez l'expéditeur et le destinataire:

/etc/mdadm.conf

MAILADDR inbox@domain1.com
MAILFROM outbox@domain2.com

Maintenant, testons-le:

mdadm --monitor /dev/md0 --test --oneshot