23 dic

Resizing an Online Multipath Device

Vamos a ampliar una disco conectado por FC a una cabina, de tal manera que deberemos rehacer la particion o disco del servidor para disfrutar del nuevo tamaño, lo haremos sin reiniciar el servidor.

Situación inicial

Lun presentada desde una cabina NetAPP por FC.

Montada en un RedHat con multipath, 4 paths

MySQL_Slave1 (360a980006470484f576f737278463034)
dm-0 NETAPP,LUN [size=120G][features=1 queue_if_no_path][hwhandler=0][rw]
_ round-robin 0 [prio=50][active] _ 5:0:1:0 sdc 8:32  [active][ready]
_ round-robin 0 [prio=50][enabled] _ 6:0:1:0 sde 8:64  [active][ready]
_ round-robin 0 [prio=10][enabled] _ 5:0:0:0 sdb 8:16  [active][ready]
_ round-robin 0 [prio=10][enabled] _ 6:0:0:0 sdd 8:48  [active][ready]

Tamaño inicial

/dev/mapper/MySQL_Slave1 119G   92G   21G  82% /mnt/mysql55-slave1

Resizing an Online Multipath Device without partition

Una vez que hemos aumentado la LUN desde el servidor

Vamos a comprobar que el servidor detecta el nuevo tamaño, para ello hacemos un rescan de los discos.

echo '- - -' > /sys/class/scsi_host/host5/rescan
multipathd -ll  MySQL_Slave1 (360a980006470484f576f737278463034)
dm-0 NETAPP,LUN [size=201G][features=1 queue_if_no_path][hwhandler=0][rw] _ round-robin 0 [prio=50][active]
_ 5:0:1:0 sdc 8:32  [active][ready] _ round-robin 0 [prio=50][enabled] _ 6:0:1:0 sde 8:64  [active][ready]
_ round-robin 0 [prio=10][enabled] _ 5:0:0:0 sdb 8:16  [active][ready] _ round-robin 0 [prio=10][enabled]
_ 6:0:0:0 sdd 8:48  [active][ready]

Desmontamos la unidad en el caso que la tengamos montada, en el caso de que no este montada o sea desmontada ya no hace falta que la desmontemos :)

Haremos el primer resize a través del multipath tal que así:

multipathd -k'resize map MySQL_Slave1' ok

Y ahora rápidamente un resize molón del disco, como esta lun no tiene particiones lo haremos directamente, contando que si es ext2 o ext3 utilizaremos resize2fs y si es ext4 como en nuestro caso, utilizaremos resize4fs

e4fsck /dev/mapper/MySQL_Slave1 resize4fs /dev/mapper/MySQL_Slave1

Comprobamos

/dev/mapper/MySQL_Slave1  198G 92G 96G 49% /mnt/mysql55-slave1

Resizing an Online Multipath Device with partition

La situación ahora es que tenemos un disco conectado a una cabina por FC, pero esta vez el disco que ve el sistema tiene un partición, en este caso el método es un poco distinto.

La primera parte igual, ampliamos la LUN en la cabina y hacemos el rescan en el sistema.

echo '- - -' > /sys/class/scsi_host/host5/rescan
multipath -ll MySQL_Master (360a980006470484f576f74346e446e56)<strong> dm-0
NETAPP,LUN [size=200G][features=1 queue_if_no_path][hwhandler=0][rw]
_ round-robin 0 [prio=50][active]  _ 5:0:1:0 sde 8:64  [active][ready]
_ round-robin 0 [prio=50][enabled]  _ 6:0:1:0 sdk 8:160 [active][ready]
_ round-robin 0 [prio=10][enabled]  _ 5:0:0:0 sdb 8:16  [active][ready]
_ round-robin 0 [prio=10][enabled]  _ 6:0:0:0 sdh 8:112 [active][ready]

El disco que vemos es el dm-0, vemos con un fdisk -l que tiene una partición que es la que queremos ampliar.

Disk /dev/dm-0: 200 GB,
214749413376 bytes 255 heads, 63 sectors/track, 26108 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id
System /dev/dm-0p1               1       xxxxx   xxxxxx+

Pues ahora que lo tenemos todo localizado vamos a ampliar la partición, desmontamos primero. y lo que haremos es eliminar la partición actual y volverla a crear, pero esta vez veremos que el end de la partición es superior, ya que el tamaño es superior, la practica es tal que así.

umount /dev/dm-0p1
fdisk -u /dev/sdc < d [Enter] n [Enter] p [Enter] 1 [Enter] w [Enter]
d = delete
n = new
p = primary
1 = la primera
fsck -f /dev/dm-0p1
resize2fs /dev/dm-0p1

Cuando termine ya tendremos la nueva partición con el tamaño deseado, por ultimo le diremos al sistema que vuelva a escanear la tabla de particiones.

partprobe -s /dev/dm-0

Y con esto ya tenemos el disco ampliado sin necesidad de reiniciar.

Fuentes

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/DM_Multipath/MPIO_admin-troubleshoot.html

http://www.redhat.com/advice/tips/rhce/partprobe.html