Mdadm Howto

Aus xinux.net
Zur Navigation springen Zur Suche springen

Einrichten

Installation

  • apt-get install mdadm

Raid 0

  • mdadm -C /dev/md0 -l 0 -n 2 /dev/vda5 /dev/vda6

Raid 1

  • mdadm -C /dev/md1 -l 1 -n 2 /dev/vda7 /dev/vda8

Raid 5

  • mdadm -C /dev/md2 -l 5 -n 3 /dev/vda9 /dev/vda10 /dev/vda11

Raid 10

  • mdadm -C /dev/md3 -l 10 -n 4 /dev/vda12 /dev/vda13 /dev/vda14 /dev/vda15

Mit Sparedisks

  • mdadm -C /dev/md3 -l 10 -n 4 -x 2 /dev/vda12 /dev/vda13 /dev/vda14 /dev/vda15 /dev/vdb1 /dev/vdb2

Mountpoints erzeugen

  • mkdir /mnt/raid{0,1,5,10}

Dateisystem aufbringen

  • mkfs.ext4 /dev/md0
  • mkfs.ext4 /dev/md1
  • mkfs.ext4 /dev/md2
  • mkfs.ext4 /dev/md3

Mounten

  • mount /dev/md0 /mnt/raid0
  • mount /dev/md1 /mnt/raid1
  • mount /dev/md2 /mnt/raid5
  • mount /dev/md3 /mnt/raid10

Verfügbarer Speicher

  • df -h -t ext4
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/vda1        50G     25G   23G   53% /
/dev/md0         20G     24K   19G    1% /mnt/raid0
/dev/md1        9,8G     24K  9,3G    1% /mnt/raid1
/dev/md2         20G     24K   19G    1% /mnt/raid5
/dev/md3         20G     24K   19G    1% /mnt/raid10

Geschwindigkeitsmessung

  • dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc

Kontrolle

  • cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md3 : active raid10 vda15[3] vda14[2] vda13[1] vda12[0]
      20953088 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      [=============>.......]  resync = 68.4% (14344640/20953088) finish=0.5min speed=202328K/sec
      
md2 : active raid5 vda11[3] vda10[1] vda9[0]
      20953088 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md1 : active raid1 vda8[1] vda7[0]
      10476544 blocks super 1.2 [2/2] [UU]
      
md0 : active raid0 vda6[1] vda5[0]
      20953088 blocks super 1.2 512k chunks

Bootvorgang

  • Entweder wird die Konfiguration im Persistent Superlock ausgelesen
  • oder in der Konfigurationsdatei /etc/mdadm/mdadm.conf
  • Raid Funktion ist in der Regel in der Ramdisk vorhanden
  • Es werden bei 0xFD Partitionstyp die Partitionen automatisch zu md-Devices assembliert und gestartet

Manuelles Zusammenbauen

  • mdadm -A /dev/md0 /dev/vda5 /dev/vda6
  • mdadm -A /dev/md1 /dev/vda7 /dev/vda7
  • mdadm -A /dev/md2 /dev/vda9 /dev/vda10 /dev/vda11
  • mdadm -A /dev/md3 /dev/vda12 /dev/vda13 /dev/vda14 /dev/vda15

Erstellen der Datei /etc/mdadm/mdadm.conf

Normalerweise nicht notwendig
  • cd /etc/mdadm
  • echo 'DEVICE /dev/vd*[0-15] ' > mdadm.conf
  • mdadm --detail --scan >> mdadm.conf

Arbeiten am Raid

Partition fehlerhaft setzen

  • mdadm /dev/md1 -f /dev/vda8

Partition entfernen

  • mdadm /dev/md1 --remove /dev/vda8

Partition hinzufügen

  • mdadm /dev/md1 -a /dev/vda16

Raid stoppen

  • umount /mnt/raid0
  • mdadm -S /dev/md0

Raid wieder starten

  • mdadm -A /dev/md0 /dev/vda5 /dev/vda6
  • mount -t ext4 /dev/md0 /mnt/raid0

Raid Info

  • mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu Mar  3 09:55:06 2022
        Raid Level : raid0
        Array Size : 20953088 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Mar  3 09:55:06 2022
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

            Layout : -unknown-
        Chunk Size : 512K

Consistency Policy : none

              Name : debian-template:0  (local to host debian-template)
              UUID : 3b7816b2:787704c6:db24d9de:55dbcfe8
            Events : 0

    Number   Major   Minor   RaidDevice State
       0     254        5        0      active sync   /dev/vda5
       1     254        6        1      active sync   /dev/vda6

Superblock untersuchen

Dieser liegt redundant auf allen Partionen des Raid

  • mdadm -E /dev/vda7
/dev/vda7:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 1568fb90:9dd8bc83:f06bc9fe:2dcba200
           Name : debian-template:1  (local to host debian-template)
  Creation Time : Thu Mar  3 09:58:15 2022
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 20953088 (9.99 GiB 10.73 GB)
     Array Size : 10476544 (9.99 GiB 10.73 GB)
    Data Offset : 18432 sectors
   Super Offset : 8 sectors
   Unused Space : before=18280 sectors, after=0 sectors
          State : clean
    Device UUID : 8e4801ba:56f5569e:8e03aa0e:e73190c6

    Update Time : Thu Mar  3 10:33:11 2022
  Bad Block Log : 512 entries available at offset 136 sectors
       Checksum : 360eb7a9 - correct
         Events : 45


   Device Role : Active device 0
   Array State : AA ('A' == active, '.' == missing, 'R' == replacing)

Scanne alle Partitionen und Devices und baue sie zu md0 sofern im Superblock 0 aufgeführt

  • mdadm -Ac partitions -m 0 /dev/md0

Scanne alle Partitionen und Devices und baue sie zu md1 sofern im Superblock 1 aufgeführt

  • mdadm -Ac partitions -m 1 /dev/md1

Konfiguration updaten

  • mdadm -Ds > /etc/mdadm.conf

Superblock löschen

  • mdadm --zero-superblock /dev/vda8

Partition anschalten

  • mdadm --run /dev/sd11

Partition schreibbar setzen

  • mdadm --readwrite /dev/sd11

Synchronisationsgeschwindigkeit anzeigen

  • cat /proc/sys/dev/raid/speed_limit_max
200000
cat /proc/sys/dev/raid/speed_limit_min
1000

erhöhen

echo 50000 > /proc/sys/dev/raid/speed_limit_min

Aufgaben

SATA RAID