JP2006513469A - 記憶システムのための汎用多重通路ドライバ - Google Patents
記憶システムのための汎用多重通路ドライバ Download PDFInfo
- Publication number
- JP2006513469A JP2006513469A JP2004565492A JP2004565492A JP2006513469A JP 2006513469 A JP2006513469 A JP 2006513469A JP 2004565492 A JP2004565492 A JP 2004565492A JP 2004565492 A JP2004565492 A JP 2004565492A JP 2006513469 A JP2006513469 A JP 2006513469A
- Authority
- JP
- Japan
- Prior art keywords
- irp
- machine
- causes
- program code
- small
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本出願は以下の特許出願、すなわち「記憶装置のための汎用多重通路ドライバを用いたフェイルオーバーおよびフェイルバック」(“Failover and Failback Using a Universal Multi-path Driver for Storage Devices”)と題された連続番号_(代理人整理番号第02−031/006342P005号)、および「記憶装置のための汎用多重通路ドライバにおけるロードバランシング」(“Load Balancing in a Universal Multi-path Driver for Storage Devices”)と題された連続番号_(代理人整理番号第02−32/006342P006号)に関連するものであり、すべては本出願と同じ日に提出され、本出願と同じ譲受人に譲受され、その各々の内容はここに引用により援用される。
発明の分野
本発明の実施例は、記憶システムの分野に関し、より特定的に記憶システムのためのドライバに関する。
記憶技術は、多くのデータ集約型アプリケーションにとって重要になっている。最近、さまざまなアプリケーションに対応するために異なる容量およびストリーミング速度を有する記憶装置がある。これらの記憶装置の例としては、レイド(RAID)、テープドライブ、ディスクドライブおよびテープライブラリが含まれる。これらの装置をインターフェイスするための技術としては、直接接続された記憶装置および記憶領域ネットワーク(SAN)が含まれる。
本発明の一実施例は、入出力(I/O)装置のための多重通路を管理するための技術である。上位レベルのドライバからのI/Oリクエストパケット(IRP)が受信される。複数のデバイスオブジェクトへの複数の経路が、複数の下位レベルのドライバを用いて、IRPに応じて管理される。デバイスオブジェクトは、Mのデバイスの種類を有するフィジカルデバイスに対応する。下位レベルのドライバはフィジカルデバイスを制御する。
本発明の一実施例は、入出力(I/O)装置のための多重通路を管理するための技術である。上位レベルのドライバからのI/Oリクエストパケット(IRP)が受信される。複数の下位レベルのドライバを用いて、複数のデバイスオブジェクトへの複数の経路が、IRPに応じて管理される。このデバイスオブジェクトは、Mのデバイスの種類を有するフィジカルデバイスに対応する。下位レベルのドライバはフィジカルデバイスを制御する。
び得る。テープライブラリ60は、自動テープ装填を有する多数のテープドライブを含む。テープライブラリ60の容量は、50から300MBpsの総合データ転送速度を有する1から1000テラバイト(TB)に及び得る。テーブルドライブ501および502、ならびにテーブルライブラリ60は順次アクセスを用いる。記憶サブシステム70は、ディスクサブシステム72、安価なレイド(RAID)のサブシステム74、および記憶装置76を含む。ディスクサブシステム72は、単一のドライブまたはディスクのアレイであってもよい。RAIDサブシステム74は、さらなる複雑さおよび特徴を有するディスクのアレイであり、管理可能性、性能、容量、信頼性および可用性が増大される。記憶装置76は、磁気、光学、電気光学等を含むいかなる他の記憶システムであってもよい。
のいかなる1つも、ハードウェア、ソフトウェア、ファームウェア、マイクロコードまたはいかなるその組合せによって実現され得る。システムメモリ140は、示されていない、オペレーティングシステム等の他のプログラムまたはデータを含んでもよい。記憶管理ドライバ145は、プロセッサ110によって実行されるときに、プロセッサ110に以下に記載されるような動作を行なわせるプログラムコードを含む。
施例に記載される動作を行なうための実際のコード、または動作をエミュレートもしくはシミュレートするコードを含み得る。プログラムもしくはコードセグメントを、プロセッサもしくは機械がアクセス可能な媒体に記憶するか、または送信媒体上で搬送波もしくは搬送波によって変調された信号で実現されるコンピュータデータ信号によって送信することができる。「プロセッサが読取可能な、もしくはアクセス可能な媒体」、または「機械が読取可能な、もしくはアクセス可能な媒体」は、情報を記憶、送信または転送することのできるいかなる媒体も含み得る。プロセッサが読取可能な、または機械がアクセス可能な媒体の例として、電子回路、半導体メモリ素子、読み出し専用メモリ(ROM)、フラッシュメモリ、消去可能なROM(EROM)、フロッピー(登録商標)ディスク、コンパクトディスク(CD)ROM、光学ディスク、ハードディスク、光ファイバ媒体、無線周波(RF)リンク等が含まれる。コンピュータデータ信号は、電子ネットワークチャネル、光ファイバ、エアリンク、電磁リンク、RFリンク等の送信媒体上を伝播することのできるいかなる信号も含み得る。コードセグメントは、インターネット、イントラネット等のコンピュータネットワークを介してダウンロードされ得る。機械がアクセス可能な媒体は、製造品において実現され得る。機械がアクセス可能な媒体は、機械がアクセスしたときに、機械に以下に記載された動作を行なわせるデータを含み得る。機械がアクセス可能な媒体は、それに組み込まれたプログラムコードを含み得る。このプログラムコードは、以下に記載された動作を行なうための機械読取可能コードを含み得る。「データ」という用語は、ここでは機械が読取可能な目的のために符号化されるいかなる種類の情報のことも指す。したがって、これはプログラム、コード、データ、ファイル等を含み得る。
ジュールまたはルーチンは、マイクロソフトデベロッパーネットワーク(MSDN)ライブラリと互換性がある。主要な機能グループ420は、ディスパッチ機能430、フィルタSCSI機能440、フィルタ追加装置機能450、フィルタアンロード機能460および電力ディスパッチ機能470を含む。
る。装置使用通知の小さなIRPに応じて(ブロック570)、プロセス430は、IRPをスタックにおける次のドライバに転送し(ブロック572)、次に終了する。
Claims (60)
- 入出力(I/O)要求パケット(IRP)を上位レベルのドライバから受信するステップと、
複数の下位レベルのドライバを用いて、当該IRPに応答して複数のデバイスオブジェクトへの複数の経路を管理するステップとを含み、当該デバイスオブジェクトは、Mの装置の種類を有するフィジカルデバイスに対応し、当該下位レベルのドライバは当該フィジカルデバイスを制御する、方法。 - 当該IRPを受信するステップは、
当該上位レベルのドライバから当該IRPを受信するステップを含み、当該上位レベルのドライバはクラスドライバである、請求項1に記載の方法。 - 当該複数の経路を管理するステップは、
主要な機能のIRPに応答するステップと、
Nの経路における装置経路を監視するステップとを含む、請求項1に記載の方法。 - 当該Nの経路を管理するステップは、
新しいデバイスオブジェクトを追加するステップと、
当該デバイスオブジェクトを解放するステップとをさらに含む、請求項3に記載の方法。 - 当該主要な機能のIRPに応答するステップは、
I/Oマネージャ、プラグ・アンド・プレイ(PnP)マネージャ、および電力マネージャからの当該主要な機能に応答するステップを含む、請求項3に記載の方法。 - 当該主要な機能のIRPに応答するステップは、
始動装置の小さなIRP、除去装置の小さなIRP、装置関係の小さなIRP、識別子(ID)照会の小さなIRP、停止装置の小さなIRP、および使用通知の小さなIRPのうちの1つに応答するステップを含む、請求項5に記載の方法。 - 当該始動装置の小さなIRPに応答するステップは、
当該下位レベルのドライバのうちの1つを用いて、接続された装置の周辺アドレスを得るステップと、
当該周辺アドレスを用いて当該接続された装置の装置コードを得るステップと、
当該装置コードが装置リストにおけるエントリに一致するかどうかを決定するステップとを含む、請求項6に記載の方法。 - 当該装置コードが当該エントリに一致する場合に新しいバスのフィジカルデバイスオブジェクトを生成するステップをさらに含む、請求項7に記載の方法。
- 当該除去装置の小さなIRPに応答するステップは、
装置リストからエントリを除去するステップを含み、当該エントリは接続された装置に対応し、さらに、
当該接続された装置を切り離すステップを含む、請求項6に記載の方法。 - 当該装置関係の小さなIRPに応答するステップは、
カウントと少なくとも1つのデバイスオブジェクトポインタとを含むページメモリから装置関係構造を割当てるステップを含む、請求項6に記載の方法。 - 当該ID照会の小さなIRPに応答するステップは、
装置IDを生成するステップと、
当該装置IDを当該上位レベルのドライバに戻すステップとを含む、請求項6に記載の方法。 - 当該停止装置の小さなIRPに応答するステップは、
装置リストからエントリを除去するステップを含み、当該エントリは接続された装置に対応する、請求項6に記載の方法。 - 当該使用通知の小さなIRPに応答するステップは、
当該使用通知の小さなIRPを次のドライバに転送するステップを含む、請求項6に記載の方法。 - 当該主要な機能のIRPに応答するステップは、
接続された装置のサポートされる装置名を得るステップと、
当該サポートされる装置名が当該装置リストにある場合に、装置サポートフラグを表明するステップと、
当該サポートされる装置名が当該リストにない場合に、当該装置サポートフラグを否定するステップとを含む、請求項5に記載の方法。 - 当該主要な機能のIRPに応答するステップは、
フィルタデバイスオブジェクトが接続されているかどうかを決定するステップと、
サポートされる装置の、主張、解放および照会のうちの1つがある場合に、エラーステータスに戻るステップと、
当該主要な機能のIRPを次のドライバに送信するステップとを含む、請求項5に記載の方法。 - 当該主要な機能のIRPに応答するステップは、
キューリストにおけるI/O要求を処理するステップを含む、請求項5に記載の方法。 - 当該経路を監視するステップは、
経路の経路ステータスをポーリングするステップを含み、当該経路ステータスは、当該経路に対応するフィジカルデバイスの切断状態および接続状態を含み、前記監視するステップはさらに、
当該切断状態を有する当該経路が、当該接続状態を有するようになるかどうかを決定するステップと、
当該経路を調整するステップとを含む、請求項3に記載の方法。 - 当該経路ステータスをポーリングするステップは、
切断された装置に対応する少なくとも1つの第1の装置名が、第1のリストに存在するかどうかを決定するステップを含む、請求項17に記載の方法。 - 当該経路を調整するステップは、
当該第1のリストから当該第1の装置名を除去するステップを含む、請求項17に記載の方法。 - 当該Nの経路を管理するステップは、
当該IRPに応じて複数のデバイスオブジェクトへの当該Nの経路を管理するステップを含み、当該デバイスオブジェクトは、Mの装置の種類を有するフィジカルデバイスに対応し、当該Mの装置の種類は、ディスク装置、安価なレイド(RAID)サブシステム、
テープデバイス、およびテープライブラリのうちの少なくとも2つを含む、請求項1に記載の方法。 - 機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含む、機械がアクセス可能な媒体を含み、当該以下のステップは、
入出力(I/O)要求パケット(IRP)を上位レベルのドライバから受信するステップと、
複数の下位レベルのドライバを用いて、当該IRPに応じて複数のデバイスオブジェクトへの複数の経路を管理するステップとを含み、当該デバイスオブジェクトはMの装置の種類を有するフィジカルデバイスに対応し、当該下位レベルのドライバは当該フィジカルデバイスを制御する、製造品。 - 当該機械に当該IRPを受信させる当該データは、当該機械がアクセスしたときに当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該IRPを当該上位レベルのドライバ、当該上位レベルのドライバのクラスドライバから受信するステップを含む、請求項21に記載の製造品。 - 当該機械に当該複数の経路を管理させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
主要な機能のIRPに応答するステップと、
当該Nの経路における装置経路を監視するステップとを含む、請求項21に記載の製造品。 - 当該機械に当該Nの経路を管理させるデータは、当該機械がアクセスしたときに当該機械に以下のステップを含む動作を行なわせるデータをさらに含み、当該以下のステップは、
新しいデバイスオブジェクトを追加するステップと、
当該デバイスオブジェクトを解放するステップとを含む、請求項23に記載の製造品。 - 当該機械を当該主要な機能のIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
I/Oマネージャ、プラグ・アンド・プレイ(PnP)マネージャ、および電力マネージャのうちの1つからの当該主要な機能のIRPに応答するステップを含む、請求項23に記載の製造品。 - 当該機械を当該主要な機能のIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
始動装置の小さなIRP、除去装置の小さなIRP、装置関係の小さなIRP、識別子(ID)照会の小さなIRP、停止装置の小さなIRP、および使用通知の小さなIRPのうちの1つに応答するステップを含む、請求項25に記載の製造品。 - 当該機械を当該始動装置の小さなIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該下位レベルのドライバのうちの1つを用いて、接続された装置の周辺アドレスを得るステップと、
当該周辺アドレスを用いて当該接続された装置の装置コードを得るステップと、
当該装置コードが装置リストにおけるエントリに一致するかどうかを決定するステップ
とを含む、請求項26に記載の製造品。 - 当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータをさらに含み、当該以下のステップは、
当該装置コードが当該エントリに一致する場合に、新しいバスのフィジカルデバイスオブジェクトを生成するステップを含む、請求項27に記載の製造品。 - 当該機械を当該除去装置の小さなIRPに応答させる当該データは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
装置リストからエントリを除去するステップを含み、当該エントリは接続された装置に対応し、さらに、
当該接続された装置を切り離すステップを含む、請求項26に記載の製造品。 - 当該機械を当該装置関係の小さなIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
カウントと少なくとも1つのデバイスオブジェクトポインタとを含むページメモリから装置関係構造を割当てるステップを含む、請求項26に記載の製造品。 - 当該機械を当該ID照会の小さなIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
装置IDを生成するステップと、
当該装置IDを当該上位レベルのドライバに戻すステップとを含む、請求項26に記載の製造品。 - 当該機械を当該停止装置の小さなIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
装置リストからエントリを除去するステップを含み、当該エントリは接続された装置に対応する、請求項26に記載の製造品。 - 当該機械を当該使用通知の小さなIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該使用通知の小さなIRPを次のドライバに転送するステップを含む、請求項26に記載の製造品。 - 当該機械を当該主要な機能のIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
接続された装置のサポートされる装置名を得るステップと、
当該サポートされる装置名が当該装置リストにある場合に、装置サポートフラグを表明するステップと、
当該サポートされる装置名が当該リストにない場合に、当該装置サポートフラグを否定するステップとを含む、請求項25に記載の製造品。 - 当該機械を当該主要な機能のIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステ
ップは、
フィルタデバイスオブジェクトが接続されているかどうかを決定するステップと、
サポートされる装置の、主張、解放および照合がある場合に、エラーステータスに戻すステップと、
当該主要な機能のIRPを次のドライバに送信するステップとを含む、請求項25に記載の製造品。 - 当該機械を当該主要な機能のIRPに応答させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
キューリストにおけるI/O要求を処理するステップを含む、請求項25に記載の製造品。 - 当該機械に当該経路を監視させる当該データは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該経路の経路ステータスをポーリングするステップを含み、当該経路ステータスは、当該経路に応じてフィジカルデバイスの切断状態および接続状態を含み、
当該切断状態を有する経路が当該接続状態を有するようになるかどうかを決定するステップと、
当該経路を調整するステップとを含む、請求項23に記載の製造品。 - 当該機械に当該経路ステータスをポーリングさせるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
切断された装置に対応する少なくとも1つの第1の装置名が第1のリストにあるかどうかを決定するステップを含む、請求項37に記載の製造品。 - 当該機械に当該経路を調整させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該第1の装置名を当該第1のリストから除去するステップを含む、請求項37に記載の製造品。 - 当該機械に当該Nの経路を管理させるデータは、当該機械がアクセスしたときに、当該機械に以下のステップを含む動作を行なわせるデータを含み、当該以下のステップは、
当該IRPに応じて複数のデバイスオブジェクトへの当該Nの経路を管理するステップを含み、フィジカルデバイスに対応する当該オブジェクトは、Mの装置の種類を有し、当該Mの装置の種類は、ディスク装置、安価なレイド(RAID)サブシステム、テープデバイスおよびテープライブラリのうちの少なくとも2つを含む、請求項21に記載の製造品。 - プロセッサと、
複数のアダプタを介して当該プロセッサに結合された複数のフィジカルデバイスとを含み、当該フィジカルデバイスは、Mの装置の種類を有し、さらに、
プロセッサに結合されたメモリを含み、当該メモリは、当該プロセッサによって実行されたときに、当該プロセッサに、
上位レベルのドライバから入出力(I/O)要求パケット(IRP)を受信させ、かつ
複数の下位レベルのドライバを用いて、当該IRPに応じて複数のデバイスオブジェクトへの複数の経路を管理させるプログラムコードを含み、当該デバイスオブジェクトは当該フィジカルデバイスに対応し、当該下位レベルのドライバは当該フィジカルデバイスを制御する、システム。 - 当該プロセッサに当該IRPを受信させるプログラムコードは、当該プロセッサによって実行されたときに、当該プロセッサに、
当該上位レベルのドライバから当該IRPを受信させるプログラムコードを含み、当該上位レベルのドライバはクラスドライバの1つである、請求項41に記載のシステム。 - 当該プロセッサに当該複数の経路を管理させるプログラムコードは、当該プロセッサによって実行されたときに、当該プロセッサに、
主要な機能のIRPに応答させ、かつ
当該Nの経路における装置経路を監視させるプログラムコードを含む、請求項41に記載のシステム。 - 当該機械に当該Nの経路を管理させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
新しいデバイスオブジェクトを追加させ、かつ
当該デバイスオブジェクトを解放させるプログラムコードをさらに含む、請求項43に記載のシステム。 - 当該機械に当該主要な機能のIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
I/Oマネージャ、プラグ・アンド・プレイ(PnP)マネージャ、および電力マネージャのうちの1つからの当該主要な機能のIRPに応答させるプログラムコードを含む、請求項43に記載のシステム。 - 当該機械を当該主要な機能のIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサを、
始動装置の小さなIRP、除去装置の小さなIRP、装置関係の小さなIRP、識別子(ID)照会の小さなIRP、停止装置の小さなIRP、および使用通知の小さなIRPのうちの1つに応答させるプログラムコードを含む、請求項45に記載のシステム。 - 当該機械を当該始動装置の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
当該下位レベルのドライバのうちの1つを用いて、接続された装置の周辺アドレスを獲得させ、
当該周辺アドレスを用いて、接続された装置の装置コードを獲得させ、かつ
当該装置コードが装置リストにおけるエントリに一致するかどうかを決定させるプログラムコードを含む、請求項46に記載のシステム。 - 当該プログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
当該装置コードが当該エントリに一致する場合に、新しいバスのフィジカルデバイスオブジェクトを生成させるプログラムコードをさらに含む、請求項47に記載のシステム。 - 当該機械を当該除去装置の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
装置リストからエントリを除去させ、当該エントリは接続された装置に対応し、さらに、
当該接続された装置を切り離させるプログラムコードを含む、請求項46に記載のシステム。 - 当該機械を当該装置関係の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
カウントと少なくとも1つのデバイスオブジェクトポインタとを含むページメモリから装置関係構造を割当てさせるプログラムコードを含む、請求項46に記載のシステム。 - 当該機械を当該ID照会の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
装置IDを生成させ、かつ
当該装置IDを当該上位レベルのドライバに戻させるプログラムコードを含む、請求項46に記載のシステム。 - 当該機械を当該停止装置の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
装置リストからエントリを除去させるプログラムコードを含み、当該エントリは、接続された装置に対応する、請求項46に記載のシステム。 - 当該機械を当該使用通知の小さなIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
当該使用通知の小さなIRPを次のドライバに転送させるプログラムコードを含む、請求項46に記載のシステム。 - 当該機械を当該主要な機能のIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
接続された装置のサポートされる装置名を獲得させ、
当該サポートされる装置名が当該装置リストにある場合に、装置サポートフラグを表明させ、かつ
当該サポートされる装置名が当該リストにない場合に、当該装置サポートフラグを否定させるプログラムコードを含む、請求項45に記載のシステム。 - 当該機械を当該主要な機能のIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
フィルタデバイスオブジェクトが接続されているかどうかを決定させ、
サポートされる装置の、主張、解放およびの参照のうちの1つがある場合に、エラーステータスに戻らせ、かつ
当該主要な機能のIRPを次のドライバに送信させるプログラムコードを含む、請求項45に記載のシステム。 - 当該機械を当該主要な機能のIRPに応答させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
キューリストにおけるI/O要求を処理させるプログラムコードを含む、請求項45に記載のシステム。 - 当該機械に当該経路を監視させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
経路の経路ステータスをポーリングさせ、当該経路ステータスは、当該経路に対応するフィジカルデバイスの切断状態および接続状態を含み、さらに、
当該切断状態を有する経路が当該接続状態を有するようになるかどうかを決定させ、かつ
当該経路を調整させるプログラムコードを含む、請求項43に記載のシステム。 - 当該機械に当該経路ステータスをポーリングさせるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
切断された装置に対応する少なくとも1つの第1の装置名が第1のリストにあるかどうかを決定させるプログラムコードを含む、請求項57に記載のシステム。 - 当該機械に当該経路を調整させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
当該第1の装置名を当該第1のリストから除去させるプログラムコードを含む、請求項57に記載のシステム。 - 当該機械に当該Nの経路を管理させるプログラムコードは、当該プロセッサによって実行されるときに、当該プロセッサに、
当該IRPに応じて複数のデバイスオブジェクトへの当該Nの経路を管理させるプログラムコードを含み、フィジカルデバイスに対応する当該デバイスオブジェクトは、Mの装置の種類を有し、当該Mの装置の種類は、ディスク装置、安価なレイド(RAID)サブシステム、テープ装置およびテープライブラリのうちの少なくとも2つを含む、請求項41に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/321,029 US7222348B1 (en) | 2002-12-16 | 2002-12-16 | Universal multi-path driver for storage systems |
PCT/US2003/039869 WO2004061642A2 (en) | 2002-12-16 | 2003-12-15 | Universal multi-path driver for storage systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006513469A true JP2006513469A (ja) | 2006-04-20 |
JP2006513469A5 JP2006513469A5 (ja) | 2007-02-08 |
Family
ID=32710749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004565492A Pending JP2006513469A (ja) | 2002-12-16 | 2003-12-15 | 記憶システムのための汎用多重通路ドライバ |
Country Status (6)
Country | Link |
---|---|
US (1) | US7222348B1 (ja) |
EP (1) | EP1579334B1 (ja) |
JP (1) | JP2006513469A (ja) |
AU (1) | AU2003297111A1 (ja) |
DE (1) | DE60313040T2 (ja) |
WO (1) | WO2004061642A2 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7610589B2 (en) * | 2003-08-22 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | Using helper drivers to build a stack of device objects |
US7406617B1 (en) * | 2004-11-22 | 2008-07-29 | Unisys Corporation | Universal multi-path driver for storage systems including an external boot device with failover and failback capabilities |
US7484040B2 (en) | 2005-05-10 | 2009-01-27 | International Business Machines Corporation | Highly available removable media storage network environment |
US8918530B2 (en) * | 2005-09-09 | 2014-12-23 | Microsoft Corporation | Plug and play device redirection for remote systems |
US8874806B2 (en) * | 2005-10-13 | 2014-10-28 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for managing multipathing software |
US8402172B2 (en) * | 2006-12-22 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Processing an input/output request on a multiprocessor system |
US7944572B2 (en) * | 2007-01-26 | 2011-05-17 | Xerox Corporation | Protocol allowing a document management system to communicate inter-attribute constraints to its clients |
JP4994128B2 (ja) * | 2007-06-28 | 2012-08-08 | 株式会社日立製作所 | ストレージシステムとストレージシステムにおける管理方法 |
US8789070B2 (en) * | 2007-12-06 | 2014-07-22 | Wyse Technology L.L.C. | Local device virtualization |
US8136126B2 (en) * | 2008-01-31 | 2012-03-13 | International Business Machines Corporation | Overriding potential competing optimization algorithms within layers of device drivers |
US20090240844A1 (en) * | 2008-03-21 | 2009-09-24 | Inventec Corporation | Method for adding hardware |
US8321878B2 (en) | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
CN102141897B (zh) * | 2010-02-02 | 2013-01-02 | 慧荣科技股份有限公司 | 用来增进存取效能的方法和装置 |
US9858126B2 (en) | 2010-12-16 | 2018-01-02 | Microsoft Technology Licensing, Llc | Device redirection for remote systems |
JP5422611B2 (ja) * | 2011-06-24 | 2014-02-19 | 株式会社日立製作所 | 計算機システム、ホストバスアダプタ制御方法及びそのプログラム |
US9483331B1 (en) * | 2012-12-27 | 2016-11-01 | EMC IP Holding Company, LLC | Notifying a multipathing driver of fabric events and performing multipathing management operations in response to such fabric events |
US10824342B2 (en) * | 2014-02-28 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | Mapping mode shift between mapping modes that provides continuous application access to storage, wherein address range is remapped between said modes during data migration and said address range is also utilized bypass through instructions for direct access |
US10824362B2 (en) | 2015-03-27 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
US10684954B2 (en) | 2015-04-02 | 2020-06-16 | Hewlett Packard Enterprise Development Lp | Page cache on persistent memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082091A1 (en) * | 2000-04-20 | 2001-11-01 | Microsoft Corporation | Programmatic masking of storage units |
JP2002027019A (ja) * | 2000-07-06 | 2002-01-25 | Toshiba Corp | 通信装置及びその制御方法 |
JP2002328823A (ja) * | 2001-04-27 | 2002-11-15 | Toshiba Corp | 非共有型パラレルデータベースサーバシステム、このシステムにおけるデータ書き込み方法及び一致化処理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339449A (en) * | 1989-06-30 | 1994-08-16 | Digital Equipment Corporation | System and method for reducing storage channels in disk systems |
US6311228B1 (en) | 1997-08-06 | 2001-10-30 | Microsoft Corporation | Method and architecture for simplified communications with HID devices |
US6845508B2 (en) * | 1997-12-19 | 2005-01-18 | Microsoft Corporation | Stream class driver for computer operating system |
US6085156A (en) | 1998-03-20 | 2000-07-04 | National Instruments Corporation | Instrumentation system and method having instrument interchangeability |
US6233625B1 (en) * | 1998-11-18 | 2001-05-15 | Compaq Computer Corporation | System and method for applying initialization power to SCSI devices |
US6904477B2 (en) * | 2001-04-13 | 2005-06-07 | Sun Microsystems, Inc. | Virtual host controller interface with multipath input/output |
US7134040B2 (en) * | 2002-04-17 | 2006-11-07 | International Business Machines Corporation | Method, system, and program for selecting a path to a device to use when sending data requests to the device |
-
2002
- 2002-12-16 US US10/321,029 patent/US7222348B1/en active Active
-
2003
- 2003-12-15 DE DE60313040T patent/DE60313040T2/de not_active Expired - Fee Related
- 2003-12-15 WO PCT/US2003/039869 patent/WO2004061642A2/en active IP Right Grant
- 2003-12-15 JP JP2004565492A patent/JP2006513469A/ja active Pending
- 2003-12-15 EP EP03814802A patent/EP1579334B1/en not_active Expired - Fee Related
- 2003-12-15 AU AU2003297111A patent/AU2003297111A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001082091A1 (en) * | 2000-04-20 | 2001-11-01 | Microsoft Corporation | Programmatic masking of storage units |
JP2003532193A (ja) * | 2000-04-20 | 2003-10-28 | マイクロソフト コーポレイション | 記憶ユニットの計画的なマスキング |
JP2002027019A (ja) * | 2000-07-06 | 2002-01-25 | Toshiba Corp | 通信装置及びその制御方法 |
JP2002328823A (ja) * | 2001-04-27 | 2002-11-15 | Toshiba Corp | 非共有型パラレルデータベースサーバシステム、このシステムにおけるデータ書き込み方法及び一致化処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1579334A2 (en) | 2005-09-28 |
AU2003297111A8 (en) | 2004-07-29 |
AU2003297111A1 (en) | 2004-07-29 |
WO2004061642A2 (en) | 2004-07-22 |
DE60313040D1 (de) | 2007-05-16 |
US7222348B1 (en) | 2007-05-22 |
EP1579334B1 (en) | 2007-04-04 |
WO2004061642A3 (en) | 2005-02-17 |
DE60313040T2 (de) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7222348B1 (en) | Universal multi-path driver for storage systems | |
US7194662B2 (en) | Method, apparatus and program storage device for providing data path optimization | |
EP1636696B1 (en) | Os agnostic resource sharing across multiple computing platforms | |
US8516294B2 (en) | Virtual computer system and control method thereof | |
US8898385B2 (en) | Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment | |
US7536508B2 (en) | System and method for sharing SATA drives in active-active RAID controller system | |
US7363629B2 (en) | Method, system, and program for remote resource management | |
US7406617B1 (en) | Universal multi-path driver for storage systems including an external boot device with failover and failback capabilities | |
US7353285B2 (en) | Apparatus, system, and method for maintaining task prioritization and load balancing | |
US8122120B1 (en) | Failover and failback using a universal multi-path driver for storage devices | |
AU2021269916B2 (en) | Write sort management in data storage system | |
US7370081B2 (en) | Method, system, and program for communication of code changes for transmission of operation requests between processors | |
US9400605B2 (en) | Efficient management of a virtual tape library cluster | |
US10860078B2 (en) | Managing power request during cluster operations | |
US11580022B2 (en) | Write sort management in a multiple storage controller data storage system | |
US10956046B2 (en) | Dynamic I/O load balancing for zHyperLink | |
US20160294609A1 (en) | Storage system upgrade | |
US11048523B2 (en) | Enabling software sensor power operation requests via baseboard management controller (BMC) | |
US20210181947A1 (en) | Path selection modification for non-disruptive upgrade of a host device | |
US11544013B2 (en) | Array-based copy mechanism utilizing logical addresses pointing to same data block |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091117 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100216 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100223 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100316 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100324 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100413 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100622 |