GlusterFSのマウント時の冗長化

GlusterFSはマウントしているサーバに障害が発生した場合、自動的に他のサーバへ接続してくれる。

例えば下記マウント状態でgluster01がOSごと落ちても、読み書き可能な状態が継続される。

# df -h
Filesystem       Size  Used Avail Use% Mounted on
/dev/xvde1       99G   4.4G   90G   5% /
none             7.4G     0  7.4G   0% /dev/shm
gluster01:/vol01 4.0T  1.1G  4.0T   1% /mnt/gluster/vol01

しかし、マウント時に接続先サーバに障害が発生している場合はマウントができない。
fstabにGlusterFSをマウントするよう書いておくと、起動時に失敗してSSHできない状態になってしまう。
下記スクリプトを作成し/etc/rc.localに置いてマウントすることにした。

# cat /root/scripts/gluster-mount.sh

#!/bin/bash
#############################
# GlusterFS HA Mount Script #
#############################

mount_dir="/mnt/gluster/vol01"

echo "Starting gluster-mount.sh:"
for n in $(seq 1 4)
do
  echo "Checking gluster0${n}"
  fping "gluster0${n}"

  if [ ${?} == "0" ]; then
    mount_server="gluster0${n}"
    mount -t glusterfs ${mount_server}:/vol01 ${mount_dir}
    echo "Mounted gluster0${n}"
    exit 0
  fi
done

exit 1

# とりあえずpingが通れば良いということで…
# _netdevオプションのようなものでもっといい方法があるかも?
# デーモン化した方が便利かな

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中