Añadir un disco a un servidor con RAID1 existente

22 noviembre 2013 at 14:42 by Adrián Pérez

hard diskEn este post se pretende explicar cómo usar la herramienta HP Array Configuration Utility CLI for Linux "hpacucli" para añadir un tercer disco a un servidor HP que ya cuenta con dos discos SAS en RAID1. Nos interesa añadir el tercer disco sin que forme parte del RAID, es decir, queremos añadir el tercer disco como si fuera un disco sin RAID, un disco normal. Ya hablamos de la herramienta hpacucli hace un tiempo aquí.

Entorno

El problema que nos encontramos es que por defecto, los discos los reconoce la controladora del RAID y no aparecen en el fdisk. Así pues, tras añadir físicamente el disco al servidor y tras el reinicio reglamentario para verificar que efectivamente el disco se ha reconocido, nos encontraríamos con que el disco continúa sin aparecer con el fdisk:

[root@myserver]# fdisk -l
Disco /dev/cciss/c0d0: 300.0 GB, 299966445568 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/cciss/c0d0p1 * 1 126 512000 83 Linux
/dev/cciss/c0d0p2 126 71798 292422656 8e Linux LVM

Disco /dev/dm-0: 234.9 GB, 234881024000 bytes
Disco /dev/dm-1: 10.5 GB, 10536091648 bytes
Disco /dev/dm-2: 21.0 GB, 20971520000 bytes
Disco /dev/dm-3: 31.5 GB, 31474057216 bytes
Disco /dev/dm-4: 1577 MB, 1577058304 bytes

Como se puede ver, únicamente aparece un disco en RAID físico, que sabemos que corresponde con los dos discos de sistema en RAID1. Ni rastro del nuevo disco.

Sin embargo mediante hpacucli sí que podemos ver como el nuevo disco se reconoce y queda en estado "sin asignar":

[root@myserver]# hpacucli

=> controller slot=0 physicaldrive all show status

physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 300 GB): OK
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 300 GB): OK
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, 300 GB): OK

=> ctrl slot=0 pd all show

Smart Array P400i in Slot 0 (Embedded)

array A
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)

unassigned
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)

Con hpacucli, aprovecharemos y revisaremos también el RAID que tenemos:

=> ctrl slot=0 ld all show
Smart Array P400i in Slot 0 (Embedded)
array A
logicaldrive 1 (279.4 GB, RAID 1, OK)

Añadir el nuevo disco en RAID 0

Llegados a este punto, podremos crear un nuevo RAID0 del que forme parte únicamente el nuevo disco, que nos permita no afectar al RAID1 y sus datos existentes.

Para ello, desde hpacucli crearemos un nuevo RAID0 con los discos sin asignar (en este caso un único disco, el que acabamos de incorporar a la máquina).

=> ctrl slot=0 create type=ld drives=allunassigned raid=0

También podríamos directamente, si lo preferimos, haber especificado el disco que queremos asignar (en nuestro caso el disco "1I:1:3"),  así:

=> ctrl slot=0 create type=ld drives=1I:1:3 raid=0

Cualquiera de las dos propuestas es válida, eso sí, elige sólo una de ellas. La ejecución de la instrucción nos llevará muy poco tiempo y no afectará, como digo, a los datos préviamente existentes en el server ni al RAID1 que continuará funcionando de la forma habitual. Únicamente creará un nuevo RAID0 con el nuevo disco.

ATENCIÓN: Si estás pensando hacer algo así, te recomendaría leer todo lo que puedas para asegurarte de que los comandos a ejecutar son los que estás buscando. Si puedes tener un plan B en caso de desastre, mejor que mejor.

Podremos verificar que todo ha ido bien, realizando las comprobaciones que ya hemos hecho antes:

=> ctrl slot=0 pd all show

Smart Array P400i in Slot 0 (Embedded)

array A

physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)

array B

physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)

=> ctrl slot=0 ld all show

Smart Array P400i in Slot 0 (Embedded)

array A

logicaldrive 1 (279.4 GB, RAID 1, OK)

array B

logicaldrive 2 (279.4 GB, RAID 0, OK)

Con ésto podremos pasar a verificar que esta vez sí el nuevo disco en RAID aparecerá en el fdisk:

[root@myserver]# fdisk -l
Disco /dev/cciss/c0d0: 300.0 GB, 299966445568 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/cciss/c0d0p1 * 1 126 512000 83 Linux
/dev/cciss/c0d0p2 126 71798 292422656 8e Linux LVM

Disco /dev/dm-0: 234.9 GB, 234881024000 bytes
Disco /dev/dm-1: 10.5 GB, 10536091648 bytes
Disco /dev/dm-2: 21.0 GB, 20971520000 bytes
Disco /dev/dm-3: 31.5 GB, 31474057216 bytes
Disco /dev/dm-4: 1577 MB, 1577058304 bytes

Disco /dev/cciss/c0d1: 300.0 GB, 299966445568 bytes
El disco /dev/cciss/c0d1 no contiene una tabla de particiones válida

Ahora sí, podremos pasar a montar el nuevo disco y respirar más tranquilos (no necesariamente en ese orden).

 

Fuentes:

http://people.freebsd.org/~jcagle/hpacucli-readme

http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm

http://ardnetwork.com/wpmu/blog/make-array-hp-dl-38x-on-linux/

y por supuesto, la pregunta original de SuperUser

Flickr! Foto por Alpha six