JP2012527046A - リアルタイムでlunをファイルに、またはファイルをlunに変換すること - Google Patents

リアルタイムでlunをファイルに、またはファイルをlunに変換すること Download PDF

Info

Publication number
JP2012527046A
JP2012527046A JP2012510905A JP2012510905A JP2012527046A JP 2012527046 A JP2012527046 A JP 2012527046A JP 2012510905 A JP2012510905 A JP 2012510905A JP 2012510905 A JP2012510905 A JP 2012510905A JP 2012527046 A JP2012527046 A JP 2012527046A
Authority
JP
Japan
Prior art keywords
lun
partition
host computer
storage
size
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.)
Granted
Application number
JP2012510905A
Other languages
English (en)
Other versions
JP5276218B2 (ja
JP2012527046A5 (ja
Inventor
リオネッティ クリス
パイク ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012527046A publication Critical patent/JP2012527046A/ja
Publication of JP2012527046A5 publication Critical patent/JP2012527046A5/ja
Application granted granted Critical
Publication of JP5276218B2 publication Critical patent/JP5276218B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

複数のデータセット(たとえば、仮想ハードドライブとして記憶された仮想マシンなど、データおよび/またはアプリケーション)を記憶することができるLUNが提供される。LUNが複数のパーティションに区分される。1つまたは複数のデータセットが各パーティションに記憶される。その結果、複数のデータセットが、データセットの数に比例した数のLUNを通してではなく、単一のLUNを通してアクセスされる。さらに、LUNに記憶されたデータセットがピボットされる。第1のLUNに記憶された複数のデータセットのうちの1つのデータセットを記憶するための専用の第2のLUNが生成される。データセットが第2のLUNにコピーされ、第2のLUNがホストコンピュータに公開されて、ホストコンピュータはデータセットと対話することが可能になる。またさらに、第2のLUNから再び第1のLUNのパーティションにデータセットがピボットされる。

Description

本発明は、リアルタイムでLUNをファイルに、またはファイルをLUNに変換することに関する。
コンピュータデータストレージは、時間期間の間デジタルデータを保持するために使用される構成要素、デバイス、および/または記録媒体を指す。ランダムアクセスメモリ(RAM)デバイスおよび読取り専用メモリ(ROM)デバイスなどのメモリデバイス(たとえば、半導体ストレージ)、ならびに光ディスクおよび磁気ストレージ(ハードディスク、磁気テープなど)などの大容量ストレージデバイス、ならびにさらなるタイプのストレージを含む、様々なタイプの物理ストレージデバイスが存在する。そのようなストレージデバイスが様々な方法でプールされて、より高いレベルのストレージ、およびより高いレベルのストレージ信頼性を与える。たとえば、たくさんのストレージデバイスが組み合わされて、RAID(redundant array of independent disks)アレイ、SAN(storage area network)、およびストレージの他の集合を形成する。
ストレージ仮想化は、物理ストレージ(physical storage)から仮想または論理ストレージ(logical storage)を抽象化する方法である。仮想ストレージを与えるように構成されたストレージシステムは、コンピュータがアクセスする論理ストレージロケーション(location)をコンピュータに提示する。ストレージシステムが、論理ストレージロケーションを物理ストレージ中の物理ストレージロケーションにマップするように構成される。1つのタイプの仮想ストレージでは、論理ストレージデバイスがLUN(論理ユニット番号)と呼ばれことがある。コンピュータがアクセスするストレージシステムによって、1つまたは複数のLUNがコンピュータに公開される。データのブロックが、そのLUN内のオフセットまたはロケーションによってLUN中でアドレス指定され、これが論理ブロックアドレス(LBA)と呼ばれる。
仮想マシンを含む様々なタイプのデータが仮想ストレージに記憶される。仮想マシンは、物理コンピュータと同様にプログラムを実行する、物理コンピュータのソフトウェア実装形態である。「システム仮想マシン」は、オペレーティングシステムを含む完全なコンピュータプラットフォームを与える。そのようなシステム仮想マシンは1つまたは複数のプログラムを実行する。「プロセス仮想マシン」が、単一のプログラムを実行するように設計される。仮想マシンを表す1つまたは複数のファイルが仮想ハードドライブと呼ばれる。
現在、仮想マシンに対応する仮想イメージが、一般に、仮想ストレージシステムの独立したLUNにおいて利用可能になっている。ストレージシステムは、LUNをホストコンピュータに公開して、ホストコンピュータが仮想マシンを実行することを可能にする。ホストコンピュータによって多数の仮想マシン(たとえば、数百、数千、またはそれ以上の仮想マシン)が実装されている場合、ホストコンピュータは大量のリソースを消費して、仮想マシンを管理し、インデックス付けする。たとえば、現在の1つのコンピュータファイルシステムでは、255個を超えて割り当てられたLUNをサポートすることは不可能である。さらに、50個のLUNが割り当てられた後、コンピュータファイルシステムのパフォーマンスは低下する。したがって、従来の技法に従ってLUNに実装された、多数の仮想マシンを管理することは、現実的に不可能である。
この概要が、以下でさらに説明する発明を実施するための形態で説明される複数の概念を選択するために、簡略化された形態で与えられる。この概要は、特許請求する主題の主要な特徴または重要な特徴を特定するためのものでも、特許請求する主題の範囲を限定するために使用されるものでもない。
複数のデータセットを論理ユニット番号(LUN)に記憶して、改善されたパフォーマンスを可能にするための方法、システム、およびコンピュータプログラム製品が提供される。複数のデータセット(たとえば、仮想ハードドライブとして記憶される仮想マシン)を記憶することができるLUNが提供される。LUNが複数のパーティションに区分される。1つまたは複数のデータセットが各パーティションに記憶される。その結果、データセットの数に比例した数のLUNを通してではなく、単一のLUNを通して、複数のデータセットがアクセスされる。
さらに、LUNに記憶されたデータセットがピボット(pivot)される。一実装形態では、ストレージアレイコントローラーにおけるシステムおよび方法が提供される。第1のLUNがストレージアレイから第1のホストコンピュータに公開される。第1のLUNの複数のパーティションのうちの1つのパーティションに関するピボット要求が第1のホストコンピュータから受信される(そのパーティションは複数のパーティションのうちのいずれかである)。そのパーティションは、複数のパーティションに記憶された複数のデータセットのうちの1つのデータセットを記憶する。第1のLUNにおけるパーティションのサイズが判定される。第2のパーティションについてのロケーションおよびサイズを示すパーティションテーブルが生成される。ストレージアレイの第2のLUNが、第2のLUNについてのシグナチャと、パーティションテーブルと、第2のパーティションとに適応するように構成されたサイズを有するように生成される。シグナチャとパーティションテーブルとが第2のLUNに記憶される。第1のLUNのパーティションが、第2のパーティションについてのパーティションテーブルに示されたロケーションにおいて第1のLUNから第2のLUNにコピーされる。第2のLUNが第2のホストコンピュータにマップされる。
その後、第2のホストコンピュータから、第2のLUNを使用中止する要求が受信される。第2のパーティションのサイズが判定される。第2のパーティションのコピーが第1のLUNに記憶される。第2のパーティションのコピーが記憶されている第1のLUNのストレージ領域に対応するパーティションを示すために、第1のLUNのパーティションテーブルが更新される。
第2のパーティションのサイズが、第1のLUNに最初にピボットされたパーティションのサイズを超えない場合、第2のパーティションのコピーが第1のLUNのそのパーティションに記憶される。第2のパーティションのサイズが、第1のLUNに最初にピボットされたパーティションのサイズを超える場合、ストレージ領域を第1のLUNに追加することによって第1のLUNのサイズが増大され、第2のパーティションのコピーが、第1のLUNの追加されたストレージ領域に記憶される。
別の実装形態では、第1のホストコンピュータにおけるシステムおよび方法が提供される。ストレージアレイによって第1のホストコンピュータに公開される第1の論理ユニット番号(LUN)の指示が受信される。シグナチャとパーティションテーブルとが第1のLUNに記憶される。第1のLUNが複数のパーティションに区分される。複数のデータセットが複数のパーティションに記憶される。複数のデータセットのうちの1つのデータセットを記憶する、複数のパーティションのうちの1つのパーティションへのアクセスが閉じられる。閉じられたパーティションに関するピボット要求がストレージアレイに送信される。ストレージアレイが、パーティションを第2のLUNにコピーし、ピボット要求に応答して第2のLUNを第2のホストコンピュータにマップするように構成される。
また、上記および本明細書の他の箇所で説明する方法を行うことおよび/または可能にすることが可能な、ならびに本明細書で説明するさらなる実施形態を実装するためのコンピュータシステムおよび(コンピュータ可読媒体に記憶された)コンピュータプログラム製品について、本明細書で説明する。
本発明のさらなる特徴および利点、ならびに本発明の様々な実施形態の構造および動作について、添付の図面を参照しながら以下で詳細に説明する。本発明は、本明細書で説明する特定の実施形態に限定されないことに留意されたい。本明細書では、そのような実施形態が単に説明のために提示される。本明細書に含まれている教示に基づいて、追加の実施形態が当業者には明らかであろう。
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明を説明し、説明とともに、さらに、本発明の原理を説明し、当業者が本発明を製作および使用することを可能にするのに役立つ。
複数のコンピューティングデバイスが共有ストレージにアクセスする、コンピューティングおよびデータストレージシステムを示す図である。 ストレージアレイが仮想ストレージの形態でホストコンピュータに提示される、図1のコンピューティングおよびデータストレージシステムのブロック図である。 論理ユニット番号(LUN)の形態で仮想ストレージを与えるストレージデバイスのブロック図である。 複数の仮想マシンを実行しているホストコンピュータのブロック図である。 例示的な実施形態による、複数のパーティションを有するLUNのブロック図である。 例示的な実施形態による、ホストコンピュータのブロック図である。 例示的な実施形態による、LUNを区分するためのプロセスを提供するフローチャートである。 例示的な実施形態による、ストレージアレイコントローラーのブロック図である。 例示的な実施形態による、第1のホストコンピュータから第2のホストコンピュータにデータセットへのアクセスをピボットするためのプロセスを示す図である。 例示的な実施形態による、第1のホストコンピュータから第2のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャートである。 例示的な実施形態による、アレイコントローラーのブロック図である。 例示的な実施形態による、コンピューティングおよびデータストレージシステムのブロック図である。 例示的な実施形態による、パーティションがピボットされることを可能にするためのプロセスを提供するフローチャートである。 例示的な実施形態による、ピボットされたLUNへのアクセスを受ける第2のホストコンピュータにおいて使用可能なプロセスを提供するフローチャートである。 例示的な実施形態による、第2のホストコンピュータから第1のホストコンピュータにデータセットへのアクセスをピボットするためのプロセスを示す図である。 例示的な実施形態による、第2のホストコンピュータから第1のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャートである。 例示的な実施形態による、図12のコンピューティングおよびデータストレージシステムのブロック図である。 例示的な実施形態による、パーティションがピボットされることを可能にするためのプロセスを提供するフローチャートである。 本発明の実施形態を実装するために使用することができる例示的なコンピュータのブロック図である。
本発明の特徴および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載する詳細な説明を読めばより明らかになろう。図面中、同様の参照番号は、概して、一致する機能的に同様のおよび/または構造的に同様の要素を示す。要素が最初に現れる図面が、対応する参照番号中の最も左側の数字によって示される。
I.序論
本明細書は、本発明の特徴を組み込む1つまたは複数の実施形態を開示する。(1つまたは複数の)開示する実施形態は、本発明を例示するものにすぎない。本発明の範囲が、(1つまたは複数の)開示する実施形態に限定されない。本発明が、本明細書に添付の特許請求の範囲によって定義される。
本明細書における「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「例示的な実施形態」などの言及は、説明する実施形態が、特定の特徴、構造、または特性を含むことを示すが、すべての実施形態が、必ずしも特定の特徴、構造、または特性を含むわけではない。その上、そのような句が必ずしも同じ実施形態を指すわけではない。さらに、一実施形態に関連して特定の特徴、構造、または特性が説明されている場合、明確に記載されているか否かに関わらず、他の実施形態に関連してそのような特徴、構造、または特性を実現することは、当業者の知識の範囲内であることを申しておく。
さらに、本明細書で使用される空間的な説明(たとえば、「上に」、「下に」、「上」、「左」、「右」、「下」、「上部」、「下部」、「縦」、「横」など)は、例示のためのものにすぎず、本明細書で説明する構造の実際の実装形態が任意の向きまたは方法で空間的に配置することができることを理解されたい。
II.ストレージシステムの実施形態
本発明の実施形態は、データを記憶し、コンピュータデータストレージに記憶されたデータにアクセスするための技法に関する。たとえば、図1に、複数のコンピューティングデバイスが共有ストレージにアクセスする、コンピューティングおよびデータストレージシステム100を示す。図1に示すように、システム100は、第1のホストコンピュータ102aと、第2のホストコンピュータ102bと、第3のホストコンピュータ102cと、通信ネットワーク104と、ストレージアレイ106とを含む。ストレージアレイ106は、複数のストレージユニット/ストレージデバイス114a〜114nと、ストレージ通信ネットワーク108とを含む。図1の例では、第1のホストコンピュータ102aと、第2のホストコンピュータ102bと、第3のホストコンピュータ102cとは、ストレージアレイ106のストレージデバイス114a〜114nにデータを記憶し、そのストレージデバイス114a〜114nに記憶されたデータを取り出すことを可能にされることを含む、ストレージアレイ106へのアクセスを共有する。
3つのホストコンピュータ102a〜102cが図1に示されているが、数百、数千、またはさらによりたくさんのコンピューティングデバイスを含む、任意の数のホストコンピュータ102がネットワーク100に結合されて、ストレージアレイ106を共有する。ホストコンピュータ102の例には、固定のコンピューティングデバイスおよびモバイルコンピューティングデバイスがある。たとえば、ホストコンピュータ102a〜102cの各々は、サーバー、デスクトップコンピュータ(たとえば、パーソナルコンピュータ)、モバイルコンピュータ(たとえば、携帯情報端末(PDA)、ラップトップコンピュータ、ノートブックコンピュータ、スマートフォンなど)、または他のタイプのコンピューティングデバイスとすることができる。
ホストコンピュータ102a〜102cの各々がネットワーク104および対応する通信リンクを介してストレージアレイ106と通信するとして図1に示されている。たとえば、図1に示すように、ホストコンピュータ102aが第1の通信リンク110aを介してネットワーク104と通信可能に結合され、ホストコンピュータ102bが第2の通信リンク110bを介してネットワーク104と通信可能に結合され、ホストコンピュータ102cが第3の通信リンク110cを介してネットワーク104と通信可能に結合される。ストレージアレイ106が第4の通信リンク110dを介してネットワーク104と通信可能に結合された状態が示されている。ネットワーク104は、LAN、WAN(ワイドエリアネットワーク)、またはインターネットなど、ネットワークの組合せとすることができる。第1〜第4の通信リンク110a〜110dは、IEEE802.11 WLAN(ワイヤレスLAN)ワイヤレスリンク、Wi−MAX(Worldwide Interoperability for Microwave Access)リンク、セルラーネットワークリンク、ワイヤレスPAN(personal area network)リンク(たとえば、Bluetooth(登録商標)リンク)、イーサネット(登録商標)リンク、USBリンクなどのワイヤードおよび/またはワイヤレスリンクを含む任意のタイプまたは組合せの通信リンクを含むことができる。
ストレージデバイス114a〜114nが図1に示されているが、数百、数千、またはさらによりたくさんのストレージデバイスを含む、任意の数のストレージデバイス114が、データを記憶するためにストレージアレイ106中に含まれる。アレイコントローラー112とストレージデバイス114a〜114nとがストレージ通信ネットワーク108によって通信可能に互いに結合されるとして図1に示されている。ストレージデバイス114a〜114nとストレージ通信ネットワーク108とが、SAN(storage area network)、ファイバーチャネルアレイ、NAS(network attached storage)などを含む任意の構成で、ストレージアレイ106中で配置または関連付けられている。ストレージデバイス114は、メモリデバイスおよび/または大容量ストレージデバイスを含む、揮発性および/または不揮発性の任意のタイプのストレージデバイスとすることができる。ストレージデバイス114の例には、ランダムアクセスメモリ(RAM)デバイス(揮発性または不揮発性)、および読取り専用メモリ(ROM)デバイス、ならびに光ディスクおよび磁気ストレージ(ハードディスク、磁気テープなど)などの大容量ストレージデバイス、およびさらなるタイプのストレージなど、メモリデバイス(たとえば、半導体ストレージ)がある。
ストレージ仮想化は、物理ストレージから論理ストレージを抽象化する方法である。仮想ストレージを与えるように構成されたストレージシステムは、コンピュータがアクセスする論理ストレージロケーションをコンピュータに提示する。ストレージシステムが、論理ストレージロケーションを物理ストレージ中の物理ストレージロケーションにマップするように構成される。
たとえば、図1に示すように、ストレージアレイ106はアレイコントローラー112を含む。アレイコントローラー112が、ストレージデバイス114a〜114nの物理ストレージに基づいて論理ストレージをホストコンピュータ102a〜102cに割り当てるように構成される。たとえば、アレイコントローラー112が、ストレージアレイ106の物理ストレージデバイスのセットを組み合わせて、RAID(redundant array of independent disks)アレイまたはセットを作成するように構成される。RAIDセットはストレージデバイス114a〜114nの論理的構成体である。ストレージアレイ106がストレージアレイ106についての様々なタイプのRAIDセットに構成される。RAIDセットの一例は、ストレージデバイス114a〜114nがミラーイメージングストレージデバイスを含む、「RAID 1」である。代わりに、当業者によく知られているRAID 0、RAID 5、RAID 6、およびRAID 10構成を含む、RAIDセットのさらなるタイプを、ストレージアレイ106に含むことが可能である。アレイコントローラー112は、RAIDセットから使用可能なストレージスペースの一部分を使用して、LUN(論理ユニット番号)と呼ばれるハードドライブの仮想表現を生成する。ストレージアクセスのために、アレイコントローラー112によって、1つまたは複数のLUNがコンピュータ102a〜102cの各々に公開される。
たとえば、図2に、ストレージアレイ106が、仮想ストレージ202の形態で、アレイコントローラー106によってホストコンピュータ102a〜102cに提示される、図1のコンピューティングおよびデータストレージシステム100のブロック図を示す。図2に示すように、仮想ストレージ202は複数のLUN204a〜204mを含む。LUN204a〜204mが、各々、仮想ストレージとしてコンピュータ102a〜102cのうちの1つに提示される、(図1に示す)ストレージデバイス114a〜114nのストレージの一部として、アレイコントローラー112によって生成される。たとえば、図3に、図1に示すストレージデバイス114a〜114nのうちの1つの一例である、ストレージデバイス300のブロック図を示す。図3に示すように、ストレージデバイス300が複数のLUN302a〜302oに論理的に分割される。各LUN302は、ハードディスク全体、ハードディスクの一部(たとえば、ブロックの範囲)スピンドル、メモリデバイスのメモリ領域などを含む、ストレージデバイス300の任意の部分である。各LUN302がホストコンピュータに公開される。ホストコンピュータのオペレーティングシステムは、物理ストレージであるかのようにLUN302と対話する。
再び図2を参照すると、LUN204a〜204mが示されているが、数百、数千、またはさらによりたくさんのLUN204を含む任意の数のLUN204をストレージアレイ106中に含むことができる。さらに、任意の数のLUN204がコンピュータ102a〜102cの各々に提示される。各LUN204は、複数のアドレス指定可能なデータブロックを含む。LUN204a〜204中の特定のデータブロックが、特定のLUNを識別することによって、および1つまたは複数の論理ブロックアドレス(LBA)の形態で特定のLUN内のオフセットまたはロケーションを提供することによって、コンピュータ102によってアドレス指定される。
様々なタイプのデータおよび/またはアプリケーションが仮想ストレージ202に記憶される。そのようなデータおよびアプリケーションが本明細書では「データセット」と呼ばれる。データセットの一例は仮想マシンである。仮想マシンは、物理コンピュータと同様にプログラムを実行する、物理コンピュータのソフトウェア実装形態である。「システム仮想マシン」は、オペレーティングシステムを含む完全なコンピュータプラットフォームを与える。そのようなシステム仮想マシンは1つまたは複数のプログラムを実行する。「プロセス仮想マシン」が、単一のプログラムを実行するように設計される。仮想マシンの例には、SQLサーバー、Webサーバーなどがある。仮想マシンを表す1つまたは複数のファイルが「仮想イメージ」と呼ばれる。
現在、仮想マシンに対応する仮想イメージが、仮想ストレージシステムの独立したLUN(たとえば、図2に示すLUN204のうちの1つ)において利用可能になっている。そのような仮想ストレージシステムでは、LUNがホストコンピュータに公開されて、ホストコンピュータが仮想マシンを実行することを可能にする。ホストコンピュータによって多数の仮想マシン(たとえば、数百、数千、またはそれ以上の仮想マシン)が実装されている場合、仮想マシンイメージを含んでいる等しい数のLUNがホストコンピュータに公開される。
たとえば、図4に、複数の仮想マシン402a〜402pを実行するホストコンピュータ102aのブロック図を示す。さらに、図4は、仮想マシン402a〜402pのためのストレージとして、コンピュータ102aに割り当てられた複数のLUN204a〜204pを含む仮想ストレージ202を示す。図4に示すように、LUN204a〜204pの各々は、仮想ハードドライブ404a〜404pのうちの対応する1つを含む。仮想ハードドライブ404a〜404pは、仮想マシン402a〜402pに対応するデータについての仮想ストレージロケーションである。たとえば、仮想ハードドライブ404a〜404pは、各々、仮想マシン402a〜402pのうちの対応する1つとして、コンピュータ102aによって実行される1つまたは複数のファイルを記憶する。さらに、仮想ハードドライブ404a〜404pは、各々、仮想マシン402a〜402pの対応する1つに仮想ストレージを与える。
仮想マシンは、仮想ストレージから物理ストレージまでのいくつかのレベルの抽象化を介して、ストレージにアクセスする。いくつかの仮想マシンが「仮想サーバー」と呼ばれることもある。動作中、仮想マシン402aは、データのブロックをその仮想ハードドライブ404aに書き込もうと試みる。コンピュータ102aのオペレーティングシステム(OS)は、データブロック書込み動作を遮り、LUN204aに関してデータのブロックをどこに書き込むべきかを判定するために変換を実行する。たとえば、仮想マシン402aは、394のLBAを有するデータブロックを仮想ハードドライブ404aに書き込もうと試みる。OSは、仮想ハードドライブ404a中のデータブロックオフセット394がLUN204a中の9942のLBAに等しいと判定する。したがって、OSは、データブロックをLUN204aのLBA9942に書き込もうと試みる。アレイコントローラー112(図1中)は、ホストコンピュータ102aのOSからLBA9942についての書込み要求を受信し、データブロックをLBA9924に対応するストレージアレイ106中の実際の物理ロケーション(たとえば、ストレージデバイス114aの両方のスピンドル47およびスピンドル48上の現実のスピンドルブロック12345)に書き込む。
ホストコンピュータ102aは、大量のリソースを消費して、数百、数千、またはさらにより大きい数で番号付けする、LUN204a〜204pと仮想マシン402a〜402pとを管理し、インデックス付けする。LUN204a〜204pを物理ストレージかのように扱うホストコンピュータ102aは、LUN204a〜204pを監視して、LUN204a〜204pが適切に動作していることを確実にし、LUN204a〜204pを本質的に管理する。さらに、ストレージアレイ106中の各ストレージデバイスへの多くのパスが存在し、ホストコンピュータ102は、同様に、各パスを管理しようと試みる。この結果、ホストコンピュータ102aは大量のオーバーヘッドを維持することになる。単一のLUNがアタッチされたサーバーは、8つの関連するデバイスを管理することが一般的である。多数のLUN(および対応する複数のパス)がサーバーに公開された場合、サーバーは、パスとストレージデバイスとのセットを発見するのに大量の時間を要する。公開されたLUNの数が十分に多いと、サーバーは反応しなくなる、および/またはクラッシュする。したがって、極めて多数の仮想マシンを管理することは、独立したLUNに実装された仮想マシンでは、現実的に不可能である。
一実施形態では、(仮想ハードドライブとして記憶された)複数の仮想マシンを含む、複数のデータセットを記憶することができるLUNが与えられる。LUNが複数のパーティションに区分される。1つまたは複数のデータセットが各パーティションに記憶される。その結果、複数のデータセットへのアクセスを必要とするホストコンピュータは、データセットの数に比例した数のLUNを通してではなく、単一のLUNを通して複数のデータセットにアクセスすることができる。このようにして、ホストコンピュータによってトラッキングされるハードウェアの量(たとえば、ホストコンピュータによってハードウェアと見なされるLUN)が低減される。
たとえば、図5に、例示的な実施形態によるLUN500のブロック図を示す。図5に示すように、LUN500は複数のパーティション506a〜606pを含む。さらに、各パーティション506は、データセット508a〜508pのうちの対応する1つを記憶する。代わりに、2つ以上のデータセット508が各パーティション506に記憶される。複数のデータセットが1つのLUNに記憶されることを可能にすることによって、より少ない数のLUNがホストコンピュータに割り当てられて、ホストコンピュータが同じまたはより大きい数のデータセット(たとえば、LUNごとのパーティションの数の倍)にアクセスすることを可能にする。
実施形態では、アレイコントローラーまたはホストコンピュータは、図5に示すようにLUNを区分する。たとえば、図6に、例示的な実施形態によるホストコンピュータ602のブロック図を示す。ホストコンピュータ602は、コンピュータ102a〜102cのうちの1つの例である。図6に示すように、ホストコンピュータ602はLUNパーティショナー604を含む。LUNパーティショナー604は、ホストコンピュータ602が図5のLUN500などのLUNを複数のパーティション506に区分することを可能にするように構成される。
LUNパーティショナー604は、様々な方法でLUNを区分するように構成される。たとえば、図7に、例示的な実施形態による、LUNを区分するためのプロセスを提供するフローチャート700を示す。一実施形態では、図6に示すホストコンピュータ602によってフローチャート700が行われる。フローチャート700に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。フローチャート700を次のように説明する。
図7に示すように、フローチャート700はステップ702で開始する。ステップ702において、ストレージアレイによって第1のホストコンピュータに公開される論理ユニット番号(LUN)の指示を受信する。たとえば、一実施形態では、ホストコンピュータ602は、図2に示すアレイコントローラー112などのアレイコントローラーから、ホストコンピュータ602に公開される、図5に示すLUN500などのLUNの指示を受信する。LUN500がホストコンピュータ602に公開され、それによりホストコンピュータ602は仮想ストレージとしてLUN500にアクセスする。LUN500が、LUN識別子(たとえば、識別番号)と、LUN500によって提供されるストレージの量とによってホストコンピュータ602に示される。たとえば、論理ブロックアドレス(LBA)の範囲がホストコンピュータ602に与えられて、LUN500のストレージの量を示す。
ステップ704において、シグナチャとパーティションテーブルとをLUNに記憶する。たとえば、図5に示すように、LUNパーティショナー604は、シグナチャ502とパーティションテーブル504とをLUN500に記憶する。シグナチャ502は、LUN500についてのデジタルおよび/またはディスクシグナチャであり、LUN500について識別する情報を含む様々な情報を含む。パーティションテーブル504は、LUNパーティショナー604によってLUN500中に形成されたパーティションのロケーションおよびサイズを示すように構成された、データ構造である。
ステップ706において、LUNを複数のパーティションに区分する。一実施形態では、LUNパーティショナー604は、LUN500を複数のパーティション506a〜506pに区分するように構成される。LUN500は、ホストコンピュータ602によって必要とされ、LUN500のストレージの量に適合する任意の数のパーティション506を有する。LUNパーティショナー604は、パーティション506を生成し、パーティション506をパーティションテーブル504中に示す。たとえば、LUNパーティショナー604は、ベースLBA(たとえば、LBA0)からのLBAオフセットの形態で、パーティション506a〜506pをパーティションテーブル504中に示す。たとえば、パーティションテーブル504は、シグナチャ502についてのLUN500中のLBA範囲(たとえば、LBA0からLBA600)、パーティションテーブル504についてのLBA範囲(たとえば、LBA601からLBA10000)、パーティション506aについてのLBA範囲(たとえば、LBA10001からLBA123456)、パーティション506bについてのLBA範囲(たとえば、LBA123457からLBA654321)、パーティション506cについてのLBA範囲(たとえば、LBA654322からLBA999999)などを示す。
ステップ708において、複数のデータセットを複数のパーティションに記憶する。たとえば、図5に示すように、ホストコンピュータ602は、データセット508a〜508pの1つ(または複数)をパーティション506a〜506pの各々に記憶する。上記で説明したように、データセット508は、仮想マシン(仮想マシンハードドライブ)など、データおよび/またはアプリケーションを形成する1つまたは複数のファイルである。たとえば、図4に示すホストコンピュータ102aと同様に、ホストコンピュータ602は、複数の仮想マシン402a〜402pを動作させ、各仮想マシンは、図5に示すデータセット508a〜508pのうちの1つとして記憶された対応する仮想ハードドライブを有する。複数の仮想ハードドライブを、(データセット508として)LUN500に記憶することができるので、ホストコンピュータ602は、同じまたはさらにより多くの数の仮想マシンについてより少ないLUNを管理し、ホストコンピュータ602は、より高いレベルのストレージパフォーマンスでより多くの数の仮想マシンをサポートすることが可能になる。
さらに、複数のデータセットを記憶するLUNからのデータセットおよび/またはパーティションを「ピボットする」能力が可能になる。たとえば、LUN500は、データストアの形態として複数のパーティションにデータセット508a〜508pを記憶し、データセット508a〜508pの各々が、LUN500から、さらなるホストコンピュータに関連付けられたそれぞれのLUNにコピーされる。さらなるホストコンピュータは、それぞれのLUNにあるデータセットにアクセスすることができる。したがって、データセットの所有権が第1のホストコンピュータから第2のホストコンピュータにピボットされ、第2のホストコンピュータは、専用のLUNの形態でデータセットへのアクセスを与えられる。さらに、第2のホストコンピュータがデータセットへのアクセスを必要としなくなった場合、第2のホストコンピュータは、データセットを専用のLUNから再びマルチパーティションLUNにコピーすることによって、データセットの所有権を再び第1のホストコンピュータにピボットすることができる。
複数のデータセットをLUNに記憶し、データセットへのアクセスをさらなるLUNにピボットする能力により、ホストコンピュータの仮想マシンマネージャーが、比較的少ない数の仮想マシンを管理することから、数万、数十万、またはさらにより大きい数の仮想マシンを管理することにスケーリングすることを可能にする。さらに、ストレージアレイは、現在マルチパーティションLUNにおいて再び使用されていないLUNをパークする(park)ことが可能である。現在、市販のストレージアレイは、固定の数のLUNを記憶することができる。たとえば、Hopkinton、MAのEMC Corporationによって製造されるEMC CLARiiON(商標)ファミリシリーズは4096個のLUNをサポートするにすぎない。必要とされるまでデータセットがパークされることを可能にする、本明細書で説明する実施形態によれば、ストレージアレイは、従来可能な数よりも10倍多くLUNを記憶することができる。たとえば、特定の時間に4096個のLUNがストレージアレイによって公開されるが、40,000個のデータセットについて長期のストレージが可能である。
標準的なファイルサーバーは、データセットを分散させるために使用されるネットワーク共有上に多くのデータセットを記憶可能であることに留意されたい。ただし、上記で説明したように、ファイルシステムへのロー(raw)(たとえば、ブロックレベル(block level))アクセスと比較した場合、ネットワークアタッチトファイルシステム(network attached file system)は、速度および機能性が不足している。ネットワークアタッチトファイルシステム上で利用可能でない多くの高度な機能がブロックレベルアクセスシステムにとって利用可能である。たとえば、ネットワークアタッチトファイルシステムは、仮想ハードドライブのセットをドライブのセット上に散乱させ、それにより、仮想ハードドライブは連続しなくなる。対照的に、ブロックレベルアクセスシステムでは、異なる仮想ハードドライブがLUNの各パーティション中に配置される。各パーティションについて開始ブロックと終了ブロックとが知られているので、完全なブロックレベルローカリティが達成される。その結果、ホストコンピュータに公開されるLUNの数が低減され、連続したパフォーマンスおよびパフォーマンスのローカリティが達成される。
マルチパーティションLUNのデータセット/パーティションをさらなるLUNにピボットする例について、次のセクションにおいて説明し、LUNのデータセットをマルチパーティションLUNのパーティションにピボットする例について、後続のセクションにおいて説明する。
III.データセット/LUNパーティションをLUNにピボットするための例示的な実施形態
一実施形態では、データセットへのアクセスが第1のホストコンピュータから第2のホストコンピュータにピボットされる。たとえば、第2のホストコンピュータは、第1のホストコンピュータほどビジーではないので、または他の理由で、データセットのピボッティングが行われて、第2のホストコンピュータにおけるデータセットへのアクセスを与える。ピボッティングを行うようにストレージアレイのアレイコントローラーを構成することを含む様々な方法で、そのようなピボッティングが行われる。たとえば、図8に、例示的な実施形態によるアレイコントローラー802のブロック図を示す。アレイコントローラー802は、上述のアレイコントローラー112(図1および図2)と同様であり、相違を次のように説明する。図8に示すように、アレイコントローラー802はデータセットピボットモジュール804を含む。データセットピボットモジュール804により、アレイコントローラー802は、データセットへのアクセスをピボットすることが可能になる。たとえば、データセットピボットモジュール804が、図9に示すステップ902を行うように構成される。ステップ902において、データセットを含んでいるLUNパーティションを第2のLUNにマップすることによって、第1のホストコンピュータから第2のホストコンピュータにデータセットへのアクセスをピボットする。
アレイコントローラー802がステップ902を行うように様々な方法で構成され、ステップ902が様々な方法で行われる。たとえば、図10に、例示的な実施形態による、第1のホストコンピュータから第2のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャート1000を示す。フローチャート1000は、図9に示すステップ902の一例であり、一実施形態では、図8に示すアレイコントローラー802によって行われる。たとえば、図11に、例示的な実施形態による、アレイコントローラー802のブロック図を示す。フローチャート1000を、例示のために、図11に示すアレイコントローラー802の例に関して説明する。図11に示すように、アレイコントローラー802は、LUNアロケーター1102と、データセットピボットモジュール804とを含む。データセットピボットモジュール804は、ピボット要求レシーバー1104と、LUNジェネレーター1106と、パーティションコピアー1108とを含む。フローチャート1000に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。
説明のために、フローチャート1000を図12に関して次のように説明し、図12に、例示的な実施形態による、コンピューティングおよびデータストレージシステム1200のブロック図を示す。図12に示すように、システム1200は、第1のホストコンピュータ102aと、第2のホストコンピュータ102bと、ストレージアレイ1202とを含む。ストレージアレイ1202は、仮想ストレージ1204と、アレイコントローラー802とを含む。仮想ストレージ1204は、第1のLUN500と、第2のLUN1206とを含む(簡潔のために図12に示していない、追加のLUNがある)。図12は、データセット508aが第1のホストコンピュータ102aから第2のホストコンピュータ102bにピボットされることを示す。
図10に示すように、フローチャート1000は、ステップ1002で開始する。ステップ1002において、第1の論理ユニット番号(LUN)を、ストレージアレイから第1のホストコンピュータに公開する。たとえば、一実施形態では、LUNアロケーター1102によって、ステップ1002が行われる。図12を参照すると、LUNアロケーター1102は、(たとえば、図1および図2に示したものなど、通信媒体を介して)公開されたLUNインジケーター信号1218をコンピュータ102aに送信し、それにより、第1のLUN500がコンピュータ102aに割り当てられたことを示す。たとえば、公開されたLUNインジケーター信号1218は、第1のLUN500についての識別子(たとえば、識別番号、アドレスなど)および第1のLUN500中に含まれるストレージの量を含む。
ステップ1002の後に、第1のホストコンピュータ102aは、LUN500にデータを記憶することと、LUN500からデータを取り出すこととを含み、第1のLUN500のストレージにアクセスする。たとえば、第1のホストコンピュータ102aは、LUN500の指示を受信するステップ(ステップ702)と、シグナチャ502とパーティションテーブル504とをLUN500に記憶するステップ(ステップ704)と、LUN500を区分してパーティション506a、506bなどを作成するステップ(ステップ706)と、データセット508a、508bなどを、それぞれ、パーティション506a、506bなどに記憶するステップ(ステップ708)とを含む、上述のフローチャート700(図7)を行うことができる。
特定の時間に、第1のホストコンピュータ102aは、LUN500のデータセットが別のホストコンピュータにピボットされるべきであると判定する。たとえば、データセットをよりビジーでないホストコンピュータにピボットすることが望ましい。したがって、第1のホストコンピュータ102aは、図13に示すフローチャート1300を行う。フローチャート1300を次のように説明する。フローチャート1300のステップ1302において、複数のデータセットのうちの1つのデータセットを記憶する、複数のパーティションのうちの1つのパーティションへのアクセスを閉じる。たとえば、第1のホストコンピュータ102aは、データセット508aを記憶する第1のパーティション506aへのアクセスを閉じて、データセット508aがピボットされる準備をする。一実施形態では、第1のホストコンピュータ102aは、データセット508aへのそのオープンハンドル(open handle)を閉じ、データセット508aがアクセスされなくなると、第1のホストコンピュータ102aの論理ディスクマネージャーは、第1のパーティション506aへのドライブ文字とマッピングとを削除する。これにより、第1のホストコンピュータ102aが第1のパーティション506aを読み取ることおよび/または第1のパーティション506aに書き込むことを停止することを確実にする。ステップ1304において、データセットを記憶するパーティションに関するピボット要求をストレージアレイに送信する。たとえば、図12に示すように、第1のホストコンピュータ102aは、(たとえば、図1および図2に示したものなど、通信媒体を介して)ピボット要求信号をストレージアレイ1202に送信して、データセット508aが別のホストコンピュータにピボットされることを要求する。
再びフローチャート1000(図10)を参照すると、ステップ1004において、第1のLUNの複数のパーティションのうちのデータセットを記憶する第1のパーティションに関するピボット要求を、第1のホストコンピュータから受信する。たとえば、一実施形態では、ピボット要求レシーバー1104によってステップ1004が行われる。図12に示すように、ピボット要求レシーバー1104は、第1のパーティション506aのデータセット508aがピボットされるべきことを示すピボット要求信号1220を、第1のホストコンピュータ102aから受信する。その結果、ピボット要求レシーバー1104は、データセット508aに適応するようにLUNが生成されることを、LUNジェネレーター1106に示す。
ステップ1006において、第1のLUN中の第1のパーティションのサイズを判定する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1006が行われる。LUNジェネレーター1106は、第1のパーティション506aのサイズを任意の方法で判定する。たとえば、図12を参照すると、LUNジェネレーター1106は、パーティションテーブル504にアクセスして、第1のパーティション506aに割り当てられたLBAのオフセットおよび/または範囲を判定する。別の実施形態では、第1のホストコンピュータ102aは、第1のパーティション506aのサイズの指示をピボット要求レシーバー1104によって受信されるピボット要求信号1220に含ませ、ピボット要求レシーバー1104は、そのサイズ指示をLUNジェネレーター1106に与える。
ステップ1008において、第2のパーティションについてのロケーションおよびサイズを示すパーティションテーブルを生成する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1008が行われる。LUNジェネレーター1106が、新しいLUNにおいてデータセット508aを記憶するように構成された第2のパーティションを示すパーティションテーブルを生成するように構成される。新しいLUNにおける第2のパーティションについてのロケーション(たとえば、LBAオフセット)およびサイズ(たとえば、開始LBAおよび終了LBA)を示すように、パーティションテーブルが生成される。一実施形態では、パーティションテーブルは、他のパーティションではなく、第2のパーティションへの参照を含み、生成されたパーティションテーブル中の第2のパーティションの指示は、新しいLUNに対して生成されたシグナチャの直後にくる。
ステップ1010において、第2のLUNについてのシグナチャと、パーティションテーブルと、第2のパーティションとに適応するように構成されたサイズを有するように、ストレージアレイの第2のLUNを生成する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1010が行われる。LUNジェネレーター1106が、仮想ストレージ1204中の第2のLUNに含まれるべきストレージアレイ1202の物理ストレージの量を割り当てるように構成される。たとえば、図12に示すように、LUNジェネレーター1106は、第2のLUN1206を生成する。第2のLUN1206が、シグナチャと、ステップ1008において生成されたパーティションテーブルと、第2のパーティションとに適応するように構成されたサイズを有するように生成される。
ステップ1012において、シグナチャとパーティションテーブルとを第2のLUNに記憶する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1012が行われる。たとえば、図12に示すように、LUNジェネレーター1106は、シグナチャ1208とパーティションテーブル1210とを第2のLUN1206に記憶した。シグナチャ1208は、第2のLUN1206について識別する情報を含み、ステップ1008において、パーティションテーブル1210が生成された。
ステップ1014において、第2のパーティションについてのパーティションテーブルに示されたロケーションにおいて第1のLUNから第2のLUNに第1のパーティションをコピーする。たとえば、一実施形態では、パーティションコピアー1108によってステップ1014が行われる。パーティションコピアー1108が、ソースLUNから宛先LUNにパーティションをコピーするように構成される。コピーを開始するために、LUNジェネレーター1106は、パーティションコピアー1108に、宛先LUNが生成されたことを示す。たとえば、図12を参照すると、パーティションコピアー1108は、第1のLUN500の(データセット508aを含む)第1のパーティション506aを第2のLUN1206中の第2のパーティション1212にコピーする。図12に示すように、(点線によって示すように)データセット508aが第2のLUN1206のパーティション1212にコピーされる。パーティションコピアー1108は、当業者に知られている技法を含む任意の方法で、パーティションコピーを行う。たとえば、パーティションコピアー1108は、第1のパーティション506aの(たとえば、コピーオンライト(copy−on−write)スナップショット技術を使用する)スナップショットまたはクローンを行って、パーティション1212を生成する。たとえば、コピーコマンドが「スナップショットLUN500:パーティション506a」または「LUN500:LBA開始−LBA終了」の形態で発行され、ただし、「LBA開始」および「LBA終了」は、第1のLUN500中の第1のパーティション506aについてのそれぞれの開始するLBAおよび終了するLBAである。そのようなコピー動作は、ほぼ数秒単位など、比較的迅速に行われる。他の実施形態では、LUN1206は追加のストレージスペースを含むが、一実施形態では、LUN1206が、シグナチャ1208と、(シグナチャ1208に続く)パーティションテーブル1210と、(パーティションテーブル1210に続く)パーティション1212とによって完全に満たされる。
ステップ1016において、第2のLUNを第2のホストコンピュータにマップする。たとえば、一実施形態では、LUNアロケーター1102によってステップ1016が行われる。たとえば、ステップ1002と同様に、LUNアロケーター1102は、(たとえば、図1および図2に示したものなど、通信媒体を介して)公開されたLUNインジケーター信号を第2のホストコンピュータ102bに送信し、それにより、第2のLUN1206が第2のホストコンピュータ102bに割り当てられたことを示す。たとえば、公開されたLUNインジケーター信号1222は、第2のLUN1206についての識別子(たとえば、識別番号、アドレスなど)および第2のLUN1206中に含まれるストレージの量を含む。一実施形態では、第2のホストコンピュータ102bは、再スキャンコマンドを発行して、第2のLUN1206を検出し、公開されたLUNインジケーター信号1222によって第2のLUN1206をインポートするように要求される。
第2のLUN1206をインポートした後、第2のLUN1206は、直接アクセスデバイスと同様の方法で、第2のホストコンピュータ102bによってマウント可能および使用可能である。たとえば、一実施形態では、第2のホストコンピュータ102bは、図14に示すフローチャート1400を行う。フローチャート1400は、第2のホストコンピュータ102bにおいて使用可能な例示的なプロセスを提供する。フローチャート1400のステップ1402において、第2のホストコンピュータが第2のLUNをマウントすることを可能にする。たとえば、LUNアロケーター1102により、第2のホストコンピュータ102bが第2のLUN1206をマウントすることが可能になる。したがって、第2のホストコンピュータ102bは、第2のLUN1206のパーティション1212に記憶されたデータセット508aにアクセスする。たとえば、データセット508aが仮想マシンハードドライブである場合、第2のホストコンピュータ102bは、データセット508aの仮想マシンファイルを実行して、対応する仮想マシンを動作させる。したがって、フローチャート1400のステップ1404において、第2のホストコンピュータが仮想マシンを実行し、仮想マシンのためのストレージとして仮想ハードドライブにアクセスすることを可能にする。
IV.LUNをデータセット/LUNパーティションにピボットするための例示的な実施形態
一実施形態では、データセットへのアクセスが第2のホストコンピュータから再び第1のホストコンピュータに(または別のホストコンピュータに)ピボットされる。第2のホストコンピュータはデータセットとさらに対話する必要がなく、したがって、データセットが(たとえば、一時的にまたは最終的に)使用中止されるので、または他の理由で、データセットのそのようなピボッティングが行われる。そのようなピボッティングが、ストレージアレイのアレイコントローラーを使用してピボッティングを行うことを含む様々な方法で行われる。たとえば、一実施形態では、図8に示すアレイコントローラー802が、ピボッティングを行うように構成される。データセットピボットモジュール804により、アレイコントローラー802が、データセットへのアクセスを再び第1のホストコンピュータ(または別のホストコンピュータ)にピボットすることが可能になる。たとえば、データセットピボットモジュール804が、図15に示すステップ1502を行うように構成される。ステップ1502において、データセットを含んでいるLUNをLUNパーティションにマップすることによって、第2のホストコンピュータから第1のホストコンピュータにデータセットへのアクセスをピボットする。
データセットピボットモジュール804がステップ1502を行うように様々な方法で構成され、ステップ1502が様々な方法で行われる。たとえば、図16に、例示的な実施形態による、第2のホストコンピュータから第1のホストコンピュータ(または別のホストコンピュータ)にデータセットをピボットするためのプロセスを提供するフローチャート1600を示す。フローチャート1600は、図15に示すステップ1502の一例であり、一実施形態では、図11に示すアレイコントローラー802によって行われる。フローチャート1600に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。
説明のために、フローチャート1600を、図17に関して次のように説明し、図17に、例示的な実施形態による、図12のコンピューティングおよびデータストレージシステム1200のブロック図を示す。図17は、データセット508aが第2のホストコンピュータ102bから第1のホストコンピュータ102aにピボットされることを示す。
図16に示すように、フローチャート1600はステップ1602で開始する。ステップ1602において、ストレージアレイの第1のLUNを第1のホストコンピュータに公開し、ストレージアレイの第2のLUNを第2のホストコンピュータに公開する。たとえば、図17を参照すると、第1のLUN500が第1のホストコンピュータ102aに公開され、第2のLUN1206が第2のホストコンピュータ102bに公開される。一実施形態では、上記で説明したように、フローチャート1000のステップ1002(図10)に従って、第1のLUN500を第1のホストコンピュータ102aに公開し、フローチャート1000のステップ1016に従って、第2のLUN1206を第2のホストコンピュータ102bに公開する。
特定の時間に、第2のホストコンピュータ102bは、データセット508aが再び第1のホストコンピュータ102aに(または別のホストコンピュータに)ピボットされるべきと判定する。したがって、第2のホストコンピュータ102bは、図18に示すフローチャート1800を行う。フローチャート1800を次のように説明する。フローチャート1800のステップ1802において、第2のホストに公開された論理ユニット番号(LUN)においてデータセットを記憶するパーティションへのアクセスを閉じる。たとえば、第2のホストコンピュータ102bは、データセット508aを記憶する第2のLUN1206のパーティション1212へのアクセスを閉じて、データセット508aがピボットされる準備をする。一実施形態では、第2のホストコンピュータ102bは、データセット508aへのオープンハンドルを閉じ、データセット508aがアクセスされなくなると、第2のホストコンピュータ102bの論理ディスクマネージャーは、パーティション1212へのドライブ文字とマッピングとを削除する。これにより、第2のホストコンピュータ102bが、パーティション1212を読み取ることおよび/またはパーティション1212に書き込むことを停止することを確実にする。ステップ1804において、LUNを使用中止する要求をストレージアレイに送信する。たとえば、図18に示すように、第2のホストコンピュータ102bは、(たとえば、図1および図2に示したものなど、通信媒体を介して)使用中止またはピボット要求信号1702をストレージアレイ1202に送信して、データセット508aが使用中止されるおよび/または別のホストコンピュータにピボットされることを要求する。
再びフローチャート1600(図16)を参照すると、ステップ1604において、第2のホストコンピュータから、第2のLUNを使用中止する要求を受信する。たとえば、一実施形態では、ピボット要求レシーバー1104によってステップ1604が行われる。図17に示すように、ピボット要求レシーバー1104は、第2のホストコンピュータ102bから使用中止要求信号(retire request signal)1702を受信する。使用中止要求信号1702は、パーティション1212に記憶されたデータセット508aが、再び、ストレージライブラリとして動作するマルチパーティションLUNにピボットされるべきであることを示す。
ステップ1606において、第2のLUN中のパーティションのサイズを判定する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1606が行われる。LUNジェネレーター1106は、任意の方法で、パーティション(たとえば、パーティション1212)のサイズを判定する。たとえば、図17を参照すると、LUNジェネレーター1106は、LUN1206のパーティションテーブル1210にアクセスして、パーティション1212に割り当てられたLBAのオフセットおよび/または範囲を判定する。別の実施形態では、第2のホストコンピュータ102bは、パーティション1212のサイズの指示を、ピボット要求レシーバー1104によって受信される使用中止要求信号1702に含めて、ピボット要求レシーバー1104は、そのサイズ指示をLUNジェネレーター1106に与える。
ステップ1608において、データセットのコピーを第1のLUNに記憶する。たとえば、一実施形態では、パーティションコピアー1108によってステップ1608が行われる。上記で説明したように、パーティションコピアー1108が、ソースLUNから宛先LUNにパーティションをコピーするように構成される。たとえば、図17を参照すると、パーティション1212が、第1のパーティション506aのサイズを超えない(たとえば、それ以下の)(ステップ1606において判定された)サイズを有する場合、パーティションコピアー1108は、第2のLUN1206の(データセット508aを含む)パーティション1212を第1のLUN500中の第1のパーティション506aにコピーするか、またはパーティション1212を第1のLUN500の別のパーティションにコピーする。一実施形態では、第2のLUN1206中のパーティション1212のサイズが第1のLUN500中の第1のパーティション506aのサイズを超える場合、アレイコントローラー802によって、ストレージアレイ1202のストレージ領域を第1のLUN500に追加することによって、第1のLUN500のサイズが増加される(たとえば、第1のLUN500のサイズが増大される)。そのような場合、データセット508aのコピーが、第1のLUN500に追加されたストレージ領域に記憶される。第1のホストコンピュータ102aは、第1のLUN500をマウント解除し、再マウントして、追加されたストレージ領域にアクセスすることが可能になる。
図17の例では、(点線によって示すように)データセット508aが第1のLUN500の第1のパーティション506aにコピーされる。パーティションコピアー1108は、フローチャート1000のステップ1014(図10)に関して上記で説明した技法を含む、当業者に知られている任意の方法で、パーティションコピーを行う。そのようなコピー動作は、ほぼ数秒単位で行われることを含み、比較的迅速に行われる。
ステップ1610において、データセットのコピーを記憶している第1のLUNのストレージ領域に対応するパーティションを含めるために、第1のLUNのパーティションテーブルを更新する。たとえば、一実施形態では、LUNジェネレーター1106によってステップ1610が行われる。図17の例では、LUNジェネレーター1106が、データセット508aを第1のパーティション506a、または第1のLUN500の他のパーティションにコピーすることに従って、第1のLUN500のパーティションテーブル504を更新するように構成される。第1のLUN500を増大させて、データセット508aを記憶するための新しいパーティションを作成する場合、LUNジェネレーター1106によって、新しいパーティションのロケーションおよび/またはサイズがパーティションテーブル504に示される。次いで、第1のホストコンピュータ102aは、必要な場合、第1のLUN500をアンマウントし、再マウントして、第1のホストコンピュータ102aのメモリ/キャッシュ中のパーティションテーブルを更新する。
本明細書で説明する実施形態は、仮想マシンファイルなど、データセットが、リアルタイムでマルチパーティションLUNに記憶され、1つまたは複数のファイルとして専用のLUNに記憶されることを可能にし、そのデータセットがホストコンピュータに公開される。マルチパーティションLUNは、仮想ハードドライブの統合されたライブラリとして動作する。データセットを配置することが望まれる場合、データセットがLUNに変換され、宛先ホストに割り当てられる。所望のデータセットを含んでいるマルチパーティションLUNのパーティションが、(たとえば、ハードウェアコピーオンライトスナップショット技術を使用して)専用のLUNに比較的迅速に複製される(たとえば、テラバイトにつき数秒)。次いで、専用のLUNにコピーされたデータセットが新しいサーバーに公開され、直接アタッチされたLUNとしてアクセスされる。この技法が、仮想マシンの迅速な展開を可能にするために使用され、より大きいデータベース上のデータマイニングを可能にするために使用され、および/またはストレージアレイがその従来のLUNマップ制限を10×または100×にスケーリングすることを可能にし、ストレージアレイが長期レポジトリとして使用されることを可能にするために使用される。オートローダーコマンドがストレージアレイ内で再マップされて、パーティションを再び個別のLUNに再ポピュレートすることを可能にするので、そのようなストレージアレイは、仮想テープライブラリをシミュレートすることが可能になる。
V.さらなる例示的な実施形態
アレイコントローラー112(図1、図2)と、LUNパーティショナー604(図6)と、アレイコントローラー802(図8、図11、図12、図17)と、データセットピボットモジュール804(図8、図11、図12、図17)と、LUNアロケーター1102(図11、図12、図17)と、ピボット要求レシーバー1104(図11、図12、図17)と、LUNジェネレーター1106(図11、図12、図17)と、パーティションコピアー1108(図11、図12、図17)とが、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装することができる。たとえば、アレイコントローラー112、LUNパーティショナー604、アレイコントローラー802、データセットピボットモジュール804、LUNアロケーター1102、ピボット要求レシーバー1104、LUNジェネレーター1106、および/またはパーティションコピアー1108が、1つまたは複数のプロセッサ中で実行されるように構成されたコンピュータプログラムコードとして実装することができる。代わりに、アレイコントローラー112、LUNパーティショナー604、アレイコントローラー802、データセットピボットモジュール804、LUNアロケーター1102、ピボット要求レシーバー1104、LUNジェネレーター1106、および/またはパーティションコピアー1108がハードウェア論理/電気回路として実装することができる。
図19に、本発明の実施形態が実装されるコンピュータ1900の例示的な実装形態を示す。たとえば、コンピュータ102a〜102c(図1、図12、図17)および/またはコンピュータ602(図6)は、コンピュータ1900と同様に実装され、コンピュータ1900の1つまたは複数の特徴および/または代替的特徴を含む。たとえば、コンピュータ1900は、従来のパーソナルコンピュータ、モバイルコンピュータ、またはワークステーションの形態の汎用コンピューティングデバイスでもよく、またはコンピュータ1900は、専用コンピューティングデバイスでもよい。本明細書で提供するコンピュータ1900の説明は、例示の目的で提供され、限定するものではない。本発明の実施形態が、当業者に知られているであろうさらなるタイプのコンピュータシステムにおいて実装することができる。
図19に示すように、コンピュータ1900は、処理ユニット1902と、システムメモリ1904と、システムメモリ1904を含む様々なシステム構成要素を処理ユニット1902に結合するバス1906とを含む。バス1906は、メモリバスまたはメモリコントローラー、周辺バス、Accelerated Graphics Port、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を表す。システムメモリ1904は、読取り専用メモリ(ROM)1908と、ランダムアクセスメモリ(RAM)1910とを含む。基本入出力システム1912(BIOS)がROM1908に記憶される。
コンピュータ1900はまた、次のドライブ、すなわち、ハードディスクから読み取り、ハードディスクに書き込むためのハードディスクドライブ1914、リムーバブル磁気ディスク1918から読み取り、リムーバブル磁気ディスク1918に書き込むための磁気ディスクドライブ1916、およびCD ROM、DVD ROMなど、リムーバブル光ディスク1922から読み取り、リムーバブル光ディスク1922に書き込むための光ディスクドライブ1920、または他の光メディアのうちの1つまたは複数を有する。ハードディスクドライブ1914、磁気ディスクドライブ1916、および光ディスクドライブ1920が、それぞれ、ハードディスクドライブインターフェイス1924、磁気ディスクドライブインターフェイス1926、および光ドライブインターフェイス1928によってバス1906に接続される。ドライブと、それらの関連付けられたコンピュータ可読媒体とは、コンピュータ可読命令、データ構造、プログラムモジュールおよびコンピュータについての他のデータの不揮発性ストレージを与える。ハードディスク、リムーバブル磁気ディスクおよびリムーバブル光ディスクについて説明しているが、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)など、他のタイプのコンピュータ可読媒体がデータを記憶するために使用することができる。
いくつかのプログラムモジュールが、ハードディスク、磁気ディスク、光ディスク、ROM、またはRAM上に記憶される。これらのプログラムは、オペレーティングシステム1930と、1つまたは複数のアプリケーションプログラム1932と、他のプログラムモジュール1934と、プログラムデータ1936とを含む。アプリケーションプログラム1932またはプログラムモジュール1934は、たとえば、アレイコントローラー112、LUNパーティショナー604、アレイコントローラー802、データセットピボットモジュール804、LUNアロケーター1102、ピボット要求レシーバー1104、LUNジェネレーター1106、および/またはパーティションコピアー1108、フローチャート700、ステップ902、フローチャート1000、フローチャート1300、フローチャート1400、ステップ1502、フローチャート1600、フローチャート1800、(フローチャート700、1000、1300、1400、1600、および1800のうちのいずれかのステップを含む)、および/または上記で説明した任意のさらなる実施形態を実装する/可能にするためのコンピュータプログラム論理を含む。
ユーザーは、キーボード1938およびポインティングデバイス1940などの入力デバイスを介して、コマンドおよび情報をコンピュータ1900に入力する。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナーなどを含む。これらおよび他の入力デバイスが、しばしば、バス1906に結合されたシリアルポートインターフェイス1942を介して処理ユニット1902に接続されるが、パラレルポート、ゲームポート、またはUSB(universal serial bus)など、他のインターフェイスによって接続されてもよい。
また、モニター1944または他のタイプのディスプレイデバイスがビデオアダプター1946などのインターフェイスを介してバス1906に接続される。モニターに加えて、コンピュータ1900は、スピーカーおよびプリンターなど、他の周辺出力デバイス(図示せず)を含む。
コンピュータ1900が、ネットワークアダプターもしくはインターフェイス1950、モデム1952、またはネットワーク上での通信を確立するための他の手段を介して、ネットワーク1948(たとえば、インターネット)に接続される。内部でも外部でもよいモデム1952がシリアルポートインターフェイス1942を介してバス1906に接続される。
本明細書で使用する、「コンピュータプログラム媒体」および「コンピュータ可読媒体」という用語が、概して、ハードディスクドライブ1914に関連付けられたハードディスク、リムーバブル磁気ディスク1918、リムーバブル光ディスク1922、ならびにフラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)など、他のメディアなどのメディアを指すために使用される。
上記のように、(アプリケーションプログラム1932および他のプログラムモジュール1934を含む)コンピュータプログラムおよびモジュールが、ハードディスク、磁気ディスク、光ディスク、ROM、またはRAMに記憶される。そのようなコンピュータプログラムがまた、ネットワークインターフェイス1950またはシリアルポートインターフェイス1942を介して受信される。そのようなコンピュータプログラムは、アプリケーションによって実行されたかまたは読み込まれた場合、コンピュータ1900が、本明細書で説明する本発明の実施形態の特徴を実装することを可能にする。したがって、そのようなコンピュータプログラムは、コンピュータ1900のコントローラーを表す。
本発明はまた、任意のコンピュータ使用可能媒体上に記憶されたソフトウェアを含むコンピュータプログラム製品を対象とする。そのようなソフトウェアは、1つまたは複数のデータ処理デバイスにおいて実行された場合、(1つまたは複数の)データ処理デバイスを本明細書で説明するように動作させる。本発明の実施形態は、現在知られている、または将来知られる任意のコンピュータ使用可能媒体またはコンピュータ可読媒体を採用する。コンピュータ可読媒体の例には、限定はしないが、RAM、ハードドライブ、フロッピーディスク、CD ROM、DVD ROM、ジップディスク、テープ、磁気ストレージデバイス、光ストレージデバイス、MEM、ナノテクノロジーベースのストレージデバイスなどのストレージデバイスがある。
VI.結び
本発明の様々な実施形態について上述したが、それらの実施形態が、限定ではなく例としてのみ提示されていることを理解されたい。添付の特許請求の範囲において定義される、本発明の趣旨および範囲から逸脱することなく、形態および詳細の様々な変更を行うことができることが、当業者には理解されよう。したがって、本発明の広さおよび範囲は上記で説明された例示的な実施形態のいずれかによって限定されるべきではなく、以下の特許請求の範囲およびその均等物に従ってのみ規定されるべきである。

Claims (15)

  1. ストレージアレイコントローラーにおける方法(1000)であって、
    ストレージアレイから第1のホストコンピュータに第1の論理ユニット番号(LUN)を公開するステップ(1002)と、
    前記第1のLUNの複数のパーティションのうちの第1のパーティションに関するピボット要求を、前記第1のホストコンピュータから受信するステップであって、前記第1のパーティションが、前記複数のパーティションに記憶された複数のデータセットのうちの1つのデータセットを記憶する、受信するステップ(1004)と、
    前記第1のLUN中の前記第1のパーティションのサイズを判定するステップ(1006)と、
    第2のパーティションについてのロケーションおよびサイズを示すパーティションテーブルを生成するステップであって、前記第2のパーティションの前記サイズが、前記判定された第1のパーティションサイズよりも大きいかまたはそれに等しい(≧)、生成するステップ(1008)と、
    前記第2のLUNについてのシグナチャと、前記パーティションテーブルと、前記第2のパーティションとに適応するように構成されたサイズを有するように、前記ストレージアレイの第2のLUNを生成するステップ(1010)と、
    前記シグナチャと前記パーティションテーブルとを前記第2のLUNに記憶するステップ(1012)と、
    前記第2のパーティションについての前記パーティションテーブルに示された前記ロケーションにおいて前記第1のLUNから前記第2のLUNに前記第1のパーティションをコピーするステップ(1014)と、
    前記第2のLUNを第2のホストコンピュータにマップするステップ(1016)と
    を含む方法。
  2. 前記データセットが、仮想マシンのための仮想ハードドライブであることを特徴とする請求項1に記載の方法。
  3. 前記マップするステップが、
    前記第2のホストコンピュータが前記第2のLUNをマウントすることを可能にするステップと、
    前記第2のホストコンピュータが、前記仮想マシンを実行し、前記仮想マシンのためのストレージとして前記仮想ハードドライブにアクセスすることを可能にするステップと
    を含むことを特徴とする請求項2に記載の方法。
  4. 前記第1のLUN中の前記第1のパーティションのサイズを判定する前記ステップが、
    前記パーティションの前記第1のLUNにおける開始論理ブロックアドレス(LBA)と終了LBAとを判定するステップ
    を含むことを特徴とする請求項1に記載の方法。
  5. 前記コピーするステップが、
    前記第1のパーティションのコピーオンライトスナップショットまたはクローンを行って、前記第1のLUNから前記第2のLUNに前記第1のパーティションをコピーするステップ
    を含むことを特徴とする請求項1に記載の方法。
  6. 前記第2のホストコンピュータから、前記第2のLUNを使用中止する要求を受信するステップと、
    前記第2のパーティションのサイズを判定するステップと、
    前記第2のパーティションのコピーを前記第1のLUNに記憶するステップと、
    前記第2のパーティションの前記コピーが記憶されている前記第1のLUNのストレージ領域に対応するパーティションを含めるために、前記第1のLUNのパーティションテーブルを更新するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  7. 前記第2のパーティションのコピーを前記第1のLUNに記憶する前記ステップが、
    前記第2のパーティションの前記判定されたサイズが、前記第1のLUN中の前記第1のパーティションのサイズを超えない場合、前記第2のパーティションの前記コピーを前記第1のLUNの前記第1のパーティションに記憶するステップ
    を含むことを特徴とする請求項6に記載の方法。
  8. 前記第2のパーティションのコピーを前記第1のLUNに記憶する前記ステップが、
    前記第2のパーティションの前記判定されたサイズが前記第1のLUN中の前記第1のパーティションの前記サイズを超える場合、
    ストレージ領域を前記第1のLUNに追加することによって、前記第1のLUNのサイズを増大させるステップと、
    前記第2のパーティションの前記コピーを前記第1のLUNの前記追加されたストレージ領域に記憶するステップと
    をさらに含むことを特徴とする請求項7に記載の方法。
  9. その上にコンピュータプログラム論理が記録されたコンピュータ可読媒体を含む、コンピュータプログラム製品であって、
    プロセッサが請求項1〜8のいずれか一項を行うことを可能にするためのコンピュータプログラム論理手段(1934)
    を含むコンピュータプログラム製品。
  10. ストレージアレイ(1202)から第1のホストコンピュータ(102a)に第1の論理ユニット番号(LUN)(500)を公開するための手段(1102)と、
    前記第1のLUN(500)の複数のパーティション(506a〜506p)のうちの第1のパーティション(506a)に関するピボット要求(1220)を、前記第1のホストコンピュータ(102a)から受信するための手段であって、前記第1のパーティション(506a)が、前記複数のパーティション(506a〜506p)に記憶された複数のデータセット(508a〜508p)のうちの1つのデータセット(508a)を記憶する、受信するための手段(1104)と、
    前記第1のLUN(500)中の前記第1のパーティション(506a)のサイズを判定するための手段(1106)と、
    第2のパーティション(1212)についてのロケーションおよびサイズを示すパーティションテーブル(1210)を生成するための手段であって、前記第2のパーティション(1212)の前記サイズが、前記判定された第1のパーティションサイズよりも大きいかまたはそれに等しい(≧)、生成するための手段(1106)と、
    前記第2のLUN(1206)についてのシグナチャ(1208)と、前記パーティションテーブル(1210)と、前記第2のパーティション(1212)とに適応するように構成されたサイズを有するように、前記ストレージアレイ(1202)の第2のLUN(1206)を生成するための手段(1106)と、
    前記シグナチャ(1208)と前記パーティションテーブル(1210)とを前記第2のLUN(1206)に記憶するための手段(1106)と、
    前記第2のパーティション(1212)についての前記パーティションテーブル(1210)に示された前記ロケーションにおいて前記第1のLUN(500)から前記第2のLUN(1206)に前記第1のパーティション(506a)をコピーするための手段(1108)と、
    前記第2のLUN(1206)を第2のホストコンピュータ(102b)にマップするための手段(1102)と
    を含むストレージアレイコントローラー(802)。
  11. 前記データセットが、仮想マシンのための仮想ハードドライブであることを特徴とする請求項10に記載のストレージアレイコントローラー。
  12. マップするための前記手段が、
    前記第2のホストコンピュータが前記第2のLUNをマウントすることを可能にするための手段と、
    前記第2のホストコンピュータが前記仮想マシンを実行し、前記仮想マシンのためのストレージとして前記仮想ハードドライブにアクセスすることを可能にするための手段と
    を含むことを特徴とする請求項11に記載のストレージアレイコントローラー。
  13. 判定するための前記手段が、
    前記パーティションの前記第1のLUNにおける開始論理ブロックアドレス(LBA)と終了LBAとを判定するための手段
    を含むことを特徴とする請求項10に記載のストレージアレイコントローラー。
  14. コピーするための前記手段が、
    前記第1のパーティションのコピーオンライトスナップショットまたはクローンを行って、前記第1のLUNから前記第2のLUNに前記第1のパーティションをコピーするための手段
    を含むことを特徴とする請求項10に記載のストレージアレイコントローラー。
  15. 前記第2のホストコンピュータから、前記第2のLUNを使用中止する要求を受信するための手段と、
    前記第2のパーティションのサイズを判定するための手段と、
    前記第2のパーティションのコピーを前記第1のLUNに記憶するための手段と、
    前記第2のパーティションの前記コピーが記憶されている前記第1のLUNのストレージ領域に対応するパーティションを含めるために、前記第1のLUNのパーティションテーブルを更新するための手段と
    をさらに含むことを特徴とする請求項10に記載のストレージアレイコントローラー。
JP2012510905A 2009-05-12 2010-05-10 リアルタイムでlunをファイルに、またはファイルをlunに変換すること Expired - Fee Related JP5276218B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/464,329 US8074038B2 (en) 2009-05-12 2009-05-12 Converting luns into files or files into luns in real time
US12/464,329 2009-05-12
PCT/US2010/034276 WO2010132375A2 (en) 2009-05-12 2010-05-10 Converting luns into files or files into luns in real time

Publications (3)

Publication Number Publication Date
JP2012527046A true JP2012527046A (ja) 2012-11-01
JP2012527046A5 JP2012527046A5 (ja) 2013-03-21
JP5276218B2 JP5276218B2 (ja) 2013-08-28

Family

ID=43069444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012510905A Expired - Fee Related JP5276218B2 (ja) 2009-05-12 2010-05-10 リアルタイムでlunをファイルに、またはファイルをlunに変換すること

Country Status (7)

Country Link
US (3) US8074038B2 (ja)
EP (1) EP2430560A4 (ja)
JP (1) JP5276218B2 (ja)
KR (1) KR101624376B1 (ja)
CN (1) CN102422277B (ja)
CA (2) CA2953608A1 (ja)
WO (1) WO2010132375A2 (ja)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008201035A1 (en) * 2007-04-13 2008-10-30 Acei Ab A partition management system
US8074038B2 (en) * 2009-05-12 2011-12-06 Microsoft Corporation Converting luns into files or files into luns in real time
US8943203B1 (en) 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
US8473777B1 (en) 2010-02-25 2013-06-25 Netapp, Inc. Method and system for performing recovery in a storage system
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US8522068B2 (en) 2011-05-02 2013-08-27 International Business Machines Corporation Coordinated disaster recovery production takeover operations
US8850139B2 (en) 2011-05-11 2014-09-30 International Business Machines Corporation Changing ownership of cartridges
US8402177B2 (en) 2011-06-29 2013-03-19 Hewlett-Packard Development Company, L.P. Inferring host storage topology
US9952807B1 (en) * 2011-06-30 2018-04-24 EMC IP Holding Company LLC Virtual machine back-up
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9027019B2 (en) * 2011-09-22 2015-05-05 Cisco Technology, Inc. Storage drive virtualization
CN104040515B (zh) * 2011-09-30 2018-05-11 英特尔公司 在逻辑驱动器模型下呈现直接存取的存储设备
US9104330B1 (en) * 2012-06-30 2015-08-11 Emc Corporation System and method for interleaving storage
US9582218B2 (en) * 2013-01-09 2017-02-28 Cisco Technology, Inc. Serial attached storage drive virtualization
US9582219B2 (en) * 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
CN103618627B (zh) * 2013-11-27 2017-01-04 华为技术有限公司 一种管理虚拟机的方法、装置及系统
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
US9841991B2 (en) 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
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
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
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
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
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
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
CN109286792B (zh) * 2014-07-28 2020-12-25 华为数字技术(成都)有限公司 一种监控视频存储方法及装置
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
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
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9841904B2 (en) * 2015-03-02 2017-12-12 Samsung Electronics Co., Ltd. Scalable and configurable non-volatile memory module array
US20160259573A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Virtual tape storage using inter-partition logical volume copies
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
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
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
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
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
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
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
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
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
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10370800B2 (en) 2016-08-15 2019-08-06 Sno-Way International, Inc. Hopper spreader with back EMF control and hopper system speed control
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
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
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
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
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
US11288003B2 (en) * 2017-04-28 2022-03-29 Netapp, Inc. Cross-platform replication of logical units
US10587685B2 (en) * 2017-04-28 2020-03-10 Netapp Inc. Cross-platform replication of logical units
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
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
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
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10802983B2 (en) * 2018-05-31 2020-10-13 Vmware, Inc. Programmable block storage addressing using embedded virtual machines
CN110704237B (zh) * 2018-07-10 2023-07-07 Emc Ip控股有限公司 用于无代理程序的分区备份的方法、设备和数据处理系统
CN109254724B (zh) * 2018-07-17 2022-03-08 中国航空无线电电子研究所 可配置多分区的嵌入式虚拟化机载存储系统
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
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11573962B2 (en) * 2018-10-19 2023-02-07 Oracle International Corporation Dynamic performance tuning based on implied data characteristics
US11568179B2 (en) 2018-10-19 2023-01-31 Oracle International Corporation Selecting an algorithm for analyzing a data set based on the distribution of the data set
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
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
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
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
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
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2005222123A (ja) * 2004-02-03 2005-08-18 Hitachi Ltd 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
WO2007002398A2 (en) * 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
JP2007310772A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd ストレージシステム及び通信制御方法
JP2007334878A (ja) * 2006-06-13 2007-12-27 Hitachi Ltd データを長期間アーカイブするシステムと方法
US7937545B1 (en) * 2006-03-29 2011-05-03 Symantec Operating Corporation Method and apparatus for file-level restore from raw partition backups

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526478B1 (en) * 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7251691B2 (en) * 2003-07-11 2007-07-31 International Business Machines Corporation Autonomic predictive load balancing of output transfers for two peer computers for data storage applications
US7460672B2 (en) * 2003-07-18 2008-12-02 Sanrad, Ltd. Method for securing data storage in a storage area network
JP4307202B2 (ja) * 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
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
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
JP4819369B2 (ja) * 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
US7484056B2 (en) * 2006-06-29 2009-01-27 Emc Corporation Partitioning of a storage array into N-storage arrays using full array non-disruptive data migration
JP4963892B2 (ja) 2006-08-02 2012-06-27 株式会社日立製作所 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
US20080189700A1 (en) * 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US8479194B2 (en) * 2007-04-25 2013-07-02 Microsoft Corporation Virtual machine migration
US8095753B1 (en) * 2008-06-18 2012-01-10 Netapp, Inc. System and method for adding a disk to a cluster as a shared resource
US8074038B2 (en) * 2009-05-12 2011-12-06 Microsoft Corporation Converting luns into files or files into luns in real time

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2005222123A (ja) * 2004-02-03 2005-08-18 Hitachi Ltd 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
WO2007002398A2 (en) * 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
US7937545B1 (en) * 2006-03-29 2011-05-03 Symantec Operating Corporation Method and apparatus for file-level restore from raw partition backups
JP2007310772A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd ストレージシステム及び通信制御方法
JP2007334878A (ja) * 2006-06-13 2007-12-27 Hitachi Ltd データを長期間アーカイブするシステムと方法

Also Published As

Publication number Publication date
US20120066452A1 (en) 2012-03-15
JP5276218B2 (ja) 2013-08-28
WO2010132375A3 (en) 2011-02-17
US20130290631A1 (en) 2013-10-31
CA2953608A1 (en) 2010-11-18
WO2010132375A2 (en) 2010-11-18
US8880825B2 (en) 2014-11-04
US8473698B2 (en) 2013-06-25
EP2430560A4 (en) 2016-10-26
KR101624376B1 (ko) 2016-05-25
EP2430560A2 (en) 2012-03-21
CN102422277B (zh) 2013-09-18
CA2758304C (en) 2017-07-04
CA2758304A1 (en) 2010-11-18
CN102422277A (zh) 2012-04-18
US20100293349A1 (en) 2010-11-18
US8074038B2 (en) 2011-12-06
KR20120018314A (ko) 2012-03-02

Similar Documents

Publication Publication Date Title
JP5276218B2 (ja) リアルタイムでlunをファイルに、またはファイルをlunに変換すること
US8966476B2 (en) Providing object-level input/output requests between virtual machines to access a storage subsystem
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
KR102047558B1 (ko) 가상 디스크 저장 기술
US8966188B1 (en) RAM utilization in a virtual environment
US11734040B2 (en) Efficient metadata management
US10782904B2 (en) Host computing arrangement, remote server arrangement, storage system and methods thereof
US9971527B2 (en) Apparatus and method for managing storage for placing backup data into data blocks based on frequency information
US11144252B2 (en) Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object
JP2014501962A (ja) 仮想マシンのデータへアクセスするための方法および装置
JP2012104097A (ja) ストレージシステムにおける要求に対する応答に関連した待ち時間削減
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
US11677633B2 (en) Methods and systems for distributing topology information to client nodes
WO2017126003A1 (ja) 複数種類のメモリデバイスを含む計算機システム及び方法
EP3959611A1 (en) Intra-device notational data movement system
US10152234B1 (en) Virtual volume virtual desktop infrastructure implementation using a primary storage array lacking data deduplication capability
US11010091B2 (en) Multi-tier storage
US20230127387A1 (en) Methods and systems for seamlessly provisioning client application nodes in a distributed system
US20230130893A1 (en) Methods and systems for seamlessly configuring client nodes in a distributed system
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
US20230105531A1 (en) Executable Objects in a Distributed Storage System
US11106543B2 (en) Application image cloning system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130201

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130201

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5276218

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees