INSANEWORKS,LLC
Hostname: ec2-54-196-87-74.compute-1.amazonaws.com
IP Addr: 54.196.87.74
2411月/100

GlusterFSでクラスタFSを作る

Kotaです。

Linuxクラスタ上のファイルシステムはGFS/ocfs/Cephやら色々出てて正直どれを使っていいか、、と、ざっくり調べた所かいつまむとこんな感じのようです。

  • GFSはFC-SAN有りの大規模向け
  • OCFSは歴史ありだがKernelにMergeされていない
  • Cephははじまったばっか
  • pNFSはNFSベースだけど実績不明

みたいなところです。

で、先日ひょんなとこからGlusterFSを知りました。

GlusterFSはBlockDeviceではなく、UserLandで動作するFSベースの分散ファイルシステムです。

自動復帰、ミラーリング/ストライピング

結論から言うとファイルの配布やら一時ファイル、セッション共有などであれば十分と判断します。

というわけでおそらく世界一簡単(手抜き)なGlusterFSのセットアップ方法を載せておきます。

なにはともあれDownloadしてきます。

epelにもrpmがありますが2.x系なので古く、glusterfs-volgenがうまく動いてくれません。

Glusterfs本家から素直に落としましょう。DownloadのURLはオフィシャルでemailを入力しないと出てきません。('A`)マンドクセ

蛇足ですが本家にはアプライアンスとしての起動イメージもあります。

GUIもあるし本格利用するならそっちのほうがいいかも。

インストールする前に動作概要

Server/Clientは同一でもOKです。

一言で言うとServerがDiscでClientがControllerなイメージです。

(Server同士は通信しません)

ではインストール

# yum install libibverbs fuse
# wget glusterfs-core-3.1.0-1.x86_64.rpm
# wget glusterfs-fuse-3.1.0-1.x86_64.rpm
# wget glusterfs-rdma-3.1.0-1.x86_64.rpm
# rpm -ivh *.rpm

エクスポートするディレクトリを作成

# mkdir /export

設定ファイルを以下で自動生成できます

# glusterfs-volgen --name test --raid 1 host1:/export host2:/export

host1用の設定ファイルを配置

# cp host1-test-export.vol /etc/glusterfs/glusterd.vol
# cp test-tcp.vol /etc/glusterfs/glusterfs.vol

host2にscpして、、

# scp *.vol host2:

host2でも同じように配置します。

# cp host2-test-export.vol /etc/glusterfs/glusterd.vol
# cp test-tcp.vol /etc/glusterfs/glusterfs.vol

host1、host2ともにデフォ起動に追加して起動させます。

# chkconfig glusterd on
# service glusterd start

fstabに修正を行い、マウントします

# echo "/etc/glusterfs/glusterfs.vol  /mnt/glusterfs  glusterfs  defaults  0  0" >> /etc/fstab
# mount -a

dfしてみてください。ちゃんと見えて、読み書きが可能なはずです。

性能評価、排他処理、実績、懸念点などはもっと詳しくかかれてる方がいらっしゃるのでそちらをどぞ。

GlusterFSを使ってみる

分散ファイルシステムGlusterFS

分散ファイルシステムを調べたい

Posted by Kota

INSANEWORKSの代表&ネットワーク/サーバーエンジニアをさせて頂いております。 よろしくお願いします。