このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
一般的なKeepalived高可用性構成は、1つのプライマリ・サーバーと1つ以上のバックアップ・サーバーで構成されます。 「VRRPインスタンス」として定義された1つ以上の仮想IPアドレスが、ネットワーク・クライアントにサービスを提供できるように、プライマリ・サーバー・ネットワーク・インタフェースに割り当てられます。 バックアップ・サーバーは、プライマリ・サーバーが定期的に送信するマルチキャストVRRP通知パケットを待機します。 デフォルトの通知間隔は1秒です。 バックアップ・ノードが3つの連続したVRRP通知を受信できない場合、優先順位がもっとも高いバックアップ・サーバーがプライマリ・サーバーとして引き継がれ、仮想IPアドレスが独自のネットワーク・インタフェースに割り当てられます。 複数のバックアップ・サーバーの優先度が同じ場合、IPアドレス値が最も高いバックアップ・サーバーがプライマリ・サーバーになります。
次の例では、Keepalivedを使用して2つのサーバー上に単純なフェイルオーバー構成を実装します。 1つのサーバーがプライマリ・サーバーとして機能し、もう1つのサーバーがバックアップとして機能します。 プライマリ・サーバーの優先度がバックアップ・サーバーより高くなっています。
「図17.2」は、仮想IPアドレス10.0.0.100
がプライマリ・サーバー(10.0.0.71
)に最初に割り当てられる方法を示します。 プライマリ・サーバーで障害が発生すると、バックアップ・サーバー(10.0.0.72
)が新しいプライマリ・サーバーになり、仮想IPアドレス10.0.0.100
が割り当てられます。
/etc/keepalived/keepalived.conf
では、プライマリ(マスター)サーバー上で次の構成を使用できます:
global_defs {
notification_email {
root@mydomain.com
}
notification_email_from svr1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_instance VRRP1 {
state MASTER
# Specify the network interface to which the virtual address is assigned
interface eth0
# The virtual router ID must be unique to each VRRP instance that you define
virtual_router_id 41
# Set the value of priority higher on the master server than on a backup server
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1066
}
virtual_ipaddress {
10.0.0.100/24
}
}
バックアップ・サーバーの構成は、notification_email_from
、state
、priority
、およびinterface
(システム・ハードウェア構成が異なる場合)の値を除き同じです:
global_defs { notification_email { root@mydomain.com } notification_email_from svr2@mydomain.com smtp_server localhost smtp_connect_timeout 30 } vrrp_instance VRRP1 { state BACKUP # Specify the network interface to which the virtual address is assigned interface eth0 virtual_router_id 41 # Set the value of priority lower on the backup server than on the master server priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1066 } virtual_ipaddress { 10.0.0.100/24 } }
プライマリ・サーバー(svr1)
で障害が発生すると、keepalived
は、バックアップ・サーバー(svr2
)上のeth0
インタフェースに仮想IPアドレス10.0.0.100/24
を割り当て、これがプライマリ・サーバーになります。
サーバーがプライマリ・サーバーとして動作しているかどうかを確認するには、ipコマンドを使用して仮想アドレスがアクティブかどうかを確認できます:
# ip addr list eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:a6:8d brd ff:ff:ff:ff:ff:ff
inet 10.0.0.72/24 brd 10.0.0.255 scope global eth0
inet 10.0.0.100/24 scope global eth0
inet6 fe80::a00:27ff:fecb:a68d/64 scope link
valid_lft forever preferred_lft forever
次のように、状態間の遷移を示す/var/log/messages
内のKeepalivedメッセージを検索することもできます:
...51:55 ... VRRP_Instance(VRRP1) Entering BACKUP STATE ... ...53:08 ... VRRP_Instance(VRRP1) Transition to MASTER STATE ...53:09 ... VRRP_Instance(VRRP1) Entering MASTER STATE ...53:09 ... VRRP_Instance(VRRP1) setting protocol VIPs. ...53:09 ... VRRP_Instance(VRRP1) Sending gratuitous ARPs on eth0 for 10.0.0.100
プライマリ・サーバーとしてアクティブにできるサーバーは常に1つのみです。 複数のサーバーがプライマリとして構成されている場合、サーバー間のVRRP通信に問題がある可能性があります。 各サーバーでインタフェースごとにネットワーク設定を確認し、ファイアウォールでマルチキャストIPアドレス224.0.0.18の受信VRRPパケットと送信VRRPパケットが両方とも許可されることを確認してください。
Keepalivedをインストールおよび構成する方法の詳細は、17.5項「Keepalivedのインストールと構成」を参照してください。