由于可用空间不足,精简 LVM 池被冻结,该怎么办?

由于可用空间不足,精简 LVM 池被冻结,该怎么办?

我的精简 LVM 池已满并且某些程序挂起:

device-mapper: thin: 253:4: reached low water mark, sending event.
device-mapper: thin: 253:4: no free space available.
INFO: task jbd2/dm-6-8:742 blocked for more than 120 seconds.
...
INFO: task java:19262 blocked for more than 120 seconds.

我删除了几个精简快照以获取一些可用空间,但程序没有恢复。

是否有命令可以解冻程序/文件系统/卷?

答案1

只是

lvresize -L +100g oktestlb1/pool

或者更一般地说:

lvresize -L +100g volgroup/poolname

如果您选择不使用基于事件的自动调整大小,这应该会立即解冻卷。当然,您的 PV 需要空间来执行此操作。

答案2

看来是陷入了恐慌状态,不重启就解决不了。

重新启动很棘手:甚至reboot --force对我不起作用,但这个脚本做到了:

    echo 1 > /proc/sys/kernel/sysrq
    echo b > /proc/sysrq-trigger

为了防止恐慌,一些监控工具可以自动删除旧快照或调用fsfreeze或两者兼而有之,但至少在 rhel 6.5 上不存在这样的工具。

lvm2-monitor服务只能将警告打印到系统日志中:

Apr 28 18:06:16 oktest-prod-lb1 lvm[789]: Thin vg_oktestlb1-pool-tpool is now 80% full.
Apr 28 18:07:26 oktest-prod-lb1 lvm[789]: Thin vg_oktestlb1-pool-tpool is now 85% full.

lvm.conf

# thin_library is the library used when monitoring a thin device.
#
# "libdevmapper-event-lvm2thin.so" monitors the filling of
# pool and emits a warning through syslog when the use of
# the pool exceeds 80%. The warning is repeated when 85%, 90% and
# 95% of the pool is filled.

thin_library = "libdevmapper-event-lvm2thin.so"

rsyslog可以配置为发送电子邮件或对此类消息运行 shell 命令。

相关内容