(57)【特許請求の範囲】
【請求項１】
ＵＳＢマスストレージクラス仕様に準拠するデバイスであるドライブを管理する管理装置により取得された前記ドライブのＵＳＢデバイス情報を受信し、前記ＵＳＢデバイス情報に基づいて、プロセッサに対して自身を前記ドライブと同等のＵＳＢデバイスとして認識させるＢＭＣ（ベースボード・マネジメント・コントローラ）と、
前記ＵＳＢデバイス情報を前記ＢＭＣから受信して、前記ドライブがＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ＢＭＣに出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする前記プロセッサと、
を含むことを特徴とするコンピュータシステム。
【請求項２】
前記プロセッサから前記特定のコマンドを受け取ると、前記特定のコマンドを前記管理装置に送信し、前記特定のコマンドの送信が一定時間以内に完了しない、データの受信が一定時間以内に完了しない、あるいは、実行ステータスの受信が一定時間以内に完了しないと、前記エラーを示す実行ステータスを前記プロセッサに出力する前記ＢＭＣを含むことを特徴とする請求項１のコンピュータシステム。
【請求項３】
前記特定のコマンドの送信が一定時間以内に完了しない、あるいは、データの受信が一定時間以内に完了しないと、ストールパケットを前記プロセッサに出力する前記ＢＭＣを含むことを特徴とする請求項２のコンピュータシステム。
【請求項４】
ＵＳＢデバイス情報内のデバイスディスクリプタからデバイス識別情報を取得し、コンフィギュレーションディスクリプタからインタフェース数を取得し、
取得したインタフェース数分だけインタフェースディスクリプタを取得し、
インタフェースディスクリプタ内のインタフェースクラス、インタフェースサブクラス、インタフェースプロトコル、エンドポイント数を取得し、
エンドポイントディスクリプタから通信に必要なエンドポイントアドレスを取得する前記プロセッサを含むことを特徴とする請求項２、または３のコンピュータシステム。
【請求項５】
前記特定のコマンドを含むコマンドの送信が一定時間内に完了しない場合、または、データの受信が一定時間内に完了しない場合、前記ストールパケットを送信する指示であるストール指示を含むエラー情報を出力するマスストレージ処理部と、前記マスストレージ処理部から受け取ったエラー情報に前記ストール指示が含まれると、前記ストールパケットを前記プロセッサに出力するＵＳＢ制御部とを備える前記ＢＭＣを含むことを特徴とする請求項３のコンピュータシステム。
【請求項６】
ＵＳＢデバイス情報を出力する前記ドライブと、
前記ドライブから受け取ったＵＳＢデバイス情報を格納し、格納したＵＳＢデバイス情報をネットワークインタフェースを介して前記コンピュータシステムに送信する前記管理装置と、
請求項１、２、３、４、または、５のコンピュータシステムと、
を含むことを特徴とする情報処理システム。
【請求項７】
エラーを示す実行ステータスを受け取ると、出力したコマンドの種類に応じて、前記ドライブを特別な機能を持たないデバイスとして扱う処理または障害処理を行う前記コンピュータシステムを含むことを特徴とする請求項６の情報処理システム。
【請求項８】
前記ドライブにＵＳＢデバイス情報要求を出力し、前記ドライブから一定時間以内に、ＵＳＢデバイス情報を受け取らないと、予め有していたＵＳＢデバイス情報をもとにＵＳＢデバイス情報を作成し、ＵＳＢデバイス情報を前記ネットワークインタフェースを介して前記コンピュータシステムに送信する前記管理装置を含むことを特徴とする請求項７の情報処理システム。
【請求項９】
ＢＭＣ（ベースボード・マネジメント・コントローラ）が、ＵＳＢマスストレージクラス仕様に準拠するデバイスであるドライブを管理する管理装置により取得された前記ドライブのＵＳＢデバイス情報を受信し、前記ＵＳＢデバイス情報に基づいて、プロセッサに対して自身を前記ドライブと同等のＵＳＢデバイスとして認識させ、
プロセッサが、前記ＵＳＢデバイス情報を前記ＢＭＣから受信して、前記ドライブがＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ＢＭＣに出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする
ことを特徴とする仮想メディア方法。
【請求項１０】
ＵＳＢマスストレージクラス仕様に準拠するデバイスであるドライブを管理する管理装置により取得された前記ドライブのＵＳＢデバイス情報を受信し、前記ＵＳＢデバイス情報に基づいて、プロセッサに対して自身を前記ドライブと同等のＵＳＢデバイスとして認識させる処理を実行するＢＭＣ（ベースボード・マネジメント・コントローラ）に接続された前記プロセッサに、
前記ＵＳＢデバイス情報を前記ＢＭＣから受信して、前記ドライブがＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ＢＭＣに出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする処理を実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、情報処理システム、仮想メディア方法、および、プログラムに関する。
【背景技術】
【０００２】
コンピュータにおいて、ネットワーク上に存在する別のコンピュータに接続された光学ドライブやＵＳＢ（Universal Serial Bus）メモリなどの記憶装置を本体装置に接続する仮想メディア機能（リモートメディア機能）が実現されている。
【０００３】
この技術に関する一例が特許文献１に記載されている。特許文献１においては、クライアントＰＣとデバイスサーバとがネットワークで接続され、デバイスサーバには、ＵＳＢ等のインタフェースでデバイスが接続されている。クライアントＰＣは、ネットワーク、デバイスサーバを介し仮想メディア機能によりデバイスにアクセスする。
【０００４】
デバイスサーバは、デバイスからデバイス情報を取得して、そのデバイスが備える機能を識別し、各機能に対して、ネットワーク上で通信させるため、セッションで使用するプロトコルを設定する。
【０００５】
クライアントＰＣは、デバイスサーバからデバイス情報とプロトコルを取得して、仮想化処理のためのソフトウェア部品を生成し、任意のデバイスの機能が指定されると、対応するプロトコルを使用してセッションを要求する。デバイスサーバは、セッションの要求に応じて、セッションを制御する。
【０００６】
これを実現するため、クライアントＰＣは、特殊な常駐モジュールを設けている。常駐モジュールは、クライアントＰＣのＯＳが起動している間、常に待機および動作しているソフトウェアである。この常駐モジュールは、ネットワーク上にあるデバイスサーバと通信し、デバイスサーバに接続されたデバイスを認識し、そのデバイスのデバイス識別情報と機能識別情報とを受信する。
【０００７】
常駐モジュールは、そのデバイス識別情報と機能識別情報とをもとに、データ入出力に必要なドライバソフトウェア部品（ＵＳＢ仮想バスデバイス等）を一意に特定し、動的に生成する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−７６４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術は、デバイスが、クライアントＰＣにより出力された特定のコマンドに応答できない場合のエラー処理を実現していないので、その場合、仮想メディア機能を実現できないという問題点を持つ。
【００１０】
本発明の目的は、上記問題点を解決したコンピュータシステム、情報処理システム、仮想メディア方法、および、プログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明のコンピュータシステムは、ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする処理回路を含む。
【００１２】
本発明の仮想メディア方法は、ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする。
【００１３】
本発明のプログラムは、ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする。
【発明の効果】
【００１４】
本発明は、デバイス（ドライブ）がクライアントＰＣ（プロセッサ）により出力された特定のコマンドに応答できない場合にも、容易に仮想メディア機能を実現できるという効果を持つ。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第２の実施の形態の構成を示すブロック図である。
【図３】第２の実施の形態の動作を示す動作説明図である。
【図４】本発明の第３の実施の形態の動作を示す動作説明図である。
【図５】本発明の第４の実施の形態の構成を示すブロック図である。
【図６】第４の実施の形態の動作を示す動作説明図である。
【図７】第４の実施の形態の動作を示す動作説明図である。
【図８】第４の実施の形態の動作を示す動作説明図である。
【図９】第４の実施の形態の動作を示す動作説明図である。
【図１０】本発明の第５の実施の形態の構成を示すブロック図である。
【図１１】第５の実施の形態の動作を示す動作説明図である。
【発明を実施するための形態】
【００１６】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、第１の実施の形態の構成を示すブロック図である。
【００１７】
図１を参照すると、コンピュータシステム１００は、処理回路１１１を含む。処理回路１１１は、ＵＳＢデバイス情報に基づいて、アクセス先の図示しないドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識する。ドライブは、コンピュータシステム１００にネットワークインタフェースを介して接続されてもよい。次に、処理回路１１１は、特別の機能を持つドライブ（たとえば、ＩＥＥＥ１６６７に準拠するデバイス）であるかどうかを調べるための特定のコマンド（たとえば、SECURITY PROTOCOL INとSECURITY PROTOCOL OUT等）をドライブに向けて出力する。
【００１８】
処理回路１１１は、そのコマンドに対し、エラーを示す実行ステータスを受け取ると、ドライブを上記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスを行う。すなわち、コンピュータシステム１００は、ドライブをＩＥＥＥ１６６７に準拠しないドライブとして仮想メディア機能を実現する。上記のコンピュータシステム１００の動作は、コンピュータシステム１００で動作するプログラムによって実現されることも可能である。
【００１９】
次に、第１の実施の形態の効果について説明する。
【００２０】
第１の実施の形態は、ＵＳＢマスストレージクラス仕様に準拠するデバイスであるドライブが、特定の機能を持っておらず特定のコマンドに対応できない場合でも、ドライブを特定の機能を持っていないドライブとして扱う構成である。したがって、第１の実施の形態は、コンピュータシステム１００が、特別な機能を持つドライブと、特別な機能を持たないドライバとの両方にアクセスする場合に、容易に仮想メディア機能を実現することができるという効果を持つ。
【００２１】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図２は、第２の実施の形態の構成を示すブロック図である。図２を参照すると、コンピュータシステム１００は、プロセッサ１１０、ＢＭＣ１２０（ Baseboard Management Controller  ：ベースボード・マネジメント・コントローラ）、および、ＵＳＢインタフェース１３０を含む。コンピュータシステム１００、プロセッサ１１０は、それぞれ、第１の実施の形態のコンピュータシステム１００、処理回路１１１の一例である。
【００２２】
プロセッサ１１０とＢＭＣ１２０とはＵＳＢインタフェース１３０で接続される。ＢＭＣ１２０は、ドライブと接続された管理装置にネットワークインタフェースで接続される。
【００２３】
ＢＭＣ１２０は、管理装置によりドライブから取得されたＵＳＢデバイス情報、あるいは、管理装置により作成されたＵＳＢデバイス情報を、ネットワークインタフェース経由で管理装置から受信し、ＵＳＢデバイス情報１２２として格納する。次に、ＢＭＣ１２０は、プロセッサ１１０にＵＳＢデバイス情報１２２を出力する。プロセッサ１１０は、ＵＳＢデバイス情報１２２に基づいて、ＢＭＣ１２０をドライブと同等のＵＳＢデバイスとして認識する。
【００２４】
プロセッサ１１０は、ＵＳＢデバイス情報１２２に基づいて、ＵＳＢのコマンドをＢＭＣ１２０に出力する。
【００２５】
次に、第２の実施の形態の動作について図面を参照して詳細に説明する。図３は、第２の実施の形態の動作を示す動作説明図である。図２、図３を参照して、プロセッサ１１０がドライブからデータをリードする場合の動作について説明する。
【００２６】
図３を参照すると、プロセッサ１１０は、ＵＳＢのコマンド（特別の機能を持つドライブであるかどうかを調べるための特定のコマンド）をＢＭＣ１２０に出力する（ステップＡ１）。
【００２７】
ＢＭＣ１２０は、コマンドを管理装置に送信する（ステップＢ１）。ＢＭＣ１２０は、コマンドの送信が一定時間内に完了しない場合（ステップＢ２／Ｎ）、または、管理装置からデータの受信が一定時間内に完了しない場合（ステップＢ３／Ｎ）に、ストールパケットをプロセッサ１１０に出力する（ステップＢ４）。
【００２８】
プロセッサ１１０は、ストールパケットを受け取ると、ＢＭＣ１２０に、ストール解除指示を出力する。ＢＭＣ１２０は、ストール解除指示を受け取ると、ストール状態を解除する。
【００２９】
ＢＭＣ１２０は、コマンドの送信が一定時間内に完了し（ステップＢ２／Ｙ）、かつ、管理装置からデータの受信が一定時間内に完了した場合（ステップＢ３／Ｙ）、管理装置から受信したデータをプロセッサ１１０に出力する（ステップＢ５）。そして、ＢＭＣ１２０は、管理装置からの実行ステータスの受信が一定時間内に完了すると（ステップＢ６／Ｙ）、正常を示す実行ステータスをプロセッサ１１０に出力する（ステップＢ７）。
【００３０】
プロセッサ１１０は、正常を示す実行ステータスを受け取ると、コマンドが正常に終了したと認識し、次の処理に進む。
【００３１】
［ステップＢ２／Ｎ］、［ステップＢ３／Ｎ］、または、管理装置からの実行ステータスの受信が一定時間内に完了しない場合（ステップＢ６／Ｎ）に、ＢＭＣ１２０は、エラーを示す実行ステータスをプロセッサ１１０に出力する（ステップＢ８）。
【００３２】
プロセッサ１１０は、エラーを示す実行ステータスを受け取ると、以降、ドライブを、ＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱う（ステップＡ２）。以上により、仮想メディア機能が実現される。
【００３３】
［ステップＢ２／Ｎ］、［ステップＢ３／Ｎ］、または、［ステップＢ６／Ｎ］の例としては、ドライブの種類によっては、プロセッサ１１０が出力する特定のコマンドに応答できない場合等がある。
【００３４】
以上において、ストールパケットを出力しない構成も可能である。また、プロセッサ１１０の動作は、プロセッサ１１０のＯＳ（オペレーティングシステム）が実行してもよい。また、ステップＢ２、Ｂ３、Ｂ６における一定時間は、必ずしも同じ時間である必要はなく、それぞれのステップで異なる時間でよい。
【００３５】
次に、第２の実施の形態の効果について説明する。
【００３６】
上述のように、第２の実施の形態は、デバイスがコマンドに応答できない場合、あるいは、管理装置、ネットワークの遅延等の場合に、ＢＭＣ１２０が、ストールパケット、または、エラーを示す実行ステータスをプロセッサ１１０に出力する構成である。
【００３７】
たとえば、ＩＥＥＥ１６６７に準拠するプロセッサ１１０が、特定のコマンド（たとえば、SECURITY PROTOCOL INとSECURITY PROTOCOL OUT等）を出力し、ドライブがこのコマンドに応答できない場合にも、ＢＭＣ１２０がエラーを示す実行ステータスを作成し、プロセッサ１１０に出力する。
【００３８】
よって、第２の実施の形態には、プロセッサ１１０が、エラーを示す実行ステータスを受け取ると、特定のコマンドに応答しないドライブを、特定の機能を持たないＵＳＢマスストレージデバイスとして扱うことにより、容易に、仮想メディア機能を実現できるという第１の実施の形態と同様の効果がある。
【００３９】
また、第２の実施の形態は、ＢＭＣ１２０はエラー処理を実施すればよく、特別のコマンドに対する特別な機能を持たなくてもよいので、ＢＭＣ１２０の構成が簡単であるという効果を持つ。
【００４０】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。第３の実施の形態は、第２の実施の形態の一例（図２と同構成）である。図４は、第３の実施の形態の動作を示す動作説明図である。図２と図４を参照して、プロセッサ１１０が、ＵＳＢデバイス情報１２２を取得し、ＵＳＢデバイス情報１２２に基づいて、ＢＭＣ１２０をＵＳＢマスストレージデバイスとして認識する動作について説明する。
【００４１】
図４を参照すると、ＢＭＣ１２０は、管理装置からドライブのＵＳＢデバイス情報１２２を受信すると、ＵＳＢデバイス情報１２２をプロセッサ１１０に出力する（ステップＢ１１）。以下に示すプロセッサ１１０の動作は、プロセッサ１１０のＯＳが実行してもよい。
【００４２】
プロセッサ１１０は、ＵＳＢデバイス情報１２２内のデバイスディスクリプタからデバイスのサポートしているＵＳＢ仕様、ベンダＩＤ、プロダクトＩＤ、デバイスＩＤ等のデバイスを識別するためのデバイス識別情報を取得する（ステップＡ１１）。
【００４３】
プロセッサ１１０は、ＵＳＢデバイス情報１２２内のコンフィギュレーションディスクリプタからインタフェース数を取得する（ステップＡ１２）。
【００４４】
プロセッサ１１０は、取得したインタフェース数分だけＵＳＢデバイス情報１２２内のインタフェースディスクリプタを取得する（ステップＡ１３）。プロセッサ１１０は、インタフェースディスクリプタ内のインタフェースクラス、インタフェースサブクラス、インタフェースプロトコル、エンドポイント数を取得する（ステップＡ１４）。
【００４５】
たとえば、ドライブがマスストレージデバイスの場合、インタフェースクラスがマスストレージとなる。インタフェースサブクラスはドライブがサポートしているコマンドセットを示す。インタフェースプロトコルはデータ転送方式を示す。マスストレージデバイスでは、たとえば、インタフェースサブクラスは、SCSI(Small Computer System Interface) Transparent（スカジー・トランスペアレント）、インタフェースプロトコルは、Bulk Only Transport（バルク・オンリー・トランスポート）である。
【００４６】
プロセッサ１１０は、ＵＳＢデバイス情報１２２内のエンドポイントディスクリプタから通信に必要なエンドポイントアドレスを取得する（ステップＡ１５）。
【００４７】
そして、プロセッサ１１０は、ＵＳＢのコマンド（たとえば、マスストレージクラスのコマンド）をＢＭＣ１２０に出力する（ステップＡ１６）。
【００４８】
次に、ＢＭＣ１２０は、プロセッサ１１０からのＵＳＢのコマンド（たとえば、マスストレージクラスのコマンド）を管理装置に送信する（ステップＢ１２）。
【００４９】
次に、第３の実施の形態の効果について説明する。
【００５０】
上述のように、第３の実施の形態は、第２の実施の形態の一例なので、第２の実施の形態と同一の効果を持つ。
【００５１】
さらに、第３の実施の形態は、特殊な常駐モジュール、ＵＳＢ仮想バスデバイスを必要としないので、プロセッサ１１０の構成が簡単であるという効果を持つ。
【００５２】
次に、本発明の第４の実施の形態について、図面を参照して詳細に説明する。図５は、第４の実施の形態の構成を示すブロック図である。図５を参照すると、第４の実施の形態の情報処理システム０１０は、コンピュータシステム１００、管理装置２００、ドライブ２４０、ＵＳＢインタフェース２３０、および、ネットワークインタフェース３００を含む。
【００５３】
コンピュータシステム１００、プロセッサ１１０、ＢＭＣ１２０は、それぞれ、第２、または、第３の実施の形態のコンピュータシステム１００、プロセッサ１１０、ＢＭＣ１２０の一例である。ドライブ２４０は、たとえば、ＩＥＥＥ１６６７等の仕様を満たした暗号化ＵＳＢメモリ、または、ＵＳＢ接続のＣＤ／ＤＶＤドライブ等のマスストレージである。
【００５４】
ＢＭＣ１２０は、ＵＳＢ制御部１２１、および、マスストレージ処理部１２３を含む。ＵＳＢ制御部１２１は、ＵＳＢデバイス情報１２２を格納する。マスストレージ処理部１２３は、エラー処理部１２４を含む。管理装置２００は、ＵＳＢデバイス情報２２０を格納する。
【００５５】
ＢＭＣ１２０のマスストレージ処理部１２３と管理装置２００とは、ネットワークインタフェース３００（たとえば、イーサネット（登録商標））で接続される。管理装置２００とドライブ２４０とは、ＵＳＢインタフェース２３０で接続される。
【００５６】
次に、第４の実施の形態の動作について図面を参照して詳細に説明する。まず、ＵＳＢデバイス情報１２２、２２０の取得について説明する。図６は、第４の実施の形態の動作を示す動作説明図である。
【００５７】
図６を参照すると、管理装置２００は、ドライブ２４０にＵＳＢデバイス情報要求を出力する（ステップＥ１）。ドライブ２４０は、ＵＳＢデバイス情報要求を受け取ると、管理装置２００にＵＳＢデバイス情報２２０を出力する（ステップＦ１）。
【００５８】
管理装置２００は、ドライブ２４０からＵＳＢデバイス情報２２０を受け取ると、内部に格納する（ステップＥ２）。次に、管理装置２００は、ＵＳＢデバイス情報２２０を、ネットワークインタフェース３００を介してコンピュータシステム１００のＢＭＣ１２０に送信する（ステップＥ３）。
【００５９】
ＢＭＣ１２０のマスストレージ処理部１２３は、管理装置２００から受信したＵＳＢデバイス情報２２０をＵＳＢ制御部１２１に出力する（ステップＤ１）。ＵＳＢ制御部１２１は、マスストレージ処理部１２３からのＵＳＢデバイス情報２２０をＵＳＢデバイス情報１２２として内部に格納する（ステップＣ１）。
【００６０】
次に、プロセッサ１１０が、ＵＳＢ制御部１２１に、デバイス情報取得コマンドを出力すると（ステップＡ２１）、ＵＳＢ制御部１２１は、ＵＳＢデバイス情報１２２をプロセッサ１１０に出力する（ステップＢ２）。プロセッサ１１０は、ＵＳＢデバイス情報１２２を、内部に格納し、使用する（ステップＡ２２）。
【００６１】
ステップＡ２２の詳細は、たとえば、第３の実施の形態のステップＡ１１〜Ａ１６（図４）の動作に相当する。
【００６２】
次に、プロセッサ１１０がドライブ２４０からデータをリードする場合の動作ついて説明する。図７、図８、図９は、第４の実施の形態の動作を示す動作説明図である。まず、プロセッサ１１０がＵＳＢのリードコマンド（マスストレージクラス）をＢＭＣ１２０のＵＳＢ制御部１２１に出力する（図７ステップＡ３１）。
【００６３】
ＵＳＢ制御部１２１は、リードコマンドを受け取ると、リードコマンドをマスストレージ処理部１２３に出力する（ステップＣ１１）。マスストレージ処理部１２３は、リードコマンドを受け取ると、ネットワークインタフェース３００を介し、管理装置２００に送信する（ステップＤ１１）。
【００６４】
管理装置２００は、リードコマンドを受信すると、ＵＳＢインタフェース２３０を介して、ドライブ２４０に出力する（ステップＥ１１）。ドライブ２４０は、リードコマンドを受け取ると、リードコマンドを実行し、データを読み出し、ＵＳＢインタフェース２３０を介して管理装置２００に出力する（ステップＦ１１）。
【００６５】
管理装置２００は、データを受け取ると、ネットワークインタフェース３００を介して、コンピュータシステム１００のＢＭＣ１２０のマスストレージ処理部１２３に送信する（ステップＥ１２）。
【００６６】
マスストレージ処理部１２３は、リードコマンドの送信が一定時間内に完了し（ステップＤ１２／Ｙ）、かつ、データの受信が一定時間内に完了すると（ステップＤ１３／Ｙ）、ＵＳＢ制御部１２１にデータを出力する（ステップＤ１４）。ＵＳＢ制御部１２１は、データを受け取ると、プロセッサ１１０に出力する（ステップＣ１２）。
【００６７】
また、ドライブ２４０は、リードコマンド実行（ステップＦ１１）後に、図８に示される動作に移行する。すなわち、ドライブ２４０は、ＵＳＢインタフェース２３０を介して、実行結果を示す実行ステータスを管理装置２００に出力する（ステップＦ１２）。管理装置２００は、実行ステータスを受け取ると、ネットワークインタフェース３００を介して、コンピュータシステム１００のＢＭＣ１２０のマスストレージ処理部１２３に送信する（ステップＥ１３）。
【００６８】
マスストレージ処理部１２３は、実行ステータスの受信が一定時間内に完了すると（ステップＤ１５／Ｙ）、受け取った実行ステータスをＵＳＢ制御部１２１に出力する（ステップＤ１６）。ＵＳＢ制御部１２１は、実行ステータスを、プロセッサ１１０に出力する（ステップＣ１３）。
【００６９】
再び図７において、リードコマンドの送信が一定時間内に完了しない場合（ステップＤ１２／Ｎ）、または、データの受信が一定時間内に完了しない場合（ステップＤ１３／Ｎ）、マスストレージ処理部１２３は、図９に示す動作に移行する。すなわち、マスストレージ処理部１２３は、ストール指示を含むエラー情報をエラー処理部１２４に出力する（ステップＤ２１）。
【００７０】
また、図８において、実行ステータスの受信が一定時間内に完了しない場合（ステップＤ１５／Ｎ）にも、マスストレージ処理部１２３は、図９に示される動作に移行する。すなわち、マスストレージ処理部１２３は、ストール指示を含まないエラー情報をエラー処理部１２４に出力する（ステップＤ２２）。
【００７１】
エラー処理部１２４は、エラー情報を受け取ると、エラー情報がストール指示を含んでいると（ステップＧ２１／Ｙ）、ＵＳＢ制御部１２１に、ストール指示を出力する（ステップＧ２２）。ＵＳＢ制御部１２１は、ストール指示を受け取ると、プロセッサ１１０にストールパケットを出力する（ステップＣ２１）。
【００７２】
また、エラー処理部１２４は、エラー情報を受け取ると、エラー情報に基づく実行ステータスを作成し、ＵＳＢ制御部１２１に出力する（ステップＧ２３）。ＵＳＢ制御部１２１は、受け取った実行ステータスをプロセッサ１１０に出力する（ステップＣ２２）。
【００７３】
プロセッサ１１０は、エラーを示す実行ステータスを受け取ると、自身が出力したコマンドの種類に応じて処理を行う。たとえば、プロセッサ１１０は、ドライブ２４０が特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドの場合、以降、ドライブ２４０を特別な機能を持たないデバイスとして扱う処理を行う。また、プロセッサ１１０は、データを読み出すためのリードコマンドの場合、障害が発生したとして、障害処理を行う。
【００７４】
次に、第４の実施の形態の効果について説明する。
【００７５】
第４の実施の形態は、第２の実施の形態の一例なので、上述した第２の実施の形態が持つ効果を持つ。また、第４の実施の形態が、第３の実施の形態の一例である場合には、上述した第３の実施の形態が持つ効果を持つ。
【００７６】
また、第４の実施の形態は、エラーを示す実行ステータスを受け取ると、出力したコマンドの種類に応じた処理を行う構成なので、機能を持たないことによる応答無しなのか、それとも、障害なのかの切り分けが容易であるという効果を持つ。
【００７７】
次に、本発明の第５の実施の形態について図面を参照して詳細に説明する。図１０は、第５の実施の形態の構成を示すブロック図である。図５を参照すると、第４の実施の形態の情報処理システム０１０は、コンピュータシステム１００、管理装置２００、ドライブ２４０、デバイスインタフェース２６０、および、ネットワークインタフェース３００を含む。
【００７８】
コンピュータシステム１００は、第４の実施の形態のコンピュータシステム１００と同一である。また、管理装置２００は、ディスクイメージ２５０を含む。ドライブ２４０は、＜ＳＣＳＩ−ＭＭＣ（Small Computer System Interface -Multi Media Command set）規格＞に準拠するものである。すなわち、ドライブ２４０は、ＵＳＢの仕様を満たさなくてもよい。したがって、デバイスインタフェース２６０は、ＵＳＢインタフェース２３０に限らないインタフェース（たとえば、＜ＳＣＳＩ−ＭＭＣ規格＞に準拠するＳＣＳＩ、ＳＡＳ（Serial Attached SCSI）、ＳＡＴＡ（Serial  Advanced Technology Attachment）、ＡＴＡＰＩ（Advanced Technology Attachment Packet Interface）等）である。
【００７９】
ドライブ２４０が＜ＳＣＳＩ−ＭＭＣ規格＞に準拠するものであっても、ＵＳＢインタフェース２３０でない場合、ドライブ２４０からデバイス情報の読み出しが可能とは限らない。
【００８０】
次に、第５の実施の形態の動作について図面を参照して詳細に説明する。図１１は、第５の実施の形態の動作を示す動作説明図である。管理装置２００がＵＳＢデバイス情報２２０を作成し、送信する動作について説明する。
【００８１】
図１１を参照すると、管理装置２００は、ドライブ２４０に、ＵＳＢデバイス情報要求を出力する（ステップＥ３０）。ドライブ２４０から、一定時間内にＵＳＢデバイス情報２２０を受け取ると（ステップＥ３１／Ｙ）、管理装置２００は、ＵＳＢデバイス情報２２０を内部に格納する（ステップＥ３２）。ここで、ＵＳＢデバイス情報２２０は、ディスクイメージ２５０に格納されてもよいし、別の場所に格納されてもよい。
【００８２】
一定時間内にＵＳＢデバイス情報２２０を受け取れないと（ステップＥ３１／Ｙ）、管理装置２００は、ＵＳＢデバイス情報２２０を作成する（ステップＥ３３）。そして、管理装置２００は、作成したＵＳＢデバイス情報２２０を内部に格納する（ステップＥ３４）。
【００８３】
さらに、管理装置２００は、ＵＳＢデバイス情報２２０を、ネットワークインタフェース３００を介して、コンピュータシステム１００のＢＭＣ１２０に送信する（ステップＥ３５）。
【００８４】
以降、コンピュータシステム１００のプロセッサ１１０からのアクセスに対し、管理装置２００は、ディスクイメージ２５０を使用して処理を行う。すなわち、管理装置２００は、データをディスクイメージ２５０に格納し、処理を行う。
【００８５】
図１１のステップＥ３２、Ｅ３４のどちらを経由する場合においても、ディスクイメージ２５０を使用した処理が実行されてもよいし、Ｅ３４を経由する場合においてのみ、ディスクイメージ２５０を使用した処理が実行されてもよい。
【００８６】
次に、第５の実施の形態の効果について説明する。
【００８７】
第５の実施の形態は、ドライブ２４０が、ＵＳＢデバイスでない場合に、管理装置２００が、ステップＥ３３で、ＵＳＢデバイス情報２２０を作成し、ディスクイメージ２５０を使用する構成である。したがって、ＵＳＢインタフェース２３０に限らないインタフェース（たとえば、＜ＳＣＳＩ−ＭＭＣ規格＞に準拠する）に接続されたドライブ２４０がアクセスできるので、第５の実施の形態は、たとえば、第４の実施の形態に比べて汎用性が向上するという効果を持つ。
【００８８】
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８９】
［付記１］
ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスする処理回路を含むことを特徴とするコンピュータシステム。
【００９０】
［付記２］
受け取ったＵＳＢデバイス情報に基づいて前記ドライブに対する前記特定のコマンドを出力し、エラーを示す実行ステータスを受け取ると、前記ドライブをＵＳＢマスストレージデバイスとして扱う前記処理回路であるプロセッサと、
前記ドライブと接続された管理装置から受信したＵＳＢデバイス情報を前記プロセッサに出力し、前記プロセッサから前記特定のコマンドを受け取ると、前記特定のコマンドを前記管理装置に送信し、前記特定のコマンドの送信が一定時間以内に完了しない、データの受信が一定時間以内に完了しない、あるいは、実行ステータスの受信が一定時間以内に完了しないと、前記エラーを示す実行ステータスを前記プロセッサに出力するＢＭＣ（ベースボード・マネジメント・）と、
を含むことを特徴とする付記１のコンピュータシステム。
【００９１】
［付記３］
前記特定のコマンドの送信が一定時間以内に完了しない、あるいは、データの受信が一定時間以内に完了しないと、ストールパケットを前記プロセッサに出力する前記ＢＭＣを含むことを特徴とする付記２のコンピュータシステム。
【００９２】
［付記４］
ＵＳＢデバイス情報内のデバイスディスクリプタからデバイス識別情報を取得し、コンフィギュレーションディスクリプタからインタフェース数を取得し、
取得したインタフェース数分だけインタフェースディスクリプタを取得し、
インタフェースディスクリプタ内のインタフェースクラス、インタフェースサブクラス、インタフェースプロトコル、エンドポイント数を取得し、
エンドポイントディスクリプタから通信に必要なエンドポイントアドレスを取得する前記プロセッサを含むことを特徴とする付記２、または３のコンピュータシステム。
【００９３】
［付記５］
前記特定のコマンドを含むコマンドの送信が一定時間内に完了しない場合、または、データの受信が一定時間内に完了しない場合、ストール指示を含むエラー情報を出力するマスストレージ処理部と、前記マスストレージ処理部から受け取ったエラー情報にストール指示が含まれると、ストール指示を前記プロセッサに出力するＵＳＢ制御部とを備える前記ＢＭＣを含むことを特徴とする付記２、３、または４のコンピュータシステム。
【００９４】
［付記６］
ＵＳＢデバイス情報を出力する前記ドライブと、
前記ドライブから受け取ったＵＳＢデバイス情報を格納し、格納したＵＳＢデバイス情報をネットワークインタフェースを介して前記コンピュータシステムに送信する前記管理装置と、
付記２、３、４、または、５のコンピュータシステムと、
を含むことを特徴とする情報処理システム。
【００９５】
［付記７］
エラーを示す実行ステータスを受け取ると、出力したコマンドの種類に応じた処理を行う前記コンピュータシステムを含むことを特徴とする付記６の情報処理システム。
【００９６】
［付記８］
前記ドライブにＵＳＢデバイス情報要求を出力し、前記ドライブから一定時間以内に、ＵＳＢデバイス情報を受け取らないと、ＵＳＢデバイス情報を作成し、ＵＳＢデバイス情報を前記ネットワークインタフェースを介して前記コンピュータシステムに送信する前記管理装置を含むことを特徴とする付記７の情報処理システム。
【００９７】
［付記９］
ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスすることを特徴とする仮想メディア方法。
【００９８】
［付記１０］
ＵＳＢデバイス情報内のデバイスディスクリプタからデバイス識別情報を取得し、コンフィギュレーションディスクリプタからインタフェース数を取得し、
取得したインタフェース数分だけインタフェースディスクリプタを取得し、
インタフェースディスクリプタ内のインタフェースクラス、インタフェースサブクラス、インタフェースプロトコル、エンドポイント数を取得し、
エンドポイントディスクリプタから通信に必要なエンドポイントアドレスを取得することを特徴とする付記９の仮想メディア方法。
【００９９】
［付記１１］
エラーを示す実行ステータスを受け取ると、出力したコマンドの種類に応じた処理を行うことを特徴とする付記１０の仮想メディア方法。
【０１００】
［付記１２］
ＵＳＢデバイス情報に基づいてドライブが、ＵＳＢマスストレージクラス仕様に準拠するデバイスであると認識すると、特別の機能を持つデバイスであるかどうかを調べるための特定のコマンドを前記ドライブに向けて出力し、前記特定のコマンドに対し、エラーを示す実行ステータスを受け取ると、前記ドライブを前記特別の機能を持たないＵＳＢマスストレージクラス仕様に準拠するＵＳＢマスストレージデバイスとして扱いアクセスすることを特徴とするプログラム。
【０１０１】
［付記１３］
ＵＳＢデバイス情報内のデバイスディスクリプタからデバイス識別情報を取得し、コンフィギュレーションディスクリプタからインタフェース数を取得し、
取得したインタフェース数分だけインタフェースディスクリプタを取得し、
インタフェースディスクリプタ内のインタフェースクラス、インタフェースサブクラス、インタフェースプロトコル、エンドポイント数を取得し、
エンドポイントディスクリプタから通信に必要なエンドポイントアドレスを取得することを特徴とする付記１２のプログラム。
【０１０２】
［付記１４］
エラーを示す実行ステータスを受け取ると、出力したコマンドの種類に応じた処理を行うことを特徴とする付記１３のプログラム。
【符号の説明】
【０１０３】
０１０    情報処理システム
１００    コンピュータシステム
１１０    プロセッサ
１１１    処理回路
１２０    ＢＭＣ
１２１    ＵＳＢ制御部
１２２    ＵＳＢデバイス情報
１２３    マスストレージ処理部
１２４    エラー処理部
１３０    ＵＳＢインタフェース
２００    管理装置
２２０    ＵＳＢデバイス情報
２３０    ＵＳＢインタフェース
２４０    ドライブ
２５０    ディスクイメージ
２６０    デバイスインタフェース
３００    ネットワークインタフェース
【図１】
0006035715.tif 000002
【図２】
0006035715.tif 000003
【図３】
0006035715.tif 000004
【図４】
0006035715.tif 000005
【図５】
0006035715.tif 000006
【図６】
0006035715.tif 000007
【図７】
0006035715.tif 000008
【図８】
0006035715.tif 000009
【図９】
0006035715.tif 000010
【図１０】
0006035715.tif 000011
【図１１】
0006035715.tif 000012