NFSサーバー · 1 min read · Nov 18, 2025

高可用性NFSサーバーの設定 - ページ4

8 heartbeatのインストールと設定

heartbeatは、この全体のセットアップの制御インスタンスです。server1server2にインストールされ、他のサーバーを監視します。例えば、server1がダウンした場合、server2heartbeatがこれを検出し、server2が引き継ぎます。heartbeatはまた、server1server2の両方でNFSサーバーを開始および停止します。また、ウェブサーバークラスターのノードが1つのNFSサーバーのみを認識できるように、IPアドレス192.168.0.174を介してNFSを仮想サービスとして提供します。

まず、heartbeatをインストールします:

server1/server2:

apt-get install heartbeat

次に、heartbeatのために3つの設定ファイルを作成する必要があります。それらはserver1server2で同一でなければなりません!

server1/server2:

/etc/heartbeat/ha.cf:

| logfacility local0 keepalive 2 #deadtime 30 # USE THIS!!! deadtime 10 bcast eth0 node server1 server2 |

ノード名として、server1server2での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は、server1server2の2つのheartbeatデーモンが相互に認証するために使用するパスワードです。ここでは自分の文字列を使用してください。3つの認証メカニズムの中から選択できます。私は最も安全なmd5を使用します。

/etc/heartbeat/authkeysはrootのみに読み取り可能であるべきなので、次のようにします:

server1/server2:

chmod 600 /etc/heartbeat/authkeys

最後に、server1server2で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

server2ifconfigdf -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も表示されるはずです!

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。