Recientemente perdí un RAID que era un volumen físico de uno de mis grupos de volúmenes LVM de Linux. Terminé haciendo un vgreduce --removemissing
y seguí con la tarea de restaurar los datos.
Bueno, hoy encontré ese RAID (estaba escondido, no preguntes).
# pvdisplay -m /dev/md2
WARNING: Volume group mg20 is not consistent
"/dev/md2" is a new physical volume of "499.87 GiB"
--- NEW Physical volume ---
PV Name /dev/md2
VG Name
PV Size 499.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz
mg20
no es consistente porque el PV de objetos perdidos y encontrados /dev/md2
probablemente contiene copias del antiguo catálogo de volúmenes lógicos que menciona el sistema de archivos que se encuentra en /dev/md2
.
/dev/md2
¿Cómo me reintegro mg20
y conservo el sistema de archivos que reside en él? (y ahorrarme la molestia de restaurar su contenido) Un factor simplificador es que /dev/md2
contenía solo un LV y ese LV estaba completamente contenido en /dev/md2
.
Respuesta1
me di cuenta deamanera de recuperar la redada. Los sistemas LVM modernos realizan copias de seguridad de la configuración VG con bastante frecuencia. Puede ver una lista de sus copias de seguridad y los comandos que las activaron usando vgcfgrestore --list
. Elegí el de antes cuando hice el vgreduce --removemissing
y encontré estos bits relevantes en su interior:
pv8 {
id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
device = "unknown device" # Hint only
status = ["ALLOCATABLE"]
flags = ["MISSING"]
dev_size = 1048312832 # 499.875 Gigabytes
pe_start = 2048
pe_count = 127967 # 499.871 Gigabytes
}
y
homes18 {
id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 89600 # 350 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv8", 0
]
}
}
Así que creé una copia de ese archivo y lo eliminé "MISSING"
del archivo flags =
. También configuré el device = "/dev/md2"
, aunque probablemente no fue necesario. Realicé un vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
y ahora mi mg20/homes18 está de vuelta y pasa un fsck.
Para ser honesto, no estoy realmente satisfecho con esta respuesta. Es un poco excesivo restaurar TODA la configuración.
Creo que una respuesta real podría implicar lvcreate -Z n
, pero soy demasiado vago para realizar los experimentos necesarios para verificar esto.