Mit ‘mdadm’ Tagged einträge

3ware Verknüpfung zwischen port und device name

Mittwoch, April 14th, 2010

Folgendes Problem: Ich habe einen 3ware 9xxx-12 Raidcontroler der leider nur Raidarrays von 4TB verwalten kann. Da man dies heutzutage mit 2 Platten schon erreicht habe ich, um auch alle 12 Ports nutzen zu können, ein Software Raid mittels mdadm über die Platten gezogen. Die Platten werden vom Raidcontroler also per JBOD an das OS durch gereicht.
Das Problem der Raidcontroler wird mittels /dev/twa0 angesprochen somit ist nicht erkenntlich welche platte an welchen Port hängt.

root@server:~# smartctl -a --device=3ware,11 /dev/twa0
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: ...
Serial Number: 90ABCDEF

In /proc/mdstat werden aber nicht die ports sondern die „device names“ angegeben:
root@server:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sda1[3] sdc1[4] sdd1[5] sde1[2] sdf1[0] sdg1[0] sdh1[0] sdi1[0] sdj1[0] sdk1[0] sdl1[0]
n blocks level 5, 64k chunk, algorithm 2 [12/11] [U_UUUUUUUUUU]

Lösung:
Über ls -al /dev/disk/by-id taucht die Verknüpfung zur Serial Number in smartctl auf, mit dem ich den port zuweisen konnte.
root@server:~# /bin/ls -al /dev/disk/by-id
..
lrwxrwxrwx 1 root root 9 2010-04-13 01:01 scsi-1AMCC_90ABCDEF000000000000 -> ../../sdb

In diesem Beispiel hängt /dev/sdb also an Port 12

RAID 1 mit 4 Platten

Mittwoch, März 10th, 2010

Beim umbauen eines RAID 1 mit 4 Platten auf 2 neue Platten hatte ich folgendes spannendes Resultat.

root@ubuntu:~# cat /proc/mdstat 
Personalities : [raid1] 
md127 : active raid1 sdb1[0] sda1[3]
      9767424 blocks [4/2] [U__U]
      
unused devices: 

Es waren zwar die nötige Anzahl für ein RAID 1 an Platten vorhanden. Dennoch bekam ich damit bei Boote Probleme, so das ich das RAID umbauen musste.

root@ubuntu:~# mdadm --grow --raid-devices=2 /dev/md0
mdadm: error opening /dev/md0: No such file or directory
root@ubuntu:~# mdadm --grow --raid-devices=2 /dev/md/0_0 
raid_disks for /dev/md/0_0 set to 2

In meinem besonderen Fall ging das nicht mit /dev/md0 sondern nur mit /dev/md/0_0 vermutlich wegen der zuordnen zum md127.

Da nach war alles wieder in Ordnung:

root@ubuntu:~# cat /proc/mdstat 
Personalities : [raid1] 
md127 : active raid1 sdb1[0] sda1[1]
      9767424 blocks [2/2] [UU]
      
unused devices: 

mdadm: Cannot open /dev/sdc1: Device or resource busy

Dienstag, Juli 14th, 2009

Das anlegen eines Raid5 schlug bei mir fehl.

Komisch erschien mir das schon beim anlegen der Partition. Das lieferte mir folgende Waring:
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

Das anlegen schlug dadurch fehl:
#mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: Cannot open /dev/sdc1: Device or resource busy
mdadm: Cannot open /dev/sdd1: Device or resource busy
mdadm: create aborted

Mir einem blick in mdstat war klar das da was schief läuft.
#cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md5 : inactive sdc1[1](S) sdd1[2](S)
488391808 blocks

unused devices:

Abhilfe hat da das stoppen des eigentlich nicht vorhandenem Raid gebracht:
#mdadm --manage --stop /dev/md5
mdadm: stopped /dev/md5

Dann konnte ich ohne problem das Raid anlegen:
#mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Fri Jul 10 18:08:56 2009
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Fri Jul 10 18:08:56 2009
mdadm: size set to 244195904K
Continue creating array?
Continue creating array? (y/n) y
mdadm: array /dev/md0 started.

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
488391808 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 1.6% (4089472/244195904) finish=114.4min speed=34948K/sec

unused devices:

reshapen beschleunigen

Samstag, Januar 17th, 2009

Das reshapen eines Software Raids (mdadm) ist unter Ubuntu 10.04 standardmäßig sehr langsam eingestellt und nach nun mehr als 24 Stunden habe ich mir gedacht das muss auch schneller gehen, zumal die platten kaum beansprucht wurden.

Vorher:
cat /proc/sys/dev/raid/speed_limit_max
200000
cat /proc/sys/dev/raid/speed_limit_min
1000
... finish=2234.7min speed=2171K/sec

echo 20000000 > /proc/sys/dev/raid/speed_limit_max
echo 25000 > /proc/sys/dev/raid/speed_limit_min
... finish=425.4min speed=11058K/sec

Die Disk Belastung laut atop nun:
DSK | sdb | busy 85% | read 936 | write 506 | avio 4 ms |
DSK | sda | busy 83% | read 931 | write 521 | avio 3 ms |
DSK | sdc | busy 74% | read 999 | write 474 | avio 3 ms |
DSK | sdd | busy 39% | read 0 | write 423 | avio 6 ms |

RAID5 vergrößert

Freitag, Januar 16th, 2009

Heute habe ich mein RAID5 mal wieder vergrößert. Ich hatte bislang meine 2 500GB WD Platten auf meinem File-Server als Software RAID5 laufen. Jetzt kann man sich natürlich fragen: „wie geht den das“? Für ein RAID5 braucht man mindestens 3 Platten. Das stimmt auch soweit aber nicht wenn man die dritte Platte als Spare-Laufwerk einbindet. Das ist ähnlich dem Hot-Spare-Laufwerk nur das es im Gegenzug nicht vorhanden ist. Da ich aber schon wusste das ich das RAID eines Tages (heute) vergrößern wollte, habe ich ein RAID5 gewählt. Man hätte auch die beiden als RAID0 einbinden können. Dann hätte ich mir 1TB Platten holen können um da wiederum dann ein RAID5 zu legen aber auf den Mischmasch wollte ich verzichten.

Da ich noch ein 4HE Gehäuse hatte und der Server eh im NWR steht, habe ich mir zum einbauen der Platten, 4 Winkel mit je 12 Löschern, machen lassen und sie angeordnet wie in Sun(s) X4540. Mein sind zwar nicht ganz so gut angeordnet aber theoretisch bekomme ich so 2x 12 Platten unter.

dscf4017

4x WD5000AACS (Energie effizient)
2x WD2500JB (System)
4x WD1200JB Für RAID vorgemerkt.

dscf4021

Jetzt habe ich auf jeden fall 4x 500GB. + System Platten. Zukünftig brauch ich aber noch einen IDE Controller der zumindest JBOD kann. Das RAID mach ich ja dann eh softwaretechnisch.

Hier noch wie ich das RAID vergrößert habe:
mdadm --add /dev/md0 /dev/sdc1
mdadm --add /dev/md0 /dev/sdd1

Mit watch cat /proc/mdstat mann man sich dann anschauen wie weit er ist.
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3](S) sdc1[4] sda1[0] sdb1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[========>............] recovery = 42.0% (205538560/488383936) finish=55.3min speed=131587K/sec

unused devices:

Dann das RAID noch um die 4te Platte ergänzen.
mdadm --grow --raid-devices=4 /dev/md0
Mit watch cat /proc/mdstat kann man sich dann wieder anschauen wie weit er ist.
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdd1[3] sdc1[2] sda1[0] sdb1[1]
976767872 blocks super 0.91 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
[========>............] reshape = 40.3% (196861568/488383936) finish=2234.7min speed=2171K/sec

unused devices:

Ich hätte –raid-devices auch auf 5 stellen können um wieder eine als Spare-Laufwerk einzubinden. Aber das kann ich auch immer noch machen wenn der Platz wieder eng wird und ich auf Ausfallsicherheit verzichten kann.

Damit beim nächsten Starten des Systems das RaidArray auch wieder gefunden wird muss man noch folgendes unternehmen.
cd /etc/mdadm
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf
mdadm --detail --scan >> mdadm.conf

Ganz zum Schluss noch das ext3 vergrößern.
resize2fs /dev/md0