在移动某些范围时发生一些磁盘错误后,我现在有一个隐藏的锁定 [pvmove0],它似乎没有分配任何物理范围,尽管它有 4Mb 长!
# lvs -a -o+seg_pe_ranges a/pvmove0
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert PE Ranges
[pvmove0] a vwC---v--- 4.00m
Run Code Online (Sandbox Code Playgroud)
几年前,我在另一个系统上发生过这种情况(请参阅此处),但没有得到很多回复(只有 1 个),并且不记得如何/是否修复了它。
简单的lvremove a/pvmove0'(可选 with --force)产生消息Can't remove locked LV pvmove0。
pvmove --abort什么也没做。该体积的存在似乎不会影响其他移动(仅使用[pvmove1])。
在配置中,LV 显示:
pvmove0 {
id = "54veYD-hM8r-j214-MOD1-FGnV-3g7t-jRlZ7W"
status = ["READ", "WRITE", "LOCKED"]
flags = []
creation_host = "zotac"
creation_time = 1394764593 # 2014-03-14 02:36:33 +0000
allocation_policy = "contiguous"
segment_count = 1
segment1 {
start_extent = 0
extent_count = 1 # 4 Megabytes
type = "error"
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到没有与 LV 关联的物理卷。
我几年前的询问得到了尝试的建议dmsetup remove。不幸的是,这需要设备名称并dmsetup info a-pvmove0报告Device does not exist.
我怀疑唯一的修复方法是手动编辑配置文件以删除有问题的 LV,然后使用,vgcfgrestore但会假设我不是唯一遇到此问题的人,并且会认为有一系列命令可以修复它!
[仅供参考:disk errorsRAID 阵列中 3 个磁盘中的 2 个几乎同时发生故障;幸运的是,其中一个驱动器只有几个坏块,因此我能够使用ddrescue]恢复 500Gb 卷中除了几兆字节之外的所有内容。
好吧,我放弃了等待答案,尝试了编辑配置文件的简单解决方案。那是:
vgcfgbackup a/etc/lvm/backup/a和删除逻辑卷的定义pvmove0vgcfgrestore a体积消失了,而且似乎没有任何副作用。