Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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

  • Login to see the comments

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

  1. 1. 1/26第 20 回 CloudStack ユーザ会 CloudStack 4.4 で GlusterFS 環境を構築してみた 電気通信大学 大学院情報システム学研究科 中島 拓真 @penguin2716
  2. 2. 2/26第 20 回 CloudStack ユーザ会 自己紹介 ■ 所属:電気通信大学    情報システム学研究科( M2 ) ■ 研究:クラウド上の計算資源の効率利用 ■ 開発: mikutter プラグイン,     CloudStack 3 行スクリプト ■ Twitter :ぺんぎんさん      @penguin2716
  3. 3. 3/26第 20 回 CloudStack ユーザ会 突然ですが,諸事情により 研究室に新しいクラウドを 作ることになりました (昨日のできごと)
  4. 4. 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. 5. 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. 6. 6/26第 20 回 CloudStack ユーザ会 …あっ (察し)
  7. 7. 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. 8. 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. 9. 9/26第 20 回 CloudStack ユーザ会 … かっこいい!
  10. 10. 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. 11. 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. 12. 12/26第 20 回 CloudStack ユーザ会 ネットワーク構成 ■ /etc/hosts で参考 # eth0 側 192.168.10.1 csman.public.cloud.local csman 192.168.10.1 kvm01.public.cloud.local kvm01 192.168.10.2 kvm02.public.cloud.local kvm02 192.168.10.3 kvm03.public.cloud.local kvm03 192.168.10.4 kvm04.public.cloud.local kvm04 192.168.10.254 gateway.public.cloud.local gateway # eth1 側 192.168.20.1 kvm01.gluster.cloud.local 192.168.20.2 kvm02.gluster.cloud.local 192.168.20.3 kvm03.gluster.cloud.local 192.168.20.4 kvm04.gluster.cloud.local
  13. 13. 13/26第 20 回 CloudStack ユーザ会 インストール手順 ■ 管理サーバの構築(いつも通り) ■ コンピューティングノードのインストール – CentOS のインストール eth0 => cloudbr0, eth1 はそのまま設定 – GlusterFS のインストール – クラスタリングとボリューム作成 – CloudStack Agent のインストール(いつも通り) ■ CloudStack の構成と設定( WebUI ) – GlusterFS 領域の追加(共有マウントポイント)
  14. 14. 14/26第 20 回 CloudStack ユーザ会 GlusterFS のインストール ■ 共有領域の作成 – parted でパーティションを用意 → ext4 でフォーマットした – /etc/fstab への登録 → /gluster にマウントした – /gluster/fs の作成 このディレクトリが GlusterFS のファイル格納領域
  15. 15. 15/26第 20 回 CloudStack ユーザ会 GlusterFS のインストール ■ glusterfs-epel と epel リポジトリの登録 ■ パッケージのインストール # wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.rep o/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. 16. 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. 17. 17/26第 20 回 CloudStack ユーザ会 GlusterFS のインストール ■ ピアの確認 [root@kvm01 ~]# gluster peer status Number of Peers: 3 Hostname: kvm02.gluster.cloud.local Uuid: 7ef2b06a-c378-4314-89bc-d0965c45e1b2 State: Peer in Cluster (Connected) Hostname: kvm03.gluster.cloud.local Uuid: be8d2e8f-b4ee-4958-9670-17d550a89d32 State: Peer in Cluster (Connected) Hostname: kvm04.gluster.cloud.local Uuid: 56294de1-991a-4ce9-875d-6a9c51d14160 State: Peer in Cluster (Connected)
  18. 18. 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. 19. 19/26第 20 回 CloudStack ユーザ会 あ, 4.4 出てたの,,
  20. 20. 20/26第 20 回 CloudStack ユーザ会 あ, 4.4 出てたの,,
  21. 21. 21/26第 20 回 CloudStack ユーザ会 プライマリストレージの追加 ■ WebUI から共有マウントポイントとして追加 – 全ノードでマウント してあること – ストレージ指定するため タグを付けること
  22. 22. 22/26第 20 回 CloudStack ユーザ会 オファリングの追加 ■ ストレージタグ(必要に応じてホストタグ)を つけること – あとは普段通り
  23. 23. 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. 24. 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. 25. 25/26第 20 回 CloudStack ユーザ会 速度測定 ■ …ランダム読み込みが遅いがそれ以外は普通 – キャッシュあり – 4k block – qd32
  26. 26. 26/26第 20 回 CloudStack ユーザ会 まとめ ■ 新規にクラウドを作ることになったが ■ NAS が無いことに気付いた俺たちは ■ 今まで触ったことのない GlusterFS を使うことになってしまった!! ■ GlusterFS を設定したノードに そのままエージェントをインストールして ■ ライブマイグレーションができました

×