Solaris Bandwidth Manager の使用を計画している地点ごとに、次のことを決定する必要があります。
IP 透過モードまたはサーバーモードのどちらを使用するか。これらのモードについては、「Solaris Bandwidth Manager のモード」を参照
IP 透過モードを使用する場合、マルチキャストトラフィックの処理方法。「マルチキャスト経路制御と Solaris Bandwidth Manager」を参照
クラスの階層と、各クラスに割り振る優先度と帯域幅。「クラス階層の設計」と 「帯域幅の割り振り」を参照
必要なクラスを設定するための、グループ、フィルタ、およびサービスの指定方法
任意のサイトで Solaris Bandwidth Manager の初期設定内容を選択するための正確な規則はありません。実際の使用状況を反映するような設定で始めて、大きな問題を一つ一つ解決していき、一定の期間にわたって性能を監視し、徐々に設定を微調整していきます。あるいは、すべてのクラスに等しい帯域幅を割り振り、Solaris Bandwidth Manager を stats モードで実行し、トラフィックをどのように分類するかを監視して、帯域幅 (%) をクラスに実際に割り振ります。
クラス階層は、リンクに対して確立したいネットワークトラフィックパターンに基づいている必要があります。まず、実際のトラフィックパターンについて考慮します。現在のトラフィックパターンについての情報からクラス階層を作成する方法については、「設定の計画の例」を参照してください。
クラス階層は、すべての場所で同じである必要はありません。ただし、ある場所のクラスがパケットの経路に沿った別の場所のクラスにどのように対応するかについて、常に認識しておく必要があります。
また、各クラスのトラフィックの特性や、クラスの定義方法を考慮する必要があります。たとえば、一部のアプリケーションはポート番号を動的に割り振ります。このような場合はポート番号を事前に知ることができないため、このようなアプリケーションが生成するトラフィックに対してポート番号に基づいたクラス定義は現実的でありません。代わりにプロトコルとアドレス情報を使用して、これらのクラスを定義します。
最低保障帯域幅を割り振るときの単位は、百分率 (%) またはビット/秒 (bps) です。root クラスには 1 つのインタフェースについて 100% の帯域幅が割り振られています。root の子クラスには root の帯域幅を割り振ります。それらのクラスの子クラスには、その親クラスの帯域幅を割り振ります。割り振った帯域幅は、そのクラスの最低保障帯域幅となります。必要であれば、上限、つまり、最高帯域幅も設定できます。
この節の残りでは、クラス階層に帯域幅を割り振る例を示します。次のようなクラス階層を仮定します。
帯域幅を子クラスに割り振る前、root クラスは 100% の帯域幅を持ちます。
root クラスの子クラス (図 3-4 の、1、2、3) に、root クラスに割り振られている帯域幅を分配します。
root クラス自身にも、自分に割り振られたトラフィックを処理するためにいくらかの帯域幅が必要です。したがって、子クラスには帯域幅の 100% を割り振らないようにしてください。上記の root クラスは残りの 5% を使用します。
それぞれの子クラスにおいて、割り振られている帯域幅を自身の子クラスに分配します。たとえば、クラス 1 に割り振られている 30% の帯域幅を、子クラスであるクラス 1.1 とクラス 1.2 に分配します。図 3-5 で括弧内の数字は、子クラスに割り振った後の残りの帯域幅を示しています。この残りの帯域幅は実際には親クラスに対する最低保障帯域幅となります。
すべてのクラスに帯域幅が割り振られるまで、各クラスに割り振られた帯域幅をその子クラスに分けていきます。
設定ファイル内でクラスに帯域幅を指定する場合、または batool を使う場合は、クラスとそのすべての子孫に割り振る帯域幅の合計を指定する必要があります。たとえば、クラス 3.1 には 20% を指定し、クラス 1 には 30% を指定します。
帯域幅を割り振るとき、すべてのクラスには最低保障帯域幅があります。ただし、そのクラスのトラフィック量が割り振られている帯域幅を超えた場合に、他のクラスが使用していない予備の帯域幅が存在すれば、そのクラスはその予備の帯域幅を借用できます。
上記設定において、クラス 1.2 のトラフィックが割り振られている 5% を超えて 7% になったと仮定します。ただし、クラス 1 の総トラフィックが 20% まで増加しただけで、クラス 1 には借用のための 10% の予備の帯域幅が残っているとします。つまり、クラス 1.2 はクラス 1 から 10% までの帯域幅を借用できます。したがって、この場合は必要な 2% の帯域幅を借用できます。
ただし、別のクラスの最低保障帯域幅を犠牲にしてまで、借用はできません。クラス 1.2 のトラフィックが 7% のままで、クラス 1.1 のトラフィックが 15% までに増加し、クラス 1 における総トラフィックが 30 % まで増加したと仮定します。この場合、クラス 1.2 はその親クラス (クラス 1) から借用し続けることはできません。しかし、クラス 1 がその親クラス (root クラス) から借用できる場合もあります。この場合、クラス 1.2 はクラス 1 からその追加の帯域幅を借用できます。
複数のクラスが帯域幅を借用したい場合、どのクラスが借用できるかはクラスの優先度によって決定されます。最高の優先度を持つクラスは、必要としている帯域幅以上のすべてを (利用可能な場合に) 借用できます。さらに帯域幅が残っている場合、次に優先度の高いクラスが借用できます。以降、同じように借用できます。
同じ優先度を持つ複数のクラスが借用したい場合は、最低保障帯域幅の量によって決定されます。たとえば、クラス 1.1 (15%) とクラス 1.2 (5%) の両方が借用したい場合に、両方が同じ優先度を持っていると、使用可能な帯域幅が 3:1 の割合で分割されます。
優先度の高いクラスが他のクラスを無視してすべての帯域幅を借用することを防ぐためには、次のようにします。
設定において、すべてのクラスに十分なレベルの最低保障帯域幅を割り振ります。
優先度の高いクラスには、保証帯域幅を最大レベルで設定するように考慮します。