NFSサーバー · 1 min read · Nov 18, 2025
高可用性NFSサーバーの設定 - ページ4
8 heartbeatのインストールと設定
heartbeatは、この全体のセットアップの制御インスタンスです。server1とserver2にインストールされ、他のサーバーを監視します。例えば、server1がダウンした場合、server2のheartbeatがこれを検出し、server2が引き継ぎます。heartbeatはまた、server1とserver2の両方でNFSサーバーを開始および停止します。また、ウェブサーバークラスターのノードが1つのNFSサーバーのみを認識できるように、IPアドレス192.168.0.174を介してNFSを仮想サービスとして提供します。
まず、heartbeatをインストールします:
server1/server2:apt-get install heartbeat
次に、heartbeatのために3つの設定ファイルを作成する必要があります。それらはserver1とserver2で同一でなければなりません!
server1/server2:/etc/heartbeat/ha.cf:
| logfacility local0 keepalive 2 #deadtime 30 # USE THIS!!! deadtime 10 bcast eth0 node server1 server2 |
ノード名として、server1とserver2でのuname -nの出力を使用しなければなりません。
server1/server2:/etc/heartbeat/haresources:
| server1 IPaddr::192.168.0.174/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 nfs-kernel-server |
最初の単語は、server1でのuname -nの出力です。ファイルをserver1またはserver2のどちらで作成しても関係ありません!IPaddrの後に仮想IPアドレス192.168.0.174を置き、drbddiskの後に、ここでは r0というDRBDリソースのリソース名を使用します(これは/etc/drbd.confで使用するリソース名です - 別のものを使用する場合は、ここでもそれを使用しなければなりません)。
server1/server2:/etc/heartbeat/authkeys:
| auth 3 3 md5 somerandomstring |
somerandomstringは、server1とserver2の2つのheartbeatデーモンが相互に認証するために使用するパスワードです。ここでは自分の文字列を使用してください。3つの認証メカニズムの中から選択できます。私は最も安全なmd5を使用します。
/etc/heartbeat/authkeysはrootのみに読み取り可能であるべきなので、次のようにします:
server1/server2:chmod 600 /etc/heartbeat/authkeys
最後に、server1とserver2でDRBDとheartbeatを起動します:
server1/server2:/etc/init.d/drbd start
/etc/init.d/heartbeat start
9 最初のテスト
これで最初のテストを行うことができます。server1で、次を実行します。
server1:ifconfig
出力に仮想IPアドレス192.168.0.174が表示されるはずです:
| eth0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.172 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fea1:c59b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:18992 errors:0 dropped:0 overruns:0 frame:0 TX packets:24816 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2735887 (2.6 MiB) TX bytes:28119087 (26.8 MiB) Interrupt:177 Base address:0x1400 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.174 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0x1400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:71 errors:0 dropped:0 overruns:0 frame:0 TX packets:71 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5178 (5.0 KiB) TX bytes:5178 (5.0 KiB) |
また、server1で次を実行します。
server1:df -h
server1でこれを実行すると、/dataがリストに表示されるはずです:
| Filesystem Size Used Avail Use% Mounted on /dev/sda5 4.6G 430M 4.0G 10% / tmpfs 126M 0 126M 0% /dev/shm /dev/sda1 89M 11M 74M 13% /boot /dev/drbd0 24G 33M 23G 1% /data |
同様に、
server2:ifconfig
df -h
server2でこれを実行すると、192.168.0.174と/dataは表示されないはずです。
次に、server1の/data/exportにテストファイルを作成し、heartbeatを停止してserver1のサーバー障害をシミュレートします:
server1:touch /data/export/test1
/etc/init.d/heartbeat stop
server2でifconfigとdf -hを実行すると、192.168.0.174のIPアドレスと/dataパーティションが表示され、
server2:ls -l /data/export
は、以前にserver1で作成したファイルtest1をリストするはずです。つまり、それはserver2にミラーリングされています!
次に、server2で別のテストファイルを作成し、server1が再起動したときにそれがミラーリングされるかどうかを確認します:
server2:touch /data/export/test2
server1:/etc/init.d/heartbeat start
(数秒待ちます。)
ifconfig
df -h
ls -l /data/export
server1で再び192.168.0.174と/dataが表示されるはずです。これは、再び引き継いだことを意味します(プライマリとして定義したため)、また、ファイル/data/export/test2も表示されるはずです!
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。