[solved] Linux Kernel - Reihenfolge Mass Storage Controller

    • Durden
      Durden
      Bronze
      Dabei seit: 21.02.2006 Beiträge: 226
      Hallo Zusamm,

      Habe bereits gegoogelt, mit verschiedenene Keywords(-Kombinationen). Leider nichts gefunden.

      Problem Summary:
      Treiber für Storage Controller werden nicht immer in derselben Reihenfolge geladen. Bei einem Kartstart wird zuerst der 3ware Treiber geladen. Dann der Adaptec. Beim Warmstart umgekehrt.
      Ziel ist, dass immer der Adaptec Treiber zuerst geladen wird. Wie?? Kernelparams ??

      Effekt ist eben, dass im Fehlerfall die Harddisks am RAID die Devices /dev/sda /dev/sdb ... zugewiesen bekommen. Und die ursprüngliche Root Disk erst /dev/sdi ist. Und somit ein Booten fehlschlägt, beim mounten des Root Dateisystems.

      Hardware:
      - Serverboard mit PCI-X und zwei XEONS
      - Zwei Adaptec SCSI Controller on Board
      - 3Ware Raid Controller im PCI-X Slot

      - Zwei SCSI Disks am Adaptec (eine davon ist besagte Root Disc)
      - Sieben Disks am 3Ware

      code:
      03:05.0 SCSI storage controller: Adaptec AIC-7902 U320 (rev 03)
              Subsystem: Tyan Computer Unknown device 2665
              Flags: bus master, 66MHz, medium devsel, latency 252, IRQ 19
              I/O ports at 2400 [size=256]
              Memory at e2100000 (64-bit, non-prefetchable) [disabled] [size=8K]
              I/O ports at 2000 [size=256]
              [virtual] Expansion ROM at e3100000 [disabled] [size=512K]
              Capabilities: [dc] Power Management version 2
              Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable-
              Capabilities: [94] PCI-X non-bridge device
      
      03:05.1 SCSI storage controller: Adaptec AIC-7902 U320 (rev 03)
              Subsystem: Tyan Computer Unknown device 2665
              Flags: bus master, 66MHz, medium devsel, latency 252, IRQ 21
              I/O ports at 2c00 [size=256]
              Memory at e2102000 (64-bit, non-prefetchable) [disabled] [size=8K]
              I/O ports at 2800 [size=256]
              [virtual] Expansion ROM at e3180000 [disabled] [size=512K]
              Capabilities: [dc] Power Management version 2
              Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable-
              Capabilities: [94] PCI-X non-bridge device
      
      04:01.0 RAID bus controller: 3ware Inc 7xxx/8xxx-series PATA/SATA-RAID (rev 01)
              Subsystem: 3ware Inc 7xxx/8xxx-series PATA/SATA-RAID
              Flags: bus master, fast Back2Back, 66MHz, medium devsel, latency 128, IRQ 22
              I/O ports at 3000 [size=16]
              Memory at e2200000 (32-bit, non-prefetchable) [size=16]
              Memory at e2800000 (32-bit, non-prefetchable) [size=8M]
              [virtual] Expansion ROM at e3200000 [disabled] [size=64K]
              Capabilities: [40] Power Management version 1


      Was hab ich schon probiert ?
      - Diverse BIOS Settings
      - 3Ware Karte in einen andern Slot

      Da die die ganze Hardware als sehr erprobt gilt und der Rechner sonst keinerlei Zicken macht, kommt es mir schon etwas spanisch vor, dass die Reihenfolge nicht immer diesselbe ist.
      Manchmal ist die Device Reihenfolge auch erst nach dem dritten Warmstart korrekt.

      Änyone halp ?

      Thx in advance
      Cheers

      Lösung:
      Konnte leider keine Lösung mit google finden.
      Hab dann schnell den 2.6.26-3 vanilla kernel gezogen und da den Adaptec fest in den Kernel (anstatt Modul) kompiliert. Dies hat die Sache gelöst. Leider wollte vmware partout nicht nicht mit dem 2.6.26er.
      Hab dann diesselbe Übung mit nem debian gepatchten 2.6.18er gemacht und alles funzt tadellos :P
      Trotztem vielen Dank CMB 4 support.
  • 6 Antworten
    • CMB
      CMB
      Bronze
      Dabei seit: 17.02.2007 Beiträge: 6.526
      Also eine Lösung habe ich nicht nur ein paar Anmerkungen.
      Das Hardware layout finde ich schon mal gut, habe mit Dual CPU Boards von Tyan nur gut Erfahrungen gemacht. Ich nehme mal an der 3Ware Controller ist irgendein SXU-8LP oder so und nur für das Speichersubsystem zuständig, sprich davon wird nie gebootet auch wenn sich hier ggfs. auch die backup Daten des System befinden.

      Bei Supermicro MB kann ich definitiv einstellen von welchem Controller gebootet werden soll, schau doch nochmal ins Bios. Ggfs. lassen sich die einzelnen PCI-X slots auch als bootable device disablen.

      Keine Ahnung mehr wie das ging aber ich glaube Du kannst im bootloader einen delay für jeden Controller einstellen damit mehr Zeit besteht um alle devices zu erkennen.

      Im Bios der Adaptec controller müsstest Du auch eine delay Zeit finden um die SCSI Busse zu scannen, hier ebenfalls Zeitfaktor erhöhen. Früher war das mal per default 15sek, was manche Leute immer runtergesetzt haben um schneller zu booten.

      Irgendwo da müsste der Hase begraben liegen.
      Gruß,
      CMB
    • Durden
      Durden
      Bronze
      Dabei seit: 21.02.2006 Beiträge: 226
      Original von CMB
      Also eine Lösung habe ich nicht nur ein paar Anmerkungen.
      Das Hardware layout finde ich schon mal gut, habe mit Dual CPU Boards von Tyan nur gut Erfahrungen gemacht. Ich nehme mal an der 3Ware Controller ist irgendein SXU-8LP oder so und nur für das Speichersubsystem zuständig, sprich davon wird nie gebootet auch wenn sich hier ggfs. auch die backup Daten des System befinden.

      Bei Supermicro MB kann ich definitiv einstellen von welchem Controller gebootet werden soll, schau doch nochmal ins Bios. Ggfs. lassen sich die einzelnen PCI-X slots auch als bootable device disablen.

      Keine Ahnung mehr wie das ging aber ich glaube Du kannst im bootloader einen delay für jeden Controller einstellen damit mehr Zeit besteht um alle devices zu erkennen.

      Im Bios der Adaptec controller müsstest Du auch eine delay Zeit finden um die SCSI Busse zu scannen, hier ebenfalls Zeitfaktor erhöhen. Früher war das mal per default 15sek, was manche Leute immer runtergesetzt haben um schneller zu booten.

      Irgendwo da müsste der Hase begraben liegen.
      Gruß,
      CMB
      Danke schonmal für die Antwort
      Leider ist problem nicht das Booten der Devices. Das kann ich per BIOS steuern.
      Also GRUB, Kernel und Initial RAMDisk wird immer von der richtigen Platte geladen. Denn das 3ware BIOS Scan hab ich abgeschaltet, da, wie du richtig sagst, nur das Speichersubsystem dranhängt.

      Eine weitere Vermutung ist, dass der 3ware Kontroller (7506-12 Escalade) nicht immer diesselbe PCI-ID bekommt. Sprich der Adaptec hat im Fehlerfall eine höhere nummer und wird entsprechend später dessen Treiber geladen.

      EDIT: Ich probier das mit den Delays mal aus. Aber zu tief werde ich nicht gehen könnnen, denn die SCSI Pladden starten erst beim scan.
    • CMB
      CMB
      Bronze
      Dabei seit: 17.02.2007 Beiträge: 6.526
      Die Escalade Controller hab ich vor 3 Jahren auch fast gekauft, die sind prima. Habe mich dann aber für Raidcore entschieden weil die controller stripping können und ich eher für große Dateien Performance brauche als für typische Serveranwendungen.

      Habs grad mal gegoogled, das Problem haben auch andere. Das Problem ist entweder die ladesequenz der Module oder wie Du sagst die PCI-X Reihenfolge. Kann man sicherlich regeln aber ich weiß jetzt auch nicht wie. Habe diverse post in Linuxforen gefunden. Google einfach nochmal.

      Gruß,
      CMB
    • Durden
      Durden
      Bronze
      Dabei seit: 21.02.2006 Beiträge: 226
      Original von CMB
      Die Escalade Controller hab ich vor 3 Jahren auch fast gekauft, die sind prima. Habe mich dann aber für Raidcore entschieden weil die controller stripping können und ich eher für große Dateien Performance brauche als für typische Serveranwendungen.

      Habs grad mal gegoogled, das Problem haben auch andere. Das Problem ist entweder die ladesequenz der Module oder wie Du sagst die PCI-X Reihenfolge. Kann man sicherlich regeln aber ich weiß jetzt auch nicht wie. Habe diverse post in Linuxforen gefunden. Google einfach nochmal.

      Gruß,
      CMB
      Habe diesen 12Port Controlller für lächerliche 90$ gekauft.
      Nach langem hin und her hab ich mich aber entschieden Software RAID (5) zu fahren. Das heisst, jede Pladde ist einzeln als JBOD eingebunden.
      Grund: Wenn der Controller abraucht, kann ich mit normalen IDE Controllern meinen ganzen Kram mounten. Ansonstens müsste ich (wie bei Rechenzentren üblich) immer einen Ersatzcontroller rumliegen haben.
      Ist ja schliesslich "nur" mein Home File- und Postgresql server.
      Trotzdem habe ich mit dem 3ware Controller und SWRaid massiv Performance resp. genau die Performance die, die Platten bringen.
      Eingentlich hätte ich gerne mit SATA gearbeitet, hatte aber noch soviele IDE's rumliegen.

      RAID 5 mit 4 Platten gibt mir 190 MB/s leserate. Da ja via GBit eth und samba geschaufelt wird, ist das eh mehr als ausreichend.

      Auf jeden Fall hat mir der 3ware Controller folgende Erkentniss gebracht:
      Promise sux ass... sobald mehr als von einer Platte parallel gelesen wird kracht da die Summierte Transferrate auf 40-50 MB/s ein. (Liegt wohl am fehlenden resp. sehr kleinen Cache/Buffer auf den Promises, denn selbst mit Overhead eingerechnet müsste der PCI Bus ~100MB/s bringen)

      Back to topic:
      1. Mit welchen Keywords hast du gesucht ? (Bin definitiv zu dämlich)
      2. Hab eben schon mal mit dem Gedanken gespielt, den Adaptec Treiber fest in den Kernel zu kompilieren und den 3ware als Modul... so müsste dann die Reihenfolge gefixt sein.

      Greets Durden
    • CMB
      CMB
      Bronze
      Dabei seit: 17.02.2007 Beiträge: 6.526
      Hätte mal die links irgendwie speichern sollen. Hab irgnedwie nach sowas gesucht

      Adaptec boot sequence Tyan

      Und die Antoworten waren halt so Modul Reihenfolge oder PCI Reihenfolge.
      Gruß,
      CMB
    • Durden
      Durden
      Bronze
      Dabei seit: 21.02.2006 Beiträge: 226
      solved.. siehe Ausgangspost