Expansión de array RAID (1+0) en HP Proliant + Red Hat Linux

Teníamos una necesidad en el trabajo de ampliar la capacidad de almacenamiento de nuestro servidor HP Proliant, que estaba configurado de forma sencilla, 2 discos configurados en mirroring como RAID  hardware (1+0), usando la propia controladora Smart Array de HP, un tamaño total de 150gb.

Leyendo los manuales de las utilidades de configuración de servidores de HP, concretamente la de ACU (Array Configuration Utility), vimos que existía la opción de añadir discos al servidor, y aparecería una opción nueva “expandir array”, para permitirte ampliar la capacidad de un RAID ya existente. Por tanto, pedimos 2 nuevos discos de igual capacidad que lo anteriores, claro, y arrancamos ACU desde el CD de utilidades Smart Start. Efectivamente, detectados los 2 nuevos discos físicos, aparecía la nueva opción antes comentada, y aún mejor, un asistente de configuración personalizado para dicha opción, que en 4/5 pasos procedía a la expansión del array. Dicha expansión, según el manual, tardaría del orden de unos 15mins/GB de espacio, así que unas 22 horas (para 145gb) después, el array había sido expandido.

El siguiente paso a realizar antes de reiniciar el sistema, era ampliar el tamaño de la unidad lógica existente, de forma que se especificara que queríamos todo el nuevo tamaño (~250gb) en la misma unidad lógica que hasta ahora. Este paso tarda escasos segundos, nada comparado a lo anterior.

Una vez hecho esto, ya podíamos reiniciar, y arrancar Linux. Todo bien, el grub seguía ahí, y el sistema operativo arrancaba sin problemas. Evidentemente, todos los devices, seguían siendo exactamente iguales que hasta la fecha:

/dev/cciss/cd0p0 -> unidad lógica ampliada (250gb)

/dev/cciss/cd0p0p1 -> directorio  /

/dev/cciss/cd0p0p3 -> directorio /opt

El problema es que el sistema por si sólo (y hace bien) no reconoce directamente la ampliación de tamaño en el sistema de ficheros, ya que hay que indicarle cuál de las particiones existentes debe ampliarse. Al hacer un “df -h” aquello seguía teniendo 130GB en el directorio /opt y 15GB en el /.

Para ver que efectivamente el tamaño de la unidad se había ampliado desde el sistema operativo, bastaba con hacer:

fdisk -s /dev/cciss/c0d0

que devuelve el tamaño en bloques (1KB) de la unidad (fácilmente se pasa a GB, powered by GNU bc).

Por tanto, había que ver la forma de redimensionar ahora el sistema de ficheros, de que el sistema fuera consciente de la ampliación de capacidad. La gente suele utilizar la utilidad resize2fs, aunque al parecer no soporta los journals de ext3, y hay que quitárselo y metérselo después del redimensionado (con tune2fs) como puede verse aquí. Además, resize2fs recibe el tamaño nuevo de la unidad redimensionada en bloques de 4KB, y eso implica hacer algunas cuentecillas de más.

Antes de jugar con redimensionado, hay que desmontar la unidad y comprobar los errores, para no jugar con fuego:

umount /opt

fsck -f /dev/cciss/c0d0p3

Mi idea, afortunadamente, era redimensionar la partición 3 (/opt), con lo cual opté por usar GNU parted (v1.6.3). Para ello, nada más sencillo que ejecutar:

parted  /dev/cciss/c0d0

ejecutar el comando print, que muestra el inicio y fin de c0d0:

0.000-280017,890(MB)

y la tabla de particiones, concretamente la que nos interesa:

nº    start (MB)  end (MB)

3 19097,109 140006,953 

ahora sólo nos queda ejecutar el comando resize, indicando el mismo ‘start’ y el nuevo ‘end’ (en MB):

resize 3 19097,109 280017,890.

Después de unos 10-15 minutos, el redimensionado está hecho. Basta reiniciar el servidor para comprobar que todo está correcto y con 250 gb en la unidad redimensionada.

Lovely HP Utilities🙂.

2 comentarios en “Expansión de array RAID (1+0) en HP Proliant + Red Hat Linux

  1. Saludos,

    todo parece indicar que la partición que estas agrandando es la última que tienes en el disco.
    De no ser así, de ser la partición del “medio” como habría de proceder??

    En mi caso necesito agrandar /srv

    Tengo:

    delprado:~# parted -l
    Model: Compaq Smart Array (cpqarray)
    Disk /dev/cciss/c0d0: 146GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number Start End Size Type File system Flags
    1 32,3kB 502MB 502MB primary ext3 boot
    2 502MB 15,5GB 15,0GB primary ext3
    4 15,5GB 138GB 122GB primary ext3
    3 138GB 146GB 8003MB primary linux-swap

    delprado:~# df -h
    S.ficheros Tamaño Usado Disp Uso% Montado en
    /dev/cciss/c0d0p2 14G 2,5G 11G 19% /
    tmpfs 1008M 0 1008M 0% /lib/init/rw
    udev 10M 652K 9,4M 7% /dev
    tmpfs 1008M 0 1008M 0% /dev/shm
    /dev/cciss/c0d0p1 464M 27M 414M 6% /boot
    /dev/cciss/c0d0p4 112G 343M 106G 1% /srv

    Gracias,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s