JP4750040B2 - ストレージボリュームに対するクロスプラットフォームアクセスを可能にするオペレーティングシステムメタデータをエミュレートするためのシステム及び方法 - Google Patents

ストレージボリュームに対するクロスプラットフォームアクセスを可能にするオペレーティングシステムメタデータをエミュレートするためのシステム及び方法 Download PDF

Info

Publication number
JP4750040B2
JP4750040B2 JP2006541649A JP2006541649A JP4750040B2 JP 4750040 B2 JP4750040 B2 JP 4750040B2 JP 2006541649 A JP2006541649 A JP 2006541649A JP 2006541649 A JP2006541649 A JP 2006541649A JP 4750040 B2 JP4750040 B2 JP 4750040B2
Authority
JP
Japan
Prior art keywords
host
operating system
storage
storage device
virtualizer
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.)
Active
Application number
JP2006541649A
Other languages
English (en)
Other versions
JP2007516523A (ja
Inventor
カー,ロナルド・エス
キセレヴ,オレグ
ミロシュニチェンコ,アレックス
コング,アルガイア
Original Assignee
シマンテック・オペレーティング・コーポレーション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by シマンテック・オペレーティング・コーポレーション filed Critical シマンテック・オペレーティング・コーポレーション
Publication of JP2007516523A publication Critical patent/JP2007516523A/ja
Application granted granted Critical
Publication of JP4750040B2 publication Critical patent/JP4750040B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コンピュータシステムに関し、更に具体的にはストレージ環境内のオフホスト仮想化に関する。
多くの企業及び政府事業体は、ミッション・クリティカルなアプリケーション用の大量のデータ(テラバイト単位のデータを超える場合が多い)にアクセスするアプリケーションに依存している。多くの場合、このようなデータは、様々なストレージデバイスに格納されており、本質的に、種々の製造者による種々のタイプのデバイスを含むヘテロジニアスである。
ヘテロジニアスのストレージ環境で直面する各種々のストレージデバイスを識別し直接対話するために、データを消費する個々のアプリケーション、或いはこのようなアプリケーションをホストするアプリケーションサーバシステムを構成することは、環境のサイズ及び複雑さが拡大するにつれて益々難しくなっている。従って、幾つかのストレージ環境では、専用のストレージマネージメントソフトウェアとハードウェアを用いて、より均一なストレージモデルをストレージ消費者に提供している。このようなソフトウェアとハードウェアはまた、仮想ストレージデバイス(例えば仮想SCSIディスク)として物理ストレージデバイスをコンピュータホストに提示し、個々のストレージデバイスに存在しないストレージ機能をストレージモデルに追加するように構成されている。例えば、データミラーリング、スナップショット/固定画像生成、又はデータパリティなどの耐故障性を向上させるための機能や、ディスク・ストライピングのようなデータのアクセス性能を向上させるための機能は、ハードウェア又はソフトウェアを介してストレージモデルにおいて実施することができる。追加されたストレージ機能は、ストレージ仮想化機能と呼ぶことができ、仮想ストレージデバイスと追加されたストレージ機能を提供するソフトウェア及び/又はハードウェアは、「バーチャライザー」又は「仮想化コントローラ」と呼ばれている。仮想化は、ホストでのストレージソフトウェアスタックのボリュームマネージャーレイヤ内などのコンピュータホスト内、及び/又は仮想化スイッチ又は仮想化アプライアンスのようなホストの外部にあるデバイスにおいて実行することができる。仮想化を可能にするこのような外部デバイスは、「オフホスト」バーチャライザーと呼ばれ、ホストから仮想化に要求される処理の負担を軽減するのに利用される。オフホストバーチャライザーは、外部の物理ストレージデバイスに接続することができ、これによって、ファイバーチャネルリンク、インターネットプロトコル(IP)ネットワーク、その他の同様のものなどの種々の相互接続部を介して仮想化機能を提供する。
従来から、コンピュータホスト内のストレージソフトウェアは、ファイルシステムレイヤ、ディスクドライバレイヤなどの幾つかのレイヤから構成されている。ストレージソフトウェアレイヤの一部は、ホストで使用中のオペレーティングシステムの一部を形成することができ、オペレーティングシステム毎に異なっている。物理ディスクにアクセスする場合、所与のオペレーティングシステム用のディスクドライバレイヤなどのレイヤは、特定のフォーマット、例えばディスクパーティションレイアウト情報を含むヘッダ(ディスクの最初の数ブロックに配置される)にレイアウトされるディスクの構成情報の幾つかのタイプを期待するように構成させることができる。また、ローカル物理ディスクにアクセスするのに使用されるストレージスタックソフトウェアレイヤを用いて、オフホストバーチャライザーによって仮想ストレージデバイスとして提示される外部ストレージデバイスにアクセスすることができる。従って、オフホストバーチャライザーは、ストレージ環境でのホストで使用することができる種々のオペレーティングシステムによって期待されるフォーマットで仮想ストレージデバイスの構成情報を提供することが望ましいであろう。更に、オフホストバーチャライザーは、例えばホストのリブートを要求することなく、ホストストレージソフトウェアレイヤに提示された仮想ストレージデバイスに外部物理ストレージデバイス内のストレージをフレキシブル且つ動的にマップするための技術を実装することが望ましい。
オペレーティングシステムメタデータをエミュレートして、ストレージボリュームにクロスプラットフォームのアクセスを可能にするためのシステム及び方法の種々の実施態様が開示されている。第1の実施態様によれば、システムは、第1ホストと、仮想化スイッチ又は仮想化アプライアンスなどのオフホストバーチャライザーとを含む。オフホストバーチャライザーは、仮想LUNのような第1仮想ストレージデバイスのオペレーティングシステムメタデータを生成し、オペレーティングシステムメタデータを第1ホストにアクセス可能にするように構成されている。オペレーティングシステムメタデータは、ホストで使用中のオペレーティングシステムの要件に従ってカスタマイズされ、すなわちオフホストバーチャライザーは、種々のホストで使用中の幾つかの種々のオペレーティングシステム用にカスタマイズされたメタデータを提供することができる。第1ホストは、オフホストバーチャライザーに対しそのオペレーティングシステムの固有のメタデータ要件を指示するように構成されている。第1ホストは、オフホストバーチャライザーによって提供されたオペレーティングシステムメタデータを使用してパーティションなどのアドレス指定可能ストレージデバイスとして第1仮想ストレージデバイスの存在を検出するように構成された、ディスクドライバレイヤなどの第1レイヤを含むストレージソフトウェアスタックを含む。別の実施態様では、オフホストバーチャライザーを、1つ又はそれ以上の物理ストレージデバイス内のストレージを論理ボリュームに集め、論理ボリュームを第1仮想ストレージデバイス又は仮想LUNにマップするように構成する。このような実施態様では、オフホストバーチャライザーは、ストレージソフトウェアスタックの第2レイヤ(ディスクドライバレイヤとファイルシステムレイヤとの間の中間ドライバレイヤなど)に論理ボリュームメタデータを提供するよう構成され、第2レイヤが論理ボリューム上でI/Oオペレーションを実行することができる。
1つの実施態様では、第1仮想ストレージデバイスは、最初は物理ストレージにマップされない。アドレス指定可能なストレージデバイスとしてのマップされていない第1仮想ストレージデバイスの識別は、I/Oオペレーション発生の開始前のシステム初期化段階中に行う。このようにして、マップされない又は「ブランク」仮想LUNを、オフホストバーチャライザーによる後続の動的マッピングのために準備することができる。マップされないLUNは、仮想LUNのサイズを初期化後に修正しなくてもよいように、ホストで使用中のオペレーティングシステムによってサポートされる最大許可LUNサイズに等しい初期サイズを与えることができる。幾つかの実施態様では、複数の仮想LUNは、例えば種々のアプリケーションのストレージを分離するか、或いは最大LUNサイズでの限界に対応するために、単一のホストで使用するよう事前に生成される。
別の実施態様では、システムはまた、2つ又はそれ以上の物理ストレージデバイスを含み、オフホストバーチャライザーは、第1及び第2物理ストレージデバイスからの物理ストレージを第1仮想ストレージデバイス内のアドレスのそれぞれの範囲に動的にマップするように構成される。例えば、オフホストバーチャライザーは、物理ストレージデバイス(物理LUNと呼ぶことができる)と仮想LUNとの間のN対1マッピングを行うように構成され、物理ストレージデバイス内のストレージが事前に生成された仮想LUNを介してホストからアクセスできるようにする。仮想LUN内の第1及び/又は第2アドレス範囲の位置に関する構成情報(すなわち、物理ストレージデバイスにマップされる仮想LUNの領域)を、種々のメカニズムを使用してオフホストバーチャライザーからホストのストレージスタックの第2レイヤ(例えばディスクドライバレイヤの上の中間ドライバレイヤ)にわたすことができる。このようなメカニズムは、例えば、構成情報を仮想LUN内の幾つかの特別なブロックに書込み、メッセージをネットワーク、或いは特別な拡張SCSIモードページを通じてホストに送るオフホストバーチャライザーを含む。1つの実施態様では、単一の物理ストレージデバイス内の物理ストレージの2つ又はそれ以上の種々の範囲は、仮想LUNのような対応する事前に生成された仮想ストレージデバイスにマップされ、対応するホストに提示することができる。すなわち、オフホストバーチャライザーは、複数のホストの各ホストがそれぞれの仮想LUNを介して物理ストレージデバイスのそれぞれの部分にアクセスできる可能性がる。このような実施態様では、オフホストバーチャライザーはまた、共用物理ストレージデバイス内の物理ストレージの範囲を分離するセキュリティポリシーを実施するように構成され、すなわちホストがアクセスが認可された領域にだけアクセスできるようにし、許可されていないアクセスを防止できるようにする。
1つの実施態様では、オフホストバーチャライザーは、物理ストレージデバイス内のストレージを論理ボリュームに集め、論理ボリュームを事前に生成された仮想ストレージデバイス内のアドレスの範囲に動的にマップし、論理ボリュームメタデータをストレージスタックの第2レイヤにわたすように更に構成され、I/Oオペレーションを論理ボリューム上で行うことができるようにする。単一の物理ストレージデバイスからのストレージは、種々の論理ボリュームのいずれかの要求される数に集め、論理ボリュームのいずれかの要求される数が単一の仮想ストレージデバイス又は仮想LUNにマップされる。オフホストバーチャライザーは、ボリュームレベルのセキュリティを提供し、すなわち論理ボリュームに対応する物理ストレージが、共用物理ストレージデバイスの一部である場合でもホストから論理ボリュームへの許可されていないアクセスを阻止するように更に構成させることができる。加えて、いずれかの要求される数の物理ストレージデバイスからの物理ストレージは、論理ボリュームに集めることができ、これによって単一のボリュームを単一の物理ストレージデバイスの最大可能サイズより大きなアドレス範囲全体に拡張させることができる。仮想ストレージデバイス又は仮想LUNを、ファイバーチャネル構造などの幾つかの独立したフロントエンドストレージネットワーク全体に分散させ、論理ボリュームをバックする物理ストレージデバイスを、幾つかの独立したバックエンドストレージネットワーク全体に分散させることができる。例えば、第1ホストは、第1ストレージネットワークを介してその仮想ストレージデバイスにアクセスでき、第2ホストは、第1から独立した第2ストレージネットワークを介してその仮想ストレージデバイスにアクセスできる(すなわち、第1ストレージネットワークでの再構成及び/又は障害は、第2ストレージネットワークに影響を与える可能性はない)。同様に、オフホストバーチャライザーは、第3ストレージネットワークを介して第1物理ストレージデバイスにアクセスでき、第4ストレージネットワークを介して第2物理ストレージデバイスにアクセスできる。独立したストレージネットワーク間に分散された事前に生成された仮想ストレージデバイス全体にストレージを動的にマップするためのホストバーチャライザーの能力は、堅牢でフレキシブルなストレージ環境をサポートすることができる。
本発明は種々の修正及び代替形態が可能であるが、特定の実施形態を各図面で例として示し本明細書で詳細に説明する。しかしながら、本発明の図面及び詳細な説明は、開示される特定の形態に本発明を限定するものではなく、逆に本発明は、添付の請求項によって定義される本発明の精神及び範囲内に含まれる全ての修正、均等物、代替形態を保護するものであることを理解されたい。
図1aは、1つの実施形態によるコンピュータシステム100を示すブロック図である。システム100は、相互接続部130を介して物理ブロックデバイス120に結合されたホスト110を含む。ホスト110は、相互接続部130を介して物理ブロックデバイス120上でI/Oオペレーションを実行するのに使用することができる従来のソフトウェアストレージスタック140Aを含む。
概して、物理ブロックデバイス120は、読み取り又は書き込みの可能な線形的にアドレス指定されたデータブロックの集合を提供する、いずれかのハードウェアエンティティを含む。例えば、1つの実施形態では、物理ブロックデバイスは、ブロックの指標付きアレイとしてそのセクターの全てを提示するように構成された単一のディスクドライブである。別の実施形態では、物理ブロックデバイスは、ディスクアレイデバイス、或いはディスクアレイデバイスの一部として構成されたディスクでもよい。ストレージデバイスのいずれかの適切なタイプを、固定又は取外し可能な磁気媒体ドライブ(例えば、ハードドライブ、フロッピー(登録商標)、又はZipベースドライブ)、書込み可能又は読出し専用光学媒体ドライブ(例えばCD又はDVD)、テープドライブ、固体大容量ストレージデバイス、或いはいずれかの他のタイプのストレージデバイスなどのブロックデバイスとして構成できることも企図される。相互接続部130は、Small Computer System Interface(SCSI)プロトコル、ファイバーチャネル、インターネットプロトコル(IP)、インターネットSCSI(iSCSI)、又はこのようなストレージネットワーキング技術の組合せの種々の変形形態などのいずれかの望ましいストレージ接続技術を利用することができる。ソフトウェアストレージスタック140Aは、ホスト110にオペレーティングシステム内のソフトウェアのレイヤを含み、要求される物理ブロックデバイス120上でI/O(入力/出力)を実行するためにクライアントアプリケーションによってアクセスされる。
ブロックデバイスアクセスのための従来のストレージソフトウェアスタックでは、クライアントアプリケーションは、例えばファイル内の指定されたオフセットでデータのブロックを読み取るための要求として、I/O要求を開始する。要求は、ファイルシステムレイヤ112で(例えば読み取りシステム呼出しの形式で)受信して、特定のデバイスオブジェクト内のブロック(すなわちストレージデバイスを表すソフトウェアエンティティ)を読み取るために要求に変換し、更にディスクドライバレイヤ114にわたす。次いで、ディスクドライバレイヤ114は、ディスクデバイスオブジェクトに対応するターゲット物理ブロックデバイス120を選択し、相互接続部依存I/Oドライバレイヤ116を使用して相互接続部130を介してターゲット物理ブロックデバイスのアドレスに要求を送る。例えば、ホストバスアダプタ(HBA)(SCSI HBAのような)を用いて、適切なストレージプロトコル(例えばSCSI)に従ってフォーマットされたI/O要求を相互接続部の物理リンク(例えばSCSIバス)に転送する。物理ブロックデバイス120では、相互接続部依存ファームウェアレイヤ122が、要求を受け取り、物理ストレージレイヤ124で要求される物理I/Oオペレーションを実行し、更に結果を相互接続部を介してホストに返信する。次いで、この結果(例えば、読み取られることになるファイルの要求ブロック)を要求しているクライアントアプリケーションにわたされる前に逆の順序で(すなわち相互接続部依存I/Oドライバからファイルシステムに)ストレージスタック140Aの種々のレイヤを介して転送する。
幾つかのオペレーティングシステムでは、物理ブロックデバイス120内のストレージをアドレス指定するために、階層方式を使用する。例えば、オペレーティングシステムは、SCSI HBA識別子(「hba」)、SCSIバス識別子(「bus」)、SCSIターゲット識別子(「target」)、論理ユニット識別子(「lun」)を含む、SCSIデバイスの形式<「hba」、「bus」、「target」、「lun」>の4レベル階層アドレス指定方式を用いることができ、ブート中の使用可能なSCSIデバイスのアドレスでデバイスデータベースに読み込むように構成される。ホスト110は、複数のSCSI HBAを含み、異なるSCSIアダプタ識別子が各HBAに対して使用される。SCSIアダプタ識別子は、例えば、互いを基準とするHBAカードの物理的配置に基づいて(すなわちアダプタカードに使用されるスロット番号に基づいて)、オペレーティングシステムカーネルによって発行された番号とすることができる。各HBAは、1つ又はそれ以上のSCSIバスを制御することができ、固有のSCSIバス番号を用いて、HBA内の各SCSIバスを識別する。システム初期化中、或いは特別な構成コマンドに応答して、HBAは、バスに現在取り付けられているSCSIデバイスを識別するために各バスをプローブするように構成される。使用中のSCSIプロトコルのバージョンに応じて、SCSIバス上に取り付けることのできるデバイス(ディスク又はディスクアレイなど)の数は、例えばHBA自体を除いて15のデバイスに制限されることがある。HBAなどのI/Oオペレーションを開始できるSCSIデバイスは、SCSIイニシエータと呼ばれ、物理I/Oを実行することができるデバイスは、SCSIターゲットと呼ばれる。SCSIバス上の各ターゲットは、プローブに応答してHBAに対して自己を識別する。更に、各ターゲットデバイスはまた、ターゲットデバイス内の物理ストレージのアドレス指定可能なユニットを別々に提示する「論理ユニット」(LUN)のプロトコル指定の最大数まで対応することができ、論理ユニット識別子のHBAを通知することができる。ターゲットデバイスは、幾つかの実施形態において単一のLUN(例えばLUNは、全ディスク又はディスクアレイでも提示することができる)を含む。ターゲットデバイス識別子やLUN識別子などのSCSIデバイス構成情報は、HBAによってディスクドライバレイヤ114にわたされる。I/O要求を出す場合、ディスクドライバレイヤ114は、上述の階層SCSIアドレスを利用することができる。
LUNにアクセスする場合、ディスクドライバレイヤ114は、LUN内の幾つかの特定の位置でOS特定メタデータを見ることが期待できる。例えば、多くのオペレーティングシステムにおいて、ディスクドライバレイヤ114は、論理パーティショニングの実行(すなわち、物理ディスク内のスペースを各々がより小さなファイルシステムのために使用することができるパーティションに細分する)を担う。パーティションのレイアウト(例えばLUN内のパーティションの開始ブロックオフセット、及びパーティションの長さ)を記述するメタデータは、オペレーティングシステム依存フォーマットで格納され、かつLUN内のヘッダ又はトレーラなどのオペレーティングシステム依存位置に格納される。Sun MicrosystemsのSolaris(商標)オペレーティングシステムでは、例えば、バーチャルテーブルオブコンテンツ(VTOC)構造を、ディスクボリュームの第1パーティションに配置し、又、VTOCのコピーを、ボリュームの最後の2つのシリンダーに配置する。更に、オペレーティングシステムメタデータは、シリンダーアラインメント及び/又はシリンダーサイズ情報を含み、ボリュームがブート可能である場合はブートコードをも含む。Microsoft Windows(登録商標)の種々のバージョン用のオペレーティングシステムメタデータは、「マジック番号」(オペレーティングシステムが通常ディスクの開始点又は開始点近傍で見つけることが期待される特別な1つ又は複数の番号又は複数の番号)、サブディスクレイアウト情報などを含む。ディスクドライバレイヤ114が、期待される位置と期待されるフォーマットでメタデータを見つけない場合、ディスクドライバレイヤは、LUNでI/Oオペレーションを実行することができない。
比較的単純な従来のストレージソフトウェアスタック140Aは、高度ストレージ機能の提供を促進するために長期にわたり機能強化されてきたが、最も重要なことは、ブロック仮想化レイヤを導入することによるものである。一般に、ブロック仮想化とは、1つ又はそれ以上の下層の物理又は仮想ブロックデバイスから論理又は仮想ブロックデバイスを作成し、又は集め、ストレージオペレーションのために仮想ブロックデバイスをブロックデバイス消費者にアクセス可能にするプロセスを意味する。例えば、ブロック仮想化の1つの実施形態では、複数の物理ブロックデバイス内(例えばファイバーチャネルストレージエリアネットワーク(SAN)内)のストレージを集めて、以下により詳細に説明するように、仮想LUN(VLUN)などの単一の仮想ストレージデバイスとしてホストに提示する。別の実施形態では、ソフトウェアの1つ又はそれ以上のレイヤは、ディスクなどの1つ又はそれ以上のブロックデバイスからブロックを再配列させ、様々な種類の機能を追加することができる。次いで、結果として得られる再配列されたブロックの集まりは、アプリケーション又はファイルシステムなどのストレージ消費者に対して1つ又はそれ以上の基本ディスクドライブの外観を備えた1つ又はそれ以上の集合デバイスとして提示される。すなわち、ブロックを再配列して機能を追加することにより得られるより複雑な構造は、ブロックの1つ又はそれ以上の簡単なアレイ、或いは論理ブロックデバイスが存在するように提示される。幾つかの実施形態では、複数のレイヤの仮想化を実装することができる。このような実施形態では、1つ又はそれ以上のブロックデバイスは、特定の仮想化されたブロックデバイスにマップされ、次いで、これを更に別の仮想化されたブロックデバイスにマップされ、複雑なストレージ機能を簡単なブロックデバイスで実装できる。本明細書で使用される用語「論理ボリューム」とは、ブロックデバイスを直接使用することのできるファイルシステム、データベース、又は他のアプリケーションによって使用するために直接提示可能な仮想化ブロックデバイスを意味する。ブロック仮想化、及び該ブロック仮想化によってサポートされる高度ストレージ機能に関する更なる詳細を以下に示す。
ブロック仮想化は、ストレージスタックと関連するストレージ環境内の種々の場所でハードウェアとソフトウェアの両方で実装することができる。例えば、VERITAS Software CorporationのVERITAS Volume Manager(商標)などのボリュームマネージャーの形式でのブロック仮想化レイヤは、ディスクドライバレイヤ114とファイルシステムレイヤ112の間に付加することができる。幾つかのストレージ環境で、仮想化機能は、ホストバスアダプタ、すなわち相互接続部依存I/Oドライバレイヤ116と相互接続部113との間のレイヤ内に付加することができる。ブロック仮想化はまた、ホスト110の外側で、例えば、相互接続部130の一部を形成することができる仮想化アプライアンス又は仮想化スイッチにおいて実施することができる。ブロック仮想化を提供するこのような外部デバイス(すなわち、ホスト110内に組み込まれていないデバイス)は、オフホストバーチャライザー又はオフホスト仮想化コントローラと呼ばれる。幾つかのストレージ環境において、ブロック仮想化機能は、ホストベースのバーチャライザーと連動するオフホストバーチャライザーによって実装することができる。すなわち、あるブロック仮想化機能は、オフホストで実装することができ、他のブロック仮想化機能ではホストで実装することができる。別の実施形態では、2つ又はそれ以上の仮想化スイッチ、2つ又はそれ以上の仮想化アプライアンス、又は仮想化スイッチと仮想化アプライアンスの組合せなどのホスト110に外付けの複数のデバイスは、ブロック仮想化機能を提供するよう協調することができ、すなわちオフホストバーチャライザーは複数の協調デバイスを含むことができる。
追加レイヤをストレージソフトウェアスタック140Aに付加することができるが、オペレーティングシステムの既存のストレージソフトウェアレイヤを取り除き、或いは完全にバイパスすることは一般に困難である。従って、オフホストバーチャライザーは通常、オペレーティングシステムに提示されるストレージデバイスが物理的ではなく仮想であり、ローカルではなくリモートである場合でも、既存のストレージソフトウェアレイヤが動作を継続できるように実装される。例えば、ディスクドライバレイヤ114は、I/Oオペレーションを実行する場合にSCSI LUNを処理することが期待されるので、オフホストバーチャライザーは、仮想LUNとしてディスクドライバレイヤに仮想化されたストレージデバイスを提示する。すなわち、以下に更に詳細に説明されるように、オンオフホストバーチャライザーは、仮想化されたストレージデバイスにホスト110がアクセスする場合にLUNをカプセル化し、又はLUNのメタデータをエミュレートする。加えて、以下に更に説明されるように、1つ又はそれ以上のソフトウェアモジュール又はレイヤは、仮想LUNを使用して仮想化の付加的な形式をサポートするためにストレージスタック140Aに付加する。
図1bは、オフホストブロック仮想化を利用するように構成されたシステム100の実施形態を示すブロック図である。図示のように、本システムは、ホスト110を物理ブロックデバイス120にリンクする相互接続部130内に含めることができる仮想化スイッチ又は仮想化アプライアンスなどのオフホストバーチャライザー180を含む。ホスト110は、ディスクドライバレイヤ114とファイルシステムレイヤ112との間に中間ドライバレイヤ113を含む拡張ストレージソフトウェアスタック140Bを含む。1つの実施形態では、オフホストバーチャライザー180は、物理ブロックデバイス120、又は複数の物理ブロックデバイス120内のストレージを仮想ストレージデバイス(例えば仮想LUN又はVLUN)にマップし、仮想ストレージデバイスをホスト110に提示するように構成される。
仮想LUNにマップされるバックエンド物理ブロックデバイス120を、以下の説明では「物理LUN(PLUN)」と呼ぶ場合もある。1つの実施形態において、オフホストバーチャライザー180は、どのような仮想化も付加することなく(すなわち論理ボリュームを作成することなく)、バックエンド物理LUNからのストレージをVLUNに直接マップするように構成される。PLUNからVLUNへのこのようなマッピングのこうした技術は、以下の説明では「PLUNトンネリング」と呼ぶことがある。別の実施形態では、オフホストバーチャライザー180は、1つ又はそれ以上の論理ボリュームとして1つ又はそれ以上の物理ブロックデバイス120内のストレージを集め、その論理ボリュームをホスト110に提示されたVLUNのアドレススペース内にマップするように構成される。本明細書で用いる用語「ボリュームトンネリング」又は「論理ボリュームトンネリング」は、VLUNを介して論理ボリュームをマップする技術を意味する。オフホストバーチャライザー180は更に、トンネルされた論理ボリュームでのメタデータ又は構成情報を中間ドライバレイヤ130に提供するように構成され、中間ドライバレイヤ130がファイルシステムレイヤ112又は他のアプリケーションなどのクライアントに代わって仮想LUN内に位置付けられた論理ボリューム上に位置付けられて、I/Oオペレーションを実行する。幾つかの実施形態では、シンボリックリンクなどのエイリアシング技術を用いて、トンネルされた論理ボリュームに名称を関連付けることができ、ファイルシステム、アプリケーション、システム管理者は、従来の又は望ましいネーミング方式を使用してトンネルされた論理ボリュームを参照することができる。1つの実施形態では、名称の選択は、例えば拡張SCSIモードページを使用して、或いは1つ又はそれ以上の追加のデバイス及び/又はホストを含む外部仮想化マネージメントインフラストラクチャを介して、ホスト110とオフホストバーチャライザー180との間で調整される。中間ドライバレイヤ113とストレージスタック140Bの下側レイヤを利用するように構成されたファイルシステムレイヤ112とアプリケーション(データベースマネージメントシステムなどの)は、本明細書では「仮想ストレージクライアント」又は「仮想ストレージ消費者」と呼ばれることがある。オフホストバーチャライザー180は、図1bに示された実施形態では相互接続部130内に図示されているが、他の実施形態ではオフホスト仮想化は、物理ブロックデバイス120内(例えば物理ストレージレイヤ124とファームウェアレイヤ122との間の仮想化レイヤによって)に、或いは、相互接続部130の外側の別のデバイスに設けることができる点に留意されたい。以下に更に詳細に説明されるように、幾つかの実施形態では、別々に構成可能な幾つかの相互接続部が、オフホストバーチャライザー180をホスト110やバックエンドストレージデバイス120にリンクするために用いることができ、例えば、1つ又はそれ以上のフロントエンド相互接続部130又はストレージエリアネットワーク(SAN)構造は、オフホストバーチャライザー180をホスト110にリンクすることができ、他方、1つ又はそれ以上のバックエンド相互接続130は、オフホストバーチャライザーをバックエンドストレージデバイスにリンクする。
上述のように、幾つかの実施形態では、ディスクドライバレイヤ114は、あるオペレーティングシステム特定メタデータがオペレーティングシステム特定位置又はLUN内のオフセットに提示されるのを期待することができる。従って、仮想LUNをホスト110に提示する場合、このような実施形態ではオフホストバーチャライザー180は、期待位置に期待メタデータを論理的に挿入する。図2aは、1つの実施形態によるソースボリューム205をカプセル化する仮想LUN210に対するオペレーティングシステム固有のメタデータの付加を示すブロック図である。図示のように、ソースボリューム205は、0から(N−1)まで番号が付与されたN個のブロックから構成される。仮想LUN210は、挿入されたメタデータの2つの領域、すなわちメタデータのHブロックを収容するヘッダ215と、メタデータのTブロックを含むトレーラ225とを含む。ヘッダ215とトレーラ225との間で、仮想LUN210のブロック220がソースボリューム205にマップされ、これによって仮想LUN210を合計(H+N+T)のブロック長さにする(すなわち、仮想LUNは、0から(H+N+T−1)まで番号が付与されたブロックを含む)。ヘッダ215及び/又はトレーラ225に含まれるオペレーティングシステム固有のメタデータは、アドレス指定可能なストレージデバイスとして仮想LUN210を識別するためにディスクドライバレイヤ114が使用する。本明細書で使用される「アドレス指定可能なストレージデバイス」とは、デバイス識別子(論理ユニット識別子など)とデバイス内のオフセットとを含むアドレスを使用してブロックにアクセスできる(例えばディスクドライバなどのデバイスドライバから)ストレージデバイスである。幾つかの実施形態では、付加的な構成情報又は論理ボリュームメタデータを、ヘッダ215及び/又はトレーラ225内に含めることができる。ヘッダ215とトレーラ225の長さ、及びメタデータのフォーマットとコンテンツは、ホスト110で使用中のオペレーティングシステムに応じて変わることがある。幾つかの実施形態では、メタデータは、ヘッダとトレーラの両方ではなくヘッダ215だけ、又はトレーラ225だけを必要とする場合があり、他の実施形態では、メタデータは、LUN内のいずれかの任意のオフセットで格納することができる点に留意されたい。
オフホストバーチャライザー180は、ホスト110で使用中のオペレーティングシステムの固有の要件に基づいて生成されたオペレーティングシステムメタデータ(例えばヘッダ215及び/又はトレーラ225において)をカスタマイズするよう構成される。種々のオペレーティングシステムによって課される要件は、メタデータに含まれる情報のタイプ(例えばメタデータがパーティションテーブルを含むかどうか)、情報が保持されるフォーマット(例えばパーティション又はボリュームサイズがキロバイト又は512バイトブロックなどで指定されるユニット、オフセットが十六進数又は十進数などで表されるかどうか)、メタデータが見つけられるLUN内の位置などで異なる。幾つかの実施形態では、要件は、ホスト110からオフホストバーチャライザー180に送られる。例えば、1つの実施形態において、仮想化マネージメントインフラストラクチャは、1つ又はそれ以上のデバイス及び/又は追加ホストを使用して(すなわちホスト110やオフホストバーチャライザー180以外のデバイス及び/又はホストを使用して)実装される。仮想化マネージメントインフラストラクチャのデバイス又はホストは、ホスト110と通信し、ホスト110からオペレーティングシステムのメタデータ要件を取得し、更にその要件をオフホストバーチャライザー180に供給するように構成される。別の実施形態では、ホスト110は、例えばストレージコマンドの拡張機構(拡張SCSI要求など)を使用してオフホストバーチャライザーにオペレーティングシステム要件を供給するように構成される。ストレージコマンド及び/又は拡張機構は、幾つかの実施形態ではベンダー固有のものとすることができる(すなわち、ストレージコマンドは種々のハードウェアストレージベンダーのために種々の方法で拡張させることが必要になる場合がある)。1つの実施形態では、ホスト110で使用中のオペレーティングシステムの識別情報(例えばオペレーティングシステム名やバージョン番号)だけをオフホストバーチャライザー180に提供することができ、オフホストバーチャライザーは、オペレーティングシステム識別情報(例えば、オフホストバーチャライザー180で保持されているデータベースから又は外部データベースから)を使用してオペレーティングシステム要件の詳細を取得するように構成される。ホスト110のためのオペレーティングシステム識別情報及び/又はメタデータ要件を、幾つかの実施形態では、例えば、グラフィカルユーザーインターフェース又はコマンドラインインターフェースを使用してシステム管理者によって手動でオフホストバーチャライザー180に指定することができる。幾つかの実施形態では、複数のオペレーティングシステムによって共用される共通のメタデータフォーマットを使用することができる。
仮想LUN210内に挿入されたメタデータは、例えば、幾つかの実施形態では物理ブロックデバイス120の幾つかのブロック内、或いはオフホストバーチャライザー180内のストレージデバイスにある持続的ストレージ内に格納され、更に、マップされたブロック220と論理的に連結される。他の実施形態では、メタデータは、非持続的ストレージ内(例えばオフホストバーチャライザー180にあるメモリ内)に保持され、及び/又はホスト110が仮想LUN210にアクセスするときは常に動的に生成される。幾つかの実施形態では、メタデータは、オフホストバーチャライザー180以外の外部エージェントによって生成される。外部エージェントは、オフホストバーチャライザー180が開発されたときには既知ではなかった可能性のあるオペレーティングシステムを含む、種々のオペレーティングシステムのための種々のフォーマットでメタデータをエミュレートする。1つの実施形態では、オフホストバーチャライザー180は、1つよりも多いオペレーティングシステムをサポートするように構成され、すなわち、オフホストバーチャライザーは、仮想LUN210をホスト110に提示するときに幾つかの異なるオペレーティングシステムのいずれか1つに対応するメタデータブロックを論理的に挿入し、これにより種々のオペレーティングシステムを備えたホストが、特定のストレージデバイス120へのアクセスを共用することができる。
前述のように、幾つかの実施形態では、オフホストバーチャライザー180は、パーティションレイアウト情報を含むオペレーティングシステムメタデータを生成するように構成される。図2bは、オフホストバーチャライザー180が生成されたオペレーティングシステムメタデータヘッダ215内にパーティションテーブル255を含むように構成された場合の1つの実施形態を示すブロック図である。パーティションテーブル255は、物理ストレージデバイス250の論理パーティションにマップされたブロックを位置付けることができるVLUN210内でオフセットを記述するレイアウト又はマッピング情報を提供する。図示された実施形態では、レイアウトテーブルは、物理ストレージデバイス250のパーティション1、パーティション2、パーティション3にそれぞれ対応する3つのエントリを含む。
オフホストバーチャライザーはまた、幾つかの実施形態において1つ又はそれ以上の論理ボリュームを仮想LUNのアドレススペースにマップするように構成される。図2cは、オフホストバーチャライザー180が物理ストレージデバイス250A、250B内のストレージを論理ボリューム260に集め、該論理ボリューム260を仮想LUN210のブロック261にマップするように構成される実施形態を示すブロック図である。上述のようにオペレーティングシステムメタデータを生成することに加えて、オフホストバーチャライザー180は、このような実施形態において論理ボリュームに対し固有のメタデータを生成するように構成される。このような論理ボリュームメタデータ263は、中間ドライバレイヤ113に論理ボリューム260上でI/Oオペレーションを実行することができる情報(開始オフセット、ボリューム長、ミラーの数のような仮想化レイヤ情報など)を含む。1つの実施形態において、論理ボリュームメタデータは、ヘッダ215又はトレーラ225内に含まれ、すなわち、中間ドライバ113が使用するためのものである論理ボリュームメタデータは、ディスクドライバレイヤ114によって使用されるためのものであるオペレーティングシステムメタデータと同一場所に配置できる点に留意されたい。図2cに示される論理ボリューム260は、2つの物理ストレージデバイス250A、250Bによって戻されるが、一般にどのような数の物理ストレージデバイス250からのストレージ(単一の物理ストレージデバイスからのストレージを含む)も、論理ボリューム260に集めることができる。
図3は、複数の仮想LUN(VLUN)210を作成するように構成されたオフホストバーチャライザー180を含む実施形態を示すブロック図である。図示された実施形態では、ホスト110A、110B、110C(集合的にホスト110)は、相互接続部130Aを介してオフホストバーチャライザー180に結合され、オフホストバーチャライザー180は、相互接続部130Bを介してストレージデバイス340A、340B、340C(集合的にストレージデバイス340)に結合される。ストレージデバイス340は、物理ブロックデバイス120と仮想ブロックデバイスを(例えば以下に説明されるような仮想化の複数のレイヤを用いる実施形態において)含む。ホスト110A、110Bは、オペレーティングシステムAを利用することができ、ホスト110Cは、オペレーティングシステムBを利用することができ、すなわち、一般にホスト110の各ホストは、幾つかのオペレーティングシステムのいずれかをサポートすることができる。図示のように、オフホストバーチャライザー180は、幾つかのVLUN210A−210Eのメタデータを生成するように構成される。VLUN210Aは、ホスト110Aに割り当てられる(すなわち、VLUN210Aに生成されたオペレーティングシステムメタデータは、ホスト110Aにアクセス可能とすることができ、ホスト110Aがアドレス指定可能なストレージデバイスとしてVLUN210Aの存在を検出することができる)。VLUN210Bは、ホスト110Bに割り当てられ、VLUN210C、210D、210Eは全て、ホスト110Cに割り当てられる。ストレージデバイス340A内のストレージは、図3の点線の矢印で示されるようにVLUN210AとVLUN210Eの両方にマップされる。従って、種々のオペレーティングシステムを備えた2つ又はそれ以上のホストの各々(例えばホスト110A及びホスト110C)は、図示された実施形態において種々のVLUN(例えば210A、210E)を使用して同じストレージデバイス(例えば340A)にアクセスすることができる。一般に、オフホストバーチャライザー180は、いずれかの要求されるVLUN210の総数をサポートし、いずれかの要求されるVLUNを所与のホストに割り当て、更にストレージデバイス340のいずれかの要求される組合せから所与のVLUNにストレージをマップするように構成される。幾つかのオペレーティングシステムは、ホスト110に見えるLUN(又はVLUN)の総数、及び/又は所与のLUN又はVLUNのサイズに制限を加えることができ、更に、オフホストバーチャライザーは幾つかの実施形態においてこのような制限に従うように構成される点に留意されたい。
図4は、上述のようにオペレーティングシステムメタデータを生成するように構成されたホスト110とオフホストバーチャライザー180のオペレーションの態様を示すフロー図である。オフホストバーチャライザー180は、例えば拡張SCSIコマンドなどの上述の技術の1つを使用して、ホスト110からオペレーティングシステムメタデータ要件を受け取るように構成される(ブロック410)。次いで、オフホストバーチャライザー180は、その要件に従ってVLUN210のような仮想ストレージデバイスのオペレーティングシステムメタデータを生成することができ(ブロック420)、そのオペレーティングシステムメタデータをホスト110にアクセス可能にする(ブロック430)。メタデータは、幾つかの実施形態において相互接続部130Aを通じてオフホストバーチャライザー180によって送られたメッセージを介してホスト110にアクセス可能にされる。他の実施形態では、ホスト110Aは、ホスト110に割り当てられたVLUN上の情報を要求するオフホストバーチャライザー180への問合せを送るように構成され、メタデータは、その問合せに応答して提供することができる。ホスト110でのストレージソフトウェアスタックの第1レイヤ(例えばディスクドライバレイヤ114)は、メタデータを使用してアドレス指定可能なストレージデバイスとして仮想ストレージデバイスの存在を検出するように構成される(ブロック440)。幾つかの実施形態では、例えばストレージ環境におけるホスト110の全てが同じオペレーティングシステムを使用するように構成される場合、ブロック410に対応するオペレーションを省略することができ、すなわち、単一のオペレーティングシステムが全てのホスト110で使用中である同種環境においては、オペレーティングシステムの固有要件をオフホストバーチャライザー180に提供する必要はない場合がある点に留意されたい。
図5は、オフホストバーチャライザー180が、1つ又はそれ以上の物理ストレージデバイス内のストレージを論理ボリューム260に集め、その論理ボリュームをVLUN210にマップするように構成された実施形態を示すフロー図である。図4のように、オペレーティングシステムメタデータ要件は、オフホストバーチャライザー180によって受け取ることができ(ブロック510)、仮想ストレージデバイス又はVLUN210のオペレーティングシステムメタデータを、当該要件に従ってオフホストバーチャライザーにより生成することができる(ブロック520)。オフホストバーチャライザーは、1つ又はそれ以上の物理ストレージデバイス340内のストレージを論理ボリューム260に集め(ブロック530)、その論理ボリュームを仮想ストレージデバイス又はVLUNのアドレススペースにマップする(ブロック540)ように構成される。オペレーティングシステムメタデータや、論理ボリュームに固有の追加メタデータが、ホスト110に提供される(ブロック550)。ホストのソフトウェアストレージスタックの第1レイヤ(ディスクドライバレイヤ114など)は、オペレーティングシステムメタデータを使用して仮想ストレージデバイスの存在を検出するように構成され(ブロック560)、第2レイヤ(中間ドライバ113など)は、論理ボリュームメタデータを使用して、論理ボリューム260上でI/Oオペレーションにアクセスしこれを開始するように構成される(ブロック570)。
幾つかの実施形態では、上述されたPLUNトンネリングやボリュームトンネリングの基本技術は、PLUNの動的アソシエーション及び/又はVLUNを備えた論理ボリュームを可能にするよう拡張させることができる。論理ボリューム260などの論理ボリュームは通常、効率的に作成し動的に再構成される(例えば、成長又は収縮、ホスト110へのインポート又はホスト110からのエクスポート)が、LUN(すなわち物理及び/又は仮想LUN)上での同様の構成オペレーションは通常、かなり遅い可能性がある。幾つかの再構成オペレーションは、少なくとも部分的に非同期とすることができ、無制限の完了時間及び/又は曖昧な障害状態を有する可能性がある。多くのオペレーティングシステムにおいて、LUN再構成は、システムリブートした後でのみ完了させることができ、すなわち、例えば、新規に作成される物理又は仮想LUNは、リブートなしではオペレーティングシステムによって検出することはできない。従って、LUN再構成に関連する遅延や問題を回避しながら論理ボリュームを仮想LUNにフレキシブルにマップできるようにするためには、マップされていない仮想LUNを生成(すなわち、最初にいずれの物理LUN又は論理ボリュームにもマップされていない仮想LUNのためのオペレーティングシステムメタデータを生成する)し、このマップされていない仮想LUNを初期化プロセスの一部としてホスト110に事前に割り当てることが得策である。初期化プロセスは、アプリケーションの代わりに仮想LUN上でストレージオペレーションを実行する前に完了する。初期化プロセス(幾つかの実施形態ではシステムのリブートを含む)中、ソフトウェアストレージスタック140Bのレイヤは、アドレス指定可能なストレージデバイスとして仮想LUNの存在を検出するように構成される。初期化に続いて、オフホストバーチャライザー180は、以下により詳細に説明されるように、物理LUN及び/又は論理ボリュームを仮想LUNに動的にマップする(例えばオペレーティングシステムメタデータの一部を修正することによって)。本明細書で使用される用語「動的マッピング」とは、仮想ストレージデバイスが提示されるホスト110のリブートを必要とすることなく、1つ又はそれ以上のメタデータのブロックを修正することにより、及び/又は1つ又はそれ以上のメッセージを介してホスト110に伝達することによって実行される仮想ストレージデバイス(VLUNなど)のマッピングを意味する。
図6は、1つの実施形態によるマップされていない仮想LUN230の例を示すブロック図である。図示のように、マップされていない仮想LUN230は、オペレーティングシステムメタデータヘッダ215とオペレーティングシステムメタデータトレーラ225、さらにはマップされていないブロックの領域235を含む。幾つかの実施形態では、マップされていないブロック(図示された実施例のXブロック)の領域のサイズは、オペレーティングシステムによってサポートされる最大許容LUN又は最大論理ボリュームサイズに設定し、論理ボリューム又は物理LUNの仮想LUNへの後続の全てのマッピングが仮想LUNのサイズの拡張を必要としないようにすることができる。1つの別の実施形態では、マップされていない仮想LUNは、エミュレートされたメタデータ(例えばヘッダ215及び/又は225)だけから構成され、仮想LUNのサイズは、ボリューム又は物理LUNが動的にマップされる場合は大きくすることができる。このような実施形態では、ディスクドライバレイヤ114は、仮想LUNが拡張された場合にはその内部データ構造の一部を修正しなければならない場合があり、そのためには、エミュレートされたメタデータを再読み取りしなければならない場合もある。オフホストバーチャライザー180は、メタデータの再読み取りを開始するためにメタデータ変更通知メッセージをディスクドライバレイヤ114に送るよう構成される。
図7は、複数のマップされていない仮想LUN(VLUN)230を作成するよう構成されたオフホストバーチャライザー180を含む実施形態を示すブロック図である。図示のように、1つより多いマップされていないVLUNを、単一のホスト110に関連付けることができる。例えば、オフホストバーチャライザー180は、マップされていないVLUN230A、230Bをホスト110Aに割り当て、マップされていないVLUN230C、230D、230Eをホスト110Bに割り当てる。幾つかの実施形態では、複数のVLUNは、種々のアプリケーションに使用されるストレージの分離を可能にするため、或いはシステムでサポートされる最大許容LUNサイズを上回るストレージへのアクセスを可能にするために所与のホストと関連付けられる。オフホストバーチャライザー180は、ストレージデバイス340からの物理及び/又は仮想ストレージをマップされていない仮想LUN230に動的にマップするよう構成される。ホスト110A、110Bは、幾つかの実施形態において種々のオペレーティングシステムを使用するように構成され、他の実施形態では同じオペレーティングシステムを利用してもよい。物理又は仮想ストレージが動的にマップされた後で、これまでマップされていなかったVLUN230は、基本(すなわち非動的な)PLUNトンネリングと基本ボリュームトンネリングで提供されたVLUN210において既に説明されたものと同じ一般的機能を提供する。物理ストレージと論理ボリュームのVLUNへの動的マッピングの幾つかの種々の技術について以下に説明する。このような各技術(例えば2つのPLUNから単一のVLUNへのマッピング)は、幾つかの実施形態では基本PLUNトンネリング又は基本ボリュームトンネリングを使用して、すなわちホスト110に事前に割り当てられたマップされていないVLUNで開始することなく実装することができる点に留意されたい。
前述のように、オフホストバーチャライザー180によって生成されたオペレーティングシステム特定メタデータ(例えば図2bのヘッダ215及び/又はトレーラ225内の)により、ホスト110でのディスクドライバレイヤ114は、マップされていない仮想LUN230の存在をアドレス指定可能なストレージデバイスとして検出することができる。VLUN230がディスクドライバレイヤ114によって識別された後、VLUNアドレススペース内のいずれかのオフセットのブロックは、ディスクドライバレイヤ114、及び従ってディスクドライバレイヤの上にあるいずれかの他のレイヤによってアクセスされる。例えば、中間ドライバレイヤ113は、VLUN230内でエミュレートされたブロックの指定されたセットから読み取ることにより、及び/又はこれに書き込むことによりオフホストバーチャライザー180と通信するよう構成される。このような指定されたブロックは、幾つかの実施形態においてVLUN230にマップされた論理ボリューム又は物理LUNに関連する構成情報を中間ドライバレイヤ113に設けるためのオフホストバーチャライザー180のメカニズムを提供することができる。
1つの実施形態では、オフホストバーチャライザー180は、いずれかの追加の仮想化もなしに(すなわち、論理ボリュームを作成することなく)バックエンド物理LUNからのストレージをマップされていないVLUN230に動的に直接マップするように構成される。PLUNをVLUN230に動的にマッピングするこのような技術は、「動的PLUNトンネリング」と呼ばれる(マップされていないVLUNを使用することができない上述の基本PLUNトンネリングとは異なる)。各PLUNは、幾つかの実施形態において、対応するVLUN230にマップされる(すなわち、PLUNのVLUNへの1対1マッピングは、オフホストバーチャライザー180によって実現できる)。他の実施形態では、図8の説明と共に以下に説明されるように、複数のPLUNからのストレージは、所与のVLUN230のサブレンジにマップされる。一般に、基本及び動的PLUNトンネリングの両方により、オフホストバーチャライザー180がVLUN230(ホスト110に直接アクセス可能なストレージエンティティ)とバックエンドPLUNとの間の分離レイヤとして機能し、オフホストバーチャライザーがホストからの物理ストレージプロトコルインプリメンションに関する詳細を隠すことができる。1つの実施形態では、例えば、バックエンドPLUNは、ホスト100によって見られるバージョン(例えばSCSI−2)とは異なるストレージプロトコルのバージョン(例えばSCSI−3)を実装することができ、オフホストバーチャライザーは、2つのバージョン間のいずれかの要求される変換を提供することができる。別の実施形態では、オフホストバーチャライザー180は、バックエンドPLUNに対する協調アクセス制御メカニズムを実装するように構成され、該メカニズムの詳細は、ホスト110から隠されたままとすることができる。
更に、オフホストバーチャライザー180は、PLUNトンネリング(すなわち、基本PLUNトンネリング又は動的PLUNトンネリングのいずれか)を使用して共用するデータのレベルを増やすように構成される。ディスクアレイデバイスは、並行「ログイン」の総数、すなわち所与のディスクアレイデバイスにアクセスできるエンティティの総数に対し制限を課す場合が多い。ディスクアレイのためのPLUNトンネリングを用いるストレージ環境において(すなわち、PLUNがディスクアレイデバイスである場合)、オフホストバーチャライザー180によって複数のホストが単一のログインを介してディスクアレイにアクセスすることができる。すなわち、例えば、複数のホスト110を、オフホストバーチャライザー180にログインすることができ、オフホストバーチャライザーを、複数のホスト110の代わりに一度ディスクアレイPLUNにログインできる。次に、オフホストバーチャライザーは、単一のログインを使用して複数のホスト110からディスクアレイPLUNにI/O要求を中継することができる。ディスクアレイPLUNによって見られるようなログインの数(すなわち、ログインされた別個のエンティティ)は、これにより、ディスクアレイPLUNでターゲットされたI/Oオペレーションを開始するホスト110の数を低減させることなく、PLUNトンネリングの結果として低減させることができる。ログインカウント制約を備えた単一のディスクアレイPLUNでストレージにアクセスできるホスト110の総数をこれによって増やすことができ、従ってデータ共用の全体のレベルを高めることができる。
図8は、オフホストバーチャライザー180が、2つの異なる物理ストレージデバイス340A、340Bの中から単一のVLUN230Bに物理ストレージを動的にマップするように構成された実施形態を示すブロック図である。すなわち、オフホストバーチャライザー180は、デバイス340Aからの物理ストレージの第1範囲をVLUN230B内のマップされるブロックの第1領域821Aにマップし、デバイス340Bからの物理ストレージの第2範囲をVLUN230B内のマップされるブロックの第2領域821Bにマップするように構成される。物理ストレージの第1及び第2範囲は、ディスクアレイのようなそれぞれのPLUN、又はPLUNのそれぞれのサブセットを各々提示することができる。マップされるブロック821A、821Bが位置付けられるVLUN230B内のオフセットを示す構成情報は、オフホストバーチャライザー180によって種々の実施形態において種々のメカニズムを使用して中間ドライバレイヤ113に提供することができる。例えば、1つの実施形態では、オフホストバーチャライザー180は、VLUN230内のブロックの指定されたセットに構成情報を書き込むことができ、中間ドライバレイヤ113は、上述のようにブロックの指定されたセットを読み取るように構成される。別の実施形態では、オフホストバーチャライザー180は、直接(相互接続部350A又は別のネットワークを通じて)或いは中間協調サーバを介してのいずれかで構成情報を含むメッセージをホスト110Aに送ることができる。更に別の実施形態では、構成情報は、特別なSCSIモードページ内に供給することができる(すなわち、中間ドライバレイヤ113は、オフホストバーチャライザー180によって更新された構成情報を含む特別なSCSIモードページを読み取るように構成される)。これらの技術の組合せは、幾つかの実施形態で使用でき、例えば、1つの実施形態ではオフホストバーチャライザー180は、中間ドライバレイヤが構成情報を含む特別なSCSIモードページを読み取ることを要求するメッセージを中間ドライバレイヤ113に送ることができる。
図9は、オフホストバーチャライザー180が、単一の物理ストレージデバイス340A内からの物理ストレージを異なるホスト110A、110Bに割り当てられた2つのVLUN230に動的にマップするように構成された実施形態を示すブロック図である。図示のように、物理ストレージデバイス340Aの物理ストレージの第1範囲955Aは、ホスト110Aに割り当てられたVLUN230B内のマップされるブロックの第1範囲821Aにマップすることができる。同じ物理ストレージデバイス340Aの物理ストレージの第2範囲955Bは、ホスト110Bに割り当てられたVLUN230Eのマップされるブロックの第2範囲821Cにマップされる。更に、幾つかの実施形態では、オフホストバーチャライザー180は、ホスト110Bから物理ストレージ範囲955Aへの許可されていないアクセスを阻止し、更にホスト110Aから物理ストレージ955Bへの許可されていないアクセスを阻止するように構成される。従って、複数のホスト110から単一の物理ストレージデバイス340Aへのアクセスを可能にすることに加えて、オフホストバーチャライザー180はまた、例えば、指定されたセキュリティプロトコルに従って物理ストレージの各範囲955A、955Bに対するセキュリティを提供するように構成される。1つの実施形態では、例えば、セキュリティプロトコルは、単一のホスト110だけからの所与のVLUN230(及びそのバッキング物理ストレージ)へのI/Oオペレーションを可能にする。オフホストバーチャライザー180は、幾つかの実施形態では、ホスト110とVLUN230に対するアクセス権情報を保持するように構成され、他の実施形態では、ホストからのアクセスが許可される特定のVLUNを示すセキュリティトークンを各ホスト110に提供することができる。該セキュリティトークンを、I/O要求と共に含めることができる。
幾つかの実施形態では、オフホストバーチャライザー180は、物理ストレージを論理ボリュームに集め、該論理ボリュームをVLUN230内のアドレス範囲に動的にマップするように構成される。論理ボリュームをVLUN230に動的にマップするこのような技術は、「動的ボリュームトンネリング」と呼ぶことができる(マップされていないVLUNを使用することができない上述の基本ボリュームトンネリングとは異なる)。図10は、オフホストバーチャライザー180が物理ストレージデバイス340Aのストレージ1055Aを論理ボリューム1060Aに集め、該論理ボリューム1060AをVLUN230Bのブロックの範囲(図10においてマップされるボリューム1065Aとして示される)に動的にマップするよう構成される実施形態を示すブロック図である。PLUNトンネリングの場合のように、トンネルされる論理ボリューム1060Aに関連する構成情報又はメタデータは、拡張SCSIモードページ、VLUN230A内のエミュレートされた仮想ブロック、及び/又はオフホストバーチャライザー180からホスト110Aへの直接又は間接メッセージデントのような種々のメカニズムのいずれかを使用して中間ドライバレイヤ113に提供される。論理ボリューム1060Aは、図示の実施形態において単一の物理ストレージデバイス340Aの一部だけがバックされるように示されているが、他の実施形態では論理ボリューム1060Aは、単一の物理ストレージデバイス内の全ストレージから、或いは2つ又はそれ以上の物理デバイスのストレージから集めることができる。仮想化の複数のレイヤを用いる幾つかの実施形態では、論理ボリューム1060A自体は、物理ストレージデバイスから直接ではなく他の論理ストレージデバイスから集めることができる。1つの実施形態では、各ホスト110(すなわち、ホスト110Aに加えてホスト110B)は、別個のVLUNを介して論理ボリューム1060Aへのアクセスを可能にすることができ、別の実施形態では論理ボリュームの種々のセットを種々のホスト110に提示することができる。
図11は、オフホストバーチャライザー180が複数の論理ボリュームを単一のVLUN230に動的にマップするように構成される実施形態を示すブロック図である。図示のように、オフホストバーチャライザー180は、物理ストレージデバイス340Aからのストレージ範囲1155Cと物理ストレージデバイス340Bからの物理ストレージ範囲1155Bを論理ボリューム1160Aに集め、論理ボリューム1160AをVLUN230Bの第1のマップされるボリューム領域1165Aにマップするように構成される。更に、オフホストバーチャライザー180はまた、物理ストレージデバイス340Aからの物理ストレージ範囲1155Bを第2論理ボリューム1160Bに集め、論理ボリューム1160BをVLUN230Bの第2のマップされるボリューム領域1165Bにマップすることができる。一般に、オフホストバーチャライザー180は、1つ又はそれ以上の物理ストレージデバイス340からの物理ストレージブロックのいずれかの好適な選択を1つ又はそれ以上の論理ボリュームに集め、該論理ボリュームを事前生成されたマップされていないVLUN230の1つ又はそれ以上にマップすることができる。
図12は、オフホストバーチャライザー180が物理ストレージデバイス340Aからのストレージを論理ボリューム1260A、1260Bに集め、2つの論理ボリュームの各々を異なるVLUN230に動的にマップするように構成される別の実施形態を示すブロック図である。例えば図示のように、論理ボリューム1260Aは、ホスト110Aからアクセス可能なVLUN230B内の第1アドレス範囲にマップされ、他方、論理ボリューム1260Bは、ホスト110Bからアクセス可能なVLUN230E内の第2アドレス範囲にマップされる。オフホストバーチャライザー180は更に、PLUNトンネリングの上述のセキュリティプロトコルと同様に、許可されていないアクセス及び/又はデータ破損を防止するためのセキュリティプロトコルを実施するように構成される。オフホストバーチャライザー180は、論理ボリュームレベルでセキュリティプロトコルを実装することができ、すなわち、オフホストバーチャライザー180は、データが単一の物理ストレージデバイス340A内に格納されている論理ボリューム1260A(例えばホスト110Bから)と1260B(例えばホスト110Aから)に対しての許可されていないアクセスを阻止することができる。1つの実施形態では、オフホストバーチャライザー180は、各ホスト110がアクセスを認可されている論理ボリューム1260のアクセス権情報を保持するように構成される。他の実施形態では、ホストからのアクセスが許可される特定の論理ボリューム1260を示すセキュリティトークンは、各ホスト110(例えば、オフホストバーチャライザー180によって、又は外部セキュリティサーバによって)に提供され、該セキュリティトークンは、I/O要求と共に含められる。
多くのストレージ環境は、物理ストレージデバイスにアクセスするために、ファイバーチャネル構造のようなストレージエリアネットワーク(SAN)を利用する。スイッチ再構成、再ケーブリング、リブートなどを必要とする場合があるSAN構造再構成(例えば、要求されるPLUN又は論理ボリュームへのアクセスを事前に持たなかった特定のホストから特定のPLUN又は論理ボリュームへのアクセスを可能にするため)は、通常、かなり複雑でエラーを発生し易い。上述の動的PLUNトンネリングや動的ボリュームトンネリングの技術は、SAN再構成オペレーションの簡素化を可能にする。事前に生成されたマップされていないVLUNをホストに関連付けて、必要に応じてPLUNや論理ボリュームをVLUNに動的にマップすることによって、多くの再構成オペレーションは、スイッチでのマッピングテーブルの変更、及び中間ドライバレイヤ113による新しいメタデータの識別をだけを必要とすることになる。ストレージデバイスは、PLUNトンネリング及び/又はボリュームトンネリングを使用して、複数のホスト110全体にわたり更に容易に共用することができ、或いは1つのホストから別のホストへ論理的に転送することができる。例えば協調するストレージアロケータによって保持されるプールからのストレージの割り当て及び/又は提供も簡素化することができる。
SAN構成変更を簡素化することに加えて、PLUNトンネリングとボリュームトンネリングは、別々に構成されたストレージネットワーク全体のストレージ相互接続部(例えば、複数のファイバーチャネル構造全体の相互接続部)をサポートすることができる。図13は、複数のストレージネットワークを用いる実施形態を示すブロック図である。図示のように、オフホストバーチャライザー180は、第1ストレージネットワーク1310Aを介して物理ストレージデバイス340Aにアクセスし、第2ストレージネットワーク1310Bを介して物理ストレージデバイス340Bにアクセスするように構成される。オフホストバーチャライザー180は、物理ストレージデバイス340Aからのストレージを論理ボリューム1360Aに集め、論理ボリューム1360AをVLUN230Bにマップすることができる。同様に、オフホストバーチャライザー180は、物理ストレージデバイス340Bからのストレージを論理ボリューム1360Bに集め、論理ボリューム1360BをVLUN230Eにマップする。ホスト110Aは、第3ストレージネットワーク1310Cを介してVLUN230Aにアクセスし、第4ストレージネットワーク1310Dを介してVLUN230Bにアクセスするように構成される。
各ストレージネットワーク1310(すなわち、ストレージネットワーク1310A、1310B、1310C、又は1310D)は、別個に構成可能であり、すなわち、所与のストレージネットワーク1310内で実行される再構成オペレーションは、どのような他のストレージネットワーク1310にも影響を及ぼす可能性はない。同様に、所与のストレージネットワーク1310内の障害又は間違った構成も、どのような他の独立したストレージネットワーク1310にも影響を及ぼす可能性はない。幾つかの実施形態では、ホスト110は、複数のHBAを含み、各ホストは複数の独立したストレージネットワークにアクセスできる。例えば、ホスト110Aは、図13に示された実施形態において2つのHBAを含み、第1HBAがストレージネットワーク1310Cへアクセスでき、第2HBAがストレージネットワーク1310Dへアクセスできる。このような実施形態では、ホスト110Aは、構成分離の利点を維持しながらバックエンド物理ストレージデバイス340への十分な接続性を提供することができる。図13は、ボリュームトンネリングと共に複数の独立したストレージネットワークの使用を示しており、他の実施形態では複数の独立したストレージネットワークはまた、PLUNトンネリング、又はPLUNとボリュームトンネリングの組み合わせと共に使用することができる。更に、幾つかの実施形態において独立したストレージネットワーク1310の使用は非対称とすることができ、すなわち例えば、1つの実施形態では、複数の独立したストレージネットワーク1310は、フロントエンド接続(すなわち、オフホストバーチャライザー180とホスト110との間)に使用することができ、一方、単一のストレージネットワークだけでは、バックエンド接続(すなわち、オフホストバーチャライザー180と物理ストレージデバイス340との間)のために使用することができる。ファイバーチャネル、IPベースプロトコルなどのどのような要求される相互接続部技術及び/又はプロトコルを用いても、ストレージネットワーク1310を実装することができる。例えば1つの実施形態では、各ストレージネットワーク1310は、ファイバーチャネル構造とすることができる。別の実施形態では、第1ストレージネットワーク1310内で使用される相互接続部技術又はプロトコルは、第2ストレージネットワーク1310内で使用される相互接続部技術又はプロトコルとは異なるものとすることができる。
1つの実施形態では、ボリュームトンネリングはまた、最大LUNサイズ制限を克服できるようにすることができる。例えば、SCSIプロトコルは、LUNブロックアドレスとして32ビットの符号のない整数を使用するよう構成され、これによって単一のLUNでアクセスできるストレージの最大量を2テラバイト(512バイトブロックについて)又は32テラバイト(8キロバイトブロックについて)に制限する。ボリュームトンネリングによって、中間ドライバレイヤ113は単一のVLUNにマップされたボリュームとして複数の物理LUNからのストレージにアクセスすることができ、これにより最大LUNサイズの制限を克服することができる。図14は、オフホストバーチャライザー180が2つの物理ストレージデバイス340A、340Bからのストレージを単一の論理ボリューム1460Aに集めるように構成された実施形態を示すブロック図であり、ここでボリューム1460Aのサイズは、ストレージデバイス340で使用中のストレージプロトコルによってサポートされる許容最大LUNサイズを越える。オフホストバーチャライザー180は、論理ボリューム1460AをVLUN230Bに動的にマップし、論理ボリュームメタデータをホスト110Aで中間ドライバレイヤ113に提供するように更に構成される。論理ボリュームメタデータは、最大許容LUNサイズよりも大きなVLUN230B内のアドレススペースにアクセスするために中間ドライバレイヤ113用の十分な情報を含む。
図15は、1つの実施形態によるホスト110とオフホストバーチャライザー180の動作の態様を示すフロー図であり、ここでオフホストバーチャライザー180は、動的PLUNトンネリングをサポートするように構成されている。オペレーティングシステムメタデータ要件を受け取った(ブロック1505)後で、オフホストバーチャライザー180は、マップされていない仮想ストレージデバイス(例えばVLUN)のためのオペレーティングシステムメタデータを生成し(ブロック1510)、更に該メタデータをホスト110がアクセスできる(ブロック1515)ように構成される。図1bのディスクドライバレイヤ114のようなホスト110でのストレージソフトウェアスタックの第1レイヤは、OSメタデータを使用して、例えばシステム初期化又はブート中にアドレス指定可能なストレージデバイスとして(例えばLUNとして)仮想ストレージデバイスの存在を検出する(ブロック1520)ように構成される。マップされていない仮想ストレージデバイスが検出された後で、オフホストバーチャライザー180は、1つ又はそれ以上のバックエンド物理ストレージデバイス340(例えばPLUN)からの物理ストレージを仮想ストレージデバイス内のアドレス範囲に動的にマップする(ブロック1525)ように構成される。
図16は、オフホストバーチャライザー180が動的ボリュームトンネリングをサポートするように構成されている1つの実施形態によるホスト110とオフホストバーチャライザー180のオペレーションの態様を示すフロー図である。図16に示された最初の3つのブロックは、図15に示された最初の3つのブロックと類似の機能を表している。すなわち、オフホストバーチャライザー180は、オペレーティングシステムメタデータ要件を受け取り(ブロック1605)、マップされていない仮想ストレージデバイス(例えばVLUN)に対するオペレーティングシステムメタデータを生成し(ブロック1610)、更にそのメタデータをホスト110がアクセスできる(ブロック1615)ように構成される。図1bのディスクドライバレイヤ114などのストレージソフトウェアスタックの第1レイヤは、OSメタデータを使用して、例えばシステム初期化又はブート中にアドレス指定可能なストレージデバイスとして(例えばLUNとして)仮想ストレージデバイスの存在を検出する(ブロック1620)ように構成される。更に、オフホストバーチャライザー180は、1つの又は物理ストレージデバイス340にあるストレージを論理ボリュームに集め(ブロック1625)、更にその論理ボリュームをこれまでにマップされていない仮想ストレージデバイス内のアドレス範囲に動的にマップする(ブロック1630)ように構成される。オフホストバーチャライザー180は更に、論理ボリュームメタデータをホスト110でのストレージソフトウェアスタックの第2レイヤ(例えば中間ドライバレイヤ113)に提供する(ブロック1635)ように構成され、これによって第2レイヤは、論理ボリュームのブロックを位置付け、論理ボリューム上で要求されるI/Oオペレーションを実行することができる(ブロック1640)。
種々の実施形態では、オフホストバーチャライザー180は、ブロック仮想化を使用して多くの種々のタイプのストレージ機能を実現することができる。例えば1つの実施形態では、論理ボリュームなどの仮想ブロックデバイスはデバイス・ストライピングを実装する。デバイス・ストライピングは、データブロックが複数の物理又は論理ブロックデバイス、及び又はデバイス・スパンニングに分散され、デバイス・スパンニングにおいて複数の物理又は論理ブロックデバイスをジョントして単一の大きな論理ブロックデバイスとして見えるようにする。幾つかの実施形態では、仮想化されたブロックデバイスは、冗長データストレージのミラーリング及び他の形式、ある時点での特定のブロックデバイスのスナップショット又は背景画像を作成する機能、及び/又は例えば、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)などのネットワークを介して接続されたストレージシステム間でデータブロックを複製する機能を提供することができる。更に幾つかの実施形態では、仮想化されたブロックデバイスは、負荷分散などの幾つかの性能最適化、及び/又はデバイス間のオンラインデータ移行などの仮想デバイス構造のオンライン再編成のための種々の機能を実現することができる。他の実施形態では、1つ又はそれ以上のブロックデバイスが、特定の仮想化されたブロックデバイスにマップされ、次いで該特定の仮想化されたブロックデバイスが更に別の仮想化されたブロックデバイスにマップされ、これにより複雑なストレージ機能を簡単なブロックデバイスで実装することが可能となる。従って、ストライピングやミラーリングなどの1つよりも多い仮想化機能は、幾つかの実施形態では単一の仮想ブロックデバイス内で組み合わせて、論理階層仮想ストレージデバイスを作成することができる。
オフホストバーチャライザー180の単独、又はホスト110のボリュームマネージャーなどの1つ又はそれ以上の他のバーチャライザーとの連携、或いは他のオフホストバーチャライザーは、仮想化されたブロックデバイスの構成マネージメントとブロックデバイス仮想化の分散された協調などの機能を提供することができる。例えば、2つのホスト110によって共用される論理ボリュームの再構成後(例えば、論理ボリュームが拡張される場合、或いは新しいミラーが論理ボリュームに付加される場合)、オフホストバーチャライザー180は、2つのホスト110に再構成を指示するメタデータ又はボリューム記述を分配するように構成される。1つの実施形態では、ボリューム記述がホストに提供されると、ホストのストレージスタックが、ボリューム記述に従って(すなわち、ボリューム記述を使用して論理I/O要求を物理I/O要求に変換するために)種々のストレージデバイス340と直接対話するよう構成される。ホスト110などの1つ又はそれ以上の仮想デバイスクライアントへのボリュームとして仮想化されたブロックデバイスの分散は、分散型ブロック仮想化と呼ぶことができる。
前述のように、幾つかの実施形態では、仮想化の複数のレイヤは、例えばホストレベルや仮想化スイッチ又は仮想化アプライアンスのようなオフホストレベルで利用することができる。このような実施形態では、仮想化の幾つかの態様は、ファイルシステムレイヤ112のような仮想デバイス消費者にとって見ることができ、他の態様では、オフホストレベルによって透過的に実装される。更に、幾つかのマルチレイヤの実施形態では、1つのブロックデバイス(例えば1つのボリューム)の仮想化の詳細は、仮想デバイス消費者に(すなわち、オフホストレベルで更に仮想化することなく)十分に定義することができ、別のブロックデバイス(例えば別のボリューム)の仮想化詳細は、仮想デバイス消費者に部分的に又は完全に透過的にすることができる。
幾つかの実施形態では、オフホストバーチャライザー180のようなバーチャライザーは、システム内に存在するホスト110のような各仮想デバイスクライアントに対して全ての定義された論理ボリュームを分散するように構成される。このような実施形態は、対称的分散ブロック仮想化システムと呼ぶことができる。他の実施形態では、特定のボリュームは、少なくとも1つのボリュームが2つの仮想デバイス消費者に共通でないようにそれぞれの仮想デバイス消費者又はホストに対してだけ分散することができる。このような実施形態は、非対称的分散ブロック仮想化システムと呼ぶことができる。
オフホストバーチャライザー180は、ホスト110に外部にある、上述されたPLUNとボリュームトンネリングを含む仮想化機能を提供できるいずれかのタイプのデバイスとすることができる点に留意されたい。例えば、オフホストバーチャライザー180は、仮想化スイッチ、仮想化アプライアンス、ブロック仮想化を専門に供給する特別な追加ホスト、或いは特定用途向け集積回路(ASIC)又はフィールド・プログラマブル・ゲート・アレイ(FPGA)技術を使用してブロック仮想化機能を実行するよう構成された組込みシステムを含む。図17は、オフホストバーチャライザー180が仮想化スイッチ1710を含む実施形態を示すブロック図であり、図18は、オフホストバーチャライザー180が仮想化アプライアンス1810を含む別の実施形態を示すブロック図である。仮想化スイッチ1710は、ファイバーチャネル接続性を提供することに加えて、仮想化機能を実行するのに十分な処理能力を備えて構成されたインテリジェントファイバーチャネルスイッチとすることができる。仮想化アプライアンス1810は、ミラーリング、ストライピング、スナップショット、その他の同様のものなどの仮想化機能を提供するようプログラムされたインテリジェントデバイスとすることができる。アプライアンスは、該アプライアンスが専用とされ、ベンダーによって事前インストールされ、更にユーザーによって容易に修正可能ではない機能(仮想化のような)向けにアプライアンスソフトウェアが通常カスタマイズされる汎用コンピュータとは異なる可能性がある。幾つかの実施形態では、オフホストブロック仮想化は、単一のデバイスではなく2つ又はそれ以上の仮想化スイッチのような協調デバイスの集まりによって提供することができる。このような協調デバイスの集まりは、フェイルオーバーのために構成される、すなわちスタンバイ協調デバイスは、失敗した協調デバイスによってサポートされる仮想化機能を引き継ぐように構成される。オフホストバーチャライザー180は、1つ又はそれ以上のプロセッサ、並びに揮発性及び/又は不揮発性メモリを組み込むことができる。幾つかの実施形態では、仮想化に関連する構成情報は、オフホストバーチャライザー180とは別のデータベースに保持することができ、ネットワークを通じてオフホストバーチャライザーによってアクセスすることができる。1つの実施形態では、オフホストバーチャライザーは、プログラム可能及び/又は構成可能にできる。オフホストバーチャライザー180の多数の他の構成も可能であり企図される。
図19は、1つの実施形態による例示的なホスト110を示すブロック図である。ホスト110は、1つ又はそれ以上のプロセッサ1910及び1つ又はそれ以上のメモリ1920を含むサーバなどのいずれかのコンピュータシステムとすることができ、上述のストレージソフトウェアスタック140Bをサポートすることができる。図示のように、ホスト110は、1つ又はそれ以上のローカルストレージデバイス1930(ディスクのような)や、相互接続部130にインターフェースを提供する1つ又はそれ以上のネットワークインターフェース1940を含む。ストレージソフトウェアスタック140Bの一部はメモリ1920内に存在し、必要に応じてストレージデバイス1930からメモリ1920にロードすることができる。幾つかの実施形態では、ホスト110はまた、ローカルストレージデバイス1930を使用する代わりにリモート位置からストレージにアクセスするよう構成されたディスクレスコンピュータとすることができる。ビデオカード、モニター、マウスなどの種々の他の構成要素はまた、種々の実施形態においてホスト110内に含めることができる。Microsoft Windows(商標)の種々のバージョン、Sun Microsystems製のSolaris(商標)、Linuxの種々のバージョン、UNIX(登録商標)に基づく他のオペレーティングシステム、及び同様のものを含むいずれかの要求されるオペレーティングシステムをホスト110で使用することができる。中間ドライバレイヤ113は、幾つかの実施形態でボリュームマネージャーの中に含む。
図20は、上述されたオフホストバーチャライザー180とブロックストレージソフトウェアスタック140Bの機能を提供できる仮想化ソフトウェア2010を含むコンピュータアクセス可能媒体2000を示すブロック図である。仮想化ソフトウェア2010は、電子媒体(例えばフラッシュメモリ)、RAMなどの磁気媒体(例えばSDRAM、RDRAM、SRAMなど)、CD−ROMなどの光ストレージ媒体だけでなく、ネットワーク及び/又は無線リンクのような通信媒体を介して伝達される電子、電磁、又はデジタル信号のような送信媒体又は信号を含む種々のコンピュータアクセス可能媒体を使用するコンピュータシステムに提供することができる。
上記の実施形態をかなり詳細に説明してきたが、多くの変形形態及び修正は、上記の開示が十分理解されると当業者には明らかになるであろう。添付の請求項は、全てのこのような変形形態及び修正を含むと解釈される。
コンピュータシステムの1つの実施形態を示すブロック図である。 オフホストブロック仮想化を利用するよう構成されたシステムの実施形態を示すブロック図である。 1つの実施形態に従ってソースボリュームをカプセル化する仮想論理ユニット(LUN)へのオペレーティングシステム特定メタデータの追加を示すブロック図である。 オフホストバーチャライザーがオペレーティングシステムメタデータ内にパーティションテーブルを含むように構成される実施形態を示すブロック図である。 オフホストバーチャライザーが物理ストレージデバイス内のストレージを論理ボリュームに集め、該論理ボリュームを仮想LUNにマップするように構成される実施形態を示すブロック図である。 複数の仮想LUNを生成するように構成されたオフホストバーチャライザーを含む実施形態を示すブロック図である。 ホストとオペレーティングシステムメタデータを生成するように構成されたオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。 オフホストバーチャライザーが、1つ又はそれ以上の物理ストレージデバイスのストレージを論理ボリュームに集め、該論理ボリュームを仮想LUNにマップするように構成された実施形態を示すフロー図である。 1つの実施形態によるマップされない仮想LUNの実施例を示すブロック図である。 複数のマップされない仮想LUNを作成するように構成されたオフホストバーチャライザーを含む実施形態を示すブロック図である。 オフホストバーチャライザーが、2つの異なる物理ストレージデバイスの中からの物理ストレージを単一の仮想LUNに動的にマップするように構成された実施形態を示すブロック図である。 オフホストバーチャライザーが、単一の物理ストレージデバイスの中からの物理ストレージを異なるホストに割り当てられた2つの仮想LUNに動的にマップするように構成された実施形態を示すブロック図である。 オフホストバーチャライザーが、物理ストレージデバイスのストレージを論理ボリュームに集め、該論理ボリュームを仮想LUNのブロックの範囲に動的にマップするように構成された実施形態を示すブロック図である。 オフホストバーチャライザーが、複数の論理ボリュームを単一の仮想LUNに動的にマップするように構成された実施形態を示すブロック図である。 オフホストバーチャライザーが、物理ストレージデバイスからのストレージを2つの論理ボリュームに集め、2つの論理ボリュームの各々を異なる仮想LUNに動的にマップするように構成された実施形態を示すブロック図である。 複数のストレージネットワークを利用する実施形態を示すブロック図である。 オフホストバーチャライザーが、2つの物理ストレージデバイスからのストレージを単一の論理ボリュームに集めるように構成された実施形態を示すブロック図である。 オフホストバーチャライザーが、動的物理LUNトンネリングをサポートするように構成された1つの実施形態によるホストとオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。 オフホストバーチャライザー180が動的ボリュームトンネリングをサポートするように構成された1つの実施形態によるホストとオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。 オフホストバーチャライザーが仮想化スイッチを含む実施形態を示すブロック図である。 オフホストバーチャライザーが仮想化アプライアンスを含む実施形態を示すブロック図である。 1つの実施形態による例示的なホストを示すブロック図である。 1つの実施形態によるコンピュータアクセス可能媒体を示すブロック図である。
符号の説明
110 ホスト、130 相互接続部、180 オフホストバーチャライザー、210 仮想LUN(VLUN)、340 ストレージデバイス

Claims (3)

  1. 第1ホストと、そして
    少なくとも1つのプロセッサとメモリを含むオフホストバーチャライザーであって、前記メモリはプログラム・インストラクションを記憶し、前記プログラム・インストラクションは前記少なくとも1つのプロセッサにより実行可能であるオフホストバーチャライザーと
    を備えるシステムであって、
    前記少なくとも1つのプロセッサが前記プログラム・インストラクションを実行することにより実施される方法が、
    仮想ストレージデバイスのための複数の異なるオペレーティングシステムに対応するオペレーティングシステムメタデータの複数のセットを生成しかつ前記メモリにロードするステップと、
    前記仮想ストレージデバイスにアクセスするために前記第1ホストからの要求を受信するステップであって、前記オペレーティングシステムメタデータの前記複数のセットの前記生成およびローディングの後で前記要求は受信されるステップと、
    前記第1ホストにより使用されるオペレーティングシステムの識別を決定するステップと、
    前記決定された識別に基づいて前記複数の異なるオペレーティングシステムの1つに対応する前記オペレーティングシステムメタデータの1つのセットを選択するステップと、
    前記オペレーティングシステムメタデータの前記選択されたセットに前記第1ホストにアクセス可能にするステップと、そして
    前記仮想ストレージデバイス内の指定されたブロック範囲にコンフィグレーション情報を提供するステップであって、前記コンフィグレーション情報は前記オペレーティングシステムメタデータの前記選択されたセットの少なくとも一部分を備え、前記指定されたブロック範囲は前記第1ホストにより使用される前記オペレーティングシステムの前記決定された識別に依存する、ステップと、
    を含み、
    前記第1ホストは、第1レイヤおよび第2レイヤを含むストレージソフトウェアスタックを備え、
    前記第1レイヤは、前記オペレーティングシステムメタデータの前記選択されたセットを使用してアドレス指定可能なストレージデバイスとして前記仮想ストレージデバイスの存在を検出するように構成され、そして
    前記第2レイヤは、前記指定されたブロック範囲から前記コンフィグレーション情報を読み取るように構成されている
    ことを特徴とするシステム。
  2. コンピュータにより実施される方法であって、
    メモリを備えるオフホストバーチャライザーで仮想ストレージデバイスのための複数の異なるオペレーティングシステムに対応するオペレーティングシステムメタデータの複数のセットを生成しかつ前記メモリにロードするステップと、
    前記仮想ストレージデバイスにアクセスするために第1ホストからの要求を受信するステップであって、前記オペレーティングシステムメタデータの前記複数のセットの前記生成およびローディングの後で前記要求は受信されるステップと、
    前記第1ホストにより使用されるオペレーティングシステムの識別を決定するステップと、
    前記第1ホストにより使用されるオペレーティングシステムの前記決定された識別に基づいて前記複数の異なるオペレーティングシステムの1つに対応するオペレーティングシステムメタデータの1つのセットを選択するステップと、
    オペレーティングシステムメタデータの前記選択されたセットに前記第1ホストでストレージソフトウェアスタックの第1のレイヤにアクセス可能にするステップと、
    前記ストレージソフトウェアスタックが、前記仮想ストレージデバイス内の指定されたブロック範囲にコンフィグレーション情報を提供するステップであって、前記コンフィグレーション情報はオペレーティングシステムメタデータの前記選択されたセットの少なくとも一部分を備え、前記指定されたブロック範囲は前記第1ホストにより使用される前記オペレーティングシステムの前記決定された識別に依存する、ステップと、
    前記第1レイヤが、論理ユニットとして前記仮想ストレージデバイスの存在を検出するためにオペレーティングシステムメタデータの前記選択されたセットを使用するステップと、そして
    前記ストレージソフトウェアスタックの第2レイヤが、前記指定されたブロック範囲から前記コンフィグレーション情報を読み取るステップと
    を含む方法。
  3. プログラム・インストラクションを実行することにより実施される方法が、
    メモリを備えるオフホストバーチャライザーで仮想ストレージデバイスのための複数の異なるオペレーティングシステムに対応するオペレーティングシステムメタデータの複数のセットを生成しかつ前記メモリにロードするステップと、
    前記仮想ストレージデバイスにアクセスするために第1ホストからの要求を受信するステップであって、オペレーティングシステムメタデータの前記複数のセットの前記生成およびローディングの後で前記要求は受信されるステップと、
    前記第1ホストにより使用されるオペレーティングシステムの識別を決定するステップと、
    前記第1ホストにより使用されるオペレーティングシステムの前記決定された識別に基づいて前記複数の異なるオペレーティングシステムの1つに対応するオペレーティングシステムメタデータの1つのセットを選択するステップと、
    オペレーティングシステムメタデータの前記選択されたセットに前記第1ホストでストレージソフトウェアスタックの第1のレイヤにアクセス可能にするステップと、
    前記仮想ストレージデバイス内の指定されたブロック範囲に前記オフホストバーチャライザーからのコンフィグレーション情報を提供するステップであって、前記コンフィグレーション情報はオペレーティングシステムメタデータの前記選択されたセットの少なくとも一部分を備え、前記指定されたブロック範囲は前記第1ホストにより使用される前記オペレーティングシステムの前記決定された識別に依存する、ステップと、
    論理ユニットとして前記仮想ストレージデバイスの存在を検出するために前記第1レイヤでオペレーティングシステムメタデータの前記選択されたセットを使用するステップと、そして
    前記ストレージソフトウェアスタックの第2レイヤが、前記指定されたブロック範囲から前記コンフィグレーション情報を読み取るステップと
    を含む
    ことを特徴とする前記プログラム・インストラクションを記憶したコンピュータ可読記憶媒体。
JP2006541649A 2003-11-26 2004-11-22 ストレージボリュームに対するクロスプラットフォームアクセスを可能にするオペレーティングシステムメタデータをエミュレートするためのシステム及び方法 Active JP4750040B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/722,614 2003-11-26
US10/722,614 US20050114595A1 (en) 2003-11-26 2003-11-26 System and method for emulating operating system metadata to provide cross-platform access to storage volumes
PCT/US2004/039306 WO2005055043A1 (en) 2003-11-26 2004-11-22 System and method for emulating operating system metadata to provide cross-platform access to storage volumes

Publications (2)

Publication Number Publication Date
JP2007516523A JP2007516523A (ja) 2007-06-21
JP4750040B2 true JP4750040B2 (ja) 2011-08-17

Family

ID=34592023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006541649A Active JP4750040B2 (ja) 2003-11-26 2004-11-22 ストレージボリュームに対するクロスプラットフォームアクセスを可能にするオペレーティングシステムメタデータをエミュレートするためのシステム及び方法

Country Status (5)

Country Link
US (4) US20050114595A1 (ja)
EP (1) EP1687706A1 (ja)
JP (1) JP4750040B2 (ja)
CN (1) CN100552611C (ja)
WO (1) WO2005055043A1 (ja)

Families Citing this family (312)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US8032701B1 (en) * 2004-03-26 2011-10-04 Emc Corporation System and method for managing provisioning of storage resources in a network with virtualization of resources in such a network
US7024427B2 (en) * 2001-12-19 2006-04-04 Emc Corporation Virtual file system
US7769722B1 (en) 2006-12-08 2010-08-03 Emc Corporation Replication and restoration of multiple data storage object types in a data network
US7669032B2 (en) * 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US20050114595A1 (en) 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
US7461141B2 (en) * 2004-01-30 2008-12-02 Applied Micro Circuits Corporation System and method for performing driver configuration operations without a system reboot
US20050216680A1 (en) * 2004-03-25 2005-09-29 Itzhak Levy Device to allow multiple data processing channels to share a single disk drive
US7945657B1 (en) * 2005-03-30 2011-05-17 Oracle America, Inc. System and method for emulating input/output performance of an application
EP1769395A2 (en) * 2004-05-21 2007-04-04 Computer Associates Think, Inc. Object-based storage
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7409495B1 (en) * 2004-12-22 2008-08-05 Symantec Operating Corporation Method and apparatus for providing a temporal storage appliance with block virtualization in storage networks
US7493462B2 (en) * 2005-01-20 2009-02-17 International Business Machines Corporation Apparatus, system, and method for validating logical volume configuration
US8275749B2 (en) * 2005-02-07 2012-09-25 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US8271436B2 (en) * 2005-02-07 2012-09-18 Mimosa Systems, Inc. Retro-fitting synthetic full copies of data
US7778976B2 (en) * 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8543542B2 (en) * 2005-02-07 2013-09-24 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US7917475B2 (en) * 2005-02-07 2011-03-29 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8161318B2 (en) * 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7519851B2 (en) * 2005-02-08 2009-04-14 Hitachi, Ltd. Apparatus for replicating volumes between heterogenous storage systems
US7774514B2 (en) * 2005-05-16 2010-08-10 Infortrend Technology, Inc. Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
US7630998B2 (en) * 2005-06-10 2009-12-08 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
US20070038749A1 (en) * 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
US7802000B1 (en) * 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US8595434B2 (en) 2005-08-25 2013-11-26 Silicon Image, Inc. Smart scalable storage switch architecture
US20070083653A1 (en) * 2005-09-16 2007-04-12 Balasubramanian Chandrasekaran System and method for deploying information handling system images through fibre channel
JP2007094578A (ja) * 2005-09-27 2007-04-12 Fujitsu Ltd ストレージシステム及びその構成部品交換処理方法
US7765187B2 (en) * 2005-11-29 2010-07-27 Emc Corporation Replication of a consistency group of data storage objects from servers in a data network
US8572330B2 (en) * 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
JP4474356B2 (ja) * 2005-12-27 2010-06-02 富士通株式会社 コンピュータシステムおよびストレージ仮想化装置
JP4797636B2 (ja) * 2006-01-16 2011-10-19 株式会社日立製作所 複合型情報プラットフォーム装置とその情報処理装置構成方法
US8533409B2 (en) * 2006-01-26 2013-09-10 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
US20070180287A1 (en) * 2006-01-31 2007-08-02 Dell Products L. P. System and method for managing node resets in a cluster
US20070180167A1 (en) * 2006-02-02 2007-08-02 Seagate Technology Llc Dynamic partition mapping in a hot-pluggable data storage apparatus
US7904492B2 (en) * 2006-03-23 2011-03-08 Network Appliance, Inc. Method and apparatus for concurrent read-only access to filesystem
JP2007265001A (ja) * 2006-03-28 2007-10-11 Hitachi Ltd ストレージ装置
JP5037881B2 (ja) * 2006-04-18 2012-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
US7617373B2 (en) * 2006-05-23 2009-11-10 International Business Machines Corporation Apparatus, system, and method for presenting a storage volume as a virtual volume
EP2035902B8 (en) * 2006-05-30 2012-12-26 Schneider Electric USA, Inc. Remote virtual placeholder configuration for distributed input/output modules
US7536503B1 (en) * 2006-06-30 2009-05-19 Emc Corporation Methods and systems for preserving disk geometry when migrating existing data volumes
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US9003000B2 (en) * 2006-07-25 2015-04-07 Nvidia Corporation System and method for operating system installation on a diskless computing platform
US7610483B2 (en) * 2006-07-25 2009-10-27 Nvidia Corporation System and method to accelerate identification of hardware platform classes
US8909746B2 (en) * 2006-07-25 2014-12-09 Nvidia Corporation System and method for operating system installation on a diskless computing platform
US10013268B2 (en) 2006-08-29 2018-07-03 Prometric Inc. Performance-based testing system and method employing emulation and virtualization
US8095715B1 (en) * 2006-09-05 2012-01-10 Nvidia Corporation SCSI HBA management using logical units
US7761738B2 (en) 2006-09-07 2010-07-20 International Business Machines Corporation Establishing communications across virtual enclosure boundaries
US7584378B2 (en) 2006-09-07 2009-09-01 International Business Machines Corporation Reconfigurable FC-AL storage loops in a data storage system
US8332613B1 (en) * 2006-09-29 2012-12-11 Emc Corporation Methods and systems for managing I/O requests to minimize disruption required for data encapsulation and de-encapsulation
JP2008090657A (ja) * 2006-10-03 2008-04-17 Hitachi Ltd ストレージシステム及び制御方法
JP2008112399A (ja) * 2006-10-31 2008-05-15 Fujitsu Ltd ストレージ仮想化スイッチおよびコンピュータシステム
US7975135B2 (en) * 2006-11-23 2011-07-05 Dell Products L.P. Apparatus, method and product for selecting an iSCSI target for automated initiator booting
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8706833B1 (en) * 2006-12-08 2014-04-22 Emc Corporation Data storage server having common replication architecture for multiple storage object types
JP4813385B2 (ja) * 2007-01-29 2011-11-09 株式会社日立製作所 ストレージシステムの複数の論理リソースを制御する制御装置
US7840790B1 (en) * 2007-02-16 2010-11-23 Vmware, Inc. Method and system for providing device drivers in a virtualization system
JP5104855B2 (ja) * 2007-03-23 2012-12-19 富士通株式会社 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
CN100547566C (zh) * 2007-06-28 2009-10-07 忆正存储技术(深圳)有限公司 基于多通道闪存设备逻辑条带的控制方法
US7568051B1 (en) * 2007-06-29 2009-07-28 Emc Corporation Flexible UCB
US8738871B1 (en) * 2007-06-29 2014-05-27 Symantec Corporation Method and apparatus for mapping virtual drives
US8635429B1 (en) 2007-06-29 2014-01-21 Symantec Corporation Method and apparatus for mapping virtual drives
US8176405B2 (en) * 2007-09-24 2012-05-08 International Business Machines Corporation Data integrity validation in a computing environment
US20090089498A1 (en) * 2007-10-02 2009-04-02 Michael Cameron Hay Transparently migrating ongoing I/O to virtualized storage
US20090119452A1 (en) * 2007-11-02 2009-05-07 Crossroads Systems, Inc. Method and system for a sharable storage device
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
WO2009070898A1 (en) * 2007-12-07 2009-06-11 Scl Elements Inc. Auto-configuring multi-layer network
US8032689B2 (en) * 2007-12-18 2011-10-04 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for data storage device virtualization
US8028062B1 (en) * 2007-12-26 2011-09-27 Emc Corporation Non-disruptive data mobility using virtual storage area networks with split-path virtualization
US8055867B2 (en) * 2008-01-11 2011-11-08 International Business Machines Corporation Methods, apparatuses, and computer program products for protecting pre-staged provisioned data in a storage system
US8074020B2 (en) * 2008-02-13 2011-12-06 International Business Machines Corporation On-line volume coalesce operation to enable on-line storage subsystem volume consolidation
US20090216944A1 (en) * 2008-02-22 2009-08-27 International Business Machines Corporation Efficient validation of writes for protection against dropped writes
DE112008003788T5 (de) * 2008-03-27 2011-02-24 Hewlett-Packard Co. Intellectual Property Administration, Fort Collins Raid-Array-Zugriff durch ein das Raid-Array nicht kennendes Betriebssystem
JP2009238114A (ja) * 2008-03-28 2009-10-15 Hitachi Ltd ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
US7979260B1 (en) * 2008-03-31 2011-07-12 Symantec Corporation Simulating PXE booting for virtualized machines
US8745336B2 (en) * 2008-05-29 2014-06-03 Vmware, Inc. Offloading storage operations to storage hardware
US8893160B2 (en) * 2008-06-09 2014-11-18 International Business Machines Corporation Block storage interface for virtual memory
GB2460841B (en) * 2008-06-10 2012-01-11 Virtensys Ltd Methods of providing access to I/O devices
US8725688B2 (en) * 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US8073674B2 (en) * 2008-09-23 2011-12-06 Oracle America, Inc. SCSI device emulation in user space facilitating storage virtualization
US8516190B1 (en) * 2008-09-26 2013-08-20 Nvidia Corporation Reporting logical sector alignment for ATA mass storage devices
US8055842B1 (en) 2008-09-26 2011-11-08 Nvidia Corporation Using raid with large sector size ATA mass storage devices
US20100082715A1 (en) * 2008-09-30 2010-04-01 Karl Dohm Reduced-Resource Block Thin Provisioning
US8510352B2 (en) 2008-10-24 2013-08-13 Microsoft Corporation Virtualized boot block with discovery volume
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US8417969B2 (en) * 2009-02-19 2013-04-09 Microsoft Corporation Storage volume protection supporting legacy systems
US8073886B2 (en) 2009-02-20 2011-12-06 Microsoft Corporation Non-privileged access to data independent of filesystem implementation
US8074038B2 (en) * 2009-05-12 2011-12-06 Microsoft Corporation Converting luns into files or files into luns in real time
US9015198B2 (en) * 2009-05-26 2015-04-21 Pi-Coral, Inc. Method and apparatus for large scale data storage
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8495289B2 (en) * 2010-02-24 2013-07-23 Red Hat, Inc. Automatically detecting discrepancies between storage subsystem alignments
US8539124B1 (en) * 2010-03-31 2013-09-17 Emc Corporation Storage integration plugin for virtual servers
US8756338B1 (en) * 2010-04-29 2014-06-17 Netapp, Inc. Storage server with embedded communication agent
US8560825B2 (en) * 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US8261003B2 (en) * 2010-08-11 2012-09-04 Lsi Corporation Apparatus and methods for managing expanded capacity of virtual volumes in a storage system
JP2012058912A (ja) * 2010-09-07 2012-03-22 Nec Corp 論理ユニット番号管理装置及び論理ユニット番号管理方法並びにそのプログラム
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
CN101986655A (zh) * 2010-10-21 2011-03-16 浪潮(北京)电子信息产业有限公司 存储网络及该存储网络的数据读写方法
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9606747B2 (en) 2011-05-04 2017-03-28 International Business Machines Corporation Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution
US8838931B1 (en) * 2012-03-30 2014-09-16 Emc Corporation Techniques for automated discovery and performing storage optimizations on a component external to a data storage system
US8732401B2 (en) 2011-07-07 2014-05-20 Atlantis Computing, Inc. Method and apparatus for cache replacement using a catalog
US20130268559A1 (en) 2011-07-13 2013-10-10 Z124 Virtual file system remote search
US9152404B2 (en) 2011-07-13 2015-10-06 Z124 Remote device filter
US8909891B2 (en) 2011-07-21 2014-12-09 International Business Machines Corporation Virtual logical volume for overflow storage of special data sets
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US20130268703A1 (en) * 2011-09-27 2013-10-10 Z124 Rules based hierarchical data virtualization
CN102567217B (zh) * 2012-01-04 2014-12-24 北京航空航天大学 一种面向mips平台的内存虚拟化方法
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9158568B2 (en) 2012-01-30 2015-10-13 Hewlett-Packard Development Company, L.P. Input/output operations at a virtual block device of a storage server
US9239776B2 (en) * 2012-02-09 2016-01-19 Vmware, Inc. Systems and methods to simulate storage
US9946559B1 (en) * 2012-02-13 2018-04-17 Veritas Technologies Llc Techniques for managing virtual machine backups
US9098325B2 (en) 2012-02-28 2015-08-04 Hewlett-Packard Development Company, L.P. Persistent volume at an offset of a virtual block device of a storage server
US10831728B2 (en) 2012-05-29 2020-11-10 International Business Machines Corporation Application-controlled sub-LUN level data migration
US10831727B2 (en) 2012-05-29 2020-11-10 International Business Machines Corporation Application-controlled sub-LUN level data migration
US10817202B2 (en) 2012-05-29 2020-10-27 International Business Machines Corporation Application-controlled sub-LUN level data migration
US8856484B2 (en) * 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
US9116623B2 (en) * 2012-08-14 2015-08-25 International Business Machines Corporation Optimizing storage system behavior in virtualized cloud computing environments by tagging input/output operation data to indicate storage policy
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9454670B2 (en) 2012-12-03 2016-09-27 International Business Machines Corporation Hybrid file systems
US20140164581A1 (en) * 2012-12-10 2014-06-12 Transparent Io, Inc. Dispersed Storage System with Firewall
US9280359B2 (en) * 2012-12-11 2016-03-08 Cisco Technology, Inc. System and method for selecting a least cost path for performing a network boot in a data center network environment
US9912713B1 (en) 2012-12-17 2018-03-06 MiMedia LLC Systems and methods for providing dynamically updated image sets for applications
US9277010B2 (en) 2012-12-21 2016-03-01 Atlantis Computing, Inc. Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment
US9069472B2 (en) 2012-12-21 2015-06-30 Atlantis Computing, Inc. Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9250946B2 (en) 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9372865B2 (en) 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system
US9471590B2 (en) 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US9298758B1 (en) 2013-03-13 2016-03-29 MiMedia, Inc. Systems and methods providing media-to-media connection
US9465521B1 (en) 2013-03-13 2016-10-11 MiMedia, Inc. Event based media interface
US10257301B1 (en) 2013-03-15 2019-04-09 MiMedia, Inc. Systems and methods providing a drive interface for content delivery
US9183232B1 (en) 2013-03-15 2015-11-10 MiMedia, Inc. Systems and methods for organizing content using content organization rules and robust content information
US20140359612A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Sharing a Virtual Hard Disk Across Multiple Virtual Machines
US9176890B2 (en) 2013-06-07 2015-11-03 Globalfoundries Inc. Non-disruptive modification of a device mapper stack
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9871889B1 (en) * 2014-03-18 2018-01-16 EMC IP Holing Company LLC Techniques for automated capture of configuration data for simulation
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10001927B1 (en) * 2014-09-30 2018-06-19 EMC IP Holding Company LLC Techniques for optimizing I/O operations
US9389789B2 (en) 2014-12-15 2016-07-12 International Business Machines Corporation Migration of executing applications and associated stored data
JP6435842B2 (ja) 2014-12-17 2018-12-12 富士通株式会社 ストレージ制御装置及びストレージ制御プログラム
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) * 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
WO2016197155A1 (en) * 2015-06-02 2016-12-08 Viirii, Llc Operating system independent, secure data storage subsystem
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10289564B2 (en) * 2015-07-08 2019-05-14 Hitachi, Ltd. Computer and memory region management method
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10579275B2 (en) * 2015-07-27 2020-03-03 Hitachi, Ltd. Storage system and storage control method
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9965184B2 (en) 2015-10-19 2018-05-08 International Business Machines Corporation Multiple storage subpools of a virtual storage pool in a multiple processor environment
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US10296250B2 (en) * 2016-06-08 2019-05-21 Intel Corporation Method and apparatus for improving performance of sequential logging in a storage device
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10620835B2 (en) * 2017-01-27 2020-04-14 Wyse Technology L.L.C. Attaching a windows file system to a remote non-windows disk stack
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10754829B2 (en) 2017-04-04 2020-08-25 Oracle International Corporation Virtual configuration systems and methods
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10524022B2 (en) * 2017-05-02 2019-12-31 Seagate Technology Llc Data storage system with adaptive data path routing
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11036856B2 (en) 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN112748848A (zh) * 2019-10-29 2021-05-04 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US10990537B1 (en) 2020-01-07 2021-04-27 International Business Machines Corporation Logical to virtual and virtual to physical translation in storage class memory
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11409608B2 (en) * 2020-12-29 2022-08-09 Advanced Micro Devices, Inc. Providing host-based error detection capabilities in a remote execution device
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
WO2022157789A1 (en) * 2021-01-25 2022-07-28 Volumez Technologies Ltd. Remote online volume cloning method and system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11816363B2 (en) * 2021-11-04 2023-11-14 International Business Machines Corporation File based virtual disk management
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
US11907551B2 (en) * 2022-07-01 2024-02-20 Dell Products, L.P. Performance efficient and resilient creation of network attached storage objects

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215554A (ja) * 2000-12-20 2002-08-02 Internatl Business Mach Corp <Ibm> データ記録システム、データ記録方法およびネットワークシステム
WO2002069166A1 (en) * 2000-11-02 2002-09-06 Pirus Networks Switching system
JP2002259172A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 情報処理システム
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
WO2004049670A2 (en) * 2002-11-26 2004-06-10 International Business Machines Corporation Support of multiple native network protocol implementations in a single system

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5829053A (en) * 1996-05-10 1998-10-27 Apple Computer, Inc. Block storage memory management system and method utilizing independent partition managers and device drivers
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US6493811B1 (en) * 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
US6240416B1 (en) * 1998-09-11 2001-05-29 Ambeo, Inc. Distributed metadata system and method
US6311213B2 (en) * 1998-10-27 2001-10-30 International Business Machines Corporation System and method for server-to-server data storage in a network environment
US6434637B1 (en) * 1998-12-31 2002-08-13 Emc Corporation Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations
US6347371B1 (en) * 1999-01-25 2002-02-12 Dell Usa, L.P. System and method for initiating operation of a computer system
US6370605B1 (en) * 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
US6467023B1 (en) * 1999-03-23 2002-10-15 Lsi Logic Corporation Method for logical unit creation with immediate availability in a raid storage environment
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
EP1229435A4 (en) * 1999-10-22 2008-08-06 Hitachi Ltd MEMORY ZONE NETWORK SYSTEM
JP4651230B2 (ja) * 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
US20020103889A1 (en) * 2000-02-11 2002-08-01 Thomas Markson Virtual storage layer approach for dynamically associating computer storage with processing hosts
US6658563B1 (en) * 2000-05-18 2003-12-02 International Business Machines Corporation Virtual floppy diskette image within a primary partition in a hard disk drive and method for booting system with virtual diskette
US6532527B2 (en) * 2000-06-19 2003-03-11 Storage Technology Corporation Using current recovery mechanisms to implement dynamic mapping operations
US6912537B2 (en) * 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
US6871245B2 (en) * 2000-11-29 2005-03-22 Radiant Data Corporation File system translators and methods for implementing the same
EP1370947A4 (en) * 2001-02-13 2009-05-27 Candera Inc STORAGE VIRTUALIZATION SERVER SILICON BASE
US6606690B2 (en) * 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US20040015864A1 (en) * 2001-06-05 2004-01-22 Boucher Michael L. Method and system for testing memory operations of computer program
US6782401B2 (en) * 2001-07-02 2004-08-24 Sepaton, Inc. Method and apparatus for implementing a reliable open file system
US7548975B2 (en) * 2002-01-09 2009-06-16 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US6934799B2 (en) * 2002-01-18 2005-08-23 International Business Machines Corporation Virtualization of iSCSI storage
US6954839B2 (en) * 2002-03-13 2005-10-11 Hitachi, Ltd. Computer system
US6889309B1 (en) * 2002-04-15 2005-05-03 Emc Corporation Method and apparatus for implementing an enterprise virtual storage system
US6954852B2 (en) * 2002-04-18 2005-10-11 Ardence, Inc. System for and method of network booting of an operating system to a client computer using hibernation
US7188194B1 (en) * 2002-04-22 2007-03-06 Cisco Technology, Inc. Session-based target/LUN mapping for a storage area network and associated method
US6973587B1 (en) * 2002-05-03 2005-12-06 American Megatrends, Inc. Systems and methods for out-of-band booting of a computer
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7100089B1 (en) * 2002-09-06 2006-08-29 3Pardata, Inc. Determining differences between snapshots
US7263593B2 (en) * 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
US7020760B2 (en) * 2002-12-16 2006-03-28 International Business Machines Corporation Hybrid logical block virtualization system for a storage area network
US6816917B2 (en) * 2003-01-15 2004-11-09 Hewlett-Packard Development Company, L.P. Storage system with LUN virtualization
US7606239B2 (en) * 2003-01-31 2009-10-20 Brocade Communications Systems, Inc. Method and apparatus for providing virtual ports with attached virtual devices in a storage area network
US6990573B2 (en) * 2003-02-05 2006-01-24 Dell Products L.P. System and method for sharing storage to boot multiple servers
EP1678617A4 (en) * 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US20050114595A1 (en) * 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
US7669032B2 (en) * 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US20050125538A1 (en) * 2003-12-03 2005-06-09 Dell Products L.P. Assigning logical storage units to host computers
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002069166A1 (en) * 2000-11-02 2002-09-06 Pirus Networks Switching system
JP2002215554A (ja) * 2000-12-20 2002-08-02 Internatl Business Mach Corp <Ibm> データ記録システム、データ記録方法およびネットワークシステム
JP2002259172A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 情報処理システム
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
WO2004049670A2 (en) * 2002-11-26 2004-06-10 International Business Machines Corporation Support of multiple native network protocol implementations in a single system

Also Published As

Publication number Publication date
US20050114595A1 (en) 2005-05-26
CN1906569A (zh) 2007-01-31
US20050228937A1 (en) 2005-10-13
US20050235132A1 (en) 2005-10-20
WO2005055043A1 (en) 2005-06-16
US20050228950A1 (en) 2005-10-13
CN100552611C (zh) 2009-10-21
EP1687706A1 (en) 2006-08-09
US7689803B2 (en) 2010-03-30
JP2007516523A (ja) 2007-06-21

Similar Documents

Publication Publication Date Title
JP4750040B2 (ja) ストレージボリュームに対するクロスプラットフォームアクセスを可能にするオペレーティングシステムメタデータをエミュレートするためのシステム及び方法
RU2302034C9 (ru) Многопротокольное устройство хранения данных, реализующее интегрированную поддержку файловых и блочных протоколов доступа
US9563469B2 (en) System and method for storage and deployment of virtual machines in a virtual server environment
US8838542B1 (en) Optimized image archiving
JP4758424B2 (ja) 物理的ストレージアプライアンス内で実行される仮想ストレージアプライアンスにおいてブロックベースのプロトコルを利用することが可能なシステム及び方法
US7865677B1 (en) Enhancing access to data storage
US8930654B1 (en) Method and apparatus for mapping virtual drives
US20110179082A1 (en) Managing concurrent file system accesses by multiple servers using locks
US20090049160A1 (en) System and Method for Deployment of a Software Image
JP2008004120A (ja) ダイレクトアクセスストレージシステム
US8972657B1 (en) Managing active—active mapped logical volumes
US8972656B1 (en) Managing accesses to active-active mapped logical volumes
JP2005135408A (ja) 階層記憶システム
JP2012208918A (ja) データセンターファイルシステムの方法及び装置
US10620843B2 (en) Methods for managing distributed snapshot for low latency storage and devices thereof
US20100146039A1 (en) System and Method for Providing Access to a Shared System Image
JP2020533678A (ja) クラウド・ストレージをランクとして使用するストレージ・システム
US11861231B2 (en) Scalable solid-state storage system and methods thereof
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
US11977510B2 (en) Configuring a file server
US11481335B2 (en) Methods for using extended physical region page lists to improve performance for solid-state drives and devices thereof
US11334441B2 (en) Distribution of snaps for load balancing data node clusters
US11899534B2 (en) Techniques for providing direct host-based access to backup data using a proxy file system
US11922043B2 (en) Data migration between storage systems
US20240028262A1 (en) Scalable Solid-State Storage System and Methods Thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101108

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110518

R150 Certificate of patent or registration of utility model

Ref document number: 4750040

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250