Maison  >  Article  >  Opération et maintenance  >  Explication détaillée de la commande mdadm

Explication détaillée de la commande mdadm

藏色散人
藏色散人original
2020-02-20 09:45:5110714parcourir

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&#39;s strongly recommended to
         switch off the mode (command &#39;c&#39;) and change display units to
         sectors (command &#39;u&#39;).
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn