(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183437
(43)【公開日】2023-12-28
(54)【発明の名称】記憶システムおよび記憶方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20231221BHJP
G06F 3/08 20060101ALI20231221BHJP
G06F 11/20 20060101ALI20231221BHJP
G06F 12/06 20060101ALI20231221BHJP
【FI】
G06F3/06 306Z
G06F3/06 301R
G06F3/08 H
G06F11/20 687
G06F12/06 515H
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022096948
(22)【出願日】2022-06-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】松永 秀成
(72)【発明者】
【氏名】稲木 敦志
【テーマコード(参考)】
5B034
5B160
【Fターム(参考)】
5B034CC02
5B034DD06
5B160CB01
(57)【要約】
【課題】ソリッド・ステート・ドライブの保護を図ることができる記憶システムおよび記憶方法を提供する。
【解決手段】2台のSSD18,19と、各SSD18,19を制御する制コントローラ15と、を備えている。制御コントローラ15は、SSDにデータのライトをする際には、2台のSSD18,19のうち、SSD19はリードもライトも内部処理もできないように「休止状態」して、残りのSSD18に対してデータAのライトを行う。また、同じデータAをバッファ部16にも格納する。その後、今度は、SSD18をリードもライトも内部処理もできないように「休止状態」して、残りのSSD19に対してデータAのライトを行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数台のソリッド・ステート・ドライブと、
各前記ソリッド・ステート・ドライブを制御する制御部と、を備え、
前記制御部は、前記ソリッド・ステート・ドライブにデータのリードまたはライトをする際には、複数台の前記ソリッド・ステート・ドライブのうち、一部の前記ソリッド・ステート・ドライブはリードもライトも内部処理もできないように休止して、残りの前記ソリッド・ステート・ドライブに対して前記データのリードまたはライトを行うこと、を特徴とする記憶システム。
【請求項2】
データをバッファリングするバッファ部を更に備え、
前記制御部は、前記データの前記ソリッド・ステート・ドライブへのライトを行う際には当該データの前記バッファ部へのバッファリングも行い、その後に、前記データのライトを行った一部の前記ソリッド・ステート・ドライブをリードもライトも内部処理もできないように休止して、休止していた残りの前記ソリッド・ステート・ドライブをリードもライトも内部処理も可能に稼働再開して、残りの当該ソリッド・ステート・ドライブに対して前記バッファ部がバッファリングしている前記データのライトを行うこと、を特徴とする請求項1に記載の記憶システム。
【請求項3】
複数台のソリッド・ステート・ドライブに対してデータのリードまたはライトを行う記憶システムを対象にして、前記ソリッド・ステート・ドライブにデータのリードまたはライトをする際には、複数台の前記ソリッド・ステート・ドライブのうち、一部の前記ソリッド・ステート・ドライブはリードもライトも内部処理もできないように休止して、残りの前記ソリッド・ステート・ドライブに対して前記データのリードまたはライトを行うこと、を特徴とする記憶方法。
【請求項4】
データをバッファリングするバッファ部を更に備えた前記記憶システムを対象として、前記データの前記ソリッド・ステート・ドライブへのライトを行う際には当該データの前記バッファ部へのバッファリングも行い、その後に、前記データのライトを行った一部の前記ソリッド・ステート・ドライブをリードもライトも内部処理もできないように休止して、休止していた残りの前記ソリッド・ステート・ドライブをリードもライトも内部処理も可能に稼働再開して、残りの当該ソリッド・ステート・ドライブに対して前記バッファ部がバッファリングしている前記データのライトを行うこと、を特徴とする請求項3に記載の記憶方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶システムおよび記憶方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開平10-3434号公報(特許文献1)がある。この公報には、「書込みデータ、書込み先アドレス、書込み中であることを示すフラグを記憶するための不揮発性レジスタを設け、書込みデータは、バッファメモリに書込むと同時に不揮発性レジスタにも書込み、不揮発性レジスタへの書込みが終了した時点で、半導体ディスク装置がビジー状態であることを示すフラグを解除し、フラッシュメモリアレイへの書込み動作中に電源の切断が生じても、不揮発性レジスタにより、書込みデータの保証が可能となる。」と記載されている(要約参照)。
【0003】
別の背景技術として、特開2010-102369号公報(特許文献2)がある。この公報には、「プロセッサは、SSD352Aを、書込可能状態として設定するとともに、同一のデータを取得可能なSSD352Bを書込みの書込不可能状態として設定し、書込可能状態のSSD352Aに対して、キャッシュメモリの所定のデータを書き込ませ、ホスト計算機からデータの読出要求を受信し、データの格納先が、書込可能状態として設定されているSSD352Aである場合に、SSD352Bから読出要求の対象のデータを取得し、取得したデータをホスト計算機に送信するように構成する。」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10-3434号公報
【特許文献2】特開2010-102369号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1,2に開示の技術は、ソリッド・ステート・ドライブ等の記憶装置の保護を図るという観点からは改善の余地があった。
そこで、本発明は、ソリッド・ステート・ドライブの保護を図ることができる記憶システムおよび記憶方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明は、複数台のソリッド・ステート・ドライブと、各前記ソリッド・ステート・ドライブを制御する制御部と、を備え、前記制御部は、前記ソリッド・ステート・ドライブにデータのリードまたはライトをする際には、複数台の前記ソリッド・ステート・ドライブのうち、一部の前記ソリッド・ステート・ドライブはリードもライトも内部処理もできないように休止して、残りの前記ソリッド・ステート・ドライブに対して前記データのリードまたはライトを行うこと、を特徴とする。
【発明の効果】
【0007】
本発明によれば、ソリッド・ステート・ドライブの保護を図ることができる記憶システムおよび記憶方法を提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0008】
【
図1】本発明の一実施形態に係る記憶システムのシステム構成を示すブロック図である。
【
図2】本発明の一実施形態に係る記憶システムにおける制御コントローラを中心としたシステム構成を示すブロック図である。
【
図3】本発明の一実施形態に係る記憶システムにおけるプログラムについて説明するブロック図である。
【
図4】本発明の一実施形態に係る記憶システムにおけるSSDの概略構成を示すブロック図である。
【
図5】本発明の一実施形態に係る記憶システムにおける制御コントローラを中心としたシステム構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を用いて説明する。
図1は、本発明の一実施形態に係る記憶システムのシステム構成を示すブロック図である。この記憶システム1は、一例を挙げれば鉄道車両に搭載される補助記憶システム等である。記憶システム1において、CPU(Central Processing Unit)11は、各種演算を行い、記憶システム1の各部を集中的に制御する。CPU11には、メインメモリ20と、I/O(Input/Output)装置13とが接続されている。メインメモリ20は、CPU11の作業エリアとなる記憶装置である。I/O装置13は、CPU11に外部からデータや信号を入力したり、外部に出力したりする。
【0010】
I/O装置13には、制御コントローラ15と通信部14とが接続されている。通信部14は、記憶システム1が外部と通信を行うための通信インターフェイスである。制御コントローラ15には、複数台、本例で2台の補助記憶装置であるソリッド・ステート・ドライブ(Solid State Drive:SSD)18,19と、揮発性メモリから構成されたバッファ部16とが接続されている。制御コントローラ15は、SSD18,19並びにバッファ部16の動作を制御する。各SSD18,19には、それぞれ同一のプログラム40がセットアップされている。CPU11は、プログラム40をメインメモリ20に読み出して当該プログラム40に基づいた処理を実行する。
【0011】
図2は、制御コントローラを中心としたシステム構成を示すブロック図である。制御コントローラ15は、SSD18,19を制御する補助記憶装置入出力制御部21と、バッファ部16を制御するバッファ制御部17とを備えている。バッファ部16にはレジスタ30が設けられている。
【0012】
図3は、プログラム40について説明するブロック図である。プログラム40としては、アプリケーションプログラム41と、ディスクドライバ42と、OS(Operating System)43とを備えている。OS43は、例えば資源管理、プロセス管理、タイマ管理等を行う基本ソフトである。ディスクドライバ42は、SSD18,19にライトコマンド、リードコマンドを発行するモジュールである。アプリケーションプログラム41は、記憶システム1(計算機システム)を各種用途に用いるプログラム処理を行うためのモジュールである。アプリケーションプログラム41は、例えば記憶システム1が鉄道車両に搭載される補助記憶システムであれば、鉄道の運行管理システム等である。なお、計算機システム(記憶システム1)を各種用途に用いるアプリケーションとしては、例えば、鉄道の運行管理システムや、その他、電力系統の制御システム、ガスの管理システム、道路管理システム等がある。
【0013】
ところで、記憶システム1が鉄道車両に搭載される補助記憶システム等である場合は、記憶システム1が振動にさらされるため、補助記憶装置としては、磁気記憶装置ではなく前記のとおりSSDが用いられるのが一般的である。
【0014】
しかし、鉄道車両に搭載される補助記憶システムは、車両の運転手等の操作により正規のシャットダウン操作を行うことができない。すなわち、鉄道車両に搭載される補助記憶システムは、運転手等側からは全く操作できない状態で稼働している。そして、車両のメイン電源が投入されたときに補助記憶システムの電源もONとなり、車両のメイン電源がOFFにされたときに補助記憶システムの電源もOFFとなる。
【0015】
そのため、SSDのフラッシュメモリに対するデータのリードやライトが行われているタイミングでSSDの電源がいきなり遮断されてしまう可能性があり、その場合、SSDの管理情報である論理物理変換テーブルが破損するときがあり、そうなるとSSDをホスト側から認識できなくなるという不具合が生じる。この点を更に詳細に説明する。
【0016】
図4は、SSD18,19の概略構成を示すブロック図である。SSD18,19は、揮発性のメモリであるDRAM(Dynamic Random Access Memory)51と、不揮発性のメモリであるNAND型のフラッシュメモリ52と、SSDを制御するコントローラ53とを備えている。データ55は、SSDに記憶されるべきデータであり、論理物理変換テーブル56は、SSDの管理情報であり、いずれもフラッシュメモリ52に格納される。
【0017】
SSD18,19からのデータ55のリードの際には、データ55をDRAM51のキャッシュからリードし、あるいは論理物理変換テーブル56を参照してフラッシュメモリ52からデータ55をリードしたりする。そのデータ55のリード動作の最中にいきなりSSDの電源が切れてしまった際には、論理物理変換テーブル56が故障してしまう。しかし、その後の電源の復旧後に故障した論理物理変換テーブル56の修復機能をSSD側が備えている場合もある。ただし、その修復に際してはフラッシュメモリ52上の論理物理変換テーブル56から故障した論理物理変換テーブル56を修復しようとするが、論理物理変換テーブル56が異常値で更新されてしまう場合もある。その場合は、論理物理変換テーブル56は異常となって、データ55のSSDからのリードはできなくなってしまう。
【0018】
SSD18,19へのデータ55のライトのタイミングでSSDの電源がいきなり遮断してしまった際も、その後のSSDの電源の復旧後にフラッシュメモリ52上の論理物理変換テーブル56から故障した論理物理変換テーブル56を修復しようとするが、論理物理変換テーブル56が異常値で更新されてしまうことがあり、その場合はデータ55のSSDへのライトはできなくなってしまう。
【0019】
これに対して、前記の特許文献1の技術では、レジスタを用いてデータをフラッシュメモリにライトする際の不具合を回避しようとしている。すなわち、不揮発性のレジスタを設け、そこに書き込みデータ、書き込み先アドレス、書き込み中フラグを記憶しておくことで問題を回避している。バッファメモリからフラッシュメモリへの書き込み中に電源遮断された場合、次回起動時の自己診断中に不揮発性レジスタを参照し、書き込み中フラグが保持されていた場合は、レジスタに格納されている情報に基づいて、書き込み処理を再開することで、書き込み中のデータを保証する。
【0020】
しかしながら、特許文献1の技術によっても、データのライトの際の突然の電源の遮断により論理物理変換テーブルが破損する場合があり、その際にはフラッシュメモリがホスト側から認識できなくなる。
【0021】
また、特許文献2の技術では、2台のSSDにRAID(Redundant Arrays of Inexpensive Disks)の技術を用いている。しかし、特許文献2の技術によっても、データのリード、ライトの際の突然の電源の遮断により論理物理変換テーブルが破損する場合があり、その際にはSSDがホスト側から認識できなくなる。
【0022】
そこで、以下では、前記の不具合を解消した記憶システム1における技術的な工夫について説明する。
SSD18,19の動作状態の制御は、制御コントローラ15が行ってもよいし、ディスクドライバ42に基づいてCPU11が発行するコマンドによって行ってもよい。すなわち、本発明の実施形態では、「制御部」を制御コントローラ15またはディスクドライバ42に基づいたCPU11によって実行している。以下では、SSD18,19の動作状態の制御は、制御コントローラ15が行っている例で説明する。
【0023】
まず、
図2を参照して、制御コントローラ15は、複数台のSSDの一部、本例でSSD18を「稼働状態」、複数台のSSDの残り、本例でSSD19を「休止状態」とする。「稼働状態」とは、稼働状態にある当該SSDの電源が完全な状態でONとなっていて、当該SSDではデータのリードもライトもでき、当該SSDの内部処理も完全に行える状態である。「休止状態」とは、SSDの電源が完全にOFFとなっていて、当該SSDではデータのリードもライトもできず、当該SSDの内部処理も行えない状態である。
【0024】
このように、SSD18を「稼働状態」、SSD19を「休止状態」とした上で、制御コントローラ15は、ホスト側からのライトすべきデータAは補助記憶装置入出力制御部21を介し、「稼働状態」のSSD18にライトする。一方で、制御コントローラ15は、バッファ制御部17を介して、バッファ部16にも同じデータAをライトする。このライトの完了後、制御コントローラ15は、ライトデータ(データA)がバッファ部16に保管されていることを示すフラグをバッファ部16内のレジスタ30に書き込む。
【0025】
次に、制御コントローラ15は、複数台のSSDの一部と他の残りの一部(本例ではSSD18とSSD19)との間で、その記憶されているデータの一致化処理を行う。
図5に示すように、まず、制御コントローラ15は、
図2の例で「稼働状態」にあったSSD18を「休止状態」とし、
図2の例で「休止状態」にあったSSD19を「稼働状態」とするように状態の遷移を行う。
【0026】
前記したとおり、バッファ部16には、ホスト側からのライトデータ(データA)が保存されているため、このデータAを使ってデータの一致化処理を行う。データの一致化処理を開始する際には、データの一致化処理中であることを示すフラグをバッファ16部内のレジスタ30に書き込む。データの一致化処理中であることを示すフラグがセットされている間は、ホスト側からのライトデータ(データB)はバッファ部16のデータAの保存領域とは別領域に保存される。また、バッファ部16の別領域にデータBがライトされた場合は、バッファ部16のデータAの保存領域とは別領域にデータが保管されていることを示すフラグをバッファ部16内のレジスタ30に書き込むこともできるし、データの一致化処理中の間はホスト側からのデータのライトを禁止するような構成とすることもできる。
【0027】
前記のとおり、「稼働状態」にあったSSD18を「休止状態」とし、「休止状態」にあったSSD19を「稼働状態」とした後、次のような処理を行う。つまり、制御コントローラ15は、バッファ部16に保存しているデータAを稼働状態のSSD19にライトする。このライトの完了後、制御コントローラ15は、レジスタ30内のライトデータ(データA)が保管されていることを示すフラグは消去する。レジスタ30内にバッファ部16のデータAの保存領域とは別領域にデータ(データB)が保管されていることを示すフラグがセットされていなければ、ここでデータの一致化処理は完了となる。
【0028】
バッファ部16のデータAの保存領域とは別領域にデータ(データB)が保管されていることを示すフラグがレジスタ30にセットされていた場合は、制御コントローラ15は、バッファ部16のデータAの保存領域とは別領域に保管されているデータBを使い、データの一致化処理を行う。すなわち、制御コントローラ15は、「稼働状態」のSSD19に対してデータBをライトした後、SSD19の状態を「稼働状態」から「休止状態」へ、もう一方のSSD18を「休止状態」から「稼働状態」へ遷移させる。そして、再度、「稼働状態」のSSD18に対してデータBをライトする。ここまでの処理が完了したら、レジスタ30のデータの一致化処理中であることを示すフラグとバッファ部16のデータAの保存領域とは別領域にデータBが保管されていることを示すフラグを消去する。
【0029】
なお、バッファ部16は揮発性メモリのため、記憶システム1の電源が切断されたタイミングでバッファ部16のデータはクリアされる。前記のデータの一致化処理は、任意のタイミングで実施してもよいし、定周期で実施してもよい。
【0030】
図2に示すように、「稼働状態」にあるSSD18にデータAをライトする処理の最中に、突然、記憶システム1の電源が途絶したときは、その後、SSD18はホスト側から認識できなくなる可能性がある。しかし、当該電源の途絶の際にはSSD19は「休止状態」にあったため、電源の途絶によっても影響を受けることなく、その後、SSD19を「稼働状態」とすれば、SSD19に対するデータのリード、ライトは可能であり、SSD19内に記憶されていた各種データも保全されている。なお、ミラーリングの場合、両方が稼働状態にあるので、電源途絶の影響を受けることになるが、本実施形態のように「休止状態」にあれば、電源途絶の影響を受けない。
【0031】
また、
図5に示すように、「稼働状態」のSSD19にデータAをライト中に、突然、記憶システム1の電源が途絶したときは、その後、SSD19はホスト側から認識できなくなる可能性がある。しかし、当該電源の途絶の際にはSSD18は「休止状態」にあったため、電源の途絶によっても影響を受けることなく、その後、SSD18を「稼働状態」とすれば、SSD18に対するデータのリード、ライトは可能であり、SSD18内に記憶されていた各種データもデータAを含めて保全されている。
【0032】
そのため、記憶システム1によれば、SSDの保護を図ることができる。
また、記憶システム1では、前記のとおり、データの一致化処理を行うので、記憶システム1にライトされた全てのデータは、SSD18でもSSD19でも保持されている。よって、突然の電源の途絶によってSSD18、SSD19のうちの一方が前記のとおりホスト側から認識できなくなったとしても、他方のSSDを「稼働状態」とすることで、記憶システム1にライトした全てのデータを利用することができる。
【0033】
また、前記した処理はデータのリードを行う際にも実行する。すなわち、データをリードする前には、SSD18、SSD19のうち、一方を「稼働状態」、他方を「休止状態」として、「稼働状態」としたSSDに対するデータのリードを行う。そして、このデータのリードの最中に、突然、記憶システム1の電源が途絶したときでも、「休止状態」としたSSDは、その後、「稼働状態」にすることで正常に動作するので、SSDの保護を図ることができる。
【0034】
なお、本発明は、鉄道車両用途などの車上装置における記憶システム(補助記憶システム・装置)や記憶方法(車上装置における補助記憶装置の保護方法)として説明した。しかし、本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0035】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0036】
1 記憶システム
11 CPU(制御部)
15 制御コントローラ(制御部)
16 バッファ部
18 ソリッド・ステート・ドライブ(SSD)
19 ソリッド・ステート・ドライブ(SSD)