Sidebar

Si requerimos de más espacio en nuestros filesystem, es posible cambiarlos por discos de mayor capacidad y no perder nuestra información. Para ello se requiere tener configurado mdadm (raid por software).

En este ejemplo aparte de utilzar mdadm utilizo lvm, y lo que vamos a hacer es aumentar mi partición de root. Así es como lucen mis arreglos y filesystem antes del cambio.

[root@fedora17-64 ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Tue Jul 31 05:12:23 2012
Raid Level : raid1
Array Size : 511988 (500.07 MiB 524.28 MB)
Used Dev Size : 511988 (500.07 MiB 524.28 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Mon Nov 26 04:54:09 2012
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : fedora17-64:0 (local to host fedora17-64)
UUID : 20791e7e:a11f025c:b77c9c06:05811aca
Events : 157

Number Major Minor RaidDevice State
2 8 2 0 active sync /dev/sda2
3 8 18 1 active sync /dev/sdb2


[root@fedora17-64 ~]# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Jul 31 05:12:19 2012
Raid Level : raid1
Array Size : 20457400 (19.51 GiB 20.95 GB)
Used Dev Size : 20457400 (19.51 GiB 20.95 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Mon Nov 26 05:01:25 2012
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : fedora17-64:1 (local to host fedora17-64)
UUID : 1683447e:d49a853e:e14fd235:3e8eccbd
Events : 1049

Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1

 


[root@fedora17-64 ~]# df -h

Filesystem Size Used Avail Use% Mounted on
rootfs 9.8G 3.5G 5.9G 38% /
devtmpfs 237M 4.0K 237M 1% /dev
tmpfs 246M 0 246M 0% /dev/shm
tmpfs 246M 748K 245M 1% /run
/dev/mapper/vg_fedora17--64-lv_root 9.8G 3.5G 5.9G 38% /
tmpfs 246M 0 246M 0% /sys/fs/cgroup
tmpfs 246M 0 246M 0% /media
/dev/md0 497M 59M 414M 13% /boot

 

Supongamos que se daño un disco y queremos remplazarlo por discos de mayor capacidad, o simplemente queremos aumentar la capacidad de ellos. Bueno el primer paso sería remover el disco, para ello primero lo vamos a dar de baja de lvm y limpiarlo mediante el comando dd por seguridad.

[root@fedora17-64 ~]# mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@fedora17-64 ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Tue Jul 31 05:12:23 2012
Raid Level : raid1
Array Size : 511988 (500.07 MiB 524.28 MB)
Used Dev Size : 511988 (500.07 MiB 524.28 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Tue Nov 27 02:57:12 2012
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0

Name : fedora17-64:0 (local to host fedora17-64)
UUID : 20791e7e:a11f025c:b77c9c06:05811aca
Events : 216

Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 0 0 1 removed

3 8 17 - faulty spare /dev/sdb1

[root@fedora17-64 ~]# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@fedora17-64 ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Tue Jul 31 05:12:23 2012
Raid Level : raid1
Array Size : 511988 (500.07 MiB 524.28 MB)
Used Dev Size : 511988 (500.07 MiB 524.28 MB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent

Update Time : Tue Nov 27 02:58:47 2012
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

Name : fedora17-64:0 (local to host fedora17-64)
UUID : 20791e7e:a11f025c:b77c9c06:05811aca
Events : 219

Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 0 0 1 removed

Procedemos a eliminar la información del disco por seguridad

dd if=/dev/zero of=/dev/sdb1

Apagamos la máquina y realizamos el cambio del disco físicamente.

Lo primero que debemos de hacer teniendo el disco nuevo es crear la partición o particiones (si remplazamos un disco del mismo tamaño).

Es importante identificar el nuevo disco mediante el comando fdisk -l

sfdisk -d /dev/sda | sfdisk /dev/sdb

Pero si lo que se quiere es aumentar el tamaño del disco, creamos una partición con todo el espacio disponible del disco utilizando fdisk.

En mi caso tengo dos particiones en el disco, por lo que tuve que generar dos particiones, una de 500MB igual a la anterior y la que contiene a root con el resto del espacio del disco.

[root@fedora17-64 ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a082f

Device Boot Start End Blocks Id System
/dev/sda1 2048 40919039 20458496 fd Linux raid autodetect
/dev/sda2 * 40919040 41943039 512000 fd Linux raid autodetect

Nuevo disco de 30GB

[root@fedora17-64 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe0657770

Device Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux raid autodetect
/dev/sdb2 1026048 62914559 30944256 83 Linux raid autodetect

Ya que tenemos listas las particiones las podemos agregar al arreglo

[root@fedora17-64 ~]# mdadm --add /dev/md0 /dev/sdb1
mdadm: added /dev/sdb1

[root@fedora17-64 ~]# mdadm --add /dev/md1 /dev/sdb2
mdadm: added /dev/sdb2

Podemos ver el progreso de reconstrucción del arreglo de dos formas.

[root@fedora17-64 ~]# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Jul 31 05:12:19 2012
Raid Level : raid1
Array Size : 20457400 (19.51 GiB 20.95 GB)
Used Dev Size : 20457400 (19.51 GiB 20.95 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Mon Nov 26 05:35:02 2012
State : active, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Rebuild Status : 17% complete

Name : fedora17-64:1 (local to host fedora17-64)
UUID : 1683447e:d49a853e:e14fd235:3e8eccbd
Events : 1194

Number Major Minor RaidDevice State
2 8 18 0 spare rebuilding /dev/sdb2
1 8 1 1 active sync /dev/sda1

O de la siguiente forma

[root@fedora17-64 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[2] sda2[3]
511988 blocks super 1.0 [2/2] [UU]

md1 : active raid1 sdb2[2] sda1[1]
20457400 blocks super 1.2 [2/1] [_U]
[=======>.............] recovery = 39.8% (8156992/20457400) finish=1.0min speed=198612K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices:

Ahora debemos instalar grub2 en el nuevo disco.

Primero podemos revisar si se encuentra instalado de la siguiente forma

[root@fedora17-64 ~]# file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0xfd, starthead 32, startsector 2048, 40916992 sectors;
partition 2: ID=0xfd, active, starthead 254, startsector 40919040, 1024000 sectors, code offset 0x63


Disco nuevo sin grub instalado

[root@fedora17-64 ~]# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0x83, starthead 32, startsector 2048, 1024000 sectors;
partition 2: ID=0x83, starthead 221, startsector 1026048, 61888512 sectors, code offset 0x0

Instalando grub2

[root@fedora17-64 ~]# grub2-install /dev/sdb
Installation finished. No error reported.

Si revisamos nuevamente

[root@fedora17-64 ~]# file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0xfd, starthead 32, startsector 2048, 40916992 sectors;
partition 2: ID=0xfd, active, starthead 254, startsector 40919040, 1024000 sectors, code offset 0x63
[root@fedora17-64 ~]# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0x83, starthead 32, startsector 2048, 1024000 sectors;
partition 2: ID=0x83, starthead 221, startsector 1026048, 61888512 sectors, code offset 0x63

Ahora debemos proceder a realizar el cambio del segundo disco de la misma forma que el disco anterior. Cuando tengamos los dos discos nuevos, con grub2 instalado procederemos a agrandar el arreglo.

[root@fedora17-64 ~]# mdadm --grow /dev/md1 --size=max
mdadm: Cannot set device size for /dev/md1: Device or resource busy
Bitmap must be removed before size can be changed

En caso de tener el mensaje anterior tendremos que ejecutar el siguiente comando


[root@fedora17-64 ~]# mdadm --grow /dev/md1 --bitmap none
[root@fedora17-64 ~]# mdadm --grow /dev/md1 --size=max
mdadm: component size of /dev/md1 has been set to 30943232K

Revisamos el arreglo y ahora lo tenemos más grande

[root@fedora17-64 ~]# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Jul 31 05:12:19 2012
Raid Level : raid1
Array Size : 30943232 (29.51 GiB 31.69 GB)
Used Dev Size : 30943232 (29.51 GiB 31.69 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Mon Nov 26 06:27:26 2012
State : active, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Resync Status : 87% complete

Name : fedora17-64:1 (local to host fedora17-64)
UUID : 1683447e:d49a853e:e14fd235:3e8eccbd
Events : 1403

Number Major Minor RaidDevice State
2 8 2 0 active sync /dev/sda2
3 8 18 1 active sync /dev/sdb2

Crecemos el physical volume

root@fedora17-64 ~]# pvresize /dev/md1
Physical volume "/dev/md1" changed
1 physical volume(s) resized / 0 physical volume(s) not resized

Crecemos el volumen logico

[root@fedora17-64 ~]# lvextend -L +10G -n /dev/vg_fedora17-64/lv_root
Extending logical volume lv_root to 19.78 GiB
Logical volume lv_root successfully resized

Crecemos el filesystem

[root@fedora17-64 ~]# resize2fs /dev/vg_fedora17-64/lv_root
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/vg_fedora17-64/lv_root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vg_fedora17-64/lv_root is now 5185536 blocks long.

Y listo, tenemos nuestro filesystem de root 10G más grande

[root@fedora17-64 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 3.6G 16G 20% /
devtmpfs 237M 4.0K 237M 1% /dev
tmpfs 246M 0 246M 0% /dev/shm
tmpfs 246M 736K 245M 1% /run
/dev/mapper/vg_fedora17--64-lv_root 20G 3.6G 16G 20% /
tmpfs 246M 0 246M 0% /sys/fs/cgroup
tmpfs 246M 0 246M 0% /media
/dev/md0 497M 59M 414M 13% /boot

Tips BD