JP5218284B2 - 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法 - Google Patents

仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法 Download PDF

Info

Publication number
JP5218284B2
JP5218284B2 JP2009132712A JP2009132712A JP5218284B2 JP 5218284 B2 JP5218284 B2 JP 5218284B2 JP 2009132712 A JP2009132712 A JP 2009132712A JP 2009132712 A JP2009132712 A JP 2009132712A JP 5218284 B2 JP5218284 B2 JP 5218284B2
Authority
JP
Japan
Prior art keywords
slice
data
disk
storage device
node
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
JP2009132712A
Other languages
English (en)
Other versions
JP2010073190A (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 JP2009132712A priority Critical patent/JP5218284B2/ja
Priority to US12/502,752 priority patent/US8386707B2/en
Priority to EP09165890A priority patent/EP2157504A3/en
Publication of JP2010073190A publication Critical patent/JP2010073190A/ja
Application granted granted Critical
Publication of JP5218284B2 publication Critical patent/JP5218284B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • 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/0613Improving I/O performance in relation to throughput
    • 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/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/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]

Landscapes

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

Description

本発明は複数のストレージ装置へ仮想ディスクを介したアクセスを行う仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法に関し、特に運用中にストレージ装置の追加が可能な仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法に関する。
大規模なコンピュータネットワークではデータの信頼性を確保するため、データを複数のストレージデバイスに多重化して格納する場合がある。データを多重化させる手法の1つとして、データをネットワーク上の複数のノード(ディスクノード)それぞれに接続されたストレージデバイスに分散格納する方法がある。このように、ネットワーク上の複数のディスクノードでデータを分散管理するシステムを、マルチノードストレージシステムと呼ぶ。
マルチノードストレージシステムでは、アクセスを行うノード(アクセスノード)内に仮想ディスクを定義し、仮想ディスクを介してデータの入出力を行う。仮想ディスク内の記憶領域は複数のセグメントに分割され、各セグメントがストレージデバイスの複数の記憶領域を対応付けられる。アプリケーションが仮想ディスクのセグメントを指定してデータの書き込みを行うと、書き込み対象のセグメントに対応付けられた複数のストレージデバイスにデータが書き込まれる。このようにデータを多重化することで、データの信頼性を高めることができる。
国際公開第2004/104845号パンフレット
ところで、データを2重化させた場合、ストレージデバイスにおいて格納するデータ量の2倍の記憶領域が使用される。そこで、資源の無駄遣いを減らすためにも、信頼性が要求されないデータについては2重化せずに管理されることが多い。ただし、コンピュータシステムを長期間運用していると、従来、高い信頼性は不要と考えられていたデータについても、2重化によるデータの信頼性の確保が必要となる場合がある。この場合、既にストレージデバイスに格納されているデータを、2重化の対象となる仮想ディスクに移行する必要がある。
既にストレージデバイス(既使用ディスク)に格納されているデータを、仮想ディスクを用いた2重化の対象とするには、以下のような2つのデータの移行方法が考えられる。
まず、既使用ディスクへのアクセスを止めて良い場合には、以下のデータ移行方法が可能である。
1.仮想ディスクを作成後、既使用ディスクへのアクセスを停止する。
2.既使用ディスク内のデータを仮想ディスクにコピーする。
ただし、このようなデータ移行方法ではコピー中に既使用ディスクにアクセスできず、データ移行に伴うサービス停止期間が発生してしまう。コピーは既使用ディスクのアクセスを止められない場合には、以下の手順でデータの移行処理が行われる。
1.仮想ディスクを作成後、既使用ディスクのスナップショットを使用中のOS(Operating System)で作成する。なお、スナップショットとは、ある時点におけるディスク全体のデータを仮想的に複製する技術である。例えば、コピー・オン・ライト方式のスナップショットでは、スナップショット作成時に、データとそのデータが格納されたディスク内のブロックとの関係が記録される。そして、ディスクへのアクセスが監視されデータが更新される、更新前のデータが別の領域(シャドーコピー領域)にコピーされる。これにより、スナップショット作成時のディスク内のデータを維持することができる。
2.使用中のOS経由でスナップショットを仮想ディスクにコピーする。このとき、スナップショット作成後に更新されたデータはシャドーコピー領域から読み出され、更新されていないデータは既使用ディスクから読み出される。仮想ディスクにコピーされたデータは、実際には、その仮想ディスクを構成するセグメントに対応付けられた複数のディスク装置に書き込まれる。
3.既使用ディスクへのアクセスを停止して、既使用ディスクを仮想ディスクに同期する。すなわち、既使用ディスクのスナップショット作成以後に更新されたデータを、仮想ディスクにコピーする。これにより、既使用ディスクの内容と仮想ディスクの内容とが同一となる。
4.仮想ディスクへのアクセスを開始する。
しかし、上記2つのデータ移行技術には以下の課題がある。
2つのデータ移行方法共に、ディスクの容量に比例したコピー時間が必要である。そのため、大容量のディスク装置のデータ移行に長い時間がかかる。コピー時間が長ければ、既使用ディスクを接続するコンピュータはコピーの間余計な処理負荷がかかり、システム全体の処理効率の低下を招く。
本発明はこのような点に鑑みてなされたものであり、既存のディスクに格納されたデータの仮想ディスクへの移行を効率的に行うことができる仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法を提供することを目的とする。
上記課題を解決するために、以下の処理を行う仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法が提供される。
第1のディスクノードは、接続対象ストレージ装置の接続通知を制御ノードに送信する。制御ノードは、接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。さらに、制御ノードは、仮想ディスクを構成する所定の1セグメントに対して接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、既接続ストレージ装置を有する第2のディスクノードに対して割当結果を示す移転データ用メタデータを送信する。第2のディスクノードは、移転データ用メタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置に格納されているメタデータを、移転データ用メタデータに変更する。その後、制御ノードは、接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、第1のディスクノードに対して、管理情報領域内のデータの、既接続ストレージ装置のデータ移転先スライスへのコピー要求を送信する。第1のディスクノードは、コピー要求を受信すると、管理情報領域内のデータを第2のディスクノードに送信する。第2のディスクノードは、第1のディスクノードから受信したデータをデータ移転先スライスに書き込む。さらに、制御ノードは、接続対象ストレージ装置の所定の1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、仮想ディスクの所定の1セグメント以外のセグメントに割り当て、第1のディスクノードに対して、接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、管理情報領域への書き込み要求を送信する。第1のディスクノードは、制御ノードから書き込み要求を受信すると、既存データ用メタデータを管理情報領域に書き込む。そして、制御ノードは、仮想ディスクを介して接続対象ストレージ装置および既接続ストレージ装置へアクセスを行うアクセスノードに対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する。
上記仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法によれば、既にデータが格納されている接続対象ストレージ装置の1スライス分の管理情報領域以外のデータのコピーを行わずに、接続対象ストレージ装置内のデータに対して仮想ディスク経由でアクセス可能となる。その結果、接続対象ストレージ装置から仮想ディスクへ効率的にデータを移行することができる。
実施の形態の概要を示す図である。 本実施の形態のマルチノードストレージシステム構成例を示す図である。 制御ノードのハードウェア構成例を示す図である。 仮想ディスクのデータ構造を示す図である。 マルチノードストレージシステムの各装置の機能を示すブロック図である。 ストレージ装置のデータ構造例を示す図である。 メタデータ記憶部のデータ構造例を示す図である。 仮想ディスクメタデータ記憶部のデータ構造例を示す図である。 追加対象のストレージ装置のデータ構造変更例を示す図である。 既存ストレージ装置の追加機能を示すブロック図である。 既使用のストレージ装置組み込み処理の手順を示すシーケンス図である。 仮想ディスク作成処理の手順を示すフローチャートである。 新たに作成された仮想ディスクメタデータテーブルを示す図である。 ディスクノードにおける変更後のメタデータを示す図である。 メタデータ書き込み処理の手順を示すフローチャートである。 組み込まれたストレージ装置に対応するメタデータテーブルを示す図である。 既使用のストレージ装置を組み込み後のスライス割当関係を示す図である。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。マルチノードストレージシステムは、制御ノード1、ディスクノード2,3、およびアクセスノード4を有する。制御ノード1は、マルチノードストレージシステムへの新たなストレージ装置の組み込み、仮想ディスクの作成・管理を行う。ディスクノード2とディスクノード3とは、接続されたストレージ装置の記憶領域を複数のスライスに分割して管理する。アクセスノード4は、マルチノードストレージシステムで提供されるストレージ装置に対して、仮想ディスクを介してアクセスを行う。
ディスクノード2には、既にデータ5aが格納されている接続対象ストレージ装置5を有している。図1の例では、この接続対象ストレージ装置5をマルチノードストレージシステムに新たに組み込む場合を想定している。ディスクノード3には、既接続ストレージ装置6を有している。既接続ストレージ装置6は、既にマルチノードストレージシステムに組み込まれており、仮想ディスクへのスライスの割当が可能な状態となっている。
このようなマルチノードストレージシステムに対して、既にデータ5aが格納されている接続対象ストレージ装置5を組み込むために、各ノードは以下の機能を有する。
制御ノード1は、仮想ディスク生成手段1a、第1のスライス割当手段1b、コピー要求送信手段1c、第2のスライス割当手段1d、スライス割当情報送信手段1eを有する。仮想ディスク生成手段1aは、ディスクノード2から接続対象ストレージ装置5の接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。第1のスライス割当手段1bは、仮想ディスクを構成する所定の1セグメントに対して既接続ストレージ装置6の1スライスをデータ移転先スライスとして割り当てる。さらに第1のスライス割当手段1bは、既接続ストレージ装置6を有するディスクノード3に対して割当結果を示す移転データ用のメタデータを送信する。コピー要求送信手段1cは、接続対象ストレージ装置5内の1スライス分の記憶領域を管理情報領域5bとする。そしてコピー要求送信手段1cは、ディスクノード2に対して、管理情報領域5b内のデータの、既接続ストレージ装置6のデータ移転先スライスへのコピー要求を送信する。第2のスライス割当手段1dは、接続対象ストレージ装置5の所定の1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライス5ca,5cb,・・・を、仮想ディスクの所定の1セグメント以外のセグメントに割り当てる。そして、第2のスライス割当手段1dは、ディスクノード2に対して、接続対象ストレージ装置5のスライス5ca,5cb,・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ5ba,5bb,・・・の、管理情報領域5bへの書き込み要求を送信する。スライス割当情報送信手段1eは、仮想ディスクを介して接続対象ストレージ装置5および既接続ストレージ装置6へアクセスを行うアクセスノード4に対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用のメタデータを送信する。
ディスクノード2は、接続通知送信手段2a、データ送信手段2b、およびメタデータ書き込み手段2cを有する。接続通知送信手段2aは、接続対象ストレージ装置5の接続通知を制御ノード1に送信する。データ送信手段2bは、制御ノード1からコピー要求を受信すると、管理情報領域5b内のデータを既接続ストレージ装置6が接続されたディスクノード3に送信する。メタデータ書き込み手段2cは、制御ノード1から、接続対象ストレージ装置5のスライス5ca,5cb,・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ5ba,5bb,・・・の、管理情報領域5bへの書き込み要求を受信すると、既存データ用のメタデータ5ba,5bb,・・・を管理情報領域5bに書き込む。
ディスクノード3は、メタデータ変更手段3aとデータ書き込み手段3bとを有する。メタデータ変更手段3aは、制御ノード1から移転データ用のメタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置6に格納されているメタデータを、移転データ用のメタデータに変更する。データ書き込み手段3bは、第1のディスクノード2から管理情報領域5b内のデータを受信すると、移転データ用のメタデータに基づいてデータ移転先スライスを判断し、受信したデータをデータ移転先スライスに書き込む。
このような構成により、以下のような処理が実行される。
まず、ディスクノード2の接続通知送信手段2aが、接続対象ストレージ装置5の接続通知を制御ノード1に送信する。例えば、接続通知送信手段2aは、ディスクノード2に接続対象ストレージ装置5が接続されたことを検出したときに、接続通知を送信する。すると、制御ノード1の仮想ディスク生成手段1aが、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。次に制御ノード1の第1のスライス割当手段1bが、仮想ディスクを構成する所定の1セグメントに対して既接続ストレージ装置6の1スライスをデータ移転先スライスとして割り当てる。さらに、第1のスライス割当手段1bが、ディスクノード3に対して割当結果を示す移転データ用のメタデータを送信する。ディスクノード3ではメタデータ変更手段3aが、移転データ用のメタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置6に格納されているメタデータを、移転データ用のメタデータに変更する。
その後、制御ノード1のコピー要求送信手段1cが、接続対象ストレージ装置5内の1スライス分の記憶領域を管理情報領域5bとし、第1のディスクノード2に対して、管理情報領域5b内のデータの、既接続ストレージ装置6のデータ移転先スライスへのコピー要求を送信する。すると、ディスクノード2のデータ送信手段2bが、管理情報領域5b内のデータをディスクノード3に送信する。ディスクノード3では、データ書き込み手段3bが、ディスクノード2から受信したデータをデータ移転先スライスに書き込む。
さらに、制御ノード1の第2のスライス割当手段1dが、接続対象ストレージ装置5の所定の1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライス5ca,5cb,・・・を、仮想ディスクの所定の1セグメント以外のセグメントに割り当てる。さらに、第2のスライス割当手段1dが、ディスクノード2に対して、接続対象ストレージ装置5のスライス5ca,5cb,・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ5ba,5bb,・・・の、管理情報領域5bへの書き込み要求を送信する。ディスクノード2では、メタデータ書き込み手段2cが、制御ノード1から書き込み要求を受信すると、既存データ用のメタデータ5ba,5bb,・・・を管理情報領域5bに書き込む。
そして、制御ノード1のスライス割当情報送信手段1eが、仮想ディスクを介して接続対象ストレージ装置5および既接続ストレージ装置6へアクセスを行うアクセスノード4に対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用のメタデータを送信する。
このように、接続対象ストレージ装置5の1スライス分のデータが、他のストレージ装置にコピーされ、コピー済みの領域が管理情報領域5bとされる。そして、管理情報領域5bに、残りのスライス5ca,5cb,・・・分のメタデータ5ba,5bb,・・・が書き込まれる。なお、管理情報領域5bには、接続対象ストレージ装置5がマルチノードストレージシステムに組み込まれたことを示す識別情報も格納することができる。仮想ディスクの定義と、その仮想ディスクに割り当てたスライスのメタデータの設定により、接続対象ストレージ装置5のマルチノードストレージシステムへの組み込みが完了する。組み込みが完了すれば、接続対象ストレージ装置5に格納されていたデータ5aへの仮想ディスクを介したアクセスが可能になる。
なお、接続対象ストレージ装置5に格納されていたデータ5aを2重化する場合は、リカバリプロセスが開始される。リカバリプロセスは、上記の第1のスライス割当手段1bおよび第2のスライス割当手段1dで割り当てられたスライス(プライマリスライス)から、仮想ディスクの各セグメントに重複して割り当てられたスライス(セカンダリスライス)へデータをコピーする処理である。なお、リカバリプロセス中であってもプライマリスライスへのアクセスノード4からのアクセスは可能である。
このように、既にデータが格納されている接続対象ストレージ装置5をディスクノード2に接続するだけでデータを仮想ディスクとしてアクセスできる。移行時間はメタデータの変更と先頭スライスのコピーの時間の合計であり、既存ディスクのサイズに依存しない。スライスが1GBであれば、1分以内でデータの移行が完了する。なお、2重化が必要な場合はリカバリプロセスが開始される。リカバリを行うとマルチノードストレージシステム内で大量のデータのコピーが発生するがリカバリ中もアクセスは可能であり、サービスを停止させる必要はない。
しかも、接続対象ストレージ装置5の内部データのみでなく、接続対象ストレージ装置5がマルチノードストレージシステムに組み込まれる。そのため、仮想ディスクへのデータ移行後に接続対象ストレージ装置5が未使用になることがなく、資源の有効利用が図れる。
ところで、図1に示した接続対象ストレージ装置5や既接続ストレージ装置6は、単一のディスク装置であってもよいし、多数のディスク装置を内蔵するRAID(Redundant Arrays of Inexpensive Disks)システムであってもよい。RAIDシステムであれば、多重にデータの信頼性を高めることができる。そこで、RAIDシステムをストレージ装置として使用し、さらにネットワークを介して接続された複数のディスクノードでデータの2重化を行う場合を例に採り、本実施の形態の詳細を説明する。
図2は、本実施の形態のマルチノードストレージシステム構成例を示す図である。本実施の形態では、ネットワーク10を介して、複数のディスクノード100,200,300,400、制御ノード500、アクセスノード30、および管理ノード50が接続されている。ディスクノード100,200,300,400それぞれには、ストレージ装置110,210,310,410が接続されている。
ストレージ装置110には、複数のハードディスク装置(HDD)111,112,113,114が実装されている。ストレージ装置210には、複数のHDD211,212,213,214が実装されている。ストレージ装置310には、複数のHDD311,312,313,314が実装されている。ストレージ装置410には、複数のHDD411,412,413,414が実装されている。各ストレージ装置110,210,310,410は、内蔵するHDDを用いたRAIDシステムである。本実施の形態では、各ストレージ装置110,210,310,410のRAID5のディスク管理サービスを提供する。本実施の形態では、運用中のマルチノードストレージシステムに対して、ストレージ装置410を新たに組み込むものとする。
ディスクノード100,200,300,400は、例えば、IA(Intel Architecture)と呼ばれるアーキテクチャのコンピュータである。ディスクノード100,200,300,400は、接続されたストレージ装置110,210,310,410に格納されたデータを管理し、管理しているデータをネットワーク10経由で端末装置21,22,23に提供する。また、ディスクノード100,200,300,400は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも2つのディスクノードで管理されている。
制御ノード500は、ディスクノード100,200,300,400を管理する。例えば、制御ノード500は、ディスクノード100,200,300,400から新たなストレージ装置の接続通知を受け取ると、新たな仮想ディスクを定義し、その仮想ディスクを介して接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
アクセスノード30には、ネットワーク20を介して複数の端末装置21,22,23が接続されている。アクセスノード30には、仮想ディスクが定義されている。そして、アクセスノード30は、端末装置21,22,23からの仮想ディスク上でのデータのアクセス要求に応答して、ディスクノード100,200,300,400内の対応するデータへアクセスする。
管理ノード50は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード50では、マルチノードストレージシステムにおける仮想ディスクの使用量などの情報を収集し、運用状況を画面に表示する。
図3は、制御ノードのハードウェア構成例を示す図である。制御ノード500は、CPU(Central Processing Unit)501によって装置全体が制御されている。CPU501には、バス507を介してRAM(Random Access Memory)502、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、および通信インタフェース506が接続されている。
RAM502は、制御ノード500の主記憶装置として使用される。RAM502には、CPU501に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU501による処理に必要な各種データが格納される。HDD503は、制御ノード500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置504には、モニタ11が接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
入力インタフェース505には、キーボード12とマウス13とが接続されている。入力インタフェース505は、キーボード12やマウス13から送られてくる信号を、バス507を介してCPU501に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
通信インタフェース506は、ネットワーク10に接続されている。通信インタフェース506は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、制御ノード500のハードウェア構成を示しているが、ディスクノード100,200,300,400、アクセスノード30、および管理ノード50も同様のハードウェア構成で実現することができる。
なお、この例ではディスクノード400が有するストレージ装置410が、マルチノードストレージシステムに新たに追加されるものとする。ストレージ装置410の追加前は、ストレージ装置110,210,310を用いた仮想ディスクに対して、アクセスノード30からのアクセスが可能となっている。
図4は、仮想ディスクのデータ構造を示す図である。本実施の形態では、仮想ディスク60には仮想ディスク識別子「LVOL−X」が付与されている。ネットワーク経由で接続された3台のディスクノード100,200,300には、個々のノードの識別のためにそれぞれ「SN−A」、「SN−B」、「SN−C」というノード識別子が付与されている。そして、各ディスクノード100,200,300に接続されているストレージ装置110,210,310は、ディスクノード100,200,300のノード識別子によってネットワーク10で一意に識別される。
各ディスクノード100,200,300が有するストレージ装置110,210,310それぞれにおいてRAID5のストレージシステムが構成されている。各ストレージ装置110,210,310で提供される記憶機能は、複数のスライス115a〜115e,215a〜215e,315a〜315eに分割されて管理されている。
仮想ディスク60は、セグメント61〜64という単位で構成される。セグメント61〜64の記憶容量は、ストレージ装置110,210における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。仮想ディスク60の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。セグメント61〜64は、それぞれプライマリスライス61a,62a,63a,64aとセカンダリスライス61b,62b,63b,64bとの組(スライスペア)で構成される。
同一セグメントに属する2つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
図4の例では、仮想ディスク60内のスライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント61のプライマリスライス61aが「P1」で示され、セカンダリスライス61bが「S1」で示される。
図5は、マルチノードストレージシステムの各装置の機能を示すブロック図である。アクセスノード30は、仮想ディスクアクセス制御部31を有している。仮想ディスクアクセス制御部31は、端末装置21,22,23からの仮想ディスク60内のデータを指定したアクセス要求に応じて、指定されたデータを管理するディスクノードに対してデータアクセスを行う。具体的には、仮想ディスクアクセス制御部31は、アクセス対象のデータが記憶された仮想ディスク60内のブロックを特定する。次に、仮想ディスクアクセス制御部31は、特定したブロックに対応するセグメントを特定する。さらに、仮想ディスクアクセス制御部31は、予め取得しているメタデータを参照し、セグメントを構成するプライマリスライスに対応するディスクノードおよびそのディスクノード内のスライスを特定する。そして、仮想ディスクアクセス制御部31は、特定したディスクノードに対して、特定したスライスへのアクセス要求を出力する。
なお、アクセスノード30の仮想ディスクアクセス制御部31からディスクノード400に接続されたストレージ装置410にアクセスできるのは、ストレージ装置410がマルチノードストレージシステムに組み込まれた後である。ストレージ装置410がマルチノードストレージシステムに組み込まれる前は、アクセスノード30は、仮想ディスクを介さずにストレージ装置410に直接アクセスする。その場合、アクセスノード30のアプリケーションが、ストレージ装置410のネットワーク上の位置を認識している必要がある。
制御ノード500は、仮想ディスク管理部510と仮想ディスクメタデータ記憶部520とを有している。
仮想ディスク管理部510は、ディスクノード100,200,300,400が有するストレージ装置110,210,310,410内のスライスを管理する。例えば、仮想ディスク管理部510は、システム起動時に、ディスクノード100,200,300,400に対してメタデータ取得要求を送信する。そして、仮想ディスク管理部510は、メタデータ取得要求に対して返信されたメタデータから仮想ディスクメタデータを生成し、仮想ディスクメタデータ記憶部520に格納する。
仮想ディスクメタデータ記憶部520は、ディスクノード100,200,300,400から収集されたメタデータに基づいて生成された仮想ディスクメタデータを記憶する記憶装置である。例えば、制御ノード500内のRAM502の記憶領域の一部が仮想ディスクメタデータ記憶部520として使用される。
ディスクノード100は、データアクセス部120、データ管理部130、およびメタデータ記憶部140を有している。
データアクセス部120は、アクセスノード30からの要求に応答して、ストレージ装置110内のデータにアクセスする。具体的には、データアクセス部120は、アクセスノード30からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置110から取得し、リード要求の送信元であるアクセスノード30に返信する。また、データアクセス部120は、アクセスノード30からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置110内に格納する。
なお、ディスクノード100のデータ管理部130は、データアクセス部120によってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたスライス(プライマリスライス)に対応するセカンダリスライスを管理するディスクノードのデータ管理部と連携動作し、セカンダリスライス内のデータを更新する。すなわち、データ管理部130は、更新されたデータをセカンダリスライスを管理するディスクノードに送信する。そのデータを受け取ったディスクノードのデータ管理部は、セカンダリスライスにそのデータを書き込む。これにより、2重化されたデータの一貫性が保たれる。
さらに、データ管理部130は、仮想ディスク管理部510からのメタデータ取得要求に応答して、メタデータ記憶部140に記憶されたメタデータを仮想ディスク管理部510に対して送信する。
メタデータ記憶部140は、メタデータを記憶する記憶装置である。例えば、RAM内の記憶領域の一部がメタデータ記憶部140として使用される。なお、メタデータ記憶部140に格納されるメタデータは、システム停止時にはストレージ装置110内に格納され、システム起動時にメタデータ記憶部140に読み込まれる。
他のディスクノード200,300,400は、ディスクノード100と同様の機能を有している。すなわち、ディスクノード200は、データアクセス部220、データ管理部230、およびメタデータ記憶部240を有している。ディスクノード300は、データアクセス部320、データ管理部330、およびメタデータ記憶部340を有している。ディスクノード400は、データアクセス部420、データ管理部430、およびメタデータ記憶部440を有している。ディスクノード200,300,400内の各要素は、ディスクノード100内の同名の要素と同じ機能を有している。
次に、ストレージ装置110内のデータ構造を詳細に説明する。
図6は、ストレージ装置のデータ構造例を示す図である。ストレージ装置110には、スライス115a,115b,115c,・・・とは別に、デバイス情報116と複数のメタデータ117a,117b,117c,・・・とが格納されている。
デバイス情報116は、ストレージ装置110の管理に使用される情報である。例えば、デバイス情報116には、ストレージ装置110がマルチノードストレージシステムに組み込まれていることを示す情報が含まれる。また、デバイス情報116には、メタデータ格納形式が含まれる。メタデータ格納形式は、各メタデータ117a,117b,117c,・・・が対応するスライスと連続の記憶領域に格納されているのか、あるいはメタデータ117a,117b,117c,・・・を一纏めにして、スライスとは個別の記憶領域に格納されているのかを示す情報である。本実施の形態では、各メタデータ117a,117b,117c,・・・が対応するスライスと連続の記憶領域に格納されている場合のメタデータ格納形式を「type1」とする。また、メタデータ117a,117b,117c,・・・を一纏めにして、スライスとは個別の記憶領域に格納されている場合のメタデータ格納形式を「type2」とする。
図6の例では、個々のスライスと連続の記憶領域に、そのスライスに対応するメタデータが格納されている。従って、ストレージ装置110のメタデータ格納形式は「type1」である。
ストレージ装置110に格納されたメタデータ117a,117b,117c,・・・は、ディスクノード100の起動時にデータ管理部130によって読み出され、メタデータ記憶部140に格納される。なお、データ管理部130は、デバイス情報116のメタデータ格納形式を参照し、ストレージ装置110のメタデータ117a,117b,117c,・・・が、対応するスライスと連続の記憶領域に格納されていることを認識できる。
図7は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部140には、メタデータテーブル141が格納されている。メタデータテーブル141には、ディスクノードID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、およびペアのスライスIDの欄が設けられている。メタデータテーブル141内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。
ディスクノードIDの欄は、ストレージ装置110を管理しているディスクノード100の識別情報(ディスクノードID)が設定される。
スライスIDの欄には、メタデータに対応するスライスのストレージ装置110内での識別情報(スライスID)が設定される。
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「F」が設定される。仮想ディスクのセグメントのプライマリスライスに割り当てられている場合、状態フラグ「P」が設定される。仮想ディスクのセグメントのセカンダリスライスに割り当てられている場合、状態フラグ「S」が設定される。仮想ディスクのセグメントに割り当てることが決定したが、まだデータのコピーが行われていない場合、予約済を示す状態フラグ「R」が設定される。
仮想ディスクIDの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報(仮想ディスクID)が設定される。
仮想ディスクアドレスの欄には、スライスが割り当てられているセグメントの先頭を示す仮想ディスク内でのアドレスが設定される。
ペアのディスクノードIDの欄には、ペアのスライス(同じセグメントに属する別のスライス)を有するストレージ装置を管理するディスクノードの識別情報(ディスクノードID)が設定される。
ペアのスライスIDの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報(スライスID)が設定される。
各ディスクノード100,200,300のメタデータ記憶部140,240,340に格納されたメタデータは、制御ノード500からの要求に応じて制御ノード500に送信される。制御ノード500では、ディスクノード100,200,300から収集したメタデータに基づいて、仮想ディスク60へのスライスの割当を定義した仮想ディスクメタデータを作成する。具体的には、制御ノード500の仮想ディスク管理部510が、収集したメタデータを仮想ディスクIDによって分類する。そして、仮想ディスク管理部510は、仮想ディスクIDが同じメタデータの集合を、その仮想ディスクIDで示される仮想ディスクに対応する仮想ディスクメタデータとする。作成された仮想ディスクメタデータは、仮想ディスクメタデータ記憶部520に格納される。
図8は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部520には、仮想ディスクメタデータテーブル521が格納されている。仮想ディスクメタデータテーブル521には、ディスクノードID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、およびペアのスライスIDの欄が設けられている。仮想ディスクメタデータテーブル521内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。仮想ディスクメタデータテーブル521の各欄に設定される情報は、メタデータテーブル141の同名の欄と同種の情報である。
なお、図8の例では、スライスペアを構成する各スライス(同じセグメントに割り当てられた2つのスライス)のメタデータを上下に並べているが、必ずしもそのように並べられている必要はない。
このようなシステムにおいて、マルチノードストレージシステムの管理対象外であったストレージ装置410をマルチノードストレージシステムに組み込む。例えば、管理者がストレージ装置410をディスクノード400に接続すると、ディスクノード400がストレージ装置410を検知し、組み込み処理を開始する。なお、管理者によるディスクノード400への操作入力に応答して、ストレージ装置410の組み込み処理を開始するようにしてもよい。また、管理ノード50への管理者の操作入力により管理ノード50からディスクノード400にストレージ装置410の組み込み指示が出され、その指示に応答して組み込み処理を開始するようにしてもよい。
ここで、ストレージ装置410のマルチノードストレージシステムへの組み込みを開始したディスクノード400では、データ管理部430がストレージ装置410内の記憶領域をスライスに分割すると共にメタデータの記憶領域を設ける。
図9は、追加対象のストレージ装置のデータ構造変更例を示す図である。第1の状態(ST1)は、データ構造変更前のストレージ装置410の記憶領域を示している。ストレージ装置410は、マルチノードストレージシステムに追加される前は、データを記録可能な全領域416に分散してデータが格納されている。このように、マルチノードストレージシステムに組み込まれずに使用されていたストレージ装置410には、図6に示したデバイス情報116やメタデータ117a,117b,117c,・・・に相当する情報の格納領域が設けられていない。そこで、データ管理部430は、まず全領域416をスライス単位データ(例えば1GB)ごとに分割する。
第2の状態(ST2)は、領域分割後の状態を示している。図9に示すような、全領域416は、複数の分割領域416a,416b,416c,・・・に分けられている。各分割領域416a,416b,416c,・・・のサイズは、マルチノードストレージシステムにおけるスライスのサイズと同じである。具体的には、データ管理部430は、ストレージ装置410の全領域416の先頭アドレスから、スライス単位データ分のアドレスを整数回加算して得られる各アドレスを、分割領域416a,416b,416c,・・・の先頭アドレスとする。そして、データ管理部430は、取得した先頭アドレスを境界として、複数の分割領域416a,416b,416c,・・・に分割されているものと認識する。すなわち、データ管理部430は、ストレージ装置410の全領域416を論理的に分割領域416a,416b,416c,・・・として分割して認識すればよく、ストレージ装置410内のデータフォーマット等の書き換えを行う必要はない。
本実施の形態では、先頭の分割領域416aが、メタデータやデバイス情報を格納するための管理情報領域となる。そこで、データ管理部430は、先頭の分割領域416aを他のストレージ装置(図9の例ではストレージ装置110)にコピーする。そして、データ管理部430は、メタデータ等の作成を行う。
第3の状態(ST3)は、メタデータ作成後の状態を示している。メタデータは、先頭の分割領域416a内に作成される。分割領域416aには、デバイス情報418と複数のメタデータ417a,417b,・・・が格納されている。また、他の分割領域416b,416c,・・・は、それぞれ管理対象のスライス415a,415b,・・・となる。メタデータ417a,417b,・・・は、それぞれスライス415a,415b,・・・に1対1で対応付けられている。
デバイス情報418には、ストレージ装置410におけるデータアクセス頻度などの各種統計情報に加え、メタデータ格納形式が登録されている。図9の例では、メタデータ417a,417b,・・・が分割領域416aに纏めて格納されているため、メタデータ格納形式は「type2」である。
図9に示したようなストレージ装置410のデータ構造の変更は、ディスクノード400のデータ管理部430によって行われる。また、先頭の分割領域416a内のデータの他のディスクノードへのコピーや、他の分割領域416b,416c,・・・をスライスとして管理するためのメタデータの作成は、制御ノード500の仮想ディスク管理部510の制御下で行われる。以下、マルチノードストレージシステムにおける既存ストレージ装置追加機能について詳細に説明する。
図10は、既存ストレージ装置の追加機能を示すブロック図である。なお、図10に示す各要素間の接続関係は、ディスクノード400が有する既存ストレージ装置の先頭の分割領域のデータをディスクノード100が管理するストレージ装置に移動する場合の情報の入出力関係を示している。
ディスクノード400のデータ管理部430は、既使用ディスク接続通知部431、先頭スライス送信部432、先頭スライス受信部433、およびメタデータ管理部434を有している。既使用ディスク接続通知部431は、既にデータが格納されているストレージ装置をマルチノードストレージシステムに追加することを制御ノード500に通知する。先頭スライス送信部432は、ストレージ装置410の記憶領域を分割したときの先頭のスライスデータを、他のディスクノードに転送する。先頭スライス受信部433は、他のディスクノードが管理する既存ストレージ装置がマルチノードストレージシステムに追加され、既存ストレージ装置の先頭のスライスデータの格納先として指定された場合、そのスライスデータを受信する。
メタデータ管理部434は、ストレージ装置410内のメタデータおよびメタデータ記憶部440内のメタデータを管理する。具体的には、メタデータ管理部434は、ストレージ装置410をマルチノードストレージシステムに組み込む際には、制御ノード500から通知された各スライス415a,415b,・・・のメタデータをストレージ装置410に格納する。マルチノードストレージシステムに組み込まれるストレージ装置410が未使用(有用なデータが格納されていない)の場合、メタデータ管理部434は、図6に示したようなメタデータ格納形式「type1」でメタデータを格納することもできる。しかし、本実施の形態では、ストレージ装置410が既使用(有用なデータが格納されてる)であるものとする。そこで、メタデータ管理部434は、図9に示したようなメタデータ格納形式「type2」でメタデータを格納する。
また、メタデータ管理部434は、ストレージ装置410に格納されたメタデータを、メタデータ記憶部440に転送する。例えば、ストレージ装置410がマルチノードストレージシステムに組み込まれた後は、ディスクノード400起動時にストレージ装置410内のデバイス情報418を参照し、メタデータ格納形式を判断する。次に、メタデータ管理部434は、メタデータ格納形式に基づいてメタデータの格納領域を判断し、ストレージ装置410からメタデータを読み出す。そして、メタデータ管理部434は、読み出したメタデータを、メタデータ記憶部440に格納する。
さらに、メタデータ管理部434は、システム運用中にメタデータの更新指示を制御ノード500から受け取ると、更新指示に従ってストレージ装置410とメタデータ記憶部440とのそれぞれのメタデータを更新する。なお、メタデータの更新指示は、新たなメタデータの書き込みを指示するメタデータ書き込み要求と、既存のメタデータの内容の変更を指示するメタデータ変更要求とがある。メタデータ管理部434は、メタデータの更新に伴って先頭スライスデータの受信が発生する場合、先頭スライス受信部433に対して、受信したデータの書き込み先となるスライスを通知する。
ディスクノード100のデータ管理部130は、既使用ディスク接続通知部131、先頭スライス送信部132、先頭スライス受信部133、およびメタデータ管理部134を有している。既使用ディスク接続通知部131、先頭スライス送信部132、先頭スライス受信部133、およびメタデータ管理部134は、それぞれディスクノード400内の同名の要素と同じ機能を有している。
制御ノード500の仮想ディスク管理部510は、既使用ディスク追加制御部511を有している。既使用ディスク追加制御部511は、既使用のストレージ装置をマルチノードストレージシステムへの組み込み処理を制御する。具体的には、既使用ディスク追加制御部511は、ディスクノード400から既使用ストレージ装置の接続通知を受け取ると、接続された既使用のストレージ装置410の記憶容量分の仮想ディスクを生成する。さらに、既使用ディスク追加制御部511は、生成した仮想ディスクに対してスライスの割当を行う。既使用のストレージ装置に応じて仮想ディスクが生成された場合、先頭のセグメントへは追加された既使用ストレージ装置とは異なるストレージ装置内のスライスが、プライマリスライスとして割り当てられる。2つ目以降のセグメントに対しては、接続対象ストレージ装置内のスライスがプライマリスライスとして割り当てられる。
スライスの割当が完了すると、既使用ディスク追加制御部511は、既使用のストレージ装置410に応じた仮想ディスクメタデータテーブルを生成し、仮想ディスクメタデータ記憶部520に格納する。そして、既使用ディスク追加制御部511は、仮想ディスクに割り当てられたスライスを管理するディスクノードに対して、メタデータの更新を指示する。また、既使用ディスク追加制御部511は、生成された仮想ディスクの先頭のセグメントに対してプライマリスライスとして割り当てられたスライスへの、データのコピー要求をディスクノード400に対して通知する。生成された仮想ディスクの先頭のセグメントのデータのコピーが完了し、各ディスクノード100,200,300,400において少なくともプライマリスライスのメタデータが更新されれば、アクセスノード30からの生成された仮想ディスクへのアクセスが可能となる。そこで、既使用ディスク追加制御部511は、アクセスノード30に対して、生成された仮想ディスクのメタデータを送信する。これにより、アクセスノード30が新たな仮想ディスクを認識し、以後、その仮想ディスクを介したデータアクセスが可能となる。
なお、図1に示した各ノード内の機能と図10の機能との対応関係は次の通りである。制御ノード1内の各機能は、既使用ディスク追加制御部511が有している。ディスクノード2内の接続通知送信手段2aの機能は、ディスクノード100,400の既使用ディスク接続通知部131,431が有する。ディスクノード2内のデータ送信手段2bの機能は、ディスクノード100,400の先頭スライス送信部132,432が有する。ディスクノード2のメタデータ書き込み手段2cおよびディスクノード3のメタデータ変更手段3aの機能は、ディスクノード100,400のメタデータ管理部134,434が有する。ディスクノード3のデータ書き込み手段3bの機能は、ディスクノード100,400の先頭スライス受信部133,433が有する。
次に、図10に示した構成による既使用のストレージ装置410のマルチノードストレージシステムへの組み込み処理について説明する。
図11は、既使用のストレージ装置組み込み処理の手順を示すシーケンス図である。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS11]ディスクノード400の既使用ディスク接続通知部431は、ストレージ装置410のマルチノードストレージシステムへの組み込みを指示する操作入力などに応答して、接続通知を制御ノード500に送信する。この接続通知には、ディスクノード400のディスクノードIDとストレージ装置410の記憶容量を示す情報とが含まれる。
[ステップS12]制御ノード500では、既使用ディスク追加制御部511が接続通知を受信する。既使用ディスク追加制御部511は、接続通知で指定されたストレージ装置410に応じた仮想ディスクを生成する。ここで、新たに生成された仮想ディスクの先頭のセグメントのプライマリスライスとして、ディスクノード100が管理するストレージ装置110内のスライスが割り当てられたものとする。
[ステップS13]既使用ディスク追加制御部511は、メタデータ変更要求をディスクノード100に送信する。このメタデータ変更要求には、新たに作成した仮想ディスクに割り当てられたスライスに関するメタデータが含まれる。
[ステップS14]ディスクノード100のメタデータ管理部134は、メタデータ変更要求に応答してメタデータを変更する。具体的には、メタデータ管理部134は、作成された仮想ディスクの先頭のスライスに割り当てられたスライスのメタデータを、メタデータ変更要求で指定された内容に変更する。
[ステップS15]メタデータ管理部134は、メタデータの変更が完了したことを示す変更完了応答を制御ノード500に送信する。
[ステップS16]制御ノード500の既使用ディスク追加制御部511は、先頭スライスコピー要求をディスクノード400に送信する。先頭スライスコピー要求には、コピー先のスライスを特定するためのディスクノードIDおよびスライスIDが含まれている。なお、コピー先のスライスとは、仮想ディスクの先頭のセグメントにプライマリスライスとして割り当てられたスライスである。
[ステップS17]ディスクノード400の先頭スライス送信部432は、ストレージ装置410の先頭の分割領域416a(図9参照)に格納されているデータを、先頭スライスコピー要求で指定されたディスクノード100に送信する。
[ステップS18]ディスクノード100の先頭スライス受信部133は、ディスクノード400から送られたデータを受信する。次に、先頭スライス受信部133は、メタデータ管理部134から、新たに作成された仮想ディスクの先頭のセグメントに割り当てられたスライスのスライス番号を取得する。そして、先頭スライス受信部133は、受信したデータを、メタデータ管理部134から取得したスライス番号のスライスに格納する。データの受信および書き込みが完了すると、先頭スライス受信部133は、ディスクノード400に対して受信完了応答を送信する。
[ステップS19]ディスクノード400の先頭スライス送信部432は、受信完了応答を受け取ると、分割領域416a内のデータを削除する。次に、先頭スライス送信部432は、制御ノード500に対してコピー完了応答を送信する。
[ステップS20]制御ノード500の既使用ディスク追加制御部511は、メタデータ書き込み要求をディスクノード400に送信する。メタデータ書き込み要求には、新たに作成した仮想ディスクに割り当てられたスライスに関するメタデータが含まれる。
[ステップS21]ディスクノード400のメタデータ管理部434は、メタデータ書き込み要求に応答して、メタデータをストレージ装置410に書き込む。具体的には、メタデータ管理部434は、先頭の分割領域416a(図9参照)内のデータを削除した後、その分割領域416a内にメタデータ書き込み要求に示されるメタデータを書き込む。メタデータ管理部434は、ストレージ装置410へのメタデータの書き込みが完了したら、メタデータ記憶部440にメタデータを格納する。
[ステップS22]メタデータ管理部434は、メタデータのストレージ装置410への書き込み、およびメタデータのメタデータ記憶部440への格納が完了すると、書き込み完了応答を制御ノード500に送信する。
[ステップS23]制御ノード500の既使用ディスク追加制御部511は、メタデータ変更要求をディスクノード100,200,300に送信する。このメタデータ変更要求には、セカンダリスライスとして割り当てるスライスをリザーブ状態にすることを示すメタデータが含まれる。ディスクノード100,200,300は、メタデータ変更要求に応答して、メタデータを変更する。具体的には、ディスクノード100,200,300は、メタデータ変更要求に含まれるメタデータを、ストレージ装置110,210,310に書き込むと共に、メタデータ記憶部140,240,340に格納する。
[ステップS24]ディスクノード100,200,300は、メタデータの変更が完了すると、制御ノード500に対して変更完了応答を送信する。これにより、ストレージ装置110,210,310内のスライスが、セカンダリスライスとして利用するためのリザーブ(予約済)スライスとなる。リザーブスライスは、スライス割当における空きスライスの検索の際には、割当済のスライスとして認識される。
[ステップS25]制御ノード500の既使用ディスク追加制御部511は、アクセスノード30に対して、新たに作成した仮想ディスクのメタデータを送信する。この際、プライマリスライスに関するメタデータのみ送信される。アクセスノード30は、メタデータを受信することで、新たな仮想ディスクの存在、およびその仮想ディスクに割り当てられたスライスを認識できる。以後は、アクセスノード30は、ディスクノード400のストレージ装置410のアドレスを指定して行っていたアクセスを、新たに作成した仮想ディスクを介して行う。
[ステップS26]制御ノード500の既使用ディスク追加制御部511は、新たに作成した仮想ディスクの先頭のセグメントに関するスライスコピー指示を、そのセグメントのプライマリスライスを管理するディスクノード100に対して送信する。
[ステップS27]ディスクノード100は、新たに作成した仮想ディスクの先頭のセグメントに割り当てられたスライスのデータを、そのセグメントのリザーブスライスにコピーする。図11の例では、ディスクノード300がリザーブスライスを有している。そこで、ディスクノード100は、スライスデータをディスクノード300に送信する。ディスクノード300は、受信したデータをリザーブスライスに格納する。
[ステップS28]ディスクノード300は、データの受信およびリザーブスライスへの格納が完了すると、完了応答をディスクノード100に送信する。
[ステップS29]ディスクノード100は、ディスクノード300から完了応答を受信すると、制御ノード500に対して、コピーの完了応答を送信する。
[ステップS30]制御ノード500の既使用ディスク追加制御部511は、ステップS26と並行して、新たに作成した仮想ディスクの先頭以外のセグメントに関するスライスコピー指示を、そのセグメントのプライマリスライスを管理するディスクノード400に対して送信する。
[ステップS31]ディスクノード400は、新たに作成した仮想ディスクの先頭以外のセグメントに割り当てられたスライスのデータを、そのセグメントのリザーブスライスにコピーする。図11の例では、ディスクノード100,200,300がリザーブスライスを有している。そこで、ディスクノード400は、スライスデータをディスクノード100,200,300に送信する。ディスクノード100,200,300は、受信したデータをリザーブスライスに格納する。
[ステップS32]ディスクノード100,200,300は、データの受信およびリザーブスライスへの格納が完了すると、完了応答をディスクノード400に送信する。
[ステップS33]ディスクノード400は、ディスクノード100,200,300から完了応答を受信すると、制御ノード500に対して、コピーの完了応答を送信する。
制御ノード500の既使用ディスク追加制御部511は、新たに作成した仮想ディスクのプライマリスライスを管理する各ディスクノードからコピーの完了応答を受け取ることで、リザーブスライスをセカンダリスライスとしての使用準備が整ったことを認識する。
[ステップS34]制御ノード500の既使用ディスク追加制御部511は、メタデータ変更要求をディスクノード100,200,300に送信する。このメタデータ変更要求には、セカンダリスライスの状態にすることを示すメタデータが含まれる。ディスクノード100,200,300は、メタデータ変更要求に応答して、メタデータを変更する。具体的には、ディスクノード100,200,300は、メタデータ変更要求に含まれるメタデータを、ストレージ装置110,210,310に書き込むと共に、メタデータ記憶部140,240,340に格納する。
[ステップS35]ディスクノード100,200,300は、メタデータの変更が完了すると、制御ノード500に対して変更完了応答を送信する。これにより、新たに作成した仮想ディスクのデータの2重化が完了する。
このようにして、マルチノードストレージシステムにおいて、ストレージ装置410に格納されていたデータに対し、仮想ディスクを介したアクセスが可能となる。なお、ステップS21で分割領域416a内のデータを削除してからステップS25で仮想ディスクメタデータを送信するまでの間は、アクセスノード30から分割領域416a内のデータへのアクセスはエラーとなる。ただし、ステップS25のアクセスノード30への仮想ディスクメタデータの送信は、ステップS22の書き込み完了応答を待たずに行うことができる。そのため、分割領域416a内のデータへアクセスができない期間は、非常に短時間で済む。
次に、仮想ディスク作成処理(ステップS12)について詳細に説明する。
図12は、仮想ディスク作成処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS41]既使用ディスク追加制御部511は、接続通知を受信すると、仮想ディスクを生成する。すなわち、既使用ディスク追加制御部511は、既に生成されている仮想ディスクとは異なる仮想ディスクID「LVOL−Y」を作成する。
[ステップS42]既使用ディスク追加制御部511は、接続通知で指定された記憶容量分のセグメントを定義し、各セグメントに対してプライマリスライスとセカンダリスライスとを割り当てる。先頭のセグメントには、既使用のストレージ装置410とは異なるストレージ装置のスライスが、プライマリスライスとして割り当てられる。先頭以外のセグメントに対しては、既使用のストレージ装置410のスライスが、プライマリスライスとして割り当てられる。
[ステップS43]既使用ディスク追加制御部511は、ステップS42で割り当てたスライスに対応するメタデータを作成する。例えば、容量が100GBでスライスサイズが1GBの場合、既使用ディスク追加制御部511は100個のスライスのメタデータを作成する。作成されたメタデータは、仮想ディスクメタデータ記憶部520に格納される。
図13は、新たに作成された仮想ディスクメタデータテーブルを示す図である。なお、ディスクノード400のディスクノードIDは「SN−D」である。
新たに作成された仮想ディスクメタデータテーブル522には、既使用のストレージ装置410の記憶容量分のセグメントに対した割り当てられたスライスに関するメタデータが登録されている。各メタデータの仮想ディスクIDは「LVOL−Y」である。先頭のセグメント(セグメントID「1」)のプライマリスライスとしては、ストレージ装置410以外のストレージ装置の空きスライスが割り当てられる。図13の例では、ディスクノードIDが「SN−A」であるディスクノード100が管理するストレージ装置110の1番目のスライス(スライスID「1」)が、先頭のセグメントのプライマリスライスである。2番目以降のセグメントのプライマリスライスは、ストレージ装置410の各スライスである。
なお、セカンダリスライスとして割り当てられたスライスに関しては、状態「R」のメタデータが作成される。このメタデータは、プライマリスライスからセカンダリスライスへデータコピーが完了した後、状態「S」に変更される。
また、仮想ディスク生成時には、ストレージ装置410の各スライス415a,415b,・・・(図9参照)に対して、スライスIDが設定されている。スライスIDは、ディスクノード400内で重複しないように生成される。各セグメントのセカンダリスライスとしては、ストレージ装置410以外のストレージ装置のスライスが割り当てられる。
このような仮想ディスクメタデータテーブル522によって新たに作成された仮想ディスクへのスライスの割当が定義される。そして、セグメントID「1」のメタデータを含むメタデータ変更要求が、ディスクノードID「SN−A」のディスクノード100に送信される(図12のステップS13)。すると、ディスクノード100では、メタデータが変更される。
図14は、ディスクノードにおける変更後のメタデータを示す図である。図7の変更前の状態と比較すると分かるように、メタデータテーブル141内のスライスID「1」のメタデータが変更されている(メタデータテーブル141の最上位のレコード)。変更されたメタデータには、新たに作成された仮想ディスク(仮想ディスクID「LVOL−Y」)の先頭のセグメント(セグメントID「1」)のプライマリスライス(状態「P」)として、ストレージ装置110の先頭のスライス(スライスID「1」)が割り当てられていることが示されている。
なお、図14には、メタデータ記憶部140内のメタデータを示しているが、ストレージ装置110のメタデータも変更される。具体的には、メタデータテーブル141内のスライスID「1」のメタデータが、図6に示す先頭のスライス115aのメタデータ117aとして、ストレージ装置110に書き込まれる。
このようにして、仮想ディスクの先頭のセグメントに割り当てられたスライスを管理するディスクノード100においてメタデータが更新される。その後、ディスクノード400からストレージ装置410の先頭の分割領域416aに格納されているデータがディスクノード100に転送され、そのデータが仮想ディスクの先頭のセグメントに割り当てられたスライスに格納される。
ディスクノード400では、分割領域416a内のデータをディスクノード100に送信後、分割領域416aにメタデータの書き込み(図12のステップS21)が行われる。
図15は、メタデータ書き込み処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS51]ディスクノード400のメタデータ管理部434は、分割領域416aにデバイス情報418を書き込む。なおデバイス情報418はこのディスクの先頭にメタデータが集中していることを示すメタデータ格納形式(type2)を含む。
[ステップS52]メタデータ管理部434は、デバイス情報418に続いて、スライス415a,415b,・・・それぞれに対応するメタデータ417a,417b,・・・を、分割領域416aに書き込む。また、メタデータ管理部434は、メタデータ417a,417b,・・・をメタデータ記憶部440内のメタデータテーブルに格納する。
図16は、組み込まれたストレージ装置に対応するメタデータテーブルを示す図である。ディスクノード400のメタデータ記憶部440には、ストレージ装置410のメタデータが登録されたメタデータテーブル441が格納されている。図16に示すように、ストレージ装置410がマルチノードストレージシステムに組み込まれた直後は、各スライスは仮想ディスク「LVOL−Y」のプライマリスライスとして割り当てられている。このメタデータテーブル441と同じ内容のメタデータが、管理情報領域である分割領域416aに書き込まれる。
各ディスクノードに対して、仮想ディスク「LVOL−Y」に割り当てたスライスのメタデータが格納されると、プライマリスライスからリザーブスライスへのデータコピーが行われる。データコピーが完了すると、リザーブスライスの状態がセカンダリスライスに変更される。その後、仮想ディスク「LVOL−Y」に対して入力されるデータは、複数のディスクノードで2重化して管理される。
図17は、既使用のストレージ装置を組み込み後のスライス割当関係を示す図である。ストレージ装置410を新たにマルチノードストレージシステムに組み込んだことにより、仮想ディスク70が生成されている。仮想ディスク70を構成するセグメント71,72,73,74,・・・は、それぞれプライマリスライス71a,72a,73a,74a,・・・とセカンダリスライス71b,72b,73b,74b,・・・とで構成される。プライマリスライス71a,72a,73a,74a,・・・とセカンダリスライス71b,72b,73b,74b,・・・とには、それぞれストレージ装置110,210,310,410内のいずれかのスライスが割り当てられる。また、新たにシステムに組み込まれたストレージ装置410のスライス415a,415b,415c,・・・は、それぞれ仮想ディスク70のセグメント72,73,74に対してプライマリスライスとして割り当てられている。
なお、図17の例では図4と同様に、仮想ディスク60,70内のスライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。
また、各ストレージ装置110,210,310,410のスライスの識別子に続く括弧内の記号は、割り当てられた仮想ディスクを示している。括弧内に「X」と示されたスライスは、仮想ディスクIDが「LVOL−X」である仮想ディスク60に割り当てられている。括弧内に「Y」と示されたスライスは、仮想ディスクIDが「LVOL−Y」である仮想ディスク70に割り当てられている。
以上のようにして、既使用のストレージ装置410をマルチノードストレージシステムに組み込むことができる。その際、1スライス分のデータ転送とメタデータの更新処理が完了すれば、ストレージ装置410に格納されていたデータへのアクセスノード30からのアクセスが可能となる。すなわち、仮想ディスク70が作成されると、仮想ディスク70の各セグメントに割り当てられたプライマリスライスに関するメタデータが、制御ノード500からアクセスノード30に通知される。アクセスノード30では、受け取ったメタデータに基づいて仮想ディスク70が新たに作成されたことを認識する。アクセスノード30は、仮想ディスク70のアドレスを指定したデータアクセスが発生すると、メタデータを参照してアクセス対象のデータが属するセグメントと、そのセグメントに割り当てられたプライマリスライスを判断する。そして、アクセスノード30は、該当するスライスを指定したデータアクセス要求を、そのスライスを管理しているディスクノードに対して送信する。
本実施の形態では、データのコピーは1スライス分のデータ量で済む。そのため、ストレージ装置410の記憶容量が大規模であっても、データコピーに要する時間が短くて済む。また、コピー対象のデータ量が1スライス分でよいことから、データコピーのためのディスクノードの処理負荷も少なくて済む。
さらに、ストレージ装置410自体がマルチノードストレージシステムに組み込まれる。そのため、ストレージ装置410が未使用となる期間が発生せず、資源の使用効率が向上する。しかも、プライマリスライスの割当が完了すれば、仮想ディスク70内のデータへのアクセスノード30からのアクセスが可能となる。そのため、データの2重化(プライマリスライスからセカンダリスライスへのデータのコピー)が完了するのを待たずにデータアクセスが可能であり、サービスの停止期間が非常に短くて済む。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ディスクノードや制御ノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 記憶領域が複数のスライスに分割して管理されるストレージ装置への仮想ディスクを介したアクセス管理をコンピュータに実行させるための仮想ディスク管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置を有する第1のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、
前記既接続ストレージ装置を有する第2のディスクノードに対して前記データ移転先スライスの割当結果を示す移転データ用メタデータを送信し、
前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、前記管理情報領域内のデータの前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の1セグメント以外のセグメントに割り当て、
前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
処理を実行させる仮想ディスク管理プログラム。
(付記2) 前記コンピュータに、さらに、
前記データ移転先スライスを割り当てる際には、前記接続通知の受信前から存在する既存仮想ディスクへの前記既接続ストレージ装置のスライスの割当関係を示すメタデータを参照し、割当関係を有していないスライスを前記データ移転先スライスとする処理を実行させることを特徴とする付記1記載の仮想ディスク管理プログラム。
(付記3) 前記管理情報領域は、前記接続対象ストレージ装置内の先頭から1スライス分の記憶領域であることを特徴とする付記1記載の仮想ディスク管理プログラム。
(付記4) 前記コンピュータに、さらに、
前記既存データ用メタデータの前記管理情報領域への書き込み要求を送信後、前記仮想ディスクの各セグメントに対して重複して割り当てたスライスを管理するディスクノードに対して、前記仮想ディスクのセグメントと重複して割り当てたスライスとの対応関係を示す2重化用メタデータを送信する処理を実行させることを特徴とする付記1記載の仮想ディスク管理プログラム。
(付記5) ストレージ装置への他のノードからのアクセス管理をコンピュータに実行させるためのストレージ装置管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置の接続通知を制御ノードに送信し、
前記接続対象ストレージ装置内の所定の1スライス分の記憶領域を管理情報領域とし、前記制御ノードから、既接続ストレージ装置内のデータ移転先スライスへの前記管理情報領域内のデータのコピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信し、
前記制御ノードから、前記接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込む、
処理を実行させるストレージ装置管理プログラム。
(付記6) 前記コンピュータに、さらに、
前記管理情報領域に、前記既存データ用メタデータが前記管理情報領域内に格納されていることを示すメタデータ格納形式情報を格納する処理を実行させることを特徴とする付記5記載のストレージ装置管理プログラム。
(付記7) 前記コンピュータに、さらに、
前記メタデータ格納形式情報を参照して前記既存データ用メタデータが前記管理情報領域内にあることを認識し、前記管理情報領域から前記既存データ用メタデータを読み出すことを特徴とする付記6記載のストレージ装置管理プログラム。
(付記8) 記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを行うマルチノードストレージシステムであって、
既にデータが格納されている接続対象ストレージ装置を有する第1のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する仮想ディスク生成手段と、
前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第2のディスクノードに対して割当結果を示す移転データ用メタデータを送信する第1のスライス割当手段と、
前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信するコピー要求送信手段と、
前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の1セグメント以外のセグメントに割り当て、前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信する第2のスライス割当手段と、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信するスライス割当情報送信手段と、
を具備する制御ノードと、
前記接続対象ストレージ装置の接続通知を前記制御ノードに送信する接続通知送信手段と、
前記制御ノードから前記コピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信するデータ送信手段と、
前記制御ノードから、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す前記既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込むメタデータ書き込み手段と、
を具備する前記第1のディスクノードと、
前記制御ノードから前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更するメタデータ変更手段と、
前記第1のディスクノードから前記管理情報領域内のデータを受信すると、前記移転データ用メタデータに基づいて前記データ移転先スライスを判断し、受信したデータを前記データ移転先スライスに書き込むデータ書き込み手段と、
を有する前記第2のディスクノードと、
を有するマルチノードストレージシステム。
(付記9) 記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを管理するための仮想ディスク管理方法であって、
第1のディスクノードが、既にデータが格納されている接続対象ストレージ装置の接続通知を前記制御ノードに送信し、
前記制御ノードが、前記接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記制御ノードが、前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第2のディスクノードに対して割当結果を示す移転データ用メタデータを送信し、
前記第2のディスクノードが、前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更し、
前記制御ノードが、前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記第1のディスクノードが、前記コピー要求を受信すると、前記管理情報領域内のデータを前記第2のディスクノードに送信し、
前記第2のディスクノードが、前記第1のディスクノードから受信したデータを前記データ移転先スライスに書き込み、
前記制御ノードが、前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の1セグメント以外のセグメントに割り当て、前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記第1のディスクノードが、前記制御ノードから前記書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込み、
前記制御ノードが、前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
ことを特徴とする仮想ディスク管理方法。
1 制御ノード
1a 仮想ディスク生成手段
1b 第1のスライス割当手段
1c コピー要求送信手段
1d 第2のスライス割当手段
1e スライス割当情報送信手段
2,3 ディスクノード
2a 接続通知送信手段
2b データ送信手段
2c メタデータ書き込み手段
3a メタデータ変更手段
3b データ書き込み手段
4 アクセスノード
5 接続対象ストレージ装置
5a データ
5b 管理情報領域
5ba,5bb,・・・ メタデータ
5ca,5cb,・・・ スライス
6 既接続ストレージ装置

Claims (8)

  1. 記憶領域が複数のスライスに分割して管理されるストレージ装置への仮想ディスクを介したアクセス管理をコンピュータに実行させるための仮想ディスク管理プログラムであって、
    前記コンピュータに、
    既にデータが格納されている接続対象ストレージ装置を有する第1のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
    前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、
    前記既接続ストレージ装置を有する第2のディスクノードに対して前記データ移転先スライスの割当結果を示す移転データ用メタデータを送信し、
    前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、コピー対象を前記管理情報領域内のデータに限定した、前記既接続ストレージ装置の前記データ移転先スライスへの、該データのコピー要求を送信し、
    前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記1セグメント以外のセグメントに割り当て、
    前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
    記接続対象ストレージ装置および前記既接続ストレージ装置への前記仮想ディスクを介したアクセスを、アクセス用メタデータに基づいて行うアクセスノードに対して、前記仮想ディスクの前記1セグメントに、前記既接続ストレージ装置の前記データ移転先スライスが割り当てられ、前記仮想ディスクの前記1セグメント以外のセグメントに、前記接続対象ストレージ装置の複数のスライスが割り当てられていることが示された該アクセス用メタデータを送信する、
    処理を実行させる仮想ディスク管理プログラム。
  2. 前記コンピュータに、さらに、
    前記データ移転先スライスを割り当てる際には、前記接続通知の受信前から存在する既存仮想ディスクへの前記既接続ストレージ装置のスライスの割当関係を示すメタデータを参照し、割当関係を有していないスライスを前記データ移転先スライスとする処理を実行させることを特徴とする請求項1記載の仮想ディスク管理プログラム。
  3. 前記管理情報領域は、前記接続対象ストレージ装置内の先頭から1スライス分の記憶領域であることを特徴とする請求項1または2のいずれかに記載の仮想ディスク管理プログラム。
  4. ストレージ装置への他のノードからのアクセス管理をコンピュータに実行させるためのストレージ装置管理プログラムであって、
    前記コンピュータに、
    既にデータが格納されている接続対象ストレージ装置の接続通知を制御ノードに送信し、
    前記接続対象ストレージ装置内の所定の1スライス分の記憶領域を管理情報領域とし、前記制御ノードから、コピー対象を前記管理情報領域内のデータに限定した、既接続ストレージ装置内のデータ移転先スライスへ、該データのコピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信し、
    前記制御ノードから、前記接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込む、
    処理を実行させるストレージ装置管理プログラム。
  5. 前記コンピュータに、さらに、
    前記管理情報領域に、前記既存データ用メタデータが前記管理情報領域内に格納されていることを示すメタデータ格納形式情報を格納する処理を実行させることを特徴とする請求項4記載のストレージ装置管理プログラム。
  6. 前記コンピュータに、さらに、
    前記メタデータ格納形式情報を参照して前記既存データ用メタデータが前記管理情報領域内にあることを認識し、前記管理情報領域から前記既存データ用メタデータを読み出すことを特徴とする請求項5記載のストレージ装置管理プログラム。
  7. 記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを行うマルチノードストレージシステムであって、
    既にデータが格納されている接続対象ストレージ装置を有する第1のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する仮想ディスク生成手段と、
    前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第2のディスクノードに対して割当結果を示す移転データ用メタデータを送信する第1のスライス割当手段と、
    前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、コピー対象を前記管理情報領域内のデータに限定した、前記既接続ストレージ装置の前記データ移転先スライスへの、該データのコピー要求を送信するコピー要求送信手段と、
    前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記1セグメント以外のセグメントに割り当て、前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信する第2のスライス割当手段と、
    記接続対象ストレージ装置および前記既接続ストレージ装置への前記仮想ディスクを介したアクセスを、アクセス用メタデータに基づいて行うアクセスノードに対して、前記仮想ディスクの前記1セグメントに、前記既接続ストレージ装置の前記データ移転先スライスが割り当てられ、前記仮想ディスクの前記1セグメント以外のセグメントに、前記接続対象ストレージ装置の複数のスライスが割り当てられていることが示された該アクセス用メタデータを送信するスライス割当情報送信手段と、
    を具備する制御ノードと、
    前記接続対象ストレージ装置の接続通知を前記制御ノードに送信する接続通知送信手段と、
    前記制御ノードから前記コピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信するデータ送信手段と、
    前記制御ノードから、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す前記既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込むメタデータ書き込み手段と、
    を具備する前記第1のディスクノードと、
    前記制御ノードから前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更するメタデータ変更手段と、
    前記第1のディスクノードから前記管理情報領域内のデータを受信すると、前記移転データ用メタデータに基づいて前記データ移転先スライスを判断し、受信したデータを前記データ移転先スライスに書き込むデータ書き込み手段と、
    を有する前記第2のディスクノードと、
    を有するマルチノードストレージシステム。
  8. 記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを管理するための仮想ディスク管理方法であって、
    第1のディスクノードが、既にデータが格納されている接続対象ストレージ装置の接続通知を制御ノードに送信し、
    前記制御ノードが、前記接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
    前記制御ノードが、前記仮想ディスクを構成する所定の1セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の1スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第2のディスクノードに対して割当結果を示す移転データ用メタデータを送信し、
    前記第2のディスクノードが、前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更し、
    前記制御ノードが、前記接続対象ストレージ装置内の1スライス分の記憶領域を管理情報領域とし、前記第1のディスクノードに対して、コピー対象を前記管理情報領域内のデータに限定した、前記既接続ストレージ装置の前記データ移転先スライスへの、該データのコピー要求を送信し、
    前記第1のディスクノードが、前記コピー要求を受信すると、前記管理情報領域内のデータを前記第2のディスクノードに送信し、
    前記第2のディスクノードが、前記第1のディスクノードから受信したデータを前記データ移転先スライスに書き込み、
    前記制御ノードが、前記接続対象ストレージ装置の前記1スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の1セグメント以外のセグメントに割り当て、前記第1のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
    前記第1のディスクノードが、前記制御ノードから前記書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込み、
    前記制御ノードが、前記接続対象ストレージ装置および前記既接続ストレージ装置への前記仮想ディスクを介したアクセスを、アクセス用メタデータに基づいて行うアクセスノードに対して、前記仮想ディスクの前記1セグメントに、前記既接続ストレージ装置の前記データ移転先スライスが割り当てられ、前記仮想ディスクの前記1セグメント以外のセグメントに、前記接続対象ストレージ装置の複数のスライスが割り当てられていることが示された該アクセス用メタデータを送信する、
    ことを特徴とする仮想ディスク管理方法。
JP2009132712A 2008-08-20 2009-06-02 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法 Expired - Fee Related JP5218284B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009132712A JP5218284B2 (ja) 2008-08-20 2009-06-02 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
US12/502,752 US8386707B2 (en) 2008-08-20 2009-07-14 Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
EP09165890A EP2157504A3 (en) 2008-08-20 2009-07-20 Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008211544 2008-08-20
JP2008211544 2008-08-20
JP2009132712A JP5218284B2 (ja) 2008-08-20 2009-06-02 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法

Publications (2)

Publication Number Publication Date
JP2010073190A JP2010073190A (ja) 2010-04-02
JP5218284B2 true JP5218284B2 (ja) 2013-06-26

Family

ID=41328716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009132712A Expired - Fee Related JP5218284B2 (ja) 2008-08-20 2009-06-02 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法

Country Status (3)

Country Link
US (1) US8386707B2 (ja)
EP (1) EP2157504A3 (ja)
JP (1) JP5218284B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0614515D0 (en) 2006-07-21 2006-08-30 Ibm An apparatus for managing power-consumption
JP5640480B2 (ja) * 2010-06-11 2014-12-17 富士通株式会社 データ管理プログラム、ストレージシステム、およびデータ管理方法
JP5355603B2 (ja) * 2011-01-27 2013-11-27 株式会社東芝 ディスクアレイ装置及び論理ボリュームアクセス方法
US8874680B1 (en) * 2011-11-03 2014-10-28 Netapp, Inc. Interconnect delivery process
US8904081B1 (en) 2012-05-08 2014-12-02 Vmware, Inc. Composing a virtual disk using application delta disk images
KR101242458B1 (ko) * 2012-09-13 2013-03-12 효성아이티엑스(주) 지능형 분산 스토리지 서비스 시스템 및 방법
US9594583B2 (en) * 2013-11-12 2017-03-14 Red Hat, Inc. Lightweight snapshots for virtual disks
JP6458752B2 (ja) * 2016-03-04 2019-01-30 日本電気株式会社 ストレージ制御装置、ストレージシステム、ストレージ制御方法、および、プログラム
CN111104057B (zh) * 2018-10-25 2022-03-29 华为技术有限公司 存储系统中的节点扩容方法和存储系统
US11886751B2 (en) * 2020-10-15 2024-01-30 EMC IP Holding Company LLC Intelligent block slicing in network attached storage for data protection
US20240028460A1 (en) * 2022-07-25 2024-01-25 Dell Products L.P. Method and system for grouping data slices based on average data file size for data slice backup generation
US12007845B2 (en) 2022-07-25 2024-06-11 Dell Products L.P. Method and system for managing data slice backups based on grouping prioritization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6807590B1 (en) * 2000-04-04 2004-10-19 Hewlett-Packard Development Company, L.P. Disconnecting a device on a cache line boundary in response to a write command
US6810491B1 (en) * 2000-10-12 2004-10-26 Hitachi America, Ltd. Method and apparatus for the takeover of primary volume in multiple volume mirroring
JP4086611B2 (ja) * 2002-10-02 2008-05-14 三洋電機株式会社 記録制御装置、方法、およびその記録制御方法を利用可能な記録媒体
JP2004310621A (ja) * 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
WO2004104845A1 (ja) * 2003-05-21 2004-12-02 Fujitsu Limited ストレージシステム
JP4404292B2 (ja) * 2003-06-16 2010-01-27 富士通株式会社 データ割当方法、プログラム及びストレージシステム
JP2006024024A (ja) * 2004-07-08 2006-01-26 Toshiba Corp 論理ディスク管理方法及び装置
US7363457B1 (en) * 2005-07-21 2008-04-22 Sun Microsystems, Inc. Method and system for providing virtualization data services for legacy storage devices
JP2007034551A (ja) * 2005-07-26 2007-02-08 Hitachi Software Eng Co Ltd データの二重化管理方法
JP4824374B2 (ja) * 2005-09-20 2011-11-30 株式会社日立製作所 ディスクの回転を制御するシステム
JP4723361B2 (ja) 2005-11-24 2011-07-13 富士通株式会社 仮想化処理機能を有する情報処理装置
JP4767139B2 (ja) * 2006-09-15 2011-09-07 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法
JP2008210057A (ja) * 2007-02-23 2008-09-11 Hitachi Ltd 記憶システム及びその管理方法
JP4519179B2 (ja) * 2008-02-25 2010-08-04 富士通株式会社 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム

Also Published As

Publication number Publication date
JP2010073190A (ja) 2010-04-02
EP2157504A3 (en) 2012-07-25
US8386707B2 (en) 2013-02-26
EP2157504A2 (en) 2010-02-24
US20100049918A1 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
JP5218284B2 (ja) 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
US6598174B1 (en) Method and apparatus for storage unit replacement in non-redundant array
US8667241B2 (en) System for data migration from a storage tier allocated to a virtual logical volume
US20200042388A1 (en) RAID Storage System with Logical Data Group Rebuild
US8234467B2 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
JP5396836B2 (ja) データ分散制御プログラム、ストレージ管理プログラム、制御ノード、およびディスクノード
US8578121B2 (en) Computer system and control method of the same
US8639898B2 (en) Storage apparatus and data copy method
US8909893B2 (en) Virtual logical volume for overflow storage of special data sets
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2007279845A (ja) ストレージシステム
JP2010097385A (ja) データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム
WO2014094568A1 (zh) 一种数据存储规划方法及装置
US20050198411A1 (en) Commingled write cache in dual input/output adapter
JP5640480B2 (ja) データ管理プログラム、ストレージシステム、およびデータ管理方法
JP5924117B2 (ja) コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
JP5640618B2 (ja) 管理プログラム、管理装置、および管理方法
JP5309816B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
JPWO2008126169A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
JP2017130130A (ja) ストレージ装置、仮想ボリューム制御システムおよび仮想ボリューム制御方法
JP2008305223A (ja) リストア制御プログラム、リストア制御方法、リストア制御装置、およびリストア制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees