我的精简 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 命令。