(57)【特許請求の範囲】
【請求項１】
ストレージアレイコントローラーにおける方法であって、
ストレージアレイから第１のホストコンピュータに第１の論理ユニット番号（ＬＵＮ）を公開するステップと、
前記第１のＬＵＮの複数のパーティションのうちの第１のパーティションに関するピボット要求を、前記第１のホストコンピュータから受信するステップであって、前記第１のパーティションが、前記複数のパーティションに記憶された複数のデータセットのうちの１つのデータセットを記憶する、受信するステップと、
前記第１のＬＵＮ中の前記第１のパーティションのサイズを判定するステップと、
第２のパーティションについてのロケーションおよびサイズを示すパーティションテーブルを生成するステップであって、前記第２のパーティションの前記サイズが、前記判定された第１のパーティションサイズよりも大きいかまたはそれに等しい（≧）、生成するステップと、
前記第２のＬＵＮについてのシグナチャと、前記パーティションテーブルと、前記第２のパーティションとに適応するように構成されたサイズを有するように、前記ストレージアレイの第２のＬＵＮを生成するステップと、
前記シグナチャと前記パーティションテーブルとを前記第２のＬＵＮに記憶するステップと、
前記第２のパーティションについての前記パーティションテーブルに示された前記ロケーションにおいて前記第１のＬＵＮから前記第２のＬＵＮに前記第１のパーティションをコピーするステップと、
前記第２のＬＵＮを第２のホストコンピュータにマップするステップと
を含む方法。
【請求項２】
前記データセットが、仮想マシンのための仮想ハードドライブであることを特徴とする請求項１に記載の方法。
【請求項３】
前記マップするステップが、
前記第２のホストコンピュータが前記第２のＬＵＮをマウントすることを可能にするステップと、
前記第２のホストコンピュータが、前記仮想マシンを実行し、前記仮想マシンのためのストレージとして前記仮想ハードドライブにアクセスすることを可能にするステップと
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のＬＵＮ中の前記第１のパーティションのサイズを判定する前記ステップが、
前記パーティションの前記第１のＬＵＮにおける開始論理ブロックアドレス（ＬＢＡ）と終了ＬＢＡとを判定するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記コピーするステップが、
前記第１のパーティションのコピーオンライトスナップショットまたはクローンを行って、前記第１のＬＵＮから前記第２のＬＵＮに前記第１のパーティションをコピーするステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第２のホストコンピュータから、前記第２のＬＵＮを使用中止する要求を受信するステップと、
前記第２のパーティションのサイズを判定するステップと、
前記第２のパーティションのコピーを前記第１のＬＵＮに記憶するステップと、
前記第２のパーティションの前記コピーが記憶されている前記第１のＬＵＮのストレージ領域に対応するパーティションを含めるために、前記第１のＬＵＮのパーティションテーブルを更新するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第２のパーティションのコピーを前記第１のＬＵＮに記憶する前記ステップが、
前記第２のパーティションの前記判定されたサイズが、前記第１のＬＵＮ中の前記第１のパーティションのサイズを超えない場合、前記第２のパーティションの前記コピーを前記第１のＬＵＮの前記第１のパーティションに記憶するステップ
を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記第２のパーティションのコピーを前記第１のＬＵＮに記憶する前記ステップが、
前記第２のパーティションの前記判定されたサイズが前記第１のＬＵＮ中の前記第１のパーティションの前記サイズを超える場合、
ストレージ領域を前記第１のＬＵＮに追加することによって、前記第１のＬＵＮのサイズを増大させるステップと、
前記第２のパーティションの前記コピーを前記第１のＬＵＮの前記追加されたストレージ領域に記憶するステップと
をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
第１のホストコンピュータにおける方法であって、
ストレージアレイによって前記第１のホストコンピュータに公開される第１の論理ユニット番号（ＬＵＮ）の指示を受信するステップと、
シグナチャとパーティションテーブルとを前記第１のＬＵＮに記憶するステップと、
前記第１のＬＵＮが複数のパーティションに区分するステップと、
前記複数のパーティションに複数のデータセットを記憶するステップと、
前記複数のデータセットのうちの１つのデータセットを記憶する前記複数のパーティションのうちの１つのパーティションへのアクセスを閉じるステップと、
前記データセットを記憶する前記パーティションに関するピボット要求を、前記ストレージアレイに送信するステップであって、前記ストレージアレイは、前記ピボット要求に応答して第２のＬＵＮに前記パーティションをコピーし第２のホストコンピュータに前記第２のＬＵＮをマップするように構成されている、ステップと
を含む方法。
【請求項１０】
前記データセットが、仮想マシンのための仮想ハードドライブであることを特徴とする請求項９に記載の方法。
【請求項１１】
前記第２のホストコンピュータが、前記第２のＬＵＮをマウントし、前記仮想マシンを実行し、前記仮想マシンのためのストレージとして前記仮想ハードドライブにアクセスすることを可能にされることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記送信するステップが、前記ストレージアレイに送信する前記パーティションの前記第１のＬＵＮにおける開始論理ブロックアドレス（ＬＢＡ）と終了ＬＢＡとを送信することを含むことを特徴とする請求項９に記載の方法。
【請求項１３】
ストレージアレイコントローラーにおける方法であって、
ストレージアレイの第１の論理ユニット番号（ＬＵＮ）を第１のホストコンピュータに公開し、第２のＬＵＮを第２のホストコンピュータに公開するステップであって、前記第１のＬＵＮは複数のパーティションを含み、前記第２のＬＵＮはデータセットを記憶する１つのパーティションを含む、ステップと、
前記第２のホストコンピュータから、前記第２のＬＵＮを使用中止する要求を受信するステップと、
前記第２のＬＵＮ中の前記パーティションのサイズを判定するステップと、
前記データセットのコピーを前記第１のＬＵＮに記憶するステップと、
前記データセットの前記コピーが記憶されている前記第１のＬＵＮのストレージ領域に対応するパーティションを含めるために、前記第１のＬＵＮのパーティションテーブルを更新するステップと
を含む方法。
【請求項１４】
前記データセットのコピーを前記第１のＬＵＮに記憶する前記ステップが、
前記第２のＬＵＮ中の前記パーティションの前記判定されたサイズが前記第１のＬＵＮ中の前記第１のパーティションのサイズを超えない場合、前記データセットの前記コピーを、前記データセットを以前に記憶した前記第１のＬＵＮの第１のストレージ領域に記憶するステップを含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記データセットのコピーを前記第１のＬＵＮに記憶する前記ステップが、
前記第２のＬＵＮ中の前記パーティションの前記判定されたサイズが前記第１のＬＵＮ中の前記第１のパーティションの前記サイズを超える場合、
第２のストレージ領域を前記第１のＬＵＮに追加することによって、前記第１のＬＵＮのサイズを増大させるステップと、
前記データセットの前記コピーを前記第１のＬＵＮの前記第２のストレージ領域に記憶するステップと
をさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記データセットが、仮想マシンのための仮想ハードドライブであることを特徴とする請求項１３に記載の方法。
【請求項１７】
前記第２のＬＵＮ中の前記パーティションのサイズを判定する前記ステップが、
前記パーティションの前記第２のＬＵＮにおける開始論理ブロックアドレス（ＬＢＡ）と終了ＬＢＡとを判定するステップ
を含むことを特徴とする請求項１３に記載の方法。
【請求項１８】
前記データセットのコピーを前記第１のＬＵＮに記憶する前記ステップが、
前記第２のＬＵＮの前記パーティションのコピーオンライトスナップショットまたはクローンを行って、前記第１のＬＵＮから前記第２のＬＵＮに前記パーティションをコピーするステップを含むことを特徴とする請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムでＬＵＮをファイルに、またはファイルをＬＵＮに変換することに関する。
【背景技術】
【０００２】
コンピュータデータストレージは、時間期間の間デジタルデータを保持するために使用される構成要素、デバイス、および／または記録媒体を指す。ランダムアクセスメモリ（ＲＡＭ）デバイスおよび読取り専用メモリ（ＲＯＭ）デバイスなどのメモリデバイス（たとえば、半導体ストレージ）、ならびに光ディスクおよび磁気ストレージ（ハードディスク、磁気テープなど）などの大容量ストレージデバイス、ならびにさらなるタイプのストレージを含む、様々なタイプの物理ストレージデバイスが存在する。そのようなストレージデバイスが様々な方法でプールされて、より高いレベルのストレージ、およびより高いレベルのストレージ信頼性を与える。たとえば、たくさんのストレージデバイスが組み合わされて、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）アレイ、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、およびストレージの他の集合を形成する。
【０００３】
ストレージ仮想化は、物理ストレージ（ｐｈｙｓｉｃａｌ  ｓｔｏｒａｇｅ）から仮想または論理ストレージ（ｌｏｇｉｃａｌ  ｓｔｏｒａｇｅ）を抽象化する方法である。仮想ストレージを与えるように構成されたストレージシステムは、コンピュータがアクセスする論理ストレージロケーション（ｌｏｃａｔｉｏｎ）をコンピュータに提示する。ストレージシステムが、論理ストレージロケーションを物理ストレージ中の物理ストレージロケーションにマップするように構成される。１つのタイプの仮想ストレージでは、論理ストレージデバイスがＬＵＮ（論理ユニット番号）と呼ばれことがある。コンピュータがアクセスするストレージシステムによって、１つまたは複数のＬＵＮがコンピュータに公開される。データのブロックが、そのＬＵＮ内のオフセットまたはロケーションによってＬＵＮ中でアドレス指定され、これが論理ブロックアドレス（ＬＢＡ）と呼ばれる。
【０００４】
仮想マシンを含む様々なタイプのデータが仮想ストレージに記憶される。仮想マシンは、物理コンピュータと同様にプログラムを実行する、物理コンピュータのソフトウェア実装形態である。「システム仮想マシン」は、オペレーティングシステムを含む完全なコンピュータプラットフォームを与える。そのようなシステム仮想マシンは１つまたは複数のプログラムを実行する。「プロセス仮想マシン」が、単一のプログラムを実行するように設計される。仮想マシンを表す１つまたは複数のファイルが仮想ハードドライブと呼ばれる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在、仮想マシンに対応する仮想イメージが、一般に、仮想ストレージシステムの独立したＬＵＮにおいて利用可能になっている。ストレージシステムは、ＬＵＮをホストコンピュータに公開して、ホストコンピュータが仮想マシンを実行することを可能にする。ホストコンピュータによって多数の仮想マシン（たとえば、数百、数千、またはそれ以上の仮想マシン）が実装されている場合、ホストコンピュータは大量のリソースを消費して、仮想マシンを管理し、インデックス付けする。たとえば、現在の１つのコンピュータファイルシステムでは、２５５個を超えて割り当てられたＬＵＮをサポートすることは不可能である。さらに、５０個のＬＵＮが割り当てられた後、コンピュータファイルシステムのパフォーマンスは低下する。したがって、従来の技法に従ってＬＵＮに実装された、多数の仮想マシンを管理することは、現実的に不可能である。
【課題を解決するための手段】
【０００６】
この概要が、以下でさらに説明する発明を実施するための形態で説明される複数の概念を選択するために、簡略化された形態で与えられる。この概要は、特許請求する主題の主要な特徴または重要な特徴を特定するためのものでも、特許請求する主題の範囲を限定するために使用されるものでもない。
【０００７】
複数のデータセットを論理ユニット番号（ＬＵＮ）に記憶して、改善されたパフォーマンスを可能にするための方法、システム、およびコンピュータプログラム製品が提供される。複数のデータセット（たとえば、仮想ハードドライブとして記憶される仮想マシン）を記憶することができるＬＵＮが提供される。ＬＵＮが複数のパーティションに区分される。１つまたは複数のデータセットが各パーティションに記憶される。その結果、データセットの数に比例した数のＬＵＮを通してではなく、単一のＬＵＮを通して、複数のデータセットがアクセスされる。
【０００８】
さらに、ＬＵＮに記憶されたデータセットがピボット（ｐｉｖｏｔ）される。一実装形態では、ストレージアレイコントローラーにおけるシステムおよび方法が提供される。第１のＬＵＮがストレージアレイから第１のホストコンピュータに公開される。第１のＬＵＮの複数のパーティションのうちの１つのパーティションに関するピボット要求が第１のホストコンピュータから受信される（そのパーティションは複数のパーティションのうちのいずれかである）。そのパーティションは、複数のパーティションに記憶された複数のデータセットのうちの１つのデータセットを記憶する。第１のＬＵＮにおけるパーティションのサイズが判定される。第２のパーティションについてのロケーションおよびサイズを示すパーティションテーブルが生成される。ストレージアレイの第２のＬＵＮが、第２のＬＵＮについてのシグナチャと、パーティションテーブルと、第２のパーティションとに適応するように構成されたサイズを有するように生成される。シグナチャとパーティションテーブルとが第２のＬＵＮに記憶される。第１のＬＵＮのパーティションが、第２のパーティションについてのパーティションテーブルに示されたロケーションにおいて第１のＬＵＮから第２のＬＵＮにコピーされる。第２のＬＵＮが第２のホストコンピュータにマップされる。
【０００９】
その後、第２のホストコンピュータから、第２のＬＵＮを使用中止する要求が受信される。第２のパーティションのサイズが判定される。第２のパーティションのコピーが第１のＬＵＮに記憶される。第２のパーティションのコピーが記憶されている第１のＬＵＮのストレージ領域に対応するパーティションを示すために、第１のＬＵＮのパーティションテーブルが更新される。
【００１０】
第２のパーティションのサイズが、第１のＬＵＮに最初にピボットされたパーティションのサイズを超えない場合、第２のパーティションのコピーが第１のＬＵＮのそのパーティションに記憶される。第２のパーティションのサイズが、第１のＬＵＮに最初にピボットされたパーティションのサイズを超える場合、ストレージ領域を第１のＬＵＮに追加することによって第１のＬＵＮのサイズが増大され、第２のパーティションのコピーが、第１のＬＵＮの追加されたストレージ領域に記憶される。
【００１１】
別の実装形態では、第１のホストコンピュータにおけるシステムおよび方法が提供される。ストレージアレイによって第１のホストコンピュータに公開される第１の論理ユニット番号（ＬＵＮ）の指示が受信される。シグナチャとパーティションテーブルとが第１のＬＵＮに記憶される。第１のＬＵＮが複数のパーティションに区分される。複数のデータセットが複数のパーティションに記憶される。複数のデータセットのうちの１つのデータセットを記憶する、複数のパーティションのうちの１つのパーティションへのアクセスが閉じられる。閉じられたパーティションに関するピボット要求がストレージアレイに送信される。ストレージアレイが、パーティションを第２のＬＵＮにコピーし、ピボット要求に応答して第２のＬＵＮを第２のホストコンピュータにマップするように構成される。
【００１２】
また、上記および本明細書の他の箇所で説明する方法を行うことおよび／または可能にすることが可能な、ならびに本明細書で説明するさらなる実施形態を実装するためのコンピュータシステムおよび（コンピュータ可読媒体に記憶された）コンピュータプログラム製品について、本明細書で説明する。
【００１３】
本発明のさらなる特徴および利点、ならびに本発明の様々な実施形態の構造および動作について、添付の図面を参照しながら以下で詳細に説明する。本発明は、本明細書で説明する特定の実施形態に限定されないことに留意されたい。本明細書では、そのような実施形態が単に説明のために提示される。本明細書に含まれている教示に基づいて、追加の実施形態が当業者には明らかであろう。
【図面の簡単な説明】
【００１４】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明を説明し、説明とともに、さらに、本発明の原理を説明し、当業者が本発明を製作および使用することを可能にするのに役立つ。
【００１５】
【図１】複数のコンピューティングデバイスが共有ストレージにアクセスする、コンピューティングおよびデータストレージシステムを示す図である。
【図２】ストレージアレイが仮想ストレージの形態でホストコンピュータに提示される、図１のコンピューティングおよびデータストレージシステムのブロック図である。
【図３】論理ユニット番号（ＬＵＮ）の形態で仮想ストレージを与えるストレージデバイスのブロック図である。
【図４】複数の仮想マシンを実行しているホストコンピュータのブロック図である。
【図５】例示的な実施形態による、複数のパーティションを有するＬＵＮのブロック図である。
【図６】例示的な実施形態による、ホストコンピュータのブロック図である。
【図７】例示的な実施形態による、ＬＵＮを区分するためのプロセスを提供するフローチャートである。
【図８】例示的な実施形態による、ストレージアレイコントローラーのブロック図である。
【図９】例示的な実施形態による、第１のホストコンピュータから第２のホストコンピュータにデータセットへのアクセスをピボットするためのプロセスを示す図である。
【図１０】例示的な実施形態による、第１のホストコンピュータから第２のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャートである。
【図１１】例示的な実施形態による、アレイコントローラーのブロック図である。
【図１２】例示的な実施形態による、コンピューティングおよびデータストレージシステムのブロック図である。
【図１３】例示的な実施形態による、パーティションがピボットされることを可能にするためのプロセスを提供するフローチャートである。
【図１４】例示的な実施形態による、ピボットされたＬＵＮへのアクセスを受ける第２のホストコンピュータにおいて使用可能なプロセスを提供するフローチャートである。
【図１５】例示的な実施形態による、第２のホストコンピュータから第１のホストコンピュータにデータセットへのアクセスをピボットするためのプロセスを示す図である。
【図１６】例示的な実施形態による、第２のホストコンピュータから第１のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャートである。
【図１７】例示的な実施形態による、図１２のコンピューティングおよびデータストレージシステムのブロック図である。
【図１８】例示的な実施形態による、パーティションがピボットされることを可能にするためのプロセスを提供するフローチャートである。
【図１９】本発明の実施形態を実装するために使用することができる例示的なコンピュータのブロック図である。
【００１６】
本発明の特徴および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載する詳細な説明を読めばより明らかになろう。図面中、同様の参照番号は、概して、一致する機能的に同様のおよび／または構造的に同様の要素を示す。要素が最初に現れる図面が、対応する参照番号中の最も左側の数字によって示される。
【発明を実施するための形態】
【００１７】
Ｉ．序論
本明細書は、本発明の特徴を組み込む１つまたは複数の実施形態を開示する。（１つまたは複数の）開示する実施形態は、本発明を例示するものにすぎない。本発明の範囲が、（１つまたは複数の）開示する実施形態に限定されない。本発明が、本明細書に添付の特許請求の範囲によって定義される。
【００１８】
本明細書における「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「例示的な実施形態」などの言及は、説明する実施形態が、特定の特徴、構造、または特性を含むことを示すが、すべての実施形態が、必ずしも特定の特徴、構造、または特性を含むわけではない。その上、そのような句が必ずしも同じ実施形態を指すわけではない。さらに、一実施形態に関連して特定の特徴、構造、または特性が説明されている場合、明確に記載されているか否かに関わらず、他の実施形態に関連してそのような特徴、構造、または特性を実現することは、当業者の知識の範囲内であることを申しておく。
【００１９】
さらに、本明細書で使用される空間的な説明（たとえば、「上に」、「下に」、「上」、「左」、「右」、「下」、「上部」、「下部」、「縦」、「横」など）は、例示のためのものにすぎず、本明細書で説明する構造の実際の実装形態が任意の向きまたは方法で空間的に配置することができることを理解されたい。
【００２０】
ＩＩ．ストレージシステムの実施形態
本発明の実施形態は、データを記憶し、コンピュータデータストレージに記憶されたデータにアクセスするための技法に関する。たとえば、図１に、複数のコンピューティングデバイスが共有ストレージにアクセスする、コンピューティングおよびデータストレージシステム１００を示す。図１に示すように、システム１００は、第１のホストコンピュータ１０２ａと、第２のホストコンピュータ１０２ｂと、第３のホストコンピュータ１０２ｃと、通信ネットワーク１０４と、ストレージアレイ１０６とを含む。ストレージアレイ１０６は、複数のストレージユニット／ストレージデバイス１１４ａ〜１１４ｎと、ストレージ通信ネットワーク１０８とを含む。図１の例では、第１のホストコンピュータ１０２ａと、第２のホストコンピュータ１０２ｂと、第３のホストコンピュータ１０２ｃとは、ストレージアレイ１０６のストレージデバイス１１４ａ〜１１４ｎにデータを記憶し、そのストレージデバイス１１４ａ〜１１４ｎに記憶されたデータを取り出すことを可能にされることを含む、ストレージアレイ１０６へのアクセスを共有する。
【００２１】
３つのホストコンピュータ１０２ａ〜１０２ｃが図１に示されているが、数百、数千、またはさらによりたくさんのコンピューティングデバイスを含む、任意の数のホストコンピュータ１０２がネットワーク１００に結合されて、ストレージアレイ１０６を共有する。ホストコンピュータ１０２の例には、固定のコンピューティングデバイスおよびモバイルコンピューティングデバイスがある。たとえば、ホストコンピュータ１０２ａ〜１０２ｃの各々は、サーバー、デスクトップコンピュータ（たとえば、パーソナルコンピュータ）、モバイルコンピュータ（たとえば、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、ノートブックコンピュータ、スマートフォンなど）、または他のタイプのコンピューティングデバイスとすることができる。
【００２２】
ホストコンピュータ１０２ａ〜１０２ｃの各々がネットワーク１０４および対応する通信リンクを介してストレージアレイ１０６と通信するとして図１に示されている。たとえば、図１に示すように、ホストコンピュータ１０２ａが第１の通信リンク１１０ａを介してネットワーク１０４と通信可能に結合され、ホストコンピュータ１０２ｂが第２の通信リンク１１０ｂを介してネットワーク１０４と通信可能に結合され、ホストコンピュータ１０２ｃが第３の通信リンク１１０ｃを介してネットワーク１０４と通信可能に結合される。ストレージアレイ１０６が第４の通信リンク１１０ｄを介してネットワーク１０４と通信可能に結合された状態が示されている。ネットワーク１０４は、ＬＡＮ、ＷＡＮ（ワイドエリアネットワーク）、またはインターネットなど、ネットワークの組合せとすることができる。第１〜第４の通信リンク１１０ａ〜１１０ｄは、ＩＥＥＥ８０２．１１  ＷＬＡＮ（ワイヤレスＬＡＮ）ワイヤレスリンク、Ｗｉ−ＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）リンク、セルラーネットワークリンク、ワイヤレスＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）リンク（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）リンク）、イーサネット（登録商標）リンク、ＵＳＢリンクなどのワイヤードおよび／またはワイヤレスリンクを含む任意のタイプまたは組合せの通信リンクを含むことができる。
【００２３】
ストレージデバイス１１４ａ〜１１４ｎが図１に示されているが、数百、数千、またはさらによりたくさんのストレージデバイスを含む、任意の数のストレージデバイス１１４が、データを記憶するためにストレージアレイ１０６中に含まれる。アレイコントローラー１１２とストレージデバイス１１４ａ〜１１４ｎとがストレージ通信ネットワーク１０８によって通信可能に互いに結合されるとして図１に示されている。ストレージデバイス１１４ａ〜１１４ｎとストレージ通信ネットワーク１０８とが、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ファイバーチャネルアレイ、ＮＡＳ（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）などを含む任意の構成で、ストレージアレイ１０６中で配置または関連付けられている。ストレージデバイス１１４は、メモリデバイスおよび／または大容量ストレージデバイスを含む、揮発性および／または不揮発性の任意のタイプのストレージデバイスとすることができる。ストレージデバイス１１４の例には、ランダムアクセスメモリ（ＲＡＭ）デバイス（揮発性または不揮発性）、および読取り専用メモリ（ＲＯＭ）デバイス、ならびに光ディスクおよび磁気ストレージ（ハードディスク、磁気テープなど）などの大容量ストレージデバイス、およびさらなるタイプのストレージなど、メモリデバイス（たとえば、半導体ストレージ）がある。
【００２４】
ストレージ仮想化は、物理ストレージから論理ストレージを抽象化する方法である。仮想ストレージを与えるように構成されたストレージシステムは、コンピュータがアクセスする論理ストレージロケーションをコンピュータに提示する。ストレージシステムが、論理ストレージロケーションを物理ストレージ中の物理ストレージロケーションにマップするように構成される。
【００２５】
たとえば、図１に示すように、ストレージアレイ１０６はアレイコントローラー１１２を含む。アレイコントローラー１１２が、ストレージデバイス１１４ａ〜１１４ｎの物理ストレージに基づいて論理ストレージをホストコンピュータ１０２ａ〜１０２ｃに割り当てるように構成される。たとえば、アレイコントローラー１１２が、ストレージアレイ１０６の物理ストレージデバイスのセットを組み合わせて、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）アレイまたはセットを作成するように構成される。ＲＡＩＤセットはストレージデバイス１１４ａ〜１１４ｎの論理的構成体である。ストレージアレイ１０６がストレージアレイ１０６についての様々なタイプのＲＡＩＤセットに構成される。ＲＡＩＤセットの一例は、ストレージデバイス１１４ａ〜１１４ｎがミラーイメージングストレージデバイスを含む、「ＲＡＩＤ  １」である。代わりに、当業者によく知られているＲＡＩＤ  ０、ＲＡＩＤ  ５、ＲＡＩＤ  ６、およびＲＡＩＤ  １０構成を含む、ＲＡＩＤセットのさらなるタイプを、ストレージアレイ１０６に含むことが可能である。アレイコントローラー１１２は、ＲＡＩＤセットから使用可能なストレージスペースの一部分を使用して、ＬＵＮ（論理ユニット番号）と呼ばれるハードドライブの仮想表現を生成する。ストレージアクセスのために、アレイコントローラー１１２によって、１つまたは複数のＬＵＮがコンピュータ１０２ａ〜１０２ｃの各々に公開される。
【００２６】
たとえば、図２に、ストレージアレイ１０６が、仮想ストレージ２０２の形態で、アレイコントローラー１０６によってホストコンピュータ１０２ａ〜１０２ｃに提示される、図１のコンピューティングおよびデータストレージシステム１００のブロック図を示す。図２に示すように、仮想ストレージ２０２は複数のＬＵＮ２０４ａ〜２０４ｍを含む。ＬＵＮ２０４ａ〜２０４ｍが、各々、仮想ストレージとしてコンピュータ１０２ａ〜１０２ｃのうちの１つに提示される、（図１に示す）ストレージデバイス１１４ａ〜１１４ｎのストレージの一部として、アレイコントローラー１１２によって生成される。たとえば、図３に、図１に示すストレージデバイス１１４ａ〜１１４ｎのうちの１つの一例である、ストレージデバイス３００のブロック図を示す。図３に示すように、ストレージデバイス３００が複数のＬＵＮ３０２ａ〜３０２ｏに論理的に分割される。各ＬＵＮ３０２は、ハードディスク全体、ハードディスクの一部（たとえば、ブロックの範囲）スピンドル、メモリデバイスのメモリ領域などを含む、ストレージデバイス３００の任意の部分である。各ＬＵＮ３０２がホストコンピュータに公開される。ホストコンピュータのオペレーティングシステムは、物理ストレージであるかのようにＬＵＮ３０２と対話する。
【００２７】
再び図２を参照すると、ＬＵＮ２０４ａ〜２０４ｍが示されているが、数百、数千、またはさらによりたくさんのＬＵＮ２０４を含む任意の数のＬＵＮ２０４をストレージアレイ１０６中に含むことができる。さらに、任意の数のＬＵＮ２０４がコンピュータ１０２ａ〜１０２ｃの各々に提示される。各ＬＵＮ２０４は、複数のアドレス指定可能なデータブロックを含む。ＬＵＮ２０４ａ〜２０４中の特定のデータブロックが、特定のＬＵＮを識別することによって、および１つまたは複数の論理ブロックアドレス（ＬＢＡ）の形態で特定のＬＵＮ内のオフセットまたはロケーションを提供することによって、コンピュータ１０２によってアドレス指定される。
【００２８】
様々なタイプのデータおよび／またはアプリケーションが仮想ストレージ２０２に記憶される。そのようなデータおよびアプリケーションが本明細書では「データセット」と呼ばれる。データセットの一例は仮想マシンである。仮想マシンは、物理コンピュータと同様にプログラムを実行する、物理コンピュータのソフトウェア実装形態である。「システム仮想マシン」は、オペレーティングシステムを含む完全なコンピュータプラットフォームを与える。そのようなシステム仮想マシンは１つまたは複数のプログラムを実行する。「プロセス仮想マシン」が、単一のプログラムを実行するように設計される。仮想マシンの例には、ＳＱＬサーバー、Ｗｅｂサーバーなどがある。仮想マシンを表す１つまたは複数のファイルが「仮想イメージ」と呼ばれる。
【００２９】
現在、仮想マシンに対応する仮想イメージが、仮想ストレージシステムの独立したＬＵＮ（たとえば、図２に示すＬＵＮ２０４のうちの１つ）において利用可能になっている。そのような仮想ストレージシステムでは、ＬＵＮがホストコンピュータに公開されて、ホストコンピュータが仮想マシンを実行することを可能にする。ホストコンピュータによって多数の仮想マシン（たとえば、数百、数千、またはそれ以上の仮想マシン）が実装されている場合、仮想マシンイメージを含んでいる等しい数のＬＵＮがホストコンピュータに公開される。
【００３０】
たとえば、図４に、複数の仮想マシン４０２ａ〜４０２ｐを実行するホストコンピュータ１０２ａのブロック図を示す。さらに、図４は、仮想マシン４０２ａ〜４０２ｐのためのストレージとして、コンピュータ１０２ａに割り当てられた複数のＬＵＮ２０４ａ〜２０４ｐを含む仮想ストレージ２０２を示す。図４に示すように、ＬＵＮ２０４ａ〜２０４ｐの各々は、仮想ハードドライブ４０４ａ〜４０４ｐのうちの対応する１つを含む。仮想ハードドライブ４０４ａ〜４０４ｐは、仮想マシン４０２ａ〜４０２ｐに対応するデータについての仮想ストレージロケーションである。たとえば、仮想ハードドライブ４０４ａ〜４０４ｐは、各々、仮想マシン４０２ａ〜４０２ｐのうちの対応する１つとして、コンピュータ１０２ａによって実行される１つまたは複数のファイルを記憶する。さらに、仮想ハードドライブ４０４ａ〜４０４ｐは、各々、仮想マシン４０２ａ〜４０２ｐの対応する１つに仮想ストレージを与える。
【００３１】
仮想マシンは、仮想ストレージから物理ストレージまでのいくつかのレベルの抽象化を介して、ストレージにアクセスする。いくつかの仮想マシンが「仮想サーバー」と呼ばれることもある。動作中、仮想マシン４０２ａは、データのブロックをその仮想ハードドライブ４０４ａに書き込もうと試みる。コンピュータ１０２ａのオペレーティングシステム（ＯＳ）は、データブロック書込み動作を遮り、ＬＵＮ２０４ａに関してデータのブロックをどこに書き込むべきかを判定するために変換を実行する。たとえば、仮想マシン４０２ａは、３９４のＬＢＡを有するデータブロックを仮想ハードドライブ４０４ａに書き込もうと試みる。ＯＳは、仮想ハードドライブ４０４ａ中のデータブロックオフセット３９４がＬＵＮ２０４ａ中の９９４２のＬＢＡに等しいと判定する。したがって、ＯＳは、データブロックをＬＵＮ２０４ａのＬＢＡ９９４２に書き込もうと試みる。アレイコントローラー１１２（図１中）は、ホストコンピュータ１０２ａのＯＳからＬＢＡ９９４２についての書込み要求を受信し、データブロックをＬＢＡ９９２４に対応するストレージアレイ１０６中の実際の物理ロケーション（たとえば、ストレージデバイス１１４ａの両方のスピンドル４７およびスピンドル４８上の現実のスピンドルブロック１２３４５）に書き込む。
【００３２】
ホストコンピュータ１０２ａは、大量のリソースを消費して、数百、数千、またはさらにより大きい数で番号付けする、ＬＵＮ２０４ａ〜２０４ｐと仮想マシン４０２ａ〜４０２ｐとを管理し、インデックス付けする。ＬＵＮ２０４ａ〜２０４ｐを物理ストレージかのように扱うホストコンピュータ１０２ａは、ＬＵＮ２０４ａ〜２０４ｐを監視して、ＬＵＮ２０４ａ〜２０４ｐが適切に動作していることを確実にし、ＬＵＮ２０４ａ〜２０４ｐを本質的に管理する。さらに、ストレージアレイ１０６中の各ストレージデバイスへの多くのパスが存在し、ホストコンピュータ１０２は、同様に、各パスを管理しようと試みる。この結果、ホストコンピュータ１０２ａは大量のオーバーヘッドを維持することになる。単一のＬＵＮがアタッチされたサーバーは、８つの関連するデバイスを管理することが一般的である。多数のＬＵＮ（および対応する複数のパス）がサーバーに公開された場合、サーバーは、パスとストレージデバイスとのセットを発見するのに大量の時間を要する。公開されたＬＵＮの数が十分に多いと、サーバーは反応しなくなる、および／またはクラッシュする。したがって、極めて多数の仮想マシンを管理することは、独立したＬＵＮに実装された仮想マシンでは、現実的に不可能である。
【００３３】
一実施形態では、（仮想ハードドライブとして記憶された）複数の仮想マシンを含む、複数のデータセットを記憶することができるＬＵＮが与えられる。ＬＵＮが複数のパーティションに区分される。１つまたは複数のデータセットが各パーティションに記憶される。その結果、複数のデータセットへのアクセスを必要とするホストコンピュータは、データセットの数に比例した数のＬＵＮを通してではなく、単一のＬＵＮを通して複数のデータセットにアクセスすることができる。このようにして、ホストコンピュータによってトラッキングされるハードウェアの量（たとえば、ホストコンピュータによってハードウェアと見なされるＬＵＮ）が低減される。
【００３４】
たとえば、図５に、例示的な実施形態によるＬＵＮ５００のブロック図を示す。図５に示すように、ＬＵＮ５００は複数のパーティション５０６ａ〜６０６ｐを含む。さらに、各パーティション５０６は、データセット５０８ａ〜５０８ｐのうちの対応する１つを記憶する。代わりに、２つ以上のデータセット５０８が各パーティション５０６に記憶される。複数のデータセットが１つのＬＵＮに記憶されることを可能にすることによって、より少ない数のＬＵＮがホストコンピュータに割り当てられて、ホストコンピュータが同じまたはより大きい数のデータセット（たとえば、ＬＵＮごとのパーティションの数の倍）にアクセスすることを可能にする。
【００３５】
実施形態では、アレイコントローラーまたはホストコンピュータは、図５に示すようにＬＵＮを区分する。たとえば、図６に、例示的な実施形態によるホストコンピュータ６０２のブロック図を示す。ホストコンピュータ６０２は、コンピュータ１０２ａ〜１０２ｃのうちの１つの例である。図６に示すように、ホストコンピュータ６０２はＬＵＮパーティショナー６０４を含む。ＬＵＮパーティショナー６０４は、ホストコンピュータ６０２が図５のＬＵＮ５００などのＬＵＮを複数のパーティション５０６に区分することを可能にするように構成される。
【００３６】
ＬＵＮパーティショナー６０４は、様々な方法でＬＵＮを区分するように構成される。たとえば、図７に、例示的な実施形態による、ＬＵＮを区分するためのプロセスを提供するフローチャート７００を示す。一実施形態では、図６に示すホストコンピュータ６０２によってフローチャート７００が行われる。フローチャート７００に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。フローチャート７００を次のように説明する。
【００３７】
図７に示すように、フローチャート７００はステップ７０２で開始する。ステップ７０２において、ストレージアレイによって第１のホストコンピュータに公開される論理ユニット番号（ＬＵＮ）の指示を受信する。たとえば、一実施形態では、ホストコンピュータ６０２は、図２に示すアレイコントローラー１１２などのアレイコントローラーから、ホストコンピュータ６０２に公開される、図５に示すＬＵＮ５００などのＬＵＮの指示を受信する。ＬＵＮ５００がホストコンピュータ６０２に公開され、それによりホストコンピュータ６０２は仮想ストレージとしてＬＵＮ５００にアクセスする。ＬＵＮ５００が、ＬＵＮ識別子（たとえば、識別番号）と、ＬＵＮ５００によって提供されるストレージの量とによってホストコンピュータ６０２に示される。たとえば、論理ブロックアドレス（ＬＢＡ）の範囲がホストコンピュータ６０２に与えられて、ＬＵＮ５００のストレージの量を示す。
【００３８】
ステップ７０４において、シグナチャとパーティションテーブルとをＬＵＮに記憶する。たとえば、図５に示すように、ＬＵＮパーティショナー６０４は、シグナチャ５０２とパーティションテーブル５０４とをＬＵＮ５００に記憶する。シグナチャ５０２は、ＬＵＮ５００についてのデジタルおよび／またはディスクシグナチャであり、ＬＵＮ５００について識別する情報を含む様々な情報を含む。パーティションテーブル５０４は、ＬＵＮパーティショナー６０４によってＬＵＮ５００中に形成されたパーティションのロケーションおよびサイズを示すように構成された、データ構造である。
【００３９】
ステップ７０６において、ＬＵＮを複数のパーティションに区分する。一実施形態では、ＬＵＮパーティショナー６０４は、ＬＵＮ５００を複数のパーティション５０６ａ〜５０６ｐに区分するように構成される。ＬＵＮ５００は、ホストコンピュータ６０２によって必要とされ、ＬＵＮ５００のストレージの量に適合する任意の数のパーティション５０６を有する。ＬＵＮパーティショナー６０４は、パーティション５０６を生成し、パーティション５０６をパーティションテーブル５０４中に示す。たとえば、ＬＵＮパーティショナー６０４は、ベースＬＢＡ（たとえば、ＬＢＡ０）からのＬＢＡオフセットの形態で、パーティション５０６ａ〜５０６ｐをパーティションテーブル５０４中に示す。たとえば、パーティションテーブル５０４は、シグナチャ５０２についてのＬＵＮ５００中のＬＢＡ範囲（たとえば、ＬＢＡ０からＬＢＡ６００）、パーティションテーブル５０４についてのＬＢＡ範囲（たとえば、ＬＢＡ６０１からＬＢＡ１００００）、パーティション５０６ａについてのＬＢＡ範囲（たとえば、ＬＢＡ１０００１からＬＢＡ１２３４５６）、パーティション５０６ｂについてのＬＢＡ範囲（たとえば、ＬＢＡ１２３４５７からＬＢＡ６５４３２１）、パーティション５０６ｃについてのＬＢＡ範囲（たとえば、ＬＢＡ６５４３２２からＬＢＡ９９９９９９）などを示す。
【００４０】
ステップ７０８において、複数のデータセットを複数のパーティションに記憶する。たとえば、図５に示すように、ホストコンピュータ６０２は、データセット５０８ａ〜５０８ｐの１つ（または複数）をパーティション５０６ａ〜５０６ｐの各々に記憶する。上記で説明したように、データセット５０８は、仮想マシン（仮想マシンハードドライブ）など、データおよび／またはアプリケーションを形成する１つまたは複数のファイルである。たとえば、図４に示すホストコンピュータ１０２ａと同様に、ホストコンピュータ６０２は、複数の仮想マシン４０２ａ〜４０２ｐを動作させ、各仮想マシンは、図５に示すデータセット５０８ａ〜５０８ｐのうちの１つとして記憶された対応する仮想ハードドライブを有する。複数の仮想ハードドライブを、（データセット５０８として）ＬＵＮ５００に記憶することができるので、ホストコンピュータ６０２は、同じまたはさらにより多くの数の仮想マシンについてより少ないＬＵＮを管理し、ホストコンピュータ６０２は、より高いレベルのストレージパフォーマンスでより多くの数の仮想マシンをサポートすることが可能になる。
【００４１】
さらに、複数のデータセットを記憶するＬＵＮからのデータセットおよび／またはパーティションを「ピボットする」能力が可能になる。たとえば、ＬＵＮ５００は、データストアの形態として複数のパーティションにデータセット５０８ａ〜５０８ｐを記憶し、データセット５０８ａ〜５０８ｐの各々が、ＬＵＮ５００から、さらなるホストコンピュータに関連付けられたそれぞれのＬＵＮにコピーされる。さらなるホストコンピュータは、それぞれのＬＵＮにあるデータセットにアクセスすることができる。したがって、データセットの所有権が第１のホストコンピュータから第２のホストコンピュータにピボットされ、第２のホストコンピュータは、専用のＬＵＮの形態でデータセットへのアクセスを与えられる。さらに、第２のホストコンピュータがデータセットへのアクセスを必要としなくなった場合、第２のホストコンピュータは、データセットを専用のＬＵＮから再びマルチパーティションＬＵＮにコピーすることによって、データセットの所有権を再び第１のホストコンピュータにピボットすることができる。
【００４２】
複数のデータセットをＬＵＮに記憶し、データセットへのアクセスをさらなるＬＵＮにピボットする能力により、ホストコンピュータの仮想マシンマネージャーが、比較的少ない数の仮想マシンを管理することから、数万、数十万、またはさらにより大きい数の仮想マシンを管理することにスケーリングすることを可能にする。さらに、ストレージアレイは、現在マルチパーティションＬＵＮにおいて再び使用されていないＬＵＮをパークする（ｐａｒｋ）ことが可能である。現在、市販のストレージアレイは、固定の数のＬＵＮを記憶することができる。たとえば、Ｈｏｐｋｉｎｔｏｎ、ＭＡのＥＭＣ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されるＥＭＣ  ＣＬＡＲｉｉＯＮ（商標）ファミリシリーズは４０９６個のＬＵＮをサポートするにすぎない。必要とされるまでデータセットがパークされることを可能にする、本明細書で説明する実施形態によれば、ストレージアレイは、従来可能な数よりも１０倍多くＬＵＮを記憶することができる。たとえば、特定の時間に４０９６個のＬＵＮがストレージアレイによって公開されるが、４０，０００個のデータセットについて長期のストレージが可能である。
【００４３】
標準的なファイルサーバーは、データセットを分散させるために使用されるネットワーク共有上に多くのデータセットを記憶可能であることに留意されたい。ただし、上記で説明したように、ファイルシステムへのロー（ｒａｗ）（たとえば、ブロックレベル（ｂｌｏｃｋ  ｌｅｖｅｌ））アクセスと比較した場合、ネットワークアタッチトファイルシステム（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）は、速度および機能性が不足している。ネットワークアタッチトファイルシステム上で利用可能でない多くの高度な機能がブロックレベルアクセスシステムにとって利用可能である。たとえば、ネットワークアタッチトファイルシステムは、仮想ハードドライブのセットをドライブのセット上に散乱させ、それにより、仮想ハードドライブは連続しなくなる。対照的に、ブロックレベルアクセスシステムでは、異なる仮想ハードドライブがＬＵＮの各パーティション中に配置される。各パーティションについて開始ブロックと終了ブロックとが知られているので、完全なブロックレベルローカリティが達成される。その結果、ホストコンピュータに公開されるＬＵＮの数が低減され、連続したパフォーマンスおよびパフォーマンスのローカリティが達成される。
【００４４】
マルチパーティションＬＵＮのデータセット／パーティションをさらなるＬＵＮにピボットする例について、次のセクションにおいて説明し、ＬＵＮのデータセットをマルチパーティションＬＵＮのパーティションにピボットする例について、後続のセクションにおいて説明する。
【００４５】
ＩＩＩ．データセット／ＬＵＮパーティションをＬＵＮにピボットするための例示的な実施形態
一実施形態では、データセットへのアクセスが第１のホストコンピュータから第２のホストコンピュータにピボットされる。たとえば、第２のホストコンピュータは、第１のホストコンピュータほどビジーではないので、または他の理由で、データセットのピボッティングが行われて、第２のホストコンピュータにおけるデータセットへのアクセスを与える。ピボッティングを行うようにストレージアレイのアレイコントローラーを構成することを含む様々な方法で、そのようなピボッティングが行われる。たとえば、図８に、例示的な実施形態によるアレイコントローラー８０２のブロック図を示す。アレイコントローラー８０２は、上述のアレイコントローラー１１２（図１および図２）と同様であり、相違を次のように説明する。図８に示すように、アレイコントローラー８０２はデータセットピボットモジュール８０４を含む。データセットピボットモジュール８０４により、アレイコントローラー８０２は、データセットへのアクセスをピボットすることが可能になる。たとえば、データセットピボットモジュール８０４が、図９に示すステップ９０２を行うように構成される。ステップ９０２において、データセットを含んでいるＬＵＮパーティションを第２のＬＵＮにマップすることによって、第１のホストコンピュータから第２のホストコンピュータにデータセットへのアクセスをピボットする。
【００４６】
アレイコントローラー８０２がステップ９０２を行うように様々な方法で構成され、ステップ９０２が様々な方法で行われる。たとえば、図１０に、例示的な実施形態による、第１のホストコンピュータから第２のホストコンピュータにデータセットをピボットするためのプロセスを提供するフローチャート１０００を示す。フローチャート１０００は、図９に示すステップ９０２の一例であり、一実施形態では、図８に示すアレイコントローラー８０２によって行われる。たとえば、図１１に、例示的な実施形態による、アレイコントローラー８０２のブロック図を示す。フローチャート１０００を、例示のために、図１１に示すアレイコントローラー８０２の例に関して説明する。図１１に示すように、アレイコントローラー８０２は、ＬＵＮアロケーター１１０２と、データセットピボットモジュール８０４とを含む。データセットピボットモジュール８０４は、ピボット要求レシーバー１１０４と、ＬＵＮジェネレーター１１０６と、パーティションコピアー１１０８とを含む。フローチャート１０００に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。
【００４７】
説明のために、フローチャート１０００を図１２に関して次のように説明し、図１２に、例示的な実施形態による、コンピューティングおよびデータストレージシステム１２００のブロック図を示す。図１２に示すように、システム１２００は、第１のホストコンピュータ１０２ａと、第２のホストコンピュータ１０２ｂと、ストレージアレイ１２０２とを含む。ストレージアレイ１２０２は、仮想ストレージ１２０４と、アレイコントローラー８０２とを含む。仮想ストレージ１２０４は、第１のＬＵＮ５００と、第２のＬＵＮ１２０６とを含む（簡潔のために図１２に示していない、追加のＬＵＮがある）。図１２は、データセット５０８ａが第１のホストコンピュータ１０２ａから第２のホストコンピュータ１０２ｂにピボットされることを示す。
【００４８】
図１０に示すように、フローチャート１０００は、ステップ１００２で開始する。ステップ１００２において、第１の論理ユニット番号（ＬＵＮ）を、ストレージアレイから第１のホストコンピュータに公開する。たとえば、一実施形態では、ＬＵＮアロケーター１１０２によって、ステップ１００２が行われる。図１２を参照すると、ＬＵＮアロケーター１１０２は、（たとえば、図１および図２に示したものなど、通信媒体を介して）公開されたＬＵＮインジケーター信号１２１８をコンピュータ１０２ａに送信し、それにより、第１のＬＵＮ５００がコンピュータ１０２ａに割り当てられたことを示す。たとえば、公開されたＬＵＮインジケーター信号１２１８は、第１のＬＵＮ５００についての識別子（たとえば、識別番号、アドレスなど）および第１のＬＵＮ５００中に含まれるストレージの量を含む。
【００４９】
ステップ１００２の後に、第１のホストコンピュータ１０２ａは、ＬＵＮ５００にデータを記憶することと、ＬＵＮ５００からデータを取り出すこととを含み、第１のＬＵＮ５００のストレージにアクセスする。たとえば、第１のホストコンピュータ１０２ａは、ＬＵＮ５００の指示を受信するステップ（ステップ７０２）と、シグナチャ５０２とパーティションテーブル５０４とをＬＵＮ５００に記憶するステップ（ステップ７０４）と、ＬＵＮ５００を区分してパーティション５０６ａ、５０６ｂなどを作成するステップ（ステップ７０６）と、データセット５０８ａ、５０８ｂなどを、それぞれ、パーティション５０６ａ、５０６ｂなどに記憶するステップ（ステップ７０８）とを含む、上述のフローチャート７００（図７）を行うことができる。
【００５０】
特定の時間に、第１のホストコンピュータ１０２ａは、ＬＵＮ５００のデータセットが別のホストコンピュータにピボットされるべきであると判定する。たとえば、データセットをよりビジーでないホストコンピュータにピボットすることが望ましい。したがって、第１のホストコンピュータ１０２ａは、図１３に示すフローチャート１３００を行う。フローチャート１３００を次のように説明する。フローチャート１３００のステップ１３０２において、複数のデータセットのうちの１つのデータセットを記憶する、複数のパーティションのうちの１つのパーティションへのアクセスを閉じる。たとえば、第１のホストコンピュータ１０２ａは、データセット５０８ａを記憶する第１のパーティション５０６ａへのアクセスを閉じて、データセット５０８ａがピボットされる準備をする。一実施形態では、第１のホストコンピュータ１０２ａは、データセット５０８ａへのそのオープンハンドル（ｏｐｅｎ  ｈａｎｄｌｅ）を閉じ、データセット５０８ａがアクセスされなくなると、第１のホストコンピュータ１０２ａの論理ディスクマネージャーは、第１のパーティション５０６ａへのドライブ文字とマッピングとを削除する。これにより、第１のホストコンピュータ１０２ａが第１のパーティション５０６ａを読み取ることおよび／または第１のパーティション５０６ａに書き込むことを停止することを確実にする。ステップ１３０４において、データセットを記憶するパーティションに関するピボット要求をストレージアレイに送信する。たとえば、図１２に示すように、第１のホストコンピュータ１０２ａは、（たとえば、図１および図２に示したものなど、通信媒体を介して）ピボット要求信号をストレージアレイ１２０２に送信して、データセット５０８ａが別のホストコンピュータにピボットされることを要求する。
【００５１】
再びフローチャート１０００（図１０）を参照すると、ステップ１００４において、第１のＬＵＮの複数のパーティションのうちのデータセットを記憶する第１のパーティションに関するピボット要求を、第１のホストコンピュータから受信する。たとえば、一実施形態では、ピボット要求レシーバー１１０４によってステップ１００４が行われる。図１２に示すように、ピボット要求レシーバー１１０４は、第１のパーティション５０６ａのデータセット５０８ａがピボットされるべきことを示すピボット要求信号１２２０を、第１のホストコンピュータ１０２ａから受信する。その結果、ピボット要求レシーバー１１０４は、データセット５０８ａに適応するようにＬＵＮが生成されることを、ＬＵＮジェネレーター１１０６に示す。
【００５２】
ステップ１００６において、第１のＬＵＮ中の第１のパーティションのサイズを判定する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１００６が行われる。ＬＵＮジェネレーター１１０６は、第１のパーティション５０６ａのサイズを任意の方法で判定する。たとえば、図１２を参照すると、ＬＵＮジェネレーター１１０６は、パーティションテーブル５０４にアクセスして、第１のパーティション５０６ａに割り当てられたＬＢＡのオフセットおよび／または範囲を判定する。別の実施形態では、第１のホストコンピュータ１０２ａは、第１のパーティション５０６ａのサイズの指示をピボット要求レシーバー１１０４によって受信されるピボット要求信号１２２０に含ませ、ピボット要求レシーバー１１０４は、そのサイズ指示をＬＵＮジェネレーター１１０６に与える。
【００５３】
ステップ１００８において、第２のパーティションについてのロケーションおよびサイズを示すパーティションテーブルを生成する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１００８が行われる。ＬＵＮジェネレーター１１０６が、新しいＬＵＮにおいてデータセット５０８ａを記憶するように構成された第２のパーティションを示すパーティションテーブルを生成するように構成される。新しいＬＵＮにおける第２のパーティションについてのロケーション（たとえば、ＬＢＡオフセット）およびサイズ（たとえば、開始ＬＢＡおよび終了ＬＢＡ）を示すように、パーティションテーブルが生成される。一実施形態では、パーティションテーブルは、他のパーティションではなく、第２のパーティションへの参照を含み、生成されたパーティションテーブル中の第２のパーティションの指示は、新しいＬＵＮに対して生成されたシグナチャの直後にくる。
【００５４】
ステップ１０１０において、第２のＬＵＮについてのシグナチャと、パーティションテーブルと、第２のパーティションとに適応するように構成されたサイズを有するように、ストレージアレイの第２のＬＵＮを生成する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１０１０が行われる。ＬＵＮジェネレーター１１０６が、仮想ストレージ１２０４中の第２のＬＵＮに含まれるべきストレージアレイ１２０２の物理ストレージの量を割り当てるように構成される。たとえば、図１２に示すように、ＬＵＮジェネレーター１１０６は、第２のＬＵＮ１２０６を生成する。第２のＬＵＮ１２０６が、シグナチャと、ステップ１００８において生成されたパーティションテーブルと、第２のパーティションとに適応するように構成されたサイズを有するように生成される。
【００５５】
ステップ１０１２において、シグナチャとパーティションテーブルとを第２のＬＵＮに記憶する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１０１２が行われる。たとえば、図１２に示すように、ＬＵＮジェネレーター１１０６は、シグナチャ１２０８とパーティションテーブル１２１０とを第２のＬＵＮ１２０６に記憶した。シグナチャ１２０８は、第２のＬＵＮ１２０６について識別する情報を含み、ステップ１００８において、パーティションテーブル１２１０が生成された。
【００５６】
ステップ１０１４において、第２のパーティションについてのパーティションテーブルに示されたロケーションにおいて第１のＬＵＮから第２のＬＵＮに第１のパーティションをコピーする。たとえば、一実施形態では、パーティションコピアー１１０８によってステップ１０１４が行われる。パーティションコピアー１１０８が、ソースＬＵＮから宛先ＬＵＮにパーティションをコピーするように構成される。コピーを開始するために、ＬＵＮジェネレーター１１０６は、パーティションコピアー１１０８に、宛先ＬＵＮが生成されたことを示す。たとえば、図１２を参照すると、パーティションコピアー１１０８は、第１のＬＵＮ５００の（データセット５０８ａを含む）第１のパーティション５０６ａを第２のＬＵＮ１２０６中の第２のパーティション１２１２にコピーする。図１２に示すように、（点線によって示すように）データセット５０８ａが第２のＬＵＮ１２０６のパーティション１２１２にコピーされる。パーティションコピアー１１０８は、当業者に知られている技法を含む任意の方法で、パーティションコピーを行う。たとえば、パーティションコピアー１１０８は、第１のパーティション５０６ａの（たとえば、コピーオンライト（ｃｏｐｙ−ｏｎ−ｗｒｉｔｅ）スナップショット技術を使用する）スナップショットまたはクローンを行って、パーティション１２１２を生成する。たとえば、コピーコマンドが「スナップショットＬＵＮ５００：パーティション５０６ａ」または「ＬＵＮ５００：ＬＢＡ開始−ＬＢＡ終了」の形態で発行され、ただし、「ＬＢＡ開始」および「ＬＢＡ終了」は、第１のＬＵＮ５００中の第１のパーティション５０６ａについてのそれぞれの開始するＬＢＡおよび終了するＬＢＡである。そのようなコピー動作は、ほぼ数秒単位など、比較的迅速に行われる。他の実施形態では、ＬＵＮ１２０６は追加のストレージスペースを含むが、一実施形態では、ＬＵＮ１２０６が、シグナチャ１２０８と、（シグナチャ１２０８に続く）パーティションテーブル１２１０と、（パーティションテーブル１２１０に続く）パーティション１２１２とによって完全に満たされる。
【００５７】
ステップ１０１６において、第２のＬＵＮを第２のホストコンピュータにマップする。たとえば、一実施形態では、ＬＵＮアロケーター１１０２によってステップ１０１６が行われる。たとえば、ステップ１００２と同様に、ＬＵＮアロケーター１１０２は、（たとえば、図１および図２に示したものなど、通信媒体を介して）公開されたＬＵＮインジケーター信号を第２のホストコンピュータ１０２ｂに送信し、それにより、第２のＬＵＮ１２０６が第２のホストコンピュータ１０２ｂに割り当てられたことを示す。たとえば、公開されたＬＵＮインジケーター信号１２２２は、第２のＬＵＮ１２０６についての識別子（たとえば、識別番号、アドレスなど）および第２のＬＵＮ１２０６中に含まれるストレージの量を含む。一実施形態では、第２のホストコンピュータ１０２ｂは、再スキャンコマンドを発行して、第２のＬＵＮ１２０６を検出し、公開されたＬＵＮインジケーター信号１２２２によって第２のＬＵＮ１２０６をインポートするように要求される。
【００５８】
第２のＬＵＮ１２０６をインポートした後、第２のＬＵＮ１２０６は、直接アクセスデバイスと同様の方法で、第２のホストコンピュータ１０２ｂによってマウント可能および使用可能である。たとえば、一実施形態では、第２のホストコンピュータ１０２ｂは、図１４に示すフローチャート１４００を行う。フローチャート１４００は、第２のホストコンピュータ１０２ｂにおいて使用可能な例示的なプロセスを提供する。フローチャート１４００のステップ１４０２において、第２のホストコンピュータが第２のＬＵＮをマウントすることを可能にする。たとえば、ＬＵＮアロケーター１１０２により、第２のホストコンピュータ１０２ｂが第２のＬＵＮ１２０６をマウントすることが可能になる。したがって、第２のホストコンピュータ１０２ｂは、第２のＬＵＮ１２０６のパーティション１２１２に記憶されたデータセット５０８ａにアクセスする。たとえば、データセット５０８ａが仮想マシンハードドライブである場合、第２のホストコンピュータ１０２ｂは、データセット５０８ａの仮想マシンファイルを実行して、対応する仮想マシンを動作させる。したがって、フローチャート１４００のステップ１４０４において、第２のホストコンピュータが仮想マシンを実行し、仮想マシンのためのストレージとして仮想ハードドライブにアクセスすることを可能にする。
【００５９】
ＩＶ．ＬＵＮをデータセット／ＬＵＮパーティションにピボットするための例示的な実施形態
一実施形態では、データセットへのアクセスが第２のホストコンピュータから再び第１のホストコンピュータに（または別のホストコンピュータに）ピボットされる。第２のホストコンピュータはデータセットとさらに対話する必要がなく、したがって、データセットが（たとえば、一時的にまたは最終的に）使用中止されるので、または他の理由で、データセットのそのようなピボッティングが行われる。そのようなピボッティングが、ストレージアレイのアレイコントローラーを使用してピボッティングを行うことを含む様々な方法で行われる。たとえば、一実施形態では、図８に示すアレイコントローラー８０２が、ピボッティングを行うように構成される。データセットピボットモジュール８０４により、アレイコントローラー８０２が、データセットへのアクセスを再び第１のホストコンピュータ（または別のホストコンピュータ）にピボットすることが可能になる。たとえば、データセットピボットモジュール８０４が、図１５に示すステップ１５０２を行うように構成される。ステップ１５０２において、データセットを含んでいるＬＵＮをＬＵＮパーティションにマップすることによって、第２のホストコンピュータから第１のホストコンピュータにデータセットへのアクセスをピボットする。
【００６０】
データセットピボットモジュール８０４がステップ１５０２を行うように様々な方法で構成され、ステップ１５０２が様々な方法で行われる。たとえば、図１６に、例示的な実施形態による、第２のホストコンピュータから第１のホストコンピュータ（または別のホストコンピュータ）にデータセットをピボットするためのプロセスを提供するフローチャート１６００を示す。フローチャート１６００は、図１５に示すステップ１５０２の一例であり、一実施形態では、図１１に示すアレイコントローラー８０２によって行われる。フローチャート１６００に関する説明に基づいて、他の構造上のおよび動作上の実施形態が当業者には明らかであろう。
【００６１】
説明のために、フローチャート１６００を、図１７に関して次のように説明し、図１７に、例示的な実施形態による、図１２のコンピューティングおよびデータストレージシステム１２００のブロック図を示す。図１７は、データセット５０８ａが第２のホストコンピュータ１０２ｂから第１のホストコンピュータ１０２ａにピボットされることを示す。
【００６２】
図１６に示すように、フローチャート１６００はステップ１６０２で開始する。ステップ１６０２において、ストレージアレイの第１のＬＵＮを第１のホストコンピュータに公開し、ストレージアレイの第２のＬＵＮを第２のホストコンピュータに公開する。たとえば、図１７を参照すると、第１のＬＵＮ５００が第１のホストコンピュータ１０２ａに公開され、第２のＬＵＮ１２０６が第２のホストコンピュータ１０２ｂに公開される。一実施形態では、上記で説明したように、フローチャート１０００のステップ１００２（図１０）に従って、第１のＬＵＮ５００を第１のホストコンピュータ１０２ａに公開し、フローチャート１０００のステップ１０１６に従って、第２のＬＵＮ１２０６を第２のホストコンピュータ１０２ｂに公開する。
【００６３】
特定の時間に、第２のホストコンピュータ１０２ｂは、データセット５０８ａが再び第１のホストコンピュータ１０２ａに（または別のホストコンピュータに）ピボットされるべきと判定する。したがって、第２のホストコンピュータ１０２ｂは、図１８に示すフローチャート１８００を行う。フローチャート１８００を次のように説明する。フローチャート１８００のステップ１８０２において、第２のホストに公開された論理ユニット番号（ＬＵＮ）においてデータセットを記憶するパーティションへのアクセスを閉じる。たとえば、第２のホストコンピュータ１０２ｂは、データセット５０８ａを記憶する第２のＬＵＮ１２０６のパーティション１２１２へのアクセスを閉じて、データセット５０８ａがピボットされる準備をする。一実施形態では、第２のホストコンピュータ１０２ｂは、データセット５０８ａへのオープンハンドルを閉じ、データセット５０８ａがアクセスされなくなると、第２のホストコンピュータ１０２ｂの論理ディスクマネージャーは、パーティション１２１２へのドライブ文字とマッピングとを削除する。これにより、第２のホストコンピュータ１０２ｂが、パーティション１２１２を読み取ることおよび／またはパーティション１２１２に書き込むことを停止することを確実にする。ステップ１８０４において、ＬＵＮを使用中止する要求をストレージアレイに送信する。たとえば、図１８に示すように、第２のホストコンピュータ１０２ｂは、（たとえば、図１および図２に示したものなど、通信媒体を介して）使用中止またはピボット要求信号１７０２をストレージアレイ１２０２に送信して、データセット５０８ａが使用中止されるおよび／または別のホストコンピュータにピボットされることを要求する。
【００６４】
再びフローチャート１６００（図１６）を参照すると、ステップ１６０４において、第２のホストコンピュータから、第２のＬＵＮを使用中止する要求を受信する。たとえば、一実施形態では、ピボット要求レシーバー１１０４によってステップ１６０４が行われる。図１７に示すように、ピボット要求レシーバー１１０４は、第２のホストコンピュータ１０２ｂから使用中止要求信号（ｒｅｔｉｒｅ  ｒｅｑｕｅｓｔ  ｓｉｇｎａｌ）１７０２を受信する。使用中止要求信号１７０２は、パーティション１２１２に記憶されたデータセット５０８ａが、再び、ストレージライブラリとして動作するマルチパーティションＬＵＮにピボットされるべきであることを示す。
【００６５】
ステップ１６０６において、第２のＬＵＮ中のパーティションのサイズを判定する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１６０６が行われる。ＬＵＮジェネレーター１１０６は、任意の方法で、パーティション（たとえば、パーティション１２１２）のサイズを判定する。たとえば、図１７を参照すると、ＬＵＮジェネレーター１１０６は、ＬＵＮ１２０６のパーティションテーブル１２１０にアクセスして、パーティション１２１２に割り当てられたＬＢＡのオフセットおよび／または範囲を判定する。別の実施形態では、第２のホストコンピュータ１０２ｂは、パーティション１２１２のサイズの指示を、ピボット要求レシーバー１１０４によって受信される使用中止要求信号１７０２に含めて、ピボット要求レシーバー１１０４は、そのサイズ指示をＬＵＮジェネレーター１１０６に与える。
【００６６】
ステップ１６０８において、データセットのコピーを第１のＬＵＮに記憶する。たとえば、一実施形態では、パーティションコピアー１１０８によってステップ１６０８が行われる。上記で説明したように、パーティションコピアー１１０８が、ソースＬＵＮから宛先ＬＵＮにパーティションをコピーするように構成される。たとえば、図１７を参照すると、パーティション１２１２が、第１のパーティション５０６ａのサイズを超えない（たとえば、それ以下の）（ステップ１６０６において判定された）サイズを有する場合、パーティションコピアー１１０８は、第２のＬＵＮ１２０６の（データセット５０８ａを含む）パーティション１２１２を第１のＬＵＮ５００中の第１のパーティション５０６ａにコピーするか、またはパーティション１２１２を第１のＬＵＮ５００の別のパーティションにコピーする。一実施形態では、第２のＬＵＮ１２０６中のパーティション１２１２のサイズが第１のＬＵＮ５００中の第１のパーティション５０６ａのサイズを超える場合、アレイコントローラー８０２によって、ストレージアレイ１２０２のストレージ領域を第１のＬＵＮ５００に追加することによって、第１のＬＵＮ５００のサイズが増加される（たとえば、第１のＬＵＮ５００のサイズが増大される）。そのような場合、データセット５０８ａのコピーが、第１のＬＵＮ５００に追加されたストレージ領域に記憶される。第１のホストコンピュータ１０２ａは、第１のＬＵＮ５００をマウント解除し、再マウントして、追加されたストレージ領域にアクセスすることが可能になる。
【００６７】
図１７の例では、（点線によって示すように）データセット５０８ａが第１のＬＵＮ５００の第１のパーティション５０６ａにコピーされる。パーティションコピアー１１０８は、フローチャート１０００のステップ１０１４（図１０）に関して上記で説明した技法を含む、当業者に知られている任意の方法で、パーティションコピーを行う。そのようなコピー動作は、ほぼ数秒単位で行われることを含み、比較的迅速に行われる。
【００６８】
ステップ１６１０において、データセットのコピーを記憶している第１のＬＵＮのストレージ領域に対応するパーティションを含めるために、第１のＬＵＮのパーティションテーブルを更新する。たとえば、一実施形態では、ＬＵＮジェネレーター１１０６によってステップ１６１０が行われる。図１７の例では、ＬＵＮジェネレーター１１０６が、データセット５０８ａを第１のパーティション５０６ａ、または第１のＬＵＮ５００の他のパーティションにコピーすることに従って、第１のＬＵＮ５００のパーティションテーブル５０４を更新するように構成される。第１のＬＵＮ５００を増大させて、データセット５０８ａを記憶するための新しいパーティションを作成する場合、ＬＵＮジェネレーター１１０６によって、新しいパーティションのロケーションおよび／またはサイズがパーティションテーブル５０４に示される。次いで、第１のホストコンピュータ１０２ａは、必要な場合、第１のＬＵＮ５００をアンマウントし、再マウントして、第１のホストコンピュータ１０２ａのメモリ／キャッシュ中のパーティションテーブルを更新する。
【００６９】
本明細書で説明する実施形態は、仮想マシンファイルなど、データセットが、リアルタイムでマルチパーティションＬＵＮに記憶され、１つまたは複数のファイルとして専用のＬＵＮに記憶されることを可能にし、そのデータセットがホストコンピュータに公開される。マルチパーティションＬＵＮは、仮想ハードドライブの統合されたライブラリとして動作する。データセットを配置することが望まれる場合、データセットがＬＵＮに変換され、宛先ホストに割り当てられる。所望のデータセットを含んでいるマルチパーティションＬＵＮのパーティションが、（たとえば、ハードウェアコピーオンライトスナップショット技術を使用して）専用のＬＵＮに比較的迅速に複製される（たとえば、テラバイトにつき数秒）。次いで、専用のＬＵＮにコピーされたデータセットが新しいサーバーに公開され、直接アタッチされたＬＵＮとしてアクセスされる。この技法が、仮想マシンの迅速な展開を可能にするために使用され、より大きいデータベース上のデータマイニングを可能にするために使用され、および／またはストレージアレイがその従来のＬＵＮマップ制限を１０×または１００×にスケーリングすることを可能にし、ストレージアレイが長期レポジトリとして使用されることを可能にするために使用される。オートローダーコマンドがストレージアレイ内で再マップされて、パーティションを再び個別のＬＵＮに再ポピュレートすることを可能にするので、そのようなストレージアレイは、仮想テープライブラリをシミュレートすることが可能になる。
【００７０】
Ｖ．さらなる例示的な実施形態
アレイコントローラー１１２（図１、図２）と、ＬＵＮパーティショナー６０４（図６）と、アレイコントローラー８０２（図８、図１１、図１２、図１７）と、データセットピボットモジュール８０４（図８、図１１、図１２、図１７）と、ＬＵＮアロケーター１１０２（図１１、図１２、図１７）と、ピボット要求レシーバー１１０４（図１１、図１２、図１７）と、ＬＵＮジェネレーター１１０６（図１１、図１２、図１７）と、パーティションコピアー１１０８（図１１、図１２、図１７）とが、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装することができる。たとえば、アレイコントローラー１１２、ＬＵＮパーティショナー６０４、アレイコントローラー８０２、データセットピボットモジュール８０４、ＬＵＮアロケーター１１０２、ピボット要求レシーバー１１０４、ＬＵＮジェネレーター１１０６、および／またはパーティションコピアー１１０８が、１つまたは複数のプロセッサ中で実行されるように構成されたコンピュータプログラムコードとして実装することができる。代わりに、アレイコントローラー１１２、ＬＵＮパーティショナー６０４、アレイコントローラー８０２、データセットピボットモジュール８０４、ＬＵＮアロケーター１１０２、ピボット要求レシーバー１１０４、ＬＵＮジェネレーター１１０６、および／またはパーティションコピアー１１０８がハードウェア論理／電気回路として実装することができる。
【００７１】
図１９に、本発明の実施形態が実装されるコンピュータ１９００の例示的な実装形態を示す。たとえば、コンピュータ１０２ａ〜１０２ｃ（図１、図１２、図１７）および／またはコンピュータ６０２（図６）は、コンピュータ１９００と同様に実装され、コンピュータ１９００の１つまたは複数の特徴および／または代替的特徴を含む。たとえば、コンピュータ１９００は、従来のパーソナルコンピュータ、モバイルコンピュータ、またはワークステーションの形態の汎用コンピューティングデバイスでもよく、またはコンピュータ１９００は、専用コンピューティングデバイスでもよい。本明細書で提供するコンピュータ１９００の説明は、例示の目的で提供され、限定するものではない。本発明の実施形態が、当業者に知られているであろうさらなるタイプのコンピュータシステムにおいて実装することができる。
【００７２】
図１９に示すように、コンピュータ１９００は、処理ユニット１９０２と、システムメモリ１９０４と、システムメモリ１９０４を含む様々なシステム構成要素を処理ユニット１９０２に結合するバス１９０６とを含む。バス１９０６は、メモリバスまたはメモリコントローラー、周辺バス、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のいずれかのうちの１つまたは複数を表す。システムメモリ１９０４は、読取り専用メモリ（ＲＯＭ）１９０８と、ランダムアクセスメモリ（ＲＡＭ）１９１０とを含む。基本入出力システム１９１２（ＢＩＯＳ）がＲＯＭ１９０８に記憶される。
【００７３】
コンピュータ１９００はまた、次のドライブ、すなわち、ハードディスクから読み取り、ハードディスクに書き込むためのハードディスクドライブ１９１４、リムーバブル磁気ディスク１９１８から読み取り、リムーバブル磁気ディスク１９１８に書き込むための磁気ディスクドライブ１９１６、およびＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭなど、リムーバブル光ディスク１９２２から読み取り、リムーバブル光ディスク１９２２に書き込むための光ディスクドライブ１９２０、または他の光メディアのうちの１つまたは複数を有する。ハードディスクドライブ１９１４、磁気ディスクドライブ１９１６、および光ディスクドライブ１９２０が、それぞれ、ハードディスクドライブインターフェイス１９２４、磁気ディスクドライブインターフェイス１９２６、および光ドライブインターフェイス１９２８によってバス１９０６に接続される。ドライブと、それらの関連付けられたコンピュータ可読媒体とは、コンピュータ可読命令、データ構造、プログラムモジュールおよびコンピュータについての他のデータの不揮発性ストレージを与える。ハードディスク、リムーバブル磁気ディスクおよびリムーバブル光ディスクについて説明しているが、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など、他のタイプのコンピュータ可読媒体がデータを記憶するために使用することができる。
【００７４】
いくつかのプログラムモジュールが、ハードディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭ上に記憶される。これらのプログラムは、オペレーティングシステム１９３０と、１つまたは複数のアプリケーションプログラム１９３２と、他のプログラムモジュール１９３４と、プログラムデータ１９３６とを含む。アプリケーションプログラム１９３２またはプログラムモジュール１９３４は、たとえば、アレイコントローラー１１２、ＬＵＮパーティショナー６０４、アレイコントローラー８０２、データセットピボットモジュール８０４、ＬＵＮアロケーター１１０２、ピボット要求レシーバー１１０４、ＬＵＮジェネレーター１１０６、および／またはパーティションコピアー１１０８、フローチャート７００、ステップ９０２、フローチャート１０００、フローチャート１３００、フローチャート１４００、ステップ１５０２、フローチャート１６００、フローチャート１８００、（フローチャート７００、１０００、１３００、１４００、１６００、および１８００のうちのいずれかのステップを含む）、および／または上記で説明した任意のさらなる実施形態を実装する／可能にするためのコンピュータプログラム論理を含む。
【００７５】
ユーザーは、キーボード１９３８およびポインティングデバイス１９４０などの入力デバイスを介して、コマンドおよび情報をコンピュータ１９００に入力する。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナーなどを含む。これらおよび他の入力デバイスが、しばしば、バス１９０６に結合されたシリアルポートインターフェイス１９４２を介して処理ユニット１９０２に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など、他のインターフェイスによって接続されてもよい。
【００７６】
また、モニター１９４４または他のタイプのディスプレイデバイスがビデオアダプター１９４６などのインターフェイスを介してバス１９０６に接続される。モニターに加えて、コンピュータ１９００は、スピーカーおよびプリンターなど、他の周辺出力デバイス（図示せず）を含む。
【００７７】
コンピュータ１９００が、ネットワークアダプターもしくはインターフェイス１９５０、モデム１９５２、またはネットワーク上での通信を確立するための他の手段を介して、ネットワーク１９４８（たとえば、インターネット）に接続される。内部でも外部でもよいモデム１９５２がシリアルポートインターフェイス１９４２を介してバス１９０６に接続される。
【００７８】
本明細書で使用する、「コンピュータプログラム媒体」および「コンピュータ可読媒体」という用語が、概して、ハードディスクドライブ１９１４に関連付けられたハードディスク、リムーバブル磁気ディスク１９１８、リムーバブル光ディスク１９２２、ならびにフラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など、他のメディアなどのメディアを指すために使用される。
【００７９】
上記のように、（アプリケーションプログラム１９３２および他のプログラムモジュール１９３４を含む）コンピュータプログラムおよびモジュールが、ハードディスク、磁気ディスク、光ディスク、ＲＯＭ、またはＲＡＭに記憶される。そのようなコンピュータプログラムがまた、ネットワークインターフェイス１９５０またはシリアルポートインターフェイス１９４２を介して受信される。そのようなコンピュータプログラムは、アプリケーションによって実行されたかまたは読み込まれた場合、コンピュータ１９００が、本明細書で説明する本発明の実施形態の特徴を実装することを可能にする。したがって、そのようなコンピュータプログラムは、コンピュータ１９００のコントローラーを表す。
【００８０】
本発明はまた、任意のコンピュータ使用可能媒体上に記憶されたソフトウェアを含むコンピュータプログラム製品を対象とする。そのようなソフトウェアは、１つまたは複数のデータ処理デバイスにおいて実行された場合、（１つまたは複数の）データ処理デバイスを本明細書で説明するように動作させる。本発明の実施形態は、現在知られている、または将来知られる任意のコンピュータ使用可能媒体またはコンピュータ可読媒体を採用する。コンピュータ可読媒体の例には、限定はしないが、ＲＡＭ、ハードドライブ、フロッピーディスク、ＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、ジップディスク、テープ、磁気ストレージデバイス、光ストレージデバイス、ＭＥＭ、ナノテクノロジーベースのストレージデバイスなどのストレージデバイスがある。
【００８１】
ＶＩ．結び
本発明の様々な実施形態について上述したが、それらの実施形態が、限定ではなく例としてのみ提示されていることを理解されたい。添付の特許請求の範囲において定義される、本発明の趣旨および範囲から逸脱することなく、形態および詳細の様々な変更を行うことができることが、当業者には理解されよう。したがって、本発明の広さおよび範囲は上記で説明された例示的な実施形態のいずれかによって限定されるべきではなく、以下の特許請求の範囲およびその均等物に従ってのみ規定されるべきである。
【図１】
0005276218.tif 000002
【図２】
0005276218.tif 000003
【図３】
0005276218.tif 000004
【図４】
0005276218.tif 000005
【図５】
0005276218.tif 000006
【図６】
0005276218.tif 000007
【図７】
0005276218.tif 000008
【図８】
0005276218.tif 000009
【図９】
0005276218.tif 000010
【図１０】
0005276218.tif 000011
【図１１】
0005276218.tif 000012
【図１２】
0005276218.tif 000013
【図１３】
0005276218.tif 000014
【図１４】
0005276218.tif 000015
【図１５】
0005276218.tif 000016
【図１６】
0005276218.tif 000017
【図１７】
0005276218.tif 000018
【図１８】
0005276218.tif 000019
【図１９】
0005276218.tif 000020