LVSの基礎

LVSの基礎

A、LVSの基礎

1. LVSのコンセプト

効果

Linux仮想サーバ、ロードバランサは、統合コア機能は、主に、通常は(ファイアウォールの背後)のユーザアクセスなどの入り口で、4層で働いて、アリの4 SLBを高並行性と負荷分散の問題に対処するには(サーバロードバランス)は、LVS + keepalivedの認識に基づいています

プロセスへのアクセス:

CIP < - > VIP == DIP < - > RIP

LVS-関連用語:
  • VS:仮想サーバー、Directorサーバー(DS)

  • ディスパッチャ(スケジューラ)、ロードバランサ

  • RS:実サーバ(LVS)、上流のサーバー(nginxの)

  • バックエンドサーバ(haproxy)

  • CIP:クライアントのIP

  • VIP:仮想IPはVS外部ネットワークのIPを提供

  • DIP:IPネットワーク内のIPディレクターVS

  • RIP:実サーバのIP

2. LVS原則

マーク

マーク

こうした、青3、および4 LVS層がバランスとして、サーバ、および直接顧客の要求に応答する能力が、前方のバックエンドサーバへのユーザからの要求、パケットの入力など、通常のデータ・パケット・フロー、カーネル空間とユーザ空間に行くためには流れないが、パケットを変更するためのLVSは、送り出された後に

3. LVSクラスタ・タイプ

  • LVS-NAT:変更要求パケットの送信先IP、送信先IPマルチDNAT

    欠点は、要求パケットと応答パケットがあまりにも多くの圧力対、対となっているということで、障害問題の一つのポイントがあります

  • LVS-DR:新しいMACアドレス操作パッケージ

    のみ応答パケットは、対を介して中継局によって送信された応答メッセージを渡します。しかし、VSとRS間のルートを越えることはできません

  • LVS-TUN:元の要求のIPパケットに加えて、新しいIPヘッダに加え

    あなたは全体でルーティングの問題を解決することができますが、一般的に使用されていません

  • LVS-fullnat:変更要求パケットの送信元と宛先のIP

    ほとんど、特段の利点がありません

すべてのモデルはLVS先天性欠損症を解決することはできません、バックエンドサーバーをチェックし、RSを解決することはできません

クラスターツールLVS 4

  • ipvsadmの:ユーザ空間コマンドラインツール、ルール・マネージャは、クラスタサービスとRealServerを管理するために使用されます

    ==注意:== LVSルールがカーネルに格納され、ipvsadmの唯一の管理ツールに関係なく、インストールは正規の役割に影響を与えないかどうかの

    root@z2:~# apt install ipvsadm 
    
  • IPVS:netfilterのフックINPUT上のカーネルスペースフレームワーク

    LVSを見るのLinuxカーネルサポート

    root@z1:~# grep -i -A 10 "ipvs" /boot/config-4.15.0-54-generic 
    

5. LVSスケジューリングアルゴリズム

  • 静的なアルゴリズム

    1. RR:ラウンドロビン、世論調査
    2. WRR:加重RR、WRR
    3. SH:ソースハッシュ、セッション粘着性、ハッシュの送信元IPアドレスを実装して、同じIPアドレスからの要求に常に達成するために、セッションにバインドされた、RSの最初のピックに送られます
    4. DH:デスティネーションハッシュ;宛先アドレスのハッシュ、RSへの最初のラウンドロビンスケジューリング、後続の要求は、同じ宛先アドレスに送信されますが、常にRSの最初のピックに転送され、典型的な使用シナリオは、前方のシーン内のプロキシキャッシュですブロードバンド事業者:のような負荷分散、
  • 動的方法:メインスケジューリングオーバーヘッド=小さい値RSが現在の各RSの負荷状態とスケジューリングアルゴリズムに従ってスケジュールします

    1. LC:最小接続
      長い接続されたアプリケーションのためのオーバーヘッド= activeconns * 256 + inactiveconns(小さい、ピック)

      最小接続スケジューリングアルゴリズムが現在接続の最小数とサーバへの新しい接続要求を割り当てることで、最小接続スケジューリングアルゴリズムが動的スケジューリング短く、それが現在アクティブなサーバロードバランシングの数でサーバに接続されていると推定され、スケジューラニーズリクエストがアボート右接続またはタイムアウト、接続マイナス1は、システムの実装、我々はまた、紹介の接続、サーバープラス1に送出されたときに、各サーバーを記録することは、接続の数を確立しているときにサーバーの値それは、サーバがスケジュールすることなく使用することができないことを示し、0です。このアルゴリズムは、次のアルゴリズムWLCとそう、重いウェイトにより、サーバーのパフォーマンスの問題、いくつかのサーバーのパフォーマンス、いくつかの貧弱なサーバーのパフォーマンス、著名なパフォーマンスを無視します

    2. WLC:加重LC
      デフォルトのスケジューリング方法 オーバーヘッド= /重量(activeconnsは256 + inactiveconns *)LCアルゴリズムの使用は、古いものと新しいサーバーのパフォーマンスを考慮することはできませんので、それは(小さい、誰を選びます)

    3. SED:最短Expection遅延
      初期結合重みより高い優先オーバーヘッド=(activeconns + 1)* 256 /重量

      かかわらず、その重量も大きい非アクティブな接続、の、我々は要求を受信するための大きな権利サーバーを好むが、負荷は最初は空になったときの質問は、発生しますが、大規模なサーバーの重量は、すべての要求が行くだろう、非常に忙しくなりますサーバーの主要な、比較的小さな重量上記のヘア権も要求を受信して​​いない、非常に忙しいので、次のアルゴリズムNQがありました。

    4. NQ:決してキューは、
      最初のラウンド均一に、その後の分散SED

    5. LBLC:場所に基づくLC
      ダイナミックDHアルゴリズムを使用すること:フォワードプロキシが負荷状態に応じて実施

      キャッシュクラスタのクライアント要求パケットの宛先IPアドレスが変更されているため、ローカリティベース最低の接続は、任意のバックエンドを想定すると、主にキャッシュ・クラスタ・システムのため、スケジューリング要求パケットの宛先IPアドレスの負荷分散アルゴリズムサーバーはすべての要求は、サーバー上に実質的にバランスの取れた負荷で設計されたアルゴリズム、スケジューリング要求と同じサーバーに同じ宛先IPアドレスを扱うことができ、およびプライマリサーバのメモリキャッシュの局所性を向上させるためにヒット率、クラスタ全体システムの処理能力を調整します。

    6. LBLCR:レプリケーションとLBLC
      LBLCを持つ関数をコピーし、問題LBLC偏荷重を解決するため、RSの重負荷から軽負荷へコピー

二、ipvsadmの一般的な使用法

インストール

root@z2:~# apt install ipvsadm 

結果のファイル

root@z2:~# ll /sbin/ipvsadm
-rwxr-xr-x 1 root root 68912 May 24  2019 /sbin/ipvsadm*

root@z2:~# ll /sbin/ipvsadm*
-rwxr-xr-x 1 root root 68912 May 24  2019 /sbin/ipvsadm*
-rwxr-xr-x 1 root root   573 Feb  9  2015 /sbin/ipvsadm-restore*
-rwxr-xr-x 1 root root   744 Feb  9  2015 /sbin/ipvsadm-save*

メインプログラム:/ sbinに/ ipvsadmの
ツールの保存ルール:/ sbinに/ ipvsadmの-保存
ルールリロードツール:/ sbinに/ ipvsadmの復元
/etc/ipvsadm.rules:設定ファイルを

ipvsadmのコマンド

コア機能:
クラスタサービス管理:追加、削除、変更
RSクラスタサービス管理:追加、削除、変更、ビュー

コマンド
  • ipvsadmの-A | E-仮想サービス[ -sスケジューラ] [-p [タイムアウト]] [-Mネットマスク] [-pe persistence_engine] [-b SCHED-フラグ]
    リスニングVS新サービスのアドレスを追加します。サーバが複数を追加することもできます

  • ipvsadmの-D仮想サービス

    サービス対レコードを削除するには

  • ipvsadmの-C

    カーネルテーブル対すべてのレコードをクリアします。

  • ipvsadmの-R

    仮想サーバーのルールを復元

  • ipvsadmの-S [-n]

    仮想サーバーのルール保存、それが読める形式のオプションを出力-R

  • ipvsadmの-a |電子仮想サービス-rサーバアドレス[オプション]

    実際のバックエンドサーバのアドレスが対を聞いている追加

  • ipvsadmのは、仮想サービス-rサーバアドレスを-d

    削除バックエンドサーバーのアドレスが対を聞いています

  • ipvsadmの-L | L [仮想サービス] [オプション]

    すべての対のリストを表示します

  • ipvsadmの-Z [仮想サービス]

    #仮想テーブルサービスカウンターは、(現在の接続数などをクリア)クリアされます

  • ipvsadmの--set TCP、UDP tcpfin

    #タイムアウト値を設定します

  • ipvsadmの--startデーモン状態[-mcastインタフェースインターフェイス] [-syncid SID]

    同期デーモンを起動します。彼はマスターであってもよいし、バックアップの後ろに、LVSルータマスターまたはバックアップを説明するために使用されています。VRRP機能では、この機能を使用することも可能keepalivedの。

  • ipvsadmの--stop-daemonの状態

    ストップ同期デーモン

オプション
-t --tcp-service service-address #说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port]
-u --udp-service service-address #说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark #说明是经过iptables 标记过的服务类型。
-s --scheduler scheduler #使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-p --persistent [timeout] #持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
-M --netmask #子网掩码
-r --real-server server-address #真实的服务器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i --ipip #指定LVS 的工作模式为隧道模式
-m --masquerading #指定LVS 的工作模式为NAT 模式
-w --weight weight #真实服务器的权值
--mcast-interface interface #指定组播的同步接口
-c --connection #显示LVS 目前的连接 如:ipvsadm -L -c
--timeout #显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon #显示同步守护进程状态
--stats #显示统计信息
--rate #显示速率信息
--sort #对虚拟服务器和真实服务器排序输出
--numeric -n #输出IP 地址和端口的数字形式
IPVS出力項目の説明
1. ipvsadmの-Ln
root@director:~# ipvsadm  -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 wrr
  -> 192.168.1.104:80             Route   1      0          5         
  -> 192.168.1.105:80             Route   1      0          6    
  • フォワードフォワード、順方向電流が送られ、
  • 重量重量
  • ActiveConn現在アクティブな接続
  • InActConnない現在アクティブな接続
2. ipvsadmの-Ln --stats
root@director:~# ipvsadm  -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.0.0.100:80                      27      171        0    11140        0
  -> 192.168.1.104:80                   13       80        0     5272        0
  -> 192.168.1.105:80                   14       91        0     5868        0

-statsオプションは力でその記事転送ルール以来の統計です

  • Conns(予定接続)接続の数を転送しました
  • パケットの数へのinpkts(受信パケット)
  • OutPkts(送信パケット)パケット数
  • フローにInBytes(受信バイト)(バイト)
  • OutBytes(送信バイト)フロー(バイト)
3. ipvsadmの-Ln --rate
root@director:~# ipvsadm  -Ln --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  10.0.0.100:80                       1        4        0      251        0
  -> 192.168.1.104:80                    0        2        0      109        0
  -> 192.168.1.105:80                    0        2        0      142        0

-rateオプションが表示レート情報にあります

  • 第二のコネクタあたりのCPS(現在の接続レート)
  • InPPS(パケットレートで電流)1秒あたりのパケット数
  • OutPPS(現在アウトパケット速度)秒当たりのパケット数
  • 第二の流れに(バイト率の電流)InBPS(バイト)
  • OutBPS第二の流れに(現在アウトバイト率)(バイト)

あなたはipvsamコマンドを使用します感じるが、生産プロセスはほとんどのマシンの直接的ipvsadmの直接管理を使用していないが、実現キープアライブているが

第三に、純度のルール

ipvsadmの-保存画面に印刷されたデフォルトのルール

root@z2:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.1.102:80 rr
  -> 192.168.1.103:8080           Masq    1      0          3         
  -> 192.168.1.104:8080           Masq    1      0          13        
root@z2:~# ipvsadm-save
-A -t 10.20.1.102:http -s rr
-a -t 10.20.1.102:http -r 192.168.1.103:http-alt -m -w 1
-a -t 10.20.1.102:http -r 192.168.1.104:http-alt -m -w 1

あなたはipvsadmのセーブファイルにリダイレクトを使用して、使用することができます回復をipvsadmのを復元

root@z2:~# ipvsadm  -C
root@z2:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
root@z2:~# ipvsadm-restore  < /data/ipvs.log 
root@z2:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.1.102:80 rr
  -> 192.168.1.103:8080           Masq    1      0          0         
  -> 192.168.1.104:8080           Masq    1      0          0   
公開された62元の記事 ウォン称賛7 ビュー1253

おすすめ

転載: blog.csdn.net/qq_36801585/article/details/105030942