Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Detaillierte Erläuterung des mdadm-Befehls

Detaillierte Erläuterung des mdadm-Befehls

藏色散人
藏色散人Original
2020-02-20 09:45:5110712Durchsuche

Detaillierte Erläuterung des mdadm-Befehls

Detaillierte Erklärung des mdadm-Befehls

Detaillierte Erklärung des mdadm-Befehls und des experimentellen Prozesses

Online-Lernvideo-Sharing: Linux-Video-Tutorial

1. Konzept

mdadm ist die Abkürzung für „Multiple Devices Admin“. Es handelt sich um ein Standard-Software-RAID-Management-Tool unter Linux

2. Funktionen

mdadm kann detaillierte Array-Informationen diagnostizieren, überwachen und sammeln.

mdadm ist ein separates integriertes Programm und keine Sammlung verstreuter Programme und verfügt daher über gemeinsame Funktionen für verschiedene RAID Verwaltungsbefehle Die Syntax von

mdadm kann fast alle Funktionen ohne Konfigurationsdatei ausführen (es gibt keine Standardkonfigurationsdatei)

3. Funktion (Referenz)

Im Linux-System Derzeit wird Software-RAID in Form von virtuellen MD-Blockgeräten (Multiple Devices) implementiert, um ein neues virtuelles Gerät zu virtualisieren, und die Striping-Technologie wird verwendet, um die Lese- und Lesegeschwindigkeit zu verbessern Schreibleistung virtueller Geräte, verwenden Sie verschiedene Datenredundanzalgorithmen, um Benutzerdaten vor dem vollständigen Verlust aufgrund eines Blockgeräteausfalls zu schützen, und stellen Sie verlorene Daten auf neuen Geräten wieder her, nachdem das Gerät ersetzt wurde.

Derzeit unterstützt MD Linear, Multipath, Raid0 (Stripping), Raid1 (Spiegel), Raid4, Raid5, Raid6, Raid10 und andere verschiedene Redundanzstufen und Bewertungsmethoden. Natürlich können auch mehrere RAID-Arrays unterstützt werden. Die Kaskaden bilden Arrays von Raid1 0, Raid5 1 und andere Typen

IV. Experiment

Frage: Erstellen Sie 4 Festplatten der Größe 1G und erstellen Sie 3 davon als RAID5-Array-Festplatten. 1 ist eine Hot-Spare-Festplatte. Testen Sie die Hot-Spare-Festplatte, um die Festplatte im Array zu ersetzen und die Daten zu synchronisieren. Entfernen Sie die beschädigte Festplatte und fügen Sie eine neue Festplatte als Hot-Spare hinzu. Schließlich muss es beim Booten automatisch gemountet werden.

4.1 Festplatte erstellen

 [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 Kernel laden

[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 Raid5 und seine Hot-Backup-Festplatte erstellen

[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 Die Initialisierungszeit hängt mit der Anwendung des Festplatten-Array-Lesens und zusammen Beim Schreiben verwenden Sie die Informationen von cat /proc/mdstat, um die aktuelle Rekonstruktionsgeschwindigkeit und die erwartete Fertigstellungszeit des RAID-Arrays abzufragen.

[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 Mounten Sie das Raid im /mnt-Verzeichnis und prüfen Sie, ob es normal ist (verloren+gefunden wird normal angezeigt)

[root@xiao ~]# mount /dev/md0 /mnt
[root@xiao ~]# ls /mnt
lost+found

4.6 Überprüfen Sie die detaillierten Informationen von Das Raid-Array

[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 simuliert Schäden an einer der Festplatten. Hier wähle ich die Festplatte /dev/sda6

[root@xiao ~]# mdadm /dev/md0 --fail /dev/sda6
mdadm: set /dev/sda6 faulty in /dev/md0

4.7 aus, um die Details des Raid-Arrays anzuzeigen und /dev/sda8 automatisch zu finden Ersetzen Sie die beschädigte /dev/sda6-Festplatte.

[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 Blöcke Super 1.2 Level 5, 512k Chunk, Algorithmus 2 [3/3] [UUU] #Die normale Situation ist [UUU], wenn die erste Festplatte beschädigt ist, wird [_UU] angezeigt .

4.8 Entfernen Sie die beschädigte Festplatte

[root@xiao ~]# mdadm /dev/md0 -r /dev/sda6
mdadm: hot removed /dev/sda6 from /dev/md0

4.9 Fügen Sie eine neue Festplatte als Hot-Spare-Festplatte hinzu

[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. Beim Booten automatisch mounten

Bearbeiten Sie die Datei /etc/ fsab

/dev/md0 /mnt ext3 defaults 0 0

:wq

6. mdadm Chinesischer Mann (Zitat)

Grundlegende Syntax: mdadm [Modus] [Optionen]

[Modus] Es gibt 7 Typen:

Zusammenbauen: Ein zuvor definiertes Array hinzufügen das aktuell verwendete Array.

Erstellen: Erstellen Sie ein Legacy-Array, jedes Gerät hat keine Superblöcke

Erstellen: Erstellen Sie ein neues Array, jedes Gerät hat Superblöcke

Verwalten: Verwalten Sie das Array, z. B. Hinzufügen Oder entfernen

Verschiedenes: Ermöglicht einzelne Vorgänge auf einem Gerät im Array, z. B. das Löschen von Superblöcken oder das Beenden des verwendeten Arrays.

Folgen oder Überwachen: Überwachen Sie den Status von Raid 1, 4, 5, 6 und Multipath

Wachstum: Ändern Sie die Raid-Kapazität oder die Anzahl der Geräte im Array

Verfügbare [Optionen]:

-A, --assemble: Ein zuvor definiertes Array hinzufügen

-B, --build: Erstellen Sie ein Legacy-Array ohne Superblöcke.

- C, --create: Erstellen Sie ein neues Array

-Q, --query: Überprüfen Sie ein Gerät, um festzustellen, ob es ein MD-Gerät oder Teil eines MD-Arrays ist

-D, - - detail: Drucken Sie die detaillierten Informationen eines oder mehrerer MD-Geräte

-E, --examine: Drucken Sie den Inhalt des MD-Superblocks auf dem Gerät

-F, --follow, - -monitor: Überwachungsmodus auswählen

-G, --grow: Größe oder Form des verwendeten Arrays ändern

-h, --help: Hilfeinformationen, diese Option wird angezeigt nach Verwendung der oben genannten Optionen info

--help-options

-V, --version

-v, --verbose: Details anzeigen

-b, -- kurz: Weniger Details. Für die Optionen --detail und --examine

-f, --force

-c, --config=: geben Sie die Konfigurationsdatei an, der Standardwert ist /etc/mdadm/mdadm. conf

-s, --scan: Konfigurationsdateien oder /proc/mdstat nach fehlenden Informationen durchsuchen. Konfigurationsdatei /etc/mdadm/mdadm.conf

Von create oder build verwendete Optionen:

-c, --chunk=:Specify chunk size of kibibytes. Der Standardwert ist 64.

--rounding=: Rundungsfaktor für lineares Array angeben (==Chunk-Größe)

-l, --level=: Raid-Level festlegen.

--create verfügbar: linear , Raid0, 0, Stripe, Raid1,1, Mirror, Raid4, 4, Raid5, 5, Raid6, 6, Multipath, MP.

--Build verfügbar: linear, Raid0, 0, Stripe.

-p, --parity=: Legen Sie die Paritätsprüfungsregeln von Raid5 fest: eft-asymmetrisch, linkssymmetrisch, rechtsasymmetrisch, rechtssymmetrisch, la, ra, ls, rs. Der Standardwert ist linkssymmetrisch

--layout=: ähnlich wie --parity

-n, --raid-devices=: Gibt die Anzahl der im Array verfügbaren Geräte an, diese Anzahl kann nur geändert werden durch - -grow

-x, --spare-devices=: Geben Sie die Anzahl der Ersatzgeräte im anfänglichen Array an

-z, --size=: Nach dem Einrichten von RAID1/4/5 /6, von jedem Gerät Die Gesamtmenge des erworbenen Speicherplatzes

--assume-clean: wird derzeit nur mit der Option --build verwendet

-R, --run: ein Teil des Wenn ein Array in anderen Arrays oder Dateisystemen angezeigt wird, bestätigt mdadm das Array. Diese Option wird nicht bestätigt.

-f, --force: Normalerweise erlaubt mdadm nicht, ein Array mit nur einem Gerät zu erstellen, und beim Erstellen von Raid5 wird ein Gerät als fehlendes Laufwerk verwendet. Diese Option ist genau das Gegenteil.

-a, --auto{=no,yes,md,mdp,part,p}{NN}:

Weitere programmbezogene Inhalte finden Sie auf der chinesischen PHP-WebsiteEinführung in die Programmierung Kolumne!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des mdadm-Befehls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn