查看更多教程 https://on itroad.com
解决方案
如果对 LVM 进行了一些错误配置,则会触发上述错误。
当 PSize(物理大小)设置为大于 DevSize(设备大小)时会导致此问题。
可以通过以下命令的输出进行验证:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 10.00G 5.00G 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
这里你可以注意到 PSize 设置为 10G,但实际 Device 大小只有 5G,因此 PSize 应该小于或者等于 DevSize。
我们还可以通过查看 lvm 存档文件来查看所做的更改。
# cd /etc/lvm/archive # less testvg1_00000-320386444.vg description = "Created *before* executing 'pvresize --setphysicalvolumesize 10G /dev/xvdc'"
上面,存档文件的物理卷大小设置为 10G,这导致 LVM 功能损坏或者锁定。
操作步骤
注意:由于我们要减小大小,因此请首先进行完整备份,以防止在最坏的情况下丢失数据,因为这是一种非常危险的方法,而且我们已将 /root 设置在同一个 volgroup 上。
恢复对逻辑卷所做的所有更改并使其恢复到原始大小。
然后根据命名约定使用 pvresize -v /dev/xxxxx/xxxxx。
现在检查 pvs -v 输出并确保 PVSize 和 DEVSize 匹配。
最后运行lvresize,应该可以了。
如果要增加物理卷大小,请先创建一个新分区,然后使用 pvcreate 进行初始化,并使用 vgextend 将此分区添加到现有的 volgroup 中,然后启动 lv extend 的正常过程。
操作示例
- 恢复对 LV 所做的更改并确保 LVSize 在 Devsize 限制内。
# lvresize -L 4G /dev/testvg1/test_lv WARNING: Reducing active logical volume to 4.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce test_lv? [y/n]: y Reducing logical volume test_lv to 4.00 GB Logical volume test_lv successfully resized
- 现在将使用 pvresize -v /dev/xxxx/xxxx
# pvresize -v /dev/xvdc Using physical volume(s) on command line Archiving volume group "testvg1" metadata (seqno 9). Resizing physical volume /dev/xvdc from 2559 to 1279 extents. Resizing volume "/dev/xvdc" to 10485376 sectors. Updating physical volume "/dev/xvdc" Creating volume group backup "/etc/lvm/backup/testvg1" (seqno 10). Physical volume "/dev/xvdc" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
- 通过 pvs -v 命令验证:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 5.00G 1020.00M 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
现在可以看到 PSize 等于 DevSize。
- 现在请使用 LVM 执行任何其他正常操作。
问题
无法在逻辑卷上执行 lvresize、lvextend 或者 lvcreate,并且在执行任何 LVM 命令后收到以下错误:
device-mapper: resume ioctl on (major:minor) failed: Invalid argument Unable to resume vgname-lvname (major:minor) Failed to activate new LV
“设备映射器:恢复 ioctl 失败:参数无效”
日期:2020-09-17 00:14:05 来源:oir作者:oir