JP5277991B2 - 割当制御プログラム、割当制御装置及び割当制御方法 - Google Patents

割当制御プログラム、割当制御装置及び割当制御方法 Download PDF

Info

Publication number
JP5277991B2
JP5277991B2 JP2009015470A JP2009015470A JP5277991B2 JP 5277991 B2 JP5277991 B2 JP 5277991B2 JP 2009015470 A JP2009015470 A JP 2009015470A JP 2009015470 A JP2009015470 A JP 2009015470A JP 5277991 B2 JP5277991 B2 JP 5277991B2
Authority
JP
Japan
Prior art keywords
logical volume
area
slice
storage area
replication
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
Application number
JP2009015470A
Other languages
English (en)
Other versions
JP2010176189A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009015470A priority Critical patent/JP5277991B2/ja
Priority to US12/651,522 priority patent/US8230191B2/en
Publication of JP2010176189A publication Critical patent/JP2010176189A/ja
Application granted granted Critical
Publication of JP5277991B2 publication Critical patent/JP5277991B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/065Replication 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/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

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参照)。このリンクは、複製終了後に切り離される。
また、ディスクと磁気テープで構成される論理ディスクの複製に関し、テープ上の物理的なデータコピーは行わず、管理情報のみをコピーして別の論理ボリュームを作成する方法も提案されている(例えば、特許文献2)。この方法では、複写元と複写先の仮想論理ボリュームとで、物理記憶領域が共有される。
特開2007−122463号公報 特開2007−323589号公報
しかし、複製論理ボリュームの物理記憶領域を割り当て、複製元の論理ボリュームのデータをすべてコピーする複製処理には、コピーに多大な時間がかかるという問題点があった。また、複製論理ボリュームのデータが更新されていない領域では、複製元の論理ボリュームと複製先の論理ボリュームとで同じデータが設定されることになり、冗長でもある。
一方、従来の論理ボリュームの複製時に管理情報のみをコピーする方法は、複数のコンピュータが協働して物理記憶領域を管理するマルチノードシステムに適用することは難しい。マルチノードストレージシステムでは、上記のように、各ストレージ装置に分散配置される物理記憶領域と、論理ボリュームの分割領域とを対応付けた管理情報に基づいてアクセス処理を行っている。すなわち、管理情報に基づいて、アクセス要求のあった論理ボリュームのアドレスに対応する物理記憶領域を特定し、アクセス処理を行う。このため、アクセス要求先が複製論理ボリュームの場合、割り当てられた物理記憶領域に複製データが格納されていなければならず、上記の複製論理ボリュームへのコピー処理を予め行っておく必要がある。
複製元の論理ボリュームと、複製論理ボリュームとで物理記憶領域を共有する場合には、複製元の論理ボリュームに割り当てられた物理記憶領域が、複製論理ボリュームの管理情報に設定されていなければならない。しかし、この割当は、制御装置によって適宜更新されるものであり、これに応じて管理情報も変化する。ストレージ装置に格納される管理情報を最新の状態に保つためには煩雑な処理が必要となるため、複製論理ボリュームと、複製元の論理ボリュームとで物理記憶領域を共有することは容易ではない。
このような点に鑑み、論理ボリュームの複製時の複製論理ボリューム作成時間を短縮し、かつ物理記憶領域の利用効率を高める割当制御プログラム、割当制御装置及び割当制御方法を提供することを目的とする。
上記課題を解決するために、論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムが提供される。この割当制御プログラムは、コンピュータを、論理ボリューム生成手段及び再割当手段として機能させる。
論理ボリューム生成手段は、論理ボリュームを分割した論理ボリューム分割領域を実記憶領域に割り当てる。実記憶領域は、ストレージ装置群の物理記憶領域にデータ記憶領域を備えた記憶領域である。そして、割り当てられた実記憶領域と論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納する。また、論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を仮想記憶領域に割り当てる。仮想記憶領域は、ストレージ装置群の物理記憶領域にデータ記憶領域を持たない記憶領域である。割り当てた仮想記憶領域、複製論理ボリューム分割領域及び複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて管理情報に設定する。そして、この管理情報を、割り当てた仮想記憶領域を管理するストレージ管理装置に送信する。再割当手段は、仮想記憶領域が割り当てられている複製論理ボリューム分割領域へのデータ書き込み要求があったとき、記憶手段に格納される管理情報に含まれる、実記憶領域と仮想記憶領域の区別を示す領域情報と、論理ボリューム分割領域の実記憶領域または仮想記憶領域への割り当ての有無を示す割当情報とに基づいて論理ボリューム分割領域または複製論理ボリューム分割領域に未割当の実記憶領域を検出する。そして、検出された実記憶領域を書き込み要求のあった複製論理ボリューム分割領域に再割当して管理情報を更新する。さらに、管理情報に基づいて複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域に割り当てられた実記憶領域を特定する。そして、特定された実記憶領域に格納されるデータを複製論理ボリューム分割領域に割り当てられた実記憶領域に複写する。
このような割当制御プログラムがコンピュータによって実行されると、論理ボリュームの複製時、複製論理ボリュームを分割した複製論理ボリューム分割領域が、物理記憶領域にデータ記憶領域を持たない仮想記憶領域に割り当てられる。そして、この仮想記憶領域と複製論理ボリューム分割領域、及び複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域を関連付けた管理情報が生成され、記憶手段に格納される。仮想記憶領域が割り当てられた複製論理ボリューム分割領域にデータ書き込み要求があったときは、管理情報に基づいてこの複製論理ボリューム分割領域を実記憶領域に再割当する。そして、管理情報に基づいて複製元論理ボリューム分割領域のデータが格納される実記憶領域を特定し、そこに格納されるデータを再割当された実記憶領域に複写する。
また、上記課題を解決するために、上記の割当制御プログラムを実行するコンピュータと同様の機能を実現する割当制御装置及び割当制御方法が提供される。
開示の割当制御プログラム、割当制御装置及び割当制御方法によれば、論理ボリュームの複製は、複製論理ボリューム分割領域に、データ記憶領域を持たない仮想記憶領域を割り当てて終了する。データの複写を伴わずに複製論理ボリュームが生成されるので、論理ボリュームの複製処理時間を短縮することが可能となる。
また、仮想記憶領域が割り当てられた複製論理ボリューム分割領域に書き込み要求があったときは、この複製論理ボリューム分割領域にデータ記憶領域を備えた実記憶領域が再割当される。そして、複製元のデータがこの実記憶領域に複写される。このように、必要なときに実記憶領域が再割当されるので、ストレージ装置の物理記憶領域の利用効率を高めることができる。
実施の形態に適用される論理ボリュームの複製処理の概要を示した図である。 実施の形態のマルチノードストレージシステムの構成例を示す図である。 ディスクノードのハードウェア構成例を示す図である。 マルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部のソフトウェア構成を示した図である。 論理ディスクに対するディスクノードのスライス割当状態を示した図である。 図5の状態を示したメタデータの一例を示した図である。 複製論理ディスクの生成処理を示したシーケンス図である。 複製論理ディスクが生成された後のディスクノードのスライス割当状態の一例を示した図である。 図8の状態を示したメタデータの一例を示した図である。 複製論理ディスクのリード処理を示したシーケンス図である。 図10の各処理でアクセスされるデータ領域を示した図である。 複製元スライス情報の一例を示した図である。 複製元スライス情報を用いたリード処理を示したシーケンス図である。 複製元のスライスに関するメタデータが更新されていた場合のリード要求処理の手順を示した図である。 複製論理ディスクのライト処理を示したシーケンス図である。 再割当終了後の複製論理ディスクのライト処理を示したシーケンス図である。 図15,16の各処理でアクセスされるデータ領域を示した図である。 再割当処理の前と後のメタデータを示した図である。 再割当後にアクセスノードに送信されるメタデータの一例を示した図である。 制御ノードの複製論理ディスクの作成処理の手順を示したフローチャートである。 複製論理ディスク生成処理の手順を示したフローチャートである。 制御ノードの再割当処理の手順を示したフローチャートである。 ディスクノードのリード処理の手順を示したフローチャートである。 ディスクノードのライト関連処理の手順を示したフローチャートである。
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される論理ボリュームの複製処理の概要について説明し、その後、具体的な内容を説明する。
図1は、実施の形態に適用される論理ボリュームの複製処理の概要を示した図である。
この論理ボリュームの複製処理は、論理ボリュームの分割領域を物理記憶領域へ配置する制御を行う制御ノード10と、物理記憶領域を備えたストレージ装置21と、ストレージ装置21を管理するストレージノード20と、を有するマルチノードストレージシステムにおいて実現される。なお、図のストレージノード20とストレージ装置21は、複数存在するストレージノードとストレージ装置の代表であるとする。
まず、論理ボリュームについて説明する。論理ボリューム(複製論理ボリュームも含む)は、クライアントからの要求に応じて生成される仮想的な記憶領域である。論理ボリュームは、所定の記憶容量の分割領域に分割して管理される。以下、この分割領域をセグメントと呼ぶ。
次に、ストレージ装置21について説明する。ストレージ装置21は、論理ボリュームのデータを格納する物理記憶領域を有する。この物理記憶領域は、所定の分割領域に分割して管理される。以下、この分割領域をスライスと呼ぶ。また、スライスには、セグメントのデータを格納するデータ記憶領域を備えた実記憶領域(以下、実スライスとする)と、データ記憶領域を持たない仮想記憶領域(以下、仮想スライスとする)と、がある。図1では、実スライス領域21aと、仮想スライス領域21bの2種類のスライス領域に分割して管理する。実スライス領域21aは、スライスを管理するための管理情報と、割り当てられたセグメントのデータを格納する領域が確保された実スライス群で構成される。図では、S1〜Sj(jは任意の整数)によって表されるj個の実スライス領域が、ストレージ装置21の物理記憶領域に用意されている。これに対し、仮想スライス領域21bは、スライスを管理するための管理情報のみを格納する領域が確保された仮想スライス群で構成される。図では、Sj+1〜Sk(kは任意の整数)によって表されるk個の領域が、ストレージ装置21の物理記憶領域に用意されている。
制御ノード10について説明する。制御ノード10は、論理ボリュームをセグメント単位に分割し、ストレージ装置21の実スライス領域21aまたは仮想スライス領域21bのいずれかのスライスに割り当てる割当制御を行う割当制御装置として機能する。この制御ノード10は、管理情報記憶手段10a、論理ボリューム生成手段10b、管理情報照会手段10c及び再割当手段10dを有する。
管理情報記憶手段10aには、論理ボリュームを所定の記憶容量で分割したセグメントと、そのセグメントに割り当てられたストレージ装置21のスライスとを対応付ける管理情報が格納される。セグメントには、実スライスまたは仮想スライスのいずれか1つが割り当てられる。管理情報には、スライスごとに、スライス種別、対応するセグメントの識別情報及び複製元のセグメント情報などが設定される。スライス種別には、このスライスが実スライスであるか仮想スライスであるか、また、複製スライスであるか否かを示すスライスに関する情報が登録される。対応するセグメントの識別情報には、このスライスが割り当てられたセグメントの識別情報(例えば、論理ボリューム内のセグメント領域を示すアドレス)が設定される。さらに、複製スライスであるときは、その複製スライスに対応する複製元のセグメント情報が設定される。複製元のセグメント情報には、このスライスが複製スライスであるとき、その複製元のセグメントの識別情報が設定される。
論理ボリューム生成手段10bは、図示しない管理装置から論理ボリュームの生成要求を受け取ると、論理ボリュームを分割した各セグメントにスライスを割り当てる処理を行う。ここでは、論理ボリュームの複製が要求された場合について説明する。複製論理ボリュームの生成要求を取得すると、管理情報記憶手段10aから管理情報を読み出し、セグメントが未割当の仮想スライスを検索する。そして、複製論理ボリュームを分割したセグメントに検出された仮想スライスを割り当てる。続いて、この仮想スライスに対応する複製論理ボリュームのセグメントの識別情報、このセグメントに対応する複製元のセグメント情報などが管理情報に設定される。管理情報は、管理情報記憶手段10aに格納されるとともに、この仮想スライスを管理するストレージノード(例えば、ストレージノード20)に送信される。管理情報を受け取ったストレージノード20は、管理情報を対応する仮想スライスに格納する。
管理情報照会手段10cは、ストレージノード20のリード転送手段20cより、複製元の論理ボリュームのアドレス情報とともに管理情報の照会依頼を受け取り、処理を開始する。そして、管理情報記憶手段10aに格納される対象の複製元の論理ボリュームに関する管理情報を検索する。そして、この複製元の論理ボリュームのセグメントのデータを格納する実スライス情報を抽出し、リード転送手段20cに返す。
再割当手段10dは、仮想スライスに割り当てられた複製論理ボリュームのセグメントを実スライスへ再割当する。アクセス装置から仮想スライスに対してデータの書き込み要求があると、ストレージノード20は、未割当エラーの応答をアクセス装置に返す。未割当エラーを受けたアクセス装置は、制御ノード10に対し、対象の複製論理ボリュームのセグメントに対するスライスの再割当要求を行う。この再割当要求に応じて、再割当手段10dが処理を開始する。再割当手段10dでは、管理情報記憶手段10aに格納される管理情報に基づいて、セグメントが未割当の実スライスを検索する。こうして検出された実スライスに、再割当要求のあったセグメントが割り当てられる。例えば、ストレージ装置21の実スライス領域21aの実スライスが割り当てられたとする。このとき、割り当てられた実スライスには、複製元のセグメントのデータは格納されていないので、管理情報に基づいて、複製元のセグメントのデータが格納される実スライスを特定する。管理情報記憶手段10aには、制御ノード10が管理するすべてのスライスに関する管理情報が格納されているので、複製元のセグメントの識別情報に基づいて、このデータを格納する実スライスを特定することができる。こうして特定された実スライスを管理するストレージノードに対し、複製元と複製先とを指示し、データの複製依頼を行う。依頼を受けたストレージノードは、複製元の実スライスのデータを読み出し、ストレージノード20が管理する複製先の実スライスにコピーする。複製元の実スライスを管理するのがストレージノード20以外であれば、そのストレージノードがストレージノード20に書き込み依頼を行う。これにより、スライスの割当要求があった複製論理ボリュームのセグメントへのデータ書き込みが可能となる。
ストレージノード20は、ストレージ装置21を管理するストレージ管理装置として機能する。このストレージノード20は、管理情報更新手段20a、リード要求処理手段20b、リード転送手段20c、ライト要求処理手段20d及びデータ複写手段20eを有する。
管理情報更新手段20aは、論理ボリューム生成手段10bが更新した管理情報を取得し、ストレージ装置21の該当するスライスの管理情報を更新する。
リード要求処理手段20bは、図示しないアクセス装置からデータのリード要求を受けると、指定されたスライスに対応する管理情報を読み出し、このスライスが実スライスであるか、仮想スライスであるかを判定する。実スライスであるときは、要求されたデータを読み出し、アクセス装置に読み出したデータを返す。仮想スライスであるときは、管理情報から複製元のセグメント情報を抽出し、リード転送手段20cへ処理を引き継ぐ。
リード転送手段20cは、リード要求処理手段20bから受け取った複製元のセグメント情報に基づいて、制御ノード10の管理情報照会手段10cに対し、複製元のセグメントに対応する複製元スライスの情報を要求する。そして、得られた複製元スライスの情報に基づき、この複製元スライスを管理するストレージノードに対し、該当するデータのリード要求を行う。要求されたストレージノードは、リード要求処理手段が該当する実スライスからデータを読み出し、要求元のストレージノード20に応答を返す。ストレージノード20のリード転送手段20cは、得られたデータをアクセス装置に転送する。なお、管理情報照会手段10cから得られた複製元スライスの情報は、複製元セグメントと対応付けて記憶手段に記憶しておく。以降、同じ複製元セグメントに対するリード要求を受け付けた場合には、この情報に基づいて複製元スライスを管理するストレージノードへデータリード要求を行う。制御ノード10によって割当が変更になり、複製元スライスが変わったためエラーとなったときは、再度管理情報照会手段10cから最新の情報を取得する。そして、最初に複製元スライスの情報を取得したときと同様の処理を行う。
ライト要求処理手段20dは、図示しないアクセス装置からデータのライト要求を受けると、指定されたスライスに対応する管理情報を読み出し、このスライスが実スライスであるか、仮想スライスであるかを判定する。実スライスであるときは、要求されたデータを該当領域に書き込む。仮想スライスであるときは、未割当エラーをアクセス装置に返す。なお、データ複製処理によって、他のストレージノードから複製データのライト要求を受け付けた場合は、要求されたデータを該当領域に書き込む。
データ複写手段20eは、制御ノード10の再割当手段10dからのデータ複製依頼を受けると、指定された複製元のスライスのデータを、複製先の実スライスへコピーする処理を行う。複製先の実スライスが他のストレージノードであるときは、読み出したデータを複製先の実スライスを管理するストレージノードに送信し、書き込み依頼を行う。これにより、スライスの割当要求があった複製論理ボリュームのセグメントへのデータ書き込みが可能となる。
このようなマルチノードストレージシステムにおける複製論理ディスクの生成処理について説明する。
例えば、図示しない管理ノードを介して、論理ボリュームの複製依頼が制御ノード10に入力される。制御ノード10では、論理ボリューム生成手段10bが、複製論理ボリュームの生成要求を受け、管理情報記憶手段10aに格納される管理情報を検索し、セグメントが未割当の仮想スライスを抽出する。そして、複製論理ボリュームを分割したセグメントごとに、抽出された仮想スライスを割り当てる。このとき、セグメントが割り当てられた仮想スライスに関連付けて、複製論理ボリュームのセグメントの識別情報、対応する論理ボリュームのセグメントの識別情報を含む管理情報が生成され、管理情報記憶手段10aに格納される。また、生成された管理情報は、セグメントが割り当てられた仮想スライスを管理するストレージノードにそれぞれ送信される。このように、セグメントに仮想スライスを割り当て、管理情報を更新することによって、要求に応じた複製論理ボリュームがマルチノードストレージシステムに構築される。この時点では、複製元の論理ボリュームのデータを複製先論理ボリュームへコピーする処理は行われない。この結果、複製論理ボリュームの作成に要する時間を短縮することが可能となる。
こうして生成された複製論理ボリュームに、データのリード・ライト要求があったときの動作について説明する。リード・ライト要求は、アクセス装置から複製論理ボリュームの要求アドレスに対応する仮想スライスを管理するストレージノード20に対して発行される。
リード要求は、ストレージノード20のリード要求処理手段20bに入力される。リード要求処理手段20bは、読み出しが指定されたアドレスが実スライス領域21aにあるときは、該当するアドレスから読み出し、アクセス装置に読み出したデータを返す。読み出しが指定されたアドレスが仮想スライス領域21bにあるときは、該当するデータはストレージ装置21にはないので、リード転送手段20cにデータの転送依頼を行う。リード転送手段20cは、該当仮想スライスの管理情報を読み出し、複製元のセグメントの識別情報が記述される複製元の論理ボリューム情報を抽出する。そして、抽出した複製元の論理ボリューム情報とともに、管理情報照会依頼を制御ノード10へ送信する。制御ノード10の管理情報照会手段10cは、受信した複製元の論理ボリューム情報に基づいて管理情報記憶手段10aの管理情報を検索し、対応する複製元の実スライスを特定し、この複製元スライス情報を応答としてストレージノード20に通知する。リード転送手段20cは、特定された複製元のスライスを管理するストレージノードに対してリード要求を行い、得られたデータを応答としてアクセス装置に転送する。なお、管理情報照会手段10cより得られた複製元スライス情報は、対応する複製元の論理ボリュームのセグメントの識別情報に関連付けて記憶手段に記憶しておく。そして、再度同じセグメントにリード要求があったときは、記憶手段に記憶された情報を用いて複製元のスライスを特定し、リード転送処理を行う。このように、リード要求に対しては、複製元のスライスから読み出したデータが転送される。すなわち、複製論理ボリュームの更新されていない(データライトが行われていない)セグメントのデータ領域は、複製元と共有されるため、冗長な構成とならない。
次に、ライト要求は、ストレージノード20のライト要求処理手段20dに入力される。ライト要求処理手段20dは、データ書き込みが指定されたアドレスが実スライス領域21aにあるときは、該当するアドレスにデータを書き込み、アクセス装置に応答を返す。データ書き込みが指定されたアドレスが仮想スライス領域21bにあるときは、該当するデータはストレージ装置21にはないので、スライス未割当のエラー応答をアクセス装置に返す。未割当のエラーを受信したアクセス装置は、制御ノード10に対してスライスの再割当要求を行う。
再割当要求を取得した制御ノード10は、再割当手段10dが、エラーとなった複製論理ボリュームのセグメントに対するスライス再割当処理を行う。まず、管理情報記憶手段10aに格納される管理情報から、セグメントが未割当の実スライスを検出する。検出された実スライスに再割当要求のあった複製論理ボリュームのセグメントを割り当て、管理情報を更新する。管理情報は、新たに割り当てられた実スライスを管理するストレージノードに対して送信される。続いて、再割当手段10dは、複製元のセグメントのデータを格納する実スライスを特定する。そして、特定された複製元の実スライスを管理するストレージノードに対し、再割当された複製先の実スライスを指定してデータのコピー要求を行う。ストレージノード20がデータのコピー要求を受けた場合には、データ複写手段20eが該当する複製元の実スライスのデータを、指定された複製先の実スライスへ送信し、このスライスへのデータ書き込みを依頼する。データの書き込み処理は、相手のデータ複写手段またはライト要求処理手段が行う。こうして、更新対象のセグメントが実スライスに再割当され、データがコピーされた後、元の仮想スライスの割当を解除する。以降、複製論理ボリュームの同じセグメントにデータ書き込み要求があったときは、再割当された実スライスに格納されるデータが更新される。このように、更新要求があったセグメントのみ、新たに実スライスが割り当てられ、データ書き込みが行われる。これにより、必要なときに実スライスが再割当されるので、実記憶領域の利用効率を高めることができる。
以下、発明の実施の形態をストレージ装置がディスク装置で構成されるマルチノードストレージシステムの場合で説明する。図2は、実施の形態のマルチノードストレージシステムの構成例を示す図である。
マルチノードストレージシステムは、ネットワーク600を介して、制御ノード100、複数のディスクノード200,300,400と、アクセスノード500及び管理ノード700が接続されている。
制御ノード100は、仮想的な論理ディスクを分割したセグメントを、物理記憶領域を備えたディスク207,307,407に割り当てる割当制御を行う。論理ディスクの複製指示が入力されたときは、複製論理ディスクを新たに作成し、複製論理ディスクのセグメントを、ディスクノード200,300,400が管理する仮想スライスに割り当てる。また、必要に応じて、ディスク207,307,407の各スライスに割り当てたセグメントの再配置を行う。例えば、アクセスノード500によるディスクノード207,307,407へのアクセス要求が失敗したとき、アクセスノード500からの再割当要求に応じてセグメントの再配置を行う。
ディスクノード200にはディスク207、ディスクノード300にはディスク307、ディスクノード400にはディスク407が、それぞれ接続されている。ディスク207には、物理記憶領域を構成する複数のハードディスク装置(HDD)が実装されている。ディスク307,407の構成も同様である。ディスク207,307,407の物理記憶領域は、スライス単位に分割され、それぞれディスクノード200,300,400によって管理されている。スライスには、セグメントのデータと、スライスに関する管理情報(以下、メタデータとする)を記憶する領域を備えた実スライスと、メタデータを記憶する領域のみの仮想スライスとがある。ディスクノード200,300,400は、例えば、IA(Intel Architecture)と呼ばれるアーキテクチャのコンピュータである。そして、接続されたディスク207,307,407に格納されるメタデータに基づき、セグメントデータをアクセスノード500経由で端末装置801,802,803に提供する。
アクセスノード500には、ネットワーク800を介して複数の端末装置801,802,803が接続されている。アクセスノード500は、ディスクノード200,300,400のそれぞれが管理しているデータの格納場所を認識しており、端末装置801,802,803からの要求に応答して、ディスクノード200,300,400へデータアクセスを行う。リード要求時、アクセス先のディスクノード200,300,400からのデータ読み出しが失敗したときは、制御ノード100から最新のアクセス先情報(メタデータ)を取得し、再度データ読み出しを行う。ライト要求時、アクセス先のディスクノード200,300,400から未割当エラーを受けたときは、制御ノード100に対象セグメントのスライス再割当要求を行う。そして、新たに割り当てられたアクセス先にデータ書き込みを行う。
管理ノード700は、マルチノードストレージシステム全体を管理する。また、ユーザの指示に従って、論理ディスクの複製要求などの指示を制御ノード100に通知する。
次に、各ノードのハードウェア構成を、ディスクノード200を例に説明する。
図3は、ディスクノードのハードウェア構成例を示す図である。
ディスクノード200は、CPU(Central Processing Unit)201によって装置全体が制御されている。CPU201には、バス206を介してRAM(Random Access Memory)202、HDD203、通信インタフェース204及びHDDインタフェース205が接続されている。
RAM202には、CPU201に実行させるOSやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションのプログラムが格納される。通信インタフェース204は、ネットワーク600に接続されている。通信インタフェース204は、ネットワーク600を介して、他のディスクノード300,400、アクセスノード500、制御ノード100及び管理ノード700など、マルチノードストレージシステムを構成する他のコンピュータとの間でデータの送受信を行う。HDDインタフェース205は、ディスク207を構成するHDDへのアクセス処理を行う。
なお、図3には、ディスクノードのハードウェア構成を示したが、制御ノード及びアクセスノードのハードウェア構成も同様である。
次に、上記のマルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部について説明する。以下の各部の動作説明は、複製元の論理ディスクは、アクセスノード500のキャッシュデータが同期済みで更新が禁止されているとして、行う。
図4は、マルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部のソフトウェア構成を示した図である。図2と同じものには同じ番号を付し、説明は省略する。図4ではディスクノード400を省略しているが、そのソフトウェア構成は、ディスクノード200,300と同様である。
ディスクノード200,300は、スイッチ(SW)601を介して、制御ノード100及びアクセスノード500との間でデータ交換を行う。図の点線の矢印は、各装置間で交換されるデータを示している。ただし、ディスクノード300と、制御ノード100及びアクセスノード500との間のデータ交換は、ディスクノード200と同様であるので省略している。
制御ノード100は、メタデータ記憶部110、論理ディスク生成部120、メタデータ照会部130及び再割当部140を有する。メタデータ記憶部110は、管理情報記憶手段10aとして機能し、スライスの種別や割り当てられたセグメントに関する情報などスライスの管理情報が記述されたメタデータを格納する。論理ディスク生成部120は、論理ボリューム生成手段10bとして機能し、論理ディスク及び複製論理ディスクを生成する。メタデータ照会部130は、管理情報照会手段10cとして機能し、ディスノード200,300,400及びアクセスノード500からの要求に応じてメタデータを照会する。再割当部140は、再割当手段10dとして機能し、要求されたセグメントのスライス再割当を行う。
ディスクノード200,300は、メタデータ更新部210,310、リード・ライト処理部220,320、リード転送部230,330、データコピー部240,340を有する。メタデータ更新部210,310は、管理情報更新手段20aとして機能し、制御ノード100からの指示で管理下のディスク207,307のスライスに関するメタデータを更新する。リード・ライト処理部220,320は、リード要求処理手段20b及びライト要求処理手段20dとして機能し、ディスク207,307へのリード・ライト要求を処理する。リード転送部230,330は、リード転送手段20cとして機能し、仮想スライスに対応する複製元スライスのデータを読み出し、アクセスノード500へ転送する。データコピー部240,340は、データ複写手段20eとして機能し、複製元スライスのデータを複製先スライスへコピーする。
アクセスノード500は、リード・ライト要求部510を有す。リード・ライト要求部510は、図示しないメタデータ記憶部に格納されるメタデータに基づいて、アクセス要求を処理する。端末装置801,802,803などからアクセス要求のあった論理ディスクに割り当てられたスライスを管理するディスクノード200,300,400へアクセス要求を行う。複製論理ディスクへのリード要求は、複製論理ディスクに割り当てられたスライスを管理するディスクノード200,300,400に送信し、応答として得られたリードデータをリード要求元に送信する。複製論理ディスクへのライト要求は、複製論理ディスクに割り当てられたスライスを管理するディスクノード200,300,400に送信する。ディスクノード200,300,400から未割当エラーの応答を取得したときは、制御ノード100へスライスの再割当を要求する。
このような構成のマルチノードストレージシステムのデータの流れを説明する。
複製論理ディスクの作成が指示されると、論理ディスク生成部120が複製論理ディスクのセグメントにディスクノード200,300の未割当の仮想スライスを割り当て、メタデータを更新する。この更新メタデータは、少なくとも管理下のスライスのメタデータが更新されたディスクノード200,300のメタデータ更新部210,310に送信される。メタデータ更新部210,310は、取得した更新メタデータを対象のスライスのメタデータ記憶領域に書き込む。こうして、関連するメタデータが更新されて、複製論理ディスクの生成が終了する。
生成された複製論理ディスクへのアクセス処理について説明する。上述のように、複製論理ディスクへのアクセス要求は、アクセスノード500がメタデータに基づき、複製論理ディスクに割り当てられた仮想スライスを管理するディスクノード200,300,400へ送信する。
リード要求を受けたアクセスノード500のリード・ライト要求部510は、メタデータに基づいて要求先のスライスを特定し、これを管理するディスクノード200,300にリード要求を行う。ディスクノード200,300のリード・ライト処理部220は、リード要求を受けるが、リード要求先の仮想スライスにはデータがないので、処理をリード転送部230,330に引き継ぐ。リード転送部230,330は、制御ノード100のメタデータ照会部130から、複製元のスライスの情報を取得する。例えば、ディスクノード200のリード転送部230が、メタデータ照会部130からディスクノード300に複製元スライスがあるという情報を取得したとする。リード転送部230は、ディスクノード300のリード・ライト処理部320に複製元スライスのリード要求を行う。そして、得られたデータをアクセスノード500に転送する。
ライト要求を受けたアクセスノード500のリード・ライト要求部510は、メタデータに基づいて要求先のスライスを特定し、これを管理するディスクノード200,300にライト要求を行う。ディスクノード200,300のリード・ライト処理部220は、ライト要求を受けるが、ライト要求先の仮想スライスにはデータがないので、未割当エラーを返す。未割当エラーを取得したリード・ライト要求部510は、制御ノード100に対し、対象セグメントへの実スライスの再割当を依頼する。制御ノード100では、再割当部140が、仮想スライスに割り当てられているセグメントを実スライスに再割当し、メタデータを更新する。さらに、ライト要求先のセグメントに対応する複製元のセグメントに割り当てられている実スライスを管理するディスクノード200,300に、複製元のセグメントデータのコピーを依頼する。例えば、ライト要求された複製論理ボリュームのセグメントに、ディスクノード300の実スライスに再割当したときは、この実スライスとセグメントとを関連付けたメタデータをディスクノード300に送信する。これを取得したメタデータ更新部310は、メタデータを更新する。また、複製元のディスクノード(例えば、ディスクノード200)に、複製元のスライスのデータコピーを依頼する。データコピー部240は、複製元のスライスのデータを読み出し、複製先のディスクノード300に送信する。これを取得したディスクノード300のデータコピー部340は、再割当されたスライスに受信したデータを書き込み、コピーを終了する。こうして再割当が終了し、以降は、リード・ライト処理部320によるライト処理が可能となる。こうして、複製論理ディスクのセグメントが実スライスに割り当てられた以降は、この実スライスに対し、そのままリード・ライト処理が行われる。
以下、具体例を挙げて動作を詳細に説明する。
まず、論理ディスクとディスクノード200,300,400が管理するスライスとの関係について説明する。図5は、論理ディスクに対するディスクノードのスライス割当状態を示した図である。
論理ディスク(ID=LVOL1)1070は、複製元の論理ディスクであり、8個のセグメントから構成される。それぞれのセグメントの先頭アドレスを、A1,A2,A3,A4,A5,A6,A7,A8とし、各セグメントを論理ディスクIDと、先頭アドレスとによって識別する。例えば、論理ディスク1070の最もアドレスの若いセグメントは、LVOL1−A1となる。
ディスクノード200は、ディスクノードIDが「DP1」であり、スライスS1〜100と、スライスS101〜nの2種類のスライスを管理する。スライスS1〜100は、メタデータを格納するメタデータ領域2070aと、セグメントのデータを格納するデータ領域2070bとを有する実スライスである。スライスS101〜nは、メタデータを格納するメタデータ領域2070cのみでデータ領域のない仮想スライスである。ディスクノード300は、ディスクノードIDが「DP2」であり、構成はディスク200と同様である。ディスクノード400は、ディスクノードIDが「DP3」であり、構成はディスク200と同様である。
ここで、図5のスライス割当(DP1)2000は、ディスクノード(DP1)200の各スライスに論理ディスク(LVOL1)1070のセグメントが割り当てられた状態を示している。同様に、スライス割当(DP2)3000はディスクノード(DP2)300、スライス割当(DP3)4000はディスクノード(DP3)400の各スライスへのセグメントの割当状態を示している。
例えば、セグメントLVOL1−A1は、ディスクノード(DP1)200のスライスS1に割り当てられている。同様に、セグメントLVOL1−A2はディスクノード(DP2)300のスライスS1、セグメントLVOL1−A3はディスクノード(DP3)400のスライスS1、セグメントLVOL1−A4はディスクノード(DP1)200のスライスS2、セグメントLVOL1−A5はディスクノード(DP2)300のスライスS2、セグメントLVOL1−A6はディスクノード(DP3)400のスライスS2、セグメントLVOL1−A7はディスクノード(DP1)200のスライスS3、セグメントLVOL1−A8はディスクノード(DP2)300のスライスS3、に割り当てられている。なお、各ディスクノードの仮想スライスS101〜nには、セグメントは割り当てられていない。
次に、メタデータについて説明する。図6は、図5の状態を示したメタデータの一例を示した図である。
メタデータ5000には、スライスアクセス情報のディスクノードID5010及びスライスID5020と、データ領域フラグ5030と、論理ディスク割当フラグ5040と、複製スライスフラグ5050と、論理ディスク情報の論理ディスクID5060及び先頭アドレス5070と、複製元論理ディスク情報の論理ディスクID5080及び先頭アドレス5090と、が設定される。
スライスアクセス情報には、スライスを識別する識別情報が設定される。スライスは、このスライスを管理するディスクノードのディスクノードID5010と、スライスID5020によって識別される。例えば、ディスクノードIDが「DP1」、スライスIDが「1」であれば、図5のディスクノード(DP1)のスライスS1を表す。
データ領域フラグ5030には、スライスアクセス情報に設定されるスライスが、データ領域を有しているか否かが設定される。実スライスでデータ領域を有している場合には「TRUE」、仮想スライスでデータ領域を有していない場合には「FALSE」が設定される。ここでは、スライスのIDが1〜100であれば、実スライス(データ領域有)で「TRUE」が設定される。また、スライスのIDが101〜nであれば、仮想スライス(データ領域無)で「FALSE」が設定される。
論理ディスク割当フラグ5040には、スライスアクセス情報に設定されるスライスに、論理ディスクが割り当てられているか否かが設定される。論理ディスクが割り当てられているときは「TRUE」、割り当てられていないときは「FALSE」が設定される。なお、ここでの論理ディスクには、複製論理ディスクも含まれる。
複製スライスフラグ5050には、スライスアクセス情報に設定されるスライスが、複製元が存在する複製スライスであるか否かが設定される。複製スライスであるときは「TRUE」、複製スライスでないときは「FALSE」、セグメントが割り当てられておらず未定のときは「NULL」が設定される。なお、複製元が存在するとは、このスライスには割り当てられたセグメントのデータが格納されていないことを表す。したがって、実スライスであるスライスIDが1〜100のスライスは、データ領域を持ち、セグメントのデータが格納されることから、常に「FALSE」になる。割り当てられたセグメントが複製論理ディスクのセグメントであっても、同様である。一方、仮想スライスであるスライスIDが101〜nのスライスは、セグメントが割り当てられていないときは「NULL」、割り当てられたときは「TRUE」になる。また、複製スライスフラグが「TRUE」のときには、対応する複製元論理ディスクの情報が、複製元論理ディスク情報(論理ディスクID5080と先頭アドレス5090)に登録される。
論理ディスク情報には、スライスアクセス情報に設定されるスライスに割り当てられたセグメントの論理ディスク情報(論理ディスクID5060、先頭アドレス5070)が設定される。論理ディスク割当フラグ5040が「TRUE」のとき、該当する論理ディスク(複製論理ディスクも含む)の論理ディスクIDと先頭アドレスが登録される。
複製元論理ディスク情報には、スライスアクセス情報に設定されるスライスが複製スライスのとき、対応する複製元の論理ディスクのセグメントを識別する複製元論理ディスク情報(論理ディスクID5080、先頭アドレス5090)が設定される。複製スライスフラグ5050が「TRUE」のとき、スライスに割り当てられた複製論理ディスクのセグメントに対応する複製元の論理ディスクのセグメントの識別情報が登録される。
例えば、1行目のディスクノードIDが「DP1」、スライスIDが「1」のスライスは、データ領域フラグが「TRUE」、論理ディスクが「TRUE」、複製スライスフラグが「FALSE」である。すなわち、スライスDP1−1は、実スライスであり、論理ディスクのセグメントLVOL1−A1が割り当てられていることを示している。同様に、スライスDP1−2は実スライスで、論理ディスクのセグメントLVOL1−A4が割り当てられていることを示している。スライスDP1−3は実スライスで、論理ディスクのセグメントLVOL1−A7が割り当てられていることを示している。スライスDP2−1は実スライスで、論理ディスクのセグメントLVOL1−A2が割り当てられていることを示している。スライスDP2−2は実スライスで、論理ディスクのセグメントLVOL1−A5が割り当てられていることを示している。スライスDP2−3は実スライスで、論理ディスクのセグメントLVOL1−A8が割り当てられていることを示している。スライスDP3−1は実スライスで、論理ディスクのセグメントLVOL1−A3が割り当てられていることを示している。そして、スライスDP3−2は実スライスで、論理ディスクのセグメントLVOL1−A6が割り当てられていることを示している。他のスライスは、すべて未割当である。
以下、上記の構成のマルチノードストレージシステムにおける複製論理ディスク生成の処理手順について、詳細に説明する。
まず、クライアントからの複製要求に応じて、複製論理ディスクが生成される。図7は、複製論理ディスクの生成処理を示したシーケンス図である。
クライアントからの要求を受け、管理ノード700が制御ノード100に対し、論理ディスクの複製要求を発行する[P01]。論理ディスクの複製要求を取得した制御ノード100は、複製論理ディスク生成処理を行う[P02]。以下、論理ディスクのセグメントを論理セグメント、複製論理ディスクのセグメントを複製論理セグメントとする。
複製論理ディスク生成処理では、メタデータを解析し、セグメントが未割当の仮想スライス(スライスIDが101〜n)を検出する。そして検出された仮想スライスを、複製論理セグメントに割り当て、メタデータを更新する。更新されたメタデータは、関連するディスクノード200,300,400に対し、メタデータの変更指示とともに配布される[P03]。
メタデータと、メタデータ変更指示を受けた各ディスクノードは、自身が保有するメタデータを指示されたメタデータに更新する。ディスクノード(DP1)200は、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し[P04a]、正常応答を返す[P05]。ディスクノード(DP2)300は、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し[P04b]、正常応答を返す[P05]。そして、ディスクノード(DP3)400も、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し[P04c]、正常応答を返す[P05]。
制御ノード100は、メタデータ変更を指示した各ディスクノードからの正常終了応答を受信し[P06]、すべてのディスクノードから正常応答が得られたときは、管理ノード700に完了応答を返す[P07]。
以上の処理手順が実行され、複製論理ディスクが生成される。複製論理ディスク生成後のディスクノードの状態を説明する。図8は、複製論理ディスクが生成された後のディスクノードのスライス割当状態の一例を示した図である。
論理ディスク(LVOL1)1070の複製である複製論理ディスク(LVOL2)1071は、論理ディスク(LVOL1)1070と同様のセグメント構成をとる。
スライス割当(DP1)2001、スライス割当(DP2)3001及びスライス割当(DP3)4001は、複製論理ディスクが生成された後のディスクノード(DP1)200、ディスクノード(DP2)300及びディスクノード(DP3)400それぞれのスライス状態を示している。図では、図5に示した前の状態から変更された部分が斜線で示されている。
図に示したように、複製論理ディスク(LVOL2)1071のセグメントは、各ディスクノードの仮想スライスに割り当てられる。例えば、複製論理セグメントLVOL2−A1は、ディスクノード(DP1)200のスライスDP1−101に割り当てられている。同様に、複製論理セグメントLVOL2−A2はスライスDP1−102、複製論理セグメントLVOL2−A3はスライスDP1−103、複製論理セグメントLVOL2−A4はスライスDP2−101、セグメントLVOL2−A5はスライスDP2−102、複製論理セグメントLVOL2−A6はスライスDP2−103、複製論理セグメントLVOL2−A7はスライスDP3−101、複製論理セグメントLVOL2−A8はスライスDP3−102、に割り当てられている。なお、論理ディスク(LVOL1)1070のスライス割当の変更はない。
次に、このときのメタデータについて説明する。図9は、図8の状態を示したメタデータの一例を示した図である。
図9のメタデータ5001は、図6に示したメタデータ5000が、複製論理ディスク生成処理(P02)によって更新された状態を示している。各項目は、メタデータ5000と同様である。
更新された仮想スライスのメタデータについて説明する。
ディスクノード(DP1)200の仮想スライス(スライスID=101)のメタデータ5001aは、論理ディスク割当フラグが「TRUE」、複製スライスフラグが「TRUE」、論理ディスク情報の論理ディスクIDが「LVOL2」で先頭アドレスが「A1」、複製元論理ディスク情報の論理ディスクIDが「LVOL1」で先頭アドレスが「A1」に更新されている。これは、仮想スライスDP1−101に、複製論理セグメントLVOL2−A1が割り当てられ、その複製元が論理セグメントLVOL1−A1であることを示している。次の仮想スライスDP1−102には、複製論理セグメントLVOL2−A2が割り当てられ、その複製元が論理セグメントLVOL1−A2であることを示している。次の仮想スライスDP1−103には、複製論理セグメントLVOL2−A3が割り当てられ、その複製元が論理セグメントLVOL1−A3であることを示している。
このディスクノード(DP1)200について新たに更新されたメタデータは、メタデータ変更指示[P03]でディスクノード(DP1)200に送信される。このように、制御ノード100から各ディスクノードへのメタデータ変更指示は、更新された部分のみ抽出して行われる。ディスクノード(DP1)200は、受信したメタデータを該当するスライス領域に書き込む。ここでは、ディスクノード(DP1)200の仮想スライス(ID=101,102,103)のメタデータ格納領域が更新される。
ディスクノード(DP2)300の仮想スライス(スライスID=101)のメタデータ5001bは、論理ディスク割当フラグが「TRUE」、複製スライスフラグが「TRUE」、論理ディスク情報の論理ディスクIDが「LVOL2」で先頭アドレスが「A4」、複製元論理ディスク情報の論理ディスクIDが「LVOL1」で先頭アドレスが「A4」に更新されている。これは、仮想スライスDP2−101に、複製論理セグメントLVOL2−A4が割り当てられ、その複製元が論理セグメントLVOL1−A4であることを示している。次の仮想スライスDP2−102には、複製論理セグメントLVOL2−A5が割り当てられ、その複製元が論理セグメントLVOL1−A5であることを示している。次の仮想スライスDP2−103には、複製論理セグメントLVOL2−A6が割り当てられ、その複製元が論理セグメントLVOL1−A6であることを示している。
さらに、ディスクノード(DP3)400の仮想スライス(スライスID=101)のメタデータ5001cは、論理ディスク割当フラグが「TRUE」、複製スライスフラグが「TRUE」、論理ディスク情報の論理ディスクIDが「LVOL2」で先頭アドレスが「A7」、複製元論理ディスク情報の論理ディスクIDが「LVOL1」で先頭アドレスが「A7」に更新されている。これは、仮想スライスDP3−101に、複製論理セグメントLVOL2−A7が割り当てられ、その複製元が論理セグメントLVOL1−A7であることを示している。次の仮想スライスDP3−102には、複製論理セグメントLVOL2−A8が割り当てられ、その複製元が論理セグメントLVOL1−A8であることを示している。
次に、この状態でデータのリード要求があったときの処理手順について説明する。ここでは、データの読み出し先として、複製論理ディスク(LVOL2)のセグメント(LVOL2−A2)が指定されたとする。
図10は、複製論理ディスクのリード処理を示したシーケンス図である。
アクセスノード500から複製論理セグメントLVOL2−A2からデータを読み出すリード要求が、ディスクノード200に送信される[P11]。アクセスノード500は、メタデータを持っており、図9に示したメタデータ5001の論理ディスク情報を検索し、該当する複製論理セグメントLVOL2−A2を検出する。そして、検出された複製論理セグメントLVOL2−A2に対応するスライスアクセス情報に基づいて、読み出し先のディスクノードとスライスIDを特定する。ここでは、ディスクノード(DP1)200の仮想スライスDP1−102が特定される。こうして、ディスクノード(DP1)200に対し、リード要求(LVOL2−A2)が送信される。
リード要求(LVOL2−A2)を受けたディスクノード(DP1)200は、対応するスライスDP1−102のメタデータをチェックし、このスライスが実スライスであるか仮想スライスであるかを判別する[P12]。スライスDP1−102のメタデータのデータ領域フラグを読み出し、実スライス(TRUE)か、仮想スライス(FALSE)かを判定する。ここでは、仮想スライス(FALSE)となるので、メタデータから対応する複製元論理ディスク情報を読み出し、メタデータ照会を行う[P13]。図の例では、複製元ディスク情報として、論理セグメントLVOL1−A2が抽出され、メタデータ照会依頼とともに制御ノード100に送信される。制御ノード100は、メタデータ照会部130がメタデータ照会処理を行い、論理セグメントLVOL1−A2に対応するメタデータを抽出する[P14]。メタデータ照会処理では、図9に示したメタデータ5001の論理ディスク情報を検索し、該当するセグメントLVOL1−A2を照会する。そして、論理セグメントLVOL1−A2に関するメタデータを抽出し、これをディスクノード(DP1)200に返す[P15]。なお、送信されるメタデータは、全項目が含まれる必要がなく、少なくともセグメントのデータを格納するスライスを特定するスライスアクセス情報が含まれていればよい。この場合、スライスアクセス情報から抽出されるディスクノード(DP2)300のスライスDP2−1が送信される。
メタデータを受信したディスクノード(DP1)200は、メタデータから複製元セグメントのデータが格納されるディスクノード(DP2)300のスライスDP2−1を特定することができる。そこで、リード転送部230がリード転送処理を開始し[P16]、メタデータに基づいて論理セグメントLVOL1−A2のデータを格納するディスクノード(DP2)300に対し、スライスDP2−1のリード要求を行う[P17]。リード要求を受信したディスクノード(DP2)300は、該当するスライスDP2−1のデータ領域からデータを読み出し、ディスクノード200に送信する[P18]。これにより、データがディスクノード(DP1)200に送られる[P19]。
ディスクノード(DP2)200は、要求された複製論理ディスクLVOL2の複製論理セグメントLVOL2−A2の複製元となる論理セグメントLVOL1−A2のデータを取得し、このデータをアクセスノード500に転送する[P20]。こうして、複製元のデータがアクセスノード500に送られ[P21]、リード処理が終了する。
上記の処理手順によれば、複製論理ディスクへのリード要求に対しては、リード要求先に対応する複製元の論理ディスクのデータが格納されるスライスが検出され、このスライスから読み出されたデータがリードデータとして転送される。このように、複製論理ディスクの更新されていないデータは複製元と共有されるため、構成が冗長とならない。
なお、制御ノード100へのメタデータ照会[P13]は、対象のスライスについて1回行っておけば、複製元スライスが変更されない限り、再度行う必要はない。そこで、制御ノード100へのメタデータ照会[P13]によって取得したメタデータ、または複製元のスライスアクセス情報を複製元スライス情報として記憶手段に蓄積しておき、利用するとしてもよい。詳細は後述する。
図10のシーケンス図の各処理でアクセスされるディスクのデータ領域について説明する。図11は、図10の各処理でアクセスされるデータ領域を示した図である。図10と同じものには、同じ番号を付し、説明は省略する。
端末装置801などから、複製論理ディスク(LVOL2)1071の複製論理セグメントLVOL2−A2をアクセス先とするリード要求が発行される[P10]。アクセスノード500は、自身が保有するメタデータに基づいて、リード要求先の複製論理セグメントLVOL2−A2に割り当てられたスライスは、ディスクノード(DP1)200のスライスDP1−102であることを検出する。そこで、スライスDP1−102をアクセス先とするリード要求を出力する[P11]。
リード要求を受けたディスクノード(DP1)200は、自身が保有するメタデータに基づいて、スライスDP1−102が仮想スライスであることを検出し、複製元の論理セグメントを特定する。そして、制御ノード100に対してメタデータ照会を行って、複製元の論理セグメントLVOL1−A2に関するメタデータを取得する。
続いて、取得したメタデータに基づき、複製元の論理セグメントLVOL1−A2のデータを格納する複製元のスライスDP2−1を特定する。この複製元のスライスDP2−1を管理するディスクノード(DP2)300に対し、リード要求を行う[P17]。そして、取得したデータを、アクセスノード500に転送する[P21]。
このように、仮想スライスに対するリード要求があったときは、複製元のデータが格納される複製元スライスが特定され、複製元スライスからデータの読み出しが行われる。
図12は、複製元スライス情報の一例を示した図である。
複製元スライス情報6000は、メタデータ照会[P13]によって制御ノード100から取得したメタデータから抽出されるスライスアクセス情報6001と、論理ディスク情報6002と、から構成される。スライスアクセス情報6001には、複製元論理ディスクのセグメントのデータを格納するスライスを特定するディスクノードIDと、スライスIDとが格納される。また、論理ディスク情報6002には、複製元論理ディスクのセグメントを特定する論理ディスクIDと、先頭アドレスとが格納される。
メタデータ照会[P13]では、制御ノード100によって、リード要求のあった仮想スライスのメタデータにおいて複製元論理ディスク情報に設定されるセグメントが、論理ディスク情報に設定されるメタデータが抽出される。こうして抽出されたメタデータのスライスアクセス情報には、複製元論理ディスクのセグメントのデータを格納するスライスの識別情報が設定されている。
このスライスアクセス情報6001と、論理ディスク情報6002は、メタデータ照会[P13]によってメタデータが取得されるごとに、取得したメタデータから抽出されて記憶される。また、スライスアクセス情報6001の登録に基づいて行ったリード転送処理でメタデータエラーとなったときは、このスライスアクセス情報が現状と一致していないと判断し、削除する。
次に、複製元スライス情報を用いたリード要求の処理手順について説明する。図13は、複製元スライス情報を用いたリード処理を示したシーケンス図である。図10と同じ処理には同じ番号を付し、説明は省略する。
図10に示したリード要求手順と同様に、リード要求(LVOL2−A2)を受信した[P11]後、メタデータチェックによってリード要求されたセグメントのデータを格納するスライスが仮想スライスであるか実スライスであるかが判定される[P12]。ここでは、メタデータに基づいて、リード要求されたセグメントLVOL2−A2は、仮想スライスであったとする。続いて、複製元スライス情報6000に、この仮想スライスに対応する複製元のスライスアクセス情報が存在するかどうかを調べ、存在するときはこれを読み出す[P22]。図12に示した複製元スライス情報6000の論理ディスク情報と、メタデータチェックで抽出された該当スライスのメタデータの複製元論理ディスク情報とを照合し、一致するものを検出する。一致すれば、このスライスアクセス情報で指定されるスライスを複製元のスライスとする。一致するものがないときは、図10に示したメタデータ照会[P13]以降の処理を行う。
図13の例では、複製元スライス情報6000に該当するスライスアクセス情報が存在し、このスライスアクセス情報に基づいてリード転送処理が行われる[P16]。リード転送処理以降の処理は、図10と同様であるので説明は省略する。
このように、照会されたメタデータを複製元スライス情報として記憶しておき、次回以降のリード要求処理で参照することにより、メタデータ照会の手間を省き、処理時間を短縮することができる。
しかし、照会されたメタデータは、制御ノード100によって更新されることがある。この場合、更新前のメタデータに基づいてリード転送処理を行うと、データを読み出すことができず、エラーとなってしまう。このようなケースでの処理手順について説明する。
図14は、複製元のスライスに関するメタデータが更新されていた場合のリード要求処理の手順を示した図である。図10、図13と同じものには同じ番号を付し、説明は省略する。
ここでは、図13の手順と同様に、複製元スライス情報読み出し[P22]によって、読み出された複製元スライス情報6000のスライスアクセス情報に基づいてリード転送処理が行われる[P16]。しかし、複製元スライス情報は、制御ノード100がディスクノード(DP2)300に関するスライス割当を更新する前の情報である。このため、ディスクノード(DP2)300によるリード処理は、メタデータエラーを検出し[P18]、メタデータエラーの応答がディスクノード(DP1)200に返る[P23]。ディスクノード(DP1)は、メタデータエラーを受け取ったので、メタデータが更新されていることを検知する。そこで、制御ノード100に対してメタデータ照会を行い[P24]、複製元論理ディスク情報に基づくメタデータ照会依頼を送信する[P25]。メタデータ照会以降の処理は、図10と同様であるので説明は省略する。
このように、複製元スライス情報の内容が現状と一致しなくなり、リード要求が失敗したときは、再度メタデータの照会依頼を行う。そして、照会されたメタデータに基づいてリード転送処理を行うことができる。
なお、リード要求処理では、複製論理ディスクに対する仮想スライスの割り当ては更新されない。仮想スライスはデータ領域を持たないが、複製元のセグメントのデータが格納される複製元スライスを特定し、そのデータを転送することにより、データ領域を持ったときと同様に機能させることができる。
次に、ライト要求を受信したときの処理について説明する。ここでは、データの書き込み先として、複製論理ディスク(LVOL2)の複製論理セグメントLVOL2−A2が指定されたとする。
図15は、複製論理ディスクのライト処理を示したシーケンス図である。
アクセスノード500からデータのライト要求(LVOL2−A2)が、ディスクノード(DP1)200に送信される(P31)。アクセスノード500は、図9に示したメタデータ5001の論理ディスク情報を検索し、ライト要求のアクセス先として複製論理セグメントLVOL2−A2を検出する。そして、検出された複製論理セグメントLVOL2−A2に対応するスライスアクセス情報に基づいて、書き込み先のディスクノード(DP1)200と、スライスDP1−102を特定する。こうして、アクセスノード500からディスクノード(DP1)200に対し、ライト要求が送信される[P31]。
ライト要求(LVOL2−A2)を受けたディスクノード(DP1)200は、ライト要求で指定されたスライスDP1−102に関するメタデータをチェックし、このスライスが実スライスであるか仮想スライスであるかを判別する[P32]。スライスIDが102のメタデータのデータ領域フラグを読み出し、実スライス(TRUE)か、仮想スライス(FALSE)かを判定する。ここでは、仮想スライス(FALSE)となるので、未割当エラーをアクセスノード500に返す[P33]。
ディスクノード(DP1)200から未割当エラーを取得したアクセスノード500は、制御ノード100に対し、このセグメントを実スライスに割り当てるように割当要求を行う[P34]。
アクセスノード500から割当要求[P34]を取得した制御ノード100は、対応するセグメントを実スライスに再割当する再割当処理を行う[P35]。制御ノード100の割当処理では、メタデータを検索し、セグメントに未割当の実スライスを検出する。そして、セグメントに、検出された実スライスを割り当て、複製先スライスとする。ここでは、ディスクノード(DP3)400の実スライスDP3−3が検出されたとする。同様に、メタデータ5001に基づいて、複製元の論理セグメントのデータを保有する複製元スライスを特定する。メタデータ5001から、未割当エラーが発生した複製論理セグメントLVOL2−A2の複製元論理ディスク情報に基づき、複製元のセグメントを特定する。ここでは、論理セグメントLVOL1−A2が特定される。さらに、論理セグメントLVOL1−A2が論理ディスク情報に登録されるメタデータを検索し、そのスライスアクセス情報を抽出する。ここでは、スライスDP2−1が特定される。こうして、複製元スライスDP2−1と、複製先スライスDP3−3とを特定し、複製元スライスDP2−1を管理するディスクノード(DP2)300にスライスコピー指示を出力する[P36]。
スライスコピー指示を受け取ったディスクノード(DP2)300は、複製元スライスDP2−1のデータを順次読み出し、ディスクノード(DP3)400の複製先スライスDP3−3にコピーするスライスコピー処理を行う[P37]。これにより、ディスクノード(DP2)300からディスクノード(DP3)400に向けて、スライスコピーのデータが送信される[P38]。スライスコピー・データを受け取った複製先スライスDP3−3を管理するディスクノード(DP3)400は、このデータを複製先スライスDP3−3に書き込むスライスコピー処理を行う[P39]。そしてスライスコピー処理終了後、正常応答をディスクノード(DP2)300に返す[P40]。ディスクノード(DP2)300は、複製先スライスへのデータ正常書き込み完了を確認し、正常応答を制御ノード100に返す[P41]。
続いて、再割当終了後の処理について説明する。図16は、再割当終了後の複製論理ディスクのライト処理を示したシーケンス図である。
制御ノード100は、再割当が終了し、複製元スライスDP2−1から複製先スライスDP3−3へのスライスコピーが正常終了した後、再割当後の状態に合わせてメタデータを更新する[P42]。ここでは、再割当により複製論理セグメントLVOL2−A2に割り当てられた実スライスDP3−3のメタデータと、再割当前に複製論理セグメントLVOL2−A2に割り当てられていた仮想スライスDP2−102のメタデータが更新される。再割当で割り当てられた実スライスDP3−3は、論理ディスク割当フラグを「TRUE」、複製スライスフラグを「TRUE」、論理ディスク情報を「LVOL2−A2」、複製元論理ディスク情報を「LVOL1」とする。また、元々割り当てられていた仮想スライスDP2−102は、割当を解除する。仮想スライスDP2−102のメタデータの論理ディスク割当フラグを「NULL」にし、関連する情報項目をリセットする。そして、更新されたメタデータを、それぞれディスクノード(DP1)200と、ディスクノード(DP3)400に送信し、メタデータ変更依頼を行う[P43]。
メタデータ変更依頼を受けたディスクノード(DP1)200は、メタデータ変更処理[P44a]、ディスクノード(DP3)400はメタデータ変更処理[P44b]をそれぞれ実行し、メタデータを更新する。その後、正常応答[P45]を制御ノード100に返す。制御ノード100は、スライスコピーが正常に終了したときは、アクセスノード500にメタデータを送信し[P46]、再割当が正常に終了したことを通知する正常応答を返す[P47]。アクセスノード500は、正常応答を受け、自装置内に格納されるメタデータを受信したメタデータに変更する[P48]。以降、アクセス先を再割当された実スライスDP3−3とし、ライト処理が可能となる。
アクセスノード500は、再割当されたスライスDP3−3を管理するディスクノード(DP3)400に対し、ライト要求を再度行う[P49]。ディスクノード(DP3)400は、取得したライト要求に基づいてライト処理し[P50]、正常応答をアクセスノード500に返す[P51]。
図15,16のシーケンス図の各処理でアクセスされるディスクのデータ領域について説明する。図17は、図15,16の各処理でアクセスされるデータ領域を示した図である。図15,16と同じものには、同じ番号を付し、説明は省略する。
スライス割当(DP1)2002、スライス割当(DP2)3002及びスライス割当(DP3)4002は、スライスが再割当された後のディスクノード(DP1)200、ディスクノード(DP2)300及びディスクノード(DP3)400が管理するスライス状態を示している。
端末装置801などから、複製論理ディスク1071の複製論理セグメントLVOL2−A2にライト要求が発行される[P30]。アクセスノード500は、自身が保有するメタデータに基づいて、論理セグメントLVOL2−A2に割り当てられたスライスは、ディスクノード(DP1)200が管理するスライスDP1−102であることを検出する。そこで、スライスDP1−102を管理するディスクノード(DP1)200に対し、スライスDP1−102をアクセス先とするライト要求を出力する[P31]。
ライト要求を受けたディスクノード(DP1)200は、自身が保有するメタデータに基づいて、要求されたスライスDP1−102が仮想スライスであることを検出し、未割当エラーをアクセスノード500に返す[P33]。
未割当エラーを受信したアクセスノード500は、制御ノード100にスライスの割当依頼を行う。制御ノード100の再割当処理によって、実スライスであるスライスDP3−3にセグメントが再割当される[P35]。そして、複製元の論理セグメントのデータが格納される複製元スライスDP2−1から、複製論理セグメントLVOL2−A2に再割当された複製先スライスDP3−3へのスライスコピーが行われる[P37]。その後、複製論理セグメントLVOL2−A2に割り当てられていた元の仮想スライスDP1−102への割当は解除される[P42]。
このように、仮想スライスが割り当てられているセグメントへライト要求があった時点で、新たに実スライスへの再割当が行われ、複製元のデータが再割当された実スライスにコピーされる。これにより、複製論理ディスクの生成時のコピー処理を省くことができる。また、必要のない(更新されない)セグメントについては、仮想スライスが割り当てられ、データコピーが生じないため、冗長な構成となることを防止できる。
ここで、再割当処理によって更新されるメタデータについて説明する。図18は、再割当処理の前と後のメタデータを示した図である。
実スライス割当前のメタデータ5003は、再割当処理の前のメタデータである。また、実スライス割当後のメタデータ5004は、再割当処理の後のメタデータである。
実スライス割当前のメタデータ5003は、複製論理ディスク生成時のメタデータ5001から、最初に複製論理セグメントに割り当てられた仮想スライスと、再割当後に割り当てられた実スライスのメタデータを抽出したものである。メタデータ5003aは、複製論理ディスクLVOL2−A2生成時に、複製論理セグメントLVOL2−A2に割り当てられた、仮想スライスDP1−102のメタデータである。メタデータ5003bは、再割当前でセグメントが割り当てられていない実スライスDP3−3のメタデータである。
仮想スライスDP1−102のメタデータ5003aは、データ領域フラグが「FALSE」、論理ディスク割当フラグが「TRUE」、複製スライスフラグが「TRUE」、論理ディスク情報が「LVOL2,A2」、複製元論理ディスク情報が「LVOL1,A2」と設定されている。これは、仮想スライスDP1−102がデータ領域を持たず、論理セグメントLVOL2−A2に割り当てられていることを表している。また、論理セグメントLVOL2−A2は、論理セグメントLVOL1−A2の複製であることも設定されている。実スライスDP3−3のメタデータ5003bは、データ領域フラグが「TRUE」、論理ディスクフラグが「FALSE」である。これは、実スライスDP3−3が、データ領域を持っており、この時点では、論理セグメントが割り当てられていないことを表している。
この状態で、再割当処理が行われ、複製論理セグメントLVOL2−A2に割り当てられるスライスが、仮想スライスDP1−102から実スライスDP3−3に変わる。
実スライス割当後のメタデータ5004は、再割当処理後のメタデータから、仮想スライスDP1−102のメタデータ5004aと、実スライスDP3−3のメタデータ5004bとを抽出したデータである。割当が解除された仮想スライスDP1−102のメタデータ5004aは、論理ディスク割当フラグが「FALSE」に更新され、未割当となったことが示されている。実スライスDP3−3のメタデータ5004bは、データ領域フラグが「TRUE」、論理ディスクフラグが「TRUE」、複製スライスフラグが「FALSE」、論理ディスク情報が「LVOL2,A2」、複製元論理ディスク情報が「NULL,NULL」と設定されている。これは、実スライスDP3−3が、複製論理セグメントLVOL2−A2に割り当てられたことを表している。なお、再割当処理時に、複製元の論理セグメントLVOL1−A2に対応するスライスDP2−1のデータは、実スライスDP3−3にコピーされ、その後更新されている。このため、以降のリード要求時には、複製元の論理セグメントLVOL1−A2のデータではなく、複製論理セグメントLVOL2−A2のデータを読み出す。したがって、複製スライスフラグと、複製元論理ディスク情報には、「NULL」が登録される。
上記のようにして実スライスへの再割当処理が行われ、実スライス割当前のメタデータ5003が、実スライス割当後のメタデータ5004に更新される。この更新メタデータは、図16に示したようにアクセスノード500に送信される。
図19は、再割当後にアクセスノードに送信されるメタデータの一例を示した図である。
アクセスノード500は、指定された論理セグメントのアクセス先として、この論理セグメントに割り当てられたスライスを特定し、特定されたスライスに対してアクセス要求を行う。そこで、割当先が変更になったときは、更新されたメタデータがアクセスノード500に送信される。
アクセスノード500へ送信される送信メタデータ7000には、新たに論理セグメントに割り当てられたスライスを特定するスライスアクセス情報7001と、この論理セグメントを特定する論理ディスク情報7002と、が含まれる。これは、実スライス割当後のメタデータ5004から、新たにセグメントが割り当てられた実スライス(DP3−3)に関するメタデータ5004bのスライスアクセス情報と、論理ディスク情報とを抽出したものである。
このように、ライト要求があったときに、仮想スライスに割り当てられたセグメントが実スライスに再割当され、複製元のスライスに格納されるデータが再割当された実スライスのデータ領域にコピーされる。すなわち、実際にデータを更新する必要が生じるまで、複製論理セグメントには仮想スライスが割り当てられる。
次に、制御ノード100及びディスクノード200,300,400が実行する複製論理ディスクの割当制御方法の処理手順を、フローチャートを用いて説明する。
図20は、制御ノードの複製論理ディスクの作成処理の手順を示したフローチャートである。管理ノード700から、複製論理ディスクの作成要求を取得し、処理が開始される。なお、以下の説明で、()内の処理は、ディスクノード200,300,400が実行する処理である。
[ステップS101] 複製論理ディスク生成処理を行う。複製論理ディスク生成処理では、複製論理ディスクのセグメントが、ディスクノード200,300,400の仮想スライスに割り当てられる。そして、セグメントが割り当てられた仮想スライスについて、その論理ディスク情報及び複製元論理ディスク情報を含むメタデータが生成される。詳細は後述する。
[ステップS102] ステップS101において、複製論理ディスクのセグメントが割り当てられた仮想スライスを管理するディスクノード200,300,400に対し、該当する仮想スライスのメタデータを送信し、メタデータの変更を指示する。
(メタデータを取得したディスクノード200,300,400は、取得したメタデータをメタデータ記憶領域に格納し、メタデータを更新する。そして、制御ノード100に対し正常応答を返す。)
[ステップS103] ステップS102でメタデータの変更指示を行ったディスクノード200,300,400からの応答を待つ。すべてのディスクノード200,300,400から応答を受け取るか、応答待ち時間が一定時間経過したときは、次ステップへ処理を進める。
[ステップS104] ディスクノード200,300,400のすべてから応答を受け取り、かつ、受け取った応答が、正常応答であるかどうかを判定する。すべて正常応答であったときは、処理をステップS105に進める。応答なし、あるいは、正常応答でない応答があったときは、処理をステップS106に進める。
[ステップS105] すべてのディスクノードから正常応答を受け取ったときは、複製論理ディスク生成が終了したと判断し、複製論理ディスク作成終了通知を管理ノード700に返し、処理を終了する。
[ステップS106] すべてのディスクノードから正常応答を受け取ることができなかったときは、エラー処理を行い、処理を終了する。再度、ステップS101に戻って、複製論理ディスク生成処理からの手順を行うとしてもよい。
以上の処理手順が実行されることにより、複製論理ディスクが生成され、その複製論理セグメントには仮想スライスが割り当てられる。
ここで、複製論理ディスク生成処理について説明する。図21は、複製論理ディスク生成処理の手順を示したフローチャートである。
[ステップS1011] 作成する複製論理ディスクを識別するIDを生成する。生成されたIDは、この複製論理ディスクの複製論理セグメントに割り当てたスライスに関するメタデータの論理ディスク情報の論理ディスクIDに設定される。
[ステップS1012] 複製元の論理ディスクの先頭アドレスが最も小さいセグメントに割り当てられ、そのセグメントのデータが格納される先頭スライスをXとする。こうして、複製元の論理ディスクのアドレスが小さいスライスから順に複製処理を行う。なお、ここでの複製処理は、複製論理ディスクの全領域に仮想スライスを割り当てる処理を言う。この先頭スライスに指定されたスライスに関するメタデータを読み出す。
[ステップS1013] 複製元の論理ディスクの全領域に対応するすべてのスライスについての複製処理が終了したかどうかを判定する。複製が終了していないものがあれば、処理をステップS1014に進める。すべてのスライスの複製が終了していれば、処理を終了する。
[ステップS1014] すべてのスライスの複製が終了していないときは、複製論理ディスクに割り当てるスライスとして、データ領域のない仮想スライスのうち、論理ディスク及び複製論理ディスクが未割当の仮想スライスを検索する。メタデータを照合し、データ領域フラグが「FALSE」、論理ディスク割当フラグが「NULL」のものを検索する。そうして、検索された未割当の仮想スライスの1つを選択し、この仮想スライスをYとする。
[ステップS1015] ステップS1014で選択された仮想スライスYのメタデータを更新する。具体的には、仮想スライスYがスライスアクセス情報に登録されるメタデータについて、論理ディスク割当フラグを「TRUE」、複製スライスフラグを「TRUE」にする。これにより、複製論理ディスクの未割当の領域に、この仮想スライスYが割り当てられる。次に、論理ディスク情報の論理ディスクIDに、ステップS1011で設定した複製論理ディスクを識別するIDを設定する。先頭アドレスには、スライスXのアドレスを設定する。複製元論理ディスク情報に、スライスXの論理ディスク情報を設定する。
[ステップS1016] 複製元の論理ディスクのスライスXを、次のアドレスのスライスに設定する。そして、このスライスに関するメタデータを読み出し、処理をステップS1013に進める。
こうして、複製論理ディスクにこの時点で未割当の仮想スライスが割り当てられ、メタデータが生成される。上記の複製論理ディスク生成処理では、メタデータのみが更新され、論理ディスクのデータのコピーは行われない。
次に、制御ノード100による複製論理ディスクのスライス再割当処理について説明する。図22は、制御ノードの再割当処理の手順を示したフローチャートである。
アクセスノード500からスライスの再割当要求を受信し、処理が開始される。
[ステップS111] 制御ノード100が保有するメタデータ5001に基づいて、論理ディスク及び複製論理ディスクに未割当の実スライスを検索する。具体的には、データ領域フラグが「TRUE」(実スライス)、論理ディスク割当フラグが「NULL」(未割当)であるスライスを検索する。そして、検出された実スライスを割当候補とする。複数の実スライスが検出されるときは、例えば、同じ複製論理ディスクに属するセグメントに割り当てられたスライスの少ないもの、などの条件により候補を決定する。例えば、メタデータ5001から、実スライスDP3−3が特定されたとする。
[ステップS112] メタデータ5001に基づいて、複製元のデータが格納されるスライスを特定する。図15の例であれば、未割当エラーが発生した複製論理セグメントLVOL2−A2の複製元論理ディスク情報に基づき、複製元の論理セグメントLVOL1−A2が特定される。さらに、メタデータ5001を検索して論理ディスク情報に、この論理セグメントLVOL1−A2が登録されるメタデータを抽出する。そして、抽出されたメタデータのスライスアクセス情報に基づいて、この論理セグメントLVOL1−A2のデータを格納する複製元スライスを特定する。図15の例では、スライスDP2−1が特定される。
[ステップS113] ステップS112で検出された複製元スライスDP2−1を管理するディスクノード(DP2)300に対し、スライスコピーを依頼する。スライスコピーは、ステップS111で再割当された実スライスDP3−3を複製先として依頼される。
(依頼を受けた複製元スライスDP2−1を管理するディスクノード(DP2)300では、実スライスDP2−1に格納されるデータを、複製先の実スライスDP3−3へ転送し、書き込みを依頼する。正常終了で、制御ノード100に対して正常応答を返す。)
制御ノード100の処理の説明に戻る。
[ステップS114] ステップS113で複製元スライス(DP2−1)を管理するディスクノード(DP2)300から、スライスコピーに対する応答を待つ。応答が得られ、正常終了であれば、処理をステップS115に進める。応答が得られたが正常終了でないとき、または、一定時間が経過しても応答を得られなかったときは、処理をステップS111に進め、次の再割当候補の検索からの処理を行う。
[ステップS115] スライスコピーが正常に終了したときは、メタデータを変更する。複製先の実スライスDP3−3のメタデータの論理ディスク割当フラグを「TRUE」、複製スライスフラグを「TRUE」、論理ディスク情報を「LVOL2−A2」、複製元論理ディスク情報を「LVOL1−A2」とする。また、元々割り当てられていた仮想スライスの割当を解除する。仮想スライスのメタデータの論理ディスク割当フラグを「NULL」にし、関連する情報項目をリセットする。
[ステップS116] ステップS115で変更したメタデータを、関連するスライスを管理するディスクノード200,300,400に送信し、メタデータの更新を依頼する。ここでは、ディスクノード(DP3)400に対し、スライスDP3−3を複製論理セグメントLVOL2−A2に割り当てたメタデータを送信し、更新を依頼する。また、ディスクノード(DP1)200に対し、スライスDP1−102の割当を解除したメタデータを送信し、更新を依頼する。さらに、アクセスノード500に対し、再割当が終了したことを通知する応答とともに、更新メタデータを送信する。
以上の処理手順が行われ、データの仮想スライスへの新規書き込み時、対応するセグメントが実スライスに再割当され、複製元のデータが再割当された実スライスにコピーされた後、データの書き込みが可能となる。
次に、ディスクノード側の処理について説明する。
図23は、ディスクノードのリード処理の手順を示したフローチャートである。
アクセスノード500からのリード要求を受信して、処理が開始される。
[ステップS201] アクセスノード500からリード要求のあったデータ領域に対応するスライスが、仮想スライスであるか否かを判定する。データ領域が含まれるスライスのメタデータを抽出し、データ領域フラグを確認する。データ領域フラグが「FALSE」であれば仮想スライス、「TRUE」であれば実スライスになる。実スライスであれば、処理をステップS202に進める。仮想スライスであれば、処理をステップS203に進める。
[ステップS202] リード要求の対象のスライスが実スライスであれば、該当データ領域からデータを読み出し、ステップS207に処理を進める。
[ステップS203] リード要求の対象スライスが仮想スライスであれば、複製元のスライスに関する複製元スライス情報が存在するか否かをチェックする。存在しなければ、処理をステップS204に進める。存在するときは、処理をステップS205に進める。
[ステップS204] 複製元スライス情報が存在しないときは、メタデータからこのスライスに関する複製元論理ディスク情報を読み出す。そして、制御ノード100に対し、複製元論理ディスクを指示してメタデータを照会する。制御ノード100からは、照会した複製元論理ディスクのデータが格納されるスライスのスライスアクセス情報を含むメタデータが取得される。そこで、取得したメタデータからスライスアクセス情報を抽出し、複製元スライス情報として記憶手段に格納する。
[ステップS205] 複製元スライス情報に登録される複製元スライスを管理するスライスノードに対し、データのリード要求を行う。スライスノードからの応答を受信するか、応答待ち時間が経過するまで待ち、次ステップへ処理を進める。
[ステップS206] ステップS205でリード要求を行った対象の複製元スライスからデータを正常に受信できたかどうかを判定する。正常に受信できたときは、処理をステップS207に進める。データを受信できなかったときは、複製元の論理セグメントのデータを格納するスライスが変更になったことが想定される。そこで、ステップS204に戻って制御ノード100への複製元のスライスに関するメタデータ照会からの処理を行う。
[ステップS207] 該当データ領域から読み出されたデータ、または、複製元スライスから読み出されたデータを、アクセスノード500に送信し、処理を終了する。
以上の処理手順が実行されることにより、アクセスノード500からのリード要求に対し、該当するデータ領域のデータが読み出され、送信される。このとき、リード要求されたデータ領域が実スライスにあるときは、そのまま実スライスからデータが読み出される。そして、リード要求されたデータ領域が仮想スライスにあるときは、メタデータに基づいて複製元スライスを管理するストレージノードにデータ読み出しを転送し、得られたデータを読み出しデータとする。このように、アクセスノード500は、要求先が仮想スライスまたは実スライスであるかを確認することなく、リード要求を行うことができる。
次に、ライト関連処理の手順について説明する。ライト関連処理とは、ライト要求があったときの処理と、ライト処理に関連し、再割当されたスライスに対するデータのコピーが要求されたときの処理を言う。
図24は、ディスクノードのライト関連処理の手順を示したフローチャートである。
ライト関連の処理要求を受信し、処理が開始される。
[ステップS211] 受信された要求がライト要求であるかどうかを判定する。ライト要求であれば、処理をステップS212に進める。ライト要求でなければ、処理をステップS216に進める。
[ステップS212] 受信された要求がライト要求であったときは、ライト要求の対象のデータ領域に対応するスライスが、仮想スライスであるか否かを判定する。データ領域が含まれるスライスのメタデータを抽出し、データ領域フラグを確認する。データ領域フラグが「FALSE」であれば仮想スライス、「TRUE」であれば実スライスになる。実スライスであれば、処理をステップS213に進める。仮想スライスであれば、処理をステップS214に進める。
[ステップS213] ライト要求の対象のスライスが実スライスであれば、該当データ領域へデータを書き込み、ステップS215に処理を進める。
[ステップS214] ライト要求の対象スライスが仮想スライスであれば、未割当を設定する。
[ステップS215] ライト要求を行ったアクセスノードに対し応答を返し、処理を終了する。書き込み対象のデータ領域が実スライスのときは、データの書き込みが行われ、その結果(正常終了またはエラー)を応答として返す。書き込み対象のデータ領域が仮想スライスのときは、データ領域が割り当てられていないという未割当エラーを応答として返す。
[ステップS216] 受信された要求がライト要求でないときは、要求がスライスコピー要求であるかどうかを判定する。スライスコピー要求であれば、処理をステップS217に進める。スライスコピー要求でなければ、ライト関連処理を終了する。
[ステップS217] 複製元スライスとして指示されたスライスのデータを読み出し、複製先スライスに転送するデータ転送処理を行う。
[ステップS218] スライスコピーを要求した制御ノード100に対し、スライスコピーが終了したことを通知する応答を返す。
以上の処理手順が実行されることにより、仮想スライスにライト要求があったときは、対応する論理セグメントに実スライスを再割当し、複製元のスライスのデータが複製先にコピーされる。
以上の処理手順が実行されることにより、アクセスノード500からのライト要求に対し、該当するデータ領域にデータが書き込まれる。このとき、ライト要求されたデータ領域が実スライスにあるときは、そのまま実スライスにデータが書き込まれる。ライト要求されたデータ領域が仮想スライスにあるときは、一旦未割当エラーが発生するが、未割当エラーにより、対応する論理セグメントは実スライスに再割当される。このとき、複製元スライスを管理するスライスノードは、再割当された複製先の実スライスに、データをコピーするスライスコピーを実行し、複製先の実スライスのデータを複製元スライスに一致させる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理内容を記述した割当制御プログラムが提供される。その割当制御プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現され、割当制御装置として機能する。この割当制御処理の内容を記述した割当制御プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の実施の形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1) 論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムにおいて、
コンピュータを、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段、
として機能させることを特徴とする割当制御プログラム。
(付記2) 前記再割当手段は、前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を管理する前記ストレージ管理装置に対し、前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域を通知して複写要求を行い、前記複製元論理ボリューム分割領域に対応する前記実記憶領域から前記複製論理ボリューム分割領域に対応する前記実記憶領域へのデータ複写処理を実行させる、
ことを特徴とする付記1記載の割当制御プログラム。
(付記3) 前記再割当手段は、前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求を行ったアクセス装置が、前記複製論理ボリュー分割領域に前記実記憶領域が割り当てられていないことを通知するエラーを取得したときに送信する前記実記憶領域の再割当要求を取得したとき、前記再割当要求に応じて前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったことを検知する、
ことを特徴とする付記1または2記載の割当制御プログラム。
(付記4) 前記再割当手段は、前記実記憶領域への再割当が行われた前記複製論理ボリューム分割領域に再割当前に割り当てられていた前記仮想記憶領域への割り当てを解除して前記管理情報を更新し、更新された前記管理情報を、割り当てを解除した前記仮想記憶領域を管理する前記ストレージ管理装置に送信する、
ことを特徴とする付記1〜3のいずれか1項に記載の割当制御プログラム。
(付記5) 前記コンピュータを、さらに、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する前記ストレージ管理装置から、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリュームの識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する管理情報照会手段、
として機能させることを特徴とする付記1〜4のいずれか1項に記載の割当制御プログラム。
(付記6) 論理ボリュームを複数のストレージ装置に分散配置して管理する割当制御装置において、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段と、
を有することを特徴とする割当制御装置。
(付記7) 論理ボリュームを複数のストレージ装置に分散配置する割当制御方法において、
割当制御装置が、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する手順と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する手順と、
を行うことを特徴とする割当制御方法。
(付記8) 前記ストレージ管理装置が、前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて、前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に関する前記管理情報を前記割当制御装置に要求する手順と、
前記割当制御装置が、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリュームの識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する手順と、
前記ストレージ管理装置が、前記複製元実記憶領域の識別情報に基づいて、前記複製元実記憶領域を管理するストレージ管理装置に要求して前記複製元実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する手順と、
を有することを特徴とする付記7記載の割当制御方法。
(付記9) 前記ストレージ管理装置が、前記割当制御装置から取得した前記複製元実記憶領域の識別情報と、前記複製元論理ボリューム分割領域とを関連付けた複製元情報を生成して記憶手段に記憶しておく手順をさらに有し、
前記ストレージ管理装置が、前記複製元論理ボリューム分割領域に関する前記管理情報を前記割当制御装置に要求する手順は、前記データ読み出し要求を取得したときは、前記記憶手段に格納される前記複製元情報を検索し、前記複製元論理ボリューム分割領域に関する前記複製元情報が検出されたときは該複製元情報に基づいて前記複製元実記憶領域を特定し、検出されないときは前記割当制御装置へ前記管理情報の照会を行うことを特徴とする付記8記載の割当制御方法。
10 制御ノード
10a 管理情報記憶手段
10b 論理ボリューム生成手段
10c 管理情報照会手段
10d 再割当手段
20 ストレージノード
20a 管理情報更新手段
20b リード要求処理手段
20c リード転送手段
20d ライト要求処理手段
20e データ複写手段
21 ストレージ装置
21a 実スライス領域
21b 仮想スライス領域

Claims (5)

  1. 論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムにおいて、
    コンピュータを、
    論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段、
    前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に含まれる、前記実記憶領域と前記仮想記憶領域の区別を示す領域情報と、前記論理ボリューム分割領域の前記実記憶領域または前記仮想記憶領域への割り当ての有無を示す割当情報とに基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段、
    として機能させることを特徴とする割当制御プログラム。
  2. 前記再割当手段は、前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を管理する前記ストレージ管理装置に対し、前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域を通知して複写要求を行い、前記複製元論理ボリューム分割領域に対応する前記実記憶領域から前記複製論理ボリューム分割領域に対応する前記実記憶領域へのデータ複写処理を実行させる、
    ことを特徴とする請求項1記載の割当制御プログラム。
  3. 前記コンピュータを、さらに、
    前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する前記ストレージ管理装置から、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリューム分割領域の識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する管理情報照会手段、
    として機能させることを特徴とする請求項1または2記載の割当制御プログラム。
  4. 論理ボリュームを複数のストレージ装置に分散配置して管理する割当制御装置において、
    論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段と、
    前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に含まれる、前記実記憶領域と前記仮想記憶領域の区別を示す領域情報と、前記論理ボリューム分割領域の前記実記憶領域または前記仮想記憶領域への割り当ての有無を示す割当情報とに基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段と、
    を有することを特徴とする割当制御装置。
  5. 論理ボリュームを複数のストレージ装置に分散配置する割当制御方法において、
    割当制御装置が、
    論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する手順と、
    前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に含まれる、前記実記憶領域と前記仮想記憶領域の区別を示す領域情報と、前記論理ボリューム分割領域の前記実記憶領域または前記仮想記憶領域への割り当ての有無を示す割当情報とに基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する手順と、
    を行うことを特徴とする割当制御方法。
JP2009015470A 2009-01-27 2009-01-27 割当制御プログラム、割当制御装置及び割当制御方法 Expired - Fee Related JP5277991B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009015470A JP5277991B2 (ja) 2009-01-27 2009-01-27 割当制御プログラム、割当制御装置及び割当制御方法
US12/651,522 US8230191B2 (en) 2009-01-27 2010-01-04 Recording medium storing allocation control program, allocation control apparatus, and allocation control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009015470A JP5277991B2 (ja) 2009-01-27 2009-01-27 割当制御プログラム、割当制御装置及び割当制御方法

Publications (2)

Publication Number Publication Date
JP2010176189A JP2010176189A (ja) 2010-08-12
JP5277991B2 true JP5277991B2 (ja) 2013-08-28

Family

ID=42355001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009015470A Expired - Fee Related JP5277991B2 (ja) 2009-01-27 2009-01-27 割当制御プログラム、割当制御装置及び割当制御方法

Country Status (2)

Country Link
US (1) US8230191B2 (ja)
JP (1) JP5277991B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725684B1 (en) * 2011-03-31 2014-05-13 Amazon Technologies, Inc. Synchronizing data stores
US9304946B2 (en) * 2012-06-25 2016-04-05 Empire Technology Development Llc Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
US9552295B2 (en) 2012-09-25 2017-01-24 Empire Technology Development Llc Performance and energy efficiency while using large pages
US10757175B2 (en) * 2015-02-10 2020-08-25 Vmware, Inc. Synchronization optimization based upon allocation data
US10466914B2 (en) * 2015-08-31 2019-11-05 Pure Storage, Inc. Verifying authorized access in a dispersed storage network
WO2017200527A1 (en) * 2016-05-16 2017-11-23 Hewlett-Packard Development Company, L.P. Generating a shape profile for a 3d object
US10102067B2 (en) * 2016-07-14 2018-10-16 International Business Machines Corporation Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition
US20180181310A1 (en) * 2016-12-23 2018-06-28 Cloudendure Ltd. System and method for disk identification in a cloud based computing environment
CN108243106B (zh) 2016-12-23 2020-09-04 华为技术有限公司 控制网络切片的方法、转发设备、控制设备和通信系统
US10379942B2 (en) * 2017-09-27 2019-08-13 International Business Machines Corporation Efficient transfer of objects between containers on the same vault
US11042411B2 (en) 2019-03-15 2021-06-22 Toshiba Memory Corporation Data storage resource management
WO2022190681A1 (ja) * 2021-03-09 2022-09-15 富士フイルム株式会社 ストレージシステム、データ処理方法、及びデータ処理プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3044477B2 (ja) * 1990-11-16 2000-05-22 株式会社日立製作所 分散ファイルアクセス方法
JPH0773085A (ja) * 1993-07-02 1995-03-17 Hitachi Ltd データ処理システムおよびメタデータの先読み方法
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
JPH1145203A (ja) * 1997-07-28 1999-02-16 Matsushita Electric Ind Co Ltd ファイル管理装置
JP2001051890A (ja) * 1999-08-10 2001-02-23 Toshiba Corp 仮想分散ファイルサーバシステム
JP4175764B2 (ja) * 2000-05-18 2008-11-05 株式会社日立製作所 計算機システム
JP4711688B2 (ja) * 2003-05-21 2011-06-29 富士通株式会社 ストレージシステム
US7395396B2 (en) * 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
JP2007323589A (ja) 2006-06-05 2007-12-13 Fujitsu Ltd 仮想ボリュームのコピー制御方法、コピー制御装置、およびコピー制御プログラム
US20090240880A1 (en) * 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP2009282800A (ja) * 2008-05-23 2009-12-03 Hitachi Ltd ストレージ装置及びその制御方法
US8347059B2 (en) * 2008-08-15 2013-01-01 International Business Machines Corporation Management of recycling bin for thinly-provisioned logical volumes

Also Published As

Publication number Publication date
JP2010176189A (ja) 2010-08-12
US20100191757A1 (en) 2010-07-29
US8230191B2 (en) 2012-07-24

Similar Documents

Publication Publication Date Title
JP5277991B2 (ja) 割当制御プログラム、割当制御装置及び割当制御方法
JP5142629B2 (ja) 仮想ボリュームのバックアップを行うストレージシステム及び方法
JP4438457B2 (ja) 記憶領域割当方法、システム及び仮想化装置
US8499191B2 (en) Failure recovery method for information processing service and virtual machine image generation apparatus
CN103608798B (zh) 集群文件服务
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
JP5718533B1 (ja) ストレージシステムのデータ移行方法
JP4615344B2 (ja) データ処理システム及びデータベースの管理方法
US20100199041A1 (en) Storage Subsystem And Storage System Architecture Performing Storage Virtualization And Method Thereof
US20080184000A1 (en) Storage module and capacity pool free capacity adjustment method
US8386707B2 (en) Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
US11144252B2 (en) Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object
US20130036279A1 (en) Storage system using real data storage area dynamic allocation method
JP2013531283A (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
JP2004227558A (ja) 仮想化制御装置およびデータ移行制御方法
JP4201447B2 (ja) 分散処理システム
JP2004295465A (ja) 計算機システム
JP2008146408A (ja) データ記憶装置、そのデータ再配置方法、プログラム
CN106528338B (zh) 一种远程数据复制方法、存储设备及存储系统
JP5422657B2 (ja) ストレージシステム及びストレージシステムの処理効率向上方法
US20130138916A1 (en) Storage apparatus and its control method
US8838768B2 (en) Computer system and disk sharing method used thereby
US20050198411A1 (en) Commingled write cache in dual input/output adapter
US20210103400A1 (en) Storage system and data migration method
CN101373418B (zh) 存储系统和访问方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5277991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees