2003.08.17

SV-98でファイバーチャネル(第3回)

Written by かたあま☆彡  


前回までのお話

 とりあえず前回の試験によって、めでたく SV-98 および Express5800 の双方でファイバーチャネルの動作確認ができた、という状況になりました。
 そこで、今回は SV-98 と Express5800 の双方から利用できる共用ディスクが作成できるかどうかの実験結果をまとめてみましたが、記載されている内容については、私は一切保証しませんし、それに伴って発生した如何なる事故にも責任は負いませんので、あらかじめ御了承ください。
 なお、接続に使用した OS は SV-98・Express5800 ともに WindowsNT 4.0+SP6a の組み合わせです。


用意したハードウェア

 というわけで、以下のハードウェアで接続試験を行いました。
SV-98
SV-98 model3-20(仮)
SV-98/3-U01
Emulex LP8000-EMC

Express5800
Express5800 140Ma(N8500-379)
Emulex LP8000-EMC

ディスクユニット
Sun StorEdge A5000


共用ディスクとは

 通常の SCSI や IDE のハードディスクは、実装されている本体以外のコンピュータからアクセスする場合には、ネットワーク経由でアクセスする形になります。
 しかし、ファイバーチャネルの場合には接続されているディスクユニット自体にケーブルを接続するコネクタが複数存在しているものもあり、複数の機械に個別にファイバーチャネルの HBA を接続して、それぞれから接続可能になっているものがあります。


Sun StorEdge A5000 の GBIC 接続部分。

 また、ファイバーチャネルにはスイッチングハブが用意されていますので、逆に言えば複数の機械から特定のディスクユニットに対してのアクセスが可能な造りになっているということになります。ですから、これを使うことによって通常のネットワーク経由ではない接続方法、つまり HBA からの直結でディスクを複数の機械で共用できるということになります。
 今回の実験ではスイッチングハブは使用せず、Sun StorEdge A5000 に搭載されているコネクタを使用して、双方の機械からのケーブルを接続しました。


双方の機械からファイバーケーブルを接続する。


共用ストライプセットの作成

 さて、共用ディスクを作るとした場合には、やっぱり NT4.0 のソフトウェア RAID で作成したディスクを共用ディスクにしたいものです。
 そこでまずは 36G のディスク3台を使ってストライプセットを SV-98 側で作成しました。




 そして、そのディスクが使えるようになった段階で、いったん SV-98 の電源を落とし、今度は Express5800 側からどのように見えるかを試験しました。
 本来ならば、これだけでも共用ディスクとして認識するはずですが、ディスクアドミニストレータで見てみると、次のような表示になっていました。


 これでは見えていても使えるはずはないので、今度は Express5800 側でストライプセットを作成し直して SV-98 から見てみると、ドライブの一覧では確かに認識されていました。
 しかし、ディスクアドミニストレータで見てみると、次のような画面になってしまいました。

 この状態ではアクセスできないのはわかっていますが、試しにアクセスをしてみると次のようなウィンドウが表示されました。

 ということで、どうやら NT40 のソフトウェア RAID を使用したストライプセットは SV-98 と Express5800 とのような、いわゆる異なるアーキテクチャ間での共用ディスクとしては使用できないようです。しかし、同一機種間であれば共用できる可能性があるので、これは次回までに調査してみたいと思っています。


単体の共用ディスクの作成

 ストライプセットを共用ディスクとして使用できないことがわかったので、今度は単体での共用ディスクの作成を実験してみました。

 この場合は単純にディスクアドミニストレータでディスクを単体で NTFS でフォーマットするだけで、共用ディスクが作成できます。
 ということで、最初に SV-98 側でディスクを初期化しました。そして、そのままの状態で Express5800 側で見てみると、ドライブとして認識していましたので、ディスクアドミニストレータでも表示させてみたところ、今度はちゃんと NTFS としてドライブを認識していました。

 そこで、今度は逆に Express5800 側でディスクを初期化して、SV-98 側で見てみると、これも問題なくドライブとして認識していて、ディスクアドミニストレータでも NTFS として問題なく認識しており、双方でのファイルコピー試験も成功しました。

 ということで、どうやら単体のディスクであれば異なるアーキテクチャ間であっても共用ディスクは可能であるということがわかりました。
 ただし、ストライプセットの構成情報がどちらかの機械に残った状態でそのドライブにアクセスしようとすると、前述の「ディスク構造が破壊・・・」のウィンドウが出ますので注意して下さい。

 また、この方法で共用ディスクを作成した場合には「同一のファイルに対して複数の機械から同時に変更があった場合にはどうなるのか」という問題があります(これはネットワーク環境においても同じ問題は発生すると思いますが)。おそらく、通常のアプリケーションのデータなどであれば、最後に保存されたデータが生きてしまうのではないかと思いますし、 リアルタイムで変更を随時保存するようなデータベース系アプリケーションのデータの場合は不整合を生じてしまう可能性があります。
 そのため、ファイバーチャネルの HBA の中には、そのようなデータの不整合が発生することを防止するためのドライバ(フィルタドライバ)が用意されているものもあります。

 こちらが今までに見てきた中では、Compaq StorageWorks 64-bit/66-Mhz Fibre Channel Host Adapter にはフィルタドライバが用意されていました。しかしながら、実際にそのドライバを組み込むとどのような動きに変わるのかは不明なので、次回以降に異なる HBA との接続を検証する際に、その結果をレポートできるのではないかと思っています。


機種によるディスク容量認識の差について

 さて、今まで何度か SV-98 と Express5800 のディスクアドミニストレータの画面を表示してきましたが、その時にいつも気になっていたのが「同一のディスクのはずなのに SV-98 と Express5800 で表示される容量が違うものがある」ということでした。
 当方の環境では Seagate ST118202FC と Seagate ST318203FC が混在しています。ですから冷静に考えれば容量の表示に差が生じる可能性はあります。しかし、同一のユニットの中に搭載していて、見る機種によって表示される容量が違うというのは何とも不可解だったので、どちらの容量表示が正しいのかを調べてみました。

 まず、少ない容量で表示される Express5800 側でディスク容量いっぱいの 17359MB を確保しました。
 次にその状態で SV-98 でそのドライブをディスクアドミニストレータで見てみると、次のような表示になりました。


SV-98側で確認すると ディスク17 には空き容量がある。

 容量としては 17359MB が確保されていて、さらに空き容量があることがわかります。
 そこで、今度はその空き容量分も含めて SV-98 側でディスク容量いっぱいの 17366MB を確保して、それを Express5800 側で見てみると、今度は 17366MB として認識されました。


Express5800側で確認すると ディスク12 の容量が増えている。

 ということで、どうやら SV-98 で確保した方がほんの少しだけ容量を多くとれるということで、ドライブとしては 17366MB の容量を持っている、というのが真相のようです。しかし、どうしてこのような表示になってしまうのかについては不明なままです。


今後の展望

 とりあえずは、単体のディスクを使用した異なるアーキテクチャ間での共用ディスクは作成できました。
 しかしながら実用に耐えるだけの状況になっていないので、次回以降は「同一機種間でのストライプセットの共用ディスク化試験」や「異なる HBA を使用しての同一ユニット接続試験」などを行っていく予定です。うまくいけば、次回の冬コミに間に合うかもしれませんので、どうぞご期待下さい。


連絡先

 本稿に対してご質問があれば、 にメールを送っていただければ幸いです。

本稿に記載されている内容の無断転載・使用を禁じます。

戻る