本番環境での高可用性NFSファイルサーバ(2)
五、Heartbeatの配置過程
実際のサーバ間の接続はクロスラインで接続されており、簡単で効率的な原則に基づいて、直接購入すればよい.
1.2台のホストに同じインストールを行う.
2.2つのセクションの構成のプロファイルはすべて同じで、ファイルの内容は以下の通りです.
2.デュアルマシン相互接続検証ファイルの編集:authkeys
3.クラスタリソースファイルの編集:haresources
4.スクリプトファイルkillnfsdを編集します.目的は、nfsサービスを再起動することです.これは、NFSサービスが切り替わった後、nfsが共有したディレクトリを再mountしなければならないためです.そうしないとstale NFS file handleのエラーが発生します.
5.二つのノードでHeartbeatを起動すればよく、まずメインノードで起動する
六、テスト
私のオンライン環境はすでに安定しているので、このテスト結果はみんなにDRBD+Heartbeatを熟知させます.このステップを終えてからテストをして、Heartbeatが本当の熱切り替えができるかどうかを見ることをお勧めします.
テスト1、別のFreeBSD 8の下で192.168.4.194:/dをマウントし、中にデータを書く時、突然主DRBDを再起動し、この時の書き込みデータに影響があるかどうかを見て、DRBD+Heartbeatの正常な切り替えにはまだ時間がかかることを発見した.
テスト2、正常な状態でPrimary機をオフにして、それからデータに問題があるかどうかを見て、DRBDのstatusを観察します;その後、ホストが起動してから変化を観察し、その後secondaryをオフにしてから起動し、DRBDの変化とHeartbeatが働いたかどうかを観察します.
テスト3、primaryのeth 0をifdownに渡し、secondary上で直接メインのアップグレードを行い、mountにもあげたと仮定すると、primary上でコピーしたファイルが確実に同期していることがわかります.その後primaryのeth 0を回復した後、主従関係を自動的に回復していないことを発見し、サポートクエリーを経て、drbd検出でSplit-Brainが現れた状況を発見し、2つのノードはそれぞれstandaloneし、故障描写は以下の通りである:Split-Brain detected、dropping connection!このインスタント伝説の脳が裂けて、DRBD公式は手動で回復することを推薦します(生産環境の下でこの確率の機会が低いので、誰が故障して生産中のサーバーに触れることができます)
以下、Split-Brainの状況を手動で回復します.
i.secondaryで:
ii.primaryで:
テスト四、Primaryがハードウェア破損のため、SecondaryをPrimayホストに生成する必要があると仮定し、どのように処理するか、方法は以下の通りである.
primatyホストでは、まずDRBDデバイスをアンインストールする.
[root@centos1/]# umount/d
ホストを「スペア」に降格
現在、2台のホストは「スペア」です.
スペアcentos 2で「ホスト」にアップグレードします.
今centos 2がホストになりました.
これで、実験全体が終わりました.多くのテストと総括をして、数十回後に完全にその用法を掌握することを提案して、みんなのHappyが先になることを祈ります.
実際のサーバ間の接続はクロスラインで接続されており、簡単で効率的な原則に基づいて、直接購入すればよい.
1.2台のホストに同じインストールを行う.
- yum -y install heartbeat
- # , , heartbeat , 。
- Heartbeat 3 .
- /etc/ha.d/ha.cf
- /etc/ha.d/haresources
- /etc/ha.d/authkeys
- /etc/ha.d/resource.d/killnfsd
2.2つのセクションの構成のプロファイルはすべて同じで、ファイルの内容は以下の通りです.
- logfile /var/log/ha-log
- # HA
- logfacility local0
- keepalive 2
- # ( ) 2
- deadtime 5
- # 5
- ucast eth1 10.0.0.2
- # ,IP IP
- auto_failback off
- # ,
- node centos1.7788.com centos2.7788.com
- #
2.デュアルマシン相互接続検証ファイルの編集:authkeys
- [root@centos1 ha.d]# vim /etc/ha.d/authkeys
- auth 1
- 1 crc
- // /etc/ha.d/authkeys 600 .
- [root@centos1 ha.d]# chmod 600 /etc/ha.d/authkeys
- [root@centos2 ha.d]# chmod 600 /etc/ha.d/authkeys
3.クラスタリソースファイルの編集:haresources
- [root@centos1 ha.d]# vim /etc/ha.d/haresources
- centos1.7788.com IPaddr::192.168.4.194/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/d::ext3 killnfsd
- # , centos2.7788.com
4.スクリプトファイルkillnfsdを編集します.目的は、nfsサービスを再起動することです.これは、NFSサービスが切り替わった後、nfsが共有したディレクトリを再mountしなければならないためです.そうしないとstale NFS file handleのエラーが発生します.
- #[root@centos1 ha.d]# vim /etc/ha.d/resource.d/killnfsd
- #killall -9 nfsd; /etc/init.d/nfs restart; exit 0
- #[root@centos1 ha.d]# chmod 755 /etc/ha.d/resource.d/killnfsd
5.二つのノードでHeartbeatを起動すればよく、まずメインノードで起動する
- [root@centos1 /]# service heartbeat start
- [root@centos2 /]# service heartbeat start
- # , 192.168.4.194:/d /mnt/data ,client NFS 。
六、テスト
私のオンライン環境はすでに安定しているので、このテスト結果はみんなにDRBD+Heartbeatを熟知させます.このステップを終えてからテストをして、Heartbeatが本当の熱切り替えができるかどうかを見ることをお勧めします.
テスト1、別のFreeBSD 8の下で192.168.4.194:/dをマウントし、中にデータを書く時、突然主DRBDを再起動し、この時の書き込みデータに影響があるかどうかを見て、DRBD+Heartbeatの正常な切り替えにはまだ時間がかかることを発見した.
テスト2、正常な状態でPrimary機をオフにして、それからデータに問題があるかどうかを見て、DRBDのstatusを観察します;その後、ホストが起動してから変化を観察し、その後secondaryをオフにしてから起動し、DRBDの変化とHeartbeatが働いたかどうかを観察します.
テスト3、primaryのeth 0をifdownに渡し、secondary上で直接メインのアップグレードを行い、mountにもあげたと仮定すると、primary上でコピーしたファイルが確実に同期していることがわかります.その後primaryのeth 0を回復した後、主従関係を自動的に回復していないことを発見し、サポートクエリーを経て、drbd検出でSplit-Brainが現れた状況を発見し、2つのノードはそれぞれstandaloneし、故障描写は以下の通りである:Split-Brain detected、dropping connection!このインスタント伝説の脳が裂けて、DRBD公式は手動で回復することを推薦します(生産環境の下でこの確率の機会が低いので、誰が故障して生産中のサーバーに触れることができます)
以下、Split-Brainの状況を手動で回復します.
i.secondaryで:
- drbdadm secondary r0
- drbdadm disconnect all
- drbdadmin -- --discard-my-data connect r0
ii.primaryで:
- drbdadm disconnect all
- drbdadm connect r0
テスト四、Primaryがハードウェア破損のため、SecondaryをPrimayホストに生成する必要があると仮定し、どのように処理するか、方法は以下の通りである.
primatyホストでは、まずDRBDデバイスをアンインストールする.
[root@centos1/]# umount/d
ホストを「スペア」に降格
- [root@centos1 /]# drbdadm secondary r0
- [root@centos1 /]# cat /proc/drbd
- 1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r—
現在、2台のホストは「スペア」です.
スペアcentos 2で「ホスト」にアップグレードします.
- [root@centos2 /]# drbdadm primary r0
- [root@centos2 /]# cat /proc/drbd
- 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r—
今centos 2がホストになりました.
これで、実験全体が終わりました.多くのテストと総括をして、数十回後に完全にその用法を掌握することを提案して、みんなのHappyが先になることを祈ります.