我有一个SLES 11.2 PPC(3.0.58-0.6.6-ppc64)系统,它丢失了它的卷组(包含LV数据不重要,但会很高兴返回)的轨迹。 这些磁盘通过SAN的两条光纤path连接。
这个问题是在上周五计划停电之前重新启动的。 我再没有时间排除故障。 卷组之前已经成功使用了大约两年。
vgscan和pvscan什么都不返回:
# 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
vgcfgrestore报告找不到PV:
# 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.
然而blkid可以find这些UUID:
# 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拥有所有正确的信息,并且不会说缺lessPV:
# 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"]
我在SAN上确认了此服务器上专用(和命名)LVM的卷,标识符(以f30b或7741结尾)在SAN上和服务器上匹配:
# 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
这两个设备都没有分区表(按devise):
# 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
我可以直接从设备读取:
# 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
我尝试了重新启动,同时也删除了sd(r|g|l|w)和dm-(7|12)并重新扫描,结果不起作用。
我已经尝试使用备份值重新创buildPV,但仍然显示无法find它们。
# 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).
这里是我的lvm.conf,但据我所知,唯一的改变是增加日志级别:
# 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" }
那么给了什么? 我的VG去哪儿了,我怎么把它拿回来?
Novell知识库中的文档似乎适用于此:它解释说在SLES上,默认情况下,LVM不会扫描多path设备,因此在这种情况下永远不会看到它们。
要解决该问题,您可以实施Novell提供的解决方法:
在devices部分的/etc/lvm.conf中,将filter更改为:
filter = [ "a|/dev/sda.*|", "a|/dev/disk/by-id/dm-uuid-.*mpath-.*|", "r|.*|"]
(这是SLES 11.对于其他版本,请参阅知识库文章链接。)
当我遇到同样的问题时,vgreduce –removemissing帮助了我的情况。
这是我如何创build这个问题。
我打算扩展一个现有的逻辑卷,但从另一个terminal的中途,我将在要用于扩展的设备上运行fdisk。 它有一些以前的分区表,我想删除。 由于我已经将这个磁盘添加到卷组中(只是没有扩展逻辑卷本身),但是物理卷不再存在,所以丢失了UUID的问题发生了。
为了解决这个问题,我把vgreduce –removemissing,然后就可以了。