26
1/26 20 CloudStack ユーザ会 CloudStack 4.4 GlusterFS 環境を構築してみた 電気通信大学 大学院情報システム学研究科 中島 拓真 @penguin2716

CloudStack4.4でGlusterFS環境を構築してみた

Embed Size (px)

DESCRIPTION

新規にクラウドを作ることになったが NASが無いことに気付いた俺たちは 今まで触ったことのない GlusterFSを使うことになってしまった!! GlusterFSを設定したノードに そのままエージェントをインストールして ライブマイグレーションができました

Citation preview

Page 1: CloudStack4.4でGlusterFS環境を構築してみた

1/26第 20回 CloudStackユーザ会

CloudStack 4.4でGlusterFS環境を構築してみた

電気通信大学大学院情報システム学研究科

中島 拓真@penguin2716

Page 2: CloudStack4.4でGlusterFS環境を構築してみた

2/26第 20回 CloudStackユーザ会

自己紹介

■所属:電気通信大学   情報システム学研究科(M2)

■研究:クラウド上の計算資源の効率利用■開発:mikutterプラグイン,

    CloudStack 3行スクリプト■ Twitter:ぺんぎんさん    @penguin2716

Page 3: CloudStack4.4でGlusterFS環境を構築してみた

3/26第 20回 CloudStackユーザ会

突然ですが,諸事情により研究室に新しいクラウドを作ることになりました(昨日のできごと)

Page 4: CloudStack4.4でGlusterFS環境を構築してみた

4/26第 20回 CloudStackユーザ会

構築するクラウドの構成

■管理サーバ– Intel Core i3-4150

– 8GB RAM

– 500GB HDD

■ VMホスト 4台– Intel Xeon X5675

– 12GB RAM

– 1TB HDD x 2

管理サーバVMホスト VMホスト

VMホスト VMホスト

VM VM VM VM

VM VM VM VM

Page 5: CloudStack4.4でGlusterFS環境を構築してみた

5/26第 20回 CloudStackユーザ会

構築するクラウドの構成

■管理サーバ– Intel Core i3-4150

– 8GB RAM

– 500GB HDD

■ VMホスト 4台– Intel Xeon X5675

– 12GB RAM

– 1TB HDD x 2

管理サーバVMホスト VMホスト

VMホスト VMホスト

VM VM VM VM

VM VM VM VM

Page 6: CloudStack4.4でGlusterFS環境を構築してみた

6/26第 20回 CloudStackユーザ会

…あっ (察し)

Page 7: CloudStack4.4でGlusterFS環境を構築してみた

7/26第 20回 CloudStackユーザ会

GlusterFSで作ろう

■ DHTによる分散ストレージ– ファイル名でハッシュ値を計算して分散– ストライピング,レプリケーションもできる

SR0

SR2

SR1

SR3

VM1 VM2

VM3 VM4

VM5 VM6

VM7 VM8

名前 ハッシュVM1 0

VM2 1

VM3 2

VM4 3

VM5 0

VM6 1

VM7 2

VM8 3

Page 8: CloudStack4.4でGlusterFS環境を構築してみた

8/26第 20回 CloudStackユーザ会

GlusterFSで作ろう

■ DHTによる分散ストレージ– ファイル名でハッシュ値を計算して分散– ストライピング,レプリケーションもできる

Node1

Node5

Node3

Node7

VM1 VM2

VM3 VM4

VM5 VM6

VM7 VM8

Node2

Node6

Node4

Node8

VM1 VM2

VM3 VM4

VM5 VM6

VM7 VM8

Page 9: CloudStack4.4でGlusterFS環境を構築してみた

9/26第 20回 CloudStackユーザ会

…かっこいい!

Page 10: CloudStack4.4でGlusterFS環境を構築してみた

10/26第 20回 CloudStackユーザ会

今回の構成

■ GlusterFSと KVMを同一ノードで動かす– ストレージはレプリカ 2で分散

KVM01 KVM02 KVM03 KVM04

VM1 VM2 VM3 VM4

VM1 VM2VM3 VM4VM1 VM2VM3 VM4

192.168.10.0/24 (eth0)

192.168.20.0/24 (eth1)

Page 11: CloudStack4.4でGlusterFS環境を構築してみた

11/26第 20回 CloudStackユーザ会

今回の構成

■ GlusterFSと KVMを同一ノードで動かす– ストレージはレプリカ 2で分散

KVM01 KVM02 KVM03 KVM04

VM1 VM2 VM3 VM4

VM1 VM2VM3 VM4VM1 VM2VM3 VM4

192.168.10.0/24 (eth0)

192.168.20.0/24 (eth1)

eth1側のネットワークはGlusterFSの同期や別ノードが保持する

ファイルアクセスに使用する

eth0側のネットワークは管理トラフィック,

パブリックトラフィック,その他のトラフィックを扱う

Page 12: CloudStack4.4でGlusterFS環境を構築してみた

12/26第 20回 CloudStackユーザ会

ネットワーク構成

■ /etc/hostsで参考

# eth0側192.168.10.1 csman.public.cloud.local csman192.168.10.1 kvm01.public.cloud.local kvm01192.168.10.2 kvm02.public.cloud.local kvm02192.168.10.3 kvm03.public.cloud.local kvm03192.168.10.4 kvm04.public.cloud.local kvm04192.168.10.254 gateway.public.cloud.local gateway

# eth1側192.168.20.1 kvm01.gluster.cloud.local192.168.20.2 kvm02.gluster.cloud.local192.168.20.3 kvm03.gluster.cloud.local192.168.20.4 kvm04.gluster.cloud.local

Page 13: CloudStack4.4でGlusterFS環境を構築してみた

13/26第 20回 CloudStackユーザ会

インストール手順

■管理サーバの構築(いつも通り)■コンピューティングノードのインストール

– CentOSのインストールeth0 => cloudbr0, eth1はそのまま設定

– GlusterFSのインストール– クラスタリングとボリューム作成– CloudStack Agentのインストール(いつも通り)

■ CloudStackの構成と設定(WebUI)– GlusterFS領域の追加(共有マウントポイント)

Page 14: CloudStack4.4でGlusterFS環境を構築してみた

14/26第 20回 CloudStackユーザ会

GlusterFSのインストール

■共有領域の作成– partedでパーティションを用意

→ ext4でフォーマットした– /etc/fstabへの登録

→ /glusterにマウントした– /gluster/fs の作成このディレクトリが GlusterFSのファイル格納領域

Page 15: CloudStack4.4でGlusterFS環境を構築してみた

15/26第 20回 CloudStackユーザ会

GlusterFSのインストール

■ glusterfs-epelと epelリポジトリの登録

■パッケージのインストール

# wget -P /etc/yum.repos.d \ http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo# wget \http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm# rpm -ivh epel-release-6-8.noarch.rpm

# yum install -y glusterfs-server fuse fuse-libs# service glusterd start# chkconfig glusterd on

Page 16: CloudStack4.4でGlusterFS環境を構築してみた

16/26第 20回 CloudStackユーザ会

GlusterFSのインストール

■ファイアウォールの設定( eth1同士を疎通)

■ピアの追加(ここでクラスタリングされる)

# iptables -I INPUT -i eth1 -j ACCEPT# iptables-save > /etc/sysconfig/iptables

# gluster peer probe kvm02.gluster.cloud.local# gluster peer probe kvm03.gluster.cloud.local# gluster peer probe kvm04.gluster.cloud.local

Page 17: CloudStack4.4でGlusterFS環境を構築してみた

17/26第 20回 CloudStackユーザ会

GlusterFSのインストール

■ピアの確認 [root@kvm01 ~]# gluster peer statusNumber of Peers: 3

Hostname: kvm02.gluster.cloud.localUuid: 7ef2b06a-c378-4314-89bc-d0965c45e1b2State: Peer in Cluster (Connected)

Hostname: kvm03.gluster.cloud.localUuid: be8d2e8f-b4ee-4958-9670-17d550a89d32State: Peer in Cluster (Connected)

Hostname: kvm04.gluster.cloud.localUuid: 56294de1-991a-4ce9-875d-6a9c51d14160State: Peer in Cluster (Connected)

Page 18: CloudStack4.4でGlusterFS環境を構築してみた

18/26第 20回 CloudStackユーザ会

GlusterFSのインストール

■ボリューム作成

■これでマウントできるようになる( fstab追記)– mount -t glusterfs

<self>.gluster.cloud.local:/glustervol /mnt/gluster

# gluster volume create glustervol replica 2 \ kvm01.gluster.cloud.local:/gluster/fs \ kvm02.gluster.cloud.local:/gluster/fs \ kvm03.gluster.cloud.local:/gluster/fs \ kvm04.gluster.cloud.local:/gluster/fs

# gluster vol start glustervol

レプリカ数 2, ノード数 4↓

ファイルは 01-02, 03-04でレプリケーションされる

Page 19: CloudStack4.4でGlusterFS環境を構築してみた

19/26第 20回 CloudStackユーザ会

あ, 4.4出てたの,,

Page 20: CloudStack4.4でGlusterFS環境を構築してみた

20/26第 20回 CloudStackユーザ会

あ, 4.4出てたの,,

Page 21: CloudStack4.4でGlusterFS環境を構築してみた

21/26第 20回 CloudStackユーザ会

プライマリストレージの追加

■ WebUIから共有マウントポイントとして追加– 全ノードでマウントしてあること

– ストレージ指定するためタグを付けること

Page 22: CloudStack4.4でGlusterFS環境を構築してみた

22/26第 20回 CloudStackユーザ会

オファリングの追加

■ストレージタグ(必要に応じてホストタグ)をつけること– あとは普段通り

Page 23: CloudStack4.4でGlusterFS環境を構築してみた

23/26第 20回 CloudStackユーザ会

ライブマイグレーション

■同一レプリケーション間でのテスト– 結果 :できた

KVM01 KVM02 KVM03 KVM04

VM1

VM1 VM2VM3 VM4VM1 VM2VM3 VM4

192.168.10.0/24 (eth0)

192.168.20.0/24 (eth1)

Page 24: CloudStack4.4でGlusterFS環境を構築してみた

24/26第 20回 CloudStackユーザ会

ライブマイグレーション

■異なるレプリケーション間– 結果 :できた

KVM01 KVM02 KVM03 KVM04

VM1

VM1 VM2VM3 VM4VM1 VM2VM3 VM4

192.168.10.0/24 (eth0)

192.168.20.0/24 (eth1)

Page 25: CloudStack4.4でGlusterFS環境を構築してみた

25/26第 20回 CloudStackユーザ会

速度測定

■ …ランダム読み込みが遅いがそれ以外は普通– キャッシュあり– 4k block

– qd32

Page 26: CloudStack4.4でGlusterFS環境を構築してみた

26/26第 20回 CloudStackユーザ会

まとめ

■新規にクラウドを作ることになったが■ NASが無いことに気付いた俺たちは■今まで触ったことのない

GlusterFSを使うことになってしまった!!■ GlusterFSを設定したノードにそのままエージェントをインストールして

■ライブマイグレーションができました