Linux und mehrere SATA Controller

Post Reply
Message
Author
Kiwi
Posts: 2
Joined: 18. Feb 2010 23:17

Linux und mehrere SATA Controller

#1 Post by Kiwi »

Moin!

ich habe hier noch einen etwas älteren Rechner den ich zu einem Fileserver umbauen möchte. Dazu habe ich mir den SATA-Raidcontroller Promise Fasttrak TX4310 geholt. Das Mainboard ein MSI K8T-Neo FSR (MS-6702 Ver. 1.0) stellt auch einen Raidcontroller mit zwei Ports.

Über den Mainboard-Controller soll ein gespiegeltes Linux drauf und über den TX4310 soll ein RAID5 mit 4 Platten aufgebaut werden. Das Problem ist aber jetzt, das die Platten von dem zusätzlichen Promise-Controller zuerst eingebunden werden und die Systemplatten erst danach kommen:

TX4310: (RAID5, Daten)
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd

Mainboard: (RAID1, System)
/dev/sde
/dev/sdf

Nimmt man ein Platte aus dem RAID5 heraus, dann verändern sich die Devicenamen für die Systemplatten in /dev/sdd & /dev/sde, und spätestens mit dem nächsten Reboot geht nichts mehr.

Läßt sich das System evtl. so konfigurieren, das die beiden Systemplatten immer als /dev/sda & /dev/sdb eingebunden werden? Oder gibt es vielleicht noch ganz andere Möglichkeiten?

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#2 Post by komsomolze »

Im BIOS eine der Mainboardcontrollerplatten als Boot-device angeben?

(FakeRaid-)Bios des TX4310 deaktivieren?
mfg komsomolze

Kiwi
Posts: 2
Joined: 18. Feb 2010 23:17

Linux und mehrere SATA Controller

#3 Post by Kiwi »

Danke, für die Antwort. Aber die Systemplatten am Mainboardcontroller sind als Boot-Device im BIOS eingetragen und das Bios des TX4310 läßt sich auch nicht deaktivieren.

Das Problem ist, das die Devicename /dev/sda, /dev/sdb, usw. nicht eindeutig einer Platte zugeordnet sind. Sondern in der Reihenfolge vergeben werden, wie der Kernel die Platten erkennt. D.h. ziehe ich in meinem Beispiel /dev/sdb heraus, dann wird beim nächsten Reboot /dev/sdc zu /dev/sdb, /devsdd wird zu /dev/sdc usw.

Damit fliegt dir der Bootloader um die Ohren, da das Bootdevice plötzlich einen anderen Devicenamen hat. Um das zu verhindern mußt man dem Bootloader die eindeutigen Devicenamen beibringen. Warum das beim Installieren nicht automatisch gemacht wird oder zumindest als Option angeboten wird ist mir ein Rätsel.

Außerdem scheinen alle Distributionen mehr oder weinger ein Problem damit zu haben, wenn das Bootdevice nicht /dev/sda ist!!! :evil: Um das Problem zu umgehen habe ich die Platten am TX4310 gezogen. Damit sind die Platten am Mainboardcontroller /dev/sda und /dev/sdb, und ich konnte das System inkl. Software-Raid normal installieren und booten.

Damit aber GRUB seine Devices auch dann wieder findet, wenn die anderen Platten wieder drin sind, muß man ihm das von Hand beibringen. Die eindeutigen Devicenamen findet man unter /dev/disk.

Als erstes muß man die device.map anpassen:

Code: Select all

(hd0) /dev/sda
(hd1) /dev/sdb
ändern in

Code: Select all

(hd0)   /dev/disk/by-id/scsi-SATA_SAMSUNG_SP2504CS09QJ1UYB76531
(hd1)   /dev/disk/by-id/scsi-SATA_SAMSUNG_SP2504CS09QJ1LYC14351
Danach muß man auch noch die Root-Partition in menu.lst eindeutig zuordnen.

d.h. root=/dev/md0

Code: Select all

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (ID/md-uuid)
root            (hd0,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/md0 ro quiet
initrd          /initrd.img-2.6.26-2-amd64
ändert sich in: root=/dev/disk/by-id/md-uuid-bfe73fc7:ab64c2d3:b2b243c0:bc872e05

Code: Select all

title           Debian GNU/Linux, kernel 2.6.26-2-amd64 (ID/md-uuid)
root            (hd0,0)
kernel          /vmlinuz-2.6.26-2-amd64 root=/dev/disk/by-id/md-uuid-bfe73fc7:ab64c2d3:b2b243c0:bc872e05 ro quiet
initrd          /initrd.img-2.6.26-2-amd64
Danach noch ein

Code: Select all

grub-install hd0
Damit findet das System nun seine Bootdevices und man kann die Platten am anderen Controller ziehen und wieder reinschieben, wie man lustig ist.

Ansonsten habe ich auf den vier Platten ein Linux Software-RAID 5 aufgesetzt, weil der Promise-Controller kein echtes Hardware-Raid ist, und es auch nur über einen Treiber ein RAID5 ermöglicht. Der Vorteil von dem Linux Software-RAID ist halt, das man auch mal mit einer RescueCD darauf zugreifen kann :)

Post Reply