忍者ブログ

インフラ構築手順書

はじめてのインフラ、サーバ構築時に役に立つように構築手順情報をまとめました。


HOME   »  冗長化構築 HeatBeat2+DRBD構築手順

[PR]

広告 

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



HeartBeat2+DRBD構築 【HeartBeat 基本設定】

広告 

HeartBeat2 基本設定内容

HeartBeat設定内容
ノード1 サーバ名 dev-db01
RIP(物理IP) 10.96.146.100
レプリケーション用IP 192.168.100.103
ノード2 サーバ名 dev-db02
RIP(物理IP) 10.96.146.101
レプリケーション用IP 192.168.100.104
共通 リソース VIP,DRBD,PostgreSQL
VIP 10.96.146.102
ヘルスチェック用PING先1 10.240.10.53
ヘルスチェック用PING先2 10.240.10.56
ファイルシステム
デバイス(マウント)
/dev/drbd0(/db)


 ◆参考情報(Heatbeat設定ファイル)
ファイル名 説明
/etc/ha.d/ha.cf クラスタの基本的な構造の設定用ファイル
/etc/ha.d/autheys ノード間のハードビート通信のためのパスフレーズの記述用ファイル
/var/lib/heartbeat/crm/cib.xml 提供するサービスやノード、ポリシーなどクラスタの詳細な設定ファイル




HeartBeat2 インストール

関連パッケージのインストール
HeartBeatをインストールするのに必要なパッケージをインストールする
# yum install libnet.x86_64
# yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64 
# yum install OpenIPMI-devel.x86_64

SNMPを有効にするために必要なパッケージ(必須ではありません)
# yum install net-snmp-devel.x86_64 net-snmp.x86_64


heartbeat用ユーザの作成
ユーザ名:hacluster、グループ名:haclientのユーザを作成
※UID,GIDについては、任意であるが、両ノードで統一すること。
# groupadd -g 1310 haclient
# useradd -g 1310 -u 1310 -s /sbin/nologin hacluster
※RPMでインストールする場合、事前にユーザを作成しないと、haclusterグループが作成されてしまうため、 両ノードで異なるID番号になってしまう。

GUIクライアントを利用する場合は、haclusterユーザにパスワードを設定する必要がある。
#  passwd hacluster



heartbeatのインストール
CentOSはHeartBeatのパッケージが用意されているので、その標準パッケージをインストールする。
 # yum install heartbeat.x86_64 heartbeat-pils.x86_64 heartbeat-stonith.x86_64 heartbeat-devel.x86_64
※heartbeat-devel.x86_64は必須ではありません。

必須ではないが、HeartBeatのGUIクライアントもインストールしておく。
# yum install heartbeat-gui.x86_64

heartbeatGUIを起動するには、以下コマンドを実行する
# /usr/lib64/heartbeat-gui/haclient.py
※Xのログイン画面よりログイン(ユーザ:hacluster / パスワード :haclusterのパスワード)
※HeartBeatが起動していない場合は、HeartBeatGUIは使用できません。



HeartBeat初期設定

クラスタ設定
クラスタの基本的定義を[/etc/ha.d/ha.cf]ファイルに記述する
# vi /etc/ha.d/ha.cf
#v2設定をするための記述
crm on

#ログ関連
use_logd yes
#ログの出力先ファイルを/etc/ha.d/logd.cfに記述
#logfile /var/log/heartbeat/ha-log
#debugfile /var/log/heartbeat/ha-debug

#システムログへの出力方法
logfacility none

#※ initdead > deadtime > warntime > keepalive
#ハートビートの間隔
keepalive 3

#ハートビートが返ってこないと警告となる時間
warntime 10

#ノードが障害と認知する時間
deadtime 30

#起動時にのみ使用されるノード障害認知時間
initdead 100

#pingの返事がない場合に障害と認知する時間
deadping 40

 #ハートビートで使用するポート
udpport 694

#ノード復旧後にサービスを自動的に戻さない(HeartBeat1のみ)
#auto_failback off

# eth0インターフェースで、相手先ホストにパケットを送信する。
# [for (dev-db02)] ucast eth0 10.96.146.101
# [for (dev-db01)] ucast eth0 10.96.146.100
ucast eth0 10.96.146.101

# eth1インターフェースで、相手先ホストにパケットを送信する。
# [for (dev-db01)] ucast eth1 192.168.100.104
# [for (dev-db02)] ucast eth1 192.168.100.103
ucast eth1 192.168.100.104

#クラスタに参加するノード名(hostnameコマンドで表示されるもの)をすべて記述
node dev-db01
node dev-db02

#リソース監視
#respawn root /usr/lib64/heartbeat/pingd -m 100 -d 5s -a default_ping_set
#ping_group ping_group1 10.240.10.53 10.240.10.56
#respawn hacluster /usr/lib64/heartbeat/ipfail
#apiauth ipfail gid=haclient uid=hacluster
※ucastの値は、プライマリサーバとセカンダリサーバとでは異なる値になるのでそれぞれ書き換える。
※リソース監視設定は、独自監視スクリプトを設定するので、ここでは特に設定をしない。
※Ver.2ではipfailではなく、pingdですが、動きが不明のため独自スクリプトで監視を行う。



Heatbeatのログ設定
「use_logd」を有効にした場合、/etc/logd.cfを作成する必要がある。
テンプレートである「/usr/share/doc/heartbeat-2.1.3/logd.cf」を使って作成する。
# cp /usr/share/doc/heartbeat-2.1.3/logd.cf /etc/logd.cf
# vi /etc/logd.cf
debugfile /var/log/heartbeat/ha-log
logfile /var/log/heartbeat/ha-log
※「use_logd」を有効にした場合、パフォーマンスが向上します。

・Heartbeat用ログディレクトリ作成
# mkdir /var/log/heartbeat
# chown hacluster /var/log/heartbeat
・ログローテート
# vi /etc/logrotate.d/heartbeat
/var/log/heartbeat/ha-debug {
    missingok
}

/var/log/heartbeat/ha-log {
    missingok
}



ノード間のハートビート通信のためのパスフレーズ設定
sha1方式による認証を設定する。パスフレーズは[HAheart77]とする。
# vi /etc/ha.d/authkeys
auth 1
1 sha1 HAheart77

authkeysファイルの権限を変更する。
# chown hacluster /etc/ha.d/authkeys
# chmod 600  /etc/ha.d/authkeys



HeartBeat2+DRBD構築【目次】

01. HeartBeat2+DRBD構築  【DRBD構築手順】
02. HeartBeat2+DRBD構築  【DRBDの起動と確認】
03. HeartBeat2+DRBD構築  【HeartBeat 基本設定】
04. HeartBeat2+DRBD構築  【HeartBeat リソース設定】
05. HeartBeat2+DRBD構築  【Heart運用手順】
06. HeartBeat2+DRBD構築  【DRBD障害対応】
07. HeartBeat2+DRBD構築  【DRBD構築時に発生したエラー】
08. 「HeartBeat+DRBD」の構築手順に役立つ書籍



拍手[2回]



HeartBeat2+DRBD構築 【DRBDの起動と確認】

広告 

DRBDの起動と確認

プライマリサーバでのDRBDの起動
プライマリ側サーバでDRBDを起動する。
# drbdadm up db01

・DRBDの状態確認
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:WFConnection ro:Secondary/Unknown ds:Inconsistent/DUnknown C r----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:6152896
「cs:WFConnection」コネクション状態が接続待ち
「ro:Secondary/Unknown」ローカルサーバがSecundary状態でリモートサーバがUnknown(不明)状態
「ds:Inconsistent/DUnknown」ローカルサーバのデータ状態がInconsistent(一貫性がとれていない)状態


セカンダリサーバでの設定と起動
上記プライマリサーバ同様にDRBDのインストールとDRBDの設定を行い、DRBDを起動する。
・DRBDの状態確認
cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:6152896
 ※「cs:Connected」CS状態がConnectedになっていることを確認する。


データの同期
ここまでの状態では、両サーバがSecondary状態となっており、データの状態もInconsistent(一貫性がない)状態となっています。
プライマリサーバをPrimary状態に変更します。
# drbdsetup /dev/drbd0 primary -o

・同期の進捗状況の確認
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
    ns:725824 nr:0 dw:0 dr:732992 al:0 bm:43 lo:1 pe:297 ua:224 ap:0 ep:1 wo:b oos:5436544
        [=>..................] sync'ed: 11.8% (5308/6008)M delay_probe: 45
        finish: 0:01:14 speed: 73,288 (44,772) K/sec
 ※[=>..................] sync'ed: 11.8%で進捗状態を確認できる。

・同期完了後の状態確認
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----
    ns:6152895 nr:0 dw:0 dr:6152895 al:0 bm:376 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
 ※「ro:Primary/Secondary」ro状態がPrimaryになっていることを確認する。
 ※「ds:UpToDate/UpToDate」ds状態がUpToDateになっていることを確認する。


ファイルシステムの作成
ディスクの同期が完了後、ex3ファイルシステムを作ります。
# mke2fs -j /dev/drbd0
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
  :
  :
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
※プライマリサーバで一度実施する。


・ファイルシステム作成後、マウントする。ここでは/dbにマウントする
# mkdir /db
# mount /dev/drbd0 /db
 ※両サーバで/dbは作成する。mountは、プライマリサーバのみで実施する。


DRBDの自動起動設定
両サーバ上でDRBDの自動起動設定を行う。
# chkconfig --add drbd
# chkconfig drbd on
 ※両サーバで実施する。



HeartBeat2+DRBD構築【目次】

01. HeartBeat2+DRBD構築  【DRBD構築手順】
02. HeartBeat2+DRBD構築  【DRBDの起動と確認】
03. HeartBeat2+DRBD構築  【HeartBeat 基本設定】
04. HeartBeat2+DRBD構築  【HeartBeat リソース設定】
05. HeartBeat2+DRBD構築  【Heart運用手順】
06. HeartBeat2+DRBD構築  【DRBD障害対応】
07. HeartBeat2+DRBD構築  【DRBD構築時に発生したエラー】
08. 「HeartBeat+DRBD」の構築手順に役立つ書籍



拍手[0回]



HeartBeat2+DRBD構築 【DRBD構築手順】

広告 

DRBD構築手順

DRBDのインストールと設定の構築手順を説明します。
※別途説明するクラスタソフトであるHeatBeatと合わせることで、完全な冗長化環境ができる。

DRBDインストール

DRBDとDRBDカーネルモジュールの2つのパッケージをインストールする
# yum install drbd83.x86_64 kmod-drbd83.x86_64
※kernel-develパッケージが必要です。


DRBDの設定

DRBDパーティション設定
・ディスク管理単位を確認する。
# fdisk /dev/sdb
コマンド (m でヘルプ): p

Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
※メタデータ領域として128MBを必要とする。128MB確保するための計算をする。(128*1024*1024)/8225280 = 16.3177

・メタデータ領域とデータ領域を確保する。
メタデータ領域は、管理するミラーディスクリソースにより必要な値が違う。
1つのミラーディスクリソースを管理するためには、128MBより大きい値が必要です。
(128MBちょうどでは警告がでるため、少し大き目の17としている)
# fdisk /dev/sdb
コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-783, default 1):
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-783, default 783): 17

コマンド (m でヘルプ): p

Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          17     136521+  83  Linux


コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 2
最初 シリンダ (17-783, default 17):
Using default value 17
終点 シリンダ または +サイズ または +サイズM または +サイズK (17-783, default 783):
Using default value 783

コマンド (m でヘルプ): w
領域テーブルは交換されました!


DRBD設定ファイルの準備
・ホスト名の確認
# uname -n
dev-db01
※アクティブ側、スタンバイ側のホスト名を確認する

・DRBD設定ファイルの編集(/etc/drbd.conf)
# vi /etc/drbd.conf
global { usage-count no; }
common { syncer { rate 24M; } }

resource db01 {         
  protocol C;  
  handlers {                        
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f"; 
  }
  startup {        
    degr-wfc-timeout 120;    # 2 minutes. 
  }
  disk {  
    on-io-error   call-local-io-error;      
  }

  on dev-db01 {                
    device     /dev/drbd0;      
    disk       /dev/sdb2;      
    address    192.168.100.103:7788;
    meta-disk  /dev/sdb1[0];   
  }
  on dev-db02 {                        
    device     /dev/drbd0;
    disk       /dev/sdb2;
    address    192.168.100.104:7788;
    meta-disk  /dev/sdb1[0];
}
※meta-diskは外部メタデータが推奨(http://www.drbd.jp/doc_biginer.html)
※syncer{rate 24M;}の値は、使用可能なレプリケーション帯域幅の30%程度が適切


カーネルモジュールのロード
DRDBを稼動させるには、カーネルモジュールdrdbを読み込む必要がある。
# modprobe drbd minor_count=1

・モジュール読込みの状態を確認
# /sbin/lsmod | grep drbd
drbd                  277272  0

# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09


メメタデータ領域の初期化
メタデータ領域の初期化をする。引数[db01]は、/etc/drbd.confで定義した同期を行うディスクのリソース名となる。
プライマリ側、セカンダリ側で実施する。
# drbdadm create-md db01
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.


HeartBeat2+DRBD構築【目次】

01. HeartBeat2+DRBD構築  【DRBD構築手順】
02. HeartBeat2+DRBD構築  【DRBDの起動と確認】
03. HeartBeat2+DRBD構築  【HeartBeat 基本設定】
04. HeartBeat2+DRBD構築  【HeartBeat リソース設定】
05. HeartBeat2+DRBD構築  【Heart運用手順】
06. HeartBeat2+DRBD構築  【DRBD障害対応】
07. HeartBeat2+DRBD構築  【DRBD構築時に発生したエラー】
08. 「HeartBeat+DRBD」の構築手順に役立つ書籍



拍手[0回]



Yahoo!ブックマーク Googleブックマーク はてなブックマーク livedoorClip del.icio.us FC2 ニフティクリップ iza Buzzurl 


最新記事
(09/17)
(04/09)
(04/09)
(03/22)
(01/16)
(12/30)
(12/26)
(09/21)
(09/21)
(09/20)
(09/12)
(06/13)
(06/13)
(03/14)
(02/15)
(01/03)
(01/03)
(10/04)
(09/20)
(09/15)
(09/14)
(09/14)
(09/14)
(09/06)
(08/30)
最古記事
(10/29)
(10/29)
(10/29)
(10/29)
(10/29)
(04/12)
(04/12)
(06/12)
(06/12)
(06/20)
(06/22)
(07/22)
(07/22)
(07/30)
(07/30)
(08/18)
(08/18)
(08/22)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)
(08/24)


PR

Copyright © インフラ構築手順書 : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

検索フォーム

カスタム検索

フリーエリア

ESXiの基本設定・運用設定
ESXiのSSH設定
ESXiの NTP設定
VMware ESXiでの時刻同期(NTP)ペストプラクティス
ESXiのゲストOS(仮想マシン)複製
ESXiのOVF形式で複製
異なるESXiバージョン間の複製(移行)
クローン作成後の後処理
仮想マシンのLVM追加
仮想共有ディスクファイルの作成
ESXi上でハイパーバイザーを稼動させる
パフォーマンスがでないとき確認すること


サーバ構築手順
ESXi上でRACを構築する
GFS2+DRBD構築
PaceMaker+MySQLレプリケーション構築
PaceMaker+DRBD構築
HeartBeat2+DRBD構築


Solarisの構築手順
Solarisのネットワーク設定変更
Solarisのホスト名変更
Solaris11のresolv.conf変更手順
Solaris11のHDD増設手順


AWS(Amazon Web Service)の基本設定・運用設定
S3 WEBサイトの構築
S3 WEBサイトのアクセス制限
S3 WEBサイトのリダイレクト設定


Windows Azureの基本設定・運用設定
AzureでWordpress構築
英語版Wordpressを日本語化する
AzureWebサイトの独自ドメイン設定
AzureWebサイトのモード変更
WEBアクセスログ解析ツールの比較


WordPressの基本設定・運用設定
WordPressの基本構造
WordPressのインストール手順
Wordpressマルチサイト機能
「続き読む(more)」カスタマイズ
Wordpressの独自PHP
Wordpressをサブディレクトリに移す
既存サブディレクトリをルートディレクトリとする
Wordpressが利用可能な共用ホスティング


Postfix構築
Postfixにおける暗号化したSMTP認証設定


SoftEtherVPNの構築
ESXi上のSoftEtherVPN構築
DDNSと組み合わせたSoftEtherVPNの設定


LinuxのAD連携
LinuxのActiveDirectory連携について
PAM認証でAD連携
ApacheでAD連携(LDAP認証)
ApacheでAD連携(Kerberos認証)
SAMBAで2台目DCサーバを構築
RedmineとGitのLDAP(AD)認証設定
JenkinsのLDAP(ActiveDirectory)認証設定


Redmine設定
Alminium(RedmineとGit/SVN)のインストール手順
RedmineとGitのLDAP(AD)認証設定
RedmineとGitの移行
JenkinsのLDAP(ActiveDirectory)認証設定


サーバの基本設定・運用設定
Apache
Apacheの基本設定
Apacheの仮想ホスト設定
PHPの基本設定
Nginxのロードバランサ設定
WebDAV構築手順
アンチウィルス
無償アンチウィルス(ClamAV)の導入手順
システム監視
システム監視ソフトMuninの導入手順
システム監視ソフトZabbixの導入手順
sarによるリソース使用情報取得


サーバ移行
Mysqlマイグレーション
MySQLマイグレーション時の問題点と解決策
Windows
Windows OS評価版からの移行
SQL Server評価版からの移行
クラスタソフト
クラスタソフトの比較

ツリーカテゴリ

広告ーSEO





人気ブログランキングへ
にほんブログ村 IT技術ブログ Webサイト構築へ

ブログ王ランキングに参加中!


最新トラックバック

バーコード

アフィリエイト2