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