JP4054182B2 - 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ - Google Patents

仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ Download PDF

Info

Publication number
JP4054182B2
JP4054182B2 JP2001292426A JP2001292426A JP4054182B2 JP 4054182 B2 JP4054182 B2 JP 4054182B2 JP 2001292426 A JP2001292426 A JP 2001292426A JP 2001292426 A JP2001292426 A JP 2001292426A JP 4054182 B2 JP4054182 B2 JP 4054182B2
Authority
JP
Japan
Prior art keywords
instruction
local
cluster
computer
command
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
JP2001292426A
Other languages
English (en)
Other versions
JP2003099210A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001292426A priority Critical patent/JP4054182B2/ja
Priority to US10/230,339 priority patent/US6807642B2/en
Publication of JP2003099210A publication Critical patent/JP2003099210A/ja
Application granted granted Critical
Publication of JP4054182B2 publication Critical patent/JP4054182B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Description

【0001】
【発明の属する技術分野】
本発明は、複数のコンピュータがネットワークで接続されたクラスタシステムに係り、特に各コンピュータにそれぞれ接続されたディスク装置を仮想的なRAID装置の構成要素として利用することが可能な仮想的なRAID装置を有するクラスタシステム及び同システム用のコンピュータに関する。
【0002】
【従来の技術】
複数のコンピュータがネットワークで接続されたクラスタシステムは、一部のコンピュータに障害が発生したとき、他のコンピュータで運用を続けることによって、システム全体の可用性を向上させる機能を持つシステムとして従来からよく知られている。
【0003】
クラスタシステムでは、クラスタマネージャが動作している。クラスタマネージャは、一部のコンピュータに障害が発生したとき、他のコンピュータで運用を続けられるように、次の2つの機能を持つ。
【0004】
第1の機能は、クラスタシステムを構成する複数のコンピュータ間で、状態の一貫性を保証する機能である。状態の一貫性とは、クラスタシステムの全てのコンピュータから、クラスタマネージャが保持する状態の参照及び変更が可能であり、常に最新の状態が参照できることを意味する。
【0005】
第2の機能は、クラスタシステムを構成するコンピュータのいずれかに障害が発生した場合に、それを検出する機能である。クラスタマネージャは、障害が発生したコンピュータを検出すると、そのコンピュータをシステムから切り離す。
【0006】
【発明が解決しようとする課題】
このように、クラスタシステムでは、クラスタマネージャの管理のもとで、一部のコンピュータに障害が発生したとき、他のコンピュータで運用が続けられるようになっている。しかし、システムによっては、障害が発生したコンピュータが持っていたデータを参照できなければ、障害が発生した直前の状態から運用を再開することができない場合がある。このような場合、従来は、運用が一時中断したり、過去の状態に戻ったりしてしまう。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、クラスタシステムを構成するコンピュータに障害が発生したとき、そのコンピュータの持つデータが、停止した直前の状態から運用を再開するのに必要な場合であっても、各コンピュータにそれぞれ接続されたディスク装置を1つの仮想的なRAID装置の構成要素として利用することにより運用を続けることができるようにすることにある。
【0008】
本発明の他の目的は、仮想的なRAID装置を有するクラスタシステムにおいて、1つのパリティ計算を行うのに必要なコンピュータ間のデータ転送回数を少なくして、仮想的なRAID装置に対する書き込みの速度を向上させることができるようにする。
【0009】
【課題を解決するための手段】
本発明は、少なくとも1つのネットワークで相互接続された複数のコンピュータと、上記各コンピュータにそれぞれ接続されたディスク装置とを備えたクラスタシステムにおいて、システム全体の排他制御と、上記各ディスク装置を仮想的なRAID装置の構成要素として扱うのに必要なグローバル命令から少なくとも1つのローカル命令への変換とを行うクラスタマネージャと、上記複数のコンピュータ上で上記クラスタマネージャからそれぞれ独立に動作する制御機構であって、自身が動作するコンピュータ上で上記RAID装置を対象とする書き込み/読み出しのグローバル命令が発生した場合に、上記クラスタマネージャと通信することで当該グローバル命令を上記クラスタマネージャにより少なくとも1つのローカル命令に変換させる命令変換手段と、与えられたローカル命令に従ってディスク装置を対象とする読み出し/書き込みを行うディスク制御手段と、与えられたローカル命令に従ってパリティ計算を行うパリティ計算手段と、上記命令変換手段からローカル命令を受けて、当該ローカル命令を対応する他のコンピュータ、自コンピュータの上記ディスク制御手段または上記パリティ計算手段に転送する命令転送手段とを含む制御機構とを備えたことを特徴とする。
【0010】
このような構成のクラスタシステムにおいては、当該システムを構成する複数のコンピュータそれぞれに接続されたディスク装置を、1つの仮想的なRAID装置の構成要素として利用することができる。このため、システム内の1台のコンピュータに障害が発生しても、その障害が発生したコンピュータに接続されたディスク装置に書き込まれているデータを、他のコンピュータに接続されたディスク装置のデータからRAID(Redundant Arrays of Inexpensive Disks)技術により参照(復元)することが可能となり、これにより障害が発生した直前の状態から他のコンピュータで運用を再開することが可能となる。
【0011】
ここで、上記クラスタマネージャに、次の機能、即ちパリティ計算に必要な情報が格納されているディスク装置と接続されているコンピュータで当該情報を用いたパリティ計算の中間結果または最終結果を算出させるローカル命令であって、当該中間結果を算出させる場合には、当該中間結果を、当該中間結果との間でパリティ計算の次の中間結果または最終結果を算出するのに必要な情報が格納されているディスク装置と接続されているコンピュータに転送させるローカル命令を生成する機能を持たせるとよい。
【0012】
このようなローカル命令の生成により、クラスタシステムにおける書き込み動作において、パリテイの計算に必要な情報が1つのコンピュータに集められずに、パリティ計算の中間結果が順次、パリティ計算の次の中間結果または最終結果の計算に必要な情報を持つコンピュータに転送されることになるため、1つのパリティ計算を行うのに必要なコンピュータ間のデータ転送回数を少なくして、仮想的なRAID装置に対する書き込みの速度を向上させることが可能となる。
【0013】
また、上記クラスタマネージャを、上記複数のコンピュータにそれぞれ設けて当該コンピュータ上で動作させ、クラスタマネージャ同士で上記ネットワークを介して同期を常に取る構成とするならば、システム内の1台のコンピュータに障害が発生しても、システム全体が停止するのを防止できる。
【0014】
また、上記クラスタマネージャを、上記複数のコンピュータから独立に設けられたクラスタマネージャ用コンピュータに設けて当該クラスタマネージャ用コンピュータ上で動作させる構成とするならば、上記複数のコンピュータの負荷を低減することが可能となる。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0016】
[第1の実施形態]
図1は本発明の第1の実施形態に係る仮想的なRAID装置を有するクラスタシステムの構成を示すブロック図である。
図1において、複数、例えば3台のコンピュータ1-1,1-2,1-3は、2つのネットワーク2,3により相互接続されている。ネットワーク2,3は例えばLAN(ローカルエリアネットワーク)である。コンピュータ1-1,1-2,1-3には、それぞれディスク装置4-1,4-2,4-3が接続されている。ディスク装置4-1〜4-3は、コンピュータ1-1〜1-3により共有される仮想的なRAID装置(仮想RAID装置)40を構成する単体ディスク装置として用いられる。つまり、図1のクラスタシステムの特徴は、システム内の各コンピュータ1-1,1-2,1-3が持つディスク装置4-1,4-2,4-3を利用して仮想RAID装置40を構成している点にある。
【0017】
一般に、RAID装置の特徴は2つある。RAID装置の第1の特徴は、当該RAID装置を構成する複数のディスク装置(単体ディスク装置)のデータを、当該RAID装置とコントローラ(RAIDコントローラ)を介して接続された複数のコンピュータから共有できる点にある。このコントローラは、RAID装置を構成する各ディスク装置(単体ディスク装置)を集中して制御する。また、RAID装置の第2の特徴は、当該RAID装置を構成する複数のディスク装置のいずれか1つに障害が発生しても、RAID技術により残りのディスク装置のデータから障害ディスク装置のデータが復元でき、データの可用性を向上させることができる点にある。
【0018】
上記のように、RAID装置では、当該RAID装置を構成する各ディスク装置を集中して制御するコントローラが必要となる。しかしクラスタシステムでは、この種のコントローラを持たない。したがって、従来から知られているRAID装置の構成をそのままクラスタシステムに応用して、仮想RAID装置40を実現することはできない。そこで、本実施形態では、仮想RAID装置40のコントローラの機能を、他の方法で実現している。
【0019】
ここで、仮想RAID装置40のコントローラの機能の実現例を述べる前に、当該コントローラの機能(つまりRAID技術)について、仮想RAID装置40のコントローラが存在するものと仮定して、つまり仮想RAID装置40が通常のRAID装置であるものとして説明する。
【0020】
まず、コンピュータ1-1〜1-3では、それぞれタスク11-1〜11-3が動作している。タスクとはオペレーティングシステム(OS)や、アプリケーションプログラム等のソフトウェアを指す。
【0021】
RAID装置40へのデータ書き込みでは、データそのものが書き込まれるが(このデータをRAIDデータと称する)、その他に、パリティという、RAIDデータから計算して求められる冗長データが、ディスク装置4-1〜4-3のうち、RAIDデータが書き込まれるディスク装置とは別のディスク装置に書き込まれる。
【0022】
ここで、ディスク装置4-1〜4-3のうち、ディスク装置4-1及び4-2にはRAIDデータd1,d2を、ディスク装置4-3にはパリティpを保存することにすると、パリティpは次式
p=d1 XOR d2
に従って求められる。ここで、XORは排他的論理和演算を表す。
【0023】
ここではまた、ディスク装置4-1〜4-3のうちのいずれか1つのディスク装置が故障して、その故障ディスク装置が使用できなくなった場合でも、残りのディスク装置のRAIDデータとパリティpとを利用することによって、RAIDデータの読み出し/書き込みが可能である。
【0024】
例えば、ディスク装置4-1が故障したとき、RAIDデータd1を読み出す(復元する)には、残っているディスク装置4-2上のRAIDデータd2及びディスク装置4-3上のパリティpを用いて、
d1=p XOR d2
とする。また、ディスク装置4-3が故障した場合は、そのままディスク装置4-1,4-2から、RAIDデータd1,d2の読み出しが可能である。
【0025】
タスク11-1または11-2または11-3の出す書き込み/読み出し命令は、RAID装置40のコントローラで処理される。書き込み命令には、書き込むべきデータと、書き込む場所の情報、つまりアドレス情報とが含まれる。読み出し命令には、アドレス情報が含まれる。
【0026】
コントローラは、タスク11-i(iは1〜3のいずれか)からの書き込み/読み出し命令で使われるアドレス情報(論理的なアドレス情報)と、RAIDデータ及びパリティが、どのディスク装置のどこに書かれているかという位置情報との対応テーブル(以下、位置情報変換テーブルと称する)を記憶している。また、コントローラはパリティの計算を行う機能と、ディスク装置の読み出し/書き込みを行う機能とを持つ。
【0027】
コントローラはまた、タスク11-iから受け取った書き込み/読み出し命令(以下、グローバル命令と呼ぶ)を、ディスク装置4-j(jは1〜3のいずれか)に対する書き込み/読み出し命令及びパリティ計算命令(以下、ローカル命令と称する)に変換する機能を持つ。
【0028】
書き込みのグローバル命令は、以下に示す動作
・RAIDデータの読み出し、書き込み
・パリティの読み出し、書き込み
・パリティの計算
を指定する複数のローカル命令に変換される。
【0029】
ここで、コントローラがRAIDデータを更新するときの手順を、RAIDデータd1をd1'に更新する場合を例に説明する。
(a1)古いRAIDデ一夕d1をディスク装置4-1から読み出す。
(a2)古いパリティpをディスク装置4-3から読み出す。
(a3)パリティを計算する。新しいパリティp'は、
p'=d1' XOR d2=d1' XOR p XOR d1
であるから、d1',p,d1からp'を計算できる。
【0030】
(a4)新しいパリティp'をディスク装置4-3に書き込む。
【0031】
(a5)新しいRAIDデータd1'をディスク装置4-1に書き込む。
【0032】
新しいパリティp'を計算する方法としては、上記の、古いRAIDデータと古いパリティを使う方法(第1の方法)の他に、他のRAIDデータを使う方法(第2の方法)もある。第2の方法の場合、上記の例ではd2をディスク装置4-2から読み出し、
p'=d1' XOR d2
で計算できる。
【0033】
しかし、ディスク装置(単体ディスク装置)が5台以上ある場合では、第1の方法の方が、ディスク装置から読み出すRAIDデータの数が少なくて済む。このことについて、ディスク装置(単体ディスク装置)が6台あり、それぞれにRAIDデータd1,d2,d3,d4,d5とパリティpが保存されていて、d1をd1'に変更する場合を例に、説明する。
【0034】
まず、第1の方法で新しいパリティp'を求めるには、
p'=d1' XOR p XOR d1
のように、1つのRAIDデータd1とパリティpを読み出すだけでよい。
【0035】
これ対し、第2の方法では、
p'=d1' XOR d2 XOR d3 XOR d4 XOR d5
のように、4つのRAIDデータd2,d3,d4,d5を読み出す必要がある。
【0036】
ディスク装置4-1〜4-3のうち1台が故障した場合には、コントローラが故障したディスク装置を検出し、当該故障したディスク装置をシステムから切り離す。例えば、ディスク装置4-1が故障した場合には、この状態でRAIDデータd1をd1'に更新するには、d1を読み出すことも、d1'を書き込むこともできない。この場合、d1を使わずにパリティを計算して、つまり第2の方法によりパリティを計算して、パリティのみを更新することになる。
【0037】
このときの手順は次のようになる。
(b1)RAIDデータd2をディスク装置4-2から読み出す。
(b2)新しいパリティp'を
p'=d1' XOR d2
の演算により求める。
(b3)新しいパリティp'をディスク装置4-3に書き込む。
【0038】
このように、古いRAIDデータd1を読み出すことができない状態で、新しいパリティを求めるには、上記第2の方法を使う必要がある。
【0039】
次に、タスク11-iからコントローラに、同じRAIDデータに対する複数の書き込み/読み出し命令が送られた場合のコントローラの動作について説明する。
【0040】
まず、読み出し命令は同時に複数行っても問題ない。しかし、書き込み命令と読み出し命令、または複数の書き込み命令を同時に行うと、ディスク装置上のRAIDデータやパリティが破壊される。このような場合には、コントローラが上記各命令に対する排他制御を行う。
【0041】
このように、仮想RAID装置40を構成するディスク装置4-1,4-2,4-3を集中して制御するコントローラには、次に列挙する6つの機能、即ち
(1)位置情報の管理
(2)ディスク装置4-1,4-2,4-3の故障検出と、システムからの切り離し
(3)排他制御
(4)書き込み/読み出し命令の変換(グローバル命令からローカル命令の変換)
(5)ディスク装置4-1,4-2,4-3を対象とする読み出し/書き込み
(6)パリティの計算
を実行する機能が要求される。
【0042】
次に、以上のコントローラ機能(1)〜(6)を実現するためのコンピュータ1-1〜1-3の構成について、説明する。
まずコンピュータ1-1〜1-3上では、上記タスク11-1〜11-3の他に、クラスタマネージャ12-1〜12-3と、クラスタRAID制御部13-1〜13-3とが動作している。クラスタマネージャ12-1〜12-3は、それぞれネットワーク3を介して互いに通信を行う。これによりクラスタマネージャ12-1〜12-3は、クラスシステム全体では、1つの仮想的なクラスタマネージャを構成する。
【0043】
本実施形態では、クラスタマネージャ12-iとクラスタRAID制御部13-i(i=1,2,3)とにより、上記コントローラの機能(1)〜(6)を以下のように実現する。
【0044】
まず、ディスク装置4-iにアクセスするのに必要な位置情報変換テーブルは、変更があったときに全てのコンピュータ1-1〜1-3から同じ情報が参照できなければならない。そこで、この情報をクラスタマネージャ12-iが状態として保持することにより、上記機能(1)を実現して情報の一貫性を保証する。そのため、クラスタマネージャ12-iには、位置情報変換テーブル120-iが保持される。位置情報変換テーブル120-iのデータ構造例を図2に示す。位置情報変換テーブル120-iには、書き込みを指定するグローバル命令のID(識別)情報毎に、グローバル命令で使われるアドレス情報と、第1及び第2のRAIDデータ(DATA1,DATA2)がディスク装置4-1〜4-3(DISK1〜DISK3)のうちのいずれに書かれているかという位置情報と、パリティ(PARITY)がディスク装置4-1〜4-3(DISK1〜DISK3)のうちのいずれに書かれているかという位置情報とが登録される。クラスタマネージャ12-1〜12-3は、ネットワーク3を介して互いに同期をとって動作することで、位置情報変換テーブル120-1〜120-3の一致化を図る。
【0045】
次に、RAID装置40のコントローラが存在すると仮定すると、当該コントローラが検出する必要があるのは、ディスク装置4-1〜4-3の故障のみである。しかし、クラスタシステムの場合、ディスク装置4-1〜4-3を持つコンピュータ1-1〜1-3が故障し、結果として当該コンピュータ1-1〜1-3が持つディスク装置4-1〜4-3、つまり当該コンピュータ1-1〜1-3に接続されているディスク装置4-1〜4-3の読み出し/書き込みができなくなる恐れがある。そこで本実施形態におけるクラスタマネージャ12-iに、ディスク装置4-iの故障に加え、コンピュータ1-iの故障をも検出する機能を持たせることで、上記機能(2)を実現する。
【0046】
書き込み命令の変換、RAIDデータの書き込みやパリティの計算、つまり上記機能(4)〜(6)は、上記機能(3)により排他をとって行わないと、RAIDデータやパリティが破壊されてしまう。そこで、これらの処理を全て各コンピュータ1-iのクラスタマネージャ12-iが行うようにすれば、互いに同期をとって行うことが可能である。しかし、各コンピュータ1-iのクラスタマネージャ12-iが互いに同期をとって動作すると、通常のRAID装置のコントローラが1台で排他制御を行うのに比べて、動作が遅くなってしまう。つまり、一般にクラスタシステムは、当該システムを構成するコンピュータの台数が増加するほど性能が向上するはずであるのに対し、各コンピュータ1-iのクラスタマネージャ12-iが互いに同期をとって動作するために、コンピュータの台数が増加するほどクラスタマネージャ12-iの負担が増えて、コンピュータの台数増加とシステムの性能向上とが対応しなくなる。
【0047】
そこで本実施形態では、書き込み/読み出しを始めるときにクラスタマネージャ12-iを使ってロックの取得を行い、書き込み終了時に当該クラスタマネージャ12-iを再度使ってロックを開放する。このようにすることによって、ディスク装置4-iの書き込み/読み出し処理はクラスタマネージャ12-iを利用せずに行うことができる。これにより、通常のRAID装置のコントローラと同様の排他を行いながら、システム規模に応じた書き込み性能、即ちスケーラブルな書き込み性能を発揮することが可能である。本実施形態では、このディスク装置4-iの書き込み/読み出し処理及びパリティ計算(つまり上記(5),(6)の機能)とコンピュータ間の書き込み/読み出しデータの転送及び書き込み/読み出し命令の転送とをクラスタRAID制御部13-iによって実現する。また、タスク11-iからの書き込み/読み出し命令(グローバル命令)をローカル命令に変換する機能(上記(4)の機能)については、当該命令の排他制御のために、クラスタRAID制御部13-iがクラスタマネージャ12-iを使用することで、つまりクラスタRAID制御部13-i及びクラスタマネージャ12-iによって実現する。
【0048】
さて、タスク11-iからのグローバル命令は、クラスタRAID制御部13-iに送られる。クラスタRAID制御部13-iは、クラスタマネージャ12-iを使ってグローバル命令をローカル命令に変換し、排他のためのロックの取得を行い、ディスク装置4-iに対してRAIDデータ及びパリティの書き込み、参照を行うように構成されている。クラスタRAID制御部13-iはまた、他のコンピュータ1-j(j=1,2,3、但しj≠i)上で動作しているクラスタRAID制御部13-jとネットワーク2経由で互いに通信を行う。
【0049】
クラスタRAID制御部13-1〜13-3は、仮想デバイス131-1〜131-3と、命令変換部132-1〜132-3と、命令転送部133-1〜133-3と、パリティ計算部134-1〜134-3と、ディスク制御部136-1〜136-3とから構成される。パリティ計算部134-1〜134-3はバッファ135-1〜135-3を持つ。
【0050】
タスク11-iからのグローバル命令は、クラスタRAID制御部13-i上の仮想デバイス131-iに送られる。仮想デバイス131-iは、タスク11-iに対してクラスタRAID制御部13-iが記憶装置であるかのように見せる。仮想デバイス131-iはコンピュータ1-iのOS上に存在する一種のデバイスドライバである。
【0051】
仮想デバイス131-iが受け取ったグローバル命令は命令変換部132-iに送られる。命令変換部132-iは、クラスタマネージャ12-iと通信して、当該クラスタマネージャ12-iによりグローバル命令からローカル命令(少なくとも1つのローカル命令)への変換を行わせ、当該ローカル命令を命令転送部133-iに送ると共に、当該ローカル命令を排他的に実行するためのロックの取得を行う。
【0052】
命令転送部133-iは、ローカル命令の位置情報が他のコンピュータ1-jのディスク装置4-jを指していれば、そのコンピュータ1-jの命令転送部133-jヘ当該ローカル命令を送る。また命令転送部133-iは、上記位置情報が自身のコンピュータ1-iを指していれば、ローカル命令の内容に応じてパリティ計算部134-iまたはディスク制御部136-iに当該ローカル命令を送る。パリティ計算部134-iは、ディスク制御部136-iを通じてディスク装置4-iからRAIDデータまたはパリティを読み込み、パリティの計算を行う。
【0053】
次に、第1の実施形態の動作について、ディスク装置4-1に格納されているRAIDデ一夕d1をd1'に更新する書き込みのグローバル命令を実行する場合を例に、コンピュータ1-1のクラスタRAID制御部13-1の動作を中心に、図3の動作説明図を参照して説明する。
【0054】
コンピュータ1-1上で動作するタスク11-1は、仮想RAID装置40に対する書き込み/読み出しが必要となった場合、当該書き込み/読み出しを指定するグローバル命令をクラスタRAID制御部13-1内の仮想デバイス131-1に送る。仮想デバイス131-1は、タスク11-1からのグローバル命令を受け取ると、当該グローバル命令を命令変換部132-1に送る。
【0055】
命令変換部132-1は、仮想デバイス131-1からグローバル命令を受け取ると、当該グローバル命令をローカル命令に変換するために、当該グローバル命令をクラスタマネージャ12-1に送る。クラスタマネージャ12-1は、命令変換部132-1から送られたグローバル命令をローカル命令に変換する際に、当該ローカル命令の指定するディスク装置の領域がロックされているかをチェックし、ロックされているならば、そのロックが開放されるのを待って、当該ローカル命令を命令変換部132-1に返すと共に、当該ローカル命令に対応して排他に必要なロック情報を作成する。このロック情報はネットワーク3を介して他のコンピュータ1-2,1-3上のクラスタマネージャ12-2,12-3に送られる。この結果、クラスタマネージャ12-1〜12-3によりシステム全体の排他制御が実現され、クラスタRAID制御部13-1〜13-3はローカル命令を排他的に実行するためのロックを取得することができる。
【0056】
クラスタマネージャ12-1によるグローバル命令からローカル命令への変換は、先に述べた通常のRAID装置におけるコントローラによる変換と同様に、次のように行われる。まずクラスタマネージャ12-1は、グローバル命令に含まれるアドレス情報を参照し、自身が保持している位置情報変換テーブル120-1を使って、当該アドレス情報に対応する位置情報を取得する。そしてクラスタマネージャ12-1は、グローバル命令が読み出し命令であれば、取得した位置情報を含むローカル命令を作成する。またクラスタマネージャ12-1は、グローバル命令が書き込み命令であれば、取得したアドレス情報から、対応するRAIDデータ及びパリティの位置情報を決定し、パリティ計算に必要な、旧データ(古いRAIDデータ)の読み出し、旧パリティ(古いパリティ)の読み出し、新パリティの計算、新データの書き込み、及び新パリティの書き込みをそれぞれ指定するローカル命令の群を作成する。
【0057】
ここでグローバル命令が、先のコントローラの機能の説明の場合と同様に、ディスク装置4-1に格納されているRAIDデ一夕d1をd1'に更新する書き込みのグローバル命令Gであるものとすると、当該グローバル命令Gはタスク11-1から仮想デバイス131-1及び命令変換部132-1を介してクラスタマネージャ12-1に送られて(ステップS1〜S3)、このクラスタマネージャ12-1にて、グローバル命令Gから以下に述べるローカル命令L1〜L5への変換が行われる。
【0058】
まず、上記(a1)のためのローカル命令L1、即ちディスク装置4-1からの古いRAIDデ一夕d1の読み出しを指定するローカル命令L1が生成される。また、上記(a2)のためのローカル命令L2、即ちRAIDデータd1に対応するディスク装置4-3からの古いパリティpの読み出しを指定するローカル命令L2が生成される。また、上記(a3)のためのローカル命令L3、即ち新しいRAIDデ一夕d1'と(ローカル命令L2に従ってディスク装置4-3から読み出される)古いパリティpと(ローカル命令L1に従ってディスク装置4-1から読み出される)古いRAIDデータd1とから、p'=d1' XOR p XOR d1の演算により新しいパリティp'を求めることを指定するローカル命令L3が生成される。また、上記(a4)のためのローカル命令L4、即ち(ローカル命令L3に従って計算された)新しいパリティp'をディスク装置4-3に書き込むことを指定するローカル命令L4が生成される。また、上記(a5)のためのローカル命令L5、即ちディスク装置4-1への新しいRAIDデータd1'の書き込みを指定するローカル命令L5が生成される。
【0059】
この例では、コンピュータ1-1上で動作するタスク11-1から、クラスタRAID制御部13-1の仮想デバイス131-1にグローバル命令が送られたことを前提としている。もし、コンピュータ1-2,1-3上で動作するタスク11-2,11-3から、クラスタRAID制御部13-2,13-3の仮想デバイス131-2,131-3にグローバル命令が送られた場合には、クラスタRAID制御部13-2,13-3の命令変換部132-2,132-3からの要求に応じて、コンピュータ1-2,1-3内のクラスタマネージャ12-2,12-3により上記したクラスタマネージャ12-1と同様のグローバル命令からローカル命令への変換動作が行われる。
【0060】
このように本実施形態では、通常のRAID装置であればコントローラが行うべき変換動作を、クラスタRAID制御部13-1〜13-3の要求によりクラスタマネージャ12-1〜12-3で行わせるようにしている。これは、RAID装置40が、コンピュータ1-1〜1-3に接続されているディスク装置4-1〜4-3から構成された仮想的なRAID装置であり、通常のRAID装置のように当該ディスク装置4-1〜4-3を集中して制御するコントローラを持たないことを考慮したためである。
【0061】
命令変換部132-1は、クラスタマネージャ12-1からローカル命令(ローカル命令群)を受け取ると、当該ローカル命令(ローカル命令群)を命令転送部133-1に送る。命令転送部133-1は、受け取ったローカル命令(ローカル命令群)の位置情報を参照して、命令単位に、他のコンピュータ1-2または1-3に対する命令であるか、或いは命令転送部133-1自身が置かれているコンピュータ(自コンピュータ)1-1に対する命令であるかを判定する。もし、他のコンピュータ1-2または1-3に対する命令であれば、命令転送部133-1は、そのコンピュータ1-2または1-3の命令転送部133-2または133-3に、対応するローカル命令をネットワーク2経由で転送する。一方、自タスク11-iに対する命令であれば、命令転送部133-1は、その命令がパリティ計算命令であるか、ディスク装置4-1に対する書き込み/読み出し命令であるかを判定する。そして命令転送部133-1は、パリティ計算命令であれば当該パリティ計算命令をパリティ計算部134-1に転送し、ディスク装置4-1に対する書き込み/読み出し命令であれば当該書き込み/読み出し命令をディスク制御部136-1に転送する。また、命令転送部133-1からローカル命令が転送されたコンピュータ1-2または1-3内の命令転送部133-2または133-3においても、命令転送部133-1と同様の動作が行われる。
【0062】
これにより、上記したグローバル命令Gの例、即ちグローバル命令Gがディスク装置4-1に格納されているRAIDデ一夕d1をd1'に更新する書き込み命令である例では、クラスタマネージャ12-1にてグローバル命令Gから変換されたローカル命令L1〜L5が命令変換部132-1を介して命令転送部133-1に送られ(ステップS4,S5)、次のように処理される。
【0063】
まず、ディスク装置4-1からの古いRAIDデ一夕d1の読み出しを指定するローカル命令L1とディスク装置4-1への新しいRAIDデータd1'の書き込みを指定するローカル命令L5とが、命令転送部133-1からディスク制御部136-1に転送される(S6,S7)。また、ディスク装置4-3からの古いパリティpの読み出しを指定するローカル命令L2と新しいパリティp'をディスク装置4-3に書き込むことを指定するローカル命令L4とが、命令転送部133-1からコンピュータ1-3内の命令転送部133-3に転送され(ステップS8,S9)、更に命令転送部133-3からディスク制御部136-3に転送される(ステップS10,S11)。また、新しいRAIDデ一夕d1'と古いパリティpと古いRAIDデータd1とから新しいパリティp'を求めることを指定するローカル命令L3が命令転送部133-1からパリティ計算部134-1に転送される(ステップS12)。
【0064】
ディスク制御部136-1,136-3は、命令転送部133-1,133-3からローカル命令を受け取ると、当該ローカル命令に従ってディスク装置4-1,4-3に対する読み出し/書き込みを行う。ここでは、ディスク制御部136-1により、ローカル命令L1に従ってディスク装置4-1から古いRAIDデータd1が読み出され、パリティ計算部134-1に転送される(ステップS13,S14)。また、ディスク制御部136-3により、ローカル命令L2に従ってディスク装置4-3から古いパリティpが読み出され、命令転送部133-3から命令転送部133-1を介してパリティ計算部134-1に転送される(ステップS15〜S17)。また、パリティ計算部134-1には命令転送部133-1から新しいRAIDデータd1'も転送される(ステップS18)。コンピュータ1-1内の命令転送部133-1とコンピュータ1-3内の命令転送部133-3との間のローカル命令及びデータの転送は、ネットワーク2を介して行われる。
【0065】
パリティ計算部134-1に転送された新RAIDデータd1'、旧パリティp及び旧RAIDデータd1は、当該パリティ計算部134-1内のバッファ135-1に一時格納される。パリティ計算部134-1は、バッファ135-1に格納された新RAIDデータd1'、旧パリティp及び旧RAIDデータd1の間でp'=d1'XOR p XOR d1の演算、つまり排他的論理和(XOR)演算を行い、前記第1の方法により新パリティp'を生成する(ステップS19)。
【0066】
パリティ計算部134-1により生成された新パリティp'は、命令転送部133-1からコンピュータ1-3内の命令転送部133-3を介してディスク制御部136-3に転送される(ステップS20〜S22)。ディスク制御部136-3はローカル命令L4に従い、ディスク装置4-3に格納されている旧パリティpを新パリティp'に更新する(ステップS23)。また、新RAIDデータd1'は、命令転送部133-1からディスク制御部136-1にも転送される(ステップS18)。ディスク制御部136-1はローカル命令L5に従い、ディスク装置4-1に格納されている旧RAIDデータd1を新RAIDデータd1'に更新する(ステップS23)。
【0067】
次に、クラスタシステムを構成するコンピュータ1-1〜1-3のいずれか、例えばコンピュータ1-1に障害が発生した場合の動作について説明する。
【0068】
コンピュータ1-1の障害は、当該コンピュータ1-1内のクラスタマネージャ12-1により検出される。この場合、コンピュータ1-1が有するディスク装置4-1は利用できなくなるが、通常のRAIDシステムでディスク装置(単体ディスク装置)が1台故障した場合と同様に、残りのディスク装置4-2及び4-3のRAIDデータ及びパリティを読み出すことによって、つまり前記第2の方法によって、コンピュータ1-1に格納されているRAIDデータを等価的に読み出す(復元する)ことが可能となる。
【0069】
クラスタマネージャ12-1はコンピュータ1-1に障害が発生している状態で、ディスク装置4-1上のRAIDデータを読み出す必要のあるグローバル命令が命令変換部132-1から送られた場合、当該ディスク装置4-1を使用せずに当該ディスク装置4-1のRAIDデータを読み出すためのローカル命令を生成する。例えば、ディスク装置4-1のRAIDデータd1を読み出す必要がある場合であれば、クラスタマネージャ12-1は、当該RAIDデータd1に対応するディスク装置4-2上のRAIDデータd2を読み出すためのローカル命令とディスク装置4-3のパリティpを読み出すためのローカル命令と、パリティp及びRAIDデータd2を用いてd1=p XOR d2の演算によりディスク装置4-1上のRAIDデータd1を復元するためのパリティ計算(排他的論理和演算)を指定するローカル命令とを生成する。以降の動作は、先のグローバル命令からローカル命令L1〜L5が生成された場合とほぼ同様である。以上は、ディスク装置4-1へのデータ書き込みまたはディスク装置4-1上のデータの更新の場合も同様である。
【0070】
次に、コンピュータ1-1上で動作するタスク11-1から書き込みを指定するグローバル命令が発生し、当該グローバル命令がコンピュータ1-2に接続されたディスク装置4-2上のRAIDデータ(旧データ)d2を新らしいRAIDデータ(新データ)d2'に書き換えることを指定している場合の手順について、図4(a)を参照して説明する。
【0071】
まず、コンピュータ1-2(のクラスタRAID制御部13-2)によりディスク装置4-2から旧データd2を読み出す(ステップS31)。
次に、コンピュータ1-2(のクラスタRAID制御部13-2)からコンピュータ1-1(のクラスタRAID制御部13-1)にネットワーク2を介して旧データd2を転送する(ステップS32)。
【0072】
また、コンピュータ1-3(のクラスタRAID制御部13-3)によりディスク装置4-3から旧パリティpを読み出す(ステップS33)。
次に、コンピュータ1-3(のクラスタRAID制御部13-3)からコンピュータ1-1(のクラスタRAID制御部13-1)にネットワーク2を介して旧パリティpを転送する(ステップS34)。
【0073】
次に、コンピュータ1-1(のクラスタRAID制御部13-1)で、旧データd2、旧パリティp及び新データd2'の間の排他的論理和(XOR)演算を行い、新パリティp'=d2' XOR p XOR d2を生成する(ステップS35)。
【0074】
コンピュータ1-1(のクラスタRAID制御部13-1)からコンピュータ1-2(のクラスタRAID制御部13-2)にネットワーク2を介して新データd2'を転送する(ステップS36)。
次に、コンピュータ1-2(のクラスタRAID制御部13-2)によりディスク装置4-2上の旧データd2を新データd2'に書き換える(ステップS37)。
【0075】
また、コンピュータ1-1(のクラスタRAID制御部13-1)からコンピュータ1-3(のクラスタRAID制御部13-3)にステップS35で生成した新パリティp'をネットワーク2経由で転送する(ステップS38)。
次に、コンピュータ1-3(のクラスタRAID制御部13-3)によりディスク装置4-3上の旧パリティpを新パリティp'に書き換える(ステップS39)。
【0076】
このようにして、新パリティp'及び新データd2'を、それぞれディスク装置4-2及び4-3に書き込むことができる。但し、以上の手順(図4(a)参照)では、ネットワーク2を経由してのコンピュータ間の転送(RAIDデータの転送とパリティの転送)が4回発生し、仮想RAID装置40に対する読み出し/書き込みの性能が低下する。
【0077】
そこで、コンピュータ間の転送回数を減らすことを可能とする本実施形態の変形例について、図4(b)を参照して説明する。なお、本変形例においても、図4(a)の例と同様に、コンピュータ1-1上で動作するタスク11-1から、ディスク装置4-2上のRAIDデータ(旧データ)d2を新らしいRAIDデータ(新データ)d2'に書き換えることを指定するグローバル命令が発生したものとする。
【0078】
まず、コンピュータ1-1(のクラスタRAID制御部13-1)からコンピュータ1-2(のクラスタRAID制御部13-2)にネットワーク2を介して新データd2'を転送する(ステップS41)。
【0079】
次に、コンピュータ1-2(のクラスタRAID制御部13-2)によりディスク装置4-2から旧データd2を読み出す(ステップS42)。
次に、コンピュータ1-2(のクラスタRAID制御部13-2)で、コンピュータ1-1(のクラスタRAID制御部13-1)から転送された新データd2'及び自コンピュータ1-2(のクラスタRAID制御機構13-2)が読み出した旧データd2の間の排他的論理和(XOR)演算を行い、その演算結果(以下、中間データと称する)ma=d2' XOR d2を求める(ステップS43)。
【0080】
また、コンピュータ1-2(のクラスタRAID制御部13-2)によりディスク装置4-2上の旧データd2を新データd2'に書き換える(ステップS44)。
【0081】
次に、コンピュータ1-2(のクラスタRAID制御部13-2)からコンピュータ1-3(のクラスタRAID制御部13-3)にステップS43で生成した中間データmaをネットワーク2経由で転送する(ステップS45)。
【0082】
次に、コンピュータ1-3(のクラスタRAID制御部13-3)によりディスク装置4-3から旧パリティpを読み出す(ステップS46)。
次に、コンピュータ1-3(のクラスタRAID制御部13-3)で、自コンピュータ1-3(のクラスタRAID制御機構13-3)が読み出した旧パリティp及びコンピュータ1-2(のクラスタRAID制御部13-2)から転送された中間データma(=d2' XOR d2)の間の排他的論理和(XOR)演算を行い、新パリティp'=p XOR maを生成する(ステップS47)。
【0083】
次に、コンピュータ1-3(のクラスタRAID制御部13-3)によりディスク装置4-3上の旧パリティpを新パリティp'に書き換える(ステップS48)。
【0084】
このように本変形例においては、パリティ計算の途中結果(中間データma)を、次の計算に必要な(情報が格納されているディスク装置と接続された)コンピュータ(コンピュータ1-3)に転送することで、データ転送を4回から2回に減らすことができる。
【0085】
[第2の実施形態]
図5は本発明の第2の実施形態に係る仮想的なRAID装置を有するクラスタシステムの構成を示すブロック図である。なお、図1と同一部分には同一符号を付してある。
【0086】
図5のクラスタシステムの特徴は、図1中のコンピュータ1-1〜1-3に相当するコンピュータ10-1〜10-3の他に、図1中のクラスタマネージャ12-1〜12-3に相当するクラスタマネージャ12が動作するクラスタマネージャ専用のコンピュータ100を備えている点と、コンピュータ10-1〜10-3上ではクラスタマネージャが動作していない点にある。クラスタマネージャ12は、図2に示したデータ構造の位置情報変換テーブル120-iに相当する位置情報変換テーブル120を有している。
【0087】
コンピュータ10-1〜10-3及びコンピュータ100はネットワーク2,3により相互接続されている。コンピュータ10-1〜10-3のクラスタRAID制御部13-1〜13-3(内の命令変換部132-1〜132-3)は、コンピュータ100のクラスタマネージャ12とネットワーク3を介して通信する。
【0088】
前記第1の実施形態で適用した図1の構成のクラスタシステムでは、仮想RAID装置40を構成するディスク装置4-1〜4-3と接続されているコンピュータ1-1〜1-3上で、クラスタマネージャ12-1〜12-3及びクラスタRAID制御部13-1〜13-3が動作する。このため、コンピュータ1-1〜1-3の負荷が大きくなり、処理性能が低下する恐れがある。
【0089】
これに対して本実施形態で適用した図5の構成のクラスタシステムでは、クラスタRAID制御部13-1〜13-3が動作するコンピュータ10-1〜10-3とは別に、クラスタマネージャ12が動作するコンピュータ100を設けている。このため、コンピュータ10-1〜10-3の負荷は、当該コンピュータ10-1〜10-3上でクラスタマネージャを動作させる場合に比べて減少する。
【0090】
但し、図1のシステムでは、システムを構成しているコンピュータ1-1〜1-3のうちのいずれか1台に障害が発生してもシステム全体が停止する恐れはないのに対し、図5のシステムでは、クラスタマネージャ12が動作しているコンピュータ100に障害が発生した場合は、それ以降位置情報変換テーブル120が利用できなくなるため、その時点でシステム全体が使用不能になる。そこで、コンピュータ100を2重化するなどして、可用性を上げることで、システム全体の可用性を上げるとよい。
【0091】
以上の説明では、仮想RAID装置40を構成するディスク装置4-1〜4-3の各々に対してRAIDデータまたはパリティのいずれかが保存される、例えばディスク装置4-1,4-2にはRAIDデータd1,d2が保存され、ディスク装置4-3にはパリティpが保存されるものとしたが、これに限るものではない。例えば、ディスク装置4-1〜4-3から構成される仮想RAID装置40のディスク領域を、複数のストライプに分割して管理するストライピングという手法を適用し、各ストライプi毎にRAIDデータd1-i,d2-i及びパリティp-iが、それぞれディスク装置4-1,4-2及び4-3に保存されるRAIDレベル3と呼ばれる構成に対しても、本発明は適用可能である。また、RAIDデータd1-i,d2-i及びパリティp-iが、全てのディスク装置4-1,4-2及び4-3に分散するように配置されるRAIDレベル5と呼ばれる構成に対しても、本発明は適用可能である。ストライピングにより、1つのRAIDデータを読み出し/書き込みする際に複数のディスク装置が同時に動作する割合を増やすことができ、スケーラブルな性能を出すことができるようになる。本発明では、RAID5の場合でもストライピングのない図の(1)のような場合でも、ディスクアクセスのロックをとることによりスケーラブルな性能を出すことが可能である。
【0092】
また、以上の説明では、各コンピュータ1-1〜1-3(またはコンピュータ10-1〜10-3,100)が2つのネットワーク2及び3により相互接続され、クラスタマネージャ12-1〜12-3相互間の通信(またはクラスタマネージャ12とクラスタRAID制御部13-1〜13-3との間の通信)にはネットワーク3が、クラスタRAID制御部13-1〜13-3(内の命令転送部133-1〜133-3)相互間の通信(命令転送とデータの転送)にはネットワーク2が用いられるものとしたが、これに限るものではない。例えば、上記2種の通信に1つのネットワークを用いるようにしても構わない。この場合、通信速度が低下する恐れがあるものの、システムの簡略化が図れる。
【0093】
なお、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0094】
【発明の効果】
以上詳述したように本発明によれば、クラスタシステムを構成する複数のコンピュータそれぞれに接続されたディスク装置を、1つの仮想的なRAID装置の構成要素として利用することができる。このため本発明によれば、1台のコンピュータに障害が発生しても、それまでに上記仮想的なRAID装置に書き込まれた全てのデータを参照することが可能である。また、1台のコンピュータに障害が発生した状態であっても、タスクがデータを読み出し/書き込みすることが可能である。これによりクラスタシステムにおいて、1台のコンピュータに障害が発生し、他のコンピュータで運用を続けようとするとき、障害が発生したコンピュータの持つデータが、連用を再開するために必要な場合であっても、運用を続けることが可能となる。
【0095】
また、本発明によれば、各コンピュータに接続されたディスク装置の読み出し/書き込みの処理及びパリティ計算処理は、クラスタマネージャを利用せずに行うことができるため、当該クラスタマネージャで排他を行いながらシステム規模に応じた読み出し/書き込み性能を実現することが可能となる。
【0096】
また、パリティ計算を行う際には、計算に必要な情報を1つのコンピュータに集めず、パリティ計算の中間結果を順次、パリティ計算の次の中間結果または最終結果の計算に必要な情報を持つコンピュータに転送することにより、少ないコンピュータ間データ転送回数で1つのパリティ計算を行うことができ、仮想的なRAID装置に対する書き込みの速度を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る仮想的なRAID装置を有するクラスタシステムの構成を示すブロック図。
【図2】図1中のクラスタマネージャ12-iで保持される位置情報変換テーブル120-iのデータ構造例を示す図。
【図3】第1の実施形態の動作について、ディスク装置4-1に格納されているRAIDデ一夕d1をd1'に更新する書き込みのグローバル命令を実行する場合を例に説明するための図。
【図4】第1の実施形態において、コンピュータ1-2に接続されたディスク装置4-2上のRAIDデータd2をd2'に書き換えるグローバル命令がコンピュータ1-1上で発生した場合に適用可能な2種の手順を対比して説明するための図。
【図5】本発明の第2の実施形態に係る仮想的なRAID装置を有するクラスタシステムの構成を示すブロック図。
【符号の説明】
1-1〜1-3…コンピュータ
2,3…ネットワーク
4-1〜4-3…ディスク装置
11-1〜11-3…タスク
12,12-1〜12-3…クラスタマネージャ
13-1〜13-3…クラスタRAID制御部(制御機構)
40…仮想RAID装置
100…コンピュータ(クラスタマネージャ用コンピュータ)
120,120-1〜120-3,120-i…位置情報変換テーブル
132-1〜132-3…命令変換部
133-1〜133-3…命令転送部
134-1〜134-3…パリティ計算部
136-1〜136-3…ディスク制御部

Claims (6)

  1. 少なくとも1つのネットワークで相互接続された複数のコンピュータと、前記各コンピュータにそれぞれ接続されたディスク装置とを備えたクラスタシステムにおいて、
    前記システム全体の排他制御と、前記各コンピュータにそれぞれ接続されたディスク装置を仮想的なRAID装置の構成要素として扱うために、グローバル命令から少なくとも1つのローカル命令への変換とを行うクラスタマネージャと、
    前記複数のコンピュータ上で前記クラスタマネージャからそれぞれ独立に動作する制御機構とを具備し、
    前記制御機構は、
    自身が動作する前記コンピュータ上で前記RAID装置を対象とする書き込み/読み出しのグローバル命令が発生した場合に、前記クラスタマネージャと通信することで当該グローバル命令を前記クラスタマネージャにより少なくとも1つのローカル命令に変換させる命令変換手段であって、前記クラスタマネージャにより当該ローカル命令に変換させる際に、当該ローカル命令の排他的実行のために前記クラスタマネージャを用いてロックを取得し、当該ローカル命令の実行終了時に前記クラスタマネージャを用いて当該ロックを解除する命令変換手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従って前記ディスク装置を対象とする読み出し/書き込みを行うディスク制御手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従ってパリティ計算を行うパリティ計算手段と、
    前記命令変換手段から当該命令変換手段によるロック取得が行われた前記ローカル命令を受けて、当該ローカル命令を対応する他の前記コンピュータ、前記ディスク制御手段または前記パリティ計算手段に転送する命令転送手段とを含む
    ことを特徴とする仮想的なRAID装置を有するクラスタシステム。
  2. 前記クラスタマネージャは、パリティ計算に必要な情報が格納されている前記ディスク装置と接続されている前記コンピュータで当該情報を用いたパリティ計算の中間結果または最終結果を算出させるローカル命令であって、当該中間結果を算出させる場合には、当該中間結果を、当該中間結果との間でパリティ計算の次の中間結果または最終結果を算出するのに必要な情報が格納されている前記ディスク装置と接続されている前記コンピュータに転送させるローカル命令を生成することを特徴とする請求項1記載の仮想的なRAID装置を有するクラスタシステム。
  3. 前記クラスタマネージャは、前記複数のコンピュータにそれぞれ設けられており、前記ネットワークを介して他の前記コンピュータ上の前記クラスタマネージャと同期をとって動作し、前記グローバル命令を前記ローカル命令に変換する際には、当該ローカル命令の指定するディスク装置の領域がロックされているかをチェックし、ロックされているならば、そのロックが開放されるのを待って、当該ローカル命令を自身が設けられている前記コンピュータ上の前記命令変換手段に渡すと共に、当該ローカル命令に対応して排他に必要なロック情報を作成し、当該ロック情報を前記ネットワークを介して他の前記コンピュータ上の前記クラスタマネージャに送ることでシステム全体の排他制御を行うことを特徴とする請求項1記載の仮想的なRAID装置を有するクラスタシステム。
  4. 前記クラスタマネージャは、前記複数のコンピュータから独立に設けられたクラスタマネージャ用コンピュータ上で動作し、
    前記複数のコンピュータ上で動作する前記制御機構は、前記ネットワークを介して前記クラスタマネージャ用コンピュータ上の前記クラスタマネージャと通信することを特徴とする請求項1記載の仮想的なRAID装置を有するクラスタシステム。
  5. 少なくとも1つのネットワークで相互接続された複数のコンピュータから構成されるクラスタシステムにディスク装置と接続して用いられるクラスタシステム用のコンピュータにおいて、
    前記クラスタシステム全体の排他制御と、前記クラスタシステムを構成する前記各コンピュータにそれぞれ接続されたディスク装置を仮想的なRAID装置の構成要素として扱うために、グローバル命令から少なくとも1つのローカル命令への変換とを行うクラスタマネージャと、
    自身が動作する前記コンピュータ上で前記RAID装置を対象とする書き込み/読み出しのグローバル命令が発生した場合に、前記クラスタマネージャと通信することで当該グローバル命令を前記クラスタマネージャにより少なくとも1つのローカル命令に変換させる命令変換手段であって、前記クラスタマネージャにより当該ローカル命令に変換させる際に、当該ローカル命令の排他的実行のために前記クラスタマネージャを用いてロックを取得し、当該ローカル命令の実行終了時に前記クラスタマネージャを用いて当該ロックを解除する命令変換手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従って前記ディスク装置を対象とする読み出し/書き込みを行うディスク制御手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従ってパリティ計算を行うパリティ計算手段と、
    前記命令変換手段から当該命令変換手段によるロック取得が行われた前記ローカル命令を受けて、当該ローカル命令を対応する他の前記コンピュータ、前記ディスク制御手段または前記パリティ計算手段に転送する命令転送手段と
    を具備することを特徴とするクラスタシステム用のコンピュータ
  6. 少なくとも1つのネットワークで相互接続された、複数のクラスタシステム用のコンピュータとクラスタマネージャ用のコンピュータとから構成されるクラスタシステムにおける、
    前記クラスタシステム全体の排他制御と、前記複数のクラスタシステム用のコンピュータにそれぞれ接続されたディスク装置を仮想的なRAID装置の構成要素として扱うために、グローバル命令から少なくとも1つのローカル命令への変換とを行うクラスタマネージャが動作するクラスタシステムに用いられるクラスタシステム用のコンピュータであって、
    自身が動作する前記クラスタシステム用のコンピュータ上で前記RAID装置を対象とする書き込み/読み出しのグローバル命令が発生した場合に、前記クラスタマネージャと通信することで当該グローバル命令を前記クラスタマネージャにより少なくとも1つのローカル命令に変換させる命令変換手段であって、前記クラスタマネージャにより当該ローカル命令に変換させる際に、当該ローカル命令の排他的実行のために前記クラスタマネージャを用いてロックを取得し、当該ローカル命令の実行終了時に前記クラスタマネージャを用いて当該ロックを解除する命令変換手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従って前記ディスク装置を対象とする読み出し/書き込みを行うディスク制御手段と、
    前記命令変換手段によるロック取得が行われた前記ローカル命令が与えられた場合、当該ローカル命令に従ってパリティ計算を行うパリティ計算手段と、
    前記命令変換手段から当該命令変換手段によるロック取得が行われた前記ローカル命令を受けて、当該ローカル命令を対応する他の前記クラスタシステム用のコンピュータ、前記ディスク制御手段または前記パリティ計算手段に転送する命令転送手段と
    を具備することを特徴とするクラスタシステム用のコンピュータ。
JP2001292426A 2001-09-25 2001-09-25 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ Expired - Fee Related JP4054182B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001292426A JP4054182B2 (ja) 2001-09-25 2001-09-25 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ
US10/230,339 US6807642B2 (en) 2001-09-25 2002-08-29 Cluster system having virtual raid, computer for the cluster system, and parity calculation method in the cluster system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001292426A JP4054182B2 (ja) 2001-09-25 2001-09-25 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ

Publications (2)

Publication Number Publication Date
JP2003099210A JP2003099210A (ja) 2003-04-04
JP4054182B2 true JP4054182B2 (ja) 2008-02-27

Family

ID=19114388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001292426A Expired - Fee Related JP4054182B2 (ja) 2001-09-25 2001-09-25 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ

Country Status (2)

Country Link
US (1) US6807642B2 (ja)
JP (1) JP4054182B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928515B2 (en) * 2002-11-09 2005-08-09 International Business Machines Corporation Integrated sector format-error correction code system and method for efficient writing in a disk array system
US6891690B2 (en) * 2002-11-20 2005-05-10 International Business Machines Corporation On-drive integrated sector format raid error correction code system and method
US7096316B1 (en) 2003-06-30 2006-08-22 Veritas Operating Corporation Multi-host environment with coordinated distributed logging for writes to a raid storage volume
US7330858B1 (en) 2003-06-30 2008-02-12 Symantec Operating Corporation Coordinated distributed logging in a multi-host environment
US7328226B1 (en) 2003-06-30 2008-02-05 Symantec Operating Corporation Coordinated distributed log-based snapshots in a multi-host environment
US7698289B2 (en) * 2003-12-02 2010-04-13 Netapp, Inc. Storage system architecture for striping data container content across volumes of a cluster
JP4144549B2 (ja) * 2004-03-31 2008-09-03 日本電気株式会社 データ保存システムおよび該システムの制御方法
US7516354B2 (en) * 2004-08-25 2009-04-07 International Business Machines Corporation Storing parity information for data recovery
JP4666990B2 (ja) * 2004-09-30 2011-04-06 株式会社日本デジタル研究所 ネットワークraidシステム
JP4575739B2 (ja) * 2004-09-30 2010-11-04 株式会社日本デジタル研究所 ネットワークraidシステム
US7441146B2 (en) * 2005-06-10 2008-10-21 Intel Corporation RAID write completion apparatus, systems, and methods
US7562188B2 (en) * 2005-06-17 2009-07-14 Intel Corporation RAID power safe apparatus, systems, and methods
JP2007011500A (ja) * 2005-06-28 2007-01-18 Mitsubishi Electric Corp ホームゲートウェイ
US7653829B2 (en) * 2005-12-08 2010-01-26 Electronics And Telecommunications Research Institute Method of data placement and control in block-divided distributed parity disk array
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
US7827439B2 (en) * 2007-09-28 2010-11-02 Symantec Corporation System and method of redundantly storing and retrieving data with cooperating storage devices
FR2940570B1 (fr) * 2008-12-23 2011-03-18 Seanodes Systeme de stockage comprenant plusieurs noeuds en reseau avec gestion de la parite
JP2012033169A (ja) * 2010-07-29 2012-02-16 Ntt Docomo Inc バックアップシステムにおける符号化を使用して、ライブチェックポインティング、同期、及び/又は復旧をサポートするための方法及び装置
JP2012175535A (ja) * 2011-02-23 2012-09-10 Brother Ind Ltd ノード装置、情報処理方法及びプログラム
US9430367B1 (en) * 2011-04-18 2016-08-30 American Megatrends, Inc. Systems and methods for active raid
US9684591B2 (en) * 2012-04-27 2017-06-20 Hitachi, Ltd. Storage system and storage apparatus
EP4328751A3 (en) * 2012-06-07 2024-05-08 VSIP Holdings LLC Memory system management
KR102318478B1 (ko) * 2014-04-21 2021-10-27 삼성전자주식회사 스토리지 컨트롤러, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US9081828B1 (en) 2014-04-30 2015-07-14 Igneous Systems, Inc. Network addressable storage controller with storage drive profile comparison
USRE48835E1 (en) 2014-04-30 2021-11-30 Rubrik, Inc. Network addressable storage controller with storage drive profile comparison
JP6369226B2 (ja) * 2014-08-28 2018-08-08 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
US9116833B1 (en) * 2014-12-18 2015-08-25 Igneous Systems, Inc. Efficiency for erasure encoding
US9361046B1 (en) 2015-05-11 2016-06-07 Igneous Systems, Inc. Wireless data storage chassis
US10884861B2 (en) 2018-11-29 2021-01-05 International Business Machines Corporation Write-balanced parity assignment within a cluster
US20220137835A1 (en) * 2020-10-30 2022-05-05 Kioxia Corporation Systems and methods for parity-based failure protection for storage devices

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
US5862312A (en) 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
AU4334099A (en) * 1998-06-05 1999-12-20 Mylex Corporation Apparatus, system and method for n-way raid controller
US6542961B1 (en) * 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
US6950901B2 (en) * 2001-01-05 2005-09-27 International Business Machines Corporation Method and apparatus for supporting parity protection in a RAID clustered environment

Also Published As

Publication number Publication date
US20030061441A1 (en) 2003-03-27
JP2003099210A (ja) 2003-04-04
US6807642B2 (en) 2004-10-19

Similar Documents

Publication Publication Date Title
JP4054182B2 (ja) 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ
US7249130B2 (en) Virtual storage devices
US7962783B2 (en) Preventing write corruption in a raid array
US7418565B2 (en) Remote e copy system and a remote copy method utilizing multiple virtualization apparatuses
US5682396A (en) Control unit in storage subsystem with improvement of redundant data updating
US7783844B2 (en) Shared/exclusive control scheme among sites including storage device system shared by plural high-rank apparatuses, and computer system equipped with the same control scheme
US6795904B1 (en) System and method for improving performance of a data backup operation
US6571354B1 (en) Method and apparatus for storage unit replacement according to array priority
US20040123068A1 (en) Computer systems, disk systems, and method for controlling disk cache
US20060179343A1 (en) Method and apparatus for replicating volumes between heterogenous storage systems
US7734878B1 (en) System and method for performing virtual device I/O operations
JP2002287999A (ja) サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
JP2004252686A (ja) 情報処理システム
EP1237087A2 (en) Memory device system and method for copying data in memory device system
CA2310099A1 (en) Computer system transparent data migration
JP2008225616A (ja) ストレージシステム、リモートコピーシステム、及びデータ復元方法
JP4289056B2 (ja) 計算機システム間のデータ二重化制御方法
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
CN115129237A (zh) 存储系统和存储系统的控制方法
US6715048B1 (en) System and method for efficiently performing a restore operation in a data storage environment
JP2021033782A (ja) リモートコピーシステム
US20060090032A1 (en) Method and computer program product of obtaining temporary conventional memory usage in BIOS
US7428558B2 (en) Persistent restore of virtual devices
US7478269B2 (en) Method and computer program product of keeping configuration data history using duplicated ring buffers
JP2005322271A (ja) ディスクアレイ装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070611

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071207

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

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131214

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees