JP6652647B2 - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JP6652647B2 JP6652647B2 JP2018539482A JP2018539482A JP6652647B2 JP 6652647 B2 JP6652647 B2 JP 6652647B2 JP 2018539482 A JP2018539482 A JP 2018539482A JP 2018539482 A JP2018539482 A JP 2018539482A JP 6652647 B2 JP6652647 B2 JP 6652647B2
- Authority
- JP
- Japan
- Prior art keywords
- parity
- address
- data
- storage device
- new
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Description
図13及び図14は、本実施例におけるホスト計算機101からのライト要求に応じたデータ更新の他の正常シーケンス例を示す。以下においては、図3及び4に示すシーケンス例との違いを主に説明する。図3及び4に示すシーケンス例における前データアドレス321及び前パリティアドレス322並びにそれらの格納ステップS13、S18が、図13及び図14のシーケンスにおいて省略されている。他の点は、図3及び4に示すシーケンスと図13及び図14に示すシーケンスとで同様である。
Claims (6)
- メモリ領域を含む、コントローラと、
それぞれが記憶媒体を含む複数の記憶デバイスと、を含み、
前記コントローラは、
ホストからライト要求を受信し、
前記ライト要求が示す指定アドレスに対応する中間パリティ生成コマンドを、前記複数の記憶デバイスにおける第1記憶デバイスに、送信し、
前記中間パリティ生成コマンドは、前記指定アドレスの新データと前記新データに更新される前データとから、中間パリティを生成することを指示し、
前記中間パリティ生成コマンドは、前記新データを格納している前記メモリ領域の第1アドレスと、前記中間パリティを格納するための前記メモリ領域の第2アドレスとを含み、
前記第1記憶デバイスは、
前記中間パリティ生成コマンドを受信し、
前記第1アドレスから前記新データを取得し、
前記新データと、前記第1記憶デバイスに記憶されている前記前データと、から前記中間パリティを生成し、
前記中間パリティを、前記第2アドレスに格納し、
前記コントローラは、前記複数の記憶デバイスにおける第2記憶デバイスに、新パリティ生成コマンドを送信し、
前記新パリティ生成コマンドは、前記中間パリティと、前記指定アドレスの前データに関する前パリティとから、新パリティを生成することを指示し、
前記新パリティ生成コマンドは、前記第2アドレスを含み、
前記第2記憶デバイスは、
前記新パリティ生成コマンドを受信し、
前記第2アドレスから前記中間パリティを読み出し、
前記中間パリティと、前記第2記憶デバイスに記憶されている前記前パリティとから、前記新パリティを生成し、
前記コントローラは、複数のプロセッサを含み、
前記複数のプロセッサにおける第1プロセッサは、前記ライト要求の処理を開始し、
前記第1プロセッサは、前記複数のプロセッサにより共有された共有記憶領域に、前記ライト要求の処理フェーズを示すライト要求管理情報を格納し、
前記複数のプロセッサにおける第2プロセッサは、
前記第1プロセッサの障害に応答して前記ライト要求の処理を引き継ぎ、
前記共有記憶領域の前記ライト要求管理情報を参照して、前記ライト要求の処理におけるフェーズを特定し、
前記ライト要求管理情報が前記新パリティの生成前であることを示す場合、前記第2プロセッサは、前記第1記憶デバイス及び前記第2記憶デバイスに、前記中間パリティ生成コマンド及び前記新パリティ生成コマンドの処理を中止することを指示する、リセットコマンドをそれぞれ送信する、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第1記憶デバイスは、
前記指定アドレスと前記指定アドレスに関するデータを格納している前記第1記憶デバイスの記憶媒体のアドレスとの対応関係を示すマッピング情報と、前記前データを格納している前記第1記憶デバイスの記憶媒体のアドレスと、を管理し、
前記第1記憶デバイスの記憶媒体において、前記新データを前記前データと異なるアドレスに格納し、
前記マッピング情報において、前記指定アドレスに対応するアドレスを、前記新データのアドレスに更新し、
前記リセットコマンドに応答して、前記マッピング情報において、前記指定アドレスに対応するアドレスを、前記前データのアドレスに書き戻す、ストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記第1記憶デバイスは、前記第1記憶デバイスの記憶媒体において、前記新データを前記前データと異なるアドレスに格納し、
前記第2記憶デバイスは、前記第2記憶デバイスの記憶媒体において、前記新パリティを前記前パリティと異なるアドレスに格納し、
前記ライト要求管理情報が前記新パリティの生成前であることを示す場合、前記第2プロセッサは、前記新データを含むストライプ列のデータを、前記複数の記憶デバイスから取得し、取得した前記ストライプ列のデータからパリティを生成して前記第2記憶デバイスに格納する、ストレージシステム。 - メモリ領域を含むコントローラと、それぞれが記憶媒体を含む複数の記憶デバイスと、を含むストレージシステムにおける、データ格納の方法であって、
前記コントローラが、ホストからライト要求を受信し、
前記コントローラが、前記ライト要求が示す指定アドレスに対応する中間パリティ生成コマンドを、前記複数の記憶デバイスにおける第1記憶デバイスに、送信し、
前記中間パリティ生成コマンドは、前記指定アドレスの新データと前記新データに更新される前データとから、中間パリティを生成することを指示し、
前記中間パリティ生成コマンドは、前記新データを格納している前記メモリ領域の第1アドレスと、前記中間パリティを格納するための前記メモリ領域の第2アドレスとを含み、
前記第1記憶デバイスが、前記中間パリティ生成コマンドを受信し、
前記第1記憶デバイスが、前記第1アドレスから前記新データを取得し、
前記第1記憶デバイスが、前記新データと、前記第1記憶デバイスに記憶されている前記前データと、から前記中間パリティを生成し、
前記第1記憶デバイスが、前記中間パリティを、前記第2アドレスに格納し、
前記コントローラが、前記複数の記憶デバイスにおける第2記憶デバイスに、新パリティ生成コマンドを送信し、
前記新パリティ生成コマンドは、前記中間パリティと、前記指定アドレスの前データに関する前パリティとから、新パリティを生成することを指示し、
前記新パリティ生成コマンドは、前記第2アドレスを含み、
前記第2記憶デバイスが、前記新パリティ生成コマンドを受信し、
前記第2記憶デバイスが、前記第2アドレスから前記中間パリティを読み出し、
前記第2記憶デバイスが、前記中間パリティと、前記第2記憶デバイスに記憶されている前記前パリティとから、前記新パリティを生成し、
前記コントローラは、複数のプロセッサを含み、
前記複数のプロセッサにおける第1プロセッサが、前記ライト要求の処理を開始し、
前記第1プロセッサが、前記複数のプロセッサにより共有された共有記憶領域に、前記ライト要求の処理フェーズを示すライト要求管理情報を格納し、
前記複数のプロセッサにおける第2プロセッサが、前記第1プロセッサの障害に応答して前記ライト要求の処理を引き継ぎ、
前記第2プロセッサが、前記共有記憶領域の前記ライト要求管理情報を参照して、前記ライト要求の処理におけるフェーズを特定し、
前記ライト要求管理情報が前記新パリティの生成前であることを示す場合、前記コントローラが、前記第1記憶デバイス及び前記第2記憶デバイスに、前記中間パリティ生成コマンド及び前記新パリティ生成コマンドの処理を中止することを指示する、リセットコマンドをそれぞれ送信する、方法。 - 請求項4に記載の方法であって、
前記第1記憶デバイスが、前記指定アドレスと前記指定アドレスに関するデータを格納している前記第1記憶デバイスの記憶媒体のアドレスとの対応関係を示すマッピング情報と、前記前データを格納している前記第1記憶デバイスの記憶媒体のアドレスと、を管理し、
前記第1記憶デバイスが、前記第1記憶デバイスの記憶媒体において、前記新データを前記前データと異なるアドレスに格納し、
前記第1記憶デバイスが、前記マッピング情報において、前記指定アドレスに対応するアドレスを、前記新データのアドレスに更新し、
前記第1記憶デバイスが、前記リセットコマンドに応答して、前記マッピング情報において、前記指定アドレスに対応するアドレスを、前データのアドレスに書き戻す、方法。 - 請求項4に記載の方法であって、
前記第1記憶デバイスが、前記第1記憶デバイスの記憶媒体において、前記新データを前記前データと異なるアドレスに格納し、
前記第2記憶デバイスが、前記第2記憶デバイスの記憶媒体において、前記新パリティを前記前パリティと異なるアドレスに格納し、
前記ライト要求管理情報が前記新パリティの生成前であることを示す場合、前記第2プロセッサが、前記新データを含むストライプ列のデータを、前記複数の記憶デバイスから取得し、取得した前記ストライプ列のデータからパリティを生成して前記第2記憶デバイスに格納する、方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/077533 WO2018051505A1 (ja) | 2016-09-16 | 2016-09-16 | ストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018051505A1 JPWO2018051505A1 (ja) | 2018-11-29 |
JP6652647B2 true JP6652647B2 (ja) | 2020-02-26 |
Family
ID=61618717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018539482A Active JP6652647B2 (ja) | 2016-09-16 | 2016-09-16 | ストレージシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10664193B2 (ja) |
JP (1) | JP6652647B2 (ja) |
CN (1) | CN109313593B (ja) |
WO (1) | WO2018051505A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023388B2 (en) * | 2018-09-21 | 2021-06-01 | SK Hynix Inc. | Data path protection parity determination for data patterns in storage devices |
JP2020177501A (ja) * | 2019-04-19 | 2020-10-29 | 株式会社日立製作所 | ストレージシステム、そのドライブ筐体、およびパリティ演算方法。 |
US11971782B2 (en) | 2020-02-20 | 2024-04-30 | Sk Hynix Nand Product Solutions Corp. | On-SSD erasure coding with uni-directional commands |
CN111752487B (zh) * | 2020-06-18 | 2024-01-12 | 深圳大普微电子科技有限公司 | 一种数据恢复方法、装置及固态硬盘 |
CN115206406A (zh) * | 2021-04-12 | 2022-10-18 | 伊姆西Ip控股有限责任公司 | 管理独立磁盘冗余阵列的方法和装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533190A (en) * | 1994-12-21 | 1996-07-02 | At&T Global Information Solutions Company | Method for maintaining parity-data consistency in a disk array |
US6112255A (en) * | 1997-11-13 | 2000-08-29 | International Business Machines Corporation | Method and means for managing disk drive level logic and buffer modified access paths for enhanced raid array data rebuild and write update operations |
KR20110031441A (ko) * | 2008-06-06 | 2011-03-28 | 피봇3 | 분산 raid 구현을 위한 방법 및 시스템 |
US8219760B2 (en) * | 2009-04-06 | 2012-07-10 | Hitachi, Ltd. | Storage subsystem and its control method |
US8806300B2 (en) * | 2009-05-25 | 2014-08-12 | Hitachi, Ltd. | Storage subsystem |
US8132044B1 (en) * | 2010-02-05 | 2012-03-06 | Symantec Corporation | Concurrent and incremental repair of a failed component in an object based storage system for high availability |
US9684591B2 (en) * | 2012-04-27 | 2017-06-20 | Hitachi, Ltd. | Storage system and storage apparatus |
US8984374B2 (en) * | 2012-04-27 | 2015-03-17 | Hitachi, Ltd. | Storage system and storage control apparatus |
WO2014170984A1 (ja) * | 2013-04-18 | 2014-10-23 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
US9424126B2 (en) * | 2013-09-03 | 2016-08-23 | Kabushiki Kaisha Toshiba | Memory controller |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
WO2015121912A1 (ja) | 2014-02-12 | 2015-08-20 | 株式会社日立製作所 | データ記憶装置 |
US9778986B2 (en) | 2014-03-28 | 2017-10-03 | Hitachi, Ltd. | Storage system |
US9384093B1 (en) * | 2014-05-28 | 2016-07-05 | Microsemi Storage Solutions (U.S.), Inc. | Raid enabled NVME device |
JP6328335B2 (ja) * | 2015-06-01 | 2018-05-23 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
US10585749B2 (en) * | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
-
2016
- 2016-09-16 CN CN201680086779.0A patent/CN109313593B/zh active Active
- 2016-09-16 WO PCT/JP2016/077533 patent/WO2018051505A1/ja active Application Filing
- 2016-09-16 JP JP2018539482A patent/JP6652647B2/ja active Active
- 2016-09-16 US US16/084,916 patent/US10664193B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190087122A1 (en) | 2019-03-21 |
US10664193B2 (en) | 2020-05-26 |
CN109313593A (zh) | 2019-02-05 |
JPWO2018051505A1 (ja) | 2018-11-29 |
WO2018051505A1 (ja) | 2018-03-22 |
CN109313593B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698818B2 (en) | Storage controller caching using symmetric storage class memory devices | |
US9304901B2 (en) | System and method for handling I/O write requests | |
JP6652647B2 (ja) | ストレージシステム | |
US8839030B2 (en) | Methods and structure for resuming background tasks in a clustered storage environment | |
US8392670B2 (en) | Performance management of access to flash memory in a storage device | |
US20050203961A1 (en) | Transaction processing systems and methods utilizing non-disk persistent memory | |
US11509716B2 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
US11516287B2 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
US8799573B2 (en) | Storage system and its logical unit management method | |
US11416403B2 (en) | Method and apparatus for performing pipeline-based accessing management in storage server with aid of caching metadata with hardware pipeline module during processing object write command | |
US11315028B2 (en) | Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system | |
US10210060B2 (en) | Online NVM format upgrade in a data storage system operating with active and standby memory controllers | |
US10191690B2 (en) | Storage system, control device, memory device, data access method, and program recording medium | |
US11200210B2 (en) | Method of efficient backup of distributed file system files with transparent data access | |
US11385815B2 (en) | Storage system | |
CN112748865A (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11327895B1 (en) | Protocol for processing requests that assigns each request received by a node a sequence identifier, stores data written by the request in a cache page block, stores a descriptor for the request in a cache page descriptor, and returns a completion acknowledgement of the request | |
WO2018055686A1 (ja) | 情報処理システム | |
US11709614B2 (en) | Reducing write delays while taking snapshots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190809 |
|
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: 20200114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200123 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6652647 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |