Eu tenho um sistema SLES 11.2 PPC (3.0.58-0.6.6-ppc64) que perdeu o controle de seu grupo de volume (contendo LVs com dados que não são críticos, mas seria muito bom voltar). Os discos estão conectados por meio de dois caminhos de fibra de uma SAN.
O problema começou quando eu o reiniciei antes de uma queda de energia planejada na última sexta-feira. Eu não tive tempo para solucionar o problema antes de abaixá-lo novamente. O grupo de volume já havia sido usado com sucesso por cerca de dois anos.
vgscan e pvscan não retornam nada:
# pvscan -vP
Partial mode. Incomplete logical volumes will be processed.
Wiping cache of LVM-capable devices
Wiping internal VG cache
Walking through all physical volumes
No matching physical volumes found
# vgscan -vP
Partial mode. Incomplete logical volumes will be processed.
Wiping cache of LVM-capable devices
Wiping internal VG cache
Reading all physical volumes. This may take a while...
Finding all volume groups
No volume groups found
O vgcfgrestore relata que não consegue encontrar os PVs:
# vgcfgrestore vgclients
Couldn't find device with uuid PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU.
Couldn't find device with uuid FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2.
Cannot restore Volume Group vgclients with 2 PVs marked as missing.
Restore failed.
No entanto, o blkid pode encontrar esses UUIDs:
# blkid -t UUID=PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU
/dev/mapper/3600a0b800029df24000011084db97741: UUID="PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU" TYPE="LVM2_member"
/dev/sdl: UUID="PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU" TYPE="LVM2_member"
/dev/sdw: UUID="PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU" TYPE="LVM2_member"
# blkid -t UUID=FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2
/dev/mapper/3600a0b800029df24000017ae4f45f30b: UUID="FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2" TYPE="LVM2_member"
/dev/sdg: UUID="FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2" TYPE="LVM2_member"
/dev/sdr: UUID="FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2" TYPE="LVM2_member"
/etc/lvm/backup/vgclients
tem todas as informações corretas e não diz que os PVs estão faltando:
# egrep "(N1YELU|kSqUA2|dm-|ALLOC)" /etc/lvm/backup/vgclients
id = "PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU"
device = "/dev/dm-7" # Hint only
status = ["ALLOCATABLE"]
id = "FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2"
device = "/dev/dm-12" # Hint only
status = ["ALLOCATABLE"]
Confirmei no SAN que os volumes dedicados (e nomeados) para LVM neste servidor são apresentados e o identificador (termina em f30b ou 7741) corresponde na SAN e no servidor:
# multipath -ll | egrep -A5 "(f30b|7741)"
3600a0b800029df24000017ae4f45f30b dm-7 IBM,1814 FAStT
size=575G features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=6 status=active
| '- 6:0:0:1 sdr 65:16 active ready running
'-+- policy='round-robin 0' prio=1 status=enabled
'- 5:0:0:1 sdg 8:96 active ghost running
--
3600a0b800029df24000011084db97741 dm-12 IBM,1814 FAStT
size=834G features='1 queue_if_no_path' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=6 status=active
| '- 5:0:0:7 sdl 8:176 active ready running
'-+- policy='round-robin 0' prio=1 status=enabled
'- 6:0:0:7 sdw 65:96 active ghost running
Nenhum dos dispositivos tem uma tabela de partições (por design):
# fdisk -l /dev/dm-7 /dev/dm-12 | grep table
Disk /dev/dm-7 doesn't contain a valid partition table
Disk /dev/dm-12 doesn't contain a valid partition table
Eu posso ler diretamente dos dispositivos:
# dd if=/dev/dm-7 of=/tmp/a bs=1024 count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.00121051 s, 846 kB/s
# strings /tmp/a
LABELONE
LVM2 001FXfSAOP9hODgtl0Ihfx2jXTnHUkSqUA2
Eu tentei reinicializar e também excluir sd(r|g|l|w)
e dm-(7|12)
e redigitalizar, sem efeito.
Eu tentei recriar o PV usando os valores de backup, mas ele ainda diz que não pode encontrá-los.
# pvcreate --uuid "PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU" --restorefile /etc/lvm/backup/vgclients /dev/mapper/3600a0b800029df24000011084db97741 -t
Test mode: Metadata will NOT be updated and volumes will not be (de)activated.
Couldn't find device with uuid PyKfIa-cCs9-gBoh-Qb50-yOw4-dHQw-N1YELU.
Couldn't find device with uuid FXfSAO-P9hO-Dgtl-0Ihf-x2jX-TnHU-kSqUA2.
Device /dev/mapper/3600a0b800029df24000011084db97741 not found (or ignored by filtering).
Aqui está o meu lvm.conf, embora, até onde sei, a única alteração que fiz foi aumentar o nível de log:
# egrep -v "^( *#|$)" /etc/lvm/lvm.conf
devices {
dir = "/dev"
scan = [ "/dev" ]
preferred_names = [ ]
filter = [ "a|^/dev/sda$|", "r/.*/" ]
cache = "/etc/lvm/.cache"
write_cache_state = 1
sysfs_scan = 1
md_component_detection = 1
ignore_suspended_devices = 0
}
log {
verbose = 0
syslog = 1
overwrite = 0
level = 2
indent = 1
command_names = 0
prefix = " "
}
backup {
backup = 1
backup_dir = "/etc/lvm/backup"
archive = 1
archive_dir = "/etc/lvm/archive"
retain_min = 10
retain_days = 30
}
shell {
history_size = 100
}
global {
umask = 077
test = 0
units = "h"
activation = 1
proc = "/proc"
locking_type = 3
fallback_to_clustered_locking = 1
fallback_to_local_locking = 1
locking_dir = "/var/run/lvm/lock"
}
activation {
missing_stripe_filler = "/dev/ioerror"
reserved_stack = 256
reserved_memory = 8192
process_priority = -18
mirror_region_size = 512
readahead = "auto"
mirror_log_fault_policy = "allocate"
mirror_device_fault_policy = "remove"
udev_rules = 1
udev_sync = 1
}
dmeventd {
mirror_library = "libdevmapper-event-lvm2mirror.so"
snapshot_library = "libdevmapper-event-lvm2snapshot.so"
}
Então, o que dá? Para onde foi o meu VG e como o recebo de volta?