Comments
Description
Transcript
Amazon EC2™環境における
Amazon EC2™環境における Linux-HA Apache クラスタ(VIP)構築手順書 2014 年 12 月 5 日 1.0 版 株式会社サードウェア 目次 1 はじめに ................................................................................................................................................... 2 2 利用ソフトウェア・用語について .................................................................................................................. 3 3 本書について ............................................................................................................................................ 4 4 AWS 構成................................................................................................................................................. 4 4.1 構成図 ....................................................................................................................................... 4 4.2 OS/ソフトウェア情報 ....................................................................................................................... 6 4.3 AWS 環境 ................................................................................................................................... 6 5 AWS サーバ設定 ...................................................................................................................................... 7 5.1 VPC 作成 .................................................................................................................................... 7 5.2 Amazon EC2™インスタンス作成 ................................................................................................... 10 5.3 EC2™インスタンスへ固定 IP アドレス(ErasticIP)の設定 ................................................................... 13 5.4 ディスク追加 ............................................................................................................................. 15 5.5 ルートテーブル設定 ..................................................................................................................... 17 5.6 EC2™サーバへの接続 ................................................................................................................. 18 5.7 AWS サーバ基本設定 ................................................................................................................. 18 6 パッケージの追加 .................................................................................................................................... 19 6.1 DRBD インストール ................................................................................................................... 19 6.2 Heartbeat インストール.................................................................................................................. 21 6.3 Pacemaker インストール ............................................................................................................. 22 7 DRBD 設定 ............................................................................................................................................ 23 7.1 DRBD 基本設定........................................................................................................................ 23 7.2 DRBD メタデータ作成 ................................................................................................................ 24 7.3 DRBD 起動 ............................................................................................................................... 25 7.4 DRBD 初回同期........................................................................................................................ 26 7.5 DRBD マウント領域準備 ........................................................................................................... 27 8 Apache インストール ............................................................................................................................... 28 9 Heartbeat 設定 ....................................................................................................................................... 29 10 Pacemaker 設定 .................................................................................................................................. 30 10.1 crm コマンド開始 ..................................................................................................................... 30 10.2 クラスタのオプション設定 ........................................................................................................ 30 10.3 リソース設定 .......................................................................................................................... 31 10.4 設定確認................................................................................................................................ 32 改訂履歴 版番号 改訂年月日 作成者 1.0 2014 年 12 月 5 日 澤田 備考 初版 1 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 1 はじめに 商標・登録商標について DRBD®、LINBIT® は、オーストリア、アメリカ合衆国及びその他の国における LINBIT 社の商標ならびに登録商 標です。 Amazon Web Services、および Amazon Elastic Cloud Compute (EC2)は、米国その他の諸国における、 Amazon.com, Inc.またはその関連会社の商標です。 その他、本ドキュメントに記載されている製品名は、各社の商標・登録商標です。 ライセンス情報 本ドキュメントの著作権は株式会社サードウェアが保有しています。 2 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 2 利用ソフトウェア・用語について DRBD DRBD は、分散ストレージシステムであり、2.6.33 以降の Linux カーネルに採用されています。DRBD はオープン ソースを用いたシェアードナッシングソリューションにおいて、世界をリードする製品になりました。DRBD は LINBIT 社 により活動的に開発・メンテナンスされています。 DRBD は RHEL6.0 以降で認められているため、RedHat サポートを無効にする事なく DRBD をご利用いただく事が 出来ます。 Amazon EC2™ Amazon Elastic Compute Cloud (Amazon EC2™)は、仮想マシン(インスタンス)の開発及び管理を提供する ウェブサービスです。EC2™は、オートスケーリング及び『使った分だけのお支払』形式での価格体系を提供していま す。コスト効率の良い災害対策ソリューションが必要な法人・団体様にとって、ニーズの増加に応じてスケール出来る ため、非常に魅力的なソリューションです。 AZ(アベイラビリティーゾーン) Amazon Elastic Compute Cloud (Amazon EC2™)におけるデータセンターの単位で、AZ ごとにデータセンターの場 所や電源供給の系統、ネットワークの系統が異なります。 異なる AZ でサーバを運用することで、運用するシステムの耐障害性を高めることができます。 リージョン Amazon Elastic Compute Cloud (Amazon EC2™)における地域ごとの単位で、存在するリージョンは完全に独立して います。各アベイラビリティーゾーンも独立していますが、同じリージョン内のアベイラビリティーゾーン同士は低レイテンシの リンクで接続されています。 よって異なるリージョンでサーバを運用することで最も運用するシステムの耐障害性を高めることができます。 VPC(Virtual Private Cloud) AWS 上に構築するプライベートクラウド環境であり、ユーザが使用するリソースは全て VPC 上で動作することになりま す。 3 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 3 本書について 本書は、Amazon EC2™上にて、Linux-HA クラスタ(DRBD、Heartbeat および Pacemaker)を使った Apache サーバの構築手順を記載したホワイトペーパーです。 以下、本書では Linux-HA クラスタを使った Apache サーバを「Apache クラスタ」と記載します。 4 AWS 構成 AWS 上に構築するサーバの構成を以下に記載します。 4.1 構成図 構成図を記載します。 AWS の Tokyo リージョンの別 AZ 内に2台のサーバを構築し HA 化します。 4 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 Linux-HA の基本構成図を以下に示します。 AWS 上に構築するシステムの詳細は以下のようになります。 5 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 4.2 OS/ソフトウェア情報 OS、ソフトウェア情報を以下に記載します。 OS 及びソフトウェア 役割 OS HA ソフトウェア名 Red Hat Enterprise Linux バージョン DRBD 8.4.4-7 Heartbeat 3.0.5-1 Pacemaker 1.0.12-1 6.5 4.3 AWS 環境 AWS 環境を以下に記載します。 AWS 構築環境一覧 役割 ホスト名 IF IP アドレス リージョン AZ 10.0.1.127(local) Primary vipha1 eth0 Secondary vipha2 eth0 VIP 54.65.12.87(global) 10.0.2.181(local) 54.65.68.169(global) 10.5.0.2 Tokyo ap-northeast-1a Tokyo ap-northeast-1c Tokyo eth0 のグローバル IP はサーバ(インスタンス)にアクセスするための経路に使用し、eth0 のローカルは DRBD、 Heartbeat、Pacemaker の経路として使用します。 eth0:1 は VIP の切り替え用に使用します。 Apache へは通常 10.5.0.2 でアクセスし、クラスタを切り替えても同じ IP アドレスでアクセスできます。 6 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5 AWS サーバ設定 Apache クラスタとして、利用するサーバを Primary 機、Secondary 機として 2 台構築します。AWS 上で サー バ(インスタンス)を構築する手順を記載します。 まず Primary 機を Amazon EC2™インスタンスとして構築します。 Primary 機、Secondary 機の2台のノードを構築しますが、インスタンスの構築手順は同様になりますので、 Primary 機を構築した例のみを以下に記載します。 5.1 VPC 作成 まずプライベートクラウド環境である VPC を作成します。 以下に手順を記載します。 ・STEP1 Amazon EC2™アカウントにログインし、AmazonWebServices から「VPC」を選択し、VPC 作成画面を開きま す。 ・STEP2 「Start VPC Wizard」ボタンをクリックします。 ・STEP3 画面右下の「Select」をクリックします。 7 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ・STEP4 Subnet を 2 つ設定します。 以下のように設定します。(Primary 機側 Subnet) IP CIDR block: 10.0.0.0/16 VPC name : Public Subnet: 10.0.1.0/24 Availability Zone: ap-northeast-1a Subnet name : Public subnet Enable DNS Hostnamers : Yes Hardware Tenancy : Default 以下のように設定します。(Secondary 機側 Subnet) IP CIDR block: 10.0.0.0/16 VPC name : Public Subnet: 10.0.2.0/24 Availability Zone: ap-northeast-1c Subnet name : Public subnet Enable DNS Hostnamers : Yes Hardware Tenancy : Default 8 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 設定値の入力が終わったら、画面右下の「Create VPC」ボタンを押下します。 「Create VPC」ボタンを押下後に「VPC Successfully Created」と表示されることを確認します。 ※VPC と Subnet の作成は1度のみで Secondary 機作成時には必要はありません。 9 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5.2 Amazon EC2™インスタンス作成 サーバ(インスタンス)を作成します。 以下に手順を記載します。 ・STEP1 Amazon EC2™アカウントにログインし、画面左側のメニューから「Instances」を選択、インスタンス管理画面を 開きます。 ・STEP2 「Launch Instance」ボタンをクリックします。 ・STEP3 画面左側のメニューから「Community AMIs」を選択し、RHEL6.5 の「select」を選択します。 ・STEP4 「t1.micro」を選択し、画面下の「Next:Configure Instance Details」をクリックします。 10 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ・STEP5 「Network」と「subnet」に項番 5.1 で作成したネットワークをそれぞれ選択します。 選択したら「Next: Add Storage」をクリックします。 ・STEP6 デフォルト値のまま「Next: Tag Instance」をクリックします。 ・STEP7 インスタンスの名前を設定します。 Value に名前を入力し「Next:Configure Security Group」をクリックします。 ・STEP8 ファイアウォールを設定します。 解放するポートを入力し「Add Rule」をクリックし1つずつ追加します。 ここでは TCP22/88/7788 UDP694 ポートを設定します。 設定が終わりましたら、「Review and Launch」をクリックします その他開放が必要なポートは適宜設定します。インスタンス作成後も追加設定は可能です。 11 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ・STEP9 設定内容を確認し、問題がなければ”Launch”をクリックします。 ・STEP10 上側のメニューから「Create a new key pair」を選択し、「Key pair name」に秘密鍵の名前を入力します。 入力したら「Download Key Pair」をクリックしローカルパソコンに秘密鍵を保存する。 ※ダウンロードする機会はこの時しかないので、確実に保存できたことを確認してください。 ローカルに秘密鍵のダウンロードが完了したら、「Launch Instances」をクリックします。 ・STEP11 右下の”View Instances”をクリックします。 ・STEP12 インスタンスが作成されていることを確認します。 ・STEP13 インスタンスは 2 台作成します。2 台目を作成する場合は STEP1 に戻ります。 12 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5.3 EC2™インスタンスへ固定 IP アドレス(ErasticIP)の設定 サーバ(インスタンス)にアクセスするためのグローバルアドレスの設定を実施します。 ・STEP1 Amazon EC2™にログインし、ダッシュボードコンソールを開きます。 画面右側の「Erastic IP」ボタンをクリックします。 ・STEP2 アドレス画面が表示されます。画面上部の「Allocate New Address」ボタンをクリックします。 ・STEP3 確認画面が表示されますので、問題なければ「Yes, Allocate」ボタンをクリックします。 ・STEP4 ランダムにグローバル IP アドレスが割り当てられます。 13 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ・STEP5 IP アドレス一覧から新しく割り当てられた IP アドレスを選択して右クリックし、「Associate Address」を選択しま す。 ・STEP6 次に IP アドレスを割り当てるインスタンスを選択します。 Primary 機を選択し、「Associate」ボタンをクリックします。 これらの手順が完了すると、当該のノードは新しい ErasticIP 経由でアクセス出来るようになります。 ErasticIP はサーバ(インスタンス)が起動時のみ IP アドレスの割りあてが可能です。 今回の構築では以下の3つの ElasticIP を取得して構築をしました。 54.65.12.87 54.65.68.169 それぞれの環境に応じた IP アドレスと読み替えて本書をご活用ください。 14 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5.4 ディスク追加 DRBD 用にディスクを追加します。 ・STEP1 左側メニューから「Volume」を選択し、画面上部の「Create Volume」をクリックします。 ・STEP2 追加するディスクの容量を入力し「Create」をクリックします。 15 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ・STEP3 新しく追加したディスクをサーバに接続します。 ディスク一覧画面の「Action」→「Attach Volume」を選択します。 ・STEP4 追加するサーバ(インスタンス)を選択します。 サーバ選択後に右下の「Attach」をクリックします。 以上でディスクの追加は終了です。 新しく追加したディスクに対して、パーティション作成をする fdisk コマンドやファイルシステムを作成する mkfs コマ ンドなどが必要となりますが、一般的な Linux のコマンドとなるために、手順は割愛します。 16 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5.5 ルートテーブル設定 項番 5.1 で作成した 2 つのサブネットに対してルートテーブルを設定します。 VPC の左側メニューの「Route Tables」を選択し該当の 2 つの subnet を設定します。 以下のように設定します。 ・Primary 側の subnet Destination Target 10.0.0.0/16 Local 0.0.0.0/0 Internet Gateways 向け 10.5.0.2/32 Secondary 側の Interface ID ・Secondary 側の subnet Destination Target 10.0.0.0/16 Local 0.0.0.0/0 Internet Gateways 向け 10.5.0.2/32 Primary 側の Interface ID 17 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 5.6 EC2™サーバへの接続 AWS サーバ(インスタンス)へのアクセスは秘密鍵を利用して接続します。 ターミナルの操作方法は割愛します。 5.7 AWS サーバ基本設定 基本的なサーバ設定を実施します。 ■selinux 設定 本書では selinux の設定を disabled に設定します。 以下のように vi コマンドで実施します。 /etc/sysconfig/selinux # vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted ■iptables 設定 本書では全ての設定および動作確認が取れるまでは、iptables の設定を一時的に off にします。 以下のコマンドで iptables を off にします。 # chkconfig iptables off # ■hosts 設定 ホスト名を使用して通信を行うため、ホスト名を設定します。 以下のように vi コマンドで実施します。 # vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.1.127 vipha1 10.0.2.181 vipha2 18 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ■サーバ再起動 サーバの基本設定が終了したら、サーバの再起動をします。 以下のコマンドで再起動を実施します。 # shutdown –r now # 再起動後は「ping」コマンドを使い、対向ノードと疎通できることを確認します。 6 パッケージの追加 Apache クラスタを構築するために必要な各種パッケージを追加します。 パッケージの追加手順を以下に記載します。 6.1 DRBD インストール DRBD のインストール手順を記載します。 本書の例では LINBIT 社(日本国内では株式会社サードウェア)から送付されるお客様用ハッシュキーを利 用し、LINBIT DRBD リポジトリを登録しインストールを行います。 また、LINBIT レポジトリを使用しない、コンパイルを伴うインストール手順はここでは割愛します。 19 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ■DRBD インストール 以下は LINBIT リポジトリを使用した際のインストール手順になります。 # yum install drbd kmod-drbd ===================================================================== Package Arch Version Repository Size ===================================================================== Installing: drbd kmod-drbd x86_64 8.4.4-7.el6 x86_64 8.4.4_2.6.32_431.11.2-7.el6 Installing for dependencies: drbd-bash-completion x86_64 drbd-heartbeat x86_64 drbd-pacemaker x86_64 drbd-udev x86_64 drbd-utils x86_64 drbd-xen x86_64 8.4.4-7.el6 8.4.4-7.el6 8.4.4-7.el6 8.4.4-7.el6 8.4.4-7.el6 8.4.4-7.el6 drbd-8.4 drbd-8.4 28 k 1.3 M drbd-8.4 drbd-8.4 drbd-8.4 drbd-8.4 drbd-8.4 drbd-8.4 7.0 k 8.8 k 27k 5.8 k 265 k 8.3 K Transaction Summary ===================================================================== Install 8 Package(s) Total download size: 1.6 M Installed size: 7.8 M Is this ok [y/N]: y 20 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 6.2 Heartbeat インストール Heartbeat のインストール手順を記載します。 以下は LINBIT リポジトリを使用した際のインストール手順になります。 ■Heartbeat インストール # yum install heartbeat ==================================================================== Package Arch Version Repository Size ===================================================================== Installing: heartbeat x86_64 3.0.5-1.0hg20110617.7e3a82377fa8.el6 linux-ha-clustering 162 k Installing for dependencies: OpenIPMI-libs x86_64 2.0.16-14.el6 rhui-REGION-rhel-server-releases 473 k PyXML x86_64 0.8.4-19.el6 rhui-REGION-rhel-server-releases 892 k cluster-glue x86_64 1.0.9-1.el6 linux-ha-clustering 255 k cluster-glue-libs x86_64 1.0.9-1.el6 linux-ha-clustering 110 k heartbeat-libs x86_64 3.0.5-1.0hg20110617.7e3a82377fa8.el6 linux-ha-clustering 263 k libtool-ltdl x86_64 2.2.6-15.5.el6 rhui-REGION-rhel-server-releases 44 k lm_sensors-libs x86_64 3.1.1-17.el6 rhui-REGION-rhel-server-releases 38 k net-snmp-libs x86_64 1:5.5-49.el6_5.2 rhui-REGION-rhel-server-releases 1.5 M openhpi-libs x86_64 2.14.1-6.el6 rhui-REGION-rhel-server-releases 135 k perl-TimeDate noarch 1:1.16-11.1.el6 rhui-REGION-rhel-server-releases 34 k resource-agents x86_64 3.9.2-40.el6 rhui-REGION-rhel-server-releases 342 Transaction Summary ===================================================================== Install 12 Package(s) Total download size: 4.2 M Installed size: 15 M Is this ok [y/N]: y 21 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 6.3 Pacemaker インストール Pacemaker のインストール手順を記載します。 以下は LINBIT リポジトリを使用した際のインストール手順になります。 ■Pacemaker インストール # yum install pacemaker ==================================================================== Package Arch Version Repository Size ===================================================================== Installing: pacemaker x86_64 1.0.12-1.el6 linux-ha-clustering 669 k Installing for dependencies: libesmtp x86_64 1.0.4-15.el6 rhui-REGION-rhel-server-releases 57 k pacemaker-libs x86_64 1.0.12-1.el6 linux-ha-clustering 256 k Transaction Summary ===================================================================== Install 3 Package(s) Total download size: 982 k Installed size: 3.7 M Is this ok [y/N]: y 22 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 7 DRBD 設定 7.1 DRBD 基本設定 DRBD の基本設定を実施します。 設定が必要なコンフィグファイルは以下のファイルになります。 /etc/drbd.d/global_common.conf /etc/drbd.d/r0.res global_common.conf はインストール後にデフォルトのファイルとして存在しますが、r0.res は新規に作成が必要と なります。 ■global_common.conf 設定 vi エディタ等でコンフィグファイルを修正します。設定値は以下になります。 # vi /etc/drbd.d/global_common.conf global { usage-count no; } common { disk { al-extents 6433; on-io-error detach; c-plan-ahead 20; c-max-rate 10M; c-min-rate 1M; c-fill-target 0; c-delay-target 100; } net { use-rle yes; max-buffers 128k; sndbuf-size 0; rcvbuf-size 0; csums-alg md5; cram-hmac-alg sha1; shared-secret "password"; } } 23 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 ■r0.res 設定 vi エディタ等でコンフィグファイルを作成します。設定値は以下になります。 # vi /etc/drbd.d/r0.res resource r0{ protocol C; device /dev/drbd0; disk /dev/xvdf1; meta-disk internal; on vipha1 { address 10.0.1.127:7788; } on vipha2 { address 10.0.2.181:7788; } } 7.2 DRBD メタデータ作成 メタデータを作成します。 Primary 機、Secondary 機で共に以下のコマンドを実行します。 ■メタデータ作成 # drbdadm create-md r0 Writing meta data... initializing activity log NOT initializing bitmap New drbd meta data block successfully created. 「New drbd meta data block successfully created.」が表示されることで正常にメタデータが作成できたことを 確認します。 DRBD はストレージサイズ 1TB あたり 32MB のメタデータ領域を必要とします。正確なメタデータサイズの計算 方法を含むメタデータついての詳しい情報は、DRBD ユーザーズガイドをご覧ください。 http://www.drbd.jp/users-guide/ch-internals.html#s-meta-data-size 24 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 7.3 DRBD 起動 DRBD を起動します。 Primary 機、Secondary 機で共に以下のコマンドを実行します。 ■DRBD 起動 # service drbd start Starting DRBD resources: [ create res: r0 prepare disk: r0 adjust disk: r0 adjust net: r0 ] ..... # プロンプトが戻ってくることで、接続できていることが確認できます 25 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 7.4 DRBD 初回同期 DRBD の初回同期を起動します。 Primary 機で以下のコマンドを実行します。 ■DRBD 初回同期 # drbdadm primary --force all # プロンプトが戻ってくることで、同期開始を確認します。 次に DRBD 同期中の状態を確認します。 DRBD の初回同期には時間がかかります。ディスクのサイズにより同期完了までの時間が異なります。 以下のコマンドで DRBD 同期の状態を確認します。 ■DRBD 状態確認 # watch cat /proc/drbd Every 2.0s: cat /proc/drbd Thu May 1 15:15:51 2014 version: 8.4.4 (api:1/proto:86-101) GIT-hash: 3c1f46cb19993f98b22fdf7e18958c21ad75176d build by buildsystem@linbit, 2014-04-09 07:59:07 0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r----ns:0 nr:0 dw:0 dr:6194176 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2191428 [=============>......] sync'ed: 73.9% (2140/8188)M finish: 0:03:30 speed: 10,400 (10,236) want: 10,240 K/sec 上記の様に同期完了までの時間が表示されていることで同期が始まっていることを確認できます。 同期が完了すると以下のように表示されます。 # watch cat /proc/drbd Every 2.0s: cat /proc/drbd Thu May 1 16:06:21 2014 version: 8.4.4 (api:1/proto:86-101) GIT-hash: 3c1f46cb19993f98b22fdf7e18958c21ad75176d build by buildsystem@linbit, 2014-04-09 07:59:07 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----ns:0 nr:0 dw:0 dr:8386268 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 「cs:Connected」「ds:UpToDate/UpToDate」となっていることを確認します。 26 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 7.5 DRBD マウント領域準備 DRBD 対象とする領域の準備を実施します。 Apache のデータはすべて「/var/www」に格納されますのでマウントの対象を「/var/www」とします。 ■DRBD 領域のファイルシステム作成 DRBD 領域のファイルシテムを作成します。以下の例ではファイルシステム ext4 を指定します。 # mkfs –t ext4 /dev/drbd0 (省略) # エラープロンプトが返ってこないことを確認します。 ■マウント対象ディレクトリ移動 既存の/var/www のデータを DRBD 領域上にコピーするために一時的に退避します。 # cd /var # mv www www_org # mkdir www # エラープロンプトが返ってこないことを確認します。 ■DRBD 領域マウント # mount /dev/drbd0 /var/www # エラープロンプトが返ってこないことを確認します。 ■マウント確認 # df Filesystem /dev/xvda1 tmpfs /dev/drbd0 1K-blocks Used Available Use% 10321208 2823524 6973448 302240 0 302240 10317472 0 9526084 Mounted on 29% / 0% /dev/shm 0% /var/www 上記のように DRBD 領域に/var/www がマウントされていることを確認します。 ■DRBD 領域に既存データコピー 一時的に退避していた「/var/www_org」を「/var/www」にコピーします。 # cd /var/www_org # cp –r * /var/www エラープロンプトが返ってこないことを確認します。 27 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 8 Apache インストール Apache のインストール手順を記載します。 ■Apache インストール # yum install httpd (省略) Dependencies Resolved ===================================================================== Package Arch Version Repository Size ===================================================================== Installing: httpd x86_64 2.2.15-31.el6_5 rhui-REGION-rhel-server-releases 823 k : Installing for dependencies: apr x86_64 1.3.9-5.el6_2 rhui-REGION-rhel-server-releases 123 k apr-util x86_64 1.3.9-3.el6_0.1 rhui-REGION-rhel-server-releases 87 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 rhui-REGION-rhel-server-releases 15 k httpd-tools x86_64 2.2.15-31.el6_5 rhui-REGION-rhel-server-releases 73 k Transaction Summary ===================================================================== Install 5 Package(s) Total download size: 1.1 M Installed size: 3.6 M Is this ok [y/N]: y 「y」を押下してインストールします。「Complete!」を表示されることを確認します。 28 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 9 Heartbeat 設定 Heartbeat の設定を実施します。 設定が必要なコンフィグファイルは以下のファイルになります。 /etc/ha.d/ha.cf /etc/ha.d/authkeys ■/etc/ha.d/ha.cf 設定 vi エディタ等でコンフィグファイルを修正します。設定値は以下になります。 Primary 機 # vi /etc/ha.d/ha.cf crm yes node vipha1 node vipha2 ucast eth0 10.0.2.181 udpport 694 debugfile /var/log/ha-debug logfile /var/log/ha-log Secondary 機 # vi /etc/ha.d/ha.c crm yes node vipha1 node vipha2 ucast eth0 10.0.1.127 udpport 694 debugfile /var/log/ha-debug logfile /var/log/ha-log ■/etc/ha.d/authkeys 設定 vi エディタ等でコンフィグファイルを修正します。設定値は以下になります。 Primary 機、Secondary 機 # vi /etc/ha.d/authkeys auth 2 #1 crc 2 sha1 ha-vip #3 md5 Hello! 29 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 10 Pacemaker 設定 Pacemaker の設定を実施します。 Pacemaker には設定ファイルがありません。 crm コマンドで設定値を投入する形で設定を実施します。 10.1 crm コマンド開始 Pacemaker の設定は crm コマンドを使用しリソース定義などを実施します。 ■crm コマンド投入 crm コマンドを起動しリソースを設定するために configure モードに移行します。 # crm crm(live)# configure crm(live)configure# 10.2 クラスタのオプション設定 Apache クラスタのオプション設定を実施します。 ■オプション設定 crm コマンドの configure モードのままで以下のコマンドを投入します。 crm(live)configure# crm(live)configure# crm(live)configure# crm(live)configure# property stonith-enabled="false" property no-quorum-policy="ignore" property default-resource-stickiness="200" commit 最後に「commit」コマンドを実行し設定を反映します。 エラーが返って来ないことを確認します。 30 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 10.3 リソース設定 Apache クラスタのリソースを登録します。 ■リソース設定 crm コマンドの configure モードのままで以下のコマンドを一行ずつ投入します。 # crm crm(live)# configure crm(live)configure# primitive res_IPaddr2_1 ocf:heartbeat:IPaddr2 \ params ip="10.5.0.2" nic="eth0" cidr_netmask="24" \ operations $id="res_IPaddr2_1-operations" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" \ op monitor interval="5" timeout="20" start-delay="0" primitive res_drbd_r0 ocf:linbit:drbd \ params drbd_resource="r0" \ op monitor interval="20" primitive res_filesystem ocf:heartbeat:Filesystem \ params device="/dev/drbd0" directory="/h" fstype="ext4" options="noatime" primitive res_httpd ocf:heartbeat:apache \ params port="80" configfile="/etc/httpd/conf/httpd.conf" \ op monitor interval="20s" group rg_https res_filesystem res_IPaddr2_1 res_httpd ms ms_drbd_r0 res_drbd_r0 \ meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" colocation c1 inf: res_filesystem ms_drbd_r0:Master order o1 inf: ms_drbd_r0:promote res_filesystem:start order o2 inf: res_filesystem res_httpd 最後に「commit」コマンドを実行し設定を反映します。 エラーが返って来ないことを確認します。 31 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 10.4 設定確認 crm_mon コマンドで Apache クラスタの設定を確認します。 正常に設定ができている場合は以下のように表示されます。 # crm_mon ============ Last updated: Tue Nov 25 20:13:00 2014 Stack: Heartbeat Current DC: vipha1 (cded47ca-7f83-4c78-8248-4f9f60458867) - partition with quorum Version: 1.0.12-unknown 2 Nodes configured, unknown expected votes 2 Resources configured. ============ Online: [ vipha2 vipha1 ] Resource Group: rg_https res_filesystem (ocf::heartbeat:Filesystem): Started vipha1 res_IPaddr2_1 (ocf::heartbeat:IPaddr2): Started vipha1 res_httpd (ocf::heartbeat:apache): Started vipha1 Master/Slave Set: ms_drbd_r0 Masters: [ vipha1 ] Slaves: [ vipha2 ] Apache クラスタが動作している側で Apache が動作していることを確認します。 # ps aux | grep httpd [root@vipha1 ec2-user]# ps aux | grep httpd root 1772 0.0 0.6 175724 3776 ? /etc/httpd/conf/httpd.conf apache 1775 0.0 0.5 175856 3056 ? /etc/httpd/conf/httpd.conf apache 1777 0.0 0.5 175856 3056 ? /etc/httpd/conf/httpd.conf apache 1778 0.0 0.5 175856 3056 ? /etc/httpd/conf/httpd.conf apache 1779 0.0 0.5 175856 3056 ? /etc/httpd/conf/httpd.conf apache 1782 0.0 0.5 175856 3056 ? /etc/httpd/conf/httpd.conf apache 1784 0.0 0.5 175856 3060 ? /etc/httpd/conf/httpd.conf apache 1786 0.0 0.3 175724 2416 ? /etc/httpd/conf/httpd.conf apache 1787 0.0 0.3 175724 2416 ? /etc/httpd/conf/httpd.conf root 2594 0.0 0.1 103256 832 pts/0 Ss 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S 01:10 0:00 /usr/sbin/httpd -DSTATUS -f S+ 01:12 0:00 grep httpd 32 Amazon EC2™における Linux-HA Apache クラスタ構築手順書 また、対向ノードでは Apache が動作していないことを確認します。 # ps aux | grep httpd [root@vipha1 ec2-user]# ps aux | grep httpd root 2414 0.0 0.1 103252 824 pts/0 S+ 01:19 0:00 grep httpd 33