(57)【要約】【課題】  ホストの入力／出力（Ｉ／Ｏ）活動を変更し、Ｉ／Ｏ活動が向けられるストレージ・ドライブが、要求された情報にアクセスすることを可能にする方法、システム及び製品を提供すること。【解決手段】  ホストとストレージ媒体を有するストレージ装置との間の通信を処理するための方法、システム及び製品が提供される。使用のために要求された情報をストレージ・ドライブに送信することを必要とする、ストレージ媒体に向けられた入力／出力（Ｉ／Ｏ）要求をホストから受信し、ストレージ媒体に対してＩ／Ｏ要求を実行する。要求された情報が必要とされると判断したことに応答して、メッセージをホストに送信し、ホストにＩ／Ｏタイムアウト動作を変更させる。【選択図】      図１
2008112447.tif 000002
【特許請求の範囲】
【請求項１】
ホストとストレージ媒体を有するストレージ・ドライブとの間の通信を処理し、動作を実行させることを可能にするコードを有する製品であって、前記動作は、
使用のために要求された情報を前記ストレージ・ドライブに送信することを必要とする、前記ストレージ媒体に向けられた入力／出力（Ｉ／Ｏ）要求を、前記ホストから受信し、前記ストレージ媒体に対する前記Ｉ／Ｏ要求を実行するステップと、
前記要求された情報が必要とされると判断したことに応答して、メッセージを前記ホストに送信し、前記ホストにＩ／Ｏタイムアウト動作を変更させるステップと
を含む、製品。
【請求項２】
前記メッセージは第１のメッセージを含み、前記動作は、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、第２のメッセージを前記ホストに送信し、前記ホストに前記Ｉ／Ｏ要求を再送信させるステップをさらに含む、請求項１に記載の製品。
【請求項３】
前記第１のメッセージは、前記ホストにＩ／Ｏ要求ジョブ・ストリームをサスペンドさせ、前記Ｉ／Ｏ要求に関するあらゆるタイムアウト動作をサスペンドさせる静止メッセージを含み、前記第２のメッセージにより、前記ホストがタイムアウト動作を再開し、前記Ｉ／Ｏ要求を再送信する、請求項２に記載の製品。
【請求項４】
前記情報が必要とされると判断するステップは、前記ストレージ・ドライブから前記情報についての要求を受信するステップを含む、請求項１に記載の製品。
【請求項５】
前記メッセージは、前記要求された情報が、前記ホストを介して前記ストレージ・ドライブと装置との間で転送され、前記Ｉ／Ｏ要求を伝達した第１のネットワーク上での、又は第２のネットワークを介した、前記要求された情報の交換を容易にするよう指示する、情報報アクセス方式を示す、請求項１に記載の製品。
【請求項６】
前記動作は、
複数のストレージ・ドライブについての前記情報アクセス方式の表示を前記ホストから受信するステップをさらに含み、前記第１のネットワーク及び前記第２のネットワークは、異なるストレージ・ドライブについての前記情報アクセス方式として示すことができる、請求項５に記載の製品。
【請求項７】
前記メッセージは、前記情報アクセス方式が前記第２のネットワークを使用することを示し、前記動作は、
前記第２のネットワーク上で、前記要求された情報についての要求を前記装置に送信するステップと、
前記装置から前記情報のキーを受信するステップと、
第３の接続を介して、前記受信した情報を前記ストレージ・ドライブに送信するステップと
をさらに含む、請求項５に記載の製品。
【請求項８】
前記メッセージは、前記情報アクセス方式が前記第１のネットワークを使用することを示し、前記メッセージにより、前記ホストが、前記第１のネットワークを介して前記装置と前記ストレージ・ドライブとの間で前記要求された情報を交換することが容易になる、請求項５に記載の製品。
【請求項９】
前記動作は、
前記ホストから前記ストレージ・ドライブへの次のＩ／Ｏ要求を受信したことに応答して、静止メッセージを戻すステップと、
前記ストレージ・ドライブとの対話を必要とせず、前記ストレージ・ドライブへの前記要求された情報の転送を終了させるホスト・コマンドを処理することを可能にするステップと
を含む、請求項１に記載の製品。
【請求項１０】
前記要求された情報は、前記ストレージ・ドライブが前記ホストのＩ／Ｏ要求を処理するために必要とする暗号キーを含む、請求項１に記載の製品。
【請求項１１】
制御ユニットとストレージ媒体を有するストレージ・ドライブとの間の通信を処理することを可能にし、動作を引き起こすためのコードを有する製品であって、前記動作は、
ストレージ・ドライブによってアクセスされるストレージ媒体に向けられたＩ／Ｏ要求を制御ユニットに送信するステップであって、前記制御ユニットは前記ストレージ・ドライブと通信状態にある、ステップと、
前記Ｉ／Ｏ要求を処理するために、前記ストレージ・ドライブが情報を要求したことに応答して、前記制御ユニットからメッセージを受信するステップと、
前記メッセージに応答して、前記Ｉ／Ｏ要求に関するタイムアウト動作を変更するステップと、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記Ｉ／Ｏ要求を再送信するステップと
を含む、製品。
【請求項１２】
前記メッセージは、前記要求された情報が、前記Ｉ／Ｏ要求を前記制御ユニットに伝達した第１のネットワークを介して装置から獲得されるか、又は第２のネットワークを介して装置から獲得されるかを示す、請求項１１に記載の製品。
【請求項１３】
前記メッセージは、前記要求された情報が、前記第１のネットワークを介して獲得されることを示し、前記タイムアウト動作を変更するステップは、前記送信されたＩ／Ｏ要求を含むＩ／Ｏ要求ジョブ・ストリームをサスペンドするステップを含み、前記動作は、
前記要求された情報についての要求を前記装置に送信するステップと、
前記要求された情報を獲得したことに応答して、前記要求された情報を前記装置から前記制御ユニットに送信し、前記ストレージ・ドライブに転送するステップと、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記Ｉ／Ｏ要求を再送信するステップと
を含む、請求項１２に記載の製品。
【請求項１４】
前記メッセージは、第１のメッセージを含み、前記動作は、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記制御ユニットから第２のメッセージを受信するステップをさらに含み、前記第２のメッセージを受信したことに応答して、前記Ｉ／Ｏ要求が再送信され、前記Ｉ／Ｏジョブ・ストリームのサスペンドが終了する、請求項１３に記載の製品。
【請求項１５】
前記メッセージは、前記要求された情報が前記第２のネットワークを介して獲得されることを示し、前記メッセージは第１のメッセージを含み、前記動作は、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記制御ユニットから第２のメッセージを受信するステップをさらに含み、前記第２のメッセージを受信したことに応答して、前記Ｉ／Ｏ要求が再送信される、請求項１２に記載の製品。
【請求項１６】
前記要求された情報は、前記ストレージ・ドライブが前記Ｉ／Ｏ要求を処理するために必要とする暗号キーを含む、請求項１１に記載の製品。
【請求項１７】
ホスト及びストレージ媒体を有するストレージ・ドライブと通信状態にあるシステムであって、
プロセッサと、
動作を実行するための前記プロセッサによって実行されるコードと
を備え、前記動作は、
使用のために要求された情報を前記ストレージ・ドライブに送信することを必要とする、前記ストレージ媒体に向けられた入力／出力（Ｉ／Ｏ）要求を前記ホストから受信し、前記ストレージ媒体に対して前記Ｉ／Ｏ要求を実行するステップと、
前記要求された情報が必要とされると判断したことに応答して、メッセージを前記ホストに送信し、前記ホストにＩ／Ｏタイムアウト動作を変更させるステップと
を含む、システム。
【請求項１８】
前記メッセージは第１のメッセージを含み、前記動作は、
前記ストレージ装置が前記要求された情報を受信したことに応答して、第２のメッセージを前記ホストに送信し、前記ホストに前記Ｉ／Ｏ要求を再送信させるステップをさらに含む、請求項１７に記載のシステム。
【請求項１９】
前記第１のメッセージは、前記ホストにＩ／Ｏ要求ジョブ・ストリームをサスペンドさせ、前記Ｉ／Ｏ要求に関するあらゆるタイムアウト動作をサスペンドさせる静止メッセージを含み、前記第２のメッセージにより、前記ホストがタイムアウト動作を再開し、前記Ｉ／Ｏ要求を再送信する、請求項１８に記載のシステム。
【請求項２０】
前記メッセージは、前記要求された情報が、前記ホストを介して前記ストレージ・ドライブと装置との間で転送され、前記Ｉ／Ｏ要求を伝達した第１のネットワーク上での、又は第２のネットワークを介した、前記要求された情報の交換を容易にするよう指示する、情報アクセス方式を示す、請求項１８に記載のシステム。
【請求項２１】
前記動作は、
複数のストレージ・ドライブについての前記情報アクセス方式の表示を前記ホストから受信するステップをさらに含み、前記第１のネットワーク及び前記第２のネットワークは、異なるストレージ・ドライブについての前記情報アクセス方式として示すことができる、請求項２０に記載のシステム。
【請求項２２】
前記メッセージは、前記情報アクセス方式が前記第２のネットワークを使用することを示し、前記動作は、
前記第２のネットワーク上で、前記要求された情報についての要求を前記装置に送信するステップと、
前記装置から前記情報のキーを受信するステップと、
第３の接続を介して、前記受信した情報を前記ストレージ・ドライブに送信するステップと
をさらに含む、請求項２０に記載のシステム。
【請求項２３】
前記動作は、
前記ホストから前記ストレージ・ドライブへの次のＩ／Ｏ要求を受信したことに応答して、静止メッセージを戻すステップと、
前記ストレージ・ドライブとの対話を必要とせず、前記ストレージ・ドライブへの前記要求された情報の転送を終了させるホスト・コマンドを処理することを可能にするステップと
を含む、請求項１７に記載のシステム。
【請求項２４】
前記要求された情報は、前記ストレージ・ドライブが前記ホストのＩ／Ｏ要求を処理するために必要とする暗号キーを含む、請求項１７に記載のシステム。
【請求項２５】
ホスト及びストレージ媒体を有するストレージ・ドライブと通信状態にあるシステムであって、
プロセッサと、
動作を実行するための前記プロセッサによって実行されるコードと
を備え、前記動作は、
前記ストレージ・ドライブによってアクセスされる前記ストレージ媒体に向けられるＩ／Ｏ要求を前記制御ユニットに送信するステップであって、前記制御ユニットは前記ストレージ・ドライブと通信状態にある、ステップと、
前記Ｉ／Ｏ要求を処理するために、前記ストレージ・ドライブが情報を要求したことに応答して、前記制御ユニットからメッセージを受信するステップと、
前記メッセージに応答して、前記Ｉ／Ｏ要求に関するタイムアウト動作を変更するステップと、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記Ｉ／Ｏ要求を再送信するステップと
を含む、システム。
【請求項２６】
使用のために要求された情報を前記ストレージ・ドライブに送信することを必要とする、前記ストレージ媒体に向けられた入力／出力（Ｉ／Ｏ）要求を前記ホストから受信し、前記ストレージ媒体に対して前記Ｉ／Ｏ要求を実行するステップと、
前記要求された情報が必要とされると判断したことに応答して、メッセージを前記ホストに送信し、前記ホストにＩ／Ｏタイムアウト動作を変更させるステップと
を含む、方法。
【請求項２７】
前記ストレージ・ドライブによってアクセスされる前記ストレージ媒体に向けられるＩ／Ｏ要求を送信するステップであって、前記制御ユニットは前記ストレージ・ドライブと通信状態にある、ステップと、
前記Ｉ／Ｏ要求を処理するために、前記ストレージ・ドライブが情報を要求したことに応答して、前記制御ユニットからメッセージを受信するステップと、
前記メッセージに応答して、前記Ｉ／Ｏ要求に関するタイムアウト動作を変更するステップと、
前記ストレージ・ドライブが前記要求された情報を受信したことに応答して、前記Ｉ／Ｏ要求を再送信するステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストの入力／出力（Ｉ／Ｏ）活動を変更し、Ｉ／Ｏ活動が向けられるストレージ・ドライブが、要求された情報にアクセスするのを可能にする方法、システム及び製品に関する。
【背景技術】
【０００２】
データを保護するために、暗号化エンジン（encryption engine）によって、取り外し可能な媒体カートリッジに格納されたデータを暗号化することができる。データの暗号化は、顧客に関する個人データを格納する企業にとって特に有用である。近年の政府規制は、個人データを格納している会社に、データ紛失の報告又はデータの盗難防止について、要件及び法律上の義務を課している。
【０００３】
従来技術のシステムにおいて、ホストは、ホストと例えばテープ・ドライブなどの多数のストレージ・ドライブとの間にインターフェースを提供する、テープ制御ユニットのような制御ユニットを介して、Ｉ／Ｏ要求をストレージ・ドライブに実行依頼することができる。テープ制御ユニットが、ホストからＩ／Ｏ要求を受信し、テープ・ドライブが、エラー回復のような、Ｉ／Ｏ処理とは関係のない動作を実行するのにビジーであると判断した場合には、制御ユニットは、通知をホストに戻し、ホストにタイムアウト動作をサスペンドさせることができる。特定の従来技術のシステムにおいて、制御ユニットは、タイマーを含む。Ｉ／Ｏ要求がテープ・ドライブに保留されている間に制御ユニットのタイマーが終了する場合には、テープ制御ユニットは、テープ・ドライブが、Ｉ／Ｏ動作の実行とは関係のない処理のためにビジーなのかどうかを判断する。Ｉ／Ｏ動作の実行とは関係のない処理のためにビジーである場合には、制御ユニットは、静止メッセージ（quiescemessage）のようなメッセージをホストに送信し、ホストにタイムアウト動作をサスペンドさせ、ホストが早期にジョブを終了するのを防止する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ホストの入力／出力（Ｉ／Ｏ）活動を変更し、Ｉ／Ｏ活動が向けられるストレージ・ドライブが、要求された情報にアクセスすることを可能にする方法、システム及び製品を提供することが必要である。
【課題を解決するための手段】
【０００５】
ホストとストレージ媒体を有するストレージ装置との間の通信を処理するための方法、システム及び製品が提供される。使用のために要求された情報をストレージ・ドライブに送信することを必要とする、ストレージ媒体に向けられた入力／出力（Ｉ／Ｏ）要求をホストから受信し、ストレージ媒体に対するＩ／Ｏ要求を実行する。要求された情報が必要とされると判断したことに応答して、メッセージをホストに送信し、ホストにＩ／Ｏタイムアウト動作を変更させる。
【０００６】
更に別の実施形態において、メッセージは第１のメッセージを含む。ストレージ装置が要求された情報を受信したことに応答して、ホストが第２のメッセージを送信し、ホストにＩ／Ｏ要求を再送信する。
更に別の実施形態において、第１のメッセージは、ホストにＩ／Ｏ要求ジョブ・ストリームをサスペンドさせ、Ｉ／Ｏ要求に関するあらゆるタイムアウト動作をサスペンドさせる静止メッセージを含む。第２のメッセージにより、ホストがタイムアウト動作を再開し、Ｉ／Ｏ要求を再送信する。
【０００７】
更に別の実施形態において、情報が必要とされると判断するステップは、ストレージ・ドライブから、情報についての要求を受信するステップを含む。
【０００８】
更に別の実施形態において、メッセージは、要求された情報がホストを介してストレージ・ドライブと装置との間で転送され、Ｉ／Ｏ要求を伝達した第１のネットワーク上での、又は第２のネットワークを介した、要求された情報の交換を容易にするよう指示する、情報アクセス方式を示す。
【０００９】
更に別の実施形態において、複数のストレージ・ドライブについての情報アクセス方式の表示をホストから受信する。第１のネットワーク及び第２のネットワークは、異なるストレージ・ドライブについての情報アクセス方式として示すことができる。
【００１０】
更に別の実施形態において、メッセージは、情報アクセス方式が第２のネットワークを使用することを示す。要求された情報についての要求は、第２のネットワーク上で装置に送信される。装置から情報のキーを受信し、受信した情報は、第３の接続を介して、ストレージ・ドライブに送信される。
【００１１】
更に別の実施形態において、メッセージは、情報アクセス方式が第１のネットワークを使用することを示し、メッセージは、ホストに、第１のネットワークを介した、装置とストレージ・ドライブとの間での要求された情報の交換を容易にさせる。
【００１２】
更に別の実施形態において、ホストからストレージ・ドライブへの次のＩ／Ｏ要求を受信したことに応答して、静止メッセージが戻される。ストレージ・ドライブとの対話を必要とせず、ストレージ・ドライブへの要求された情報の転送を終了させるホスト・コマンドを処理することが可能になる。
【００１３】
更に別の実施形態において、要求された情報は、ストレージ・ドライブがホストのＩ／Ｏ要求を処理するために必要とする暗号キーを含む。
【００１４】
さらに、制御ユニットとストレージ媒体を有するストレージ・ドライブとの間の通信を処理するための方法、システム及びプログラムが提供される。ストレージ・ドライブと通信状態にある制御ユニットに、ストレージ・ドライブによってアクセスされるストレージ媒体に向けられたＩ／Ｏ要求が送信される。Ｉ／Ｏ要求を処理するために、ストレージ・ドライブが情報を要求したことに応答して、制御ユニットからメッセージを受信する。メッセージに応答して、Ｉ／Ｏ要求に関するタイムアウト動作が変更される。ストレージ・ドライブが要求された情報を受信したことに応答して、Ｉ／Ｏ要求が再送信される。
【００１５】
更に別の実施形態において、メッセージは、要求された情報が、Ｉ／Ｏ要求を制御ユニットに伝達した第１のネットワークを介して装置から獲得されるか、又は第２のネットワークを介して装置から獲得されるかを示す。
【００１６】
更に別の実施形態において、メッセージは、要求された情報が、第１のネットワークを介して獲得されることを示し、タイムアウト動作を変更するステップは、送信されたＩ／Ｏ要求を含むＩ／Ｏ要求ジョブ・ストリームをサスペンドするステップを含む。要求された情報についての要求が、装置に送信される。要求された情報を獲得したことに応答して、要求された情報を装置から制御ユニットに送信し、ストレージ・ドライブに転送する。ストレージ・ドライブが要求された情報を受信したことに応答して、Ｉ／Ｏ要求が再送信される。
【００１７】
更に別の実施形態においては、メッセージは第１のメッセージを含む。ストレージ・ドライブが要求された情報を受信したことに応答して、制御ユニットから第２のメッセージが受信され、第２のメッセージを受信したことに応答して、Ｉ／Ｏ要求が再送信され、Ｉ／Ｏジョブ・ストリームのサスペンドが終了する。
【００１８】
更に別の実施形態において、メッセージは、要求された情報が第２のネットワークを介して獲得されることを示し、メッセージは第１のメッセージを含む。要求された情報をストレージ・ドライブが受信したことに応答して、制御ユニットから第２のメッセージが受信され、第２のメッセージを受信したことに応答して、Ｉ／Ｏ要求が再送信される。
【００１９】
更に別の実施形態において、要求された情報は、Ｉ／Ｏ要求を処理するためにストレージ・ドライブが必要とする暗号キーを含む。
【発明を実施するための最良の形態】
【００２０】
図１は、ストレージ・ドライブ２に取り付けられる取り外し可能なストレージ媒体を含むことができるストレージ媒体４とインターフェースするための、取り外し可能なストレージ・ドライブを含むことができるストレージ・ドライブ２を含む、ストレージ・コンピュータ環境の実施形態を示す。ストレージ・ドライブ２は、ストレージ・ドライブ２と対話するための、１つ又は複数のボタン又はキーを有するユーザ・インターフェース６を含むことができる。ユーザ・インターフェース６は、取り外し可能な媒体を手作業でアンロードするためのイジェクト・ボタンと、項目のリストをナビゲートするための上／下ボタンと、項目を選択し、或いはメニュー又はリストを終了するための入力／終了ボタンと、光又はＬＥＤ（発光ダイオード）、数値表示及び文字数字表示のような１つ又は複数の状態表示とを含むことができる。付加的に、接続されたコンピュータ・システム上のストレージ装置２に、ユーザ・インターフェースを与えることもできる。ストレージ媒体４は、ストレージ・ドライブ２内に取り付けることもできる。
【００２１】
ストレージ・ドライブ２は、連結されたストレージ媒体４に関する読み取り／書き込み動作を行うための入力／出力（Ｉ／Ｏ）マネージャ・コード８と、暗号化エンジン１０とを含む。ストレージ媒体４は、これらに限定されるものではないが、磁気媒体（磁気テープ又はディスク等）、光媒体（光テープ又はディスク等）、電子媒体（ＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＰＲＯＭ、ＭＲＡＭ、ＣｏｍｐａｃｔＦｌａｓｈ（登録商標）、Ｓｍａｒｔｍｅｄｉａ（登録商標）、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（登録商標）等）、又は他の適切な媒体を含む、データを格納することができ、取り外し可能な媒体として働くことができる、いずれかのタイプの媒体を含むことができる。特定の実施形態においては、ストレージ媒体は、磁気テープ・カートリッジ又は取り外し可能なディスクドライブを有するケースのようなカートリッジ・ハウジングを有する取り外し可能なストレージ媒体を含む。
【００２２】
暗号化エンジン１０は、これらに限定されるものではないが、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、データ暗号化規格）、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、先進暗号化規格）、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）及び当技術分野において周知の他の適切な暗号化アルゴリズムを含む１つ又は複数の暗号化アルゴリズムを用いて、連結された取り外し可能なストレージ媒体４に関するデータを暗号化し、暗号化解除することができる。
【００２３】
ストレージ制御ユニット１２は、１つ又は複数のストレージ・ドライブ２へのホスト１４のアクセスを管理するので、ホストは、１つのストレージ・ドライブ２に連結されたストレージ媒体４についてのＩ／Ｏ要求を、ストレージ制御ユニット１２に伝達する。制御ユニット１２は、制御ユニット１２の動作を実行するためのコード１６を含み、ホスト１４は、ホスト１４の動作を実行するためのコード１８を含む。
【００２４】
コード８、１６及び１８は、ハードウェア装置内のハードウェア論理として実装することができ、又はコンピュータ可読媒体内に実装することができる。コード８、１６及び１８がコンピュータ可読媒体内に実装される実施形態においては、ストレージ・ドライブ２、制御ユニット１２及びホスト１４内のプロセッサが、コードを格納するコンピュータ可読媒体から、それぞれ対応するコード８、１６及び１８にアクセスし、アクセスされたコードを実行する。
【００２５】
制御ユニット１２及びホスト１４は、ストレージ媒体４にアクセスするために、ホスト１４がＩ／Ｏ要求を制御ユニット１２に伝達する接続２０を介して通信することができる。接続２０は、ホスト駆動コマンド・応答プロトコルを用いることができる。制御ユニット１２及び１つ又は複数のストレージ・ドライブ２は、制御ユニット１２とホスト１４との間の接続とは別個のものにすることができる接続２２によって通信することができる。１つの実施形態においては、接続２０及び２２は、異なる又は同じホスト駆動コマンド・応答プロトコルを用いることができ、例えば、接続２０は、Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ（ＦＩＣＯＮ）インターフェース及びプロトコルを用いることができ、接続２２は、ファイバ・チャネル・プロトコル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ、ＦＣＰ）インターフェースを用いることができる。代替的な実施形態においては、接続２０及び２２を同じネットワークの一部とし、同じ接続プロトコルを用いることができる。接続２０及び２２は、ストレージ・エリア・ネットワーク（ＳＡＮ）のような、同じ又は異なるストレージ関連ネットワークの一部とすることができる。
【００２６】
１つの実施形態において、制御ユニット１２、及び制御ユニット１２がインターフェース接続するストレージ・ドライブ２を、別個のエンクロージャ又はハウジング内に含ませることができ、そこで、制御ユニット１２は、ネットワーク２０上で、連結されたストレージ・ドライブと通信することができる。１つの実施形態において、制御ユニット１２は、ストレージ・ドライブ２の各々に対して別個の接続を有することができ、又はファイバ・チャネル・アービトレート型ループ（Fibre Channel Arbitrated Loop）等のようなループ形態で、ストレージ・ドライブに接続することができる。制御ユニット１２及び連結されたストレージ・ドライブを、自動化ストレージ・ライブラリ又は他のストレージ・エンクロージャのような、同じ装置ハウジング内に含ませることができる。
【００２７】
制御ユニット１２及びホスト１４は、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ／ＩＰ）のような、接続２０及び２２とは異なるインターフェース及びプロトコルを用いることができるネットワーク２６上で、キー・サーバ２４に接続することができる。付加的に、制御ユニット１２及びホスト１４は、多数のキー・サーバ２４に接続し、冗長性を提供することができる。従って、ネットワーク２６は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット等を含むことができる。ネットワーク２６は、キー・サーバ２４にアクセスするために、制御ユニット１２及びホスト１４が共有する同じネットワークを含むことができ、又は別個のネットワークを含むこともできる。さらに、ホスト１４は、制御ユニット１２がアクセスするキー・サーバ２４とは別個のキー・サーバに接続することができ、この場合、ホスト１４が使用するキー・サーバは、ホストの外部にあってもよく、又はホスト１４の内部コンポーネントであってもよい。
【００２８】
接続２０及び２２は、ホスト１４、制御ユニット１２及びストレージ・ドライブ２に関係するストレージ関連の動作に関して「イン・バンド」であると特徴付けることができ、一方、ホスト１４、制御ユニット１２及びキー・サーバ２４の間のネットワーク２６を介する接続は、ストレージ関連の動作のために用いられるストレージ・ネットワーク又は接続２０及び２２に関して「アウト・オブ・バンド」であると特徴付けることができる。
【００２９】
キー・サーバ２４は、データベース、又は異なるストレージ媒体４からのデータを暗号化するために用いられる暗号化キーを格納する他のデータ構造を含むキー・ストアを維持する。スー・ストアは、アレイ、構造、データベース、ファイル等のようなソフトウェア要素を含むことができる。さらに、キー・ストアは、メモリ、媒体、ハードドライブ、ストレージ装置等のようなハードウェア要素を含むこともできる。
【００３０】
キー・サーバ２４は、暗号キーについての要求を受信し、キー・ストアからの暗号キーにアクセスし、キーを要求している制御ユニット１２又はホスト１４に暗号キーを送信する。次いで、この暗号キーは、ストレージ・ドライブ２に送信され、そこで、キーは、暗号化エンジン１０内にロードされ、接続された／取り付けられたストレージ媒体４に関するデータを暗号化解除／暗号化するために用いられる。１つの実施形態において、ストレージ・ドライブ２は、ストレージ・ドライブ２が暗号化解除できない暗号化されたバージョンの暗号キーを含むメッセージと共に、暗号キーについての要求を送信する。キー・マネージャ２４は、ストレージ・ドライブ２により送信された暗号化された暗号キーを暗号化解除し、次いで、この暗号化解除された暗号キーを再びストレージ・ドライブ２に送信する。１つの実施形態においては、キー・マネージャ２４は、セッション・キーのような、ストレージ・ドライブ２が利用可能な暗号キーを用いて、暗号化解除された暗号キーを暗号化することができるので、ストレージ・ドライブ２は、使用のために、キー・マネージャ２４からの暗号化された暗号キーを暗号化解除することができる。
【００３１】
図２は、ストレージ・ドライブ２に向けられたホスト１４のＩ／Ｏ要求を処理するために、制御ユニット１２のコード１６によって実行される動作の実施形態を示す。（ブロック１００において）ストレージ媒体４又はストレージ・ドライブ２に向けられたＩ／Ｏ要求を受信すると、（ブロック１０２において）制御ユニット１２は、Ｉ／Ｏ要求を、ターゲットのストレージ媒体が取り付けられたストレージ・ドライブ２に送信する。接続２０及び２２が、異なるホスト駆動コマンド・応答プロトコルのような異なる通信プロトコルを使用する実施形態においては、制御ユニット１２は、ホスト１４からのＩ／Ｏ要求をアンパックし、接続２０のために用いられる接続プロトコルとは異なるものにすることができる、接続２２のための接続プロトコルを用いて、パケットにエンコードすることができる。（ブロック１０４において）ストレージ・ドライブ２が、Ｉ／Ｏ動作の実行を必要とする、識別された暗号キーについての要求（例えば、ユニット・アテンション）をストレージ・ドライブ２から受信すると、（ブロック１０６において）制御ユニット１２は、ストレージ・ドライブ２についてのキー・アクセス方式を判断する、即ち、ホスト１４がキー・サーバ２４から暗号キーを獲得する接続２０上で制御ユニットが要求を行うか（イン・バンド）、又は制御ユニット１２がネットワーク２６上で暗号キーを直接獲得するか（アウト・オブ・バンド）を判断する。ストレージ・ドライブ２からのキーについての要求は、暗号キー識別子（ＩＤ）、又はキー・サーバ２４が暗号化解除し、使用のためにストレージ・ドライブ２に戻す暗号化された暗号キーを含むことができる。
【００３２】
イン・バンド式のキー・アクセス方式が指定されるか、又はアウト・オブ・バンド式のキー・アクセス方式が指定されるかを判断するために、ホスト１４は、ホスト１４がストレージ・ドライブ２内にストレージ媒体４を取り付けたときなどのある時点で、特定のテープ・ドライブ２について、イン・バンドであるか、又はアウト・オブ・バンドであるかの選択を制御ユニット１２に伝達することができる。１つの実施形態においては、ホスト１４は、アクセスされる異なるストレージ・ドライブ２について、異なるキー・アクセス方式を指定することができるので、特定のストレージ・ドライブについて、制御ユニット１２は、ホスト１４にキー・サーバ２４と通信させ、暗号キーを獲得する、すなわちイン・バンド式に獲得することができ、他のドライブについては、制御ユニット１２は、暗号キーを、キー・サーバ２４から直接獲得する、すなわちアウト・オブ・バンド式に獲得することができる。代替的な実施形態においては、ホスト１４は、ホスト１４がアクセスできる多数のストレージ・ドライブ２又はストレージ・ドライブ２の全てに適用される単一のキー・アクセス方式を指定することができる。制御ユニット１２により代替的な技術を使用し、キー・アクセス方式を決定することが可能である。
【００３３】
（ブロック１０６において）イン・バンド処理が指定された場合には、（ブロック１０８において）制御ユニット１２は、ホスト１４にメッセージを送信し、ホスト１４にタイムアウト動作を変更させ、イン・バンド処理を指示して、ホスト１４にキー・サーバ２４と通信させ、キー交換を容易にする。ストレージ・ドライブ２から暗号キーについての要求を受信すると、ブロック１０８において、制御ユニット１２は、メッセージを送信することができる。１つの実施形態において、タイムアウト動作を変更するためのメッセージは、静止メッセージ、エラー・メッセージ、或いは、長いビジー通知又は他のビジー通知のような擬似エラー・メッセージを含むことができ、このメッセージは、ホスト１４に対して、ストレージ・ドライブ２が暗号キーを待っている間に、他の方法で、実行依頼されたＩ／Ｏ要求をタイムアウトにさせるいずれかのタイムアウト動作をサスペンドするようにホスト１４に指示する。さらに、メッセージは、ホスト１４が、イン・バンド処理によってキーを獲得すべきか、又は制御ユニット１２がキーを獲得するかを示す、ユニット・チェック状態を含むことができる。
【００３４】
（ブロック１１０において）ストレージ・ドライブ２のセッション・キー又は公開キーのような、ストレージ・ドライブ２によって暗号化解除できる更に別の暗号キーを用いて暗号化できる暗号キーをホスト１４から受信すると、（ブロック１１２において）制御ユニット１２は、イン・バンド・ネットワーク２０を介して、受信した暗号キーをストレージ・ドライブ２に送信する。（ブロック１１４において）制御ユニット１２は、さらに、静止状態の終了を示すメッセージをホスト１４に送信し、これにより、ホスト１４がＩ／Ｏ要求を再送信し、Ｉ／Ｏジョブ・ストリームに関するタイムアウト動作を再開することが可能になる。ストレージ・ドライブ２から、暗号キーを成功裏に受信し検証したという通知を受信した際、ブロック１１２において、制御ユニット１２は、メッセージを送信することができる。
【００３５】
（ブロック１０６において）アウト・オブ・バンド処理が指定された場合には、（ブロック１１６において）制御ユニット１２は、ホスト１４にメッセージを送信し、ホスト１４にタイムアウト動作を変更させ、アウト・オブ・バンド処理、即ち、ホスト１４がキー・サーバ２４との交換を容易にすることに関係していない処理を指示する。（ブロック１１８において）制御ユニット１２は、暗号キーについての要求をキー・サーバ２４に送信する。イン・バンド及びアウト・オブ・バンド式のキー交換の両方について、制御ユニット１２を介して、ストレージ・ドライブ２とキー・サーバ２４との間で他の情報を交換し、キー・サーバ２４からストレージ・ドライブ２への暗号キーの交換を完了することもできる。（ブロック１２０において）暗号キーを受信すると、制御はブロック１１２に進み、キーをストレージ・ドライブ２に転送し、ホスト１４に、Ｉ／Ｏ要求を再送信し、エラー・モード処理を終えるように、即ち、タイムアウト動作のサスペンドを終えるように通知する。
【００３６】
イン・バンド及びアウト・オブ・バンド処理の両方について、キー・サーバ２４は、制御ユニット１２を介して（アウト・オブ・バンドによって）、又はホスト１４及び制御ユニット１２を介して（イン・バンドによって）、ストレージ・ドライブ２から、証明書のような付加的な情報を要求し、キー・サーバ２４が、暗号キー及びセッション・キーであって、キー・サーバ２４がストレージ・ドライブ２に送信される暗号キーを暗号化するために使用し、ストレージ・ドライブ２は、セッション・キーを用いてキー・サーバ２４からの暗号化された暗号キーを暗号化解除することができる、セッション・キーにアクセスする権限が、ストレージ・ドライブ２に与えられているかどうかを判断することを可能にする。
【００３７】
制御ユニット１２が、静止メッセージを用いるキー交換が必要であることをホストと１３に示すと、制御ユニット１２は、ストレージ・ドライブ２に向けられた次のホスト・コマンド１４に、一般的な長いビジー・メッセージのような、同じ又異なる静止メッセージを送信し続ける。しかしながら、ストレージ・ドライブ２に向けられていないホスト１４のコマンドは、機能しないことはない。例えば、制御ユニット１２は、静止メッセージを戻すことができず、制御ユニット１２内で実行されるコマンドを実行することができ、ストレージ・ドライブ２との対話、イン・バンド式キー交換の達成のためにホスト１４によって送信されるコマンド、及びキー交換を完了する必要性を否定する巻き戻し及び巻き戻し／アンロードのような選択されたドライブ・コマンドを必要としない。キー交換に対するストレージ・ドライブ２の必要性を否定するホスト１４のコマンドは、ストレージ・ドライブ２に送信され、制御ユニット１２は、「交換が必要な」状態を終了する。付加的に、種々のホスト１４のインターフェースを再設定することにより、制御ユニット１２が、「交換が必要な」状態を終了することが可能になる。キー交換が完了する前に行われる再設定又は選択されたドライブ関連コマンド（例えば、巻き戻し及び巻戻し／アンロード）のために、制御ユニット１２が「交換が必要な」状態を終了する場合には、次のホスト１４のコマンドにより、ドライブが状態を再生成し、シーケンスが新たに始まる。
【００３８】
図３は、制御ユニット１２に送信されたＩ／Ｏ要求に関するタイムアウト動作の変更を示す、制御ユニット１２からの静止メッセージを処理するためにホスト１４のコード１８によって実行される動作の実施形態を示す。上述のように、静止メッセージは、ホスト１４に、長いビジー通知又は他の通知のような、Ｉ／Ｏジョブ・ストリームに関するタイムアウト動作のサスペンドを要求することができる。（ブロック１５０において）静止メッセージを受信すると、（ブロック１５２において）ホスト１４は、例えば、タイムアウト動作のサスペンドのような、Ｉ／Ｏ要求に関するタイムアウト動作を変更する。静止メッセージは、さらに、ホスト１４が、ネットワーク２６上でキー・サーバ２４と通信し、キー・サーバ２４とストレージ・ドライブ２との間のキー交換を容易にすべきかどうかを示すことができる。このイン・バンド処理の指示は、静止メッセージに与えられたユニット・チェック・コードの形態とすることができる。（ブロック１５４において）イン・バンド処理が指定されず、そのことは、制御ユニット１２が、アウト・オブ・バンド・ネットワーク２４を介して暗号キーを獲得することを意味する場会には、（ブロック１５６において）ホスト１４は、静止状態の終了通知を待つ。静止モードの終了を示すこうしたメッセージを受信すると、（ブロック１５８において）ホスト１４は、タイムアウト動作のサスペンドを終了することに関係するエラー状態を終了し、完了していない最後のＩ／Ｏ要求を再送信し、制御ユニット１２へのＩ／Ｏストリームの処理を続行する。
【００３９】
（ブロック１５４において）静止メッセージがイン・バンド処理を指示する場合には、（ブロック１６０において）ホスト１４は、制御ユニット１２から暗号キーの獲得を要求する。要求に応答して、制御ユニット１２は、暗号化されたバージョンの暗号キー、ストレージ・ドライブ２の要求、又は暗号キーの識別子の形態とすることができる、ストレージ・ドライブ２により要求される暗号キーを転送することができる。（ブロック１６２において）ホスト１４は、暗号キーについての要求をキー・サーバ２４に送信する。次いで、（ブロック１６４において）ホスト１４は、制御ユニット１２を介して、キー・サーバ２４とストレージ・ドライブ２との間の暗号キーの交換を容易にする。１つの実施形態において、ホスト１４は、キー・サーバ２４と制御ユニット１２との間でメッセージを転送することによって交換を容易にすることができ、キー・サーバ２４は、ストレージ・ドライブ２についての証明書のような、キー要求を処理するのに必要な情報、及びストレージ・ドライブ２に戻される要求された暗号キーを暗号化するために用いるセッション・キー等を要求する。ストレージ・ドライブ２が暗号キーを受信すると、ホスト１４は、さらに、交換を終了させるメッセージを受信することができる。
【００４０】
説明された実施形態の場合、制御ユニット１２が、イン・バンド処理又はアウト・オブ・バンド処理を介して、ストレージ・ドライブ２の要求を獲得する間、Ｉ／Ｏ要求についてのタイムアウト動作をサスペンドし、ホスト１４がＩ／Ｏ要求を失敗した要求として終了させないことを要求することができる。説明された実施形態は、ホスト１４に、ストレージ・ドライブ２を待たせてＩ／Ｏ要求の実行に使用する暗号キー又は他の情報を獲得し、次いで、Ｉ／Ｏ要求を再送信するようにホストに通知し、必要とされる暗号キーを獲得すること等によって、ストレージ・ドライブ２がＩ／Ｏ要求を処理できる状態になった後にＩ／Ｏ動作をさらに続行するための技術を提供するものである。さらに、ストレージ・ドライブ２が、暗号キー又は他の要求された情報を有すると、前に受信した暗号キーを用いて、制御ユニット１２を介して送信された、ホスト１４からストレージ・ドライブ２への次のＩ／Ｏ要求を、ストレージ・ドライブ２によって直ちに処理することができる。
【００４１】
図４は、ファイバ・チャネル・プロトコル（ＦＣＰ）ヘッダ情報２０２及びメッセージ応答／要求２０４を有する、当技術分野において周知のパケット２００の構造を示す。パケット２００は、接続２２を介して、ストレージ・ドライブ２と制御ユニット１２との間で通信することができる。
【００４２】
図５は、ＴＣＰ／ＩＰヘッダ情報２１２及びメッセージ応答／要求２１４を有する、当技術分野において周知のパケット２１０の構造を示す。パケット２１０は、ネットワーク２６上で、キー・サーバ２４と制御ユニット１２又はホスト１４との間で通信することができる。
【００４３】
図６は、ＦＩＣＯＮヘッダ情報２２２、ＴＣＰ／ＩＰヘッダ情報２２４及びメッセージ応答／要求２２６を有するパケット２２０の構造を示す。パケット２２０は、接続２０により、ホスト１４と制御ユニット１２との間で通信することができる。接続２０が接続２２に用いられるものと同じ通信プロトコルを用いる代替的な実施形態においては、ヘッダ情報２２２は、接続２０に用いられるものと同じホスト駆動コマンド・応答プロトコルを用いてエンコードすることができる。
【００４４】
図７は、ホスト・システム１４を含む環境において、キー・サーバ２４からの暗号キーのような、第２の装置からの情報についての、ストレージ・ドライブ２のような第１の装置からの要求を処理するために、制御装置１２のような装置によって実行される動作の実施形態を示す。（ブロック２５０において）情報についての、第１の装置から第２の装置への最初の要求を受信すると、（ブロック２５２において）制御ユニット１２は、ホスト・システム１４又は他のこうした中間装置が、第２の装置からの情報にアクセスすべきかどうか、即ち、イン・バンドが指定されるか、又はアウト・オブ・バンドが指定されるかを判断する。（ブロック２５２の「ｎｏ」分岐から）ホスト・システム１４が、要求された情報の獲得に関係しない場合、即ち、アウト・オブ・バンドが指定される場合、（ブロック２５４において）制御ユニット１２は、ホスト・システム１４が第１の装置と第２の装置との間の交換を容易にすべきではないことを示す静止メッセージ又はエラー・メッセージを、ホスト・システム１４に送信する。（ブロック２５６において）制御ユニット１２は、ネットワーク２６上で、要求を第１の装置から第２の装置に送信する。
【００４５】
第１の装置から第２の装置への要求を処理するために、制御ユニット１２は、第１の装置と第２の装置との間の付加的な応答・要求コマンドの伝送を容易にすることもできる。例えば、（ブロック２５８において）制御ユニットは、例えば、暗号キーについてのストレージ・ドライブ２からの要求を処理するためにキー・サーバ２４が必要とする情報など、第１の装置からの最初の要求を処理するために第２の装置が使用する、第１の装置からの情報についての、第２の装置から第１の装置への少なくとも１つの要求を受信することができる。さらに、（ブロック２６０において）制御ユニット１２はまた、例えば、キー・サーバ２４からの情報の要求に応答してキー・サーバ２４に送信されたストレージ・ドライブ２からの証明書又はセッション・キーなど、第２の装置からの各要求に応答して、第１の装置から第２の装置への応答を受信することもできる。ブロック２５８及び２６０における動作は、各々の要求／応答の対について実行される。代替的に、例えば、制御ユニットのような第２の装置は、第１の装置からの最初の要求に直接応答できるので、ブロック２５８及び２６０における動作は実行されない。（ブロック２６２において）制御ユニット１２は、暗号キーの使用を必要とするホスト・システム１４からのＩ／Ｏ要求に応答して、ストレージ・ドライブ２が要求する暗号キーのような、第２の装置から第１の装置への最初の要求への応答をさらに受信する。
【００４６】
（ブロック２５２において）ストレージ・ドライブ２などの第１の装置とキー・サーバ２４などの第２の装置との間の要求の交換を容易にする際に、ホスト・システム１４が関係する（即ち、イン・バンドが指定される）場合、（ブロック２６４において）制御ユニット１２は、ホスト・システム１４が第１の装置と第２の装置との間の交換を容易にすべきであることを示す静止メッセージを、ホスト・システム１４に送信することができる。（ブロック２６６において）静止メッセージに応答して、ホスト・システム１４からの要求（例えば、獲得すべき暗号キーについての）を受信するとき、（ブロック２６８において）制御ユニット１２は、第２の通信プロトコル（例えば、ＴＣＰ／ＩＰヘッダ２２４）及び第３の通信プロトコル（例えば、ＦＩＣＯＮヘッダ２２２）を用いてエンコードされた、動作２５０における最初の要求を含む、ホスト・システムの要求への応答を含む、例えば２２０（図６）のようなパケットを、ホスト・システム１４に伝送する。１つの実施形態において、ホスト・システム１４に送信された要求は、ブロック２５０で送信された要求を含むことができる。
【００４７】
ホスト・システム１４を介して第１の装置から第２の装置への要求を処理するために、制御ユニット１２はまた、付加的な応答・要求コマンドの伝送を容易にすることもできる。例えば、（ブロック２７０において）制御ユニット１２は、ホスト・システム１４を介して、第２の装置が用いる第１の装置からの情報についての、第２の装置から第１の装置への少なくとも１つの要求を、第２及び第３の通信プロトコルを用いて受信し、最初の要求を処理し、要求を第１の装置に転送することができる。（ブロック２７２において）制御ユニット１２はさらに、ホスト・システム１４を介して、第１の装置から第２の装置への応答を受信し、ブロック２７０における第２の装置からの要求を有する、受信するホストの通信への応答として、第２及び第３の通信プロトコルを用いてエンコードされた応答を含むパケットを送信することができる。ブロック２７０及び２７２における動作は、各々の要求／応答の対について実行される。代替的に、例えば、制御ユニットなどの第２の装置は、第１の装置からの最初の要求に直接応答することができるので、ブロック２７０及び２７２における動作は実行されない。（ブロック２７４において）制御ユニット１２はさらに、ホスト・システム１４のＩ／Ｏ要求に応答して、ホスト・システム１４を介して、ストレージ・ドライブ２が要求した暗号キーのような、第２及び第３の通信プロトコルを用いてエンコードされた第２の装置から第１の装置への最初の要求への応答を受信することができる。（ブロック２７６において）制御ユニット１２はさらに、ボックス２７４における受信するホストの通信への応答として、第３の通信プロトコルを用いて、ホスト１４への応答がそれ以上ないことを示すパケットを伝送することができる。
【００４８】
図８は、例えばストレージ・ドライブ２などの第１の装置から、例えばキー・サーバ２４などの第２の装置に向けられる要求及び応答を処理するために、制御ユニット１２のコード１６によって実行される動作の実施形態を示す。１つの実施形態においては、ストレージ・ドライブ２のような第１の装置からの応答又は要求は、制御ユニット１２と例えばストレージ・ドライブ２などの第１の装置との間の接続２２において用いられる、ホスト駆動コマンド・応答プロトコル（例えば、ヘッダ２０２を有するファイバ・チャネル・プロトコル）のような第１の通信プロトコルを用いてエンコードされたパケット２００（図４）内に含まれる。（ブロック３００において）パケット２００内に、第１の装置から第２の装置への応答又は要求を受信すると、（ブロック３０２において）制御ユニット１２は、例えば、ファイバ・チャネル・プロトコル２０２などの第１の通信プロトコルを用いてエンコードされたパケット２００からの応答又は要求にアクセスする。応答／要求にアクセスすることは、パケットから、第１の通信プロトコル（例えば、ファイバ・チャネル・プロトコル）のヘッダ２０２を除去することを含むことができる。（ブロック３０４において）制御ユニット１２は、例えばＴＣＰ／ＩＰなどの第２の通信プロトコルを用いてエンコードされたアクセスされた応答又は要求２１４を含み、かつ、プロトコル・ヘッダ２１２を有するパケット２１０（図５）を生成する。（ブロック３０６において）ホスト・システム１４が、パケット交換を容易にすることに関係する場合、即ち、イン・バンド通信の場合、（ブロック３０８において）制御ユニット１２はさらに、第３の通信プロトコル（例えば、ＦＩＣＯＮ）を用いて生成されたパケットをエンコードし、第２の通信プロトコル（ＴＣＰ／ＩＰ）のためのヘッダ２２４及び第３の通信プロトコル（ＦＩＣＯＮ）のためのヘッダ２２２を有するパケット２２０を形成する。（ブロック３１０において）このパケット２２０が、ホスト・システム１４に伝送される。（ブロック３０６において）ホスト・システム１４が、第１の装置と第２の装置との間のパケット交換を容易にすることに関係しない場合、即ち、アウト・オブ・バンドが指定される場合、（ブロック３１２において）制御ユニット１２は、ネットワーク２６上で、生成されたパケット２１０を第２の装置に伝送する。
【００４９】
図９は、例えばキー・サーバ２４などの第２の装置から、例えばストレージ・ドライブ２などの第１の装置への要求及び応答を処理するために、制御ユニット１２のコード１６によって実行される動作の実施形態を示す。１つの実施形態においては、キー・サーバ２４のような第２の装置からの応答又は要求は、ネットワーク２６に用いられる（例えば、ＴＣＰ／ＩＰヘッダ２１２を有する）ホスト駆動コマンド・応答プロトコル以外のネットワーク・プロトコルのような、第２の通信プロトコルを用いてエンコードされたパケット２１０（図５）内に含まれる。（ブロック３５０において）ネットワーク２６又は接続２０を介して着信することができる、第２の装置から第１の装置への要求を受信すると、（ブロック３５２において）制御ユニット１２は、ホスト・システム１４が関係しているかどうか、即ち、接続２０を介するイン・バンドであるかどうかを判断する。ホスト・システム１４が関係している場合には、（ブロック３５４において）制御ユニット１２は、ヘッダ２２２及び２２４を除去することを含むことができる、第２の通信プロトコル（例えば、ＴＣＰ／ＩＰ）及び第３の通信プロトコル（例えば、ＦＩＣＯＮ）を用いてエンコードされたパケット２２０からの応答又は要求２２６（図６）にアクセスする。（ブロック３５６において）制御ユニット１２は、ヘッダ２０２を有する、第１の通信プロトコル（例えば、ファイバ・チャネル）を用いてエンコードされた、アクセスされた応答又は要求２０４を含むパケット２００（図４）を生成する。（ブロック３５８において）この生成されたパケット２００が、例えばストレージ・ドライブ２などの第１の装置に送信される。
【００５０】
（ブロック３５２において）ホスト・システム１４が関係していない場合、即ち、第２の装置がネットワーク２６を介してパケットを制御ユニット１２に送信し、ホスト・システム１４をバイパスするアウト・オブ・バンド処理である場合、（ブロック３６０において）制御ユニット１２は、第２の通信プロトコル（例えば、ＴＣＰ／ＩＰ）を用いてエンコードされたパケット２１０からの応答又は要求２１４（図５）にアクセスし、ブロック３５６に進み、第１の装置に送信するためのパケット２００を生成する。上述のように、パケットからの応答／要求にアクセスすることは、そのパケットを次に伝送する際に用いられない通信プロトコルのためのヘッダをパケットから剥離することを含むことができる。
【００５１】
図１０は、イン・バンド処理についての、例えばストレージ・ドライブ２などの第１の装置から例えばキー・サーバ２４などの第２の装置へのパケット交換を容易にするために、ホスト・コード１８によって実行される動作の実施形態を示す。（ブロック４００において）制御ユニット１２から受信した第１の装置から第２の装置への要求／応答を処理する際、（ブロック４０２において）ホスト・システム１４は、ヘッダ２２２（図６）を除去することなどによって、第３の通信プロトコル（例えば、ＦＩＣＯＮ）に関連するパケットとからエンコードを除去し、例えばＴＣＰ／ＩＰヘッダ２１２などの第２の通信プロトコル（例えば、ＴＣＰ／ＩＰ）の情報を用いてエンコードされたパケット２１０（図５）のようなパケットを残す。次いで、（ブロック４０４において）ホスト・システム１４は、ネットワーク２６上で、パケット２１０を第２の装置に伝送する。
【００５２】
図１１は、イン・バンド処理についての、例えばキー・サーバ２４などの第２の装置から、例えばストレージ・ドライブ２などの第１の装置へのパケット交換を容易にするために、ホスト・コード１８によって実行される動作の実施形態を示す。（ブロック４３０において）ＴＣＰ／ＩＰヘッダ２１２を有する、第２の（例えば、ＴＣＰ／ＩＰ）通信プロトコルを用いてエンコードされた、第２の装置から第１の装置への要求／応答２１４を含むパケット２１０（図５）を処理する際、（ブロック４３２において）ホスト・システム１４は、第３の（例えば、ＦＩＣＯＮ）通信プロトコルの情報を用いて、受信したパケット２１０をエンコードし、ヘッダ２２２及び２２４を有するパケット２２０を生成する。（ブロック４３４において）ホスト・システム１４は、第２の（例えば、ＴＣＰ／ＩＰ）通信プロトコル及び第３の（例えば、ＦＩＣＯＮ）通信プロトコルを用いてエンコードされたパケット２２０を、制御ユニット１２に伝送し、第１の装置に送信する。
【００５３】
２つの装置間で要求を処理するために、制御ユニット１２によって実行される図８及び図９の動作を図２の動作と共に使用し、ホスト・システム１４又はネットワーク２６を介して、ストレージ・ドライブ２とキー・サーバ２４との間の応答及び要求を伝送することができる。ホスト・システム１４によって実行される図１０及び図１１の動作を図３の動作と共に使用して、ストレージ・ドライブ２とキー・サーバ２４との間の応答及び要求の交換を容易にすることができる。
【００５４】
上述の実施形態は、制御ユニット及びホストのような中間装置を通じて、２つの装置間の応答及び要求の交換を容易にするための技術を提供するものであり、ここで、異なるプロトコルが、２つの装置及び中間装置によって使用される。
【００５５】
付加的な実施形態の詳細
説明される動作を、標準的なプログラミング及び／又はエンジニアリング技術を用いる方法、装置、又は製品として実施して、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせのいずれかを製造することができる。説明される動作を、「コンピュータ可読媒体」に維持されるコードとして実施することができ、１つ又は複数のプロセッサは、１つ又は複数のコンピュータ可読媒体からコードを読み取って実行することができる。コンピュータ可読媒体は、磁気ストレージ媒体（例えば、ハードディスク・ドライブ、フロッピー（登録商標）ディスク、テープ等）、光学式ストレージ（ＣＤ−ＲＯＭ、ＤＶＤ、光ディスク等）、揮発性メモリ装置及び不揮発性メモリ装置（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ＭＲＡＭ、フラッシュ・メモリ、ファームウェア、プログラム可能論理等）のような媒体を含むことができる。説明される動作を実施するコードは、さらに、ハードウェア論理（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）において実装することができる。さらに、説明される動作を実施するコードは、「伝送信号」において実施することができ、伝送信号は、空間を通して、又は光ファイバ及び銅線等の伝送媒体を通じて伝播することができる。コード又は論理がエンコードされる伝送信号は、さらに、無線信号、衛星伝送、電波、赤外線信号、Ｂｌｕｅｔｏｏｔｈ等を含むことができる。コード又は論理がエンコードされる伝送信号は、送信ステーションにより送信し、受信ステーションにより受信することができるものであり、伝送信号内でエンコードされたコード又は論理は、受信ステーション及び送信ステーション或いは受信装置及び送信装置において、ハードウェア又はコンピュータ可読媒体内でデコードして格納することができる。「製品」は、コードを実装することができるコンピュータ可読媒体、ハードウェア論理、及び／又は伝送信号を含む。説明される実施形態の動作を実施するコードがエンコードされる装置は、コンピュータ可読媒体又はハードウェア論理を含むことができる。当然のことながら、当業者であれば、本発明の範囲を逸脱することなく、多くの変更をこの構成に行うことができ、しかも、製品は、当技術分野において周知の媒体を有する適切な情報を含むことができることを認識するであろう。
【００５６】
説明された実施形態において、ストレージ・ドライブ２は、ホスト・システム１４からのＩ／Ｏ要求を実施する暗号キーを要求するものとして説明された。代替的な実施形態においては、情報の交換を、ストレージ・ドライブ２と別の装置との間のものとし、ホストのＩ／Ｏ要求の処理を続行するのに必要な情報を含む、Ｉ／Ｏ処理又は他の関連動作の続行のためのストレージ・ドライブ２が必要とする情報のような、暗号キー以外の情報を獲得することができる。特定の実施形態においては、ホストは、ストレージ・ドライブが、Ｉ／Ｏ処理の続行に必要な情報を外部装置から獲得する間、タイムアウト動作をサスペンドする。さらに、ホストは、暗号キー以外の情報をストレージ・ドライブに提供するために、イン・バンド又はアウト・オブ・バンドのどちらかの、情報の交換のための情報アクセス方式を指定することができる。
【００５７】
説明された実施形態において、交換は、ストレージ・ドライブ２とキー・サーバ２４又は他の装置との間で行われた。代替的な実施形態においては、ホスト及び制御ユニット又は他のネットワーク・コンポーネントは、説明された実施形態を用いて、ストレージ・ドライブ及びキー・サーバ以外の装置間で、応答、要求及び他の情報を交換することができる。例えば、制御ユニット及びホストは、プリンタ、スイッチ、送受信機のような他のタイプのＩ／Ｏ装置間の交換を容易にすることができる。
【００５８】
説明された実施形態において、例えばストレージ・ドライブ２などの第１の装置は、ホストのＩ／Ｏ要求に応答して、例えば暗号キーなどの情報についての要求を開始した。代替的な実施形態においては、第１の装置は、ホストのＩ／Ｏ要求以外のイベントに応答して、第２の装置からの情報についての要求を開始することができる。
【００５９】
図７〜図１１の説明された実施形態において、異なるホスト駆動コマンド・応答プロトコルが、例えばストレージ・ドライブ２などの第１の装置と制御ユニット１２との間の通信、及び、ホスト１４と制御ユニット１２との間の通信に用いられた。代替的な実施形態においては、例えば、ファイバ・チャネル、ＦＩＣＯＮ等の同じホスト駆動コマンド応答プロトコルを、例えばストレージ・ドライブ２などの第１の装置と制御ユニット１２との間の通信、及び、ホスト１４と制御ユニット１２との間の通信に用いることができる。この場合、制御ユニット１２とホスト１４との間で送信されるパケットは、ストレージ・ドライブ２と制御ユニット１２との間でパケット内に含まれるものと同じコマンド応答プロトコル・ヘッダを含む、即ち、接続２０及び２２において同じ通信プロトコルが用いられる。
【００６０】
図４、図５及び図６は、パケット内に含まれる特定の情報を示す。付加的な情報及び異なる情報をパケットと共に含ませることができる。
【００６１】
説明される実施形態においては、第１の装置と第２の装置との間のデータ交換を容易にする中間装置が、ストレージ制御ユニット及びホストを含んでいた。代替的な実施形態においては、異なる通信プロトコルを用いて、第１の装置と第２の装置との間のパケット交換を容易にするために、他のタイプの中間装置を用いることができる。
【００６２】
「ある（ａｎ）実施形態」、「実施形態」、「複数の実施形態」、「その（ｔｈｅ）実施形態」、「それらの（ｔｈｅ）実施形態」、「１つ又は複数の実施形態」、「幾つかの実施形態」及び「１つの（ｏｎｅ）実施形態」という用語は、特に明記されていない限り、「本発明の１つ又は複数の（しかし全てというわけではない）実施形態」という意味である。
【００６３】
「含む（ｉｎｃｌｕｄｉｎｇ）」、「含む（ｃｏｍｐｒｉｓｉｎｇ）」「有する」という用語及びこれらの変形は、特に明記されていない限り、「限定されるものではないが、含む」という意味である。
【００６４】
列挙される項目のリストは、特に明記されていない限り、項目のいずれか又はその全てが互いに排他的であることを意味するものではない。
【００６５】
「１つの（ａ）」、「１つの（ａｎ）」及び「その（ｔｈｅ）」という用語は、特に明記されていない限り、「１つ又は複数の」という意味である。
【００６６】
要素の可変の数を表すために用いられるときの変数「ｎ」及び「ｍ」は、いずれの数の要素のインスタンスを示すこともでき、異なる要素と共に用いられるとき、異なる整数を示すことができる。
【００６７】
互いに通信状態にある装置は、特に明記されていない限り、互いに連続的に通信状態にある必要はない。さらに、互いに通信状態にある装置は、直接的に或いは１つ又は複数の中継を通じて間接的に通信することができる。
【００６８】
互いに通信状態にある幾つかのコンポーネントをもつ実施形態の説明は、全てのこうしたコンポーネントが必要とされることを意味するものではない。対照的に、様々な任意的なコンポーネントが、広範囲の種類にわたる本発明の可能な実施形態を示すように説明される。
【００６９】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムその他同様のものは順次的に説明することができるが、こうしたプロセス、方法及びアルゴリズムは、代替的な順番で作用するように構成することができる。換言すると、説明することのできるステップの順序又は順番のいずれも、ステップが必ずしもその順番で実行されるべきであるという要求を示すものではない。ここで説明されたプロセスのステップは、どのような実用的な順番でも実行することができる。さらに、幾つかのステップを同時に実行することができる。
【００７０】
単一の装置又は物品がここで説明される場合には、１つより多い装置／物品（これらが協働してもしなくても）を、単一の装置／物品の代わりに用い得ることが容易に明白であろう。同様に、１つより多い装置又は物品（これらが協働してもしなくても）がここで説明される場合には、単一の装置／物品を１つより多い装置又は物品の代わりに用いることができ、或いは、異なる数の装置／物品を、示される数の装置又はプログラムの代わりに用い得ることが容易に明らかであろう。装置の機能性及び／又は特性は、こうした機能性／特性を有するものとして明確に説明されていない１つ又は複数の他の装置によって、代替的に具体化することができる。従って、本発明の他の実施形態は、装置自体を含む必要はない。
【００７１】
図１２は、図１に示される制御ユニット１２、ホスト１４、キー・サーバ２４及びストレージ・ドライブ２のような、ネットワーク・コンポーネントの当技術分野において周知のコンピュータ・アーキテクチャ５００の１つの実施形態を示す。アーキテクチャ５００は、プロセッサ５０２（例えば、マイクロプロセッサ）、メモリ５０４（例えば、揮発性メモリ装置）及びストレージ５０６（例えば、磁気ディスクドライブ、光ディスクドライブ、テープ・ドライブ等のような不揮発性ストレージ）を含むことができる。ストレージ５０６は、内蔵ストレージ装置、又は取り付けられたストレージ、或いはネットワークにアクセス可能なストレージを含むことができる。ストレージ５０６内のプログラムは、メモリ５０４内にロードされ、当技術分野において周知の方法で、プロセッサ５０２によって実行される。アーキテクチャは、イーサネット（登録商標）、ファイバ・チャネル・アービトレート型ループ等のようなネットワークとの通信を可能にするネットワーク・カード５０８をさらに含む。プロセッサ５０２にユーザ入力を提供するために、入力装置５１０が用いられ、この入力装置５１０は、キーボード、マウス、スタイラス・ペン（pen-stylus）、マイクロホン、タッチセンシティブ表示スクリーン、又は当技術分野において周知の他のいずれかの起動又は入力機構を含むことができる。出力装置５１２は、プロセッサ５０２、又はディスプレイ・モニタ、プリンタ、ストレージ等の他のコンポーネントから伝送された情報をレンダリングすることができる。
【００７２】
図示された図２、図３、図７、図８、図９、図１０及び図１１の動作は、特定の順番で生じる特定のイベントを示す。代替的な実施形態においては、特定の動作を、修正又は削除された異なる順番で実行することができる。さらに、ステップを上述の論理に加えて、説明された実施形態に依然として適合させることができる。さらに、ここで説明される動作を連続して行うか、又は、特定の動作を平行して処理することができる。またさらに、単一の処理ユニット又は分散処理ユニットによって動作を実行することができる。
【００７３】
上記の本発明の種々の実施形態の説明は、例示及び説明の目的で提示された。これは、網羅的であること、又は、開示された正確な形態に本発明を限定することを意図するものではない。上述の教示を考慮すると、多くの修正及び変形態様が可能である。本発明の範囲は、この詳細な説明によってではなく、むしろ特許請求の範囲により限定されることが意図される。上述の仕様、例及びデータは、本発明の構成要素の製造及び用途について完全に説明するものである。本発明の多くの実施形態は、本発明の趣旨及び範囲から逸脱することなく構成することができるため、本発明は、特許請求の範囲内にある。
【図面の簡単な説明】
【００７４】
【図１】ストレージ・コンピュータ環境の実施形態を示す。
【図２】制御ユニットによって実行される動作の実施形態を示す。
【図３】ホスト・システムによって実行される動作の実施形態を示す。
【図４】従来技術において周知のパケット構造を示す。
【図５】従来技術において周知のパケット構造を示す。
【図６】多数の通信プロトコルを用いてエンコードされたパケット構造を示す。
【図７】装置からの要求を処理するための動作の実施形態を示す。
【図８】第１の装置から第２の装置への応答及び要求を交換するための動作の実施形態を示す。
【図９】第２の装置から第１の装置への応答及び要求を交換するための動作の実施形態を示す。
【図１０】第１の装置から第２の装置への応答及び要求を交換するための動作の実施形態を示す。
【図１１】第２の装置から第１の装置への応答及び要求を交換するための動作の実施形態を示す。
【図１２】コンピュータ・アーキテクチャの実施形態を示す。
【符号の説明】
【００７５】
２：ストレージ・ドライブ
４：ストレージ媒体
６：ユーザ・インターフェース
８：Ｉ／Ｏマネージャ・コード
１０：暗号化エンジン
１２：制御ユニット
１４：ホスト・システム
１６：コード
１８：コード
２０、２２：接続
２４：キー・サーバ
２６：ネットワーク
【図１】
2008112447.tif 000003
【図２】
2008112447.tif 000004
【図３】
2008112447.tif 000005
【図４】
2008112447.tif 000006
【図５】
2008112447.tif 000007
【図６】
2008112447.tif 000008
【図７】
2008112447.tif 000009
【図８】
2008112447.tif 000010
【図９】
2008112447.tif 000011
【図１０】
2008112447.tif 000012
【図１１】
2008112447.tif 000013
【図１２】
2008112447.tif 000014