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?
Linux und mehrere SATA Controller
-
- Beiträge: 430
- Registriert: 03. Mär 2006 23:16
Linux und mehrere SATA Controller
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!!!
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:
ändern in
Danach muß man auch noch die Root-Partition in menu.lst eindeutig zuordnen.
d.h. root=/dev/md0
ändert sich in: root=/dev/disk/by-id/md-uuid-bfe73fc7:ab64c2d3:b2b243c0:bc872e05
Danach noch ein
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
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!!!

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: Alles auswählen
(hd0) /dev/sda
(hd1) /dev/sdb
Code: Alles auswählen
(hd0) /dev/disk/by-id/scsi-SATA_SAMSUNG_SP2504CS09QJ1UYB76531
(hd1) /dev/disk/by-id/scsi-SATA_SAMSUNG_SP2504CS09QJ1LYC14351
d.h. root=/dev/md0
Code: Alles auswählen
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
Code: Alles auswählen
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
Code: Alles auswählen
grub-install hd0
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
