glusterfsのインストール

glusterfsのインストール覚書です。

事前作業

  • レポジトリの追加

glusterfsのレポジトリを追加します。

# curl -Ls http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo > /etc/yum.repos.d/glusterfs-epel.repo
  • パッケージのインストール

yumコマンドで各種パッケージをインストール

# yum -y install glusterfs-server \
                 glusterfs-libs \
                 glusterfs-api \
                 glusterfs-extra-xlators \
                 glusterfs-fuse \
                 glusterfs-geo-replication \
                 glusterfs-rdma \
                 glusterfs-resource-agents \
                 glusterfs-cli \
                 xfsprogs
  • パーティション作成

glusterfsのbrickを作成するための領域をOS領域とは別にパーティションを作ります。

# fdisk /dev/sda
コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 4
最初 シリンダ (1-652, 初期値 1):
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-652, 初期値 652):
初期値 652 を使います

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
  • xfsでフォーマット
# mkfs.xfs -f -i size=512 /dev/sda3
meta-data=/dev/sda3              isize=512    agcount=4, agsize=622878 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2491510, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
  • マウント先ディレクトリの作成
# mkdir -p /gfs/brick01
  • fstab への記載 起動時に自動マウントされるようにfstabにマウント設定を記載します。
# cat << EOF >> /etc/fstab
/dev/sda3       /gfs/brick01        xfs defaults    0 0
EOF

GlusterFSの設定

  • サービスの起動
# service glusterd start
  • Peerの設定
# gluster peer probe vm02
peer probe: success.
  • GlusterFSボリュームの作成
# gluster vol create vol01 \
          replica 2 \
          vm01:/gfs/brick01/vol01 \
          vm02:/gfs/brick01/vol01
volume create: vol01: success: please start the volume to access data
  • volumeの開始
# gluster vol start vol01
volume start: vol01: success

チューニング

  • GlusterFSチューニング
# gluster vol set vol01 performance.cache-size 8GB
# gluster vol set vol01 performance.cache-max-file-size 100MB
# gluster vol set vol01 performance.cache-min-file-size 1KB
# gluster vol set vol01 performance.cache-refresh-timeout 1
# gluster vol set vol01 performance.io-thread-count 32
# gluster vol set vol01 performance.flush-behind On
# gluster vol set vol01 performance.write-behind-window-size 5MB
# gluster vol set vol01 network.frame-timeout 1800
# gluster vol set vol01 network.ping-timeout 30
  • Kernelチューニング
# vi /etc/rc.local
sysctl -w vm.swappiness=10;
sysctl -w vm.dirty_background_ratio=1;
sysctl -w kernel.sched_wakeup_granularity_ns=15
for i in $(ls -d /sys/block/*/queue/iosched 2>/dev/null); do
    iosched_dir=$(echo $i | awk '/iosched/ {print $1}')
    [ -z $iosched_dir ] && {
    continue
    }
    path=$(dirname $iosched_dir)
    [ -f $path/scheduler ] && {
    echo "deadline" > $path/scheduler
    }
    [ -f $path/nr_requests ] && {
    echo "256" > $path/nr_requests
    }
done

各種確認

確認関係

  • peerの確認
gluster peer status
  • ボリュームのステータス確認
gluster vol status vol01 
  • ボリュームの設定確認
gluster vol info vol01
  • リバランスの確認
gluster vol rebalance vol01 status

brick操作関係

  • brickの追加
gluster vol add-brick vol01 \
replica 2 \
vm03:/gfs/brick02/vol01 \
vm04:/gfs/brick02/vol01
  • リバランス
    これを実行しないとbrick追加しても新規配置されないっぽい。
gluster vol rebalance vol01 start



Comments

comments powered by Disqus