2013/09/03

ますは仕様を決める必要がある

SCSIブロックコマンド-2を一通り訳したところで、目的通りiSCSIターゲットの実装に着手しようかと考えている。

だがその前に、何をどこまで実装しなければならないのかを決めなければならない。iSCSIやSCSIで決められている仕様は広大かつ深淵だが、明らかにその全てを実装する必要はない様に見える。ならば、実装する範囲を必要最小限に抑えれば、より簡単に作れるようになるというものだ。

そういうことで、まずはMicrosoftのiSCSIターゲットを使用して、送受信されるコマンドをパケットキャプチャで調べることにした。

そうすると、SCSIのコマンドで言うのなら、INQUIRY・MODE SENSE(6)・REPORT LUNS・TEST UNIT READY・READ(10)・READ CAPACITY(10)・WRITE(10)が使用されているところまでは分かった。しかし、それで全てなのかどうかが分からない。

少なくとも、クラスタフェールオーバーを行うためにはPERSISTENT RESERVE INとPERSISTENT RESERVE OUTが必須だとも言われる。だが、今はクラスタフェールオーバーを試してみる環境は用意できていない。また、ACAが生じた時の動作についても調べたいが、外部から介入して、そうそう都合よく異常を引き起こすというのも、それはそれで難易度が高い。

そうなるとやはり、ここはダミーのiSCSIイニシエータを作成して、サポートされるコマンドやモードページの一覧を取得するコマンドを発行してやるしかないかもしれない。ダミーのiSCSIイニシエータを動作させることができれば、相手側のターゲットの動作も、より詳細に調査することができるようになるだろう。

しかし、作るべき対象物がターゲットだというのに、まずはイニシエータ側から作るというのも、なにやら遠回りをしているような気がしなくもないのだが、まぁいいか。

0 件のコメント: