Maison > Article > Opération et maintenance > Explication détaillée de la commande mdadm
Explication détaillée de la commande mdadm
Explication détaillée de la commande mdadm et du processus expérimental
Partage de vidéos d'apprentissage en ligne : Tutoriel vidéo Linux
1. Concept
mdadm est l'abréviation de plusieurs appareils admin C'est un outil logiciel standard de gestion RAID sous Linux L'auteur est Neil Brown
.2. Caractéristiques
mdadm peut diagnostiquer, surveiller et collecter des informations détaillées sur la matrice
mdadm est un programme intégré distinct plutôt qu'un ensemble de programmes dispersés, il a donc des commandes communes pour différents RAID commandes de gestion La syntaxe de
mdadm peut exécuter presque toutes les fonctions sans fichier de configuration (il n'y a pas de fichier de configuration par défaut)
3. Fonction (référence)
Dans le système Linux Actuellement, le RAID logiciel est implémenté sous la forme de périphériques de blocs virtuels MD (Multiple Devices), utilisant plusieurs périphériques de blocs sous-jacents pour virtualiser un nouveau périphérique virtuel et utilisant la technologie de répartition pour répartir uniformément les blocs de données sur plusieurs disques. Améliorer les performances de lecture et d'écriture. des appareils virtuels, utilisez différents algorithmes de redondance des données pour protéger les données utilisateur contre la perte complète en raison d'une panne de périphérique bloqué et restaurez les données perdues sur de nouveaux appareils après le remplacement de l'appareil.
Actuellement, MD prend en charge les formats linéaires, multipath, raid0(stripping), raid1(mirror), raid4, raid5, raid6, raid10 et d'autres niveaux de redondance et méthodes de classement. Bien sûr, il peut également prendre en charge plusieurs matrices RAID. Les cascades forment des tableaux de raid1 0, raid5 1 et. autres types
IV. Expérience
Question : Créez 4 disques de taille 1G et créez-en 3 en tant que disques de matrice RAID5. 1 est un disque de secours. Testez le disque de secours pour remplacer le disque dans la baie et synchronisez les données. Retirez le disque endommagé et ajoutez un nouveau disque comme disque de secours. Enfin, il doit être automatiquement monté au démarrage.
4.1 Créer un disque
[root@xiao ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n First cylinder (10486-13054, default 10486): Using default value 10486 Last cylinder, +cylinders or +size{K,M,G} (10486-13054, default 13054): +1G Command (m for help): n First cylinder (10618-13054, default 10618): Using default value 10618 Last cylinder, +cylinders or +size{K,M,G} (10618-13054, default 13054): +1G Command (m for help): n First cylinder (10750-13054, default 10750): Using default value 10750 Last cylinder, +cylinders or +size{K,M,G} (10750-13054, default 13054): +1G Command (m for help): n First cylinder (10882-13054, default 10882): Using default value 10882 Last cylinder, +cylinders or +size{K,M,G} (10882-13054, default 13054): +1G Command (m for help): t Partition number (1-8): 8 Hex code (type L to list codes): fd Changed system type of partition 8 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 7 Hex code (type L to list codes): fd Changed system type of partition 7 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 6 Hex code (type L to list codes): fd Changed system type of partition 6 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 5 Hex code (type L to list codes): fd Changed system type of partition 5 to fd (Linux raid autodetect) Command (m for help): p Disk /dev/sda: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008ed57 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 10225 81920000 83 Linux /dev/sda3 10225 10486 2097152 82 Linux swap / Solaris /dev/sda4 10486 13054 20633279 5 Extended /dev/sda5 10486 10617 1058045 fd Linux raid autodetect /dev/sda6 10618 10749 1060258+ fd Linux raid autodetect /dev/sda7 10750 10881 1060258+ fd Linux raid autodetect /dev/sda8 10882 11013 1060258+ fd Linux raid autodetect Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
4.2 Charger le noyau
[root@xiao ~]# partx -a /dev/sda5 /dev/sda
[ root@xiao ~]# partx -a /dev/sda6 /dev/sda
[root@xiao ~]# partx -a /dev/sda7 /dev/sda
[root@ xiao ~]# partx -a /dev/sda8 /dev/sda
4.3 Créer raid5 et son disque de sauvegarde à chaud
[root@xiao ~]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda{5,6,7,8} mdadm: /dev/sda5 appears to be part of a raid array: level=raid5 devices=3 ctime=Wed Dec 17 00:58:24 2014 mdadm: /dev/sda6 appears to be part of a raid array: level=raid5 devices=3 ctime=Wed Dec 17 00:58:24 2014 mdadm: /dev/sda7 appears to be part of a raid array: level=raid5 devices=3 ctime=Wed Dec 17 00:58:24 2014 mdadm: /dev/sda8 appears to be part of a raid array: level=raid5 devices=3 ctime=Wed Dec 17 00:58:24 2014 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
4.4 Le temps d'initialisation est lié à l'application de lecture et d'écriture du matrice de disques, utilisez les informations cat /proc/mdstat pour interroger la vitesse de reconstruction actuelle et le temps d'achèvement prévu de la matrice RAID.
[root@xiao ~]# cat /proc/mdstat Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] md0 : active raid5 sda7[4] sda8[3](S) sda6[1] sda5[0] 2113536 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [=========>...........] recovery = 45.5% (482048/1056768) finish=0.3min speed=30128K/sec unused devices: <none> [root@xiao ~]# cat /proc/mdstat Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] md0 : active raid5 sda7[4] sda8[3](S) sda6[1] sda5[0] 2113536 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none> [root@xiao ~]# mke2fs -t ext3 /dev/md0 //格式化raid
4.5 Montez le raid dans le répertoire /mnt et vérifiez s'il est normal (lost+found s'affiche normalement)
[root@xiao ~]# mount /dev/md0 /mnt [root@xiao ~]# ls /mnt lost+found
4.6 Vérifiez les informations détaillées de le tableau raid
[root@xiao ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Wed Dec 17 03:38:08 2014 Raid Level : raid5 Array Size : 2113536 (2.02 GiB 2.16 GB) Used Dev Size : 1056768 (1032.17 MiB 1082.13 MB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Dec 17 03:55:11 2014 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : xiao:0 (local to host xiao) UUID : bce110f2:34f3fbf1:8de472ed:633a374f Events : 18 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 1 8 6 1 active sync /dev/sda6 4 8 7 2 active sync /dev/sda7 3 8 8 - spare /dev/sda8
4.7 simule les dommages causés à l'un des disques. Ici, je choisis le disque /dev/sda6
[root@xiao ~]# mdadm /dev/md0 --fail /dev/sda6 mdadm: set /dev/sda6 faulty in /dev/md0
4.7. Affichez les détails du tableau raid et constatez que /dev/sda8 remplace automatiquement. le disque /dev/sda6 endommagé.
[root@xiao ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Wed Dec 17 03:38:08 2014 Raid Level : raid5 Array Size : 2113536 (2.02 GiB 2.16 GB) Used Dev Size : 1056768 (1032.17 MiB 1082.13 MB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Dec 17 04:13:59 2014 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Rebuild Status : 43% complete Name : xiao:0 (local to host xiao) UUID : bce110f2:34f3fbf1:8de472ed:633a374f Events : 26 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 3 8 8 1 spare rebuilding /dev/sda8 4 8 7 2 active sync /dev/sda7 1 8 6 - faulty /dev/sda6 [root@xiao ~]# cat /proc/mdstat Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] md0 : active raid5 sda7[4] sda8[3] sda6[1](F) sda5[0]
2113536 blocs super 1.2 niveau 5, morceau de 512k, algorithme 2 [3/3] [UUU] #La situation normale sera [UUU], si le premier disque est endommagé, il affichera [_UU] .
4.8 Retirez le disque dur endommagé
[root@xiao ~]# mdadm /dev/md0 -r /dev/sda6 mdadm: hot removed /dev/sda6 from /dev/md0
4.9 Ajoutez un nouveau disque dur comme disque de secours
[root@xiao ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n First cylinder (11014-13054, default 11014): Using default value 11014 Last cylinder, +cylinders or +size{K,M,G} (11014-13054, default 13054): +1G Command (m for help): t Partition number (1-9): 9 Hex code (type L to list codes): fd Changed system type of partition 9 to fd (Linux raid autodetect) Command (m for help): p Disk /dev/sda: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008ed57 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 10225 81920000 83 Linux /dev/sda3 10225 10486 2097152 82 Linux swap / Solaris /dev/sda4 10486 13054 20633279 5 Extended /dev/sda5 10486 10617 1058045 fd Linux raid autodetect /dev/sda6 10618 10749 1060258+ fd Linux raid autodetect /dev/sda7 10750 10881 1060258+ fd Linux raid autodetect /dev/sda8 10882 11013 1060258+ fd Linux raid autodetect /dev/sda9 11014 11145 1060258+ fd Linux raid autodetect Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@xiao ~]# partx -a /dev/sda9 /dev/sda [root@xiao ~]# mdadm /dev/md0 --add /dev/sda9 mdadm: added /dev/sda9 [root@xiao ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Wed Dec 17 03:38:08 2014 Raid Level : raid5 Array Size : 2113536 (2.02 GiB 2.16 GB) Used Dev Size : 1056768 (1032.17 MiB 1082.13 MB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Dec 17 04:39:35 2014 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : xiao:0 (local to host xiao) UUID : bce110f2:34f3fbf1:8de472ed:633a374f Events : 41 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 3 8 8 1 active sync /dev/sda8 4 8 7 2 active sync /dev/sda7 5 8 9 - spare /dev/sda9
5. Montez automatiquement au démarrage
. Modifier le fichier /etc/ fsab
/dev/md0 /mnt ext3 defaults 0 0
:wq
6. mdadm Chinese man(Citation)
Syntaxe de base : mdadm [mode] [options]
[mode] Il existe 7 types :
Assembler : Ajouter un tableau préalablement défini à le tableau actuellement utilisé.
Construire : créer un tableau existant, chaque appareil n'a pas de superblocs
Créer : créer un nouveau tableau, chaque appareil a des superblocs
Gérer : gérer le tableau, par exemple ajouter Ou supprimer
Divers : permet des opérations individuelles sur un périphérique de la matrice, telles que l'effacement de superblocs ou la fin de la matrice en cours d'utilisation.
Suivre ou surveiller : surveiller l'état du raid 1, 4, 5, 6 et multipath
Augmenter : modifier la capacité du raid ou le nombre d'appareils dans la baie
[options disponibles] :
-A, --assemble : ajouter un tableau précédemment défini
-B, --build : créer un tableau existant sans superblocs.
- C, --create : Créer un nouveau tableau
-Q, --query : Vérifier un périphérique pour déterminer s'il s'agit d'un périphérique md ou d'une partie d'un tableau md
-D, - - detail : Imprime les informations détaillées d'un ou plusieurs appareils md
-E, --examine : Imprime le contenu du superbloc md sur l'appareil
-F, --follow, - -monitor : Sélectionnez le mode Moniteur
-G, --grow : Changez la taille ou la forme du tableau utilisé
-h, --help : Informations d'aide, cette option sera affichée après avoir utilisé les options ci-dessus info
--help-options
-V, --version
-v, --verbose : afficher les détails
-b, -- bref : moins de détails. Pour les options --detail et --examine
-f, --force
-c, --config= : spécifiez le fichier de configuration, la valeur par défaut est /etc/mdadm/mdadm. conf
-s, --scan : analyse les fichiers de configuration ou /proc/mdstat pour les informations manquantes. Fichier de configuration /etc/mdadm/mdadm.conf
options de création ou de construction :
-c, --chunk=:Spécifiez la taille du bloc de kibioctets. La valeur par défaut est 64.
.--rounding= : Spécifiez le facteur d'arrondi pour le tableau linéaire (== taille du morceau)
-l, --level= : Définissez le niveau de raid.
--création disponible : linéaire , raid0, 0, stripe, raid1,1, miroir, raid4, 4, raid5, 5, raid6, 6, multipath, mp.
--build disponible : linéaire, raid0, 0, stripe.
-p, --parity= : Définit les règles de contrôle de parité de raid5 : asymétrique à gauche, symétrique à gauche, asymétrique à droite, symétrique à droite, la, ra, ls, rs. La valeur par défaut est symétrique à gauche.
--layout= : similaire à --parity
-n, --raid-devices= : précise le nombre de périphériques disponibles dans la baie, ce nombre ne peut être modifié que par - -grow
-x, --spare-devices= : Spécifiez le nombre de périphériques de rechange dans la matrice initiale
-z, --size= : Après la configuration de RAID1/4/5 /6, de chaque appareil La quantité totale d'espace acquis
--assume-clean : actuellement utilisé uniquement avec l'option --build
-R, --run : une partie du Le tableau apparaît dans d'autres tableaux ou systèmes de fichiers, mdadm confirmera le tableau. Cette option ne confirmera pas.
-f, --force : Généralement, mdadm ne vous permet pas de créer un tableau avec un seul périphérique, et un périphérique sera utilisé comme lecteur manquant lors de la création d'un raid5. Cette option est tout le contraire.
-a, --auto{=no,yes,md,mdp,part,p}{NN}:
Pour plus de contenu lié à la programmation, veuillez faire attention au site Web chinois phpColonne Introduction à la programmation !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!