【IPCOM】サーバ負荷分散の設定コマンド。実サーバのIPと代表サーバのIPを指定するだけ。

スポンサーリンク




ネトエンの仕事の話
スポンサーリンク

サーバ負荷分散の役割

コマンドの前にサーバ負荷分散の必要性について説明します。
そんなこと分かっているという方は読み飛ばしてください。

サーバ負荷分散は、特定の処理を2台のサーバで一緒にやるという事になります。
これのメリットは1台が壊れてももう1台が動いていれば処理が途切れる事がありません。
また、大量に処理が来ても2台なので処理しきれます。

具体的にどうやっているかというと、間に負荷分散ができる装置が入って処理を振り分けます。


今回はIPCOMに処理の振り分けをやる設定の説明になります。

IPCOMで処理の振り分けを行うイメージ

ニュースサイトにはサーバAとサーバBがあります。
IPCOMをサーバXという名前にしてインターネットに公開しているとします。

2台のクライアントから同時にリクエストが出たとします。

クライアントA
クライアントA

サーバXさん。ニュースを見たいです。

クライアントB
クライアントB

サーバXさん。ニュースを見たいです。

サーバXとなっているIPCOMは2つのリクエストを2台のサーバに振り分けます。

サーバX(IPCOM)
サーバX(IPCOM)

クライアントAの処理はサーバAお願いします。

クライアントBの処理はサーバBお願いします。

サーバA
サーバA

わかりました。

クライアントAにニュースを送ります。

サーバB
サーバB

わかりました。

クライアントBにニュースを送ります。

クライアントA
クライアントA

ありがとう。見れました。

クライアントB
クライアントB

ありがとう。見れました。

このように、IPCOMは複数のサーバの代表になることで一度リクエストを受け取り、実際のサーバに振り分けます。

設定コマンド

負荷分散の設定コマンドはIPCOMログイン後に、管理モード、設定モード、設定の読み込みを行った後に入力できます。

IPCOM>admin
Password:xxxx←表示はされませんがここでadminのパスワードを入力
IPCOM#configure ←設定モードに変更
IPCOM(config)#load running-config ←実行中の設定を読み込み
IPCOM(edit)#←この状態で入力していきます。

一番シンプルな設定コマンドはこちらになります。

①実際のサーバを2台設定する
IPCOM(edit)#slb real-server 10-1-1-1
IPCOM(edit-slb-real)#    distribution-address 10.1.1.1
IPCOM(edit-slb-real)#    exit
IPCOM(edit)#slb real-server 10-1-1-2
IPCOM(edit-slb-real)#    distribution-address 10.1.1.2
IPCOM(edit-slb-real)#    exit
②代表IPを設定して実際のサーバを紐づける
IPCOM(edit)#slb-rule 100
IPCOM(edit-slb-rule)#    virtual-server 10.1.1.100 80/tcp
IPCOM(edit-slb-rule)#    distribution-rule 100
IPCOM(edit-dist-rule)#        monitor level ping
IPCOM(edit-dist-rule)#        real-server 10-1-1-1
IPCOM(edit-dist-rule-real)#        exit
IPCOM(edit-dist-rule)#    real-server 10-1-1-2
IPCOM(edit-dist-rule-real)#        exit

この設定を行うと宛先10.1.1.100 80のパケットは下記どちらかへ転送されます。

  • 10.1.1.1
  • 10.1.1.2

上の例は単純な設定の場合ですが、実際には下記項目を指定します。

  • 振り分ける方法
  • 稼働確認と停止時の動き
  • 復旧時の動き

振り分ける方法

デフォルトでは実際のサーバがAとBの2台あればA→B→A→Bと、順番に振り分けを行います。

デフォルトで入っているコマンド

distribution-mode round-robin

実際にはこの赤色線の部分に入っています。

IPCOM(edit)#slb-rule 100
IPCOM(edit-slb-rule)#    virtual-server 10.1.1.100 80/tcp
IPCOM(edit-slb-rule)#    distribution-rule 100
IPCOM(edit-dist-rule)#        distribution-mode round-robin

デフォルトから変更したい場合は振り分け方法によってコマンドを決めます。

AとBのうちAに80%、Bに20%で振り分けたい場合。

distribution-mode weighted-round-robin
real-server 10-1-1-1
    weight 80
    exit
real-server 10-1-1-2
    weight 20
    exit

赤線で振り分け比率を変える事を宣言して、青線でそれぞれの比率を指定します。

コネクションの少ないほうに振り分けたい場合。

distribution-mode minimum-connection

AとBにそれぞれ振り分けていてもBに接続しているクライアントが先に接続を終了していくと、Bは処理がなくなります。
そうなった時に順番としてはAだとしてもコネクションの少ないBに振り分けるので負荷が均等になります。

稼働確認と停止時の動き

サーバが動いているかチェックする方法を指定します。
例では赤線の部分で指定しています。
この指定は実際のサーバに対してPingを実行して動いているかチェックします。

IPCOM(edit)#slb-rule 100
IPCOM(edit-slb-rule)#    virtual-server 10.1.1.100 80/tcp
IPCOM(edit-slb-rule)#    distribution-rule 100
IPCOM(edit-dist-rule)#        monitor level ping

Pingの他にポートでもチェックできます。
ポートをチェックする事を指定して、その後にエラーだった場合の動作を書きます。

IPCOM(edit)#slb-rule 100
IPCOM(edit-slb-rule)#    virtual-server 10.1.1.100 80/tcp
IPCOM(edit-slb-rule)#    distribution-rule 100
IPCOM(edit-dist-rule)#        monitor level port
IPCOM(edit-dist-rule)#        error-action tcp reset

この例だと故障したサーバへ接続していたクライアントにセッションのリセットを通知します。
これによってクライアントはリアルタイムで接続失敗になるので、もう一度接続を試して故障していない方のサーバに振り分けられて通信ができるようになります。

復旧時の動き

デフォルトでは停止したサーバが復旧すると自動的に負荷分散の対象になって処理を開始します。

デフォルトで入っているコマンド

recovery-action switch-back

実際にはこの赤色線の部分に入っています。

IPCOM(edit)#slb-rule 100
IPCOM(edit-slb-rule)#    virtual-server 10.1.1.100 80/tcp
IPCOM(edit-slb-rule)#    distribution-rule 100
IPCOM(edit-dist-rule)#        distribution-mode round-robin
IPCOM(edit-dist-rule)#        recovery-action switch-back

自動復旧のほうが機能的だと思うかもしれませんが、リクエストを受けるとエラーになって再起動してしまう問題が発生したとします。
そんな時自動復旧だと完全に治ってないのにリクエストを受け付けるが、また停止していまう。と言う事になってしまいます。
それを回避するには事前に自動復旧しないように設定しておきます。

復旧時の処理を手動にするコマンド

recovery-action maintenance

この設定を入れると一度故障したサーバは手動で操作しないと振り分け対象になりません。

10.1.1.1が完全復旧後に振り分け対象に戻すコマンド

clear maintenance slb real-address 10.1.1.1

このコマンドは設定ではなく、復旧時に直接実行する必要があります。

スポンサーリンク

設定を保存する

設定が終わったら保存しましょう。

保存するコマンド

IPCOM(edit)#save
Do you overwrite "running-config" by the current configuration? (y|[n]):y ←yを入力
Do you update "startup-config" for the restarting system? (y|[n]):y ←yを入力

この表示が出ればOK

The configuration was committed and saved to startup-config.

編集モードを終了しておきます。

IPCOM(edit)#end

クラスター(装置冗長化)の場合は同期コマンドも実行します。

IPCOM#sync cluster
Thes System:primary
primary ("設定日の日付") -> secondary("前回設定日の日付")
Are you sure? (y|[n]):y ←yを入力

同期処理のログが沢山出力されますが、
最後にこの表示が出ればOKです。

[INFO]The synchronization was completed.

確認コマンド

現在のサーバ状態確認コマンド

show slb status detail

結果

slb-rule=100
vip=10.1.1.100
    dist-rule=100
    dist-mode=round-robin
        10-1-1-1(10.1.1.1)/type:primary    backup-priority:--
            action state:up
                        80/tcp:up
            operation state:active
                        shift time to maintenance:
            connection:10
        10-1-1-2(10.1.1.2)/type:primary    backup-priority:--
            action state:up
                        80/tcp:up
            operation state:active
                        shift time to maintenance:
            connection:10

例で設定したサーバ名2つとその稼働確認のポートがアップしていて正常だということが確認できます。

統計情報の確認コマンド

show slb statistics distribution all

結果

slb-rule=100
vip=10.0.0.100
vport=80/tcp
---------------------
dist-rule class-map
    real
        mode               now   peak   peak time
---------------------
100 10-1-1-1(10.1.1.1)
        current-connection 10      10   2022/05/23(Mon)00:00:00
        total-connection   10      --   ----/--/--(---)--:--:--
<中省略>
100 10-1-1-2(10.1.1.2)
        current-connection 10      10   2022/05/23(Mon)00:00:00
        total-connection   10      --   ----/--/--(---)--:--:--
<以下省略>

currentは現在接続している数で、
totalは今まで合計値です。
他にも情報が沢山出てきますが、上2つを覚えておけば確認には困らないと思います。

IPCOMの確認コマンドをまとめた記事もあります。

ネットワークはどうやって覚える?

ネットワークといっても基本用語が分からないと都度ネットで調べたりして時間がかかってしまいます。
基礎から学ぶと実際のネットワークを見た時に、その構成の理由を理解できるようになります。

無料でやるならネット上の学習サイトを参考にするといいです。
こちらはネットワークの基礎から説明している無料のWEBサイトになります。

>>基礎から学べるWEBサイトを見てみる


実際に使われるコマンドなど実戦形式で覚えたい方はCCNAの学習をおススメします。
私もこのWEBサイトで勉強して資格を取りました。

>>CCNA学習用WEBサイトを見てみる


過去にネットでの学習でつまずいた方には専門書をオススメします。
本なら基礎から学べる事はもちろん、読者視点で分かりやすい解説になっています。
一人で集中してコツコツ進めたい方は書籍を試してください。



本ではわからない所が多すぎたり、誰かに質問したい場合はオンラインスクールを見てみましょう。
カウンセリングから目的に応じた学習プランと教材を提供してくれるので、ネットワークを覚える敷居がとても低くなります。
誰かに相談できるのは心強いです。

>>ネットワークの基本資格CCNAのオンラインスクールを見てみる


スポンサーリンク

まとめ

今回はIPCOMを代表サーバに設定して、実際のサーバに振り分けるサーバ負荷分散の設定コマンドについて説明しました。
サーバ負荷分散はネットワークで必ず使われる機能なので、稼働確認や復旧時の動作がどうなっているかは押さえておきましょう。

タイトルとURLをコピーしました