GlusterFSをインストール

とあるシステムを構築中にNFSサーバーで設定ファイルを共有する必要がありました。
NFSサーバーがシングルポイントになるのでLinux-HAをと思ってたのですが、GlusterFSで簡単に出来そうだったので構築してみました。

GlusterFSとは

f:id:kashigeru:20150212222708j:plain

オープンソース分散ファイルシステムの一つです。
詳しくは下記を。
Write once, read everywhere — Gluster

構成

今回はサーバー2台(gfs001,gfs002)でReplicated Volume(ミラーリング)構成にします。

f:id:kashigeru:20150213123349j:plain

Volumeの作成

まずVolumeを作成しておきます。
今回は/dev/sdaをパーティションで区切り/dev/sda4をVolumeに設定します。

作成したパーティションをxfsでフォーマットします。

# mkfs.xfs -i size=512 /dev/sda4

マウントディレクトリ作成

# mkdir /data/

マウント

# mount /dev/sda4 /data/

/etc/fstabにも忘れずに記載しておきます。

/data/配下にVolumeディレクトリを作成

# mkdir /data/test_data

GlusterFSインストール

レポジトリ登録

$ cd /etc/yum.repos.d
$ sudo wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo

バージョンの確認

$ sudo yum list | grep gluster
glusterfs-api.x86_64                     3.4.0.36rhs-1.el6           @CentOS/6.5
glusterfs-libs.x86_64                    3.4.0.36rhs-1.el6           @CentOS/6.5
glusterfs.x86_64                         3.6.2-1.el6                 glusterfs-epel
glusterfs-api.x86_64                     3.6.2-1.el6                 glusterfs-epel
glusterfs-api-devel.x86_64               3.6.2-1.el6                 glusterfs-epel
glusterfs-cli.x86_64                     3.6.2-1.el6                 glusterfs-epel
glusterfs-debuginfo.x86_64               3.6.2-1.el6                 glusterfs-epel
glusterfs-devel.x86_64                   3.6.2-1.el6                 glusterfs-epel
glusterfs-extra-xlators.x86_64           3.6.2-1.el6                 glusterfs-epel
glusterfs-fuse.x86_64                    3.6.2-1.el6                 glusterfs-epel
glusterfs-geo-replication.x86_64         3.6.2-1.el6                 glusterfs-epel
glusterfs-libs.x86_64                    3.6.2-1.el6                 glusterfs-epel
glusterfs-rdma.x86_64                    3.6.2-1.el6                 glusterfs-epel
glusterfs-resource-agents.noarch         3.6.2-1.el6                 glusterfs-noarch-epel
glusterfs-server.x86_64                  3.6.2-1.el6                 glusterfs-epel
samba-glusterfs.x86_64                   3.6.23-12.el6               base

インストール

$ sudo yum install glusterfs glusterfs-fuse glusterfs-rdma glusterfs-server

自動起動を設定

$ sudo chkconfig glusterd on

プロセス起動

$ sudo /etc/init.d/glusterd start

GlusterFS設定

1台だけで設定します。
まずPeerを設定します。

$ sudo gluster peer probe gfs002
peer probe: success.

successが表示されればOKです。
NGの場合は名前解決出来るかとかiptables等を確認します。

Peerの状態確認

$ sudo gluster peer status
Number of Peers: 1

Hostname: gfs002
Uuid: bf6e53c5-e539-4ffa-a274-03931fd20aa3
State: Peer in Cluster (Connected)

次にVolumeを設定していきます。 Volumeの作成

$ sudo gluster volume create vol1 replica 2 gfs001:/data/test_data gfs002:/data/test_data
volume create: vol1: success: please start the volume to access data

今回は2台でReplicaの設定です。

作成が完了したらVolumeをstartします。

$ sudo gluster volume start vol1
volume start: vol1: success

設定確認

$ sudo gluster volume info all

Volume Name: vol1
Type: Replicate
Volume ID: a7b5f833-8022-43c1-9284-e0423e5cd257
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gfs001:/data/test_data
Brick2: gfs002:/data/test_data
Options Reconfigured:

$ sudo gluster volume status
Status of volume: vol1
Gluster process                                         Port    Online  Pid
------------------------------------------------------------------------------
Brick gfs001:/data/test_data              49152   Y       1636
Brick gfs002:/data/test_data                      49152   Y       1945
NFS Server on localhost                                 2049    Y       1643
Self-heal Daemon on localhost                           N/A     Y       1648
NFS Server on gfs001                        2049    Y       1959
Self-heal Daemon on gfs001                   N/A     Y       1967

Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks

以上、GlusterFSのインストールでした。
次回はクライアントからVolumeをマウントして試験してみます。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)