こちらのトピックでは、いかなるネットワークにおいてもDDPを導入する前に、考慮するべき基本ルールについて述べてあります。
これらのルールはどれも無視してはいけません。システム全体のパフォーマンスおよび安定性に直接影響してくるからです。
弊社チームが明示的な特別指示を提示しない限り、基本ルールを無視してもよいという例外はありません。
DDPサイドのネットワークルール:
通常、スイッチにつながる10G NICsの為のフローコントロールは無効にし、1G NICsとクライアント機器に直接つながる、10G NICsのフローコントロールを有効にします。
直接クライアント機器につながる10 NICsにMTU 9000 を設定し、他のあらゆる事例では1500を設定します。 一つのDDPポートのMTUの値は、常にクライアント機器側に設定した値と一致していなくてはいけません。
スイッチのネットワークルール
- DDPに接続した10G NICs のフローコントロールは常に無効にし、他の全ての事例では、有効にします。
-MTUの設定は1500か9000のどちらかに設定します。
全スイッチポートにMTU9000を設定し、クライアントマシンおよびDDPでは1500に設定したとしても、それは問題にはなりません。
なぜなら、DDPもしくはクライアントマシンのどちらもMTU値が9000で設定されていなくても、スイッチが1500バイト以上のパケットを送ることはないからです。
クライアント機器側のネットワークルール
- 必ずフローコントロールを有効にします。
- DDPに直接接続する10つのNICsのMTUには 9000を設定します。他の全ての場合は、1500を設定します。クライアント機器側のポートの MTUの値は、DDPのポートに設定された値と必ず 一致しなければいけません。
- Full duplex settingを有効にします。
MTU設定:
MTU値は、必ずDDPとクライアントマシン側それぞれのポートで一致しておく必要があります。簡単な確認方法は、リモートマシン側のMTU値が9000である場合、下記のようにpingコマンドを実行します。(IPアドレスの箇所は実際のリモートマシンのものにしてください):
ping -f -L 9000 172.16.5.100
このコマンドがうまく実行されない時は、スィッチ側もしくはもしくはリモートマシン側のMTUが正しく設定されていないということです。
pingがリモートクライアントから返ってくる場合は、スィッチ側そしてマシン側共にMTU値が正常に設定されている証拠になります。
特別なケース:
DDPとスイッチ両方の10Gポートのフローコントロールの設定には、2つのオプションがあります。
- 電源を落として、発生したパケットロスをアクセプトします
この1つ目は推奨オプションで簡単で、早いからです。ただ、FCPのようにメディアをプレバッファしないアプリケーションでは、パケットロスの影響を受けます。
- 電源を入れ、トラフィックコントロールを設定します。それは、スイッチバッファの未使用域が無くなることで、ラインヘッドブロッキングを引き起こすのを避ける為です。
この二つ目のオプションは、パケットロスを避け、より高い処理能力を10Gのアップリンク上に得る為に選択します。しかしながら、トラフィックコントロールのスクリプトを設定し、適用されるまでには時間がかかります。なぜなら、ネットワークインフラに適応する必要があるからです。
何台かのスイッチが入れ子になっている場合、同じルールを適用します。DDPのポートが10Gケーブルでスイッチと繋がっていれば、10Gケーブルでスイッチに繋がっているということですが、-両方のすいっちgフローコントロールの設定は、こうしなければいけません。-両方のスイッチの電源を切るか、DDPにトラフィックコントロールスクリプトが稼働しているスイッチの両方の電源を入れる。
以下にご注意ください。
OSXのネットワークプリファレンスの画面では、MTU設定を変更した際にうまく読み込めず、実際の値を反映しない場合があります。また、ネットワークインターフェースが正しくジャンボフレームをサポートしていないと、クライアントマシン再起動後に設定が消えてしまう可能性が有ります。
ifconfig コマンドを使って、設定されている数値を確認することをお勧めします。