No.1ベストアンサー
- 回答日時:
高可用性クラスタを実現する前に
いくつかチェックポイントがあるんですけど。
(1)高可用性クラスタの知識はお持ちですか?
(2)求めるのはIPエイリアス方式のIPテイクオーバですか?
(3)テイクオーバポリシーは、どのようなものですか?
(カスケーディング、ローテーティングなど)
(4)非IPネットワークに何を使います?
(5)稼働させるアプリケーションは何ですか?
(6)商用(賠償責任がある)システムを構築予定ですか?
(1)がない場合は無理です。
(2)~(5)が明確でなくては商用HA製品を購入しても扱いきれません。
(6)が該当するのであれば、考え直すことを強く奨めます。
SSHとシェルスクリプトだけで実現する簡単な方法を
提案しておきます。基本的な考え方は商用ソフトと同じです。
前提条件
*サービスIPは192.168.0.100とする。
*起動IPはHostA:192.168.0.1、HostB:192.168.0.2とする。
*NFSサーバ(HostC)を共有ディスク(コンテンツがある場所)とする。
*サービスアプリケーションはWebサーバとFTPサーバとする。
*ゲートウェイのIPアドレスは192.168.0.254とする。
*イーサネットはHostA,B共にeth0とする。
*ゲートウェイに1パケットPINGを打ち、中継するスイッチのMACテーブルを書き換える為。
以下のスクリプトを2つのサーバに置いておきます。
ha_host_active.sh
#!/bin/sh
/sbin/ifconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up
/bin/ping -c 1 -I "eth0:0" 192.168.0.254 > /dev/null
/bin/mount -at nfs
/etc/init.d/httpd start
/etc/init.d/ftpd start
ha_host_standby.sh
#!/bin/sh
/etc/init.d/ftpd stop
/etc/init.d/httpd stop
/bin/umount -at nfs
/sbin/ifconfig eth0:0 down
以下のスクリプトを管理クライアントPCに置いておきます。
takeover_a2b.sh
#!/bin/sh
/usr/bin/ssh root@192.168.0.1 ha_host_standby.sh
/usr/bin/ssh root@192.168.0.2 ha_host_active.sh
takeover_b2a.sh
#!/bin/sh
/usr/bin/ssh root@192.168.0.2 ha_host_standby.sh
/usr/bin/ssh root@192.168.0.1 ha_host_active.sh
これでHostAで稼働中でHostBにテイクオーバーしたい場合、
管理クライアントPCでtakeover_a2b.shと実行。
HostBで稼働中でHostAにテイクオーバーしたい場合、
管理クライアントPCでtakeover_b2a.shと実行。
まず、(1)についてですがSolarisでFirstWatch(べりタス社製)を扱ったことがあります。
(2)ですがIPテークオーバーになるかな?バーチャルIPを設定して,そのIPを引き継ぐといった方式です。
つまり、Host-Aの固有IP、Host-Bの固有IP、VIPの3個のIPが必要です。
(3)ポリシーは、通常はHost-A、Bとも稼動していますが、Host-Bではアプリは起動させません。Host-Aに障害が発生した場合は、IP切り替え後、手動でHost-Bでアプリを起動します。
(4)(5)についてはこれからですね。用途はメールサーバです。
(6)は障害復旧に10分もあればいいシステムです。
*商用ではないということです。
提示されたシェルで大体の感覚(?)はわかりました。ここまでくれば構築できます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 固定IP MACアドレスはLAN内で相手を特定するアドレスですか? PCから監視カメラを閲覧するときに、セグメ 3 2022/07/23 09:04
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- FTTH・光回線 グローバルIPアドレスの変更について 1 2022/04/23 05:32
- VPN 接続のたびにIPが変わるVPNサービスが知りたい 2 2022/06/27 02:34
- Wi-Fi・無線LAN iPhoneのIPアドレスは機内モードをオンで変わるように、無線ルーターも何かの方法で変更できる? 2 2022/04/02 14:37
- ネットワーク 自作のサーバーPCが自宅内のネットワークに接続できない 3 2023/01/24 16:58
- VPN 無料のwifiはなぜ危険性高い? VPN プライベートDNSモードにすれば安全? 2 2022/06/04 18:23
- セキュリティホール・脆弱性 テレワークで会社支給パソコン以外でVPN接続を制限するやり方 教えて下さい 3 2022/08/31 12:40
- 固定IP iPhoneでのIPv4切り替え方法 3 2022/11/24 22:26
- ネットワーク IPアドレスの範囲ってどうやって求めるんですか? 2 2023/01/05 01:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
crontabでjavaだけが上手く動い...
-
apachectl start command not f...
-
cronで実行できない
-
cronでifconfigコマンドを使用...
-
シェルスクリプト実行で”そのよ...
-
crontabでsql/plusの起動
-
ldapaddコマンドでエラー
-
sudoでNOPASSWDとしてもパスワ...
-
cgiのcron設定について(コアサ...
-
hp-uxで時間(時計)を合...
-
【UNIX】unzip がcron で作動し...
-
Bシェルで文字列が日付として正...
-
自動パスワード入力でscpするス...
-
CRONを使ってshファイルの書き...
-
主モニタと副モニタを切り替え...
-
bad interpreterで、シェルが使...
-
お教えください:TOMCATの起動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
ロケールをutf8からsjisにする...
-
crontabでsql/plusの起動
-
自動パスワード入力でscpするス...
-
apachectl start command not f...
-
Linuxでシェルスクリプトがフル...
-
cron(javaプログラム)からroot...
-
シェルスクリプトで$RANDOMの値...
-
Linuxで自作バッチファイルの置...
-
cronの@rebootでのdateコマンド...
-
ログイン時にエラーメッセージ...
-
bad interpreterで、シェルが使...
-
mekeコマンド
-
Cronジョブの終了時刻を簡単に...
-
sudoでNOPASSWDとしてもパスワ...
-
/usr/local/bin/rubyを実行する...
-
Bシェルで文字列が日付として正...
おすすめ情報