查看更多教程 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 上。

  1. 恢复对逻辑卷所做的所有更改并使其恢复到原始大小。

  2. 然后根据命名约定使用 pvresize -v /dev/xxxxx/xxxxx。

  3. 现在检查 pvs -v 输出并确保 PVSize 和 DEVSize 匹配。

  4. 最后运行lvresize,应该可以了。

如果要增加物理卷大小,请先创建一个新分区,然后使用 pvcreate 进行初始化,并使用 vgextend 将此分区添加到现有的 volgroup 中,然后启动 lv extend 的正常过程。

执行lvresize报错, device-mapper: resume ioctl failed: Invalid argument

操作示例

  1. 恢复对 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
  1. 现在将使用 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
  1. 通过 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。

  1. 现在请使用 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