JP4472617B2 - Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 - Google Patents

Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 Download PDF

Info

Publication number
JP4472617B2
JP4472617B2 JP2005314695A JP2005314695A JP4472617B2 JP 4472617 B2 JP4472617 B2 JP 4472617B2 JP 2005314695 A JP2005314695 A JP 2005314695A JP 2005314695 A JP2005314695 A JP 2005314695A JP 4472617 B2 JP4472617 B2 JP 4472617B2
Authority
JP
Japan
Prior art keywords
request
rebuild
processing
raid
copyback
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
JP2005314695A
Other languages
English (en)
Other versions
JP2007122477A (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 JP2005314695A priority Critical patent/JP4472617B2/ja
Priority to KR1020060023801A priority patent/KR100793224B1/ko
Priority to CN2006100570621A priority patent/CN1955940B/zh
Priority to US11/377,210 priority patent/US7562249B2/en
Publication of JP2007122477A publication Critical patent/JP2007122477A/ja
Application granted granted Critical
Publication of JP4472617B2 publication Critical patent/JP4472617B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/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
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数のディスク装置に、データを冗長性を持って、格納するRAIDシステムにおいて、一部のディスク装置の障害時に、他のディスク装置からのデータで冗長構成を再構築するリビルド及びコピーバックするRAIDシステム、RAIDコントローラ及びそのリビルド/コピーバック処理方法に関し、特に、リビルド及びコピーバックの処理時間を短縮するためのRAIDシステム、RAIDコントローラ及びそのリビルド/コピーバック処理方法に関する。
近年、様々なデータが電子化され、コンピュータ上で扱われるのに従い、データの処理を実行するホストコンピュータとは独立して、大量のデータを効率よく、高い信頼性で格納することのできるデータストレージ装置(外部記憶装置)の重要性が増加している。
このデータストレージ装置として、大量のディスクデバイス(例えば、磁気ディスク装置や光ディスク装置)と、これら大量のディスクデバイスを制御するディスクコントローラとから構成されるディスクアレイ装置が利用されている。このディスクアレイ装置は、RAID(Redundant Array of Inexpensive Disk)構成を採用することにより、データの冗長化を実現し、信頼性を向上している。
このようなディスクアレイ装置において、RAIDグループを構成するディスクデバイスが、故障して冗長性を失った場合に、冗長性回復が必要となる。図14は、かかる冗長性回復のためのRAID5のリビルド機能の説明図である。活性保守を行なうため、RAID5を構成する4台のディスクデバイス#0,#1,#2,#3に、予備ディスクデバイスHS(Hot Spare Disk)を設ける。
このディスクデバイス群160は、一対のディスクコントローラ110,120に接続されている。各ディスクコントローラ110,120は、ディスクデバイス群160とのインタフェース制御するディスクアダプタ140と、制御ユニット120と、ホスト(図示せず)とのインタフェース制御するチャネルアダプタ100とを有する。
ここで、RAID5を構成する4台のディスクデバイスの内、ディスクデバイス#0が故障した場合には、この故障ディスクデバイス#0以外のディスクデバイス#1、#2、#3のデータを、ディスクアダプタ140を介し、制御ユニット120のキャッシュメモリ又はデータバッファ(図示せず)に読み出し、これらのXOR演算を行い、冗長データを作成する。
そして、ディスクアダプタ140を介し、作成した冗長データを、予備ディスクデバイスHSに書き込み、冗長性を回復する。これをリビルド(Rebuild)機能という。尚、RAID1の場合には、読み出したデータを、そのまま、予備ディスクデバイスHSに書き込む。
一方、図15は、コピーバック(Copyback)機能の説明図である。図14のRebuildが完了した状態から、故障したディスクデバイス#0が、新しいディスクデバイスNewと交換された場合に、コピーバック処理を行なう。即ち、予備ディスクデバイスHSに書かれた冗長データを,本来のディスクデバイスNewに書き戻す処理である。
このようなRebuild/Copyback処理を、ホストからのI/O要求を処理しながら、実行するため、これらの要求数のバランスをとる方法が提案されている(例えば、特許文献1)。
図16に示すように、このRebuild/Copyback処理では、仮に、通常I/O(ホストI/O,内部I/O)が、無い状態においても、元のディスクドライブ#1からのリード処理が完了した後、ライト先のディスクドライブ#2へのライト処理を実行していた。
即ち、Rebuild/Copyback処理を管理するOVSMモジュールは、RAIDアクセスを実行するRAID制御モジュールに、例えば、1回分のコピーバックを依頼すると、RAID制御モジュールは、ディスク#1のリード完了後、続いて、ディスク#2へのライトを実行する。そして、RAID制御モジュールは、ディスク#2からのライト完了を受け、OVSMモジュールに、依頼されたコピーバック完了を報告し、OVSMモジュールは、次のコピーバック依頼処理を実行していた。
特開2004−295860号公報(図14)
このように、通常I/O処理を受け付けながら、Rebuild/Copyback処理するには、ディスクデバイス1台分の処理を一度に行うことは出来ない。このため、複数回に分けて、正常なディスクデバイスからデータをリードして、書き込み先ディスクデバイスへライトする動作を、ディスクデバイスのデータ量分の回数を実行していた。
例えば、Rebuildでは、正常ディスクデバイスからデータをリードして、RAID1(ミラーリング)以外は冗長データを作成して、予備ディスクデバイスHSや新規ディスクデバイスNewへライトするという動作を行い、Copybackでは、予備ディスクHSからデータをリードして、新規ディスクデバイスNewへライトするという動作を行う。
従来は、これらの動作について、リードとライトは、一体と考え、リードとライトを一単位として、1回分のリード及びライトの処理が終了しないと、次のリード及びライト処理に進行できなかった。
このため、通常I/Oが無い場合に、常識的に考えられるディスクデバイスの性能と比較して、Rebuild/Copybackの完了までの時間が長くなる。近年、データベース容量の増大や、ディスクデバイスの格納容量の増大により、Rebuild/Copybackの完了までの時間も長期化している。
又、場合によっては、Rebuild/copybackの操作を、システムメーカーのCE(Customer Engineer)に依頼する場合があり、CEが、これらの処理が完了するまで、機器の設置場所に居なければならず、CEの処理待ち時間が増大しており、これら処理の時間短縮が要請される。
従って、本発明の目的は、通常I/O要求を処理しつつ、リビルド/コピーバックを処理する際に、リビルド/コピーバック処理の性能を向上するためのRAIDシステム、RAIDコントローラ及びそのリビルド/コピーバック処理方法を提供することにある。
又、本発明の他の目的は、通常I/O要求と、リビルド/コピーバックをバランス処理する際に、リビルド/コピーバックの完了時間を短縮するためのRAIDシステム、RAIDコントローラ及びそのリビルド/コピーバック処理方法を提供することにある。
更に、本発明の他の目的は、通常I/O要求の有無を判定し、リビルド/コピーバック処理を高速に実行するためのRAIDシステム、RAIDコントローラ及びそのリビルド/コピーバック処理方法を提供することにある。
この目的の達成のため、本発明は、ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムにおいて、RAIDを構成する複数の前記ディスク装置と、前記複数のディスク装置と、パスで接続され、前記ホストからのI/O要求を含む通常I/O要求を実行しながら、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するととともに、前記通常I/O要求が所定時間以内に来ないかを判定し、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するRAID制御モジュールと、前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼との両方を、1回の処理依頼として、前記RAID制御モジュールに要求するリビルド又はコピーバックモジュールとを有し、前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する。
又、本発明は、ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDコントローラにおいて、前記ホストとのインタフェース制御を行う第1のインタフェース回路と、RAIDを構成する複数の前記ディスク装置とのインタフェース制御を行う第2のインタフェース回路と、前記ホストからのI/O要求を含む通常I/O要求を実行しながら、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するととともに、前記通常I/O要求が所定時間以内に来ないかを判定し、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するRAID制御モジュールと、前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼の両方を、1回の処理依頼として、前記RAID制御モジュールに要求するリビルド又はコピーバックモジュールとを有し、前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する。
又、本発明は、ホストから依頼されたI/O要求を含む通常I/O要求に応じて、接続されたディスク装置をアクセスし、通常I/O要求を実行しながら、複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するRAIDシステムのリビルド/コピーバック処理方法であって、前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するコントローラのRAID制御モジュールが、前記通常I/O要求が所定時間以内に到来したかを判定するステップと、前記RAID制御モジュールが、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するステップと、前記コントローラのリビルド又はコピーバックモジュールが、前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼の両方を、1回の処理依頼として、前記RAID制御モジュールに要求するステップとを有し、前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する。
更に、本発明では、好ましくは、前記コントローラは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定する。
更に、本発明では、好ましくは、前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するとともに、前記リビルド/コピーバックの並列のライト及びリード完了に応じて、次のリビルド/コピーバックのライト及びリード要求を発行する。
更に、本発明では、好ましくは、前記コントローラは、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを有し、前記進捗テーブルに従い、リビルド又はコピーバック処理の1回のリード要求を作成し、且つ前記リビルド/コピーバックの並列のライト及びリード完了に応じて、前記進捗テーブルを更新する。
更に、本発明では、好ましくは、前記コントローラは、前記リビルド/コピーバックの要求を、リードまでの処理と、ライトからの処理に分割して、実行するRAID制御モジュールと、前記リビルド/コピーバック処理のリード要求とライト要求を個別に、前記RAID制御モジュールに発行するリビルド/コピーバックモジュールとを有する。
更に、本発明では、好ましくは、前記リビルド/コピーバックモジュールは、通常I/O要求が所定時間到来しない場合と、前記通常I/O要求が所定時間内に到来した場合との間の遷移を判定し、前記判定結果に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行する。
更に、本発明では、好ましくは、前記コントローラは、前記通常I/O要求が所定時間内に到来した場合から前記通常I/O要求が所定時間到来しない場合に遷移したことに応じて、前記リビルド又はコピーバック処理の1回のリード要求を発行し、前記リード要求の処理完了に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行する。
更に、本発明では、好ましくは、前記コントローラは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行する。
本発明では、リビルド/コピーバックでは、一のディスク装置からリードし、別のディスク装置へライトするため、通常I/Oを実行しながら、実行するには、通常I/Oの有無を判定し、通常I/Oが無いことに応じて、これらの別々のディスクドライブへの1回のリードとライトを、それぞれ同時に行う。これにより、リビルド/コピーバック時間の短縮を図る。又、通常I/Oが有る場合には、通常I/Oと、1回のリビルド/コピーバックのリードかライトの一方を実行するため、通常I/Oの実行を阻害しない程度に、リビルド/コピーバックを実行でき、よりリビルド/コピーバック時間の短縮を可能とする。
以下、本発明の実施の形態を、ディスクアレイ装置(RAIDシステム)、スレッド構成、リビルド/コピーバック処理、リビルド/コピーバックの並列処理、他の実施の形態の順で説明する。
**ディスクアレイ装置**
図1は、本発明の一実施の形態のディスクアレイ装置の構成図、図2は、図1のコントロールモジュールの構成図である。
図1は、2台のコントロールモジュールを持つ小規模なディスクアレイ装置を例に示すが、4台の中規模のディスクアレイ装置、8台の大規模のディスクアレイ装置も同様である。
図1に示すように、ディスクアレイ装置は、データを保持する複数のディスクデバイスを搭載する複数のディスクエンクロージャ2−0〜2−3と、図示しないホストコンピュータ(データ処理装置)と、複数のディスクエンクロージャ2−0〜2−3との間に、配置された複数(ここでは2つ)の制御モジュール(RAIDコントローラ)4−0〜4−1とを有する。
制御モジュール4−0〜4−1のそれぞれは、コントローラ40と、チャネルアダプタ(第1インタフェース部;図中CAと表記)41と、ディスクアダプタ(第2インタフェース部;図中DAと表記)42a,42bと、DMA(Direct Memory Access)エンジン(通信部;図中DMAと表記)43とを有する。
図1及び図2により、制御モジュール4−0〜4−1を説明する。コントローラ40は、ホストコンピュータからの処理要求(リード要求もしくはライト要求)に基づいて、リード/ライト処理を行なうものであり、メモリ40bと制御部40aとを備える。
メモリ40bは、ディスクエンクロージャ2−0〜2−3の複数のディスクに保持されたデータの一部を保持する、所謂、複数のディスクに対するキャッシュの役割を果たすキャッシュ領域と、その他のワーク領域とを有する。
制御部40aは、メモリ40b,チャネルアダプタ41、デバイスアダプタ42、DMA43の制御を行う。このため、1つ又は複数(図では、2つ)のCPU400,410と、メモリコントローラ420とを有する。メモリコントローラ420は、メモリのリード/ライトを制御し、且つパスの切り替えを行う。
メモリコントローラ420は、メモリバス434を介しメモリ40bと接続し、CPUバス430,432を介しCPU400,410と接続し、更に、メモリコントローラ420は、4レーンの高速シリアルバス(例えば、PCI−Express)440,442を介しディスクアダプタ42a,42bに接続する。
同様に、メモリコントローラ420は、4レーンの高速シリアルバス(例えば、PCI−Express)443,444,445,446を介しチャネルアダプタ41(ここでは、4つのチャネルアダプタ41a,41b、41c,41d)に接続し、4レーンの高速シリアルバス(例えば、PCI−Express)447,448を介しDMA43(ここでは、2つのDMA43−a,43−b)に接続する。
このPCI−Express等の高速シリアルバスは、パケットで通信し、且つシリアルバスを複数レーン設けることにより、信号線本線を減らしても、遅延の少ない、速い応答速度で、所謂、低レイテンシで通信することができる。
チャネルアダプタ41a〜41dは、ホストコンピュータに対するインタフェースであり、チャネルアダプタ41a〜41dは、それぞれ異なるホストコンピュータと接続される。また、チャネルアダプタ41a〜41dは、それぞれ対応するホストコンピュータのインタフェース部に、バス、例えば、ファイバチャネル(Fiber Channel)やEthernet(登録商標)によって接続されることが好ましく、この場合、バスとしては、光ファイバや同軸ケーブルが用いられる。
さらに、これらチャネルアダプタ41a〜41dそれぞれは、各制御モジュール4−0〜4−1の一部として構成されている。このチャネルアダプタ41a〜41dが、対応するホストコンピュータと制御モジュール4−0〜4−1とのインタフェース部として、複数のプロトコルをサポートする。
ここでは、対応するホストコンピュータによって実装すべきプロトコルが同一ではないため、各チャネルアダプタ41a〜41dを必要に応じて容易に交換できるように、制御モジュール4−0〜4−1の主要ユニットであるコントローラ40とは、別のプリント基板に実装されている。
例えば、チャネルアダプタ41a〜41dがサポートすべきホストコンピュータとの間のプロトコルとしては、上述のように、ファイバチャネルや、Ethernet(登録商標)に対応するiSCSI(Internet Small Computer System Interface)等がある。
更に、各チャネルアダプタ41a〜41dは、前述のように、PCI−Expressバスのように,LSI(Large Scale Integration)やプリント基板の間を接続するために設計されたバスによって、コントローラ40と直接結合されている。これにより、各チャネルアダプタ41a〜41dとコントローラ40と間に要求される高いスループットを実現することができる。
ディスクアダプタ42a,42bは、ディスクエンクロージャ2−0〜2−3の各ディスクドライブに対するインタフェースであり、ディスクエンクロージャ2−0〜2−3に接続され,ここでは、4つのFC(Fiber Channel)ポートを有する。
又、各ディスクアダプタ42a、42bは、前述のように、PCI−Expressバスのように,LSI(Large Scale Integration)やプリント基板の間を接続するために設計されたバスによって、コントローラ40と直接結合されている。これにより、各ディスクアダプタ42a、42bとコントローラ40と間に要求される高いスループットを実現することができる。
図1に示すように、ディスクエンクロージャ2−0〜2−3の各々は、各々2つのポートを有する複数台(例えば、15台)のディスクドライブ200を搭載する。そして、ディスクエンクロージャ2−0〜2−3内では、2つのポートからの一対のFCケーブルにより、各ディスクドライブ200の各ポートが、2つのポートに接続される。
この2つのポートは、各制御モジュール4−0〜4−1のディスクアダプタ42a,42bそれぞれを、すべてのディスクエンクロージャ2−0〜2−3に接続する。即ち、各制御モジュール4−0〜4−1のディスクアダプタ42aは、ディスクエンクロージャ2−0〜2−3に接続される。又、同様に、各制御モジュール4−0〜4−1のディスクアダプタ42bは、ディスクエンクロージャ2−0〜2−3に接続される。
このような構成により、各制御モジュール4−0〜4−1が、いずれのディスクアダプタ42a,42bを通じて、且ついずれのパスを通じても、すべてのディスクエンクロージャ(ディスクドライブ)2−0〜2−3にアクセスできる。
なお、各ディスクアダプタ42a,42bと対応するディスクエンクロージャ2−0〜2−3との間は、例えば、ファイバチャネルによって接続され、この場合には、モジュールが異なるため、光ケーブルで接続される。
図1に示すように、DMAエンジン43は、各制御モジュール4−0〜4−1と相互に通信を行うものであり、他の制御モジュール間との通信とデータ転送処理を担当する。各制御モジュール4−0〜4−1のDMAエンジン43のそれぞれは、制御モジュール4−0〜4−1の一部として構成されており、制御モジュール4−0〜4−1の主要ユニットであるコントローラ40の基板上に実装される。そして、前述の高速シリアルバスによって、コントローラ40と直接結合されるとともに、他の制御モジュール4−0〜4−1のDMAエンジン43と互いに通信する。
このような構成により、各制御モジュール4−0〜4−1のDMAエンジン43のそれぞれは、自身に接続されたコントローラ40と他の制御モジュール4−0〜4−1のコントローラ40との間で、ホストコンピュータからのアクセス要求等に応じて生じる通信やデータ転送処理(例えば、ミラーリング処理)を実行する。
また、図2に示すように、各制御モジュール4−0〜4−1のDMAエンジン43が複数(ここでは2つ)のDMAエンジン43−a,43−bで構成され、これら2つのDMAエンジン43−a,43−bの各々は、図2に示したように、例えば、PCI−Expressバスによって、コントローラ40に接続されている。即ち、各制御モジュール4−0〜4−1間(つまり、各制御モジュール4−0〜4−1のコントローラ40間)の通信やデータ転送(DMA)処理では、データ転送量が多く、通信制御にかかる時間を短くすることが望ましく、高いスループットと同時に低いレイテンシ(速い応答速度)が要求される。このため、図1、図2に示すように、各制御モジュール4−0〜4−1のDMAエンジン43は、高いスループットと低いレイテンシとの両方の要求を満たすべく設計された、高速シリアル伝送を利用したバス(PCI-ExpressやRapid-IO)によって、接続される。
これらPCI-ExpressやRapid-IOは、2.5Gbpsの高速シリアル伝送を利用したものであり、これらのバスインターフェースには、LVDS(Low Voltage Differential Signaling)という小振幅差動インタフェースが採用される。
**スレッド構成**
次に、CPU400(410)が実行するソフトウェアのプログラムモジュール(スレッドという)を説明する。図3は、CPU400(410)が実行するソフトウェアのスレッドの構成図、図4は、その部分詳細図である。図3に示すように、ソフトウェアモジュールは、カーネル/スケジューラ600と、IO制御モジュール602と、CM間通信ドライバ604、CPU間通信ドライバ606と、システム制御モジュール608と、ネットワークドライバ610とを有する。
カーネル/スケジューラ600は、MS−DOS(登録商標)等のオペレーテイングシステムである。IO制御モジュール602は、CM−CAドライバ620と、ベーシックモジュール640と、CM−DAドライバ630と有する。CM−CAドライバ620は、CA(チャネルアダプタ)41をドライブするドライバである。
ベーシックモジュール640は、資源管理を行うリソーススレッド(リソース制御モジュール)646、コピー処理を行うコピースレッド(コピー制御モジュール)646、メモリ40bのキャッシュメモリの制御を行うキャッシュスレッド(キャッシュメモリ制御モジュール)648を有するフロントエンドと、RAID構成制御を行うRAIDスレッド(RAID制御モジュール)632、OVSMスレッド(OVSM制御モジュール)634とを有するバックエンドとからなる。
OVSMスレッド634は、後述するリビルド/コピーバック処理を行う。メインテナンスエージェント612は、OVSMスレッド634への各種の通知を行う。CM−DAドライバ630は、DA(ディスクアダプタ)42をドライブするドライバである。CM間通信ドライバ604は、他のCMと、CPU間通信ドライバ606は、他のCPU410と通信を行う。
システム制御モジュール608は、構成管理モジュール652と有する。構成管理モジュール652は、サービスコントローラ46からの、ネットワークドライバ610を介する指定に応じて、構成定義のためのRLU(Raid Logical Unit)テーブルを含む構成定義テーブルを、メモリ40bに作成する。尚、サービスコントローラ46は、図1では、図示されておらず、各CM(制御モジュール)に共通である。
又、DA42に接続されたディスクエンクロージャ2−0〜2−3内に設けられたディスクドライブ200は、システムディスク200−1とユーザディスク200−2に分けられ、システムディスク200−1に、構成定義テーブルも格納される。
リソースモジュール642、RAIDモジュール632が、構成定義テーブルを参照して、ホストからのLUN(論理ユニット番号)を、物理ディスクのPLBA(物理ブロックアドレス)に変換し、物理ディスク200をアクセスする。
図4に示すように、OVSMスレッド634は、Rebuild/Copybackの進捗の管理を行うRebuild/Copybackモジュール634−1を有する。Rebuild/Copybackモジュール634−1は、Rebuild/Copybackの一回一回の処理を、後述するRAID制御モジュール632に依頼し、その応答を得て、Rebuild/Copybackの進捗を記録する。
これに対し、RAID制御モジュール632は、データを一時待避するバッファ(以降では、Data Bufferと記述する)を獲得して、ディスクデバイスに対して、リードやライトを指示する。特に、Rebuild/Copybackでは、ディスクデバイスからリードし、Data Bufferへ格納するリード処理632−3と、Data Bufferの内容を、ディスクデバイスへライトする処理632−4とを担当する。
このRAID制御モジュール632は、最後の通常I/Oが完了した時刻を記録する通常I/O完了時刻記録部632−1と、通常I/O完了時刻記録部632−1の時刻と、現在の時刻とを比較して、例えば、5secの差があるかどうかを判定する通常I/O有無判定モジュール632−2とを有する。
又、OVSMモジュール634は、RAID制御モジュール632へRebuild/Copyback実処理を依頼するRebuild/Copybackモジュール634−2,634−3と、実処理依頼時に、通常I/O有無判定モジュール632−2の判定結果を呼び出し、その結果により、1回の実処理の処理サイズを変更する処理サイズ変更モジュール634−4と、後述するRebuild/Copybackの並列処理を実行する状態遷移判定処理モジュール634−5とを有する。
このRebuild/Copybackモジュール634−1は、メモリ40bに設けられた開始LBAを格納する進捗テーブル410と、処理サイズのデフォルト値を格納するデフォルト格納部414を参照し、1回の実処理サイズを決定し、実処理を依頼する。
このような構成により、OVSMモジュール634は、Rebuild/Copybackの実処理を、RAID制御モジュール632に依頼する度に、OVSMモジュール634は、RAID制御モジュール632に対して、通常I/Oの有無(通常I/O無しになってから5sec以上が,経過しているかどうか)について確認を行い、その結果を受けて、OVSMモジュール634は、状態遷移を判定し、RAID制御モジュール632へ渡すRebuild/Copyback実処理のリード処理とライト処理の多重要求とパラメータ(1回の処理サイズ)等を変更する。
ここで、通常I/Oの有無の判定として、5sec以上としたのは、I/Oの有るタイミングと無いタイミングが交互に繰り返されているような場合に、誤認を防ぐためである。つまり、まばらに、通常I/Oが来ている状態だと、偶然に、Rebuild/Copybackのタイミングで、通常I/Oが無いように見えても、Rebuild/Copybackを開始してすぐに、通常I/Oが発生する可能性がある。このようなケースは、通常I/O有りの状態に分類し、通常I/Oを待たせないという意味である。
**リビルド/コピーバック処理**
図5は、本発明の一実施の形態のリビルド/コピーバック処理フロー図、図6は、そのタイムチャート図、図7は、その動作説明図である。
以下、図6及び図7を参照して、図5のリビルド/コピーバック処理を説明する。
(S10)先ず、OVSMモジュール634は、リビルド/コピーバックの開始に当り、RAID制御モジュール632から完了応答があることを確認する。
(S12)次に、OVSMモジュール634のリビルド/コピーバックモジュール634−1は、メモリ40bのリビルド/コピーバック進捗テーブル410の開始RLBAを参照する。図7に示すように、リビルド/コピーバック処理の対象が、RAID構成でのLBA(Logical Block Address)000〜nnnとすると、開始RLBAには、次のリビルド/コピーバック処理の対象データの開始RLBAが、記録されている。
(S14)リビルド/コピーバックモジュール634−1は、進捗テーブル410の開始RLBAから、対象とする全RLU(Raid Logical Unit)の処理が完了したかを判定する。リビルド/コピーバックモジュール634−1は、全RLUの処理を完了したと判定すると、終了する。
(S16)逆に、リビルド/コピーバックモジュール634−1は、全RLUの処理を完了していないと判定すると、RAID制御モジュール632に、通常I/Oの有無を問い合わせる。図4で説明したように、RAID制御モジュール632は、通常I/O無しになってから5sec以上,経過しているかどうかを判定している。
(S18)リビルド/コピーバックモジュール634−1は、RAID制御モジュール632からの応答から、通常I/Oの有無を確認し、通常I/Oが有る場合には、図6のコピーバック1に示すように、1回の処理サイズを、メモリ40bのデフォルト値に設定し、且つ後述するように、通常処理する。一方、通常I/Oが無い場合には、図6のコピーバック2に示すように、1回の処理サイズを、メモリ40bのデフォルト値の2倍に設定し、後述するように、並列処理する。
(S20)そして、リビルド/コピーバックモジュール634−1は、RAID制御モジュール632に、開始RLBAと設定した処理サイズを有する実処理を、リードとライトとを個別に要求する。更に、リビルド/コピーバックモジュール634−1は、開始RLBAに処理サイズを加えて、次の開始RLBAを計算し、進捗テーブル410を計算した開始RLBAに更新する。そして、ステップS10に戻る。
このように、図7に示すように、通常I/O有りの状態(以降、動的状態と記述する)と、無しの状態(以降、静的状態と記述する)とで、静的の場合では、一回の処理サイズを大きくし、且つ後述するように、リード/ライトを並列処理する。一回のサイズが大きければ、Rebuild/Copyback処理は、早くなるが、代わりに通常I/Oへの影響が大きくなる。
このため、動的の場合では、通常I/Oの処理の阻害にならない処理サイズを指定し、静的では、それよりも大きい処理サイズ(例えば、物理ディスクドライブの1トラック以上のサイズであることが、ディスク性能的に望ましい)を指定する。このサイズの指定方法は、OVSM634からRAID制御632へのRebuild/Copyback実処理要求時のパラメータを変更するだけで良い。
尚、図3のホストからのアクセス処理を説明すると、CA41が、ホストからのリード要求を受けると、CA41は、CM−CAドライバ620を介し、リソースモジュール642に通知し、リソースモジュール642は、このリード要求を受け付ける。
リソースモジュール642は、キャッシュモジュール648に、キャッシュヒットか否かの判定を依頼する。キャッシュモジュール648は、対象とするホストLUNのLBA(OLBA)のデータが、メモリ40bのキャッシュ領域に存在するかを調べ、存在すれば(ヒット)、メモリ40bのOLBA(ホスト論理ブロックアドレス)のデータを読み出し、CM−CAドライバ620を介しCA41からホストにデータを転送する。
一方、キャッシュモジュール648は、対象とするホストLUNのLBA(OLBA)のデータが、メモリ40bのキャッシュ領域に存在しない(ミスヒット)と判定すると、バックエンドのRAID制御モジュール632に、物理ディスクからのデータリード要求を行う。RAIDモジュール632は、周知のように、処理要求されたホストLUNのLBA(OLBA)を、RAIDグループのLBA(RLBA)に変換する。
次に、RAID制御モジュール632は、RAIDグループのLBA(RLBA)を、仮想ディスクのLBA(DLBA)に変換する。次に、RAIDモジュール632は、処理要求された仮想ディスクのLBA(DLBA)を、物理ディスクのLBA(PLBA)に変換する。この処理は、RAID構成(例えば、RAID1,RAID5)により異なる。
次に、RAIDモジュール632は、処理要求された物理ディスクのLBA(PLBA)から、ディスクエンクロージャRAID、スロットを求め、物理ディスク200のLBA(PLBA)にリード要求を行う。即ち、CM−DAドライバ630を介し対応するDA42に当該物理ディスクのリード要求を発し、BRT5−0を介し当該物理ディスクをアクセスする。
物理ディスクからデータが読み出され、キャッシュモジュール648が、DA42を介しメモリ40bのキャッシュ領域に格納し、リードが完了すると、リソースモジュール642は、CM−CAドライバ620を介しCA41からホストにこのリードデータを転送して、終了する。
尚、ホストからのライト処理は、一旦、ライトデータをメモリ40bのキャッシュ領域に格納した後、内部のライトバックスケジュールに従い、該当物理ディスクにライトバックする。このライトバック時も同様に、ミスヒット以降の処理は、構成定義テーブルを使用したアドレス変換処理を行う。
又、RAID制御モジュール632は、受け付けたホストI/O、ライトバック等の内部I/O等の通常I/Oと、受け付けたリビルド/コピーバック要求とを、所定のI/O比で優先度を付け、優先順に、下位層のCM−DAモジュール630に要求する。
このようにして、図7に示すように、リビルド/コピーバックの1回の処理サイズを、RAID制御が管理する通常I/Oの有無に応じて、変更するため、通常I/Oがある場合には、通常I/Oの処理の阻害にならず、リビルド/コピーバックを実行でき、静的な状態では、それよりも大きい処理サイズを指定して、リビルド/コピーバック処理を高速に実現できる。
又、RAID制御モジュール632は、最後の通常I/Oが完了した時刻を記録し、この時刻と、現在の時刻とを比較して、例えば、5secの差があるかどうかを判定する通常I/O有無判定処理を行うため、リビルド/コピーバックモジュール634−1は、問い合わせにより、容易に、処理サイズを変更して、リビルド/コピーバック処理を進行できる。
**リビルド/コピーバックの並列処理**
次に、前述の通常I/O無しの場合(静的状態という)のリビルド/コピーバックの並列処理を説明する。図8は、本発明の一実施の形態のリビルド/コピーバックの並列処理のタイムチャート図、図9及び図10は、そのRAID制御モジュールの処理フロー図である。
図8に示すように、リビルド/コピーバックでは、一のディスクからリードし、別のディスクへライトする。そこで、これらの別々のディスクドライブへのリードとライトを、それぞれ同時に行う。これにより、リビルド/コピーバック時間の短縮を図る。この機能を、並列処理と呼ぶ。
図4及び図8に示すように、RAID制御モジュール632は、リビルド/コピーバック実処理について、「リードまで」だけの処理632−3と、「ライトから」だけの処理632−4に、分割する。OVSMモジュール634は、リードまでの処理依頼と、ライトだけの処理依頼を個別に作成する。動的な場合(I/O有りの場合)には、リードとライトとを続けて行う。
これに対して、図8に示すように、静的な場合(I/O無しの場合)には、OVSMモジュール634が、それぞれ上記「リードまで」の処理632−3と、「ライトから」の処理632−4を呼び出す。RAID制御モジュール632−3は、「リードまで」処理632−3では、データバッファの獲得と排他権が設定されている状態のまま、処理を終え、OVSMモジュール634に返答する。
コピーバック処理を例に、図8で具体的に説明する。図8に示すように、OVSMモジュール634は、最初の一回のコピーバック1だけは、最初の領域について「リードまで」を、RAID制御モジュール632に要求する。
OVSMモジュール634は、二回目以降のコピーバック2,3,4…は、RAID制御モジュール632からのリード完了に応じて、直前でリードした領域についての「ライトから」の処理要求と、次の領域の「リードまで」の処理要求を、順次RAID制御モジュール632に要求する。
同様に、RAID制御モジュール632からのライト完了及びリード完了を受け、OVSMモジュール634は、直前でリードした領域についての「ライトから」の処理要求と、次の領域の「リードまで」の処理要求を、順次RAID制御モジュール632に要求する。
OVSMモジュール634は、RAID制御モジュール632からのライト完了及びリード完了を受け、コピーバックの最後の一回だけは、「ライトから」の処理のみを依頼する。
このようにすると、2回目以降は、ディスク#1からのリード動作と、ディスク#2へのライト動作が、平列に実行され、コピーバック処理の時間短縮に有効である。又、リビルド処理も同様である。
図9及び図10は、RAID制御モジュール632の「リードまで」の処理632−3と、「ライトから」の処理632−4の処理フロー図である。尚、図9は、RAID1のリビルド、RAID1及びRAID5のコピーバックの例であり、図10は、RAID5のリビルド処理の例である。
図9に示すように、RAID制御モジュール632のリードまでの処理632−3は、排他権を設定し(S21)、次に、メモリ40bにデータバッファを獲得する(S22)。そして、ディスクのACB(Access Control Block)を獲得し(S23)、FCループのFCセグメントを獲得する(S24)。これにより、ドライバ630、ディスクアダプタ42を介し、当該ディスクドライブをリードアクセスし、リードデータを獲得したデータバッファに格納する(S25)。
そして、FCセグメントを解放し(S26)、ディスクのACBを解放する(S27)。その後、RAID制御モジュールのリード処理632−3は、OVSMモジュール634に、リード完了を報告する。
一方、RAID制御モジュール632のライトからの処理632−4は、ディスクのACB(Access Control Block)を獲得し(S30)、FCループのFCセグメントを獲得する(S31)。これにより、ドライバ630、ディスクアダプタ42を介し、当該ディスクドライブをライトアクセスし、メモリ40bのデータバッファのリードデータしたデータをディスクに書き込む(S32)。
そして、FCセグメントを解放し(S33)、ディスクのACBを解放する(S34)。その後、データバッファを解放し(S35)、排他権を解除し(S36)、OVSMモジュール634に、ライト完了を報告する。
又、図10のRAID5のリビルド処理の場合には、図14で説明したように、リード処理632−3において、XORによるデータのRegenerationが必要になるので、S25のディスクリードは、図14の複数(3つの)ディスクドライブ#1,#2,#3に行い、且つディスクのACB解放後、3つのデータから冗長データを作成するXOR処理(S28)を行い、OVSMモジュール634に、リード完了を報告する。ライト処理632−4は、図9と同様である。
また、データバッファの獲得、解放は、上記Regenerationのためのリード用のものと、Regenerationの結果であるライトすべきものとの両方を、同時に獲得し、且つ解放する。「ライトから」の処理632−4では、Regenerationのためのリードしたデータは不要となるが、保持しつづける。これにより、解放処理を省き、処理を高速化する。
これに対し、OVSMモジュール634が、図5のステップS20のリビルド/コピーバック処理の進捗を更新するのは、「ライトから」の処理が完了した時となる。
更に、具体的にリビルド/コピーバックの並列処理を説明する。この並列処理を用いた場合、動的と静的との変化時に、リビルド/コピーバックの動作が切り替わることになる。このため、OVSMモジュール634は、RAID制御モジュール632からの応答時に、次の処理をどのようにするかを決定する。
図11は、リードとライトを分離した静的状態と動的状態の状態遷移図、図12は、RAID制御モジュールへのOVSMモジュールの要求処理フロー図、図13は、OVSMモジュールのRAID制御モジュールからの応答時の処理フロー図である。
先ず、リビルド/コピーバック処理を、リードまでの処理と、ライトからの処理を分割したため、状態遷移で考えると、OVSMモジュール634が決定すべき動的状態と静的状態は、図11のように、5つ存在する。
即ち、前回動的状態で、リードからとライトまでの両方をおこなった動的通常状態A,前回動的状態で、ライトからを行なった動的「ライトから」の状態B,前回静的状態で「リードまで」を行なった静的「リードまで」の状態C、前回静的状態でリードとライトの両方を行なった静的「リードまで」、「ライトから」の状態D,前回静的状態でライトまでを行なった静的「ライトから」の状態Eである。
先ず、デフォルト状態(図3のシステム制御モジュール608のRAID Recoveryモジュール(図示せず)からOVSMモジュールが起動された状態)は、動的状態Aである。以下、ACBは,処理を制御するものであり、並列した処理を行うためには平列数分だけACBを用意するものとする。又、OVSMモジュールが、Rebuild/Copybackを行おうとしている時点で、既にACBを一つ獲得し、動作している状態にある。
(1)前回動的状態(Rebuild/Copybackは通常)Aから今回動的状態Aへ遷移するケースでは、前回と同様に、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へ通常の要求(リードに続きライトを要求)を行う。ただし、リビルド/コピーバックの次の処理範囲が無い場合には、該当LU(Logical Unit)のRebuild/Copyback完了となる。
(2)前回動的状態(Rebuild/Copybackの「ライトから」だけ)Bから今回動的状態Aへ遷移するケースでは、もし、ACBを獲得している状態であれば、これを解放する。そして、(1)と同様に、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へ通常の要求を行う。同様に、次の処理範囲が無い場合には、上記のACB解放後に,該当LUのリビルド/コピーバック完了となる。
(3)前回動的状態(Rebuild/Copybackは通常)Aから今回静的状態Cへ遷移するケースでは、次の処理範囲(静的時サイズ)を設定し、RAID制御モジュール632へ「リードまで」の要求を行う。図8の初回の処理に当たる。ただし、次の処理範囲が無い場合には、該当LUのリビルド/コピーバック完了となる。
(4)前回動的状態(Rebuild/Copybackは「ライトだけ」)Bから今回静的状態Cへ遷移するケースでは、もし、ACBを獲得している状態であれば、これを解放する。そして、次の処理範囲(静的時サイズ)を設定し、RAID制御モジュール632へ「リードまで」の要求を行う。図8の初回の処理に当たる。ただし、次の処理範囲が無い場合には、該当LUのリビルド/コピーバック完了となる。
(5)前回静的状態(Rebuild/Copybackは、「リードまで」だけ)Cから今回動的状態Bへ遷移するケースでは、同じ処理範囲について、RAID制御モジュール632へ「ライトから」の要求を行う。
(6)前回静的状態(Rebuild/Copybackは、「ライトから」と「リードまで」の両方)Dから今回動的状態Bのケースでは、ライト及びリードの両ACBが返ってくるまで待ち、「リードまで」だったACBについては、同じ処理範囲について、RAID制御モジュール632へ「ライトから」の要求を行う。又、「ライトから」だったACBについては、保留とする。
(7)前回静的状態(Rebuild/Copybackは,「ライトから」だけ)Eから今回動的状態Bのケースでは、基本的にリビルド/コピーバックの次の処理が無い場合のみであり、ACB解放後に該当LUのリビルド/コピーバック完了となる。図8の最終処理に相当する。
(8)前回静的状態(Rebuild/Copybackは「リードまで」だけ)Cから今回静的状態Dへ遷移するケースでは、内部ACBを一つ獲得し、獲得したACBと元々あったACBとリンク張っておく。内部ACB獲得失敗時には、動的状態A,Bと同様の動作とする。そして、まず、「リードまで」だったACB(元々あったACB)については、同じ処理範囲について、RAID制御モジュール632へ「ライトから」の要求を行う。次に獲得したACBについては、次の処理範囲(静的時サイズ)を設定し,RAID制御モジュール632へ「リードまで」の要求を行う。ただし、次の処理範囲が無い場合には、ACBの獲得は行わずに、RAID制御モジュール632へ「ライトから」の要求のみを行う。図8の2回目以降の並列処理に相当する。
(9)前回静的状態(Rebuild/Copybackは、「ライトから」と「リードまで」の両方)Dから今回静的状態Dへ遷移するケースでは、リード及びライトの両ACBが返ってくるまで待ち、前回と同様に、「リードまで」だったACBについては、同じ処理範囲について、RAID制御モジュール632へ「ライトから」の要求を行う。次に、「ライトから」だったACBについては、次の処理範囲(静的時サイズ)を設定し、RAID制御モジュール632へ「リードまで」の要求を行う。ただし、次の処理範囲が無い場合には、RAID制御へ「ライトから」の要求のみを行う。
(10)前回静的状態(Rebuild/Copybackが、「ライトから」だけ)Eから今回静的状態Dのケースは、基本的に次の処理が無い場合のみである。次の処理範囲が無い場合には、ACB解放後に,該当LUのリビルド/コピーバック完了となる。
又、RAID制御モジュール632は、図9及び図10に示したように、各種エラーリカバリのために、「リードまで」と「ライトから」とは別に、「リードまで」で獲得した資源(排他制御/データバッファ)を解放するだけの処理として、「資源解放のみ」を用意する。
このように、リビルド/コピーバック処理を、リードまでの処理と、ライトからの処理を分割しても、動的状態と静的状態との間に遷移が生じても、ライト、リードの並列処理を継続できる。
次に、これらを実現するためのRAID制御モジュールへのOVSMモジュールの要求処理を、図12により説明する。
(S40)OVSMモジュール634は、RAID制御モジュール632からのI/O有無確認応答から動的状態、静的状態を確認している。先ず、前回動的通常状態であるかを判定する。
(S42)OVSMモジュール634は、前回動的通常状態であれば、今回(現時点)は、動的状態か静的状態かを判定する。今回動的状態なら、(1)と同様に、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へ通常の要求(リードに続きライトを要求)を行う。ただし、リビルド/コピーバックの次の処理範囲が無い場合には、該当LU(Logical Unit)のRebuild/Copyback完了となる。一方、今回静的状態に遷移した場合には、(3)と同様に、次の処理範囲(静的時サイズ)を設定し、RAID制御モジュール632へ「リードまで」の要求を行う。図8の初回の処理に当たる。ただし、次の処理範囲が無い場合には、該当LUのリビルド/コピーバック完了となる。そして、要求処理を終了する。
(S44)OVSMモジュール634は、動的通常状態でなかったら、動的「ライトまで」の状態かを判定する。
(S46)OVSMモジュール634は、前回動的「ライトから」の状態であれば、ACBが、2個あるかを判定し、2個あれば、一方を解放する。次に、今回(現時点)は、動的状態か静的状態かを判定する。今回動的状態なら、(2)と同様に、動的通常状態へ遷移し、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へ通常の要求(リードに続きライトを要求)を行う。一方、今回静的状態に遷移した場合には、(4)と同様に、次の処理範囲(静的時サイズ)を設定し、RAID制御モジュール632へ「リードまで」の要求を行う。そして、要求処理を終了する。
(S48)OVSMモジュール634は、動的「ライトから」の状態でなかったら、静的「リードまで」の状態Cかを判定する。
(S50)OVSMモジュール634は、前回静的「リードまで」の状態であれば、今回(現時点)は、動的状態か静的状態かを判定する。今回動的状態なら、(5)と同様に、動的「ライトから」の状態へ遷移し、RAID制御モジュール632へ「ライトから」の要求を行う。そして、要求処理を終了する。
(S52)一方、今回静的状態に遷移した場合には、最終処理範囲かを判定する。最終処理範囲であれば、静的「ライトから」の状態から静的状態Dへ遷移し、RAID制御モジュール632へ「ライトから」の要求を行う。逆に、最終処理範囲でなければ、OVSMモジュール634は、ACBを1個獲得し、静的「リードまで」の状態から静的状態Dへ遷移し、RAID制御モジュール632に、リード済み範囲の「ライトから」の要求を行い、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へリードまでの要求を行う。そして、要求処理を終了する。
(S54)OVSMモジュール634は、静的「リードまで」の状態でなかったら、静的「リードまで」、「ライトから」の状態Dかを判定する。
(S56)OVSMモジュール634は、前回静的「リードまで」、「ライトから」の状態Dであれば、今回(現時点)は、動的状態か静的状態かを判定する。今回動的状態なら、(5)と同様に、動的「ライトから」の状態へ遷移し、RAID制御モジュール632へ「ライトから」の要求を行う。又、未使用のACBは、一時保留する。そして、要求処理を終了する。
(S58)一方、今回静的状態であれば、最終処理範囲かを判定する。最終処理範囲であれば、静的「ライトから」の状態に遷移し、RAID制御モジュール632へ「ライトから」の要求を行う。又、未使用のACBは、一時保留する。逆に、最終処理範囲でなければ、OVSMモジュール634は、静的状態Dのままとし、RAID制御モジュール632に、リード済み範囲の「ライトから」の要求を行い、次の処理範囲(動的時サイズ)を設定し、RAID制御モジュール632へリードまでの要求を行う。そして、要求処理を終了する。
(S60)OVSMモジュール634は、静的「リードまで」、「ライトから」の状態Dでなかったら、エラー処理する。即ち、静的「ライトから」の状態Dからの遷移はありえない。そして、要求処理を終了する。
次に、図13により、OVSMモジュールのRAID制御モジュールからの応答時の処理を説明する。
(S70)RAID制御モジュール632から応答を受けた時に、OVSMモジュール634は、静的「リードまで」、「ライトから」の状態Dであったかを判定する。
(S72)OVSMモジュール634は、静的「リードまで」、「ライトから」の状態Dであったなら、RAID制御モジュール632から「リードまで」と「ライトから」の両方の完了応答があったかを判定する。両方の応答がないと、両方の応答があるまで待つ。一方、両方の応答があると判定すると、進捗情報410を更新する。
(S74)そして、次のRAID制御モジュール634への要求を実施する(図12参照)。
(S76)OVSMモジュール634は、静的「リードまで」、「ライトから」の状態Dでなかったと判定すると、OVSMモジュール634は、静的「リードまで」の状態Cであったかを判定する。OVSMモジュール634は、静的「リードまで」の状態Cであったと判定すると、ステップS74に進む。
(S78)OVSMモジュール634は、静的「リードまで」の状態Cでなかったと判定すると、OVSMモジュール634は、動的「ライトから」の状態Bであったかを判定する。OVSMモジュール634は、動的「ライトから」の状態Bでなかったと判定すると、OVSMモジュール634は、動的通常状態Aであったかを判定する。
(S80)OVSMモジュール634は、動的「ライトから」の状態B,動的通常状態Aのいずれでもないと判定すると、進捗情報410を更新し、最終処理範囲かを判定する。最終処理範囲でなければ、ステップS74に進む。
(S82)一方、最終処理範囲であれば、ACBが、2個あれば、一方を解放し、該当RLUの処理を完了する。
(S84)OVSMモジュール634は、動的通常状態Aでなかったと判定すると、OVSMモジュール634は、静的「ライトから」の状態Eであったかを判定する。OVSMモジュール634は、静的「ライトから」の状態Eであったと判定すると、進捗情報410を更新し、ステップS82に進む。一方、OVSMモジュール634は、静的「ライトから」の状態でなければ、終了する。
このように、OVSMモジュール634に、前述の処理を行う状態遷移判定モジュール634−5を設けるにより、RAID制御モジュール632の変更を最小にできる。即ち、図9及び図10で説明したように、リードまでの処理と、ライトからの処理を分割するだけで良い。
又、リビルド/コピーバック処理を、リードまでの処理と、ライトからの処理を分割し、動的状態と静的状態との間に遷移が生じても、ライト、リードの並列処理を継続できる。
**他の実施の形態**
前述した実施の形態では、図1のような構成のディスクアレイ装置で説明したが、これ以外の構成のディスクアレイ装置に適用できる。又、物理ディスクは、磁気ディスク、光ディスク、光磁気ディスク、各種のストレージデバイスを適用できる。
更に、通常I/Oの有無の監視時間を5秒としたが、他の監視時間であっても良く、I/O有無の判定を、OVSMモジュールで実行することもできる。又、処理サイズの変更を、デフォルト値の2倍としたが、1.5倍等他の倍数を利用でき、且つ通常I/Oの有無により、処理サイズを別々に設けても良い。
しかも、状態を5つに分け、遷移を説明したが、例えば、動的「ライトから」の状態を省き、状態を簡略化することもできる。
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
(付記1)ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムにおいて、RAIDを構成する複数の前記ディスク装置と、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定し、通常I/O要求が所定時間到来しない場合には、前記リビルド又はコピーバックのリード及びライト処理を並列に実行することを特徴とするRAIDシステム。
(付記2)前記コントローラは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定することを特徴とする付記1のRAIDシステム。
(付記3)前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するとともに、前記リビルド/コピーバックの並列のライト及びリード完了に応じて、次のリビルド/コピーバックのライト及びリード要求を発行することを特徴とする付記1のRAIDシステム。
(付記4)前記コントローラは、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを有し、前記進捗テーブルに従い、リビルド又はコピーバック処理の1回のリード要求を作成し、且つ前記リビルド/コピーバックの並列のライト及びリード完了に応じて、前記進捗テーブルを更新することを特徴とする付記1のRAIDシステム。
(付記5)前記コントローラは、前記リビルド/コピーバックの要求を、リードまでの処理と、ライトからの処理に分割して、実行するRAID制御モジュールと、前記リビルド/コピーバック処理のリード要求とライト要求を個別に、前記RAID制御モジュールに発行するリビルド/コピーバックモジュールとを有することを特徴とする付記3のRAIDシステム。
(付記6)前記リビルド/コピーバックモジュールは、通常I/O要求が所定時間到来しない場合と、前記通常I/O要求が所定時間内に到来した場合との間の遷移を判定し、前記判定結果に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行することを特徴とする付記5のRAIDシステム。
(付記7)前記コントローラは、前記通常I/O要求が所定時間内に到来した場合から前記通常I/O要求が所定時間到来しない場合に遷移したことに応じて、前記リビルド又はコピーバック処理の1回のリード要求を発行し、前記リード要求の処理完了に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行することを特徴とする付記1のRAIDシステム。
(付記8)前記コントローラは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行することを特徴とする付記1のRAIDシステム。
(付記9)ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDコントローラにおいて、前記ホストとのインタフェース制御を行う第1のインタフェース回路と、RAIDを構成する複数の前記ディスク装置とのインタフェース制御を行う第2のインタフェース回路と、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定し、通常I/O要求が所定時間到来しない場合には、前記リビルド又はコピーバックのリード及びライト処理を並列に実行することを特徴とするRAIDコントローラ。
(付記10)前記コントローラは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定することを特徴とする付記9のRAIDコントローラ。
(付記11)前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するとともに、前記リビルド/コピーバックの並列のライト及びリード完了に応じて、次のリビルド/コピーバックのライト及びリード要求を発行することを特徴とする付記9のRAIDコントローラ。
(付記12)前記コントローラは、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを有し、前記進捗テーブルに従い、リビルド又はコピーバック処理の1回のリード要求を作成し、且つ前記リビルド/コピーバックの並列のライト及びリード完了に応じて、前記進捗テーブルを更新することを特徴とする付記9のRAIDコントローラ。
(付記13)前記コントローラは、前記リビルド/コピーバックの要求を、リードまでの処理と、ライトからの処理に分割して、実行するRAID制御モジュールと、前記リビルド/コピーバック処理のリード要求とライト要求を個別に、前記RAID制御モジュールに発行するリビルド/コピーバックモジュールとを有することを特徴とする付記11のRAIDコントローラ。
(付記14)前記リビルド/コピーバックモジュールは、通常I/O要求が所定時間到来しない場合と、前記通常I/O要求が所定時間内に到来した場合との間の遷移を判定し、前記判定結果に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行することを特徴とする付記13のRAIDコントローラ。
(付記15)前記コントローラは、前記通常I/O要求が所定時間内に到来した場合から前記通常I/O要求が所定時間到来しない場合に遷移したことに応じて、前記リビルド又はコピーバック処理の1回のリード要求を発行し、前記リード要求の処理完了に応じて、前記リビルド又はコピーバックのリード及びライト要求を並列に発行することを特徴とする付記9のRAIDコントローラ。
(付記16)前記コントローラは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行することを特徴とする付記9のRAIDコントローラ。
(付記17)ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムのリビルド/コピーバック処理方法において、RAIDを構成する複数の前記ディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するリビルド/コピーバック処理ステップと、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定するステップと、前記通常I/O要求が所定時間到来しない場合には、前記リビルド又はコピーバックのリード及びライト処理を並列に実行するステップとを有することを特徴とするRAIDシステムのリビルド/コピーバック処理方法。
(付記18)前記判定ステップは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定するステップからなることを特徴とする付記17のRAIDシステムのリビルド/コピーバック処理方法。
(付記19)前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するステップを更に有し、前記並列処理ステップは、前記リビルド/コピーバックの並列のライト及びリード完了に応じて、次のリビルド/コピーバックのライト及びリード要求を発行するステップからなることを特徴とする付記18のRAIDシステムのリビルド/コピーバック処理方法。
(付記20)前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルに従い、リビルド又はコピーバック処理の1回のリード要求を作成し、且つ前記リビルド/コピーバックの並列のライト及びリード完了に応じて、前記進捗テーブルを更新するステップを更に有することを特徴とする付記18のRAIDシステムのリビルド/コピーバック処理方法。
以上、説明したように、リビルド/コピーバックでは、一のディスクからリードし、別のディスクへライトするため、通常I/Oの有無を判定し、通常I/Oが無いことに応じて、これらの別々のディスクドライブへのリードとライトを、それぞれ同時に行う。これにより、リビルド/コピーバック時間の短縮を図る。
本発明の一実施の形態のディスクアレイ装置の構成図である。 図1の制御モジュールの構成図である。 図1及び図2の制御モジュールのファームウェアの機能ブロック図である。 図3のファームウェアの詳細構成図である。 本発明の一実施の形態のリビルド/コピーバック処理フロー図である。 図5の処理のタイムチャート図である。 図5の処理の動作説明図である。 本発明の一実施の形態のリビルド/コピーバックの並列処理のタイムチャート図である。 図4のRAID制御モジュールの処理フロー図である。 図4のRAID制御モジュールの他の処理フロー図である。 本発明の一実施の形態の動的・静的状態遷移図である。 本発明の一実施の形態のリビルド/コピーバックモジュールの要求処理フロー図である。 本発明の一実施の形態のリビルド/コピーバックモジュールの応答処理フロー図である。 従来のリビルド処理の説明図である。 従来のコピーバック処理の説明図である。 従来のコピーバック処理のタイムチャート図である。
符号の説明
4−0〜4−1 制御モジュール
40 制御ユニット
41 チャネルアダプタ
42a,42b デバイスアダプタ
400、410 CPU
40b メモリ
200 ディスクデバイス
632 RAID制御モジュール
634−1 リビルド/コピーバックモジュール
2−0〜2−3 デバイスエンクロージャー

Claims (5)

  1. ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムにおいて、
    RAIDを構成する複数の前記ディスク装置と、
    前記複数のディスク装置と、パスで接続され、前記ホストからのI/O要求を含む通常I/O要求を実行しながら、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、
    前記コントローラは、
    前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するととともに、前記通常I/O要求が所定時間以内に来ないかを判定し、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するRAID制御モジュールと、
    前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼との両方を、1回の処理依頼として、前記RAID制御モジュールに要求するリビルド又はコピーバックモジュールとを有し、
    前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する
    ことを特徴とするRAIDシステム。
  2. 前記リビルド又はコピーバックモジュールは、前記通常I/O要求が所定時間以内に到来した場合から前記通常I/O要求が所定時間以内に到来しない場合に遷移したことに応じて、前記リビルド又はコピーバック処理の1回のリードする処理の依頼を発行し、前記RAID制御モジュールからの前記リードする処理の依頼の処理完了に応じて、前記リビルド又はコピーバック処理の前記ライトする処理の依頼と前記リードする処理の依頼の両方を、前記RAID制御モジュールに要求する
    ことを特徴とする請求項1のRAIDシステム。
  3. 前記リビルド又はコピーバックモジュールは、前記リビルド/コピーバック処理の1回の前記ライトする処理の依頼と前記リードする処理の依頼に対する前記RAID制御モジュールからの前記ライト処理及びリード処理の完了に応じて、次のリビルド/コピーバック処理の1回の前記ライトする処理の依頼と前記リードする処理の依頼を、前記RAID制御モジュールに要求する
    ことを特徴とする請求項のRAIDシステム。
  4. ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDコントローラにおいて、
    前記ホストとのインタフェース制御を行う第1のインタフェース回路と、
    RAIDを構成する複数の前記ディスク装置とのインタフェース制御を行う第2のインタフェース回路と、
    前記ホストからのI/O要求を含む通常I/O要求を実行しながら、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、
    前記コントローラは、
    前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するととともに、前記通常I/O要求が所定時間以内に来ないかを判定し、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するRAID制御モジュールと、
    前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼の両方を、1回の処理依頼として、前記RAID制御モジュールに要求するリビルド又はコピーバックモジュールとを有し、
    前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する
    ことを特徴とするRAIDコントローラ。
  5. ホストから依頼されたI/O要求を含む通常I/O要求に応じて、接続されたディスク装置をアクセスし、通常I/O要求を実行しながら、複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータを前記パスを介しリードする処理を行い、予備ディスク装置又は新ディスク装置に前記リードしたデータを前記パスを介しライトする処理を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するRAIDシステムのリビルド/コピーバック処理方法であって、
    前記リビルド又はコピーバック処理の前記リードする処理と、前記ライトする処理とを分けて、実行するコントローラのRAID制御モジュールが、前記通常I/O要求が所定時間以内に到来したかを判定するステップと、
    前記RAID制御モジュールが、受け付けた前記通常I/O要求と、前記リビルド又はコピーバック処理の処理依頼とを、所定の比で、実行するステップと、
    前記コントローラのリビルド又はコピーバックモジュールが、前記RAID制御モジュールの前記判定結果から、前記通常I/O要求が所定時間以内に到来した場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼とのいずれかを、1回の処理依頼として、前記RAID制御モジュールに要求し、前記通常I/O要求が所定時間以内に到来しない場合には、前記リビルド又はコピーバック処理の前記リードする処理の依頼と、前記ライトする処理の依頼の両方を、1回の処理依頼として、前記RAID制御モジュールに要求するステップとを有し、
    前記RAID制御モジュールは、前記通常I/O要求が所定時間以内に到来しない場合には、1回の前記リビルド又はコピーバック処理として、前記リードする処理と前記ライトする処理の両方を実行する
    ことを特徴とするRAIDシステムのリビルド/コピーバック処理方法。
JP2005314695A 2005-10-28 2005-10-28 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 Expired - Fee Related JP4472617B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005314695A JP4472617B2 (ja) 2005-10-28 2005-10-28 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
KR1020060023801A KR100793224B1 (ko) 2005-10-28 2006-03-15 Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법
CN2006100570621A CN1955940B (zh) 2005-10-28 2006-03-17 Raid系统、raid控制器及其重建或拷回处理方法
US11/377,210 US7562249B2 (en) 2005-10-28 2006-03-17 RAID system, RAID controller and rebuilt/copy back processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005314695A JP4472617B2 (ja) 2005-10-28 2005-10-28 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法

Publications (2)

Publication Number Publication Date
JP2007122477A JP2007122477A (ja) 2007-05-17
JP4472617B2 true JP4472617B2 (ja) 2010-06-02

Family

ID=37998030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005314695A Expired - Fee Related JP4472617B2 (ja) 2005-10-28 2005-10-28 Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法

Country Status (4)

Country Link
US (1) US7562249B2 (ja)
JP (1) JP4472617B2 (ja)
KR (1) KR100793224B1 (ja)
CN (1) CN1955940B (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム
JP4947062B2 (ja) * 2007-01-25 2012-06-06 富士通株式会社 記憶装置、記録復旧方法、記録復旧プログラム
JP2009026240A (ja) * 2007-07-23 2009-02-05 Hitachi Ltd 記憶制御システムおよび記憶制御方法
JP4579998B2 (ja) * 2008-03-31 2010-11-10 富士通株式会社 リストア管理プログラム、リストア管理方法およびリストア管理装置
JP4988653B2 (ja) * 2008-06-13 2012-08-01 株式会社日立製作所 ディスクアレイ記録装置及びその記録制御方法
JP5218147B2 (ja) * 2009-02-26 2013-06-26 富士通株式会社 ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム
CN102209957B (zh) * 2009-02-26 2014-04-16 株式会社日立制作所 包括raid组的存储系统
JP5409159B2 (ja) * 2009-07-23 2014-02-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP2011070395A (ja) * 2009-09-25 2011-04-07 Canon Inc メモリ制御装置、メモリ制御方法、及びプログラム
JP2012018481A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd ディスクアレイ装置およびディスクアレイ制御方法
US8726070B2 (en) 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US8417989B2 (en) * 2010-10-15 2013-04-09 Lsi Corporation Method and system for extra redundancy in a raid system
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
JP5807458B2 (ja) * 2011-08-31 2015-11-10 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9569312B2 (en) * 2011-09-27 2017-02-14 Xcube Research And Development, Inc. System and method for high-speed data recording
US8707090B2 (en) * 2011-10-19 2014-04-22 Hitachi, Ltd. Storage system
CN102419697B (zh) * 2011-11-02 2013-12-18 华中科技大学 垂直raid-6编码中单盘重构的方法
CN102520880B (zh) * 2011-12-01 2014-11-05 浪潮电子信息产业股份有限公司 一种系统raid管理模块设计方法
US8751861B2 (en) * 2012-02-08 2014-06-10 Lsi Corporation System and method for improved rebuild in RAID
JP5472947B2 (ja) * 2012-03-08 2014-04-16 株式会社東芝 ビデオサーバ装置及びそのリビルド処理制御方法
US8930749B2 (en) 2012-04-02 2015-01-06 International Business Machines Corporation Systems and methods for preventing data loss
JP2014096072A (ja) 2012-11-09 2014-05-22 International Business Maschines Corporation ミラー構成を有するディスクアレイ及びそのリビルド方法
US20140149787A1 (en) * 2012-11-29 2014-05-29 Lsi Corporation Method and system for copyback completion with a failed drive
CN103970481B (zh) * 2013-01-29 2017-03-01 国际商业机器公司 重建存储器阵列的方法和装置
US9760293B2 (en) * 2013-03-07 2017-09-12 Seagate Technology Llc Mirrored data storage with improved data reliability
US9122405B1 (en) 2013-03-15 2015-09-01 Western Digital Technologies, Inc. Fast initialization of storage device
CN103488544B (zh) * 2013-09-26 2016-08-17 华为技术有限公司 检测慢盘的处理方法和装置
JP6213130B2 (ja) * 2013-10-09 2017-10-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
JP5734469B2 (ja) * 2014-01-15 2015-06-17 キヤノン株式会社 メモリ制御装置、メモリ制御方法、及びプログラム
US9396068B2 (en) * 2014-04-17 2016-07-19 International Business Machines Corporation Adaptive rebuild scheduling scheme
CN104461733A (zh) * 2014-11-24 2015-03-25 浪潮电子信息产业股份有限公司 一种高端磁盘阵列多控制器间的并行io调度方法
CN106407051B (zh) * 2015-07-31 2019-01-11 华为技术有限公司 一种检测慢盘的方法及装置
CN106557389B (zh) * 2015-09-29 2019-03-08 成都华为技术有限公司 一种慢盘检测方法和装置
US10437691B1 (en) * 2017-03-29 2019-10-08 Veritas Technologies Llc Systems and methods for caching in an erasure-coded system
CN109725822B (zh) * 2017-10-27 2022-03-11 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109725826B (zh) * 2017-10-27 2022-05-24 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机可读介质
US10983885B2 (en) 2018-11-29 2021-04-20 International Business Machines Corporation Recovering storage devices in a storage array having errors
CN112748856B (zh) * 2019-10-30 2024-08-16 伊姆西Ip控股有限责任公司 管理盘的方法、电子设备和计算机程序产品
CN111240903A (zh) * 2019-11-04 2020-06-05 华为技术有限公司 数据恢复方法及相关设备
US11593237B2 (en) 2021-05-28 2023-02-28 International Business Machines Corporation Fast recovery with enhanced raid protection
US11567673B1 (en) 2021-08-18 2023-01-31 International Business Machines Corporation Adaptive, proactive raid rebuild

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US695096A (en) * 1901-08-19 1902-03-11 Jacques P Faivre Broiler.
US5179557A (en) * 1989-07-04 1993-01-12 Kabushiki Kaisha Toshiba Data packet communication system in which data packet transmittal is prioritized with queues having respective assigned priorities and frequency weighted counting of queue wait time
JP2923702B2 (ja) * 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
JPH06250795A (ja) 1993-02-24 1994-09-09 Hitachi Ltd ディスクアレイシステム
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5432922A (en) * 1993-08-23 1995-07-11 International Business Machines Corporation Digital storage system and method having alternating deferred updating of mirrored storage disks
US5446855A (en) * 1994-02-07 1995-08-29 Buslogic, Inc. System and method for disk array data transfer
US5680509A (en) * 1994-09-27 1997-10-21 International Business Machines Corporation Method and apparatus for estimating phone class probabilities a-posteriori using a decision tree
US5680539A (en) * 1995-07-11 1997-10-21 Dell Usa, L.P. Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
CA2201691C (en) * 1996-04-15 2001-07-17 Raju C. Bopardikar Data storage
US6185368B1 (en) * 1996-07-29 2001-02-06 Sony Corporation Redundant disk array with real-time lost data reconstruction
KR100303217B1 (ko) * 1996-08-28 2001-09-28 박종섭 피드백루프를이용하여기록캐시환경에서캐시플러시입출력속도를제어하기위한방법및장치
JPH11102261A (ja) 1997-09-25 1999-04-13 Mitsubishi Electric Corp 記憶制御システム
US6032217A (en) * 1997-11-04 2000-02-29 Adaptec, Inc. Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing
US6336193B1 (en) * 1998-08-21 2002-01-01 International Business Machines Corporation Input/output recovery method which is based upon an error rate and a current state of the computer environment
JP4294142B2 (ja) * 1999-02-02 2009-07-08 株式会社日立製作所 ディスクサブシステム
US6321345B1 (en) * 1999-03-01 2001-11-20 Seachange Systems, Inc. Slow response in redundant arrays of inexpensive disks
JP2000276305A (ja) 1999-03-23 2000-10-06 Nec Corp ディスクアレイ装置
JP3440219B2 (ja) * 1999-08-02 2003-08-25 富士通株式会社 入出力装置及びディスク・タイムシェアリング方法
US6516425B1 (en) * 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6233967B1 (en) * 1999-12-03 2001-05-22 American Standard International Inc. Refrigeration chiller oil recovery employing high pressure oil as eductor motive fluid
JP3734662B2 (ja) * 2000-02-16 2006-01-11 太陽誘電株式会社 積層セラミックコンデンサとその製造方法
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
KR100364895B1 (ko) 2000-06-12 2002-12-16 아라리온 (주) 데이터 액세스 제어 방법 및 시스템
US6886108B2 (en) * 2001-04-30 2005-04-26 Sun Microsystems, Inc. Threshold adjustment following forced failure of storage device
US7480909B2 (en) * 2002-02-25 2009-01-20 International Business Machines Corporation Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking
US6820172B2 (en) * 2002-03-25 2004-11-16 International Business Machines Corporation Method, system, and program for processing input/output (I/O) requests to a storage space having a plurality of storage devices
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
KR100496872B1 (ko) * 2002-12-23 2005-06-22 한국전자통신연구원 다중 레이드제어기 오류 복구 기능을 구비한 분산 공유레이드 시스템 및 그 오류 복구 방법
JP4318914B2 (ja) * 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
JP4322068B2 (ja) * 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
GB2400935B (en) * 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
US7313721B2 (en) * 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array

Also Published As

Publication number Publication date
CN1955940B (zh) 2010-09-08
US7562249B2 (en) 2009-07-14
CN1955940A (zh) 2007-05-02
KR20070045891A (ko) 2007-05-02
KR100793224B1 (ko) 2008-01-10
JP2007122477A (ja) 2007-05-17
US20070101187A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
JP4472617B2 (ja) Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
JP4817783B2 (ja) Raidシステム及びそのリビルド/コピーバック処理方法
US6957303B2 (en) System and managing method for cluster-type storage
JP4413184B2 (ja) データストレージシステム及びデータストレージ制御装置
US7093043B2 (en) Data array having redundancy messaging between array controllers over the host bus
KR100740080B1 (ko) 데이터 기억 시스템 및 데이터 기억 제어 장치
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US20040250019A1 (en) Storage system, controller, control method and program product therefor
JP2004213064A (ja) Raid装置及びその論理デバイス拡張方法
WO1999063438A1 (en) Apparatus, system and method for n-way raid controller
GB2416415A (en) Logical unit reassignment between redundant controllers
JP2007122476A (ja) データストレージシステム、データストレージ制御装置及びそのディスクのライト抜け診断方法
JP4401305B2 (ja) デイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置
CN102164165A (zh) 一种网络存储系统的管理方法及装置
US20110252176A1 (en) Storage system mounted with plurality of processors
JP2003006135A (ja) 入出力制御装置及び入出力制御方法並びに情報記憶システム
JP2006268403A (ja) データストレージシステム及びストレージ制御装置のログデータの等価制御方法
JPH07200187A (ja) ディスクアレイ装置
JP5729043B2 (ja) ストレージ装置および制御装置
JP3250859B2 (ja) ディスクアレイ装置、コンピュータシステム及びデータ記憶装置
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JP4708669B2 (ja) パス冗長化装置及び方法
JP2011232962A (ja) ディスクアレイ装置およびミラードキャッシュ制御方法
JP7288191B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2001067188A (ja) データ二重化システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100303

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

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4472617

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees