====== GlusterFS ======
===== 概要 =====
複数サーバの任意のディレクトリをまとめて一つのボリュームとして利用できる技術。
ボリュームの構成は、以下があり、組み合わせて使うことも可能。
* ディストリビュート\\ 構成するブリックのどれかにファイルを保存する
* ストライピング\\ 1つのファイルをストライプサイズに分割して、複数のブリックに分散保存する
* レプリケーション\\ 2つのブリックでミラーリングして、ファイルを保存する
===== 用語 =====
* ノード\\ ブリックを提供する個々のサーバ
* クラスタ\\ ノードの集まり
* ブリック\\ 個々のサーバの任意のディレクトリ
* ボリューム\\ ブリックをまとめたもの
===== インストール =====
==== リポジトリ追加 =====
> wget "http://download.gluster.org/pub/gluster/glusterfs/3.4/LATEST/CentOS/glusterfs-epel.repo" -P "/etc/yum.repos.d/"
==== インストール ====
> yum -y install glusterfs-server glusterfs-geo-replication
==== 自動起動設定 ====
> chkconfig glusterd on
==== 起動 ====
> /etc/init.d/glusterd start
==== バージョン表示(兼、起動確認) ====
> glusterfsd --version
glusterfs 3.4.2 built on Jan 3 2014 12:38:05
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.
==== 初期設定 ====
以下、前提条件とする。
* ノード : adm01、adm02
* ブリック : /mnt/addVol/gfs01/
* ボリューム : vol01
==== 各ノードをpeer登録して、クラスタを構成 ====
adm01> gluster peer probe adm02
peer probe: success
==== クラスタ構成を確認する ====
adm01> gluster peer status
Number of Peers: 1
Hostname: adm02
Port: 24007
Uuid: 8ad46d2c-f139-433e-99dd-3b9e736a4ba8
State: Peer in Cluster (Connected)
===== Replica Volume作成 =====
==== ブリック用ディレクトリ作成(対象サーバ全て) ====
> mkdir -p /mnt/addVol/gfs01/
==== ボリュームの作成 ====
adm01> gluster volume create vol01 replica 2 transport tcp adm01:/mnt/addVol/gfs01/ adm02:/mnt/addVol/gfs01/
volume create: vol01: success: please start the volume to access data
==== ボリュームの動作開始 ====
adm01> gluster volume start vol01
volume start: vol01: success
==== ボリュームの構成情報を確認 ====
adm01> gluster volume info
Volume Name: vol01
Type: Replicate
Volume ID: e96a518e-84fa-4b9f-a50f-8e9793a52532
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: mc-adm01:/mnt/addVol/gfs01
Brick2: mc-adm02:/mnt/addVol/gfs01
==== ボリュームの起動状況を確認 ====
adm01> gluster vol status
Status of volume: vol01
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick adm01:/mnt/addVol/gfs01 49153 Y 30967
Brick adm02:/mnt/addVol/gfs01 49153 Y 2682
NFS Server on localhost 2049 Y 30979
Self-heal Daemon on localhost N/A Y 30983
NFS Server on adm02 2049 Y 2694
Self-heal Daemon on adm02 N/A Y 2698
There are no active volume tasks
===== マウント =====
* Glustefs Native Client\\ マウント時の記述は特定のサーバしか指定しないが、クラスタ内のサーバに直接アクセスできる
* NFS\\ マウント時に記述した特定のサーバがプロキシのような役目をするので、必ずそのサーバを経由して他のサーバにアクセスする
* CIFS\\
==== Glustefs Native Client ====
GlusterFSをインストールしていない環境ではFUSEが必要なので、インストールする
> wget "http://download.gluster.org/pub/gluster/glusterfs/3.4/LATEST/CentOS/glusterfs-epel.repo" -P "/etc/yum.repos.d/"
> yum install glusterfs-fuse
マウントポイントを作成してマウント
> mkdir -p /mnt/addVol/vol01
> mount -t glusterfs mc-adm01:/vol01 /mnt/addVol/vol01
fstabへ記述する場合、_netdevの記述を忘れないように。
gluster01:/vol01 /mnt/nfs/vol01 glusterfs defaults,_netdev 0 0
_netdevの記述を有効にするためには、netfsサービスが起動している必要がある。
> chkconfig netfs on
> /etc/init.d/netfs start
==== NFS ====
マウントポイントを作成してマウント。マウントバージョンは3を指定しないといけない。
> mkdir -p /mnt/nfs/vol01
> mount -t nfs -o mountvers=3 gluster01:/vol01 /mnt/nfs/vol01
===== ノードの追加・削除 =====
==== ノードの追加 ====
peerにノード登録
> gluster peer probe node01
ボリュームにブリック追加
> gluster volume add-brick vol01 replica 3 node01:/mnt/addVol/gfs01/ force
===== ノードの削除 ====
ボリュームからブリックを外す
> gluster volume remove-brick vol01 replica 2 node01:/mnt/addVol/gfs01/
peerからノードを外す
> gluster peer detach node01