メモ: AWSのAmazon Linux上でGlusterFSをソースコードからビルドする

GlusterFS(http://www.gluster.org/)は、複数サーバの複数ディレクトリを指定して、1つの大きなボリュームとして扱えるOSSファイルシステムツールです。実装はCです。少し前にRedHatさんが買収して、高機能版をRedHat Storageとして販売もしています。ただし、今回使ったのは、無償のコミュニティエディションです。


環境

参考資料

手順

コードを入手して、tarを解凍し、できたディレクトリに移動します。

$ cd ~
$ mkdir build
$ cd build
$ wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/glusterfs-3.3.0.tar.gz
$ tar zxzvf glusterfs-3.3.0.tar.gz 
$ cd glusterfs-3.3.0

ドキュメントによると、次のパッケージが必要です。

ひとまず、何もない状態からconfigureを叩いていって、怒られるたびに足りないパッケージをインストールしました。

configureが通るまでに必要だったものは、次のとおりです。

$ sudo yum install gcc flex bison openssl-devel

configureを実行すると、次のような結果になります。

$ sudo ./configure
...(略)...
GlusterFS configure summary
===========================
FUSE client        : yes
Infiniband verbs   : no
epoll IO multiplex : yes
argp-standalone    : no
fusermount         : no
readline           : no
georeplication     : yes

makeすると、上で「yes」のものがビルドされます。

ドキュメントにしたがって、足りないものも入れました。

$ sudo yum install portmap fuse libtool

# libtoolを入れれば、autoconf とautomakeが自動的にインストールされます。

最初にconfigureが通った時点と、この時点とで、ビルド対象は同じままです。configureの結果は、上に挙げた状態のままで、「yes」のものは増えません。「no」のものは、その環境に必要がないからビルドされないのだと思います。

argp-standalone、readline、fusermountは、すでにAmazon Linuxに入っていました。Infiniband verbsは、GlusterFSのハードウェア要件を見るとInfinibandがサポートされるのに対して、EC2インスタンスが対応していないので、ビルドされないのでしょう。

The following are the supported networks:

というわけで、ビルド。…と思ったら、makeがないと怒られたので、入れました。

$ sudo yum install make

あらためて。

$ sudo make
$ sudo make install

すんなりビルドできて素晴らしい。

コマンドを叩いて、GlusterFSのバージョンを確認できれば、インストール完了です。

$ glusterfs --version

設定の話は、また今度書きます。(たぶん)