Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| elearning:workbooks:centos:8:avance:l111 [2021/08/23 11:05] – created admin | elearning:workbooks:centos:8:avance:l111 [2023/12/08 14:48] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
| - | ======LCF609 | + | ======LCF602 |
| + | =====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=" | <div align=" | ||
| - | Copyright © 2021 Hugh Norris | + | Copyright © 2020 Hugh Norris. |
| - | </ | + | |
| </ | </ | ||
| - | ----- | ||