私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
lvs クラスターの高可用性アーキテクチャは、スケジューラーの高可用性のみを目的としています。
vrrpに基づいてメインスケジューラとバックアップスケジューラを実装します。
高可用性 HA アーキテクチャ
メイン スケジューラとバックアップ スケジューラ (複数のバックアップ スケジューラが存在する場合があります)
スケジューラが正常に動作している場合、機器は完全に冗長化(スタンバイ)しています。マスターはクラスターの動作には関与しません。メイン スケジューラーに障害が発生した場合にのみ、バックアップがメイン スケジューラーの機能を引き継ぎ、マスターはクラスターへの入り口として機能し続けます。 、バックアップは引き続き冗長状態になります (優先度に応じて)。
キープアライブは、LVS 高可用性ソリューションを実装するための vrrp プロトコルに基づいています。
1. マルチキャストアドレス:
224.0.0.18 はマルチキャスト アドレスに基づいて通信し、プライマリ デバイスとセカンダリ デバイスは相手が生存しているかどうかを判断するメッセージを送信します。
2. 優先順位に基づいてプライマリとセカンダリの位置を決定します。
3. フェイルオーバー。プライマリ マシンがハングアップしても、バックアップ マシンは動作し続けます。マスター マシンが回復しても、バックアップ マシンは待機し続けます。
4. プライマリとセカンダリの切り替えは、VIP アドレスの切り替えです。
キープアライブは LVS 専用に表示されますが、LVS 専用ではありません。
コア モジュール: キープアライブのコア モジュール。メイン プロセスの起動とメンテナンス、およびグローバル設定ファイルのロードを担当します。
vrrpモジュール: vrrpプロトコルを実装するモジュールであり、主要な機能モジュールです。
check モジュール: ヘルスチェックを担当し、バックグラウンドで実サーバーのステータスをチェックすることもできます。
前章の DR モードの実験に基づいて、いくつかの構成を追加します。今回は、プライマリとバックアップの 2 つのスケジューラが使用されます。
まずスケジューラにキープアライブをインストールします
yum -y install keepalived
インストール完了後
keepalived.conf ファイルを変更しましょう
- [root@test1 ~]# vim /etc/keepalived/keepalived.conf
- notification_email_from [email protected]
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- router_id LVS_01
- vrrp_skip_check_adv_addr
- vrrp_strict
- vrrp_garp_interval 0
- vrrp_gna_interval 0
- vrrp_iptables
- }
-
- vrrp_instance VI_1 {
- state MASTER
- interface ens33
- virtual_router_id 51
- priority 120
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 192.168.124.100
- }
- }
-
- virtual_server 192.168.124.100 80 {
- delay_loop 6
- lb_algo rr
- lb_kind DR
- persistence_timeout 50
- protocol TCP
-
- real_server 192.168.124.40 80 {
- weight 1
- TCP_CHECK {
- connect_port 80
- connect_timeout 3
- nb_get_retry 3
- delay_before_retry 3
- }
- }
-
- real_server 192.168.124.50 80 {
- 9,1 36%
最初のスケジューラーの構成ファイルを 2 番目のスケジューラーにコピーします。
- scp root@192.168.233.10:/etc/keepallved/keepallved.conf
- /etc/keepallved
次に設定を変更します
プライマリとセカンダリの優先順位
iptables オプションを追加する
このようにして、キープアライブ ルールへのアクセスは ipetables ルール テーブルで停止されません。
- [root@localhost ~]# ipvsadm -ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 192.168.124.100:80 rr persistent 50
- -> 192.168.124.40:80 Route 1 0 0
- -> 192.168.124.50:80 Route 1 0 0
それをチェックしてください
それからすべてを再起動します
クライアントの結果を見てみましょう
まずメインスケジューラをシャットダウンしましょう
stsemctl stop keepalived.servers
バックアップ スケジューラはマスターの作業を引き継ぎ、動作を継続します。
これは、準備されたスケジューラにアップロードされた VIP アドレスであり、クライアントはそれにアクセスします。
まだアクセスできます
Keepalived には主に 3 つのモジュールがあります: core (コア モジュール、メイン プロセスの起動、メンテナンス、グローバル設定ファイルの読み込みと分析を担当)、check (ヘルス チェック モジュール)、vrrp (vrrp プロトコルの実装)。
Keepalived の動作原理は VRRP プロトコルに基づいており、同じ機能を提供する複数のサーバーがサーバー グループを形成し、マスターと複数のバックアップが構成されます。 マスターには外部にサービスを提供する VIP があります (サーバーが配置されている LAN 内の他のマシンのデフォルト ルートはこの VIP です)。バックアップが VRRP パケットを受信できない場合、マスターはマルチキャストを送信します。はマスターがダウンしていると判断し、VRRP レベルの優先順位に従って新しいマスターとなるバックアップを選択します。
LVS + Keepalived を構成する場合は、通常、マスター ノードとバックアップ ノードに関連ソフトウェア (ipvsadm、keepalived など) をインストールし、keepalived.conf ファイルを構成する必要があります。例えば、マスターノードの設定ファイルには、マスターとしての状態(state)、ネットワークインターフェース(interface)、仮想ルートID(virtual_router_id)、優先度(priority)、広告間隔(advert_int)、認証情報を指定する必要があります。 (認証) および仮想 IP アドレス (virtual_ipaddress) など、バックアップ ノードの構成は同様ですが、ステータスはバックアップであり、優先度は通常マスターより低くなります。
構成が完了したら、keepalived サービスを再起動して、高可用性ロード バランシングを実現します。マスター ノードに障害が発生すると、VIP は自動的にバックアップ ノードに切り替わり、マスターが回復した後にサービスへの通常のアクセスが確保され、再びメイン ロード ノードとして機能します。さらに、実サーバー (rs) もそれに応じて構成できます。たとえば、通信に DR モデルを使用する場合は、rs のネットワーク カード上で lo を VIP として構成する必要があります。
このように、LVS と Keepalived の組み合わせにより、次の目標を達成できます。クライアントは VIP 経由でサービスにアクセスし、マスターのロード バランシング ノードに障害が発生した場合、リクエストは構成ルールに従って分散され、自動的にバックアップに切り替わります。ノードに障害が発生した場合、ノードは自動的に削除され、回復後に再びクラスターに追加されます。
実際のアプリケーションでは、Keepalived 構成ファイルの virtual_ipaddress で構成された IP アドレスが同じネットワーク セグメントに存在する必要があるなど、関連する事項に注意する必要があります。優先度の値が高いほど、ノードがマスターになる可能性が高くなります。ノード; advert_int 値が小さいほど、ノードが VRRP メッセージを送信する確率が高くなります。同時に、システム全体の安定性と効率的な動作を確保するには、ネットワーク環境やサーバーのパフォーマンスなどの要因も考慮する必要があります。