ホームページ  >  記事  >  運用・保守  >  Linux を使用してネットワーク負荷分散を行う方法

Linux を使用してネットワーク負荷分散を行う方法

PHPz
PHPzオリジナル
2023-06-18 18:45:102871ブラウズ

ネットワーク負荷分散は、ネットワーク トラフィックをさまざまなサーバーに均等に分散する方法であり、それによってシステム全体の可用性とパフォーマンスが向上します。 Linux システムには、ネットワーク負荷分散の実現に役立つツールがいくつか付属しています。この記事では、Linux を使用してネットワーク負荷分散を行う方法を紹介します。

1. Linux ネットワーク負荷分散の基本原理

ネットワーク負荷分散の基本原理は、ネットワーク トラフィックを複数のサーバーに分散することです。分散方式には、ポーリング方式、重み付けポーリング方式、IP ハッシュ方式、最小接続数方式などがあります。

Linux では、ネットワーク トラフィックを複数のサーバーに分散する LVS (Linux Virtual Server) テクノロジーをネットワーク負荷分散に使用できます。これは、スケジューラ (ロード バランサとも呼ばれます) と複数のバックエンド サーバーで構成されます。

2. LVS のインストールと設定

  1. LVS のインストール

LVS を設定する前に、ipvsadm、keepalived、これらのパッケージは、yum コマンドを通じてインストールできます。

① ipvsadm のインストール

次のコマンドを使用して ipvsadm パッケージをインストールします。

sudo yum install ipvsadm -y

② keepalived のインストール

次のコマンドを使用して keepalived パッケージをインストールします:

sudo yum install keepalived -y

  1. LVS の構成

LVS 構成に進む前に、知っておくべきことがいくつかあります。 基本概念:

  • スケジューラー (ロード バランサー): クライアントからネットワーク リクエストを受信し、そのリクエストをバックエンド サーバーに転送するために使用されます。
  • リスニング IP アドレス: クライアントがアクセスする IP アドレス。
  • 実サーバー (バックエンド サーバー): クライアントのネットワーク要求を処理します。

以下は、スケジューラーの IP アドレスが 192.168.1.1、バックエンド サーバーの IP アドレスが 192.168.1.2 および 192.168.1.3 であると仮定した、LVS の構成例です。

① スケジューラーの構成

まず、スケジューラーに keepalived サービスをインストールして構成します。 /etc/keepalived/keepalived.conf ファイルを編集し、次の設定を追加します:

! keepalived の設定ファイル

#global_defs {

router_id LB_Test
}

vrrp_script chk_http_port {

スクリプト "/etc/keepalived/check.sh"
間隔 2
}

vrrp_instance VI_1 {

状態 MASTER
インターフェイス eth0
virtual_router_id 50
優先度 101
認証 {

   auth_type PASS
   auth_pass 1111

}

virtual_ipaddress {

   192.168.1.100

}

track_script {

   chk_http_port

}

}

このうち、vrrp_instance は仮想ルーターのパラメータの設定に使用され、virtual_router_id は仮想ルーターの ID の設定に使用され、virtual_ipaddress は仮想 IP アドレスの設定に使用され、priority はマスターの設定に使用されます。 -バックアップ関係 数値が小さいほど優先度が高くなります。

次に、check.sh という名前のスクリプト ファイルを作成して、バックエンド サーバーが稼働しているかどうかを確認します。次のスクリプトの内容を check.sh ファイルに保存します:

!/bin/bash

A=

ipvsadm -ln | grep -c "Server" if [ $A -eq 0 ];then
echo "failed"
killall keepalived
fi

説明: バックエンド サーバーが利用できない場合、スクリプトは keepalived サービスを終了します。

次のコマンドを実行して、設定ファイルを有効にします。

sudo systemctl restart keepalived

この時点で、スケジューラの設定は完了です。

② バックエンドサーバーの設定

バックエンドサーバーにLVSの実サーバーを設定します。

次のコマンドを使用して実サーバー構成を追加します:

sudo ipvsadm -A -t 192.168.1.100:80 -s rr

その中で、-A オプションはルールの追加に使用され、-t はリスニング IP アドレスとポートの設定に使用され、-s はスケジュール ルールの設定に使用され、ここではポーリング方式が使用されます。

次のコマンドを使用して実サーバーをルールに追加します:

sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2 -g

sudo ipvsadm -a -t 192.168 .1.100:80 -r 192.168.1.3 -g

このうち、-a オプションはルールにリアル サーバーを追加するために使用され、-r はバックエンド サーバーの IP アドレスを設定するために使用され、- g は、バックエンド サーバーのゲートウェイ モードを設定するために使用されます。

この時点で、LVS の構成は完了です。

3. ネットワーク負荷分散のテスト

LVS の設定が完了したら、次の手順でネットワーク負荷分散機能をテストできます。 clientcurl コマンドは仮想 IP アドレスにアクセスします:

    curl 192.168.1.100
スケジューラによる処理後、リクエストはバックエンド サーバーの 1 つに送信されます。 。

バックエンド サーバーの 1 つで単純な HTTP サービスを開始します:
  1. python -m SimpleHTTPServer 80
次に、実サーバーの IP アドレスにアクセスします。 :

    curl 192.168.1.2
仮想 IP アドレスにリクエストを再度送信します。このとき、リクエストは別の実サーバーに送信される必要があります。

    上記のテストの後、バックエンド サーバーにアクセスするときに、リクエストをさまざまなバックエンド サーバーに均等に分散できれば、ネットワークの負荷分散は成功していると言えます。
  1. 4.概要

この記事では、Linux を使用してネットワーク負荷分散を行う方法を紹介します。ipvsadm および keepalived ソフトウェア パッケージをインストールし、IP アドレス、ポート、スケジューラとバックエンド サーバーのスケジュール ルールを構成し、最後にネットワーク負荷分散機能をテストします。 。ネットワーク負荷分散により、システム全体の可用性とパフォーマンスが向上し、同時実行性の高い環境でのネットワーク リクエストの処理が容易になり、ユーザー エクスペリエンスが向上します。

以上がLinux を使用してネットワーク負荷分散を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。