====== 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