(57)【要約】  イニシエータ回路とターゲット回路を含む装置。イニシエータ回路は、（ｉ）第１のインタフェースを介してネットワークと通信し、（ｉｉ）ネットワークに送信するためのテストシーケンスを生成するように構成されると良い。ターゲット回路は、（ｉ）ネットワークから第２のネットワークインタフェースを介してテストシーケンスを受信し、（ｉｉ）テストシーケンスに応答するように構成されると良い。【選択図】図１
2011528466.tif 000002
【特許請求の範囲】
【請求項１】
（ｉ）第１のインタフェースを介してネットワークと通信し、（ｉｉ）ファイルに記憶された複数の値からテストシーケンスを生成し、（ｉｉｉ）前記ファイルにおける前記値の１つ以上の変更によって、前記テストシーケンスに１つ以上のエラーを作成し、（ｉｖ）前記ネットワークで前記テストシーケンスを送信するように構成されたイニシエータ回路と、
（ｉ）前記ネットワークから第２のネットワークインタフェースを介して前記テストシーケンスを受信し、（ｉｉ）前記テストシーケンスに応答するように構成されたターゲット回路と、
を備えた装置。
【請求項２】
前記ターゲット回路は、ＲＡＩＤコントローラを含む請求項１に記載の装置。
【請求項３】
前記イニシエータ回路は、（ｉ）第１の状態において前記テストシーケンスを生成し、（ｉｉ）第２の状態において前記値からエラーフリーシーケンスを生成するように構成されたテストセクションを含む請求項１に記載の装置。
【請求項４】
前記テストシーケンスに挿入された前記エラーは、プロトコル固有のエラーをシミュレートするように構成されたプロトコル固有のエラーシーケンスを含む請求項１に記載の装置。
【請求項５】
前記プロトコル固有のエラーは、ネットワーク環境におけるエラーをシミュレートする請求項４に記載の装置。
【請求項６】
前記プロトコル固有のエラーは、インターネットスモールコンピュータシステムインタフェース（ｉＳＣＳＩ）プロトコルにおいてシミュレートされたエラーを含む請求項４に記載の装置。
【請求項７】
前記ネットワーク環境は、ファイバーチャンネルネットワークを含む請求項５に記載の装置。
【請求項８】
前記プロトコル固有のエラーは、リモートで生成されるエラーをシミュレートする請求項４に記載の装置。
【請求項９】
前記イニシエータ回路は、前記テストシーケンスの生成に先立って前記ファイルにおいて前記エラーを生成するように構成されたソフトウェアモジュールを含む請求項１に記載の装置。
【請求項１０】
前記ソフトウェアモジュールは、アップデート可能である請求項９に記載の装置。
【請求項１１】
前記ソフトウェアモジュールは、特定のオペレーティングシステムと互換性を持つ仮想ディレクトリ構造において前記ファイルを生成する請求項９に記載の装置。
【請求項１２】
前記特定のオペレーティングシステムは、Ｌｉｎｕｘオペレーティングシステムを含む請求項１１に記載の装置。
【請求項１３】
第１のインタフェースを介してネットワークと通信するための手段と、
ファイルに記憶された複数の値からテストシーケンスを生成するための手段と、
前記ファイルにおける前記値の１つ以上の変更によって、前記テストシーケンスに１つ以上のエラーを作成するための手段と、
前記ネットワークで前記テストシーケンスを送信するための手段と、
前記ネットワークから第２のネットワークインタフェースを介して前記テストシーケンスを受信するための手段と、
前記テストシーケンスに応答するための手段と、
を備えた装置。
【請求項１４】
（Ａ）イニシエータ回路の第１のインタフェースを介してネットワークと通信し、
（Ｂ）前記イニシエータ回路内のファイルに記憶された複数の値からテストシーケンスを生成し、
（Ｃ）前記ファイルにおける前記値の１つ以上の変更によって、前記テストシーケンスに１つ以上のエラーを作成し、
（Ｄ）前記ネットワークで前記テストシーケンスを送信し、
（Ｅ）前記ネットワークからターゲット回路の第２のネットワークインタフェースを介して前記テストシーケンスを受信し、
（Ｆ）前記テストシーケンスに応答する、
ステップを含むネットワークを介してテストする方法。
【請求項１５】
前記テスト回路が前記テストシーケンスにおいて前記エラーを適切に扱う場合に、前記イニシエータ回路をベリファイするステップを更に含む請求項１４に記載の方法。
【請求項１６】
前記エラーは、前記テストシーケンスの最初の生成に含まれる請求項１４に記載の方法。
【請求項１７】
前記テストシーケンスの生成に先立って前記ファイルにおいて前記エラーを生成するために前記イニシエータ回路においてソフトウェアモジュールを実行するステップを更に含む請求項１４に記載の方法。
【請求項１８】
前記テストシーケンスは、第１の状態において生成され、
第２の状態において前記イニシエータ回路で前記値からエラーフリーシーケンスを生成するステップを更に含む請求項１４に記載の方法。
【請求項１９】
前記ターゲット回路で前記エラーフリーシーケンスに応じた応答シーケンスを生成し、  前記応答シーケンスに１つ以上のエラーを作成する、
ステップを更に含む請求項１８に記載の方法。
【請求項２０】
前記イニシエータ回路に前記応答シーケンスを送信し、
前記イニシエータ回路が前記応答シーケンスにおいて前記応答エラーを適切に扱う場合にベリファイする、
ステップを更に含む請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に記憶アレイに係り、特に記憶域ネットワークにおけるコンポーネントの認証中に用いられるプロトコル固有のエラーの挿入のためのシステムを実現するための方法及び／又は装置に関するものである。
【背景技術】
【０００２】
従来のドライブアレイは、インターネットスモールコンピュータシステムインタフェース（ｉＳＣＳＩ）プロトコルフォーマットにエラーを挿入することができるツールを提供しない。いくつかのツールは、ファイバーチャンネルのような他のプロトコルのために利用可能である。しかしながら、ファイバーチャンネルツールは、高価になり得る個別のアナライザ（解析プログラム）を必要とする。
【０００３】
このようなアナライザは、イニシエータ（開始プログラム）とターゲットデバイスとの間に配置される。アナライザを用いて、イニシエータからターゲットに送信されたプロトコルデータユニット（ＰＤＵ）は遮断されるだろう。ＰＤＵスタックにおけるいくつかのビットは、応答にエラーを差し込むために変更されるだろう。エラー挿入のための従来の１つの方法は、イニシエータとターゲットとの接続間でＦｉｎｉｓａｒ  Ｘｇｉｇ  ｐｒｏｔｏｃｏｌ  ａｎａｌｙｚｅｒ（カリフォルニア州、サニーヴェールのフィニサー株式会社から入手可能）を用いる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなエラー挿入システムの欠点は、（ｉ）Ｆｉｎｉｓａｒ  Ａｎａｌｙｚｅｒに追加費用が必要とされる、（ｉｉ）プロトコルのためにエキスパートが必要なビットを見つけて、且つビットを修正する必要がある、（ｉｉｉ）余分なスペース及び／又はケーブルが必要とされる、（ｉｖ）リモートセットアップで動作するために無力である、（ｖ）アナライザをモニタリングし変更するための余分なＰＣ／ラップトップの必要性、及び／又は（ｖｉ）データを変更し再送するためにデータをタッピングする必要性があり、それはトランスミッションにおけるいくらかの遅延の原因となるかもしれない、と言うことである。このようなハードウェアデバイスでさえ、ユーザはｉＳＣＳＩエラーを挿入することができない。このようなデバイスは、ｉＳＣＳＩジャマー機能を提供することができない。
【０００５】
記憶域ネットワークにおけるｉＳＣＳＩコンポーネントの認証中にプロトコル固有のエラー（例えば、ｉＳＣＳＩ）を挿入するためのシステムを実現することは望ましいだろう。
【課題を解決するための手段】
【０００６】
本発明は、イニシエータ回路とターゲット回路を含む装置に関する。イニシエータ回路は、（ｉ）第１のインタフェースを介してネットワークと通信し、（ｉｉ）ネットワークに送信されるテストシーケンスを生成するように構成されると良い。ターゲット回路は（ｉ）ネットワークから第２のネットワークインタフェースを介してテストシーケンスを受信し、（ｉｉ）テストシーケンスに対して応答するように構成されると良い。
【０００７】
本発明の目的、特徴及び利点は、（ｉ）ＰＤＵにエラーを挿入し、（ｉｉ）専用ハードウェアデバイスなしで実現され、（ｉｉｉ）トラフィックを監視するためにプロトコルエキスパートなしで実現され、（ｉｖ）モニタリング及びＰＤＵ応答を変更するための個別のＰＣ／ラップトップなしで実現され、（ｖ）ネットワークトラフィックをタッピングせずに実現され、（ｖｉ）遅延を回避し、（ｖｉｉ）テスト過程を自動化し、（ｖｉｉｉ）テストが手動で実行されても、使用のために容易なシステムを提供し、（ｉｘ）ソフトウェアで実現され、（ｘ）ソフトウェアによる効率的な機能と拡張アップグレードを可能とし、（ｘｉ）設計とデバッグのフレキシビリティを提供し、及び／又は（ｘｉｉ）誤り挿入の変更が将来のプロトコルリリース及び／又はハードウェアを更新するコストを伴わないバージョンと互換性を持ち続けることを可能にするテストシステムを提供することを含むだろう。
【０００８】
本発明のこれらと他の目的、特徴及び利点は、以下の明細書と添付された特許請求の範囲と図面とから明らかになるだろう。
【図面の簡単な説明】
【０００９】
【図１】本発明を示す図である。
【図２】本発明のより詳細な図である。
【図３】本発明のフローチャートである。
【発明を実施するための形態】
【００１０】
インターネットスモールコンピュータシステムインタフェース（ｉＳＣＳＩ）アレイコントローラの認証は、プロトコルの挿入を可能にするツールを用いる。本発明は、ＰＤＵにおけるイニシエータのような既存のコンポーネント内からの直接のプロトコル固有のエラーの差し込み（又は挿入）に関する。一例では、本発明は既存のコンポーネント内に実現されたソフトウェアモジュールとして実現されると良い。エラーは、影響を与える誤ったデータ入力から適切に応答及び回復するアレイコントローラのようなターゲットかどうかを確認するために用いられると良い。このような応答は、以下の（ｉ）予期しない／容認されないエラー、（ｉｉ）データ破壊、（ｉｉｉ）データに対するアクセスのロス、（ｉｖ）入出力エラー、（ｖ）入出力タイムアウト、（ｖｉ）アレイコントローラのハングアップ、及び／又は（ｖｉｉ）他のエラーの１つ以上の原因とならずに実行されると良い。
【００１１】
本発明は、ＰＤＵ生成行程で実行されるであろうプロトコルデータユニット（ＰＤＵ）にエラーを挿入するためのシステムを提供するだろう。本発明は、トランスミッション間のデータをタッピングしないようにし、及び／又はデータを変更しないようにするだろう。ソフトウェアイニシエータを用いることによって、ＰＤＵが生成されている間、プロトコル固有のエラーはＰＤＵに挿入されると良い。
【００１２】
図１を参照すると、本発明の好適な実施の形態に従ってシステム１００の構成図が示される。システム１００は、ＰＤＵの生成中のエラー挿入を示す。一般にシステム１００は、ブロック（又は回路）１０２、ブロック（又は回路）１０４、ブロック（又は回路）１０６、ブロック（又は回路）１０８、ブロック（又は回路）１０９及びネットワーク１１０を含む。回路１０２は、イニシエータ回路として実現されると良い。回路１０４は、ホスト回路として実現されると良い。回路１０６は、ハブ、レギュレータ、スイッチなどのようなネットワークデバイスとして実現されると良い。一例では、回路１０６はファイバーチャンネルスイッチとして実現されると良い。このようなスイッチの一例は、２００８年７月１５日に出願された仮特許出願第６１／０８０，７６２号明細書に開示され、その全体が引用によって組み込まれる。一例では、回路１０８はストレージ（またはドライブ）格納装置として実現されると良い。一例では、回路１０９はストレージ（またはドライブ）格納装置として実現されると良い。ネットワーク１１０は、イーサネット（登録商標）ネットワークとして実現されると良い。
【００１３】
回路１０２は、ＩＰ接続（例えば、１９２．１６８．２０．２１）によってネットワーク１１０に接続されて示される。特定のＩＰアドレスは特定のネットワーク環境のために修正されると良い。同様に、デバイス１０４は、ＩＰ接続（例えば、１９２．１６８．２０．３４）とＩＰ接続（例えば、１９２．１６８．２０．３３）を有して示される。ＩＰアドレス３３とＩＰアドレス３４は、ネットワーク１１０にデバイス１０４からのマルチパスコネクションを提供すると良い。デバイス１０４は、さらにスイッチ１０６と回路１０２を介してネットワーク１１０に接続すると良い。
【００１４】
一例では、システム１００はｉＳＣＳＩソフトウェアイニシエータ１０２を用いると良い。しかしながら、他のプロトコル特定のイニシエータが特定の実施の形態の設計基準を満たすために実現されても良い。ｉＳＣＳＩ環境では、／ＰＲＯＣ仮想ファイルシステムはＰＤＵ生成中にエラーを挿入するように実現されると良い。「／」は一般にディレクトリ構造を示し、「ＰＲＯＣ」は一般にディレクトリ名を示す。特定の名称は特定の実施の形態の設計基準を満たすために修正されると良い。一例では、このような仮想ファイルシステムはＬｉｎｕｘオペレーションシステムで実現されると良い。しかしながら、他のオペレーティングシステムが特定の実施の形態の設計基準を満たすために実現されても良い。ＰＤＵの生成中にｉＳＣＳＩイニシエータ１０２を用い、ＰＲＯＣファイルシステムにおける値の変更により、システム１００はＰＲＯＣファイルシステムに１つ以上のエラーを挿入すると良い。エラーは、特定のネットワーク環境が実際のエラーに反応する行程をテストするのに有用な手法で制御されると良い。制御されたエラーは、ネットワークを「ライブ」状態に設定する前にテストするために用いられると良い。ＰＤＵトランスミッションは、詳しい解析のために用いられるであろうホスト回路１０４にログインされると良い。
【００１５】
エラー挿入を用いる完全なテストは、ｓｈｅｌｌ／ｅｘｐｅｃｔスクリプトを用いて自動化されると良い。このようなスクリプトの自動化は、（ｉ）イニシエータとターゲットのインターネットプロトコル（ＩＰ）アドレス、（ｉｉ）通信のためのポート番号（例えば、初期設定３２６０）、（ｉｉｉ）ログオン資格（もし必要ならば）、および／または（ｉｖ）ＰＲＯＣエントリなどに修正されるための値のような詳細を含んでいると良い。
【００１６】
システム仕様は、（ｉ）イニシエータホスト１０４として２．６カーネルを備えたＬｉｎｕｘマシン、（ｉｉ）ホスト１０４にインストールされた開発パッケージ、（ｉｉｉ）エラー挿入モジュールを備えたソフトウェアイニシエータ、（ｉｖ）イニシエータ１０２に接続するためのＮＩＣ（ネットワークインタフェースカード）ポート、（ｖ）ｓｈｅｌｌ／ｅｘｐｅｃｔスクリプトのためのサポート、および／または（ｖｉ）ファイアウォールが存在する場合、指定されたポートを介して通信を可能にするものを含むと良い。
【００１７】
図２を参照すると、イニシエータターゲット１００のより詳細な図が示される。一般にイニシエータ１０２は、ブロック（または回路）１１１とブロック（または回路）１１２とを含む。回路１１１は、テストセクション（または回路）として実現されると良い。一般に回路１１１は、ブロック（または回路）１１４、ブロック（または回路）１１６およびブロック（または回路）１１８を含む。回路１１２は、スクリプト回路として実現されると良い。回路１１４は、ＰＲＯＣ回路として実現されると良い。回路１１６は、カーネル回路として実現されると良い。回路１１８は、ユーザ回路として実現されると良い。
【００１８】
イニシエータ１０２は、入出力１２０と入出力１２２とを有すると良い。入出力１２０と１２２は、信号ＥＲＲＯＲ＿ＦＬＯＷを生成すると良い。イニシエータ１０２によって生成されたプロトコル固有のエラーは、信号ＥＲＲＯＲ＿ＦＬＯＷに含まれると良い。信号ＥＲＲＯＲ＿ＦＬＯＷは入出力１２０から入出力１２８に送信される（または接続される）と良い。信号ＥＲＲＯＲ＿ＦＬＯＷは、さらに入出力１２２から入出力１３０に送信される（または接続される）と良い。入出力１２０は、ネットワークケーブル１２４によって入出力１２８に接続されると良い。入出力１２２は、ネットワークケーブル１２６によって入出力１２２に接続されると良い。一例では、ネットワークケーブル１２４とネットワークケーブル１２６は、ファイバーチャンネルケーブル（またはリンク）として実現されると良い。しかしながら、他のリンクのタイプが特定の実施の形態の設計基準を満たすために実現されても良い。
【００１９】
一般にホスト回路１０４は、入出力１４０と入出力１４２とを含む。信号ＥＲＲＯＲ＿ＦＬＯＷは入出力１３２から入出力１４０に送信される（または接続される）と良い。信号ＥＲＲＯＲ＿ＦＬＯＷは入出力１３４から入出力１４２に送信される（または接続される）と良い。入出力１３２は、ネットワークケーブル１３６によって入出力１４０に接続されると良い。入出力１３４は、ネットワークケーブル１３８によって入出力１４２に接続されると良い。一例では、ネットワークケーブル１３６とネットワークケーブル１３８は、ファイバーチャンネルケーブル（またはリンク）として実現されると良い。しかしながら、他のリンクのタイプが特定の実施の形態の設計基準を満たすために実現されても良い。
【００２０】
図３を参照すると、フローチャート３００が示される。一般にフローチャート３００は、ステップ（または状態）３０２、ステップ（または状態）３０４、ステップ（または状態）３０６、ステップ（または状態）３０８、ステップ（または状態）３１０、ステップ（または状態）３１２およびステップ（または状態）３１４を含む。ステップ３０２は、ＰＲＯＣエントリに変更するための要求値で作成されるｓｈｅｌｌ／ｅｘｐｅｃｔスクリプトを提供する。状態３０４は、一旦スクリプトが実行されれば、ＰＲＯＣ値が変更されるだろうと判断する。ステップ３０６は、ＰＤＵを生成している間にＰＤＵの値ペアと同等のキーを取得するために、イニシエータ１０２がＰＲＯＣエントリを調査するだろうと判断する。ステップ３０８は、ＰＲＯＣエントリがスクリプトによって設定された値を含むと判断し、その結果生成されたＰＤＵは誤った値を含んでいる。ステップ３１０は、ＰＤＵがターゲット１０４に送信されるだろうと判断する。ステップ３１２は、イニシエータ１０２から誤った値を受信するに際して、ターゲット１０４が誤った値のために適切に応答するべきであると判断する。ステップ３１４は、イニシエータ１０２から受信した誤った値に対してターゲット１０４が適切に応答したかどうかを認証時に判断する。ｉＳＣＳＩサービスは、イニシエータ１０２とターゲット１０４の両方で通常始められる。
【００２１】
システム１００は、オリジナルの通信をタッピングせずに、ＰＤＵ応答にエラーを挿入するだろう。様々な値のＰＲＯＣエントリがチャージされると良い。例えば、「Ａｃｔｉｖｅ  Ｖｅｒｓｉｏｎ  Ｃｈａｎｇｅ、ＣＨＡＰ（チャレンジハンドシェイク認証プロトコル）Ａ、ＣＨＡＰ  Ｃ  Ｌｅｎｇｔｈ、Ｄｅｌａｙ−ＰＤＵ  ｒｅｓｐｏｎｓｅ、Ｄｒｏｐ  ＰＤＵ、Ｄｒｏｐ  Ｃｏｎｎｅｃｔｉｏｎ、Ｉｎｊｅｃｔ  Ｄｉｇｅｓｔ  Ｅｒｒｏｒ、ｕｎｄｅｒ  ｒｕｎ、ｏｖｅｒ  ｒｕｎ、ＣＲＣ  ｅｒｒｏｒ、ｒｅｓｅｔなど」。システム１００は、スイッチ１０６を用いたリモートセットアップでさえエラー挿入を提供するために用いられると良い。
【００２２】
本発明は、イニシエータ１０２のテストを有効にするソフトウェアターゲット１０４にエラーを挿入するために拡張されると良い。このような実施の形態は、期待する結果を得るためにＰＤＵ値を変更することによって、イニシエータ１０２で誤った状態をシミュレートするだろう。本発明は、ｉＳＣＳＩ要求ＰＤＵを送信し、ｉＳＣＳＩ応答ＰＤＵを受信することができるいかなるデバイスでも動作するだろう。本発明は、イニシエータ１０２のテストのためにターゲットにエラーを挿入すべく拡張しても良い。本発明は、テストされる必要のあるあらゆるｉＳＣＳＩターゲットデバイス（例えば、ｉＳＣＳＩコントローラ、キーｉＳＣＳＩソフトウェアターゲットなど）で実現されても良い。他のプロトコル（例えば、ｉＳＣＳＩ以外）も実現されても良い。
【００２３】
図３のソフトウェアモジュールによって実行された機能は、関連技術の当業者に明らかであるように、現在の明細書の教示に従ってプログラムされた従来の多目的デジタルコンピュータを用いて実現されても良い。更に関連技術の当業者に明らかであるように、熟練したプログラマは、現在の明細書の情報の教示に基いて適切なソフトウェアコードを容易に作成することができる。本発明は、ＡＳＩＣ、ＦＰＧＡの用意により、又はここに記載されるように従来の構成回路の適切なネットワークを相互に連結させることによっても実現されるだろうし、ここに説明されるように、それらの変更は当業者にとって容易に明らかであろう。
【００２４】
本発明は、このように本発明に従った手順を実行するようにコンピュータをプログラムするために用いることができる指示を含む記憶媒体のようなコンピュータ製品を含むだろう。記憶媒体は限定されるものではなく、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、磁気または光カード、又は電子的な指示を記憶するのに好適な如何なるタイプの媒体を含むいかなるタイプのディスクも含むことができる。
【００２５】
本発明は特にその好適な実施の形態に関連して記述したが、本発明の範囲から逸脱することなく、フォームとディテールにおける様々な変更がなし得るだろうことが当業者によって理解されるであろう。
【図３】
2011528466.tif 000003
【図１】
2011528466.tif 000004
【図２】
2011528466.tif 000005
【国際調査報告】
2011528466.tif 000006