読者です 読者をやめる 読者になる 読者になる

Mana Blog Next

ガジェット好きIT系母ちゃんが二人の子どもを育てながらIoTに挑戦するブログ。

スポンサーリンク

AmazonEC2でGlusterFSを動かすための手順 (導入編)

昨年、Linux女子部の勉強会で学んだGlusterFSを試してみました。
分散ストレージGlusterFS。手軽に始めてみたいけど、2ノード以上用意しないといけないので、敷居が高く感じちゃいますよね。
そこで、AWS。これだったらスラッと作れちゃいます。検証してみたい方は、ぜひお試しあれ。

以下の記事を参考にしています。また、個人のブログで発信している情報となるため、実施については自己責任でお願いします。

構成

今回はVPC内で作ってみました。(EC2でもOK)

  • GlusterFS サーバー:Amazon Linux 4台(4ノード)
  • GlusterFS クライアント:RHEL 6.4
  • ノードのブリックはEBSをアタッチ

手順

/etc/hostsで各サーバの名前解決ができるようにする
192.168.20.11    gluster1
192.168.20.12 gluster2
192.168.20.13 gluster3
192.168.20.14 gluster4
使用するセキュリティグループで以下の必要なポートを許可
22,111,24007〜(24008 + 使用する最大ブリック数), 38465〜38468

以下4ノード同じ作業

  • 同一アベイラビリティーゾーンにGlusterFSサーバー用のAmazon Linux (64bit/t1.micro)を起動(4ノード分)
  • 同一アベイラビリティーゾーンにEBSボリュームを4ブリック分作成(/dev/sdf)
  • 作成したEBSボリュームをGlusterFSサーバーにアタッチ
  • XFSでフォーマット、iノードは 512バイトに指定
XFSファイルシステムを使用するため、xfsprogsをインストール。そしてXFSでフォーマットする(iノードは 512バイト指定)。
# yum install xfsprogs -y
# mkfs.xfs -i size=512 /dev/sdf
EBSボリュームを/dataにマウント
# mkdir /data
# mount /dev/sdf /data
オートマウント設定
最後の行に追記します。
# vi /etc/fstab
/dev/sdf /data xfs defaults 0 0
/data のマウント確認
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 1.1G 6.8G 13% /
tmpfs 298M 0 298M 0% /dev/shm
/dev/xvdf 1.0T 33M 1.0T 1% /data
ノードに /data がマウントされていることを確認します。今回はEBSボリュームを1TB用意して検証していますが、そこは各自調整してください~
GlusterFSをインストール
# yum --enablerepo=epel install glusterfs-server glusterfs-geo-replication -y
# chkconfig glusterd on
# service glusterd start

※補足

EPELが用意されていますが、Amazon Elastic Compute Cloud ユーザーガイド (API Version 2012-08-15)の以下の注意事項の通り、サードパーティー製のパッケージはAWSではサポートされていません。

Extra Packages for Enterprise Linux(EPEL)リポジトリへのアクセスが設定されますが、デフォルトでは有効になりません。EPEL は、Amazon Linux AMI リポジトリのパッケージのほか、サードパーティ製のパッケージを提供します。サードパーティ製パッケージは Amazon Web Services ではサポートされていません。

ということで商用目的での利用は、RedHat Storageの選択になるかと思われます。

以下、gluster1のみで作業

クラスタ構成のためpeerを設定し、peerの状態を表示する
# gluster peer probe gluster2
# gluster peer probe gluster3
# gluster peer probe gluster4
# gluster peer status
Number of Peers: 3

Hostname: gluster3
Uuid: 1542ed84-127e-4725-a616-15231b964668
State: Peer in Cluster (Connected)

Hostname: gluster4
Uuid: ecd7b933-314a-4460-af25-2861b70e143a
State: Peer in Cluster (Connected)

Hostname: gluster2
Uuid: 3842e961-2513-4746-915c-fa1042548bec
State: Peer in Cluster (Connected)
ボリューム「vol01」を作成し、起動する
# gluster vol create vol01 \
gluster1:/data/brick01 \
gluster2:/data/brick01 \
gluster3:/data/brick01 \
gluster4:/data/brick01
Creation of volume vol01 has been successful.
Please start the volume to access data.
# gluster vol start vol01
Starting volume vol01 has been successful
ボリューム「vol01」の構成情報を確認
# gluster vol info

Volume Name: vol01
Type: Distribute
Volume ID: d3f8f937-e4b5-474f-a5dc-935c09b1d0d3
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: gluster1:/data/brick01
Brick2: gluster2:/data/brick01
Brick3: gluster3:/data/brick01
Brick4: gluster4:/data/brick01
ボリュームのステータスを確認
# gluster vol status
Status of volume: vol01
Gluster process Port Online Pid
--------------------------------------------------------------------------
Brick gluster1:/data/brick01 24009 Y 1374
Brick gluster2:/data/brick01 24009 Y 23591
Brick gluster3:/data/brick01 24009 Y 23423
Brick gluster4:/data/brick01 24009 Y 23469
NFS Server on localhost 38467 Y 1380
NFS Server on gluster3 38467 Y 23429
NFS Server on gluster2 38467 Y 23597
NFS Server on gluster4 38467 Y 23475

ボリューム「vol01」のできあがり。

クライアントの設定

ボリュームにアクセスするためのクライアントを作ります。

  • GlusterFSクライアントとして、EC2インスタンスのRHEL6.4を起動(t1.micro/64bit)
/etc/hostsで各サーバの名前解決ができるようにする
192.168.20.1    client1
192.168.20.11 gluster1
192.168.20.12 gluster2
192.168.20.13 gluster3
192.168.20.14 gluster4
クライアント用のパッケージをインストール
# yum install -y http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/RHEL/epel-6/x86_64/glusterfs-3.3.1-1.el6.x86_64.rpm \ http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/RHEL/epel-6/x86_64/glusterfs-fuse-3.3.1-1.el6.x86_64.rpm
GlusterFSのボリュームをマウント
# mkdir /mnt/vol01
# mount -t glusterfs gluster1:/vol01 /mnt/vol01
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde1 6.9G 2.1G 4.8G 31% /
none 296M 0 296M 0% /dev/shm
gluster1:/vol01 4.0T 130M 4.0T 1% /mnt/vol01
glusterfsのボリュームが4ノード分(1TBx4ブリック)の合計で4TBになっていることが確認できます。

GlusterFSボリュームのオートマウント設定ですが、以下のように指定するとよかですばい。

# chkconfig  --add netfs
# chkconfig netfs on

netfsをchkconfigの対象に入れ、/etc/fstab に以下を追記します。

# vi /etc/fstab
glusterfs1:/vol01 /mnt/vol01 glusterfs defaults,_netdev 0 0

GlusterFS 導入編おしまい!後半へ続く・・・(いつか書きます)

© Manami Taira