goo blog サービス終了のお知らせ 

ぢろーらものおもちゃ箱:引っ越し後

写真付きで日記や趣味を書くならgooブログ

サーバのNICチーミング

2010-07-09 23:40:51 | IT(OS)

ぢろーらもが直接サーバに触れること自体はあまりありません。ただ、ネットワーク機器のからみで「サーバのNICをチーミングする」という話はよくでてきます。

チーミング・・・簡単にいうと、サーバのNICの冗長化です。たとえばhttp://www.impressrd.jp/idc/special/2008sp/sg/bitisle.html のような構成で、サーバから2本線がでていますが、この場合、サーバにNICが2枚ささっていて、これらのNICを冗長化(Active-Standby)、あるいは負荷分散(Active-Active)で使用します。

この図の構成の場合省略してしまっているのかもしれませんが、本来はサーバ側にあるL2スイッチ間もケーブルを接続しておかないと、サーバがデータを送信したNICと、ロードバランサのActive側の系が一致していないと正常に通信できないはずです。

あと、そのような構成にした場合、Active-Standby構成であればStandby側はほぼリンクダウンのような扱いですが、Active-Activeの構成にした場合、サーバのNICとL2スイッチ間とでループ(ブロードキャストストーム発生)しないかどうかは念のため確認する必要があるでしょうもちろん、Active-Activeであれば全体の帯域も多く確保できます(ただしあくまで1つのセッションが使用するNICは1枚のみです)が、帯域に余裕があるのであればActive-Standbyのほうが問題になる可能性はより低いかと思います。

チーミングの死活監視(何を契機にどちらのリンクを使うかを切り替えるか)については、たとえばWindowsの場合、NICメーカーのドライバによってまちまちかもしれません。ポートのリンクダウンのみしかできない場合もあれば、特定の宛先にARPなどを実行し、その応答が帰ってきたらOKとみなす、というように、「直接つながっているラインのリンクダウンを伴わない障害」に関しても切り替えが可能なものもあります。

http://www.mdit.co.jp/ft8600/tech/pdf/05_lan_100225.pdf の5~6ページなど)

Windowsの場合基本的にはNICのメーカーがチーミング対応のドライバを出しているので、チーミングが可能なのは同じメーカーのNICになります。

Linuxの場合、チャネルボンディング(Channel Bonding)モジュールを使うことにより異なるメーカーのNICであってもチーミング可能です。設定についてはhttp://www.stackasterisk.jp/tech/systemConstruction/teaming01_01.jsp などがわかりやすいでしょう。

チャネルボンディングの死活監視でもARP監視が使えます。ただし、

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41166&forum=10&2

などを確認する限り、どうやらChannel BondingのARP監視は、「そのARPに対するリプライパケット」を正確に見ているのではなく、単に「NICからARPリクエストを投げたときに、『何らかの』パケットが返ってくれば、アクティブとみなす」という仕様のようですね。

以前ぢろーらもの先輩がチーミング関連の検証をしたとき、冗長化している上位のネットワーク機器の仮想IPアドレスに対してARPをしていた(アクティブ側のみが応答するはずなので、チーミングの系はネットワーク機器のアクティブ側と同じ系になるはず)のですが、冗長化している機器(アクティブ、スタンバイ両方)からなんらかの通信を行なっている場合、たとえばロードバランサがサーバに対するヘルスチェックパケットを行なう場合、そのヘルスチェックパケットをARP応答パケットと勘違いするため接続されているNICのポートがダウン状態にならないようです。これにより、上位ネットワーク機器でリンクダウンを伴わないフェイルオーバが発生した場合にNICのActive/Standbyが切り替わらない、ということが起こることになります。

ちなみに、Channel BondingのARP監視では、監視対象のサーバを指定するパラメータとしてarp_ip_targetがあり、ここに複数のサーバのIPアドレスを指定することができます。
ただし、複数指定した場合の動作としては「指定したIPからのリクエストがすべて返ってこなくてはいけない」という条件ではなく、「どれか1つでも返ってくればActive」という動作になります。

最後にブレードサーバの例ですが、サーバからシャーシ内のスイッチモジュールが2つありサーバからスイッチモジュールが冗長化されている、そしてそれぞれのスイッチがシャーシ外の別々のL2スイッチに接続されている、という例がよくあります。たとえば

http://www-06.ibm.com/jp/domino04/pc/support/Sylphd07.nsf/4360b33729c86d1c49256bc800113570/9e4a236c038a68ac4925754e00436595/$FILE/BladeCenter%20%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%86%97%E9%95%B7%E5%8C%96%E6%A7%8B%E6%88%90%E3%82%AC%E3%82%A4%E3%83%89%20Cisco%E7%A4%BE%E8%A3%BD%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E7%B7%A8.pdf

などがいい例です。

こちらの10枚目のスライドにあるように、上位スイッチとシャーシ内スイッチモジュールとの間の障害が発生した場合、それに同期してオーバーシャーシ内スイッチモジュールとサーバ間でもNICをフェイルオーバーさせて、接続が確立されている側の外部L2スイッチを利用できるような機能もあります。


この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)

ブログランキング・にほんブログ村へ

最新の画像もっと見る

コメントを投稿