JP2014096072A - ミラー構成を有するディスクアレイ及びそのリビルド方法 - Google Patents

ミラー構成を有するディスクアレイ及びそのリビルド方法 Download PDF

Info

Publication number
JP2014096072A
JP2014096072A JP2012247921A JP2012247921A JP2014096072A JP 2014096072 A JP2014096072 A JP 2014096072A JP 2012247921 A JP2012247921 A JP 2012247921A JP 2012247921 A JP2012247921 A JP 2012247921A JP 2014096072 A JP2014096072 A JP 2014096072A
Authority
JP
Japan
Prior art keywords
data
disk
buffer
read
host
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.)
Pending
Application number
JP2012247921A
Other languages
English (en)
Inventor
Yoshikuni Murakami
佳邦 村上
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012247921A priority Critical patent/JP2014096072A/ja
Priority to US14/062,037 priority patent/US9286174B2/en
Publication of JP2014096072A publication Critical patent/JP2014096072A/ja
Priority to US15/046,931 priority patent/US9940201B2/en
Pending 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • 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
    • 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/2056Error 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 by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】ミラー構成のディスクアレイにおいてIOアクセスと並行してリビルドする。
【解決手段】ディスクアレイは、IO要求のデータXを一時保管するバッファと、ミラー構成を有する第1ディスクと第2ディスクと、補助ディスクと、補助ディスクにコピーされたデータのディスク位置をログする冗長管理テーブルを含む。コントローラは、(a)第2ディスクに障害がある場合、データXのIOと並行して、バッファに保管されたデータXを補助ディスクへコピーし、(b)データXのディスク位置がコピー済みであることを冗長管理テーブルにログし、(c)コピー完了によりIO要求の完了をホストに返す。コントローラは、データサイズが所定の大きさになるように、追加データとしてデータXと連続するディスク位置の後続データYをバッファに保管し、連続するデータX、Yを補助ディスクへコピーする。ディスク使用率が多い場合にもリビルド時間の短縮が見込める。
【選択図】図6

Description

本発明は、ホストからIOアクセスと並行してリビルドする、ミラー構成を有するディスクアレイ及びリビルド方法に関する。
ホストは、ファイバチャネル(FC: fiber channel)やイーサネット(Ethernet)により接続されているミラー構成のディスクアレイ(RAID1、RAID10:Redundant Arrays of Inexpensive Disks)にデータを読み書きする。RAID1は、2台の装置にまったく同じデータを同時に書きこむ方式である。RAID10は、RAID1を構成要素として含む。
従来技術のRAID1では、ホストの読み書きなどホストからのIOアクセスを優先させる。そのため、ホストからのIOアクセスが多いほど、障害ディスクに対して新たにディスクのリビルド(再構築)のに完了までにより長期の時間を要する。その間、冗長性がない状態が継続する。リビルド(rebuild)とは、RAID構成のハードディスクで1台が壊れた際に、新しいものに入れ替えて残りのディスクからデータを再構築・複写する作業を言う。
特許文献1は、ホストからのIOがある場合とない場合でリビルド処理サイズを変更するリビルド方法を示す。
特許文献2では、通常業務のIOとリビルド処理のバランスをとるために、単純に、ホストIOの処理とリビルドの比率を設定するだけである。
特開2007−94994号公報 特開2012−14638号公報
以上の先行技術では、ホストからのIOアクセスが継続している場合には、リビルド時間の短縮が達成できない。ホストからIOアクセスが頻繁である場合でも同時並行にリビルド処理を処理できるようにする。障害ディスクの発生によりデータ保全性を確実にするために、ホストIOアクセスの際もミラー構成ディスクのリビルドを確実にする方法である。
従って、本発明の目的は、ミラー構成の冗長化機構を有するディスクアレイにおいて、ホストからIOアクセスと並行してリビルドする方法及びディスクスアレイを提供する。
かかる目的のもと、本発明は、障害ディスクの発生によりリビルドをするミラー機構を有するディスクアレイである。このディスクアレイは、
ホストからの書込み(Write)又は読込み(Read)要求(読み書き要求)のデータXを一時保管するバッファと、
ミラー構成を有する互いに冗長化した第1のディスクと第2のディスクと、
前記第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
前記補助ディスクにコピーされた正常駆動の第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルと、
前記書込み又は読込み要求に応じて、前記バッファと前記冗長化ディスクとの間のデータXの読み書きを制御するコントローラであって、更に、
(a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーし、
(b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログ・更新し、
(c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返す、
ことを実行するコントローラと、を含む。
また、本発明のディスクアレイの前記コントローラの(a)は、前記読み書き要求の現在データXのサイズが第1の所定値(例、4MB又は6MB)より小さい場合は、全体のデータのサイズが第2の所定値(例、4MB又は6MB)になるように、追加データとして、前記バッファに保管された現在データXと連続するディスク位置のデータ(データY)を(正常に駆動している)第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータX及びデータYを補助ディスクへコピーし、
前記コントローラの前記(b)は、前記追加データについて前記冗長性管理テーブルにログする、リビルドを実行することを特徴とする。
また、本発明のディスクアレイの前記コントローラの前記(a)は、前記読み書き要求の現在データXのサイズが所定の閾値(例、2MB)以上の場合はホストから後続の読み書き要求をシーケンシャルであると見なして、全体のデータのサイズが第2の所定値(例、4MB又は6MB)になるように、追加データとして、前記バッファに保管された現在データXと連続する後続のディスク位置のデータ(データY)を正常に駆動している第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータX及びデータYを補助ディスクへコピーして、リビルドを実行する請求項2に記載のストレージアレイ
また、本発明のディスクアレイの前記コントローラの(a)は、前記読み書き要求の現在データXのサイズが所定の閾値(例、2MB)より小さい場合はホストから後続の読み書き要求をランダムであると見なして、全体のデータのサイズが第2の所定値(例、4MB又は6MB)になるよう、追加データとして、前記バッファに保管された現在データXと連続する後続のディスク位置のデータ(後続データY)及び、前方のディスク位置のデータ(前方データZ)を正常に駆動している第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータX、データY、及びデータZを前記補助ディスクへコピーして、リビルドを実行することを特徴とする。
また、本発明のディスクアレイの前記コントローラは、更に、
(d)前記(a)のコピーをする前に、前記冗長性管理テーブルを参照して前記バッファに保管された現在データXがコピー済みか確認し、
(e)前記(d)で現在データXがコピー済みの場合、(a)のコピーを回避して前記書込み又は読込み要求の完了をホストに返す、ことを含む。
また、本発明のディスクアレイの前記コントローラは、前記ホストから複数の読み書き要求のデータに対して一定回数毎に前記(a)の補助ディスクのコピーを回避して、ホストへの前記要求の完了応答の遅延を小さくすることを特徴とする。
更に、本発明は、ミラー機構を有するディスクアレイのリビルドする方法である。
この方法は、ホストからの書込み(Write)又は読込み(Read)要求(読み書き要求)のデータXを一時保管するバッファと、
ミラー構成を有する互いに冗長化した第1のディスクと第2のディスクと、
前記第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
前記書込み又は読込み要求に応じて、前記バッファと前記冗長化ディスクとの間のデータXの読み書きを制御するコントローラとを含む、ミラー機構を有するディスクアレイであって、
前記ディスクアレイに更に、前記補助ディスクにコピーされた正常駆動の第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルを含み、
(a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーするステップと、
(b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログするステップと、
(c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返すステップと、を含む。
更に、本発明は、ミラー機構を有するディスクアレイのリビルドするプログラムである。
このプログラムは、ホストからの書込み(Write)又は読込み(Read)要求(読み書き要求)のデータXを一時保管するバッファと、
ミラー構成を有する互いに冗長化した第1のディスクと第2のディスクと、
前記第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
前記書込み又は読込み要求に応じて、前記バッファと前記冗長化ディスクとの間のデータXの読み書きを制御するコントローラとを含む、ミラー機構を有するディスクアレイのリビルドするプログラムであって、
前記ディスクアレイに更に、前記補助ディスクにコピーされた正常駆動の第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルを含み、
(a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーするステップと、
(b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログするステップと、
(c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返すステップと、をコントローラに実行させる。
以上の本発明の適用のディスクアレイは、ホストIOによるディスク使用率が高い場合でもリビルド時間の短縮できる。
本発明が適当されるミラー構成を有するディスクアレイ(RAID1)10の構成を示す。 冗長性管理テーブルの例を示す。 ディスク1bに障害が発生した場合に補助ディスクが1bの代わりにリビルドされることを示す。 ホストからの書込み読込みデータXの処理と並行して、データX及び追加データY,Zをcopyすることを示す。 ホストからの書込み・読込みアクセスに並行して、正常に稼働しているディスクのデータをコピーする処理の順番及び構成要素の関係を示す。 ホストIOに並行してバッファに保管されたデータXをコピーして、ミラー構成をリビルドする処理フローを示す。
以下、ホストからディスクアレイへのデータの書込みの場合及び読み出し(ホストIO)の場合について実施の形態(実施例)を説明する。以下の実施例は例であり、本発明は、読み書きデータXのサイズについて例示された示される各種の基準値(第1の所定値、第2の所定値、所定の閾値など)に限定されるものではない。
本発明のRAID1は、ミラー構成を有する2つのディスクと1つの予備のディクスで構成される。RAID1の冗長な1つのディスクに障害が発生した時点で、ホストからのIOが並行に、ディスクのデータのコピーを効率的に行い全体のリビルド時間を短縮する。ホストIOのアクセスパターンに基づき、コピーするデータサイズやデータ位置を動的に変更することにより、リビルド処理を効率化する。
図1は、本発明が適用されるミラー構成を有するディスクアレイ(RAID1)10の構成を示す。なお、本発明のディスクアレイは、RAID1を構成要素として含むRAID10にも適用される。実施例が実装されるRAID1のホストIO処理の駆動を、図を参照しながら説明する。ディスクアレイ10は、コントローラ13、ミラー構成のディスク1a,1b、補助ディスクs1、ホスト・インタフェース部11、Write/Readバッファ16、及び冗長性管理テーブル14を有している。ホスト・インタフェース14は、ディスクアレイ装置10の上位装置であるホスト20する通信手段である。
2つのディスク1a,1bは同じデータを保持し冗長化され、互いにミラーの関係である。冗長化されているので2つのディスク1a,1bの一方が故障しても、他方のディスクが正常であればユーザのデータは保証される。1つのディスク1bに障害が発生した場合、このディスク1bの代わりに補助ディスクがディスク1aとミラー関係となるように、ディスク1aのデータを補助ディスクs1にコピーする(リビルド)。予備ディスクs1は、ディスク1a、1bが正常に稼動中には、論理的にはディスクアレイから切り離されている。一方、予備ディスクs1は、ディスク1a、1bのいずれか1台が故障した場合に、RAID1の構成要素となる。
ディスク1aのデータを補助ディスクにリビルドするのには、ホストIOがある場合とない場合とに分けて取り扱われる。ホストIOと並列して補助ディスクのリビルドする操作は、ホストIOのデータXについてIO処理と同時に、補助ディスクにコピーする。
データの転送においては、ホストからのIOアクセスには、Read/Writeバッファ16を使用する。バッファ16はDRAMでも、SSD (Solid State Disk) でもよい。ホストからのIOがある場合、補助ディスクへのデータには、ホストIOのためにバッファ16に保管されたデータXが使用される。本発明では、バッファ16においてホストIOのデータXに対してサイズを拡張して、COPY(コピー:リビルド処理の一部分)を実施する。ホストIOが休止している場合、コピーされていないディスク1aの残りのアドレス位置のデータについてのCOPYをバッファ16を経由して行ない、リビルドを完了する。
コントローラ13は、ディスクアレイ10の各部の動作を制御する機能手段である。コントローラ10は、CPU及びファームウエアによって構成されている。コントローラ13は、バッファ16がホスト・インタフェース11を介してホスト20と接続する。ホスト20とホスト・インタフェース11との通信は、例えばSCSI(Small Computer System Interface)、イーサネットなどで行われる。コントローラ13は、冗長性管理テーブル14、Wrire/Readデータ要求、故障検出、及び、内部的なCOPYなどの機能を有している。
ホスト20からSCSIコマンドにより書込み(Write)又は読込み(Read)の要求をディスクアレイ10は受取る。書込み又は読込みデータXは、例えば固定長単位でバッファ16に保管される。例えば、2MB単位で読み書きがされる。2MBは例示である。読み書きデータXは可変長でもよい。ディスクの位置(番地)を、LBA(Logical Block Address)で指定する。1LBAはセクター(Sector)を指示し、大きさは例えば512Bである。LBAはRAID1のストレージアレイ10の論理アドレスを指示する。1つの論理アドレスであるLBAは、ディスクアレイの内部では2つのディスク1a又は1bの物理アドレスが割当てられる。なお、ホストIOは、複数のアドレス範囲(LBAブロック)のデータ単位で行われる。例えば、1つのLBAブロックは1000LBA(2MB)単位で行われる。
書込みの場合、バッファ16に保管されたデータは、ディスク1a及び1bは順に送られ、同じディスク位置、即ちLBA(Logical Block Address)に記録される。読込みの場合、ディスク1a又は1bの一方を主として決めておき、指定のストレージ位置から、LBAからデータを読出し、バッファ14に保管しホストに送られる。
コントローラ13は、ホスト20からReadコマンドを受信した場合に、ディスク1a及び1bのうち、いずれか一方のディスクからデータXを読み出してバッファ16を介してホスト20に送信する。コントローラ13は、ホスト20からWriteコマンド及びライト処理するデータを受信した場合に、バッファ16を介して、データXをディスク1a,1bに書き込む。このとき、コントローラ13は、第1ディスク1a及び第2ディスク1bに対して、データをミラーリングする。即ち冗長化のため、2つのディスク1a及び1bの同じディスク位置に同じデータを同時に書き込む。
冗長性管理テーブル14は、ディスク1bの1つに障害が発生した場合に、補助ディスクにミラー関係を再構築するために、コピー済みのディスクのアドレス範囲(ディスク位置の範囲:以下、「LBAブロック」、「アドレスブロック」と言う)についてログする。例えば、ディスク1bが故障して、ディスク1aの冗長性が確保されていない場合が生じる。この場合、正常稼働している1aの全てのLBAブロックを、補助ディスクs1にCOPYする。
図2は、冗長性管理テーブルの例を示す。冗長性管理テーブルは、ディスクアレイ10内に不揮発性記憶域に保持される。1番目の項目は、ホストの読み書き単位であるLBAブロック(アドレスブロック)を指示する。実施例のホストIOでは、ストレージアレイ10のディスク書込み単位を、例えば、1000のLBAの範囲のデータ(2MB)毎としている。2番目の項目は、LBAの所定のブロック単位で、シーケンシャルにブロックのサイズの累積を示す。3番目の項目は、ブロック毎にCOPY済みかをログする。通常のリビルドは、LBAブロックの小さい番号から大きい番号へとシーケンシャルにコピーされる。
コントローラ13は、このテーブルの参照、更新、リセットを行う機能を有する。コントローラ13は、ディスク1bに障害が生じたことを検出すると直ちに、冗長性管理テーブルを参照してコピー済のフラグの“OK”をリセットする。コントローラ13は、COPY済でないディスクのLBAブロックについて、ミラー構成になっていない、補助ディスクのアドレスブロックについてコピーがされた場合、冗長化済のフラグ“OK”をログする。
図3は、ディスク1bに障害が発生した場合に補助ディスクが1bの代わりにリビルドされることを示す。コントローラ13により、ディスク1aと補助ディスクs1のミラー構成を有するディスクアレイ(RAID1)が再構成される。
図4は、ホストからの書込み読込みデータXの処理と並行して、データX及び追加データY,Zをcopyすることを示す。
ホストIO処理と並行に、バッファ16に保管されているデータXに連続するデータY,Zを追加して、補助ディスクs1にこれら連続データをコピーする。データXに追加データをバッファ16に読み出すなどの操作は、ホストIOの処理の完了の応答は通常より遅くする。本発明は、ディスク1aの読み書き処理の遅延をなるべく小さくしながら、RAID1のリビルドを可能にする方法を提供する。そのために一定値サイズ以上のデータを補助ディスクにコピーすることを考える。例えば4MBより小さいデータXについてはデータを追加して補助ディスクにコピーすることにより、copy回数を少なくしてリビルドの効率化ができる。(a)(b)にあるように、データXが4MBより小さい場合、追加データとして後続データY、又は、前方データZを付加して全体で4MB又は6MBにできれば1回で大きなデータのコピーとなる。読み書きデータXのサイズが第1の所定値(例えば4MB)より小さい場合には、データYまたはZを追加してコピーする。データXが第1の所定値以上の場合は、補助ディスクs1のコピーするのには十分大きいとする。
(a)は、書込みデータのサイズが所定の閾値(例えば2MB)以上の場合には、後続LBAの追加データについても冗長化を行うことを示す。データXが所定の閾値以上の場合は、後続のホストIOが連続するデータのシーケンシャル・アクセスであることが多い。よってデータXに連続する後続LBAのデータ(後続データY)をデータに追加する。データX及び後続データYのcopy処理は、ホストIOの応答処理を通常より長くするが、copyされるデータのサイズを大きくすることによりリビルドの効率化ができる。Xが所定の閾値以上の場合は追加データとして、後続のLBAのデータYを追加して全体のcopyサイズが第2の所定値(例えば4MBまたは6MB)になるようにする。事前に後続データYについても追加的に補助ディスクにコピーしておけば、後続のアクセスにおいてデータのコピーを省略できる。また、ホストIOのデータXのサイズ以上の第1の所定値または第2の所定値のサイズの連続データを補助ディスクにコピーすることにより、ミラー構成のディスクのリビルドを短縮できる。IO応答の遅延が大きくなりすぎないように調整するため、後続データYのサイズは可変としてもよい。なお、第2の所定値は第1の所定値と同じ値としてもよい。
(b)は、書込みデータのサイズが所定の閾値(例えば2MB)より小さい場合、後続データYに更に前方LBAのデータZ(後続データZ)を追加することを示す。読み書きデータXがこの定閾値より小さな場合、後続のホストIOがランダム・アクセスである場合が多いため、前方データZについても追加としている。後続データYだけでなく前方データZも含めて、連続データ(X、Y,Z)のサイズが第2の所定値(例えば6MB)となるように、バッファ16に後続データY,前方データZをディスク1aから読み出す。ホストIOのデータXだけでなく、追加データY,Zを補助ディスクs1にコピーしておけば、後続のホストIOアクセスにおいてデータのコピーを省略できる効果がある。
図5は、ホストIOに並行して、正常に稼働しているディスクのデータをコピーする処理の順番及び構成要素の関係を示す。図6は、ホストIOに並行してバッファに保管されたデータXをコピーして、ミラー構成をリビルドする処理フローを示す。各処理フローは、コントローラ13において扱われる。図5及び図6の処理番号(1)−(7)は同じ内容を表す。
●(1):ディスクアレイ10は、ホストからデータXの書込み(Write)又は読込み(Read)の要求を受取る。
●(2):Write要求ではバッファ保管のデータXをディスク1aに書込む。Read要求ではディスク1aからデータXを読出してバッファ保管しホストに送る。
●(3−1):テーブル14を参照してバッファ16に保管されているデータXが補助ディスクにCOPY済みか確認する。例えば、図2において1つのLBAブロックに“OK”と付されている場合、そのブロックのデータは補助ディスクにコピー済みである。COPY済みの場合、データXを補助ディスクにコピーすることをスキップして、Write処理等の完了をホストに送る(7)。データXについてCOPY済みでない場合、後続のCOPY処理(3−2)をする。
●(3−2)COPY処理では、データXが第1の所定値(例えば4MB)より小さい場合、データXに対して後続データYを加える。データXが第1の所定値以上ならば、そのままデータを追加せずCOPYを行う。第1の所定値(例えば、4MB)を設けるのは、小さなデータのCOPYが頻発すると、全体のリビルド処理の速度に比べてホストIO処理を遅延させる。
●(3−2)&(4):補助ディスクにコピーするデータの大きさが、第2の所定値(4MB又はより以上)の大きさの連続するデータとなるようにディスク1aからバッファ16に追加の後続データY又は前方データZを確保する。第2の所定値は第1の所定値と同じ値でもよい。データXのサイズが所定の閾値以上の場合は後続のホストIOがシーケンシャルと見なして、追加データYをディスク1aからバッファ16に読み出す(図4(a))。また、データXのサイズが所定の閾値より小さい場合は後続のIOがランダムと見なして、後続データYの他に、前方データZをディスク1aからバッファ16に読み出す(図4(b))。なお、所定の閾値は、ホストIOのアクセス態様においてデータサイズとアクセスパターン(シーケンシャル及びランダム)との関係から、適時変更可能である。また、前方データZと後方データYのサイズの割合は、後続のホストIOの予想パターンに基づいて適時変更可能である。
●(5):ホストIOをシーケンシャルと見なした場合((図4(a))、バッファ16に保管された連続するデータX,Yを補助ディスクにcopyする。また、ホストIOをランダムと見なした場合((図4(b))、バッファ16に保管された連続するデータX,Y、Zを補助ディスクにcopyする(図4(b))。
●(6):バッファ16に保管されているデータX,Y,Zを補助ディスクにcopyか完了したら、冗長性管理テーブル14を対応するLBAブロックについて更新する。
●(7):データのWrite及びReadに完了をホストに送る。
●(8):複数のホストからのデータの読み書き完了(7)して全てのホストIOが終了する。
●(9):通常のリビルド操作として、ホストのIO完了後、テーブルを参照しながら、残りのLBAブロックについて複数のデータをバッファ16を経由してシーケンシャルにコピーする。
●(10):ディスク1aの全データについて補助ディスクへのリビルドを完了する。
ホストIOのデータXに対して、後続データY及び前方データZはシーケンシャルの連続するデータである。追加されるデータY、データZのバッファ16の読み出しは余計な操作であり、通常のデータXの書込み、読込みに対して応答を遅らせることになる。しかし、連続するデータX.Y,Zを補助ディスクs1に大きなサイズでcopyできれば、リビルドを速くできる効果がある。しかも、ホストIOの処理の完了後の休止期間にリビルドを部分的に行うことは、ホストIOの頻繁なシステム環境ではリビルドが長期間に及ぶ。その間ミラー構成が確保されないストレージアレイとなるので、突発的な障害によりデータの完全な消失の可能性が高まる。従って、本発明のディスクアレイは、ホストIO処理と並行してリビルドを早期に確保する。
本発明では、ホストIOの応答性の遅延を最小限にしつつ、ミラー構成のリビルド処理を実施する。そのため、ホストのIOタイムアウトにならないようにしなければならない。そのため、追加データの処理サイズを可変にして応答時間の制御ができるようにしている。また、ホストアクセスが激しい場合や、バッチ処理時間への影響を考慮しなければならない場合がある。ホストのIOアクセスM回中N回のみミラー回復動作、つまり、リビルド動作を実施するようにする。N=0の設定も可能にする。オペレータの判断で現在実行中のバッチ処理(ホストIO処理)の完了を最優先させたい場合などに対応できる。具体的には、3回にホストIOに対して1回は追加データを回避する問調整により、ホストIOを優先又はリビルドの優先を調整できる。
以上の実施例が適用されたRAID1は、ホストIOによるディスク使用率が多い場合にも、リビルド処理を実行するので、リビルド時間の短縮が見込める。これまで、本発明を実施の形態を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…ディスクアレイ(RAID1)、
11…ホスト・インタフェース、
13…コントロ−ラ(読み書き制御)、
14…冗長性管理テーブル、
16…Write/Readバッファ、
20…ホスト

Claims (8)

  1. リビルドをするミラー機構を有するディスクアレイであって、
    ホストからの書込み又は読込み要求(読み書き要求)のデータ(データX)を一時保管するバッファと、
    ミラー構成を有する冗長化された第1のディスクと第2のディスクと、
    第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
    前記補助ディスクにコピーされた第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルと、
    前記書込み又は読込み要求に応じて、前記バッファと前記2つの冗長化ディスクとの間のデータXの読み書きを制御するコントローラであって、更に、
    (a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーし、
    (b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログし、
    (c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返す、
    ことを実行するコントローラと、を含むミラー構成を有するディスクアレイ。
  2. 前記コントローラの(a)は、前記読み書き要求の現在データXのサイズが第1の所定値より小さい場合は、全体のデータのサイズが第2の所定値になるように、追加データとして、前記バッファに保管されたデータXと連続するディスク位置のデータを第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータを補助ディスクへコピーし、
    前記コントローラの前記(b)は、前記追加データについて前記冗長性管理テーブルにログする、リビルドを実行する請求項1に記載のストレージアレイ。
  3. 前記コントローラの前記(a)は、前記読み書き要求の現在データXのサイズが所定の閾値以上の場合はホストから後続の読み書き要求をシーケンシャルであると見なして、全体のデータのサイズが第2の所定値になるように、追加データとして、前記バッファに保管されたデータXと連続する後続のディスク位置のデータ(後続データY)を第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータを補助ディスクへコピーして、リビルドを実行する請求項2に記載のストレージアレイ。
  4. 前記コントローラの(a)は、前記読み書き要求の現在データXのサイズが所定の閾値より小さい場合はホストから後続の読み書き要求をランダムであると見なして、全体のデータのサイズが第2の所定値になるよう、追加データとして、前記バッファに保管されたデータXと連続する後続のディスク位置のデータ(後続データY)及び、前方のディスク位置のデータ(前方データZ)を第1のディスクから前記バッファに読み出し保管し、前記バッファに保管された連続するデータを前記補助ディスクへコピーして、リビルドを実行する請求項2に記載のストレージアレイ。
  5. 前記コントローラは、更に、
    (d)前記(a)のコピーをする前に、前記冗長性管理テーブルを参照して前記バッファに保管されたデータXがコピー済みか確認し、
    (e)前記(d)で現在データXがコピー済みの場合、(a)のコピーを回避して前記書込み又は読込み要求の完了をホストに返す、ことを含む請求項2に記載のストレージアレイ。
  6. 前記コントローラは、前記ホストから複数の読み書き要求のデータに対して一定回数毎に前記(a)の補助ディスクのコピーを回避して、ホストへの前記要求の完了応答の遅延を小さくする請求項1に記載のストレージアレイ。
  7. ホストからの書込み又は要求(読み書き要求)のデータ(データX)を一時保管するバッファと、
    ミラー構成を有する冗長化された第1のディスクと第2のディスクと、
    第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
    前記書込み又は読込み要求に応じて、前記バッファと前記2つの冗長化ディスクとの間のデータXの読み書きを制御するコントローラとを含む、ミラー機構を有するディスクアレイのリビルドする方法であって、
    前記ディスクアレイに更に、前記補助ディスクにコピーされた第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルを含み、
    (a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーするステップと、
    (b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログするステップと、
    (c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返すステップと、を含むリビルド方法。
  8. ホストからの書込み又は読込み要求(読み書き要求)のデータ(データX)を一時保管するバッファと、
    ミラー構成を有する冗長化された第1のディスクと第2のディスクと、
    第2のディスクに障害ある場合にリビルドするために使用される補助ディスクと、
    前記書込み又は読込み要求に応じて、前記バッファと前記2つの冗長化ディスクとの間のデータXの読み書きを制御するコントローラとを含む、ミラー機構を有するディスクアレイのリビルドするプログラムであって、
    前記ディスクアレイに更に、前記補助ディスクにコピーされた第1のディスクに記憶されているデータのディスク位置をログする冗長管理テーブルを含み、
    (a)第2のディスクに障害がある場合に、前記データXの読み書きと並行して、リビルドのために前記バッファに保管されたデータXを補助ディスクへコピーするステップと、
    (b)前記(a)においてコピーされたデータXのディスク位置がコピー済みであることを前記冗長性管理テーブルにログするステップと、
    (c)前記(a)のコピーの完了により、前記読み書き要求の完了をホストに返すステップと、をコントローラに実行させるプログラム。
JP2012247921A 2012-11-09 2012-11-09 ミラー構成を有するディスクアレイ及びそのリビルド方法 Pending JP2014096072A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012247921A JP2014096072A (ja) 2012-11-09 2012-11-09 ミラー構成を有するディスクアレイ及びそのリビルド方法
US14/062,037 US9286174B2 (en) 2012-11-09 2013-10-24 Disk array having mirror configuration and rebuilding method therefor
US15/046,931 US9940201B2 (en) 2012-11-09 2016-02-18 Disk array having mirror configuration and rebuilding method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012247921A JP2014096072A (ja) 2012-11-09 2012-11-09 ミラー構成を有するディスクアレイ及びそのリビルド方法

Publications (1)

Publication Number Publication Date
JP2014096072A true JP2014096072A (ja) 2014-05-22

Family

ID=50682922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012247921A Pending JP2014096072A (ja) 2012-11-09 2012-11-09 ミラー構成を有するディスクアレイ及びそのリビルド方法

Country Status (2)

Country Link
US (2) US9286174B2 (ja)
JP (1) JP2014096072A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910747B2 (en) 2014-09-12 2018-03-06 International Business Machines Corporation Parallel mirrored copying with write consistency
US9645897B2 (en) 2015-03-11 2017-05-09 International Business Machines Corporation Using duplicated data to enhance data security in RAID environments
US10013171B2 (en) * 2015-06-29 2018-07-03 International Business Machines Corporation Reducing stress on RAIDS under rebuild
US10506042B2 (en) * 2015-09-22 2019-12-10 Toshiba Memory Corporation Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
CN108733518B (zh) * 2017-04-17 2021-07-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN110058965B (zh) * 2018-01-18 2023-07-28 伊姆西Ip控股有限责任公司 存储系统中的数据重建方法及设备
US10768856B1 (en) * 2018-03-12 2020-09-08 Amazon Technologies, Inc. Memory access for multiple circuit components
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11144488B2 (en) * 2019-02-04 2021-10-12 American Megatrends International, Llc Techniques of sending alerts from storage services running on server san target
CN112445413A (zh) * 2019-08-29 2021-03-05 华为技术有限公司 一种数据存储的方法、装置及相关设备
JP2021111210A (ja) * 2020-01-14 2021-08-02 キヤノン株式会社 情報処理装置、およびその制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139931B2 (en) * 2002-08-19 2006-11-21 Aristos Logic Corporation Method of controlling the system performance and reliability impact of hard disk drive rebuild
WO2004027650A1 (en) * 2002-09-18 2004-04-01 Netezza Corporation Disk mirror architecture for database appliance
JP2005107675A (ja) * 2003-09-29 2005-04-21 Toshiba Corp ディスクアレイコントローラ及びディスクドライブの複製方法
US20060161808A1 (en) * 2005-01-18 2006-07-20 Burkey Todd R Method, apparatus and program storage device for providing intelligent copying for faster virtual disk mirroring
JP4817783B2 (ja) 2005-09-30 2011-11-16 富士通株式会社 Raidシステム及びそのリビルド/コピーバック処理方法
JP4472617B2 (ja) * 2005-10-28 2010-06-02 富士通株式会社 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
US8751761B2 (en) * 2010-02-17 2014-06-10 Xyratex Technology Limited Snapback-free logical drive duplication
JP5626514B2 (ja) 2010-07-05 2014-11-19 日本電気株式会社 ストレージ装置及びストレージ装置のリビルド処理方法

Also Published As

Publication number Publication date
US20140136887A1 (en) 2014-05-15
US20160162360A1 (en) 2016-06-09
US9286174B2 (en) 2016-03-15
US9940201B2 (en) 2018-04-10

Similar Documents

Publication Publication Date Title
JP2014096072A (ja) ミラー構成を有するディスクアレイ及びそのリビルド方法
US7975168B2 (en) Storage system executing parallel correction write
US7809979B2 (en) Storage control apparatus and method
US8930746B1 (en) System and method for LUN adjustment
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US7984325B2 (en) Storage control device, data recovery device, and storage system
JP5404804B2 (ja) ストレージサブシステム
US20070233937A1 (en) Reliability of write operations to a non-volatile memory
JP2007156597A (ja) ストレージ装置
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
US9696922B2 (en) Storage system
JP2005293363A (ja) ディスクアレイコントローラおよび情報処理装置
US20200285551A1 (en) Storage system, data management method, and data management program
US9378092B2 (en) Storage control apparatus and storage control method
WO2018051505A1 (ja) ストレージシステム
US20170371782A1 (en) Virtual storage
US20150378622A1 (en) Management of data operations
WO2014010077A1 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
JP2015052853A (ja) ストレージ制御装置、制御方法及びプログラム
US20160070491A1 (en) Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output
JP5505329B2 (ja) ディスクアレイ装置及びその制御方法
JP5691227B2 (ja) ストレージ装置及びその制御方法
JP5729043B2 (ja) ストレージ装置および制御装置
WO2016006108A1 (ja) ストレージおよびその制御方法
JP2014041523A (ja) データ管理装置、及び、データ管理方法