サイオステクノロジー株式会社
LifeKeeper for Linux と VMware vCloud Air
の動作検証レポート
2
© SIOS Technology, Inc.
目次
1 本書の内容 ...3 1.1 将来における互換性 ...3 2 vCloud Air の概要 ...3 3 構成情報 ...4 4 vCloud Air の構築、設定 ...5 4.1 仮想サーバーの新規作成 ...5 4.2 ディスクの増設 ... 12 4.3 仮想サーバーへのコンソール接続 ... 16 4.4 ネットワーク、ファイアウォールの設定 ... 17 4.5 OS の設定 ... 18 4.6 PostgreSQL の設定 ... 19 5 LifeKeeper による HA クラスターの構築 ... 22 5.1 LifeKeeper のインストール ... 22 5.2 LifeKeeper GUI の管理画面へのアクセス ... 22 5.3 コミュニケーションパスの作成 ... 23 5.4 Broadcast Ping の無効化 ... 23 5.5 IP リソースの作成 ... 24 5.6 Data Replication リソース階層の作成 ... 27 5.7 PostgreSQL リソース階層の作成 ... 29 5.8 IP リソースと PostgreSQL リソース間の依存関係の構築 ... 30 6 vCloud Air の機能確認 ... 31 7 LifeKeeper の機能確認 ... 31 8 参考資料 ... 32 9 謝辞 ... 33 10 お問い合わせ ... 34 11 免責事項 ... 35 改訂履歴 2015 年 4 月 10 日 初版3
© SIOS Technology, Inc.
1
本書の内容
このたび、LifeKeeper for Linux(以下、LifeKeeper)を VMware vCloud Air(以下、 vCloud Air)環境においてご利用いただけるようになりました。 本書は、弊社で実際に行った検証作業の構成をベースとして記述したものです。LifeKeeper を vCloud Air 環境で稼働させ、クラウド環境における HA クラスターシステムを構築す る方法について、説明します。
1.1 将来における互換性
本書に記載されております内容は、2015 年 4 月 10 日時点の vCloud Air で実施した検 証結果に基づいています。将来における vCloud Air 及び LifeKeeper の仕様変更につい て保証するものではありません。必要に応じて最新のドキュメンテーションを参照し、 適切な設定を行ってください。2
vCloud Air の概要
vCloud Air はヴイエムウェア社が提供する、パブリッククラウドであり、ハイブリットク ラウドサービスをコンセプトとしています。vCloud Air は CPU、メモリ、ストレージ領域、 ネットワーク帯域をまとめてリソースプールと呼び、このリソースプールをお客様に提供 します。 また、vCloud Air は次の特徴があります。 VMware とシームレスな連携が出来る VMware と共通の管理ツールが利用できる ダイレクトコネクト、Data Protection などのサービスが利用できる
vCloud Air と LifeKeeper を組み合わせることで、HA クラスターを容易に構築でき、クラ ウド環境におけるアプリケーション、サービスの高可用性が実現できます。
4
© SIOS Technology, Inc.
3
構成情報
本構成では LifeKeeper を使って、以下のような 2 ノード構成の Active/Standby クラス ターを構築します。 仮想サーバー構成 CPU:1vCPU Memory:3 GB Disk: 20GB OS:CentOS 6.4 64bit IP 任意のプライベート IP × 2 増設ディスク 10 GB LifeKeeper v8.4.0 監視対象 仮想 IP アドレス、ファイルシステム、PostgreSQL 全体の構成図5
© SIOS Technology, Inc.
4
vCloud Air の構築、設定
vCloud Air 上に仮想サーバーを作成する手順をご案内します。なお、vCloud Air の操作等 詳細については、ご契約のお客様に配布されます”Welcome Kit ”及び” vCloud Air 入門ガ
イド”を参照にしながら、操作を行ってください。
※vCloud Air 入門ガイドは以下 URL のページ下方「STEP 6 運用」にある "入門操作ガイド"からダウンロードすることも可能です。
https://www.vmware-gogo.com/p/vcloudair_campaign/
4.1 仮想サーバーの新規作成
(1) 契約時に登録したメールアドレスに届いたvCloud Air Account Registrationに記 載されている、”Link to Set First Password”のアドレスにアクセスし、初期パス ワードを設定してください。
(2) パスワード変更後、vCloud Air Account Registrationに記載されている、カスタ マポータルの URL(
https://vca.vmware.com
)へ移動して、カスタマポータルに ログインします。6
© SIOS Technology, Inc.
(3) My Subscriptions を選択して、vCloud Air の管理画面(トップ画面)に移動します。
7
© SIOS Technology, Inc.
(5) “Virtual Machines“タブをクリックして、MY VIRTUAL MACHINES の画面を開き、 “Add Virtual Machin”を選択します。
※一度も仮想マシンを作成していない場合は、”Deploy a Virtual Machine”と表示 されているアイコンをクリックしてください。
8
© SIOS Technology, Inc.
9
© SIOS Technology, Inc.
10
© SIOS Technology, Inc.
(9) 利用する OS を選択すると、次は VM 名とホスト名や CPU、メモリの量などを 選択します。入力する情報に関しては、”Cloud Air 入門ガイド”の14ページをご参 照ください。
11
© SIOS Technology, Inc.
(10) MY VIRTUAL MACHINES 画面に作成したサーバーが追加されます。
仮想サーバーの作成手順は以上です。同様の手順で、クラスターノード用の VM を もう一台作成してください。
12
© SIOS Technology, Inc.
4.2 ディスクの増設
4.1 で作成した仮想マシンに対してデータディスクを追加します。 (1) ディスクを追加したいサーバーの名前をクリックします。
13
© SIOS Technology, Inc. (3) “Add a Drive”を選択します。
14
© SIOS Technology, Inc.
(4) 容量を入力し、”Adjust Storage Allocation”を選択してください。
15
© SIOS Technology, Inc.
ディスクの追加手順は以上です。全てのノードに対して、同じサイズのディスクを増設し てください。
16
© SIOS Technology, Inc.
4.3 仮想サーバーへのコンソール接続
仮想マシンのコンソール表示方法は、以下の通りです。(1) “MY VIRUAL MACHINES”を選択し、右側のプルダウンメニューから”Launch Console”をクリックしてください。
17
© SIOS Technology, Inc.
4.4 ネットワーク、ファイアウォールの設定
仮想マシンをインターネットに接続させるには、ゲートウェイに Source NAT と Firewall の設定を実施する必要がございます。この設定が有効でないとインターネットへの接続 が行えません。その為、LifeKeeper の導入に必要となる yum コマンドによるパッケー ジの追加が実行できません。
また仮想マシンに外部から接続する場合は、Destination NAT の設定が必要となります。
設定方法につきましては”vCloud Air 入門ガイド”の各ページ、または以下の URL をご参 照ください。 vCloud Air 入門ガイド Source NAT 24 ページから 25 ページ Firewall 28 ページから 29 ページ Destination NAT 26 ページから 27 ページ
※vCloud Air 入門ガイドは以下 URL のページ下方「STEP 6 運用」にある "入門操作ガイド"からダウンロードすることも可能です。
https://www.vmware-gogo.com/p/vcloudair_campaign/ VMware vCloud Air Networking Guide
P19~P25 ゲートウェイおよびネットワークの管理について
18
© SIOS Technology, Inc.
4.5 OS の設定
インストールした OS の設定を行います。
(1) GUI を利用するするため、yumコマンドでパッケージをインストールします。 # yum groupinstall –y ‘X Window system’
# yum groupinstall –y ‘Desktop’
(2) LifeKeeper をインストールするために必要なパッケージをインストールします。 # yum install –y redhat-lsb
(3) SELinux が無効化されていることを確認します。 # cat /etc/selinux/config 無効になっていない場合は以下のようにパラメータを変更して、ノードを再起動さ せてください。 SELINUX=disabled (4) ファイアウォール設定を変更します。 LifeKeeper GUI は、デフォルトの初期接続ポートである 81 と 82 を含め、特定の TCP ポートを使用します。またポート 1024 以降をオブジェクトの送受信に使用す るリモートメソッド呼び出し(RMI)に使用します。これらすべてのポートを利用でき るように設定を行ってください。 ファイアウォールを使用した状態での LifeKeeper の実行 http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/SPSInstall/index.htm#user_g uide/using_lifekeeper_linux/maintenance_tasks/running_lifekeeper_firew all.htm
19
© SIOS Technology, Inc.
4.6 PostgreSQL の設定
追加した増設ディスクを PostgreSQL のデータ格納場所として、PostgreSQL の設定を行 います。 仮想サーバー1 (プライマリサーバー) と仮想サーバー2 (セカンダリサーバー) ごとに、 実施手順を以下に説明します。 仮想サーバー1 (プライマリサーバー)での実施手順 仮想サーバー1 で、以下の(1)から(6)を実施します。 (1) postgresql-server と関連パッケージをインストールします。 [コマンド例]# yum install postsql
# yum install postgresql-server postgresql-contrib
(2) 4.2 で追加したディスクに PostgreSQL をインストールするために、準備します。 そのディスクをフォーマットしてから、ファイルシステムを作成しマウントします。 [コマンド例] # fdisk /dev/sdb # mkfs.ext4 /dev/sdb1 # mkdir /postgresql
# mount –t ext4 /dev/sdb1 /postgresql
(3) PostgreSQL のデータディレクトリ(/postgresql)に存在するすべてのファイル権限 と所有者を適切に設定します。
[コマンド例]
# chown –R postgres:postgres /postgresql # chmod 755 /postgresql
20
© SIOS Technology, Inc.
(4) PostgreSQL を新規にインストールする場合は、サンプル PostgreSQL データベー スを初期化します。 [コマンド例] # su - postgres $ initdb --pgdata=/postgresql/data (5) コマンドラインから、PostgreSQL デーモンを起動します。 [コマンド例]
$ pg_ctl start -D /postgresql/data -l /postgresql/pgstartup.log -o "-p 5432" -w (6) psql クライアントで接続して、PostgreSQL が実行中であることを確認します。 [コマンド例] $ psql 仮想サーバー2 (セカンダリサーバー)での実施手順 仮想サーバー2 で、以下の(7)から(9)を実施します。 (7) postgresql-server と関連パッケージをインストールします。 [コマンド例]
# yum install postsqlinstall postgresql-server postgresql-contrib
(8) 4.2 で追加したディスクに PostgreSQL をインストールするために、準備します。 そのディスクをフォーマットしてから、ファイルシステムを作成します。
[コマンド例] # fdisk /dev/sdb
21
© SIOS Technology, Inc.
(9) PostgreSQL のデータディレクトリ(/postgresql)に存在するすべてのファイル権限 と所有者を適切に設定します。
[コマンド例]
# mkdir /postgresql
# chown –R postgres:postgres /postgresql # chmod 755 /postgresql
22
© SIOS Technology, Inc.
5
LifeKeeper による HA クラスターの構築
作成した仮想サーバーに LifeKeeper をインストールし、HA クラスターを構築します。
5.1 LifeKeeper のインストール
各仮想サーバーに、LifeKeeper をインストールします。インストールの手順につきまし ては、下記の「LifeKeeper for Linux スタートアップガイド (v8.4 用) を参照してく ださい。
mksh パッケージがインストール済みの場合には、インストール途中にエラーが発生す るために LifeKeeper をインストールできません。事前に mksh をアンインストールし てください。
LifeKeeper のインストール途中で「Select optional kits for SPS for Linux」画面が 表示されます。PostgreSQL を保護し、DataReplication によるクラスターノード間の データ共有を行う為、「lkDR」と「lkPGSQL」を選択してインストールしてください。 LifeKeeper for Linux スタートアップガイド (v8.4 用)
http://lk.sios.com/?p=3371 セットアップが完了しましたら、LifeKeeper を起動します。 # lkstart
5.2 LifeKeeper GUI の管理画面へのアクセス
カスタマポータルからコンソール接続する、もしくはXフォワーディングが有効な環境 からインターネット経由で仮想サーバーに SSH 接続し、LifeKeeper GUI 管理画面を開 きます。 # lkGUIapp23
© SIOS Technology, Inc.
LifeKeeper の GUI を、SSH の X フォワーディングで使用する手順の詳細については、 以下の資料を参照してください。 ファイアウォール経由での LifeKeeper GUI の実行 http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/TechDoc/index.htm#user_guide/ using_lifekeeper_linux/maintenance_tasks/running_lifekeeper_gui_through_f irewall.htm
5.3 コミュニケーションパスの作成
コミュニケーションパスを作成します。LifeKeeper では、少なくとも 2 つのコミニュー ケーションパスがノード間で必要です。 コミュニケーションパスの作成手順の詳細については、以下の資料を参照してください。 コミュニケーションパスの作成 http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/TechDoc/index.htm#administrati on/administrator_tasks/creating_communication_path.htm5.4 Broadcast Ping の無効化
Broadcast Ping の設定を無効化します。 # vi /etc/default/LifeKeeper 変更内容 変更前 NOBCASTPING=0 変更後 NOCCASTPING=124
© SIOS Technology, Inc.
5.5 IP リソースの作成
LifeKeeper GUI 管理画面より“Create Resource Hierarchy“を選択し、IP リソースを 作成します。今回は、NIC1 (192.168.99.xx)に紐づく仮想 IP を作成します。
構成図
リソース作成ウィザードで入力する内容は、以下の通りです。 Select Recovery Kit IP
Switchback Type Intelligent
Server LK1
IP Resource 192.168.99.3
Net mask 255.255.255.0
Network Interface eth0
25
© SIOS Technology, Inc.
ターゲット (セカンダリサーバー)ノードに Extend するとき入力する内容は、以下の通 りです。
Select Recovery Kit IP
Switchback Type Intelligent
Server LK2
IP Resource 192.168.99.4
Net mask 255.255.255.0
Network Interface eth0
IP Resource Tag ip-192.168.99.104
今回の環境は、Broadcast Ping を無効化しているため、IP リソースの死活監視に Unicast Ping を利用します。設定方法例は以下の通りです。
26
© SIOS Technology, Inc.
(1) IP リソースのプロパティ画面を表示し、Modify Ping List をクリックします。
27
© SIOS Technology, Inc. (3) Save List をクリックし、設定値を保存します。
5.6 Data Replication リソース階層の作成
重要: Data Replication リソース階層の作成前に、次のファイルに下記のエントリーを追加 してください。 ファイル:/opt/LifeKeeper/subsys/scsi/DEVNAME/device_pattern 追加エントリー:/dev/sd* これは、各サーバーで実施してください。詳細については、次の URL をご参照ください。 [Linux]ERROR 104052: Cannot get the hardware ID of device "デバイス名" に ついて28
© SIOS Technology, Inc.
LifeKeeper GUI 管理画面より”Create Resource Hierarchy”を選択し、Data Replication リソースを作成します。リソース作成ウィザードで入力する内容は以下の 通りです。
Select Recovery Kit Data Replication Switchback Type Intelligent
Server LK1
Hierarchy Type Replication Existing Filesystem Existing Mount Point /postgresql
Data Replication
Resource Tag datarep-postgresql Filesystem Resource
Tag /postgresql
Bitmap File /opt/LifeKeeper/bitmap__postgresql Enable Asynchronous
Replication No (本構成では同期モードを使用)
ターゲット(セカンダリサーバー)ノードに Extend するとき、入力する内容は以下の通 りです。
Target Server LK2
Switchback Type Intelligent Template Priority 1
Target Priority 10
Target Disk /dev/sdb1 Data Replication
Resource Tag datarep-postgresql
Bitmap File /opt/LifeKeeper/bitmap__postgresql Replication Path 192.168.109.3 - 192.168.109.4 Mount Point /postgresql
29
© SIOS Technology, Inc.
5.7 PostgreSQL リソース階層の作成
LifeKeeper GUI 管理画面より”Create Resource Hierarchy”を選択し、PostgreSQL リソースを作成します。リソース作成ウィザードで入力する内容は以下の通りです。 重要:
この時点で、PostgreSQL をプライマリサーバー上で実行している必要があります。 セカンダリサーバー上で実行しないでください。
Select Recovery Kit PostgreSQL Database
Switchback Type Intelligent
Server LK1
PostgreSQL Executable Location /usr/bin PostgreSQL Client Executable Location /usr/bin/psql PostgreSQL Administration Executable
Location /usr/bin/pg_ctl
PostgreSQL Data Directory /postgresql/data
PostgreSQL Port 5432
PostgreSQL Socket Path /tmp/.s.PGSQL.5432 Enter Database Administrator User postgres
PostgreSQL Logfile /tmp/pgsql-5432.lk.log
Database tag pgsql-5432
ターゲット(セカンダリサーバー)ノードに Extend するとき、入力する内容は以下の通 りです。
Target Server LK2
Switchback Type Intelligent
Template Priority 1
Target Priority 10
PostgreSQL Executable Location /usr/bin
30
© SIOS Technology, Inc.
5.8 IP リソースと PostgreSQL リソース間の依存関係の構築
LifeKeeper GUI 管 理 画 面 よ り ”Create Dependency” を 選 択 し 、 IP リ ソ ー ス (ip-192.168.99.104) と PostgreSQL リソース(pgsql-5432) との間に依存関係を作 成します。下記のリソースの依存関係図のように、Parent Resource(親リソース)が PostgreSQL リソース、Child Resource(子リソース)が File System リソースと IP リソースとな るよう設定してください。この設定により、リソースが一緒に移動し、適切な順序で起 動/停止することが保証されます。 依存関係の作成方法については、以下の URL をご参照ください。 リソース依存関係の作成 http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/TechDoc/index.htm#administrati on/administrator_tasks/creating_resource_dependency.htm リソースの依存関係図
31
© SIOS Technology, Inc.
6
vCloud Air の機能確認
本構成で、vCloud Air の以下の機能について、正常動作を確認しました。 (1) 管理画面へのログイン (2) カタログのテンプレートを用いた仮想サーバーの作成 (3) 仮想サーバーへのディスクの追加、削除 (4) 仮想サーバーへのコンソール接続 (5) 仮想サーバーの起動、停止 (6) ファイアウォール設定 フィルタルールの追加、削除 (7) NAT の追加、削除 DNAT ルールの追加、削除 SNAT ルールの追加、削除 (8) 仮想サーバーの削除7
LifeKeeper の機能確認
本構成で、以下の LifeKeeper の機能について、正常動作を確認しました。 (1) 仮想 IP で指定している NIC を停止させた場合に、復旧が行われること (2) PostgreSQL のプロセスが停止した場合に、復旧が行われること (3) (1)、(2)の復旧に失敗した場合に、セカンダリサーバーへリソースのフェイルオーバー が行われること (4) 稼働系サーバーに障害が発生した場合に、セカンダリサーバーへリソースのフェイル オーバーが行われること32
© SIOS Technology, Inc.
8
参考資料
LifeKeeper UserSite http://lk.sios.com/
LifeKeeper for Linux スタートアップガイド (v8.4 用) http://lk.sios.com/?p=3371
SIOS Technical Documentation http://jpdocs.us.sios.com/ LifeKeeper・DataKeeper http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/TechDoc/index.htm PostgreSQL RK のドキュメンテーション http://jpdocs.us.sios.com/Linux/8.4.0/LK4L/pgSQL/index.htm vCloud Air http://tm.softbank.jp/cloud/iaas/vcloud_air/
33
© SIOS Technology, Inc.
9
謝辞
本ドキュメントを作成するに際して、ソフトバンク コマース&サービス株式会社様には多 大なるご支援をいただきました。御礼を申し上げます。 ソフトバンク コマース&サービス株式会社 http://cas.softbank.jp/34
© SIOS Technology, Inc.
10
お問い合わせ
本書の記載内容についてのお問い合わせ先 LifeKeeper 製品の導入を検討中のお客様
LifeKeeper 製品をご購入済みのお客様
弊社パートナー営業部までお問い合わせください。 お問い合わせメールフォーム https://www.sios.com/products/bcp/lkdk/contact/ 弊社 LifeKeeper 製品サポート窓口までお問い合わせください。 購入後のお問い合わせ https://www.sios.com/products/bcp/lkdk/contact/support_lk.html35
© SIOS Technology, Inc.