Master 1 ère année Sécurité des Systèmes Informatique 1 Les techniques RAID Redundant Array of Inexpensive Disk Permet d’augmenter Capacité (et/ou) performances (et/ou) tolérance aux pannes Regroupement de plusieurs disques physiques Redundant Array of Inexpensive Disk Permet d’augmenter Capacité (et/ou) performances (et/ou) tolérance aux pannes Regroupement de plusieurs disques physiques
Master 1 ère année Sécurité des Systèmes Informatique 2 RAID 0: Les disques combinés Amélioration des performances si: Les disques sont sur des contrôleurs distincts Les disques sont des périphériques identiques (taille, structure,...) Pas d'autre utilisation de ces disques (pas de pagination) Amélioration des performances si: Les disques sont sur des contrôleurs distincts Les disques sont des périphériques identiques (taille, structure,...) Pas d'autre utilisation de ces disques (pas de pagination)
Master 1 ère année Sécurité des Systèmes Informatique 3 RAID 1: Le mirroring Duplication du disque et copie en double des données Amélioration de la tolérance aux pannes Augmentation de la vitesse d’accès en lecture Réelle amélioration si les contrôleurs sont différents Possibilité de combiner les RAID 0 et 1 (onéreux) Duplication du disque et copie en double des données Amélioration de la tolérance aux pannes Augmentation de la vitesse d’accès en lecture Réelle amélioration si les contrôleurs sont différents Possibilité de combiner les RAID 0 et 1 (onéreux)
Master 1 ère année Sécurité des Systèmes Informatique 4 RAID 1: Le mirroring
Master 1 ère année Sécurité des Systèmes Informatique 5 RAID 2 à 5 RAID 2 contrôle grâce à un code de Hamming Obsolète car déjà intégré dans le contrôleur RAID 3 Stockage bit par bit avec un bit de parité sur un disque indépendant Données reconstituées grâce au bit de parité RAID 4 Similaire à RAID 3 sauf que la parité est faite par secteur RAID 5 La parité est cette fois répartie sur tous les disques RAID 2 contrôle grâce à un code de Hamming Obsolète car déjà intégré dans le contrôleur RAID 3 Stockage bit par bit avec un bit de parité sur un disque indépendant Données reconstituées grâce au bit de parité RAID 4 Similaire à RAID 3 sauf que la parité est faite par secteur RAID 5 La parité est cette fois répartie sur tous les disques
Master 1 ère année Sécurité des Systèmes Informatique 6 RAID 5
Master 1 ère année Sécurité des Systèmes Informatique 7 RAID matériel Implantés directement dans les cartes contrôleurs Solution coûteuse mais transparente pour le système d’exploitation Il faut veiller à ce que le contrôleur soit reconnu par le système Implantés directement dans les cartes contrôleurs Solution coûteuse mais transparente pour le système d’exploitation Il faut veiller à ce que le contrôleur soit reconnu par le système
Master 1 ère année Sécurité des Systèmes Informatique 8 RAID logiciel et mise en œuvre sous Linux Consommatrice de ressources Linux supporte les niveaux 0, 1, 4 et 5 Le paquetage des utilitaires est raidtools Les unités RAID créées se nomment /dev/md[0-15] Le fichier de configuration /etc/raidtab Consommatrice de ressources Linux supporte les niveaux 0, 1, 4 et 5 Le paquetage des utilitaires est raidtools Les unités RAID créées se nomment /dev/md[0-15] Le fichier de configuration /etc/raidtab
Master 1 ère année Sécurité des Systèmes Informatique 9 Le fichier /etc/raidtab Cas d’un RAID 1 raiddev /dev/md0 # jusqu’à 15 RAID raid-level 1# Type de RAID nr-raid-disks2# Nombre de disques utilisés dans ce RAID. nr-spare-disks0# Nombre de disque de rechange persistent-superblock 1 # l'auto-détection du RAID chunk-size4# Répartition de l’écriture device /dev/hda3# On utilise le partition /dev/hda3 raid-disk0# Le disque /dev/hda3 est le numéro 0 device /dev/hdc3 # On utilise aussi le disque /dev/hdc3 raid-disk1# Le disque /dev/hdc3 est le numéro 1 raiddev /dev/md0 # jusqu’à 15 RAID raid-level 1# Type de RAID nr-raid-disks2# Nombre de disques utilisés dans ce RAID. nr-spare-disks0# Nombre de disque de rechange persistent-superblock 1 # l'auto-détection du RAID chunk-size4# Répartition de l’écriture device /dev/hda3# On utilise le partition /dev/hda3 raid-disk0# Le disque /dev/hda3 est le numéro 0 device /dev/hdc3 # On utilise aussi le disque /dev/hdc3 raid-disk1# Le disque /dev/hdc3 est le numéro 1
Master 1 ère année Sécurité des Systèmes Informatique 10 Le fichier /etc/raidtab Cas d’un RAID 5 raiddev/dev/md1 raid-level5 nr-raid-disks3 nr-spare-disks1 persistent-superblock1 parity-algorithm left-symmetric # Algorithme de la parité. chunk-size32 device/dev/hda2 raid-disk0 device/dev/hdc2 raid-disk1 device/dev/hdd2 raid-disk2 device/dev/hdb2 # Disque de rechange sur hdb2 spare-disk1 raiddev/dev/md1 raid-level5 nr-raid-disks3 nr-spare-disks1 persistent-superblock1 parity-algorithm left-symmetric # Algorithme de la parité. chunk-size32 device/dev/hda2 raid-disk0 device/dev/hdc2 raid-disk1 device/dev/hdd2 raid-disk2 device/dev/hdb2 # Disque de rechange sur hdb2 spare-disk1
Master 1 ère année Sécurité des Systèmes Informatique 11 Initialisation et lancement du service RAID La commande mkraid effectue l’initialisation du volume à l’aide du fichier de configuration /etc/raidtab # mkraid /dev/md0 handling MD device /dev/md0 analyzing super-block disk 0: /dev/hda2; kB, raid superblock at kB disk 1: /dev/hdc2; kB, raid superblock at kB disk 2: /dev/hdd2; kB, raid superblock at kB Lancement du service # raidstart /dev/md0 Le fichier /proc/mdstat contient les informations du RAID La commande mkraid effectue l’initialisation du volume à l’aide du fichier de configuration /etc/raidtab # mkraid /dev/md0 handling MD device /dev/md0 analyzing super-block disk 0: /dev/hda2; kB, raid superblock at kB disk 1: /dev/hdc2; kB, raid superblock at kB disk 2: /dev/hdd2; kB, raid superblock at kB Lancement du service # raidstart /dev/md0 Le fichier /proc/mdstat contient les informations du RAID
Master 1 ère année Sécurité des Systèmes Informatique 12 Exemple RAID # more /proc/mdstat Personalities : read_ahead not set Event: 0 unused devices: # more /proc/mdstat Personalities : read_ahead not set Event: 0 unused devices:
Master 1 ère année Sécurité des Systèmes Informatique 13 Exemple RAID # more /etc/raidtab raiddev /dev/md0 # On peut configurer jusqu'à 16 RAIDs différents sur une machine. raid-level 1 # Type de RAID utilisé. nr-raid-disks 2 # Nombre de disques utilisés dans ce RAID. nr-spare-disks 0 # Nombre de disque en spare => remplace à chaud le disque défaillant. persistent-superblock 1 # Il faut que l'auto-détection du RAID soit activé dans le noyau. chunk-size 4 # Indique la répartition sur les différents disque durs # des données que l'on écrit à un moment donné. device /dev/hda4 # On utilise le disque (la partition) /dev/hda3. raid-disk 0 # Le disque /dev/hda3 est le numéro 0. device /dev/hdb1 # On utilise aussi le disque (la partition) /dev/hdc3. raid-disk 1 # Le disque /dev/hdc3 est le numéro 1. # more /etc/raidtab raiddev /dev/md0 # On peut configurer jusqu'à 16 RAIDs différents sur une machine. raid-level 1 # Type de RAID utilisé. nr-raid-disks 2 # Nombre de disques utilisés dans ce RAID. nr-spare-disks 0 # Nombre de disque en spare => remplace à chaud le disque défaillant. persistent-superblock 1 # Il faut que l'auto-détection du RAID soit activé dans le noyau. chunk-size 4 # Indique la répartition sur les différents disque durs # des données que l'on écrit à un moment donné. device /dev/hda4 # On utilise le disque (la partition) /dev/hda3. raid-disk 0 # Le disque /dev/hda3 est le numéro 0. device /dev/hdb1 # On utilise aussi le disque (la partition) /dev/hdc3. raid-disk 1 # Le disque /dev/hdc3 est le numéro 1. Configuration du RAID
Master 1 ère année Sécurité des Systèmes Informatique 14 Exemple RAID # fdisk /dev/hda # fdisk /dev/hdb # sfdisk -s /dev/hda: /dev/hda1: /dev/hda2: /dev/hda3: /dev/hda4: /dev/hdb: /dev/hdb1: # fdisk /dev/hda # fdisk /dev/hdb # sfdisk -s /dev/hda: /dev/hda1: /dev/hda2: /dev/hda3: /dev/hda4: /dev/hdb: /dev/hdb1: Création des partitions /dev/hda4 et /dev/hdb1
Master 1 ère année Sécurité des Systèmes Informatique 15 Exemple RAID # mkraid /dev/md0 handling MD device /dev/md0 analyzing super-block disk 0: /dev/hda4, kB, raid superblock at kB disk 1: /dev/hdb1, kB, raid superblock at kB # more /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors Event: 1 md0 : active raid1 hdb1[1] hda4[0] blocks [2/2] [UU] [===> ] resync = 16.9% ( / ) finish=13.4min speed=10076K/sec unused devices: Création du RAID 1
Master 1 ère année Sécurité des Systèmes Informatique 16 Exemple RAID # mkfs -t ext3 /dev/md0 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) inodes, blocks blocks (5.00%) reserved for the super user First data block=0 75 block groups blocks per group, fragments per group inodes per group Superblock backups stored on blocks: 32768, 98304, , , , , , Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mkfs -t ext3 /dev/md0 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) inodes, blocks blocks (5.00%) reserved for the super user First data block=0 75 block groups blocks per group, fragments per group inodes per group Superblock backups stored on blocks: 32768, 98304, , , , , , Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Création du système de fichiers
Master 1 ère année Sécurité des Systèmes Informatique 17 Exemple RAID # mkdir /mnt/raid # mount /dev/md0 /mnt/raid # cd / # find. -xdev | cpio -pm /mnt/raid # mkdir /mnt/raid # mount /dev/md0 /mnt/raid # cd / # find. -xdev | cpio -pm /mnt/raid Montage
Master 1 ère année Sécurité des Systèmes Informatique 18 Documentation et exemples # rpm -qd raidtools /usr/share/doc/raidtools /COPYING /usr/share/doc/raidtools /README /usr/share/doc/raidtools /multipath.conf.sample /usr/share/doc/raidtools /raid0.conf.sample /usr/share/doc/raidtools /raid1.conf.sample /usr/share/doc/raidtools /raid4.conf.sample /usr/share/doc/raidtools /raid5.conf.sample /usr/share/doc/raidtools /raidtab.sample /usr/share/man/man5/raidtab.5.gz /usr/share/man/man8/ckraid.8.gz /usr/share/man/man8/lsraid.8.gz /usr/share/man/man8/mkraid.8.gz /usr/share/man/man8/raid0run.8.gz /usr/share/man/man8/raidadd.8.gz /usr/share/man/man8/raidreconf.8.gz /usr/share/man/man8/raidrun.8.gz /usr/share/man/man8/raidstart.8.gz /usr/share/man/man8/raidstop.8.gz # rpm -qd raidtools /usr/share/doc/raidtools /COPYING /usr/share/doc/raidtools /README /usr/share/doc/raidtools /multipath.conf.sample /usr/share/doc/raidtools /raid0.conf.sample /usr/share/doc/raidtools /raid1.conf.sample /usr/share/doc/raidtools /raid4.conf.sample /usr/share/doc/raidtools /raid5.conf.sample /usr/share/doc/raidtools /raidtab.sample /usr/share/man/man5/raidtab.5.gz /usr/share/man/man8/ckraid.8.gz /usr/share/man/man8/lsraid.8.gz /usr/share/man/man8/mkraid.8.gz /usr/share/man/man8/raid0run.8.gz /usr/share/man/man8/raidadd.8.gz /usr/share/man/man8/raidreconf.8.gz /usr/share/man/man8/raidrun.8.gz /usr/share/man/man8/raidstart.8.gz /usr/share/man/man8/raidstop.8.gz