JP6175566B2 - ストレージシステム及び記憶制御方法 - Google Patents

ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
JP6175566B2
JP6175566B2 JP2016530687A JP2016530687A JP6175566B2 JP 6175566 B2 JP6175566 B2 JP 6175566B2 JP 2016530687 A JP2016530687 A JP 2016530687A JP 2016530687 A JP2016530687 A JP 2016530687A JP 6175566 B2 JP6175566 B2 JP 6175566B2
Authority
JP
Japan
Prior art keywords
partition
data
controller
processor
page
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
JP2016530687A
Other languages
English (en)
Other versions
JPWO2016001962A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016001962A1 publication Critical patent/JPWO2016001962A1/ja
Application granted granted Critical
Publication of JP6175566B2 publication Critical patent/JP6175566B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2084Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring on the same storage unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error 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 processing functionality is redundant
    • G06F11/2041Error 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 processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、概して、記憶制御に関し、例えば、ストレージコントローラの技術に関する。
従来、ストレージシステムに関する構成情報及びコンピュータプログラム等(以下「構成情報等」という)は、ストレージコントローラ(以下「コントローラ」という)の備えるフラッシュメモリに格納されていた。しかし、ストレージシステムの大容量化及び高性能化に伴い、構成情報等の量が増大し、構成情報等をフラッシュメモリに格納しきれなくなってきた。そこで、フラッシュメモリに代えて、コントローラがキャッシュデータの格納用に備えるSSD(Solid State Drive)(「キャッシュ用SSD」という)に構成情報等を格納することが検討されている(特許文献1、2)。
特開2003−162377号公報 特開2008−165573号公報
しかし、構成情報等の格納先となるSSDは、或るページが、その性質上、リード及びライトが不可能となってしまう「不良ページ」の発生する確率が高い。また、SSDがコントローラから着脱可能であり、さらに、そのコントローラがストレージシステムから着脱可能な構成においては、或るストレージシステムに、他のストレージシステムの構成情報等を有するSSDが、誤って装着されてしまうおそれがある。
そこで、本発明の目的は、不良ページの発生しやすいSSDのような記憶デバイス内に、信頼性の高い記憶領域を設けることにある。また、本発明の別の目的は、着脱可能な記憶デバイスに構成情報等を格納するような構成において、誤って他のストレージシステムの構成情報等が使用されることを防止することにある。
一実施例に係るストレージシステムは、プロセッサと、記憶デバイスとを備え、プロセッサは、記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、1の正区画と1の副区画とを対応付けて管理し、正区画にライトしたデータを、その正区画に対応する副区画にもライトする。
本発明によれば、不良ページの発生しやすいSSDのような記憶デバイス内に、信頼性の高い記憶領域を設けることができる。また、本発明によれば、着脱可能な記憶デバイスに構成情報等を格納する構成において、誤って他のストレージシステムの構成情報等が使用されることを防止することができる。
実施例1に係るストレージシステムの構成例を示す。 キャッシュ用SSDに対するリード処理時に不良ページを検知した場合の処理概要を示す。 キャッシュ用SSDに対するライト処理時に不良ページを検知した場合の処理概要を示す。 データが格納済みのページに新たなデータをオーバーライトする処理概要を示す。 キャッシュ用SSDに対するリード処理の一例のフローチャートを示す。 キャッシュ用SSD23に対するライト処理の一例のフローチャートを示す。 副ページの検査処理の一例のフローチャートを示す 実施例2に係るストレージシステムのコントローラユニットの構成例を示す。 交換パターンの一例のテーブルを示す。 リストア処理の一例のフローチャートを示す。
以下、一実施例を説明する。
以下の説明では、「xxxテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、コンピュータプログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェイスデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
図1は、実施例1に係るストレージシステムの構成例を示す。
ストレージシステム1には、通信ネットワーク3を通じて、ホストコンピュータ2が接続されている。ストレージシステム1は、ホストコンピュータ2に対して、データの記憶領域としての論理ボリュームを提供する。ストレージシステム1は、ホストコンピュータ2から送信されたライト要求に従ってデータを格納する。ストレージシステム1は、ホストコンピュータ2から送信されたリード要求に従って所望のデータをホストコンピュータ2に送信する。通信ネットワーク3の一例としては、SAN(Storage Area Network)、LAN(Local Area Network)及びインターネット網などがある。
ストレージシステム1は、1又は2以上のコントローラ20を備えるコントローラユニット10と、スイッチ31及び複数の記憶デバイス32を備えるドライブユニット11とを有する。
ドライブユニット11において、複数の記憶デバイス32がスイッチ31に接続されている。記憶デバイス32の一例としては、HDD(Hard Disk Drive)又はSSDなどがある。
コントローラ20は、記憶デバイス32の記憶領域を制御する。コントローラ20は、ホストコンピュータ2から送信されたライト要求に従って記憶デバイス32の記憶領域にデータをライトしたり、ホストコンピュータ2から送信されたリード要求に従って記憶デバイス32の記憶領域から所望のデータをリードしたりする。コントローラ20は、プロセッサ21と、メインメモリ22と、キャッシュ用SSD23と、通信I/F(Interface)24と、ドライブI/F25とを有し、これらの要素21〜25は双方向にデータ通信可能な内部バス26で接続されている。
プロセッサ21は、メインメモリ22内のコンピュータプログラムを実行し、ストレージシステム1(コントローラ20)が提供する機能を実現する。
メインメモリ22は、プロセッサ21、通信I/F24及びドライブI/F25等から使用されるコンピュータプログラム及びデータ等を保持する。メインメモリ22の一例としては、DRAM(Dynamic Random Access Memory)、MRAM(magnetoresistive random access memory)又はFeRAM(Ferroelectric Random Access Memory)などがある。
通信I/F24は、コントローラ20を通信ネットワーク3に接続するためのI/Fである。すなわち、コントローラ20は、通信I/F24を通じて、ホストコンピュータ2とデータをやり取りする。例えば、通信ネットワーク3がSANで構成されており、内部バス26がPCIe(PCI Express)で構成されている場合、通信I/F24は、FibreChannelプロトコルとPCIeプロトコルとを変換するアダプタの機能を有してもよい。
ドライブI/F25は、ドライブユニット11をコントローラ20に接続するためのI/Fである。すなわち、コントローラ20は、ドライブI/F25を通じて記憶デバイス32とデータをやり取りする。
キャッシュ用SSD23には、キャッシュデータが格納される。コントローラ20は、ホストコンピュータ2に対する応答性能を高めるために、リード要求及びライト要求に係るデータを、キャッシュデータとして、キャッシュ用SSD23に格納する。
また、キャッシュ用SSD23には、従来フラッシュメモリに格納されていたコンピュータプログラム及び構成情報等(まとめて「構成情報等」という)も格納される。構成情報とは、ストレージシステム1の構成に関する情報である。例えば、構成情報は、複数の記憶デバイス32に基づくRAIDグループの構成を表す情報である。例えば、構成情報は、論理ボリュームアドレスと物理ボリュームアドレスとを対応付ける情報である。
キャッシュ用SSD23は、例えば、複数のNAND型フラッシュメモリチップによって構成されたSSDである。SSDの物理的な記憶領域は、複数のブロックで構成されており、各ブロックは複数のページで構成されている。そして、SSDは、ページ単位でデータをライトする必要があり、ブロック単位でデータを消去する必要がある。また、SSDは、その性質上、HDDと比較して、不良ページが発生する確率が高い。不良ページとは、例えば、所定回数以上の何らかの又は所定種類のエラーが生じたページであってよい。所定種類のエラーとは、例えば、読み出したデータに訂正可能な又は不可能なデータ化けが生じたエラーであってよい。
SSDには、高機能のSSDと低機能のSSDとがある。高機能のSSDは、一般に、論理空間を提供し論理空間におけるアクセス先の論理領域に物理ページを割り当てたり、不良の物理ページを管理し不良の物理ページを論理領域に割り当てないようにしたりできる。低機能のSSDは、単純に複数の物理ページを提供し、論理空間の提供や不良の物理ページの管理を行わない。低機能のSSDは、高機能のSSDと比較してコストが安いというメリットがある。本実施例におけるキャッシュ用SSD23は、この低機能のSSDであってよい。
キャッシュ用SSD23が有する物理的な記憶領域を構成する複数のページは、正ページの領域(「正面」といってもよい)と、副ページの領域(「副面」といってもよい)とに分けられる。そして、1の正ページと1の副ページとが対応付けられる。例えば、その記憶領域がページ番号「1」から「2000」までのページで構成されている場合、ページ番号「1」〜「1000」までが正ページの領域に、ページ番号「1001」〜「2000」までが副ページの領域に分けられてよい。そして、ページ番号「1」の正ページと、ページ番号「1001」の副ページとが対応付けられる。同様に、ページ番号「2」の正ページと、ページ番号「1002」の副ページとが対応付けられる。そして、対応関係を有する正ページ及び副ページには、同一のデータが格納される。これにより、一方のページに不良が発生しリード不可となったとしても、そのページに対応する他方のページからデータをリードできる。
キャッシュ用SSD23が有する物理的な記憶領域の一部の記憶領域のみを、正ページの領域と副ページの領域とに分けてよい。そして、正ページの領域と副ページの領域とに分けた一部の記憶領域には、例えば、構成情報等の重要なデータのみが格納されるとしてもよい。そして、それ以外の記憶領域に、リード及びライトに係るキャッシュデータが格納されるとしてもよい。なぜなら、構成情報等はキャッシュ用SSD23から消えてしまうと、ストレージシステム1の信頼性及び可用性の低下に繋がってしまう。しかし、キャッシュデータはキャッシュ用SSD23から消えたとしても、再度RAIDから読めば良いからである。また、正ページと副ページとに分けて管理する記憶領域を小さくすることにより、後述の図7に示す「副ページ検査処理」に要する時間を短くすることができる。
図2は、キャッシュ用SSD23に対するリード処理時に不良ページを検知した場合のプロセッサ21の処理概要を示す。
プロセッサ21は、コンピュータプログラムの一種として、カーネル101と、上位ジョブ102と、SSDドライバ103と、検査部104とを実行することができる。カーネル101は、コントローラ20の動作の基本的な機能(I/O機能、リソース制御機能など)を有する。上位ジョブ102は、カーネル101から受けた指示に基づき、SSDドライバ103を制御する機能を有する。
SSDドライバ103は、キャッシュ用SSD23を制御する機能を有する。例えば、SSDドライバ103は、キャッシュ用SSD23にデータをライトしたり、キャッシュ用SSD23からデータをリードする機能を有する。また、SSDドライバ103は、後述するように、不良ページに代えて、空きページを割り当てる機能を有する。空きページとは、データが消去されおり、新たなデータをライト可能なページである。キャッシュ用SSD23には割り当て用の空きページが予め確保されており、SSDドライバ103は、その確保されている何れかの空きページを割り当てるとしてもよい。又は、SSDドライバ103は、割り当ての時点における何れかの空きページを割り当てるとしてもよい。
検査部104は、キャッシュ用SSD23における正ページ及び副ページについて、不良の有無を検査する機能を有する。検査部104の詳細については後述する(図7参照)。
次に、図2を参照しながら、SSDドライバ103が、ページ番号「3」の正ページ300aからデータをリードする処理について説明する。
(S11)上位ジョブ102からリードコマンドを受けたSSDドライバ103は、ページ番号「3」の正ページ300aに対してデータのリードを行う。ここで、正ページ300aが不良でデータがリードできなかった場合、SSDドライバ103は、次の処理を行う。
(S12)SSDドライバ103は、ページ番号「3」に、不良な正ページ300aに代えて、予備ページ300cを割り当てる。つまり、この予備ページ300cが、ページ番号「3」の新しい正ページとなる。
(S13)SSDドライバ103は、ページ番号「3」に対応する(例えば、ページ番号「1003」の)副ページ300bからデータ「C」をリードし、メインメモリ22に格納する。
(S14)SSDドライバ103は、ページ番号「3」の新たな正ページ300cに、メインメモリ22のデータ「C」をライトする。
(S15)SSDドライバ103は、メインメモリ22のデータ「C」を、リードコマンドの応答として上位ジョブ102へ返す。
なお、上記の処理において、SSDドライバ103は、S12の前に、S13及びS15を実行してもよい。上位ジョブ102に対する応答性能を高めるためである。また、SSDドライバ103は、S13及びS15の処理と、S12及びS14の処理とを並列に実行してもよい。
以上の処理により、正ページが不良であったとしても、SSDドライバ103は、その正ページに対応する副ページからデータをリードし、上位ジョブ102へデータを返すことができる。すなわち、SSDドライバ103は、リード先の正ページが不良であったことを上位ジョブ102から隠蔽することができる。さらに、SSDドライバ103は、リード処理を通じて、不良ページを検知及び修復することができる。さらに、SSDドライバ103は、リード処理において不良ページを検知した際に、データの二重化も回復させることができる。
図3は、キャッシュ用SSD23に対するライト処理時に不良ページを検知した場合のプロセッサ21の処理概要を示す。
ここでは、図3を参照しながら、SSDドライバ103が、ページ番号「3」の正ページ301aにデータをライトする処理について説明する。
(S21)上位ジョブ102からライトコマンドを受けたSSDドライバ103は、メインメモリ22にデータ「X」を格納する。
(S22)SSDドライバ103は、ページ番号「3」の正ページ301aに対して、データ「X」のライトを行う。ここで、ページ番号「3」の正ページ301aが不良でデータ「X」がライトできなかった場合、SSDドライバ103は、次の処理を行う。
(S23)SSDドライバ103は、ページ番号「3」に、不良な正ページ301aに代えて、予備ページ301cを割り当てる。つまり、この予備ページ301cが、ページ番号「3」の新しい正ページとなる。
(S24)SSDドライバ103は、ページ番号「3」に対応する副ページ301bに、メインメモリ22のデータ「X」をライトする。
(S25)SSDドライバ103は、ページ番号「3」の新たな正ページ300cに、メインメモリ22のデータ「X」をライトし、上位ジョブ102に完了応答を返す。
なお、上記の処理において、SSDドライバ103は、S23〜S24の前に、S25を実行してもよい。上位ジョブ102に対する応答性能を高めるためである。また、SSDドライバ103は、S23及びS24の処理と、S25の処理とを並列に実行してもよい。
以上の処理により、正ページが不良であったとしても、SSDドライバ103は、その正ページに対応する副ページにデータをライトし、上位ジョブ102へ完了応答を返すことができる。すなわち、SSDドライバ103は、ライト先の正ページが不良であったことを上位ジョブ102から隠蔽することができる。さらに、SSDドライバ103は、ライト処理を通じて、不良ページを検知及び修復することができる。さらに、SSDドライバ103は、ライト処理において不良ページを検知した際に、データの二重化も回復させることができる。
図4は、データが格納済みのページに新たなデータをオーバーライトする処理概要を示す。
フラッシュメモリは、その特性上、データが格納済みのページに直接新しいデータをオーバーライトすることができない。また、ライト対象のデータのサイズが、ページのサイズよりも小さい場合もある。以下、このような場合の処理について説明する。
(S31)上位ジョブ102からライトコマンドを受けたSSDドライバ103は、メインメモリ22にデータ「Z」を格納する。ここで、データ「Z」のサイズは、ページのサイズよりも小さいとする。
(S32)SSDドライバ103は、ページ番号「3」の正ページ302aから、格納済みデータのリードを行う。ここで、ページ番号「3」の正ページ302aが不良でデータをリードできなった場合、SSDドライバ103は、次の処理を行う。
(S33)SSDドライバ103は、ページ番号「3」に、不良な正ページ302aに代えて、予備ページ302cを割り当てる。つまり、この予備ページ302cが、ページ番号「3」の新しい正ページとなる。
(S34)SSDドライバ103は、ページ番号「3」に対応する副ページ302bから格納済みデータをリードし、メインメモリ22に格納する。
(S35)SSDドライバ103は、副ページ302bからリードした格納済みデータにライト対象のデータ「Z」をオーバーライトし、合成データ310を生成する。
(S36)SSDドライバ103は、ページ番号「3」の新たな正ページ302cに、メインメモリ22の合成データ310をライトする。
(S37)また、SSDドライバ103は、ページ番号「3」の正ページに対応する例えばページ番号「1003」に新たな副ページ302dを割り当て、その副ページ302dに、メインメモリ22の合成データ310をライトする。
以上の処理により、データを、正ページ及び副ページにオーバーライトすることができる。なお、空きページにデータをライトする場合に図4に示す処理を行っても良い。
図5は、キャッシュ用SSD23に対するリード処理の一例のフローチャートを示す。この図5は、図2の処理の詳細に相当する。
SSDドライバ103は、上位ジョブ102からリードコマンドを受けると、次の処理を行う。SSDドライバ103は、リードコマンドが指定するページ番号(「対象ページ番号」という)の正ページからデータのリードを行う(S101)。
ここで、正ページが不良でなく(S102:NO)、正常にデータをリードできた場合、SSDドライバ103は、そのリードしたデータを上位ジョブ102に返し(S106)、処理を終了する(END)。
一方、正ページが不良であり(S102:YES)、正常にデータをリードできない場合、SSDドライバ103は、次の処理を行う。
SSDドライバ103は、対象ページ番号に、不良な正ページに代えて、空きページを割り当てる(S103)。この新たに割り当てられた空きページを「新たな正ページ」という。
SSDドライバ103は、正ページに対応する副ページからデータをリードする(S104)。ここで、副ページも不良であり(S105:YES)、正常にデータをリードできなかった場合、SSDドライバ103は、エラー通知を上位ジョブ102へ返して(S120)、処理を終了する(END)。
一方、副ページが不良でなく(S105:NO)、正常にデータをリードできた場合、SSDドライバ103は、その副ページからリードしたデータを、対象ページ番号の新たな正ページにライトする(S106)。ここで、SSDドライバ103は、新たな正ページに正しくデータがライトされたか否かを確認してもよい。例えば、SSDドライバ103は、新たな正ページからデータをリードし、そのリードしたデータが先ほどライトしたデータと一致する場合、データが正しくライトされたと判定してもよい。
SSDドライバ103は、副ページからリードしたデータを、上位ジョブ102へ返し(S107)、処理を終了する(END)。
る。
図6は、キャッシュ用SSD23に対するライト処理の一例のフローチャートを示す。この図6は、図3の処理の詳細に相当する。
SSDドライバ103は、上位ジョブ102からライトコマンド及びライト用のデータを受けると、次の処理を行う。SSDドライバ103は、ライトコマンドが指定するページ番号(「対象ページ番号」という)の正ページからデータのリードを行う(S201)。
ここで、正ページが不良でなく(S202:NO)、正常にデータをリードできた場合、SSDドライバ103は、正ページからリードしたデータとライト対象のデータとを合成(オーバーライト)して合成データを生成する(S210)。そして、SSDドライバ103は、その合成データを、対象ページ番号に対応する新たな正ページ及び新たな副ページにライトし(S211)、処理を終了する(END)。
一方、正ページが不良であり(S202:YES)、正常にデータをリードできなかった場合、SSDドライバ103は、次の処理を行う。
SSDドライバ103は、対象ページ番号に、不良な正ページに代えて、空きページを割り当てる(S203)。この新たに割り当てられた空きページを「新たな正ページ」という。
SSDドライバ103は、正ページに対応する副ページからデータをリードする(S204)。ここで、副ページも不良であり(S205:YES)、正常にデータをリードできなかった場合、SSDドライバ103は、エラー通知を上位ジョブ102へ返して(S220)、処理を終了する(END)。
一方、副ページが不良でなく(S205:NO)、正常にデータをリードできた場合、SSDドライバ103は、その副ページからリードしたデータと、ライト対象のデータを合成して合成データを生成する(S206)。
そして、SSDドライバ103は、その合成データを、対象ページ番号に対応する新たな正ページ及び新たな副ページにライトする(S211)。ここで、SSDドライバ103は、新たな正ページ及び新たな副ページに正しく合成データがライトされたことを確認してもよい。例えば、SSDドライバ103は、新たな正ページ及び新たな副ページから合成データをリードし、先ほどライトした合成データと一致した場合、正しく合成データがライトされたと判定してもよい。そして、SSDドライバ103は、処理を終了する(END)。
図7は、副ページの検査処理の一例のフローチャートを示す。
検査部104は、副ページの不良の有無を検査するため、所定のタイミングで(例えば、1日1回)、次の副ページ検査処理を行う。ここで、副ページのみを検査の対象としているのは、正ページは、上述のとおり、リード処理及びライト処理のタイミングで不良の有無が検知され修復され得るからである。ただし、検査部104は、この副ページと同じように正ページを検査してもよい。
検査部104は、キャッシュ用SSD23の各副ページに対して、S301〜S306の処理を行う。ここで、各回の処理対象の副ページを「対象副ページ」という。
検査部104は、対象副ページの不良の有無を判定する(S302)。対象副ページが不良でない場合(S302:NO)、検査部104は、S306へ進む。
対象副ページが不良である場合(S302:YES)、検査部104は、次の処理を行う。検査部104は、この対象副ページに係る対象ページ番号に、不良な対象副ページに代えて、空きページを割り当てる(S303)。この新たなに割り当てられた空きページを「新たな対象副ページ」という。
検査部104は、対象副ページに対応する正ページからデータをリードする(S304)。
検査部104は、その正ページからからリードしたデータを、新たな対象副ページにライトする(S305)。ここで、検査部104は、新たな対象副ページに正しくデータがライトされたか否かを確認してもよい。例えば、検査部104は、新たな対象副ページからデータをリードし、そのリードしたデータが先ほどライトしたデータと一致する場合、データが正しくライトされたと判定してもよい。
検査部104は、全ての副ページに対してS301〜S306を行った後(S306)、処理を終了する(END)。
これにより、副ページの不良が修復され、データの二重化が維持される。すなわち、キャッシュ用SSD23の信頼性が向上する。
本実施例は、例えば、以下の作用効果を奏する。
(1)本実施例に係る正ページと副ページをそれぞれ異なるSSDに設けた場合、排他処理が必要となったり、他のコントローラにI/O要求が必要となり、正ページと副ページとの間のI/O処理が、システムの性能に大きな影響を及ぼす。これに対し、本実施例は、1つのSSD内に正ページと副ページを設け、SSDドライバ103上で処理を行うため、正ページと副ページとの間のI/O処理がシステムの性能に及ぼす影響が小さい。
(2)キャッシュ用SSD23の全体の記憶領域の内、必要な記憶領域の部分のみを正ページと副ページの2面構成とし、さらに、上記図6に示す修復対象の領域を副ページのみとすることにより、上記図6に示した修復処理に要する時間を短縮すると共に、その修復処理によって発生する処理負荷を低減することができる。
図8は、実施例2に係るストレージシステム1のコントローラユニット10の構成例を示す。
ストレージシステム1は、コントローラユニット10からコントローラ20が着脱可能に構成されている。また、コントローラ20からキャッシュ用SSD23が着脱可能に構成されている。キャッシュ用SSD23には、プロセッサ21で実行されるコンピュータプログラム、及び、ストレージシステムに関する構成情報などが格納されている。したがって、コントローラ20又はキャッシュ用SSD23が交換された場合、キャッシュ用SSD23に格納されている構成情報は、実際のストレージシステム1の構成と整合していないおそれがある。本実施例では、このような不整合な構成情報がリストアされて利用されてしまうことを防止する。
コントローラユニット10は、コントローラユニット10を識別可能なユニットID201を有する。また、コントローラ20も、コントローラ20を識別可能なコントローラID202を有する。そして、コントローラユニット10に新規にコントローラ20及びキャッシュ用SSD23が装着された際、コントローラ20は、自分のコントローラID202と、自分が属するコントローラユニット10のユニットID201とを、キャッシュ用SSD23に格納しておく(図8に示すユニットID211及びコントローラID212を参照)。
プロセッサ21で実行されるリストア処理部110は、ストレージシステム1の起動時に、キャッシュ用SSD23に格納されているコンピュータプログラム及び構成情報等をメインメモリ22にリストアし、プロセッサ21が構成情報等を継続して使用することを許可する。ここで、リストア処理部110は、コントローラ20又はキャッシュ用SSD23が交換されていると判断した場合、キャッシュ用SSD23に格納されている構成情報等をメインメモリ22にリストアせず、この構成情報等の使用を許可しない。実際のストレージシステム1の構成と不整合が生じるおそれがあるからである。
すなわち、リストア処理部110は、自分のコントローラ20が有するコントローラID202と、キャッシュ用SSD23に格納されているコントローラID212とを比較することにより、キャッシュ用SSD23が交換されたものであるか否かを判定する。また、リストア処理部110は、自分のコントローラ20が属するコントローラユニット10が有するユニットID201と、キャッシュ用SSD23に格納されているユニットID211とを比較することにより、自分のコントローラ20が交換されたものであるか否かを判定する。
図9は、交換パターンの一例のテーブル800を示す。
テーブル800において、例えば、レコード821は、自分の属するコントローラユニットのID(803)と、キャッシュ用SSDに格納されているユニットID(804)とが一致し、且つ、自分のコントローラのID(805)とキャッシュ用SSDに格納されているコントローラID(806)とが一致する場合、通常の計画的な停止後の再起動であり(802)、キャッシュ用SSD23及びコントローラ20は交換されていないと判断してよいことを表す。よって、リストア処理部110は、レコード821に該当する場合、キャッシュ用SSD23に格納されている構成情報等を、メインメモリ22にリストア可能(807)と判断してよい。
例えば、レコード822、825、826、828は、キャッシュ用SSD23内にユニットID(804)及びコントローラID(806)の何れもが格納されていない(NULLである)場合、少なくともキャッシュ用SSD23が交換されたか(802)、若しくは、ストレージシステム1の初めての起動である(802)と判断してよいことを表す。よって、リストア処理部110は、レコード822、825、826、828の何れかに該当する場合、キャッシュ用SSD23に格納されている構成情報等を、メインメモリ22にリストア不可(807)と判断してよい。
例えば、レコード823は、自分の属するコントローラユニットのID(803)とキャッシュ用SSD内のユニットID(804)とが一致し、且つ、自分のコントローラのID(805)とキャッシュ用SSD内のコントローラID(806)とが一致しない場合、キャッシュ用SSD23は交換されず、コントローラ20のみの交換である(802)と判断してよいことを表す。よって、リストア処理部110は、レコード823に該当する場合、キャッシュ用SSD23に格納されている構成情報等を、メインメモリ22にリストア可能(807)と判断してよい。
例えば、レコード824は、自分の属するコントローラユニットのID(803)とキャッシュ用SSD23内のユニットID(804)とが一致せず、且つ、自分のコントローラのID(805)とキャッシュ用SSD23内のコントローラID(806)とが一致する場合、キャッシュ用SSD23は交換されず、コントローラユニット10のみの交換である(802)と判断してよいことを表す。よって、リストア処理部110は、レコード824に該当する場合、キャッシュ用SSD23に格納されている構成情報等を、メインメモリ22にリストア可能(807)と判断してよい。
例えば、レコード827は、自分の属するコントローラユニットのID(803)とキャッシュ用SSD23内のユニットID(804)とが一致せず、且つ、自分のコントローラのID(805)とキャッシュ用SSD23内のコントローラID(806)も一致しない場合、コントローラユニット10及びコントローラ20が交換された(802)と判断してよいことを表す。よって、リストア処理部110は、レコード827に該当する場合、キャッシュ用SSD23に格納されている構成情報等を、メインメモリ22にリストア不可(807)と判断してよい。
図10は、リストア処理の一例のフローチャートを示す。
リストア処理部110は、自分のコントローラが有するコントローラIDと、自分のコントローラが属するコントローラユニットのIDとを取得する(S401)。
リストア処理部110は、その取得したコントローラIDと、キャッシュ用SSD内のコントローラIDとが一致するか否かを判定する(S402)。
その取得したコントローラIDと、キャッシュ用SSD内のコントローラIDとが一致する場合(S402:YES)、リストア処理部110は、キャッシュ用SSDに格納されている構成情報等を、メインメモリ22にリストアし(S403)、S420へ進む。
その取得したコントローラIDと、キャッシュ用SSD内のコントローラIDとが一致しない場合(S402:NO)、リストア処理部110は、次に、その取得したユニットIDと、キャッシュ用SSD内のユニットIDとが一致するか否かを判定する(S410)。
その取得したユニットIDと、キャッシュ用SSD内のユニットIDとが一致する場合(S410:YES)、リストア処理部110は、キャッシュ用SSDに格納されている構成情報等を、メインメモリ22にリストアし(S403)、S420へ進む。
その取得したユニットIDと、キャッシュ用SSD内のユニットIDとが一致しない場合(S410:NO)、リストア処理部110は、キャッシュ用SSDに格納されている構成情報等を破棄(削除)し(S412)、S420へ進む。
S420において、リストア処理部110は、その取得したコントローラID及びユニットIDを、キャッシュ用SSDに格納(更新登録)し、処理を終了する(END)。
以上の処理により、リストア処理部110は、ストレージシステム1の実際の構成と整合しない構成情報等がリストアされることを防止すると共に、ストレージシステム1の実際の構成と整合する構成情報等についてはリストアすることができる。
上述した実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
上述の本実施例は、以下の様に表現することができる。
<表現1>
プロセッサと、記憶デバイスとを備え、
前記プロセッサは、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、1の正区画と1の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
ストレージシステム。
<表現2>
前記プロセッサは、
前記記憶デバイス内の全体の物理的な記憶領域の一部の記憶領域を、正区画と副区画とに分けて管理する
表現1に記載のストレージシステム。
<表現3>
前記プロセッサは、
前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納する
表現2に記載のストレージシステム。
<表現4>
前記記憶デバイスは、複数のフラッシュメモリから構成されるSSD(Solid State Drive)である
表現1乃至3の何れか1に記載のストレージシステム。
<表現5>
前記プロセッサは、
リード先の第1の正区画が不良であった場合、前記第1の正区画に対応する第1の副区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第1の正区画を、前記第1の正区画に代えて前記第1の副区画と対応付ける
表現1乃至4の何れか1に記載のストレージシステム。
<表現6>
前記プロセッサは、
前記新たな第1の正区画からデータをリードし、そのリードしたデータと、前記第1の副区画からリードしたデータとが一致するか否かを判定する
表現5に記載のストレージシステム。
<表現7>
前記プロセッサは、
ライト先の第2の正区画が不良であった場合、前記第2の正区画に対応する第2の副区画にデータをライトし、そのライトしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第2の正区画を、前記第2の正区画に代えて前記第2の副区画と対応付ける
表現1乃至6の何れか1に記載のストレージシステム。
<表現8>
前記プロセッサは、
ライト先の第3の正区画が不良であった場合、前記第3の正区画に対応する第3の副区画からデータをリードし、そのリードしたデータにライト対象のデータをオーバーライトした合成データを生成し、その合成データを、ライト可能な空き区画にライトし、その合成データのライトされた空き区画である新たな第3の正区画を、前記第3の正区画に代えて前記第3の副区画と対応付ける
表現1乃至7の何れか1に記載のストレージシステム。
<表現9>
前記プロセッサは、
前記複数の副区画の各々の不良を検査し、第4の副区画が不良であった場合、前記第4の副区画に対応する第4の正区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第4の副区画を、前記第4の副区画に代えて前記第4の正区画と対応付ける
表現1乃至8の何れか1に記載のストレージシステム。
<表現10>
コントローラと、ユニットとを有し、
前記コントローラには、コントローラIDが付与され、前記プロセッサと、着脱可能な前記記憶デバイスとが備えられ、
前記ユニットには、ユニットIDが付与され、着脱可能な前記コントローラが備えられ、
前記プロセッサは、
前記記憶デバイスに格納されているコントローラIDと、自分のプロセッサが属するコントローラに付与されているコントローラIDとが一致せず、且つ、前記記憶デバイスに格納されているユニットIDと、自分のプロセッサが属するユニットに付与されているユニットIDとが一致しない場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可しない
表現1乃至9の何れか1に記載のストレージシステム。
<表現11>
前記プロセッサは、
前記記憶デバイスに格納されているコントローラIDと、自分のプロセッサが属するコントローラに付与されているコントローラIDとが一致するか、又は、前記記憶デバイスに格納されているユニットIDと、自分のプロセッサが属するユニットに付与されているユニットIDとが一致する場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可する
表現10に記載のストレージシステム。
<表現12>
前記プロセッサは、
前記構成情報の使用を許可しないとした場合、自分のプロセッサが属するコントローラに付与されているコントローラIDと、自分のプロセッサが属するユニットに付与されているユニットIDとを、前記記憶デバイスに格納する
表現10又は11に記載のストレージシステム。
<表現13>
ストレージシステムに備えられているプロセッサと、記憶デバイスとにおいて、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、1の正区画と1の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
記憶制御方法。
上記表現において、「区画」は本実施例における「ページ」に相当するものであってよい。また、「記憶デバイス」は本実施例における「キャッシュ用SSD23」に相当するものであってよい。
1:ストレージシステム 2:ホストコンピュータ 10:コントローラユニット 11:ドライブユニット 20:コントローラ 21:プロセッサ 22:メインメモリ 23:キャッシュ用SSD 32:記憶デバイス

Claims (10)

  1. プロセッサと、複数のフラッシュメモリから構成されるSSD(Solid State Drive)である記憶デバイスとを備えるストレージシステムであって、
    前記プロセッサは、
    前記記憶デバイス内の物理的な記憶領域を構成する複数の区画の内、所定の一部の記憶領域を構成する複数の区画を、正区画と副区画とに分け、1の正区画と1の副区画とを対応付けて管理し、
    前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納し、
    正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
    ストレージシステム。
  2. 前記プロセッサは、
    前記構成情報に係るデータを、前記一部の記憶領域を構成する複数の区画の内の第1の正区画からリードするとき、前記第1の正区画が不良であるか否かを判定し、
    前記第1の正区画が不良であると判定した場合、前記第1の正区画に対応する第1の副区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第1の正区画を、前記第1の正区画に代えて前記第1の副区画と対応付ける
    請求項1に記載のストレージシステム。
  3. 前記プロセッサは、
    前記新たな第1の正区画からデータをリードし、そのリードしたデータと、前記第1の副区画からリードしたデータとが一致するか否かを判定する
    請求項5に記載のストレージシステム。
  4. 前記プロセッサは、
    ライト先の第2の正区画が不良であった場合、前記第2の正区画に対応する第2の副区画にデータをライトし、そのライトしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第2の正区画を、前記第2の正区画に代えて前記第2の副区画と対応付ける
    請求項1に記載のストレージシステム。
  5. 前記プロセッサは、
    ライト先の第3の正区画が不良であった場合、前記第3の正区画に対応する第3の副区画からデータをリードし、そのリードしたデータにライト対象のデータをオーバーライトした合成データを生成し、その合成データを、ライト可能な空き区画にライトし、その合成データのライトされた空き区画である新たな第3の正区画を、前記第3の正区画に代えて前記第3の副区画と対応付ける
    請求項1に記載のストレージシステム。
  6. 前記プロセッサは、
    前記複数の副区画の各々の不良を検査し、前記複数の副区画の内の第4の副区画が不良であった場合、前記第4の副区画に対応する第4の正区画から前記構成情報に係るデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第4の副区画を、前記第4の副区画に代えて前記第4の正区画と対応付ける
    請求項1に記載のストレージシステム。
  7. コントローラと、ユニットとを有し、
    前記コントローラには、コントローラIDが付与され、前記プロセッサと、着脱可能な前記記憶デバイスとが備えられ、
    前記ユニットには、ユニットIDが付与され、着脱可能な前記コントローラが備えられ、
    前記プロセッサは、
    前記記憶デバイスに格納されているコントローラIDと、自分のプロセッサが属するコントローラに付与されているコントローラIDとが一致せず、且つ、前記記憶デバイスに格納されているユニットIDと、自分のプロセッサが属するユニットに付与されているユニットIDとが一致しない場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可しない
    請求項1に記載のストレージシステム。
  8. 前記プロセッサは、
    前記記憶デバイスに格納されているコントローラIDと、自分のプロセッサが属するコントローラに付与されているコントローラIDとが一致するか、又は、前記記憶デバイスに格納されているユニットIDと、自分のプロセッサが属するユニットに付与されているユニットIDとが一致する場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可する
    請求項10に記載のストレージシステム。
  9. 前記プロセッサは、
    前記構成情報の使用を許可しないとした場合、自分のプロセッサが属するコントローラに付与されているコントローラIDと、自分のプロセッサが属するユニットに付与されているユニットIDとを、前記記憶デバイスに格納する
    請求項10に記載のストレージシステム。
  10. ストレージシステムに備えられているプロセッサと、複数のフラッシュメモリから構成される記憶デバイスとにおいて、
    前記記憶デバイス内の物理的な記憶領域を構成する複数の区画の内、所定の一部の記憶領域を構成する複数の区画を、正区画と副区画とに分け、1の正区画と1の副区画とを対応付けて管理し、
    前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納し、
    正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
    記憶制御方法。
JP2016530687A 2014-06-30 2014-06-30 ストレージシステム及び記憶制御方法 Expired - Fee Related JP6175566B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/067336 WO2016001962A1 (ja) 2014-06-30 2014-06-30 ストレージシステム及び記憶制御方法

Publications (2)

Publication Number Publication Date
JPWO2016001962A1 JPWO2016001962A1 (ja) 2017-04-27
JP6175566B2 true JP6175566B2 (ja) 2017-08-02

Family

ID=55018564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016530687A Expired - Fee Related JP6175566B2 (ja) 2014-06-30 2014-06-30 ストレージシステム及び記憶制御方法

Country Status (3)

Country Link
US (1) US10061667B2 (ja)
JP (1) JP6175566B2 (ja)
WO (1) WO2016001962A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015168609A1 (en) * 2014-05-02 2015-11-05 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
JP2019082897A (ja) * 2017-10-31 2019-05-30 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204560A (ja) * 1992-01-23 1993-08-13 Nec Corp 磁気ディスク装置及びそのデータ復旧方法
US5553230A (en) * 1995-01-18 1996-09-03 Hewlett-Packard Company Identifying controller pairs in a dual controller disk array
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
US6553510B1 (en) * 1999-09-02 2003-04-22 Micron Technology, Inc. Memory device including redundancy routine for correcting random errors
US6578158B1 (en) * 1999-10-28 2003-06-10 International Business Machines Corporation Method and apparatus for providing a raid controller having transparent failover and failback
JP3705731B2 (ja) * 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
JP2003162377A (ja) 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
US20040268116A1 (en) * 2003-06-30 2004-12-30 Vasisht Virender K Fault tolerant recovery block with reduced flash footprint
US7454533B2 (en) * 2004-02-06 2008-11-18 Nec Corporation Redundant path control apparatus and redundant path control method
US7328324B2 (en) * 2005-04-27 2008-02-05 Dot Hill Systems Corp. Multiple mode controller method and apparatus
US7880913B2 (en) * 2005-12-13 2011-02-01 Infoprint Solutions Company, Llc Methods and systems for segmenting logical pages into work units for processing on multiple compute systems
US20070294598A1 (en) * 2006-05-24 2007-12-20 Gateway Inc. Hard disk drive with built-in mirror
US7444541B2 (en) * 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
JP4305778B2 (ja) 2006-12-28 2009-07-29 コニカミノルタビジネステクノロジーズ株式会社 メモリ装置、キャッシュ制御方法、およびキャッシュ制御プログラム
US8615678B1 (en) * 2008-06-30 2013-12-24 Emc Corporation Auto-adapting multi-tier cache
US8041991B2 (en) * 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
JP2010176201A (ja) * 2009-01-27 2010-08-12 Tokai Rika Co Ltd フラッシュメモリのデータ消失防止装置及びフラッシュメモリのデータ消失防止方法
CN101576966A (zh) * 2009-06-02 2009-11-11 中兴通讯股份有限公司 一种读写存储卡的方法及装置
JP4874368B2 (ja) * 2009-06-22 2012-02-15 株式会社日立製作所 フラッシュメモリを用いたストレージシステムの管理方法及び計算機
US20110029716A1 (en) * 2009-07-29 2011-02-03 Stec, Inc. System and method of recovering data in a flash storage system
US20110041016A1 (en) * 2009-08-12 2011-02-17 Taiwan Semiconductor Manufacturing Company, Ltd. Memory errors and redundancy
WO2011102429A1 (ja) * 2010-02-19 2011-08-25 国立大学法人 東京工業大学 ストレージ装置、その制御方法およびシステム管理プログラム
WO2011114384A1 (en) * 2010-03-19 2011-09-22 Hitachi, Ltd. Storage system and method for changing configuration of cache memory for storage system
US8627065B2 (en) * 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network
JP5664236B2 (ja) * 2010-12-29 2015-02-04 ソニー株式会社 データ記憶装置、情報処理装置、および情報処理方法、並びにプログラム
US8924778B2 (en) * 2010-12-29 2014-12-30 Lsi Corporation Method to synchronize a replacement controller's firmware version to the native configuration database version on a simplex array
US9424128B2 (en) * 2011-08-12 2016-08-23 Futurewei Technologies, Inc. Method and apparatus for flexible RAID in SSD
US20130219125A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Cache employing multiple page replacement algorithms
KR101959738B1 (ko) * 2012-05-24 2019-03-19 삼성전자 주식회사 장치 식별자와 사용자 인증 정보에 기반한 보안 키 생성 장치
JP2014026376A (ja) * 2012-07-25 2014-02-06 Tdk Corp メモリコントローラ、フラッシュメモリシステム及び記憶制御方法
WO2014084836A1 (en) * 2012-11-29 2014-06-05 Hewlett-Packard Development Company, L.P. Fault tolerance in a multi-core circuit
US9183055B2 (en) * 2013-02-07 2015-11-10 Advanced Micro Devices, Inc. Selecting a resource from a set of resources for performing an operation
US8959615B2 (en) * 2013-02-25 2015-02-17 Kabushiki Kaisha Toshiba Storage system in which fictitious information is prevented
US10002059B2 (en) * 2013-06-13 2018-06-19 Vmware, Inc. System and method for assigning memory available for high availability failover to virtual machines
US9465705B2 (en) * 2014-04-15 2016-10-11 Infineon Technologies Ag Processing a target memory
US9471428B2 (en) * 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives

Also Published As

Publication number Publication date
US10061667B2 (en) 2018-08-28
WO2016001962A1 (ja) 2016-01-07
JPWO2016001962A1 (ja) 2017-04-27
US20160371009A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
US8015371B2 (en) Storage apparatus and method of managing data storage area
US9946616B2 (en) Storage apparatus
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US9501231B2 (en) Storage system and storage control method
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
WO2016067328A1 (ja) 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス
JP6526235B2 (ja) データチェック方法および記憶システム
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
US20170315725A1 (en) Changing Storage Volume Ownership Using Cache Memory
JP6175566B2 (ja) ストレージシステム及び記憶制御方法
JP6817340B2 (ja) 計算機
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
US11079956B2 (en) Storage system and storage control method
US10915441B2 (en) Storage system having non-volatile memory device
US8935488B2 (en) Storage system and storage control method
US9836359B2 (en) Storage and control method of the same
WO2016139774A1 (ja) 情報処理装置、情報処理システム
JP6805838B2 (ja) ディスク管理システム、ディスク管理方法、および、ディスク管理プログラム
JP6276208B2 (ja) メモリシステム及びプログラム
US11221790B2 (en) Storage system
JP6605762B2 (ja) 記憶ドライブの故障により消失したデータを復元する装置
US20180052749A1 (en) Information processing system and information processing method

Legal Events

Date Code Title Description
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: 20170627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170710

R150 Certificate of patent or registration of utility model

Ref document number: 6175566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees