こんにちは。
サイオステクノロジーの高田です。LifeKeeperのトレーニングを担当しています。
第2回では、VPNの設定とサーバーの配置について記載しました。今回は、サーバーの設定とLifeKeeperを利用したDBサーバーのクラスタ化について説明します。
まずは、サーバーの設定から行います。
1 サーバーの設定
1.1 サーバーへのログイン
各サーバーへログインして作業します。AWS側のサーバーへのログインは、第2回のブログ内の手順でダウンロードしたキーペアを利用します。 以降の手順では、DBサーバーとWebサーバーで設定内容が異なります。
1.2 DBサーバーのOS設定
インストールしたOSの設定を行います。DBサーバーはLifeKeeperによるクラスタ環境を構築します。そのため、LifeKeeperの動作に必要な設定を行います。
(1)GUIを利用するため、yumコマンドでパッケージをインストールします。
# yum groupinstall “Desktop” “Desktop Platform” “General Purpose Desktop”’ |
(2)LifeKeeperをインストールするために必要なパッケージをインストールします。
# yum install –y redhat-lsb |
(3)SELinuxが無効化されているか確認します。
# cat /etc/selinux/config |
無効になっていない場合は以下のようにパラメータを変更して、サーバーを再起動してください。
SELINUX=disabled |
(4)ホスト名および名前解決の設定を行います。
本検証では、/etc/hostsファイルで名前解決をしています。オンプレミスとAWSのDBサーバー間でホスト名で通信できるように設定します。
(5)ファイアウォール設定を変更します。
LifeKeeper GUIは、デフォルトの初期接続ポートである81と82を含め、特定のTCPポートを使用します。またポート1024以降をオブジェクトの送受信に使用するリモートメソッド呼び出し(RMI)に使用します。これらすべてのポートを利用できるように設定を行ってください。
1.3 WebサーバーのOS設定
インストールしたOSの設定を行います。Webサーバーでは、WordPressを利用してWebサイトを作成します。そのため、WordPressの動作に必要な設定を行います。Webサーバーの設定は、オンプレミスとAWSのサーバーで同じ内容です。
(1)WordPressに必要なパッケージをyumコマンドでインストールします。
# yum install -y httpd mysql-server php php-mysql php-mbstring wget |
(2)OS起動時のApacheの自動起動を有効にします。
# chkconfig httpd on |
(3)Apacheを設定を変更します。
# vi /etc/httpd/conf/httpd.conf |
以下のようにDocumentRootをWordPressのディレクトリに変更します。
DocumentRoot “/var/www/wordpress” |
(4)最新版のWordPressのパッケージをダウンロードします。ダウンロードしたファイルを展開します。
# wget http://ja.wordpress.org/wordpress-latest-ja.tar.gz |
(5)展開したWordPressのファイルを「/var/www/」配下へ移動して、移動先のディレクトリに所有権を変更します。
# cp -r wordpress /var/www/ # chown -R apache.apache /var/www/wordpress |
(6)Apacheを起動します。
# service httpd start |
(7)SELinuxが無効化されているか確認します。
# cat /etc/selinux/config |
無効になっていない場合は以下のようにパラメータを変更して、サーバーを再起動してください。
SELINUX=disabled |
1.4 DBサーバーでのデータベース設定
追加した増設ディスクをデータベースのデータ格納場所として利用します。オンプレミス側のDBサーバー(プライマリサーバー)とAWS側のDBサーバー(セカンダリサーバー)ごとの、実施手順を以下に説明します。
オンプレミス側のDBサーバー(プライマリサーバー)での実施手順
(1)MySQLの関連パッケージをインストールします。
[コマンド例]
# yum install -y mysql-server |
(2)第2回のブログ内の手順で追加したディスクにMySQLをインストールするための準備します。 そのディスクをフォーマットしてから、ファイルシステムを作成しマウントします。
[コマンド例]
# fdisk -cu /dev/sdb |
(3)MySQLのデータディレクトリ(/test_mysql)に存在するすべてのファイル権限と所有者を適切に設定します。
[コマンド例]
# chown -R mysql:mysql /data |
(4)コマンドラインから、MySQLデーモンを起動します。
[コマンド例]
# service mysqld start |
(5)MySQLを新規にインストールする場合は、MySQLデータベースを初期化します。
[コマンド例]
# mysql_secure_installation |
すべての質問をYで返します。途中パスワード設定を求められまずが、指示通り設定します。
(6)mysqlユーザーにshutdown権限と全てのホストからのアクセス権限を付与します。また、データベースwp作成とwpへの全てのホストからのアクセス権限を付与します。
[コマンド例]
# mysql -u root |
(7)作成したデータ、設定ファイルを含むMySQLのディレクトリを共有領域へ移動します。
[コマンド例]
# mv /var/lib/mysql /data/ |
(8)/etc/my.cnf を編集します。
[my.cnf例]
[mysqld] [mysqld_safe] [client] |
(9)mysqlを再起動します。
[コマンド例]
# service mysqld restart |
AWS側のDBサーバー(セカンダリサーバー)での実施手順
(1)mysql-serverをインストールします。
[コマンド例]
# yum install -y mysql-server |
(2)5.2で追加したディスクにMySQLをインストールするために、準備します。 そのディスクをフォーマットしてから、ファイルシステムを作成します。
[コマンド例]
# fdisk -cu /dev/xvde # mkfs -t ext4 /dev/xvde1 |
(3)MySQLのデータディレクトリ(/test_mysql)に存在するすべてのファイル権限と所有者を適切に設定します。
[コマンド例]
# mkdir /datal # chown -R mysql: mysql /data # chmod 755 /data |
補足: AWSのプライベートサブネットからyumを実行する方法
AWSプライベートサブネット上に配置したサーバーは、外部へ通信できないためyumなどのパッケージ管理ツールが利用できません。本検証では、AWSのNAT Gateway機能を利用しています。
(1)NAT Gatewayを作成します。
(2)プライベートサブネットを指定します。
(3)新しいEIPを作成します。
(4)NAT Gatewayが作成されたことを確認します。
(5)ルートテーブルにNAT Gatewayを紐付けます。
これでNAT Gateway経由でyumの実行が可能になりました。
DBサーバーとWebサーバーの合計4台の設定が完了しました。続いては、LifeKeeperを利用してDBサーバーのMySQLを冗長化します。
2 LifeKeeperによるHAクラスターの構築
作成した仮想サーバーにLifeKeeperをインストールし、HAクラスターを構築します。
2.1 LifeKeeperのインストール
各DBサーバーにLifeKeeperをインストールします。
LifeKeeperのインストールにあたり、LifeKeeper for Linux v9.1の製品メディアおよびライセンスを各DBサーバーに配置しておく必要があります。評価目的のお客様の場合は、以下のURLから申請します。
インストールの手順については、下記のLifeKeeper for Linuxスタートアップガイド(v9.1用)を参照してください。LifeKeeperのインストール途中で「Select optional kits for SPS for Linux」画面が表示されます。MySQLを保護する「lkSQL」とDataReplication によるクラスターサーバー間のデータ共有を行う「lkDR」を選択してインストールします。
セットアップが完了したら、LifeKeeperを起動します。
# /opt/LifeKeeper/bin/lkstart |
2.2 LifeKeeper GUIの管理画面へのアクセス
オンプレミス側のDBサーバーにてLifeKeeperのGUIを起動します。
# /opt/LifeKeeper/bin/lkGUIapp |
AWS側のDBサーバーでLifeKeeperのGUIを表示させる場合は、SSHのXフォワーディングを使用します。SSHのXフォワーディングを使用して手順の詳細については、以下の資料を参照してください。
2.3 コミュニケーションパスの作成
VPNの経路を利用して1本のコミュニケーションパスを作成します。コミュニケーションパスの作成手順の詳細については、以下の資料を参照してください
LifeKeeperはコミュニケーションパスが1本のみの設定となっている場合、警告の表示となります。コミュニケーションパス作成後、警告の表示を解除します。
2.4 Data Replicationリソース階層の作成
オンプレミス側のサーバーが仮想環境で動作している場合は、Data Replication リソース階層の作成前に、次のファイルに下記のエントリーを追加してください。
ファイル:/opt/LifeKeeper/subsys/scsi/resources/DEVNAME/device_pattern
追加エントリー:/dev/sd*
詳細については、次のURLをご参照ください。
LifeKeeper GUI管理画面より”Create Resource Hierarchy”を選択して、Data Replicationリソースを作成します。リソース作成ウィザードで入力する内容は以下の通りです。
Select Recovery Kit | Data Replication |
Switchback Type | intelligent |
Server | ONPREDB6B |
Hierarchy Type | Replication Existing Filesystem |
Existing Mount Point | /data |
Data Replication Resource Tag | datarep-data |
Filesystem Resource Tag | /data |
Bitmap File | /opt/LifeKeeper/bitmap__data |
Enable Asynchronous Replication | no (本検証では同期モードを使用) |
ターゲット(セカンダリ)サーバーに Extendするとき、入力する内容は以下の通りです。
Target Server | AWSDB6B |
Switchback Type | intelligent |
Template Priority | 1 |
Target Priority | 10 |
Target Disk | /dev/xvde1 |
Data Replication Resource Tag | datarep-data |
Bitmap File | /opt/LifeKeeper/bitmap__data |
Replication Path | 10.124.128.14 – 10.10.2.20 |
Mount Point | /data |
Root Tag | /data |
Data Replicationリソースの作成が完了するとLifeKeeperGUI画面では以下のように表示されます。
2.5 MySQLリソース階層の作成
LifeKeeper GUI管理画面より”Create Resource Hierarchy”を選択して、MySQLリソースを作成します。リソース作成ウィザードで入力する内容は以下の通りです。
重要: MySQLはプライマリサーバー上でのみ実行している必要があります。セカンダリサーバー上で実行しないでください。
Select Recovery Kit | MySQL Database |
Switchback Type | intelligent |
Server | ONPREDB6B |
Location of my.cnf /etc | /etc |
Location of MySQL executables | /usr/bin |
Database Tag | mysql |
ターゲット(セカンダリ)サーバーにExtendするとき、入力する内容は以下の通りです。
Target Server | AWSDB6B |
Switchback Type | intelligent |
Template Priority | 1 |
Target Priority | 10 |
Location of my.cnf /etc | /etc |
Location of MySQL executables | /usr/bin |
Database Tag | mysql |
MySQLリソースの作成が完了するとLifeKeeperGUI画面では以下のように表示されます。
これでMySQLの冗長化が完了です。
次回は、WordPressの設定とAWS側のWebサーバーをAMIから起動する設定を行います。次回の第4回目がDynamicDRの最終回です。
>>[Linux] DynamicDR(オンプレto AWS ディザスタリカバリ環境)の実現(第4回)~WordPressとWebサーバーの起動設定 を読む