|
weblog gatopelao
Mon, 14 Dec 2009
CF DMA
Como desactivar DMA de un CF al botar.
Estoy montando una cortafuegos. Para que mejore la disponiblidad del equipo monto un raid1.
Los dos discos son uno (hda) de 80GB y un compact flash (hdd) de 8 GB.
/ = 8GB (raid1)
/home = espacio restante del hda
El problema que tengo es que el hardware no me da la funcionalidad DMA del CF.
Linux, al botar se da cuenta y lo desactiva.
syslog:Dec 11 11:38:53 debian kernel: [ 6.888186] hdd: TRANSCEND, ATA DISK drive
syslog:Dec 11 11:38:53 debian kernel: [ 6.944128] hdd: host max PIO4 wanted PIO255(auto-tune) selected PIO4
syslog:Dec 11 11:38:53 debian kernel: [ 6.944254] hdd: UDMA/66 mode selected
syslog:Dec 11 11:38:53 debian kernel: [ 7.756362] hdd: max request size: 128KiB
syslog:Dec 11 11:38:53 debian kernel: [ 7.756362] hdd: 15662304 sectors (8019 MB) w/1KiB Cache, CHS=15538/16/63
syslog:Dec 11 11:38:53 debian kernel: [ 7.756362] hdd:hdd: dma_intr: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [ 18.053566] hdd: status error: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [ 18.053566] hdd: drive not ready for command
syslog:Dec 11 11:38:53 debian kernel: [ 27.392935] hdd: dma_intr: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [ 27.912064] hdd: status error: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [ 27.912064] hdd: DMA disabled
syslog:Dec 11 11:38:53 debian kernel: [ 27.912064] hdd: drive not ready for command
Apartir de allí, se puede usar el CF, pero el RAID ya se ha degradado.
syslog:Dec 11 11:38:53 debian kernel: [ 28.377689] hdd1
syslog:Dec 11 11:38:53 debian kernel: [ 29.458417] md: bind<hdd1>
syslog:Dec 11 11:38:53 debian kernel: [ 29.468013] md: kicking non-fresh hdd1 from array!
syslog:Dec 11 11:38:53 debian kernel: [ 29.468013] md: unbind<hdd1>
syslog:Dec 11 11:38:53 debian kernel: [ 29.468013] md: export_rdev(hdd1)
Aunque puedo reconstruir el array, cada vez que bote la máquina se degrada de nuevo..
Entonces hay que desactivar el DMA de /dev/hdd antes de que mdadm intente montar el RAID.
Por internet se lee que se puede desactivar DMA desde grub añadiendo 'ide=nodma' como opción del kernel.
En mi caso no funciona porque ide-core no está en el kerenl sino se carga como módulo.
http://forums.debian.net/viewtopic.php?f=10&t=32860&start=15
Paso la opciones al modulo y creo de nuevo el initramfs.
echo 'options ide_core options="hdd=nodma"' > /etc/modprobe.d/ide
update-initramfs -u
Y funciona.
[/storage]
permanent link
Wed, 18 Nov 2009
3ware 9650SE-4LPML
¿porque las cosas no pueden funcionar a la primera!!?
Me he comprado una controladora 3ware 9650SE-4LPML
He creado un raid5 desde el 3ware BIOS sobre tres discos. (3 x wd5000AADS)
No tengo BBU por lo tanto uso la política 'protection'
Instalalo debian lenny y bajo tw_cli desde
http://jonas.genannt.name/ (y tambien instalo 3dm)
Veo que el array no se ha inicializado. (ni forgound ni background me
han funcionado). Así que lo provoco con un scheduled 'rebuild'.
Una vez que todo se indica 'ok' voy a escribir y descubro que tiene un redimiento muy, muy malo.
# time dd if=/dev/zero of=/test/file bs=1024k count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 0.525855 s, 798 MB/s
real 0m0.603s
user 0m0.000s
sys 0m0.496s
y en cuanto termine, le doy de nuevo.
# time dd if=/dev/zero of=/test/file bs=1024k count=600
600+0 records in
600+0 records out
629145600 bytes (629 MB) copied, 14.4482 s, 43.5 MB/s
real 0m14.525s
user 0m0.000s
sys 0m0.736s
Mirando 'tw_cli $ /c0 show diag' veo errores tipo 'DcbMgr::WriteSegment(...)'
uff. empiezo a googlear.
3ware problems
Debian notes: http://forums.debian.net/viewtopic.php?f=7&t=36800
3ware tuning: http://www.3ware.com/kb/Article.aspx?id=11050
3ware upgrade: http://www.3ware.com/KB/article.aspx?id=10058
3ware download: http://www.3ware.com/support/download.asp
Actualizo el firmware de la controladora y pruebo los consejos. Mejora un poco, muy poco, pero tampoco es plan.
Cambio los discos por otros tres para ver.
1 x WDC wd3200AAKS
2 x Maxtor STM3250820AS
Pero nada. No mejora el redimiento y sigue saliendo 'DcbMgr::WriteSegment(...)'
Me pongo con el soporte 3ware. :(
[/storage]
permanent link
|