JP4817783B2 - Raidシステム及びそのリビルド/コピーバック処理方法 - Google Patents

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

Info

Publication number
JP4817783B2
JP4817783B2 JP2005286926A JP2005286926A JP4817783B2 JP 4817783 B2 JP4817783 B2 JP 4817783B2 JP 2005286926 A JP2005286926 A JP 2005286926A JP 2005286926 A JP2005286926 A JP 2005286926A JP 4817783 B2 JP4817783 B2 JP 4817783B2
Authority
JP
Japan
Prior art keywords
request
rebuild
processing
normal
raid
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
JP2005286926A
Other languages
English (en)
Other versions
JP2007094994A (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 JP2005286926A priority Critical patent/JP4817783B2/ja
Priority to US11/361,583 priority patent/US7631218B2/en
Priority to CNB2006100547574A priority patent/CN100432914C/zh
Priority to KR1020060022703A priority patent/KR100793531B1/ko
Publication of JP2007094994A publication Critical patent/JP2007094994A/ja
Application granted granted Critical
Publication of JP4817783B2 publication Critical patent/JP4817783B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43LARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
    • B43L1/00Repeatedly-usable boards or tablets for writing or drawing
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B42BOOKBINDING; ALBUMS; FILES; SPECIAL PRINTED MATTER
    • B42DBOOKS; BOOK COVERS; LOOSE LEAVES; PRINTED MATTER CHARACTERISED BY IDENTIFICATION OR SECURITY FEATURES; PRINTED MATTER OF SPECIAL FORMAT OR STYLE NOT OTHERWISE PROVIDED FOR; DEVICES FOR USE THEREWITH AND NOT OTHERWISE PROVIDED FOR; MOVABLE-STRIP WRITING OR READING APPARATUS
    • B42D5/00Sheets united without binding to form pads or blocks
    • B42D5/003Note-pads
    • B42D5/005Supports for note-pads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B42BOOKBINDING; ALBUMS; FILES; SPECIAL PRINTED MATTER
    • B42DBOOKS; BOOK COVERS; LOOSE LEAVES; PRINTED MATTER CHARACTERISED BY IDENTIFICATION OR SECURITY FEATURES; PRINTED MATTER OF SPECIAL FORMAT OR STYLE NOT OTHERWISE PROVIDED FOR; DEVICES FOR USE THEREWITH AND NOT OTHERWISE PROVIDED FOR; MOVABLE-STRIP WRITING OR READING APPARATUS
    • B42D5/00Sheets united without binding to form pads or blocks
    • B42D5/04Calendar blocks
    • B42D5/047Calendar blocks in which the calendar sheet or sheets are combined with other articles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43LARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
    • B43L21/00Blackboard or slate cleaning devices
    • B43L21/04Wiper holders
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F15/00Boards, hoardings, pillars, or like structures for notices, placards, posters, or the like
    • G09F15/0006Boards, hoardings, pillars, or like structures for notices, placards, posters, or the like planar structures comprising one or more panels
    • G09F15/0012Boards, hoardings, pillars, or like structures for notices, placards, posters, or the like planar structures comprising one or more panels frames therefor
    • 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 Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数のディスク装置に、データを冗長性を持って、格納するRAIDシステムにおいて、一部のディスク装置の障害時に、他のディスク装置からのデータで冗長構成を再構築するリビルド及びコピーバックするRAIDシステム及びそのリビルド/コピーバック処理方法に関し、特に、ホストI/Oを受け付けながら、リビルド及びコピーバックするRAIDシステム及びそのリビルド/コピーバック処理方法に関する。
近年、様々なデータが電子化され、コンピュータ上で扱われるのに従い、データの処理を実行するホストコンピュータとは独立して、大量のデータを効率よく、高い信頼性で格納することのできるデータストレージ装置(外部記憶装置)の重要性が増加している。
このデータストレージ装置として、大量のディスクデバイス(例えば、磁気ディスク装置や光ディスク装置)と、これら大量のディスクデバイスを制御するディスクコントローラとから構成されるディスクアレイ装置が利用されている。このディスクアレイ装置は、RAID構成を採用することにより、データの冗長化を実現し、信頼性を向上している。
このようなディスクアレイ装置において、RAIDグループを構成するディスクデバイスが、故障して冗長性を失った場合に、冗長性回復が必要となる。図8は、かかる冗長性回復のための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機能という。
一方、図9は、コピーバック機能の説明図である。図8のRebuildが完了した状態から、故障したディスクデバイス#0が、新しいディスクデバイスNewと交換された場合に、コピーバック処理を行なう。即ち、予備ディスクデバイスHSに書かれた冗長データを,本来のディスクデバイスNewに書き戻す処理である。
このようなRebuild/Copyback処理を、ホストからのI/O要求を処理しながら、実行することが、望ましく、これらの要求数のバランスをとる方法が提案されている(例えば、特許文献1)。
特開2004−295860号公報(図14)
このように、ホストからのI/O要求を処理しつつ、Rebuile/Copyback処理するには、ディスクデバイス1台分の処理を一度に行うことは出来ない。このため、1回の処理サイズを固定して、その固定された処理サイズについて、正常なディスクデバイスからデータをリードして、書き込み先ディスクデバイスへライトする動作を、ディスクデバイスのデータ量分の回数を実行していた。
例えば、Rebuildでは、正常ディスクデバイスからデータをリードして、RAID1(ミラーリング)以外は冗長データを作成して、予備ディスクデバイスHSや新規ディスクデバイスNewへライトするという動作を行い、Copybackでは、予備ディスクHSからデータをリードして、新規ディスクデバイスNewへライトするという動作を行う。
従来は、これらの動作について、一回一回の処理サイズが固定で決められており、そのRAIDグループの負荷状態によって変動しなかった。そのため、通常I/O(ホストからのアクセス)が有る場合で、即ち、ある程度の負荷が有る状態で、通常I/Oによるディスクアクセスと、Rebuild/Copybackのディスクアクセスとのバランスをとるように調整しているシステムでは、逆に、通常I/Oが無い場合での,Rebuild/Copybackの処理では、ディスクデバイスの性能が、十分に引き出せないでいた。
このため、通常I/Oが無い場合に、常識的に考えられるディスクデバイスの性能と比較して、Rebuild/Copybackの完了までの時間が長くなる。近年、ディスクデバイスの格納容量が増大しているため、Rebuild/Copybackの完了までの時間短縮が課題となっている。
従って、本発明の目的は、ホストI/O要求を処理しつつ、リビルド/コピーバックをバランス処理する際に、リビルド/コピーバック処理の性能を向上するためのRAIDシステム及びそのリビルド/コピーバック処理方法を提供することにある。
又、本発明の他の目的は、ホストI/O要求を処理しつつ、リビルド/コピーバックをバランス処理する際に、リビルド/コピーバックの完了時間を短縮するためのRAIDシステム及びそのリビルド/コピーバック処理方法を提供することにある。
更に、本発明の他の目的は、リビルド/コピーバックの完了時間を短縮しつつ、ホストI/O要求を処理しつつ、リビルド/コピーバックをバランス処理するためのRAIDシステム及びそのリビルド/コピーバック処理方法を提供することにある。
この目的の達成のため、本発明は、ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムにおいて、RAIDを構成する複数の前記ディスク装置と、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とを、優先度を付け、所定の比で、実行するRAID制御モジュールと、前記リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求を発行するリビルド/コピーバックモジュールとを有し、前記RAID制御モジュールは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間以内に来ないかを判定し、前記リビルド/コピーバックモジュールは、前記リビルド/コピーバック要求の処理完了に応じて、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間以内に到来しない場合には、前記通常I/O要求が所定時間以内に到来した場合より、大きく設定して、前記リビルド/コピーバックの1回の要求を、前記RAID制御モジュールに発行する。
又、本発明のRAIDシステムのリビルド/コピーバック処理方法は、RAIDを構成する複数の前記ディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するステップと、RAID制御モジュールにより、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、前記ホストからのI/O要求を含む通常I/O要求が所定時間以内に来ないかを判定するステップと、RAID制御モジュールにより、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とを、優先度に応じて、所定比で、実行するステップとを有し、前記リビルド/コピーバック処理の実行ステップは、リビルド/コピーバックモジュールにより、リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求の生成を開始するステップと、前記リビルド/コピーバックモジュールが、前記リビルド/コピーバック要求の処理完了に応じて、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間以内に到来しない場合には、前記通常I/O要求が所定時間以内に到来した場合より、大きく設定して、前記リビルド/コピーバックの1回の要求を、前記RAID制御モジュールに発行するステップとを有する。
更に、本発明では、好ましくは、前記コントローラは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定する。
更に、本発明では、好ましくは、前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するとともに、前記リビルド/コピーバック要求の処理完了に応じて、次のリビルド/コピーバック要求を発行する。
更に、本発明では、好ましくは、前記コントローラは、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを有し、前記進捗テーブルに従い、リビルド又はコピーバック処理の1回の要求を作成し、且つ前記進捗テーブルを更新する。
更に、本発明では、好ましくは、前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するRAID制御モジュールと、前記リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求を発行するリビルド/コピーバックモジュールとを有する。
更に、本発明では、好ましくは、前記RAID制御モジュールは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定し、前記リビルド/コピーバックモジュールは、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定して、前記リビルド/コピーバック要求を発行する。
更に、本発明では、好ましくは、前記コントローラは、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合の処理サイズの倍数に設定した。
更に、本発明では、好ましくは、前記コントローラは、前記ホストとのインタフェース制御を行う第1のインタフェース回路と、前記複数のディスク装置とのインタフェース制御を行う第2のインタフェース回路と、前記第1のインタフェース回路と前記第2のインタフェース回路に接続され、前記通常I/O処理と、前記リビルド又はコピーバック処理を実行する制御ユニットとを有し、前記制御ユニットは、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定し、複数回に別けて実行するリビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定した。
更に、本発明では、好ましくは、前記コントローラは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行する。
更に、本発明では、好ましくは、前記制御ユニットは、前記ディスク装置のデータの一部を格納するキャッシュメモリを有し、前記ホストからのI/O要求の内、前記キャッシュメモリを利用できないI/O要求を、前記通常I/Oとして、要求する。
本発明では、リビルド/コピーバックの1回の処理サイズを、RAID制御が管理する通常I/Oの有無に応じて、変更するため、通常I/Oがある場合には、通常I/Oの処理の阻害にならず、リビルド/コピーバックを実行でき、通常I/Oが無い静的な状態では、それよりも大きい処理サイズを指定して、リビルド/コピーバック処理を高速に実現できる。又、通常I/Oとリビルド/コピーバック要求とを所定比で実行するRAID制御モジュールと、リビルド/コピーバック処理モジュールに分け、RAID制御モジュールで、通常I/Oの有無を判定するため、少ない負荷で且つ正確に通常I/Oの有無を判定できる。且つリビルド/コピーバック処理モジュールが、通常I/Oがある場合でも、1回のリビルド/コピーバック要求をRAID制御モジュールに発行するため、通常I/O有りでも、所定比でリビルド/コピーバック要求を実行でき、ホストI/Oが途切れることが少ない使用環境でも、ホストI/O要求の遅延を最小限にして、リビルド/コピーバック処理の所定時間までに、リビルド/コピーバック処理を完了できる。
以下、本発明の実施の形態を、ディスクアレイ装置(RAIDシステム)、スレッド構成、リビルド/コピーバック処理、他の実施の形態の順で説明する。
**ディスクアレイ装置**
図1は、本発明の一実施の形態のディスクアレイ装置の構成図、図2は、図1のコントロールモジュールの構成図である。
図1は、2台のコントロールモジュールを持つ小規模なディスクアレイ装置を例に示すが、4台の中規模のディスクアレイ装置、8台の大規模のディスクアレイ装置も同様である。
図1に示すように、ディスクアレイ装置は、データを保持する複数のディスクデバイスを搭載する複数のディスクエンクロージャ2−0〜2−3と、図示しないホストコンピュータ(データ処理装置)と、複数のディスクエンクロージャ2−0〜2−3との間に、配置された複数(ここでは2つ)の制御モジュール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−Expess等の高速シリアルバスは、パケットで通信し、且つシリアルバスを複数レーン設けることにより、信号線本線を減らしても、遅延の少ない、速い応答速度で、所謂、低レンテンシで通信することができる。
チャネルアダプタ41a〜41dは、ホストコンピュータに対するインターフェースであり、チャネルアダプタ41a〜41dは、それぞれ異なるホストコンピュータと接続される。また、チャネルアダプタ41a〜41dは、それぞれ対応するホストコンピュータのインターフェース部に、バス、例えば、ファイバチャネル(Fiber Channel)やEthernet(登録商標)によって接続されることが好ましく、この場合、バスとしては、光ファイバや同軸ケーブルが用いられる。
さらに、これらチャネルアダプタ41a〜41dそれぞれは、各制御モジュール4−0〜4−1の一部として構成されている。このチャネルアダプタ41a〜41bが、対応するホストコンピュータと制御モジュール4−0〜4−3とのインターフェース部として、複数のプロトコルをサポートする。
ここでは、対応するホストコンピュータによって実装すべきプロトコルが同一ではないため、各チャネルアダプタ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−7の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をドライブするドライバである。
ベーシックモジュール630は、資源管理を行うリソーススレッド(リソース制御モジュール)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へ格納し、Data Bufferの内容を、ディスクデバイスへライトする処理を担当する。
この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−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に戻る。
このように、通常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に要求する。
このようにして、リビルド/コピーバックの1回の処理サイズを、RAID制御が管理する通常I/Oの有無に応じて、変更するため、通常I/Oがある場合には、通常I/Oの処理の阻害にならず、リビルド/コピーバックを実行でき、静的な状態では、それよりも大きい処理サイズを指定して、リビルド/コピーバック処理を高速に実現できる。
又、RAID制御モジュール632は、最後の通常I/Oが完了した時刻を記録し、この時刻と、現在の時刻とを比較して、例えば、5secの差があるかどうかを判定する通常I/O有無判定処理を行うため、リビルド/コピーバックモジュール634−1は、問い合わせにより、容易に、処理サイズを変更して、リビルド/コピーバック処理を進行できる。
**他の実施の形態**
前述した実施の形態では、図1のような構成のディスクアレイ装置で説明したが、これ以外の構成のディスクアレイ装置に適用できる。又、物理ディスクは、磁気ディスク、光ディスク、光磁気ディスク、各種のストレージデバイスを適用できる。
更に、通常I/Oの有無の監視時間を5秒としたが、他の監視時間であっても良く、I/O有無の判定を、OVSMモジュールで実行することもできる。又、処理サイズの変更を、デフォルト値の2倍としたが、1.5倍等他の倍数を利用でき、且つ通常I/Oの有無により、処理サイズを別々に設けても良い。
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
(付記1)ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムにおいて、RAIDを構成する複数の前記ディスク装置と、前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、前記コントローラは、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定し、複数回に別けて実行するリビルド又はコピーバック処理の1回の要求処理サイズを、通常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)前記コントローラは、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するRAID制御モジュールと、前記リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求を発行するリビルド/コピーバックモジュールとを有することを特徴とする付記3のRAIDシステム。
(付記6)前記RAID制御モジュールは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定し、前記リビルド/コピーバックモジュールは、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定して、前記リビルド/コピーバック要求を発行することを特徴とする付記5のRAIDシステム。
(付記7)前記コントローラは、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合の処理サイズの倍数に設定したことを特徴とする付記1のRAIDシステム。
(付記8)前記コントローラは、前記ホストとのインタフェース制御を行う第1のインタフェース回路と、前記複数のディスク装置とのインタフェース制御を行う第2のインタフェース回路と、前記第1のインタフェース回路と前記第2のインタフェース回路に接続され、前記通常I/O処理と、前記リビルド又はコピーバック処理を実行する制御ユニットとを有し、前記制御ユニットは、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定し、複数回に別けて実行するリビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定したことを特徴とする付記1のRAIDシステム。
(付記9)前記コントローラは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行することを特徴とする付記1のRAIDシステム。
(付記10)前記制御ユニットは、前記ディスク装置のデータの一部を格納するキャッシュメモリを有し、前記ホストからのI/O要求の内、前記キャッシュメモリを利用できないI/O要求を、前記通常I/Oとして、要求することを特徴とする付記5のRAIDシステム。
(付記11)ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムのリビルド/コピーバック処理方法において、RAIDを構成する複数の前記ディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するステップと、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定するステップと、複数回に別けて実行するリビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定するステップとを有することを特徴とするRAIDシステムのリビルド/コピーバック処理方法。
(付記12)前記判定ステップは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記13)前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するステップを更に有し、前記リビルド/コピーバック処理の実行ステップは、前記リビルド/コピーバック要求の処理完了に応じて、次のリビルド/コピーバック要求を発行するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記14)前記リビルド/コピーバック処理の実行ステップは、前記リビルド/コピーバックの進捗状況を管理する進捗テーブルを参照して、リビルド又はコピーバック処理の1回の要求を作成するステップと、前記進捗テーブルを更新するステップを有することを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記15)RAID制御モジュールにより、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とをバランスして、実行するステップを更に有し、前記処理ステップは、前記リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求を前記RAID制御モジュールに発行するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記16)前記判定ステップは、前記RAID制御モジュールにより、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間来ないかを判定するステップからなり、前記リビルド/コピーバック要求発行ステップは、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定して、前記リビルド/コピーバック要求を発行するステップからなることを特徴とする付記15のRAIDシステムのリビルド/コピーバック処理方法。
(付記17)前記設定ステップは、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合の処理サイズの倍数に設定するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記18)前記判定ステップは、前記ホストとのインタフェース制御を行う第1のインタフェース回路と、前記複数のディスク装置とのインタフェース制御を行う第2のインタフェース回路とに接続され、前記通常I/O処理と、前記リビルド又はコピーバック処理を実行する制御ユニットにより、前記ホストからのI/O要求を含む通常I/O要求が所定時間来ないかを判定するステップからなり、前記設定ステップは、前記制御ユニットにより、複数回に別けて実行するリビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間到来しない場合には、前記通常I/O要求が所定時間到来した場合より、大きく設定するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記19)前記リビルド/コピーバック処理を実行するステップは、前記RAIDを構成する前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド処理ステップと、前記リビルド処理を実行した後、前記予備ディスク装置のデータをリードし、前記故障したディスク装置の代わりに設けられた新ディスク装置にデータをライトする動作を複数回に別けて実行して、コピーバック処理を実行するステップからなることを特徴とする付記11のRAIDシステムのリビルド/コピーバック処理方法。
(付記20)前記ホストからのI/O要求の内、前記ディスク装置のデータの一部を格納するキャッシュメモリを利用できないI/O要求を、前記通常I/Oとして、要求するステップを更に有することを特徴とする付記15のRAIDシステムのリビルド/コピーバック処理方法。
以上、説明したように、リビルド/コピーバックの1回の処理サイズを、RAID制御が管理する通常I/Oの有無に応じて、変更するため、通常I/Oがある場合には、通常I/Oの処理の阻害にならず、リビルド/コピーバックを実行でき、通常I/Oが無い静的な状態では、それよりも大きい処理サイズを指定して、リビルド/コピーバック処理を高速に実現できる。又、通常I/Oとリビルド/コピーバック要求とを所定比で実行するRAID制御モジュールと、リビルド/コピーバック処理モジュールに分け、RAID制御モジュールで、通常I/Oの有無を判定するため、少ない負荷で且つ正確に通常I/Oの有無を判定できる。且つリビルド/コピーバック処理モジュールが、通常I/Oがある場合でも、1回のリビルド/コピーバック要求をRAID制御モジュールに発行するため、通常I/O有りでも、所定比でリビルド/コピーバック要求を実行でき、ホストI/Oが途切れることが少ない使用環境でも、ホストI/O要求の遅延を最小限にして、リビルド/コピーバック処理の所定時間までに、リビルド/コピーバック処理を完了できる。
本発明の一実施の形態のディスクアレイ装置の構成図である。 図1の制御モジュールの構成図である。 図1及び図2の制御モジュールのファームウェアの機能ブロック図である。 図3のファームウェアの詳細構成図である。 本発明の一実施の形態のリビルド/コピーバック処理フロー図である。 図5の処理のタイムチャート図である。 図5の処理の動作説明図である。 従来のリビルド処理の説明図である。 従来のコピーバック処理の説明図である。
符号の説明
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を構成する複数の前記ディスク装置と、
    前記複数のディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するコントローラとを有し、
    前記コントローラは、
    前記通常I/O要求と前記リビルド/コピーバックの1回の要求とを、優先度を付け、所定の比で、実行するRAID制御モジュールと、
    前記リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求を発行するリビルド/コピーバックモジュールとを有し、
    前記RAID制御モジュールは、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、通常I/O要求が所定時間以内に来ないかを判定し、
    前記リビルド/コピーバックモジュールは、前記リビルド/コピーバック要求の処理完了に応じて、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間以内に到来しない場合には、前記通常I/O要求が所定時間以内に到来した場合より、大きく設定して、前記リビルド/コピーバックの1回の要求を、前記RAID制御モジュールに発行する
    ことを特徴とするRAIDシステム。
  2. 前記コントローラは、前記ディスク装置のデータの一部を格納するキャッシュメモリを有し、
    ホストからのI/O要求の内、前記キャッシュメモリを利用できないI/O要求を、前記通常I/O要求として、前記RAID制御モジュールに要求する
    ことを特徴とする請求項1のRAIDシステム。
  3. 前記リビルド/コピーバックモジュールは、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間以内に到来しない場合には、前記通常I/O要求が所定時間以内に到来した場合の処理サイズの倍数に設定する
    ことを特徴とする請求項1のRAIDシステム。
  4. コントローラが、ホストから依頼されたI/O要求に応じて、接続されたディスク装置をアクセスし、I/O要求を実行するRAIDシステムのリビルド/コピーバック処理方法において、
    RAIDを構成する複数の前記ディスク装置の1つが故障した場合に、故障したディスク装置以外のディスク装置のデータをリードし、予備ディスク装置又は新ディスク装置にデータをライトする動作を複数回に別けて実行して、RAID構成を再構築するリビルド又はコピーバック処理を実行するステップと、
    RAID制御モジュールにより、通常I/O要求の処理完了時刻を、前記通常I/O要求の処理完了毎に記録し、前記処理完了時刻と現在時刻とを比較して、前記ホストからのI/O要求を含む通常I/O要求が所定時間以内に来ないかを判定するステップと、
    RAID制御モジュールにより、前記通常I/O要求と前記リビルド/コピーバックの1回の要求とを、優先度に応じて、所定比で、実行するステップとを有し、
    前記リビルド/コピーバック処理の実行ステップは、
    リビルド/コピーバックモジュールにより、リビルド/コピーバック要求の処理完了に応じて、前記リビルド/コピーバック処理の進捗状況を管理する進捗テーブルを参照して、次のリビルド/コピーバック要求の生成を開始するステップと、
    前記リビルド/コピーバックモジュールが、前記リビルド/コピーバック要求の処理完了に応じて、前記RAID制御モジュールに前記判定結果を問い合わせ、前記リビルド又はコピーバック処理の1回の要求処理サイズを、通常I/O要求が所定時間以内に到来しない場合には、前記通常I/O要求が所定時間以内に到来した場合より、大きく設定して、前記リビルド/コピーバックの1回の要求を、前記RAID制御モジュールに発行するステップとを有する
    ことを特徴とするRAIDシステムのリビルド/コピーバック処理方法。
  5. 前記コントローラが、ホストからのI/O要求の内、前記ディスク装置のデータの一部を格納するキャッシュメモリを利用できないI/O要求を、前記通常I/O要求として、前記RAID制御モジュールに要求するステップを更に有する
    ことを特徴とする請求項4のRAIDシステムのリビルド/コピーバック処理方法。
JP2005286926A 2005-09-30 2005-09-30 Raidシステム及びそのリビルド/コピーバック処理方法 Expired - Fee Related JP4817783B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005286926A JP4817783B2 (ja) 2005-09-30 2005-09-30 Raidシステム及びそのリビルド/コピーバック処理方法
US11/361,583 US7631218B2 (en) 2005-09-30 2006-02-23 RAID system and Rebuild/Copy back processing method thereof
CNB2006100547574A CN100432914C (zh) 2005-09-30 2006-03-10 Raid系统及其重构/回拷处理方法
KR1020060022703A KR100793531B1 (ko) 2005-09-30 2006-03-10 Raid 시스템 및 그 리빌드/카피백 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005286926A JP4817783B2 (ja) 2005-09-30 2005-09-30 Raidシステム及びそのリビルド/コピーバック処理方法

Publications (2)

Publication Number Publication Date
JP2007094994A JP2007094994A (ja) 2007-04-12
JP4817783B2 true JP4817783B2 (ja) 2011-11-16

Family

ID=37949488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005286926A Expired - Fee Related JP4817783B2 (ja) 2005-09-30 2005-09-30 Raidシステム及びそのリビルド/コピーバック処理方法

Country Status (4)

Country Link
US (1) US7631218B2 (ja)
JP (1) JP4817783B2 (ja)
KR (1) KR100793531B1 (ja)
CN (1) CN100432914C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378093B2 (en) 2013-04-25 2016-06-28 Globalfoundries Inc. Controlling data storage in an array of storage devices

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4815825B2 (ja) * 2005-03-10 2011-11-16 日本電気株式会社 ディスクアレイ装置及びその再構築方法
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US20070290444A1 (en) * 2005-12-14 2007-12-20 Moses Daniel J Blackjack game with side bet wager
US8819363B2 (en) 2008-02-12 2014-08-26 Fujitsu Limited Data copying method
US20090204775A1 (en) * 2008-02-12 2009-08-13 Fujitsu Limited Data copying method
JP2010009442A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd ディスクアレイシステム、ディスク制御装置及びその再構築処理方法
JP2010033481A (ja) * 2008-07-31 2010-02-12 Fujitsu Ltd 仮想化スイッチおよびコンピュータシステム
US8006128B2 (en) * 2008-07-31 2011-08-23 Datadirect Networks, Inc. Prioritized rebuilding of a storage device
JP5409159B2 (ja) 2009-07-23 2014-02-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP2011070395A (ja) * 2009-09-25 2011-04-07 Canon Inc メモリ制御装置、メモリ制御方法、及びプログラム
CN101770413B (zh) * 2010-01-07 2013-03-20 杭州华三通信技术有限公司 冗余磁盘阵列重建的方法及设备
JP2012018481A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd ディスクアレイ装置およびディスクアレイ制御方法
JP5640572B2 (ja) 2010-09-01 2014-12-17 富士通株式会社 情報処理装置、情報処理プログラムおよびコピー処理方法
US20120110244A1 (en) * 2010-11-02 2012-05-03 Micron Technology, Inc. Copyback operations
JP5807458B2 (ja) 2011-08-31 2015-11-10 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP5744244B2 (ja) * 2011-10-19 2015-07-08 株式会社日立製作所 ストレージシステム
CN102520880B (zh) * 2011-12-01 2014-11-05 浪潮电子信息产业股份有限公司 一种系统raid管理模块设计方法
JP2013164820A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 評価支援方法、評価支援プログラムおよび評価支援装置
JP2014096072A (ja) 2012-11-09 2014-05-22 International Business Maschines Corporation ミラー構成を有するディスクアレイ及びそのリビルド方法
CN103902232B (zh) * 2012-12-28 2018-11-09 联想(北京)有限公司 一种写入的数据的方法及装置
JP6171616B2 (ja) * 2013-06-24 2017-08-02 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US9323630B2 (en) 2013-09-16 2016-04-26 HGST Netherlands B.V. Enhanced data recovery from data storage devices
JP5734469B2 (ja) * 2014-01-15 2015-06-17 キヤノン株式会社 メモリ制御装置、メモリ制御方法、及びプログラム
JP6233279B2 (ja) * 2014-11-07 2017-11-22 コニカミノルタ株式会社 画像形成装置、画像形成装置の制御プログラム、およびコントローラー
CN104461791B (zh) * 2014-11-28 2017-02-01 华为技术有限公司 一种信息处理方法及处理装置
JP6299617B2 (ja) 2015-01-27 2018-03-28 コニカミノルタ株式会社 画像形成装置、画像形成装置の制御プログラム、コントローラー、およびコントローラーの制御プログラム
WO2016135872A1 (ja) 2015-02-25 2016-09-01 株式会社日立製作所 ストレージ装置及び記憶デバイス
CN105117172B (zh) * 2015-08-31 2019-04-02 深圳神州数码云科数据技术有限公司 一种磁盘阵列历史掉盘记录的保存方法
KR102631351B1 (ko) 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
KR20180045220A (ko) 2016-10-25 2018-05-04 삼성전자주식회사 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템
CN107577551A (zh) * 2017-09-06 2018-01-12 郑州云海信息技术有限公司 一种固态硬盘写失败处理方法及系统
CN107705388A (zh) * 2017-09-13 2018-02-16 陕西千山航空电子有限责任公司 一种基于RapidIO总线的防护记录器
CN110704248B (zh) * 2019-09-04 2023-01-10 苏州浪潮智能科技有限公司 一种可调速率的磁盘阵列重构方法、装置及电子设备
CN111880962B (zh) * 2020-07-24 2022-06-10 北京浪潮数据技术有限公司 一种raid重构速度控制方法、系统及装置

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.
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5802264A (en) * 1991-11-15 1998-09-01 Fujitsu Limited Background data reconstruction in a storage device array system
US5537566A (en) 1991-12-17 1996-07-16 Fujitsu Limited Apparatus and method for controlling background processing in disk array device
JP2548475B2 (ja) * 1991-12-17 1996-10-30 富士通株式会社 アレイディスク装置のデータ復元量制御方法
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
US5446855A (en) * 1994-02-07 1995-08-29 Buslogic, Inc. System and method for disk array data transfer
US5708796A (en) * 1994-11-18 1998-01-13 Lucent Technologies Inc. Method of retrieving continuous and non-continuous media data from a file system
CA2201691C (en) * 1996-04-15 2001-07-17 Raju C. Bopardikar Data storage
JP3552471B2 (ja) * 1996-07-29 2004-08-11 ソニー株式会社 データ記録再生装置および方法
US6185368B1 (en) * 1996-07-29 2001-02-06 Sony Corporation Redundant disk array with real-time lost data reconstruction
JPH11102261A (ja) 1997-09-25 1999-04-13 Mitsubishi Electric Corp 記憶制御システム
KR100250476B1 (ko) 1997-12-23 2000-04-01 정선종 레이드 레벨 5 시스템에서의 빠른 시스템 재구성 방법
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 ディスクアレイ装置
KR100306477B1 (ko) * 1999-10-26 2001-11-02 서평원 알디씨에서 에스씨에스아이 관련 태스크의 구조 및 그 운용방법
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
JP3453376B2 (ja) * 2000-11-02 2003-10-06 松下電器産業株式会社 調停方法、調停装置
US6886108B2 (en) * 2001-04-30 2005-04-26 Sun Microsystems, Inc. Threshold adjustment following forced failure of storage device
US6785788B1 (en) * 2001-07-03 2004-08-31 Unisys Corporation System and method for implementing an enhanced raid disk storage system
JP4972845B2 (ja) * 2001-09-27 2012-07-11 富士通株式会社 ストレージシステム
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
JP4322068B2 (ja) 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
GB2400935B (en) 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
US7143305B2 (en) * 2003-06-25 2006-11-28 International Business Machines Corporation Using redundant spares to reduce storage device array rebuild time
KR100505178B1 (ko) * 2003-09-24 2005-08-03 매크로임팩트 주식회사 공유 논리 볼륨 상태에 따른 주소 변환 방법 및 주소 변환시스템
JP2005099995A (ja) * 2003-09-24 2005-04-14 Fujitsu Ltd 磁気ディスク装置のディスク共有方法及びシステム
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378093B2 (en) 2013-04-25 2016-06-28 Globalfoundries Inc. Controlling data storage in an array of storage devices

Also Published As

Publication number Publication date
CN100432914C (zh) 2008-11-12
JP2007094994A (ja) 2007-04-12
CN1940849A (zh) 2007-04-04
US7631218B2 (en) 2009-12-08
US20070088976A1 (en) 2007-04-19
KR100793531B1 (ko) 2008-01-14
KR20070037289A (ko) 2007-04-04

Similar Documents

Publication Publication Date Title
JP4817783B2 (ja) Raidシステム及びそのリビルド/コピーバック処理方法
JP4472617B2 (ja) Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法
JP6074056B2 (ja) 計算機システムおよびデータ制御方法
US7093043B2 (en) Data array having redundancy messaging between array controllers over the host bus
US6957303B2 (en) System and managing method for cluster-type storage
JP4413184B2 (ja) データストレージシステム及びデータストレージ制御装置
US11157376B2 (en) Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
JP4401305B2 (ja) デイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置
JP2007122476A (ja) データストレージシステム、データストレージ制御装置及びそのディスクのライト抜け診断方法
US20110282963A1 (en) Storage device and method of controlling storage device
JP2009053946A (ja) 二重化コントーラ構成ブロックデバイス制御装置
US7426658B2 (en) Data storage system and log data equalization control method for storage control apparatus
US20120017057A1 (en) Data copying device, method for copying data and data storage device
JP6825263B2 (ja) ストレージ制御装置、およびストレージシステム
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JP3250859B2 (ja) ディスクアレイ装置、コンピュータシステム及びデータ記憶装置
JP2004164171A (ja) パス冗長化装置及び方法
JP2012194867A (ja) ストレージ装置および制御装置
JPH0830402A (ja) パリティ格納方法
JP4452697B2 (ja) ディスクアレイ制御装置
JP4571963B2 (ja) ディスクアレイ制御装置
JP2003263278A (ja) ディスクアレイ制御装置
JP2005215722A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091013

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100527

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100610

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100702

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

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4817783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees