Inicio > General > Que hacer cuando falla un disco duro en un equipo Linux con LVM

Que hacer cuando falla un disco duro en un equipo Linux con LVM

Antes de nada, si el disco es el de sistema, solo toca reinstalar el equipo, jajaja.
Si es nuestro caso que el disco es una partición de scratch, es posible salvar la situación.
El primer paso, es arrancar el sistema con un liveCD, o en modo a prueba de fallos, y comentar la línea en el fstab:

# vi /etc/fstab

Quedando de la siguiente manera

#/dev/system2/scratch /s                   xfs        defaults              1 2

A continuación, arrancamos el sistema, y vemos como han quedado los VolumGroups

# vgdisplay
Couldn't find device with uuid 'ArrTO5-gnPD-Sz4V-tomR-56bf-R19A-h1LTKl'.
Couldn't find all physical volumes for volume group system2.
Couldn't find device with uuid 'ArrTO5-gnPD-Sz4V-tomR-56bf-R19A-h1LTKl'.
Couldn't find all physical volumes for volume group system2.
Volume group "system2" not found
--- Volume group ---
VG Name               system
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               150,00 GB
PE Size               4,00 MB
Total PE              38399
Alloc PE / Size       38399 / 150,00 GB
Free  PE / Size       0 / 0
VG UUID               Acu07c-aOLs-qRNV-WNd7-K1zQ-Jq5s-E1B3So

Eliminamos el disco que ha fallado del VolumGroup afectado.

# vgreduce --removemissing system2

Donde system2 es el VolumGroup

Volvemos a ver como han quedado los VolumGroup

# vgdisplay
--- Volume group ---
VG Name               system2
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               1,66 TB
PE Size               4,00 MB
Total PE              435157
Alloc PE / Size       0 / 0
Free  PE / Size       435157 / 1,66 TB
VG UUID               pK14YJ-NTkA-OQ1I-Amq5-MK8m-yYRh-gAA4WW

--- Volume group ---
VG Name               system
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               150,00 GB
PE Size               4,00 MB
Total PE              38399
Alloc PE / Size       38399 / 150,00 GB
Free  PE / Size       0 / 0
VG UUID               Acu07c-aOLs-qRNV-WNd7-K1zQ-Jq5s-E1B3So

Vemos que ahora no hay errores, ahora es cuestión de añadir el nuevo disco al VolumGroup afectado.

Primero vemos que particiones tenemos preparadas para utilizar con LVM

# pvscan
PV /dev/sda4   VG system2   lvm2 [1,66 TB / 1,66 TB free]
PV /dev/sda3   VG system    lvm2 [150,00 GB / 0    free]
Total: 2 [1,81 TB] / in use: 2 [1,81 TB] / in no VG: 0 [0   ]

Vemos que el tamaño del VolumeGroup “system2” corresponde a la partición sda4.
El nuevo disco todavía no esta inicializado, así que lo inicializaremos para poder ser utilizado por LVM.

# pvcreate /dev/sdb
No physical volume label read from /dev/sdb
Physical volume "/dev/sdb" successfully created

Y miramos que se haya iniciado correctamente.

# pvscan
PV /dev/sda4   VG system2         lvm2 [1,66 TB / 1,66 TB free]
PV /dev/sda3   VG system          lvm2 [150,00 GB / 0    free]
PV /dev/sdb                       lvm2 [1,82 TB]
Total: 3 [3,63 TB] / in use: 2 [1,81 TB] / in no VG: 1 [1,82 TB]

Como se puede ver, se ha iniciado correctamente, pero no está siendo utilizado por ningún VolumGroup.
Ahora, solo queda añadir el nuevo disco al VolumGroup para poder ser utilizado, lo haremos con el siguiente comando.

# vgextend system2 /dev/sdb
Volume group "system2" successfully extended

Comprobamos que sea correcto

 # pvscan
 PV /dev/sda4   VG system2   lvm2 [1,66 TB / 1,66 TB free]
 PV /dev/sdb    VG system2   lvm2 [1,82 TB / 1,82 TB free]
 PV /dev/sda3   VG system    lvm2 [150,00 GB / 0    free]
 Total: 3 [3,63 TB] / in use: 3 [3,63 TB] / in no VG: 0 [0   ]
 
# vgdisplay
--- Volume group ---
VG Name               system2
System ID
Format                lvm2
Metadata Areas        2
Metadata Sequence No  4
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                2
Act PV                2
VG Size               3,48 TB
PE Size               4,00 MB
Total PE              912089
Alloc PE / Size       0 / 0
Free  PE / Size       912089 / 3,48 TB
VG UUID               pK14YJ-NTkA-OQ1I-Amq5-MK8m-yYRh-gAA4WW

--- Volume group ---
VG Name               system
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               150,00 GB
PE Size               4,00 MB
Total PE              38399
Alloc PE / Size       38399 / 150,00 GB
Free  PE / Size       0 / 0
VG UUID               Acu07c-aOLs-qRNV-WNd7-K1zQ-Jq5s-E1B3So

Y vemos que ahora tiene 3.48TB, hemos aumentado el tamaño en 2TB que era el tamaño del nuevo disco, ahora solo falta crear uno o más LogicalVolum para poder utilizar el espacio, en este caso solo crearemos uno.

Primero comprobamos los existentes

# lvdisplay
--- Logical volume ---
LV Name                /dev/system/home
VG Name                system
LV UUID                CBKX0R-LOWU-A5ek-YqZe-By42-Axt8-tkQ6L7
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                50,00 GB
Current LE             12799
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:0

--- Logical volume ---
LV Name                /dev/system/root
VG Name                system
LV UUID                gFyA3N-jIsH-y4cI-zJUm-jrgt-juG0-DfjKoS
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                100,00 GB
Current LE             25600
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:1

Ahora se crea el LogicalVolum, para eso utilizamos el tamaño obtenido antes con el comando vgdisplay, podemos hacerlo de la siguiente manera.

# vgdisplay system2 | grep "Total PE"
Total PE              912089

Y creamos el LogicalVolumn

# lvcreate -l 912089 system2 -n scratch
Logical volume "scratch" created

Por si no quereis escribir.😄

lvcreate -l $(vgdisplay system2|grep "Total PE"| tr -s " "|cut -d " " -f 4) system2 -n scratch

Esto creará un LV llamado scratch llenando el VG system2, en vuestro caso tendréis que sustituirlo por vuestro VG.
Como siempre, comprobamos que sea correcto.

 # lvdisplay
 --- Logical volume ---
 LV Name                /dev/system2/scratch
 VG Name                system2
 LV UUID                l5m46P-2rMq-2uQu-iXPx-t8FU-iSK1-vbbp8J
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                3,48 TB
 Current LE             912089
 Segments               2
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:2
 

Ahora solo queda tratar el LV como si fuera una partición normal, por lo que es necesario darle formato, en este caso XFS ya que maneja muy bien ficheros gandes, y es el uso que se le va a dar a esta partición.

# mkfs.xfs /dev/system2/scratch
meta-data=/dev/system2/scratch   isize=256    agcount=4, agsize=233494784 blks
=                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=933979136, imaxpct=5
=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=32768, version=2
=                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0

Por último, configuramos la partición en el fstab para que se monte automáticamente, y la montamos en nuestro sistema.
Para configurarla en el fstab, basta con descomentar la línea que se comento inicialmente.

echo "/dev/system2/scratch /s                   xfs        defaults              1 2" >> /etc/fstab

Para montar la partición, lo hacemos con el siguiente comando.

# mount /s

Y vemos que se está utilizando correctamente

# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/system2-scratch
3,5T  4,2M  3,5T   1% /s

Para consultar más información sobre LVM AQUÍ

Categorías:General Etiquetas: ,

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

A %d blogueros les gusta esto: