2007.06.01 Friday
▼ 新しい朝が いつものようにはじまる
[ めも ]
自分の家でのテストに遊べるハブを探そうシリーズ。
ヤフオクで仕事から帰って掘り出し物を探していましたが、どうにも合うものがなく。というか、基本的にリースアップ品が流れてくるので、 サイズがでかい!!! とか ファーム(ハブの中に入っているOSみたいなもの)が古い!!! とか、なかなかあうのがありません。サイズはあきらめるしかないけどw。 色々情報を探していると、FXC5008なるものが。 ALLギガだし、DynamicVLANが使えないのは痛いけども、 さて、例の件が盛り上がってまいりましたw。 「何にも決まってないけど、明日から構築フェーズだし機器だししとこうか」 「この歳であの量の機器だしつらいなw」 なんていいつつ機器を出し、ハード系の実装を確認してみると・・・。 「(,,゚Д゚)∩、FCコントローラ実装できないんだけどw」 「しかも、2機実装するようになってるよ、これww」 プロジェクト関係者全員唖然w。みんな笑うしかできなかったですねw。 毎日のように花火が打ち上げられ、もはや「明日はどんな花火が打ちあがるんだろうなw」と、一同悟りをひらきつつありますw。 そんななか、今回採用することになった、AFTというもののご紹介。 これは、ネットワークボード(以下、LANボードという)がぶっ壊れても平気なようにしましょうというもの。 普通の家庭のパソコンでは、別にLANボードが壊れても、買ってくればいいかですが、そうなっても動くようにするものです。 何枚かのLANボードを仮想的に1枚のLANボードに見せかけます。これなら、1枚壊れても安心ですね。 これを実現するのにIntelのアドバンスド・ネットワーキング・サービス(以下、ANSという)というものを導入します。 ネットワークを構成する上では、レイヤという概念があります(下図参照)。 +----------------------+ |7.アプリケーション層 | +----------------------+ |6.プレゼンテーション層| +----------------------+ |5.セッション層 | +----------------------+ |4.トランスポート層 | +----------------------+ |3.ネットワーク層 | +----------------------+ |2.データリンク層 | +----------------------+ |1.物理層 | +----------------------+ このレイヤ2のとこまではカバーできます。要するに、この機能を使えば、下から二番目までは冗長化(要するに壊れても動く)できることになります。ちなみに、IPなんていうのは、レイヤ3になりますね。今回は、その辺のことはなかったことに。というか、構成上無理かな。少なくとも私には。一部、アプリケーション層で止まっては困るものがあるので、そちらは冗長化してますが、それは別の機会に。 このANSの機能で、止まったと判断する要素がレイヤ1でのものと、レイヤ2でのものがあります。要件とか構成次第ですが、今回はレイヤ2で判断させています。 レイヤ1での判断は、要するにリンクがきれたかきれてないかです。これは、ハブのOS部分が壊れたなんてときに対応が取れなくなるので、今回は却下(というか、私の場合は上位で上位でといきます) どのように判断するのか。それは、次のようになります(レイヤ2レベルのデータのやりとりのお話です)。 ※LANボード1(稼動系)とLANボード2(待機系)を組合わせて、仮想LANボードを構成したという前提です。 1.相手が稼動しているか確認するのに、確認用のデータ(以下、プローブという)を飛ばします(LAN1ボード→LAN2ボードへ、LAN2ボード→LAN1ボードへ)。 2.データが届けば相手が稼動していると判断します。 簡単ですね。 そのデータの内容ですが、以下のようになります。 ※MACアドレスというのは、そのLANボードに付けれれた番号のようなもの。基本的に世界でどこを探しても、同じ番号が割り振られるということはありません。IPアドレスのような、個人で使っていいぞてきな番号もありません。 +-----------------------------------+-----------+ |あて先MACアドレス|送信元MACアドレス|タイプ | |6オクテット |6オクテット |2オクテット| +------------+----+-----------------+-----------+ |データ | |50オクテット| +------------+ あて先MACアドレスには、全員にデータを飛ばす番号か、構成メンバだけにデータを飛ばす番号がはいります。 送信元MACアドレスには、自分のMACアドレスが入ります。 タイプは0x886dが固定で入ります。これは、確認用のデータですよということですね。ちなみに、IPですよって場合は、0x0800が入ります。 データの部分は、色々入っているのですが(FCSもデータに入れちゃってますが)、その中に確認用のシーケンス番号というのと、チームIDというのが重要になってきます。 チームIDというのは、あて先MACアドレスに全員にデータを飛ばすデータが入っていた場合、関係ないLANボードもデータを受け取ってしまいます。ANSがはいっていないならいいのですが、入っていると誤解が生じます。これでは困るので、このチームのメンバの確認ですよというのを判別するデータになります。 シーケンス番号というのは、LAN1ボードからLAN2ボードにデータを送信したときに、1というデータが飛ばされたとしたら、LAN2ボードもLAN1ボードへ1というデータを飛ばします。同じ番号が返ってきたら「あー、あいつ生きてるな」ってことです。 待機しているほうが死ぬ分にはかまいませんが(当然、常時監視を行って、待機系が死んだら即交換ですが)、稼動系が死んだ場合に、その番号のデータが返ってこないと、「あいつ、逝っちまったか。俺が変わりに」となるわけですね。 シーケンス番号は、毎回確認のたびに番号が変わります。 実際のデータを取ってみると、こんな感じになります(テスト環境で、1秒毎に確認データを垂れ流してます、この辺の確認の間隔も調整しないといけません)。 このデータだと21:30:04までは、きっちり稼動していて、21:30:05から片系が死んでいるということになります。 この技術は、通常の家電量販店で売っているハブにも使える技術です。 LANボードが壊れても信長やりたいんだよおおおおおおおおおおおおおお、って情熱をお持ちの方は是非使って見てくださいね♪。 以上、簡単ですがAFTの御紹介でした。 ※ 業務で使うには、もっと調整が必要ですし、別の技術の検討も必要です。当然、私の低い技術力でできることですし、間違った認識の部分があったりします。その辺は、ご了承ください。 |