JP5363595B2 - 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 - Google Patents
仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 Download PDFInfo
- Publication number
- JP5363595B2 JP5363595B2 JP2011552582A JP2011552582A JP5363595B2 JP 5363595 B2 JP5363595 B2 JP 5363595B2 JP 2011552582 A JP2011552582 A JP 2011552582A JP 2011552582 A JP2011552582 A JP 2011552582A JP 5363595 B2 JP5363595 B2 JP 5363595B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- virtual
- real
- tier
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、仮想ボリューム内のデータの再配置に関する。
現在、企業では、データ量の増加に伴い、ストレージシステムの大規模化・複雑化が進んでいる。このため企業は、ストレージ装置の管理容易化や利用効率向上を求めている。この要求を満たすための一技術として、シン・プロビジョニング(Thin Provisioning)がある。これは、ストレージシステムが、物理的な記憶領域を有さない仮想的な論理ボリューム(以下、仮想ボリュームと略記)をホスト計算機に提供し、ホスト計算機から仮想ボリュームへのライトに応じて、プールからページを動的に割り当てる技術である。ここで、「プール」とは、複数のページの集合であり、「ページ」とは、物理的な記憶領域である。
この技術により、ストレージシステムの容量効率化と容量設計の容易化が可能となる。
プールは、一般に、同一性能のメディア(ページ群)で構成される。しかし、通常、仮想ボリュームに割り当てられている複数のページのアクセス頻度は同一ではなく、それら複数のページに、アクセス頻度が高いページと低いページが混在することがある。このため、性能の過不足が生じることがある。具体的には、例えば、プールが高性能メディアだけで構成されていると、アクセス頻度が低いページについては性能過多が生じており、逆に、プールが低性能メディアだけで構成されていると、アクセス頻度が高いページについては、性能不足が生じている。
その問題を解決するための1つの方法として、特許文献1に記載の方法が考えられる。特許文献1によれば、1つのプールが、性能の異なる複数のメディアで構成され、ページ内のデータが、そのページを有するメディアから、そのページのアクセス頻度に最適なメディアへ再配置される。
特許文献1によれば、ページのアクセス頻度が変化したことが検出され、データの再配置は、その検出の後に行われる。このため、ページのアクセス頻度が変化してから変化後のアクセス頻度に最適なメディアにそのページ内のデータが再配置されるまでに時間がかかる。つまり、データの配置が最適でない状況が生じる。
そこで、本発明の目的は、データの配置が最適でない状況が生じる確率を低減することにある。
ストレージシステムが、複数の仮想領域(仮想的な記憶領域)で構成された仮想的な論理ボリュームである仮想ボリュームと、性能の異なる複数の実領域群で構成された記憶領域であるプールとを有する。ストレージシステムのコントローラが、どの仮想領域にどの実領域(物理的な記憶領域)が割り当てられているかと、仮想領域に割り当てられている実領域のアクセス負荷とを管理する。コントローラは、第1の仮想領域に割り当てられている第1の実領域のアクセス負荷が前記第1の実領域を有する第1の実領域群に不適切である場合、第1の実領域のアクセス負荷に適した第2の実領域群内の第2の実領域に第1の実領域からデータをマイグレーションし、第1の仮想領域に、第1の実領域に代えて第2の実領域を割り当てる。コントローラは、過去の時点での仮想領域とその仮想領域に割り当てられている実領域とに関する情報である履歴情報に基づく、或る時刻でのデータ配置、を実現するための、実領域間のデータマイグレーションを行う。データ配置は、仮想領域内のデータの、実領域群内の実領域への配置である。
ストレージシステムは、1又は複数のストレージ装置で構成されて良い。コントローラは、プールの基になっている記憶デバイスを有する装置内にあっても良いし、プールの基になっている記憶デバイスを有する装置の外にあっても良い。コントローラは、サーバでも良いし、インテリジェンスなスイッチであっても良い。
データの配置が最適でない状況が生じる確率を低減することができる。
以下、本発明の一実施例を説明する。
なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
また、各要素(例えばページ)は、ID、番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。
以下、図を用いて、本発明の一実施例を説明する。以下の図中、同一の部分には同一の符号を付加する。ただし、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
図1は、本発明の一実施例に係る計算機システムの全体構成を示す。
このストレージシステムは、例えば、一つまたは複数のストレージ装置101と、一つまたは複数のホスト計算機102と、一つまたは複数の管理計算機103とを備える。
ストレージ装置101とホスト計算機102とは、例えば、ネットワーク(1)111を介して接続される。
ストレージ装置101と管理計算機103とは、例えば、ネットワーク(2)112を介して接続される。
ホスト計算機102と管理計算機103とは、例えば、ネットワーク(3)113を介して接続される。
ストレージ装置101は、通信線114を介してネットワーク(1)111に接続される。
ホスト計算機102は、通信線115を介してネットワーク(1)111に接続される。
管理計算機103は、通信線116を介してネットワーク(2)に接続される。
ストレージ装置101は、通信線117を介してネットワーク(2)に接続される。
ホスト計算機102は、通信線118を介してネットワーク(3)113に接続される。
管理計算機103は、通信線119を介してネットワーク(3)113に接続される。
なお、上述の通信線114〜119は、例えば、メタルケーブルや光ファイバケーブル等の有線として構成される。しかし、ホスト計算機102とストレージ装置101、ストレージ装置101と管理計算機103、ホスト計算機102と管理計算機103を無線で接続することも可能である。この場合は、通信線114〜119は省略される。
また、ネットワーク(1)111、ネットワーク(2)112、及びネットワーク(3)113のうちの少なくとも2つが、共通のネットワークであっても良い。各ネットワーク111、112、113は、通信ネットワークであり、例えば、SAN(Storage Area Network)又はLAN(Local Area Network)である。
図2は、ストレージ装置101の構成を示す。
ストレージ装置101は、制御装置211と、複数のディスク222とに大別することができる。
本実施例では、複数のディスク222には、少なくとも、SSD(Solid State Drive)、SAS(Serial Attached SCSI)−HDD(Hard Disk Drive)、SATA(Serial Advanced Echnology Attachment)−HDDが含まれている。しかし、ディスク222は、それらのうちの少なくとも1つに代えて又は加えて、他の種類の物理的な記憶デバイスであっても良い。
ディスク222は、ファイバチャネルケーブル等の通信線221を介して制御装置211に接続される。なお、複数のディスク222で、1又は複数のRAID(Redundant Array of Independent Disks)グループを構成することができる。
次に、制御装置211の構成を説明する。
制御装置211は、ホスト計算機102から受信したコマンドに従って、ディスク222へのデータの書き込みや読み出しを制御する。制御装置211は、シン・プロビジョニングに従う仮想ボリューム(以下、VVOL)を提供する。VVOLは、複数の仮想領域で構成されている。仮想領域は、仮想的な記憶領域であり、例えば、LBA(Logical Block Address)で表される。
制御装置211は、例えば、記憶資源と、通信インタフェース装置(以下、インタフェース装置を「IF」と略記)と、それらに接続されたCPU(Central Processing Unit)213とを有する。記憶資源は、例えば、不揮発性メモリ230、主メモリ214、及びキャッシュメモリ215を有する。通信IFとしては、例えば、ホストIF(H−IF)216と、管理IF(M−IF)217と、ディスクIF(D−IF)218とを備える。これら各メモリ230、214、215、CPU213、ホストIF216、管理IF217、ディスクIF218は、バス等の通信線212を介して相互に接続されている。
不揮発性メモリ230としては、例えば、フラッシュメモリ等のような書き換え可能な不揮発性のメモリを挙げることができる。
不揮発性メモリ230は、コンピュータプログラム及び情報を記憶する。具体的には、例えば、不揮発性メモリ230は、図22に示すように、アクセス制御プログラム231と、ティア監視プログラム232と、ページ性能測定プログラム233と、理想ティア判定プログラム234と、再配置開始時刻管理テーブル235と、ページ配置プログラム236と、業務管理テーブル237と、ティア−メディア管理テーブル238と、実配置履歴管理テーブル239と、ページ性能管理テーブル240と、ティア判定基準テーブル241と、理想ティア管理テーブル242と、再配置性能管理テーブル243と、再配置時間管理テーブル244と、再配置開始時刻管理テーブル245と、マッピングテーブル246と、プール管理テーブル247とを記憶する。各プログラム231〜236は、不揮発性メモリ230から主メモリ214に転送され、CPU213により実行される。
アクセス制御プログラム231は、ホスト計算機102の業務(本実施例ではオペレーティングシステム(OS))からアクセスコマンドを受信し、そのアクセスコマンドを処理する。このプログラム231が行う処理は、後に説明する。
ティア監視プログラム232は、どの仮想領域にどのティア内のページが割り当てられているかという実配置(実際のデータ配置)を定期的にチェックし(監視し)、チェックした結果を実配置履歴管理テーブル239に記録する。
ページ性能測定プログラム233は、どの仮想領域に割り当てられたページに対してアクセスが発生したかを監視し、アクセスが発生したページのアクセス頻度をページ性能管理テーブル240に記録する。
理想ティア判定プログラム234は、ページ性能管理テーブル239とティア判定基準テーブル241を基に、各時刻について、ページの理想的なティアを判定し、その判定の結果を理想ティア管理テーブル242に記録する。
再配置開始時刻管理プログラム235は、理想ティア管理テーブル242と再配置性能管理テーブル243を基に、各時刻について、マイグレーション元のページの数および再配置時間を算出し、その結果を再配置時間管理テーブル244に記録する。また、プログラム235は、再配置時間管理テーブル244を基に、再配置開始時刻を算出し、その結果を再配置開始時刻管理テーブル245に記録する。
ページ配置プログラム236は、再配置処理を行う。本実施例では、再配置処理として、再配置処理0、1、2及び3の4種類がある。なお、本実施例で言う「再配置処理」とは、或るティア内のページから別のティア内のページにデータをマイグレーションすることである。その際、マイグレーション元のページに割り当てられていた仮想領域には、マイグレーション元のページに代えてマイグレーション先のページが割り当てられる。
業務管理テーブル237は、どの業務(OS)がどのVVOLのどの仮想領域にアクセスできるかを表す。このテーブル237の詳細は、後に図5を用いて説明する。
ティア−メディア管理テーブル238は、どのティアがどの種類のメディアで構成されているかを表す。このテーブル238の詳細は、後に図6を用いて説明する。
実配置履歴管理テーブル239は、どの時刻でどんな実配置であったかの履歴を表す。このテーブル239の詳細は、後に図7を用いて説明する。
ページ性能管理テーブル240は、どの仮想ページに割り当てられているページがどの時間帯でどのようなアクセス頻度であったかを表す。このテーブル240の詳細は、後に図8を用いて説明する。
ティア判定基準テーブル241は、どんなアクセス頻度のページ内のデータがどのティアに配置されるべきかを表す。このテーブル241の詳細は、後に図9を用いて説明する。
理想ティア管理テーブル242は、どのようなデータ配置が理想であるかを時点別に表す。具体的には、例えば、テーブル242は、どの仮想領域に割り当てられているページ内のデータがどの時刻でどのティアに配置されているのが理想であるかを表す。このテーブル242の詳細は、後に図10を用いて説明する。
再配置性能管理テーブル243は、再配置の方向と性能の関係を表す。このテーブル243の詳細は、後に図11を用いて説明する。
再配置時間管理テーブル244は、再配置方向とページ数と再配置にかかる時間との関係を時刻別に表す。このテーブル244の詳細は、後に図12を用いて説明する。
再配置開始時刻管理テーブル245は、どの時刻にどのページ内のデータをどのティアに配置するかを表す。このテーブル245の詳細は、後に図13を用いて説明する。
マッピングテーブル246は、どの仮想領域にどのページが割り当てられているかを表す。このテーブル246の詳細は、後に図23を用いて説明する。
プール管理テーブル247は、どのページがどのティアに含まれていてどのようなアクセス頻度であり使用中か未使用かを表す。このテーブル247の詳細は、後に図24を用いて説明する。
再び図2を参照する。
主メモリ214は、必要に応じて、不揮発メモリ230に記憶された各プログラム231〜236が読み込まれる。CPU213が、主メモリ214に読み込まれた各プログラム231〜236を実行することにより、後述する種々の処理が行われる。
キャッシュメモリ215は、ホスト計算機102から受信したデータおよびディスク222から読み出されたデータを一時的に記憶する。
ホストIF216は、通信線114、ネットワーク(1)111、通信線115を介してホスト計算機102に接続される。ホストIF216で、アクセスコマンド(ライトコマンド又はリードコマンド)が受信される。
管理IF207は、通信線117、ネットワーク(2)112、通信線116を介して管理計算機103に接続される。管理IF207は、例えばNIC(Network Interface Card)である。
ディスクIF218は、各ディスク222との間のデータ送受信を行う。ディスクIF218は、通信路221を介して各ディスク222にそれぞれ接続される。
ストレージ装置101の基本的動作を簡単に説明する。
ホスト計算機102からライトコマンドを受信した場合、制御装置211は、ホスト計算機102から受信したライトデータをキャッシュメモリ215に記憶する。制御装置211は、キャッシュメモリ215に記憶しているライトデータを、ディスクIF218を介してディスク222に書き込む。なお、制御装置211は、ライトデータをキャッシュメモリ215に記憶した時点で、ライトコマンドの処理が完了した旨をホスト計算機102に通知する構成でもよいし、或いは、ライトデータをディスク222に書き込んだ時点で、ライトコマンドの処理が完了した旨をホスト計算機102に通知する構成でもよい。
ホスト計算機102からリードコマンドを受信した場合、制御装置211は、そのリードコマンドに従うデータ(リード対象データ)がキャッシュメモリ215に記憶されているか否かを調べる。リード対象データがキャッシュメモリ215に記憶されている場合、制御装置211は、そのデータをキャッシュメモリ215から読み出し、ホストIF216を介してホスト計算機102に送信する。リード対象データがキャッシュメモリ215に記憶されていない場合は、制御装置211は、ディスクIF218を介して1以上のディスク222からリード対象データを読み出し、そのデータをキャッシュメモリ215に記憶する。そして、制御装置211は、キャッシュメモリ215に記憶されているリード対象データを、ホストIF216を介してホスト計算機102に送信する。
図3は、管理計算機103の構成を示す。
管理計算機103の構成は、一般的な構成と同じである。例えば、管理計算機103は、記憶資源と、通信インタフェース装置と、入力装置306と、出力装置307と、それらに接続されたCPU301とを有する。通信インタフェース装置は、管理IF308である。記憶資源は、例えば、主メモリ302及びディスク304を有する。CPU301、主メモリ302、ディスク304、ポインティング装置305、入力装置306、出力装置307および管理IF308は、バス303を介して相互に接続される。
入力装置306は、例えば、キーボードやポインティングデバイスである。
出力装置307は、例えば、表示装置である。
ディスク304は、UI(User Interface)制御プログラム311およびストレージ通信プログラム312を記憶する。
主メモリ302に、ディスク303からUI制御プログラム311およびストレージ通信プログラム312がロードされる。CPU301は、主メモリ302に記憶されたプログラムを実行することによって、UI制御処理およびストレージ通信処理を実行する。
UI制御プログラム311は、後述のページ再配置設定画面1400等の画面を出力装置307に表示する。また、UI制御プログラム311は、入力装置306を介して管理者(管理者以外のユーザでも良い)から入力された情報を主メモリ302に記憶する。
ストレージ通信プログラム312は、ネットワーク(2)112を介してストレージ装置101と通信する。例えば、このプログラム312は、管理者から入力された情報を必要に応じてストレージ装置101に送信する。
ホスト計算機102のハードウェア構成は、一般的な計算機と同じである。すなわち、ホスト計算機102は、通信インタフェース装置と、記憶資源と、それらに接続されたCPUとを有する。通信インタフェース装置としては、例えば、ネットワーク(1)111を介した通信を行うためのホストバスアダプタ(HBA)と、ネットワーク(3)113を介した通信を行うためのNICである。記憶資源は、例えば、メモリを有する。
図4は、業務とVVOLとページとの関係の概要を示す。
図4に示すように、本実施例では、業務は、OS411である。また、VVOL421があり、VVOL421が、複数の仮想領域424で構成されている。また、1つのプール430が、複数のティア431で構成されており、各ティア431が、複数のページ432で構成されている。以下、図4を用いた説明では、OS411として、OS1〜3があり、VVOLとして、VVOL100、VVOL200及びVVOL201があり、ティアとして、ティア0〜2があるとする。そして、ティアのID(番号)が若いほど、高性能であるとする。
図4によれば、別々のホスト計算機102にあるOS1およびOS2が、VVOL100を共有している。例えば、VVOL100内の仮想領域1〜20が、OS1からアクセス可能な範囲であり、VVOL100内の仮想領域21〜45が、OS2からアクセス可能な範囲である。
また別のホスト計算機102にあるOS3が、VVOL200及び201を使用している。OS3は、VVOL200及び201の全域(全ての仮想領域)にアクセス可能である。
例えば、VVOL100内の仮想領域21〜45の各々に、ティア2内のページ432が割り当てられている。例えば、仮想領域21内のデータは、実際には、仮想領域21に割り当てられているページに格納されている。そして、ページに格納されているデータは、実際には、ページの基になっている1以上のディスク222に格納されている。
プール430は、性能の異なるメディアで構成されているが、言い換えれば、プール430は、複数のティアを有する。上位のティア0が、高性能のメディアであり、中位のティア1が、中性能のメディアであり、下位のティア2が、低性能のメディアである。なお、ティアの数は、3段階に限らず、3段階より多くても少なくても良い。また、プール430は、複数個あっても良い。
図4によれば、VVOL100内の仮想領域1、2及び20について、データ再配置が行われた。具体的には、例えば、点線で示すように、VVOL100内の仮想領域1〜20の各々には、ティア2内のページ432が割り当てられていたが、データ再配置が行われたため、仮想領域20には、ティア2内のページ432に代えてティア1内のページ432が割り当てられ、仮想領域1及び2には、ティア2内のページ432に代えてティア0内のページ432が割り当てられた。本実施例では、業務単位(OS単位)で、ページ再配置を行うことができる。
以上が、業務とVVOLとページとの関係の概要の説明である。なお、業務としては、OSに代えて又は加えて、アプリケーションプログラム、仮想計算機、別のストレージ装置などの別種のアクセス元を採用することができる。
以下、ストレージ装置101の不揮発性メモリ230に記憶されている各テーブルを説明する。
図5は、業務管理テーブル237を示す。
業務管理テーブル237は、例えば、業務毎に、下記の情報を有する。
*業務ID501:業務(例えばゲストOS)のIDである。
*VVOL番号502:VVOLの識別番号である。
*VA番号503:仮想領域(VA)の識別番号である。仮想領域は、LBA(Logical Block Address)等で識別されてもよい。
*再配置タイプ504:どのような種類の再配置処理を行うかを表す。具体的には、再配置処理0〜3のいずれを行うかを表す。
*業務ID501:業務(例えばゲストOS)のIDである。
*VVOL番号502:VVOLの識別番号である。
*VA番号503:仮想領域(VA)の識別番号である。仮想領域は、LBA(Logical Block Address)等で識別されてもよい。
*再配置タイプ504:どのような種類の再配置処理を行うかを表す。具体的には、再配置処理0〜3のいずれを行うかを表す。
このテーブル237によれば、例えば、OS2がVVOL100の仮想領域21〜45にのみアクセス可能となっており、且つ、OS2がアクセス可能な仮想領域21〜45については再配置処理3が行われることがわかる。
図6は、ティア−メディア管理テーブル238を示す。
ティア−メディア管理テーブル238は、例えば、ティア毎に、下記の情報を有する。
*ティア番号:ティアの識別番号である。
*メディア種別:ティアを構成するメディアの種別を表す。
*ティア番号:ティアの識別番号である。
*メディア種別:ティアを構成するメディアの種別を表す。
このテーブル238によれば、ティア0が、SSDメディア(1以上のSSDに基づくメディア)であり、ティア1が、SASメディア(1以上のSAS−HDDに基づくメディア)であり、ティア2が、SATAメディア(1以上のSATA−HDDに基づくメディア)であることがわかる。
なお、本実施例で言う「メディア」とは、複数のページの集合である。
また、ティア−メディア管理テーブル238は、例えば、ストレージ装置101の不揮発性メモリ230に、ティアとメディアの関係を定義するプログラムが格納され、そのプログラムを実行するによって作成されてもよいし、或いは、例えば、管理計算機103からティアとメディアの関係を示す情報を受け取り、それをストレージ装置101が読み込むことで作成されてもよい。
図7は、実配置履歴管理テーブル239を示す。
実配置履歴管理テーブル239は、図7に示す通り、業務毎に存在する。1つのテーブル239は、例えば、時刻毎に、下記の情報を有する。
*時刻701:実配置が検出された時刻を表す情報である。
*VA番号702:仮想領域の識別番号である。
*ティア番号703:ティアの識別番号である。
*時刻701:実配置が検出された時刻を表す情報である。
*VA番号702:仮想領域の識別番号である。
*ティア番号703:ティアの識別番号である。
このテーブル239によれば、実配置は、定期的に(例えば5分おきに)検出される。また、このテーブル239によれば、2009/10/01/09/00(2009年10月1日の09時00分)の時点では、仮想領域2にはティア2内のページが割り当てられていたことがわかる。
テーブル239は、業務毎に用意されることに代えて、全ての業務に1つであっても良い。その場合、テーブル239は、前述の情報701〜703に加えて、例えば、業務IDを有する。
図8は、ページ性能管理テーブル240を示す。
ページ性能管理テーブル240は、図8に示す通り、業務毎に存在する。1つのテーブル240は、時間帯毎に、下記の情報を有する。
*時刻801:時間帯の開始時刻を表す。
*VA番号802:仮想領域の識別番号である。
*IOPS803:仮想領域に割り当てられているページのIOPS(IO Per Second)を表す。つまり、本実施例では、アクセス頻度の単位として、IOPSが採用されている。アクセス頻度の単位は、IOPSに限らず、単位時間当たりのアクセス数を表す他の単位であっても良い。また、アクセス頻度に限らず、他のアクセス負荷を表す情報(例えば、単位時間当たりにページとの間で送受信されたデータの量)が記録されても良い。
*時刻801:時間帯の開始時刻を表す。
*VA番号802:仮想領域の識別番号である。
*IOPS803:仮想領域に割り当てられているページのIOPS(IO Per Second)を表す。つまり、本実施例では、アクセス頻度の単位として、IOPSが採用されている。アクセス頻度の単位は、IOPSに限らず、単位時間当たりのアクセス数を表す他の単位であっても良い。また、アクセス頻度に限らず、他のアクセス負荷を表す情報(例えば、単位時間当たりにページとの間で送受信されたデータの量)が記録されても良い。
このテーブル240によれば、2009/10/01/09/00〜2009/10/01/09/05の時間帯(2009/10/01/09/05を含まない)において、仮想領域2に割り当てられているページのアクセス頻度が、25IOPSであることがわかる。
ページ性能管理テーブル240は、ページ性能測定プログラム233に従って、ページに対するアクセスに応じて更新される。例えば、2009年10月01日の09時02分に、OS1からのライトコマンドに応じて、仮想領域2に割り当てられているページにライトが生じた場合、ページ性能測定プログラム233が、2009年10月01日の09時02分が属する時間帯(2009/10/01/09/00〜2009/10/01/09/05)及び仮想領域2に対応したIOPS803を更新する。また、プログラム233は、テーブル240に記録されている最近の時間帯を過ぎた場合には、テーブル240に、新たな時間帯に対応した行を追加し、その行に、その新たな時間帯でのアクセス頻度を記録する。図8のテーブル240によれば、定期的に(例えば5分おきに)、行が追加される。なお、プログラム232は、テーブル240の行数があらかじめ決められた上限値に達した場合、一つ以上の行(例えば最も過去の時間帯に対応した行)を削除してもよい。
テーブル240は、業務毎に用意されることに代えて、全ての業務に1つであっても良い。その場合、テーブル240は、前述の情報801〜803に加えて、例えば、業務IDを有する。
図9は、ティア判定基準テーブル241を示す。
ティア判定基準テーブル241は、例えば、ティア毎に、下記の情報を有する。
*ティア番号901:ティアの識別番号である。
*ティア判定基準(IOPS)902:ティアに適したアクセス頻度範囲(IOPS範囲)を表す。なお、本実施例では、各ページのアクセス負荷としてアクセス頻度が測定されるため、ティア判定基準はアクセス頻度範囲で定義されるが、他種のアクセス負荷が測定される場合には、他種のアクセス負荷範囲でティア判定基準が定義されてもよい。
*ティア番号901:ティアの識別番号である。
*ティア判定基準(IOPS)902:ティアに適したアクセス頻度範囲(IOPS範囲)を表す。なお、本実施例では、各ページのアクセス負荷としてアクセス頻度が測定されるため、ティア判定基準はアクセス頻度範囲で定義されるが、他種のアクセス負荷が測定される場合には、他種のアクセス負荷範囲でティア判定基準が定義されてもよい。
このテーブル241によれば、アクセス頻度が10〜19IOPSに属するページ内のデータは、ティア1に配置されるべきであることがわかる。
なお、ティア判定基準テーブル241は、例えば、ストレージ装置101の不揮発性メモリ230に、ティアと、ティアの判定基準となる値の関係を定義するプログラムが格納され、そのプログラムを実行するによって作成されてもよいし、或は、例えば、管理計算機103からティアと、ティアの判定基準の関係を示す情報を受け取り、それをストレージ装置101が読み込むことで作成されてもよい。
図10は、理想ティア管理テーブル242を示す。
理想ティア管理テーブル242は、図10に示す通り、業務毎に存在する。1つのテーブル242は、時刻毎に、下記の情報を有する。
*時刻1001:時刻を表す。例えば、時刻1001は、時刻801が表す時刻における時及び分に対応する。
*VA番号1002:仮想領域の識別番号である。
*理想ティア1003:理想的なティアの識別番号である。
*時刻1001:時刻を表す。例えば、時刻1001は、時刻801が表す時刻における時及び分に対応する。
*VA番号1002:仮想領域の識別番号である。
*理想ティア1003:理想的なティアの識別番号である。
このテーブル242によれば、09時00分では、仮想領域2にティア0内のページが割り当てられていることが理想であることがわかる。
テーブル242は、業務毎に用意されることに代えて、全ての業務に1つであっても良い。その場合、テーブル242は、前述の情報1001〜1003に加えて、例えば、業務IDを有する。
図11は、再配置性能管理テーブル243を示す。
再配置性能管理テーブル243は、例えば、再配置方向毎に、下記の情報を有する。
*再配置方向1101:マイグレーション元のティア(メディア)とマイグレーション先のティアを表す情報である。つまり、本実施例において、「再配置方向」とは、どのティアからどのティアにデータがマイグレーションされるかを意味する。
*再配置性能1102:再配置の際の性能、具体的には、例えば、1つのページマイグレーションについてのデータ転送速度(単位時間当たりに転送されるデータの量(例えば、単位はMB/sec))である。なお、本実施例で言う「ページマイグレーション」とは、ページ間で行われるデータのマイグレーションのことである。
*再配置方向1101:マイグレーション元のティア(メディア)とマイグレーション先のティアを表す情報である。つまり、本実施例において、「再配置方向」とは、どのティアからどのティアにデータがマイグレーションされるかを意味する。
*再配置性能1102:再配置の際の性能、具体的には、例えば、1つのページマイグレーションについてのデータ転送速度(単位時間当たりに転送されるデータの量(例えば、単位はMB/sec))である。なお、本実施例で言う「ページマイグレーション」とは、ページ間で行われるデータのマイグレーションのことである。
このテーブル243によれば、ティア2(SATAメディア)からティア1(SASメディア)へのページマイグレーションの際の性能(データ転送速度)は、50MB/secであることがわかる。
なお、再配置性能管理テーブル243は、例えば、ストレージ装置101の不揮発性メモリ230に、再配置方向とその性能値を算出するプログラムが格納され、そのプログラムを実行するによって作成されてもよいし、或は、例えば、管理計算機103から再配置方向とその性能値の関係を示す情報を受け取り、それをストレージ装置101が読み込むことで作成されてもよい。
図12は、再配置時間管理テーブル244を示す。
再配置時間管理テーブル244は、例えば、時刻毎に、下記の情報を有する。
*時刻1201:ストレージ装置101が決定した時刻であって、再配置が完了すべき時刻を表す。
*再配置方向(UP)1202:再配置方向(UP)を表す。なお、「再配置方向(UP)」とは、データのマイグレーション元のメディアよりもデータのマイグレーション先のメディアの方が性能の高いことを意味する。それに対し、再配置方向(DOWN)は、データのマイグレーション元のメディアよりもデータのマイグレーション先のメディアの方が性能が低いことを意味する。テーブル244には、情報1202として、再配置方向(UP)に限らず再配置方向(DOWN)が記録されてもよいが、本実施例では、再配置方向(UP)のみが記録される。その理由は、このテーブル244は、後述の再配置処理3(ページのアクセス頻度が変わる前にそのページ内のデータを理想的なティアに自動でマイグレーションしておく処理)で利用されるが、ページのアクセス頻度が変わることの問題は、アクセス頻度が高くなることでアクセス性能の低下が生じる可能性があることにあり、アクセス頻度が低くなってもアクセス性能についての問題はないと考えられるからである。
*VA数1203:マイグレーション元のページが割り当てられている仮想領域の総数を表す。
*再配置時間(sec)1204:ストレージ装置101が算出した、再配置にかかる時間長(単位は秒)を表す。
*時刻1201:ストレージ装置101が決定した時刻であって、再配置が完了すべき時刻を表す。
*再配置方向(UP)1202:再配置方向(UP)を表す。なお、「再配置方向(UP)」とは、データのマイグレーション元のメディアよりもデータのマイグレーション先のメディアの方が性能の高いことを意味する。それに対し、再配置方向(DOWN)は、データのマイグレーション元のメディアよりもデータのマイグレーション先のメディアの方が性能が低いことを意味する。テーブル244には、情報1202として、再配置方向(UP)に限らず再配置方向(DOWN)が記録されてもよいが、本実施例では、再配置方向(UP)のみが記録される。その理由は、このテーブル244は、後述の再配置処理3(ページのアクセス頻度が変わる前にそのページ内のデータを理想的なティアに自動でマイグレーションしておく処理)で利用されるが、ページのアクセス頻度が変わることの問題は、アクセス頻度が高くなることでアクセス性能の低下が生じる可能性があることにあり、アクセス頻度が低くなってもアクセス性能についての問題はないと考えられるからである。
*VA数1203:マイグレーション元のページが割り当てられている仮想領域の総数を表す。
*再配置時間(sec)1204:ストレージ装置101が算出した、再配置にかかる時間長(単位は秒)を表す。
このテーブル244によれば、例えば、09時00分の時点で、ティア2内の20個のページからティア0内の20個のページへのデータのマイグレーション(つまり、20のページマイグレーション)が完了しているべきであって、その全てのページマイグレーションには600秒かかることがわかる。
図13は、再配置開始時刻管理テーブル245を示す。
再配置開始時刻管理テーブル245は、例えば、再配置毎に、下記の情報を有する。
*再配置開始時刻1301:ストレージ装置101が算出した、再配置を開始する時刻を表す。
*再配置方向1302:再配置方向を表す。
*VA番号1303:マイグレーション元のページが割り当てられている仮想領域の番号のリストである。
*再配置開始時刻1301:ストレージ装置101が算出した、再配置を開始する時刻を表す。
*再配置方向1302:再配置方向を表す。
*VA番号1303:マイグレーション元のページが割り当てられている仮想領域の番号のリストである。
このテーブル245によれば、08時50分に、ティア2からティア1への再配置を開始し、且つ、その再配置に関する対象の仮想領域は、仮想領域3、…、21、22及び23であることがわかる。つまり、仮想領域3、…、21、22及び23に割り当てられている全てのページ内のデータがマイグレーションされる。
また、このテーブル243と図12に示したテーブル244からわかるように、将来の或る時刻での理想的なデータ配置を実現するための再配置開始時刻は、再配置方向によっては、異なることがある。なぜなら、同一の時刻1201であっても、再配置方向1202によって、1つのページマイグレーションにかかると見込まれる時間長やVA番号1303にリストアップされている仮想領域の数が異なるために、再配置時間1204が異なることがある。
図23は、マッピングテーブル246を示す。
マッピングテーブル246は、例えば、仮想領域毎に、下記の情報を有する。
*VVOL番号2301:仮想領域を有するVVOLの識別番号。
*VA番号2302:仮想領域の識別番号。
*ティア番号2303:仮想領域に割り当てられているページを有するティアの識別番号。
*ページ番号2304:仮想領域に割り当てられているページの識別番号。
*VVOL番号2301:仮想領域を有するVVOLの識別番号。
*VA番号2302:仮想領域の識別番号。
*ティア番号2303:仮想領域に割り当てられているページを有するティアの識別番号。
*ページ番号2304:仮想領域に割り当てられているページの識別番号。
このテーブル246によれば、例えば、VVOL100内の仮想領域1にティア0内のページ001が割り当てられていることがわかる。また、このテーブル246によれば、例えば、VVOL100内の仮想領域3にいずれのページも割り当てられていないことがわかる(「N/A」は、Not Allocatedの略)。
図24は、プール管理テーブル247を示す。
プール管理テーブル247は、例えば、ページ毎に、下記の情報を有する。
*ティア番号2401:ページを有するティアの識別番号。
*ページ番号2402:ページの識別番号。
*ステータス2403:ページが使用中(割当て済み)か未使用(未割当て)かを表す。
*ティア番号2401:ページを有するティアの識別番号。
*ページ番号2402:ページの識別番号。
*ステータス2403:ページが使用中(割当て済み)か未使用(未割当て)かを表す。
このテーブル247によれば、例えば、ティア0内のページ001が使用中であることがわかる。また、このテーブル247によれば、例えば、ティア1内のページ200が未使用であることがわかる。
なお、図示しないが、ページと実際の格納位置との関連付けは、別途管理されている。例えば、RAIDグループを基に論理ボリューム(論理的な記憶デバイス)が形成され、メディアが1以上の論理ボリュームで構成され、各論理ボリュームは複数のページで構成されていて、且つ、どの論理ボリュームがどのRAIDグループのどのアドレス範囲に対応しているかが管理されているとする。この場合、論理ボリュームにおけるページの位置(アドレス)を基に、そのページに格納されるデータは、実際には、RAIDグループを構成する複数のディスク222のどこに格納されるかを算出することができる。
以上が、不揮発性メモリ230が記憶する各テーブルについての説明である。
以下、ストレージ装置101で行われるライト処理及びリード処理を説明する。ライト処理及びリード処理において、仮想領域に割り当てられているページにアクセスが生じた場合に、そのページのアクセス頻度が更新される。
<ライト処理>
(a1)ページ配置プログラム236は、ライトコマンドをホスト計算機102内の業務から受信する。
(a2)プログラム236は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。アクセス先情報は、アクセス先を表す情報であり、例えば、VVOLの番号と、仮想領域のLBAとを有する。
(a3)プログラム236は、ライトコマンドに従うライト対象のデータをキャッシュメモリ215に格納する。プログラム236は、この段階で、ホスト計算機102にライト完了を応答して良い。
(a4)プログラム236は、マッピングテーブル246を基に、上記(a2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、プログラム236は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ215内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、プログラム236は、プール管理テーブル247を基に、プール内の未使用ページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム236は、なるべく上位のティア内の未使用ページを特定して良い。
(a7)プログラム236は、上記(a6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム236は、マッピングテーブル246に、ライト先仮想領域に対応したティア番号2303及びページ番号2304として、割り当てたページを有するティアの番号とそのページの番号とを登録する。また、例えば、プログラム236は、プール管理テーブル247に、割り当てたページに対応するステータス2403として、「使用中」を登録する。
(a8)プログラム236は、上記(a6)で特定したページに、キャッシュメモリ215内のライト対象のデータを書き込む(プログラム236は、この段階で、ホスト計算機102にライト完了を応答して良い)。
(a9)ページ性能測定プログラム233は、上記(a5)又は(a8)において、ライトコマンドの送信元の業務に対応したページ性能管理テーブル240における、ライト先仮想領域に対応したIOPS803を更新する。
(a1)ページ配置プログラム236は、ライトコマンドをホスト計算機102内の業務から受信する。
(a2)プログラム236は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。アクセス先情報は、アクセス先を表す情報であり、例えば、VVOLの番号と、仮想領域のLBAとを有する。
(a3)プログラム236は、ライトコマンドに従うライト対象のデータをキャッシュメモリ215に格納する。プログラム236は、この段階で、ホスト計算機102にライト完了を応答して良い。
(a4)プログラム236は、マッピングテーブル246を基に、上記(a2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、プログラム236は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ215内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、プログラム236は、プール管理テーブル247を基に、プール内の未使用ページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム236は、なるべく上位のティア内の未使用ページを特定して良い。
(a7)プログラム236は、上記(a6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム236は、マッピングテーブル246に、ライト先仮想領域に対応したティア番号2303及びページ番号2304として、割り当てたページを有するティアの番号とそのページの番号とを登録する。また、例えば、プログラム236は、プール管理テーブル247に、割り当てたページに対応するステータス2403として、「使用中」を登録する。
(a8)プログラム236は、上記(a6)で特定したページに、キャッシュメモリ215内のライト対象のデータを書き込む(プログラム236は、この段階で、ホスト計算機102にライト完了を応答して良い)。
(a9)ページ性能測定プログラム233は、上記(a5)又は(a8)において、ライトコマンドの送信元の業務に対応したページ性能管理テーブル240における、ライト先仮想領域に対応したIOPS803を更新する。
<リード処理>
(b1)ページ配置プログラム236は、リードコマンドをホスト計算機102内の業務から受信する。
(b2)プログラム236は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(b3)プログラム236が、リード対象のデータがキャッシュメモリ215に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、プログラム236は、キャッシュメモリ215内のリード対象データを、ホスト計算機102に送信する。この場合、リード元仮想領域に割り当てられているページのIOPS803(リードコマンドの送信元の業務に対応したテーブル240におけるIOPS803)は、更新されない。
(b5)上記(b3)の判断の結果が否定的の場合、プログラム236は、マッピングテーブル236を基に、上記(b2)で特定されたリード元仮想領域にページが割り当てられているかを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、プログラム236は、所定のデータ(例えばエラー)をホスト計算機102内の業務に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、プログラム236は、リード元仮想領域に割り当てられているページからデータを読み出し、そのデータをキャッシュメモリ215に書き込む。そして、プログラム236は、キャッシュメモリ215内のそのデータをホスト計算機102内の業務に送信する。
(b8)ページ性能測定プログラム233は、上記(b6)において、リードコマンドの送信元の業務に対応したページ性能管理テーブル240における、リード元仮想領域に対応したIOPS803を更新する。
(b1)ページ配置プログラム236は、リードコマンドをホスト計算機102内の業務から受信する。
(b2)プログラム236は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(b3)プログラム236が、リード対象のデータがキャッシュメモリ215に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、プログラム236は、キャッシュメモリ215内のリード対象データを、ホスト計算機102に送信する。この場合、リード元仮想領域に割り当てられているページのIOPS803(リードコマンドの送信元の業務に対応したテーブル240におけるIOPS803)は、更新されない。
(b5)上記(b3)の判断の結果が否定的の場合、プログラム236は、マッピングテーブル236を基に、上記(b2)で特定されたリード元仮想領域にページが割り当てられているかを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、プログラム236は、所定のデータ(例えばエラー)をホスト計算機102内の業務に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、プログラム236は、リード元仮想領域に割り当てられているページからデータを読み出し、そのデータをキャッシュメモリ215に書き込む。そして、プログラム236は、キャッシュメモリ215内のそのデータをホスト計算機102内の業務に送信する。
(b8)ページ性能測定プログラム233は、上記(b6)において、リードコマンドの送信元の業務に対応したページ性能管理テーブル240における、リード元仮想領域に対応したIOPS803を更新する。
前述したように、本実施例では、再配置処理0、1、2及び3の4種類の再配置処理が行われる。再配置処理0〜3のうちのどの再配置処理を行うかは、管理者が予め決めて設定しておくことができる。
再配置処理0は、ページのアクセス頻度がそのページを有するメディアに対応したアクセス頻度範囲に属していないこと(データの配置が不適切であること)が検出された場合に、そのページ内のデータを、そのページのアクセス頻度が属するアクセス頻度範囲に対応したメディア内のページにマイグレーションする処理である。
再配置処理1は、過去の実配置の履歴を基に、管理者所望の時刻(或いはその時刻が属する時間帯)でのデータ配置を復元する処理である。
再配置処理2は、過去のアクセス頻度の履歴を基に、管理者所望の時刻(或いはその時刻が属する時間帯)で理想的なデータ配置を実現する処理である。
再配置処理3は、再配置方向(UP)及び再配置方向(DOWN)のうち再配置方向(UP)についてのみ行われる。すなわち、再配置処理3は、ページのアクセス頻度が高くなる前にそのページ内のデータを性能のより高いティアに自動でマイグレーションしておく処理である。再配置方向(DOWN)については、再配置処理3は行われず、例えば再配置処理0が行われる。これにより、データのマイグレーションが行われる頻度(ストレージ装置101の負荷)と、アクセス頻度が高くなったが故にアクセス性能が低下する可能性との両方を抑えることができる。変形例として、再配置方向(DOWN)についても、再配置処理3が適用されてもよい。すなわち、ページのアクセス頻度が低くなる前にそのページ内のデータがより性能の低いティアに自動でマイグレーションされても良い。
再配置処理0〜3のうちのどの再配置処理を行うかの設定には、例えば、図14に示す画面が利用される。
図14は、管理計算機103で表示されるページ再配置設定画面1400を示す。
この画面1400は、UI制御プログラム311によって出力装置307に表示される。この画面1400は、例えば、選択ボタン1410、1412、1414、1420、1421と、選択バー1411と、入力部1413、1415と、ボタン1431、1432とを有する。
選択ボタン1410および1420は、管理者にストレージ装置101がページを再配置する方法を選択させるためのものである。
選択ボタン1410の指定型配置は、管理者が、ストレージ装置101に対して、再配置する業務IDや時刻を指定する場合に選択される。
一方、選択ボタン1420の自動型配置は、管理者が、ストレージ装置101に対して再配置の指示を行わずに、ストレージ装置101が単独で動作する場合に選択される。
管理者が、選択ボタン1410を選択した場合は、選択バー1411〜入力部1415を選択および入力できるが、選択ボタン1420を選択した場合は、選択バー1411〜入力部1415を選択および入力ができない。
選択バー1411は、管理者に設定の対象となる業務を選択させるためのものである。
選択ボタン1412および1414は、管理者に、ストレージ装置101がどの情報を基にページを再配置するかを選択させるためのボタン(つまり、再配置処理1及び2のどちらを選択するかを指定するためのボタン)である。
選択ボタン1412の実配置を基にした再配置は、管理者が、ある時点のページ配置に戻す場合に選択される。
選択ボタン1414の性能モニタを基にした再配置は、管理者が、ある時点のページ配置を、ストレージ装置101が理想ティア管理テーブル242に基づいて動作させる場合に選択される。
入力部1413は、管理者に、ティア配置を戻したい時刻を指定させるためのものである。
入力部1415は、管理者に、理想的なティア配置にしたい時刻を指定させるためのものである。
ボタン1431は、管理者によって画面1400に入力された情報を確定させるためのものである。
ボタン1432は、管理者によって画面1400に入力された情報を取り消すためのものである。
本実施例では、業務毎に、例えば、下記のように、再配置処理0〜3のうちのいずれの再配置処理を行うかを選択することができる。
*再配置処理0〜3のうち再配置処理0だけが行われるようにするためには、管理者は、「通常配置」を選択する。
*再配置処理1が行われるようにするためには、管理者は、「指定型配置」と、「実配置を基にした配置」とを選択する。
*再配置処理2が行われるようにするためには、管理者は、「指定型配置」と、「性能モニタ情報を基にした配置」とを選択する。
*再配置処理3が行われるようにするためには、管理者は、「自動型配置」を選択する。
*再配置処理0〜3のうち再配置処理0だけが行われるようにするためには、管理者は、「通常配置」を選択する。
*再配置処理1が行われるようにするためには、管理者は、「指定型配置」と、「実配置を基にした配置」とを選択する。
*再配置処理2が行われるようにするためには、管理者は、「指定型配置」と、「性能モニタ情報を基にした配置」とを選択する。
*再配置処理3が行われるようにするためには、管理者は、「自動型配置」を選択する。
画面1400は、図14に示す構成に限らない。例えば、選択ボタン(ラジオボタン)や選択バー(プルダウンメニュー)等に代えて又は加えて、別種の入力ツールが採用されても良い。
ストレージ通信プログラム312は、管理者によって選択および入力された設定情報(画面1400を介して指定された情報)をストレージ装置101に送信する。ストレージ装置101のCPU213(業務管理プログラム231)は、管理計算機103から受信した設定情報を、業務管理テーブル237に登録し、再配置処理の選択処理を実行する。
以下、本実施例で行われる種々の処理を詳細に説明する。
<再配置処理の選択処理>。
図15は、再配置処理の選択処理を示すフローチャートである。以下の各フローチャートでも同様であるが、各フローチャートは、本発明の理解および実施に必要な範囲で、各処理の概要を示すが、処理の順序は、図示の順序に限定されなくて良い。なお、以下の説明ではステップを「S」と略記する。
この選択処理は、業務毎に行われる。以下、1つの業務を例に採る(図15の説明において、「対象業務」と言う)。
業務管理プログラム231は、管理計算機103から受信した設定情報に、「通常配置」が選択されたことを意味する情報が含まれているか否かを判断する(S1510)。
S1510の判断の結果が肯定的であれば(S1510:YES)、プログラム231は、業務管理テーブル237における、対象業務のIDを含んだ行に、再配置タイプ504として、再配置処理0を表す情報を登録する(S1511)。
S1510の判断の結果が否定的であれば(S1510:NO)、プログラム231は、「指定型配置」が選択されたことを意味する情報が上記設定情報に含まれているか否かを判断する(S1513)。
S1513の判断の結果が否定的であれば(S1513:NO)、プログラム231は、業務管理テーブル237における、対象業務のIDを含んだ行に、再配置タイプ504として、再配置処理3を表す情報を登録する(S1517)。
S1513の判断の結果が肯定的であれば(S1513:YES)、プログラム231は、「実配置を基にした配置」が選択されたことを意味する情報が上記設定情報に含まれているか否かを判断する(S1514)。
S1514の判断の結果が肯定的であれば(S1514:YES)、プログラム231は、業務管理テーブル237における、対象業務のIDを含んだ行に、再配置タイプ504として、再配置処理1と指定された時刻とを表す情報を登録する(S1515)。
S1514の判断の結果が否定的であれば(S1514:NO)、プログラム231は、業務管理テーブル237における、対象業務のIDを含んだ行に、再配置タイプ504として、再配置処理2と指定された時刻とを表す情報を登録する(S1516)。
<再配置処理0〜3におけるページマイグレーション>。
再配置処理0〜3のいずれでも、ページマイグレーションが行われるが、ページマイグレーションの詳細は、次の通りである。
*ページ配置プログラム236が、マイグレーション元のページから、そのマイグレーション元のページを有するティアとは別のティア内の任意の未使用ページ(マイグレーション先のページ)に、データをマイグレーションする。
*プログラム236が、マイグレーション元のページに割り当てられている仮想領域(以下、対象仮想領域)に、マイグレーション元のページに代えて、マイグレーション先のページを割り当てる。具体的には、例えば、プログラム236は、マッピングテーブル246において、対象仮想領域の番号2302に対応したティア番号2303及びページ番号2304を、マイグレーション元のティア及びページの番号に代えて、マイグレーション先のティア及びページの番号に更新する。また、プログラム236は、ページ管理テーブル241において、マイグレーション元のページに対応したステータス2403を「未使用」に更新し、且つ、マイグレーション先のページに対応したステータス2403を「使用中」に更新する。
*ページ配置プログラム236が、マイグレーション元のページから、そのマイグレーション元のページを有するティアとは別のティア内の任意の未使用ページ(マイグレーション先のページ)に、データをマイグレーションする。
*プログラム236が、マイグレーション元のページに割り当てられている仮想領域(以下、対象仮想領域)に、マイグレーション元のページに代えて、マイグレーション先のページを割り当てる。具体的には、例えば、プログラム236は、マッピングテーブル246において、対象仮想領域の番号2302に対応したティア番号2303及びページ番号2304を、マイグレーション元のティア及びページの番号に代えて、マイグレーション先のティア及びページの番号に更新する。また、プログラム236は、ページ管理テーブル241において、マイグレーション元のページに対応したステータス2403を「未使用」に更新し、且つ、マイグレーション先のページに対応したステータス2403を「使用中」に更新する。
なお、そのページマイグレーションの後に、例えば、マイグレーション先のページに対してアクセスが行われた場合には、ページ性能管理テーブル240における、対象仮想領域に対応したIOPS803が表す値が増加する。
<再配置処理0に関する処理>。
<<再配置処理0の実行契機の判断>>
ページ配置プログラム236は、再配置処理0を行うことに対応した業務について、再配置処理0を行うが、再配置処理0の実行契機か否かを判断する。具体的には、例えば、プログラム236は、ページ性能管理テーブル240と、ティア判定基準テーブル241とを基に、不適切なティアに配置されているデータを記憶したページがあるか否かを判断する。より具体的には、例えば、プログラム236は、ティアに対応したアクセス頻度範囲に属していないアクセス頻度のページがそのティアにあるか否かを判断する。
ページ配置プログラム236は、再配置処理0を行うことに対応した業務について、再配置処理0を行うが、再配置処理0の実行契機か否かを判断する。具体的には、例えば、プログラム236は、ページ性能管理テーブル240と、ティア判定基準テーブル241とを基に、不適切なティアに配置されているデータを記憶したページがあるか否かを判断する。より具体的には、例えば、プログラム236は、ティアに対応したアクセス頻度範囲に属していないアクセス頻度のページがそのティアにあるか否かを判断する。
<<再配置処理0>>
プログラム236は、上記の実行契機の判断の結果が肯定的の場合に、プログラム236は、再配置処理0を行う。すなわち、プログラム236は、マイグレーション元のページ内のデータを、そのページのアクセス頻度が属するアクセス頻度範囲に対応したティア内の未使用ページにマイグレーションするページマイグレーションを行う。
プログラム236は、上記の実行契機の判断の結果が肯定的の場合に、プログラム236は、再配置処理0を行う。すなわち、プログラム236は、マイグレーション元のページ内のデータを、そのページのアクセス頻度が属するアクセス頻度範囲に対応したティア内の未使用ページにマイグレーションするページマイグレーションを行う。
<再配置処理1に関わる処理>。
<<ティア監視処理>>。
再配置処理1に関わる処理として、ティア監視処理がある。ティア監視処理では、実配置が特定され、実配置履歴管理テーブル239が更新される。ティア監視処理は、再配置処理1を行うことが選択されている業務についてのみ行われてもよいし、再配置処理1を行うことが選択されていない業務についても行われてもよい。
図16は、ティア監視処理を示すフローチャートである。
ティア監視処理は、定期的に(本実施例では5分間隔で)開始される。
ティア監視プログラム232が、業務管理テーブル237及びマッピングテーブル246を基に、どの業務についてのどの仮想領域にどのティア内のページが割り当てられているかを検出する(S1610)。
プログラム232は、S1610の検出結果を基に、実配置履歴管理テーブル239を更新する。具体的には、例えば、プログラム232は、2009/10/01/08/55に開始したティア監視処理において、時刻「2009/10/01/08/55」に対応した行を、各業務に対応したテーブル239に追加する。また、プログラム232は、例えば、VVOL100の仮想領域1にティア2内のページが割り当てられていることを特定した場合には、OS1の実配置履歴管理テーブル239における、時刻「2009/10/01/08/55」に対応した欄に、VA番号「1」とティア番号「2」とを登録する。
なお、プログラム232は、実配置履歴管理テーブル239の行数があらかじめ決められた上限値に達した場合、一つ以上の行(例えば最も過去の時刻に対応した行)を削除してもよい。
<再配置処理1>。
図17は、再配置処理1を示すフローチャートである。
再配置処理1は、再配置処理1を行うことが業務管理テーブル237上で対応付けられている業務(以下、図17の説明において「対象業務」と言う)について、対象業務に対応した指定時刻(管理者から指定された時刻)に現在時刻が達していることが検出された場合に、開始される。なお、再配置処理1が行われない間は、例えば定期的に再配置処理0の実行契機か否かが判断されて良い。
ページ配置プログラム236が、対象業務に対応した実配置履歴管理テーブル239から、指定時刻にマッチするVA番号702及びティア番号703を抽出する(S1710)。
S1710で抽出された各番号セット(VA番号702とティア番号703とのセット)について、プログラム236は、次のS1711を行う。
S1711で、プログラム236は、ページマイグレーションが必要か否かを判断する。具体的には、例えば、プログラム236は、VA番号702が表す仮想領域に現在割り当てられているページを有するティア(マッピングテーブル246から特定されるティア)と、ティア番号703が表すティアとが異なるか否かを判断する。異なる場合には、ページマイグレーションが必要であり、同じ場合には、ページマイグレーションは不要である。
S1711の判断の結果が否定的の場合に(S1711:NO)、プログラム236は、S1714を行う。
S1711の判断の結果が肯定的の場合に(S1711:YES)、プログラム236は、ティア−メディア管理テーブル238を基に、ティア番号702が表すティアに対応したメディア種別を特定する(S1712)。
S1713で、プログラム236は、ページマイグレーションを行う。このページマイグレーションでは、マイグレーション元のページは、VA番号702に割り当てられているページ(マッピングテーブル246から特定されるページ)であり、マイグレーション先のページは、ティア番号703が表すティア内の任意の未使用ページ(プール管理テーブル247から特定されたページ)である。
S1710で抽出された全ての番号セットについてS1711が行われていなければ(S1714:NO)、S1711が行われていない番号セットについて、プログラム236は、S1711を行う。一方、S1710で抽出された全ての番号セットについてS1711が行われていれば(S1714:YES)、プログラム236は、この処理は終了する。
<再配置処理2に関わる処理>。
再配置処理2に関わる処理として、理想ティア判定処理がある。理想ティア判定処理では、アクセス頻度の履歴に基づくトレンドに従って理想ティア管理テーブル242が作成される。理想ティア判定処理は、再配置処理2を行うことが選択されている業務についてのみ行われてもよいし、再配置処理2を行うことが選択されていない業務についても行われてもよい。
<<理想ティア判定処理>>。
図18は、理想ティア判定処理を示すフローチャートである。
理想ティア判定プログラム234が、ページ性能管理テーブル240から性能変動の規則性(性能トレンド)を特定し、その規則性を表すモデル(性能トレンド情報)を作成する(S1810)。性能トレンド情報は、例えば、過去一定期間(例えば1週間)分の各時間帯(例えば5分間隔)での仮想領域毎のアクセス頻度の平均を表す情報である。性能トレンド情報の一例であるテーブルを図25に示す。このテーブル2500は、OS毎にあり、時刻2501毎に、VA番号2502と平均IOPS2503とを有する。
次に、プログラム234は、性能トレンド情報と、ティア判定基準テーブル241とを基に、時刻および仮想領域毎に最適なティアを判定し、その判定結果を理想ティア管理テーブル242に登録する(S1811)。例えば、図25に示したテーブルにおいて、OS1、VVOL100、時刻08時55分、及び仮想領域1に対応したIOPSが25なので、仮想領域1内のデータが格納されるページは、25IOPSが属するアクセス頻度範囲に対応したティア0内にあることが理想であると判定され、その判定の結果が、図10に示すように、OS1の理想ティア管理テーブル242に登録される。
なお、プログラム234は、理想ティア管理テーブル242の行数があらかじめ決められた上限値に達した場合、一つ以上の行を削除してもよい。
<<再配置処理2>>。
図19は、再配置処理2を示すフローチャートである。
再配置処理2は、再配置処理2を行うことが業務管理テーブル237上で対応付けられている業務(以下、図19の説明において「対象業務」と言う)について、対象業務に対応した指定時刻(管理者から指定された時刻)に現在時刻が達していることが検出された場合に、開始される。なお、再配置処理2が行われない間は、例えば定期的に再配置処理0の実行契機か否かが判断されて良い。
ページ配置プログラム236が、対象業務に対応した理想ティア管理テーブル242から、指定時刻にマッチするVA番号1002及びティア番号1003を抽出する(S1910)。
S1910で抽出された各番号セット(VA番号1002とティア番号1003とのセット)について、プログラム236は、次のS1911を行う。
S1911で、プログラム236は、ページマイグレーションが必要か否かを判断する。具体的には、例えば、プログラム236は、VA番号1002が表す仮想領域に現在割り当てられているページを有するティア(マッピングテーブル246から特定されるティア)と、ティア番号1003が表すティアとが異なるか否かを判断する。異なる場合には、ページマイグレーションが必要であり、同じ場合には、ページマイグレーションは不要である。
S1911の判断の結果が否定的の場合に(S1911:NO)、プログラム236は、S1914を行う。
S1911の判断の結果が肯定的の場合に(S1911:YES)、プログラム236は、ティア−メディア管理テーブル238を基に、ティア番号1002が表すティアに対応したメディア種別を特定する(S1912)。
S1913で、プログラム236は、ページマイグレーションを行う。このページマイグレーションでは、マイグレーション元のページは、VA番号1002に割り当てられているページ(マッピングテーブル246から特定されるページ)であり、マイグレーション先のページは、ティア番号1003が表すティア内の任意の未使用ページ(プール管理テーブル247から特定されたページ)である。
S1910で抽出された全ての番号セットについてS1911が行われていなければ(S1914:NO)、S1911が行われていない番号セットについて、プログラム236は、S1911を行う。一方、S1910で抽出された全ての番号セットについてS1911が行われていれば(S1914:YES)、プログラム236は、この処理は終了する。
<再配置処理3に関わる処理>。
再配置処理3に関わる処理として、前述した理想ティア判定処理と、後述の再配置開始時刻算出処理とがある。再配置開始時刻算出処理では、理想ティア管理テーブル242と実配置性能管理テーブル243とを基に、時刻及び再配置方向(UP)毎に再配置開始時刻が算出される。再配置開始時刻算出処理は、再配置処理3を行うことが選択されている業務についてのみ行われてもよいし、再配置処理3を行うことが選択されていない業務についても行われてもよい。
図20は、再配置開始時刻算出処理を示すフローチャートである。
再配置開始時刻算出処理は、例えば、定期的に開始される。
再配置開始時刻管理プログラム236は、理想ティア管理テーブル242とマッピングテーブル246とを基に、時刻毎に、現在のティアよりも理想ティアの方が上位である仮想領域の数をカウントする(S2010)。具体的には、例えば、下記の処理が行われる。
*プログラム236は、マッピングテーブル246を基に、各仮想領域に対応する現在のティアを特定する。
*プログラム236は、理想ティア管理テーブル242を基に、各仮想領域に対応する理想のティアを、時刻1001別に特定する(S2010)。
*プログラム236は、各時刻1001について、理想ティアの方が現在のティアよりも高い仮想領域の数をカウントする。その際、仮想領域の数は、再配置方向(UP)の種類別にカウントされる。例えば、現在のティアがティア2で理想ティアがティア1に対応した仮想領域は、再配置方向(UP)「2→1」についてカウントされ、現在のティアがティア2で理想ティアがティア0に対応した仮想領域は、再配置方向(UP)「2→0」についてカウントされる。
*プログラム236は、マッピングテーブル246を基に、各仮想領域に対応する現在のティアを特定する。
*プログラム236は、理想ティア管理テーブル242を基に、各仮想領域に対応する理想のティアを、時刻1001別に特定する(S2010)。
*プログラム236は、各時刻1001について、理想ティアの方が現在のティアよりも高い仮想領域の数をカウントする。その際、仮想領域の数は、再配置方向(UP)の種類別にカウントされる。例えば、現在のティアがティア2で理想ティアがティア1に対応した仮想領域は、再配置方向(UP)「2→1」についてカウントされ、現在のティアがティア2で理想ティアがティア0に対応した仮想領域は、再配置方向(UP)「2→0」についてカウントされる。
次に、プログラム236は、再配置性能管理テーブル243を基に、時刻及び再配置方向(UP)毎に、再配置時間を算出する(S2011)。ここで、例えば、1つの再配置方向(UP)についての再配置時間(秒)は、下記の式で算出される。
再配置時間(秒)={(カウントされた仮想領域の数(言い換えれば、マイグレーション元になるページの数))×(1つのページのサイズ)}/(再配置方向(UP)に対応した再配置性能1102が表す値)。
次に、プログラム236は、再配置時間管理テーブル244に、時刻1201及び再配置方向(UP)1202を登録し、且つ、時刻1201及び再配置方向(UP)毎に、カウントされた仮想領域の数(VA数)1203と、算出された再配置時間1204とを、テーブル244に登録する(S2012)。
次に、プログラム236は、再配置開始時刻管理テーブル245を作成する(S2013)。具体的には、例えば、下記の処理が行われる。
*プログラム236は、各時刻1201について、再配置方向(UP)1202毎に、時刻1201が表す時刻から再配置時間1204が表す時間分過去に遡った時刻である再配置開始時刻1301を算出する。
*プログラム236は、再配置方向1302と再配置開始時刻1301との各セットを、テーブル245に登録する。
*プログラム236は、再配置方向1302及び再配置開始時刻1301毎に、VA番号245を登録する。VA番号245は、再配置処理3の対象となる仮想領域の番号のリストである。この仮想領域の番号は、S2010でカウントされた仮想領域の番号である。
*プログラム236は、各時刻1201について、再配置方向(UP)1202毎に、時刻1201が表す時刻から再配置時間1204が表す時間分過去に遡った時刻である再配置開始時刻1301を算出する。
*プログラム236は、再配置方向1302と再配置開始時刻1301との各セットを、テーブル245に登録する。
*プログラム236は、再配置方向1302及び再配置開始時刻1301毎に、VA番号245を登録する。VA番号245は、再配置処理3の対象となる仮想領域の番号のリストである。この仮想領域の番号は、S2010でカウントされた仮想領域の番号である。
<再配置処理3>。
図21は、再配置処理3を示すフローチャートである。
再配置処理3は、再配置処理3を行うことが業務管理テーブル237上で対応付けられている業務(以下、図21の説明において「対象業務」と言う)について、定期的に開始される。この処理が開始される時間間隔は、例えば、理想ティア管理テーブル242に記録される時刻1001の間隔(図10によれば5分間隔)より短い。
ページ配置プログラム236が、再配置開始時刻管理テーブル245において最も早い再配置開始時刻1301が表す時刻に現在の時刻が達しているか否かを判断する(S2111)。
S2111の判断の結果が肯定的の場合(S2111:YES)、プログラム236は、上記の最も早い再配置開始時刻1301に対応したVA番号1303が表す各仮想領域について、ページマイグレーションを行う。各ページマイグレーションでは、マイグレーション元のページは、VA番号1303が表す仮想領域に割り当てられているページ(マッピングテーブル246から特定されるページ)であり、マイグレーション先のページは、上記の最も早い再配置開始時刻1301に対応した再配置方向1302に従うマイグレーション先ティア内の任意の未使用ページ(プール管理テーブル247から特定されるページ)である。上記の最も早い再配置開始時刻1301について全てのページマイグレーションが完了した場合、プログラム236は、再配置開始時刻管理テーブル245から、その開始時刻1301に対応した行を削除する。これにより、次に早い再配置開始時刻1301が、最も早い再配置開始時刻1301となる。
以上が、再配置処理3についての説明である。
なお、再配置処理3が行われない間、及び/又は、S2111の判断の結果が否定的の場合は、例えば再配置処理0の実行契機か否かが判断されて良い。
また、再配置処理3を行うことが選択された業務について、再配置方向1302毎に、例えば、下記の処理が行われてよい。
(処理A)再配置開始時刻算出処理が開始されてから、再配置方向1302に対応したページマイグレーションが完了するまでの間は、そのページマイグレーションに関わる仮想領域については、再配置処理0が行われなくて良い。その間に再配置処理0が行われると、その仮想領域には、再配置方向1302が表すマイグレーション元のティアとは異なるティア内のページが割り当てられることになるからである。例えば、図13に示す、再配置開始時刻1301「08:50」及び再配置方向1302「2→0」に対応した仮想領域1について述べる。8時50分になる前に、仮想領域1に割り当てられているページのアクセス頻度が、ティア2のアクセス頻度範囲に属さなくなっても(再配置処理0の実行契機になっても)、仮想領域1について再配置処理0が行われなくて良い。
(処理B)再配置開始時刻算出処理が開始されてから、再配置方向1302に対応したページマイグレーションが完了するまでの間に、そのページマイグレーションに関わる仮想領域についてのアクセス頻度が、その仮想領域に割り当てられているページを有するティアに対応したアクセス頻度範囲に属さなくなった場合には(再配置処理0の実行契機になった場合には)、その仮想領域については、再配置開始時刻1301になっていなくても、再配置方向1302に従うマイグレーション先ティアへのページマイグレーションが行われて良い。この場合、そのページマイグレーションが済んだ仮想領域の番号は、VA番号1303から除去されて良い。
(処理A)再配置開始時刻算出処理が開始されてから、再配置方向1302に対応したページマイグレーションが完了するまでの間は、そのページマイグレーションに関わる仮想領域については、再配置処理0が行われなくて良い。その間に再配置処理0が行われると、その仮想領域には、再配置方向1302が表すマイグレーション元のティアとは異なるティア内のページが割り当てられることになるからである。例えば、図13に示す、再配置開始時刻1301「08:50」及び再配置方向1302「2→0」に対応した仮想領域1について述べる。8時50分になる前に、仮想領域1に割り当てられているページのアクセス頻度が、ティア2のアクセス頻度範囲に属さなくなっても(再配置処理0の実行契機になっても)、仮想領域1について再配置処理0が行われなくて良い。
(処理B)再配置開始時刻算出処理が開始されてから、再配置方向1302に対応したページマイグレーションが完了するまでの間に、そのページマイグレーションに関わる仮想領域についてのアクセス頻度が、その仮想領域に割り当てられているページを有するティアに対応したアクセス頻度範囲に属さなくなった場合には(再配置処理0の実行契機になった場合には)、その仮想領域については、再配置開始時刻1301になっていなくても、再配置方向1302に従うマイグレーション先ティアへのページマイグレーションが行われて良い。この場合、そのページマイグレーションが済んだ仮想領域の番号は、VA番号1303から除去されて良い。
以上が、本実施例についての説明である。
再配置処理1によれば、管理者所望の時刻(指定時刻)が属する時間帯における過去の時刻のデータ配置が、管理者所望の業務(指定業務)について、指定時刻に復元開始される。このため、指定時刻の後にアクセス頻度が変わるよりも前に(例えば、指定業務が活性化することでアクセス頻度が高くなるよりも前に)、変化後のアクセス頻度に適したデータ配置が実現されることが期待できる。
再配置処理2によれば、指定時刻が属する時間帯での理想的なデータ配置を実現するためのマイグレーション処理が、指定時刻に開始される。このため、指定時刻の後にアクセス頻度が変わるよりも前に、変化後のアクセス頻度に適したデータ配置が実現されることが期待できる。
再配置処理3によれば、理想的なデータ配置が所定の時刻に実現されているようにするために、所定の時刻よりも早い時刻に、理想的なデータ配置を実現するためのマイグレーション処理が開始される。これにより、アクセス頻度が変わるよりも前に変化後のアクセス頻度に適したデータ配置が実現されることの可能性がより高まる。
以上、本発明の実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、再配置処理1についての指定時刻(管理者が指定した時刻)から一定時間前に、再配置開始時刻算出処理が行われても良い。この場合、再配置処理1が、指定時刻ではなく再配置開始時刻に開始されて良い。これにより、指定時刻の時点では、指定時刻と同じ時刻での実配置が復元されても良い。なお、再配置処理1を行うことになっている或る業務について、再配置開始時刻算出処理が開始されてから、再配置処理1が完了するまでの間について、再配置処理3について述べた上記(処理A)又は(処理B)のいずれかが適用されて良い。また、再配置開始時刻算出処理、及び、指定時刻より早い時刻でのマイグレーション開始は、再配置方向(UP)についてのみ行われても良い。再配置方向(DOWN)については、指定時刻になったときにマイグレーションが開始されても良い。
また、例えば、再配置処理2についての指定時刻(管理者が指定した時刻)から一定時間前に、再配置開始時刻算出処理が行われても良い。この場合、再配置処理2が、指定時刻ではなく再配置開始時刻に開始されて良い。これにより、指定時刻の時点では、指定時刻と同じ時刻での理想的なデータ配置が実現されても良い。なお、再配置処理2を行うことになっている或る業務について、再配置開始時刻算出処理が開始されてから、再配置処理2が完了するまでの間について、再配置処理3について述べた上記(処理A)又は(処理B)のいずれかが適用されて良い。また、再配置開始時刻算出処理、及び、指定時刻より早い時刻でのマイグレーション開始は、再配置方向(UP)についてのみ行われても良い。再配置方向(DOWN)については、指定時刻になったときにマイグレーションが開始されても良い。
また、例えば、プールを構成する複数のページのうちの少なくとも1つが、ストレージ装置101の外部のストレージ装置内の記憶デバイス(例えば、物理記憶デバイス或いはその物理記憶デバイスに基づく論理記憶デバイス(論理ボリューム))に基づいていても良い。
また、例えば、上記実施例では、再配置処理0〜3の4種類のうちのいずれか1種類が選択されるが、再配置処理0以外の選択可能な処理として、再配置処理1〜3のうちいずれかN個が無くても良い(Nは、1以上3未満の整数)。
101:ストレージ装置
Claims (13)
- 複数の仮想領域で構成された仮想的な論理ボリュームである仮想ボリュームと、
アクセス性能の異なる複数の実領域群である複数のティアで構成された記憶領域であるプールと、
アクセス元からアクセスコマンドを受信し、前記アクセスコマンドから特定された仮想領域に実領域が割り当てられていれば、その実領域にアクセスし、前記特定された仮想領域に実領域が割り当てられていなければ、前記プールのうちの、前記特定された仮想領域に前記プールから実領域を割り当て、割り当てた実領域にアクセスするコントローラと
を備え、
前記コントローラは、どの仮想領域にどの実領域が割り当てられているかと、仮想領域に割り当てられている実領域のアクセス負荷とを管理し、且つ、第1の仮想領域に割り当てられている第1の実領域のアクセス負荷が前記第1の実領域を有する第1のティアに不適切である場合、前記第1の実領域のアクセス負荷に適した第2のティア内の第2の実領域に前記第1の実領域からデータをマイグレーションし前記第1の仮想領域に前記第1の実領域に代えて前記第2の実領域を割り当てる再配置処理を行うようになっており、
前記コントローラは、履歴情報を管理し、
前記履歴情報は、仮想領域とその仮想領域に割り当てられている実領域を含んだティアとの配置関係を過去の複数の時刻の各々について表す実配置履歴情報と、仮想領域とその仮想領域に理想的にはどのティアから実領域が割り当てられるべきかとの配置関係を過去の複数の時刻の各々について表す理想配置履歴情報とのうちの少なくとも1つを含み、
前記コントローラは、指定時刻の入力を受け、前記実配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第1の再配置処理と、前記理想配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第2の再配置処理とのうちのいずれか一方を行う、
ストレージシステム。 - 前記コントローラは、前記第2の再配置処理で実現される配置関係を実現するのに必要な全ての前記データマイグレーションにかかる時間を算出し、
前記コントローラは、前記指定時刻よりも前記算出された時間分早い時刻に、前記第2の再配置処理を開始する、
請求項1記載のストレージシステム。 - 前記指定時刻よりも早い時刻で開始されるデータマイグレーションは、性能アップマイグレーション方向のデータマイグレーションのみであり、
前記性能アップマイグレーション方向によれば、マイグレーション元の実領域を有するティアよりも、マイグレーション先の実領域を有するティアの性能の方が高い、
請求項2記載のストレージシステム。 - 性能ダウンマイグレーション方向のデータマイグレーションは、前記指定時刻で開始され、
前記性能ダウンマイグレーション方向によれば、マイグレーション元の実領域を有するティアよりも、マイグレーション先の実領域を有するティアの性能の方が低い、
請求項3記載のストレージシステム。 - 前記履歴情報は、仮想領域とその仮想領域に割り当てられていた実領域のアクセス負荷との関係を過去の複数の時刻のそれぞれについて表す性能履歴情報を含み、
前記コントローラは、前記実配置履歴情報及び前記性能履歴情報を基に、各仮想領域についての時刻別のアクセス負荷のトレンドを特定し、特定されたトレンドを基に、時刻別の理想的な配置関係を特定し、特定された配置関係とその配置関係に対応した時刻とを基に前記理想配置履歴情報を更新する、
請求項1記載のストレージシステム。 - 前記コントローラは、マイグレーション方向毎に、全てのデータマイグレーションにかかる時間を算出し、
データマイグレーションが開始される時刻は、マイグレーション方向毎にあり、各マイグレーション方向でのデータマイグレーション開始時刻は、前記算出された時間に従う時刻である、
請求項2記載のストレージシステム。 - 前記指定時刻よりも早い時刻で開始されるデータマイグレーションは、性能アップマイグレーション方向のデータマイグレーションのみであり、
前記性能アップマイグレーション方向によれば、マイグレーション元の実領域を有するティアよりも、マイグレーション先の実領域を有するティアの性能の方が高い、
請求項6記載のストレージシステム。 - 前記コントローラが、アクセス元管理情報を有し、
前記アクセス元管理情報は、複数のアクセス元のうちのどのアクセス元が1以上の仮想ボリュームのうちのどの仮想領域群にアクセス可能であるかと、どのアクセス元についてどの再配置処理が適用されるかとを表す情報であり、
前記コントローラは、前記アクセス元管理情報から、アクセス元とそのアクセス元がアクセス可能な仮想領域群とを特定し、特定された仮想領域群について、そのアクセス元に対応した再配置処理を行う、
請求項1記載のストレージシステム。 - 前記コントローラは、前記指定時刻に加えてアクセス元の指定を受け、
前記コントローラは、前記指定されたアクセス元について、前記指定時刻に対応した配置関係通りに前記指定されたアクセス元に対応した仮想領域群内の複数のデータを配置する、前記指定されたアクセス元に対応する再配置処理を行う、
請求項8記載のストレージシステム。 - 前記履歴情報は、仮想領域とその仮想領域に割り当てられていた実領域のアクセス負荷との関係を過去の複数の時刻のそれぞれについて表す性能履歴情報を含み、
前記コントローラは、前記指定時刻に加えてアクセス元の指定を受け、
前記コントローラは、前記実配置履歴情報と前記性能履歴情報を基に、前記指定されたアクセス元について、各仮想領域についての時刻別のアクセス負荷のトレンドを特定し、特定されたトレンドを基に、時刻別の理想的な配置関係を特定し、特定された配置関係とその配置関係に対応した時刻とを基に前記理想配置履歴情報を更新する、
請求項8記載のストレージシステム。 - 前記コントローラは、アクセス元の指定を受け、
前記コントローラは、前記指定されたアクセス元について、前記第2の再配置処理で実現される配置関係を実現するのに必要な全ての前記データマイグレーションにかかる時間を算出し、
前記コントローラは、前記指定されたアクセス元について、前記指定時刻よりも前記算出された時間分早い時刻に、前記第2の再配置処理を開始する、
請求項8記載のストレージシステム。 - 記憶資源と、
前記記憶資源に接続されたプロセッサと
を有し、
前記記憶資源が、複数の仮想領域で構成された仮想的な論理ボリュームである仮想ボリュームに関する情報と、アクセス性能の異なる複数の実領域群である複数のティアで構成された記憶領域であるプールに関する情報と、履歴情報とを記憶し、
前記履歴情報は、仮想領域とその仮想領域に割り当てられている実領域を含んだティアとの配置関係を過去の複数の時刻の各々について表す実配置履歴情報と、仮想領域とその仮想領域に理想的にはどのティアから実領域が割り当てられるべきかとの配置関係を過去の複数の時刻の各々について表す理想配置履歴情報とのうちの少なくとも1つを含み、
前記プロセッサは、アクセス元からアクセスコマンドを受信し、前記アクセスコマンドから特定された仮想領域に実領域が割り当てられていれば、その実領域にアクセスし、前記特定された仮想領域に実領域が割り当てられていなければ、前記プールのうちの、前記特定された仮想領域に前記プールから実領域を割り当て、割り当てた実領域にアクセスするようになっており、更に、前記プロセッサは、どの仮想領域にどの実領域が割り当てられているかと、仮想領域に割り当てられている実領域のアクセス負荷とを管理し、且つ、第1の仮想領域に割り当てられている第1の実領域のアクセス負荷が前記第1の実領域を有する第1のティアに不適切である場合、前記第1の実領域のアクセス負荷に適した第2のティア内の第2の実領域に前記第1の実領域からデータをマイグレーションし前記第1の仮想領域に前記第1の実領域に代えて前記第2の実領域を割り当てる再配置処理を行うようになっており、
前記プロセッサは、指定時刻の入力を受け、前記実配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第1の再配置処理と、前記理想配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第2の再配置処理とのうちのいずれか一方を行う、
記憶制御装置。 - ストレージシステムの記憶制御方法であって、
前記ストレージシステムが、複数の仮想領域で構成された仮想的な論理ボリュームである仮想ボリュームと、アクセス性能の異なる複数の実領域群である複数のティアで構成された記憶領域であるプールとを有し、アクセス元からアクセスコマンドを受信し、前記アクセスコマンドから特定された仮想領域に実領域が割り当てられていれば、その実領域にアクセスし、前記特定された仮想領域に実領域が割り当てられていなければ、前記プールのうちの、前記特定された仮想領域に前記プールから実領域を割り当て、割り当てた実領域にアクセスするようになっており、さらに、どの仮想領域にどの実領域が割り当てられているかと、仮想領域に割り当てられている実領域のアクセス負荷とを管理し、且つ、第1の仮想領域に割り当てられている第1の実領域のアクセス負荷が前記第1の実領域を有する第1のティアに不適切である場合、前記第1の実領域のアクセス負荷に適した第2のティア内の第2の実領域に前記第1の実領域からデータをマイグレーションし前記第1の仮想領域に前記第1の実領域に代えて前記第2の実領域を割り当てる再配置処理を行うようになっており、
前記記憶制御方法は、
履歴情報を管理し、前記履歴情報は、仮想領域とその仮想領域に割り当てられている実領域を含んだティアとの配置関係を過去の複数の時刻の各々について表す実配置履歴情報と、仮想領域とその仮想領域に理想的にはどのティアから実領域が割り当てられるべきかとの配置関係を過去の複数の時刻の各々について表す理想配置履歴情報とのうちの少なくとも1つを含み、
指定時刻の入力を受け、
前記実配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第1の再配置処理と、前記理想配置履歴情報が表す過去の複数の時刻のうちの前記指定時刻に対応する配置関係通りに前記仮想ボリューム内の複数のデータが前記指定時刻に配置されるようにする第2の再配置処理とのうちのいずれか一方を行う、
記憶制御方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2010/000727 WO2011096017A1 (ja) | 2010-02-08 | 2010-02-08 | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2011096017A1 JPWO2011096017A1 (ja) | 2013-06-06 |
| JP5363595B2 true JP5363595B2 (ja) | 2013-12-11 |
Family
ID=44354587
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011552582A Expired - Fee Related JP5363595B2 (ja) | 2010-02-08 | 2010-02-08 | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8458424B2 (ja) |
| JP (1) | JP5363595B2 (ja) |
| WO (1) | WO2011096017A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019021315A (ja) * | 2017-07-19 | 2019-02-07 | 三星電子株式会社Samsung Electronics Co.,Ltd. | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110119100A1 (en) * | 2009-10-20 | 2011-05-19 | Jan Matthias Ruhl | Method and System for Displaying Anomalies in Time Series Data |
| US8621271B2 (en) * | 2010-08-26 | 2013-12-31 | Cleversafe, Inc. | Reprovisioning a memory device into a dispersed storage network memory |
| US8732421B2 (en) * | 2011-08-26 | 2014-05-20 | Hitachi, Ltd. | Storage system and method for reallocating data |
| EP2674867A4 (en) | 2011-09-27 | 2015-02-25 | Hitachi Ltd | COMPUTER SYSTEM AND INFORMATION MANAGEMENT PROCESS |
| WO2013061368A1 (en) * | 2011-10-26 | 2013-05-02 | Hitachi, Ltd. | Storage apparatus and method of controlling storage apparatus |
| JP5752805B2 (ja) * | 2011-11-21 | 2015-07-22 | 株式会社日立製作所 | ストレージ装置の管理装置及び管理方法 |
| WO2013103005A1 (ja) * | 2012-01-05 | 2013-07-11 | 株式会社日立製作所 | 計算機システムの管理装置及び管理方法 |
| WO2013140447A1 (en) * | 2012-03-21 | 2013-09-26 | Hitachi, Ltd. | Storage apparatus and data management method |
| WO2014073045A1 (ja) * | 2012-11-07 | 2014-05-15 | 株式会社日立製作所 | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
| WO2014128910A1 (ja) * | 2013-02-22 | 2014-08-28 | 株式会社日立製作所 | ストレージシステム、管理計算機、及び仮想論理ボリューム管理方法 |
| US10353616B1 (en) * | 2013-06-27 | 2019-07-16 | EMC IP Holding Company LLC | Managing data relocation in storage systems |
| US10642532B2 (en) | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
| US10594790B2 (en) | 2017-06-28 | 2020-03-17 | International Business Machines Corporation | Data compression in a dispersed storage network |
| EP3695319B1 (en) * | 2017-09-27 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
| US11003378B2 (en) * | 2019-05-03 | 2021-05-11 | Dell Products L.P. | Memory-fabric-based data-mover-enabled memory tiering system |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008112276A (ja) * | 2006-10-30 | 2008-05-15 | Hitachi Ltd | 再配置システムおよび再配置方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
| JP4307964B2 (ja) * | 2003-11-26 | 2009-08-05 | 株式会社日立製作所 | アクセス制限情報設定方法および装置 |
| JP4643395B2 (ja) * | 2004-08-30 | 2011-03-02 | 株式会社日立製作所 | ストレージシステム及びデータの移動方法 |
| US7395396B2 (en) * | 2004-08-30 | 2008-07-01 | Hitachi, Ltd. | Storage system and data relocation control device |
| US7310715B2 (en) * | 2005-01-12 | 2007-12-18 | International Business Machines Corporation | Method, apparatus, and computer program product for using an array of high performance storage drives included in a storage array to reduce accessing of an array of lower performance storage drives included in the storage array |
| JP4814119B2 (ja) * | 2007-02-16 | 2011-11-16 | 株式会社日立製作所 | 計算機システム、ストレージ管理サーバ、及びデータ移行方法 |
| US9152349B2 (en) * | 2007-03-23 | 2015-10-06 | Emc Corporation | Automated information life-cycle management with thin provisioning |
| JP5186982B2 (ja) * | 2008-04-02 | 2013-04-24 | 富士通株式会社 | データ管理方法及びスイッチ装置 |
-
2010
- 2010-02-08 JP JP2011552582A patent/JP5363595B2/ja not_active Expired - Fee Related
- 2010-02-08 US US12/864,973 patent/US8458424B2/en not_active Expired - Fee Related
- 2010-02-08 WO PCT/JP2010/000727 patent/WO2011096017A1/ja not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008112276A (ja) * | 2006-10-30 | 2008-05-15 | Hitachi Ltd | 再配置システムおよび再配置方法 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019021315A (ja) * | 2017-07-19 | 2019-02-07 | 三星電子株式会社Samsung Electronics Co.,Ltd. | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
| JP7063756B2 (ja) | 2017-07-19 | 2022-05-09 | 三星電子株式会社 | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20110197044A1 (en) | 2011-08-11 |
| US8458424B2 (en) | 2013-06-04 |
| WO2011096017A1 (ja) | 2011-08-11 |
| JPWO2011096017A1 (ja) | 2013-06-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5363595B2 (ja) | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 | |
| JP5502232B2 (ja) | ストレージシステム、及びその制御方法 | |
| US8639899B2 (en) | Storage apparatus and control method for redundant data management within tiers | |
| JP5981563B2 (ja) | 情報記憶システム及び情報記憶システムの制御方法 | |
| JP5314772B2 (ja) | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 | |
| JP5439581B2 (ja) | ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法 | |
| US8984221B2 (en) | Method for assigning storage area and computer system using the same | |
| US8850152B2 (en) | Method of data migration and information storage system | |
| US8407417B2 (en) | Storage system providing virtual volumes | |
| US9811288B1 (en) | Managing data placement based on flash drive wear level | |
| JP4235220B2 (ja) | 計算機システムおよびデータ移行方法 | |
| US9323459B1 (en) | Techniques for dynamic data storage configuration in accordance with an allocation policy | |
| US20120011329A1 (en) | Storage apparatus and storage management method | |
| US20110320754A1 (en) | Management system for storage system and method for managing storage system | |
| US20120297156A1 (en) | Storage system and controlling method of the same | |
| JP5395962B2 (ja) | 計算機システム、及びその管理方法、並びに、プログラム | |
| US9311207B1 (en) | Data storage system optimizations in a multi-tiered environment | |
| WO2012140730A1 (ja) | 管理システム、それを有する計算機システム、及び管理方法 | |
| WO2014155555A1 (ja) | 管理システム及び管理プログラム | |
| US10268419B1 (en) | Quality of service for storage system resources | |
| US8572347B2 (en) | Storage apparatus and method of controlling storage apparatus | |
| JP2008299559A (ja) | ストレージシステム及びストレージシステムにおけるデータ移行方法 | |
| JP5597266B2 (ja) | ストレージシステム | |
| JP2009282922A (ja) | 管理サーバ、プール増設方法および計算機システム | |
| US10203874B1 (en) | Managing time scheduled data placement in data storage systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130618 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130808 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130903 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130905 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |