(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022040260
(43)【公開日】2022-03-10
(54)【発明の名称】ストレージ装置、ストレージシステム、及びプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20220303BHJP
G06F 3/08 20060101ALI20220303BHJP
【FI】
G06F3/06 306Z
G06F3/06 304N
G06F3/06 305C
G06F3/06 540
G06F3/08 H
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022003385
(22)【出願日】2022-01-12
(62)【分割の表示】P 2018004425の分割
【原出願日】2018-01-15
(71)【出願人】
【識別番号】390040187
【氏名又は名称】株式会社バッファロー
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】山本 恭之
(57)【要約】
【課題】NANDデバイスを用いて構成されるディスクデバイスを複数備えたストレージ装置において、データの読み出し機会を確保できるストレージ装置、ストレージシステム、及びプログラムを提供する。
【解決手段】NANDデバイスを用いて構成されるN(Nは2以上の整数)台のディスクデバイスを有し、当該N台のディスクデバイスを用いて、データを冗長に記録するストレージ装置であって、当該ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
NANDデバイスを用いて構成されるN(Nは2以上の整数)台のディスクデバイスを有し、当該N台のディスクデバイスを用いて、データを冗長に記録するストレージ装置であって、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、
を有するストレージ装置。
【請求項2】
請求項1記載のストレージ装置であって、
前記ディスクデバイスのそれぞれの寿命到来タイミングを推定する手段をさらに有し、
前記設定手段は、当該推定された寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とするストレージ装置。
【請求項3】
請求項1または2に記載のストレージ装置であって、
前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスにて前記冗長な記録が不能となったか否かを判断する判断手段をさらに含むストレージ装置。
【請求項4】
請求項3に記載のストレージ装置であって、
前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスへのデータ書き込みを許可しない設定とするストレージ装置。
【請求項5】
請求項3に記載のストレージ装置であって、
前記N台のディスクデバイスを用いて仮想ディスクを構成する手段を有し、
前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスによって構成される仮想ディスクへのデータ書き込みを許可しない設定とするストレージ装置。
【請求項6】
請求項3に記載のストレージ装置であって、
前記N(Nは4以上の整数)台のディスクデバイスのうち、m台(1<m<N)のディスクデバイスを用いて第1の仮想ディスクを構成し、当該第1の仮想ディスクを構成するディスクデバイスとはそれぞれ異なるp台(1<p<N-m)のディスクデバイスを用いて第2の仮想ディスクを構成する手段を有し、
前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスによって構成される第1、または第2の仮想ディスクへのデータ書き込みを許可しない設定とするストレージ装置。
【請求項7】
請求項1から6のいずれか一項に記載のストレージ装置であって、
iSCSIにて接続されるときに、前記設定手段によりいずれかのディスクデバイスがデータ書き込みを許可しない設定とされているときでも、当該ディスクデバイスへのデータ書き込みを許可した状態に再設定する再設定手段をさらに有するストレージ装置。
【請求項8】
請求項1から7のいずれか一項に記載のストレージ装置であって、
前記設定手段は、データ書き込みを許可しない設定とするときには、システム領域へのデータ書き込みは許可された状態とし、システム領域外の領域へのデータ書き込みを許可しない設定とするストレージ装置。
【請求項9】
請求項1から8のいずれか一項に記載のストレージ装置であって、
前記設定手段が、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知を行う通知手段をさらに有するストレージ装置。
【請求項10】
NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置と、当該ストレージ装置に接続されるホスト装置とを含み、
前記ストレージ装置は、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、
を有するストレージシステム。
【請求項11】
NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置を、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置、ストレージシステム、及びプログラムに関する。
【背景技術】
【0002】
SSD(Solid State Drive)等のNANDデバイスを用いた不揮発性記憶装置には、予め想定された寿命がある。そこで、不揮発性記憶装置が寿命に近づいたときに、不揮発性記憶装置に対する書き込み動作を行わないよう制御する技術が特許文献1に開示されている。
【0003】
この特許文献1の技術では、不揮発性記憶装置が寿命と判断すると、ブートローダを書き換えて、意図しない書き込みを行わない緊急時OSにて起動することとして、書き込み動作を抑制している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方、不揮発性記憶装置を複数台用いて、データを冗長に記録するストレージ装置(RAID(Redundant Arrays of Inexpensive Disks)装置等)を構成する場合、当該ストレージを構成するディスクデバイスの一つが寿命と判断されて書き込み禁止のモード(ライトプロテクトモード)となると、ディスクデバイス単体ではデータの読み出しが可能であるにも関わらず、RAIDコントローラによって当該ディスクデバイスがエラードライブとして扱われ、実際には冗長性が確保できるにも関わらず、RAIDとして構成されたディスクデバイス群からのデータの読み出しが不能になる事態が生じ得る。
【0006】
本発明は上記実情に鑑みて為されたもので、NANDデバイスを用いて構成されるディスクデバイスを複数備えたストレージ装置において、データの読み出し機会を確保できるストレージ装置、ストレージシステム、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0007】
上記従来例の問題点を解決する本発明の一態様は、NANDデバイスを用いて構成されるN(Nは2以上の整数)台のディスクデバイスを有し、当該N台のディスクデバイスを用いて、データを冗長に記録するストレージ装置であって、前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、を有することとしたものである。
【0008】
このように、寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とすることで、RAID構成等、冗長記録のためのディスクデバイス群に含まれるディスクデバイスがエラードライブとして扱われてしまうより前の段階で、データの読み出し機会を確保できる。
【0009】
また、前記ディスクデバイスのそれぞれの寿命到来タイミングを推定する手段をさらに有し、前記設定手段は、当該推定された寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とすることとしてもよい。
【0010】
このように、推定された寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とすることで、RAID構成等、冗長記録のためのディスクデバイス群に含まれるディスクデバイスがエラードライブとして扱われてしまうより前の段階で、データの読み出し機会を確保できる。
【0011】
また前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスにて前記冗長な記録が不能となったか否かを判断する判断手段をさらに含んでもよい。
【0012】
このとき、前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスへのデータ書き込みを許可しない設定とすることとしてもよい。
【0013】
これにより、冗長な記録が可能な状態でデータ書き込みを許可しない設定に移行してしまうことがなくなり、ディスクデバイスができるだけ長期にわたって利用可能となる。
【0014】
また前記N台のディスクデバイスを用いて仮想ディスクを構成する手段を有し、前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスによって構成される仮想ディスクへのデータ書き込みを許可しない設定とすることとしてもよい。
【0015】
さらに、前記N(Nは4以上の整数)台のディスクデバイスのうち、m台(1<m<N)のディスクデバイスを用いて第1の仮想ディスクを構成し、当該第1の仮想ディスクを構成するディスクデバイスとはそれぞれ異なるp台(1<p<N-m)のディスクデバイスを用いて第2の仮想ディスクを構成する手段を有し、前記設定手段は、前記判断手段が、前記冗長な記録が不能となったと判断したときに、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを含む複数のディスクデバイスによって構成される第1、または第2の仮想ディスクへのデータ書き込みを許可しない設定とすることとしてもよい。
【0016】
これによっても、冗長な記録が可能な状態でデータ書き込みを許可しない設定に移行してしまうことがなくなり、ディスクデバイスができるだけ長期にわたって利用可能となる。
【0017】
また、iSCSIにて接続されるときに、前記設定手段によりいずれかのディスクデバイスがデータ書き込みを許可しない設定とされているときでも、当該ディスクデバイスへのデータ書き込みを許可した状態に再設定する再設定手段をさらに有してもよい。これによりiSCSIでの接続の際に特有の事情が考慮される。
【0018】
また前記設定手段は、データ書き込みを許可しない設定とするときには、システム領域へのデータ書き込みは許可された状態とし、システム領域外の領域へのデータ書き込みを許可しない設定としてもよい。
【0019】
これにより、システム領域へのデータ書き込みは許容された状態に維持でき、システム上の不具合を生じることがなくなる。
【0020】
さらに、前記設定手段が、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知を行う通知手段をさらに有してもよい。
【0021】
このように、推定された寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知が行われることで、ユーザに対処の機会を与えることができる。
【0022】
また本発明の別の態様に係るストレージシステムは、NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置と、当該ストレージ装置に接続されるホスト装置とを含み、前記ストレージ装置は、前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、を有することとしたものである。
【0023】
さらに本発明の別の態様に係るプログラムは、NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置を、前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスへのデータ書き込みを許可しない設定とする設定手段と、として機能させることとしたものである。
【発明の効果】
【0024】
本発明によると、NANDデバイスを用いて構成されるディスクデバイスを複数備えたストレージ装置において、データの読み出し機会が確保される。
【図面の簡単な説明】
【0025】
【
図1】本発明の実施の形態に係るストレージシステムの例を表す構成ブロック図である。
【
図2】本発明の実施の形態に係るストレージ装置の一例に係る機能ブロック図である。
【
図3】本発明の実施の形態に係るストレージ装置が保持する寿命到来タイミングに係る情報の内容例を表す説明図である。
【
図4】本発明の実施の形態に係るストレージ装置の動作例を表すフローチャート図である。
【発明を実施するための形態】
【0026】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るストレージシステム1は、
図1に例示するように、ストレージ装置10と、当該ストレージ装置10に接続されるホスト装置20とを含んで構成される。
【0027】
またこのストレージ装置10は、それぞれがNANDデバイスを用いて構成される複数台(ここではN台、ただしNは2以上の整数)のディスクデバイス11a,11b…,11N(以下、それぞれを区別する必要がない場合は、ディスクデバイス11として表記する)と、コントローラ12と、通信部13とを含んで構成される。
【0028】
ここでディスクデバイス11は、NANDデバイスを用いて構成されるディスクデバイスであり、例えばSSD等である。このディスクデバイス11は、自ら寿命が到来したか否かを判断し、寿命が到来したと判断すると、データの書き込みを受け付けない「ライトプロテクトモード」に移行する。
【0029】
またこのディスクデバイス11は、自らの動作に関連するステータス情報を記録している。このステータス情報としては、バッドブロック数の総計、読み出しや書き込み、あるいは消去回数の総計、読み出しや書き込み、あるいは消去回数の単位時間あたりの平均値、NANDメモリの書き込みエラー発生回数の総計、NANDメモリの消去エラー発生回数の総計、読み出し論理セクタ数の総計、書き込み論理セクタ数の総計、ECC訂正不能回数の総計、nビット~mビットECC訂正単位の総計、SATA通信のRエラー発生回数の総計、SATA通信のエラー発生回数の総計、ディスクデバイス11内のメモリのエラー発生回数の総計、使用時間の総計、温度が推奨動作温度の最高値を上回った時間の総計、温度が推奨動作温度の最低値を下回った時間の総計、コマンドの応答時間の過去の最大値、コマンドの応答時間の平均値、NANDメモリの応答時間の最大値、NANDの応答時間の平均値、現在の温度、動作中の最高温度、動作中の最低温度などがある。
【0030】
コントローラ12は、マイクロコンピュータ等であり、CPUなどのプログラム制御デバイス及び当該プログラム制御デバイスによって実行されるプログラムを格納したメモリを含んで構成される。ここでプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、あるいはネットワークを介して受信されて、このコントローラ12のメモリに格納されたものであってもよい。
【0031】
本実施の形態の一例では、このコントローラ12は、基本機能ユニット12aと、制限設定ユニット12bとを含んで構成される。ここで基本機能ユニット12aは、従来一般的なRAIDコントローラとして機能する。なお、基本機能ユニット12aと、制限設定ユニット12bとは、一体のCPU等のプロセッサで実現されてもよいし、それぞれが互いに異なるCPU等で実現されるなど、複数のプロセッサにより実現されてもよい。
【0032】
また本実施の形態の一例では、このコントローラ12は、ホスト装置20のプロセッサがRAIDコントローラプログラムを実行することにより実現されてもよい。つまり、本実施の形態におけるRAID構成は、ハードウェアRAIDとして実現されてもよいし、ソフトウェアRAIDとして実現されてもよい。
【0033】
具体的にこのコントローラ12の基本機能ユニット12aは、複数のディスクデバイス11のそれぞれを所定の方法で設定したデバイス特定情報で識別する。コントローラ12の基本機能ユニット12aは、例えばディスクデバイス11が接続されているドライブベイごとに予めドライブ識別子を設定しておき、当該ドライブ識別子をそのまま、対応するドライブベイに接続されたディスクデバイス11を識別するデバイス特定情報として用いてもよい。
【0034】
コントローラ12の基本機能ユニット12aは、当該デバイス特定情報でそれぞれ識別される複数のディスクデバイス11を用いて、通信部13を介して受信される、記録対象のデータを冗長に記録する。この冗長記録の方法は、例えばRAID等の広く知られた方法があるので、ここでの詳しい説明は省略するが、例えばN台あるディスクデバイス11のすべてを用いて、いわゆるRAID5の構成としてもよいし、N/2(ただしNは4以上の偶数であるものとする)台ずつを用いて、2つのRAIDを構成してもよい。後者の場合は、ホスト装置20からは、ストレージ装置10が2つのディスク装置を有しているかのように認識されることとなる。以下の説明では、このようなRAID等の冗長構成の記録単位(1つのディスク装置として認識されるディスクデバイス11の群)のそれぞれを、ディスクアレイと呼ぶ。
【0035】
またこのコントローラ12の基本機能ユニット12aは、読み出し命令を受信すると、当該読み出し命令によって特定されるディスクデバイス11内の位置に記録されているデータを、通信部13に出力し、ホスト装置20側に送出する。ここまでのコントローラ12の基本機能ユニット12aの動作は、一般的な、RAID構成されたストレージデバイスにおける動作であるので、これ以上の詳しい説明を省略する。
【0036】
本実施の形態では、コントローラ12の基本機能ユニット12aは、データの書き込み命令を受信したときに、当該データの書き込み命令によりデータの書き込み先として指定されるディスクアレイへのデータ書き込みが許可しない設定となっているか否かを調べる。そして、コントローラ12の基本機能ユニット12aは、データの書き込み先として指定されるディスクアレイへのデータ書き込みが許可しない設定となっていなければ、受信したデータの書き込み命令に従い、ディスクアレイへのデータ書き込みを行う。このデータの書き込みの処理は従来と同様であるので、これ以上の詳しい説明を省略する。
【0037】
一方、コントローラ12の基本機能ユニット12aは、受信したデータの書き込み命令によりデータの書き込み先として指定されるディスクアレイへのデータ書き込みが許可しない設定となっているときには、データの書き込みを行わない。このとき、基本機能ユニット12aは書き込みができない旨のエラーの報知を、書き込み命令の送出元であるホスト装置20側に送出してもよい。
【0038】
また本実施の形態において、このコントローラ12の制限設定ユニット12bは、各ディスクデバイス11の寿命到来タイミング(ディスクデバイス11がライトプロテクトモードに移行するタイミング)より前の、所定のタイミングが到来したディスクデバイス11について、少なくとも予め定めた条件が満足されるときには、当該ディスクデバイス11へのデータ書き込みを許可しない設定(当該ディスクデバイス11を含むディスクアレイへのデータ書き込みを許可しない設定)とする。
【0039】
ここで予め定められる条件は、例えば、上記所定のタイミングが到来したディスクデバイス11がライトプロテクトモードとなったときに、当該ディスクデバイス11を含むディスクアレイにおいて冗長性が確保できない、などの条件である。
【0040】
具体的にコントローラ12の制限設定ユニット12bは、ディスクアレイごとに、ディスクアレイを構成するディスクデバイス11のうちに、書き込みを許可しない設定となったディスクデバイス11または故障した状態となっているディスクデバイス11があるか否かを調べる。
【0041】
ここで、故障した状態とは、現実に書き込みが不能となっている状態のほか、ディスクデバイス11自体が寿命と判断して、ライトプロテクトモードとなった状態を含む。
【0042】
コントローラ12の制限設定ユニット12bは、故障した状態となったディスクデバイス11が含まれるディスクアレイがあれば、当該ディスクアレイについて、次に当該ディスクアレイ内で他のディスクデバイス11が故障した状態となったときに冗長性が確保できなくなるか否かをさらに判断する。コントローラ12は、次に当該ディスクアレイ内で他のディスクデバイス11が故障した状態となったときに冗長性が確保できないと判断した場合、当該ディスクアレイ内のディスクデバイス11のうちに、推定された寿命到来タイミングより前の、所定のタイミングが到来したディスクデバイス11があれば、当該ディスクアレイへのデータ書き込みを許可しない設定とする。このコントローラ12の制限設定ユニット12bの動作例については後に述べる。
【0043】
通信部13は、ネットワークインタフェースまたはシリアルインタフェース等であり、ネットワークまたはUSB等のシリアル接続の手段を介してホスト装置20との間でデータ等を送受する。この通信部13は、ホスト装置20からデータ記録命令(ライト命令)とともに記録対象データを受信すると、当該記録対象データをコントローラ12に出力する。またホスト装置20からデータの読み出し命令(リード命令)を受信すると、当該読み出し命令をコントローラ12に出力し、当該読み出し命令に応じてコントローラ12が出力するデータを、ホスト装置20に対して送信する。
【0044】
ホスト装置20は、例えばパーソナルコンピュータ(PC)等であり、ユーザからの指示等に応じて、ストレージ装置10に記録対象データとデータ記録命令とを送出する。またこのホスト装置20は、ユーザからの指示等に応じて、ストレージ装置10に対してデータの読み出し命令を送出し、ストレージ装置10が当該データの読み出し命令に応答して送出するデータを受信して、当該データを利用してユーザから指定された処理を実行するなど、当該受信したデータを所定の処理に供する。
【0045】
次に、ストレージ装置10のコントローラ12の動作(特に制限設定ユニット12bの動作)について説明する。本実施の形態では、このコントローラ12は、メモリに格納されたプログラムを実行することにより、制限設定ユニット12bとして機能し、一例として
図2に例示するように、機能的に、情報収集部21と、推定処理部22と、判断部23と、設定処理部24とを含む構成を実現する。
【0046】
情報収集部21は、ディスクデバイス11のそれぞれの寿命到来タイミングを推定するための情報を収集する。本実施の形態の一例では、この情報収集部21は、ディスクデバイス11の動作に関連したステータス情報を収集する。このステータス情報は例えば、バッドブロック数の総計、書き込み回数の総計、書き込み回数の単位時間あたりの平均値、読み出し回数の総計、読み出し回数の単位時間あたりの平均値、消去回数の総計、消去回数の単位時間あたりの平均値、NANDメモリの書き込みエラー発生回数の総計、NANDメモリの消去エラー発生回数の総計、読み出し論理セクタ数の総計、書き込んだ論理セクタ数の総計、ECC訂正不能回数の総計、nビット~mビットECC訂正単位の総計、SATA通信のRエラー発生回数の総計、SATA通信のエラー発生回数の総計、ディスクデバイス11内のメモリのエラー発生回数の総計、ディスクデバイス11の使用時間の総計、温度が推奨動作温度の最高値を上回った時間の総計、温度が推奨動作温度の最低値を下回った時間の総計、コマンドの応答時間の過去の最大値、コマンドの応答時間の平均値、NANDメモリの応答時間の最大値、NANDの応答時間の平均値、現在の温度、動作中の最高温度、動作中の最低温度、ディスクデバイス11が記録している統計情報の単位時間あたりの数の増加率、NAND整理失敗フラグのうち、少なくとも一つなどの統計情報が含まれる。さらにこの情報収集部21は、ディスクデバイス11について予め設定されている(ディスクデバイス11のメーカーにより保証されている)、寿命に関する情報(保証寿命情報と呼ぶ)を収集してもよい。この寿命に関する情報には、例えば消去回数の総計、使用時間の総計等の情報が含まれる。
【0047】
推定処理部22は、情報収集部21が収集したステータス情報に基づいて、ディスクデバイス11のそれぞれの寿命到来タイミングを推定する。この寿命到来タイミングは、ディスクデバイス11についての保証寿命情報とは異なり、また、保証寿命情報が表す寿命を超えてディスクデバイス11への読み書き動作を行った結果、バッドブロック数が予めメーカーで定めた閾値を超えたときなど、寿命と判断されるタイミング(以下、このタイミングをメーカー設定寿命タイミングと呼ぶ)であるものとする。
【0048】
一例として、本実施の形態の推定処理部22は、各ディスクデバイス11のステータス情報のうち、バッドブロック数と消去回数とを参照し、予め定めたしきい値THから参照したバッドブロック数BBを差し引いた値を用いてディスクデバイス11について寿命到来タイミングを推定する。具体的な例として推定処理部22は、予め定めたしきい値THから参照したバッドブロック数BBを差し引いた値に予め定めた正の定数αを乗じた値α×(TH-BB)を求める。そして、推定処理部22は、この値に、推定処理時点の消去回数ENcを加算した値ENc+α×(TH-BB)を寿命到来タイミングと推定する。
【0049】
ここでしきい値TH及び定数αは推定される寿命到来タイミングが、メーカー設定寿命タイミングより前となるように設定する。例えばメーカー設定寿命タイミングが消去回数の総計により、BBlimitなる値となっていたとすると、コントローラ12は、ここでのしきい値THをTH<BBlimitとなるように設定する。具体的にはTH=「1」(バッドブロックが生じたときに寿命到来タイミングが推定される)としてもよいし、「2」以上かつBBlimit未満の所定の整数値としてもよい。
【0050】
なお、寿命到来タイミングの推定にバッドブロック数を用いる場合に、しきい値からバッドブロック数を差し引いた値により寿命到来タイミングを推定する方法は一例であり、この推定は、α・(1-BB/TH)のようにしきい値とバッドブロック数との比を用いて行ってもよいし、さらに他の演算式を用いてもよい。
【0051】
例えば、ディスクデバイス11から残り寿命の情報が取得できる場合、当該残り寿命の情報が予め定めたしきい値を下回るタイミングを寿命到来タイミングとしてもよい(この場合、後述の寿命予防タイミングは、当該寿命到来タイミングに対応する残り寿命の情報の値以上の値として定める)。さらに、リロケートのために用意された未使用セクタの数(バッドブロックの数が増大すると減少する)が予め予め定めたしきい値を下回るタイミングを寿命到来タイミングとしてもよい(この場合、後述の寿命予防タイミングは、当該寿命到来タイミングに対応する、リロケートのために用意された未使用セクタの数以上の値として定める)。
【0052】
またここでの例では、推定処理部22が寿命到来タイミングを、メーカーにより定められた保証寿命情報が表すタイミングを超えたタイミングとしているが、推定処理部22は、実質的には推定の処理を行わずに、この保証寿命情報が表すタイミングをそのまま寿命到来タイミングとして設定してもよいし、ディスクデバイス11がライトプロテクトモードになる前にライトプロテクトモードに入ること(あるいはライトプロテクトモードに入るまでの残余の期間が比較的短いこと)を通知する機能を有している場合は、当該通知を受けたタイミングとして設定されてもよい。
【0053】
判断部23は、推定処理部22が定めた寿命到来タイミングより前の所定のタイミング(以下、寿命予防タイミングと呼ぶ)が到来したディスクデバイスがあるか否かを判断する。ここで、寿命到来タイミングより以前の所定のタイミング(寿命予防タイミング)は、寿命到来タイミングT=ENc+α×(TH-BB)から予め定めた消去回数ENsを差し引いた値τ=T-ENsとして設定される。なお、寿命予防タイミングは、寿命到来タイミングそのものとしても(上述の例ではENs=0としても)よい。
【0054】
判断部23は、推定処理部22が定めたディスクデバイス11ごとの寿命到来タイミングTi(i=1,2…)のそれぞれから予め定めた消去回数ENsを差し引いた値τi=Ti-ENsを求め、対応するディスクデバイス11の現在の消去回数ENiと比較する。そして判断部23は、この現在の消去回数ENiが、上記の方法で求められた値τiを超えているディスクデバイス11があるか否かを調べる。判断部23は、ENi>τiとなっているディスクデバイス11があれば(寿命予防タイミングが到来したディスクデバイス11があれば)、当該寿命予防タイミングが到来したディスクデバイス11を含む複数のディスクデバイス11により冗長な記録が不能となったか否かを判断する。
【0055】
ここで冗長な記録が不能となったか否かは、当該寿命予防タイミングが到来したディスクデバイス11等、もう一つのディスクデバイス11が故障した状態となったときに、記録されているデータの読み出しができなくなる(一部でも、読み出しができなくなるデータが発生する)否かにより判断する。
【0056】
なお、ストレージ装置10がN台(Nは4以上の整数)のディスクデバイス11を備え、このN台のストレージデバイス11のうち、m台(1<m<N)のディスクデバイスを用いて第1の仮想ディスク(第1のディスクアレイ)を構成し、当該第1の仮想ディスクを構成するディスクデバイスとはそれぞれ異なるp台(1<p<N-m)のディスクデバイスを用いて第2の仮想ディスク(第2のディスクアレイ)を構成している場合、つまり、複数のディスクアレイが構成されている場合は、判断部23は、寿命予防タイミングが到来したディスクデバイス11を含む複数のディスクデバイス11により構成されるディスクアレイについて冗長な記録が不能な状態である(次に当該ディスクアレイ内で寿命予防タイミングが到来したディスクデバイス11が故障した状態となったときにデータの読み出しができなくなる)か否かを判断する。
【0057】
設定処理部24は、判断部23が冗長な記録が不能となったと判断したときに、寿命予防タイミングが到来したディスクデバイス11へのデータ書き込みを許可しない設定とする。
【0058】
ここで判断部23がディスクアレイごとに冗長な記録が不能となったか否かを判断している場合は、設定処理部24は、冗長な記録が不能となったと判断されたディスクアレイに含まれる、寿命予防タイミングが到来したディスクデバイス11へのデータ書き込みを許可しない設定とする。
【0059】
ここでデータの書き込みを許可しない設定は、コントローラ12の基本機能ユニット12aにて制御するほか、あるいは、基本機能ユニット12aにて制御するとともに、ホスト装置20に対して、例えばディスクデバイス11を、読み出しのみを可能とする状態でマウントさせること(いわゆるROマウントを行わせること)で実現することとしてもよい。また、別の例では、このデータの書き込みを許可しない設定とするディスクデバイス11を含むディスクアレイについて、ホスト装置20に読み出しのみを可能とする状態でマウントさせるようにしてもよい。
【0060】
なお、本実施の形態のある例では、コントローラ12が、ストレージ装置10が備えるディスクデバイス11のすべてについて、寿命到来タイミング及び寿命予防タイミングを定めるのではなく、ディスクデバイス11が予め定めた対象条件を満足する場合に限り、当該対象条件を満足するディスクデバイス11の寿命到来タイミング及び寿命予防タイミングを定めて、上記の処理を行うようにしてもよい。
【0061】
一例として、この対象条件は、ディスクデバイス11の型番(メーカーやモデルを特定する情報、あるいは製造ロットを特定する情報等)によって定められてもよい。また、この対象条件ごとに、寿命到来タイミングを推定するために参照する情報や、そのしきい値THや、寿命予防タイミングを求めるための値(寿命到来タイミングからの消去回数の差など)を異ならせてもよい。この場合、コントローラ12は、アクセス可能な記憶部(コントローラ12内のメモリであってもよいし、外部のメモリであってもよい)に、
図3に例示するように、ディスクデバイス11の型番の情報などの対象条件(X)と、参照する情報の種類を特定する情報(Y)と、しきい値等の寿命到来タイミングや、寿命予防タイミングを求めるためのパラメータ情報(Z)とを互いに関連付けて保持しておき、この情報を参照して、必要に応じて(ディスクデバイス11が対象条件を満足する場合に)寿命到来タイミングや、寿命予防タイミングを求める。
【0062】
本実施の形態は以上の構成を備えており、次の例のように動作する。なお、以下の例では、ストレージ装置10が4台のディスクデバイス11a,b,c,dを備えているものとする。またこのストレージ装置10では、ディスクデバイス11a,11bを用いてRAID1(ミラーリング)の第1の仮想ディスクが構成され、ディスクデバイス11c,11dを用いてRAID1の第2の仮想ディスクが構成されているものとする。すなわち、この例では、ホスト装置20が第1の仮想ディスクに対して書き込んだデータは、ディスクデバイス11a,bの双方に冗長的に記録されるものとする。
【0063】
コントローラ12は、各ディスクデバイス11a,b,c,dに対して、それぞれデバイス特定情報として「1」から「4」までの連番を設定しているものとする。
【0064】
またコントローラ12は、所定のタイミング(例えばディスクデバイス11において何らかのエラーが発生したタイミング、定期的なタイミング等、予め定めたタイミング)ごとに繰り返してディスクデバイス11a,b,c,dのそれぞれの寿命到来タイミングを推定する処理を実行する。
【0065】
この処理では、
図4に例示するように、コントローラ12は、ディスクデバイス11a,b,c,dのそれぞれの寿命到来タイミングを推定するためのステータス情報として、バッドブロック数の総計と消去回数の総計とを収集する(S1)。
【0066】
コントローラ12は、ここで収集したステータス情報に基づいて、ディスクデバイス11a,b,c,dのそれぞれの寿命到来タイミングを推定する(S2)。コントローラ12は、ディスクデバイス11a,b,c,dのそれぞれについて、例えば、予め定めたしきい値THから参照したバッドブロック数BBi(ここでiはデバイス特定情報であり、ここでの例では1から4までのいずれかの整数値となる)を差し引いた値に予め定めた正の定数αを乗じた値α×(TH-BBi)を求める。コントローラ12は、この値に、対応するディスクデバイス11の、推定処理時点の消去回数ENciを加算した値ENci+α×(TH-BBi)を、当該ディスクデバイス11の寿命到来タイミングと推定する。
【0067】
なお、ここでしきい値TH及び定数αは既に述べたように、推定される寿命到来タイミングが、メーカー設定寿命タイミングより前となるよう、メーカー設定寿命タイミングが消去回数の総計BBlimitで定められているときには、コントローラ12は、ここでのしきい値THをTH<BBlimitとなるように設定する。
【0068】
コントローラ12は、ディスクデバイス11a,b,c,dのそれぞれについて、ディスクデバイス11を特定するデバイス特定情報に関連付けて、対応するディスクデバイス11について処理S2にて推定した寿命到来タイミングを記憶する。
【0069】
コントローラ12は、各仮想ディスクについて、冗長な記録ができなくなったか否か、つまり、仮想ディスクとしてのディスクアレイを構成するディスクデバイス11のうち、あと一台のディスクデバイス11が故障した状態となったときに、記録されているデータの読み出しができなくなる(一部でも、読み出しができなくなるデータが発生する)か否かを表す情報を取得する(S3)。
【0070】
またコントローラ12はさらに、当該ディスクアレイを構成するディスクデバイス11について寿命予防タイミングが到来しているか否かを表す情報を取得する(S4)。この処理S4では、寿命到来タイミングTi=ENci+α×(TH-BBi)のそれぞれから予め定めた消去回数ENsを差し引いた値τi=Ti-ENsを求め、対応するディスクデバイス11の現在の(処理S11の実行時点での)消去回数ENiと比較する。
【0071】
コントローラ12は、この現在の消去回数ENiが、上記の方法で求められた値τiを超えている、つまり、ENi≧τiとなっているディスクデバイス11については、寿命予防タイミングが到来したものとする。また、ENi<τiであれば、当該ディスクデバイス11については、寿命予防タイミングが到来していないものとする。
【0072】
コントローラ12は、さらに、処理S3と処理S4とが得た情報に基づき、あと一台のディスクデバイス11が故障した状態となったときに、記録されているデータの少なくとも一部が読み出し不能となるディスクアレイ(冗長な記録ができないディスクアレイ)内のディスクデバイス11のうちに、寿命予防タイミングが到来したディスクデバイス11があるか否かを調べる(S5)。
【0073】
コントローラ12は、冗長な記録ができないディスクアレイ内のディスクデバイス11のうちに、寿命予防タイミングが到来したディスクデバイス11があると判断すると(S5:Yes)、当該寿命予防タイミングが到来したディスクデバイス11へのデータ書き込みを許可しない設定とする(S6)。
【0074】
また、コントローラ12は、処理S5において、冗長な記録ができないディスクアレイがない場合、あるいは、冗長な記録ができないディスクアレイはあるが、当該ディスクアレイ内のディスクデバイス11のうちに、寿命予防タイミングが到来したディスクデバイス11がない場合(S5:No)は、そのまま処理を続ける。この場合、当該ディスクアレイ内のディスクデバイス11に対しては読み出し・書き込みのいずれの動作も許可される。
【0075】
なお、コントローラ12は、処理S3において、冗長な記録ができないディスクアレイを見いだしたときには、当該ディスクアレイを、冗長な記録を行うモードから、通常の記録を行いつつ、ディスクデバイスが交換されれば冗長な記録へ復帰するモード(いわゆるデグレードモード)に移行するよう制御してもよい。このモードの移行処理については従来広く知られた処理であるので、ここでの詳しい説明を省略する。
【0076】
コントローラ12は、各仮想ディスクについて処理S3からS6の処理を繰り返して実行する。
【0077】
この動作により、本実施の形態のストレージ装置10は、寿命予防タイミングが到来しているディスクデバイス11を含むディスクアレイが、冗長な記録ができない状態となった(あと一台のディスクデバイス11が故障した状態となったときに、記録されているデータの読み出しができなくなる状態となった)場合や、冗長な記録ができない状態であるディスクアレイ内のいずれかのディスクデバイス11が寿命予防タイミングとなった場合に、当該寿命予防タイミングが到来しているディスクデバイス11に対するデータ書き込みを許可しない設定とし、当該ディスクアレイをライトプロテクトモードでホスト装置20にマウントさせる。
【0078】
これにより、ストレージ装置10を構成するディスクデバイス11が寿命と判断されて書き込み禁止のモードとなるよりも前であって、かつ、次にディスクデバイス11が故障した状態(寿命と判断されて書き込み禁止のモードとなる状態を含む)となったときにデータの少なくとも一部の読み出しができなくなる場合(冗長な記録が不能となる場合)に、寿命予防タイミングが到来したディスクデバイス11に対するデータの書き込みを禁止する設定を行うこととなり、ディスクデバイス11自体がライトプロテクトモードとなってディスクアレイが構成できなくなり、データの読み出しが不能となってしまうことがなく、また、寿命以前にデータの読み出しのみが許可された状態に移行するため、データの損失機会も低減できる。
【0079】
また本実施の形態の例では、コントローラ12は、データ書き込みを許可しない設定としたディスクデバイス11であっても、ディスクデバイス11内にシステム領域として確保された領域(ユーザデータではなく、非常時動作用のオペレーティングシステムを格納した領域等)については、データ書き込みを許可された状態としてもよい。この場合、システム領域に対するデータ書き込み指示を受け入れたときには、コントローラ12は、当該指示に従ってシステム領域内へのデータ書き込みを実行する。また、このときコントローラ12は、システム領域以外の領域に対するデータ書き込み指示については、当該指示を無視するか、あるいはエラーとして処理し、データの書き込みを行わない。
【0080】
さらにコントローラ12は、処理S4にて、寿命到来タイミングより以前の所定のタイミング(寿命予防タイミング)が到来したディスクデバイス11を見いだしたときには、当該ディスクデバイス11へのデータ書き込みを許可しない設定とするか否かに関わらず、そのようなディスクデバイス11が存在することを表す通知処理を行ってもよい。この通知処理は、例えばストレージ装置10が備える液晶ディスプレイ(不図示)に当該事情を通知する文字列を表示し、あるいはストレージ装置10が備えるLEDランプ(不図示)を点灯ないし点滅させる、ブザー(不図示)を鳴動する等して通知することとしてもよいし、ホスト装置20に対して、寿命予防タイミングが到来したディスクデバイス11が存在する旨の通知を出力してもよい。
【0081】
さらにこの通知処理では、予め定めたメールサーバに対して、寿命予防タイミングが到来したディスクデバイス11が存在する旨のメールを、予め設定されたユーザ宛に送信させることとしてもよい。またコントローラ12がウェブサーバとして機能するときには、ホスト装置20等から、ネットワークを介して当該ウェブサーバに対して情報が要求されたときに、その要求元に対して寿命予防タイミングが到来したディスクデバイス11が存在する旨の情報を表示させるウェブページを提供してもよい。
【0082】
この場合ホスト装置20は、当該通知を受けたときには、ユーザにその旨を通知する表示等を行うこととしてもよい。なお、ここでの通知では必ずしも、寿命予防タイミングが到来したディスクデバイス11を特定する必要はないが、コントローラ12は、寿命予防タイミングが到来したディスクデバイス11のデバイス特定情報を併せて通知することとしてもよい。
【0083】
[iSCSIでの接続]
また本実施の形態のある例では、ホスト装置20は、ストレージ装置10との間でiSCSI(Internet Small Computer System Interface)規格に基づく通信を行い、ストレージ装置10に対してデータの書き込みや読み出しを指示してもよい。
【0084】
この場合、iSCSI規格においては、データの書き込みを許可しない状態でのマウントを行うことができない場合がある。そこで、ストレージ装置10のコントローラ12は、iSCSI規格に基づく通信(iSCSIプロトコル)により接続されるホスト装置20がある場合は、その接続時に、データの書き込みを許可しない状態となっているディスクデバイス11があるか否かを調べ、そのようなディスクデバイス11があれば、一時的に(iSCSI規格に基づく通信が行われている間)、当該ディスクデバイス11へのデータの書き込みを許可するよう再設定する。またiSCSI規格に基づく通信が終了したときには、コントローラ12は、iSCSI規格に基づく通信が行われている間、データの書き込みを許可するよう再設定したディスクデバイス11について、データの書き込みを許可しない設定とする。
【0085】
このとき、コントローラ12は、寿命が近接していることや、データを書き込まないよう求める通知をユーザに対して行ってもよい。この通知は、既に述べたように、ストレージ装置10が備える液晶ディスプレイ(不図示)を用いた表示や、ホスト装置20に通知させる方法等、種々の方法により達成できる。
【0086】
また、本実施の形態の説明では、NANDデバイスを用いた装置として、SSDを例として説明したが、これは一例であり、他にSDカードや、NANDフラッシュを用いたUSBメモリ等であってもよく、これらの少なくとも一種類以上を用いて、冗長な書き込みをする構成としている場合には、本発明の処理が適用可能である。
【符号の説明】
【0087】
10 ストレージ装置、11 ディスクデバイス、12 コントローラ、13 通信部、20 ホスト装置、21 情報収集部、22 推定処理部、23 判断部、24 設定処理部。
【手続補正書】
【提出日】2022-01-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
NANDデバイスを用いて構成されるN(Nは2以上の整数)台のディスクデバイスを有し、当該N台のディスクデバイスを用いて、データを冗長に記録するストレージ装置であって、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスが故障した状態となったときに、読み出しが不能となるデータが発生するか否かを判断することで、冗長な記録が不能となったか否かを判断する判断手段と、
前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知を行う通知手段と、
を有するストレージ装置。
【請求項2】
請求項1記載のストレージ装置であって、
前記通知手段は、前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスを特定する情報を併せて通知するストレージ装置。
【請求項3】
請求項1または2に記載のストレージ装置であって、
前記N(Nは4以上の整数)台のディスクデバイスのうち、m台(1<m<N)のディスクデバイスを用いて第1の仮想ディスクを構成し、当該第1の仮想ディスクを構成するディスクデバイスとはそれぞれ異なるp台(1<p<N-m)のディスクデバイスを用いて第2の仮想ディスクを構成する手段を有するストレージ装置。
【請求項4】
NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置と、当該ストレージ装置に接続されるホスト装置とを含み、
前記ストレージ装置は、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスが故障した状態となったときに、読み出しが不能となるデータが発生するか否かを判断することで、冗長な記録が不能となったか否かを判断する判断手段と、
前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知を行う通知手段と、
を有するストレージシステム。
【請求項5】
NANDデバイスを用いて構成されるディスクデバイスを複数有し、当該複数のディスクデバイスがデータを冗長に記録するストレージ装置を、
前記ディスクデバイスのそれぞれについての寿命到来タイミングを調べ、当該寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスについて、当該ディスクデバイスが故障した状態となったときに、読み出しが不能となるデータが発生するか否かを判断することで、冗長な記録が不能となったか否かを判断する判断手段と、
前記寿命到来タイミングより前の所定のタイミングが到来したディスクデバイスに関する通知を行う通知手段と、
として機能させるプログラム。