Red Hat Storage Server 2.0 on Amazon EC2 導入ガイド

1,501 views
1,416 views

Published on

Red Hat Storage Server (OSSのGlusterFSをベースとして、Red Hatがリリースしているソフトウェア製品) の、Amazon EC2への導入ガイド。

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,501
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
17
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Red Hat Storage Server 2.0 on Amazon EC2 導入ガイド

  1. 1. Red Hat Storage Server 2.0Red Hat Storage Server 2.0 on Amazon EC2on Amazon EC2 導入ガイド導入ガイド レッドハット株式会社レッドハット株式会社 グローバルサービス本部 ソリューションアーキテクトグローバルサービス本部 ソリューションアーキテクト 小島 啓史小島 啓史 <hkojima@redhat.com><hkojima@redhat.com> ver. 1.2ver. 1.2 20132013 年年 77 月月
  2. 2. 2 Copyright Red Hat K.K. All rights reserved. はじめに ● 本資料は、 Red Hat Storage Server 2.0 (以降 RHS と記述)を Amazon Web Services (以降 AWS と記述)が提供するクラウドサービス Amazon EC2 上でご利用いただく方法をご紹介しています。※ 1 ● 本資料は、レッドハット株式会社が実施する、ハイブリッドクラウドスト レージ無料体験キャンペーンを、スムーズにご利用いただく目的で提供し ていました。※ 2 ● 本資料は、お客様が有効な AWS のアカウント及び RHS のサブスクリプ ションをお持ちであることを前提としています。 ● 本資料の個々の項目は、弊社の環境における正確性について検証されてい ますが、お客様の環境において同様の結果が得られる保証はありません。 ご了承願います。 ● AWS での RHS や RHEL の活用について、ご興味のある方はお問い合わせ下 さい。問い合わせ先は次ページにてご案内しています。 ※1. 本資料では 2013 年 7 月時点での情報をご紹介しています。 そのため、一部記載内容が最新のものと異なる場合があります。 ※2. 2014 年 4 月現在、当キャンペーンは終了しています。
  3. 3. 3 Copyright Red Hat K.K. All rights reserved. お客様からのお問い合わせ先 レッドハットの製品、サービスに関する  ご購入前の一般的なお問い合わせ < サービス時間 > 平日 9:30 〜 18:00 セールスオペレーションセンター (SOC) Tel. 0120-266-086 ( 携帯電話からは 03-5798-8510) e-mail: sales-jp@redhat.com
  4. 4. 4 Copyright Red Hat K.K. All rights reserved. 目次 ● Amazon EC2 で RHS の検証環境導入のための準備 ● SSH の鍵作成とファイアーウォールの設定 ● EC2 での RHS インスタンスの起動 ● RHS インスタンスへの更新の適用 ● RHS インスタンスのデータ領域構築 ● Amazon EC2 での RHS 検証ガイド ● レプリケーションボリュームの作成 ● レプリケーションボリュームの拡張 ● Geo-replication を利用した遠隔バックアップ ● フェイルオーバ時の挙動 ● Amazon EC2 での RHS のさらなる検証について
  5. 5. 5 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成とファイアーウォールの設定
  6. 6. 6 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● EC2 上に作成するインスタンス (EC2 上で起動する仮想マシン ) への接続は、 SSH の鍵認証の利用が必須となります。 ● ここでは、 SSH の鍵作成とインスタンスへの接続を許可するた めのファイアーウォールの設定方法をご紹介します。 Amazon EC2 の東京リージョン … インターネット Windows クライアント SSH 経由で操作 ファイアーウォールで 指定したポート番号を開放 インスタンス インスタンス インスタンス
  7. 7. 7 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● EC2 インスタンスへの鍵作成は、 AWS の管理コンソールで行い ます。 http://console.aws.amazon.com にアクセスします。 ● 「 EC2 」をクリックします。 ここをクリック
  8. 8. 8 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● リージョンを東京と指定します。リージョンとは、 AWS のサービ スを配置している各ネットワーク拠点のことを言います。 ● 右上のリージョン名をクリックして、「 Asia Pacific (Tokyo) 」 をクリックします。 ここをクリック ここをクリック
  9. 9. 9 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● EC2 ダッシュボードにアクセスできます。 SSH の鍵を作成する ために、「 Key Pairs 」をクリックします。 ここをクリック
  10. 10. 10 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● 「 Create Key Pair 」を作成します。デフォルトでは鍵が 1 つも作成されていない状態となります。 ここをクリック
  11. 11. 11 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● 作成する鍵の名前を入力して、「 Create 」をクリックし ます。鍵の名前は任意のもの ( ここでは、 rhs2u0- testkey-tokyo) を指定します。 ここをクリック
  12. 12. 12 Copyright Red Hat K.K. All rights reserved. SSH の鍵作成方法 ● 鍵を作成すると、自動で秘密鍵のダウンロードをするポップ アップが出てきます。保存先のディレクトリを適当に指定して 保存します。 ● なお、このタイミングでしか秘密鍵のダウンロードはできませ んので、ご注意下さい。
  13. 13. 13 Copyright Red Hat K.K. All rights reserved. ファイアーウォールの設定方法 ● EC2 のインスタンスへのアクセスは、デフォルトの設定だとイ ンスタンス同士の通信以外は全てブロックされていますので、 外部からのアクセスに必要なポート番号を開放します。 ● 「 Security Groups 」をクリックします。 ここをクリック
  14. 14. 14 Copyright Red Hat K.K. All rights reserved. ファイアーウォールの設定方法 ● TCP ポート番号を開放していきます。 Viewing が「 EC2 Security Groups 」となっていることを確認し、「 Inbound 」 をクリックします。 ● 「 Port range 」にポート番号を入力し、「 Add Rule 」をク リックします。 「 EC2 Security Groups 」と指定 「 Inbound 」を クリック 「 Port range 」に ポート番号を入力 ここをクリック
  15. 15. 15 Copyright Red Hat K.K. All rights reserved. ファイアーウォールの設定方法 ● 開放するポート番号の入力が一通り終了したら、「 Apply Rule Changes 」をクリックして変更を適用します。 ここをクリック 以下の TCP ポートを開放します。   22 (SSH), 111 (portmap), 24007-24050 (Native クライアント用 ), 38465-38468 (NFS)
  16. 16. 16 Copyright Red Hat K.K. All rights reserved. EC2 での RHS インスタンスの起動
  17. 17. 17 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● EC2 の東京リージョンで、 RHS インスタンスを 5 台起動しま す。このうち 1 台を RHS のクライアント、 4 台を RHS のサー バとし、それぞれ固定 IP アドレス (EIP) を割り当てます。 ● EC2 の各リージョンには複数のゾーンが存在します。ゾーンと はリージョンより小さい区画であり、リージョン毎に複数存在 します。今回は、東京リージョンの利用可能なゾーンのうち 1 つを指定して、 RHS インスタンスを起動します。 Amazon EC2 の東京リージョン 利用可能なゾーン (ap-northeast-1a)RHS クライアント RHS サーバー EIP EIP EIP EIP EIP
  18. 18. 18 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● EC2 Dashboard で、「 Launch Instance 」をクリックします。 ここをクリック
  19. 19. 19 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 「 Classic Wizard 」を選択して、「 Continue 」をクリックします。 ここを選択 ここをクリック
  20. 20. 20 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 「 My AMIs 」 -> 「 Private Images 」を選択すると、 AMI の リストが表示 (※) されます。ここでは「 RHEL-6.2-RHS-2.0- x86_64-8 」という名前の AMI を選択して、次に進みます。 ここをクリック 「 My AMIs 」 -> 「 Private Images 」を選択 ※ 「 Response contains invalid JSON 」というエラーメッセージが表示され、 AMI のリストが表示されない場合もあります。その時はリロードしてみて下さい。
  21. 21. 21 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 起動するインスタンスの数を「 5 」、 Instance Type を「 M1 Large 」、 Availability Zone を「 ap-northeast-1a 」と指定 して、次に進みます。 5 と入力 「 M1 Large 」を選択 「 ap-northeast-1a 」を選択 ここをクリック
  22. 22. 22 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● Advanced Instance Options は、デフォルトの設定を利用 しますので、変更を加えずに先に進みます。 ここをクリック
  23. 23. 23 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● Storage Device Configuration は、デフォルトの設定を利 用しますので、変更を加えずに先に進みます。 RHS の データ領域の構築は後の手順で行います。 ここをクリック
  24. 24. 24 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● RHS インスタンスにタグ (key,value のペア ) を付けることがで きますが、ここではタグを何も付けずに次に進みます。 ここをクリック
  25. 25. 25 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 起動する RHS インスタンスへの SSH ログイン時に利用する鍵 を指定できます。ここでは、前の手順で作成した「 rhs2u0- testkey-tokyo 」を選択し、次に進みます。 ここをクリック 「 rhs2u0-testkey-tokyo 」を選択
  26. 26. 26 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● インスタンスへのアクセスを許可するためのセキュリティグ ループは、「 default 」を選択し次に進みます。 ● セキュリティグループとは、インスタンスへのアクセスを許可 するためのファイアーウォールの設定群であり、この 「 default 」は前の手順で設定したファイアーウォールの設定 を含むセキュリティグループとなります。 ここをクリック 「 default 」を選択
  27. 27. 27 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 「 Launch 」をクリックして、 5 台の RHS インスタンスを起動 します。その後メッセージが表示されるので、「 Close 」をク リックします。 ここをクリック
  28. 28. 28 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 起動した RHS インスタンスのリストを確認できます。管 理性の向上のため、各インスタンスに名前を付けます。 ● インスタンスの Name の「 empty 」をクリックして、適 当な名前を入力して、「 Save 」をクリックします。 インスタンスの 名前を入力できます。
  29. 29. 29 Copyright Red Hat K.K. All rights reserved. RHS のインスタンスの起動手順 ● 5 台の RHS インスタンスの起動が完了しました。ただし、この ままでは RHS インスタンスを再起動すると IP アドレスが変 わってしまいますので、固定 IP アドレスを各インスタンスに割 り当てます。 ● 「 Elastic IPs 」をクリックします。 ここをクリック
  30. 30. 30 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 「 Allocate New Address 」をクリックします。 ここをクリック
  31. 31. 31 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● EIP が使われる場所で「 EC2 」を選択し、「 Yes, Allocate 」をクリックします。 ここをクリック 「 EC2 」を選択
  32. 32. 32 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● この作業を繰り返して、必要な個数の EIP を作成します。ここ では、 RHS インスタンス 5 台にそれぞれ EIP を割り当てますの で、 5 つの EIP を作成します。 5 つの EIP を作成
  33. 33. 33 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 作成した EIP を、各インスタンスに割り当てます。対象の EIP を 選択して、「 Associate Address 」をクリックし、割り当てるイ ンスタンスを選択して、「 Yes, Associate 」をクリックします。 ここをクリック ここをクリック インスタンスを選択
  34. 34. 34 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● 同様の作業を繰り返して、各インスタンスに EIP を割り当てます。な お、インスタンスを停止した場合は、再度 EIP の割り当てが必要にな りますので、ご注意下さい。 ● 「 Public DNS 」の所に外部からインスタンスへアクセスする時に利 用するホスト名の一覧が表示されます。以降、これらのホスト名をイ ンスタンスの管理に利用します。 5 つの EIP の 割り当て完了 これらのホスト名を インスタンスの管理に利用
  35. 35. 35 Copyright Red Hat K.K. All rights reserved. RHS インスタンスの起動手順 ● RHS インスタンスにログインする時に、前の手順で作成した SSH の秘密鍵を利用します。 Windows から RHS インスタンス へのログイン方法及びファイルの転送方法については、下記 URL をご参照下さい。 ● http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/User Guide/putty.html ● 各インスタンスにログインした後に、 glusterd サービスが正常 に起動しているかどうかを確認します。 [root@ip-10-132-143-88 ~]# service glusterd status glusterd (pid 897) is running... [root@ip-10-132-143-88 ~]#
  36. 36. 36 Copyright Red Hat K.K. All rights reserved. RHS インスタンスへの更新の適用
  37. 37. 37 Copyright Red Hat K.K. All rights reserved. RHS インスタンスへの更新の適用 ● EC2 上で起動する RHS インスタンスは、何も設定しなくても Red Hat から提供する更新を適用可能な状態になっています。 ● 起動した RHS インスタンスに SSH でログインして、更新を適 用し、インスタンスを再起動します。この作業を、起動した RHS インスタンスの台数分実行します。以下実行例です。 [root@ip-10-132-143-88 ~]# yum -y update; reboot
  38. 38. 38 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築
  39. 39. 39 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● RHS インスタンスのデータ領域は、各インスタンスに接続したブロッ クストレージ (EBS: Elastic Block Store) 上に作成します。 ● データ領域として利用する 1 個のディレクトリ毎に、 8 個の EBS の RAID0 構成が必要になります。 ● こうした構成を取ることで、インスタンスに何らかの障害が発生した 場合でも、 EBS とインスタンスは独立しているのでデータが保持さ れたままになります。 EBS EBS EBS EBSEBS EBS EBS EBS RHS サーバー ソフトウェア RAID0 Amazon EC2 の東京リージョン
  40. 40. 40 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● 各インスタンスへの EBS の接続は、 Amazon が提供している Amazon EC2 API Tools を利用します。このツールは、次の URL から ダウンロードできます。 ( 「 Download the Amazon EC2 API Tools 」をクリックして下さい。 ) ● http://aws.amazon.com/developertools/351 ● ec2-api-tools.zip がダウンロードできます。このファイルを解凍し て、 RHS クライアントに転送し、 /root/ に保存します。この開発 ツールに含まれるコマンドを RHS クライアントで使用出来るよう環 境変数を設定します。以下設定例です。 # cat /root/.bashrc ...( 略 )... # User specific aliases and functions export JAVA_HOME=/usr export EC2_HOME=/root/ec2-api-tools export PATH=$PATH:$EC2_HOME/bin export AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx export AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx export EC2_URL=https://ec2.ap-northeast-1.amazonaws.com ...( 略 )... # source /root/.bashrc
  41. 41. 41 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● RHS インスタンスのデータ領域として利用する EBS を作成します。 RHS クラ イアントで次のコマンドを実行して、 ap-northeast-1a というゾーン内 に、 1GB のサイズの EBS を 1 個作成します。 ● 作成した EBS をインスタンスに接続します。 RHS クライアントで次のコマン ドを実行して、 i-a8a03caa という ID を持つインスタンスに、 vol-014faf24 という ID を持つ EBS を接続します。なお、インスタンスが扱うデバイス名 を /dev/sdb と指定しています。 ● 同様の手順を繰り返して、 RHS サーバとして利用予定の各インスタンスに 8 個の EBS を接続します。この時適切なボリューム ID 、インスタンス ID 、デ バイス名 (/dev/sdc, /dev/sdd など ) を指定するようにして下さい。 # ec2-create-volume -s 1 -z ap-northeast-1a VOLUME vol-014faf24 1 ap-northeast-1a creating 2013-06-09T11:38:19+0000 standard # ec2-attach-volume vol-014faf24 -i i-a8a03caa -d /dev/sdb ATTACHMENT vol-014faf24 i-a8a03caa /dev/sdb attaching 2013-06-09T11:39:54+0000
  42. 42. 42 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● 前の手順で 8 個の EBS を接続した RHS インスタンス上で、ソフトウェ ア RAID0 を構築します。構築には mdadm を利用します。次のコマンド により、 mdadm パッケージがインストールされます。 ● RHS インスタンス上にソフトウェア RAID0 を構築します。次のコマン ドで、 /dev/md0 という名前の RAID デバイスが構築できます。なお、 前の手順で /dev/sdb, /dev/sdc, ... というデバイス名で接続した EBS は、インスタンスからは /dev/xvdb, /dev/xvdc, ... というデバイスファ イルとして扱われます。 ● 同様の手順を繰り返して、 RHS サーバとして利用予定の各インスタンス 上で /dev/md0 という名前の RAID デバイスを構築します。 # yum -y install mdadm # mdadm –create /dev/md0 –level=0 –raid-devices=8 /dev/xvd{b,c,d,e,f,g,h,i} mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. # mdadm –examine-scan > /etc/mdadm.conf # cat /etc/mdadm.conf ARRAY /dev/md/0 metadata=1.2 UUID=xxxxxxxxxxxxx name=ip-10-132-150-175:0
  43. 43. 43 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● 各インスタンスに接続した EBS に、管理性の向上のため、タグを付けて いきます。 RHS クライアントで次のコマンドを実行して、 vol- 014faf24 という ID を持つ EBS にタグを付けます。 ● 「 Device 」は、 EBS をインスタンスに接続する時に指定したデバイ ス名を指定します。 ● 「 Instance 」は、 EBS をインスタンスに接続する時に指定したイン スタンス ID を指定します。 ● 「 Array 」は、 /etc/mdadm.conf に保存した UUID を指定します。 ● 同様の手順を繰り返して、各 EBS にタグを付けていきます。 # ec2-create-tags vol-014faf24 --tag Domain=gluster --tag Device=/dev/sdb --tag Instance=i-a8a03ca --tag Array=xxxxxxxxxx TAG volume vol-014faf24 Domain gluster TAG volume vol-014faf24 Device /dev/sdb TAG volume vol-014faf24 Instance i-a8a03ca TAG volume vol-014faf24 Array xxxxxxxxxx
  44. 44. 44 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● EBS に付けたタグは、 EC2 のボリューム情報を表示するこ とで確認できます。 タグの Keyタグの Key タグの value
  45. 45. 45 Copyright Red Hat K.K. All rights reserved. RHS インスタンスのデータ領域構築 ● RHS インスタンス上に作成した RAID デバイス /dev/md0 を利用して、論 理ボリューム及び XFS を作成し、ディレクトリにマウントします。 ● RHS サーバとして利用するインスタンス上で、シェルスクリプト 「 xfs- on-lvm.sh 」を作成して実行します。 # cat <<EOF > xfs-on-lvm.sh > #!/bin/bash > > pvcreate /dev/md0 > vgchange glustervg /dev/md0 > vgchange -a y glustervg > lvcreate -a y -l 100%VG -n glusterlv glustervg > > mkfs.xfs -i size=512 /dev/glustervg/glusterlv > mkdir -p /exports/bricks > echo "/dev/glustervg/glusterlv /exports/bricks xfs defaults 0 2" >> /etc/fstab > mount /dev/glustervg/glusterlv > EOF # chmod u+x xfs-on-lvm.sh # ./xfs-on-lvm.sh
  46. 46. 46 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成
  47. 47. 47 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● RHS サーバとして利用するインスタンスを 2 台利用して、レプリ ケーションボリュームを作成します。 RHS で作成したボリューム は、クライアントから共有ファイルシステムとして利用できます。 ● 作成したレプリケーションボリュームをクライアントからマウント し、ファイルの作成を行います。 レプリケーション レプリケーションボリューム RHS クライアント RHS サーバー マウント Amazon EC2 の東京リージョン
  48. 48. 48 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成 ● ここで利用するインスタンスは、次の 3 台となります。 RHS クライアント として利用 RHS サーバ として利用 各インスタンスに 割り当てている EIP を利用
  49. 49. 49 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成 ● 「 tokyo-1a-node01 」、「 tokyo-1a-node02 」と名前を付け ているインスタンスにログインして、次のコマンドを実行し、 「 replbrick 」というディレクトリを作成します。 ● 「 tokyo-1a-node01 」上で、次のコマンドを実行し、「 tokyo- 1a-node01 」、「 tokyo-1a-node02 」の 2 台のサーバで Trusted Storage Pool(RHS サーバのクラスター ) を構成します。 # mkdir /exports/bricks/replbrick # gluster peer status No peers present # gluster peer probe ec2-54-250-127-139.ap-northeast-1.compute.amazonaws.com Probe successful # gluster peer status Number of Peers: 1 Hostname: ec2-54-250-127-139.ap-northeast-1.compute.amazonaws.com Port: 24007 Uuid: xxxxxxxxxxxxxx State: Peer in Cluster (Connected) 「 tokyo-1a-node02 」の EIP クラスターの Peer を確認できます。
  50. 50. 50 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成 ● 構成した Trusted Storage Pool を利用して、「 replvol 」という名前の レプリケーションボリュームを作成します。「 replica 2 」を指定し て、 2 重のレプリケーション構成とします。 ● 次のコマンドで、 replvol の情報 ( 名前、ボリュームのタイプ、状態、 ブリック ) を確認できます。ブリックとはボリュームを構成する単位で あり、サーバ名とディレクトリの絶対パスのペアで表示されます。 # gluster volume create replvol replica 2 ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick ec2-54-250-127-139.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Creation of volume replvol has been successful. Please start the volume to access data. # gluster volume start replvol Starting volume replvol has been successful # gluster volume info replvol Volume Name: replvol Type: Replicate Volume ID: xxxxxxxxxxxxxxxxxxxxxxxxx Status: Started Number of Bricks: 1 x 2 = 2 Transport-type:tcp Bricks: Brick1: ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Brick2: ec2-54-250-127-139.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick node01, node02 の EIP と ディレクトリの絶対パスを指定
  51. 51. 51 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成 ● RHS クライアントにログインして、作成した replvol をマウン トします。 mount のタイプを glusterfs 、「 node01 の EIP:/replvol 」をマウント元として指定します。 # mount -t glusterfs ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/replvol /mnt # df -h Filesystem Size Used Avail Use% マウント位置 /dev/xvda1 99G 1.5G 97G 2% / none 3.6G 0 3.6G 0% /dev/shm ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/replvol 8.0G 33M 8.0G 1% /mnt
  52. 52. 52 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの作成 ● RHS クライアントで、 replvol のマウント先にファイルを作成 し、ブリックとして指定した node01, node02 のディレクトリに 保存されていることを確認してみて下さい。以下実行例です。 ※RHS クライアントで実行 # for i in /mnt/file{1..10}.txt; do date > $i; done # ls /mnt file1.txt file2.txt file4.txt file6.txt file8.txt file10.txt file3.txt file5.txt file7.txt file9.txt ※node01 または node02 で実行 # ls /exports/bricks/replbrick file1.txt file2.txt file4.txt file6.txt file8.txt file10.txt file3.txt file5.txt file7.txt file9.txt
  53. 53. 53 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの拡張
  54. 54. 54 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● 前の手順で作成しましたレプリケーションボリューム 「 replvol 」に、 2 つのブリックを追加して拡張します。 ● 拡張した「 replvol 」で、ファイルの分散配置が正常に行われ ること、ファイルの再配置が可能なことを確認します。 レプリケーション replvol (Distributed-Replicate タイプのボリューム ) RHS クライアント RHS サーバー マウント Amazon EC2 の東京リージョン レプリケーション
  55. 55. 55 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの拡張 ● 拡張のために利用するインスタンスは、次の 2 台となります。 replvol の 拡張に利用 各インスタンスに 割り当てている EIP を利用
  56. 56. 56 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの拡張 ● 「 tokyo-1a-node03 」、「 tokyo-1a-node04 」インスタン スにログインして、 replvol の拡張に利用するディレクトリを 新規に作成します。 ● node03, node04 を、既存の Trusted Storage Pool に参加させ ます。次のコマンドを node01 上で実行します。 # mkdir /exports/bricks/replbrick # gluster peer probe ec2-54-250-127-141.ap-northeast-1.compute.amazonaws.com Probe Successful # gluster peer probe ec2-54-250-127-152.ap-northeast-1.compute.amazonaws.com Probe Successful # gluster peer status Number of Peers: 3 ... ( 略 ) ...
  57. 57. 57 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの拡張 ● node01 上で次のコマンドを実行し、 node03, node04 のブリックを 追加して replvol を拡張します。 ● replvol は 2 重のレプリケーション構成を取っているので、追加する ブリックの数は 2 の倍数を指定する必要があります。例えば、 1 つ だけブリックを追加すると、エラーが返ってきて追加できません。 # gluster volume add-brick replvol ec2-54-250-127-141.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick ec2-54-250-127-152.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Add Brick Successful # gluster volume info replvol Volume Name: replvol Type: Distributed-Replicate Volume ID: xxxxxxxxxxxxxxxxxxxxxxxxx Status: Started Number of Bricks: 2 x 2 = 4 Transport-type:tcp Bricks: Brick1: ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Brick2: ec2-54-250-127-139.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Brick3: ec2-54-250-127-141.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick Brick4: ec2-54-250-127-152.ap-northeast-1.compute.amazonaws.com:/exports/bricks/replbrick node03,node04 の ブリックを指定 Brick1,2 、 Brick3,4 が レプリケーション構成を取っています。 作成されたファイルは、 Brick1,2 、 Brick3,4 に ファイル名に応じて分散保存されます。
  58. 58. 58 Copyright Red Hat K.K. All rights reserved. レプリケーションボリュームの拡張 ● node01, node02 のブリックに保存されているファイルの再配置処 理を実行したい場合は、次のコマンドで rebalance を実行します。 以下実行例です。 ● rebalance を実行した後に node01~node04 のブリックを見ること で、ファイルの再配置が正常に行われていることを確認できます。 ● これ以降作成されたファイルは、 node01~node04 のブリックに 分散保存されることを確認できます。 ※node01 で実行 # gluster volume rebalance replvol start force Starting rebalance on volume replvol has been successful # gluster volume rebalance replvol status Node Rebalanced-files size scanned failures status ---------- ----------------- ---- -------- -------- ------- localhost 7 301 27 0 completed ec2-54-250-127-139...com 0 0 20 0 completed ec2-54-250-127-152...com 0 0 20 0 completed ec2-54-250-127-141...com 0 0 20 0 completed force オプションを 付ける必要があります。 rebalance の完了
  59. 59. 59 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ
  60. 60. 60 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● これまで作成してきた「 replvol 」の遠隔地へのバックアップ設定を 行います。この機能を Geo-replication と言います。 ● バックアップ先は、シンガポールリージョンに作成したボリューム 「 slavevol 」とします。「 slavevol 」は、 2 台のインスタンスを利 用して作成しているレプリケーションボリュームです。 ● バックアップは、各クラスターの代表ノードの間で行われます。 設定は各代表ノードで行います。 レプリケーション replvol ( マスター ) レプリケーション レプリケーション slavevol ( スレーブ ) 代表ノード 代表ノード 東京リージョン シンガポールリージョン Geo-replication
  61. 61. 61 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● 予め、シンガポールリージョンの同一ゾーン内で 2 台の RHS インス タンスを起動し、レプリケーションボリューム slavevol を構築して おきます。 ● slavevol の容量はバックアップ元の replvol より大きくなるように、 データ領域のサイズを指定して下さい。 slavevol の 作成に利用 シンガポール リージョン
  62. 62. 62 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● Geo-replication でのデータ転送は、 SSH でトンネリングするこ とで暗号化されます。そのために利用する SSH の鍵を、東京リー ジョンの node01 で次のコマンドを実行して作成します。 ● この時、パスフレーズの入力が求められますが、何も入力せずに Enter キーを押して下さい。 ● 続いて、リモートコマンドを制限するために次のコマンドを 実行します。 ※ 東京リージョンの node01 で実行 # ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem ※ 東京リージョンの node01 で実行 # sed -i 's|^|command=”/usr/libexec/glusterfs/gsyncd” |' /var/lib/glusterd/geo-replication/secret.pem.pub
  63. 63. 63 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● シンガポールリージョンの node01 上で、 SSH 接続を受けるア カウントを作成します。ユーザ名を geouser とし、所属グルー プを geogroup とします。 ● 東京リージョンの node01 上で作成した SSH の公開鍵を、シン ガポールリージョンの node01 に保存します。 ※ シンガポールリージョンの node01 で実行 # groupadd geogroup # useradd -G geogroup geouser # echo xxxx |passwd --stdin geouser ※ シンガポールリージョンの node01 で実行 # su - geouser [geouser ~]$ mkdir /home/geouser/.ssh [geouser ~]$ touch /home/geouser/.ssh/authorized_keys ※authorized_keys に作成した公開鍵 (secret.pem.pub) の内容をコピー [geouser ~]$ cat /home/geouser/.ssh/authorized_keys command="/usr/libexec/glusterfs/gsyncd" ssh-rsa xxxxx.... ...( 略 )... [geouser ~]$ chmod 700 /home/geouser/.ssh [geouser ~]$ chmod 600 /home/geouser/.ssh/authorized_keys 公開鍵を保存するディレクトリと ファイルのパーミッションを変更します。
  64. 64. 64 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● 続いて、 geouser という一般ユーザでも slavevol をマウントできるよう設 定します。設定後は、変更を適用するために glusterd サービスを再起動し ます。 ● この時、 mountbroker-root オプションによって、 /var/mountbroker- root/md_hive というディレクトリが作成されます。これが無いと Geo- replication の開始に失敗しますので、誤ってこのディレクトリを削除した 際は、 glusterd サービスの再起動を行なって再作成して下さい。 ※ シンガポールリージョンの node01 で実行 # mkdir -p /var/mountbroker-root # cat /etc/glusterfs/glusterd.vol volume management type mgmt/glusterd option working-directory /var/lib/glusterd option transport-type socket,rdma option transport.socket.keepalive-time 10 option transport.socket.keepalive-interval 2 option transport.socket.read-fail-log off option mountbroker-root /var/mountbroker-root option mountbroker-geo-replication.geouser slavevol option geo-replication-group geogroup end-volume # service glusterd restart この 3 つの option が 追加部分となります。 ユーザ名、グループ名、 ボリューム名を、 geouser, geogroup, slavevol と指定します。
  65. 65. 65 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● 東京リージョンの node01 上で、次のコマンドを実行して Geo- replication を開始します。バックアップ元のボリューム名を 「 replvol 」、バックアップ先を、「 geouser@ シンガポール リージョンの node01 の EIP::slavevol 」、と指定します。 ※ 東京リージョンの node01 で実行 # gluster volume geo-replication replvol geouser@ec2-46-137-207-232.ap-southeast-1. compute.amazonaws.com::slavevol start Starting geo-replication session between replvol & geouser@ec2-46-137-207-232...com::slavevol has been successful # gluster volume geo-replication replvol geouser@ec2-46-137-207-232.ap-southeast-1. compute.amazonaws.com::slavevol status MASTER SLAVE STATUS ---------------------------------------------------------------------------- replvol geouser@ec2-46-137-207-232...com::slavevol starting... ※ しばらく待ちます…。 # gluster volume geo-replication replvol geouser@ec2-46-137-207-232.ap-southeast-1. compute.amazonaws.com::slavevol status MASTER SLAVE STATUS ---------------------------------------------------------------------------- replvol geouser@ec2-46-137-207-232...com::slavevol OK Geo-replication を 開始しています。 Geo-replication が 無事開始されました。
  66. 66. 66 Copyright Red Hat K.K. All rights reserved. Geo-replication を利用した遠隔バックアップ ● マスターボリュームとなる「 replvol 」、スレーブボリュームとなる 「 slavevol 」を、東京リージョンの RHS クライアントの適当なディ レクトリにマウントします。 ● replvol のマウント先 (/mnt/master) で保存されているファイルと同 じものが、 slavevol のマウント先 (/mnt/slave) に保存されているこ とを確認します。 ● replvol のマウント先 (/mnt/master) でファイルの作成 / 削除が発生 すると、 slavevol のマウント先 (/mnt/slave) でも同じファイルが作 成 / 削除されることを確認できます。 ※ 東京リージョンの RHS クライアントで実行 # umount /mnt # mkdir -p /mnt/{master,slave} # mount -t glusterfs ec2-54-250-127-131.ap-northeast-1.compute.amazonaws.com:/replvol /mnt/master # mount -t glusterfs ec2-46-137-207-232.ap-southeast-1.compute.amazonaws.com:/slavevol /mnt/slave
  67. 67. 67 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動
  68. 68. 68 Copyright Red Hat K.K. All rights reserved. 設定作業の概要とイメージ図 ● レプリケーション構成を取っていて、 RHS サーバに障害が発生した 時のフェイルオーバ時の挙動を確認します。 ● 東京リージョンの RHS サーバを停止しても、継続してファイルへの アクセスが出来るかどうか、また RHS サーバの再び起動した時に、 ファイルの再レプリケーションが正常に出来るかどうか確認します。 レプリケーション replvol ( マスター ) レプリケーション レプリケーション slavevol ( スレーブ ) 代表ノード 代表ノード 東京リージョン シンガポールリージョン Geo-replication 停止 -> 起動を 実行してみます。
  69. 69. 69 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 停止 / 起動の対象とするのは、東京リージョンの node01 とします。この node01 は、前の手順で設定した Geo- replication を実行するための代表ノードです。 node01 を 対象とします。
  70. 70. 70 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● node01 を停止します。「 Actions 」をクリックします。 ここをクリック
  71. 71. 71 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 「 Stop 」をクリックします。 ここをクリック
  72. 72. 72 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● インスタンスを止めていいかどうか確認するメッセージが 表示されますので、「 Yes, Stop 」をクリックします。し ばらく待つと、 node01 が停止します。 ここをクリック
  73. 73. 73 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● なお、マウント元のサーバが落ちた状態でもマウント出来るよ う、バックアップ先のサーバを backupvolfile-server で指定で きます。以下のコマンドでは、東京リージョンの node02 を バックアップ先のサーバとして指定しています。 ● backupvolfile-server オプションは、 RHS の native クライア ント (glusterfs) 利用時のみ指定できます。 NFS/CIFS クライア ント利用時には指定できません。 ※ 東京リージョンの RHS クライアントで実行 # mkdir -p /mntpoints # mount -t glusterfs -o backupvolfile-server=ec2-54-250-127-139...com ec2-54-250-127-131...com:/replvol /mntpoints # df -h ...( 略 )... ec2-54-250-127-131...com:/replvol 16G 66M 16G 1% /mnt/master ec2-54-250-127-139...com:/replvol 16G 66M 16G 1% /mntpoints ...( 略 )... node02 の EIP を指定
  74. 74. 74 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 東京リージョンの node01 が停止した状態でも、 replvol の マウント先 (/mnt/master) にファイルを正常に作成できること を確認します。 ● 東京リージョンの node02, node03 にログインし、各サーバの ブリックに保存されているファイルを確認します。ファイルが 分散保存されていることを確認します。 ※ 東京リージョンの RHS クライアントで実行 # for i in /mnt/master/file{11..20}.txt; do date > $i; done # ls /mnt/master file1.txt file13.txt file17.txt file20.txt file6.txt file10.txt file14.txt file18.txt file3.txt file7.txt file11.txt file15.txt file19.txt file4.txt file8.txt file12.txt file16.txt file2.txt file5.txt file9.txt ※ 東京リージョンの node02 で実行 # ls /exports/bricks/replbrick file12.txt file17.txt file20.txt file6.txt file13.txt file18.txt file4.txt file8.txt ※ 東京リージョンの node03 で実行 # ls /exports/bricks/replbrick file1.txt file11.txt file15.txt file19.txt file3.txt file7.txt file10.txt file14.txt file16.txt file2.txt file5.txt file9.txt
  75. 75. 75 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 東京リージョンの node01 を再び起動します。 node01 のチェック ボックスにチェックを入れて、「 Actions 」をクリックします。 ここをクリック
  76. 76. 76 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 「 Start 」をクリックします。 ここをクリック
  77. 77. 77 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● インスタンスを起動していいか確認するメッセージが表示されますの で、「 Yes, Start 」をクリックします。作成済みの EIP を node01 に 割り当てて、 node01 の起動が完了するまで待ちます。 ここをクリック
  78. 78. 78 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● 東京リージョンの node01 にログインして、 node01 が停止し ていた時に作成されたファイルは、 node01 のブリックに作成 されていないことを確認します。 ● replvol はレプリケーション構成を取っているので、ファイルの 再レプリケーションを次のコマンドで実行できます。 ※ 東京リージョンの node01 で実行 # gluster volume heal replvol full Heal operation on volume replvol has been successful # gluster volume heal replvol info Heal operation on volume replvol has been successful Brick ec2-54-250-127-131...com:/exports/bricks/replbrick Number of entries: 0 Brick ec2-54-250-127-131...com:/exports/bricks/replbrick Number of entries: 0 Brick ec2-54-250-127-131...com:/exports/bricks/replbrick Number of entries: 0 Brick ec2-54-250-127-131...com:/exports/bricks/replbrick Number of entries: 0
  79. 79. 79 Copyright Red Hat K.K. All rights reserved. フェイルオーバ時の挙動 ● もし、再レプリケーションが正常に行われなかった場合、以下のよう なメッセージが表示されることがあります。その場合は、復旧サーバ ( ここでは東京リージョンの node01) で glusterd サービスを再起動 した後に、再レプリケーションを実行してみて下さい。 ● また、 slavevol(replvol のバックアップ先 ) のマウント先のディレク トリを見ることで、 replvol のファイルと同じものが保存されている ことを確認できます。これにより、前の手順で設定した Geo- replication が継続して動作していることを確認できます。 ※ 東京リージョンの node01 で実行 # gluster volume heal replvol full Heal operation on volume replvol has been unsuccessful # gluster volume heal replvol info Heal operation on volume replvol has been successful Brick ec2-54-250-127-131...com:/exports/bricks/replbrick Number of entries: 0 Status Brick is Not connected ...( 略 )... # service glusterd restart # gluster volume heal replvol full Heal operation on volume replvol has been successful node01 のブリックが 正常に接続されていないという メッセージが表示されています。
  80. 80. 80 Copyright Red Hat K.K. All rights reserved. Amazon EC2 での RHS の さらなる検証について
  81. 81. 81 Copyright Red Hat K.K. All rights reserved. 概要とイメージ図 ● 今まで紹介してきた手順は、全てのインスタンスをリージョン内 の同一ゾーン内で起動することを前提としてきました。 ● さらに進んだ検証構成として、レプリケーション構成を取るイン スタンスを、それぞれ違うゾーンで起動する構成があります。各 ゾーンは物理的に独立しているので、より冗長性を高めることが できます。こちらの構成もぜひお試し下さい。 レプリケーション replvol ( マスター ) レプリケーション レプリケーション slavevol ( スレーブ ) 東京リージョン シンガポールリージョン Geo-replication ap-southeast-1aap-northeast-1bap-northeast-1a ap-southeast-1b
  82. 82. 82 Copyright Red Hat K.K. All rights reserved. 動画 ● 本資料でご紹介しました作業手順を、字幕付きの動画とし て収録したものを YouTube にアップロードしていますの で、合わせてご参照下さい。 ● https://www.youtube.com/playlist? list=PLgT9pz799l7FSOcww8diEs3h_VH_zrNic
  83. 83. 83 Copyright Red Hat K.K. All rights reserved. 参考文献 ● RHS の製品ドキュメント ● http://access.redhat.com/site/documentation/Red_Hat_Storage/ ● How to Use Red Hat Storage Server Subscriptions for Public and Hybrid Cloud in AWS ● RHS のサブスクリプションを AWS 上で有効にする方法を記載しています。 ● https://access.redhat.com/site/articles/145693 ● Red Hat Storage Server Knowledge Base ● RHS に関する Knowledge Base の一覧です。 ● https://access.redhat.com/site/products/red-hat-storage-server ● Amazon EC2 の CLI Tools のセットアップ手順です。 ● http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine. html ● Amazon EC2 の CLI Tools のコマンド一覧です。 ● http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/command- reference.html
  84. 84. 84 Copyright Red Hat K.K. All rights reserved.

×