Upload
takuma-nakajima
View
459
Download
6
Embed Size (px)
DESCRIPTION
新規にクラウドを作ることになったが NASが無いことに気付いた俺たちは 今まで触ったことのない GlusterFSを使うことになってしまった!! GlusterFSを設定したノードに そのままエージェントをインストールして ライブマイグレーションができました
Citation preview
1/26第 20回 CloudStackユーザ会
CloudStack 4.4でGlusterFS環境を構築してみた
電気通信大学大学院情報システム学研究科
中島 拓真@penguin2716
2/26第 20回 CloudStackユーザ会
自己紹介
■所属:電気通信大学 情報システム学研究科(M2)
■研究:クラウド上の計算資源の効率利用■開発:mikutterプラグイン,
CloudStack 3行スクリプト■ Twitter:ぺんぎんさん @penguin2716
3/26第 20回 CloudStackユーザ会
突然ですが,諸事情により研究室に新しいクラウドを作ることになりました(昨日のできごと)
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
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
6/26第 20回 CloudStackユーザ会
…あっ (察し)
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
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
9/26第 20回 CloudStackユーザ会
…かっこいい!
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)
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側のネットワークは管理トラフィック,
パブリックトラフィック,その他のトラフィックを扱う
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
13/26第 20回 CloudStackユーザ会
インストール手順
■管理サーバの構築(いつも通り)■コンピューティングノードのインストール
– CentOSのインストールeth0 => cloudbr0, eth1はそのまま設定
– GlusterFSのインストール– クラスタリングとボリューム作成– CloudStack Agentのインストール(いつも通り)
■ CloudStackの構成と設定(WebUI)– GlusterFS領域の追加(共有マウントポイント)
14/26第 20回 CloudStackユーザ会
GlusterFSのインストール
■共有領域の作成– partedでパーティションを用意
→ ext4でフォーマットした– /etc/fstabへの登録
→ /glusterにマウントした– /gluster/fs の作成このディレクトリが 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
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
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)
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でレプリケーションされる
19/26第 20回 CloudStackユーザ会
あ, 4.4出てたの,,
20/26第 20回 CloudStackユーザ会
あ, 4.4出てたの,,
21/26第 20回 CloudStackユーザ会
プライマリストレージの追加
■ WebUIから共有マウントポイントとして追加– 全ノードでマウントしてあること
– ストレージ指定するためタグを付けること
22/26第 20回 CloudStackユーザ会
オファリングの追加
■ストレージタグ(必要に応じてホストタグ)をつけること– あとは普段通り
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)
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)
25/26第 20回 CloudStackユーザ会
速度測定
■ …ランダム読み込みが遅いがそれ以外は普通– キャッシュあり– 4k block
– qd32
26/26第 20回 CloudStackユーザ会
まとめ
■新規にクラウドを作ることになったが■ NASが無いことに気付いた俺たちは■今まで触ったことのない
GlusterFSを使うことになってしまった!!■ GlusterFSを設定したノードにそのままエージェントをインストールして
■ライブマイグレーションができました