Promise SATA 20376 & "RAID" na 2.6.x

Miroslav BENES miroslav.benes na zdas.cz
Úterý Červen 14 16:02:19 CEST 2005


Přeji krásný den !

Mám nainstalován linux Redhat 9 (kernel 2.4.22), na mainboardu je řadič 
Promise PDC20376 a dva SATA disky na něj připojené fungují jako RAID0. 
Tento "RAID" byl vytvořen utilitou v BIOSu popisovaného řadiče a v 
linuxu je dostupný díky ovladači zkompilovanému jako kernelový modul 
(ft3xx.o).

Rád bych přešel na novější distribuci (např. Fedora Core 3), ale bojím 
se, co se stane s daty. Když jsem před časem zkoušel rozjet instalaci, 
našly se mi dva disky s "vadnými tabulkami rozdělení" a byla mi 
nabídnuta oprava. Toho jsem se polekal a radši jsem instalaci vzdal. Teď 
jsem zkusil rozjet FC3 (s kernelem 2.6.11) z externího disku, ale 
výsledky mě nepotěšily.

Takto se zahlásí modul libata :

... kernel: libata version 1.10 loaded.

No aspoň toho moc nenamluví.


A takto se ohlásí modul sata_promise :

  Vendor: ATA       Model: ST3160023AS       Rev: 3.05
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)
SCSI device sdb: drive cache: write back
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)
SCSI device sdb: drive cache: write back
Attached scsi disk sdb at scsi5, channel 0, id 0, lun 0
  Vendor: ATA       Model: ST3160023AS       Rev: 3.05
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sdc: 312581808 512-byte hdwr sectors (160042 MB)
SCSI device sdc: drive cache: write back
SCSI device sdc: 312581808 512-byte hdwr sectors (160042 MB)
SCSI device sdc: drive cache: write back
Attached scsi disk sdc at scsi6, channel 0, id 0, lun 0


V logu je totéž o něco podrobněji :
... kernel: ACPI: PCI interrupt 0000:02:0e.0[A] -> GSI 11 (level, low) 
-> IRQ 11
... kernel: ata3: SATA max UDMA/133 cmd 0xF8B46200 ctl 0xF8B46238 bmdma 
0x0 irq 11
... kernel: ata4: SATA max UDMA/133 cmd 0xF8B46280 ctl 0xF8B462B8 bmdma 
0x0 irq 11
... kernel: ata3: dev 0 ATA, max UDMA/133, 312581808 sectors: lba48
... kernel: ata3: dev 0 configured for UDMA/133
... kernel: scsi7 : sata_promise
... kernel: ata4: dev 0 ATA, max UDMA/133, 312581808 sectors: lba48
... kernel: ata4: dev 0 configured for UDMA/133
... kernel: scsi8 : sata_promise
... kernel:   Vendor: ATA       Model: ST3160023AS       Rev: 3.05
... kernel:   Type:   Direct-Access                      ANSI SCSI 
revision: 05
... kernel: SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)
... kernel: SCSI device sdb: drive cache: write back
... kernel: SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)
... kernel: SCSI device sdb: drive cache: write back
... kernel:  sdb: sdb1
... kernel: Attached scsi disk sdb at scsi7, channel 0, id 0, lun 0
... kernel:   Vendor: ATA       Model: ST3160023AS       Rev: 3.05
... kernel:   Type:   Direct-Access                      ANSI SCSI 
revision: 05
... kernel: SCSI device sdc: 312581808 512-byte hdwr sectors (160042 MB)
... kernel: SCSI device sdc: drive cache: write back
... kernel: SCSI device sdc: 312581808 512-byte hdwr sectors (160042 MB)
... kernel: SCSI device sdc: drive cache: write back
... kernel:  sdc: unknown partition table
... kernel: Attached scsi disk sdc at scsi8, channel 0, id 0, lun 0
... scsi.agent[25313]: disk at 
/devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/host7/target7:0:0/7:0:0:0
... scsi.agent[25339]: disk at 
/devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/host8/target8:0:0/8:0:0:0

Takže SATA kanály jsou rozpoznány. Ovšem co dál ? Pokud vím, měla by si 
s takovou situací poradit utilita dmraid. Ale její výstup (dmraid -r) mě 
nepotěšil:

/dev/hda: pdc_jbgcdhbh      , "pdc",  stripe, 160836352 sectors, data@ 0
/dev/sdb: pdc_bdcbjahgi     , "pdc",  stripe, 312581632 sectors, data@ 0
/dev/sdc: pdc_hificafd      , "pdc",  stripe, 312581632 sectors, data@ 0

Sice se správně detekovaly 160GB disky sdb a sdc, ale jemu se jeví, jako 
když k sobě nepatří. A sestavit RAID0 pole "násilím" se mi trochu příčí, 
protože se bojím, jak by to pak asi dopadlo.

Otázky:
- je nějaký jiný způsob, jak zprovoznit "RAID" vytvořený pomocí utility 
od Promise ?
- dá se někde splašit ovadač který by šel přeložit s jádrem 2.6.x ?

No když o nepůjde jinak, tak ty data odzálohuju, pole zruším a udělám si 
SW RAID přímo z linuxu. To by bylo nepříjemné, ale šlo by to.

Ale poslední dotaz to stejně neřeší - kam se poděl další disk (PATA), 
který je připojený taky na ten Promise řadič ? Mám zavést jiný modul ? 
Jenže který ?

Předem děkuji za každou odpověď.



Další informace o konferenci Linux