2010/12/21

ノードDISK溢れ対策

Gfarmは,ファイルシステムノードで,書き込みをした場合に,そのノードにファイルを配置します.しかし,version 2.3.2では,minimum_free_disk_spaceの設定(gfmd.confに設定する)の動作が完全とは言えないので,DISKが少なくなってきたノードをreadonlyに設定する必要があります.また,gfmdで一括管理されてしまうので,個別ノードで空き容量がいくつ以下になったら,書き込まない.という設定ができません.

これを回避する一番簡単な方法は,dfで監視しつつ,空き容量が減ってきたら,readonlyに設定するという方法です.dfとって,.readonlyをtouchしたりrmするだけなので,頻繁にやっても問題ないと思います.

スクリプトの例:
(SPOOL_DIRECTORYは書きなおしてください)
#!/bin/sh

PATH=/usr/bin:/bin
LANG=C
export PATH LANG

ROfile="SPOOL_DIRECTORY/.readonly"
DisPnt=100000000
EnbPnt=150000000

# ---------------------------------------------------- #

NowAvail=`df -k -P /data | grep lvol0 | awk '{print $4}'`

if [ $NowAvail -lt $DisPnt ]; then
    test -f $ROfile        || touch $ROfile
fi

if [ $NowAvail -gt $EnbPnt ]; then
    test -f $ROfile        && rm $ROfile
fi

# ---------------------------------------------------- #
exit 0