martes, diciembre 18, 2007

Redhat Enterprise Linux: HBA, raids y multipath

Hoy me he encontrado un par de problemas instalando una Redhat Linux sobre un servidor HP con una tarjeta FiberChannel HP FC2142SR, conectada a una EVA de HP. Me he encontrado con dos problemas fundamentales:
  • La distribución Redhat Enterprise 5.0 no crea bien las entradas en el grub.conf y el device,map que necesita para que pueda arrancar adecuadamente el kernel
  • Los discos de la EVA se ven duplicados, puesto que la EVA tiene una controladora doble, que muestra cada disco de manera doble.

La solución para ambos problemas han sido:

grub.conf

La máquina donde estaba instalada la controladora de fiberchannel, tiene también una controladora SmartArray, clásica de las máquinas de Compaq (el driver cciss). Normalmente grub, asigna en su fichero de configuración cual va a ser el disco con el cual va a arrancar. El disco de instalación de Redhat, no crea de manera el fichero device.map y grub.conf con las entradas adecuadas para el arranque. La controladora desde la cual debe de arrancar es la cciss y, normalmente, el disco que tiene asignado es /dev/cciss/c0d0. Debe de indicarse por tanto tanto en los dos ficheros que este hecho:

device.map

(hd0)     /dev/cciss/c0d0

grub.conf

title Red Hat Enterprise Linux Server (2.6.18-8.el5)
	root (hd0,0)
	kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/Vg00/lvroot rhgb quiet
	initrd /initrd-2.6.18-8.el5.img
(en este caso el sistema de fichero root lo tenemos en una partición usando lvm2) Por último, reinstalamos el grub para que use los nuevos parámetros. En mi caso, Anaconda, el instalador de la Redhat Enterprise, me había creado todo el sistema usando hd4.

Conectarse a la EVA: RAID y dispositivos multipath:mdadm

La tarjeta de fiberchannel (driver lpfc), ve a los discos de la EVA por duplicado, puesto que ésta tiene duplicado las controladoras. Por tanto, si tenemos un disco /dev/sda, vamos a tener otro disco, por ejemplo /dev/sdc, que hacen referencia al mismo espacio de disco en la EVA. Para que Linux se de cuenta que es el mismo disco, se debe usar la utilidad mdadm, para indicarle que esos dos discos son uno solo, los una en una sala partición (que se verá a través de un dispositivo del tipo /dev/mdx). Linux irá a uno u otro dispositivo en función de que exista algún problema en uno de los trayectos. Por ejemplo, si queremos que /dev/md0 apunte a /dev/sda y /dev/sdb, qué son el mismo espacio en la EVA:
DEVICE /dev/sda /dev/sdb
ARRAY /dev/md0 auto=md level=multipath devices=/dev/sda,/dev/sdb
Aquí es fundamental el parámetro level=multipath, que indica que el dispositivo raid, es de tipo multipath.

Technorati Tags:

No hay comentarios: