JP6940536B2 - ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム - Google Patents

ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム Download PDF

Info

Publication number
JP6940536B2
JP6940536B2 JP2019018024A JP2019018024A JP6940536B2 JP 6940536 B2 JP6940536 B2 JP 6940536B2 JP 2019018024 A JP2019018024 A JP 2019018024A JP 2019018024 A JP2019018024 A JP 2019018024A JP 6940536 B2 JP6940536 B2 JP 6940536B2
Authority
JP
Japan
Prior art keywords
data
update
storage device
storage
basic data
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
Application number
JP2019018024A
Other languages
English (en)
Other versions
JP2020126420A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019018024A priority Critical patent/JP6940536B2/ja
Publication of JP2020126420A publication Critical patent/JP2020126420A/ja
Application granted granted Critical
Publication of JP6940536B2 publication Critical patent/JP6940536B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願発明は、ストレージ装置に記憶されているデータを障害から保護する技術に関する。
高度に情報化された現代社会においては、ストレージ装置に記憶されているデータが障害や災害等の発生によって損失した場合、社会に与える影響は非常に大きくなる。したがって、障害や災害等の発生によってストレージ装置に記憶されているデータが損失しないようにデータを保護する技術への期待が高まってきている。
このような技術に関連する技術として、特許文献1には、地震、火災等の災害に対しても、データ損失が生じないようにする分散ファイルシステムが開示されている。このシステムにおけるデータディスクドライブは、それらを個々に持つコンピュータが夫々ネットワークに接続されることにより、相互に接続されている。このシステムでは、データディスクドライブのデータをmodulo2によって加算して得られたパリティ情報を格納するパリティディスクドライブも、当該コンピュータによってネットワークに接続されている。このシステムでは、データディスクドライブのいずれか1つのデータは、パリティ情報と他のデータディスクドライブのデータとから得られる。このシステムでは、ネットワークを用いることにより、データディスクドライブとパリティディスクドライブとは、同じ災害を受けない程度に互いに物理的に充分離れた場所に配置される。
また、特許文献2には、ローカル側および/またはクラウド側のサーバがデータを柔軟に管理することによって、サーバやネットワークの障害時にも継続的かつ最適に使用できるようにするデータ管理システムが開示されている。このシステムでは、クラウド側の管理サーバとバックアップサーバと仮想サーバと、ローカル側の主サーバとローカル端末とがネットワークにより接続されている。このシステムは、主サーバのデータをバックアップサーバにバックアップし、主サーバに障害が発生した場合に、バックアップサーバのバックアップデータを使用して、仮想サーバに主サーバのデータを復元し、仮想サーバを一時的な主サーバとしてシステム利用を継続させる。このシステムは、仮想サーバに主サーバのデータをリストアした後にローカル端末から仮想サーバにアクセスするアクセス方式を、通常運用時のリモート接続方式からファイル転送方式に切替える。
特開平05−324579号公報 特開2017−182380号公報
例えば上述した特許文献が示すシステムは、障害や災害の発生等によってあるストレージ装置に記憶されている基データが損失した場合に備えて、損失した基データを復旧可能なデータ(冗長データ)を、そのストレージ装置の設置場所とは異なる場所(例えばクラウドコンピューティングにおけるクラウド側)に設置された別のストレージ装置に記憶している。さらに、例えば特許文献1が示すシステムは、基データと等しい冗長データ(即ち二重化されたデータ)を備えるのではなく、複数のストレージ装置に記憶されているデータから生成したパリティデータを冗長データとして備える(即ち、基データよりもデータ量が小さい冗長データを備える)ことによって、基データの保護をより効率的に行っている。
しかしながら、このようなシステムにおいては、下記の通り、損失した基データを復旧できなくなる場合が考えられる。即ち、冗長データを記憶するストレージ装置は、基データが更新されたストレージ装置からの依頼に応じて冗長データを更新する。そして、基データが更新された複数のストレージ装置からの依頼が輻輳した場合、冗長データを記憶するストレージ装置によるそれら依頼の処理に関して順番待ちが生じる。また、基データが更新されたストレージ装置と冗長データを記憶するストレージ装置との間における通信状況(例えば通信ネットワークの輻輳状況等)によっては、基データが更新されるタイミングと、基データの更新に応じて冗長データが更新されるタイミングとの間に時間差が生じることがある。
即ち、複数のストレージ装置に記憶されている基データの更新内容が、冗長データに反映されていない時間帯が存在する。そして、当該時間帯において、冗長データに更新内容が反映されていない基データを記憶するストレージ装置に障害が発生した場合、その障害によって損失したデータを冗長データに基づいて復旧することができなくなる。特許文献1及び2が示す技術は、このような問題を解決することができない。本願発明の主たる目的は、この問題を解決するストレージ装置等を提供することである。
本願発明の一態様に係るストレージ装置は、基データを記憶する第一のストレージ装置と、第二のストレージ装置と、前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、を有するストレージシステムにおける前記第一のストレージ装置であって、前記基データを記憶する基データ記憶手段と、外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新する更新手段と、前記更新データを記憶する更新データ記憶手段と、前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御する制御手段と、前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除する削除手段と、前記基データ記憶手段における障害を検出する検出手段と、前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する復旧手段と、を備える。
上記目的を達成する他の見地において、本願発明の一態様に係るストレージ制御方法は、基データを記憶する第一のストレージ装置と、第二のストレージ装置と、前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、を有するストレージシステムにおける前記第一のストレージ装置によって、前記基データを基データ記憶手段に記憶し、外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新し、前記更新データを更新データ記憶手段に記憶し、前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御し、前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除し、前記基データ記憶手段における障害を検出し、前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する。
また、上記目的を達成する更なる見地において、本願発明の一態様に係るストレージ制御プログラムは、基データを記憶する第一のストレージ装置と、第二のストレージ装置と、前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、を有するストレージシステムにおける前記第一のストレージ装置に対して、前記基データを基データ記憶手段に記憶する基データ記憶処理と、外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新する更新処理と、前記更新データを更新データ記憶手段に記憶する更新データ記憶処理と、前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御する制御処理と、前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除する削除処理と、前記基データ記憶手段における障害を検出する検出処理と、前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する復旧処理と、を実行させる。
更に、本願発明は、係るストレージ制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
本願発明は、ストレージ装置における障害により読み出せなくなったデータをより確実に復旧することを可能とする。
本願発明の第1の実施形態に係るストレージシステム1の構成を示すブロック図である。 本願発明の第1の実施形態に係るパリティデータ生成部42が、パリティデータ410の初期値を生成する方法を例示する図である。 本願発明の第1の実施形態に係るパリティデータ生成部42が、基データ110、基データ210、基データ310の更新に応じてパリティデータ410を更新する方法を例示する図である。 本願発明の第1の実施形態に係る復旧部17が、基データ210及び310と、更新データ220及び320と、パリティデータ410と、更新データ120とに基づいて、基データ110を復旧する方法を例示する図である。 本願発明の第1の実施形態に係るストレージシステム1が正常に稼動しているときに、基データ110、更新データ120、パリティデータ410を更新する動作を示すフローチャートである。 本願発明の第1の実施形態に係るストレージシステム1が、基データ記憶部11において障害が発生した場合に、基データ110を復旧する動作を示すフローチャートである。 本願発明の第2の実施形態に係るストレージ装置70の構成を示すブロック図である。 本願発明の各実施形態に係るストレージ装置を実行可能な情報処理装置900の構成を示すブロック図である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係るストレージシステム1の構成を示すブロック図である。ストレージシステム1は、大別して、ストレージ装置10(第一のストレージ装置)、ストレージ装置20(第二のストレージ装置)、ストレージ装置30(第二のストレージ装置)、及び、クラウド側ストレージ装置40(第三のストレージ装置)を含む。尚、ストレージシステム1が有するストレージ装置は3つに限定されない。
ストレージ装置10乃至30、及び、クラウド側ストレージ装置40は、通信ネットワーク60によって通信可能に接続されている。通信ネットワーク60は、例えば、インターネットあるいはイントラネット等である。クラウド側ストレージ装置40は、例えば、ストレージ装置10乃至30に対して、クラウドコンピューティングにおけるクラウド側に設置されたストレージ装置である。尚、ストレージシステム1は、クラウドコンピューティング環境を構築するシステムに限定されない。即ち、クラウド側ストレージ装置40は、例えば、ストレージ装置10乃至30の管理者によって管理されるファイルサーバ等の装置でもよい。
ストレージ装置10はサーバ装置51(外部の装置)からアクセスされ、ストレージ装置20はサーバ装置52からアクセスされ、ストレージ装置30はサーバ装置53からアクセスされる。尚、ストレージ装置10乃至30は、順に、サーバ装置51乃至53に内蔵された装置であってもよい。あるいは、サーバ装置51乃至53は、通信ネットワーク60に通信可能に接続されることによって、ストレージ装置10乃至30にアクセスするようにしてもよい。
ストレージ装置10は、基データ記憶部11、更新データ記憶部12、更新部13、制御部14、削除部15、検出部16、及び、復旧部17を備える。基データ記憶部11及び更新データ記憶部12は、例えば磁気ディスクあるいは電子メモリ等の記憶デバイスである。基データ記憶部11は、後述する基データ110(元データ)を記憶可能である。更新データ記憶部12は、後述する更新データ120を記憶可能である。
ストレージ装置20は、基データ210を記憶可能な基データ記憶部21、及び、更新データ220を記憶可能な更新データ記憶部22を備える。ストレージ装置30は、基データ310を記憶可能な基データ記憶部31、及び、更新データ320を記憶可能な更新データ記憶部32を備える。基データ記憶部21及び31は、基データ記憶部11と同等の機能を備え、更新データ記憶部22及び32は、更新データ記憶部12と同等の機能を備えることとする。
尚、本実施形態に係るストレージ装置20及び30は、ストレージ装置10と同等の機能を備えることとする。但し、図1に示すブロック図では、説明の便宜上及び図面の大きさの制約を鑑み、ストレージ装置20は、基データ記憶部21及び更新データ記憶部22以外の構成要素を省略して記載し、ストレージ装置30は、基データ記憶部31及び更新データ記憶部32以外の構成要素を省略して表現する。
そして、本実施形態においてストレージ装置10、20、30は、夫々同様な動作を行うことができる。但し、本実施形態では説明の便宜上、以降、主にストレージ装置10の動作について説明することとする。即ち、ストレージ装置20の動作に関しては、以降の説明において、基データ記憶部11、基データ110、更新データ記憶部12、更新データ120、サーバ装置51なる記載を、順に、基データ記憶部21、基データ210、更新データ記憶部22、更新データ220、サーバ装置52なる記載に読み替えることとする。また、ストレージ装置30の動作に関しも同様に、基データ記憶部11、基データ110、更新データ記憶部12、更新データ120、サーバ装置51なる記載を、順に、基データ記憶部31、基データ310、更新データ記憶部32、更新データ320、サーバ装置53なる記載に読み替えることとする。
基データ110は、サーバ装置51によってアクセスされる(即ちサーバ装置51が使用する)ユーザデータである。更新データ120は、サーバ装置51によって基データ110が更新される際の更新内容に関するデータである。本実施形態では、更新データ120は、例えば、更新後の基データ110と、基データ記憶部11に記憶されている更新前の基データ110との差分を表すこととする。
サーバ装置51は、ストレージ装置10に記憶されている基データ110の更新を指示する命令情報(基データ110に対する書き込み命令)をストレージ装置10に入力する。ストレージ装置10において、更新部13は、サーバ装置51から入力された当該命令情報に基づいて、基データ110の更新に関する更新データ120を生成すると共に、基データ110を更新する。更新部13は、生成した更新データ120を、更新データ記憶部12に格納する。
制御部14は、更新部13によって生成された更新データ120に基づいて、クラウド側ストレージ装置40に記憶されているパリティデータ410(冗長データ)が更新されるようにクラウド側ストレージ装置40を制御する。
ここで、クラウド側ストレージ装置40の動作について説明する。
クラウド側ストレージ装置40は、パリティデータ記憶部41、パリティデータ生成部42、及び、復旧支援部43を備える。パリティデータ記憶部41は、例えば磁気ディスクあるいは電子メモリ等の記憶デバイスであり、パリティデータ410を記憶可能である。
パリティデータ生成部42は、基データ記憶部11乃至31に記憶されている基データ110乃至310に基づいて、パリティデータ410を生成する。そしてパリティデータ生成部42は、更新データ記憶部12乃至32に記憶されている更新データ120乃至320に基づいて、パリティデータ410を更新する。
クラウド側ストレージ装置40における復旧支援部43の動作については後述する。
図2は、本実施形態に係るパリティデータ生成部42が、パリティデータ410の初期値を生成する方法を例示する図である。
図2に例示する通り、基データ110は、基データ110−1乃至110−m(mは任意の自然数)を含み、基データ210は、基データ210−1乃至210−mを含み、基データ310は、基データ310−1乃至310−mを含み、パリティデータ410は、パリティデータ410−1乃至410−mを含むこととする。基データ110乃至310、及び、パリティデータ410に含まれるこれらの構成要素が例えば1ビットのデータである場合、基データ110乃至310、及び、パリティデータ410は、mビットのデータである。
パリティデータ生成部42は、基データ110−i(iは1乃至mのいずれかの整数)と基データ210−iと基データ310−iとの排他的論理和を算出することにより、パリティデータ410−iを生成する。
図3は、本実施形態に係るパリティデータ生成部42が、基データ110の更新に応じてパリティデータ410を更新する方法を例示する図である。
図3に例示する通り、更新データ120は、更新データ120−1乃至120−mを含み、更新データ220は、更新データ220−1乃至220−mを含み、更新データ320は、更新データ320−1乃至320−mを含むこととする。更新データ120乃至320に含まれるこれらの構成要素が例えば1ビットのデータである場合、更新データ120乃至320は、mビットのデータである。
本実施形態に係る更新データ120−iは、更新部13によって基データ110−iの値が、「0」から「1」あるいは「1」から「0」に更新された場合に、更新部13によって「1」に設定される。パリティデータ生成部42は、この場合、制御部14による制御を受けて(即ち、制御部14から更新データ120−iが「1」に設定されたことを通知されることに応じて)、パリティデータ410−iの値を反転することによって、基データ110−iの更新をパリティデータ410−iに反映する。パリティデータ生成部42は、基データ110−iの更新をパリティデータ410−iに反映したことを、ストレージ装置10における削除部15に通知する。
パリティデータ生成部42は、基データ110−i、基データ210−i、及び、基データ310−iの更新に伴うパリティデータ410−iへの反映を、排他制御により実行する。即ち、パリティデータ生成部42は、例えば、基データ110−iの更新をパリティデータ410−iに反映する処理を実行中にストレージ装置20から更新データ220−iが「1」に設定されたことを通知された場合、基データ110−iの更新をパリティデータ410−iに反映する処理を完了した後に、基データ210−iの更新をパリティデータ410−iに反映する処理を開始する。
図1に示すストレージ装置10における削除部15は、パリティデータ生成部42から、基データ110−iの更新をパリティデータ410−iに反映したことを通知されたときに、更新データ120−iを更新データ記憶部12から削除する。ここで削除とは、更新データ120−iの値を「1」から「0」に変更する動作である。
検出部16は、基データ記憶部11の動作を監視することによって、基データ記憶部11において発生した障害を検出する。検出部16は、基データ記憶部11において発生した障害を検出したことを、復旧部17に通知する。
復旧部17は、検出部16から基データ記憶部11において障害が発生したことを通知された場合、基データ210及び310と、更新データ220及び320と、パリティデータ410と、更新データ120とに基づいて、基データ記憶部11に記憶されていた基データ110を復旧する。この復旧の手順については、図4を参照して後述する。
復旧部17は、この際、基データ210及び310と、更新データ220及び320と、パリティデータ410との入手を、クラウド側ストレージ装置40における復旧支援部43に要求する。復旧支援部43は、復旧部17からの要求に応じて、ストレージ装置20から基データ210及び更新データ220を入手するとともに、ストレージ装置30から基データ310及び更新データ320を入手する。復旧支援部43は、入手した基データ210及び310と、入手した更新データ220及び320と、パリティデータ記憶部41に記憶されているパリティデータ410とを、復旧部17へ送信する。
復旧部17は、基データ記憶部11において障害が発生したのちにサーバ装置51から発行された基データ110に対する読み出し命令に対して、復旧した基データ110をサーバ装置51に返信する。
図4は、本実施形態に係る復旧部17が、基データ記憶部11において障害が発生した場合に基データ110を復旧する方法を例示する図である。
前述した通り、削除部15は、パリティデータ生成部42から基データ110−iの更新をパリティデータ410−iに反映したことを通知されると、更新データ記憶部12にそれまで記憶されていた更新データ12−iを削除する。ストレージ装置20及び30もこれと同様に動作する。そして、基データ110−iを復旧するタイミングによっては、基データ210−i及び/あるいは基データ310−iの更新がパリティデータ410−iに反映されていない場合がある。
そこで復旧部17は、更新データ220−i及び/あるいは更新データ320−iが存在する(更新データの値が「1」である)場合、基データ210−i及び/あるいは基データ310−iの値を反転することによって、更新前の基データ210−i及び/あるいは基データ310−iの値を求める。求められた基データ210−i及び/あるいは基データ310−iは、パリティデータ410が使用している基データ210−i及び/あるいは基データ310−iに相当する。
次に復旧部17は、求めた基データ210−i及び基データ310−iと、パリティデータ410−iとを用いて、パリティデータ410が使用している基データ110−iを求める。即ち、復旧部17は、基データ110−iと基データ210−iと基データ310−iとの排他的論理和の値がパリティデータ410−iとなるような基データ110−iを求める。
そして復旧部17は、更新データ120−iが存在する(更新データ120−iの値が「1」である)場合、求めたパリティデータ410が使用している基データ110−iに更新を反映する(基データ110−iの値を反転する)ことによって、基データ110−iを復旧する。
基データ記憶部11において障害が発生したのちにサーバ装置51から基データ110に対する書き込み命令が発行された場合、更新部13は、当該書き込み命令に基づいて更新データ120を生成する。この場合、更新部13は、更新前の基データ110の値を基データ記憶部11から取得することはできないので、復旧部17によって復旧された基データ110を取得する。そして、制御部14は、生成された更新データ120に基づいてパリティデータ410を更新するように、クラウド側ストレージ装置40におけるパリティデータ生成部42を制御する。このように本実施形態に係るストレージシステム1は、基データ記憶部11において障害が発生したのちも、基データ210及び310と、更新データ220及び320と、パリティデータ410と、更新データ120とに基づいて、基データ110を継続して管理する。
次に図5及び図6のフローチャートを参照して、本実施形態に係るストレージシステム1の動作(処理)について詳細に説明する。尚、図5及び図6のフローチャートは、ストレージ装置10に関する動作を表し、ストレージ装置20及び30も、各々同様に動作することとする。
図5は、本実施形態に係るストレージシステム1が正常に稼動しているときに、基データ110、更新データ120、及び、パリティデータ410を更新する動作を示すフローチャートである。
クラウド側ストレージ装置40におけるパリティデータ生成部42は、基データ記憶部11に記憶されている基データ110、基データ記憶部21に記憶されている基データ210、基データ記憶部31に記憶されている基データ310に基づいて、パリティデータ410の初期値を生成し、生成したパリティデータ410の初期値をパリティデータ記憶部41に格納する(ステップS101)。
ストレージ装置10には、サーバ装置51から基データ110の更新を指示する命令情報(基データ110に対する書き込み命令)が入力される(ステップS102)。更新部13は、当該命令情報と基データ110とに基づいて更新データ120を生成し、生成した更新データ120を更新データ記憶部12に格納するとともに、基データ110を更新する(ステップS103)。制御部14は、クラウド側ストレージ装置40に更新データ120を送信し、パリティデータ生成部42にパリティデータ410の更新を指示する(ステップS104)。
ストレージ装置20あるいは30からの指示によりパリティデータ410を更新中である場合(ステップS105でYes)、パリティデータ生成部42は、制御部14から指示されたパリティデータ410の更新を保留する(ステップS106)。ストレージ装置20あるいは30からの指示によりパリティデータ410を更新中でない場合(ステップS105でNo)、パリティデータ生成部42は、更新データ120に基づいてパリティデータ410を更新するとともに、パリティデータ410の更新が完了したことをストレージ装置10へ通知する(ステップS107)。
ストレージ装置10における削除部15は、パリティデータ生成部42からの通知に応じて更新データ120を更新データ記憶部12から削除し(ステップS108)、処理はステップS102へ戻る。
図6は、本実施形態に係るストレージシステム1が、ストレージ装置10における基データ記憶部11において障害が発生した場合に、基データ110を復旧する動作を示すフローチャートである。
ストレージ装置10における検出部16は、基データ記憶部11において発生した障害を検出する(ステップS201)。復旧部17は、クラウド側ストレージ装置40における復旧支援部43に、基データ210及び310、更新データ220及び320、パリティデータ410の入手を要求する(ステップS202)。
復旧支援部43は、ストレージ装置20から基データ210及び更新データ220を取得し、ストレージ装置30から基データ310及び更新データ320を取得し、取得したこれらのデータを、パリティデータ記憶部41に記憶されているパリティデータ410とともに、ストレージ装置10における復旧部17へ送信する(ステップS203)。
復旧部17は、更新データ220(及び/あるいは更新データ320)が存在する場合、更新前の基データ210(及び/あるいは基データ310)(即ち、パリティデータ410が使用している基データ210(及び/あるいは基データ310))を求める(ステップS204)。復旧部17は、パリティデータ410が使用している基データ210及び基データ310、及び、パリティデータ410に基づいて、パリティデータ410が使用している基データ110を求める(ステップS205)。
更新データ120が存在する場合(ステップS206でYes)、復旧部17は、求めた基データ110に更新データ120を反映し(ステップS207)、処理はステップS208へ進む。更新データ120が存在しない場合(ステップS206でNo)、処理はステップS208へ進む。
復旧部17は、求めた(更新データ120を反映した)基データ110を、復旧した基データ110として出力し(ステップS208)、全体の処理は終了する。
本実施形態に係るストレージ装置10は、ストレージ装置における障害により読み出せなくなったデータをより確実に復旧することができる。その理由は、ストレージ装置10(第一のストレージ装置)は、ストレージ装置20あるいは30(第二のストレージ装置)に記憶されている基データ210及び310、及び、更新データ220及び320、及び、クラウド側ストレージ装置40(第三のストレージ装置)に記憶されているパリティデータ410(冗長データ)、及び、更新データ記憶部12に記憶されている更新データ120を用いて、障害が発生した基データ記憶部11に記憶されていた基データ110を復旧するからである。
以下に、本実施形態に係るストレージ装置10によって実現される効果について、詳細に説明する。
障害や災害の発生等によってあるストレージ装置に記憶されている基データが損失した場合に備えて、損失した基データを復旧可能な冗長データを、そのストレージ装置の設置場所とは異なる場所に設置された別のストレージ装置に記憶するようにしたシステムがある。また、複数のストレージ装置に記憶されているデータから生成したパリティデータを冗長データとして備えることによって、基データの保護をより効率的に行うシステムがある。
このようなシステムにおける冗長データを記憶するストレージ装置は、基データが更新されたストレージ装置からの依頼に応じて冗長データを更新する。そして、基データが更新された複数のストレージ装置からの依頼が輻輳した場合、冗長データを記憶するストレージ装置によるそれら依頼の処理に関して順番待ちが生じる。また、基データが更新されたストレージ装置と冗長データを記憶するストレージ装置との間における通信状況によっては、基データが更新されるタイミングと、基データの更新に応じて冗長データが更新されるタイミングとの間に時間差が生じることがある。
即ち、複数のストレージ装置に記憶されている基データの更新内容が、冗長データに反映されていない時間帯が存在する。そして、当該時間帯において、冗長データに更新内容が反映されていない基データを記憶するストレージ装置に障害が発生した場合、その障害によって損失したデータを冗長データに基づいて復旧することができなくなるという問題がある。
このような問題に対して、本実施形態に係るストレージ装置10は、ストレージ装置20及び30と、クラウド側ストレージ装置40とを有するストレージシステム1において、例えば図1乃至図6を参照して上述した通り動作する。
即ち、ストレージ装置10は基データ110を記憶する。ストレージ装置20(ストレージ装置30)は、基データ210(基データ310)、及び、更新データ220(更新データ320)を記憶する。クラウド側ストレージ装置40は、基データ110と、基データ210及び220と、更新データ220及び320とに基づいて生成あるいは更新されたパリティデータ410を記憶する。
ストレージ装置10は、基データ記憶部11と、更新データ記憶部12と、更新部13と、制御部14と、削除部15と、検出部16と、復旧部17とを備える。基データ記憶部11は、基データ110を記憶する。更新部13は、サーバ装置51から入力された基データ110の更新を指示する命令情報に基づいて、基データ110の更新に関する更新データ120を生成すると共に、基データ110を更新する。更新データ記憶部12は、更新データ120を記憶する。制御部14は、更新データ120に基づいてパリティデータ410が更新されるようにクラウド側ストレージ装置40を制御する。削除部15は、クラウド側ストレージ装置40によってパリティデータ410が更新されたときに、更新データ120を更新データ記憶部12から削除する。検出部16は、基データ記憶部11における障害を検出する。そして、復旧部17は、基データ記憶部11における障害が検出され、かつ、更新データ120が更新データ記憶部12に記憶されている場合に、ストレージ装置20及び30に記憶されている上述したデータと、パリティデータ410と、更新データ120とに基づいて、基データ110を復旧する。
即ち、本実施形態に係るストレージ装置10は、基データ110に対する更新内容がパリティデータ410に反映されるまで更新データ120を記憶し、当該更新内容がパリティデータ410に反映されたときに更新データ120を削除する。これにより、ストレージ装置10は、基データ110の更新内容が、パリティデータ410に反映されていない時間帯に基データ記憶部11に傷害が発生した場合であっても、更新データ120を用いることによって基データ110をより確実に復旧することができる。
また、本実施形態に係る更新部13は、サーバ装置51から入力された命令情報が示す更新後の基データ110と、基データ記憶部11に記憶されている更新前の基データ110との差分を、更新データ120として生成する。そして、復旧部17は、基データ110乃至310の排他的論理和によって求められるパリティデータ410を冗長データとして使用する。これにより、本実施形態に係るストレージ装置10は、上述した基データ110の復旧を、簡易な論理演算を用いた処理構成により実現することができる。
また、パリティデータ410は、排他的論理和とは異なる演算によって求められるデータであってもよい。パリティデータ410は、例えば、誤り制御符号化等で使用されるガロア体(有限体)の演算によって求められるデータであってもよい。また、クラウド側ストレージ装置40に記憶されるデータは、パリティデータに限定されない。クラウド側ストレージ装置40に記憶されるデータは、ストレージ装置20及び30に記憶されているデータに基づいて基データ110を算出可能であるような冗長データであればよい。
また、本実施形態に係るクラウド側ストレージ装置40は、復旧支援部43を備えることによって、基データ110の復旧に必要なデータをストレージ装置20及び30から収集するが、クラウド側ストレージ装置40は、復旧支援部43を備えなくてもよい。すなわちこの場合、ストレージ装置10における復旧部17は、基データ110の復旧に必要なデータを、ストレージ装置20及び30から直接収集すればよい。
<第2の実施形態>
図7は、本願発明の第2の実施形態に係る(第一の)ストレージ装置70の構成を示すブロック図である。
ストレージ装置70は、第二のストレージ装置80と、第三のストレージ装置90とを有するストレージシステムに含まれる。ストレージ装置70は、基データ710を記憶する。第二のストレージ装置80は、データ81を記憶する。第三のストレージ装置90は、基データ710とデータ81とに基づいて生成された冗長データ91を記憶する。
ストレージ装置70は、基データ記憶部71と、更新データ記憶部72と、更新部73と、制御部74と、削除部75と、検出部76と、復旧部77と、を備える。
基データ記憶部71は、基データ710を記憶する。
更新部73は、外部の装置700から入力された基データ710の更新を指示する命令情報に基づいて、基データ710の更新に関する更新データ720を生成すると共に、基データ710を更新する。
更新データ記憶部72は、更新データ720を記憶する。
制御部74は、更新データ720に基づいて冗長データ91が更新されるように第三のストレージ装置90を制御する。
削除部75は、第三のストレージ装置90によって冗長データ91が更新されたときに、更新データ720を更新データ記憶部72から削除する。
検出部76は、基データ記憶部71における障害を検出する。
復旧部77は、基データ記憶部71における障害が検出され、かつ、更新データ720が更新データ記憶部72に記憶されている場合に、第二のストレージ装置80に記憶されているデータ81と、冗長データ91と、更新データ720とに基づいて、基データ710を復旧する。
本実施形態に係るストレージ装置70は、ストレージ装置における障害により読み出せなくなったデータをより確実に復旧することができる。その理由は、ストレージ装置70は、第二のストレージ装置80に記憶されているデータ81、第三のストレージ装置90に記憶されている冗長データ91、及び、更新データ記憶部72に記憶されている更新データ720を用いて、障害が発生した基データ記憶部71に記憶されていた基データ710を復旧するからである。
<ハードウェア構成例>
上述した各実施形態において図1、及び、図7に示したストレージ装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、及び、図7において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・基データ記憶部11及び71における記憶制御機能、
・更新データ記憶部12及び72における記憶制御機能、
・更新部13及び73、
・制御部14及び74、
・削除部15及び75、
・検出部16及び76、
・復旧部17及び77。
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図8を参照して説明する。
図8は、本願発明の各実施形態に係るストレージ装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図8は、図1、及び、図7に示したストレージ装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図8に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD−ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
そして、上述した実施形態を例に説明した本願発明は、図8に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1及び図7)における上述した構成、或いはフローチャート(図5及び図6)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD−ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
1 ストレージシステム
10 ストレージ装置
11 基データ記憶部
110 基データ
12 更新データ記憶部
120 更新データ
13 更新部
14 制御部
15 削除部
16 検出部
17 復旧部
20 ストレージ装置
21 基データ記憶部
210 基データ
22 更新データ記憶部
220 更新データ
30 ストレージ装置
31 基データ記憶部
310 基データ
32 更新データ記憶部
320 更新データ
40 クラウド側ストレージ装置
41 パリティデータ記憶部
410 パリティデータ
42 パリティデータ生成部
43 復旧支援部
51乃至53 サーバ装置
60 通信ネットワーク
70 ストレージ装置
71 基データ記憶部
710 基データ
72 更新データ記憶部
720 更新データ
73 更新部
74 制御部
75 削除部
76 検出部
77 復旧部
700 外部の装置
80 第二のストレージ装置
81 データ
90 第三のストレージ装置
91 冗長データ
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース

Claims (10)

  1. 基データを記憶する第一のストレージ装置と、
    第二のストレージ装置と、
    前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、
    を有するストレージシステムにおける前記第一のストレージ装置であって、
    前記基データを記憶する基データ記憶手段と、
    外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新する更新手段と、
    前記更新データを記憶する更新データ記憶手段と、
    前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御する制御手段と、
    前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除する削除手段と、
    前記基データ記憶手段における障害を検出する検出手段と、
    前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する復旧手段と、
    を備えるストレージ装置。
  2. 前記更新手段は、前記命令情報が示す更新後の前記基データと、前記基データ記憶手段に記憶されている更新前の前記基データとの差分を、前記更新データとして生成する、
    請求項1に記載のストレージ装置。
  3. 請求項1または請求項2に記載のストレージ装置と、
    前記第二のストレージ装置と、
    前記第三のストレージ装置と、
    を有するストレージシステム。
  4. 前記第三のストレージ装置は、
    前記基データの更新に応じて行う前記冗長データの更新と、前記第二のストレージ装置に記憶されているデータの更新に応じて行う前記冗長データの更新とを、排他制御により実行する冗長データ生成手段と、
    前記冗長データを記憶する冗長データ記憶手段と、
    を備える、
    請求項3に記載のストレージシステム。
  5. 前記冗長データ生成手段は、前記基データと、前記第二のストレージ装置に記憶されているデータとに基づいてパリティデータを生成したのち、前記更新データに基づいて前記パリティデータを更新する、
    請求項4に記載のストレージシステム。
  6. 前記冗長データ生成手段は、前記基データと前記第二のストレージ装置に記憶されているデータとの排他的論理和を、前記パリティデータとして生成する、
    請求項5に記載のストレージシステム。
  7. 前記第三のストレージ装置は、復旧支援手段をさらに備え、
    前記復旧手段は、前記第二のストレージ装置に記憶されているデータと、前記冗長データとを前記復旧支援手段に要求し、
    前記復旧支援手段は、前記復旧手段からの要求に応じて、前記第二のストレージ装置に記憶されているデータを取得すると共に、前記第二のストレージ装置に記憶されているデータと前記冗長データとを、前記復旧手段に入力する、
    請求項4乃至請求項6のいずれか一項に記載のストレージシステム。
  8. 前記第のストレージ装置、前記第のストレージ装置と同等の構成を備え
    前記冗長データ生成手段は、前記第二のストレージ装置に記憶されている前記更新データに基づいて前記冗長データを更新し、
    前記復旧支援手段は、前記第二のストレージ装置に記憶されている前記基データと前記更新データとを取得すると共に、前記第二のストレージ装置に記憶されている前記基データと前記更新データとを、前記第二のストレージ装置における前記復旧手段に入力する、
    請求項7に記載のストレージシステム。
  9. 基データを記憶する第一のストレージ装置と、
    第二のストレージ装置と、
    前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、
    を有するストレージシステムにおける前記第一のストレージ装置によって、
    前記基データを基データ記憶手段に記憶し、
    外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新し、
    前記更新データを更新データ記憶手段に記憶し、
    前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御し、
    前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除し、
    前記基データ記憶手段における障害を検出し、
    前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する、
    ストレージ制御方法。
  10. 基データを記憶する第一のストレージ装置と、
    第二のストレージ装置と、
    前記基データを復旧可能なように、前記基データと前記第二のストレージ装置に記憶されているデータとに基づいて生成された冗長データを記憶する第三のストレージ装置と、
    を有するストレージシステムにおける前記第一のストレージ装置に対して、
    前記基データを基データ記憶手段に記憶する基データ記憶処理と、
    外部の装置から入力された前記基データの更新を指示する命令情報に基づいて、前記基データの更新に関する更新データを生成すると共に、前記基データを更新する更新処理と、
    前記更新データを更新データ記憶手段に記憶する更新データ記憶処理と、
    前記更新データに基づいて前記冗長データが更新されるように前記第三のストレージ装置を制御する制御処理と、
    前記第三のストレージ装置によって前記冗長データが更新されたときに、前記更新データを前記更新データ記憶手段から削除する削除処理と、
    前記基データ記憶手段における障害を検出する検出処理と、
    前記基データ記憶手段における障害が検出され、かつ、前記更新データが前記更新データ記憶手段に記憶されている場合に、前記第二のストレージ装置に記憶されているデータと、前記冗長データと、前記更新データとに基づいて、前記基データを復旧する復旧処理と、
    を実行させるためのストレージ制御プログラム。
JP2019018024A 2019-02-04 2019-02-04 ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム Active JP6940536B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019018024A JP6940536B2 (ja) 2019-02-04 2019-02-04 ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019018024A JP6940536B2 (ja) 2019-02-04 2019-02-04 ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2020126420A JP2020126420A (ja) 2020-08-20
JP6940536B2 true JP6940536B2 (ja) 2021-09-29

Family

ID=72084035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019018024A Active JP6940536B2 (ja) 2019-02-04 2019-02-04 ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム

Country Status (1)

Country Link
JP (1) JP6940536B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324579A (ja) * 1992-05-25 1993-12-07 Hitachi Ltd 分散ファイルシステム及び記憶装置
EP2942713B1 (en) * 2012-04-27 2018-11-28 Hitachi, Ltd. Storage system and storage apparatus
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10102070B2 (en) * 2015-06-01 2018-10-16 Hitachi, Ltd. Information processing system, storage apparatus and storage device

Also Published As

Publication number Publication date
JP2020126420A (ja) 2020-08-20

Similar Documents

Publication Publication Date Title
KR100604242B1 (ko) 파일서버 기억장치
US7761732B2 (en) Data protection in storage systems
JP5156682B2 (ja) ストレージシステムにおけるバックアップ方法
JP4526329B2 (ja) 複数世代の回復スナップショットに関する情報処理システム
JP5315460B1 (ja) ファイル管理システム及びファイル管理方法
CN108509156B (zh) 数据读取方法、装置、设备及系统
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US20140208012A1 (en) Virtual disk replication using log files
EP3179359A1 (en) Data sending method, data receiving method, and storage device
US8930663B2 (en) Handling enclosure unavailability in a storage system
US9734028B2 (en) Reverse resynchronization by a secondary data source when a data destination has more recent data
JP2006227964A (ja) ストレージシステム、処理方法及びプログラム
US10503620B1 (en) Parity log with delta bitmap
CN107046811A (zh) 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备
US10664346B2 (en) Parity log with by-pass
JP2018010495A (ja) 情報処理装置、情報処理プログラムおよび情報処理システム
JP6940536B2 (ja) ストレージ装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム
CN110727545B (zh) 基于联合文件系统的掉电保护方法
US8555007B2 (en) Storage system with journal disks dynamically assigned
JPWO2017081747A1 (ja) 分散ストレージシステム
JP2009265973A (ja) データ同期システム、障害復旧方法、及び、プログラム
JP2011253400A (ja) 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム
CN110806952B (zh) 虚拟存储保护方法及系统
JP2008276281A (ja) データ同期システム、方法、及び、プログラム
JP2019159416A (ja) データ管理装置、ファイルシステム、データ管理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210526

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: 20210810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210902

R150 Certificate of patent or registration of utility model

Ref document number: 6940536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150