JP5245472B2 - 制御方法、ディスクアレイ装置 - Google Patents
制御方法、ディスクアレイ装置 Download PDFInfo
- Publication number
- JP5245472B2 JP5245472B2 JP2008063973A JP2008063973A JP5245472B2 JP 5245472 B2 JP5245472 B2 JP 5245472B2 JP 2008063973 A JP2008063973 A JP 2008063973A JP 2008063973 A JP2008063973 A JP 2008063973A JP 5245472 B2 JP5245472 B2 JP 5245472B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- disk
- old
- buffer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1019—Fast writes, i.e. signaling the host that a write is done before data is written to disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
(実施例1)
[1.RAIDシステム100]
図1は本実施例に係るRAIDシステム100の構成図であるRAIDシステム100は、ホストコンピュータ101、CA(チャネルアダプタ)102、CM(コントローラモジュール)103、ディスク104、105、106、107から構成されている。RAIDシステム100は、各データのストライプが、3つのデータストライプと1のパリティストライプで構成されているRAID5である。RAID5のいわゆる(3+1)の構成である。
ホストコンピュータ101は、書き込み命令、読み出し命令をCA102に出す。ホストコンピュータ101は、書き込み命令と共にディスク104〜107に書き込むデータをCA102に送る。
CA102は、ホストコンピュータ101とCM103との間で通信制御を行う。CA102は、ホストコンピュータ101からCM103への書き込み命令又は読み出し命令を処理して、ホストコンピュータ101とCM103との間のデータ転送を制御する。
[1.3.CM(コントローラモジュール)103]
CM103は、CA102を介してホストコンピュータ101から受信するデータをディスク104〜107に分散して格納する。本実施例において、CM103は、データ(New Data)108をディスク104に書き込み、パリティデータ(Old Parity)110をパリティデータ(New Parity)111に更新する場合を考える。
そこで本実施例に係るCM103は以下の処理を行い、上記問題であるCM103が有するパリティバッファの容量枯渇を制御する。
上記に示したようにディスク104〜107は、CM103を介して、ホストコンピュータ101が送るデータを分散して格納している。
CPU308がバッファ獲得手段301を実行し、メモリ310上でデータバッファ311、パリティバッファ312の獲得処理を行う。ホストコンピュータ101からスモールライト(Small Write)のデータ書き込み命令があると、バッファ獲得手段301は、データ(Old Data)109とデータ(Old Parity)110を読み出すためのデータバッファ311、パリティバッファ312をメモリ310上に確保する。より具体的にはバッファ獲得手段301は、メモリ310の一定のアドレス範囲にデータ(Old Data)109とデータ(Old Parity)110を格納できる領域を割り当てる処理を行う。
CPU308がデータ読み出し手段302を実行し、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す処理を行う。バッファ獲得手段301がデータバッファ311、パリティバッファ312をメモリ310上に獲得した後、データ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す。データ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を格納する。
CPU308がパリティ生成手段303を実行し、パリティデータ(New Parity)111を生成する。まずパリティ生成手段303は、データバッファ311のデータ(Old Data)109とパリティバッファ312のパリティデータ(Old Parity)110の排他的論理和(XOR)を計算して中間結果を算出した後、パリティ生成303は中間結果とキャッシュ309のデータ(New Data)108との排他的論理和(XOR)を計算してパリティデータ(New Parity)111を生成する。パリティ生成手段303はパリティデータ(New Parity)111をパリティバッファ312に格納する。
CPU308がデータ書き込み手段304を実行し、ディスク104にデータ(New Data)108を、ディスク107にパリティデータ(New Parity)111を書き込む処理を試みる。正常にデータ書き込み処理手段304が書き込み処理を実行できれば、データ(New Data)108をディスク104、パリティデータ(New Parity)111をディスク107に書き込むことができる。
CPU308が整合判定手段305を実行し、ディスク107に格納されるパリティデータを読み出し、パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較する。パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致しないと判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができなかったと判定する。またパリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致すると判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができたと判定する。
CPU308がデータ書き戻し手段306を実行し、データ(Old Data)109をデータバッファ311に書き戻す。データ書き込み手段306がパリティデータ(New Parity)111をディスク107へ書き込み失敗した場合に、データ書き戻し手段306はデータ(Old Data)109をデータバッファ311に書き戻す。
CPU308がバッファ開放手段307を実行し、パリティバッファ312に格納するパリティデータ(New Parity)111を削除する。
図4は本実施例に係るCM103が処理するパリティバッファ312の容量枯渇の制御に関するフローチャートである。
[4.コマンドリトライの処理に関するフローチャート]
図7は本実施例に係るコマンドリトライの処理を図解した図である。そして図8は本実施例に係るCM103が実行するコマンドリトライの処理を示すフローチャートである。
(実施例2)
[5.RAIDシステム900]
図9は本実施例に係るRAID900の構成図である。RAIDシステム900は、RAIDシステム100と同様RAID5の構成である。RAIDシステム900はホストコンピュータ、CA(チャネルアダプタ)、CM(コントロールモジュール)901、ディスク902〜905から構成されている。そしてRAIDシステム900では、ディスク903が故障していわゆるRAID構成が縮退した場合について説明する。そしてディスク903の故障のタイミングは、ディスク905にパリティデータ(New Parity)911を書き込み成功したときとする。
図10は本実施例に係るCM901の機能ブロック図である。図11は本実施例に係るデータ(Old Data)1201の復元を行う処理フローチャートである。図12はディスク903からデータ(Old Data)1201を復元する処理手順を図解した図である。CM901が各処理手順を行う機能は図10に示す機能である。
図13は本実施例に係るデータバッファ907及びパリティバッファ908の開放に関するフローチャートである。
08の負荷率に応じて、パリティデータ(New Parity)910を再作成する。
他にもRAIDシステム(RAID5の構成)におけるデータの書き込み失敗パターンを例示する。図15は本実施例に係るRAIDシステム1500におけるバッファ容量の枯渇制御を図解した図である。
102…チャネルアダプタ(CA)
103…コントローラモジュール(CM)
104…ディスク
105…ディスク
106…ディスク
107…ディスク
108…データ(Old Data)
109…データ(New Data)
110…パリティデータ(Old Parity)
111…パリティデータ(New Parity)
200…データテーブル
301…バッファ獲得手段
302…データ読み出し手段
303…パリティ生成手段
304…データ書き込み手段
305…整合判定手段
306…データ書き戻し手段
307…バッファ開放手段
Claims (3)
- キャッシュと、パリティバッファと、データバッファとを有し、少なくとも1つの第1のディスクと、第2のディスクと、第3のディスクと、第4のディスクとを含む複数のディスクに接続されるコントローラの制御方法において、
受信した新データを前記キャッシュに格納し、
前記新データと、前記第1のディスクに格納されている第1の旧データと、前記第1の旧データ及び前記第2のディスクに格納されている第2の旧データによって形成されるストライプに対応する旧パリティデータとに基づいて、新パリティデータを生成し、生成した新パリティデータを前記パリティバッファに格納し、
前記パリティバッファに格納されている前記新パリティデータを前記第4のディスクに書き込み、
前記第2のディスクが故障し、かつ前記データバッファに格納されている前記新データと前記第1のディスクに格納されている前記新データとが異なる場合に、
前記第1のディスクに格納されている前記第1の旧データと、前記第3のディスクに格納されている第3の旧データと、前記パリティバッファに格納されている前記旧パリティデータとに基づいて、前記第2の旧データを復元し、
前記パリティバッファに格納されている前記旧パリティデータを削除し、
復元した前記第2の旧データと、前記第3の旧データとを前記キャッシュに格納し、
前記キャッシュに格納されている、前記新データ、前記第2の旧データ、および前記第3の旧データに基づいて、前記新パリティデータを再生成し、
再生成した前記新パリティデータを前記第4のディスクに格納し、
前記コントローラにかかる負荷率が所定の値以下であると判定された場合にのみ、前記負荷率が高くなるほど長く設定される所定の時間間隔で前記新パリティデータを再生成する、
ことを特徴とする制御方法。 - 前記第1のディスクに格納されている前記第1の旧データをデータバッファに格納し、
前記第3のディスクに格納されている前記新パリティデータを前記パリティバッファに格納し、
前記第1のデータと、前記データバッファに格納されている前記第1の旧データと、前記パリティバッファに格納されている前記新パリティデータとに基づいて、前記旧パリティデータを生成し、
前記第2の旧データを復元した場合に、前記パリティバッファに格納されている前記新パリティデータと、前記データバッファに格納されている前記第1の旧データとを削除する、
ことを特徴とする請求項1記載の制御方法。 - 少なくとも1つの第1のディスクと、第2のディスクと、第3のディスクとを含む複数のディスクと、
受信した新データをキャッシュに格納し、前記新データと、前記第1のディスクに格納されている第1の旧データと、前記第1の旧データ及び前記第2のディスクに格納されている第2の旧データによって形成されるストライプに対応する旧パリティデータとに基づいて、新パリティデータを生成し、生成した新パリティデータを前記パリティバッファに格納し、前記パリティバッファに格納されている前記新パリティデータを前記第4のディスクに書き込み、前記第2のディスクが故障し、かつ前記パリティバッファに格納されている前記新パリティデータと前記第4のディスクに格納されている前記新パリティデータとが異なる場合に、前記第1のディスクに格納されている前記第1の旧データと、前記第3のディスクに格納されている第3の旧データと、前記パリティバッファに格納されている前記旧パリティデータとに基づいて、前記第2の旧データを復元し、前記パリティバッファに格納されている前記旧パリティデータを削除し、復元した前記第2の旧データと、前記第3の旧データとを前記キャッシュに格納し、前記キャッシュに格納されている、前記新データ、前記第2の旧データ、および前記第3の旧データに基づいて、前記新パリティデータを再生成し、再生成した前記新パリティデータを前記第4のディスクに格納する制御部と、
を備え、
前記制御部にかかる負荷率が所定の値以下であると判定された場合にのみ、前記負荷率が高くなるほど長く設定される所定の時間間隔で前記新パリティデータを再生成することを特徴とするディスクアレイ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008063973A JP5245472B2 (ja) | 2008-03-13 | 2008-03-13 | 制御方法、ディスクアレイ装置 |
US12/369,389 US8015435B2 (en) | 2008-03-13 | 2009-02-11 | Data writing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008063973A JP5245472B2 (ja) | 2008-03-13 | 2008-03-13 | 制御方法、ディスクアレイ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223367A JP2009223367A (ja) | 2009-10-01 |
JP5245472B2 true JP5245472B2 (ja) | 2013-07-24 |
Family
ID=41064307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008063973A Expired - Fee Related JP5245472B2 (ja) | 2008-03-13 | 2008-03-13 | 制御方法、ディスクアレイ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8015435B2 (ja) |
JP (1) | JP5245472B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762292B2 (en) * | 2009-10-23 | 2014-06-24 | True Fit Corporation | System and method for providing customers with personalized information about products |
US8719621B1 (en) * | 2010-05-05 | 2014-05-06 | Marvell International Ltd. | Solid-state disk cache assisted redundant array of independent disks |
US9213486B2 (en) * | 2012-02-22 | 2015-12-15 | International Business Machines Corporation | Writing new data of a first block size to a second block size using a write-write mode |
JP6163588B2 (ja) * | 2016-05-11 | 2017-07-12 | 株式会社日立製作所 | ストレージシステム |
JP6750011B2 (ja) * | 2016-06-15 | 2020-09-02 | 株式会社日立製作所 | 情報処理システム |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10872010B2 (en) * | 2019-03-25 | 2020-12-22 | Micron Technology, Inc. | Error identification in executed code |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
JP3011020B2 (ja) * | 1993-09-27 | 2000-02-21 | 株式会社日立製作所 | アレイ型デイスクシステム |
US5574882A (en) * | 1995-03-03 | 1996-11-12 | International Business Machines Corporation | System and method for identifying inconsistent parity in an array of storage |
US5875456A (en) * | 1995-08-17 | 1999-02-23 | Nstor Corporation | Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array |
JP2001142650A (ja) * | 1999-11-18 | 2001-05-25 | Nec Corp | アレイディスク制御方法及び装置 |
JP2003167687A (ja) * | 2001-11-29 | 2003-06-13 | Nec Corp | ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム |
JP3590015B2 (ja) | 2001-11-30 | 2004-11-17 | 株式会社東芝 | ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法 |
US7360112B2 (en) * | 2005-02-07 | 2008-04-15 | International Business Machines Corporation | Detection and recovery of dropped writes in storage devices |
JP4435705B2 (ja) | 2005-03-14 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
US20080140724A1 (en) * | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
-
2008
- 2008-03-13 JP JP2008063973A patent/JP5245472B2/ja not_active Expired - Fee Related
-
2009
- 2009-02-11 US US12/369,389 patent/US8015435B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090235114A1 (en) | 2009-09-17 |
US8015435B2 (en) | 2011-09-06 |
JP2009223367A (ja) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8904129B2 (en) | Method and apparatus for backup and restore in a dynamic chunk allocation storage system | |
JP4754852B2 (ja) | ストレージ制御装置および方法 | |
US9053075B2 (en) | Storage control device and method for controlling storages | |
JP5245472B2 (ja) | 制御方法、ディスクアレイ装置 | |
KR102533389B1 (ko) | 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 | |
US9135119B1 (en) | System and method for data management | |
US10459638B2 (en) | Computer system that generates group information and redundant code based on user data and changes the group information and redundant code based on transmission data, control method for computer system, and recording medium | |
KR101821001B1 (ko) | Raid 어레이에서 장치내 데이터 보호 | |
JP4719802B2 (ja) | ストレージ管理装置、ストレージ管理方法およびストレージシステム | |
US11698728B2 (en) | Data updating technology | |
WO2015052798A1 (ja) | ストレージシステム及び記憶制御方法 | |
US20090204846A1 (en) | Automated Full Stripe Operations in a Redundant Array of Disk Drives | |
CN106776147B (zh) | 一种差异数据备份方法和差异数据备份装置 | |
US8225136B2 (en) | Control method and storage device | |
JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
US20220342758A1 (en) | Recovery from partial device error in data storage system | |
CN106528338A (zh) | 一种远程数据复制方法、存储设备及存储系统 | |
US20170371782A1 (en) | Virtual storage | |
US10740189B2 (en) | Distributed storage system | |
US11340826B2 (en) | Systems and methods for strong write consistency when replicating data | |
US8402231B2 (en) | Storage device, method for restoring data in storage device and storage controller | |
JP2010026812A (ja) | 磁気ディスク装置 | |
US9547554B2 (en) | Mass storage device and method of operating the same to store parity data | |
JP5773446B2 (ja) | 記憶装置、冗長性回復方法、およびプログラム | |
JP5598124B2 (ja) | データ記録再生装置、データ記録方法、及び、データ記録プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120410 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120717 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120918 |
|
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: 20130312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130325 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160419 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |