[Grml] Request for contribution: SW-RAID
Kai Wilke
kiste at netzworkk.de
Wed Feb 22 09:35:48 CET 2006
High, high ...
* Michael Prokop <mika at grml.org> schrieb am [17.02.06 14:31]:
> Hoi!
>
> We are working on improving software (SW) RAID support within grml
> and would appreciate your help and opion about it. Please contribute!
Ich antworte mal in deutsch da dieses Thema fuer mein englisch zu
kompliziert ist.
>
> As you maybe know, partitions of type 0xfd (Linux raid autodetect)
> are scanned and automatically assembled into RAID arrays by the
> kernel. We noticed a strange behaviour on automatic assembling
> (nothing serious but a little bit confusing) and try to figure out
> what's the reason for it.
>
> First of all some questions to the ones of you using SW-RAID:
>
> * If you boot grml on a box using SW-RAID: do you expect to get a
> running SW-RAID setup (using the /dev/md? devices) or do you
> prefer to set it up and start on your own (so neither grml nor
> kernel touches it)?
SW-RAID setup ist zwar sehr schoen, aber auch gefaehrlich, wenn man
nicht weiss wie dieses RAID vorher aussah. Mehr weiter unten
dazu.
>
> * Say you have /dev/hda1 and /dev/hdb1 as part of SW-RAID /dev/md0.
> Do you expect to get entries for /dev/hda1, /dev/hdb1 and /dev/md0
> in your /etc/fstab? Which entries do you expect to get?
Nur die Partitionseintraege, der Rest ist gefaehrlich, s.o.
>
> Next step: If you have a SW-RAID setup and can boot grml on the box
> please try to contribute via running the following steps and save
> output of all commands in a file. Send the file via mail to me. This
> would help us in debugging a lot!
>
> #############################################################################
> Boot grml and check, whether the SW-RAID is running [via 'cat /proc/mdstat'].
>
> If yes (SW-RAID is running automatically after booting grml):
Szenario: 2 RAID10 Arrays und 1x Solo RAID1 Arrays. 1. RAID10 - 2x RAID1
zusammengefasst zu RAID0 mittels raid0 Modul, 2 RAID10 - 2x RAID1
zusammengefasst zu RAID0 mittels raid10 Modul.
Achso 2 U2W SCSI FP, kein S-ATA
boot grml-6-2 mit den Optionen noacpi noapm nodma lang=de
SCSI Treiber aic7xxx wurde geladen
> # cat /proc/mdstat
leer
cat /etc/fstab
# /etc/fstab - static file system information
#
# <filesystem> <mountpoint> <type> <options> <dump> <pass>
/proc /proc proc defaults 0 0
none /proc/bus/usb usbfs defaults,noauto 0 0
/sys /sys sysfs auto 0 0
/dev/pts /dev/pts devpts mode=0622 0 0
/dev/fd0 /mnt/floppy auto users,noauto,exec 0 0
/dev/external /mnt/external auto users,noauto,exec,rw,uid=grml,gid=grml 0 0
/dev/external1 /mnt/external1 auto users,noauto,exec,rw,uid=grml,gid=grml 0 0
/dev/cdrom /mnt/cdrom auto users,noauto,exec,ro 0 0
/dev/dvd /mnt/dvd auto users,noauto,exec,ro 0 0
# some other examples:
# /dev/hda1 /Grml ext3 dev,suid,user,noauto 0 2
# //1.2.3.4/pub /smb/pub smbfs defaults,user,noauto,uid=grml,gid=grml 0 0
# linux:/pub /beer nfs defaults 0 0
# tmpfs /tmp tmpfs size=300M 0 0
#
# Warning! Please do *not* change any lines below because they are auto-generated by rebuildfstab!
# If you want to disable rebuildfstab set CONFIG_FSTAB='no' in /etc/grml/autoconfig!
# Added by GRML
/dev/hda1 none swap defaults 0 0
# Added by GRML
/dev/hda2 /mnt/hda2 ext3 noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda1 none swap defaults 0 0
# Added by GRML
/dev/sda5 /mnt/sda5 xfs noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda6 /mnt/sda6 xfs noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda7 /mnt/sda7 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda8 /mnt/sda8 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda9 /mnt/sda9 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda10 /mnt/sda10 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sda11 /mnt/sda11 auto noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb1 none swap defaults 0 0
# Added by GRML
/dev/sdb5 /mnt/sdb5 xfs noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb6 /mnt/sdb6 xfs noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb7 /mnt/sdb7 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb8 /mnt/sdb8 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb9 /mnt/sdb9 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb10 /mnt/sdb10 linux_raid_member noauto,nouser,dev,suid,exec 0 0
# Added by GRML
/dev/sdb11 /mnt/sdb11 auto noauto,nouser,dev,suid,exec 0 0
Meine /etc/mdadm/mdadm.conf sieht so aus:
ARRAY /dev/md6 level=raid1 num-devices=2 UUID=1c9a8fc8:15322259:efedd749:bd596b5b
devices=/dev/sda10,/dev/sdb10
ARRAY /dev/md5 level=raid10 num-devices=2 UUID=24ad8283:abfc8635:4267ac3d:8df9e8ca
devices=/dev/md3,/dev/md4
ARRAY /dev/md3 level=raid1 num-devices=2 UUID=3a347b3a:87adc778:daa3caae:65270108
devices=/dev/sda8,/dev/sdb8
ARRAY /dev/md2 level=raid0 num-devices=2 UUID=2c09f976:de29e4e3:9114e0a2:7c3578bf
devices=/dev/md0,/dev/md1
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=98f931ca:50e247cd:da3155f1:26362445
devices=/dev/sda6,/dev/sdb6
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=26361a58:12ec6fca:46c0665d:36cccce7
devices=/dev/sda7,/dev/sdb7
ARRAY /dev/md4 level=raid1 num-devices=2 UUID=fe11e243:73156ce0:9db9ee8d:c4c2fcd5
devices=/dev/sda9,/dev/sdb9
Fuehre ich jetzt einfach mdrun aus, habe ich jetzt nur noch 5 RAID1 Arrays.
cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
md4 : active raid1 sda10[0] sdb10[1]
292864 blocks [2/2] [UU]
md3 : active raid1 sda9[0] sdb9[1]
292864 blocks [2/2] [UU]
md2 : active raid1 sda8[0] sdb8[1]
292864 blocks [2/2] [UU]
md1 : active raid1 sda7[0] sdb7[1]
292864 blocks [2/2] [UU]
md0 : active raid1 sda6[0] sdb6[1]
292864 blocks [2/2] [UU]
mdrun scannt nur die raidautodetect Partitionen in /proc/partitions,
siehe man mdrun. Ich muss also vorher wissen welche Arrays auf dem
System sind. Vor einiger Zeit musste man mdrun noch 2 mal aufrufen,
1x fuer die Arrays unter dem raid10 Array und dann nochmal damit
raid10 activiert wird. Das geht wohl auch noch wenn man nur 2
raidautodetect Partitionen hat.
mdrun also am besten weglassen. Besser ist folgendes
mdadm -A /dev/md0 /dev/sda6 /dev/sdb6
mdadm -A /dev/md1 /dev/sda7 /dev/sdb7
mdadm -A /dev/md2 /dev/md0 /dev/md1
Dann ist auch alles korrekt. Das muss der Admin aber vorher wissen,
falls es noch keine mdadm.conf gibt.
cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
md2 : active raid0 md0[0] md1[1]
585600 blocks 32k chunks
md1 : active raid1 sda7[0] sdb7[1]
292864 blocks [2/2] [UU]
md0 : active raid1 sda6[0] sdb6[1]
292864 blocks [2/2] [UU]
Ansonsten kann man ja, falls kein Root-SW-RAID, /dev/[hs]d* mounten
und dann die existierende mdadm.conf benutzen.
mdadm -Asc PATH_TO/mdadm.conf
Das obere Beispiel funzt auf grml aber nicht(?). Die Devices fur die
Partitionen sind da nur fuer die fehlenden /dev/md* muss ich sie von
Hand anlegen. Es funzt danach aber immer noch nicht.
mdadm: no devices found for /dev/md3
mdadm: ...
shit funzt auf einem laufenden Sarge System auch nicht (?).
> # mdadm --detail /dev/md?
ein korrektes /dev/md2
/dev/md2:
Version : 00.90.03
Creation Time : Mon Feb 20 18:17:56 2006
Raid Level : raid0
Array Size : 585600 (571.97 MiB 599.65 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Mon Feb 20 18:17:56 2006
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 32K
UUID : 5f010bc8:d294382b:5cf38fac:cd98ffa3
Events : 0.9
Number Major Minor RaidDevice State
0 9 0 0 active sync /dev/md0
1 9 1 1 active sync /dev/md1
> # fdisk -l /dev/md? /dev/hd? /dev/sd? # run this for all your raid-devices and harddisk partitions
fdisk -l /dev/md2 zeigt natuerliche an das es keine Partitionstabelle
gibt.
fdisk -l /dev/sda zeigt folgendes:
Platte /dev/sda: 4335 MByte, 4335206400 Byte
255 Köpfe, 63 Sektoren/Spuren, 527 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 1 38 305203+ fd Linux raid autodetect
/dev/sda2 39 527 3927892+ 5 Erweiterte
/dev/sda5 39 75 293366+ fd Linux raid autodetect
/dev/sda6 75 111 292968+ fd Linux raid autodetect
/dev/sda7 111 148 292968 fd Linux raid autodetect
/dev/sda8 148 184 292968+ fd Linux raid autodetect
/dev/sda9 184 221 292968 fd Linux raid autodetect
/dev/sda10 221 257 292968+ fd Linux raid autodetect
/dev/sda11 257 294 292968 fd Linux raid autodetect
und fdisk -l /dev/sdb
Platte /dev/sdb: 4569 MByte, 4569600000 Byte
255 Köpfe, 63 Sektoren/Spuren, 555 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Gerät boot. Anfang Ende Blöcke Id System
/dev/sdb1 1 38 305203+ 82 Linux Swap / Solaris
/dev/sdb2 39 555 4152802+ 5 Erweiterte
/dev/sdb5 39 70 257008+ fd Linux raid autodetect
/dev/sdb6 71 107 293193+ fd Linux raid autodetect
/dev/sdb7 107 143 292968+ fd Linux raid autodetect
/dev/sdb8 143 180 292968 fd Linux raid autodetect
/dev/sdb9 180 216 292968+ fd Linux raid autodetect
/dev/sdb10 216 253 292968 fd Linux raid autodetect
/dev/sdb11 253 289 292968+ fd Linux raid autodetect
Frag mich nicht was das + Zeichen bei Bloecken heisst. Ich dacht
zuerst das dort der Superblock liegt, aber auch nachdem loeschen des
Superblocks und neu kreieren des Arrays war es die gleiche
Partitionstabelle.
Auf meinem Hauptserver ist dies nicht so, da haben alle das +
Zeichen bis auf die letzte Partition da ist auf allen FP gar keins.
So das wars jetzt erst einmal, ich muss das auch noch in meinem
Script raid aendern, denn dort steht noch der Aufruf von mdrun 2 x
hintereinander drin.
Fazit mdrun funzt nur bei einfachen RAID Arrays.
mfg Kiste
--
#######################################################################
Netzworkk
Kai Wilke
kiste at netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://ml.grml.org/pipermail/grml/attachments/20060222/d0ec779c/attachment-0003.pgp>
More information about the Grml
mailing list