(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023137307
(43)【公開日】2023-09-29
(54)【発明の名称】ストレージシステム及びストレージシステムの制御方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20230922BHJP
【FI】
G06F3/06 305H
G06F3/06 305F
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022043449
(22)【出願日】2022-03-18
(71)【出願人】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】宮部 智博
(72)【発明者】
【氏名】早野 俊朗
(72)【発明者】
【氏名】小川 純司
(72)【発明者】
【氏名】大津留 寛
(57)【要約】
【課題】不揮発性記憶素子の障害発生に伴う復元処理の実行によって記憶デバイスのI/O処理の性能が低下する場合でも、記憶デバイスの閉塞せずに、継続して使用する。
【解決手段】ストレージシステムは、複数の記憶デバイス及び少なくとも一つのストレージコントローラを有し、記憶デバイスは、複数の不揮発性記憶素子を有する。記憶デバイスは、ストレージコントローラからI/Oコマンドを受信し、I/Oコマンドにより指定されたアクセス先の記憶領域を提供する不揮発性記憶素子の障害を検知した場合、I/O処理が遅延する可能性があるが当該記憶デバイスの継続使用が可能であることを示す遅延発生ポテンシャル通知を含む応答をストレージコントローラに送信する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数の記憶デバイス及び少なくとも一つのストレージコントローラを有するストレージシステムであって、
前記複数の記憶デバイスの各々は、複数の不揮発性記憶素子を有し、
前記記憶デバイスは、
前記ストレージコントローラからI/Oコマンドを受信し、
前記I/Oコマンドにより指定されたアクセス先の記憶領域を提供する前記不揮発性記憶素子の障害を検知した場合、I/O処理が遅延する可能性があるが当該記憶デバイスの継続使用が可能であることを示す遅延発生ポテンシャル通知を含む応答を前記ストレージコントローラに送信することを特徴とするストレージシステム。
【請求項2】
請求項1に記載のストレージシステムであって、
前記ストレージコントローラは、障害が検知された前記不揮発性記憶素子に格納されるデータの復元処理の実行中、周期的に、前記応答を送信した前記記憶デバイスに障害が解消されたか否かを問い合わせることを特徴とするストレージシステム。
【請求項3】
請求項2に記載のストレージシステムであって、
前記記憶デバイスは、障害が検知された前記不揮発性記憶素子が提供する特定記憶領域のアドレスを格納するアドレス情報を生成して、前記ストレージコントローラに送信し、
前記ストレージコントローラは、
I/O要求を受信した場合、前記アドレス情報を参照して、前記特定記憶領域へのアクセスがあるか否かを判定し、
前記特定記憶領域へのアクセスがある場合、I/O処理の遅延を抑止する、遅延回避I/O処理を実行することを特徴とするストレージシステム。
【請求項4】
請求項3に記載のストレージシステムであって、
前記ストレージコントローラは、前記アドレス情報に含まれる前記アドレスの数が閾値より大きい場合、又は、前記応答を受信してから一定期間内に障害が解消された旨の通知を受信していない場合、当該記憶デバイスの閉塞処理を実行することを特徴とするストレージシステム。
【請求項5】
ストレージシステムの制御方法であって、
前記ストレージシステムは、複数の記憶デバイス及び少なくとも一つのストレージコントローラを有し、
前記複数の記憶デバイスの各々は、複数の不揮発性記憶素子を有し、
前記ストレージシステムの制御方法は、
前記記憶デバイスが、前記ストレージコントローラからI/Oコマンドを受信するステップと、
前記記憶デバイスが、前記I/Oコマンドにより指定されたアクセス先の記憶領域を提供する前記不揮発性記憶素子の障害を検知した場合、I/O処理が遅延する可能性があるが当該記憶デバイスの継続使用が可能であることを示す遅延発生ポテンシャル通知を含む応答を前記ストレージコントローラに送信するステップと、
を含むことを特徴とするストレージシステムの制御方法。
【請求項6】
請求項5に記載のストレージシステムの制御方法であって、
前記ストレージコントローラが、障害が検知された前記不揮発性記憶素子に格納されるデータの復元処理の実行中、周期的に、前記応答を送信した前記記憶デバイスに障害が解消されたか否かを問い合わせるステップを含むことを特徴とするストレージシステムの制御方法。
【請求項7】
請求項6に記載のストレージシステムの制御方法であって、
前記記憶デバイスが、障害が検知された前記不揮発性記憶素子が提供する特定記憶領域のアドレスを格納するアドレス情報を生成して、前記ストレージコントローラに送信するステップと、
前記ストレージコントローラが、I/O要求を受信した場合、前記アドレス情報を参照して、前記特定記憶領域へのアクセスがあるか否かを判定するステップと、
前記ストレージコントローラが、前記特定記憶領域へのアクセスがある場合、I/O処理の遅延を抑止する、遅延回避I/O処理を実行するステップと、を含むことを特徴とするストレージシステムの制御方法。
【請求項8】
請求項7に記載のストレージシステムの制御方法であって、
前記ストレージコントローラが、前記アドレス情報に含まれる前記アドレスの数が閾値より大きい場合、又は、前記応答を受信してから一定期間内に障害が解消された旨の通知を受信していない場合、当該記憶デバイスの閉塞処理を実行するステップを含むことを特徴とするストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性記憶素子を有する記憶デバイスを搭載するストレージシステムに関する。
【背景技術】
【0002】
NANDフラッシュメモリ等の不揮発性記憶素子を有する記憶デバイスを搭載するストレージシステムの導入が進んでいる。本明細書では、「記憶デバイス」は不揮発性記憶素子を有する記憶デバイスを表すものとする。
【0003】
近年、扱うデータの増大に伴って、記憶デバイスの容量の増加が望まれている。記憶デバイスの容量を増加させる方法として、不揮発性記憶素子の数の増加と、マルチレベルセル技術の利用とが知られている。
【0004】
不揮発性記憶素子の数の増加及びマルチレベルセル技術の利用のいずれの方法を用いた場合でも、記憶デバイスの故障率が上昇するという問題があり、これに対応する技術が必要である。特許文献1には、記憶デバイスのデバイスコントローラが、障害部位をストレージコントローラに通知することが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術によれば、障害部位を閉塞し、記憶デバイスの使用を継続することができる。特許文献1に記載のストレージシステムは、閉塞にともなって障害部位に格納されたデータの復元処理を実行する。復元処理の実行中において、障害部位を含む記憶デバイスに対するI/O処理の性能が低下するため、ストレージシステムに接続するホスト計算機に対する応答の遅延が発生する。したがって、ホスト計算機への応答遅延を防ぐために、ストレージシステムがI/O処理の性能が低い記憶デバイスを閉塞する可能性があり、記憶デバイスを継続して使用することができない。
【0007】
本発明は、復元処理の実行によって記憶デバイスのI/O処理の性能が低下する場合でも、記憶デバイスの閉塞せずに、継続して使用することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の記憶デバイス及び少なくとも一つのストレージコントローラを有するストレージシステムであって、前記複数の記憶デバイスの各々は、複数の不揮発性記憶素子を有し、前記記憶デバイスは、前記ストレージコントローラからI/Oコマンドを受信し、前記I/Oコマンドにより指定されたアクセス先の記憶領域を提供する前記不揮発性記憶素子の障害を検知した場合、I/O処理が遅延する可能性があるが当該記憶デバイスの継続使用が可能であることを示す遅延発生ポテンシャル通知を含む応答を前記ストレージコントローラに送信する。
【発明の効果】
【0009】
本発明によれば、ストレージシステムは、復元処理の実行によって記憶デバイスのI/O処理の性能が低下する場合でも、記憶デバイスを閉塞せずに、継続して使用することができる。
【図面の簡単な説明】
【0010】
【
図2】実施例1のデバイスコントローラが保持する管理テーブルの一例を示す図である。
【
図3】実施例1のストレージシステムが実行する処理を説明するシーケンス図である。
【
図4】実施例1のストレージコントローラが実行する処理を説明するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0014】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
【0016】
システムは、ストレージシステム100及び複数のホスト計算機101を含む。ホスト計算機101は、WAN(Wide Area Network)、LAN(Local Area Network)、又はSAN(Storage Area Network)等のネットワークを介して、ストレージシステム100と接続する。
【0017】
なお、本発明は、ストレージシステム100に接続するホスト計算機101の数に限定されない。
【0018】
ホスト計算機101はストレージシステム100を利用する計算機である。ホスト計算機101は、ストレージシステム100が提供するボリュームに対してデータの書き込み及びデータの読み出しを行う。
【0019】
ストレージシステム100は、ストレージコントローラ110及び記憶デバイス111を有する。
図1では、ストレージコントローラ110は一つであるが、二つ以上でもよい。ストレージシステム100は、複数の記憶デバイス111からRAID(Redundant Arrays of Inexpensive Disks)グループを生成し、RAIDグループからボリュームを生成し、ホスト計算機101に提供する。ボリュームは、例えば、LDEVである。なお、複数のLDEVから構成されるボリュームでもよい。
【0020】
ストレージコントローラ110は、ストレージシステム100全体を制御する。例えば、ストレージコントローラ110は、RAIDグループの管理、ボリュームの管理、及びI/O処理の制御等を行う。ストレージコントローラ110は、図示しない、プロセッサ、メモリ、ホストIF、及びドライブIFを有する。メモリは、ストレージシステム100を制御するためのプログラムを格納し、また、キャッシュメモリとしても用いられる。
【0021】
記憶デバイス111は、SSD(Solid State Drive)等の不揮発性記憶素子を有する記憶デバイスである。記憶デバイス111は、デバイスコントローラ120及び複数のフラッシュメモリ(FM)チップ121を有する。
【0022】
デバイスコントローラ120は、記憶デバイス111を制御する。デバイスコントローラ120は、図示しないプロセッサ、メモリ、ストレージコントローラ110と接続するIF、及びFMチップ121と接続するIFを有する。デバイスコントローラ120は、ストレージシステム100に提供する論理アドレス空間と、FMチップ121の物理アドレスとの対応関係を管理する。論理アドレス空間は、例えば、ページ単位で管理される。記憶デバイス111は、複数のページから構成されるブロック単位でデータの削除を行い、ページ単位でデータの書き込み及び読み出しを行う。
【0023】
FMチップ121は、複数のメモリセルを有する。メモリセルは1ビット又は複数ビットのデータを格納する。デバイスコントローラ120は、FMチップ121の記憶領域を所定のサイズのページに分割し、管理する。
【0024】
図2は、実施例1のデバイスコントローラ120が保持する管理テーブル200の一例を示す図である。
【0025】
管理テーブル200は、論理アドレス空間及び物理アドレスの対応関係を管理するための情報である。管理テーブル200は、LBA201及び物理ページ202を含むエントリを格納する。なお、エントリに含まれるフィールドは前述したものに限定されない。例えば、エントリは論理アドレス空間のページ番号を格納するフィールドを含んでもよい。
【0026】
LBA201は論理アドレス空間のページの先頭アドレス(Logical Block Address)を格納するフィールドである。物理ページ202は、FMチップ121のページの識別情報を格納するフィールドである。
【0027】
図3は、実施例1のストレージシステム100が実行する処理を説明するシーケンス図である。
【0028】
ストレージコントローラ110は、ホスト計算機101からI/O要求を受信した場合(ステップS101)、記憶デバイス111にI/Oコマンドを送信する(ステップS102)。I/OコマンドにはLBAが含まれる。
【0029】
記憶デバイス111のデバイスコントローラ120は、管理テーブル200に基づいてI/Oコマンドに含まれるLBAに対応する物理ページに対するI/O処理を実行する。ここでは、I/O処理においてアンコレクタブルエラー(UNC)が検知されたものとする。UNCを検知した場合(ステップS103)、デバイスコントローラ120は、ストレージコントローラ110に、I/O処理が遅延する可能性があるが、UNCを検知されたFMチップ121を有する記憶デバイス111の継続使用が可能であることを示す「遅延発生ポテンシャル通知」を含む応答を送信する(ステップS104)。このとき、デバイスコントローラ120は、UNCが検知された物理ページに対応するLBAを格納するアドレス情報を生成し、応答に含める。また、デバイスコントローラ120は、特許文献1等の公知の技術を用いて、障害部位を特定し、障害部位に対応するLBAをアドレス情報に含めてもよい。
【0030】
ストレージコントローラ110は、LBAに対応する物理ページを含む記憶デバイス111へのI/O処理の遅延を許容するモードに移行する。後述するように、ストレージコントローラ110は、遅延発生ポテンシャル通知を送信した記憶デバイス111に対するI/O処理の遅延を抑止するために、遅延回避I/O処理を実行する。
【0031】
ストレージコントローラ110は、応答を受信した場合、復元処理を実行する(ステップS105)。例えば、ストレージコントローラ110は、RAIDグループを構成する記憶デバイス111のパリティデータを用いてデータを復元する。なお、本発明は、復元処理の内容に限定されない。UNCが検知された物理ページに格納されるデータを復元できる処理であればよい。
【0032】
ストレージコントローラ110は、復元処理の実行中、UNCを検知した記憶デバイス111に、障害が解消されたか否かを周期的に問い合わせる(ステップS111)。例えば、log senseコマンドを用いた問合せが考えられる。ここで、障害の解消は、LBAに対応する物理ページに対するI/O処理においてUNCが検知されないこと、すなわち、データの復元処理が終了していることを意味する。なお、問合せの周期は任意に設定できる。
【0033】
記憶デバイス111のデバイスコントローラ120は、UNCが検知された物理ページに対応するLBAにアクセスし、UNCの検知結果を含む応答をストレージコントローラ110に送信する(ステップS112)。UNCが検知された場合、デバイスコントローラ120は、UNCが検知された物理ページに対応するLBAを含むアドレス情報を生成し、応答に含めてもよい。
【0034】
復元処理が終了した場合、ストレージコントローラ110は問合せを終了する。
【0035】
なお、復元処理は、記憶デバイス111が主導的に処理を実行してもよい。例えば、デバイスコントローラ120は、FMチップ121間でデータを冗長化している場合、記憶デバイス111内でデータの復元を行うことができる。この場合、ストレージコントローラ110は、記憶デバイス111に対する問合せに対する応答に基づいて、障害が解消したこと、すなわち、復元処理が終了したことを把握することができる。
【0036】
なお、ストレージコントローラ110は、アドレス情報に含まれるLBAの数が閾値より大きい場合、又は、障害が一定期間内に解消できない場合、記憶デバイス111をRAIDグループから削除し、新たな記憶デバイス111をRAIDグループに追加する閉塞処理を実行してもよい。
【0037】
図4は、実施例1のストレージコントローラ110が実行する処理を説明するフローチャートである。
【0038】
ストレージコントローラ110は、I/O要求を受信した場合、アドレス情報を保持しているか否かを判定する(ステップS201)。
【0039】
アドレス情報を保持していない場合、ストレージコントローラ110は、通常のI/O処理を実行する(ステップS203)。
【0040】
アドレス情報を保持している場合、ストレージコントローラ110は、I/O要求のアクセス先のLBAがアドレス情報に登録されているか否かを判定する(ステップS202)。
【0041】
I/O要求のアクセス先のLBAがアドレス情報に登録されていない場合、ストレージコントローラ110は、通常のI/O処理を実行する(ステップS203)。
【0042】
I/O要求のアクセス先のLBAがアドレス情報に登録されている場合、ストレージコントローラ110は、遅延回避I/O処理を実行する(ステップS204)。例えば、I/O要求がデータの読み出しの場合、ストレージコントローラ110は、UNCが検知された物理ページを含む記憶デバイス111が所属するRAIDグループの他の記憶デバイス111からデータを読み出す(コレクションリード)。I/O要求がデータの書き込みの場合、ストレージコントローラ110は、キャッシュにデータを書き込み、障害が解消されたことを検知した後、記憶デバイス111へのデータの書き込みを行う。
【0043】
遅延回避I/O処理を実行することによって、UNCが発生した物理ページを含む記憶デバイス111へのアクセスを抑止することによって、I/O処理の遅延を低減できる。
【0044】
以上で説明したように、本発明によれば、記憶デバイス111は、UNCを検知した場合、遅延発生ポテンシャル通知をストレージコントローラ110に送信することによって、I/O処理の遅延に起因する記憶デバイス111の閉塞を回避させることができる。これによって、記憶デバイス111の継続使用が可能となるため、記憶デバイス111の交換頻度を抑えることができる。また、記憶デバイス111は、UNCが検知された物理ページに対応するLBAを通知することによって、ストレージコントローラ110は、当該LBAを対象としたI/O処理の遅延を抑止することができる。
【0045】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることが可能である。