JP5412882B2 - 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置 - Google Patents

論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置 Download PDF

Info

Publication number
JP5412882B2
JP5412882B2 JP2009050614A JP2009050614A JP5412882B2 JP 5412882 B2 JP5412882 B2 JP 5412882B2 JP 2009050614 A JP2009050614 A JP 2009050614A JP 2009050614 A JP2009050614 A JP 2009050614A JP 5412882 B2 JP5412882 B2 JP 5412882B2
Authority
JP
Japan
Prior art keywords
logical volume
configuration information
storage area
access node
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
JP2009050614A
Other languages
English (en)
Other versions
JP2010205029A (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 JP2009050614A priority Critical patent/JP5412882B2/ja
Priority to US12/714,903 priority patent/US8397047B2/en
Publication of JP2010205029A publication Critical patent/JP2010205029A/ja
Application granted granted Critical
Publication of JP5412882B2 publication Critical patent/JP5412882B2/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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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

Description

本発明は論理ボリューム構成情報をアクセスノードに提供するための論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置に関する。
データを管理するシステムとして、マルチノードストレージシステムがある。マルチノードストレージシステムは、ネットワークで接続された複数のコンピュータに対して、データを分散格納するシステムである。
マルチノードストレージシステムでは、例えば、複数のディスクノード、アクセスノード、制御ノード、および管理ノードがネットワークで接続されている。ディスクノードは、ストレージ装置を有するコンピュータである。個々のディスクノードは接続されたストレージ装置の記憶領域を一定の大きさの単位領域に分割して管理する。ディスクノードの管理単位となる各単位領域はスライスと呼ばれる。スライスは、外部からのアクセス単位として定義された論理ボリュームに割り当てられる。
論理ボリュームは1つ以上のセグメントで構成される。各セグメントには、異なるディスクノードに属する2つのスライスが割り当てられる。そして、同じセグメントに割り当てられた2つのスライス間でデータが二重化される。ユーザからのアクセス指示は、論理ボリューム内のセグメントに対して行われる。
アクセスノードは、ユーザからのデータアクセス要求に応じて、ディスクノード内のデータにアクセスするコンピュータである。例えば、アクセスノードは、論理ボリュームへのデータアクセスを行うために、論理ボリュームの構成情報を制御ノードから入手する。そして、アクセスノードは、論理ボリュームの構成情報を参照して、論理ボリュームに対するユーザからのデータアクセスを適切なディスクノードへ振り分ける。ここで、アクセスノードは、ディスクノードへのアクセスに失敗したら、論理ボリューム内のアクセス対象セグメントに関する最新の割り当て関係を示す構成情報を制御ノードから入手する。そして、アクセスノードは、新たに手に入れた構成情報に基づいて再度ディスクノードへのアクセスを試みる。
管理ノードは、システムの管理者がマルチノードストレージシステムを管理するために操作するコンピュータである。例えば、管理者が論理ボリュームの作成指示を入力すると、対応するコマンドが制御ノードに送信される。
制御ノードは、論理ボリュームへのスライスの割り当てなどを管理するコンピュータである。例えば、制御ノードは、ディスクノードからスライス情報を集める。ディスクノードから収集するスライス情報には、ディスクノードが管理するスライスと、論理ボリュームのセグメントとの割り当て関係が示されている。制御ノードは、収集したスライス情報に基づいて論理ボリュームの構成情報を生成する。そして、制御ノードは、アクセスノードからの要求に応じて、論理ボリュームの構成情報をアクセスノードに通知する。
ところで、マルチノードストレージシステムでは、様々な状況で論理ボリュームの構成情報が変化する。その一例として、ディスクノードが故障した場合がある。ここで、マルチノードストレージシステムの運用中にディスクノードの1台が故障したと仮定する。このとき、故障したディスクノードに属するスライスが割り当てられたセグメントではデータの二重化状態が壊れている。そこで、該当セグメントへのスライスの再割り当てが行われる。再割り当ては、「二重化状態が壊れたセグメントに属するアクセス可能なスライスのデータを、新たに割り当てたスライスへコピーする」ことで行われる。
このように、二重化状態が壊れたセグメントについて新たにスライスの割り当て、およびデータのコピーにより、二重化状態を回復する処理をリカバリ処理と呼ぶ。リカバリ処理の実行開始を管理するのは制御ノードである。このリカバリ処理が発生すると論理ボリュームの構成情報が大きく変更されることとなる。
特開2003−108420号公報 国際公開第2004/104845号パンフレット
ところで、リカバリ処理中およびリカバリ処理完了後には、アクセスノードが有している論理ボリュームの構成情報が一時的に実態から乖離してしまう。この場合、リカバリ処理実行後、アクセスノードが実際にディスクノードにアクセスし、アクセスが失敗することにより、アクセスノードにおいてリカバリ処理の発生が認識される。アクセスに失敗したアクセスノードは、例えば、アクセス対象のセグメントに新たに割り当てられたスライスの情報を制御ノードから取得し、自己の有する論理ボリューム構成情報を更新する。
しかし、アクセスノードにおいて、アクセスによるエラー発生後に論理ボリューム構成情報の更新処理を行うと、ユーザからのデータへのリクエストの応答も一時的に遅延してしまうという問題点がある。すなわち、アクセスノードでは、アクセス時に、タイムアウトを検出するまでディスクノードからの応答を待つ。その後、アクセスノードは、制御ノードから新たに割り当てられたスライスに関する情報を取得し、取得した情報に基づいて再度アクセスを行う。その結果、応答の待ち時間、論理ボリューム構成情報の取得時間、および再アクセスに要する時間の分、ユーザからのリクエストに対する応答時間が長期化する。
このような問題は、リカバリ処理に限らず、論理ボリュームの仮想的な記憶領域と、ストレージ装置の物理的な記憶領域のとの対応関係が変更された場合において同様に発生する。
本発明はこのような点に鑑みてなされたものであり、アクセスノードにおけるエラーの発生を待たずに、論理ボリュームとストレージ装置との記憶領域の対応関係の変更内容をアクセスノードに対して通知可能な論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置を提供することを目的とする。
上記課題を解決するために、アクセスノードに対し論理ボリューム構成情報をネットワーク経由で提供する論理ボリューム構成情報提供装置が提供される。ここで、論理ボリューム構成情報は、仮想的に定義された論理ボリューム内の仮想記憶領域とストレージ装置内の実記憶領域との対応関係を定義したものである。アクセスノードは、論理ボリューム構成情報に基づき、仮想記憶領域内のデータを指定したアクセス要求に応じて実記憶領域にアクセスを行うものである。
論理ボリューム構成情報提供装置は、論理ボリューム構成情報更新手段と論理ボリューム構成情報送信手段とを有する。論理ボリューム構成情報更新手段は、論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係を変更する。論理ボリューム構成情報送信手段は、仮想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードの識別情報が登録されたアクセスノードリストを記憶するアクセスノードリスト記憶手段を参照し、アクセスノードリストで示されるアクセスノードに対して、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報を、ネットワーク経由で送信する。
また、上記課題を解決するために、上記論理ボリューム構成情報提供装置と同様の処理をコンピュータに実行させる論理ボリューム構成情報提供プログラムが提供される。さらに、論理ボリューム構成情報提供装置と同様の処理をコンピュータで実行する論理ボリューム構成情報提供方法が提供される。
上記論理ボリューム構成情報提供装置、論理ボリューム構成情報提供プログラム、および論理ボリューム構成情報提供方法によれば、アクセスノードにおけるエラーの発生を待たずに、論理ボリュームとストレージ装置との記憶領域の対応関係の変更内容をアクセスノードに対して通知できる。
実施の形態の概要を示す図である。 本実施の形態のマルチノードストレージシステム構成例を示す図である。 本実施の形態に用いる制御ノードのハードウェア構成例を示す図である。 論理ボリュームのデータ構造を示す図である。 アクセスノードの運用開始時における論理ボリューム構成情報の取得状況を示す図である。 制御ノードにおけるリカバリ処理状況を示す図である。 アクセスノードへの論理ボリューム構成情報の通知状況を示す図である。 ディスクノードの機能を示すブロック図である。 スライス情報記憶部のデータ構造例を示す図である。 制御ノードの機能を示すブロック図である。 スライス情報テーブルのデータ構造例を示す図である。 セグメント情報テーブルのデータ構造例を示す図である。 論理ボリューム構成情報のデータ構造例を示す図である。 アクセスノードリストのデータ構造例を示す図である。 障害発生時のセグメント情報テーブルの例を示す図である。 復旧対象リストのデータ構造例を示す図である。 アクセスノードの機能を示すブロック図である。 I/O処理リストのデータ構造例を示す図である。 アクセスノードリストへのアクセスノード登録処理の手順を示すシーケンス図である。 ハートビート受信処理の手順を示すフローチャートである。 アクセスノードリストチェック処理の手順を示すフローチャートである。 論理ボリューム構成情報変更時の処理手順を示すシーケンス図である。 制御ノードにおける構成情報変更通知処理の手順を示すフローチャートである。 アクセスノードにおける論理ボリューム構成情報更新処理の手順を示すフローチャートである。 第2の実施の形態におけるアクセスノードリストのデータ構造例を示す図である。 第2の実施の形態における復旧対象リストの例を示す図である。 第2の実施の形態の論理ボリューム構成情報送信処理を示す図である。 論理ボリューム構成情報のプライマリ更新セグメント情報を示す図である。 第2の実施の形態における論理ボリューム更新処理の手順を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。論理ボリューム構成情報提供装置1は、アクセスノード2,3やディスクノード4〜7にネットワークを介して接続されている。論理ボリューム構成情報提供装置1は、アクセスノード2,3に対し論理ボリューム構成情報をネットワーク経由で提供する。ここで、論理ボリューム構成情報は、仮想的に定義された論理ボリューム内の仮想記憶領域とストレージ装置4a,5a,6a,7a内の実記憶領域との対応関係を定義したものである。
アクセスノード2,3は、論理ボリューム構成情報に基づき、仮想記憶領域内のデータを指定したアクセス要求に応じて実記憶領域にアクセスを行うコンピュータである。ディスクノード4〜7は、それぞれストレージ装置4a,5a,6a,7aを有している。
論理ボリューム構成情報提供装置1は、論理ボリューム構成情報記憶手段1a、アクセスノードリスト記憶手段1b、論理ボリューム構成情報更新手段1c、および論理ボリューム構成情報送信手段1dを有している。
論理ボリューム構成情報記憶手段1aは、論理ボリュームの仮想記憶領域と、ストレージ装置4a,5a,6a,7a内の実記憶領域との対応関係を示す論理ボリューム構成情報を記憶する。アクセスノードリスト記憶手段1bは、アクセスノード2,3の識別情報(アクセスノードID)を記憶する。
論理ボリューム構成情報更新手段1cは、論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係を変更する。例えば、論理ボリューム構成情報更新手段1cは、ディスクノード4〜7のうちの1台が故障した場合に、故障したディスクノード内の実記憶領域が対応付けられていた仮想記憶領域に対して、新たに動作しているディスクノード内の実記憶領域を対応付ける。更新後の対応関係は、例えば、論理ボリューム構成情報記憶手段1aに反映される。
論理ボリューム構成情報送信手段1dは、仮想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードリスト記憶手段1bを参照し、アクセスノード2,3の識別情報を取得する。そして、論理ボリューム構成情報送信手段1dは、取得した識別情報で示されるアクセスノード2,3に対して、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報を、ネットワーク経由で送信する。変更後の対応関係は、例えば、論理ボリューム構成情報記憶手段1aを参照することで取得できる。
このようなマルチノードシステムが運用されているときに、ディスクノードの故障などの論理ボリューム構成情報の変更を必要とする事象が発生したものとする。その場合、論理ボリューム構成情報更新手段1cにより、論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係が変更される。論理ボリューム構成情報送信手段1dは、仮想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードリスト記憶手段1bを参照する。そして、論理ボリューム構成情報送信手段1dは、アクセスノード2,3の識別情報を取得する。そして、論理ボリューム構成情報送信手段1dにより、取得した識別情報で示されるアクセスノード2,3に対して、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報が、ネットワーク経由で送信される。
このように、予め論理ボリューム構成情報提供装置1内にアクセスノードリストを設けておくことで、仮想記憶領域と実記憶領域との対応関係が変更された場合に、アクセスノード2,3でのエラーの発生を待たずに更新情報を送信できる。すると、アクセスノード2,3では、ユーザからのアクセス要求で指定された仮想記憶領域に対応する実記憶領域にアクセスする際に、常に最新の論理ボリューム構成情報に基づいてアクセス先の実記憶領域を判断できる。その結果、アクセスノード2,3は、対応関係変更後に、対応する実記憶領域が変更された仮想記憶領域に対して最初にアクセスする場合であっても、アクセスエラーとならずにデータにアクセスできる。その結果、アクセス要求を入力したユーザに対して迅速に応答することが可能となる。
また、ディスクノードに故障が発生した場合などは、仮想記憶領域と実記憶領域との対応関係の変更が多数発生する。このような場合、従来は、アクセスノードがアクセスに失敗し、その都度、そのアクセス対象の仮想記憶領域に対応する実記憶領域を論理ボリューム構成情報提供装置に問い合わせていた。すると、各アクセスノード内のすべてのセグメントに関する構成情報が最新状態に更新されるまでに、ノード間の通信が多発してしまう。その結果、ネットワーク上の通信量が増加し、システム全体の処理効率を低下させていた。
他方、図1に示す論理ボリューム構成情報提供装置1では、変更されたすべての対応関係を示す更新情報に含め、アクセスノード2,3に送信できる。そのため、仮想記憶領域と実記憶領域との対応関係の変更が同時に多数発生した場合でも、各アクセスノード2,3への情報送信は1回ずつで済む。その結果、論理ボリューム構成情報の変更内容をアクセスノード2,3に通知するための通信によるシステム全体の処理効率の低下を最小限に抑えることができる。
ところで、アクセスノードリストの内容は、システムの管理者が操作入力により更新することができる。また、アクセスノード2,3が運用しているか否かを論理ボリューム構成情報提供装置1で監視し、自動でアクセスノードリストの内容を更新することもできる。このような自動更新を行うことで、システム内に新たに追加されたアクセスノードに対する論理ボリューム構成情報の送信漏れを防止できる。
また、論理ボリュームの仮想記憶領域に対して、複数の実記憶領域を割り当て、それらの実記憶領域を用いて二重化処理を行うことができる。このような場合、共通の仮想記憶領域に対して割り当てられた実記憶領域を、プライマリ実記憶領域とセカンダリ実記憶領域とに分けることができる。プライマリ実記憶領域は、アクセスノード2,3からのアクセス対象となる実記憶領域である。セカンダリ実記憶領域は、プライマリ実記憶領域に格納されたデータのコピーを格納する実記憶領域である。このような構成の論理ボリュームの場合、仮想記憶領域と実記憶領域との対応関係のうち、プライマリ実記憶領域に関する対応関係のみをアクセスノード2,3に通知すればよい。
そこで、論理ボリュームに格納されるデータを二重化してストレージ装置に格納するマルチノードストレージシステムにおいて、アクセスノードリストを自動更新する場合を例に採り、本実施の形態を詳細に説明する。
[第1の実施の形態]
図2は、本実施の形態のマルチノードストレージシステム構成例を示す図である。本実施の形態では、ネットワーク10を介して、複数のディスクノード100,200,300,400、制御ノード500、アクセスノード600,700、および管理ノード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のディスク管理サービスを提供できる。
ディスクノード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およびアクセスノード600,700を管理する。例えば、制御ノード500は、管理ノード50から新たなストレージ装置の追加要求を受け取ると、新たな論理ボリュームを定義し、その論理ボリュームを介して追加されたストレージ装置に格納されていたデータにアクセスできるようにする。また、制御ノード500は、必要に応じて、論理ボリュームの定義内容をアクセスノード600,700に送信する。
アクセスノード600,700には、ネットワーク10を介して複数の端末装置21,22,23が接続されている。アクセスノード600,700には、論理ボリュームが定義されている。そして、アクセスノード600,700は、端末装置21,22,23からの論理ボリューム上でのデータのアクセス要求に応答して、ディスクノード100,200,300,400内の対応するデータへアクセスする。
管理ノード50は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード50では、マルチノードストレージシステムにおける論理ボリュームの使用量などの情報を収集し、運用状況を画面に表示する。
図3は、本実施の形態に用いる制御ノードのハードウェア構成例を示す図である。制御ノード500は、CPU(Central Processing Unit)501によって装置全体が制御されている。CPU501には、バス508を介してRAM(Random Access Memory)502と複数の周辺機器が接続されている。
RAM502は、制御ノード500の主記憶装置として使用される。RAM502には、CPU501に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU501による処理に必要な各種データが格納される。
バス508に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、光学ドライブ装置506、および通信インタフェース507がある。
HDD503は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD503は、制御ノード500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置504には、モニタ11が接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース505には、キーボード12とマウス13とが接続されている。入力インタフェース505は、キーボード12やマウス13から送られてくる信号をCPU501に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置506は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース507は、ネットワーク10に接続されている。通信インタフェース507は、ネットワーク10を介して、ディスクノード100,200,300,400、アクセスノード600,700、および管理ノード50との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、制御ノード500のハードウェア構成を示しているが、ディスクノード100,200,300,400、アクセスノード600,700、および管理ノード50も同様のハードウェア構成で実現することができる。
図4は、論理ボリュームのデータ構造を示す図である。本実施の形態では、論理ボリューム60には論理ボリューム識別子「LVOL−X」が付与され、論理ボリューム70には論理ボリューム識別子「LVOL−Y」が付与されている。ネットワーク経由で接続された4台のディスクノード100,200,300,400には、個々のノードの識別のためにそれぞれ「DP−A」、「DP−B」、「DP−C」、「DP−D」というノード識別子が付与されている。そして、各ディスクノード100,200,300,400に接続されているストレージ装置110,210,310,410は、ディスクノード100,200,300,400のノード識別子によってネットワーク10上で一意に識別される。
各ディスクノード100,200,300,400が有するストレージ装置110,210,310それぞれにおいて、例えばRAID5のストレージシステムが構成されている。各ストレージ装置110,210,310,410で提供される記憶機能は、複数のスライス115a〜115f,215a〜215f,315a〜315f,415a〜415fに分割されて管理されている。スライス115a〜115f,215a〜215f,315a〜315f,415a〜415fは、図1に示した実記憶領域に相当する。
論理ボリューム60は、セグメント61〜66という単位で構成される。論理ボリューム70は、セグメント71という単位で構成される。セグメント61〜66,71は、図1に示す仮想記憶領域に相当する。セグメント61〜66,71の記憶容量は、ストレージ装置110,210,310,410における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。論理ボリューム60,70の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。セグメント61〜66は、それぞれプライマリスライス61a,62a,63a,64a,65a,66aとセカンダリスライス61b,62b,63b,64b,65b,66bとの組(スライスペア)で構成される。セグメント71は、プライマリスライス71aとセカンダリスライス71bとの組で構成される。
同一セグメントに割り当てられた2つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には論理ボリューム識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
図4の例では、論理ボリューム60,70内のスライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント61のプライマリスライスが「P1」で示され、セカンダリスライスが「S1」で示される。
なお、図4では、論理ボリューム60については、1番目のセグメントから6番目のセグメントが示されている。また、論理ボリューム70については、7番目のセグメントが示されている。これは、論理ボリューム60,70ごとのセグメントを区別し易くするため、2つの論理ボリューム60,70のセグメントの番号が重複しないように図示したものである。実際には、セグメントを特定する情報内にそのセグメントが属する論理ボリュームの識別情報(論理ボリューム識別子)が含められ、論理ボリューム間のセグメントの番号の重複は許容される。従って、論理ボリューム70においても、1番目のセグメントから番号を開始することができる。
このような論理ボリューム60に含まれる各セグメント61〜66へのスライスの割り当て関係は、セグメント情報テーブルによって制御ノード500で管理される。論理ボリューム70も同様に制御ノード500で管理される。セグメントに割り当てるスライスが変更された場合、制御ノード500内のセグメント情報テーブルが更新される。このとき、各セグメントへのプライマリスライスの割り当て関係を示す論理ボリューム構成情報も同時に更新される。アクセスノード600,700は、適宜、制御ノード500に問い合わせることで、論理ボリューム構成情報を取得する。
図5は、アクセスノードの運用開始時における論理ボリューム構成情報の取得状況を示す図である。制御ノード500は、セグメント情報テーブル522を有している。制御ノード500が有するセグメント情報テーブル522には、論理ボリューム60,70の各セグメント61〜66,71に対して割り当てられたプライマリスライスとセカンダリスライスとの情報が登録されている。図5中、セグメント情報テーブル522の左側に論理ボリューム60に関する情報を示し、右側に論理ボリューム70に関する情報を示している。
なお、アクセスノード600には、マルチノードストレージシステム内で一意に識別するためのアクセスノードID「AP#1」が付与されている。また、アクセスノード700には、アクセスノードID「AP#2」が付与されている。アクセスノード600は論理ボリューム60を担当し、アクセスノード700は論理ボリューム70を担当する。
図5の例では、セグメント情報テーブル522の内容を簡略化して示している。セグメント情報テーブル522内の括弧内の情報が、論理ボリュームに属する1つのセグメントに関するスライスの割り当てを示している。括弧内の左側に、プライマリスライスに関する情報が設定され、右側にセカンダリスライスに関する情報が設定されている。各スライスに関する情報は、ディスクノードのノード識別子(図5では「DP−」を省略し、末端の記号のみを示している)と、ディスクノード内のスライスIDとの組で表されている。
アクセスノード600,700は、マルチノードストレージシステムとしての運用を開始する際に、制御ノード500に対して論理ボリューム構成情報を要求する。図5の例では、アクセスノード600は、論理ボリューム識別子「LVOL−X」の論理ボリューム60へのアクセス処理を行うものとする。また、アクセスノード700は、論理ボリューム識別子「LVOL−Y」の論理ボリューム70へのアクセス処理を行うものとする。この場合、アクセスノード600は、制御ノード500に対して論理ボリューム60に関する論理ボリューム構成情報を要求する。同様に、アクセスノード700は、制御ノード500に対して論理ボリューム70に関する論理ボリューム構成情報を要求する。
すると、制御ノード500は、セグメント情報テーブル522の要求された論理ボリューム情報のうち、プライマリスライスに関する情報のみで構成される論理ボリューム構成情報を、アクセスノード600,700に送信する。その結果、アクセスノード600,700では、論理ボリューム構成情報631,731が保持される。
図5に示したように、アクセスノード600,700が保持する論理ボリューム構成情報631,731には、プライマリスライスに関する情報のみが含まれ、セカンダリスライスに関する情報は含まれない。これは、アクセスノード600,700からディスクノード100,200,300,400へのアクセスが、プライマリスライスに対してのみ行われるためである。アクセスノード600,700に配布する論理ボリューム構成情報631,731にセカンダリスライスに関する情報を含めないことで、制御ノード500からアクセスノード600,700に転送すべきデータ量を削減できる。
なお、アクセスノード600,700からプライマリスライスへのデータの書き込みが行われた場合、プライマリスライスを管理するディスクノードがセカンダリスライスへデータのコピー(ミラーリング)を行う。これにより、アクセスノード600,700においてセカンダリスライスの所在を認識していなくても、データの二重化状態が維持される。
ここで、ディスクノード100で故障が発生した場合を想定する。すると、ディスクノード100で管理しているスライスが割り当てられているセグメントは、すべて二重化状態が損なわれる。以下、二重化状態が損なわれたセグメントを、特に「縮退セグメント」と呼ぶこととする。制御ノード500は、縮退セグメントが発生するとリカバリ処理を開始する。
図6は、制御ノードにおけるリカバリ処理状況を示す図である。制御ノード500は、先ずディスクノード100の故障を検出する。例えば、制御ノード500は、ディスクノード100から定期的に出力されるべきハートビート(稼動していることを通知する信号)が所定期間途絶えた場合、ディスクノード100の故障を認識できる。なお、ストレージ装置110のみの故障であれば、ディスクノード100がその故障を検出し、制御ノード500に対してその旨を通知することもできる。
制御ノード500は、ストレージ装置110に対してアクセス不能になったことを検出すると、リカバリ処理を開始する。リカバリ処理では、ディスクノード100が管理するスライスと同じセグメントに割り当てられている他のスライスを、すべてプライマリスライスに変更する。図6の例では、ディスクノード200の5番目のスライス、ディスクノード300の2番目のスライス、ディスクノード400の1番目のスライス、およびディスクノード400の4番目のスライスがセカンダリスライスからプライマリスライスに変更される。
次に、制御ノード500は、縮退セグメントに対してセカンダリスライスを割り当てる。具体的には、正常に動作しているディスクノード200,300,400が管理するスライスの中からフリーのスライス(セグメントへの割り当てが行われていないスライス)を抽出し、縮退セグメントに割り当てる。この際、制御ノード500は、既に縮退セグメントに割り当てられているスライスが属するディスクノードは別のディスクノードに属するスライスを、その縮退セグメントに割り当てる。すなわち、制御ノード500は、割り当て後のスライスペアを構成する2つのスライスが、常に異なるディスクノードに属するように、スライスの割り当てを行う。
制御ノード500では、縮退セグメントに新たなスライスを割り当てた場合、その割り当て結果に基づいてセグメント情報テーブル522を更新する。そして、制御ノード500は、割り当て結果をディスクノード200,300,400に通知する。
各ディスクノード200,300,400では、制御ノード500からの通知によって、自己の管理するスライスの割り当て先となるセグメントと、スライスペアを組む相手となる他のディスクノードに属するスライスを認識する。そして、縮退セグメントのプライマリスライスを管理しているディスクノードは、縮退セグメントに割り当てられたセカンダリスライスに対してプライマリスライス内のデータをコピーする。なお、データをコピーしている間も、プライマリスライスへのアクセスノード600,700からのアクセスは可能である。
スライス内のデータのコピーが完了すると、縮退セグメントの二重化状態の復旧処理が完了し、該当セグメントは縮退セグメントではなくなる。ただし、この状態では、まだアクセスノード600,700内の論理ボリューム構成情報631,731が未更新である。そこで、制御ノード500は、アクセスノード600,700に対して更新後の論理ボリューム構成情報の送信処理を行う。なお、論理ボリューム構成情報の送信処理は、縮退セグメント内のデータのコピーが完了するのを待たずに実行される。
図7は、アクセスノードへの論理ボリューム構成情報の通知状況を示す図である。制御ノード500がアクセスノード600,700へ更新された論理ボリューム構成情報を通知するには、制御ノード500がアクセスノード600,700の存在を予め認識している必要がある。そこで、制御ノード500には、マルチノードストレージシステムに組み込まれているアクセスノード600,700の識別情報を予め登録しておく。
そして、制御ノード500は、リカバリ処理の開始を契機として、セグメント情報テーブル522を、論理ボリューム構成情報が更新されたことをアクセスノード600,700に通知する。その通知を受け取ったアクセスノード600,700は、制御ノード500に保持された更新後のセグメント情報テーブル522を参照する。そして、アクセスノード600,700は、セグメント情報テーブル522から、プライマリスライスに関する情報のみを取得し、自己の論理ボリューム構成情報631,731を更新する。
このように、アクセスノード600,700から故障したディスクノード100へのアクセスが発生する前に、アクセスノード600,700の論理ボリューム構成情報631,731を更新することができる。そのため、ディスクノード100の故障により縮退セグメントとなったセグメントのデータに対するアクセスノード600,700からのリカバリ処理後の最初のアクセスであっても、更新された論理ボリューム構成情報631,731に基づいてアクセスできる。その結果、リカバリ処理が発生してもユーザへの応答を遅延させずに済む。
次に、本実施の形態に係るリカバリ処理を実現するために必要な各装置の機能について詳細に説明する。
図8は、ディスクノードの機能を示すブロック図である。ディスクノード100は、インタフェース(I/F)部120、デバイス制御部130、スライス情報記憶部140、および制御部150を有する。
I/F部120は、所定の通信プロトコルにより、他の装置とネットワーク10を介したデータ通信を実現するための通信機能である。デバイス制御部130は、ストレージ装置110を制御する。
スライス情報記憶部140は、ストレージ装置110のスライスを管理するためのスライス情報を記憶する記憶機能である。例えば、ディスクノード100のRAM内の記憶領域の一部がスライス情報記憶部140として使用される。なお、スライス情報は、スライス毎に設けられたメタデータを集めたものである。メタデータは、対応するスライスが割り当てられたセグメントや、スライスペアにおいて対となる他のスライスを示す情報である。
制御部150は、データアクセス制御部151、ハートビート送信部152、データ管理部153を有する。
データアクセス制御部151は、アクセスノードからのI/Oリクエスト(リード要求またはライト要求)を受け付けた場合に、スライス情報記憶部140を参照して、アクセス対象のスライスを判断する。そして、データアクセス制御部151は、ストレージ装置110内のアクセス要求に応じたデータにアクセスする。例えば、I/Oリクエストがリード要求であれば、データアクセス制御部151は、ストレージ装置110からデータを取得し、アクセスノード30に送信する。また、I/Oリクエストがライト要求であれば、データアクセス制御部151は、ストレージ装置110にデータを書き込む。
ハートビート送信部152は、ディスクノード100およびストレージ装置110が正常動作していることを制御ノード500に定期的に通知する。具体的には、ハートビート送信部152は、ディスクノード100およびストレージ装置110が正常に動作している場合、定期的に制御ノード500へ正常に動作していることを示す正常通知(ハートビート)を送信する。制御ノード500では、ディスクノード100からのハートビートが一定時間途絶えた場合に、ディスクノード100での障害が発生したことを認識する。
データ管理部153は、制御ノード500からスライス情報の更新指示を受け付けた場合に、スライス情報記憶部140に記憶されているスライス情報を更新する。スライス情報の更新処理としては、例えば、スライスのプライマリ化がある。データ管理部153は、プライマリ化指示を受け付けた場合、スライス情報記憶部140内のプライマリ化指示に含まれるスライスIDで示されるメタデータの属性を「プライマリ(P)」に更新する。
また、データ管理部153は、スライス割当指示を受け付けた場合、スライス割当指示に含まれるスライスIDをキーにして、スライス情報記憶部140からメタデータを特定する。データ管理部153は、特定したメタデータの内容を、スライス割当指示で指定された内容(割当先のセグメントやペアとなる他のスライスの情報が含まれる)に応じて更新する。ストレージ装置110のスライスをセグメントに新たに割り当てた場合、データ管理部153は、他のディスクノードで管理されているペアとなるスライスからデータを取得し、新たに割り当てられたスライスに格納する。
なお、データ管理部153は、スライス情報内のメタデータを更新すると、ストレージ装置110内の対応するメタデータも更新する。これにより、ストレージ装置110内のメタデータとスライス情報記憶部140内のメタデータとの同一性が維持される。ストレージ装置100の起動時には、ストレージ装置110からメタデータが読み出され、データ管理部153によってスライス情報が生成される。データ管理部153は、制御ノード500からスライス情報取得要求を受け取った場合、スライス情報記憶部140内のスライス情報を制御ノード500に送信する。
さらに、データ管理部153は、プライマリスライスとセカンダリスライスとのデータの冗長性確保処理を行う。具体的には、データ管理部153は、データアクセス制御部151によってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたプライマリスライスに対応するセカンダリスライスを管理するディスクノードを判断する。そして、データ管理部153は、該当するディスクノードのデータ管理部と連携動作し、プライマリスライスに対するデータ更新と同様に、セカンダリスライス内のデータを更新する。
リカバリ処理時において、ストレージ装置110内のスライスが縮退セグメントのプライマリスライスであった場合、データ管理部153は該当スライスのデータを、セカンダリスライスを管理するディスクノードに送信する。これにより、縮退セグメントのデータの二重化状態を回復することができる。
なお、図8にはディスクノード100の機能を示したが、ディスクノード200,300,400もディスクノード100と同様の機能を有している。
次に、スライス情報記憶部140に格納されるデータについて詳細に説明する。
図9は、スライス情報記憶部のデータ構造例を示す図である。スライス情報記憶部140には、メタデータテーブル141が格納されている。メタデータテーブル141には、ディスクノードID、スライスID、状態、論理ボリュームID、セグメントID、ペアのディスクノードID、およびペアのスライスIDの欄が設けられている。メタデータテーブル141内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。
ディスクノードIDの欄は、ストレージ装置110を管理しているディスクノード100の識別情報(ディスクノードID)が設定される。
スライスIDの欄には、メタデータに対応するスライスのストレージ装置110内での識別情報(スライスID)が設定される。
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが論理ボリュームのセグメントに割り当てられていない場合、状態フラグ「F」が設定される。論理ボリュームのセグメントのプライマリストレージに割り当てられている場合、状態フラグ「P」が設定される。論理ボリュームのセグメントのセカンダリストレージに割り当てられている場合、状態フラグ「S」が設定される。
論理ボリュームIDの欄には、スライスに対応するセグメントが属する論理ボリュームを識別するための識別情報(論理ボリュームID)が設定される。
セグメントIDの欄には、論理ボリュームに含まれるセグメントの識別情報(セグメントID)が設定される。
ペアのディスクノードIDの欄には、ペアのスライス(同じセグメントに属する別のスライス)を有するストレージ装置を管理するディスクノードの識別情報(ディスクノードID)が設定される。
ペアのスライスIDの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報(スライスID)が設定される。
図10は、制御ノードの機能を示すブロック図である。制御ノード500は、インタフェース(I/F)部510、記憶部520、および制御部530を有する。I/F部510は、所定の通信プロトコルにより、ディスクノード100,200,300,400、アクセスノード600,700、および管理ノード50と、ネットワーク10を介したデータ通信を実現するための通信機能である。
記憶部520は、各種情報を記憶する記憶機能である。例えば、RAM502やHDD503の記憶領域の一部を、記憶部520として利用することができる。記憶部520には、スライス情報テーブル521、セグメント情報テーブル522、論理ボリューム構成情報523、アクセスノードリスト524、および復旧対象リスト525が記憶される。
スライス情報テーブル521は、各ディスクノード100,200,300,400から収集したメタデータが登録されたデータテーブルである。このメタデータは、ストレージ装置内の各スライスに関して、割り当てられたセグメント、および対となる他のスライスが示された情報である。スライス情報テーブル521は、制御部530内のスライス情報収集部532によって作成される。
セグメント情報テーブル522は、論理ボリュームを構成する各セグメントに対して割り当てられたスライスを示す情報である。セグメント情報テーブル522は、スライス情報収集部532によって、ディスクノード100,200,300,400から収集したメタデータ基づいて生成される。
論理ボリューム構成情報523は、予め定義されている論理ボリュームごとに、その論理ボリュームに含まれるセグメントへのスライスの割り当て関係が定義された情報である。
アクセスノードリスト524は、マルチノードストレージシステムに組み込まれたアクセスノードが正常に運用しているか否かを示す情報である。アクセスノードリスト524の内容は、アクセスノード管理部537によって更新される。
復旧対象リスト525は、リカバリ処理の対象となるセグメントを示す情報である。復旧対象リスト525は、制御部530内の復旧対象抽出部533によって生成される。
制御部530は、ディスクノード監視部531、スライス情報収集部532、復旧対象抽出部533、二重化制御部534、論理ボリューム構成情報管理部535、アクセスノードハートビート受信部536、アクセスノード管理部537、および構成情報変更通知部538を有する。
ディスクノード監視部531は、ディスクノード100,200,300,400が正常に動作しているか否かを監視する処理部である。具体的には、ディスクノード監視部531は、ディスクノード100,200,300,400から定期的に送られてくるハートビートを受信する。そのとき、ディスクノード監視部531は、ハートビートの受信時刻を、ディスクノードに対応付けて記憶する。そして、ディスクノード監視部531は、前回のハートビート受信から所定期間以上経過しても次のハートビートを送ってこないディスクノードがあると、そのディスクノードに障害が発生したものと判断する。
スライス情報収集部532は、システムの運用開始時にディスクノード100,200,300,400からスライス情報を収集し、スライス情報テーブル521とセグメント情報テーブル522とを生成する。また、スライス情報収集部532は、ディスクノード監視部531によっていずれかのディスクノードに異常が発生したことが検知された場合、正常に動作しているディスクノードからスライス情報(メタデータの集合)を収集する。そして、スライス情報収集部532は、収集したスライス情報に基づいて、スライス情報テーブル521とセグメント情報テーブル522とを新たに生成する。
復旧対象抽出部533は、ディスクノード監視部531によりディスクノードの障害が検出されると、縮退セグメントを検出する。具体的には、復旧対象抽出部533は、障害発生により再生成されたセグメント情報テーブル522に基づいて、縮退セグメントを抽出する。縮退セグメントとは、プライマリスライスまたはセカンダリスライスの一方のみが割り当てられているセグメントである。そして、復旧対象抽出部533は、縮退セグメントを示す情報を復旧対象リスト525に格納する。
二重化制御部534は、セグメントのデータの二重化が保たれるように、縮退セグメントへのスライス割当を制御する。すなわち、ディスクノードの障害により二重化状態が崩れたセグメントが発生すると、そのセグメントのリカバリ処理(二重化回復処理)を行う。リカバリ処理は、縮退セグメントに割り当てられているスライスと、正常に動作しているストレージ管理装置の空きスライスとでスライスペアを再構成し、二重化状態を回復させる処理である。なお、空きスライスとは、いずれのセグメントにも割り当てられていないスライスである。リカバリ処理は、大別するとプライマリ化処理、空きスライス割当処理、およびスライス情報更新処理に分かれる。
プライマリ化処理は、縮退セグメントに現在割り当てられているスライスをすべてプライマリにする処理である。具体的には、二重化制御部534は、復旧対象リスト525とセグメント情報テーブル522とから、縮退セグメントに割り当てられているスライスのディスクノードIDおよびスライスIDを取得する。そして、二重化制御部534は、取得したディスクノードIDに該当するストレージ装置を有するディスクノードに対して、取得したスライスIDで示されるスライスのプライマリ化指示を送信する。プライマリ化指示で指定されたスライスは、そのプライマリ化指示を受け取ったディスクノードによって、属性がプライマリに変更される。
続いて、二重化制御部534は、空きスライス割当処理を行う。具体的には、二重化制御部534は、スライス情報テーブル521から、縮退セグメントに現在割り当てられているスライスとは異なるストレージ装置に属する空きスライスを検索する。そして、二重化制御部534は、検索されたスライスの1つを選択し、縮退セグメントのセカンダリスライスとして割り当てる。
さらに、二重化制御部534は、セカンダリスライスとするスライスへのデータコピー指示を、プライマリスライスを管理するディスクノードに対して送信する。データコピー指示には、セカンダリスライスを管理するディスクノードのディスクノードIDと、セカンダリスライスのスライスIDとが含まれる。データコピー指示を受け取ったディスクノードは、プライマリスライスのデータをセカンダリスライスを管理するディスクノードに転送する。データを受け取ったディスクノードは、そのデータをセカンダリスライスに格納する。これにより、縮退セグメントのデータが二重化される。
そして、二重化制御部534は、縮退セグメントのプライマリスライスとセカンダリスライスとのそれぞれを管理するディスクノードに対して、スライス情報更新指示を送信し、復旧対象リスト525の内容を消去する。スライス情報更新指示には、縮退セグメントに割り当てられたスライスのメタデータが含まれる。スライス情報更新指示を受け取ったディスクノードは、スライス情報更新指示に含まれるメタデータにより、スライス情報記憶部とストレージ装置とのメタデータを更新する。
論理ボリューム構成情報管理部535は、論理ボリューム構成情報523を管理する。具体的には、論理ボリューム構成情報管理部535は、セグメント情報テーブル522を参照し、論理ボリュームにおける各セグメントへのスライスの割り当て関係を示す情報のうち、プライマリスライスに関する情報のみを抽出する。そして、論理ボリューム構成情報管理部535は、抽出したプライマリスライスに関する情報を含む論理ボリューム構成情報523を生成する。論理ボリューム構成情報管理部535は、生成した論理ボリューム構成情報523を記憶部520に格納する。
また、論理ボリューム構成情報管理部535は、アクセスノード600,700からの論理ボリューム構成情報参照要求に応答して、論理ボリューム構成情報523をアクセスノード600,700に送信する。
アクセスノードハートビート受信部536は、アクセスノード600,700からのハートビートを受信する。アクセスノードハートビート受信部536は、ハートビートを受信すると、そのハートビートを送信したアクセスノードに関するアクセスノード情報をアクセスノード管理部537に通知する。
アクセスノード管理部537は、運用中のアクセスノードを管理する。具体的には、アクセスノード管理部537は、アクセスノードハートビート受信部536から受け取ったハートビートの情報に基づき、ハートビートを出力したアクセスノードの識別情報(IPアドレスなど)を判断する。そして、アクセスノード管理部537は、ハートビートを出力したアクセスノードがアクセスノードリスト524に登録されていなければ、そのアクセスノードをアクセスノードリスト524に追加登録する。
また、アクセスノード管理部537は、アクセスノードリスト524に登録されているアクセスノードから定期的にハートビートが届いているか否かを判断する。ハートビートが所定期間以上途絶えたアクセスノードがある場合、アクセスノード管理部537は、該当するアクセスノードをアクセスノードリスト524から削除する。
構成情報変更通知部538は、論理ボリューム構成情報管理部535により論理ボリューム構成情報523の内容が更新されると、そのとき正常に動作しているアクセスノードに対して論理ボリューム構成情報523が更新されたことを通知する。なお、構成情報変更通知部538は、アクセスノードリスト524を参照することで、正常に動作しているアクセスノードを判断する。
次に、記憶部520に格納される情報について詳細に説明する。
図11は、スライス情報テーブルのデータ構造例を示す図である。スライス情報テーブル521には、ディスクノードID、スライスID、状態、論理ボリュームID、セグメントID、ペアのディスクノードID、およびペアのスライスIDの欄が設けられている。スライス情報テーブル521内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。スライス情報テーブル521の各欄に設定される情報は、図9に示したメタデータテーブル141の同名の欄と同種の情報である。ただし、スライス情報テーブル521は、ディスクノード100のメタデータテーブル141とは異なり、複数のディスクノード100,200,300,400から収集したすべてのスライス情報に含まれるメタデータが登録されている。
図12は、セグメント情報テーブルのデータ構造例を示す図である。セグメント情報テーブル522には、論理ボリュームID、セグメントID、プライマリスライス情報、およびセカンダリスライス情報の欄が設けられている。
論理ボリュームIDの欄には、マルチノードストレージシステムで定義された論理ボリュームの識別情報(論理ボリュームID)が設定される。セグメントIDの欄には、論理ボリュームに定義されたセグメントの識別情報(セグメントID)が設定される。
プライマリスライス情報の欄には、対応するセグメントに割り当てられたプライマリスライスに関する情報が設定される。プライマリスライスに関する情報としては、ディスクノードIDとスライスIDとがある。プライマリスライスに関する情報としてのディスクノードIDは、プライマリスライスとして割り当てられたスライスを管理するディスクノードの識別情報である。プライマリスライスに関する情報としてのスライスIDは、プライマリスライスとして割り当てられたスライスの識別情報である。
セカンダリスライス情報の欄には、対応するセグメントに割り当てられたセカンダリスライスに関する情報が設定される。セカンダリスライスに関する情報としては、ディスクノードIDとスライスIDとがある。セカンダリスライス情報としてのディスクノードIDは、セカンダリスライスとして割り当てられたスライスを管理するディスクノードの識別情報である。セカンダリスライス情報としてのスライスIDは、セカンダリスライスとして割り当てられたスライスの識別情報である。
図13は、論理ボリューム構成情報のデータ構造例を示す図である。論理ボリューム構成情報523には、論理ボリュームID、セグメントID、およびスライス情報の欄が設けられている。論理ボリューム構成情報523の各欄に設定される情報は、図9に示したメタデータテーブル141の同名の欄と同種の情報である。
図14は、アクセスノードリストのデータ構造例を示す図である。アクセスノードリスト524には、アクセスノードID、IPアドレス、ポート番号、およびハートビート受信時刻の欄が設けられている。テーブル内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、1つのアクセスノード情報となる。
アクセスノードIDの欄には、運用中のアクセスノードをマルチノードストレージシステム内で一意に識別するための識別番号が設定される。IPアドレスの欄には、アクセスノードのIPアドレスが設定される。ポート番号の欄には、アクセスノード内の論理ボリュームアクセス制御部に対応するIPポート番号が設定される。
ハートビート受信時刻の欄には、対応するアクセスノードから出力されたハートビートの受信時刻を示す情報が設定される。
次に、復旧対象リスト525について説明する。復旧対象リスト525は、ディスクノードにおいて障害が検出されたときに、セグメント情報テーブルに基づいて生成される。ここで、ディスクノード100が故障した場合を想定する(図6に示した状況)。この場合、ディスクノード100が管理するスライスへアクセスできなくなる。すると、セグメント情報テーブル522が更新される。
図15は、障害発生時のセグメント情報テーブルの例を示す図である。ディスクノード100に障害が発生したことにより、ディスクノード100のスライスに関する情報が、セグメント情報テーブル522から削除される。その結果、プライマリスライスまたはセカンダリスライスの一方のみが割り当てられているセグメントが発生する。このような縮退セグメントが復旧対象セグメントとして選択され、復旧対象リスト525が生成される。
図16は、復旧対象リストのデータ構造例を示す図である。復旧対象リスト525には、論理ボリュームIDとセグメントIDとの欄が設けられている。論理ボリュームIDの欄には、復旧対象セグメントが属する論理ボリュームの識別子(論理ボリュームID)が設定される。セグメントIDの欄には、縮退セグメントとなり、二重化状態を復旧する必要があるセグメントの識別情報が設定される。
図15に示したセグメント情報テーブル522では、論理ボリュームID「LVOL−X」の論理ボリューム60内の4つのセグメントが縮退セグメントとなっている。そのため、それらの4つのセグメントが図16に示す復旧対象リスト525が登録されている。
次に、アクセスノード600,700が有する機能について説明する。
図17は、アクセスノードの機能を示すブロック図である。アクセスノード600は、インタフェース(I/F)部610、記憶部620、および論理ボリュームアクセス制御部630を有する。I/F部610は、所定の通信プロトコルにより、ディスクノード100,200,300,400、制御ノード500、および管理ノード50と、ネットワーク10を介したデータ通信を実現するための通信機能である。
記憶部620は、各種情報を記憶する記憶機能である。例えば、RAM502やHDD503の記憶領域の一部を、記憶部520として利用することができる。記憶部520には、論理ボリューム構成情報621とI/O処理リスト622とが格納されている。論理ボリューム構成情報621は、アクセスノード600で使用する論理ボリュームの各セグメントに対して割り当てられたプライマリスライスに関する情報である。なお、論理ボリューム構成情報621のデータ構造および内容は、図13に示した論理ボリューム構成情報523と同様である。
I/O処理リスト622は、端末装置21,22,23からのI/Oリクエストに応じて実行したディスクノード100,200,300,400に対するI/O処理の内容を示す情報である。
論理ボリュームアクセス制御部630は、端末装置21,22,23などからの論理ボリュームへのI/Oリクエストに応じて、そのI/Oリクエストで指定されたセグメントに対応するスライスにアクセスする。そのために、論理ボリュームアクセス制御部630は、I/Oリクエスト受信部631、構成情報参照部632、I/Oリクエスト処理部633、I/Oレスポンス送信部634、ハートビート送信部635、および構成変更通知受信部636を有する。
I/Oリクエスト受信部631は、端末装置21,22,23などからのI/Oリクエストを受信する。I/Oリクエスト受信部631は、受信したI/OリクエストをI/Oリクエスト処理部633に渡す。
構成情報参照部632は、必要に応じて制御ノード500の論理ボリューム構成情報523を参照する。例えば、構成情報参照部632は、アクセスノード600の起動時に制御ノード500に論理ボリューム構成情報523の参照要求を送信し、論理ボリューム構成情報523を取得する。この場合、構成情報参照部632は、取得した論理ボリューム構成情報523と同じ内容の論理ボリューム構成情報621を記憶部620に格納する。また、構成情報参照部632は、論理ボリューム構成情報523の構成が変更され旨の情報を構成変更通知受信部636から受け取った場合にも、制御ノード500に論理ボリューム構成情報523の参照要求を送信し、論理ボリューム構成情報523を取得する。この場合、構成情報参照部632は、取得した論理ボリューム構成情報523と同じ内容に、論理ボリューム構成情報621の内容を更新する。
I/Oリクエスト処理部633は、I/Oリクエスト受信部631から渡されたI/Oリクエストに基づいてI/O処理を実行する。具体的には、I/Oリクエスト処理部633は、論理ボリューム構成情報621を参照し、I/Oリクエストに応じたアクセス先となるディスクノードと、そのディスクノードが管理するスライスとを判断する。さらに、I/Oリクエスト処理部633は、該当するディスクノードに対して、ディスクノードのスライスを指定したスライス指定I/Oリクエスト(リード要求またはライト要求)を送信する。そして、I/Oリクエスト処理部633は、実行したI/Oリクエストの処理内容をI/O処理リスト622に格納する。
I/Oレスポンス送信部634は、スライス指定I/Oリクエストを送信したディスクノードからのI/Oレスポンスを取得し、論理ボリュームへのI/Oリクエストを出力した端末装置に送信する。
ハートビート送信部635は、定期的に制御ノード500に対してハートビートを送信する。
構成変更通知受信部636は、論理ボリュームの構成情報変更通知を制御ノード500から受信する。構成変更通知受信部636は、構成情報変更通知を受信すると、その旨を構成情報参照部632に通知する。
なお、図17には、アクセスノード600の機能を示したが、アクセスノード700も同様の機能を有している。
次に、I/O処理リスト622の詳細について説明する。
図18は、I/O処理リストのデータ構造例を示す図である。I/O処理リスト622には、キュー形式でI/O処理単位622b,622c,622dが格納されている。
I/O処理リスト622内には、キュートップ622aが設けられている。キュートップ622aには、処理順が最も早いI/O処理単位622bへのポインタ(I/O処理単位の格納領域の先頭を示す情報)が設定されている。各I/O処理単位622b,622c,622dは、処理順が次になるI/O処理単位へのポインタを有している。このように、キュートップ622aから順に複数のI/O処理単位622b,622c,622dが並べられる。
I/Oリクエスト処理部633は、スライス指定I/Oリクエストをディスクノードに送信した場合、端末装置から受信したI/Oリクエストに応じたI/O処理単位をI/O処理リスト622に登録する。そして、I/Oリクエスト処理部633は、最後尾のI/O処理単位622dに対して、新たに登録したI/O処理単位へのポインタを設定する。
I/O処理単位622bには、処理内容、論理ボリュームID、論理ボリューム内のオフセット値、アクセスサイズ(ブロック数)、データ領域ポインタ、リクエスト発行時刻、リクエストを出したディスクノード数などの情報が含まれる。
処理内容は、I/Oリクエストが、リード要求なのかライト要求なのかを示す情報である。論理ボリュームIDは、アクセス対象の論理ボリュームの識別子である。論理ボリューム内のオフセット値は、論理ボリュームの先頭のアドレスと、アクセス対象のデータの先頭のアドレスとの差分(オフセット値)である。このオフセット値に基づいて、アクセス対象のセグメントを一意に特定することができる。例えば、セグメントのサイズが1ギガバイトのときに、オフセット値が1ギガバイト未満であれば、論理ボリューム60内の先頭のセグメント61がアクセス対象となる。セグメントのサイズが1ギガバイトのときに、オフセット値が1ギガバイト以上、2ギガバイト未満であれば、2つ目のセグメント62がアクセス対象となる。
アクセスサイズは、アクセス対象のデータサイズである。そのデータサイズは、アクセスの最小単位であるブロックの数によって指定される。
データ領域ポインタは、I/Oリクエストの処理対象となるデータの格納領域の先頭のアドレスを示す情報である。I/Oリクエストがリード要求の場合、読み込んだデータの格納領域が、データ領域ポインタで示される。また、I/Oリクエストがライト要求の場合、書き込むべきデータの格納領域が、データ領域ポインタで示される。
リクエスト発行時刻は、I/Oリクエストを受信した時刻を示す情報である。I/Oリクエストを出したディスクノード数は、論理ボリューム内のアドレスで指定されたI/Oリクエストに応じて、スライス指定I/Oリクエストを何台のディスクノードに対して送信したのかが示される。複数のセグメントにまたがったデータへのI/Oリクエストを受信した場合には、各セグメントに対応する複数のスライス指定I/Oリクエストが送信される。そのため、1つのI/Oリクエストから複数のディスクノードへのスライス指定I/Oリクエストが送信される場合がある。
次に、アクセスノード600と制御ノード500との間で行われる処理について詳細に説明する。
図19は、アクセスノードリストへのアクセスノード登録処理の手順を示すシーケンス図である。アクセスノード600が起動されると、制御ノード500へのハートビートの送信処理を実行する(ステップS11)。具体的には、アクセスノード600内のハートビート送信部635が制御ノード500へハートビートを送信し、レスポンスを待つ。なお、ハートビートには、アクセスノード600や、アクセスノード600内の論理ボリュームアクセス制御部630に関する情報(アクセスノードID、IPアドレス、ポート番号など)を含めることができる。
制御ノード500では、アクセスノード600からのハートビートに応じて、アクセスノード情報をアクセスノードリストへの登録処理を行う(ステップS12)。具体的には、アクセスノードハートビート受信部536がアクセスノード600からのハートビートを受信する。アクセスノードハートビート受信部536は、ハートビートを送信したアクセスノード600に関するアクセスノード情報を、アクセスノード管理部537に渡す。アクセスノード管理部537はアクセスノードリスト524を参照し、未登録のアクセスノードからのハートビートであることを確認する。そして、アクセスノード管理部537は、アクセスノード600のアクセスノード情報をアクセスノードリスト524に登録する。この際、アクセスノード管理部537は、アクセスノード600用のハートビート受信時刻を記録する。また、アクセスノードハートビート受信部536は、アクセスノード600に対してハートビートへのレスポンスを返す。
アクセスノード600のハートビート送信部635は、制御ノード500からのレスポンスを受信することで、1回のハートビート送信処理が終了する。ハートビート送信部635は、ハートビート送信処理が終了すると、時間の計測を開始する。そして、ハートビート送信部635は、計測時間が予め設定されたハートビート間隔に達すると、次のハートビート送信処理を行う(ステップS13)。
2回目のハートビートを受信した制御ノード500では、アクセスノード600の生存確認処理を行う(ステップS14)。具体的には、制御ノード500のアクセスノードハートビート受信部536は、1回目と同様に、ハートビートを受信して、そのハートビートをアクセスノード管理部537に渡す。アクセスノード管理部537は、アクセスノードリスト524を参照し、既に登録されたアクセスノードからのハートビートであることを確認する。そして、アクセスノード管理部537は、アクセスノードリスト524におけるアクセスノード600のハートビート受信時刻を更新する。また、アクセスノードハートビート受信部536は、アクセスノード600に対してハートビートへのレスポンスを返す。
なお、アクセスノード管理部537は、アクセスノード600用のハートビート受信時刻から所定のエラー検出時間を過ぎても次のハートビートが受信できなかった場合、アクセスノード600は停止したものと判断する。その場合、アクセスノード管理部537は、アクセスノードリスト524から、アクセスノード600に関するアクセスノード情報を削除する。
このようにして、アクセスノード600からのハートビートに基づく、制御ノード500におけるアクセスノード600の生存確認が行われる。以下、ハートビートを受信したときの制御ノード500における処理を詳細に説明する。
まず、アクセスノードハートビート受信部536の処理について説明する。
図20は、ハートビート受信処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS21]アクセスノードハートビート受信部536は、アクセスノードからのハートビートを受信するのを待つ。
[ステップS22]アクセスノードハートビート受信部536は、アクセスノードからハートビートを受信する。
[ステップS23]アクセスノードハートビート受信部536は、ハートビートを出力したアクセスノードに関するアクセスノード情報を、アクセスノード管理部537に通知する。
[ステップS24]アクセスノードハートビート受信部536は、ハートビートを出力したアクセスノードに対してレスポンスを返す。その後、処理がステップS21に進められる。
次に、アクセスノード管理部537におけるアクセスノードチェック処理について説明する。
図21は、アクセスノードリストチェック処理の手順を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS31]アクセスノード管理部537は、アクセスノードハートビート受信部536から、ハートビートの受信に応じたアクセスノード情報の通知があったか否かを判断する。アクセスノード情報が通知された場合、処理がステップS32に進められる。アクセスノード情報の通知がなければ、処理がステップS35に進められる。
[ステップS32]アクセスノード管理部537は、アクセスノードハートビート受信部536からアクセスノード情報を受け取ると、通知されたアクセスノード情報がアクセスノードリスト524に登録済みか否かを判断する。登録済みであれば、処理がステップS33に進められる。登録済みでなければ、処理がステップS34に進められる。
[ステップS33]アクセスノード管理部537は、通知されたアクセスノード情報がアクセスノードリスト524に既に登録されている場合、該当するアクセスノードのハートビート受信時刻を現在の時刻に更新する。その後、処理がステップS35に進められる。
[ステップS34]アクセスノード管理部537は、通知されたアクセスノード情報がアクセスノードリスト524に登録されていない場合、アクセスノードリスト524に取得したアクセスノード情報を登録する。その際、アクセスノード管理部537は、新たに登録したアクセスノード情報に対し、現在の時刻をハートビート受信時刻として追加する。
[ステップS35]アクセスノード管理部537は、一定時間以上更新されていないアクセスノード情報があるか否かを判断する。具体的には、アクセスノード管理部537は、アクセスノードリスト524内の各アクセスノード情報に付与されているハートビート受信時刻と現在の時刻とを比較する。その時刻の差が、予め設定されたハートビート途絶検出の閾値を超えていた場合、アクセスノード管理部537は、該当するアクセスノード情報について一定時間以上更新されていないと判断する。該当するアクセスノード情報があれば、処理がステップS36に進められる。該当するアクセスノード情報がなければ、処理がステップS31に進められる。
[ステップS36]アクセスノード管理部537は、一定時間以上更新されていないアクセスノード情報がある場合、該当するアクセスノード情報をアクセスノードリスト524から削除する。その後、処理がステップS31に進められる。
このように、アクセスノードからハートビートを出力することで、制御ノード500において運用中のアクセセスノードを認識することができる。すなわち、アクセスノードリスト524の内容をリアルタイムに更新することができる。そして、制御ノード500では、論理ボリューム構成情報523の内容が更新された場合、アクセスノードリスト524を参照して、構成情報が更新された旨の通知を、運用中のアクセスノードに送信できる。
図22は、論理ボリューム構成情報変更時の処理手順を示すシーケンス図である。図22の例では、ディスクノード100に障害が発生した場合における、論理ボリューム60(図4参照)のセグメントID「1」の二重化状態の復旧処理が示されている。
ディスクノード100のハートビート送信部152は、正常に動作している間、制御ノード500に対して定期的にハートビートを送信する(ステップS41)。制御ノード500のディスクノード監視部531は、ディスクノード100からハートビートを受信することで、ディスクノード100が正常に動作していることを認識する(ステップS42)。
ここで、ディスクノード100に障害が発生し、ハートビートが途絶したものとする。この場合、制御ノードの500のディスクノード監視部531は、ディスクノード100からのハートビートが所定の期間以上途絶したことにより、ディスクノード100の障害を検知する(ステップS43)。すると制御ノード500のスライス情報収集部532が、正常に動作しているディスクノード200,300,400から最新のスライス情報を収集し、スライス情報テーブル521を再構成する。次に二重化制御部534が、再構成されたスライス情報テーブル521に基づいてセグメント情報テーブル522を更新する。更新後のセグメント情報テーブル522の内容は、図15に示した通りである。
二重化制御部534は、セグメント情報テーブル522に基づいて縮退セグメントを判断する。ここで、セグメントID「1」のセグメントに着目すると、プライマリスライスが割り当てられていない。そこで、二重化制御部534は、セグメントID「1」のセグメントの現在のセカンダリスライスのプライマリ化と、新たなセカンダリスライスの割り当てを決定する。ここでは、図6に示したように、ディスクノード400のスライスID「2」のスライスをセカンダリスライスとして割り当てるものとする。
二重化制御部534は、セグメントへのスライス割当の変更に伴い、セグメントID「1」のセグメントのセカンダリスライスを管理するディスクノード300に対して、該当スライスのプライマリ化を指示する(ステップS44)。この際、ディスクノード300へは、セグメントID「1」のセグメントのセカンダリスライスの情報も通知される。例えば二重化制御部534は、プライマリ化対象のスライスのプライマリ化後のメタデータをディスクノード300に送信することで、プライマリ化の指示とセカンダリスライスの情報の通知とを行うことができる。送信されるメタデータのデータ構造は、図9に示したメタデータと同様である。
また、二重化制御部534は、ディスクノード400に対して、ディスクノード400内のスライスID「2」のスライスを、セグメントID「1」のセグメントのセカンダリスライスとして割り当てることを指示する(ステップS45)。この際、ディスクノード400へは、セグメントID「1」のセグメントのプライマリスライスの情報も通知される。例えば二重化制御部534は、新規割り当て対象のスライスの割り当て後のメタデータをディスクノード400に送信することで、スライスの割り当て指示とプライマリスライスの情報の通知とを行うことができる。送信されるメタデータのデータ構造は,図9に示したメタデータと同様である。
ディスクノード300は、指定されたスライスのプライマリ化処理を行う(ステップS46)。具体的には、ディスクノード300は、内部で保持するスライス情報を更新し、指定されたスライス(スライスID「2」)を、セグメントID「1」のセグメントにプライマリスライスとして割り当てたことを登録する。また、ディスクノード300は、自己の管理するスライスID「2」のスライスとスライスペアを組むスライスが、ディスクノード400のスライスID「2」のスライスであることをスライス情報として登録する。そして、ディスクノード300は、スライス情報の更新完了を制御ノード500に応答する。
ディスクノード400は、指定されたスライスのセグメントへの割り当て処理を行う(ステップS47)。具体的には、ディスクノード400は、内部で保持するスライス情報を更新し、指定されたスライス(スライスID「2」)を、セグメントID「1」のセグメントにセカンダリスライスとして割り当てたことを登録する。また、ディスクノード400は、自己の管理するスライスID「2」のスライスとスライスペアを組むスライスが、ディスクノード300のスライスID「2」のスライスであることをスライス情報として登録する。そして、ディスクノード400は、スライス情報の更新完了を制御ノード500に応答する。
その後、ディスクノード300は、プライマリ化したスライス内のデータを、スライスペアを組むスライスを管理するディスクノード400に送信する(ステップS48)。ディスクノード400では、ディスクノード300から送られたデータを、新たにセカンダリスライスとして割り当てられたスライスに格納する(ステップS49)。これにより、縮退セグメントのデータがコピーされ、二重化状態が復旧する。
制御ノード500では、二重化制御部534によってスライス情報テーブル521、セグメント情報テーブル522が更新される。また、論理ボリューム構成情報管理部535によって、論理ボリューム構成情報523が更新される。すると、構成情報変更通知部538が、アクセスノードリスト524を参照し、運用中のアクセスノード600に対して構成情報変更通知を送信する(ステップS50)。
なお、図22ではステップS50の処理をステップS45の後に行っているが、ステップS44が終わったらステップS45の処理を待たずにステップS50からステップS52までの処理を行ってもよい。これにより、構成情報変更通知を迅速に行うことができる。なお、ステップS45の処理を待たなくてよいのは、アクセスノードが持つ論理ボリューム構成情報はプライマリスライスだけの情報でよく、セカンダリスライスの情報が不要だからである。
アクセスノード600では、構成情報変更通知を構成変更通知受信部が受信し、論理ボリューム構成情報更新処理が行われる(ステップS51)。論理ボリューム構成情報更新処理では、まず構成情報参照部632が、制御ノード500へ構成情報参照要求を送信する。制御ノード500では、論理ボリューム構成情報管理部535が、構成情報参照要求に応じて、論理ボリューム構成情報523をアクセスノード600に送信する(ステップS52)。アクセスノード600では、制御ノード500から送られた論理ボリューム構成情報523を構成情報参照部632が受信し、自己の管理する論理ボリューム構成情報621を更新する。
その後、アクセスノード600で、論理ボリューム識別子が「LVOL−X」の論理ボリューム60のセグメントID「1」のセグメントへのI/Oリクエストが発生したものとする。すると、アクセスノード600においてI/O処理が実行される(ステップS53)。例えば、端末装置21からI/Oリクエストが出力されると、アクセスノード600のI/Oリクエスト受信部631がそのI/Oリクエストが受信する。次に、I/Oリクエスト処理部633が、論理ボリューム構成情報621を参照し、アクセス対象のセグメントに対してプライマリスライスとして割り当てられたスライスを確認する。そして、I/Oリクエスト処理部633は、該当するスライスを管理するディスクノード300へスライス指定I/Oリクエストを送信する。すると、ディスクノード300においてスライス指定I/Oリクエストに応じたデータアクセスが行われ、I/Oレスポンスがアクセスノードに送信される(ステップS54)。
次に、制御ノード500における構成情報変更通知処理と、アクセスノード600における論理ボリューム構成情報更新処理との処理手順について詳細に説明する。
図23は、制御ノードにおける構成情報変更通知処理の手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS61]制御ノード500の構成情報変更通知部538は、論理ボリューム構成情報523が更新されたか否かを判断する。論理ボリューム構成情報523が更新された場合、処理がステップS62に進められる。論理ボリューム構成情報523が更新されていない場合、ステップS61の処理が繰り返される。
[ステップS62]構成情報変更通知部538は、運用中のアクセスノードに、構成情報変更通知を送信する。具体的には、構成情報変更通知部538は、アクセスノードリスト524を参照し、アクセスノードリスト524に登録されているアクセスノード情報を取得する。そして、構成情報変更通知部538は、取得したアクセスノード情報に示されるIPアドレスおよびポート番号を宛先に指定し、構成情報変更通知を送信する。その後、処理がステップS61に進められる。
図24は、アクセスノードにおける論理ボリューム構成情報更新処理の手順を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS71]アクセスノード600の構成変更通知受信部636は、構成情報更新通知を受信したか否かを判断する。構成情報変更通知を受信した場合、処理がステップS72に進められる。構成情報変更通知を受信していなければ、ステップS71の処理が繰り返される。
[ステップS72]構成情報参照部632は、制御ノード500へ構成情報参照要求を送信する。
[ステップS73]構成情報参照部632は、制御ノード500から送られた論理ボリューム構成情報523を受信する。
[ステップS74]構成情報参照部632は、受信した論理ボリューム構成情報523と同じ内容に、論理ボリューム構成情報621を更新する。これにより、アクセスノード600の論理ボリューム構成情報621が最新の状態に更新される。その後、処理がステップS71に進められる。
以上のようにして、スライスの割り当てが変更されたセグメントへのI/Oリクエストの発生を待たずに、アクセスノード600,700内の論理ボリューム構成情報を更新することが可能となる。その結果、リカバリ処理などによって論理ボリュームに対するスライスの割り当てに変更が生じた場合でも、その後の割り当てが変更されたセグメントへのI/Oリクエストに対して迅速に応答することが可能となる。
また、ディスクノードの障害発生時のように、多数のセグメントが同時に縮退セグメントとなった場合であっても、アクセスノード600,700内の論理ボリューム構成情報がすべてのセグメントについて最新の状態に更新される。そのため、各セグメントへのI/Oリクエストが発生するごとに該当セグメントの割り当て関係を示す情報を更新する場合に比べ、メッセージの量を削減することができる。その結果、マルチノードストレージシステム全体での処理効率を向上させることができる。すなわち、論理ボリューム構成情報を変更した場合にネットワーク10を介して送受信されるメッセージの数が減ることで、I/Oリクエストに応じた処理を迅速に処理できる。その結果、ユーザからのデータアクセスに対する応答時間が短縮される。
また、アクセスノード600,700からのハートビートを監視し、アクセスノードリストを自動更新するようにしたため、システム管理者によるアクセスノードリストの編集の手間が省ける。また、マルチノードストレージシステムにアクセスノードが新たに追加された場合、そのアクセスノードの情報がアクセスノードリストに自動で追加されることで、アクセスノードに対する論理ボリューム構成情報の送信漏れを防止できる。さらに、アクセスノードの動作が停止した場合、そのアクセスノードの情報がアクセスノードリストから自動で削除されることで、無駄な論理ボリューム構成情報の送信を防止できる。その結果、システム全体の運用効率が向上する。
[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態は、プッシュ型の論理ボリューム情報更新処理を行うものである。ここでプッシュ型とは、アクセスノードからの参照要求を待たずに、制御ノードからアクセスノードに論理ボリューム構成情報を送信する通信方式である。
なお、第2の実施の形態におけるマルチノードストレージシステムの構成は、図2に示す第1の実施の形態の構成と同様である。また、第2の実施の形態に係るディスクノード、制御ノード、およびアクセスノードが有する要素は、図8、図10および図17に示した第1の実施の形態の各ノードと同様である。そこで、図8、図10および図17に示した各要素に付した符号を用いて、第2の実施の形態における各要素の機能における第1の実施の形態との相違点を説明する。
まず、プッシュ型の論理ボリューム情報更新処理を行うために、どのアクセスノードがどの論理ボリュームを使用しているのかを制御ノード500で管理する。そこで、第2の実施の形態では、アクセスノードリストが拡張される。
図25は、第2の実施の形態におけるアクセスノードリストのデータ構造例を示す図である。アクセスノードリスト524aには、アクセスノードID、IPアドレス、ポート番号、ハートビート受信時刻の欄に加え、論理ボリュームIDの欄が設けられている。
論理ボリュームIDの欄には、各アクセスノードで使用している論理ボリュームの識別子(論理ボリュームID)が設定される。各アクセスノードが使用する論理ボリュームは、例えば各アクセスノードがハートビートと共に通知することができる。その場合、アクセスノードのハートビート送信部635は、自己の使用する論理ボリュームの論理ボリュームIDを含むアクセスノード情報をハートビートに付与し、定期的に制御ノード500に送信する。制御ノード500では、アクセスノードハートビート受信部536がそのハートビートを受信する。そして、アクセスノード管理部537が、ハートビートに付与されたアクセスノード情報に基づいて、アクセスノードリスト524aを更新する。
なお第1の実施の形態では、更新後の論理ボリューム構成情報全体をアクセスノードに送信しているが、第2の実施の形態ではプライマリスライスが変更されたセグメントの情報のみを送信することで通信量を削減するものとする。プライマリスライスの変更の有無は、例えば、復旧対象リスト525aで管理することができる。
図26は、第2の実施の形態における復旧対象リストの例を示す図である。第2の実施の形態における復旧対象リスト525aには、論理ボリュームID、セグメントIDの欄に加え、プライマリ更新フラグの欄が設けられている。
プライマリ更新フラグの欄には、プライマリスライスの変更の有無を示すフラグ(プライマリ更新フラグ)が設定される。プライマリ更新フラグが「1」であれば、プライマリスライスが変更されることを意味する。プライマリ更新フラグが「0」であれば、プライマリスライスが変更されないことを意味する。
プライマリ更新フラグは、復旧対象抽出部533が復旧対象リスト525aを作成する際に設定される。具体的には、復旧対象抽出部533は、セグメント情報テーブル522を参照して縮退セグメントを検出する際に、プライマリスライスが欠けているのか、セカンダリスライスが欠けているのかを判断する。プライマリスライスが欠けている場合、復旧対象抽出部533は、復旧対象リスト525a内の該当するセグメントに対して、プライマリ更新フラグ「1」を設定する。
次に、プッシュ型で論理ボリューム構成情報を送信する場合の構成情報変更通知部538の処理について説明する。
図27は、第2の実施の形態の論理ボリューム構成情報送信処理を示す図である。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS81]構成情報変更通知部538は、論理ボリューム構成情報523が更新されたか否かを判断する。論理ボリューム構成情報が更新された場合、処理がステップS82に進められる。論理ボリューム構成情報が更新されていない場合、ステップS81の処理が繰り返される。
[ステップS82]構成情報変更通知部538は、復旧対象リスト525aを参照し、プライマリスライスが変更されたセグメントを判断する。次に、構成情報変更通知部538は、論理ボリューム構成情報523から、プライマリスライスが更新されたセグメントに関する情報のみを抽出し、プライマリ更新セグメント情報を生成する。さらに、構成情報変更通知部538は、アクセスノードリスト524aを参照し、構成が変更された論理ボリュームを使用するアクセスノードを判断する。例えば、図25のアクセスノードリスト524aでは、論理ボリュームID「LVOL−X」の論理ボリューム情報が変更された場合、該当する論理ボリュームを使用しているのは、アクセスノードID「AP#1」のアクセスノード600である。そして、構成情報変更通知部538は、該当するアクセスノードに対して、プライマリ更新セグメント情報を含む構成情報変更通知を送信する。
図28は、論理ボリューム構成情報のプライマリ更新セグメント情報を示す図である。図28には、図6に示したようなリカバリ処理により論理ボリューム構成情報が更新された場合におけるプライマリ更新セグメント情報523aを示している。このようなプライマリ更新セグメント情報523aがプッシュ型でアクセスノード600に通知される。
プライマリ更新セグメント情報523aを受信したアクセスノード600では、論理ボリューム更新処理が行われる。
図29は、第2の実施の形態における論理ボリューム更新処理の手順を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS91]アクセスノード600の構成変更通知受信部636は、制御ノード500から構成情報変更通知を受信したか否かを判断する。構成情報変更通知を受信した場合、処理がステップS92に進められる。構成情報変更通知を受信していなければ、ステップS91の処理が繰り返される。
[ステップS92]構成変更通知受信部636は、受信した構成情報変更通知に含まれるプライマリ更新セグメント情報523aに基づいて、アクセスノード600で保持する論理ボリューム構成情報621の内容を更新する。すなわち、構成変更通知受信部636は、プライマリ更新セグメント情報523aで示されているセグメントに対応するスライス情報を、プライマリ更新セグメント情報523aで示されているスライス情報に更新する。その後、処理がステップS91に進められる。
このようにして、プッシュ型の通信により、アクセスノード600の論理ボリューム構成情報621を適時更新することができる。しかも、変更があった内容のみを送信することにより、通信データ量を削減できる。さらに、各アクセスノードが使用している論理ボリュームの情報を制御ノード500で管理しているため、構成が変更された論理ボリュームを使用しているアクセスノードに対してのみ論理ボリューム構成情報を送信できる。その結果、不要な通信が発生せず、ネットワーク10上の通信量を削減できる。
[その他の応用例]
上記の説明では論理ボリュームの構成が変更される例として、ディスクノードが故障した場合を示したが、それ以外にも論理ボリュームの構成が変更される場合がある。例えば、メンテナンスのためにディスクノードを停止させる場合、ディスクノードが管理しているデータの退避が必要となる。そこで、停止前にそのディスクノードのスライスを割り当てていたセグメントへのスライスの再割り当てが行われる。また、論理ボリュームからの複数のディスクノードへのアクセスの均等化を図るために、スライスの再割り当てを行う場合もある。これらの場合にも、上記第1、第2の実施の形態を用いてアクセスノード600,700内の論理ボリューム構成情報を効率よく更新することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ディスクノード100,200,300,400、制御ノード500、およびアクセスノード600,700それぞれが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
[実施の形態に係る主な技術的特徴]
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 仮想的に定義された論理ボリューム内の仮想記憶領域とストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、前記仮想記憶領域内のデータを指定したアクセス要求に応じて前記実記憶領域にアクセスを行うアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理をコンピュータに実行させる論理ボリューム構成情報提供プログラムであって、
前記コンピュータに、
前記論理ボリューム構成情報における前記論理ボリュームの前記仮想記憶領域と前記ストレージ装置内の前記実記憶領域との対応関係を変更し、
前記仮想記憶領域と前記実記憶領域との対応関係が変更されると、前記アクセスノードの識別情報が登録されたアクセスノードリストを記憶するアクセスノードリスト記憶手段を参照し、前記アクセスノードリストで示される前記アクセスノードに対して、前記実記憶領域との対応関係が変更された前記仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する、
処理を実行させることを特徴とする論理ボリューム構成情報提供プログラム。
(付記2) 前記コンピュータに、さらに、
前記アクセスノードリストに登録されていない前記アクセスノードからのハートビートを受信した場合、ハートビートを送信した前記アクセスノードの識別情報を前記アクセスノードリストに登録する処理を実行させることを特徴とする付記1記載の論理ボリューム構成情報提供プログラム。
(付記3) 前記コンピュータに、さらに、
前記アクセスノードリストに登録されている前記アクセスノードからのハートビートが所定期間以上途絶えた場合、ハートビートが途絶えた前記アクセスノードの識別情報を前記アクセスノードリストから削除する処理を実行させることを特徴とする付記2記載の論理ボリューム構成情報提供プログラム。
(付記4) 前記仮想記憶領域と前記実記憶領域との対応関係が変更された場合、前記アクセスノードリストで示される前記アクセスノードに対して構成情報変更通知を送信し、前記アクセスノードから前記論理ボリューム構成情報の参照要求を受け取ったときに、前記参照要求を出力した前記アクセスノードに前記更新情報を送信することを特徴とする付記1記載の論理ボリューム構成情報提供プログラム。
(付記5) 前記アクセスノードリストには、前記アクセスノードが使用する論理ボリュームの識別情報が設定されており、
前記更新情報を送信する場合、前記アクセスノードリストを参照し、前記仮想記憶領域と前記実記憶領域との対応関係が変更された前記論理ボリュームを使用する前記アクセスノードに対してのみ前記更新情報を送信することを特徴とする付記1記載の論理ボリューム構成情報提供プログラム。
(付記6) 前記論理ボリューム構成情報において、共通の前記仮想記憶領域に対して、前記アクセスノードからのアクセス対象となるプライマリ実記憶領域と、前記プライマリ実記憶領域に格納されたデータのコピーを格納するセカンダリ実記憶領域とが対応付けられている場合、
前記コンピュータに、さらに、
前記論理ボリューム構成情報から変更後の前記仮想記憶領域と前記プライマリ実記憶領域の対応関係を抽出して前記更新情報を生成する処理を実行させることを特徴とする付記1記載の論理ボリューム構成情報提供プログラム。
(付記7) 前記仮想記憶領域と前記実記憶領域との対応関係を変更した場合、
前記コンピュータに、さらに、
論理ボリューム構成情報記憶手段に格納された前記論理ボリューム構成情報を変更内容に応じて更新し、
前記論理ボリューム構成情報記憶手段から、前記仮想記憶領域と前記実記憶領域との変更された対応関係のみを抽出して前記更新情報を生成する処理を実行させることを特徴とする付記1記載の論理ボリューム構成情報提供プログラム。
(付記8) 仮想的に定義された論理ボリューム内の仮想記憶領域とストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、前記仮想記憶領域内のデータを指定したアクセス要求に応じて前記実記憶領域にアクセスを行うアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理をコンピュータで実行する論理ボリューム構成情報提供方法であって、
前記コンピュータが、
前記論理ボリューム構成情報における前記論理ボリュームの前記仮想記憶領域と前記ストレージ装置内の前記実記憶領域との対応関係を変更し、
前記仮想記憶領域と前記実記憶領域との対応関係が変更されると、前記アクセスノードの識別情報が登録されたアクセスノードリストを記憶するアクセスノードリスト記憶手段を参照し、前記アクセスノードリストで示される前記アクセスノードに対して、前記実記憶領域との対応関係が変更された前記仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する、
ことを特徴とする論理ボリューム構成情報提供方法。
(付記9) 仮想的に定義された論理ボリューム内の仮想記憶領域とストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、前記仮想記憶領域内のデータを指定したアクセス要求に応じて前記実記憶領域にアクセスを行うアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理を実行する論理ボリューム構成情報提供装置であって、
前記論理ボリューム構成情報における前記論理ボリュームの前記仮想記憶領域と前記ストレージ装置内の前記実記憶領域との対応関係を変更する論理ボリューム構成情報更新手段と、
前記仮想記憶領域と前記実記憶領域との対応関係が変更されると、前記アクセスノードの識別情報が登録されたアクセスノードリストを記憶するアクセスノードリスト記憶手段を参照し、前記アクセスノードリストで示される前記アクセスノードに対して、前記実記憶領域との対応関係が変更された前記仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する論理ボリューム構成情報送信手段と、
を有することを特徴とする論理ボリューム構成情報提供装置。
1 論理ボリューム構成情報提供装置
1a 論理ボリューム構成情報記憶手段
1b アクセスノードリスト記憶手段
1c 論理ボリューム構成情報更新手段
1d 論理ボリューム構成情報送信手段
2,3 アクセスノード
4〜7 ディスクノード
4a,5a,6a,7a ストレージ装置

Claims (6)

  1. 仮想的に定義された少なくとも1つの論理ボリューム内の仮想記憶領域と少なくとも1つのストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、仮想記憶領域内のデータを指定したアクセス要求に応じて実記憶領域にアクセスを行う少なくとも1つのアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理をコンピュータに実行させる論理ボリューム構成情報提供プログラムであって、
    前記コンピュータに、
    前記論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係を変更し、
    想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードの識別情報とアクセスノードが使用する論理ボリュームの識別情報との対応関係が登録されたアクセスノードリストを参照し、仮想記憶領域と実記憶領域との対応関係が変更された論理ボリュームを使用するアクセスノードに対してのみ、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する、
    処理を実行させることを特徴とする論理ボリューム構成情報提供プログラム。
  2. 前記コンピュータに、さらに、
    前記アクセスノードリストに登録されていないアクセスノードからのハートビートを受信した場合、ハートビートを送信したアクセスノードの識別情報を前記アクセスノードリストに登録する処理を実行させることを特徴とする請求項1記載の論理ボリューム構成情報提供プログラム。
  3. 想記憶領域と実記憶領域との対応関係が変更された場合、前記アクセスノードリストで示されるアクセスノードに対して構成情報変更通知を送信し、アクセスノードから前記論理ボリューム構成情報の参照要求を受け取ったときに、前記参照要求を出力したアクセスノードに前記更新情報を送信することを特徴とする請求項1または2に記載の論理ボリューム構成情報提供プログラム。
  4. 前記論理ボリューム構成情報において、共通の仮想記憶領域に対して、アクセスノードからのアクセス対象となるプライマリ実記憶領域と、該プライマリ実記憶領域に格納されたデータのコピーを格納するセカンダリ実記憶領域とが対応付けられている場合、
    前記コンピュータに、さらに、
    前記論理ボリューム構成情報から変更後の仮想記憶領域とプライマリ実記憶領域の対応関係を抽出して前記更新情報を生成する処理を実行させることを特徴とする請求項1乃至3のいずれかに記載の論理ボリューム構成情報提供プログラム。
  5. 仮想的に定義された少なくとも1つの論理ボリューム内の仮想記憶領域と少なくとも1つのストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、仮想記憶領域内のデータを指定したアクセス要求に応じて実記憶領域にアクセスを行う少なくとも1つのアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理をコンピュータで実行する論理ボリューム構成情報提供方法であって、
    前記コンピュータが、
    前記論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係を変更し、
    仮想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードの識別情報とアクセスノードが使用する論理ボリュームの識別情報との対応関係が登録されたアクセスノードリストを参照し、仮想記憶領域と実記憶領域との対応関係が変更された論理ボリュームを使用するアクセスノードに対してのみ、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する、
    ことを特徴とする論理ボリューム構成情報提供方法。
  6. 仮想的に定義された少なくとも1つの論理ボリューム内の仮想記憶領域と少なくとも1つのストレージ装置内の実記憶領域との対応関係を定義した論理ボリューム構成情報に基づき、仮想記憶領域内のデータを指定したアクセス要求に応じて実記憶領域にアクセスを行う少なくとも1つのアクセスノードに対し、前記論理ボリューム構成情報をネットワーク経由で提供する処理を実行する論理ボリューム構成情報提供装置であって、
    前記論理ボリューム構成情報における論理ボリュームの仮想記憶領域とストレージ装置内の実記憶領域との対応関係を変更する論理ボリューム構成情報更新手段と、
    仮想記憶領域と実記憶領域との対応関係が変更されると、アクセスノードの識別情報とアクセスノードが使用する論理ボリュームの識別情報との対応関係が登録されたアクセスノードリストを参照し、仮想記憶領域と実記憶領域との対応関係が変更された論理ボリュームを使用するアクセスノードに対してのみ、実記憶領域との対応関係が変更された仮想記憶領域に関する変更後の対応関係を示す更新情報を、前記ネットワーク経由で送信する論理ボリューム構成情報送信手段と、
    を有することを特徴とする論理ボリューム構成情報提供装置。


JP2009050614A 2009-03-04 2009-03-04 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置 Expired - Fee Related JP5412882B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009050614A JP5412882B2 (ja) 2009-03-04 2009-03-04 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
US12/714,903 US8397047B2 (en) 2009-03-04 2010-03-01 Logical volume configuration information distribution program, logical volume configuration information distribution method, and logical volume configuration information distribution apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009050614A JP5412882B2 (ja) 2009-03-04 2009-03-04 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置

Publications (2)

Publication Number Publication Date
JP2010205029A JP2010205029A (ja) 2010-09-16
JP5412882B2 true JP5412882B2 (ja) 2014-02-12

Family

ID=42679237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009050614A Expired - Fee Related JP5412882B2 (ja) 2009-03-04 2009-03-04 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置

Country Status (2)

Country Link
US (1) US8397047B2 (ja)
JP (1) JP5412882B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8627065B2 (en) * 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network
US11061597B2 (en) * 2010-11-09 2021-07-13 Pure Storage, Inc. Supporting live migrations and re-balancing with a virtual storage unit
CN102467408B (zh) 2010-11-12 2014-03-19 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
US8713356B1 (en) * 2011-09-02 2014-04-29 Emc Corporation Error detection and recovery tool for logical volume management in a data storage system
US9203900B2 (en) 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US8683170B1 (en) 2011-09-23 2014-03-25 Netapp, Inc. Consistent distributed storage communication protocol semantics in a clustered storage system
JP5910117B2 (ja) * 2012-01-30 2016-04-27 富士通株式会社 ファイルシステム
WO2014087440A1 (en) * 2012-12-03 2014-06-12 Hitachi, Ltd. Storage system and method for managing configuration information thereof
US9608859B2 (en) * 2013-10-25 2017-03-28 Aruba Networks, Inc. System, apparatus and method for reducing failover time through redundancy using virtual access points
US9298555B1 (en) * 2013-12-27 2016-03-29 Emc Corporation Managing recovery of file systems
US10528429B1 (en) * 2014-03-31 2020-01-07 EMC IP Holding Company LLC Managing recovery of file systems
US9703655B1 (en) * 2014-11-25 2017-07-11 Scale Computing Inc. Recovery after data loss in a reliable distributed computing system
WO2018237264A1 (en) * 2017-06-22 2018-12-27 Jpmorgan Chase Bank, N.A. SYSTEM AND METHOD FOR IMPLEMENTING AN INTERBAN INFORMATION NETWORK
US10623265B1 (en) * 2018-10-03 2020-04-14 EMC IP Holding Company LLC System and method for logical configuration of distributed systems
JP2020154587A (ja) * 2019-03-19 2020-09-24 株式会社日立製作所 計算機システム及びデータ管理方法
US11934679B2 (en) * 2020-10-21 2024-03-19 EMC IP Holding Company, LLC System and method for segmenting volumes across a multi-node storage system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108420A (ja) 2001-09-27 2003-04-11 Hitachi Ltd データストレージシステム及びこの制御方法
JP4711688B2 (ja) * 2003-05-21 2011-06-29 富士通株式会社 ストレージシステム
US7137042B2 (en) * 2004-03-17 2006-11-14 Hitachi, Ltd. Heartbeat apparatus via remote mirroring link on multi-site and method of using same
JP4296120B2 (ja) * 2004-04-09 2009-07-15 富士通株式会社 冗長構成復元方法、データ管理システム及び冗長構成復元プログラム
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
US8438346B2 (en) * 2006-04-27 2013-05-07 Hewlett-Packard Development Company, L.P. Synchronization of a virtual storage system and an actual storage system
JP2008077478A (ja) * 2006-09-22 2008-04-03 Hitachi Ltd 記憶装置制御装置、記憶装置制御方法、ストレージ装置およびストレージ装置による記憶装置制御方法
FR2906624A1 (fr) * 2006-10-03 2008-04-04 Bull S A S Soc Par Actions Sim Systeme et procede de stockage de masse.
JP5131271B2 (ja) * 2007-04-20 2013-01-30 富士通株式会社 組み合わせ決定プログラム、組み合わせ決定装置、および組み合わせ決定方法
WO2008136075A1 (ja) * 2007-04-20 2008-11-13 Fujitsu Limited ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法

Also Published As

Publication number Publication date
US8397047B2 (en) 2013-03-12
JP2010205029A (ja) 2010-09-16
US20100228915A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP5396836B2 (ja) データ分散制御プログラム、ストレージ管理プログラム、制御ノード、およびディスクノード
US8458398B2 (en) Computer-readable medium storing data management program, computer-readable medium storing storage diagnosis program, and multinode storage system
JP2011128917A (ja) データ割当制御プログラム、データ割当制御方法、およびデータ割当制御装置
JP5218284B2 (ja) 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
JP4480756B2 (ja) ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
JP4519179B2 (ja) 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム
US6598174B1 (en) Method and apparatus for storage unit replacement in non-redundant array
JP5131271B2 (ja) 組み合わせ決定プログラム、組み合わせ決定装置、および組み合わせ決定方法
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
JP2005242403A (ja) 計算機システム
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP6040612B2 (ja) ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム
JP2010003061A (ja) 計算機システム及びそのi/o構成変更方法
JP2015191385A (ja) 情報処理装置、ストレージシステム、およびプログラム
JP5348300B2 (ja) データ管理プログラム、およびマルチノードストレージシステム
JP5640480B2 (ja) データ管理プログラム、ストレージシステム、およびデータ管理方法
JP5195213B2 (ja) アップデート制御プログラム、アップデート制御装置、およびアップデート制御方法
JP5309816B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
JP5924117B2 (ja) コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
JPWO2008126169A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
JP2010277342A (ja) 管理プログラム、管理装置および管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131028

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

LAPS Cancellation because of no payment of annual fees