Heim > Artikel > Betrieb und Instandhaltung > 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/sda4.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 //格式化raid4.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+found4.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/sda84.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/md04.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/md04.9 Fügen Sie eine neue Festplatte als Hot-Spare-Festplatte hinzu
[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/sda95. 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öckeErstellen: Erstellen Sie ein neues Array, jedes Gerät hat SuperblöckeVerwalten: Verwalten Sie das Array, z. B. Hinzufügen Oder entfernenVerschiedenes: 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.confVon 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!