LVS+Keepalivedの詳しい説明

目次

LVS+キープアライブ高可用性クラスター

1. キープアライブのツールと機能

1. LVS 負荷分散ソフトウェアを管理する

2. 自動フェイルオーバーのサポート (フェイルオーバー)

3. ノードの健康状態チェックをサポート (ヘルスチェック)

4. LVS ロードバランシング スケジューリング サーバー ノード サーバーの高可用性 (HA) を実装します。

2. 動作原理

3. キープアライブの実装原則

4. Keepalivedの主要モジュール

5. VRRP (仮想ルーター冗長プロトコル)

6. フェイルオーバーメカニズム

7. キープアライブ スプリット ブレインとその解決策

1.キープアライブ スプリット ブレイン

2. スプリットブレインの原因

3. 解決策

8. Keepalived 高可用性クラスターを構築する手順

1. ロードスケジューラを設定します (メインとバックアップは同じです)。

2.キープライブを設定する

3. vip(仮想IP)の設定

4. ipvsadm サービスを開始します

5. ノードサーバーの構成

6. 検証

7. まとめ

1. Keepalived はどのホストがメイン サーバーであるかをどのように判断しますか?また、Keepalived はフローティング IP をどのように構成しますか?

2. keepalived のプリエンプション モードと非プリエンプション モード


LVS+キープアライブ高可用性クラスター

高度に情報化された IT 時代において、企業の生産システム、業務運営、販売とサポート、日常管理はコンピューター情報とサービスへの依存度が高まっており、高可用性 (HA) テクノロジーの適用に対する需要はますます高まっています。継続的で中断のないコンピュータ システムまたはネットワーク サービスを提供するため。

Keepalived は、VRRP プロトコルに基づく LVS サービスの高可用性ソリューションであり、静的ルーティングにおける単一障害点の問題を解決できます。

1. キープアライブのツールと機能

LVSおよびHA向けに特別に設計されたヘルスチェックツール

1. LVS 負荷分散ソフトウェアを管理する

keepalived は、独自の設定ファイルを読み取ることで、下位レベルのインターフェイスを通じて LVS 設定とサービスの開始および停止機能を直接管理できるため、LVS アプリケーションが容易になります。

2. 自動フェイルオーバーのサポート (フェイルオーバー)

① 両方のホストに keepalived をインストールし、サービスを同時に開始します

マスターホストは起動するとすべてのリソースを取得してユーザーにサービス(リクエスト)を提供し、カラーキャリブレーションバックアップホスト使用時はマスターホットスタンバイとして機能します。    

マスター ホストがハングアップして障害が発生すると、バックアップ ホストは、VIP リソースや対応するリソース サービスの引き継ぎを含め、マスター ホストのすべての作業を自動的に引き継ぎます。

② マスターホストの障害が修復されると、マスターホストは自動的に元の処理を引き継ぎ、バックアップホストもマスターホストの障害時に引き継いだ処理を解放し、この時点で 2 台のホストは元の役割に戻ります。稼働状況

プリエンプション モード: マスターが障害から回復した後、バックアップ ノードから VIP を取得します。

非プリエンプション: マスターが障害から回復した後、バックアップはプリエンプトされず、バックアップはマスターの後に VIP にアップグレードされます。

3. ノードの健康状態チェックをサポート (ヘルスチェック)

keepalived.conf ファイルは、LVS の直接管理を実現するために、LVS のノード IP および関連パラメーターを構成します。

複数のノード サーバーに同時に障害が発生し、サービスを提供できない場合、keepalived サービスは、障害が発生したノード サーバーを LVS の通常転送リストから自動的に削除し、他の通常のノード サーバーへのリクエストをスケジュールして、ユーザー アクセスが影響を受けないようにします。障害が発生したノード サーバーが修復されると、キープアライブ サービスによって通常の転送リストにノード サーバーが追加され、外部の顧客にサービスが提供されます。

4. LVS ロードバランシング スケジューリング サーバー ノード サーバーの高可用性 (HA) を実装します。

一般に、エンタープライズ クラスターには、ロード バランシング、ヘルス チェック、フェイルオーバーの 3 つの特性を満たす必要がありますが、LVS + Keepalived を使用することで、そのニーズを十分に満たすことができます。

2. 動作原理

LVSサービスクラスタには通常、マスターサーバー(MASTER)とバックアップサーバー(BACKUP)の2つの役割を持つサーバーが存在しますが、外部からは仮想IPとして見え、マスターサーバーはバックアップサーバーにVRRP通知情報を送信します。バックアップサーバーが受信できない場合、VRRPメッセージを受信した場合、つまりメインサーバーに異常が発生した場合、バックアップサーバーが仮想IPを引き継いでサービスを提供し続けることで高可用性を確保します。

キープアライブ高可用性は VRRP を介して通信します。VRRP は選択メカニズムを使用してマスターとスレーブを決定します。マスターの優先順位はスレーブよりも高くなります。そのため、動作中はマスターが最初にすべてのリソースを取得し、スレーブ ノードは待機状態になります。マスターノードに障害が発生すると、スタンバイノードがプライマリノードのリソースを引き継ぎ、プライマリノードを置き換えて外部サービスを提供します。

Keepalived サービス間では、マスター サーバーのみが常に VRRP ブロードキャスト パケットを送信して、バックアップ サーバーが生きていることを伝えます。このとき、バックアップ サーバーはマスターをプリエンプトしません。マスターが利用できないとき、つまりバックアップ サーバーがマスターによって送信されたブロードキャスト パケットをリッスンできない場合は、関連サービスを開始してリソースを引き継ぎ、ビジネスの継続性を確保します。最速の引き継ぎ速度は 1 秒未満になる場合があります。

3. キープアライブの実装原則

Keepalived は、VRRP ホット バックアップ プロトコルを使用して、Linux サーバーのマルチマシン ホット バックアップ機能を実装します。

4. Keepalivedの主要モジュール

keepalived アーキテクチャには、core、check、vrrp という 3 つの主要なモジュールがあります。

コア モジュール: これは keepalived の中核であり、メイン プロセスの起動とメンテナンス、およびグローバル設定ファイルの読み込みと解析を担当します。

vrrp モジュール: VRRP プロトコルを実装するために使用されます。

check module: ヘルスチェックを担当し、一般的な方法にはポートチェックと URL チェックが含まれます。

5. VRRP (仮想ルーター冗長プロトコル)

  1. ルーターのバックアップ ソリューションです
  2. ホット スタンバイ グループは複数のルーターで形成され、共有の仮想 IP アドレスを介して外部サービスを提供します。
  3. 各ホットスタンバイグループでは、同時にサービスを提供するメインルータは1台のみで、他のルータは冗長状態となります。
  4. 現在オンラインのルーターに障害が発生した場合、設定された優先順位に従って他のルーターが自動的に仮想 IP アドレスを引き継ぎ、サービスを提供し続けます。

VRRP通信原理:

VRRP は仮想ルーター冗長プロトコル、プロトコル番号: 112 です。静的ルーティングの単一障害点を解決するようです。

VRRP は、キャンペーン プロトコル メカニズムを使用してルーティング タスクを VRRP ルーターに割り当てます。

VRRP は、IP マルチキャスト (デフォルトのマルチキャスト アドレス: 224.0.0.18) を使用して高可用性通信を実現します。

動作中は、プライマリ ノードがパケットを送信し、バックアップ ノードがパケットを受信しますが、バックアップ ノードがプライマリ ノードから送信されたデータ パケットを受信できない場合、プライマリ ノードのリソースを引き継ぐための引き継ぎプログラムが起動されます。スタンバイ ノードは複数存在する可能性があり、優先順位に従って選択されますが、通常、Keepalived システムの運用および保守作業では 1 つのペアのみが存在します。

キープアライブ サービスが正常に動作している場合、マスター ノードは継続的に (マルチキャスト) ハートビート メッセージをバックアップ ノードに送信して、バックアップ ノードがまだ生きていることを伝えます。マスター ノードに障害が発生した場合、スタンバイ ノードは抑止メッセージを送信できません。はプライマリ ノードからのハートビートを検出できないため、独自の引き継ぎプログラムを呼び出して、プライマリ ノードの IP リソースとサービスを引き継ぎます。プライマリ ノードが回復すると、スタンバイ ノードはプライマリ ノードの障害時に引き継いだ IP リソースとサービスを解放し、元のスタンバイの役割に戻ります。

VRRP は暗号化プロトコルを使用してデータを暗号化しますが、Keepalived 担当者は現在、認証タイプとパスワードをクリア テキストで構成することを推奨しています。

vrrp は、複数のルーターを仮想ルーティング グループ vrid に形成します。vrrp は、仮想ルート (仮想 IP と仮想 MAC を含む) を生成します。LAN 内のユーザーは、どれがマスターでどれがバックアップであるかを気にしません。仮想ルーティング グループのみを使用します。ゲートウェイとしての仮想ルーターの IP) 実際、仮想 IP はマスター ルーターでホストされます。これは、実際のデータがマスター経由で転送されることを意味します。

バックアップは、優先度によってマスター ルートを決定します。最も高い優先度を持つものがマスターです。バックアップは、マスターによって定期的に送信される vrrp メッセージを監視するためにのみ使用されます。マスターによって送信された vrrp メッセージが一定期間内に受信されなかった場合、タイムアウトになると、バックアップはマスターを捕捉すると、仮想 IP もバックアップ ヘッドにドリフトします。

6. フェイルオーバーメカニズム

Keepalived 高可用性サービス間のフェールオーバー転送は、VRRP を通じて実装されます。

Keepalived サービスが正常に動作している場合、メイン マスター ノードは継続的に (マルチキャスト) ハートビート メッセージをバックアップ ノードに送信し、バックアップ バックアップ ノードに自分がまだ生きていることを伝えます。メイン マスター ノードに障害が発生すると、ハートビート メッセージを送信できなくなり、バックアップ ノードはハートビート メッセージを送信できなくなるため、ノードはマスター ノードからのハートビートを検出できなくなり、独自の引き継ぎプログラムを呼び出してマスター ノードの IP リソースとサービスを引き継ぎます。

マスター ノードが回復すると、バックアップ ノードは、マスター ノードの障害時に引き継いだ IP リソースとサービスを解放し、元のバックアップの役割に戻ります。

7. キープアライブ スプリット ブレインとその解決策

1.キープアライブ スプリット ブレイン

高可用性 (HA) システムでは、2 つのノードを接続する「ハートビート ライン」が切断されると、本来は全体として連携して動作していた HA システムが 2 つの独立したエンティティに分割されます。連絡が取れなくなったので、お互いに相手が故障したのではないかと思いました。2 つのノード上の HA ソフトウェアは「分割脳人間」のようなもので、「共有リソース」と「アプリケーション サービス」をめぐって競合し、深刻な結果が発生します。さもなければ、共有リソースが分割され、「サービス」が両側に存在することになります。サービスを提供できなくなります。もうすぐです。または、両側の「サービス」は稼働していますが、同時に「共有ストレージ」の読み取りと書き込みを行って、データの損傷を引き起こします(通常、オンライン ログのエラーなど)データベースポーリングの)。

2. スプリットブレインの原因

高可用性サーバー ペア間のハートビート リンクに障害が発生し、通常の通信が失敗しました。たとえば、ハートビート ケーブルが壊れています (破損または老朽化を含む)。

ネットワーク カードと関連ドライバーが壊れているため、IP 構成と競合の問題 (ネットワーク カードの直接接続) が発生します。

ハートビートケーブル間に接続されている機器(ネットワークカードとスイッチ)の故障によるもの。

アービトレーション マシン (アービトレーション ソリューションを使用) に問題があります。

iptables ファイアウォールが高可用性サーバーで有効になっており、ハートビート メッセージの送信がブロックされています。

Keepalived 設定内の同じ VRRP インスタンスの両端の virtual_router_id パラメータ設定が矛盾している場合も、スプリット ブレイン問題が発生します。

vrrp インスタンス名は一貫していませんが、優先順位は一貫しています。

3. 解決策

「スプリット ブレイン」の可能性を最小限に抑えるために、二重線 (ハートビート ラインも HA) などの冗長なハートビート ラインを追加します。

ディスクロックを有効にします。サーバが共有ディスクをロックしている場合、「スプリットブレイン」が発生した場合、相手は共有ディスクリソースを完全に奪うことができなくなります。ただし、ロックされたディスクの使用には大きな問題があり、共有ディスクを占有している側が積極的に「ロックを解除」しないと、相手は共有ディスクを取得することができません。実際には、サービスノードが突然フリーズしたりクラッシュしたりすると、ロック解除コマンドを実行できなくなります。バックアップ ノードは、共有リソースとアプリケーション サービスを引き継ぐことができません。そこで誰かが HA の「スマート」ロックを設計しました。つまり、サービス提供側は、すべてのハートビート ラインが切断されていることを発見した場合 (ピアはそれに気づいていない場合) にのみディスク ロックをアクティブにします。通常は施錠されていません。

仲裁メカニズムをセットアップします。たとえば、参照 IP (ゲートウェイ IP など) を設定すると、ハートビート ラインが完全に切断されたときに、両方のノードがそれぞれ参照 IP に ping を実行しますが、接続がない場合は、ブレークポイントがローカル エンドにあることを意味します。「ハートビート」だけでなく、外部「サービス」のローカル ネットワーク リンクも切断されています。アプリケーション サービスを開始 (または継続) しても無駄です。その場合は、積極的に競争を放棄し、参照 IP に ping できる側にサービスを開始させます。サービスです。より安全にするために、参照 IP に ping を送信できない側は、単純に自身を再起動して、まだ占有されている可能性のある共有リソースを完全に解放します。

8. Keepalived 高可用性クラスターを構築する手順

プライマリ DR: 192.168.174.10 仮想ネットワーク カード ens33:0 192.168.174.60

スタンバイ DR: 192.168.174.20 仮想ネットワーク カード ens33:0 192.168.174.60

ウェブ 1 : 192.168.174.30

ウェブ 2 : 192.168.174.40  

1. ロードスケジューラを設定します (メインとバックアップは同じです)。

メイン DR:

DR を準備します。

 

2.キープライブを設定する

メイン DR

 DRの準備

3. vip(仮想IP)の設定

 メイン DR

 DRの準備

4. ipvsadm サービスを開始します

メイン DR

DRの準備

 

5. ノードサーバーの構成

 

 

6.検証_

7.まとめ

1. Keepalived はどのホストがメイン サーバーであるかをどのように判断しますか?また、Keepalived はフローティング IP をどのように構成しますか?

Keepalived は最初に初期化を実行し、マスターがメイン サーバー、バックアップがバックアップ サーバーである状態を確認します。

次に、すべてのサーバーの優先順位を比較して、最も高い優先順位を持つサーバーと最終的なマスター サーバーを決定します。

優先度の高いサーバーは、ip コマンドを使用して、コンピューターに事前に定義されたフローティング IP アドレスを設定します。

2. keepalived のプリエンプション モードと非プリエンプション モード

プリエンプション モードは、MASTER が障害から回復した後、BACKUP ノードから VIP をプリエンプトすることを意味します。

非プリエンプション モードとは、MASTER が復元された後、BACKUP が MASTER にアップグレードされた後に VIP をプリエンプトしないことを意味します。

2 つの非プリエンプティブ ノードの状態は bakcup である必要があり、nopreempt が設定されている必要があります。

注: この方法で構成した後は、サービスが開始される順序に注意する必要があります。最初に開始されたサービスはマスター権限を取得し、

優先順位はもう重要ではありません。

おすすめ

転載: blog.csdn.net/Guo_youyou/article/details/131580577