本番環境での高可用性NFSファイルサーバ(2)


五、Heartbeatの配置過程
実際のサーバ間の接続はクロスラインで接続されており、簡単で効率的な原則に基づいて、直接購入すればよい.
1.2台のホストに同じインストールを行う.
 

  
  
  
  
  1. yum -y install heartbeat  
  2. # , , heartbeat , 。  
  3. Heartbeat 3 .  
  4. /etc/ha.d/ha.cf  
  5. /etc/ha.d/haresources  
  6. /etc/ha.d/authkeys  
  7. /etc/ha.d/resource.d/killnfsd 

 
2.2つのセクションの構成のプロファイルはすべて同じで、ファイルの内容は以下の通りです.
 

  
  
  
  
  1. logfile         /var/log/ha-log  
  2. # HA  
  3. logfacility     local0  
  4. keepalive       2  
  5. # ( ) 2  
  6. deadtime        5  
  7. # 5  
  8. ucast           eth1 10.0.0.2  
  9. # ,IP IP  
  10. auto_failback   off  
  11. # ,  
  12. node            centos1.7788.com  centos2.7788.com  
  13. #  

 
2.デュアルマシン相互接続検証ファイルの編集:authkeys
 

  
  
  
  
  1. [root@centos1 ha.d]# vim /etc/ha.d/authkeys  
  2. auth 1  
  3. 1 crc  
  4. //  /etc/ha.d/authkeys 600 .  
  5. [root@centos1 ha.d]# chmod 600 /etc/ha.d/authkeys  
  6. [root@centos2 ha.d]# chmod 600 /etc/ha.d/authkeys 

 
3.クラスタリソースファイルの編集:haresources
 

  
  
  
  
  1. [root@centos1 ha.d]# vim /etc/ha.d/haresources  
  2. centos1.7788.com IPaddr::192.168.4.194/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/d::ext3 killnfsd  
  3. # , centos2.7788.com 

 
4.スクリプトファイルkillnfsdを編集します.目的は、nfsサービスを再起動することです.これは、NFSサービスが切り替わった後、nfsが共有したディレクトリを再mountしなければならないためです.そうしないとstale NFS file handleのエラーが発生します.
 

  
  
  
  
  1. #[root@centos1 ha.d]# vim /etc/ha.d/resource.d/killnfsd  
  2. #killall -9 nfsd; /etc/init.d/nfs restart; exit 0  
  3. #[root@centos1 ha.d]# chmod 755 /etc/ha.d/resource.d/killnfsd 

 
5.二つのノードでHeartbeatを起動すればよく、まずメインノードで起動する

  
  
  
  
  1. [root@centos1 /]# service heartbeat start  
  2. [root@centos2 /]# service heartbeat start  
  3. # , 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で:

  
  
  
  
  1. drbdadm secondary r0  
  2. drbdadm disconnect all  
  3. drbdadmin -- --discard-my-data connect r0 

 
ii.primaryで:

  
  
  
  
  1. drbdadm disconnect all  
  2. drbdadm connect r0 

 
テスト四、Primaryがハードウェア破損のため、SecondaryをPrimayホストに生成する必要があると仮定し、どのように処理するか、方法は以下の通りである.
primatyホストでは、まずDRBDデバイスをアンインストールする.
[root@centos1/]# umount/d
ホストを「スペア」に降格
 

  
  
  
  
  1. [root@centos1 /]# drbdadm secondary r0  
  2. [root@centos1 /]# cat /proc/drbd  
  3. 1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r— 

 
現在、2台のホストは「スペア」です.
スペアcentos 2で「ホスト」にアップグレードします.
 

  
  
  
  
  1. [root@centos2 /]# drbdadm primary r0  
  2. [root@centos2 /]# cat /proc/drbd  
  3. 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r— 

 
今centos 2がホストになりました.
これで、実験全体が終わりました.多くのテストと総括をして、数十回後に完全にその用法を掌握することを提案して、みんなのHappyが先になることを祈ります.