Lvm Read-only locking type set. Write locks are prohibited.

问题

无法扩展 LVM 文件系统。
运行 lvextend 命令时收到以下错误消息:

Read-only locking type set. Write locks are prohibited.
Can't get lock for rootvg
只读锁定类型集。 禁止写锁。
无法锁定 rootvg
 
resize2fs 1.43-WIP (20-Jun-2013)
The filesystem is already 1310720 blocks long. Nothing to do!

解决方案

/etc/lvm/lvm.conf 中的参数锁定类型设置为 4.

# grep locking lvm.conf |grep -v '#'
  "lvmetad", "metadata", "cache", "locking" ]
  locking_type = 4
  fallback_to_clustered_locking = 1
  fallback_to_local_locking = 1
  locking_dir = "/var/lock/lvm"

将locking_type 参数设置为4 会强制执行只读元数据。
禁止任何可能想要修改卷组元数据的操作。

因此,当locking_type 设置为4 时,lvextend 命令会失败,因为它会尝试修改卷组元数据。
请按照下面列出的步骤解决问题。

  1. 备份 /etc/lvm/lvm.conf 。
  2. 编辑/etc/lvm/lvm.conf 文件并将locking_type 的值设置为1.
  3. 保存文件。
  4. 重启服务器。

进行更改时,locking_type 参数应如下所示:

#grep locking lvm.conf |grep -v '#'
----
"lvmetad", "metadata", "cache", "locking" ]
locking_type = 1
fallback_to_clustered_locking = 1
fallback_to_local_locking = 1
locking_dir = "/var/lock/lvm"

locking_type参数的值

lock_type 定义了正在使用的锁定类型。
以下是参数值列表及其说明:

  • 0 - 禁用锁定并有破坏元数据的风险
  • 1(默认) - 使用文件群来避免在单台机器上同时运行的冲突 LVM2 命令。
  • 2 - 工具将加载外部locking_library。
  • 3 - 强制执行内置的集群范围锁定。
  • 4 - 强制执行只读元数据并禁止任何可能想要修改卷组元数据的操作。

有关上述值的更多详细信息,请参阅 lvm.conf 的手册页:

# man lvm.conf

 

THE END