...

Amazon EC2™環境における

by user

on
Category: Documents
20

views

Report

Comments

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
Fly UP