JP5512833B2 - ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム - Google Patents

ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム Download PDF

Info

Publication number
JP5512833B2
JP5512833B2 JP2012557097A JP2012557097A JP5512833B2 JP 5512833 B2 JP5512833 B2 JP 5512833B2 JP 2012557097 A JP2012557097 A JP 2012557097A JP 2012557097 A JP2012557097 A JP 2012557097A JP 5512833 B2 JP5512833 B2 JP 5512833B2
Authority
JP
Japan
Prior art keywords
external
storage
page
virtual
migration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012557097A
Other languages
English (en)
Other versions
JP2013531283A (ja
Inventor
山本  彰
昇 森下
秀雄 斎藤
賢哲 江口
山本  政行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2013531283A publication Critical patent/JP2013531283A/ja
Application granted granted Critical
Publication of JP5512833B2 publication Critical patent/JP5512833B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

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

Description

本発明は、ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステムでの記憶制御に関する。
複数のストレージ装置を含んだストレージシステム(例えばデータセンタ)の運用コストを削減したいというニーズがある。この種のストレージシステムに関して、次のような技術が開示されている。
特許文献1は、‘ストレージの仮想化’と呼ばれる技術に関する。本明細書では、ストレージの仮想化機能を有するストレージ装置を「仮想ストレージ」と呼ぶ。また、本明細書では、仮想ストレージに接続されたストレージ装置であり、仮想ストレージによって仮想化される記憶資源を有するストレージ装置を「外部ストレージ」と呼ぶ。特許文献1では、1台の仮想ストレージに、1台以上の外部ストレージが接続され、見かけ上、外部ストレージは、仮想ストレージによって隠蔽される。本明細書では、サーバ等のホスト装置からのアクセス単位となる論理的なボリュームを「LU」(LU:Logical Unit)と呼ぶ。外部ストレージ上には、仮想ストレージ上のLUに1対1にマッピングされるLUが定義される。以降、サーバからアクセスされるLUを「サーバLU」と呼び、外部ストレージ上のLUを「外部LU」と呼ぶ。仮想ストレージは、外部LUにマッピングされているサーバLUを指定したアクセス要求をホスト装置から受信した場合、その外部LUにアクセスすることで、そのアクセス要求を処理する。この技術によって、管理者は仮想ストレージの管理をすればよいので、管理コストを低減することができる。
特許文献2は、‘容量の仮想化’と呼ばれる技術に関する。容量の仮想化は、シン・プロビジョニング(或いは、ダイミナミック・プロビジョニング)とも呼ばれる。本明細書では、仮想ストレージは、容量の仮想化機能も有している。容量の仮想化機能によれば、「容量プール」と呼ばれる記憶領域が、「ページ」と呼ばれる区画に分割される。一般に、LUを定義する際、あわせて、そのLUの容量も指定し、ストレージ装置では、その容量に相当する記憶領域が確保される。一方、容量の仮想化機能をもつ仮想ストレージでは、仮想サーバLU(シン・プロビジョニングに従うサーバLU)の定義の際に、その仮想サーバLUの容量分の記憶領域を確保する必要は無い。実際に仮想サーバLUに対する書込みが発生した場合に、その書込み先を含んだ領域(仮想サーバLUにおける領域)に、ページが割り当てられる。これにより、消費される記憶領域を削減することができる。また、記憶領域を割り当てる契機が、書込みが発生した契機であるため、管理者は、仮想サーバLUの容量として適当な容量を定義すればよく、それ故、管理コストも低減することができる。
特許文献3では、外部ストレージの記憶領域に、容量の仮想化機能を適用した技術が適用されている。この技術は、‘ストレージの仮想化’と‘容量の仮想化’の二つ技術が揃って始めて適用可能なため、付加価値の高い技術として重要であると考えられる。この場合、外部ストレージ上には、例えば、大容量の外部LUが定義される。この外部LUが、仮想ストレージ上では一つの容量プールとなる。仮想ストレージが、その容量プール(外部LUにマッピングされた容量プール)を複数のページに分割する。仮想サーバLUに書き込みが発生した場合、仮想ストレージが、その書込み先を含んだ領域にページを割り当てる。この場合、一つの仮想サーバLUに割り当てられている複数のページには、内部のページ(仮想ストレージ内部の物理記憶デバイスに基づく容量プール内のページ)と外部のページ(外部LUにマッピングされている容量プール内のページ)とが混在してもよい。
特許文献1〜特許文献3で開示されている技術では、仮想ストレージの台数が1台以上の場合に適用可能であった。しかし、さらなる運用管理コストの低減には、複数の仮想ストレージを連携させることも有効である。例えば、特許文献4では、2台の仮想ストレージを連携し、お互いをバックアップする技術が開示されている。また、特許文献4では、複数の仮想ストレージが外部ストレージを共有した環境で、負荷分散のため、外部ストレージ上の外部LUに対するアクセス権限を、当該LUのデータをコピーすることなく、ある仮想ストレージから別の仮想ストレージに移行する技術も開示されている。
特開2004−005370号公報 特開2003−015915号公報 特開2007−102455号公報 特開2007−072538号公報
複数の仮想ストレージと1台以上の外部ストレージを含み、且つ、複数の仮想ストレージ(例えば、仮想ストレージAと仮想ストレージB)が外部ストレージを共有するストレージシステムが考えられる。そして、仮想ストレージA上に定義された外部LUに相当する容量プール内のページが割り当てられた仮想サーバLUのアクセス権限を、仮想ストレージAから仮想ストレージBに移すことが考えられる。
本発明は、特許文献3で開示されたような技術(外部ストレージの記憶領域に、容量の仮想化機能を適用した技術)を、複数の仮想ストレージ間の連携技術に応用した場合に生ずる課題の解決を狙っており、重要度は高い。
仮想サーバLUのアクセス権限の移行の主な契機は、例えば、下記である。
(1)仮想ストレージAと仮想ストレージBの間の負荷分散。
(2)既存の古くなった仮想ストレージAから新しい仮想ストレージBへのデータ移行。
上記(2)で、仮想ストレージAを廃棄する場合、仮想ストレージAのすべての仮想サーバLUのアクセス権限が、仮想ストレージBを含む他の仮想ストレージに移されることになる。
外部ストレージが、仮想ストレージAと仮想ストレージB間で共有されている場合、仮想ストレージAがアクセス権限をもつ外部LUのアクセス権限は、仮想ストレージBが外部ストレージにアクセス可能であるため、特許文献4に開示された技術に従って、仮想ストレージAから仮想ストレージBに移行することが可能である。
しかし、仮想サーバLUのアクセス権限に加えて、容量プールに相当する外部LUのアクセス権限も、仮想ボリュームAから仮想ボリュームBに移行されると、その容量プールに関連付けられる複数の仮想サーバLUとして、仮想ストレージAがアクセス権限をもつ仮想サーバLUと仮想ストレージBがアクセス権限をもつ仮想サーバLUが混在してしまう可能性がある。従来は、このような課題の解決することは考慮されていない。
この課題を解決するために、本発明においては、外部LUに対応する容量プールの割当て・解放権限と、仮想サーバLU(以下、単に「LU」と言う)に対するアクセス権限が、独立に設けられる。
本発明では、仮想ストレージA及びBとそれら仮想ストレージA及びBが共有する外部ストレージ(外部ストレージが提供する外部LU)とを含んだストレージシステムでの、仮想ストレージAから仮想ストレージBへ、LU(LUのアクセス権限)が移行される際に、そのLUを構成する領域(以下、LU領域)毎に、下記(a)及び(b)の判断、
(a)そのLU領域にページが割り当てられているか否か、
(b)そのLU領域にページが割り当てられている場合、そのページは、仮想ストレージAが有する物理記憶デバイスに基づく容量プール内のページであるか、或いは、外部ストレージが有する外部LUに相当する容量プール内のページであるか、
が行われ、その判断の結果に従う処理が実行される。具体的には、下記の通りである。以下、1つのLU領域を例に取り(以下、対象LU領域)、LU移行処理において行われる処理を説明する。
(1)対象LU領域にページが割り当てられていないケース。
(1a)仮想ストレージAが、対象LU領域のアドレス及びその領域にページが割り当てられていないことを表す情報を仮想ストレージBに送信する。
(1b)仮想ストレージBが、仮想ストレージAから受信した情報(対象LU領域のアドレス及びその領域にページが割り当てられていないことを表す情報)を記憶する。
(2)対象LU領域に、外部LUに相当する容量プール内のページ(以下、外部ページ)が割り当てられているケース。
(2a)仮想ストレージAが、対象LU領域のアドレスとその領域に割り当てられている外部ページのアドレスとを表す情報を仮想ストレージBに送信する。
(2b)仮想ストレージBが、仮想ストレージAから受信した情報(対象LU領域のアドレスとその領域に割り当てられている外部ページのアドレスとを表す情報)を記憶する。
これが、本発明の1つの特徴である。これにより、対象LU領域に割り当てられているページ内のデータをコピーする代わりに、対象LU領域に割り当てられている外部ページのアドレス(実質的に、外部LU内の領域のアドレス)を通知するだけでよい。このため、効率のよい、アクセス権限の移行が可能となる。なお、このケースでは、仮想ストレージBは、移行先のLUを指定したリード/ライト要求をホストから受けた場合、そのリード/ライト要求で指定されているアドレス(移行先LUにおけるLU領域のアドレス)が、仮想ストレージAから通知された対象LU領域アドレスに適合するアドレスであれば、仮想ストレージAから通知された外部ページアドレスに従う外部LU領域(外部LU内のLU領域)にアクセスする。
(3)対象LU領域に、仮想ストレージAが有する物理記憶デバイスに基づく容量プール内のページ(以下、内部ページ)が割り当てられているケース。
(3a)仮想ストレージAが、対象LU領域のアドレスとその領域に割り当てられている内部ページのアドレスとを表す情報を仮想ストレージBに送信する。
(3b)仮想ストレージAが、対象LU領域に割り当てられている内部ページ内のデータを仮想ストレージBに送信する。
(3c)仮想ストレージBが、仮想ストレージBの物理記憶デバイスに基づく容量プール内のページを確保する。
(3d)仮想ストレージBが、仮想ストレージAから受信したデータを、上記(3c)で確保したページに格納する。
LUのアクセス権限を移行する契機は、上記(1)−(3)の処理の実行前と実行後のいずれでもよい。
本発明では、原則として、LUのアクセス権限を仮想ストレージAから仮想ストレージBに移行しても、仮想ストレージAにおいてそのLUに関連付けられている容量プール(以下、容量プールA)の割当て・解放権限を、仮想ストレージAが保有していることになる。このため、仮想ストレージBで、仮想ストレージBに移行されたLU内の領域に、容量プールAのページの割当て・解放が必要になった場合、仮想ストレージBは、仮想ストレージAに、ページの割当て・解放処理を要求することになる。
なお、例えば、以下の(X)又は(Y)のケースでは、容量プールAのページの割当て・解放権限も、仮想ストレージBに移行されても良い。
(X)容量プールAの所定割合以上のページが割り当てられた1以上のLUのアクセス権限が仮想ストレージBに移行されたケース。
(Y)仮想ストレージAの負荷(例えばCPU使用率)が所定負荷以上であるケース。例えば、仮想ストレージAにとって、容量プールAのページの割当て・解放の負荷が所定負荷以上であるケース。
本発明によれば、仮想ストレージA及びBとそれら仮想ストレージA及びBが共有する外部ストレージとを含んだストレージシステムにおいて、外部LUに相当する容量プール(仮想ストレージA内の容量プール)内のページが割り当てられたLUのアクセス権限が、仮想ストレージAから仮想ストレージBに移行される場合、そのLUに割り当てられている外部ページに関しては、その外部ページ内のデータをコピーすることに代えて、その外部ページのアドレスが仮想ストレージBに通知されるだけで、アクセス権限の移行が済む。これにより、高効率なアクセス権限の移行が可能となる。
実施例1に係るIT(InformationTechnology)システムの構成例を示す。 実施例1に係る仮想ストレージの構成例を示す。 実施例1に係る外部ストレージの構成例を示す。 実施例1に係る内部容量プール情報のフォーマット例を示す。 実施例1に係る外部LU情報のフォーマット例を示す。 実施例1に係る外部容量プール情報のフォーマット例を示す。 実施例1に係るホストLU情報のフォーマット例を示す。 実施例1に係る外部LU情報のフォーマット例を示す。 実施例1に係る仮想ストレージ110が発揮する複数の機能の一例を示す。 実施例1に係る移行元の仮想ストレージにおけるデータ移行制御部(a)の処理フローの一例を示す。 実施例1に係る移行先の仮想ストレージにおけるデータ移行実行部(a)の処理フローの一例を示す。 実施例1に係る移行元の仮想ストレージにおける読み書き実行部(a)の処理フローの一例を示す。 実施例1に係るページ割り当て処理部の処理フローの一例を示す。 実施例1に係る移行先の仮想ストレージにおけるライトデータ受領部の処理フローの一例を示す。 実施例1に係るライトアフタ処理部の処理フローの一例を示す。 実施例1に係る外部ページ割り当て処理部の処理フローの一例を示す。 実施例1に係る外部ページ解放処理部の処理フローの一例を示す。 実施例1に係る制御権移行部の処理フローの一例を示す。 実施例2に係る仮想ストレージ110が発揮する複数の機能の一例を示す。 実施例2に係る移行先の仮想ストレージにおけるデータ移行制御部(b)の処理フローの一例を示す。 実施例2に係る移行元の仮想ストレージにおけるデータ移行実行部(b)の処理フローの一例を示す。 実施例2に係る移行先の仮想ストレージにおける読み書き実行部(b)の処理フローの一例を示す。 実施例2に係る移行元の仮想ストレージにおけるリード要求受領部の処理フローの一例を示す。 実施例1に係る制御権移行決定部の処理フローの一例を示す。
以下、図面を参照して、本発明の幾つかの実施例を説明する。
図1は、本発明の実施例1に係るIT(Information Technology)システムの構成例を示す。
ホスト100は、アプリケーションが実行される計算機であり、1つ以上のホスト100が存在する。
仮想ストレージ110は、ストレージの仮想化機能と容量の仮想化機能との両方を有するストレージ装置である。仮想ストレージ110は、ホスト100に接続され、ホスト100からリード/ライト要求(リード要求又はライト要求)を受け付ける。また、仮想ストレージ110は、2つ以上存在する。ITシステムが、ストレージの仮想化機能及び容量の仮想化機能の少なくとも1つを有しないストレージ装置を含んでいても良い。例えば、そのようなストレージ装置を、複数の仮想ストレージ110に共有される外部ストレージ130として採用することが可能である。
図1によれば、仮想ストレージ110は、SAN(a)120経由で、ホスト100に接続される。同様に、仮想ストレージ110同士も、SAN(a)120経由で接続されている。ただし、仮想ストレージ110はホスト100と直接接続されていても良いし(SAN(a)を介さずに接続されていてもよいし)、仮想ストレージ110同士も、直接接続されていても良い(SAN(a)を介さずに接続されていてもよい)。また、1台の仮想ストレージ110は、少なくとも一つのホスト100と、少なくとも一つの仮想ストレージ110と接続されている。ホスト100、仮想ストレージ110、SAN(a)120それぞれの接続口を「ポート」140と呼ぶ。ホスト100、仮想ストレージ110は、少なくとも1つのポート140を持ち、SAN(a)120は、少なくとも二つのポート140をもつ。ホスト100は、仮想ストレージ110に発行するリード/ライト要求において、LU識別子(例えばLUN(Logical Unit Number))と、LU内の相対アドレス(例えばLBA(Logical Block Address))と、データ長を指定する。ホスト100が指定するLUを、以下、「ホストLU」と呼ぶ。
外部ストレージ130は、SAN(b)150経由で、仮想ストレージ110に接続される。外部ストレージ130は、ホスト100からのリード/ライト要求は、直接受け付けず、仮想ストレージ110経由でこの要求を受け付けるのが基本である。例外があってもよいが、そのケースについては、後述する。外部ストレージ130は、少なくとも2台の仮想ストレージ110に接続される。外部ストレージ130上に定義されたLUを、「外部LU」と呼ぶ。外部LUは、基本的には、仮想ストレージ110からアクセスされる。
管理サーバ160は、ホスト100と仮想ストレージ110を管理するサーバであり、ホスト100と仮想ストレージ110に接続されている。実施例1及び2では、管理サーバ160が、仮想ストレージ110のリード/ライト要求の頻度などの情報を収集し、仮想ストレージ110間で、ホストLUの移行することを決定する。また、実施例3及び4では、管理サーバ160が、新しい仮想ストレージ110をSAN(a)120に接続し、古い仮想ストレージ110のすべてのデータを新しい仮想ストレージ110に移し、古い仮想ストレージ110を廃棄するような制御を統括する。なお、いずれの実施例においても、管理サーバ160の機能が、管理サーバ160以外の装置(例えば、ホスト100、あるいは、仮想ストレージ110(例えばホストLUの移行元となる仮想ストレージ110、あるいは、移行先の仮想ストレージ110))が有していても良い。
図2は、仮想ストレージ110の構成例を示す。
仮想ストレージ110は、複数の物理記憶デバイス(例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive))と、複数の物理記憶デバイスに接続されたコントローラとを有する。
複数の物理記憶デバイスを基に、複数の論理ボリューム210が構築される。以下、仮想ストレージ110内の物理記憶デバイスに基づく論理ボリューム210を、「内部ボリューム210」と言う。内部ボリューム210は、2以上の物理記憶デバイスで構成されたRAIDグループ(Redundant Array of Independent Disks)に基づいていても良い。RAID構成の管理は、ストレージプロセッサ200が行う。
コントローラは、仮想ストレージ110の動作を制御する装置である。コントローラは、複数のポート140と、キャッシュメモリ270を含んだ記憶資源と、それらの要素に接続されたストレージプロセッサ(例えばCPU(Central Processing Unit))200とを有する。記憶資源が、内部容量プール情報230、外部LU情報240、外部容量プール情報250及びホストLU情報260を記憶する。また、記憶資源は、ストレージプロセッサ200が実行する1以上のコンピュータプログラムを記憶する。
1以上のストレージプロセッサ200は、仮想ストレージ110内に含まれ、これらのプロセッサ200は、ホスト100から受け付けたリード/ライト要求を処理する。
内部容量プール情報230は、内部容量プールに関する情報である。「内部容量プール」とは、仮想ストレージ110内の物理記憶デバイスに基づく容量プールであり、1以上の内部ボリューム210で構成されている。内部容量プールは、複数のページ(以下、内部ページ)に分割されている。
外部LU情報240は、仮想ストレージ110に接続された外部ストレージ130に定義されている外部LUに関する情報である。仮想ストレージ110に接続されたすべての外部ストレージ130上のすべての外部LUについて外部LU情報240が存在しても良いし、一部の外部LUについてのみ外部LU情報240が存在しても良い。
外部容量プール情報250は、外部容量プールに関する情報である。「外部容量プール」とは、1以上の外部LUがマッピングされた仮想的な論理ボリューム(ストレージ仮想化機能に従う論理ボリューム)で構成されている。外部容量プールは、複数のページ(以下、外部ページ)に分割されている。外部ページを書込み先としたデータは、実際には、その外部ページの基になっている外部LU内のLU領域に書き込まれる。
ホストLU情報260は、ホストLUに関する情報である。
キャッシュメモリ270は、ホスト100がホストLUに対して読み書きするデータを格納するメモリである。メモリ270は、通常は、半導体メモリであるが、バッテリーなどで不揮発化されていてもよいし、高信頼化のため、2重化されていてもよい。
図3は、外部ストレージ130の構成例を示す。
外部ストレージ130は、複数の物理記憶デバイス(例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive))と、複数の物理記憶デバイスに接続されたコントローラとを有する。
複数の物理記憶デバイスを基に、複数の論理ボリューム310が構築される。以下、外部ストレージ130内の物理記憶デバイスに基づく論理ボリューム310を、「外部ボリューム310」と言う。外部ボリューム310は、2以上の物理記憶デバイスで構成されたRAIDグループに基づいていても良い。RAID構成の管理は、外部ストレージプロセッサ300が行う。1以上の外部ボリューム310で容量プールが構成され、その容量プールに、シン・プロビジョニングに従う仮想的なLUが設けられていても良い。外部ボリューム310、或いは、1以上の外部ボリューム310で構成された容量プールに関連付けられた仮想的なLUが、外部LUであって良い。
コントローラは、外部ストレージ130の動作を制御する装置である。コントローラは、複数のポート140と、外部キャッシュメモリ330を含んだ記憶資源と、それらの要素に接続された外部ストレージプロセッサ(例えばCPU)300とを有する。記憶資源が、外部LU情報320を記憶する。また、記憶資源は、外部ストレージプロセッサ300が実行する1以上のコンピュータプログラムを記憶する。
1以上の外部ストレージプロセッサ300は、外部ストレージ130内に含まれ、これらのプロセッサ300は、ホスト100から受け付けたリード/ライト要求を処理する。
外部LU情報320は、外部LUに関する情報である。
外部ストレージキャッシュメモリ330は、仮想ストレージが外部LUに対して読み書きするデータを格納するメモリである。メモリ330は、通常は、半導体メモリであるが、バッテリーなどで不揮発化されていてもよいし、高信頼化のため、2重化されていてもよい。
以下、各種情報を説明する。その際、内部容量プールと外部容量プールを特に区別しない場合には、単に「容量プール」と言い、内部ページと外部ページを特に区別しない場合には、単に「ページ」と言うことがある。
図4は、内部容量プール情報230のフォーマット例を示す。
内部容量プール情報230は、内部容量プール毎に存在する。内部容量プール情報230は、ページサイズ400、ページ数410、割り当てページ数420及びLUアドレス430を含む。LUアドレス430は、内部ページ毎に存在する。以下、1つの内部容量プール(図4の説明において「対象プール」と言う)を例に取り、この情報230内の情報要素を説明する。
ページサイズ400は、内部ページのサイズを表す情報である。
ページ数410は、対象プールが有する内部ページの数(対象プールの容量をページサイズ400で割った値)を表す。
割り当てページ数420は、対象プールの中で、割り当て済みの内部ページの数を表す。
LUアドレス430は、内部ページの割当て先の領域を表す情報(例えば、ホストLUのLUNと、そのホストLUの相対アドレス(例えばLBA))である。ホストLUに割り当てていない内部ページに対応するLUアドレス430として、ヌル値が格納されているとする。
図5は、外部LU情報240のフォーマット例を示す。
外部LU情報240は、外部LU毎に存在する情報である。外部LU情報240は、外部LU識別子500、外部LU容量510、容量仮想化フラグ520、割当て情報530、制御権情報540及び制御権仮想ストレージ550を含む。以下、1つの外部LU(図5の説明において「対象外部LU」と言う)を例に取り、この情報240内の情報要素を説明する。
外部LU識別子500は、対象外部LUのLUNと、対象外部LUを有する外部ストレージ130の識別子とを含んだ情報である。
外部LU容量510は、対象外部LUの容量を表す情報である。
容量仮想化フラグ520は、対象外部LUに容量仮想化機能が適用されているかどうかを表す情報である。容量仮想化機能が適用されてない場合、基本的には、対象外部LUと仮想ストレージ110内のホストLUとが1対1に対応する。ただし、対象外部LUにホストLUがマッピングされていない場合もある。容量仮想化機能が適用されている場合、対象外部LUは、外部容量プールに1対1に対応する。
割り当て情報530は、対象外部LUに容量仮想化機能が適用されている場合、対象外部LUに対応する外部容量プールの識別子を表す。対象外部LUに容量仮想化機能が適用されていない場合、対象外部LUにマッピングされているホストLUの識別子が格納されている。対象外部LUにホストLUがマッピングされていない場合、割り当て情報530としてヌル値が格納される。
制御権情報540は、対象外部LUに対応する外部容量プールの制御権(外部ページの割り当て・解放権限)をこの外部LU情報240を有する仮想ストレージ110が持っているか否かを表す。対象外部LUの制御権をこの仮想ストレージ110もっている場合、制御権情報540としてオンを表す値が格納される。具体的には、例えば、対象外部LUに容量仮想化機能が適用されている場合、この仮想ストレージ110が、対象外部LUに対応する外部容量プールの外部ページの割り当て・解放権限をもっている。また、対象外部LUに容量仮想化機能が適用されていない場合、対象外部LUにマッピングされているホストLUに対する読み書き処理の権限を、この仮想ストレージ110もっていることになる。
制御権仮想ストレージ550は、対象外部LUの制御権をもっている仮想ストレージ110の識別子である。
図6は、外部容量プール情報250のフォーマット例を示す。
外部容量プール情報250は、外部容量プール毎に存在する。外部容量プール情報250は、外部LUポインタ600、ページサイズ400、ページ数410、割り当てページ数420及びLUアドレス430を含む。LUアドレス430は、外部ページ毎に存在する。以下、1つの外部容量プール(図6の説明において「対象プール」と言う)を例に取り、この情報250内の情報要素を説明する。
外部LUポインタ600は、対象プールに対応する外部LUの外部LU情報240へのポインタである。
それ以外の情報は、内部容量プール情報230に含まれている情報要素と実質的に同一である。すなわち、ページサイズ400は、外部ページのサイズを表す情報である。ページ数410は、対象プールが有する外部ページの数を表す。割り当てページ数420は、対象プールの中で、割り当て済みの外部ページの数を表す。LUアドレス430は、外部ページの割当て先の領域を表す情報(例えば、ホストLUのLUNと、そのホストLUの相対アドレス(例えばLBA))である。
図7は、ホストLU情報260のフォーマット例を示す。なお、実施例1では、仮想ストレージ110内の全てのホストLUに容量仮想化機能が適用されているものとする。しかし、仮想ストレージ110において、一部のホストLUしか、容量仮想化機能が適用されていなくとも、本発明は有効である。
ホストLU情報260は、ホストLU毎に存在する。ホストLU情報260は、ホストLU識別子700、仮想容量710、使用ページ数720、移行中フラグ730、移行中仮想ストレージ識別子740、移行中LU識別子750、コピーポインタ760、容量プール識別子770及び相対アドレス780を含む。容量プール識別子770及び相対アドレス780は、ホストLUを構成するLU領域毎に存在する。LU領域に1つの内部ページ又は外部ページが割り当てられる。従って、ホストLUを構成するLU領域の数は、実施例1では、後述の仮想容量700をページサイズ400で割った値と同じである。なお、1つのLU領域に複数のページ(内部ページ及び/又は外部ページ)が割り当てられても良い。以下、1つのホストLU(図7の説明において「対象ホストLU」と言う)を例に取り、この情報260内の情報要素を説明する。
ホストLU識別子700は、対象ホストLUの識別子(例えばLUN)である。
仮想容量710は、対象ホストLUの仮想的な容量を表す情報である。
使用ページ数720は、対象ホストLUに割り当てられているページの数を示す情報である。
移行中フラグ730は、対象ホストLUを他の仮想ストレージに移行中であるか否かを示すフラグである。
移行中仮想ストレージ識別子740は、対象ホストLUを移行する仮想ストレージ110(移行元の仮想ストレージ110)の識別子である。
移行中LU識別子750は、移行元の仮想ストレージ110内でのホストLUの識別子(例えばLUN)である。
コピーポインタ760は、移行が完了したLU領域のアドレスを示す。実施例1では、例えば、対象ホストLUの先頭のLU領域から末尾のLU領域にかけて順次に移行処理が行われる。コピーポインタ760は、どのLU領域まで移行処理が終了したかを示す。
容量プール識別子770は、LU領域に割り当てられたページを含んだ容量プールの識別子である。
相対アドレス780は、LU領域に割り当てられたページの容量プールでの相対アドレスを示す。ページが割り当てられていない場合、容量プール識別子770と相対アドレス780は、ともに、ヌル値である。
図8は、外部LU情報320のフォーマット例を示す。
外部LU情報320は、外部LU毎に存在する。外部LU情報320は、外部LU識別子800及び外部LU容量810を含む。以下、1つの外部LU(図8の説明において「対象外部LU」と言う)を例に取り、この情報320内の情報要素を説明する。
外部LU識別子800は、外部ストレージ130での対象外部LUの識別子(例えばLUN)である。
外部LU容量810は、対象外部LUの容量を表す情報である。
以上が、各種情報についての説明である。なお、図1〜図8を参照して行った説明は、実施例1〜4で共通である。
図9は、実施例1に係る仮想ストレージ110が発揮する複数の機能の一例を示す。
実施例1では、仮想ストレージ110においてストレージプロセッサ200が1以上のコンピュータプログラムを実行することにより、以下の複数の機能、すなわち、データ移行制御部(a)900、データ移行実行部(a)910、読み書き実行部(a)920、ページ割り当て処理部930、ライトデータ受領部940、ライトアフタ処理部950、外部ページ割り当て処理部960、外部ページ解放処理部970、制御権移行部980及び制御権移行決定部990が発揮される。これらの機能によって実行される処理の少なくとも一部が、ハードウェア回路で実行されても良い。
実施例1では、移行元の仮想ストレージ110から移行先の仮想ストレージ110にホストLUを移行するとき、移行処理の制御を移行元の仮想ストレージ110が実行する。また、移行処理中、ホスト100は、移行元の仮想ストレージ110にリード/ライト要求を発行することができる。
本実施例では、管理サーバ160が、各仮想ストレージ110の負荷を調べ、移行すべき仮想ストレージ110のホストLUと移行先となる仮想ストレージ110を決定する。本実施例では、移行元となるホストLUの識別子は、移行先のホストLUに引き継がれないものとするが、本発明は、ファイバチャネルプロトコルで定義されたワールワイドネームのような識別子を引き継ぐ場合も有効である。管理サーバ160は、移行元の仮想ストレージ110に、移行元のホストLUの識別子と、移行先の仮想ストレージ110の識別子と、移行先のホストLUの識別子とを送信する。また、管理サーバ160は、移行先の仮想ストレージ110に、移行元の仮想ストレージ110の識別子と、移行元のLUの識別子と、移行先のホストLUの識別子と、そのホストLUの仮想容量を表す情報とを送信する。
実施例1では、移行元の仮想ストレージ110のデータ移行制御部(a)900が、管理サーバ160からLU移行要求を受け、その要求を受けたことを管理サーバ160に応答した後、図10に示す処理フローを実行する。
図10は、移行元の仮想ストレージ110におけるデータ移行制御部(a)900の処理フローの一例を示す。
ステップ1000では、データ移行制御部(a)900は、移行元のホストLUの識別子に対応するホストLU情報260を見つける。
ステップ1001では、データ移行制御部(a)900は、ステップ1000で見つけたホストLU情報260(図10の説明において「対象情報260」)における移行中フラグ730の値を「オン」を表す値に変更する。さらに、データ移行制御部(a)900は、管理サーバ160から受け取った移行先の仮想ストレージ110の識別子と移行先のLUの識別子とを、対象情報260における移行中仮想ストレージ識別子740及び移行中ホストLU識別子750として設定する。さらに、データ移行制御部(a)900は、対象情報260におけるコピーポインタ760として、移行元のLUにおける先頭のLU領域を表す情報を設定する。
ステップ1002では、データ移行制御部(a)900は、対象情報260におけるコピーポインタ750が示すLU領域(図10の説明において「対象移行元領域」)に対応する容量プール識別子770及び相対アドレス780を対象情報260から特定する。
ステップ1003では、データ移行制御部(a)900は、ステップ1002で特定した識別子770及びアドレス780の値がヌルであるか否かを判断する。
ステップ1003の判断の結果が肯定的の場合(ステップ1003:Y)、ステップ1004で、データ移行制御部(a)900は、対象移行元領域にページが割り当てられていないことを、移行先の仮想ストレージ110に通知する。この後、処理は、ステップ1011へジャンプする。
ステップ1003の判断の結果が否定的の場合(ステップ1003:N)、ステップ1005で、データ移行制御部(a)900は、対象移行元領域に割り当てられているページが書き込み先であるが未だそのページに書き込まれていないデータがキャッシュメモリ270に有るか否かを判断する。
ステップ1005の判断の結果が肯定的の場合(ステップ1005:Y)、ステップ1006で、データ移行制御部(a)900は、そのデータを、対象移行元領域に割り当てられているページ(内部ページ又は外部ページ)に書き込む。外部ページが書込み先の場合、データ移行制御部(a)900は、その外部ページに対応した外部LU領域(外部ストレージ130内の外部LUにおけるLU領域)に、データを書き込む。
ステップ1007では、データ移行制御部(a)900は、対象情報260における、対象移行元領域に対応した容量プール識別子770が、外部容量プールの識別子か否かを判断する。
ステップ1007の判断の結果が肯定的の場合(ステップ1007:Y)、ステップ1008で、データ移行制御部(a)900は、対象移行元領域に対応した容量プール識別子770(外部容量プールの識別子)に対応する外部容量プール情報250(図10において「対象外部容量プール情報250」)を特定する。データ移行制御部(a)900は、対象外部容量プール情報250を基に、対象移行元領域に割り当てられている外部ページに対応する外部LU領域の相対アドレス(外部LUでの相対アドレス)と、その外部LU領域を含んだ外部LUの識別子とを特定し、それらの情報を、移行先の仮想ストレージ110に送信する。この後、処理は、ステップ1011へジャンプする。
ステップ1007の判断の結果が否定的の場合(ステップ1007:N)、データ移行制御部(a)900は、ステップ1009で、対象移行元領域に割り当てられている内部ページからデータを読み出し、そのデータを、キャッシュメモリ270に格納する。
ステップ1010では、データ移行制御部(a)900は、移行先の仮想ストレージ110に、対象移行元領域の相対アドレスと、対象移行元領域に移行先の仮想ストレージ110における内部ページを割り当てる必要があるということと、ステップ1009でキャッシュメモリ270に格納したデータとを送信する。
ステップ1011では、データ移行制御部(a)900は、移行先の仮想ストレージ110から完了報告を待つ。
ステップ1012では、データ移行制御部(a)900は、移行元のLUの末尾のLU領域について処理が完了したか否かを判断する。
ステップ1012の判断の結果が否定的の場合(ステップ1012:N)、ステップ1013で、データ移行制御部(a)900は、次のLU領域を表す情報を、移行元ホストLUに対応するホストLU情報260におけるコピーポインタ750として設定し、ステップ1002ヘジャンプする。
ステップ1012の判断の結果が肯定的の場合(ステップ1012:Y)、ステップ1014で、データ移行制御部(a)900は、対象ホストLU情報260における移行中フラグ730の値を、オフを表す値に変更する。そして、データ移行制御部(a)900は、移行処理が完了したことを管理サーバ160に報告し、次の指示をまつ。
ステップ1015で、データ移行制御部(a)900は、管理サーバ160から、移行元のホストLUに関する情報を消去して良いという指示を受け、以下の処理を実行する。すなわち、データ移行制御部(a)900は、移行元のホストLUに割り当てられている全てのページを解放することにより、それぞれのページを空きページとする。また、この際、他の仮想ストレージ110が制御権をもっている外部容量プールの外部ページを解放する場合、データ移行制御部(a)900は、その外部容量プールに対応する外部LU情報230を特定する。データ移行制御部(a)900は、その情報230における制御権仮想ストレージ550から識別される他の仮想ストレージ110に、その外部ページの解放要求を送る。データ移行制御部(a)900は、その解放要求に応答した他の仮想ストレージ110からの要求により、外部ページを解放する。さらに、データ移行制御部(a)900は、移行元ホストLUに対応するホストLU情報260を消去する。この後、データ移行制御部(a)900は、この完了を、管理サーバ160に通知する。
ステップ1016では、データ移行制御部(a)900は、移行元のホストLUに割り当てられていた外部ページが、どの外部容量プールに幾つ存在するかを特定する。
ステップ1017では、データ移行制御部(a)900は、ステップ1016で特定された外部容量プール毎に、制御権をどの仮想ストレージ110がもっているかを判断する。
ステップ1018では、データ移行制御部(a)900は、移行元のホストLUに割り当てられている外部ページを含んだ外部容量プールとして、移行元の仮想ストレージ110(自分)以外の他の仮想ストレージ110が制御権をもっている外部容量プールがあるか否かを判断する。外部容量プールについての制御権とは、外部ページの割り当て・解放権限である。
ステップ1018の判断の結果が否定的の場合(ステップ1018:N)、処理は、ステップ1020へジャンプする。
ステップ1018の判断の結果が肯定的の場合(ステップ1018:Y)、ステップ1019で、データ移行制御部(a)900は、外部容量プールの制御権をもつ他の仮想ストレージ110に、その外部容量プールについて、ステップ1016で特定された外部ページ数(移行元LUに割り当てられていた外部ページの数)を表す情報を送信する。データ移行制御部(a)900は、外部容量プールの制御権を移行するか否かの決定を、上記他の仮想ストレージ110から待つ。
ステップ1020では、データ移行制御部(a)900は、移行元の仮想ストレージ110(自分)が制御権をもっている外部容量プールとして、移行元のホストLUに割り当てられている外部ページを含んだ外部容量プールがあるか否かを判断する。
ステップ1020の判断の結果が否定的の場合(ステップ1020:N)、処理が終了する。
ステップ1020の判断の結果が肯定的の場合(ステップ1020:Y)、ステップ1021で、データ移行制御部(a)900は、外部容量プールの制御権を移行するか否かを判断する。
ステップ1021の判断の結果が否定的の場合(ステップ1021:N)、処理が終了する。
ステップ1021の判断の結果が肯定的の場合(ステップ1021:Y)、ステップ1022で、データ移行制御部(a)900は、どの仮想ストレージ110に外部容量プールの制御権を移行するかを決定する。ここでは、例えば、LUの移行先の仮想ストレージ110が決定される。その制御権の移行先の仮想ストレージ110を決定した場合、その制御権の移行先の仮想ストレージ110に、データ移行制御部(a)900は、その外部容量プールの制御権を移行することと、その外部容量プールに対応する外部容量プール情報250が表す全ての情報とを、移行先の仮想ストレージ110に送信する。また、それらの情報を送信した後、データ移行制御部(a)900は、その外部容量プール情報250内の情報を所定値にリセットし、且つ、その外部容量プールに対応する外部LU情報240における制御権仮想ストレージ550として移行先の仮想ストレージ110の識別子を設定する。
ステップ1023では、データ移行制御部(a)900は、その外部容量プールに相当する外部LUを有する外部ストレージ130に接続された他の全ての仮想ストレージ110(移行元の仮想ストレージと制御権の移行先の仮想ストレージ以外の仮想ストレージ)に、制御権の移行先の仮想ストレージ110の識別子を通知する。さらに、データ移行制御部(a)900は、この外部LUに対応する外部LU情報240における制御権情報540の値をオフを表す値に変更する。
以上で、データ移行制御部(a)900の処理が完了する。
実施例1では、移行先の仮想ストレージ110において、データ移行実行部(a)910が、管理サーバ160から、移行元の仮想ストレージ110の識別子と、移行元のホストLUの識別子と、移行先のホストLUの識別子と、そのホストLUの仮想容量を表す情報とを受信し、図11に示す処理フローを実行する。
図11は、移行先の仮想ストレージ110におけるデータ移行実行部(a)910の処理フローの一例を示す。
ステップ1100では、データ移行実行部(a)910は、受領したホストLUの識別子に対応するホストLU情報260を生成する。その情報260において、ホストLU識別子700及び仮想容量710として、受領したホストLUの識別子と仮想容量とが設定される。
ステップ1101では、データ移行実行部(a)910は、移行元の仮想ストレージ110から情報を待つ。
ステップ1102では、データ移行実行部(a)910は、移行元のホストLUのLU領域(対象移行元領域)に対応する、移行先のホストLUにおけるLU領域(図11において「対象移行先領域」)に、ページが割り当てられていないという情報が送られてきたかを判断する。
ステップ1102の判断の結果が肯定的の場合(ステップ1102:Y)、データ移行実行部(a)910は、ステップ1103で、対象移行先領域に対応する容量プール識別子770と相対アドレス780としてそれぞれヌル値を設定する。この後、処理は、ステップ1108へジャンプする。
ステップ1104では、データ移行実行部(a)910は、対象移行先領域が外部ページに割り当てられているという情報を受けたか否かを判断する。
ステップ1104の判断の結果が肯定的の場合(ステップ1104:Y)、データ移行実行部(a)910は、ステップ1105では、受けた外部容量プール識別子及び相対アドレスを、対象移行先領域に対応する外部容量プール識別子770と相対アドレス780として設定する。そのあと、処理は、ステップ1108へジャンプする。
ページを確保せよという要求を移行元の仮想ストレージ110から受けた場合、データ移行実行部(a)910は、ステップ1106で、移行先の仮想ストレージ110の内部容量プール情報230を基に、移行先の仮想ストレージ110における内部容量プールから空きの内部ページを特定し、特定した内部ページを対象移行先領域に割り当てる。具体的には、例えば、データ移行実行部(a)910は、対象移行先領域に対応した容量プール識別子770として、割り当てられた内部ページを含んだ内部容量プールの識別子を設定し、且つ、対象移行先領域に対応した相対アドレス780として、内部ページのアドレスを設定する。
ステップ1107では、データ移行実行部(a)910は、移行元の仮想ストレージ110から受けたデータを、ステップ1106で割り当てた内部ページに書き込む。
ステップ1108では、データ移行実行部(a)910は、対象移行先領域が移行先のホストLUにおける末尾のLU領域であるか否かを判断する(ステップ1108)。
ステップ1108の判断の結果が否定的の場合(ステップ1108:N)、データ移行実行部(a)910は、ステップ1101へジャンプして、次の要求をまつ。
ステップ1108の判断の結果が肯定的の場合(ステップ1108:Y)、ステップ1109で、データ移行実行部(a)910は、管理サーバ160へ移行が完了したことを報告する。
以上で、データ移行実行部(a)910が処理を終了する。
実施例1で、管理サーバ160は、移行元の仮想ストレージ110と移行先の仮想ストレージ110からホストLUの移行処理が完了した情報を受け付けると、ホスト100に、移行元のホストLUのLU識別子を指定したリード/ライト要求の送信先を移行先の仮想ストレージ110に切り替えるよう要求する。移行元のホストLUのLUNと移行先のホストLUのLUNが交換される或いは、ワールドワイドネームが移行元から移行先に送られ、SAN(a)120などで自動的に移行先の仮想ストレージ110にリード/ライト要求の送信先が切り替えられても良い。
その後、管理サーバ160は、移行元の仮想ストレージ110に移行元のホストLUの情報を消去する要求を送信する。その要求に応答して、移行元の仮想ストレージ110が、移行元のホストLUに対応するホストLU情報260を所定値にリセットすることができる。
図12は、移行元の仮想ストレージ110における読み書き実行部(a)920の処理フローの一例を示す。この処理フローは、移行元のホストLUの移行中に移行元のホストLUを指定したリード/ライト要求を移行元の仮想ストレージ110がホスト100から受けたときに実行される処理フローである。
ステップ1200では、読み書き実行部(a)920は、受け取った要求が、リード要求かライト要求かをチェックする。
要求がリード要求の場合、読み書き実行部(a)920は、ステップ1201で、リード対象データが、キャッシュメモリ270にあるかどうかを判断する。
ステップ1201の判断の結果が肯定的の場合(ステップ1201:Y)、処理が、ステップ1203へジャンプする。
ステップ1201の判断の結果が否定的の場合(ステップ1201:N)、ステップ1202で、読み書き実行部(a)920は、リード元を含んだLU領域に割り当てられているページからリード対象データを読出し、そのリード対象データを、キャッシュメモリ270に書き込む。
ステップ1203では、読み書き実行部(a)920は、キャッシュメモリ270からリード対象データを読出し、そのデータをホスト100に転送する。以上で、処理が完了する。
要求がライト要求の場合、ステップ1204では、読み書き実行部(a)920は、ライト要求で指定されたライト先を含んだLU領域にページが割り当てられているか否かを判断する。
ステップ1204の判断の結果が否定的の場合(ステップ1204:N)、読み書き実行部(a)920は、ステップ1205で、ページ割り当て処理部930をコールする。ステップ1206で、読み書き実行部(a)920は、ライト対象データをホスト100から受け、そのデータをキャッシュメモリ270に書き込む。
ステップ1207で、読み書き実行部(a)920は、ライト先のホストLUに対応するホストLU情報260における移行中フラグ730がオンか否かを判断する。
ステップ1207の判断の結果が否定的の場合(ステップ1207:N)、処理が完了する。
ステップ1207の判断の結果が肯定的の場合(ステップ1207:Y)、ステップ1208で、読み書き実行部(a)920は、コピーポインタ750を基に、ライト先領域について移行処理を完了しているかをチェックする。コピーポインタ750が表すLU領域の相対アドレスが、ライト先領域の相対アドレスよりも後のアドレスであれば、ライト先領域について移行処理が完了している。
ステップ1208の判断の結果が否定的の場合(ステップ1208:N)、処理が完了する。
ステップ1208の判断の結果が肯定的の場合(ステップ1208:Y)、ステップ1209で、読み書き実行部(a)920は、ライト先領域に割り当てられているページが、外部ページか否かを判断する。
ステップ1209の判断の結果が否定的の場合(ステップ1209:N)、ステップ1210で、読み書き実行部(a)920は、キャッシュメモリ270に格納したライト対象データとそのライト要求(ライト先LUのLU識別子とライト先LU領域の相対アドレスとを含んだ要求)を、移行先の仮想ストレージ110に送信する。その後、処理が完了する。なお、移行先の仮想ストレージ110は、そのライト要求を受けた場合、そのライト要求で指定されているライト先LUに対応したホストLUと、そのライト要求で指定されているライト先LU領域に対応したLU領域とを特定し、特定したホストLU内の特定したLU領域に割り当てられている内部ページに、移行元の仮想ストレージ110からのライト対象データを書き込む。
ステップ1209の判断の結果が肯定的の場合(ステップ1209:Y)、ステップ1211で、読み書き実行部(a)920は、キャッシュメモリ270に格納したライト対象データとそのライト要求(ライト先LU領域に割り当てられている外部ページを含んだ外部容量プールに対応する外部LUのLUNと、その外部ページに対応する相対アドレスとを含んだ要求)を、その外部LUを有する外部ストレージ130に送信する。以上で、処理が完了する。なお、外部ストレージ130は、そのライト要求を受けた場合、そのライト要求で指定されている外部LUと、そのライト要求で指定されている相対アドレスに対応した外部LU領域とを特定し、特定した外部LU内の特定した外部LU領域に、移行元の仮想ストレージ110からのライト対象データを書き込む。
図13は、ページ割り当て処理部930の処理フローの一例を示す。ページ割り当て処理部930は、ページが割り当てられていないLU領域を指定したライト要求を仮想ストレージ110が受けた場合に、そのLU領域にページを割り当てる処理を実行する。
ステップ1300では、ページ割り当て処理部930は、内部ページを割り当てるべきか否かを判断する。内部ページを割り当てるべきか否かは、所定のルールに従い決定されて良い。ルールとしては、例えば、下記のうちの少なくとも1つが考えられる。
(*)ホストLUには内部ページと外部ページが交互に割り当てられる。
(*)ホストLUには内部ページが優先的に割り当てられ、ホストLUに関連付けられている内部容量プールの割当て済み内部ページの割合が所定割合以下になった場合に、ホストLUに関連付けられている外部容量プールから外部ページが割り当てられる。
ステップ1300の判断の結果が肯定的の場合(ステップ1300:Y)、ステップ1301で、ページ割り当て処理部930は、ライト先LUに関連付けられている内部容量プールに対応した内部容量プール情報230を基に、割り当てるページを決定し、その内部容量プール情報230の中の情報で更新すべき情報を更新する。さらに、ページ割り当て処理部930は、ライト先LUに対応するホストLU情報260における容量プール識別子770と相対アドレス780として、決定した内部ページを含んだ内部容量プールの識別子と、決定した内部プールのアドレスとを設定する。その後、処理が完了する。
ステップ1300の判断の結果が否定的の場合(ステップ1300:N)、ステップ1302で、ページ割り当て処理部930は、割当元の外部容量プールを決定する。また、ページ割り当て処理部930は、その処理部930を含んだ仮想ストレージ110が、その外部容量プールに対応する外部LUの制御権があるか否かを、その外部LUに対応する外部LU情報240内の制御権情報540を基に判断する。
ステップ1302の判断の結果が肯定的の場合(ステップ1302:Y)、ステップ1303で、ページ割り当て処理部930は、その外部LUに対応する外部容量プール情報250を基に、割当てる外部ページを決定し、外部容量プール情報250の中の情報で更新すべき情報を更新する。さらに、ページ割り当て処理部930は、ライト先LUに対応するホストLU情報260内の容量プール識別子770と相対アドレス780として、ステップ1302で決定した外部容量プールの識別子と、ステップ1303で決定した外部ページのアドレスとを設定する。その後、処理が完了する。
ステップ1302の判断の結果が否定的の場合(ステップ1302:N)、ステップ1304で、ページ割り当て処理部930は、ステップ1302で決定した外部容量プールの制御権を有している仮想ストレージ110に、ページの割り当てを要求し、回答をまつ。
ステップ1305で、ページ割り当て処理部930は、ステップ1304での要求先の仮想ストレージ110からページのアドレスを受け、ステップ1302で決定した外部容量プールの識別子と、受けたアドレスとを、ライト先LUに対応するホストLU情報260における容量プール識別子770及び相対アドレス780として設定する。その後、処理が完了する。
図14は、移行先の仮想ストレージにおけるライトデータ受領部940の処理フローの一例を示す。ライトデータ受領部940は、移行元の仮想ストレージ110からライト対象データを受領する。
ステップ1400で、ライトデータ受領部940は、移行元の仮想ストレージ110からライト対象データを受け、そのデータをキャッシュメモリ270に格納する。
ステップ1401では、ライトデータ受領部940は、そのデータのライト先のLU領域にページが割り当てられているか否かを判断する。
ステップ1401の判断の結果が肯定的の場合(ステップ1401:Y)、処理が完了する。
ステップ1401の判断の結果が否定的の場合(ステップ1401:N)、ステップ1402で、ライトデータ受領部940は、ページ割り当て部930をコールして、ライト先のLU領域にページを割り当てる。その後、処理を完了する。
図15は、ライトアフタ処理部950の処理フローの一例を示す。ライトアフタ処理部950は、キャッシュメモリ270内のライト対象データ(ライト先LU領域に割り当てられたページに書き込まれていないデータ)をページに書き込む。
ステップ1500では、ライトアフタ処理部950は、ライト対象データのライト先LU領域に割り当てられているページが内部ページか外部ページかを判断する。
ページが内部ページの場合、ステップ1501で、ライトアフタ処理部950は、データをキャッシュメモリ270から、内部ページに書き込む。このあと、処理が完了する。
ページが外部ページの場合、ステップ1502で、ライトアフタ処理部950は、キャッシュメモリ270内のデータとそのライト要求(その外部ページを含んだ外部LUの識別子と、その外部ページの相対アドレスとを指定した要求)とを、外部ストレージ130に送信する。その後、処理が完了する。
図16は、外部ページ割り当て処理部960の処理フローの一例を示す。外部ページ割り当て処理部960は、外部容量プールの制御権をもっている仮想ストレージ110が、他の仮想ストレージ110から、ページの割り当て要求を受けときに、次の処理を実行する。
ステップ1600では、外部ページ割り当て処理部960は、指定された外部容量プールに対応する外部容量プール情報250を基に、割り当てる外部ページを決定し、外部容量プール情報250の中の情報で更新すべき情報を更新する(外部ページをLU領域に割り当てる)。
ステップ1601では、外部ページ割り当て処理部960は、割り当てた外部ページのアドレスを、割り当てを要求した仮想ストレージ110に送る。以上で処理が完了する。
図17は、外部ページ解放処理部970の処理フローの一例を示す。外部ページ解放処理部970は、外部容量プールの制御権をもっている仮想ストレージ110が、他の仮想ストレージ110から、ページの解放要求を受けたときに、次の処理を実行する。
ステップ1700では、外部ページ解放処理部970は、受けた情報を基に、外部容量プール情報250から、解放する外部ページを特定し、外部容量プール情報250の中の情報で更新すべき情報を更新する(特定した外部ページを解放する)。
図18は、制御権移行部980の処理フローの一例を示す。制御権移行部980は、外部LU(外部容量プール)の制御権の移行を、他の仮想ストレージ110から受けたときに、次の処理を実行する。
ステップ1800で、制御権移行部980は、制御権の移行先が、この制御権移行部980を含んだ仮想ストレージ110(自仮想ストレージ)であるか否かを判断する。
ステップ1800の判断の結果が否定的の場合(ステップ1800:N)、ステップ1801で、制御権移行部980は、他の仮想ストレージ110の識別子を、受けた情報で指定されている外部LU(外部容量プール)に対応する制御権仮想ストレージ550として設定する。この後、処理が完了する。
ステップ1800の判断の結果が肯定的の場合(ステップ1800:Y)、ステップ1802で、制御権移行部980は、受けた情報を基に、この外部LU(外部容量プール)に対応する制御権情報540の値をオンとし、制御権仮想ストレージ550として、自仮想ストレージ110の識別子を設定する。さらに、制御権移行部980は、受けた情報に従う外部容量プールに関係する情報を、外部容量プール情報250として生成し登録する。
図24は、制御権移行決定部990の処理フローの一例を示す。制御権移行決定部990は、他の仮想ストレージ110が実行したホストLUの移行により、制御権を他の仮想ストレージ110に移行するかどうかの判断をするよう要求を受けたとき、次の処理を実行する。
ステップ2400で、制御権移行決定部990は、受けた情報を基に、外部LU(外部容量プール)の制御権(割り当て・解放権限)を移行するか否かを決定する。ほとんどの場合、移行元の仮想ストレージ110から制御権は移行されないと決定されるが、例えば、移行元の仮想ストレージ110の負荷が所定負荷以上に高い場合に、移行元の仮想ストレージ110から制御権が移行されると決定される。
ステップ2400の判断の結果が否定的の場合(ステップ2400:N)、処理が終了する。
ステップ2401で、制御権移行決定部990は、どの仮想ストレージ110に権限を移行するかを決定する。制御権移行決定部990は、制御権の移行先の仮想ストレージ110に、制御権を移行することと、対応する外部容量プール情報250が表す全ての情報とを仮想ストレージ110に送る。また、この情報を送った後、制御権移行決定部990は、対応する外部容量プール情報250の情報を所定値にリセットし、且つ、制御権仮想ストレージ550として、移行先の仮想ストレージ110の識別子を設定する。さらに、制御権移行決定部990は、この外部LUに対応する外部LU情報240内の制御権情報540の値をオフとする。
ステップ2402では、制御権移行決定部990は、その外部LUを有する外部ストレージ130に接続された他の仮想ストレージ110に、制御権の移行先の仮想ストレージ110の識別子を通知する。以上で処理が完了する。
以下、実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
図19は、実施例2に係る仮想ストレージ110が発揮する複数の機能の一例を示す。
実施例2では、複数の機能として、データ移行制御部(b)1900、データ移行実行部(b)1910、読み書き実行部(b)1920、リード要求受領部1930、ページ割り当て処理部930、ライトデータ受領部940、ライトアフタ処理部950、外部ページ割り当て処理部960、外部ページ解放処理部970、制御権移行部980、及び制御権移行決定部990がある。
この中で、ページ割り当て処理部930、ページ割り当て処理部930、ライトデータ受領部940、ライトアフタ処理部950、外部ページ割り当て処理部960、外部ページ解放処理部970、制御権移行部980、及び制御権移行決定部990は、実施例1と共通なので、説明を省略する。
実施例2では、移行元の仮想ストレージ110から移行先の仮想ストレージ110にホストLUを移行するとき、移行処理の制御を、移行先の仮想ストレージ110が実行する。また、移行処理中、ホスト100は、移行先の仮想ストレージにリード/ライト要求を発行する。
実施例2でも、管理サーバ160が、各仮想ストレージ110の負荷を調べ、移行元のホストLUと移行先の仮想ストレージ110を決定する。管理サーバ160は、移行元の仮想ストレージ110に、移行元のホストLUの識別子と、移行先の仮想ストレージ110の識別子と、移行先のホストLUの識別子を送る。また、管理サーバ160は、移行先の仮想ストレージ110に、移行元の仮想ストレージ110の識別子と、移行元のLUの識別子と、移行先のホストLUの識別子と、移行元のホストLUの仮想容量とを送る。移行元の仮想ストレージ110と移行先の仮想ストレージ110の双方から、受領報告が帰ってくると、管理サーバ160は、ホスト100に、移行元のホストLUのリード/ライト要求のあて先を、移行先の仮想ストレージ110に切り替えるよう要求する。ワールドワイドネームが引き継がれ、SAN120などで自動的に、移行先の仮想ストレージに、リード/ライト要求のあて先が切り替えられても良い。
実施例2では、移行先の仮想ストレージ110におけるデータ移行制御部(b)1900が、管理サーバ160から、移行元の仮想ストレージ110の識別子、移行元のホストLUの識別子、移行先のホストLUの識別子と、移行元のホストLUの仮想容量とを含んだ情報を受け、その情報を受けたことを、管理サーバ160に応答した後、以下の図20に示す処理フローを実行する。
図20は、移行先の仮想ストレージ110におけるデータ移行制御部(b)1900の処理フローの一例を示す。
ステップ2000では、データ移行制御部(b)1900は、移行先ホストLU(受領したホストLUの識別子)に対応するホストLU情報を生成する。データ移行制御部(b)1900は、ホストLU識別子700及び仮想容量710として、移行先ホストLUの識別子と仮想容量とを設定する。
ステップ2001では、データ移行制御部(b)1900は、移行先ホストLUに対応する移行中フラグ730をオンにする。さらに、データ移行制御部(b)1900は、管理サーバ160から受けた移行先仮想ストレージ110の識別子と移行先LUの識別子とを、移行先ホストLUに対応する移行中仮想ストレージ識別子740及び移行中ホストLU識別子750として設定する。さらに、データ移行制御部(b)1900は、コピーポインタ760を最初のLU領域に設定する。
ステップ2002では、データ移行制御部(b)1900は、コピーポインタ760が示すLU領域(以下、図20の説明で「対象移行先領域」)の処理要求を、移行元の仮想ストレージ110に要求する。
ステップ2003では、データ移行制御部(b)1900は、移行先となる仮想ストレージ110から情報が送られてくるのを待つ。
ステップ2004−ステップ2009は、図11のステップ1102−ステップ1107と同様のため、説明を省略する。
ステップ2010では、データ移行制御部(b)1900は、対象移行先領域が移行先ホストLUにおける末尾のLU領域であるか否かを判断する。
ステップ2010の判断の結果が否定的の場合(ステップ2010:N)、ステップ2011で、データ移行制御部(b)1900は、次のLU領域を表す情報を、移行先ホストLUに対応するホストLU情報260におけるコピーポインタ760として設定し、ステップ2002ヘジャンプする。
ステップ2010の判断の結果が肯定的の場合(ステップ2010:Y)、ステップ2012以降が行われる。ただし、ステップ2012−ステップ2014は、図11のステップ1109−ステップ1111と同様のため、説明を省略する。
実施例2では、移行元の仮想ストレージ110が、データ移行実行部(b)1910が、管理サーバ160から、移行先の仮想ストレージ110の識別子と、移行先のホストLUの識別子と、移行元のLUの識別子とを含んだ情報を受領し、その情報を受領したことを、管理サーバ160に応答した後、要求を受け、図21に示す処理フローを実行する。
図21は、移行元の仮想ストレージ110におけるデータ移行実行部(b)1910の処理フローの一例を示す。
ステップ2100では、データ移行実行部(b)1910は、移行元のホストLUの識別子に対応するホストLU情報を見つける。
ステップ2101では、データ移行実行部(b)1910は、移行先の仮想ストレージ110から、処理要求が送られてくるのをまつ。
移行先の仮想ストレージ110から、処理要求が来ると、その要求に従う対象移行先領域に対応する移行元のLU領域(図21において「対象移行元領域」)について、ステップ2102以降が実行される。ただし、ステップ2102−ステップ2110は、図10のステップ1002−ステップ1010と同様であるため、説明を省略する。
ステップ2111では、データ移行実行部(b)1910は、対象移行元領域が移行元ホストLUにおける末尾のLU領域かどうかを判断する。
ステップ2111の判断の結果が否定的の場合(ステップ2111:N)、データ移行実行部(b)1910は、ステップ2101へジャンプして、次の処理要求が、移行先の仮想ストレージ110から送られてくるのを待つ。
ステップ2111の判断の結果が肯定的の場合(ステップ2111:Y)、データ移行実行部(b)1910は、ステップ2112で、移行処理が完了したことを管理サーバ160に報告する。この後、処理が完了する。
ステップ2113−ステップ2121は、図10のステップ1015−ステップ1023と同様である。このため、説明を省略する。
実施例2で、管理サーバ160は、移行元の仮想ストレージ110と移行先の仮想ストレージ110からホストLUの移行処理が完了した情報を受け付けると、管理サーバ160は、移行元の仮想ストレージ110に、移行元のホストLUの情報を消去するよう、指示する。
図22は、移行先の仮想ストレージ110における読み書き実行部(b)1920の処理フローの一例を示す。この処理は、ホストLUの移行中に、移行先の仮想ストレージ110が、移行中のホストLUを指定したリード/ライト要求をホスト100から受けた場合に実行される。
ステップ2200では、読み書き実行部(b)1920は、受けた要求が、リード要求かライト要求かを判断する。
要求がリード要求の場合、ステップ2201で、読み書き実行部(b)1920は、キャッシュメモリ270にリード対象データが存在するか否かを判断する。この判断の結果が肯定的であれば(ステップ2210:Y)、処理がステップ2206へジャンプし、この判断の結果が否定的であれば(ステップ2210:N)、ステップ2202が行われる。
ステップ2202で、読み書き実行部(b)1920は、読出し元のホストLUに対応した移行中フラグ730がオンであり、且つ、読出し元のLU領域について移行が完了しているか否かを判断する。読出し元のホストLUに対応したコピーポインタ760が示すアドレスが、読出し元のLU領域のアドレスより後のアドレスであれば、読出し元のLU領域について移行が完了している。
ステップ2202の判断の結果が否定的の場合(ステップ2202:N)、処理がステップ2205へジャンプする。
ステップ2202の判断の結果が否定的の場合(ステップ2202:N)、そうでない場合、ステップ2203で、読み書き実行部(b)1920は、移行元の仮想ストレージ110に、読出し元のLU領域に対応するLU領域(移行元ホストLU内のLU領域)におけるデータを送るよう要求し、そのデータが送られてくるのを待つ。ステップ2204で、読み書き実行部(b)1920は、送られてきたデータを、キャッシュメモリ270へ書き込む。
ステップ2205−ステップ2206は、図12のステップ1202−ステップ1203と同様であるため、説明を省略する。
ライト要求の場合、ステップ2207以降の処理を実行する。ただし、ステップ2207−ステップ2211の処理は、図12のステップ1204−ステップ1208と同様であるため、説明を省略する。
図22において、ステップ2211で、読み書き実行部(b)1920は、コピーポインタ760を基に、ライト先LU領域について移行処理が完了していないと判断すれば(ステップ2211:N)、ステップ2212で、キャッシュメモリ内のライト対象データとそのライト要求(ライト先LUの識別子とライト先LU領域のアドレスとを含んだ要求)を、移行元の仮想ストレージ110に送る。これにより、移行元の仮想ストレージにおいて、ライト先LU領域に対応するLU領域(移行元ホストLUのLU領域)に割り当てられているページに、ライト対象データが書き込まれる。読み書き実行部(b)1920は、移行元の仮想ストレージ110から完了報告を受けると、キャッシュメモリ270からこのライト対象データを消去する。この後、処理が完了する。
ライト先LU領域が移行処理が完了した領域の場合、ステップ2213−ステップ2215が実行される。ただし、ステップ2213−ステップ2215は、図12のステップ1209−ステップ1211(但し、ステップ2214を除く)と同様である。ステップ2214の処理は、図12のステップ1210に相当する。ステップ2214では、移行先の仮想ストレージ110のキャッシュメモリ270内のライト対象データが、移行元の仮想ストレージ110に送られる(図12のステップ1210では、逆に、移行元の仮想ストレージ110のキャッシュメモリ270内のライト対象データが、移行先の仮想ストレージに送られる)。
図23は、移行元の仮想ストレージ110におけるリード要求受領部1930の処理フローの一例を示す。リード要求受領部1930は、移行元の仮想ストレージ110が、移行先の仮想ストレージ110から、データを送って欲しい要求を受け付けたとき、次の処理を実行する。
ステップ2300では、リード要求受領部1930は、データを読出し元が内部ページか外部ページかを判断する。
ページが内部ページの場合、ステップ2301で、リード要求受領部1930は、データを内部ページから読出し、そのデータをキャッシュメモリ270に格納する。このあと、処理がステップ2303にジャンプする。
ページが外部ページの場合、ステップ2302で、リード要求受領部1930は、その外部ページに対応する外部アクセス先情報(外部LUの識別子と、外部LU領域の相対アドレスとを含んだ情報)を有するリード要求を外部ストレージ130に送信する。リード要求受領部1930は、そのリード要求に応答して外部ストレージ130から受けたデータを、キャッシュメモリ270に格納する。
ステップ2303では、リード要求受領部1930は、キャッシュメモリ270から読み出したデータを、移行先の仮想ストレージ110に送る。その後、処理が完了する。
以下、実施例3を説明する。
実施例3及び後述の実施例4では、既設の仮想ストレージ110が新たに用意される仮想ストレージ110に置き換えられる。まず、実施例3及び4に共通する事項を説明する。その際、既設の(置き換えられる)仮想ストレージ110を「旧仮想ストレージ110」と言い、新たに用意される仮想ストレージ110を「新仮想ストレージ110」と言う。
まず、ホストLUの移行に入る準備段階として、以下の手順が実行される。
(1)新仮想ストレージ110が、SAN(a)120経由で、ホスト100に接続され、ホスト100が、新仮想ストレージ110を認識する。ただし、新仮想ストレージ110はホスト100と直接接続されてもよい。
(2)新仮想ストレージ110が、管理サーバ160に接続され、管理サーバ160が、新仮想ストレージ110を認識する。
(3)旧仮想ストレージ110に接続されているすべての外部ストレージ130と、SAN(b)150経由で、新仮想ストレージ110が接続される。新仮想ストレージ110は、外部ストレージ130内の外部LUを認識し、その外部LUに対応する外部LU情報240を記憶する。ただし、外部ストレージ130と新仮想ストレージ110は直接接続されてもよい。
(4)新仮想ストレージ110は、管理サーバ160から、認識したそれぞれの外部LUについて、下記の情報、
(a)外部LUは容量仮想化機能が適用されているか否か、
(b)容量仮想化機能が適用されている外部LUについて、その外部LUの制御権は、どの仮想ストレージ110が有しているか、
を受ける。これらの情報に基づき、新仮想ストレージ110は、認識している外部LUに対応する外部LU情報240を更新する。
(5)新仮想ストレージ110は、内部ボリューム210を有する。さらに、新仮想ストレージ110は、管理サーバ160からの情報を基に、内部容量プール情報230に必要な情報を設定する。
以上の準備が整うと、旧仮想ストレージ110から新仮想ストレージ110へのホストLUへの移行が開始される。旧仮想ストレージ110に定義されている全てのホストLUにそれぞれ容量仮想化機能が適用されていても良いし、一部のホストLUに容量仮想化機能が適用されていても良い。
管理サーバ160が、旧仮想ストレージ110上に定義されている移行元のホストLUを認識し、新仮想ストレージ110に移行先のホストLUを定義し、移行元のホストLUから移行先のホストLUへのデータの移行を移行元の仮想ストレージ110又は移行先の仮想ストレージ110に実行させる。
実施例3は、ホストLUの移行の仕方に、実施例1が適用されたケースである。
実施例3では、旧仮想ストレージ(移行元の仮想ストレージ)110から新仮想ストレージ(移行先の仮想ストレージ)110にホストLUを移行するとき、移行処理の制御を、旧仮想ストレージ110が実行する。また、移行処理中、ホスト100は、旧仮想ストレージ110にリード/ライト要求を発行する。
本実施例3では、管理サーバ160が、旧仮想ストレージ110に定義されているホストLUを認識し、移行すべきホストLUを決定する。決定すると、管理サーバ160は、旧仮想ストレージ110に、移行元のホストLUの識別子と、新仮想ストレージ110の識別子と、移行先のホストLUの識別子を送る。また、管理サーバ160は、新仮想ストレージ110に、旧仮想ストレージ110の識別子と、移行元のホストLUの識別子と、移行先のホストLUの識別子と、移行元のホストLUの仮想容量とを送る。
この後、実施例1で説明した処理が行われ、移行元ホストLUから移行先ホストLUへのデータ移行が完了する。また、この際、必要に応じて、外部LUの制御権も移行されて良い。
この処理が完了すると、管理サーバ160は、旧仮想ストレージ110のホストLUのすべての移行が完了したかを認識する。まだ、移行が完了していないホストLUがある場合、管理サーバ160は、移行すべきホストLUを決定して、上記の処理を実行させる。
すべてのホストLUの移行が完了すると、管理サーバ160は、処理を終了する。旧仮想ストレージ110が、全てのホストLUについてデータ移行が完了したか否かを判断し、その判断の結果が否定的の場合に、データ移行が済んでいないホストLUについてデータ移行を行って良い。
実施例4は、ホストLUの移行の仕方に、実施例2が適用されたケースである。
実施例4では、旧仮想ストレージ(移行元の仮想ストレージ)110から新仮想ストレージ(移行先の仮想ストレージ)110にホストLUが移行されるとき、移行処理の制御を、新仮想ストレージ110が実行する。また、移行処理中、ホスト100は、新仮想ストレージにリード/ライト要求を発行する。
実施例4でも、管理サーバ160が、旧仮想ストレージ110に定義されているホストLUを認識し、移行すべきホストLUを決定する。決定すると、管理サーバ160は、旧仮想ストレージ110に、移行元のホストLUの識別子と、新仮想ストレージ110の識別子と、移行先のホストLUの識別子を送る。また、管理サーバ160は、新しい仮想ストレージ110に、旧仮想ストレージ110の識別子と、移行元のLUの識別子と、移行先のホストLUの識別子と、移行先のホストLUの仮想容量とを送る。
また、実施例2で示したように、管理サーバ160は、上記要求の受領報告を、旧仮想ストレージ110と新仮想ストレージの双方から受けると、ホスト100に、移行対象となるホストLUのリード/ライト要求のあて先を、新仮想ストレージ110に切り替えるよう要求して良い。
実施例2と同様の処理が実行されることで、上記で指定されたホストLUの移行が完了する。また、この際、必要に応じて、外部LUの制御権も移行されて良い。
この処理が完了すると、管理サーバ160は、旧仮想ストレージ110のホストLUのすべての移行が完了したかを認識する。まだ、移行が完了していないホストLUがある場合、管理サーバ160は、移行すべきホストLUを決定して、上記の処理を実行して良い。すべてのホストLUの移行が完了すると、管理サーバ160は、処理を終了する。
以上、本発明の幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
100:ホスト、110:仮想ストレージ、130:外部ストレージ

Claims (13)

  1. 外部のストレージ装置を共有する第1及び第2のストレージ装置を有し、
    前記第1のストレージ装置が、前記外部のストレージ装置が提供する論理ボリュームである外部ボリュームに基づく記憶領域でありそれぞれが複数のサブ記憶領域である外部ページに分割された外部容量プールと、複数の第1の仮想領域を含んだ仮想的な論理ボリュームである第1の仮想ボリュームとを有し
    前記第2のストレージ装置が、複数の第2の仮想領域を含んだ仮想的な論理ボリュームである第2の仮想ボリュームを有し、
    前記第1及び第2のストレージ装置のうちのいずれか一方が、
    ホストからライト要求を受け、
    前記ライト要求で指定されているアドレスに属する前記仮想領域であるライト先仮想領域にいずれの前記外部ページが割り当てられておらず、且つ、その仮想領域にいずれか未割当ての前記外部ページを割り当てる場合、外部ページ割当て権限が、自分にあるか否かの第1の判断を行い、
    前記第1の判断の結果が肯定的の場合、未割当ての前記外部ページを前記ライト先仮想領域に割り当て、
    前記第1の判断の結果が否定的の場合、前記外部ページ割当て権限を有するストレージ装置に外部ページ割当て要求を送信し、
    前記第1及び第2のストレージ装置のうち前記外部ページ割当て要求を受けたストレージ装置は、未割当ての前記外部ページを前記ライト先仮想領域に割り当てる、
    ストレージシステム。
  2. 前記第1の仮想ボリュームから前記第2の仮想ボリュームへのデータ移行において、前記外部ページが割り当てられている第1の仮想領域から第2の仮想領域へのデータ移行は、下記により完了する、
    前記第1のストレージ装置が、前記第1の仮想領域のアドレスである移行元アドレスと、前記第1の仮想領域に割り当てられている外部ページのアドレスである外部アドレスとを、前記第2のストレージ装置に通知し、且つ、
    前記第2のストレージ装置が、前記通知された移行元アドレスと前記通知された外部アドレスとの対応関係を記憶する、
    請求項1記載のストレージシステム。
  3. 前記第1及び第2のストレージ装置のうちのいずれか一方が、
    前記第1及び第2の仮想ボリュームにおける仮想領域に割当て済の前記外部ページを未割当ての前記外部ページとすることである外部ページ解放を決定し、
    外部ページ解放権限が、自分にあるか否かの第2の判断を行い
    前記第2の判断の結果が肯定的の場合前記外部ページ解放を行い
    前記第2の判断の結果が否定的の場合前記外部ページ解放権限を有するストレージ装置に外部ページ解放要求を送信
    前記第1及び第2のストレージ装置のうち前記外部ページ解放要求を受けたストレージ装置は、前記外部ページ解放を行う、
    請求項1記載のストレージシステム。
  4. 前記第1及び第2のストレージ装置のうちのいずれか一方が、
    前記外部ページ割当権限、又は、前記第1及び第2の仮想ボリュームにおける仮想領域に割当て済の前記外部ページを未割当ての前記外部ページとすることである外部ページ解放権限を他のストレージ装置に移行するか否かの第3の判断を行い
    前記第3の判断の結果が肯定的の場合、前記外部ページ割当権限又は前記外部ページ解放権限を前記他のストレージ装置に移行する、
    請求項1記載のストレージシステム。
  5. 前記第1の仮想ボリュームから前記第2の仮想ボリュームへのデータ移行において、前記第1及び第2のストレージ装置のうちのいずれか一方が、
    前記ホストからリード要求を受信し、
    前記リード要求で指定されているアドレスに属する仮想領域に割り当てられている前記外部ページからデータを読出し、読み出した前記データを前記ホストに送信する、
    請求項1記載のストレージシステム。
  6. 前記第1及び第2のストレージ装置の各々が、そのストレージ装置が有する物理記憶デバイスに基づく記憶領域でありそれぞれが複数のサブ記憶領域である内部ページに分割された内部容量プールを有しており、
    前記ライト要求は、前記第1の仮想ボリュームから前記第2の仮想ボリュームへのデータ移行において受けた要求であり、
    前記第1及び第2のストレージ装置のうちのいずれか一方が、
    前記ライト先仮想領域にいずれの前記外部ページも前記内部ページも割り当てられていない場合、前記外部ページを割り当てるか前記内部ページを割り当てるかの第4の判断を行い
    前記第4の判断の結果が前記外部ページを割り当てることである場合前記第1の判断を行い、
    前記第4の判断の結果が内部ページを割り当てることである場合、自分が有する前記内部容量プールから未割当ての前記内部ページを前記ライト先仮想領域に割り当てる、
    請求項1記載のストレージシステム。
  7. 前記第1のストレージ装置が、前記第1の仮想ボリュームから前記第2の仮想ボリュームへのデータ移行において、
    前記ライト先仮想領域が前記第1の仮想ボリュームのうちのデータ移行が完了した仮想領域か否かの第5の判断を行い
    前記第5の判断の結果が肯定的であり、且つ、前記ライト先仮想領域に前記外部ページ又は前記内部ページが割り当てられている場合、前記ライト要求に従うライト対象データを、前記ライト先仮想領域に割り当てられている前記外部ページ又は前記内部ページに書込み、且つ、前記ライト対象データを、前記第2のストレージ装置に送信する、
    請求項6記載のストレージシステム。
  8. 前記第1の仮想ボリュームから前記第2の仮想ボリュームへのデータ移行において、前記第2のストレージ装置が、
    前記ホストからリード要求を受信し、
    前記リード要求で指定されたアドレスに従う仮想領域であるリード元仮想領域が、データ移行が完了した仮想領域であるか否かの第6の判断を行い
    前記第6の判断の結果が肯定的の場合、前記リード元仮想領域に割り当てられているページからデータを読み出し、読み出したデータを前記ホストに送信する、
    請求項1記載のストレージシステム。
  9. 前記第1のストレージ装置は、既存のストレージ装置であり、
    前記第2のストレージ装置は、新たに用意されたストレージ装置である、
    請求項1記載のストレージシステム。
  10. 前記第2のストレージ装置は、前記第2の仮想ボリュームにおける第2の仮想領域のアドレスであるアクセス先アドレスを指定したアクセス要求を受信した場合、
    前記アクセス先アドレスが、前記移行元アドレスに適合するアドレスであれば、前記第2のストレージ装置が、その移行元アドレスに対応する外部アドレスに従うアドレスを指定したアクセス要求を前記外部のストレージ装置に送信し、
    前記アクセス先アドレスが、前記移行元アドレスに適合しないアドレスであれば、前記第2のストレージ装置が、前記外部ページの割当て要求を前記第1のストレージ装置に送信し、前記第1のストレージ装置が、その割当て要求に従い、前記外部容量プールにおける未割当ての前記外部ページを決定し、決定した前記外部ページのアドレスである外部ページアドレスを前記第2のストレージ装置に通知し、前記第2のストレージ装置が、前記アクセス先アドレスと通知された外部ページアドレスとの対応関係を記憶し、且つ、その外部ページアドレスに従うアドレスを指定したアクセス要求を前記外部のストレージ装置に送信する、
    請求項2記載のストレージシステム。
  11. 前記第2の仮想ボリュームに割り当てられている前記外部ページにアクセスする権限は、前記第2のストレージ装置が有し、
    前記第2の仮想ボリュームに前記外部ページを割り当てる権限は、前記第1のストレージ装置が有する、
    請求項1記載のストレージシステム。
  12. 前記第2の仮想ボリュームに前記外部ページを割り当てる権限は、前記第1のストレージ装置の負荷が所定負荷以上に高い場合に、前記第2のストレージ装置に移行する、
    請求項11記載のストレージシステム。
  13. 外部のストレージ装置を共有する第1及び第2のストレージ装置を有するシステムでの記憶制御方法であって、
    前記第1のストレージ装置が、前記外部のストレージ装置が提供する論理ボリュームである外部ボリュームに基づく記憶領域でありそれぞれが複数のサブ記憶領域である外部ページに分割された外部容量プールと、複数の第1の仮想領域を含んだ仮想的な論理ボリュームである第1の仮想ボリュームとを有し、
    前記第2のストレージ装置が、複数の第2の仮想領域を含んだ仮想的な論理ボリュームである第2の仮想ボリュームを有し、
    前記記憶制御方法は、前記第1及び第ストレージ装置のうちのいずれか一方により、
    ホストからライト要求を受け、
    前記ライト要求で指定されているアドレスに属する前記仮想領域であるライト先仮想領域にいずれの外部ページが割り当てられておらず、且つ、その仮想領域にいずれか未割当ての外部ページを割り当てる場合、外部ページ割当て権限が、自分にあるか否かの第1の判断を行い、
    前記第1の判断の結果が肯定的の場合、未割当ての前記外部ページを前記ライト先仮想領域に割り当て、
    前記第1の判断の結果が否定的の場合、前記外部ページ割当て権限を有するストレージ装置に外部ページ割当て要求を送信し、
    前記第1及び第2のストレージ装置のうち前記外部ページ割当て要求を受けたストレージ装置が、未割当ての前記外部ページを前記ライト先仮想領域に割り当てる、
    記憶制御方法。
JP2012557097A 2010-12-22 2010-12-22 ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム Active JP5512833B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/007457 WO2012085975A1 (en) 2010-12-22 2010-12-22 Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function

Publications (2)

Publication Number Publication Date
JP2013531283A JP2013531283A (ja) 2013-08-01
JP5512833B2 true JP5512833B2 (ja) 2014-06-04

Family

ID=44201362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012557097A Active JP5512833B2 (ja) 2010-12-22 2010-12-22 ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム

Country Status (5)

Country Link
US (2) US8510515B2 (ja)
EP (1) EP2583162A1 (ja)
JP (1) JP5512833B2 (ja)
CN (1) CN103080895B (ja)
WO (1) WO2012085975A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5750169B2 (ja) * 2011-11-25 2015-07-15 株式会社日立製作所 計算機システム、プログラム連携方法、及びプログラム
JP2013125437A (ja) * 2011-12-15 2013-06-24 Fujitsu Ltd 制御装置、プログラムおよびストレージ装置
US9460009B1 (en) * 2012-03-26 2016-10-04 Emc Corporation Logical unit creation in data storage system
EP2884394A4 (en) * 2012-11-19 2016-04-27 Hitachi Ltd ADMINISTRATION SYSTEM AND DELIVERY METHOD
US9213497B2 (en) * 2012-12-13 2015-12-15 Hitachi, Ltd. Storage apparatus and storage apparatus migration method
US9250809B2 (en) 2013-03-18 2016-02-02 Hitachi, Ltd. Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US10089037B1 (en) * 2013-10-29 2018-10-02 EMC IP Holding Company LLC Block active/active access to data storage systems at different locations
US10089035B1 (en) * 2013-10-29 2018-10-02 EMC IP Holding Company LLC Block storage transparent platform migration
JP5718533B1 (ja) * 2014-04-22 2015-05-13 株式会社日立製作所 ストレージシステムのデータ移行方法
US9923838B2 (en) * 2014-06-30 2018-03-20 International Business Machines Corporation Accessing a dispersed storage network
WO2017085870A1 (ja) * 2015-11-20 2017-05-26 株式会社日立製作所 計算機システム
JP6807376B2 (ja) * 2016-02-29 2021-01-06 株式会社日立製作所 仮想ストレージシステム
US10552072B1 (en) * 2017-07-31 2020-02-04 EMC IP Holding Company LLC Managing file system namespace in network attached storage (NAS) cluster
EP3663928B1 (en) * 2017-09-05 2021-06-23 Huawei Technologies Co., Ltd. Data migration method and system and intelligent network card
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules
JP7337872B2 (ja) * 2021-03-30 2023-09-04 株式会社日立製作所 複合型ストレージシステム及びその制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005370A (ja) 2001-06-20 2003-01-08 Hitachi Ltd パタン形成方法及び半導体装置の製造方法
JP4704659B2 (ja) 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
JP4462852B2 (ja) 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US7130960B1 (en) 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
JP4842593B2 (ja) 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
US7702851B2 (en) 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
JP4806556B2 (ja) 2005-10-04 2011-11-02 株式会社日立製作所 ストレージシステム及び構成変更方法
JP2007280089A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
JP5124103B2 (ja) 2006-05-16 2013-01-23 株式会社日立製作所 計算機システム
US20090240880A1 (en) * 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP2009295049A (ja) * 2008-06-06 2009-12-17 Hitachi Ltd ストレージシステム及びオーナー権の移行方法
CN102483684B (zh) * 2009-12-24 2015-05-20 株式会社日立制作所 提供虚拟卷的存储系统

Also Published As

Publication number Publication date
US8510515B2 (en) 2013-08-13
US20140006726A1 (en) 2014-01-02
US8880810B2 (en) 2014-11-04
JP2013531283A (ja) 2013-08-01
CN103080895A (zh) 2013-05-01
US20120166736A1 (en) 2012-06-28
WO2012085975A1 (en) 2012-06-28
EP2583162A1 (en) 2013-04-24
CN103080895B (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
US10866749B2 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US8984248B2 (en) Data migration system and data migration method
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
US8103826B2 (en) Volume management for network-type storage devices
JP5406363B2 (ja) プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法
US9921781B2 (en) Storage system including multiple storage apparatuses and pool virtualization method
JP2009043030A (ja) ストレージシステム
US9361033B2 (en) Compound storage system and storage control method
US9081509B2 (en) System and method for managing a physical storage system and determining a resource migration destination of a physical storage system based on migration groups
JP2015531090A (ja) ストレージデバイスの高速アクセス及びデータ保護を実現する計算機、計算機システム、及びi/o要求処理方法
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
JP5597266B2 (ja) ストレージシステム
JP7113698B2 (ja) 情報システム
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140128

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: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140326

R150 Certificate of patent or registration of utility model

Ref document number: 5512833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150