Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
elearning:workbooks:centos:8:avance:l111 [2021/09/08 04:33] – removed admin | elearning:workbooks:centos:8:avance:l111 [2023/12/08 14:48] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ~~PDF: | ||
+ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
+ | |||
+ | ======LCF602 - Gestion Avancée des Disques - Raid Logiciel====== | ||
+ | |||
+ | =====Contenu du Module===== | ||
+ | |||
+ | * **LCF602 - Gestion Avancée des Disques - Raid Logiciel** | ||
+ | * Contenu du Module | ||
+ | * Concepts RAID | ||
+ | * Disques en miroir | ||
+ | * Bandes de données | ||
+ | * Types de RAID | ||
+ | * RAID 0 - Concaténation | ||
+ | * RAID 0 - Striping | ||
+ | * RAID 1 - Miroir | ||
+ | * RAID 1+0 - Striping en Miroir | ||
+ | * RAID 2 - Miroir avec Contrôle d' | ||
+ | * RAID 3 et 4 - Striping avec Parité | ||
+ | * RAID 5 - Striping avec Parité Distribuée | ||
+ | * Au délà de RAID 5 | ||
+ | * RAID Logiciel sous RHEL/CentOS | ||
+ | * Préparation du disque | ||
+ | * Partitionnement | ||
+ | * Mise en Place du RAID 5 Logiciel | ||
+ | |||
+ | =====Concepts RAID===== | ||
+ | |||
+ | Les solutions RAID ou //Redundant Array of Independent Disks// ou encore //Redundant Array of Inexpensive Disks// permettent la combinaison de plusieurs disques de façon à ce que ceux-ci soient vu comme un seul disque logique. | ||
+ | |||
+ | Les solutions RAID sont issues du travail fourni par l' | ||
+ | |||
+ | * Addition des capacités, | ||
+ | * Amélioration des performances, | ||
+ | * Apporter la tolérance de panne. | ||
+ | |||
+ | Deux concepts sont fondamentaux à la compréhension des solutions RAID. | ||
+ | |||
+ | ====Disques en miroir==== | ||
+ | |||
+ | La technique des disques en miroir consiste à dupliquer l' | ||
+ | |||
+ | ====Bandes de données==== | ||
+ | |||
+ | La technique des bandes de données, autrement appelée //data striping// consiste à couper les données à enregistrer en segments séquentiels et contigus pour les enregistrer sur plusieurs disques physiques. L' | ||
+ | |||
+ | =====Types de RAID===== | ||
+ | |||
+ | ====RAID 0 - Concaténation==== | ||
+ | |||
+ | Création de volume par récupération de l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Récupération de l' | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Pas de protection des données, | ||
+ | * Pas d' | ||
+ | |||
+ | ====RAID 0 - Striping==== | ||
+ | |||
+ | Création de volume sur plusieurs disques afin d' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Augmentation des performances d'E/S par écriture en parallèle sur les disques. | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Pas de protection des données. | ||
+ | |||
+ | ====RAID 1 - Miroir==== | ||
+ | |||
+ | Création d'un volume où les disques sont en miroir. Quand les deux disques sont connectés à des contrôleurs de disques différents, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Protection des données contre une défaillance d'un disque. | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Coûteux à cause de l' | ||
+ | |||
+ | ====RAID 1+0 - Striping en Miroir==== | ||
+ | |||
+ | Le RAID 1+0 ou encore 0+1 est une technique qui réunit le RAID 0 et le RAID 1. On l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Protection des données contre une défaillance d'un disque. | ||
+ | * Augmentation des performances d'E/S par écriture en parallèle sur les disques. | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Coûteux à cause de l' | ||
+ | |||
+ | ====RAID 2 - Miroir avec Contrôle d' | ||
+ | |||
+ | Le RAID 2 est une technique de miroir avec contrôle de correction d' | ||
+ | |||
+ | ====RAID 3 et 4 - Striping avec Parité==== | ||
+ | |||
+ | Les RAID 3 et 4 sont des technologies avec bandes de parité distribuées sur un seul disque : | ||
+ | |||
+ | {{: | ||
+ | |||
+ | En RAID 3, la taille des segments n’est pas modifiable et est fixée à 512 octets (en RAID 3 : un segment = un secteur de disque dur = 512 octets). | ||
+ | |||
+ | En RAID 4, la taille des segments est variable et se modifie en temps réel. Cela implique que les informations de parité doivent être mise à jour à chaque écriture afin de vérifier si la taille des segments a été modifiée. | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Protection des données contre une défaillance d'un disque. | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Création d'un goulot d' | ||
+ | |||
+ | ====RAID 5 - Striping avec Parité Distribuée==== | ||
+ | |||
+ | Le RAID 5 est une technologie avec bandes de parité distribuées sur plusieurs disques : | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===Avantages=== | ||
+ | |||
+ | * Protection des données contre une défaillance d'un disque, | ||
+ | * Evite le goulot d' | ||
+ | |||
+ | ===Inconvénients=== | ||
+ | |||
+ | * Lecture moins performante qu' | ||
+ | |||
+ | ====Au délà de RAID 5==== | ||
+ | |||
+ | Il existe aussi deux autres technologies RAID, toute deux issues de la technologie RAID 5 : | ||
+ | |||
+ | * RAID 6 | ||
+ | * //Disk Striping with Double Distributed Parity// | ||
+ | * RAID TP | ||
+ | * //Disk Striping with Triple Distributed Parity// | ||
+ | |||
+ | =====RAID Logiciel sous RHEL/ | ||
+ | |||
+ | ====Préparation du disque==== | ||
+ | |||
+ | ===Partitionnement=== | ||
+ | |||
+ | Suite à votre LAB de la leçon **Gestion des Disques et le Swap**, votre disque comporte 12 partitions : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# fdisk -l | ||
+ | |||
+ | Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors | ||
+ | Units = sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disk label type: dos | ||
+ | Disk identifier: 0x000c5a90 | ||
+ | |||
+ | | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ====Mise en Place du RAID 5 Logiciel==== | ||
+ | |||
+ | Dans le cas de cet exemple les quatre partitions concernées par la mise en place d'un RAID 5 sont : | ||
+ | |||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | La création d'une unité RAID avec la commande **mdadm** se fait grâce aux options passées en arguments à la commande : | ||
+ | |||
+ | < | ||
+ | mdadm --create <unité RAID> [options] <unités physiques> | ||
+ | </ | ||
+ | |||
+ | Par exemple, saisissez la commande suivante : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda5 /dev/sda8 /dev/sda11 | ||
+ | mdadm: Defaulting to version 1.2 metadata | ||
+ | mdadm: array /dev/md1 started. | ||
+ | </ | ||
+ | |||
+ | Les options dans la ligne de commande sont : | ||
+ | |||
+ | ^ Option Courte ^ Option Longue ^ Description ^ | ||
+ | | -l | - -level | Le niveau RAID - **linear, 0,1,2,4 ou 5** | | ||
+ | | -n | - -raid-devices=< | ||
+ | |||
+ | Les autres options de la commande **mdadm** peuvent être visualisées grâce à la commande suivante : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --help-options | ||
+ | Any parameter that does not start with ' | ||
+ | or, for --examine-bitmap, | ||
+ | The first such name is often the name of an md device. | ||
+ | names are often names of component devices. | ||
+ | |||
+ | Some common options are: | ||
+ | --help | ||
+ | mode specific help message | ||
+ | --help-options | ||
+ | --version | ||
+ | --verbose | ||
+ | --quiet | ||
+ | --brief | ||
+ | --export | ||
+ | | ||
+ | --force | ||
+ | |||
+ | --assemble | ||
+ | --build | ||
+ | --create | ||
+ | --detail | ||
+ | --examine | ||
+ | --examine-bitmap -X: Display the detail of a bitmap file | ||
+ | --examine-badblocks: | ||
+ | --monitor | ||
+ | --grow | ||
+ | --incremental -I : add/remove a single device to/from an array as appropriate | ||
+ | --query | ||
+ | | ||
+ | --auto-detect | ||
+ | </ | ||
+ | |||
+ | Les //modes majeurs// de la commande **mdadm** peuvent être visualisés grâce à la commande suivante : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --help | ||
+ | mdadm is used for building, managing, and monitoring | ||
+ | Linux md devices (aka RAID arrays) | ||
+ | Usage: mdadm --create device options... | ||
+ | Create a new array from unused devices. | ||
+ | mdadm --assemble device options... | ||
+ | Assemble a previously created array. | ||
+ | mdadm --build device options... | ||
+ | Create or assemble an array without metadata. | ||
+ | mdadm --manage device options... | ||
+ | make changes to an existing array. | ||
+ | mdadm --misc options... devices | ||
+ | report on or modify various md related devices. | ||
+ | mdadm --grow options device | ||
+ | resize/ | ||
+ | mdadm --incremental device | ||
+ | add/remove a device to/from an array as appropriate | ||
+ | mdadm --monitor options... | ||
+ | Monitor one or more array for significant changes. | ||
+ | mdadm device options... | ||
+ | Shorthand for --manage. | ||
+ | Any parameter that does not start with ' | ||
+ | or, for --examine-bitmap, | ||
+ | The first such name is often the name of an md device. | ||
+ | names are often names of component devices. | ||
+ | |||
+ | For detailed help on the above major modes use --help after the mode | ||
+ | e.g. | ||
+ | mdadm --assemble --help | ||
+ | For general help on options use | ||
+ | mdadm --help-options | ||
+ | </ | ||
+ | |||
+ | Dernièrement, | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --assemble --help | ||
+ | Usage: mdadm --assemble device options... | ||
+ | mdadm --assemble --scan options... | ||
+ | |||
+ | This usage assembles one or more raid arrays from pre-existing | ||
+ | components. | ||
+ | For each array, mdadm needs to know the md device, the identity of | ||
+ | the array, and a number of sub devices. These can be found in a number | ||
+ | of ways. | ||
+ | |||
+ | The md device is given on the command line, is found listed in the | ||
+ | config file, or can be deduced from the array identity. | ||
+ | The array identity is determined either from the --uuid, --name, or | ||
+ | --super-minor commandline arguments, from the config file, | ||
+ | or from the first component device on the command line. | ||
+ | |||
+ | The different combinations of these are as follows: | ||
+ | If the --scan option is not given, then only devices and identities | ||
+ | | ||
+ | The first device will be the array device, and the remainder will be | ||
+ | | ||
+ | If an explicit identity is given with --uuid or --super-minor, | ||
+ | only devices with a superblock which matches that identity is considered, | ||
+ | | ||
+ | |||
+ | If the --scan option is given, and no devices are listed, then | ||
+ | every array listed in the config file is considered for assembly. | ||
+ | The identity of candidate devices are determined from the config file. | ||
+ | After these arrays are assembled, mdadm will look for other devices | ||
+ | that could form further arrays and tries to assemble them. This can | ||
+ | be disabled using the ' | ||
+ | |||
+ | If the --scan option is given as well as one or more devices, then | ||
+ | Those devices are md devices that are to be assembled. | ||
+ | and components are determined from the config file. | ||
+ | |||
+ | If mdadm can not find all of the components for an array, it will assemble | ||
+ | it but not activate it unless --run or --scan is given. | ||
+ | | ||
+ | | ||
+ | as recorded in the superblock. | ||
+ | the missing device is not a new problem, it will still be assembled. | ||
+ | is only newly missing devices that cause the array not to be started. | ||
+ | |||
+ | Options that are valid with --assemble (-A) are: | ||
+ | --bitmap= | ||
+ | --uuid= | ||
+ | have this uuid are excluded | ||
+ | --super-minor= -m : minor number to look for in super-block when | ||
+ | | ||
+ | --name= | ||
+ | --config= | ||
+ | --scan | ||
+ | --run | ||
+ | for a full array are present | ||
+ | --force | ||
+ | : out-of-date. | ||
+ | --update= | ||
+ | --no-degraded | ||
+ | --readonly | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant les informations concernant le RAID 5 créé : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cat / | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md1 : active raid5 sda11[3] sda8[1] sda5[0] | ||
+ | 1021952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] | ||
+ | | ||
+ | unused devices: < | ||
+ | </ | ||
+ | |||
+ | Grâce à la commande mdadm, il est possible d' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --query /dev/md1 | ||
+ | /dev/md1: 998.17MiB raid5 3 devices, 0 spares. Use mdadm --detail for more detail. | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --detail /dev/md1 | ||
+ | /dev/md1: | ||
+ | Version : 1.2 | ||
+ | Creation Time : Tue Aug 2 15:10:12 2016 | ||
+ | Raid Level : raid5 | ||
+ | Array Size : 1021952 (998.17 MiB 1046.48 MB) | ||
+ | Used Dev Size : 510976 (499.08 MiB 523.24 MB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Persistence : Superblock is persistent | ||
+ | |||
+ | Update Time : Tue Aug 2 15:10:17 2016 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 3 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | Name : centos7.fenestros.loc: | ||
+ | UUID : fd8bac53: | ||
+ | | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Notez la ligne **Persistence : Superblock is persistent**. En effet, cette implémentation de RAID inscrit les caractéristiques du volume dans un //super bloc// persistant en début de chaque unité de type bloc dans le volume. | ||
+ | |||
+ | <WRAP center round todo> | ||
+ | Recherchez la signification des termes Layout, Chunk size, Major et Minor. | ||
+ | </ | ||
+ | |||
+ | Cependant, il necéssaire de renseigner le fichier **/ | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# echo ' | ||
+ | [root@centos7 ~]# mdadm --detail --scan >> / | ||
+ | [root@centos7 ~]# cat / | ||
+ | DEVICES /dev/sda5 /dev/sda8 /dev/sda11 | ||
+ | ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc: | ||
+ | </ | ||
+ | |||
+ | Chaque unité peut être examinée individuellement : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --examine /dev/sda5 | ||
+ | /dev/sda5: | ||
+ | Magic : a92b4efc | ||
+ | Version : 1.2 | ||
+ | Feature Map : 0x0 | ||
+ | Array UUID : fd8bac53: | ||
+ | Name : centos7.fenestros.loc: | ||
+ | Creation Time : Tue Aug 2 15:10:12 2016 | ||
+ | Raid Level : raid5 | ||
+ | Raid Devices : 3 | ||
+ | |||
+ | Avail Dev Size : 1021952 (499.08 MiB 523.24 MB) | ||
+ | Array Size : 1021952 (998.17 MiB 1046.48 MB) | ||
+ | Data Offset : 2048 sectors | ||
+ | Super Offset : 8 sectors | ||
+ | | ||
+ | State : clean | ||
+ | Device UUID : 4569e15e: | ||
+ | |||
+ | Update Time : Tue Aug 2 15:10:17 2016 | ||
+ | Bad Block Log : 512 entries available at offset 72 sectors | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | | ||
+ | Array State : AAA (' | ||
+ | </ | ||
+ | |||
+ | A ce stade il est intéressant de noter comment réagir lors d'une défaillance d'un disque. Dans notre cas nous allons indiquer au système que la partition /dev/sda5 est devenue défaillante : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --manage --set-faulty /dev/md1 /dev/sda5 | ||
+ | mdadm: set /dev/sda5 faulty in /dev/md1 | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --detail /dev/md1 | ||
+ | /dev/md1: | ||
+ | Version : 1.2 | ||
+ | Creation Time : Tue Aug 2 15:10:12 2016 | ||
+ | Raid Level : raid5 | ||
+ | Array Size : 1021952 (998.17 MiB 1046.48 MB) | ||
+ | Used Dev Size : 510976 (499.08 MiB 523.24 MB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Persistence : Superblock is persistent | ||
+ | |||
+ | Update Time : Tue Aug 2 15:14:59 2016 | ||
+ | State : clean, degraded | ||
+ | | ||
+ | Working Devices : 2 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | Name : centos7.fenestros.loc: | ||
+ | UUID : fd8bac53: | ||
+ | | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | </ | ||
+ | |||
+ | Il est maintenant nécessaire de supprimer /dev/sda5 de notre RAID 5 : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --manage --remove /dev/md1 /dev/sda5 | ||
+ | mdadm: hot removed /dev/sda5 from /dev/md1 | ||
+ | </ | ||
+ | |||
+ | A l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --detail /dev/md1 | ||
+ | /dev/md1: | ||
+ | Version : 1.2 | ||
+ | Creation Time : Tue Aug 2 15:10:12 2016 | ||
+ | Raid Level : raid5 | ||
+ | Array Size : 1021952 (998.17 MiB 1046.48 MB) | ||
+ | Used Dev Size : 510976 (499.08 MiB 523.24 MB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 2 | ||
+ | Persistence : Superblock is persistent | ||
+ | |||
+ | Update Time : Tue Aug 2 15:16:41 2016 | ||
+ | State : clean, degraded | ||
+ | | ||
+ | Working Devices : 2 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | Name : centos7.fenestros.loc: | ||
+ | UUID : fd8bac53: | ||
+ | | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cat / | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md1 : active raid5 sda11[3] sda8[1] | ||
+ | 1021952 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] | ||
+ | | ||
+ | unused devices: < | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | Notez que le RAID a été démarré avec 2 unités au lieu de trois. | ||
+ | </ | ||
+ | |||
+ | Pour ajouter un autre disque à notre RAID afin de remplacer /dev/sda5 il convient d' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --manage --add /dev/md1 /dev/sda10 | ||
+ | mdadm: added /dev/sda10 | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mdadm --detail /dev/md1 | ||
+ | /dev/md1: | ||
+ | Version : 1.2 | ||
+ | Creation Time : Tue Aug 2 15:10:12 2016 | ||
+ | Raid Level : raid5 | ||
+ | Array Size : 1021952 (998.17 MiB 1046.48 MB) | ||
+ | Used Dev Size : 510976 (499.08 MiB 523.24 MB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Persistence : Superblock is persistent | ||
+ | |||
+ | Update Time : Tue Aug 2 15:19:06 2016 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 3 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | Name : centos7.fenestros.loc: | ||
+ | UUID : fd8bac53: | ||
+ | | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Naturellement, | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# echo ' | ||
+ | [root@centos7 ~]# mdadm --detail --scan >> / | ||
+ | [root@centos7 ~]# cat / | ||
+ | DEVICES /dev/sda10 /dev/sda8 /dev/sda11 | ||
+ | ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc: | ||
+ | </ | ||
+ | |||
+ | ----- | ||
+ | < | ||
+ | <div align=" | ||
+ | Copyright © 2020 Hugh Norris. | ||
+ | </ |