空き容量が不足しているため、Thin LVMプールが停止しました。どうすればいいですか?

空き容量が不足しているため、Thin 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そのメッセージに対して電子メールを送信するか、シェルコマンドを実行するように設定できます。

関連情報