Hello Guest    ログイン
top > Linux > HotSaNICのrrdファイルをtmpfsに記録する

HotSaNICのrrdファイルをtmpfsに記録する

カテゴリー: Linux| 公開: 2008/12/20 | コメント(0)

tmpfsは仮想メモリに全ファイルを保持するファイルシステム。頻繁にアクセスするファイルをtmpfsに置けば、読み書きが速くなり、HDDの負荷を減らすこともできる。

HotSaNICは取得したデータを保存するために、rrdファイルを頻繁に更新する。そこでrrdファイルをtmpfsに保存して、HDDへのアクセスを減らすようにする。

tmpfsのマウント

/tmpにマウントする。サイズは512MBを上限とする。

# mount tmpfs /tmp -t tmpfs -o size=512m

fstabに追加して起動時にマウントするようにする。

# vi /etc/fstab

tmpfs         /tmp      tmpfs   defaults,size=512m 0 0

HotSaNICの設定

HotSaNICが生成するrrdファイルは各modulesディレクトリのrrdディレクトリに保存される。rrdディレクトリをtmpfsへのシンボリックリンクとして、シャットダウン時にrrd_bakへコピー、起動時にrrdディレクトリへコピーするようにする。

rrdディレクトリをrrd_bakにリネーム。

# cd /usr/local/HotSaNIC
# for mods in ./modules/* ; do mv $mods/rrd $mods/rrd_bak ; done

rrdファイルをコピーするスクリプトを作成する。

# vi copyrrd.sh

#!/bin/bash

RRDDIR=/tmp/HotSaNIC

cd "/usr/local/HotSaNIC"

. ./settings

case $1 in
  start)
    for mods in $RUN
    do
      if [ ! -d $RRDDIR/$mods ]; then
        mkdir -p $RRDDIR/$mods
      fi
      if [ ! -e ./modules/$mods/rrd ]; then
        ln -s $RRDDIR/$mods ./modules/$mods/rrd
      fi
      cp -f ./modules/$mods/rrd_bak/*.rrd ./modules/$mods/rrd/
    done
  ;;
  stop)
    for mods in $RUN
    do
      if [ ! -d ./modules/$mods/rrd_bak ]; then
        mkdir ./modules/$mods/rrd_bak
      fi
      cp -f ./modules/$mods/rrd/*.rrd ./modules/$mods/rrd_bak/
    done
  ;;
  restart)
    $0 stop
    $0 start
  ;;
esac

rrdgraphを修正してcopyrrd.shを実行するようにする。

# vi rrdgraph

case $1 in
  start)
    ./copyrrd.sh start
    echo "Starting rrdtimer..."
    ./rrdtimer.pl Dp
    ;;
  stop)
    echo "Stopping rrdtimer..."
    if [ -e "$PIDFILE" ]; then
      PID=`cat "$PIDFILE"`
      for nn in $PID ; do kill $nn; done
    else
      echo "pid-file not found, rrdtimer not running?!"
      fi
    ./clearall CLEAR_COUNTERS
    ./copyrrd.sh stop
    ;;

rrdgraphはそのままinitスクリプトとして使えるが、setup.plを実行すると書き換えられるので、別名でコピーして/etc/init.dにシンボリックリンクを作成。

# cp rrdgraph rrdgraph.init
# ln -s /usr/local/HotSaNIC/rrdgraph.init /etc/init.d/
# update-rc.d rrdgraph.init defaults

トラックバックURL

コメント送信

メールアドレスが公開されたり他で使用されたりすることはありません。