技術共有

LVS KeepAlived 高可用性ロード バランシング クラスター

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 ファイルを変更しましょう

  1. [root@test1 ~]# vim /etc/keepalived/keepalived.conf
  2. notification_email_from [email protected]
  3. smtp_server 127.0.0.1
  4. smtp_connect_timeout 30
  5. router_id LVS_01
  6. vrrp_skip_check_adv_addr
  7. vrrp_strict
  8. vrrp_garp_interval 0
  9. vrrp_gna_interval 0
  10. vrrp_iptables
  11. }
  12. vrrp_instance VI_1 {
  13. state MASTER
  14. interface ens33
  15. virtual_router_id 51
  16. priority 120
  17. advert_int 1
  18. authentication {
  19. auth_type PASS
  20. auth_pass 1111
  21. }
  22. virtual_ipaddress {
  23. 192.168.124.100
  24. }
  25. }
  26. virtual_server 192.168.124.100 80 {
  27. delay_loop 6
  28. lb_algo rr
  29. lb_kind DR
  30. persistence_timeout 50
  31. protocol TCP
  32. real_server 192.168.124.40 80 {
  33. weight 1
  34. TCP_CHECK {
  35. connect_port 80
  36. connect_timeout 3
  37. nb_get_retry 3
  38. delay_before_retry 3
  39. }
  40. }
  41. real_server 192.168.124.50 80 {
  42. 9,1 36%

最初のスケジューラーの構成ファイルを 2 番目のスケジューラーにコピーします。

  1. scp root@192.168.233.10:/etc/keepallved/keepallved.conf
  2. /etc/keepallved

次に設定を変更します

プライマリとセカンダリの優先順位

iptables オプションを追加する

このようにして、キープアライブ ルールへのアクセスは ipetables ルール テーブルで停止されません。

  1. [root@localhost ~]# ipvsadm -ln
  2. IP Virtual Server version 1.2.1 (size=4096)
  3. Prot LocalAddress:Port Scheduler Flags
  4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  5. TCP 192.168.124.100:80 rr persistent 50
  6. -> 192.168.124.40:80 Route 1 0 0
  7. -> 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 メッセージを送信する確率が高くなります。同時に、システム全体の安定性と効率的な動作を確保するには、ネットワーク環境やサーバーのパフォーマンスなどの要因も考慮する必要があります。