Software Raid

From Q
Revision as of 16:17, 27 July 2011 by Tgurr (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Hinweise

WICHTIG!!! Ihr wisst schon: Bitte macht ein Backup vorher!

Dieses HowTo beschreibt wie man ein Raid 1 Online umpartitionieren kann d.h. es muss nicht in einem Rescu Modus oder von eine externe CD gebootet werden. Das ist der Vorteil beim Raid man kann eine Platte entfernen und wieder hinzufügen und das ganze wärend dem Betrieb. Ich habe 2 Festplatten mit je 160 GB davon möchte ich 100 GB auf eine andere Partition haben.

Code: Ist und Soll Stand

Vorhandene Festplatten im Server:
HDD1 = /dev/sda 160 GB
HDD2 = /dev/sbb 160 GB

IST Stand:
MD1 = 160 GB (2x 160 GB Raid 1) 

SOLL Stand:
MD1 = 60 GB (2x 60 GB Raid 1)
MD2 = 100 GB (2x 100 GB Raid 1)


Raid konfigurieren

Code:
# Zuerst erstellen wir ein Raid 1:
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

# dateisystem erstellen, 
mkfs.ext3 /dev/md1

# md0 Raid mounten, 
mount /dev/md1 /mnt/test

# Erstellen einer Testdatei und md5sum um es später wieder zu prüfen:
dd if=/dev/urandom of=/mnt/test/dd bs=512 count=10000
md5sum /mnt/test/dd > md5sum

# Unbedingt prüfen ob das Raid syncronisiert ist:
cat /proc/mdstat

# Nun entfernen wir eine Partition:
mdadm /dev/md1 --fail /dev/sda1 --remove /dev/sda1

# und löschen wir die sda1, erstellen eine neue (kleinere) und setzen den Partitionstyp auf fd (Linux raid autodetect):
cfdisk /dev/sda

# Partition dem Raid wieder hinzufügen:
mdadm -a /dev/md1 /dev/sda1

# Unbedingt wieder prüfen ob das Raid syncronisiert ist:
cat /proc/mdstat

Das Ganze lässt sich natürlich auch für mehrere Festplatten wiederholen. <br/>
also Egal ob Raid 1 oder 5. Ausser stripes natürlich.


Nun wird das Raid auf die neue Größe anegpasst:

# mdadm --detail /dev/md1 | grep -e 'Array Size' -e 'Device Size'
    Array Size : 390912 (381.81 MiB 400.29 MB)
    Device Size : 195456 (190.91 MiB 200.15 MB)

# mdadm --grow /dev/md1 -z max
# mdadm --detail /dev/md1 | grep -e "Array Size" -e 'Device Size'
    Array Size : 976512 (953.79 MiB 999.95 MB)
    Device Size : 488256 (476.89 MiB 499.97 MB)


# df -h | grep test
/dev/md1              370M   15M  336M   5% /mnt/test

# resize2fs /dev/md1
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/md1 is mounted on /mnt/test; on-line resizing required
Performing an on-line resize of /dev/md1 to 976512 (1k) blocks.
The filesystem on /dev/md1 is now 976512 blocks long.

# df -h | grep test
/dev/md1              924M   16M  861M   2% /mnt/test

Nun die testdatei checken:

# md5sum -c md5sum
/mnt/test/dd: OK


Als letztes erstellen wir die neue Patition ebenfalls in einem Raid 1 Verbund:
# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4

Jetzt noch ein Dateisystem drauf:
# mkfs.ext3 /dev/md2


Fertig!!!