der_angler
16.01.09, 10:18
Hallo,
ich bin gerade dabei einen kleinen Server aufzusetzen und arbeite dort mit einem Raid-5-Array bestehend aus 3 x 320GB SATA Festplatten. Im Laufe der Installation haben sich dann aber diverse Fragen aufgetan, speziell zu dem Verhalten meines Raid's. Ich habe die Platten folgendermassen eingeteilt:
Partition "/boot" = raid1 = sda1,sdb1,sdc1
Partition "/" = raid5 = sda2,sdb2,sdc2
Partition "swap" = raid5 = sda3,sdb3,sdc3
Ich habe mich zwar auch per Internet über Raid5 informiert, aber alle Fragen konnten nicht geklärt werden. Deswegen frage ich jetzt mal euch.
1.
Bei einem Raid5 habe ich ja 3 Festplatten im PC. Meine erste Frage lautet wie bekomme ich den Bootsektor auf alle 3 Festplatten bekomme, so das der PC auch nach Ausfall von sda noch bootet. Mit dem Befehl "grub-install --no-floppy /dev/md1" bzw. "grub-install --no-floppy /dev/sda(b,c)" klappt es auch nicht, bei beiden meckert die Partition wäre dafür nicht geeignet.
2.
Die Festplatten sind ja in 3 Partitionen aufgeteilt. Wenn nun eine Platte ausfallen würde, was dann? Muss ich den PC runter fahren oder kann ich einen "Hotplug" durchführen? Und wenn dann die defekte Platte ausgetauscht wurde, partitioniert und formatiert der Rechner die dann selbst neu und bindet sie ins Raid ein oder muss ich die Platte zuerst manuell partitionieren, dann formatieren und dann dem Raid hinzufügen?
3.
Mein Raid5 habe ich soweit hinbekommen, nach einem Neustart des Systems habe ich mit die raids per "mdadm --detail /dev/md2" angeschaut und es war alles okay, alle 3 Platten waren an und "sync". So nachdem ich den Rechner 1 Stunden später nochmal neugestartet habe kam dann plötzlich folgendes
server ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdc1[2] sda1[0]
104320 blocks [3/2] [U_U]
md2 : active raid5 sdc2[2] sda2[0]
614405760 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
md3 : active raid5 sdc3[2] sda3[0]
4096384 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
unused devices: <none>
server ~ # mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Fri Jan 16 01:57:34 2009
Raid Level : raid1
Array Size : 104320 (101.89 MiB 106.82 MB)
Used Dev Size : 104320 (101.89 MiB 106.82 MB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Fri Jan 16 04:15:37 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 379ca6e1:8a158ce1:6f168e16:ee3dbcd2
Events : 0.10
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed
2 8 33 2 active sync /dev/sdc1
server ~ # mdadm --detail /dev/md2
/dev/md2:
Version : 00.90.03
Creation Time : Fri Jan 16 01:57:54 2009
Raid Level : raid5
Array Size : 614405760 (585.94 GiB 629.15 GB)
Used Dev Size : 307202880 (292.97 GiB 314.58 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Fri Jan 16 09:31:49 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 224575e7:244f3190:80037211:7dffad2e
Events : 0.4302
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 0 0 1 removed
2 8 34 2 active sync /dev/sdc2
server ~ # mdadm --detail /dev/md3
/dev/md3:
Version : 00.90.03
Creation Time : Fri Jan 16 01:58:10 2009
Raid Level : raid5
Array Size : 4096384 (3.91 GiB 4.19 GB)
Used Dev Size : 2048192 (2000.52 MiB 2097.35 MB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 3
Persistence : Superblock is persistent
Update Time : Fri Jan 16 04:14:01 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 69853f97:8b154413:5f0b3c5b:9ee7bde6
Events : 0.10
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 0 0 1 removed
2 8 35 2 active sync /dev/sdc3
server ~ #
Sehe ich das flasch oder steht da das eine der Platten entfernt wurde? Weil das ist komisch, alle Platten sind im PC und scheinen auch zu laufen, siehe
server ~ # dmesg | grep md
Command line: root=/dev/md2 vga=0x318
Kernel command line: root=/dev/md2 vga=0x318
md: linear personality registered for level -1
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
md: Autodetecting RAID arrays.
md: Scanned 9 and added 9 devices.
md: autorun ...
md: considering sdc3 ...
md: adding sdc3 ...
md: sdc2 has different UUID to sdc3
md: sdc1 has different UUID to sdc3
md: adding sdb3 ...
md: sdb2 has different UUID to sdc3
md: sdb1 has different UUID to sdc3
md: adding sda3 ...
md: sda2 has different UUID to sdc3
md: sda1 has different UUID to sdc3
md: created md3
md: bind<sda3>
md: bind<sdb3>
md: bind<sdc3>
md: running: <sdc3><sdb3><sda3>
md: kicking non-fresh sdb3 from array!
md: unbind<sdb3>
md: export_rdev(sdb3)
raid5: allocated 3232kB for md3
raid5: raid level 5 set md3 active with 2 out of 3 devices, algorithm 2
md: considering sdc2 ...
md: adding sdc2 ...
md: sdc1 has different UUID to sdc2
md: adding sdb2 ...
md: sdb1 has different UUID to sdc2
md: adding sda2 ...
md: sda1 has different UUID to sdc2
md: created md2
md: bind<sda2>
md: bind<sdb2>
md: bind<sdc2>
md: running: <sdc2><sdb2><sda2>
md: kicking non-fresh sdb2 from array!
md: unbind<sdb2>
md: export_rdev(sdb2)
raid5: allocated 3232kB for md2
raid5: raid level 5 set md2 active with 2 out of 3 devices, algorithm 2
md: considering sdc1 ...
md: adding sdc1 ...
md: adding sdb1 ...
md: adding sda1 ...
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: bind<sdc1>
md: running: <sdc1><sdb1><sda1>
md: kicking non-fresh sdb1 from array!
md: unbind<sdb1>
md: export_rdev(sdb1)
raid1: raid set md1 active with 2 out of 3 mirrors
md: ... autorun DONE.
EXT3 FS on md2, internal journal
Adding 4096376k swap on /dev/md3. Priority:-1 extents:1 across:4096376k
Jetzt frage ich mich ist mein Raid kaputt oder warum steht selbst beim /dev/md1 (raid1) das eine Platte entfernt wurde? Und wenn sie wirklich fehlt, warum hat er beim hochfahren alles okay angezeigt?
ICh hoffe ihr könnt mir helfen, eventuell fallen mir zu dem Thema auch noch 1-2 Fragen ein, die stelle ich dann hinten an.
Vielen Dank schonmal im Vorraus
ich bin gerade dabei einen kleinen Server aufzusetzen und arbeite dort mit einem Raid-5-Array bestehend aus 3 x 320GB SATA Festplatten. Im Laufe der Installation haben sich dann aber diverse Fragen aufgetan, speziell zu dem Verhalten meines Raid's. Ich habe die Platten folgendermassen eingeteilt:
Partition "/boot" = raid1 = sda1,sdb1,sdc1
Partition "/" = raid5 = sda2,sdb2,sdc2
Partition "swap" = raid5 = sda3,sdb3,sdc3
Ich habe mich zwar auch per Internet über Raid5 informiert, aber alle Fragen konnten nicht geklärt werden. Deswegen frage ich jetzt mal euch.
1.
Bei einem Raid5 habe ich ja 3 Festplatten im PC. Meine erste Frage lautet wie bekomme ich den Bootsektor auf alle 3 Festplatten bekomme, so das der PC auch nach Ausfall von sda noch bootet. Mit dem Befehl "grub-install --no-floppy /dev/md1" bzw. "grub-install --no-floppy /dev/sda(b,c)" klappt es auch nicht, bei beiden meckert die Partition wäre dafür nicht geeignet.
2.
Die Festplatten sind ja in 3 Partitionen aufgeteilt. Wenn nun eine Platte ausfallen würde, was dann? Muss ich den PC runter fahren oder kann ich einen "Hotplug" durchführen? Und wenn dann die defekte Platte ausgetauscht wurde, partitioniert und formatiert der Rechner die dann selbst neu und bindet sie ins Raid ein oder muss ich die Platte zuerst manuell partitionieren, dann formatieren und dann dem Raid hinzufügen?
3.
Mein Raid5 habe ich soweit hinbekommen, nach einem Neustart des Systems habe ich mit die raids per "mdadm --detail /dev/md2" angeschaut und es war alles okay, alle 3 Platten waren an und "sync". So nachdem ich den Rechner 1 Stunden später nochmal neugestartet habe kam dann plötzlich folgendes
server ~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdc1[2] sda1[0]
104320 blocks [3/2] [U_U]
md2 : active raid5 sdc2[2] sda2[0]
614405760 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
md3 : active raid5 sdc3[2] sda3[0]
4096384 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]
unused devices: <none>
server ~ # mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Fri Jan 16 01:57:34 2009
Raid Level : raid1
Array Size : 104320 (101.89 MiB 106.82 MB)
Used Dev Size : 104320 (101.89 MiB 106.82 MB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Fri Jan 16 04:15:37 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 379ca6e1:8a158ce1:6f168e16:ee3dbcd2
Events : 0.10
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed
2 8 33 2 active sync /dev/sdc1
server ~ # mdadm --detail /dev/md2
/dev/md2:
Version : 00.90.03
Creation Time : Fri Jan 16 01:57:54 2009
Raid Level : raid5
Array Size : 614405760 (585.94 GiB 629.15 GB)
Used Dev Size : 307202880 (292.97 GiB 314.58 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Fri Jan 16 09:31:49 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 224575e7:244f3190:80037211:7dffad2e
Events : 0.4302
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 0 0 1 removed
2 8 34 2 active sync /dev/sdc2
server ~ # mdadm --detail /dev/md3
/dev/md3:
Version : 00.90.03
Creation Time : Fri Jan 16 01:58:10 2009
Raid Level : raid5
Array Size : 4096384 (3.91 GiB 4.19 GB)
Used Dev Size : 2048192 (2000.52 MiB 2097.35 MB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 3
Persistence : Superblock is persistent
Update Time : Fri Jan 16 04:14:01 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 69853f97:8b154413:5f0b3c5b:9ee7bde6
Events : 0.10
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 0 0 1 removed
2 8 35 2 active sync /dev/sdc3
server ~ #
Sehe ich das flasch oder steht da das eine der Platten entfernt wurde? Weil das ist komisch, alle Platten sind im PC und scheinen auch zu laufen, siehe
server ~ # dmesg | grep md
Command line: root=/dev/md2 vga=0x318
Kernel command line: root=/dev/md2 vga=0x318
md: linear personality registered for level -1
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
md: Autodetecting RAID arrays.
md: Scanned 9 and added 9 devices.
md: autorun ...
md: considering sdc3 ...
md: adding sdc3 ...
md: sdc2 has different UUID to sdc3
md: sdc1 has different UUID to sdc3
md: adding sdb3 ...
md: sdb2 has different UUID to sdc3
md: sdb1 has different UUID to sdc3
md: adding sda3 ...
md: sda2 has different UUID to sdc3
md: sda1 has different UUID to sdc3
md: created md3
md: bind<sda3>
md: bind<sdb3>
md: bind<sdc3>
md: running: <sdc3><sdb3><sda3>
md: kicking non-fresh sdb3 from array!
md: unbind<sdb3>
md: export_rdev(sdb3)
raid5: allocated 3232kB for md3
raid5: raid level 5 set md3 active with 2 out of 3 devices, algorithm 2
md: considering sdc2 ...
md: adding sdc2 ...
md: sdc1 has different UUID to sdc2
md: adding sdb2 ...
md: sdb1 has different UUID to sdc2
md: adding sda2 ...
md: sda1 has different UUID to sdc2
md: created md2
md: bind<sda2>
md: bind<sdb2>
md: bind<sdc2>
md: running: <sdc2><sdb2><sda2>
md: kicking non-fresh sdb2 from array!
md: unbind<sdb2>
md: export_rdev(sdb2)
raid5: allocated 3232kB for md2
raid5: raid level 5 set md2 active with 2 out of 3 devices, algorithm 2
md: considering sdc1 ...
md: adding sdc1 ...
md: adding sdb1 ...
md: adding sda1 ...
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: bind<sdc1>
md: running: <sdc1><sdb1><sda1>
md: kicking non-fresh sdb1 from array!
md: unbind<sdb1>
md: export_rdev(sdb1)
raid1: raid set md1 active with 2 out of 3 mirrors
md: ... autorun DONE.
EXT3 FS on md2, internal journal
Adding 4096376k swap on /dev/md3. Priority:-1 extents:1 across:4096376k
Jetzt frage ich mich ist mein Raid kaputt oder warum steht selbst beim /dev/md1 (raid1) das eine Platte entfernt wurde? Und wenn sie wirklich fehlt, warum hat er beim hochfahren alles okay angezeigt?
ICh hoffe ihr könnt mir helfen, eventuell fallen mir zu dem Thema auch noch 1-2 Fragen ein, die stelle ich dann hinten an.
Vielen Dank schonmal im Vorraus