ラズベリーパイ2

CARP/HAST

2台のラズベリーパイ2が仮想的に1つのIPアドレスと

ディスクを持ちます。

基本的な実験なので実用性はありません。



(このページは画像をクリックできません)

2つのラズベリーパイ2(192.168.0.50と60)のコンソールをノートPCからアクセスするための前準備です。ノートPCのTeraTermからSSHでrootでログインできるように設定します。



ここを参考にTeraTermでSSHで自動ログインするためのマクロを作成します。枠内のアドレスとユーザ名、パスワードデータと秘密鍵ファイルを指定します。


TeraTermに付属のttpmenuを使って、それぞれのサーバ用に自動ログインスクリプトを用意して設定します。枠内に自動ログインスクリプトファイルを設定します。


タスクバーから簡単に指定したサーバにSSHで直ぐにログインできるようになります。


初めに、CARPの設定です。こことここを参考にして、/boot/loader.confと/etc/rc.confを設定します。設定後の確認です。server1です。マスタに、server2はバックアップになります。


続いて、HASTの設定です。上記のサイトを参考にして仮想ディスクを作り、/etc/hast.confを設定します。設定後の確認します。server1はプライマリのディスクになります。


server2です。セカンダリのディスクになっています。


コマンドを実行して、server1をバックアップに切り替えます。これでserver2はマスタになります。


server1のHASTのディスクはセカンダリに変わり、server2はプライマリになります。


ここから、故障のシミュレーションです。現在プライマリのserver2をシャットダウンします。セカンダリだったserver1はデグレードプライマリになります。


server2を再起動します。server1はプライマリに、server2はセカンダリになります。


server1をシャットダウンします。
server2はデグレードプライマリになります。


server1の電源投入します。server1はセカンダリに、server2はデグレードプライマリからプライマリになります。


server1(セカンダリ)、server2(プライマリ)の順でshutdownします。その後、server1(前セカンダリ)、server2(前プライマリ)の順番で電源を投入します。server1はプライマリ、server2はセカンダリになります。ここまで、予想の通りの動作をしています。


HUB故障やケーブル切断のシミュレーション。server1(現プライマリ)のLANケーブルを約1分間抜きます。server2はデグレードプライマリになります。その後、server1のLANケーブルを刺してもserver1のステータスは”−”になり元の状態には戻りません。


dmesgでは"Aug 15 02:58:06server2 hastd[839]: [disk1] (primary) Split-brain condition!"と表示されます。ここを参考にserver1(セカンダリ側)で"hastctl create disk1"を実行します。正常なセカンダリに戻ります。


server2側ではダーティが16GBになり、少しづつ減っていきます。その後0GBになります。結局create diskを実行すると、16GB分同期する必要があります。ただ、LANケーブルを1分間抜いただけでスプリットブレインになるのか不思議です。今回はとりあえず、ここまで。




back


line