ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
【課題】複数のアプリケーション又は仮想ホスト又はホストに使用される仮想ボリュームに初期的に割り当てられる実領域のソースとして適切なメディアをアプリケーション又は仮想ホスト又はホスト毎に選択できるようにする
【解決手段】Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームがある。ストレージ装置が、仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、且つ、ライト先の仮想領域が未割当の仮想領域の場合、ライト先の仮想領域に対するライト及び/又はそのライト元の識別情報に応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域をライト先の仮想領域に割り当てる。
【解決手段】Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームがある。ストレージ装置が、仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、且つ、ライト先の仮想領域が未割当の仮想領域の場合、ライト先の仮想領域に対するライト及び/又はそのライト元の識別情報に応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域をライト先の仮想領域に割り当てる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Thin Provisioningに従う仮想的な論理ボリュームへの記憶領域の割り当てに関する。
【背景技術】
【0002】
Thin Provisioning技術を組み合わせたストレージ階層管理技術が考えられている。そのストレージ階層管理技術では、Thin Provisioningに従う仮想的な論理ボリューム(以下、仮想ボリューム)の単位で、どのメディアから実領域(実体的な記憶領域)を割り当てるかが選択される。例えば、特許文献1によれば、仮想ボリューム毎に、予め、1以上のメディアが対応付けられており、仮想ボリュームに対するライトの際には、その仮想ボリュームに対応付けられている1以上のメディアのうちのいずれから、実領域が割り当てられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−66259号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
1つの仮想ボリュームが複数のアプリケーション又はホスト計算機に使用され、且つ、仮想ボリュームに対する性能要件がそれぞれのアプリケーション又はホスト計算機で異なる場合がある。それについて例えば2つの具体例が考えられる。
【0005】
第1の具体例として、多くのリクエストを高速に処理する必要のあるオンライン処理アプリケーションと、そのアプリケーションのデータを夜間にバッチで処理する集計アプリケーションと、定期的にバックアップを作成するバックアップアプリケーションとが、1つの仮想ボリュームを使用する場合が考えられる。この場合、オンライン処理アプリケーションが使用する仮想領域(仮想ボリューム内の仮想的な記憶領域)には、高速なメディア内の実領域が割り当てられることが好ましく、それ以外のアプリケーションが使用する仮想領域には、その高速なメディアよりも低速のメディア内の実領域が割り当てられれば良いと考えられる。
【0006】
しかし、上述した技術によれば、初期的に割り当てられる実領域のソースとしてのメディアが仮想ボリューム単位で決まっているため、仮想ボリュームに対して必ずしも初期的に適切な実領域を割り当てることができない。
【0007】
第1の具体例において、仮想ボリュームに、初期的には必ず高速なメディアから実領域が割り当てられると設定すると、オンライン処理アプリケーション以外のアプリケーションからのライト先となる仮想領域にも、高速なメディアから実領域が割り当てられることになる。このため、オーバースペック(即ち過度な速度を持つメディアの割り当て)が生じる。逆に、仮想ボリュームに、初期的には必ず低速なメディアから実領域が割り当てられると設定すると、オンライン処理アプリケーションからのライト先となる仮想領域にも、低速なメディアから実領域が割り当てられることになる。このため、オンライン処理アプリケーションからのアクセスについて性能不足が生じてしまう。
【0008】
第2の具体例として、ホストの仮想化技術(サーバ仮想化技術)が考えられる。ホストの仮想化技術では、ストレージ装置から提供された複数の仮想ボリュームが、「データストア」と呼ばれる仮想的な1つのストレージプールとみなされ、仮想ホストに対して、データストアに基づいて仮想的なディスクが提供される。これは、ストレージ装置が提供する仮想ボリュームと、仮想ホストに提供される仮想的なディスクとの間には、多対多の関係が存在し得るということ、言い換えれば、ストレージ装置が提供する仮想ボリュームが、アプリケーションの異なる複数の仮想ホストに使用され得るということを意味する。
【0009】
そこで、本発明の目的は、複数のアプリケーションに使用される仮想ボリュームに初期的に割り当てられる実領域のソースとして適切なメディアをアプリケーション又は仮想ホスト又はホスト毎に選択できるようにすることにある。
【課題を解決するための手段】
【0010】
Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームがある。ストレージ装置が、仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、且つ、ライト先の仮想領域が未割当の仮想領域の場合、ライト先の仮想領域に対するライト及び/又はそのライト元の識別情報に応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域をライト先の仮想領域に割り当てる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施例に係る計算機システムの構成を示す。
【図2】ホスト101の構成を示す。
【図3】ストレージ装置109の構成を示す。
【図4】VVOL管理表312の構成を示す。
【図5】実領域管理表313の構成を示す。
【図6】RAIDグループ管理表314の構成を示す。
【図7】ストレージ階層定義表315の構成を示す。
【図8】初期割当ポリシ表316の構成を示す。
【図9】管理システム103の構成を示す。
【図10】ホスト管理表317の構成を示す。
【図11】アプリケーション定義表318の構成を示す。
【図12】再配置履歴表412の構成を示す。
【図13】初期設定画面1501を示す。
【図14】ライト処理の流れを示すフローチャートである。
【図15】再配置処理の流れを示すフローチャートである。
【図16】初期割当てポリシ作成処理の流れを示す。
【図17】初期割当てポリシ定義画面1401を示す。
【図18】本発明の一実施例の概要の説明図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施例を説明する。なお、以下の説明では、「xxx表」の表現にて各種情報を説明することがあるが、各種情報は、表以外のデータ構造(例えば、キュー)で表現されていてもよい。データ構造に依存しないことを示すために「xxx表」を「xxx情報」と呼ぶことができる。
【0013】
また、以下の説明では、種々の対象の識別情報として、ID、WWN(World Wide Name)、名称が使用されるが、それらは相互に置換可能であるし、また、他種の識別情報(例えば、番号)も採用可能である。
【0014】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、管理システムが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【0015】
また、管理システムは、一以上の計算機で構成されて良い。具体的には、例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
【0016】
また、本発明で述べる「時間」には日付情報が含まれていてもよい。さらに、「時間」のデータ表現形式は、所定開始時点からの秒数、ミリ秒、マイクロ秒で表現してもよく、年、月、日、時、分、秒といった形式で表現してもよく、他の形式で表現してもよい。また、「時間」は、特定の瞬間(Point-in-Time)を指し示すものでもよく、時間帯として幅を持ったものでもよい。
【0017】
なお、本発明における「アプリケーション」とは、以下の(A)及び(B)、
(A)一つ以上のアプリケーションプログラム、
(B)(b1)当該プログラムの設定情報、(b2)当該プログラムが処理対象とするデータ、(b3)当該プログラムが受信する処理要求の内容、及び(b4)当該プログラムが処理要求を受信する頻度、のうちの少なくとも1つ、
によって定められる、仮想ホスト又はホストが行う一連のオペレーションを指す。その一例が、前述のオンライン処理、集計処理、或いは、バックアップ処理である。なお、
(*)アプリケーションプログラムの種類が同じで、処理対象とするデータが異なることで一連のオペレーションの差異につながる例としては、アプリケーションプログラムがDBMSプログラムで、処理対象とするデータが本番稼動中の基幹業務データである場合と、処理対象とするデータが、分析用データである場合がある。
(*)アプリケーションプログラムの種類が一部共通で、処理対象とするデータも共通であるが、当該プログラムが受信する処理要求の内容が異なる一例が、前述のオンライン処理と、集計処理やバックアップ処理である。
【0018】
<本実施例の概要>。
【0019】
図18は、本発明の一実施例の概要の説明図である。
【0020】
ストレージ装置109にホスト計算機(以後、単にホストと呼ぶ)101及び管理システム103が接続されている。
【0021】
管理システム103は、ストレージ装置109を管理する。管理システム103は、ストレージ装置109又はホスト101に含まれても良い。
【0022】
ストレージ装置109は、プール1613と、複数の仮想ボリューム(以下、VVOL)1615とを有する。
【0023】
プール1613は、複数の階層で構成されている。言い換えれば、プール1613は、性能の異なる複数のメディア1611で構成されている。階層の高さは、メディア1611の性能に依存する。例えば、複数のメディア1611のうち、最も性能の高い第1のメディア(最も高速のメディア)1611Aが、最も高い階層に相当し、最も性能の低い第3のメディア(最も低速のメディア)1611Cが、最も低い階層に相当する。なお、ここで言う「性能」とは、例えば、アクセス性能である。アクセス性能としては、例えば、レスポンスタイム(例えば、メディアに基づく物理記憶デバイスがデータのアクセス要求をコントローラから受けてからコントローラへ応答が出力されるまでの時間)、或いは、データ転送速度(単位時間当たりに入出力されるデータの量)がある。
【0024】
各メディア1611は、2以上の実領域1614で構成されている。従って、プール1613は、複数の実領域(実体的な記憶領域)1614で構成されている。各メディア1611は、1以上の物理記憶デバイス(例えば、複数の物理記憶デバイスで構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループ)に基づく1以上の実ボリュームの集合で良い。「実ボリューム」とは、物理記憶デバイスに基づく論理ボリュームである。メディア1611の性能は、そのメディア1611の基になっている物理記憶デバイスの種類、RAIDレベル及びコンビネーション(4D+2P、3D+1Pといった構成)の少なくとも1つに依存する。物理記憶デバイスの種類として、例えば、SSD(Solid
State Drive)、SAS(Serial Attached SCSI)−HDD(Hard Disk Drive)、及びSATA(Serial ATA)−HDDがある。なお、SSDは、フラッシュメモリ及びDRAM等の半導体メモリを用いた物理記憶デバイスである点が、HDDと異なる。
【0025】
VVOL1615は、複数の仮想領域(仮想的な記憶領域)1616で構成されている。
【0026】
ホスト101に、ホストの仮想化技術(サーバ仮想化技術)が適用されている。ホスト101は、複数の仮想ホスト213と、データストア1621を有する。データストア1621は、複数のマウントボリューム1625の集合である。マウントボリューム1625は、ストレージ装置109からマウントされたVVOL1615に対応した記憶空間である。マウントボリューム1625とVVOL1615が1対1で対応している。データストア1621の一部分が、仮想ホスト213に論理ボリューム1623として提供される。このような構成により、VVOL1615と論理ボリューム1623との間には、多対多の関係が存在し得る、言い換えれば、VVOL1615が、アプリケーションの異なる複数の仮想ホスト213に使用され得る。
【0027】
なお、「マウント」とは、少なくともホスト101がVVOL1615を認識してデータストア1621に含めるために必要な管理情報を生成することを指す。さらに、前述の管理情報の一例としては、VVOL1615の識別子と、VVOL1615に対してホスト101が管理するために割り当てる識別子と、の対応がある。また、VVOL1615の識別子の例としては、(1)ストレージ装置の識別子とVVOL1615に割り当てられるストレージ装置内でユニークな識別子や、(2)ストレージ装置のポートの識別子(例えば、WWN、ポートID、及びIPアドレスのうちの少なくとも1つ)とVVOL1615に割り当てられたLUN(Logical Unit Number)、がある。なお、以後の説明では、ホスト101の説明でも「VVOL1615」という単語を用いて説明するが、当該説明は、ホスト101が認識したVVOL1615、即ちマウントボリューム1625についての説明である。
【0028】
仮想領域1616に対する実領域の割り当てとして、「初期割当て」と「再配置割当て」とがある。
【0029】
「初期割当て」とは、未割当の仮想領域1616に未割当の実領域(いずれの仮想領域1616にも割り当てられていない実領域)1614が割り当てられることである。従って、「初期割当て」は、VVOL内の当該未割当の仮想領域を含むアドレス範囲(例えばLBA(Logical Block Address)とライトデータ長)を指定したライト要求を受信した契機で行われてもよい。また、「初期割当て」は、例えば、VVOL1615から別のVVOL1615へのデータのマイグレーションの際に、当該未割当の仮想領域に対するデータ格納が必要となった契機で行われても含まれて良い。なお、上記説明では割当られる実領域は、仮想領域に割当時点で未割当な領域であることが前提であるが、必ずしもそうでなくてもよい。即ち、割当時点で既に別な仮想領域に割り当てられた領域を未割当の仮想領域に割当ても良い。
【0030】
「未割当の仮想領域」とは、実領域が割り当てられていない仮想領域、或いは、実質的に実領域が割り当てられていない仮想領域(例えば、予め所定のデータが書き込まれている実領域である特別実領域)(例えば、全ビットの値が“0”である実領域)が割り当てられている仮想領域)である。未割当の仮想領域に対するライトが発生した場合、その仮想領域に特別実領域が割り当てられていれば、その仮想領域に、特別実領域に代えて、未割当の実領域(仮想領域に割り当てられていない実領域)が割り当てられ、その実領域に、ライトデータが書き込まれる。特別実領域は、1つのプールにn(nは自然数)個存在して良い。また、特別実領域は、複数の未割当の仮想領域に共通であって良い。
【0031】
「再配置割当て」とは、再配置処理において、データのマイグレーション元の実領域1614が割り当てられている仮想領域1616に、マイグレーション元の実領域1614に代えて、データのマイグレーション先の実領域1614が割り当てられることである。本実施例では、前述の通り、初期割当ての際に割り当てられる実領域のソースとして適切なメディア1611が選択される。なお、再配置割当ての場合は、マイグレーション元の実領域1614に格納したデータをマイグレーション先の実領域に移動(またはコピー)することが典型的である。
【0032】
仮想ホスト213からのライトでは、例えば、下記(a1)〜(a7)が行われる。
(a1)仮想ホスト213で仮想的に実行されるプログラムは、その仮想ホスト213に提供されている仮想的なディスク(仮想ホストディスクと呼ぶ)1623に対してライトを要求する。なお、この時のライト要求は、仮想ホストディスク1623上のアドレス範囲(仮想ホストディスクアドレス範囲)を指定している。なお、ライトを要求する場合は、仮想ホスト213は、ライト対象のデータ(ライトデータ)も生成している。なお、仮想ホスト213はホスト101が実行するハイパーバイザプログラムの処理により提供される仮想的な計算機であり、同様に稼動ホストディスクも、ハイパーバイザプログラムの処理により、仮想ホスト上で仮想的に実行されるプログラムに対して提供される仮想的なディスクである。
(a2)ホスト101のハイパーバイザプログラムは、(a1)の要求に応じて、仮想ホストディスクアドレス範囲に対応したVVOL1615のアドレス範囲(例えばLBA(Logical Block Address)及びライトデータ長)を指定したライト要求及びライトデータと、をストレージ装置109に送信する。
(a3)ストレージ装置109が、(a2)で送信されたライト要求を受信する。ストレージ装置109は、キャッシュメモリ領域を有しており、ライト要求に従うライトデータを、キャッシュメモリ領域に格納する。ライトデータをキャッシュメモリ領域に書込んだときに、ストレージ装置109は、ホスト101に、ライト完了報告を応答して良い。
(a4)ストレージ装置109が、(a3)で受信したライト要求が指定するアドレス範囲から、当該アドレス範囲に含まれる仮想領域(以下、ライト先仮想領域)1616を特定する。
(a5)ストレージ装置109が、ライト先仮想領域1616が未割当の仮想領域か否かを判断する。
(a6)ライト先仮想領域1616が未割当の仮想領域であれば、ストレージ装置109が、初期割当て処理を行う。初期割当て処理では、ストレージ装置109が、ライト元のアプリケーション又はホスト101又は仮想ホスト213に対応したメディア1611を特定し、特定したメディア1611から、ライト先仮想領域1616に未割当の実領域1614を割り当てる。
(a7)ストレージ装置109は、ライト先仮想領域1616に割り当てた実領域1614に、ライト対象のデータを書き込む。ライト対象のデータをキャッシュメモリ領域に書込んだときに代えて、ストレージ装置109は、ライト対象のデータを実領域1614に書込んだときに、ホスト101に、ライト完了報告を応答して良い。
【0033】
一方の仮想ホスト213からのリードでは、例えば、下記(A1)〜(A7)が行われる。
(A1)仮想ホスト213で仮想的に実行されるプログラムは、その仮想ホスト213に提供されている仮想ホストディスク1623に対してリードを要求する。なお、この時のリード要求は、仮想ホストディスクアドレス範囲を指定している。
(A2)ホスト101のハイパーバイザプログラムは、(A1)の要求に応じて、仮想ホストディスクアドレス範囲に対応したVVOL1615のアドレス範囲を指定したリード要求を、ストレージ装置109に送信する。
(A3)ストレージ装置109は、(A2)で送信されたリード要求を受信する。ストレージ装置109は、リード要求で指定されたアドレス範囲を指定して過去にライトしたデータ(リード対象のデータ、またはリードデータと呼ぶ)をキャッシュメモリ領域または割当済み実領域から読み出し、ホスト101に送信する。
(A4)ホスト101のハイパーバイザプログラムは、前述のリードデータを受信し、(A1)にてリードを要求した仮想ホストを特定して、当該仮想ホストにリードデータを仮想的に送信する。
(A5)仮想ホストで仮想的に実行されるプログラムは、要求したリードに対応するリードデータとして、(A4)のリードデータを受信する。
【0034】
なお、上記説明の「仮想ホストで仮想的に実行されるプログラム」の例は、OSやアプリケーションプログラムである。さらに上記説明で主語を「ストレージ装置」とした説明はストレージ装置に含まれるコントローラの行う処理と考えても良い。
【0035】
なお、上記(a2)、(A2)のライト及びリードにて対象となる仮想ディスクアドレス範囲から仮想ボリューム1616のアドレス範囲を特定する処理は、ホスト101が有する変換情報に基づいて行われる。
【0036】
本実施例に係る初期割当て処理は、ライト元のアプリケーション又は仮想ホストまたはホストは、ライト元識別情報及び/又はライト時間帯に対応するという考えが基になっている。
【0037】
ライト元識別情報は、ライト元を識別するための情報であり、本実施例では、ライト元の仮想ホスト213のWWN(World Wide Name)である。ホストの仮想化技術が適用されていない場合(ホスト101に仮想ホスト213が無い場合)、ライト元識別情報は、ホスト101のWWN(具体的には、例えば、ホスト101が有するインタフェース装置(例えばHBA(Host
Bus Adapter))に割り当てられているWWN)であって良い。
【0038】
ライト時間帯は、例えば、ライト時間が属する時間帯である。ライト時間は、例えば、ライト要求を受信した時間、ライト要求に応答して実領域が割り当てられた時間、又は、ライト要求が有するタイムスタンプが表す時間である。
【0039】
ライト元のアプリケーションを特定するための方法として、例えば、ストレージ装置109又は管理システム103がエージェントプログラムを有し、エージェントプログラムによって、ホスト101からのライトの際のアプリケーションを問合せる方法が考えられる。しかし、その方法は、現実的でない。
【0040】
そこで、本実施例では、ライト元のアプリケーション又は仮想ホストまたはホストを特定するために、ライト元識別情報及び/又はライト時間が用いられる。これは、下記の複数の仮定のうちの少なくとも1つが基になっている。
(*)1つのホスト101(又は1つの仮想ホスト213)では、1又は少数のアプリケーションプログラムが同時実行される傾向にあり、多くのアプリケーションプログラムが常には同時実行されない傾向にある。
(*)1つのホスト101(又は1つの仮想ホスト213)では、上述のように重複する時間帯に、多数のアプリケーションプログラムが実行されない傾向にある一方で、異なる時間帯であれば別なアプリケーションプログラムが実行される場合がある。つまり、1つの時間帯に実行されるアプリケーションプログラムの数は1つである傾向にある。例えば、昼間に第1のアプリケーションプログラムが実行され、夜間に第2のアプリケーションプログラムが実行される。
【0041】
この方法であれば、実質的に、ストレージ装置109が単独でライト元のアプリケーションを特定できる。
【0042】
なお、本発明において、ライト元識別情報は、例えばライト要求に含まれるライト要求の送信元ホスト101(又は仮想ホスト213)が有するインタフェース装置のWWN(またはWWNに基いて生成されたポート番号)等の識別子そのもの、或いは、これらの情報を変換して得られる情報である。
【0043】
本実施例では、初期割当ポリシ情報が予め用意されている。初期割当ポリシ情報を基に、上記(a6)において、ライト元識別情報及び/又はライト時間に対応したメディア1611が特定される。
【0044】
初期割当ポリシ情報では、初めは、実領域のソースとなるメディア(以下、初期メディア)1611が、VVOL1615単位で定義されている。そして、初期割当ポリシ情報は、再配置処理の結果を基に、適時に更新される。再配置処理では、実領域1614間でデータのマイグレーションが行われる。仮想領域1616に割り当てられている実領域1614が、マイグレーション元の実領域1614となり、その実領域1614を有するメディア1611とは異なるメディア1611内の実領域1614が、マイグレーション先の実領域1614となる。再配置処理において、仮想領域1616に割り当てられている実領域1614がデータマイグレーションの対象となるか否かは、その仮想領域1616に対するアクセスの状況を基に決定される。なお、前述の「アクセス」には、前述のリード及び/又はライトが含まれる。アクセス状況としては、例えば、最終アクセス時間(最終ライト時間及び/又は最終リード時間)、アクセス負荷がある。アクセス負荷としては、例えば、データ転送速度(単位時間当たりに入出力されるデータの量)、又は、アクセス頻度がある。本実施例では、仮想領域1616のアクセス頻度を基に、その仮想領域1616に割り当てられている実領域1614がデータマイグレーションの対象となるか否かが決定される。具体的には、本実施例では、再配置処理のために、例えば、下記(項目1)及び(項目2)がある。
(項目1)各メディア1611又は各階層について、アクセス頻度範囲が定義されている。
(項目2)ストレージ装置109が、各仮想領域1616についてアクセス頻度(例えば、単位は「IOPS」)を管理する。例えば、ストレージ装置109は、仮想領域1616に対するライト及び/又はリードを行ったとき(又は、仮想領域1616に割り当てられた実領域に対してライト及び/又はリードが行われたとき)、その仮想領域1616に対応したアクセス頻度を更新する。ストレージ装置109は、各仮想領域1616についてアクセス頻度を、定期的または繰り返し、例えばゼロにリセットする。
【0045】
なお、上記項目はアクセス頻度を例としているが、他のアクセス状況でも、各メディア1611又は各階層について想定するアクセス状況の範囲が定義され、ストレージ装置109が各仮想領域1616についてアクセス状況を管理していれば良い。
【0046】
再配置処理は、定期的に又は不定期的に行われる。再配置処理では、例えば、下記(b1)及び(b2)が行われる。
(b1)ストレージ装置109が、各仮想領域1616について、仮想領域1616のアクセス頻度が、その仮想領域1616に割り当てられている実領域1614を有するメディア1611に対応したアクセス頻度範囲を超えているか否かを判断する。この処理は他のアクセス状況であれば、各仮想領域1616のアクセス状況が、その仮想領域1616に割り当てられている実領域1614を有するメディア1611に対応した想定アクセス状況範囲の範囲外であるか否かを判断することになる。
(b2)上記(b1)の判断の結果、範囲外と判断した仮想領域(以下、図18を参照した説明において「対象仮想領域」と言う)1616について、ストレージ装置109が、データマイグレーション処理を行う。具体的には、下記(b21)及び(b22)が行われる。
(b21)ストレージ装置109は、マイグレーション元の実領域から、そのマイグレーション元の実領域を有するメディア1611とは別のメディア1611内の任意の未割当の実領域(マイグレーション先の実領域)に、データをマイグレーションする。「マイグレーション元の実領域」とは、対象仮想領域1616に割り当てられている実領域である。マイグレーション先の実領域を有するメディア1611は、対象仮想領域1616のアクセス頻度が収まるアクセス頻度範囲に対応したメディア1611である。他のアクセス状況であれば、マイグレーション先の実領域を有するメディア1611は、対象仮想領域1616のアクセス状況が範囲内である想定アクセス状況範囲に対応したメディア1611であると言える。
(b22)ストレージ装置109が、対象仮想領域1616に、マイグレーション元の実領域に代えて、マイグレーション先の実領域を割り当てる。
【0047】
管理システム103が、再配置処理の結果を基に、初期割当ポリシ情報の更新を行う。例えば、次のようなケースでは、管理システム103が、第1のライト元識別情報及び/又は第1のライト時間帯に対応するメディアが第1のメディア(例えばSSDメディア)1611Aから第2のメディア(例えばSASメディア)1611Bになるように初期割当ポリシ情報を更新する。
(*)第1のライト元識別情報及び/又は第1のライト時間帯に対応したメディアが、第1のメディア1611Aである。そして、第1のライト元識別情報及び/又は第1のライト時間帯に対応する複数の仮想領域に初期割当て処理において割り当てられた複数の実領域のうち、再配置処理の結果、第2のメディア1611Bに含まれている実領域の数が最も多い。
【0048】
<実施例の詳細の説明>。
【0049】
<<構成に関する説明>>。
【0050】
図1は、本実施例に係る計算機システムの構成を示す。
【0051】
SAN(Storage Area Network)105に、ホスト101及びストレージ装置109が接続されている。LAN(Local Area
Network)107に、ストレージ装置109及び管理システム103が接続されている。ストレージエリアネットワーク105及び管理用ネットワーク107の少なくとも一方は、他種の通信ネットワークでも良い。また、ストレージエリアネットワーク105及び管理用ネットワーク107は、同種の通信ネットワークであって一体となっていても良い。
【0052】
ホスト101は、ストレージ装置109にアクセス要求を送信する。ストレージ装置109が、ホスト101からSAN109を介してアクセス要求を受信し、そのアクセス要求を処理する。なお、アクセス要求の一例は前述のリード要求又は/及びライト要求である。
【0053】
管理システム103が、ストレージ装置109に制御要求(例えば、初期割当てポリシ情報の更新要求)を送信する。ストレージ装置109が、管理システム103からLAN107を介して制御要求を受信し、制御要求に従う処理を行う。
【0054】
なお、計算機システムは複数のホスト101を含んでも良い。同様に計算機システムは複数のストレージ装置を含んでも良い。
【0055】
図2は、ホスト101の構成を示す。
【0056】
ホスト101は、1以上の計算機で構成されている。ホスト101は、SANポート203と、メモリ205と、メモリ205及びSANポート203に接続されたCPU(Central Processing Unit)201とを有する。メモリ205に代えて又は加えて他種の記憶資源があっても良い。
【0057】
SANポート203は、SAN105に接続され、例えば、ホスト101に搭載されたHBA(Host Bus Adapter)が有するSANポート203には、SANポート203の識別情報であるWWNが割り当てられている。
【0058】
メモリ205は、前述のハイパーバイザプログラム211(ハイパーバイザと省略することもある)と、一つ以上の仮想ホスト情報213iと、を記憶する。ハイパーバイザ211は、ホストの仮想化のためのコンピュータプログラムである。ハイパーバイザ211がCPU201で実行されることにより、前述の仮想ホスト情報に基づいて、ホスト101で1以上の仮想ホスト(仮想計算機)213が稼働する。
【0059】
各仮想ホスト213は、SANポート203を用いて通信を行う。各仮想ホスト213には、仮想的なポートの識別情報である仮想WWNが割り当てられている。仮想ホスト213からのアクセス要求は、例えば、仮想WWNと、アクセス先情報とを含む。アクセス先情報は、アクセス先の領域を特定するための情報であり、例えば、LUN(Logical Unit Number)及びLBA(Logical Block Address)を含む。LUNから、アクセス先のVVOLを特定し、LBAから、そのVVOL内の仮想領域を特定することが可能である。仮想ホスト213からのアクセス要求は、SANポート203を介して出力され、SAN105を介して、ストレージ装置109に届く。
【0060】
仮想ホスト情報213iは、仮想ホストの設定内容を格納した情報であり、設定内容の一例としては前述の仮想WWN、または/及び仮想ホストディスクの容量等がある。
【0061】
また、アクセス先情報は、ストレージ装置又はそれが有するポートを識別するための情報(例えば、WWN及び/又はポート番号)を含んで良い。
【0062】
図3は、ストレージ装置109の構成を示す。
【0063】
ストレージ装置109は、性能の異なる複数のRAIDグループ305と、複数のRAIDグループ305に接続されておりRAIDグループ305に対するアクセスを制御するコントローラとを有する。
【0064】
RAIDグループ305は、同種の複数の物理記憶デバイスで構成されている。例えば、RAIDグループ305としては、SSDで構成されたRAIDグループ、SAS−HDDで構成されたRAIDグループ、及び、SATA−HDDで構成されたRAIDグループがある。物理記憶デバイスとしては、HDDやフラッシュメモリデバイスなど、種々の物理記憶デバイスを採用可能である。なお、前述のコントローラとRAIDグループ305とが接続されているとは、実際にはコントローラと物理記憶デバイスとが接続されていることを指す。
【0065】
RAIDグループ305に基づく論理ボリューム、つまり実ボリューム(以下、RVOL)306が設けられている。性能の同じRAIDグループ305に基づく1以上のRVOL306で、1つのメディアが構成される。メディアの性能は、そのメディアを構成するRVOL306の基になっているRAIDグループ305の性能に依存する。RAIDグループ305の性能は、例えば、物理記憶デバイスの種類(RAIDグループ305を構成する物理記憶デバイスの種類)、RAIDレベル及びコンビネーション(4D+2P、3D+1Pといった構成)の少なくとも1つに依存する。
【0066】
メディアは、プールの構成要素である。このため、メディアは、2以上の実領域で構成される。従って、プールは、多数の実領域で構成される。なお、プールは一つのストレージ装置に複数存在してもよく、一つであってもよい。また、いずれのプールにも属さない実ボリュームがあっても良い。
【0067】
コントローラは、SANポート302と、LANポート303と、メモリ304と、それらに接続されたCPU301とを有する。メモリ304に代えて又は加えて他種の記憶資源があっても良い。また、メモリ304は、キャッシュメモリ領域を含む。キャッシュメモリ領域には、RAIDグループ305に対してリードデータまたはライトデータが一時的に記憶される。
【0068】
SANポート302は、SAN105に接続されるポートである。SANポート302が、仮想ホスト213からのアクセス要求を受信する。
【0069】
LANポート303は、LAN107に接続されるポートである。LANポート303が、管理システム103からの制御要求を受信する。
【0070】
メモリ304が、ストレージ制御プログラム311、VVOL管理表312、実領域管理表313、RAIDグループ管理表314、ストレージ階層定義表315及び初期割当ポリシ表316を記憶する。ストレージ制御プログラム311は、CPU301で実行されることにより、アクセス制御処理及び再配置処理を行うことができる。
【0071】
なお、本発明に置けるストレージ装置は、コントローラと物理記憶デバイスを含めばどのような実装形態でもよい。たとえば、図3のように一つの装置であってもよく、コントローラと物理記憶デバイスが別々な装置でネットワークで相互接続される形態であってもよい。なお、以後の説明ではストレージ装置をストレージサブシステムと呼ぶことがある。また、コントローラが行う処理の一部をホスト計算機に行わせる場合は当該ホスト計算機もストレージサブシステムの一部と考えても良い。
【0072】
次に、表312〜316を説明する。
【0073】
図4は、VVOL管理表312の構成を示す。
【0074】
VVOL管理表312は、VVOLのどの仮想領域にどの実領域が割り当てられているかや、初期割当て処理において仮想領域にはどのメディアから実領域が割り当てられたかや、再配置処理において仮想領域にはどのメディア内の実領域が割り当てられたかを表す。具体的には、例えば、VVOL管理表312は、仮想領域毎に、下記の情報を有する。
(*)仮想領域を有するVVOLに対応したLUNを表すLUN500。LUNは、ホスト101から指定されるVVOL識別情報である。
(*)仮想領域を有するVVOLのIDを表すVVOL ID501。VVOL IDは、ホスト101から指定されるIDではなく、ストレージ装置109の内部で認識されるIDである。
(*)仮想領域を有するVVOLにおける、仮想領域のアドレス範囲(以後はLBA範囲と呼ぶ場合がある)、を表す情報であるLBA範囲502。
(*)仮想領域に割り当てられている実領域のIDを表す実領域ID503。
(*)仮想領域に割り当てられている実領域を有する階層又はメディアのIDを表す階層ID504。
(*)仮想領域に初期割当て処理において実領域が割り当てられることの原因となったアクセス(ライト)のアクセス元の識別情報を表す割当時アクセス元WWN505。
(*)仮想領域に初期割当て処理において実領域が割り当てられた時間を表す情報である割当時間506。
(*)仮想領域のアクセス頻度を表す情報であるアクセス頻度507。アクセス頻度の単位は、例えば、IOPS(1秒当たりのアクセス(I/O)の回数)である。なお、当該情報は前述のアクセス状況であってもよい。
(*)仮想領域に再配置処理において割り当てられた実領域を有する階層又はメディアのIDを表す再配置判定結果508。
【0075】
図4の表312によれば、VVOL“Volume 1”の仮想領域“0-999”には、実領域“SEG1”が割り当てられていることがわかる。また、その仮想領域“0-999”には、メディア“Tier 2”内の実領域が割り当てられているが、その実領域内のデータは、再配置処理において、メディア“Tier 1”内の実領域にマイグレーションされることがわかる。また、その仮想領域“0-999”には、仮想ホスト“WWN-A”からのライトを契機に、初期割当て処理において、2009/12/25の13:45に実領域が割り当てられたことがわかる。また、その仮想領域“0-999”のアクセス頻度が“120”であることがわかる。
【0076】
なお、図4の例では、未割当の仮想領域のLBA範囲は登録されないものとして説明した。しかし、項目503乃至508に値が存在しないことを示すNULL値を入れて未割当のLBA範囲を登録してもよい。なお、VVOL管理表312は複数の表から構成されてもよい。例えば、項目500乃至503だけを抽出した表を別途メモリ204に有し、リード要求の処理及びライト要求の処理ではこの別途の表を参照または更新するようにしてもよい。
【0077】
図5は、実領域管理表313の構成を示す。
【0078】
実領域管理表313は、どの実領域が未割当か否かを表す。具体的には、例えば、実領域管理表313は、実領域毎に、下記の情報を有する。
(*)実領域のIDを表す実領域ID601。
(*)実領域が未割当か割当済かを表す割当状況602。
(*)実領域の基になっているRAIDグループのIDを表すRAIDグループID603。
(*)実領域の基になっているRAIDグループの記憶空間における、対象実領域のLBA範囲、を表すLBA範囲604。
【0079】
図6は、RAIDグループ管理表314の構成を示す。
【0080】
RAIDグループ管理表314は、RAIDグループの性能に関わる情報を有する。具体的には、例えば、RAIDグループ管理表314は、RAIDグループ毎に、下記の情報を有する。
(*)RAIDグループのIDを表すRAIDグループID701。
(*)RAIDグループを構成する物理記憶デバイスの種類を表すPDEV種類702。
(*)RAIDグループのRAIDレベルを表すRAIDレベル703。
【0081】
上記の情報701〜703のうちの少なくとも1つに代えて又は加えて、他種の情報(例えば、RAIDグループのコンビネーションを表す情報)が含まれていても良い。なお、図示の表における情報が一例であることは、図5に限らず、他の図についても同様である。
【0082】
図7は、ストレージ階層定義表315の構成を示す。
【0083】
ストレージ階層定義表315は、メディア(階層)の性能及びアクセス頻度範囲に関わる情報を有する。具体的には、例えば、ストレージ階層定義表315は、メディア(階層)毎に、下記の情報を有する。
(*)メディア(階層)のIDを表す階層ID801。
(*)メディアの性能を表すメディア性能802。メディアの性能は、例えば、メディアの基になっているRAIDグループを構成する物理記憶デバイスの種類と、そのRAIDグループのRAIDレベルとで定義される。
(*)メディア(階層)に対応したアクセス頻度範囲を表すアクセス頻度範囲803。なお、アクセス状況として考えた場合、本情報は前述の想定するアクセス状況範囲である。
【0084】
図8は、初期割当ポリシ表316の構成を示す。
【0085】
初期割当ポリシ表316は、前述した初期割当ポリシ情報の一例である。初期割当ポリシ表316は、アクセス元WWN及びアクセス時間帯に対応したメディア又は階層を表す。具体的には、例えば、初期割当ポリシ表316は、アクセス元WWN及びアクセス時間帯の組毎に、下記の情報を有する。
(*)VVOLのIDを表すVVOL ID901。
(*)アクセス元仮想ホストのWWNを表すアクセス元WWN902。
(*)時間帯を表す時間帯903。
(*)初期メディア(階層)のIDを表す初期割当階層904。
【0086】
この表316によれば、アクセス元WWN及び時間帯の組が、アプリケーションに相当する。従って、アクセス元WWN及び時間帯の組毎に初期メディア(階層)が定められるということは、アプリケーション毎に、初期メディア(階層)が定められるということである。
【0087】
なお、アクセス元WWN902及び時間帯903の両方とも、全ての場合を示すアスタリスク値”*”を設定することが可能である。これは即ち、アクセス元WWN902または時間帯903の何れかだけで初期メディアを決定する場合があるということである。また、図8では、アクセス元WWN902及び時間帯903を仮想ボリューム毎に定義可能な情報形態としたが、これらはプール単位やストレージ装置単位で定義可能としてもよい。
【0088】
なお、図8を用いて、VVOL ID、アクセス元WWN、又は/及び時間に基いて初期割当階層を求める場合、まずは図8の表のVVOL ID901、アクセス元WWN902、又は/及び時間帯903にアスタリスク値を含まない表中の行を用いて初期割当階層を求め、もし該当する行が無い場合にアスタリスク値を含む行を用いて初期割当階層を求めても良い。さらに、図8の表では901乃至903の3つの条件にアスタリスク値を入れることができるため、どの条件がアスタリスク値の場合から優先してしようする優先条件を定め、当該条件を図8の参照時に考慮してもよい。
【0089】
なお、初期割当ポリシ表316は、ライト要求で未割当の仮想領域を検知した場合に参照するため、高速に初期割当階層を決定するためにはできるだけ表の大きさが小さいほうが好ましい。その対策として、図8から、現在の時間が時間帯903に含まれる情報901、902、904の組を取り出して、別な表(アクセス元対応初期割当階層表と呼ぶ)を生成し、その表をメモリ304に格納し、初期割当階層を決定する処理でその表を参照してもよい。この場合、現在時間が変わることで新たに含まれることになった組をアクセス元対応初期割当階層表に登録したり、逆に現在時間に含まれなくなったために、アクセス元対応初期割当階層表に登録していた組を除くといった処理をしたりすることが必要となる。なお、このような処理は、コントローラが行ってもよい。また、図8の表を管理システムのメモリ402に格納し、さらに前述の処理を管理システムが行っても良い。なお、後者の場合の具体的な処理は以下の通りとなる。
(*)初期割当階層を決定する処理ではアクセス元対応初期割当階層表を参照することで、未割当の仮想領域に対して割り当てる実領域のメディアまたは階層を決定する。
(*)コントローラは、追加または削除する前述の組(つまり、仮想ボリュームのID、アクセス元の仮想ホストまたはホストの識別子、初期割当メディアまたは階層)を指定した実領域初期割当設定変更要求を管理システムから受信し、受信内容にあわせてアクセス元対応初期割当階層表を更新する。
(*)管理システムは、現在時間が変わることで新たに含まれることになった組をアクセス元対応初期割当階層表に登録したり、逆に現在時間に含まれなくなったために、アクセス元対応初期割当階層表に登録していた組を特定する処理を繰り返し実行する。そして、対応する組を検知した場合は、検知した組を指定した実領域処理割当設定変更要求をストレージ装置に送信する。
【0090】
図9は、管理システム103の構成を示す。
【0091】
管理システム103は、1以上の計算機で構成されている。管理システム103は、LANポート403と、メモリ402と、表示装置(例えば液晶ディスプレイ)451と、それらに接続されたCPU401とを有する。メモリ402に代えて又は加えて他種の記憶資源があっても良い。
【0092】
メモリ402は、ストレージ管理プログラム411、ホスト管理表317、アプリケーション定義表318、再配置履歴表412及び初期割当てポリシ表413を記憶する。ストレージ管理プログラム411がCPU401で実行されることにより、以下の処理が行われる。
(*)定期的または繰り返しストレージ装置109から再配置結果を表す情報を取得すること。
(*)その結果の集計を基に再配置履歴表412を更新すること。
(*)更新後の再配置履歴表412を基に後述の初期割当ポリシ作成処理を行うこと。
(*)その作成処理の結果を、ユーザに提示しユーザからの承認を受けたときに、或いは、ユーザに提示することなく、初期割当てポリシ表413及び316に反映すること。
【0093】
初期割当てポリシ表413の構成は、ストレージ装置109が有する初期割当てポリシ表316の構成と同じである。ストレージ管理プログラム411は、初期割当てポリシ表316が有する情報が、更新後の初期割当てポリシ表413が有する情報と一致するように、初期割当てポリシ表316を更新する。
【0094】
図10は、ホスト管理表317の構成を示す。
【0095】
ホスト管理表317は、仮想ホストとWWNとの関係を表す。具体的には、例えば、ホスト管理表317は、仮想ホスト毎に、下記の情報を有する。
(*)仮想ホストの名称を表すホスト名1001。
(*)仮想ホストのWWNを表すWWN1002。
【0096】
なお、ホスト名1001及びWWN1002は、仮想ホストで実行中のプログラム、またはホストのハイパーバイザプログラムから取得することができるが、手入力等の他の取得方法であってもよい。
【0097】
図11は、アプリケーション定義表318の構成を示す。
【0098】
アプリケーション定義表318は、アプリケーションの定義を表す。具体的には、例えば、アプリケーション定義表318は、アプリケーション毎に、下記の情報を有する。
(*)アプリケーションの名称を表すアプリケーション名1101。
(*)アプリケーションに対応した仮想ホスト(例えば、そのアプリケーション用のアプリケーションプログラムが実行される仮想ホスト)の名称を表すホスト名1102。
(*)アプリケーションに対応した時間帯(例えば、そのアプリケーション用のアプリケーションプログラムが実行される時間帯)を表す時間帯1103。
【0099】
なお、アプリケーション名、アプリケーションが実行される仮想ホスト、アプリケーションが実行される時間帯は、仮想ホストで実行中のプログラム、またはホストのハイパーバイザプログラムから取得することができるが、手入力等の他の取得方法であってもよい。
【0100】
また、各アプリケーションについて、ホスト名1102及び時間帯1103の一方が、全ての場合を示すアスタリスク値”*”であっても良い。これは、アプリケーションの定義が、アプリケーションが実行される仮想ホストと、アプリケーションが実行される時間帯とのいずれかに依存しないことを意味する。
【0101】
なお、図11を用いて、ホスト名、又は/及び時間に基いてアプリケーション名1101を求める場合、まずは図11の表のホスト名1102又は/及び時間帯1103にアスタリスク値を含まない表中の行を用いてアプリケーション名を求め、もし該当する行が無い場合にアスタリスク値を含む行を用いてアプリケーション名を求めても良い。さらに、図8の表では1102乃至1103の2つの条件にアスタリスク値を入れることができるため、どの条件がアスタリスク値の場合から優先してしようする優先条件を定め、当該条件を図11の参照時に考慮してもよい。
【0102】
図12は、再配置履歴表412の構成を示す。
【0103】
再配置履歴表412は、再配置処理の結果の履歴を表す情報を有する。具体的には、例えば、再配置履歴表412は、アクセス元WWN及び時間帯の組毎に、下記の情報を有する。
(*)VVOLのIDを表すVVOL ID1201。
(*)初期割当て処理の原因となったアクセス(ライト)のアクセス元WWN(アクセス元の仮想ホストのWWN)を表す初期アクセス元WWN1202。
(*)初期割当て処理において実領域が割り当てられた時間を含んだ時間帯を表す初期割当時間1203。
(*)再配置処理の結果の集計を表す集計値1204。集計値1204は、具体的には、初期割当て処理でVVOLに割り当てられた実領域のうち、どのメディア(階層)内の実領域が幾つあるかを表す。
(*)初期メディア(階層)のIDを表す初期割当階層1205。
【0104】
図12の表412によれば、VVOL“Volume 1”に初期割当て処理で割り当てられた複数の実領域であって、時間帯“2009/12/25の12:00-13:00”に仮想ホスト“WWN-C”からのライトによって初期メディア“Tier
3”から割り当てられた複数の実領域について、その後から現在までに行われた再配置処理により、以下の結果となったことがわかる。
(*)1個の実領域内のデータが、メディア“Tier 1”内の1個の実領域にマイグレーションされた。
(*)2個の実領域内のデータが、メディア“Tier 2”内の2個の実領域にマイグレーションされた。
(*)13個の実領域内のデータが、初期メディア“Tier 3”からマイグレーションされず残った。
【0105】
上記各ケースの発生比率を考慮することで、仮想ホスト“WWN-C”及び時間帯“2009/12/25の12:00-13:00”に対応する初期メディアとしては、メディア“Tier 3”が適切であることがわかる。従って、仮想ホスト“WWN-C”及び時間帯“2009/12/25の12:00-13:00”に対応する初期割当階層1205の値が、“Tier 3”以外であれば、“Tier 3”に更新されることが好ましい。なぜなら、再配置処理でマイグレーションされるデータの量は最も小さくて済むと考えられるからである。
【0106】
<<本実施例で行われる処理に関する説明>>。
【0107】
本実施例で行われる処理として、例えば、(1)初期設定、(2)ライト処理、(3)再配置処理、及び、(4)初期割当てポリシ表の更新、がある。以下、各処理を説明する。
【0108】
(1)初期設定。
【0109】
管理システム103内のストレージ管理プログラム411が、表示装置451に、図13に例示する初期設定画面1501を表示する。その画面1501には、アプリケーション名と時間帯の入力が可能である。また、その画面1501から、VVOL ID、アクセス元WWN及びホスト名、並びに、初期メディア(階層)のIDの選択が可能である。選択可能なVVOL IDは、例えば、VVOL管理表312に登録されているVVOL ID501であり、選択可能なアクセス元WWN及びホスト名は、例えば、ホスト管理表117に登録されているWWN1002及びホスト名1001であり、選択可能な初期メディア(階層)のIDは、例えば、ストレージ階層定義表315に登録されているID801である。
【0110】
ストレージ管理者は、ストレージ装置109からVVOLがホスト101に提供される前に(ホスト101にVVOLがマウントされる前に)、初期設定画面1501を用いて、そのVVOLに対応する初期メディア(階層)を選択しておく。つまり、少なくとも、VVOL IDと初期メディア(階層)が選択される。ストレージ管理プログラム411は、選択されたVVOL IDと初期メディア(階層)のIDとを、管理システム103内の初期割当てポリシ表413に登録する。また、ストレージ管理プログラム411が、ストレージ装置109内のストレージ制御プログラム311に、そのVVOL IDとメディアIDとを、ストレージ装置109内の初期割当てポリシ表316に登録させる。
【0111】
初期設定において、アクセス元WWN及びホスト名が選択され、且つ、アプリケーション名及び時間帯が初期設定画面1501に入力された場合、ストレージ管理プログラム411は、アクセス元WWN及び時間帯を、初期割当てポリシ表413に登録することができる。また、ストレージ管理プログラム411は、ストレージ制御プログラム311に、アクセス元WWN及び時間帯を初期割当てポリシ表316に登録させることができる。また、ストレージ管理プログラム411は、ストレージ制御プログラム311に、アプリケーション名、ホスト名及び時間帯の組を、アプリケーション定義表318に登録させることができる。
【0112】
ストレージ管理者は、アクセス元WWN及び時間帯の少なくとも一方を入力しなくて良い。この場合、初期割当てポリシ表316におけるアクセス元WWN902及び/又は時間帯903の値として、所定のコード“*”が登録される。ここでの“*”は、どのようなアクセス元WWN及び/又は時間帯であっても条件に合致すること(定義されている初期メディアから実領域が割り当てられること)を意味する。
【0113】
(2)ライト処理。
【0114】
図14は、ライト処理の流れを示すフローチャートである。
【0115】
S1001で、仮想ホストが、ライト要求を発行する。そのライト要求は、仮想ホストのWWNと、ライト先情報を有する。ライト先情報は、LUNと仮想領域のLBAとを含む。ライト先情報は、更に、ライト要求に付随するデータ(ライト対象のデータ)のデータサイズを含んで良い。
【0116】
S1002で、ストレージ装置109が、仮想ホストからのライト要求を受信する。プログラム311は、キャッシュメモリ領域に、ライト対象のデータを書き込む。また、ストレージ制御プログラム311が、ライト要求内のライト先情報が有するLUNに対応したVVOL IDを特定し、且つ、ライト先情報に対応した実領域ID503をVVOL管理表312から特定する。
【0117】
特定された実領域ID503が有効な値(いずれかの実領域のIDを表す値)の場合(S1003:Yes)、プログラム311は、S1012で、特定された実領域ID503から識別される実領域に、キャッシュメモリ領域にある書込み対象のデータを書き込む。
【0118】
特定された実領域ID503が無効な値(実領域が割り当てられていないことを意味する値)の場合(S1003:No)、プログラム311は、S1004で、全てのライト先仮想領域(ライト先情報から特定される仮想領域)に対して割り当て可能な未割当の実領域がプールに有るか否かを、実領域管理表313を基に判断する。
【0119】
S1004の判断の結果が否定的の場合(S1004:No)、プログラム311は、S1005で、ライト要求の送信元の仮想ホストにエラーを返す。
【0120】
S1004の判断の結果が肯定的の場合(S1004:Yes)、S1006で、プログラム311は、ライト先情報内のLUNを用いて特定されたVVOL IDと、仮想ホストのWWNと、ライト要求を受信した時間とに対応する初期メディアID(初期割当階層904)を、初期割当てポリシ表316から特定する。次に、S1007で、プログラム311は、特定された初期メディアIDに対応するメディア性能802をストレージ階層定義表315から特定する。次に、S1008で、プログラム311は、特定されたメディア802が表すPDEV種類及びRAIDレベルに適合するRAIDグループのRAIDグループID701をRAIDグループ管理表314から特定する。
【0121】
S1009で、プログラム311は、特定されたRAIDグループID701が表すIDをキーに、実領域管理表313から、そのIDから識別されるRAIDグループに基づく複数の実領域に、全てのライト先仮想領域に対して割り当て可能な未割当の実領域があるか否かを判断する。
【0122】
S1009の判断の結果が肯定的の場合(S1009:Yes)、プログラム311は、S1010で、ライト先仮想領域に初期メディア内の未割当の実領域を割り当て、S1012で、その実領域にキャッシュメモリ領域内のデータを書き込む。S1010では、具体的には、プログラム311は、下記の更新を行う。
(*)プログラム311は、VVOL管理表312における、ライト先情報に対応した実領域ID503の値を、割り当てた実領域のIDを表す値に更新する。
(*)プログラム311は、VVOL管理表312における、割当時アクセス元WWN505及び割当時間506の値を、仮想ホストのWWNと実領域を割り当てた時間とを表す値に更新する。
(*)プログラム311は、VVOL管理表312における、階層ID504の値を、実領域のソースとなったメディアのIDを表す値に更新する。
(*)プログラム311は、実領域管理表313における、割り当てた実領域の割当状況602の値を、割当済を表す値に更新する。
【0123】
S1009の判断の結果が否定的の場合(S1009:No)、プログラム311は、S1011で、なるべく初期メディアから実領域をライト先仮想領域に割り当て、足りない分についてのみ、他のメディアから実領域をライト先仮想領域に割り当て、その後、S1012で、割り当てた実領域にキャッシュメモリ領域内のデータを書き込む。
【0124】
前述のS1011では、具体的には、例えば、プログラム311は、20個のライト先仮想領域があり、初期メディアに13個の未割当の実領域があった場合、13個の実領域を13個のライト先仮想領域に割り当て、残り7個のライト先仮想領域に7個の実領域を他のメディアから割り当てる。なお、ここで実領域のソースとされる「他のメディア」としては、初期メディアに最も性能が近いメディア(例えば、初期メディア(階層)に近接した階層)である。その際、初期メディアの上位及び下位の両方に近接したメディアがある場合、未割当の実領域が多い方のメディアが、実領域のソースとしての「他のメディア」として選択されて良い。なぜなら、未割当の実領域の少ない方の近接メディアが選択されると、そのメディアが初期メディアとして使用される際に、未割当の実領域が不足してしまう可能性が高まってしまうからである。
【0125】
なお、S1011では、S1010と同様に、VVOL管理表312及び実領域管理表313が更新される。
【0126】
以上のように、ライト処理では、1以上のライト先仮想領域に、初期メディアから優先的に未割当の実領域が割り当てられる。なお、例えば、初期割当ポリシ表316が、図8に示した状態の場合、VVOL“Volume 1”にライトがあった場合、ライト元仮想ホストのWWN及びライトの時間帯に関わらず、初期メディア“Tier 2”から実領域が割り当てられる。
【0127】
なお、仮想ホストからリード要求が送信された場合には、例えば、下記の処理が行われる。
(x1)ストレージ制御プログラム311は、リード要求を仮想ホストから受信する。
(x2)プログラム311は、リード要求が有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(x3)プログラム311が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する。
(x4)上記(x3)の判断の結果が肯定的の場合、プログラム311は、キャッシュメモリ領域のリード対象データを、仮想ホストに送信する。この場合、リード元仮想領域に対応したアクセス頻度507の値は、更新されてもされなくても良い。
(x5)上記(x3)の判断の結果が否定的の場合、プログラム311は、VVOL管理表312を基に、上記(x2)で特定されたリード元仮想領域に割り当てられている実領域を特定する。プログラム311は、特定された実領域からデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム311は、キャッシュメモリ領域内のそのデータを仮想ホストに送信する。プログラム311は、リード元仮想領域に対応したアクセス頻度507の値を更新する。
【0128】
(3)再配置処理。
【0129】
図15は、再配置処理の流れを示すフローチャートである。再配置処理は、例えば定期的に行われる。
【0130】
S1101で、ストレージ制御プログラム311が、VVOL管理表312における全ての再配置判定結果508の値をクリアする。
【0131】
VVOL管理表312に登録されている全ての仮想領域について、S1102が行われる。S1102で、プログラム311が、仮想領域のアクセス頻度507が表すアクセス頻度を含んだアクセス頻度範囲を表すアクセス頻度範囲603をストレージ階層定義表315から特定し、そのアクセス頻度範囲803に対応したメディアのIDを、その仮想領域に対応する再配置判定結果508の値として記録する。この結果、そのメディアのIDは、その仮想領域に対応した階層ID504が表すメディアIDと同じであることもあれば異なることもある。
【0132】
S1103で、プログラム311が、メモリ304に、アクセス頻度507の値が高い順に仮想領域の識別情報(例えば、VVOL IDとLBA範囲との組)を並べる。
【0133】
プログラム311は、アクセス頻度が高い仮想領域から順(メモリ304での仮想領域識別情報の並び順)に、S1104以降を行う。以下、1つの仮想領域(図15の説明において「対象仮想領域」と言う)を例に採り、S1104以降を説明する。
【0134】
S1104で、プログラム311は、対象仮想領域に対応した階層ID504の値と、対象仮想領域に対応した再配置判定処理508の値とが一致するか否かを判断する。
【0135】
S1104の判断の結果が肯定的の場合(S1104:Yes)、マイグレーションが不要のため、対象仮想領域についての処理は終了する。
【0136】
S1104の判断の結果が否定的の場合(S1104:No)、プログラム311は、S1105で、実領域管理表313を基に、対象仮想領域に対応した再配置判定処理508から識別されるメディア(以下、図15の説明において「対象メディア」と言う)内に未割当の実領域があるか否かを判断する。
【0137】
S1105の判断の結果が肯定的の場合(S1105:Yes)、プログラム311は、S1107で、対象仮想領域に割り当てられている実領域(マイグレーション元の実領域)から、対象メディア内の未割当の実領域(マイグレーション先の実領域)にデータをマイグレーションする。また、プログラム311は、対象仮想領域に、マイグレーション元の実領域に代えてマイグレーション先の実領域を割り当てる。具体的には、プログラム311は、マイグレーション元の実領域に対応した割当状況602の値を未割当に更新する。また、プログラム311は、対象仮想領域に対応した実領域ID503の値を、マイグレーション先実領域のIDに更新し、且つ、対象仮想領域に対応した階層ID504の値を、対象メディアのIDに更新する。
【0138】
S1105の判断の結果が否定的の場合(S1105:No)、プログラム311は、S1106で、入れ替え可能な実領域があるか否かを判断する。具体的には、例えば、対象メディアにおける複数の割当済実領域内のデータのうち、対象仮想領域に割り当てられている実領域にマイグレーションされても良いデータがあるかどうかが判断される。
【0139】
S1106の判断の結果が肯定的の場合(S1106:Yes)、プログラム311は、S1108で、実領域の入れ替えを行う。具体的には、例えば、プログラム311は、下記の処理を行う。なお、下記の処理に伴って、プログラム311は、VVOL管理表312及び実領域管理表313を更新する。
(*)プログラム311は、対象仮想領域に割り当てられている実領域(図15の説明において「第1の実領域」と言う)内のデータ(図15の説明において「第1のデータ」と言う)をキャッシュメモリ領域に書く。
(*)プログラム311は、対象メディアが有する割当済実領域(図15の説明において「第2の実領域」と言う)内のデータ(図15の説明において「第2のデータ」と言う)をキャッシュメモリ領域に書く。
(*)プログラム311は、第1のデータをキャッシュメモリ領域から第2の実領域に書き込む。
(*)プログラム311は、第2のデータをキャッシュメモリ領域から第1の実領域に書き込む。
【0140】
S1106の判断の結果が否定的の場合(S1106:No)、プログラム311は、S1109で、対象メディアに性能が最も近いメディア内の未割当の実領域に第1の実領域からデータをマイグレーションする。また、プログラム311は、S1107の処理と同様に、VVOL管理表312及び実領域管理表313を更新する。
【0141】
以上が、アクセス状況としてアクセス頻度を想定した場合の再配置処理の説明である。その他のアクセス状況の場合は以下の通りである。
(*)アクセス状況がアクセス負荷の場合は、各仮想領域のアクセス負荷に適したメディア(階層)をストレージ階層定義表315に基づいて特定し、特定したメディア(階層)が、当該仮想領域が現時点で割り当てられている実領域のメディアと異なる場合は、特定したメディアの実領域にマイグレーションを行う。
(*)アクセス状況が最終アクセス時間の場合は、最終アクセス時間に基づいて定義されたストレージ階層定義表315の想定アクセス状況に基づいて、各仮想領域の最終アクセス時間に適したメディア(階層)をストレージ階層定義表315に基づいて特定し、特定したメディア(階層)が、当該仮想領域が現時点で割り当てられている実領域のメディアと異なる場合は、特定したメディアの実領域にマイグレーションを行う。
【0142】
(4)初期割当てポリシ作成処理。
【0143】
図16は、初期割当てポリシ作成処理の流れを示す。
【0144】
管理システム103内のストレージ管理プログラム411は、例えば、図15に示した再配置処理が行われる都度に、ストレージ装置109から再配置処理の結果を取得する。プログラム411は、VVOL ID1201と、WWN1202と、初期割当時間1203と、取得した結果の集計を表す情報(集計値)1204とを再配置履歴表412に記録する。具体的には、プログラム411は、最新の再配置処理と1回前の再配置処理との間に初期割当てで割り当てられた実領域を特定する。その実領域は、例えば、最新の再配置処理が行われた時間、1回前の再配置処理が行われた時間、VVOL ID501、WWN505及び時間506、初期割当階層904を基に、特定することができる。プログラム411は、初期割当時アクセス元WWNと初期割当て時間帯との組(つまりアプリケーション)毎に、初期割当てにおいて割り当てられたどの実領域内のデータがどのメディアにマイグレーションされたかを集計する。プログラム411は、その集計結果を共に、再配置履歴表412を更新する。その際、プログラム411は、或るアプリケーション(初期割当時アクセス元WWNと初期割当て時間帯との組)に対応した初期割当階層1205の値を、そのアプリケーションに対応した集計値1204において実領域数の最も多いメディアのIDに更新する。
【0145】
次に、プログラム411は、再配置履歴表412を基に、それぞれのVVOLについて、アクセス元WWN毎に、初期割当階層1205の値が同じ値になっている連続する時間帯を1つの初期割当ポリシにまとめるという処理を実行する。具体的には、例えば、プログラム411は、中間テーブル2001をメモリ304に準備する。プログラム411は、中間テーブル2001に、VVOL 2011の値としてVVOL ID1201の値を登録し、アクセス元WWN2012の値としてWWN1202の値を登録する。プログラム411は、そのWWN2012の値と初期割当階層1205の値の両方が同じであるレコードを再配置履歴表412から特定する。プログラム411は、特定された2以上のレコードが表す2以上の時間帯が連続していれば(例えば、9:00-10:00、10:00-11:00、11:00-12:00のように連続していれば)、2以上の時間帯を1つにまとめる(例えば、3つの時間帯9:00-10:00、10:00-11:00、11:00-12:00を、1つの時間帯9:00-12:00にまとめる)。プログラム411は、時間帯2013の値として、1つにまとめられた時間帯を表す値を中間テーブル2001に登録する。プログラム411は、初期割当階層2014の値として、初期割当階層1205の値を登録する。
【0146】
次に、プログラム411は、各VVOLについて、時間帯2013の値が同じアクセス元WWN同士で、初期割当階層2014の値を比較する。初期割当階層2014の値が互いに一致していれば、プログラム411は、初期割当てポリシ表413において、1つのレコード(行)に、アクセス元WWN902の値として、複数のWWNを登録する。そのレコードには、VVOLのID、時間帯(1つにまとめられた時間帯)、及び初期メディアのIDも登録される。
【0147】
プログラム411は、更新後の初期割当てポリシ表413が表す情報(または、更新後の初期割当てポリシ表413と更新前の初期割当てポリシ表413との差分を表す情報)である更新情報を有した更新要求を、ストレージ装置109に送信する。ストレージ装置109が更新要求を受信し、ストレージ制御プログラム311は、その更新要求に応答して、その更新要求が有する更新情報を基に、初期割当てポリシ表316を、更新後の初期割当てポリシ表413と同じ内容になるよう更新する。
【0148】
以上のように、初期割当てポリシ作成処理では、再配置履歴表412において共通する情報がまとめられた結果としての情報が初期割当てポリシ表413に登録され、その初期割当てポリシ表413と同じ内容になるようストレージ装置109内の初期割当てポリシ表316が更新される。このため、初期割当てポリシ表413及び316が有するレコードの数をなるべく少なくすることができる。これは、ライト処理の性能の低下を防ぐことに貢献することができる。レコード数が少なければ、初期割当てポリシ表316からのサーチの負荷が小さくて済むからである。また、レコード数が少なければ、メモリ304及び402の消費される容量が小さくて済む。
【0149】
なお、初期割当ポリシ作成処理での集計の手法としては、上述した手法以外の手法(例えば、データクラスタリング)が採用されても良い。
【0150】
また、再配置処理の結果の集計を基に初期割当てポリシ表413及び316が更新されることは、ユーザからの明示的な指示を受けることなく行われても良いし、ユーザからの明示的な指示を受けたことに応答して行われても良い。初期割当てポリシ表413及び316の更新がユーザからの明示的な指示を受けたときに行われるケースでは、例えば、図17に示す初期割当てポリシ定義画面1401が、ストレージ管理プログラム411によって、管理システム103の表示装置451に表示される。
【0151】
画面1401には、更新前の初期割当てポリシ表413、ホスト管理表317及びアプリケーション定義表318がマージされた表1701と、仮の更新後の初期割当てポリシ表413、ホスト管理表317及びアプリケーション定義表318がマージされた表1703とが表示される。
【0152】
「仮の更新後の初期割当てポリシ表413」とは、初期割当てポリシ表413は未だ更新されておらず、更新されたと仮定したときの初期割当てポリシ表413である。仮の更新後の初期割当てポリシ表413を表す情報が、推奨の情報として表示される。
【0153】
表1701及び1703における「ホスト名」の値は、表413におけるWWNに対応したホスト名1001の値である。表1701及び1703における「アプリケーション名」の値は、上記「ホスト名」と時間帯903の値とに対応するアプリケーション名1101の値である。
【0154】
表1703の1つのレコードには、1つの初期割当てポリシを表す情報が表示され、且つ、チェックボックスが表示される。チェックボックスにチェックマークが入れられて、「適用」ボタン1705が押された場合には、プログラム411は、チェックマークが入れられたレコードが表す情報(初期割当てポリシ)を、初期割当てポリシ表413及び316に登録する。つまり、ストレージ管理者は、初期割当てポリシ単位で、定義するか否かを選択することができる。なお、「適用」ボタン1705ではなく「詳細」ボタン1706が押された場合、プログラム411は、チェックマークが入れられたレコードが表す情報(初期割当てポリシ)に関わる、再配置履歴表412の部分を表示する。
【0155】
以上が、本実施例の説明である。
【0156】
本実施例によれば、VVOLが複数のアプリケーションに使用される場合でも、VVOL単位で初期メディアを定義しておくだけで、アプリケーション(仮想ホストのWWN及び時間帯の組)毎に適切な初期メディアが決定される。
【0157】
以上、本発明の実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0158】
例えば、実施例では、仮想ホストのWWNとライト時間が属する時間帯との両方に初期メディアが対応付けられるが、いずれか一方にのみ初期メディアが対応付けられても良い。
【0159】
また、本発明は、ホストの仮想化技術が適用されないホストにも適用可能であり、その場合、WWNは、ホストのWWNとなる。WWNに限らず、他種のアクセス元識別情報(例えば、ポートID、IPアドレス)を採用することができる。
【0160】
また、例えば、初期割当てポリシ表316が無くて良い。この場合、ストレージ制御プログラム311が、ライトの都度に、ライトに応じたメディアを判断し、判断したメディアから実領域をライト先仮想領域に割り当てて良い。具体的には、例えば、プログラム311は、ライト元識別情報及びライト時間に代えて又は加えて、ライトデータ属性(例えば、ライトデータのサイズ、フォーマット)、ライト要求属性(ライト要求が有する情報要素)などの別種のライト関連情報を基に、初期メディアとするメディアを決定し、そのメディアから実領域を割り当て、割り当てた実領域にライト対象のデータを書き込んでも良い。
【0161】
また、以上の説明では、プールに実領域を登録する場合に、RAIDグループを作成し、RAIDグループから論理ボリュームを作成し、論理ボリュームをプールに登録するという前提で説明した。しかし、異なる種類の物理記憶デバイスが実領域を提供するためにプールに登録されていれば、他の登録体系でもよい。たとえば、以下が考えられる。
(*)論理ボリュームを作成せずにRAIDグループをプールに登録する。
(*)物理記憶デバイスをプールに登録する。なおこの場合は、実領域割当が必要な場合に、ストレージ装置が仮想ボリューム、プール、またはアクセス元WWN、または時間帯で指定されたRAIDレベル及びコンビネーションに合わせて必要な実領域を抽出して仮想領域に割当て、ライトデータを割り当てた実領域に格納する。
【0162】
なお、以上説明したとおり、本実施例では、アクセス元識別情報と時間帯の両方に基づいて実領域の初期割当階層を判断する点について開示したため、アプリケーション毎又は仮想ホスト毎又はホスト毎に好適な初期割当を実現するという点がメリットとなっていた。しかし、本願発明は、時間帯を用いずにアクセス元識別情報に基いて実領域の初期割当階層を判断してもよい。このような実施形態は、ホスト毎または仮想ホスト毎に好適な初期割当を実現する点において有意義であり、図10及び図11に示すような仮想ホストまたはホスト内部の情報を取得しなくても実現ができるため、計算機システムの管理者の利便性が高い。
【0163】
一方の時間帯に基づいた実領域の初期割当階層の判断は、一つの仮想ホスト又はホストを複数のアプリケーションで使用している場合にアクセス元識別情報より細やかな制御を可能とする点において有意義である。
【0164】
なお、以上の説明では、一つの仮想ボリュームを複数の仮想ホストが用いる場合について説明したが、本願発明は仮想ホスト以外でも一つの仮想ボリュームを複数のアプリケーションまたはホストが利用する場合にも適用可能な技術である。
【符号の説明】
【0165】
103…管理システム 109…ストレージ装置
【技術分野】
【0001】
本発明は、Thin Provisioningに従う仮想的な論理ボリュームへの記憶領域の割り当てに関する。
【背景技術】
【0002】
Thin Provisioning技術を組み合わせたストレージ階層管理技術が考えられている。そのストレージ階層管理技術では、Thin Provisioningに従う仮想的な論理ボリューム(以下、仮想ボリューム)の単位で、どのメディアから実領域(実体的な記憶領域)を割り当てるかが選択される。例えば、特許文献1によれば、仮想ボリューム毎に、予め、1以上のメディアが対応付けられており、仮想ボリュームに対するライトの際には、その仮想ボリュームに対応付けられている1以上のメディアのうちのいずれから、実領域が割り当てられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−66259号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
1つの仮想ボリュームが複数のアプリケーション又はホスト計算機に使用され、且つ、仮想ボリュームに対する性能要件がそれぞれのアプリケーション又はホスト計算機で異なる場合がある。それについて例えば2つの具体例が考えられる。
【0005】
第1の具体例として、多くのリクエストを高速に処理する必要のあるオンライン処理アプリケーションと、そのアプリケーションのデータを夜間にバッチで処理する集計アプリケーションと、定期的にバックアップを作成するバックアップアプリケーションとが、1つの仮想ボリュームを使用する場合が考えられる。この場合、オンライン処理アプリケーションが使用する仮想領域(仮想ボリューム内の仮想的な記憶領域)には、高速なメディア内の実領域が割り当てられることが好ましく、それ以外のアプリケーションが使用する仮想領域には、その高速なメディアよりも低速のメディア内の実領域が割り当てられれば良いと考えられる。
【0006】
しかし、上述した技術によれば、初期的に割り当てられる実領域のソースとしてのメディアが仮想ボリューム単位で決まっているため、仮想ボリュームに対して必ずしも初期的に適切な実領域を割り当てることができない。
【0007】
第1の具体例において、仮想ボリュームに、初期的には必ず高速なメディアから実領域が割り当てられると設定すると、オンライン処理アプリケーション以外のアプリケーションからのライト先となる仮想領域にも、高速なメディアから実領域が割り当てられることになる。このため、オーバースペック(即ち過度な速度を持つメディアの割り当て)が生じる。逆に、仮想ボリュームに、初期的には必ず低速なメディアから実領域が割り当てられると設定すると、オンライン処理アプリケーションからのライト先となる仮想領域にも、低速なメディアから実領域が割り当てられることになる。このため、オンライン処理アプリケーションからのアクセスについて性能不足が生じてしまう。
【0008】
第2の具体例として、ホストの仮想化技術(サーバ仮想化技術)が考えられる。ホストの仮想化技術では、ストレージ装置から提供された複数の仮想ボリュームが、「データストア」と呼ばれる仮想的な1つのストレージプールとみなされ、仮想ホストに対して、データストアに基づいて仮想的なディスクが提供される。これは、ストレージ装置が提供する仮想ボリュームと、仮想ホストに提供される仮想的なディスクとの間には、多対多の関係が存在し得るということ、言い換えれば、ストレージ装置が提供する仮想ボリュームが、アプリケーションの異なる複数の仮想ホストに使用され得るということを意味する。
【0009】
そこで、本発明の目的は、複数のアプリケーションに使用される仮想ボリュームに初期的に割り当てられる実領域のソースとして適切なメディアをアプリケーション又は仮想ホスト又はホスト毎に選択できるようにすることにある。
【課題を解決するための手段】
【0010】
Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームがある。ストレージ装置が、仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、且つ、ライト先の仮想領域が未割当の仮想領域の場合、ライト先の仮想領域に対するライト及び/又はそのライト元の識別情報に応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域をライト先の仮想領域に割り当てる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施例に係る計算機システムの構成を示す。
【図2】ホスト101の構成を示す。
【図3】ストレージ装置109の構成を示す。
【図4】VVOL管理表312の構成を示す。
【図5】実領域管理表313の構成を示す。
【図6】RAIDグループ管理表314の構成を示す。
【図7】ストレージ階層定義表315の構成を示す。
【図8】初期割当ポリシ表316の構成を示す。
【図9】管理システム103の構成を示す。
【図10】ホスト管理表317の構成を示す。
【図11】アプリケーション定義表318の構成を示す。
【図12】再配置履歴表412の構成を示す。
【図13】初期設定画面1501を示す。
【図14】ライト処理の流れを示すフローチャートである。
【図15】再配置処理の流れを示すフローチャートである。
【図16】初期割当てポリシ作成処理の流れを示す。
【図17】初期割当てポリシ定義画面1401を示す。
【図18】本発明の一実施例の概要の説明図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施例を説明する。なお、以下の説明では、「xxx表」の表現にて各種情報を説明することがあるが、各種情報は、表以外のデータ構造(例えば、キュー)で表現されていてもよい。データ構造に依存しないことを示すために「xxx表」を「xxx情報」と呼ぶことができる。
【0013】
また、以下の説明では、種々の対象の識別情報として、ID、WWN(World Wide Name)、名称が使用されるが、それらは相互に置換可能であるし、また、他種の識別情報(例えば、番号)も採用可能である。
【0014】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、管理システムが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【0015】
また、管理システムは、一以上の計算機で構成されて良い。具体的には、例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
【0016】
また、本発明で述べる「時間」には日付情報が含まれていてもよい。さらに、「時間」のデータ表現形式は、所定開始時点からの秒数、ミリ秒、マイクロ秒で表現してもよく、年、月、日、時、分、秒といった形式で表現してもよく、他の形式で表現してもよい。また、「時間」は、特定の瞬間(Point-in-Time)を指し示すものでもよく、時間帯として幅を持ったものでもよい。
【0017】
なお、本発明における「アプリケーション」とは、以下の(A)及び(B)、
(A)一つ以上のアプリケーションプログラム、
(B)(b1)当該プログラムの設定情報、(b2)当該プログラムが処理対象とするデータ、(b3)当該プログラムが受信する処理要求の内容、及び(b4)当該プログラムが処理要求を受信する頻度、のうちの少なくとも1つ、
によって定められる、仮想ホスト又はホストが行う一連のオペレーションを指す。その一例が、前述のオンライン処理、集計処理、或いは、バックアップ処理である。なお、
(*)アプリケーションプログラムの種類が同じで、処理対象とするデータが異なることで一連のオペレーションの差異につながる例としては、アプリケーションプログラムがDBMSプログラムで、処理対象とするデータが本番稼動中の基幹業務データである場合と、処理対象とするデータが、分析用データである場合がある。
(*)アプリケーションプログラムの種類が一部共通で、処理対象とするデータも共通であるが、当該プログラムが受信する処理要求の内容が異なる一例が、前述のオンライン処理と、集計処理やバックアップ処理である。
【0018】
<本実施例の概要>。
【0019】
図18は、本発明の一実施例の概要の説明図である。
【0020】
ストレージ装置109にホスト計算機(以後、単にホストと呼ぶ)101及び管理システム103が接続されている。
【0021】
管理システム103は、ストレージ装置109を管理する。管理システム103は、ストレージ装置109又はホスト101に含まれても良い。
【0022】
ストレージ装置109は、プール1613と、複数の仮想ボリューム(以下、VVOL)1615とを有する。
【0023】
プール1613は、複数の階層で構成されている。言い換えれば、プール1613は、性能の異なる複数のメディア1611で構成されている。階層の高さは、メディア1611の性能に依存する。例えば、複数のメディア1611のうち、最も性能の高い第1のメディア(最も高速のメディア)1611Aが、最も高い階層に相当し、最も性能の低い第3のメディア(最も低速のメディア)1611Cが、最も低い階層に相当する。なお、ここで言う「性能」とは、例えば、アクセス性能である。アクセス性能としては、例えば、レスポンスタイム(例えば、メディアに基づく物理記憶デバイスがデータのアクセス要求をコントローラから受けてからコントローラへ応答が出力されるまでの時間)、或いは、データ転送速度(単位時間当たりに入出力されるデータの量)がある。
【0024】
各メディア1611は、2以上の実領域1614で構成されている。従って、プール1613は、複数の実領域(実体的な記憶領域)1614で構成されている。各メディア1611は、1以上の物理記憶デバイス(例えば、複数の物理記憶デバイスで構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループ)に基づく1以上の実ボリュームの集合で良い。「実ボリューム」とは、物理記憶デバイスに基づく論理ボリュームである。メディア1611の性能は、そのメディア1611の基になっている物理記憶デバイスの種類、RAIDレベル及びコンビネーション(4D+2P、3D+1Pといった構成)の少なくとも1つに依存する。物理記憶デバイスの種類として、例えば、SSD(Solid
State Drive)、SAS(Serial Attached SCSI)−HDD(Hard Disk Drive)、及びSATA(Serial ATA)−HDDがある。なお、SSDは、フラッシュメモリ及びDRAM等の半導体メモリを用いた物理記憶デバイスである点が、HDDと異なる。
【0025】
VVOL1615は、複数の仮想領域(仮想的な記憶領域)1616で構成されている。
【0026】
ホスト101に、ホストの仮想化技術(サーバ仮想化技術)が適用されている。ホスト101は、複数の仮想ホスト213と、データストア1621を有する。データストア1621は、複数のマウントボリューム1625の集合である。マウントボリューム1625は、ストレージ装置109からマウントされたVVOL1615に対応した記憶空間である。マウントボリューム1625とVVOL1615が1対1で対応している。データストア1621の一部分が、仮想ホスト213に論理ボリューム1623として提供される。このような構成により、VVOL1615と論理ボリューム1623との間には、多対多の関係が存在し得る、言い換えれば、VVOL1615が、アプリケーションの異なる複数の仮想ホスト213に使用され得る。
【0027】
なお、「マウント」とは、少なくともホスト101がVVOL1615を認識してデータストア1621に含めるために必要な管理情報を生成することを指す。さらに、前述の管理情報の一例としては、VVOL1615の識別子と、VVOL1615に対してホスト101が管理するために割り当てる識別子と、の対応がある。また、VVOL1615の識別子の例としては、(1)ストレージ装置の識別子とVVOL1615に割り当てられるストレージ装置内でユニークな識別子や、(2)ストレージ装置のポートの識別子(例えば、WWN、ポートID、及びIPアドレスのうちの少なくとも1つ)とVVOL1615に割り当てられたLUN(Logical Unit Number)、がある。なお、以後の説明では、ホスト101の説明でも「VVOL1615」という単語を用いて説明するが、当該説明は、ホスト101が認識したVVOL1615、即ちマウントボリューム1625についての説明である。
【0028】
仮想領域1616に対する実領域の割り当てとして、「初期割当て」と「再配置割当て」とがある。
【0029】
「初期割当て」とは、未割当の仮想領域1616に未割当の実領域(いずれの仮想領域1616にも割り当てられていない実領域)1614が割り当てられることである。従って、「初期割当て」は、VVOL内の当該未割当の仮想領域を含むアドレス範囲(例えばLBA(Logical Block Address)とライトデータ長)を指定したライト要求を受信した契機で行われてもよい。また、「初期割当て」は、例えば、VVOL1615から別のVVOL1615へのデータのマイグレーションの際に、当該未割当の仮想領域に対するデータ格納が必要となった契機で行われても含まれて良い。なお、上記説明では割当られる実領域は、仮想領域に割当時点で未割当な領域であることが前提であるが、必ずしもそうでなくてもよい。即ち、割当時点で既に別な仮想領域に割り当てられた領域を未割当の仮想領域に割当ても良い。
【0030】
「未割当の仮想領域」とは、実領域が割り当てられていない仮想領域、或いは、実質的に実領域が割り当てられていない仮想領域(例えば、予め所定のデータが書き込まれている実領域である特別実領域)(例えば、全ビットの値が“0”である実領域)が割り当てられている仮想領域)である。未割当の仮想領域に対するライトが発生した場合、その仮想領域に特別実領域が割り当てられていれば、その仮想領域に、特別実領域に代えて、未割当の実領域(仮想領域に割り当てられていない実領域)が割り当てられ、その実領域に、ライトデータが書き込まれる。特別実領域は、1つのプールにn(nは自然数)個存在して良い。また、特別実領域は、複数の未割当の仮想領域に共通であって良い。
【0031】
「再配置割当て」とは、再配置処理において、データのマイグレーション元の実領域1614が割り当てられている仮想領域1616に、マイグレーション元の実領域1614に代えて、データのマイグレーション先の実領域1614が割り当てられることである。本実施例では、前述の通り、初期割当ての際に割り当てられる実領域のソースとして適切なメディア1611が選択される。なお、再配置割当ての場合は、マイグレーション元の実領域1614に格納したデータをマイグレーション先の実領域に移動(またはコピー)することが典型的である。
【0032】
仮想ホスト213からのライトでは、例えば、下記(a1)〜(a7)が行われる。
(a1)仮想ホスト213で仮想的に実行されるプログラムは、その仮想ホスト213に提供されている仮想的なディスク(仮想ホストディスクと呼ぶ)1623に対してライトを要求する。なお、この時のライト要求は、仮想ホストディスク1623上のアドレス範囲(仮想ホストディスクアドレス範囲)を指定している。なお、ライトを要求する場合は、仮想ホスト213は、ライト対象のデータ(ライトデータ)も生成している。なお、仮想ホスト213はホスト101が実行するハイパーバイザプログラムの処理により提供される仮想的な計算機であり、同様に稼動ホストディスクも、ハイパーバイザプログラムの処理により、仮想ホスト上で仮想的に実行されるプログラムに対して提供される仮想的なディスクである。
(a2)ホスト101のハイパーバイザプログラムは、(a1)の要求に応じて、仮想ホストディスクアドレス範囲に対応したVVOL1615のアドレス範囲(例えばLBA(Logical Block Address)及びライトデータ長)を指定したライト要求及びライトデータと、をストレージ装置109に送信する。
(a3)ストレージ装置109が、(a2)で送信されたライト要求を受信する。ストレージ装置109は、キャッシュメモリ領域を有しており、ライト要求に従うライトデータを、キャッシュメモリ領域に格納する。ライトデータをキャッシュメモリ領域に書込んだときに、ストレージ装置109は、ホスト101に、ライト完了報告を応答して良い。
(a4)ストレージ装置109が、(a3)で受信したライト要求が指定するアドレス範囲から、当該アドレス範囲に含まれる仮想領域(以下、ライト先仮想領域)1616を特定する。
(a5)ストレージ装置109が、ライト先仮想領域1616が未割当の仮想領域か否かを判断する。
(a6)ライト先仮想領域1616が未割当の仮想領域であれば、ストレージ装置109が、初期割当て処理を行う。初期割当て処理では、ストレージ装置109が、ライト元のアプリケーション又はホスト101又は仮想ホスト213に対応したメディア1611を特定し、特定したメディア1611から、ライト先仮想領域1616に未割当の実領域1614を割り当てる。
(a7)ストレージ装置109は、ライト先仮想領域1616に割り当てた実領域1614に、ライト対象のデータを書き込む。ライト対象のデータをキャッシュメモリ領域に書込んだときに代えて、ストレージ装置109は、ライト対象のデータを実領域1614に書込んだときに、ホスト101に、ライト完了報告を応答して良い。
【0033】
一方の仮想ホスト213からのリードでは、例えば、下記(A1)〜(A7)が行われる。
(A1)仮想ホスト213で仮想的に実行されるプログラムは、その仮想ホスト213に提供されている仮想ホストディスク1623に対してリードを要求する。なお、この時のリード要求は、仮想ホストディスクアドレス範囲を指定している。
(A2)ホスト101のハイパーバイザプログラムは、(A1)の要求に応じて、仮想ホストディスクアドレス範囲に対応したVVOL1615のアドレス範囲を指定したリード要求を、ストレージ装置109に送信する。
(A3)ストレージ装置109は、(A2)で送信されたリード要求を受信する。ストレージ装置109は、リード要求で指定されたアドレス範囲を指定して過去にライトしたデータ(リード対象のデータ、またはリードデータと呼ぶ)をキャッシュメモリ領域または割当済み実領域から読み出し、ホスト101に送信する。
(A4)ホスト101のハイパーバイザプログラムは、前述のリードデータを受信し、(A1)にてリードを要求した仮想ホストを特定して、当該仮想ホストにリードデータを仮想的に送信する。
(A5)仮想ホストで仮想的に実行されるプログラムは、要求したリードに対応するリードデータとして、(A4)のリードデータを受信する。
【0034】
なお、上記説明の「仮想ホストで仮想的に実行されるプログラム」の例は、OSやアプリケーションプログラムである。さらに上記説明で主語を「ストレージ装置」とした説明はストレージ装置に含まれるコントローラの行う処理と考えても良い。
【0035】
なお、上記(a2)、(A2)のライト及びリードにて対象となる仮想ディスクアドレス範囲から仮想ボリューム1616のアドレス範囲を特定する処理は、ホスト101が有する変換情報に基づいて行われる。
【0036】
本実施例に係る初期割当て処理は、ライト元のアプリケーション又は仮想ホストまたはホストは、ライト元識別情報及び/又はライト時間帯に対応するという考えが基になっている。
【0037】
ライト元識別情報は、ライト元を識別するための情報であり、本実施例では、ライト元の仮想ホスト213のWWN(World Wide Name)である。ホストの仮想化技術が適用されていない場合(ホスト101に仮想ホスト213が無い場合)、ライト元識別情報は、ホスト101のWWN(具体的には、例えば、ホスト101が有するインタフェース装置(例えばHBA(Host
Bus Adapter))に割り当てられているWWN)であって良い。
【0038】
ライト時間帯は、例えば、ライト時間が属する時間帯である。ライト時間は、例えば、ライト要求を受信した時間、ライト要求に応答して実領域が割り当てられた時間、又は、ライト要求が有するタイムスタンプが表す時間である。
【0039】
ライト元のアプリケーションを特定するための方法として、例えば、ストレージ装置109又は管理システム103がエージェントプログラムを有し、エージェントプログラムによって、ホスト101からのライトの際のアプリケーションを問合せる方法が考えられる。しかし、その方法は、現実的でない。
【0040】
そこで、本実施例では、ライト元のアプリケーション又は仮想ホストまたはホストを特定するために、ライト元識別情報及び/又はライト時間が用いられる。これは、下記の複数の仮定のうちの少なくとも1つが基になっている。
(*)1つのホスト101(又は1つの仮想ホスト213)では、1又は少数のアプリケーションプログラムが同時実行される傾向にあり、多くのアプリケーションプログラムが常には同時実行されない傾向にある。
(*)1つのホスト101(又は1つの仮想ホスト213)では、上述のように重複する時間帯に、多数のアプリケーションプログラムが実行されない傾向にある一方で、異なる時間帯であれば別なアプリケーションプログラムが実行される場合がある。つまり、1つの時間帯に実行されるアプリケーションプログラムの数は1つである傾向にある。例えば、昼間に第1のアプリケーションプログラムが実行され、夜間に第2のアプリケーションプログラムが実行される。
【0041】
この方法であれば、実質的に、ストレージ装置109が単独でライト元のアプリケーションを特定できる。
【0042】
なお、本発明において、ライト元識別情報は、例えばライト要求に含まれるライト要求の送信元ホスト101(又は仮想ホスト213)が有するインタフェース装置のWWN(またはWWNに基いて生成されたポート番号)等の識別子そのもの、或いは、これらの情報を変換して得られる情報である。
【0043】
本実施例では、初期割当ポリシ情報が予め用意されている。初期割当ポリシ情報を基に、上記(a6)において、ライト元識別情報及び/又はライト時間に対応したメディア1611が特定される。
【0044】
初期割当ポリシ情報では、初めは、実領域のソースとなるメディア(以下、初期メディア)1611が、VVOL1615単位で定義されている。そして、初期割当ポリシ情報は、再配置処理の結果を基に、適時に更新される。再配置処理では、実領域1614間でデータのマイグレーションが行われる。仮想領域1616に割り当てられている実領域1614が、マイグレーション元の実領域1614となり、その実領域1614を有するメディア1611とは異なるメディア1611内の実領域1614が、マイグレーション先の実領域1614となる。再配置処理において、仮想領域1616に割り当てられている実領域1614がデータマイグレーションの対象となるか否かは、その仮想領域1616に対するアクセスの状況を基に決定される。なお、前述の「アクセス」には、前述のリード及び/又はライトが含まれる。アクセス状況としては、例えば、最終アクセス時間(最終ライト時間及び/又は最終リード時間)、アクセス負荷がある。アクセス負荷としては、例えば、データ転送速度(単位時間当たりに入出力されるデータの量)、又は、アクセス頻度がある。本実施例では、仮想領域1616のアクセス頻度を基に、その仮想領域1616に割り当てられている実領域1614がデータマイグレーションの対象となるか否かが決定される。具体的には、本実施例では、再配置処理のために、例えば、下記(項目1)及び(項目2)がある。
(項目1)各メディア1611又は各階層について、アクセス頻度範囲が定義されている。
(項目2)ストレージ装置109が、各仮想領域1616についてアクセス頻度(例えば、単位は「IOPS」)を管理する。例えば、ストレージ装置109は、仮想領域1616に対するライト及び/又はリードを行ったとき(又は、仮想領域1616に割り当てられた実領域に対してライト及び/又はリードが行われたとき)、その仮想領域1616に対応したアクセス頻度を更新する。ストレージ装置109は、各仮想領域1616についてアクセス頻度を、定期的または繰り返し、例えばゼロにリセットする。
【0045】
なお、上記項目はアクセス頻度を例としているが、他のアクセス状況でも、各メディア1611又は各階層について想定するアクセス状況の範囲が定義され、ストレージ装置109が各仮想領域1616についてアクセス状況を管理していれば良い。
【0046】
再配置処理は、定期的に又は不定期的に行われる。再配置処理では、例えば、下記(b1)及び(b2)が行われる。
(b1)ストレージ装置109が、各仮想領域1616について、仮想領域1616のアクセス頻度が、その仮想領域1616に割り当てられている実領域1614を有するメディア1611に対応したアクセス頻度範囲を超えているか否かを判断する。この処理は他のアクセス状況であれば、各仮想領域1616のアクセス状況が、その仮想領域1616に割り当てられている実領域1614を有するメディア1611に対応した想定アクセス状況範囲の範囲外であるか否かを判断することになる。
(b2)上記(b1)の判断の結果、範囲外と判断した仮想領域(以下、図18を参照した説明において「対象仮想領域」と言う)1616について、ストレージ装置109が、データマイグレーション処理を行う。具体的には、下記(b21)及び(b22)が行われる。
(b21)ストレージ装置109は、マイグレーション元の実領域から、そのマイグレーション元の実領域を有するメディア1611とは別のメディア1611内の任意の未割当の実領域(マイグレーション先の実領域)に、データをマイグレーションする。「マイグレーション元の実領域」とは、対象仮想領域1616に割り当てられている実領域である。マイグレーション先の実領域を有するメディア1611は、対象仮想領域1616のアクセス頻度が収まるアクセス頻度範囲に対応したメディア1611である。他のアクセス状況であれば、マイグレーション先の実領域を有するメディア1611は、対象仮想領域1616のアクセス状況が範囲内である想定アクセス状況範囲に対応したメディア1611であると言える。
(b22)ストレージ装置109が、対象仮想領域1616に、マイグレーション元の実領域に代えて、マイグレーション先の実領域を割り当てる。
【0047】
管理システム103が、再配置処理の結果を基に、初期割当ポリシ情報の更新を行う。例えば、次のようなケースでは、管理システム103が、第1のライト元識別情報及び/又は第1のライト時間帯に対応するメディアが第1のメディア(例えばSSDメディア)1611Aから第2のメディア(例えばSASメディア)1611Bになるように初期割当ポリシ情報を更新する。
(*)第1のライト元識別情報及び/又は第1のライト時間帯に対応したメディアが、第1のメディア1611Aである。そして、第1のライト元識別情報及び/又は第1のライト時間帯に対応する複数の仮想領域に初期割当て処理において割り当てられた複数の実領域のうち、再配置処理の結果、第2のメディア1611Bに含まれている実領域の数が最も多い。
【0048】
<実施例の詳細の説明>。
【0049】
<<構成に関する説明>>。
【0050】
図1は、本実施例に係る計算機システムの構成を示す。
【0051】
SAN(Storage Area Network)105に、ホスト101及びストレージ装置109が接続されている。LAN(Local Area
Network)107に、ストレージ装置109及び管理システム103が接続されている。ストレージエリアネットワーク105及び管理用ネットワーク107の少なくとも一方は、他種の通信ネットワークでも良い。また、ストレージエリアネットワーク105及び管理用ネットワーク107は、同種の通信ネットワークであって一体となっていても良い。
【0052】
ホスト101は、ストレージ装置109にアクセス要求を送信する。ストレージ装置109が、ホスト101からSAN109を介してアクセス要求を受信し、そのアクセス要求を処理する。なお、アクセス要求の一例は前述のリード要求又は/及びライト要求である。
【0053】
管理システム103が、ストレージ装置109に制御要求(例えば、初期割当てポリシ情報の更新要求)を送信する。ストレージ装置109が、管理システム103からLAN107を介して制御要求を受信し、制御要求に従う処理を行う。
【0054】
なお、計算機システムは複数のホスト101を含んでも良い。同様に計算機システムは複数のストレージ装置を含んでも良い。
【0055】
図2は、ホスト101の構成を示す。
【0056】
ホスト101は、1以上の計算機で構成されている。ホスト101は、SANポート203と、メモリ205と、メモリ205及びSANポート203に接続されたCPU(Central Processing Unit)201とを有する。メモリ205に代えて又は加えて他種の記憶資源があっても良い。
【0057】
SANポート203は、SAN105に接続され、例えば、ホスト101に搭載されたHBA(Host Bus Adapter)が有するSANポート203には、SANポート203の識別情報であるWWNが割り当てられている。
【0058】
メモリ205は、前述のハイパーバイザプログラム211(ハイパーバイザと省略することもある)と、一つ以上の仮想ホスト情報213iと、を記憶する。ハイパーバイザ211は、ホストの仮想化のためのコンピュータプログラムである。ハイパーバイザ211がCPU201で実行されることにより、前述の仮想ホスト情報に基づいて、ホスト101で1以上の仮想ホスト(仮想計算機)213が稼働する。
【0059】
各仮想ホスト213は、SANポート203を用いて通信を行う。各仮想ホスト213には、仮想的なポートの識別情報である仮想WWNが割り当てられている。仮想ホスト213からのアクセス要求は、例えば、仮想WWNと、アクセス先情報とを含む。アクセス先情報は、アクセス先の領域を特定するための情報であり、例えば、LUN(Logical Unit Number)及びLBA(Logical Block Address)を含む。LUNから、アクセス先のVVOLを特定し、LBAから、そのVVOL内の仮想領域を特定することが可能である。仮想ホスト213からのアクセス要求は、SANポート203を介して出力され、SAN105を介して、ストレージ装置109に届く。
【0060】
仮想ホスト情報213iは、仮想ホストの設定内容を格納した情報であり、設定内容の一例としては前述の仮想WWN、または/及び仮想ホストディスクの容量等がある。
【0061】
また、アクセス先情報は、ストレージ装置又はそれが有するポートを識別するための情報(例えば、WWN及び/又はポート番号)を含んで良い。
【0062】
図3は、ストレージ装置109の構成を示す。
【0063】
ストレージ装置109は、性能の異なる複数のRAIDグループ305と、複数のRAIDグループ305に接続されておりRAIDグループ305に対するアクセスを制御するコントローラとを有する。
【0064】
RAIDグループ305は、同種の複数の物理記憶デバイスで構成されている。例えば、RAIDグループ305としては、SSDで構成されたRAIDグループ、SAS−HDDで構成されたRAIDグループ、及び、SATA−HDDで構成されたRAIDグループがある。物理記憶デバイスとしては、HDDやフラッシュメモリデバイスなど、種々の物理記憶デバイスを採用可能である。なお、前述のコントローラとRAIDグループ305とが接続されているとは、実際にはコントローラと物理記憶デバイスとが接続されていることを指す。
【0065】
RAIDグループ305に基づく論理ボリューム、つまり実ボリューム(以下、RVOL)306が設けられている。性能の同じRAIDグループ305に基づく1以上のRVOL306で、1つのメディアが構成される。メディアの性能は、そのメディアを構成するRVOL306の基になっているRAIDグループ305の性能に依存する。RAIDグループ305の性能は、例えば、物理記憶デバイスの種類(RAIDグループ305を構成する物理記憶デバイスの種類)、RAIDレベル及びコンビネーション(4D+2P、3D+1Pといった構成)の少なくとも1つに依存する。
【0066】
メディアは、プールの構成要素である。このため、メディアは、2以上の実領域で構成される。従って、プールは、多数の実領域で構成される。なお、プールは一つのストレージ装置に複数存在してもよく、一つであってもよい。また、いずれのプールにも属さない実ボリュームがあっても良い。
【0067】
コントローラは、SANポート302と、LANポート303と、メモリ304と、それらに接続されたCPU301とを有する。メモリ304に代えて又は加えて他種の記憶資源があっても良い。また、メモリ304は、キャッシュメモリ領域を含む。キャッシュメモリ領域には、RAIDグループ305に対してリードデータまたはライトデータが一時的に記憶される。
【0068】
SANポート302は、SAN105に接続されるポートである。SANポート302が、仮想ホスト213からのアクセス要求を受信する。
【0069】
LANポート303は、LAN107に接続されるポートである。LANポート303が、管理システム103からの制御要求を受信する。
【0070】
メモリ304が、ストレージ制御プログラム311、VVOL管理表312、実領域管理表313、RAIDグループ管理表314、ストレージ階層定義表315及び初期割当ポリシ表316を記憶する。ストレージ制御プログラム311は、CPU301で実行されることにより、アクセス制御処理及び再配置処理を行うことができる。
【0071】
なお、本発明に置けるストレージ装置は、コントローラと物理記憶デバイスを含めばどのような実装形態でもよい。たとえば、図3のように一つの装置であってもよく、コントローラと物理記憶デバイスが別々な装置でネットワークで相互接続される形態であってもよい。なお、以後の説明ではストレージ装置をストレージサブシステムと呼ぶことがある。また、コントローラが行う処理の一部をホスト計算機に行わせる場合は当該ホスト計算機もストレージサブシステムの一部と考えても良い。
【0072】
次に、表312〜316を説明する。
【0073】
図4は、VVOL管理表312の構成を示す。
【0074】
VVOL管理表312は、VVOLのどの仮想領域にどの実領域が割り当てられているかや、初期割当て処理において仮想領域にはどのメディアから実領域が割り当てられたかや、再配置処理において仮想領域にはどのメディア内の実領域が割り当てられたかを表す。具体的には、例えば、VVOL管理表312は、仮想領域毎に、下記の情報を有する。
(*)仮想領域を有するVVOLに対応したLUNを表すLUN500。LUNは、ホスト101から指定されるVVOL識別情報である。
(*)仮想領域を有するVVOLのIDを表すVVOL ID501。VVOL IDは、ホスト101から指定されるIDではなく、ストレージ装置109の内部で認識されるIDである。
(*)仮想領域を有するVVOLにおける、仮想領域のアドレス範囲(以後はLBA範囲と呼ぶ場合がある)、を表す情報であるLBA範囲502。
(*)仮想領域に割り当てられている実領域のIDを表す実領域ID503。
(*)仮想領域に割り当てられている実領域を有する階層又はメディアのIDを表す階層ID504。
(*)仮想領域に初期割当て処理において実領域が割り当てられることの原因となったアクセス(ライト)のアクセス元の識別情報を表す割当時アクセス元WWN505。
(*)仮想領域に初期割当て処理において実領域が割り当てられた時間を表す情報である割当時間506。
(*)仮想領域のアクセス頻度を表す情報であるアクセス頻度507。アクセス頻度の単位は、例えば、IOPS(1秒当たりのアクセス(I/O)の回数)である。なお、当該情報は前述のアクセス状況であってもよい。
(*)仮想領域に再配置処理において割り当てられた実領域を有する階層又はメディアのIDを表す再配置判定結果508。
【0075】
図4の表312によれば、VVOL“Volume 1”の仮想領域“0-999”には、実領域“SEG1”が割り当てられていることがわかる。また、その仮想領域“0-999”には、メディア“Tier 2”内の実領域が割り当てられているが、その実領域内のデータは、再配置処理において、メディア“Tier 1”内の実領域にマイグレーションされることがわかる。また、その仮想領域“0-999”には、仮想ホスト“WWN-A”からのライトを契機に、初期割当て処理において、2009/12/25の13:45に実領域が割り当てられたことがわかる。また、その仮想領域“0-999”のアクセス頻度が“120”であることがわかる。
【0076】
なお、図4の例では、未割当の仮想領域のLBA範囲は登録されないものとして説明した。しかし、項目503乃至508に値が存在しないことを示すNULL値を入れて未割当のLBA範囲を登録してもよい。なお、VVOL管理表312は複数の表から構成されてもよい。例えば、項目500乃至503だけを抽出した表を別途メモリ204に有し、リード要求の処理及びライト要求の処理ではこの別途の表を参照または更新するようにしてもよい。
【0077】
図5は、実領域管理表313の構成を示す。
【0078】
実領域管理表313は、どの実領域が未割当か否かを表す。具体的には、例えば、実領域管理表313は、実領域毎に、下記の情報を有する。
(*)実領域のIDを表す実領域ID601。
(*)実領域が未割当か割当済かを表す割当状況602。
(*)実領域の基になっているRAIDグループのIDを表すRAIDグループID603。
(*)実領域の基になっているRAIDグループの記憶空間における、対象実領域のLBA範囲、を表すLBA範囲604。
【0079】
図6は、RAIDグループ管理表314の構成を示す。
【0080】
RAIDグループ管理表314は、RAIDグループの性能に関わる情報を有する。具体的には、例えば、RAIDグループ管理表314は、RAIDグループ毎に、下記の情報を有する。
(*)RAIDグループのIDを表すRAIDグループID701。
(*)RAIDグループを構成する物理記憶デバイスの種類を表すPDEV種類702。
(*)RAIDグループのRAIDレベルを表すRAIDレベル703。
【0081】
上記の情報701〜703のうちの少なくとも1つに代えて又は加えて、他種の情報(例えば、RAIDグループのコンビネーションを表す情報)が含まれていても良い。なお、図示の表における情報が一例であることは、図5に限らず、他の図についても同様である。
【0082】
図7は、ストレージ階層定義表315の構成を示す。
【0083】
ストレージ階層定義表315は、メディア(階層)の性能及びアクセス頻度範囲に関わる情報を有する。具体的には、例えば、ストレージ階層定義表315は、メディア(階層)毎に、下記の情報を有する。
(*)メディア(階層)のIDを表す階層ID801。
(*)メディアの性能を表すメディア性能802。メディアの性能は、例えば、メディアの基になっているRAIDグループを構成する物理記憶デバイスの種類と、そのRAIDグループのRAIDレベルとで定義される。
(*)メディア(階層)に対応したアクセス頻度範囲を表すアクセス頻度範囲803。なお、アクセス状況として考えた場合、本情報は前述の想定するアクセス状況範囲である。
【0084】
図8は、初期割当ポリシ表316の構成を示す。
【0085】
初期割当ポリシ表316は、前述した初期割当ポリシ情報の一例である。初期割当ポリシ表316は、アクセス元WWN及びアクセス時間帯に対応したメディア又は階層を表す。具体的には、例えば、初期割当ポリシ表316は、アクセス元WWN及びアクセス時間帯の組毎に、下記の情報を有する。
(*)VVOLのIDを表すVVOL ID901。
(*)アクセス元仮想ホストのWWNを表すアクセス元WWN902。
(*)時間帯を表す時間帯903。
(*)初期メディア(階層)のIDを表す初期割当階層904。
【0086】
この表316によれば、アクセス元WWN及び時間帯の組が、アプリケーションに相当する。従って、アクセス元WWN及び時間帯の組毎に初期メディア(階層)が定められるということは、アプリケーション毎に、初期メディア(階層)が定められるということである。
【0087】
なお、アクセス元WWN902及び時間帯903の両方とも、全ての場合を示すアスタリスク値”*”を設定することが可能である。これは即ち、アクセス元WWN902または時間帯903の何れかだけで初期メディアを決定する場合があるということである。また、図8では、アクセス元WWN902及び時間帯903を仮想ボリューム毎に定義可能な情報形態としたが、これらはプール単位やストレージ装置単位で定義可能としてもよい。
【0088】
なお、図8を用いて、VVOL ID、アクセス元WWN、又は/及び時間に基いて初期割当階層を求める場合、まずは図8の表のVVOL ID901、アクセス元WWN902、又は/及び時間帯903にアスタリスク値を含まない表中の行を用いて初期割当階層を求め、もし該当する行が無い場合にアスタリスク値を含む行を用いて初期割当階層を求めても良い。さらに、図8の表では901乃至903の3つの条件にアスタリスク値を入れることができるため、どの条件がアスタリスク値の場合から優先してしようする優先条件を定め、当該条件を図8の参照時に考慮してもよい。
【0089】
なお、初期割当ポリシ表316は、ライト要求で未割当の仮想領域を検知した場合に参照するため、高速に初期割当階層を決定するためにはできるだけ表の大きさが小さいほうが好ましい。その対策として、図8から、現在の時間が時間帯903に含まれる情報901、902、904の組を取り出して、別な表(アクセス元対応初期割当階層表と呼ぶ)を生成し、その表をメモリ304に格納し、初期割当階層を決定する処理でその表を参照してもよい。この場合、現在時間が変わることで新たに含まれることになった組をアクセス元対応初期割当階層表に登録したり、逆に現在時間に含まれなくなったために、アクセス元対応初期割当階層表に登録していた組を除くといった処理をしたりすることが必要となる。なお、このような処理は、コントローラが行ってもよい。また、図8の表を管理システムのメモリ402に格納し、さらに前述の処理を管理システムが行っても良い。なお、後者の場合の具体的な処理は以下の通りとなる。
(*)初期割当階層を決定する処理ではアクセス元対応初期割当階層表を参照することで、未割当の仮想領域に対して割り当てる実領域のメディアまたは階層を決定する。
(*)コントローラは、追加または削除する前述の組(つまり、仮想ボリュームのID、アクセス元の仮想ホストまたはホストの識別子、初期割当メディアまたは階層)を指定した実領域初期割当設定変更要求を管理システムから受信し、受信内容にあわせてアクセス元対応初期割当階層表を更新する。
(*)管理システムは、現在時間が変わることで新たに含まれることになった組をアクセス元対応初期割当階層表に登録したり、逆に現在時間に含まれなくなったために、アクセス元対応初期割当階層表に登録していた組を特定する処理を繰り返し実行する。そして、対応する組を検知した場合は、検知した組を指定した実領域処理割当設定変更要求をストレージ装置に送信する。
【0090】
図9は、管理システム103の構成を示す。
【0091】
管理システム103は、1以上の計算機で構成されている。管理システム103は、LANポート403と、メモリ402と、表示装置(例えば液晶ディスプレイ)451と、それらに接続されたCPU401とを有する。メモリ402に代えて又は加えて他種の記憶資源があっても良い。
【0092】
メモリ402は、ストレージ管理プログラム411、ホスト管理表317、アプリケーション定義表318、再配置履歴表412及び初期割当てポリシ表413を記憶する。ストレージ管理プログラム411がCPU401で実行されることにより、以下の処理が行われる。
(*)定期的または繰り返しストレージ装置109から再配置結果を表す情報を取得すること。
(*)その結果の集計を基に再配置履歴表412を更新すること。
(*)更新後の再配置履歴表412を基に後述の初期割当ポリシ作成処理を行うこと。
(*)その作成処理の結果を、ユーザに提示しユーザからの承認を受けたときに、或いは、ユーザに提示することなく、初期割当てポリシ表413及び316に反映すること。
【0093】
初期割当てポリシ表413の構成は、ストレージ装置109が有する初期割当てポリシ表316の構成と同じである。ストレージ管理プログラム411は、初期割当てポリシ表316が有する情報が、更新後の初期割当てポリシ表413が有する情報と一致するように、初期割当てポリシ表316を更新する。
【0094】
図10は、ホスト管理表317の構成を示す。
【0095】
ホスト管理表317は、仮想ホストとWWNとの関係を表す。具体的には、例えば、ホスト管理表317は、仮想ホスト毎に、下記の情報を有する。
(*)仮想ホストの名称を表すホスト名1001。
(*)仮想ホストのWWNを表すWWN1002。
【0096】
なお、ホスト名1001及びWWN1002は、仮想ホストで実行中のプログラム、またはホストのハイパーバイザプログラムから取得することができるが、手入力等の他の取得方法であってもよい。
【0097】
図11は、アプリケーション定義表318の構成を示す。
【0098】
アプリケーション定義表318は、アプリケーションの定義を表す。具体的には、例えば、アプリケーション定義表318は、アプリケーション毎に、下記の情報を有する。
(*)アプリケーションの名称を表すアプリケーション名1101。
(*)アプリケーションに対応した仮想ホスト(例えば、そのアプリケーション用のアプリケーションプログラムが実行される仮想ホスト)の名称を表すホスト名1102。
(*)アプリケーションに対応した時間帯(例えば、そのアプリケーション用のアプリケーションプログラムが実行される時間帯)を表す時間帯1103。
【0099】
なお、アプリケーション名、アプリケーションが実行される仮想ホスト、アプリケーションが実行される時間帯は、仮想ホストで実行中のプログラム、またはホストのハイパーバイザプログラムから取得することができるが、手入力等の他の取得方法であってもよい。
【0100】
また、各アプリケーションについて、ホスト名1102及び時間帯1103の一方が、全ての場合を示すアスタリスク値”*”であっても良い。これは、アプリケーションの定義が、アプリケーションが実行される仮想ホストと、アプリケーションが実行される時間帯とのいずれかに依存しないことを意味する。
【0101】
なお、図11を用いて、ホスト名、又は/及び時間に基いてアプリケーション名1101を求める場合、まずは図11の表のホスト名1102又は/及び時間帯1103にアスタリスク値を含まない表中の行を用いてアプリケーション名を求め、もし該当する行が無い場合にアスタリスク値を含む行を用いてアプリケーション名を求めても良い。さらに、図8の表では1102乃至1103の2つの条件にアスタリスク値を入れることができるため、どの条件がアスタリスク値の場合から優先してしようする優先条件を定め、当該条件を図11の参照時に考慮してもよい。
【0102】
図12は、再配置履歴表412の構成を示す。
【0103】
再配置履歴表412は、再配置処理の結果の履歴を表す情報を有する。具体的には、例えば、再配置履歴表412は、アクセス元WWN及び時間帯の組毎に、下記の情報を有する。
(*)VVOLのIDを表すVVOL ID1201。
(*)初期割当て処理の原因となったアクセス(ライト)のアクセス元WWN(アクセス元の仮想ホストのWWN)を表す初期アクセス元WWN1202。
(*)初期割当て処理において実領域が割り当てられた時間を含んだ時間帯を表す初期割当時間1203。
(*)再配置処理の結果の集計を表す集計値1204。集計値1204は、具体的には、初期割当て処理でVVOLに割り当てられた実領域のうち、どのメディア(階層)内の実領域が幾つあるかを表す。
(*)初期メディア(階層)のIDを表す初期割当階層1205。
【0104】
図12の表412によれば、VVOL“Volume 1”に初期割当て処理で割り当てられた複数の実領域であって、時間帯“2009/12/25の12:00-13:00”に仮想ホスト“WWN-C”からのライトによって初期メディア“Tier
3”から割り当てられた複数の実領域について、その後から現在までに行われた再配置処理により、以下の結果となったことがわかる。
(*)1個の実領域内のデータが、メディア“Tier 1”内の1個の実領域にマイグレーションされた。
(*)2個の実領域内のデータが、メディア“Tier 2”内の2個の実領域にマイグレーションされた。
(*)13個の実領域内のデータが、初期メディア“Tier 3”からマイグレーションされず残った。
【0105】
上記各ケースの発生比率を考慮することで、仮想ホスト“WWN-C”及び時間帯“2009/12/25の12:00-13:00”に対応する初期メディアとしては、メディア“Tier 3”が適切であることがわかる。従って、仮想ホスト“WWN-C”及び時間帯“2009/12/25の12:00-13:00”に対応する初期割当階層1205の値が、“Tier 3”以外であれば、“Tier 3”に更新されることが好ましい。なぜなら、再配置処理でマイグレーションされるデータの量は最も小さくて済むと考えられるからである。
【0106】
<<本実施例で行われる処理に関する説明>>。
【0107】
本実施例で行われる処理として、例えば、(1)初期設定、(2)ライト処理、(3)再配置処理、及び、(4)初期割当てポリシ表の更新、がある。以下、各処理を説明する。
【0108】
(1)初期設定。
【0109】
管理システム103内のストレージ管理プログラム411が、表示装置451に、図13に例示する初期設定画面1501を表示する。その画面1501には、アプリケーション名と時間帯の入力が可能である。また、その画面1501から、VVOL ID、アクセス元WWN及びホスト名、並びに、初期メディア(階層)のIDの選択が可能である。選択可能なVVOL IDは、例えば、VVOL管理表312に登録されているVVOL ID501であり、選択可能なアクセス元WWN及びホスト名は、例えば、ホスト管理表117に登録されているWWN1002及びホスト名1001であり、選択可能な初期メディア(階層)のIDは、例えば、ストレージ階層定義表315に登録されているID801である。
【0110】
ストレージ管理者は、ストレージ装置109からVVOLがホスト101に提供される前に(ホスト101にVVOLがマウントされる前に)、初期設定画面1501を用いて、そのVVOLに対応する初期メディア(階層)を選択しておく。つまり、少なくとも、VVOL IDと初期メディア(階層)が選択される。ストレージ管理プログラム411は、選択されたVVOL IDと初期メディア(階層)のIDとを、管理システム103内の初期割当てポリシ表413に登録する。また、ストレージ管理プログラム411が、ストレージ装置109内のストレージ制御プログラム311に、そのVVOL IDとメディアIDとを、ストレージ装置109内の初期割当てポリシ表316に登録させる。
【0111】
初期設定において、アクセス元WWN及びホスト名が選択され、且つ、アプリケーション名及び時間帯が初期設定画面1501に入力された場合、ストレージ管理プログラム411は、アクセス元WWN及び時間帯を、初期割当てポリシ表413に登録することができる。また、ストレージ管理プログラム411は、ストレージ制御プログラム311に、アクセス元WWN及び時間帯を初期割当てポリシ表316に登録させることができる。また、ストレージ管理プログラム411は、ストレージ制御プログラム311に、アプリケーション名、ホスト名及び時間帯の組を、アプリケーション定義表318に登録させることができる。
【0112】
ストレージ管理者は、アクセス元WWN及び時間帯の少なくとも一方を入力しなくて良い。この場合、初期割当てポリシ表316におけるアクセス元WWN902及び/又は時間帯903の値として、所定のコード“*”が登録される。ここでの“*”は、どのようなアクセス元WWN及び/又は時間帯であっても条件に合致すること(定義されている初期メディアから実領域が割り当てられること)を意味する。
【0113】
(2)ライト処理。
【0114】
図14は、ライト処理の流れを示すフローチャートである。
【0115】
S1001で、仮想ホストが、ライト要求を発行する。そのライト要求は、仮想ホストのWWNと、ライト先情報を有する。ライト先情報は、LUNと仮想領域のLBAとを含む。ライト先情報は、更に、ライト要求に付随するデータ(ライト対象のデータ)のデータサイズを含んで良い。
【0116】
S1002で、ストレージ装置109が、仮想ホストからのライト要求を受信する。プログラム311は、キャッシュメモリ領域に、ライト対象のデータを書き込む。また、ストレージ制御プログラム311が、ライト要求内のライト先情報が有するLUNに対応したVVOL IDを特定し、且つ、ライト先情報に対応した実領域ID503をVVOL管理表312から特定する。
【0117】
特定された実領域ID503が有効な値(いずれかの実領域のIDを表す値)の場合(S1003:Yes)、プログラム311は、S1012で、特定された実領域ID503から識別される実領域に、キャッシュメモリ領域にある書込み対象のデータを書き込む。
【0118】
特定された実領域ID503が無効な値(実領域が割り当てられていないことを意味する値)の場合(S1003:No)、プログラム311は、S1004で、全てのライト先仮想領域(ライト先情報から特定される仮想領域)に対して割り当て可能な未割当の実領域がプールに有るか否かを、実領域管理表313を基に判断する。
【0119】
S1004の判断の結果が否定的の場合(S1004:No)、プログラム311は、S1005で、ライト要求の送信元の仮想ホストにエラーを返す。
【0120】
S1004の判断の結果が肯定的の場合(S1004:Yes)、S1006で、プログラム311は、ライト先情報内のLUNを用いて特定されたVVOL IDと、仮想ホストのWWNと、ライト要求を受信した時間とに対応する初期メディアID(初期割当階層904)を、初期割当てポリシ表316から特定する。次に、S1007で、プログラム311は、特定された初期メディアIDに対応するメディア性能802をストレージ階層定義表315から特定する。次に、S1008で、プログラム311は、特定されたメディア802が表すPDEV種類及びRAIDレベルに適合するRAIDグループのRAIDグループID701をRAIDグループ管理表314から特定する。
【0121】
S1009で、プログラム311は、特定されたRAIDグループID701が表すIDをキーに、実領域管理表313から、そのIDから識別されるRAIDグループに基づく複数の実領域に、全てのライト先仮想領域に対して割り当て可能な未割当の実領域があるか否かを判断する。
【0122】
S1009の判断の結果が肯定的の場合(S1009:Yes)、プログラム311は、S1010で、ライト先仮想領域に初期メディア内の未割当の実領域を割り当て、S1012で、その実領域にキャッシュメモリ領域内のデータを書き込む。S1010では、具体的には、プログラム311は、下記の更新を行う。
(*)プログラム311は、VVOL管理表312における、ライト先情報に対応した実領域ID503の値を、割り当てた実領域のIDを表す値に更新する。
(*)プログラム311は、VVOL管理表312における、割当時アクセス元WWN505及び割当時間506の値を、仮想ホストのWWNと実領域を割り当てた時間とを表す値に更新する。
(*)プログラム311は、VVOL管理表312における、階層ID504の値を、実領域のソースとなったメディアのIDを表す値に更新する。
(*)プログラム311は、実領域管理表313における、割り当てた実領域の割当状況602の値を、割当済を表す値に更新する。
【0123】
S1009の判断の結果が否定的の場合(S1009:No)、プログラム311は、S1011で、なるべく初期メディアから実領域をライト先仮想領域に割り当て、足りない分についてのみ、他のメディアから実領域をライト先仮想領域に割り当て、その後、S1012で、割り当てた実領域にキャッシュメモリ領域内のデータを書き込む。
【0124】
前述のS1011では、具体的には、例えば、プログラム311は、20個のライト先仮想領域があり、初期メディアに13個の未割当の実領域があった場合、13個の実領域を13個のライト先仮想領域に割り当て、残り7個のライト先仮想領域に7個の実領域を他のメディアから割り当てる。なお、ここで実領域のソースとされる「他のメディア」としては、初期メディアに最も性能が近いメディア(例えば、初期メディア(階層)に近接した階層)である。その際、初期メディアの上位及び下位の両方に近接したメディアがある場合、未割当の実領域が多い方のメディアが、実領域のソースとしての「他のメディア」として選択されて良い。なぜなら、未割当の実領域の少ない方の近接メディアが選択されると、そのメディアが初期メディアとして使用される際に、未割当の実領域が不足してしまう可能性が高まってしまうからである。
【0125】
なお、S1011では、S1010と同様に、VVOL管理表312及び実領域管理表313が更新される。
【0126】
以上のように、ライト処理では、1以上のライト先仮想領域に、初期メディアから優先的に未割当の実領域が割り当てられる。なお、例えば、初期割当ポリシ表316が、図8に示した状態の場合、VVOL“Volume 1”にライトがあった場合、ライト元仮想ホストのWWN及びライトの時間帯に関わらず、初期メディア“Tier 2”から実領域が割り当てられる。
【0127】
なお、仮想ホストからリード要求が送信された場合には、例えば、下記の処理が行われる。
(x1)ストレージ制御プログラム311は、リード要求を仮想ホストから受信する。
(x2)プログラム311は、リード要求が有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(x3)プログラム311が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する。
(x4)上記(x3)の判断の結果が肯定的の場合、プログラム311は、キャッシュメモリ領域のリード対象データを、仮想ホストに送信する。この場合、リード元仮想領域に対応したアクセス頻度507の値は、更新されてもされなくても良い。
(x5)上記(x3)の判断の結果が否定的の場合、プログラム311は、VVOL管理表312を基に、上記(x2)で特定されたリード元仮想領域に割り当てられている実領域を特定する。プログラム311は、特定された実領域からデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム311は、キャッシュメモリ領域内のそのデータを仮想ホストに送信する。プログラム311は、リード元仮想領域に対応したアクセス頻度507の値を更新する。
【0128】
(3)再配置処理。
【0129】
図15は、再配置処理の流れを示すフローチャートである。再配置処理は、例えば定期的に行われる。
【0130】
S1101で、ストレージ制御プログラム311が、VVOL管理表312における全ての再配置判定結果508の値をクリアする。
【0131】
VVOL管理表312に登録されている全ての仮想領域について、S1102が行われる。S1102で、プログラム311が、仮想領域のアクセス頻度507が表すアクセス頻度を含んだアクセス頻度範囲を表すアクセス頻度範囲603をストレージ階層定義表315から特定し、そのアクセス頻度範囲803に対応したメディアのIDを、その仮想領域に対応する再配置判定結果508の値として記録する。この結果、そのメディアのIDは、その仮想領域に対応した階層ID504が表すメディアIDと同じであることもあれば異なることもある。
【0132】
S1103で、プログラム311が、メモリ304に、アクセス頻度507の値が高い順に仮想領域の識別情報(例えば、VVOL IDとLBA範囲との組)を並べる。
【0133】
プログラム311は、アクセス頻度が高い仮想領域から順(メモリ304での仮想領域識別情報の並び順)に、S1104以降を行う。以下、1つの仮想領域(図15の説明において「対象仮想領域」と言う)を例に採り、S1104以降を説明する。
【0134】
S1104で、プログラム311は、対象仮想領域に対応した階層ID504の値と、対象仮想領域に対応した再配置判定処理508の値とが一致するか否かを判断する。
【0135】
S1104の判断の結果が肯定的の場合(S1104:Yes)、マイグレーションが不要のため、対象仮想領域についての処理は終了する。
【0136】
S1104の判断の結果が否定的の場合(S1104:No)、プログラム311は、S1105で、実領域管理表313を基に、対象仮想領域に対応した再配置判定処理508から識別されるメディア(以下、図15の説明において「対象メディア」と言う)内に未割当の実領域があるか否かを判断する。
【0137】
S1105の判断の結果が肯定的の場合(S1105:Yes)、プログラム311は、S1107で、対象仮想領域に割り当てられている実領域(マイグレーション元の実領域)から、対象メディア内の未割当の実領域(マイグレーション先の実領域)にデータをマイグレーションする。また、プログラム311は、対象仮想領域に、マイグレーション元の実領域に代えてマイグレーション先の実領域を割り当てる。具体的には、プログラム311は、マイグレーション元の実領域に対応した割当状況602の値を未割当に更新する。また、プログラム311は、対象仮想領域に対応した実領域ID503の値を、マイグレーション先実領域のIDに更新し、且つ、対象仮想領域に対応した階層ID504の値を、対象メディアのIDに更新する。
【0138】
S1105の判断の結果が否定的の場合(S1105:No)、プログラム311は、S1106で、入れ替え可能な実領域があるか否かを判断する。具体的には、例えば、対象メディアにおける複数の割当済実領域内のデータのうち、対象仮想領域に割り当てられている実領域にマイグレーションされても良いデータがあるかどうかが判断される。
【0139】
S1106の判断の結果が肯定的の場合(S1106:Yes)、プログラム311は、S1108で、実領域の入れ替えを行う。具体的には、例えば、プログラム311は、下記の処理を行う。なお、下記の処理に伴って、プログラム311は、VVOL管理表312及び実領域管理表313を更新する。
(*)プログラム311は、対象仮想領域に割り当てられている実領域(図15の説明において「第1の実領域」と言う)内のデータ(図15の説明において「第1のデータ」と言う)をキャッシュメモリ領域に書く。
(*)プログラム311は、対象メディアが有する割当済実領域(図15の説明において「第2の実領域」と言う)内のデータ(図15の説明において「第2のデータ」と言う)をキャッシュメモリ領域に書く。
(*)プログラム311は、第1のデータをキャッシュメモリ領域から第2の実領域に書き込む。
(*)プログラム311は、第2のデータをキャッシュメモリ領域から第1の実領域に書き込む。
【0140】
S1106の判断の結果が否定的の場合(S1106:No)、プログラム311は、S1109で、対象メディアに性能が最も近いメディア内の未割当の実領域に第1の実領域からデータをマイグレーションする。また、プログラム311は、S1107の処理と同様に、VVOL管理表312及び実領域管理表313を更新する。
【0141】
以上が、アクセス状況としてアクセス頻度を想定した場合の再配置処理の説明である。その他のアクセス状況の場合は以下の通りである。
(*)アクセス状況がアクセス負荷の場合は、各仮想領域のアクセス負荷に適したメディア(階層)をストレージ階層定義表315に基づいて特定し、特定したメディア(階層)が、当該仮想領域が現時点で割り当てられている実領域のメディアと異なる場合は、特定したメディアの実領域にマイグレーションを行う。
(*)アクセス状況が最終アクセス時間の場合は、最終アクセス時間に基づいて定義されたストレージ階層定義表315の想定アクセス状況に基づいて、各仮想領域の最終アクセス時間に適したメディア(階層)をストレージ階層定義表315に基づいて特定し、特定したメディア(階層)が、当該仮想領域が現時点で割り当てられている実領域のメディアと異なる場合は、特定したメディアの実領域にマイグレーションを行う。
【0142】
(4)初期割当てポリシ作成処理。
【0143】
図16は、初期割当てポリシ作成処理の流れを示す。
【0144】
管理システム103内のストレージ管理プログラム411は、例えば、図15に示した再配置処理が行われる都度に、ストレージ装置109から再配置処理の結果を取得する。プログラム411は、VVOL ID1201と、WWN1202と、初期割当時間1203と、取得した結果の集計を表す情報(集計値)1204とを再配置履歴表412に記録する。具体的には、プログラム411は、最新の再配置処理と1回前の再配置処理との間に初期割当てで割り当てられた実領域を特定する。その実領域は、例えば、最新の再配置処理が行われた時間、1回前の再配置処理が行われた時間、VVOL ID501、WWN505及び時間506、初期割当階層904を基に、特定することができる。プログラム411は、初期割当時アクセス元WWNと初期割当て時間帯との組(つまりアプリケーション)毎に、初期割当てにおいて割り当てられたどの実領域内のデータがどのメディアにマイグレーションされたかを集計する。プログラム411は、その集計結果を共に、再配置履歴表412を更新する。その際、プログラム411は、或るアプリケーション(初期割当時アクセス元WWNと初期割当て時間帯との組)に対応した初期割当階層1205の値を、そのアプリケーションに対応した集計値1204において実領域数の最も多いメディアのIDに更新する。
【0145】
次に、プログラム411は、再配置履歴表412を基に、それぞれのVVOLについて、アクセス元WWN毎に、初期割当階層1205の値が同じ値になっている連続する時間帯を1つの初期割当ポリシにまとめるという処理を実行する。具体的には、例えば、プログラム411は、中間テーブル2001をメモリ304に準備する。プログラム411は、中間テーブル2001に、VVOL 2011の値としてVVOL ID1201の値を登録し、アクセス元WWN2012の値としてWWN1202の値を登録する。プログラム411は、そのWWN2012の値と初期割当階層1205の値の両方が同じであるレコードを再配置履歴表412から特定する。プログラム411は、特定された2以上のレコードが表す2以上の時間帯が連続していれば(例えば、9:00-10:00、10:00-11:00、11:00-12:00のように連続していれば)、2以上の時間帯を1つにまとめる(例えば、3つの時間帯9:00-10:00、10:00-11:00、11:00-12:00を、1つの時間帯9:00-12:00にまとめる)。プログラム411は、時間帯2013の値として、1つにまとめられた時間帯を表す値を中間テーブル2001に登録する。プログラム411は、初期割当階層2014の値として、初期割当階層1205の値を登録する。
【0146】
次に、プログラム411は、各VVOLについて、時間帯2013の値が同じアクセス元WWN同士で、初期割当階層2014の値を比較する。初期割当階層2014の値が互いに一致していれば、プログラム411は、初期割当てポリシ表413において、1つのレコード(行)に、アクセス元WWN902の値として、複数のWWNを登録する。そのレコードには、VVOLのID、時間帯(1つにまとめられた時間帯)、及び初期メディアのIDも登録される。
【0147】
プログラム411は、更新後の初期割当てポリシ表413が表す情報(または、更新後の初期割当てポリシ表413と更新前の初期割当てポリシ表413との差分を表す情報)である更新情報を有した更新要求を、ストレージ装置109に送信する。ストレージ装置109が更新要求を受信し、ストレージ制御プログラム311は、その更新要求に応答して、その更新要求が有する更新情報を基に、初期割当てポリシ表316を、更新後の初期割当てポリシ表413と同じ内容になるよう更新する。
【0148】
以上のように、初期割当てポリシ作成処理では、再配置履歴表412において共通する情報がまとめられた結果としての情報が初期割当てポリシ表413に登録され、その初期割当てポリシ表413と同じ内容になるようストレージ装置109内の初期割当てポリシ表316が更新される。このため、初期割当てポリシ表413及び316が有するレコードの数をなるべく少なくすることができる。これは、ライト処理の性能の低下を防ぐことに貢献することができる。レコード数が少なければ、初期割当てポリシ表316からのサーチの負荷が小さくて済むからである。また、レコード数が少なければ、メモリ304及び402の消費される容量が小さくて済む。
【0149】
なお、初期割当ポリシ作成処理での集計の手法としては、上述した手法以外の手法(例えば、データクラスタリング)が採用されても良い。
【0150】
また、再配置処理の結果の集計を基に初期割当てポリシ表413及び316が更新されることは、ユーザからの明示的な指示を受けることなく行われても良いし、ユーザからの明示的な指示を受けたことに応答して行われても良い。初期割当てポリシ表413及び316の更新がユーザからの明示的な指示を受けたときに行われるケースでは、例えば、図17に示す初期割当てポリシ定義画面1401が、ストレージ管理プログラム411によって、管理システム103の表示装置451に表示される。
【0151】
画面1401には、更新前の初期割当てポリシ表413、ホスト管理表317及びアプリケーション定義表318がマージされた表1701と、仮の更新後の初期割当てポリシ表413、ホスト管理表317及びアプリケーション定義表318がマージされた表1703とが表示される。
【0152】
「仮の更新後の初期割当てポリシ表413」とは、初期割当てポリシ表413は未だ更新されておらず、更新されたと仮定したときの初期割当てポリシ表413である。仮の更新後の初期割当てポリシ表413を表す情報が、推奨の情報として表示される。
【0153】
表1701及び1703における「ホスト名」の値は、表413におけるWWNに対応したホスト名1001の値である。表1701及び1703における「アプリケーション名」の値は、上記「ホスト名」と時間帯903の値とに対応するアプリケーション名1101の値である。
【0154】
表1703の1つのレコードには、1つの初期割当てポリシを表す情報が表示され、且つ、チェックボックスが表示される。チェックボックスにチェックマークが入れられて、「適用」ボタン1705が押された場合には、プログラム411は、チェックマークが入れられたレコードが表す情報(初期割当てポリシ)を、初期割当てポリシ表413及び316に登録する。つまり、ストレージ管理者は、初期割当てポリシ単位で、定義するか否かを選択することができる。なお、「適用」ボタン1705ではなく「詳細」ボタン1706が押された場合、プログラム411は、チェックマークが入れられたレコードが表す情報(初期割当てポリシ)に関わる、再配置履歴表412の部分を表示する。
【0155】
以上が、本実施例の説明である。
【0156】
本実施例によれば、VVOLが複数のアプリケーションに使用される場合でも、VVOL単位で初期メディアを定義しておくだけで、アプリケーション(仮想ホストのWWN及び時間帯の組)毎に適切な初期メディアが決定される。
【0157】
以上、本発明の実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0158】
例えば、実施例では、仮想ホストのWWNとライト時間が属する時間帯との両方に初期メディアが対応付けられるが、いずれか一方にのみ初期メディアが対応付けられても良い。
【0159】
また、本発明は、ホストの仮想化技術が適用されないホストにも適用可能であり、その場合、WWNは、ホストのWWNとなる。WWNに限らず、他種のアクセス元識別情報(例えば、ポートID、IPアドレス)を採用することができる。
【0160】
また、例えば、初期割当てポリシ表316が無くて良い。この場合、ストレージ制御プログラム311が、ライトの都度に、ライトに応じたメディアを判断し、判断したメディアから実領域をライト先仮想領域に割り当てて良い。具体的には、例えば、プログラム311は、ライト元識別情報及びライト時間に代えて又は加えて、ライトデータ属性(例えば、ライトデータのサイズ、フォーマット)、ライト要求属性(ライト要求が有する情報要素)などの別種のライト関連情報を基に、初期メディアとするメディアを決定し、そのメディアから実領域を割り当て、割り当てた実領域にライト対象のデータを書き込んでも良い。
【0161】
また、以上の説明では、プールに実領域を登録する場合に、RAIDグループを作成し、RAIDグループから論理ボリュームを作成し、論理ボリュームをプールに登録するという前提で説明した。しかし、異なる種類の物理記憶デバイスが実領域を提供するためにプールに登録されていれば、他の登録体系でもよい。たとえば、以下が考えられる。
(*)論理ボリュームを作成せずにRAIDグループをプールに登録する。
(*)物理記憶デバイスをプールに登録する。なおこの場合は、実領域割当が必要な場合に、ストレージ装置が仮想ボリューム、プール、またはアクセス元WWN、または時間帯で指定されたRAIDレベル及びコンビネーションに合わせて必要な実領域を抽出して仮想領域に割当て、ライトデータを割り当てた実領域に格納する。
【0162】
なお、以上説明したとおり、本実施例では、アクセス元識別情報と時間帯の両方に基づいて実領域の初期割当階層を判断する点について開示したため、アプリケーション毎又は仮想ホスト毎又はホスト毎に好適な初期割当を実現するという点がメリットとなっていた。しかし、本願発明は、時間帯を用いずにアクセス元識別情報に基いて実領域の初期割当階層を判断してもよい。このような実施形態は、ホスト毎または仮想ホスト毎に好適な初期割当を実現する点において有意義であり、図10及び図11に示すような仮想ホストまたはホスト内部の情報を取得しなくても実現ができるため、計算機システムの管理者の利便性が高い。
【0163】
一方の時間帯に基づいた実領域の初期割当階層の判断は、一つの仮想ホスト又はホストを複数のアプリケーションで使用している場合にアクセス元識別情報より細やかな制御を可能とする点において有意義である。
【0164】
なお、以上の説明では、一つの仮想ボリュームを複数の仮想ホストが用いる場合について説明したが、本願発明は仮想ホスト以外でも一つの仮想ボリュームを複数のアプリケーションまたはホストが利用する場合にも適用可能な技術である。
【符号の説明】
【0165】
103…管理システム 109…ストレージ装置
【特許請求の範囲】
【請求項1】
Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームに対するデータのライトを制御する方法であって、
(A)前記仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、
(B)前記ライト先情報を基に特定される前記ライト先の仮想領域が未割当の仮想領域か否かを判断し、
(C)前記(B)の判断の結果が肯定的の場合に、前記ライト先の仮想領域に対するライトに応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域を前記ライト先の仮想領域に割り当てる、
方法。
【請求項2】
請求項1記載の方法であって、
前記(C)において、前記ライト先の仮想領域に対するライトに応じたメディアであって、前記ライト要求の送信元であるライト元の識別情報に応じたメディアを選択する、
方法。
【請求項3】
請求項2記載の方法であって、
前記仮想ボリュームは、複数のホストからアクセスされ得る仮想的な論理ボリュームである、
方法。
【請求項4】
請求項3記載の方法であって、
前記複数のホストは、ホストの仮想化技術に従って生成される複数の仮想的なホストである、
方法。
【請求項5】
請求項4記載の方法であって、
どのライト元識別情報のライト元からのどんなライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記初期割当てポリシ情報は、管理者からの入力に基づいて更新される情報であり、
前記(C)において、前記ライト要求のライト元の識別情報と、前記ライト先の仮想領域に対するライトとに対応したメディアを前記初期割当てポリシ情報から特定する、
方法。
【請求項6】
請求項5記載の方法であって、
(P)仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
(Q)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を、算出する、
方法。
【請求項7】
請求項6記載の方法であって、
前記初期割当てポリシ情報は、デフォルト値として、ライト元の識別情報及びライトが何でも良いことを意味する値を有し、
前記(C)において、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報と、前記ライト先の仮想領域に対するライトとに関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、
方法。
【請求項8】
請求項7記載の方法であって、
(R)前記或るメディア以外のメディアについての、前記(Q)で算出された実領域数を基に、前記初期割当てポリシ情報を更新する、
方法。
【請求項9】
ホストに接続されたストレージ装置であって、
性能の異なる複数の物理記憶デバイス群と、
前記複数種類の物理記憶デバイス群に接続されたコントローラと
を備え、
各物理記憶デバイス群は、1以上の物理記憶デバイスで構成されており、
前記複数の物理記憶デバイス群を基に、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアがあり、
前記コントローラは、Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームを管理し、
前記コントローラは、
(A)前記仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を前記ホストから受信し、
(B)前記ライト先情報を基に特定される前記ライト先の仮想領域が未割当の仮想領域か否かを判断し、
(C)前記(B)の判断の結果が肯定的の場合に、前記ライト要求の送信元であるライト元ホストの識別情報に応じたメディアを前記複数のメディアから選択し、選択したメディアから実領域を前記ライト先の仮想領域に割り当てる、
ストレージ装置。
【請求項10】
請求項9記載のストレージ装置であって、
前記(C)において、前記コントローラが、前記ライト元のホストの識別情報に応じたメディアであって、前記ライト先の仮想領域に対するライトに応じたメディアを選択する、
ストレージ装置。
【請求項11】
請求項9記載のストレージ装置であって、
前記仮想ボリュームは、複数のホストからアクセスされ得る仮想的な論理ボリュームである、
ストレージ装置。
【請求項12】
請求項9記載のストレージ装置であって、
前記ホストは、ホストの仮想化技術に従って生成される仮想的なホストであり、
前記仮想ボリュームは、複数の仮想的なホストからアクセスされ得る仮想的な論理ボリュームである、
ストレージ装置。
【請求項13】
請求項9記載のストレージ装置であって、
前記コントローラが、どのホスト識別情報のライト元からのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記初期割当てポリシ情報は、管理者からの入力に基づいて更新される情報であり、
前記(C)において、前記コントローラが、前記ライト元ホストの識別情報に対応したメディアを前記初期割当てポリシ情報から特定する、
ストレージ装置。
【請求項14】
請求項13記載のストレージ装置であって、
前記コントローラが、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数が、算出される、
ストレージ装置。
【請求項15】
請求項14記載のストレージ装置であって、
前記或るメディア以外のメディアについての、前記(Q)で算出された実領域数を基に、前記初期割当てポリシ情報が更新される、
ストレージ装置。
【請求項16】
請求項13記載のストレージ装置であって、
前記初期割当てポリシ情報は、デフォルト値として、ライト元の識別情報が何でも良いことを意味する値を有し、
前記(C)において、前記コントローラが、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報に関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、
ストレージ装置。
【請求項17】
(A)Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームに初期的に割り当てられる実領域のソースとなるメディアである初期メディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、
(B)選択された初期メディアを表す値とそれに対応付けられるライト元識別情報とを含んだ第1の初期割当てポリシ情報が有する情報を、前記仮想ボリュームを有するストレージ装置に、そのストレージ装置が有する第2の初期割当てポリシ情報に設定させる、
ことをコンピュータに実行させ、それにより、前記ストレージ装置が、ライト先の仮想領域を特定するためのライト先情報を含んだライト要求をホストから受信し、且つ、そのライト先の仮想領域が未割当の仮想領域であると判断した場合に、前記ライト要求の送信元であるライト元ホストの識別情報に対応した初期メディアを前記第2の初期割当てポリシ情報を基に前記複数のメディアから選択し、選択した初期メディアから実領域を前記ライト先の仮想領域に割り当てる、ことが可能となる、コンピュータプログラムを記憶した記憶媒体。
【請求項18】
請求項17記載の記憶媒体であって、
前記ストレージ装置が、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
前記コンピュータプログラムは、或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、ことを前記コンピュータに実行させる、
記憶媒体。
【請求項19】
請求項18記載の記憶媒体であって、
前記コンピュータプログラムが、前記算出された実領域数を基に、前記第1の初期割当てポリシ情報を更新し、前記ストレージ装置に、更新後の前記第1の初期割当てポリシ情報が有する情報を前記第2の初期割当てポリシ情報に設定させる、ことを前記コンピュータに実行させる、
記憶媒体。
【請求項20】
請求項17記載の記憶媒体あって、
前記コンピュータプログラムが、前記ストレージ装置に、デフォルト値としてライト元の識別情報が何でも良いことを意味する値を前記第2の初期割当てポリシ情報に設定させる、ことを前記コンピュータに実行させ、それにより、前記ストレージ装置が、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記第2の初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報に関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、ことが可能となる、
記憶媒体。
【請求項21】
請求項1記載の方法であって、
どんなライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記(C)において、前記ライト先の仮想領域に対するライトに対応したメディアを前記初期割当てポリシ情報から特定し、
以下の(Q)乃至(S)を実行する、
(Q)仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行う、
(R)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライトに対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、
(S)前記初期割当てポリシ情報における、前記或るライトに対応した初期メディアを表す値を、算出された実領域数が最も多いメディアを表す値に更新する、
方法。
【請求項22】
請求項21記載の方法であって、
前記或るライトとは、或るライトの時間帯である、
方法。
【請求項23】
請求項9記載のストレージ装置であって、
前記コントローラが、どのライト元識別情報のライト元からのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記コントローラが、前記(C)において、前記ライト要求のライト元の識別情報に対応したメディアを前記初期割当てポリシ情報から特定し、
前記コントローラが、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライト元識別情報に対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数が算出され、
前記初期割当てポリシ情報における、前記或るライト元識別情報に対応した初期メディアを表す値が、算出された実領域数が最も多いメディアを表す値に更新される、
ストレージ装置。
【請求項24】
請求項23記載のストレージ装置であって、
前記初期割当てポリシ情報は、どのライト元識別情報のライト元からのどんな時間帯でのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表し、
前記コントローラが、前記(C)において、前記ライト要求のライト元の識別情報と、そのライト要求を受けた時間帯とに対応したメディアを前記初期割当てポリシ情報から特定する、
ストレージ装置。
【請求項25】
請求項17記載の記憶媒体であって、
前記ストレージ装置が、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
以下の(P)乃至(R)を前記コンピュータに実行させ、
(P)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライト元識別情報に対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、
(Q)前記第1の初期割当てポリシ情報における、前記或るライト元識別情報に対応した初期メディアを表す値を、算出された実領域数が最も多いメディアを表す値に更新する、
(R)更新後の前記第1の初期割当てポリシ情報が有する情報を前記第2の初期割当てポリシ情報に設定させる、
記憶媒体。
【請求項26】
請求項25記載の記憶媒体であって、
前記第1の初期割当てポリシ情報は、どのライト元識別情報のライト元からのどんな時間帯でのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す、
記憶媒体。
【請求項27】
請求項1記載の方法であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
方法。
【請求項28】
請求項9記載の装置であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
ストレージ装置。
【請求項29】
請求項17記載の記憶媒体であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
記憶媒体。
【請求項1】
Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームに対するデータのライトを制御する方法であって、
(A)前記仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を受信し、
(B)前記ライト先情報を基に特定される前記ライト先の仮想領域が未割当の仮想領域か否かを判断し、
(C)前記(B)の判断の結果が肯定的の場合に、前記ライト先の仮想領域に対するライトに応じたメディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、選択したメディアから実領域を前記ライト先の仮想領域に割り当てる、
方法。
【請求項2】
請求項1記載の方法であって、
前記(C)において、前記ライト先の仮想領域に対するライトに応じたメディアであって、前記ライト要求の送信元であるライト元の識別情報に応じたメディアを選択する、
方法。
【請求項3】
請求項2記載の方法であって、
前記仮想ボリュームは、複数のホストからアクセスされ得る仮想的な論理ボリュームである、
方法。
【請求項4】
請求項3記載の方法であって、
前記複数のホストは、ホストの仮想化技術に従って生成される複数の仮想的なホストである、
方法。
【請求項5】
請求項4記載の方法であって、
どのライト元識別情報のライト元からのどんなライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記初期割当てポリシ情報は、管理者からの入力に基づいて更新される情報であり、
前記(C)において、前記ライト要求のライト元の識別情報と、前記ライト先の仮想領域に対するライトとに対応したメディアを前記初期割当てポリシ情報から特定する、
方法。
【請求項6】
請求項5記載の方法であって、
(P)仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
(Q)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を、算出する、
方法。
【請求項7】
請求項6記載の方法であって、
前記初期割当てポリシ情報は、デフォルト値として、ライト元の識別情報及びライトが何でも良いことを意味する値を有し、
前記(C)において、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報と、前記ライト先の仮想領域に対するライトとに関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、
方法。
【請求項8】
請求項7記載の方法であって、
(R)前記或るメディア以外のメディアについての、前記(Q)で算出された実領域数を基に、前記初期割当てポリシ情報を更新する、
方法。
【請求項9】
ホストに接続されたストレージ装置であって、
性能の異なる複数の物理記憶デバイス群と、
前記複数種類の物理記憶デバイス群に接続されたコントローラと
を備え、
各物理記憶デバイス群は、1以上の物理記憶デバイスで構成されており、
前記複数の物理記憶デバイス群を基に、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアがあり、
前記コントローラは、Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームを管理し、
前記コントローラは、
(A)前記仮想ボリュームにおけるライト先の仮想領域を特定するためのライト先情報を含んだライト要求を前記ホストから受信し、
(B)前記ライト先情報を基に特定される前記ライト先の仮想領域が未割当の仮想領域か否かを判断し、
(C)前記(B)の判断の結果が肯定的の場合に、前記ライト要求の送信元であるライト元ホストの識別情報に応じたメディアを前記複数のメディアから選択し、選択したメディアから実領域を前記ライト先の仮想領域に割り当てる、
ストレージ装置。
【請求項10】
請求項9記載のストレージ装置であって、
前記(C)において、前記コントローラが、前記ライト元のホストの識別情報に応じたメディアであって、前記ライト先の仮想領域に対するライトに応じたメディアを選択する、
ストレージ装置。
【請求項11】
請求項9記載のストレージ装置であって、
前記仮想ボリュームは、複数のホストからアクセスされ得る仮想的な論理ボリュームである、
ストレージ装置。
【請求項12】
請求項9記載のストレージ装置であって、
前記ホストは、ホストの仮想化技術に従って生成される仮想的なホストであり、
前記仮想ボリュームは、複数の仮想的なホストからアクセスされ得る仮想的な論理ボリュームである、
ストレージ装置。
【請求項13】
請求項9記載のストレージ装置であって、
前記コントローラが、どのホスト識別情報のライト元からのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記初期割当てポリシ情報は、管理者からの入力に基づいて更新される情報であり、
前記(C)において、前記コントローラが、前記ライト元ホストの識別情報に対応したメディアを前記初期割当てポリシ情報から特定する、
ストレージ装置。
【請求項14】
請求項13記載のストレージ装置であって、
前記コントローラが、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数が、算出される、
ストレージ装置。
【請求項15】
請求項14記載のストレージ装置であって、
前記或るメディア以外のメディアについての、前記(Q)で算出された実領域数を基に、前記初期割当てポリシ情報が更新される、
ストレージ装置。
【請求項16】
請求項13記載のストレージ装置であって、
前記初期割当てポリシ情報は、デフォルト値として、ライト元の識別情報が何でも良いことを意味する値を有し、
前記(C)において、前記コントローラが、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報に関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、
ストレージ装置。
【請求項17】
(A)Thin Provisioningに従う仮想的な論理ボリュームであり複数の仮想領域で構成され複数のアプリケーションに使用される論理ボリュームである仮想ボリュームに初期的に割り当てられる実領域のソースとなるメディアである初期メディアを、性能が異なりそれぞれが2以上の実領域で構成された複数のメディアから選択し、
(B)選択された初期メディアを表す値とそれに対応付けられるライト元識別情報とを含んだ第1の初期割当てポリシ情報が有する情報を、前記仮想ボリュームを有するストレージ装置に、そのストレージ装置が有する第2の初期割当てポリシ情報に設定させる、
ことをコンピュータに実行させ、それにより、前記ストレージ装置が、ライト先の仮想領域を特定するためのライト先情報を含んだライト要求をホストから受信し、且つ、そのライト先の仮想領域が未割当の仮想領域であると判断した場合に、前記ライト要求の送信元であるライト元ホストの識別情報に対応した初期メディアを前記第2の初期割当てポリシ情報を基に前記複数のメディアから選択し、選択した初期メディアから実領域を前記ライト先の仮想領域に割り当てる、ことが可能となる、コンピュータプログラムを記憶した記憶媒体。
【請求項18】
請求項17記載の記憶媒体であって、
前記ストレージ装置が、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
前記コンピュータプログラムは、或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、ことを前記コンピュータに実行させる、
記憶媒体。
【請求項19】
請求項18記載の記憶媒体であって、
前記コンピュータプログラムが、前記算出された実領域数を基に、前記第1の初期割当てポリシ情報を更新し、前記ストレージ装置に、更新後の前記第1の初期割当てポリシ情報が有する情報を前記第2の初期割当てポリシ情報に設定させる、ことを前記コンピュータに実行させる、
記憶媒体。
【請求項20】
請求項17記載の記憶媒体あって、
前記コンピュータプログラムが、前記ストレージ装置に、デフォルト値としてライト元の識別情報が何でも良いことを意味する値を前記第2の初期割当てポリシ情報に設定させる、ことを前記コンピュータに実行させ、それにより、前記ストレージ装置が、前記ライト先の仮想領域を有する仮想ボリュームに対してデフォルト値が対応付けられていることが前記第2の初期割当てポリシ情報から特定した場合、前記ライト要求のライト元の識別情報に関わらず、前記仮想ボリュームに対応する、前記初期割当てポリシ情報が表すメディアを選択する、ことが可能となる、
記憶媒体。
【請求項21】
請求項1記載の方法であって、
どんなライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記(C)において、前記ライト先の仮想領域に対するライトに対応したメディアを前記初期割当てポリシ情報から特定し、
以下の(Q)乃至(S)を実行する、
(Q)仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行う、
(R)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライトに対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、
(S)前記初期割当てポリシ情報における、前記或るライトに対応した初期メディアを表す値を、算出された実領域数が最も多いメディアを表す値に更新する、
方法。
【請求項22】
請求項21記載の方法であって、
前記或るライトとは、或るライトの時間帯である、
方法。
【請求項23】
請求項9記載のストレージ装置であって、
前記コントローラが、どのライト元識別情報のライト元からのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す情報である初期割当てポリシ情報を有し、
前記コントローラが、前記(C)において、前記ライト要求のライト元の識別情報に対応したメディアを前記初期割当てポリシ情報から特定し、
前記コントローラが、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライト元識別情報に対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数が算出され、
前記初期割当てポリシ情報における、前記或るライト元識別情報に対応した初期メディアを表す値が、算出された実領域数が最も多いメディアを表す値に更新される、
ストレージ装置。
【請求項24】
請求項23記載のストレージ装置であって、
前記初期割当てポリシ情報は、どのライト元識別情報のライト元からのどんな時間帯でのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表し、
前記コントローラが、前記(C)において、前記ライト要求のライト元の識別情報と、そのライト要求を受けた時間帯とに対応したメディアを前記初期割当てポリシ情報から特定する、
ストレージ装置。
【請求項25】
請求項17記載の記憶媒体であって、
前記ストレージ装置が、仮想領域に割り当てられている第1の実領域から、前記第1の実領域を有する第1のメディアとは別のメディアである第2のメディア内の第2の実領域にデータをマイグレーションする再配置処理を定期的に又は不定期的に行い、
以下の(P)乃至(R)を前記コンピュータに実行させ、
(P)或るメディアから前記仮想ボリューム内の2以上の仮想領域に初期的に割り当てられた実領域であって、或るライト元識別情報に対応した実領域のうち、前記再配置処理後の或る時間帯における、それら2以上の仮想領域に前記或るメディア以外のメディアから割り当てられている実領域、の数を算出する、
(Q)前記第1の初期割当てポリシ情報における、前記或るライト元識別情報に対応した初期メディアを表す値を、算出された実領域数が最も多いメディアを表す値に更新する、
(R)更新後の前記第1の初期割当てポリシ情報が有する情報を前記第2の初期割当てポリシ情報に設定させる、
記憶媒体。
【請求項26】
請求項25記載の記憶媒体であって、
前記第1の初期割当てポリシ情報は、どのライト元識別情報のライト元からのどんな時間帯でのライトの場合にどのメディアが実領域の初期的な割り当てのソースである初期メディアとなるべきかを表す、
記憶媒体。
【請求項27】
請求項1記載の方法であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
方法。
【請求項28】
請求項9記載の装置であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
ストレージ装置。
【請求項29】
請求項17記載の記憶媒体であって、
前記未割当の仮想領域は、実領域が割り当てられていない仮想領域、又は、所定のデータが書き込まれている実領域である特別実領域が割り当てられている仮想領域である、
記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−227563(P2011−227563A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2010−94059(P2010−94059)
【出願日】平成22年4月15日(2010.4.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願日】平成22年4月15日(2010.4.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]