JP2023050384A - ストレージシステム及びデータ復旧方法 - Google Patents

ストレージシステム及びデータ復旧方法 Download PDF

Info

Publication number
JP2023050384A
JP2023050384A JP2021160452A JP2021160452A JP2023050384A JP 2023050384 A JP2023050384 A JP 2023050384A JP 2021160452 A JP2021160452 A JP 2021160452A JP 2021160452 A JP2021160452 A JP 2021160452A JP 2023050384 A JP2023050384 A JP 2023050384A
Authority
JP
Japan
Prior art keywords
data
volume
host
update
time
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.)
Pending
Application number
JP2021160452A
Other languages
English (en)
Inventor
一樹 松上
Kazuki Matsugami
彰 出口
Akira Deguchi
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
Priority to JP2021160452A priority Critical patent/JP2023050384A/ja
Priority to US17/691,253 priority patent/US20230113507A1/en
Publication of JP2023050384A publication Critical patent/JP2023050384A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1052Security improvement
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】マルウェアに感染したホストによって破壊されたデータをバックアップから復元する際に、正常なホストから書き込まれた有効なデータの消失を防ぐ。【解決手段】ストレージシステム20において、ストレージコントローラ21は、ホスト(ホスト計算機30)によるボリュームのデータ更新の履歴を当該ホストを識別可能な情報を添えて更新履歴情報(更新履歴管理テーブル240)に記録し、データ更新を無効にするホスト及び日時の指定を含むボリュームのデータの復旧が要求されたとき、更新履歴情報に基づいて、指定日時より後に指定ホストとは異なるホストによって更新されたデータ更新を有効にしたままで、指定日時より後に指定ホストによって更新されたデータ更新(データAからデータXへの更新)を無効にしてボリュームを復元する。【選択図】図1

Description

本発明は、ストレージシステム及びデータ復旧方法に関し、マルウェアに感染したホストによって破壊されたデータをバックアップから復元するストレージシステム及びデータ復旧方法に適用して好適なものである。
近年、ランサムウェアを代表とするマルウェアによる被害の増加により、セキュリティやバックアップへの投資額が増加傾向にある。感染の検出やデータの復元に関する新しい技術が求められており、ブロックストレージのバックアップ機能においてもマルウェアに対する機能の向上が期待されている。
例えば特許文献1には、バックアップシステムが取得したバックアップデータを、ストレージのローカルコピー機能を活用して複製することによりバックアップシステムから分離し、多世代で保持する仕組みが開示されている。
米国特許第10592352号明細書
ストレージと複数のホストから構成されるシステムにおいて1つのホストがマルウェアに感染した場合、ファイアウォールでホスト間の感染を防いだとしても、感染したホストからアクセス可能なボリュームはマルウェアによってデータが破壊される可能性がある。しかし、このようにしてデータが破壊された場合、上記の従来技術では、バックアップを行った時点の状態にデータを復元するため、データ復元に用いるバックアップより後に登録されたデータは、感染を防いだはずの正常なホストのデータも含めて全て消失してしまう。すなわち、マルウェアに感染したホストから書き込まれたデータだけでなく、正常なホストから書き込まれたデータも含めて消してしまうため、感染の発覚が遅れると影響が拡大して多くの有効なデータが失われてしまうという問題があった。
本発明は以上の点を考慮してなされたもので、マルウェアに感染したホストによって破壊されたデータをバックアップから復元する際に、正常なホストから書き込まれた有効なデータの消失を防ぐことが可能なストレージシステム及びデータ復旧方法を提案しようとするものである。
かかる課題を解決するため本発明においては、記憶装置とストレージコントローラとを有し、前記ストレージコントローラによって前記記憶装置の記憶領域を仮想化したボリュームを複数のホストに提供するストレージシステムにおいて、前記ストレージコントローラは、前記ホストによる前記ボリュームのデータ更新の履歴を、当該ホストを識別可能な情報を添えて更新履歴情報に記録し、前記データ更新を無効にするホスト及び日時の指定を含む前記ボリュームのデータの復旧が要求されたとき、前記更新履歴情報に基づいて、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストとは異なるホストによって更新されたデータ更新を有効にしたままで、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストによって更新されたデータ更新を無効にして前記ボリュームを復元するストレージシステムが提供される。
また、かかる課題を解決するため本発明においては、記憶装置とストレージコントローラとを有し、前記ストレージコントローラによって前記記憶装置の記憶領域を仮想化したボリュームを複数のホストに提供するストレージシステムによるデータ復旧方法であって、前記ストレージコントローラが、前記ホストによる前記ボリュームのデータ更新の履歴を、当該ホストを識別可能な情報を添えて更新履歴情報に記録する更新履歴記録ステップと、前記データ更新を無効にするホスト及び日時の指定を含む前記ボリュームのデータの復旧が要求されたとき、前記ストレージコントローラが、前記更新履歴情報に基づいて、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストとは異なるホストによって更新されたデータ更新を有効にしたままで、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストによって更新されたデータ更新を無効にして前記ボリュームを復元するデータ復元ステップと、を備えるデータ復旧方法が提供される。
本発明によれば、マルウェアに感染したホストによって破壊されたデータをバックアップから復元する際に、正常なホストから書き込まれた有効なデータの消失を防ぐことができる。
本発明の一実施形態に係るストレージシステム20によるデータの復元イメージの一例(その1)を説明するための図である。 本実施形態に係るストレージシステム20の内部構成例を示すブロック図である。 ボリューム情報管理テーブル210の一例を示す図である。 論物マッピングテーブル220の一例を示す図である。 スナップショット管理テーブル230の一例を示す図である。 更新履歴管理テーブル240の一例を示す図である。 本実施形態におけるストレージシステム20によるデータの復元イメージの一例(その2)を説明するための図である。 スナップショット取得処理の処理手順例を示すフローチャートである。 ライト処理の処理手順例を示すフローチャートである。 リビルド処理の処理手順例を示すフローチャートである。 本実施形態におけるストレージシステム20によるデータの復元イメージの一例(その3)を説明するための図である。
以下、図面を参照して、本発明の実施形態を詳述する。なお、以下の説明では、同種の要素を区別せずに説明する場合には、添字や枝番を含む参照符号のうちの共通部分(添字や枝番を除く部分)を使用し、同種の要素を区別して説明する場合には、添字や枝番を含む参照符号を使用することがある。例えば、ホスト計算機を特に区別せずに説明する場合に「ホスト計算機30」と記載するとき、個々のホスト計算機を区別して説明する場合には「ホスト計算機30-1」、「ホスト計算機30-2」のように記載することがある。
図1は、本発明の一実施形態に係るストレージシステム20によるデータの復元イメージの一例(その1)を説明するための図である。図1には、ストレージシステム20が複数のホスト計算機30に接続する構成例が示されている。
詳細な内部構成は図2を参照しながら後述するが、ストレージシステム20は、1以上のストレージコントローラ21と各ストレージコントローラ21に接続される1以上のドライブ28とを備えて構成されるストレージシステムであって、複数のホスト計算機30と、ネットワーク31を介して接続される。
図1に示すように、ストレージコントローラ21は、メモリ24の内部に形成されたキャッシュ領域202に、ドライブ28の物理的な記憶領域を仮想化して1つのP-VOL(プライマリボリューム)1000及び1以上のS-VOL(セカンダリボリューム)1100の論理ボリュームを構成する。P-VOL1000は、ストレージシステム20が通常使用するプライマリボリュームであり、S-VOL1100は、セカンダリボリュームであって、P-VOL1000のデータを復元する際に用いられる。なお、P-VOL1000及びS-VOL1100は例えばパーシステントボリューム(永続ボリューム)であるが、これに限らず、通常の論理ボリュームであればよい。各ボリュームに格納されるデータ10について、図1では、データ10を区別するために、各データ10に「A」、「B」、「C」、「X」といった表記を行っている。なお、以降の説明では、これらのデータ10をデータA、データB、データC、データXと称することがある。
また、ストレージコントローラ21は、メモリ24の内部に形成されたバックアップ領域203において、各ボリュームのスナップショットを管理するスナップショット管理テーブル230や、ホスト計算機30からのアクセスに伴う各ボリュームにおけるデータ更新の更新履歴を管理する更新履歴管理テーブル240を保持する。スナップショット管理テーブル230の詳細は、図5を参照しながら後述し、更新履歴管理テーブル240の詳細は、図6を参照しながら後述する。
以下、図1に示すデータの復元イメージについて説明する。P-VOL1000には、ホスト計算機30-1(ホストA)及びホスト計算機30-2(ホストB)からデータ10が書き込まれる。データ10は、P-VOL1000では論理アドレスが割り当てられるだけであり、実データは記憶装置(ドライブ28またはメモリ24)の物理的な記憶領域に格納される。データ10に割り当てられた論理アドレスは、ホスト計算機30から認識され、ボリュームの作成や容量拡大等の指示がない限り、基本的には不変である。そして、P-VOL1000に割当てられた論理アドレスと実データが格納される記憶領域の物理アドレスとの対応関係は、ストレージコントローラ21において所定の情報(例えば、後述する論物マッピングテーブル220)で管理される。なお、図1の場合、各ホスト計算機30からボリュームへのアクセス先は規定されていない。また、P-VOL1000は、定期的なスナップショット機能の実施により、ボリューム単位でバックアップ(スナップショット)が取得される。具体的には、図1に例示した更新履歴管理テーブル240を参照すると、P-VOL1000は、当初、データA,Bを格納しており、スナップショット管理テーブル206を参照すると、その時点でスナップショットが取得されていることが分かる。
その後、更新履歴管理テーブル240によれば、ホストAによってデータAがデータXに更新され、ホストBによってデータBがデータCに更新されたことにより、P-VOL1000は、図1に示すようにデータA,Cを格納するようになる。
このとき、上述したスナップショットが取得された後のタイミングでホストAがマルウェアに感染され、感染後のホストAからデータXの書き込みが行われたとする。一方、ホストBは、マルウェアに感染することなく、ホストAがマルウェアに感染した後のタイミングでデータCを書き込んだとする。このとき、データXがマルウェアによって作成された不正なデータであった場合、その更新により、元のデータAが破壊される可能性がある。データXは暗号化されていることもある。そこで、ストレージシステム20では、ボリューム内のデータを正常化するために、ホストAからのアクセスを遮断するとともに、P-VOL1000のデータを復旧する必要がある。
この場合、従来の一般的なデータ復旧では、ホストAがマルウェアに感染する前に取得されたスナップショットを利用して、S-VOL1100にデータを復元し、異常がないことが確認された後、P-VOL1000にコピーしてP-VOL1000のデータを復元することが行われる。但し、スナップショットはボリューム単位でデータ構成を記録しているため、スナップショットを用いた従来のデータ復旧では、ボリューム全体のデータが旧データで復元されてしまう。具体的には、図1に示すS-VOL1100-1が、スナップショットを利用した従来のデータ復旧時のS-VOL1100のデータ構成を表したものである。S-VOL1100-1を見ると、スナップショットに記録された「旧データ」の通り、データA,Bに復元されており、マルウェアに感染したホストAから更新されたデータXが削除されていることが分かる。しかし、本発明の課題でも述べたように、このような従来のデータ復旧では、マルウェアに感染していない正常なホストBから更新されたデータCも削除されてしまう(データBに巻き戻されてしまう)ことから、有効なデータが消失し、データ復旧に時間が掛かってしまうという問題があった。
そこで、上記の課題を解決するために、本発明に係るストレージシステム20は、ホストごとのデータ更新履歴を管理する情報(更新履歴管理テーブル240)を有するようにし、当該情報に基づいて、マルウェアに感染したホストによる更新を分離して、データを復元する。本例の場合は、マルウェアに感染したホストAから更新されたデータXだけを、スナップショットにおけるデータ構成との変更差分を利用して、更新前のデータAに復元し、正常なホストBから更新されたデータCについては、削除しない(更新前のデータBに復元しない)ようにする。図1に示すS-VOL1100-2は、このような本実施形態に係るストレージシステム20によるデータ復旧時のS-VOL1100のデータ構成を表したものである。S-VOL1100-2を見ると、データXが削除されてデータAで復元されている一方で、データCはデータBで復元されることなく、最新状態が維持されていることが分かる。したがって、このようなS-VOL1100-2のデータ構成をP-VOL1000にコピーすれば、P-VOL1000において、マルウェアに感染したホストによって破壊されたデータをバックアップから復元するとともに、正常なホストから書き込まれた有効なデータの消失を防ぐことができる。
以上が、本実施形態に係るストレージシステム20がマルウェアに感染したホストによって破壊されたデータをバックアップから復元する際のデータ復旧の概要である。以下では、このようなデータ復旧を実現するために必要なストレージシステム20の構成及び処理について詳述する。
図2は、本実施形態に係るストレージシステム20の内部構成例を示すブロック図である。ストレージシステム20は、1以上のストレージコントローラ21及び1以上のドライブ28を備え、複数のホスト計算機30とネットワーク31を介して通信可能に接続される。
図2に示すように、それぞれのストレージコントローラ21は、FE I/F22、プロセッサ23、メモリ24、バス25、BE I/F26、及びストレージI/F27を備える。
FE I/F22は、フロントエンドのインタフェースであって、例えばネットワーク31を介してホスト計算機30と間でデータの入出力(送受信)を行う。一方、BE I/F26は、バックエンドのインタフェースであって、例えばドライブ28とで入出力を行う。ストレージI/F27は、ストレージシステム20内の閉じた通信(例えばコントローラ間通信)向けのインタフェースである。また、バス25は、ストレージコントローラ21の内部構成を互いに接続する信号線である。
プロセッサ23は、CPU(Central Processing Unit)等のプロセッサであって、メモリ24等の記憶装置に保持されたプログラムを実行することによって、プログラムによる各種機能を実現する。
メモリ24は、RAM(Random Access Memory)等の記憶装置であって、プログラムやデータを記憶する。メモリ24は、内部に、プログラムを保持するプログラム領域201、キャッシュデータを保持するキャッシュ領域202、バックアップデータを保持するバックアップ領域203、及び各種のテーブルデータ(ボリューム情報管理テーブル210、論物マッピングテーブル220、スナップショット管理テーブル230、更新履歴管理テーブル240)を管理するテーブル管理領域204を有する。
図3は、ボリューム情報管理テーブル210の一例を示す図である。ボリューム情報管理テーブル210は、ストレージコントローラ21が提供する各ボリュームに関する各種情報を管理するためのテーブルデータであって、テーブル管理領域204に格納される。
ボリューム情報管理テーブル210は、ボリューム単位でレコードを有し、例えば、ボリュームID211、ボリュームサイズ212、スナップショット設定213、スナップショット管理テーブルID214、スナップショット取得条件215のデータ項目を有する。
ボリュームID211は、当該レコードのボリュームを一意に識別する識別子(ボリュームID)を示す。ボリュームサイズ212は、当該ボリュームに割り当てられた容量を示す。スナップショット設定213は、当該ボリュームにおけるスナップショット機能の設定を「有効」または「無効」で示す。スナップショット管理テーブルID214は、当該ボリュームのスナップショットを管理するスナップショット管理テーブル206の識別子(スナップショット管理テーブルID)を示す。スナップショット取得条件215は、例えば管理者から設定される、スナップショットを取得する条件を示す。スナップショット設定213が「無効」である場合、同レコードにおけるスナップショット管理テーブルID214及びスナップショット取得条件215は特段の値を持たなくてもよい。
図4は、論物マッピングテーブル220の一例を示す図である。論物マッピングテーブル220は、データを記憶する論理アドレスと物理アドレスとの対応関係(論物マッピング)に関する情報を管理するためのテーブルデータであって、テーブル管理領域204に格納される。
論物マッピングテーブル220は、ボリュームに格納されたデータの最小単位でレコードを有し、例えば、論理アドレス221、物理アドレス222、データサイズ223、及びデータ登録ホスト224のデータ項目を有する。
論理アドレス221は、当該レコードのデータについて、ボリュームに割り当てられた論理アドレスを示す。物理アドレス222は、論理アドレス221に対応付けられたドライブ28等の物理アドレスであり、言い換えれば、当該データが格納される物理アドレスを示す。データサイズ223は、当該データのデータサイズを示す。
データ登録ホスト224は、当該データを送信したホスト(アクセス元のホスト)の識別情報を示す。すなわち、データ登録ホスト224に示されるホストの識別情報は、当該データにアクセスするホストを識別する情報である。なお、図2のシステム構成の場合は、データ登録ホスト224には、ホスト計算機30の何れかの識別情報が指定されるが、本実施形態に係るストレージシステム20において、ボリュームのデータへのIOの接続先は、ホスト計算機30に限定されるものではなく、ストレージシステム20の構成に応じて、様々な接続先(ホスト)を登録することができる。具体的には例えば、後述する図7の構成のように、ホスト計算機30において、複数の仮想マシン(VM)が構築される場合には、図4に例示したように、仮想マシン単位で識別情報を登録してもよいし、コンテナ等を単位として識別情報を登録してもよい。また、ホストごとに登録されるデータのアクセス先は、ボリュームを単位とすることに限定されず、例えば、ボリューム内に形成される複数の仮想ディスクイメージ(VMDK)のそれぞれを単位とする等してもよい。さらに、上記のホスト等を識別する際には、物理ポートの情報だけでなく仮想ポートの情報を利用してもよい。
なお、以下の説明では、ストレージシステム20におけるデータの書き込み方式の一例として、追い書き方式(ログストラクチャー方式)を採用する。
追い書き方式の場合、データの更新時に、ストレージコントローラ21は、論理アドレスを変えずに新しい物理アドレスにデータを格納する。このときストレージコントローラ21は、論物マッピングテーブル220において、更新後のデータの論理アドレス221に対応する物理アドレス222を古い物理アドレスから新しい物理アドレスに変更し、データサイズ223を更新後データのデータサイズに変更し、データ登録ホスト224をデータ更新のアクセス元ホストの識別情報に変更する。一方、更新前データは、古い物理アドレスに格納されたままガベージ状態で残され、ガベージコレクションが実行された場合には削除されて未使用記憶領域となる。そしてストレージコントローラ21は、図6で後述する更新履歴管理テーブル240において、データ更新の履歴として、更新前後の論理アドレスと物理アドレスとの対応関係を、データ更新前後のアクセス元ホストの識別情報等(データサイズの他、データ更新時刻等を含んでもよい)とともに記録する。このようにデータ更新に伴って論物マッピングテーブル220及び更新履歴管理テーブル240が更新されることにより、ストレージコントローラ21は、データごとの論理アドレスに経時的に複数の物理アドレスを対応付けて管理することができるため、後述するリビルド処理において、所望の更新前データを復元することが可能となる。
また、本実施形態におけるデータの書き込み方式は、上述した追い書き方式に限定されるものではなく、他にも例えば、更新差分を退避する方法であってもよい。更新差分を退避する方法の場合、ストレージコントローラ21は、データ更新時に、更新前データをコピーして退避させてから更新データを書き込み、論物マッピングテーブル220及び更新履歴管理テーブル240を更新することにより、コピー先の物理アドレスを復元用の情報として管理することができる。このとき、コピー先の論理アドレスと物理アドレスの対応関係は、通常ではホスト計算機30からは見えない状態になることが一般的である。あるいは、更新差分を退避する方法の別手法として、ストレージコントローラ21が、更新前データをメタコピーして退避させることにより、コピー先のメタの論理アドレスを復元情報として管理するようにしてもよい。
以上のように、何れの書き込み方式を採用する場合であっても、本実施形態のストレージシステム20においては、データを更新しても、更新前の物理データはすぐに消えずに残るため、データ復元に利用することができる。
図5は、スナップショット管理テーブル230の一例を示す図である。スナップショット管理テーブル230は、スナップショットに関する情報を管理するためのテーブルデータであって、スナップショット管理テーブルID214で管理されるスナップショットを単位として、テーブル管理領域204に格納される。
スナップショット管理テーブル230は、例えば、スナップショット取得時刻231、論理アドレス232、物理アドレス233、及びデータサイズ234のデータ項目を有する。
スナップショット取得時刻231は、スナップショットを取得した日時を示す。論理アドレス232は、スナップショットを取得したデータのボリューム上の論理アドレスを示し、物理アドレス233は、当該スナップショットにおいて当該データが格納されたドライブ28の物理アドレス(当該データのバックアップ先の物理アドレス)を示す。データサイズ234は、当該データのデータサイズを示す。
図6は、更新履歴管理テーブル240の一例を示す図である。更新履歴管理テーブル240は、データの更新履歴を管理するためのテーブルデータであって、テーブル管理領域204に格納される。
更新履歴管理テーブル240は、例えば、更新履歴取得期間241、データ登録ホスト242、論理アドレス243、更新前物理アドレス244、更新前データ登録ホスト245、更新後物理アドレス246、及びデータサイズ247のデータ項目を有する。
更新履歴取得期間241は、更新履歴のレコードを取得した期間を示す。データ登録ホスト242は、更新データを登録した登録ホストの識別情報を示し、更新データのアクセス元を識別することができる。更新履歴取得期間241は、連続的に記録され、各記録の期間は任意に設定可能である。但し、後述するリビルド処理において、データ復旧の起点とするスナップショットから無効開始時刻までの更新履歴を確認するためには、各記録の期間は、定期的なスナップショットの取得周期を超えない程度に短い期間(より好適には、スナップショットの取得周期よりも短い期間)であることが好ましく、また、期間の途中でスナップショットが取得された場合にはレコードを分けて記録されることが好ましい。また、更新履歴取得期間241に代えて、あるいは加えて、個々のデータ更新の更新時刻(更新日時)を記録するようにしてもよい。論理アドレス243は、更新データのボリューム上の論理アドレスを示す。更新前物理アドレス244は、更新前のデータ(更新されたデータ)が格納されていた物理アドレスを示す。更新前データ登録ホスト245は、更新前のデータの登録ホストの識別情報を示す。更新後物理アドレス246は、更新データが格納された物理アドレスを示す。データサイズ247は、更新データのデータサイズを示す。
なお、更新履歴管理テーブル240は、全てのデータ更新の履歴を対象として記録するようにしてもよいし、登録ホストが変わるデータ更新(それまでとは異なるホストによるデータ更新)の履歴のみを対象として記録するようにしてもよい。前者の場合は、更新前物理アドレス244及び更新前データ登録ホスト245の項目を省略することによってデータ量を削減してもよい。後者の場合は、更新前物理アドレス244の項目を省略することはできないが(更新前データ登録ホスト245の項目は省略可能)、記録対象の更新履歴が前者よりも少なくなることから、データ量を抑制することができる。
図7は、本実施形態におけるストレージシステム20によるデータの復元イメージの一例(その2)を説明するための図である。図7には、ストレージシステム20が複数の仮想マシン41に接続する構成例が示されており、各ホスト(仮想マシン41)から各ボリュームへのアクセス先が仮想ディスクイメージ205単位で規定された構成となっている。
詳しく説明すると、図7のホスト計算機30では、ハイパーバイザ40上に複数の仮想マシン(VM)41が構築されている。また、ストレージコントローラ21において、各ボリューム(P-VOL1000,S-VOL1100)のデータ管理領域は、複数の独立した仮想ディスクイメージ205に分割されており、仮想ディスクイメージ205ごとにアクセス可能な仮想マシン41が登録されている。図7の場合、VM41-1(VM1)からは仮想ディスクイメージ205-1にデータ10が書き込まれ、VM41-2(VM2)からは仮想ディスクイメージ205-2にデータ10が書き込まれ、VM41-3(VM3)からは仮想ディスクイメージ205-3にデータ10が書き込まれる。
以下、図7に示すストレージシステム20の接続例におけるデータの復元イメージについて説明する。なお、図1の説明と類似する部分については、詳細な説明を省略する。例えば、データXは、図1と同様、マルウェアに感染したホスト(本例ではVM41)から更新された不正なデータであり、暗号化されている場合もある。
図7では、P-VOL1000は、当初、データA,B,Cを格納しており、その後、仮想ディスクイメージ205-1のアクセス元として登録されたVM41-1(VM1)によってデータAがデータXに更新され、仮想ディスクイメージ205-2のアクセス元として登録されたVM41-2によってデータBがデータEに更新されている。なお、データXをストレージシステム20に送信したとき、VM1はマルウェアに感染されているとする。
上記の状況になったとき、ストレージシステム20は、ボリューム内のデータを正常化するために、マルウェアに感染したVM1から仮想ディスクイメージ205-1へのアクセスを遮断するとともに、更新履歴管理テーブル240に基づいて、感染後のVM1によって更新された仮想ディスクイメージ205-1のデータXを選択的に削除する態様で、P-VOL1000のデータを復旧する。
図7に示すS-VOL1100は、ストレージシステム20によるデータ復元時のデータ構成を表したものである。S-VOL1100を見ると、仮想ディスクイメージ205-1のみ、VM1がマルウェアに感染する前に更新されたデータAが復元されており、その他の仮想ディスクイメージ205-2,205-3では、最新状態のデータE,Cで復元されていることが分かる。したがって、このようなS-VOL1100のデータ構成をP-VOL1000にコピーすれば、P-VOL1000において、マルウェアに感染したホスト(VM1)によって破壊されたデータをバックアップから復元するとともに、正常なホスト(VM2,VM3)から書き込まれた有効なデータの消失を防ぐことができる。
以下では、本実施形態に係るストレージシステム20において実行される各種処理を説明する。
図8は、スナップショット取得処理の処理手順例を示すフローチャートである。スナップショット取得処理は、例えば周期的に実行され、ボリューム情報管理テーブル210に設定されたスナップショット取得条件215に従って、プロセッサ23がスナップショットを保存する。
図8によればまず、プロセッサ23が、ボリューム情報管理テーブル210のボリューム(ボリュームID211)ごとにスナップショット設定213を参照し、スナップショット機能が「無効」に設定されているか否かを判定する(ステップS101)。スナップショット機能が「無効」である場合は(ステップS101のYES)、ステップS102に進み、スナップショット機能が「有効」である場合は(ステップS101のNO)、ステップS104に進む。
ステップS102では、プロセッサ23は、ユーザ(管理者)に対して、スナップショット機能を有効にするかを確認し、有効にするとの回答が得られた場合は、ボリューム情報管理テーブル210のスナップショット設定213に「有効」を設定し、提示されたスナップショット取得条件をスナップショット取得条件215に設定する。スナップショット機能を有効にするとの回答が得られない場合は、プロセッサ23は対象ボリュームに対するスナップショット取得処理を終了する。なお、ステップS102,S103の処理は、必ずしも実行されなくてもよい。
次に、プロセッサ23は、対象ボリュームのスナップショットを管理するスナップショット管理テーブルIDの割り当てを行い、割り当てられたIDをスナップショット管理テーブルID214に登録する(ステップS103)。その後、ステップS104に進む。
ステップS104では、プロセッサ23は、現在の日時等を参照して、スナップショットの取得条件を満たすか否かを判定する。スナップショット取得条件を満たす場合は(ステップS104のYES)、ステップS105に進み、対象ボリュームに対するスナップショットの取得を行う。一方、スナップショット取得条件を満たさない場合は(ステップS104のNO)、対象ボリュームに対するスナップショット取得処理を終了する。
ステップS105では、プロセッサ23は、スナップショット管理テーブル230にレコードを新規作成し、現在日時をスナップショット取得時刻231に記録し、さらに、論物マッピングテーブル220の情報をコピーし、スナップショット管理テーブル230の対応するデータ項目(論理アドレス232、物理アドレス233、データサイズ234)にコピーする。
次に、プロセッサ23は、スナップショット取得時点における情報を更新前情報として更新履歴管理テーブル240に登録し(ステップS106)、スナップショット取得処理を終了する。具体的には、プロセッサ23は、更新履歴管理テーブル240において、更新履歴取得期間241に現在時刻が含まれるレコードを探索し(存在しない場合はレコードを新規作成し)、当該レコードの論理アドレス243、更新前物理アドレス244及び更新前データ登録ホスト245を登録する。より詳細には、論理アドレス243及び更新前物理アドレス244には、ステップS105でスナップショット管理テーブル230に登録した論理アドレス232及び物理アドレス233が登録され、更新前データ登録ホスト245には、ステップS105でコピーした論物マッピングテーブル220のデータ登録ホスト224の情報が登録される。なお、更新履歴管理テーブル240は、少なくともスナップショットの取得ごとに更新履歴取得期間241を閉じ、以降は、別の更新履歴取得期間のレコードを作成することが好ましい。
図9は、ライト処理の処理手順例を示すフローチャートである。ライト処理は、ホストからボリュームにデータを書き込むときに実行される処理であって、ストレージコントローラ21のFE I/F22がホスト(例えばホスト計算機30やVM41)からライト要求を受け取ったときに、プロセッサ23によって処理が開始される。
図9によればまず、プロセッサ23は、各ボリュームに対して排他制御を実施し(ステップS201)、ライト要求に対するReady応答を要求元のホストに送信する(ステップS202)。
次に、プロセッサ23は、ライトデータをキャッシュ領域202に転送し(ステップS203)、当該ライトデータのドライブ28への書き込みが必要か否かを判定する(ステップS204)。ステップS204におけるドライブ28への書き込み要否の判定は、ストレージシステム20におけるキャッシュ制御に依存するものであり、詳細な説明は省略する。
ステップS204において、ライトデータのドライブ28への書き込みが必要と判定した場合(ステップS204のYES)、プロセッサ23は、ライトデータをドライブ28に書き込み(ステップS205)、ステップS207に進む。
一方、ステップS204において、ライトデータのドライブ28への書き込みが不要と判定した場合(ステップS204のNO)、プロセッサ23は、ステップS203でライトデータが書き込まれたキャッシュをミラーリングすることにより、キャッシュの二重化を行い(ステップS206)、ステップS207に進む。ストレージコントローラ21におけるキャッシュの二重化は一般的な処理であり、詳細な説明は省略する。
ステップS207では、プロセッサ23は、ステップS203~ステップS206によるライトデータの書き込みに基づいて、論物マッピングテーブル220の情報を更新する。なお、図4の論物マッピングテーブル220の説明で述べたように、本実施形態では、データの書き込み方式に追い書き方式または更新差分を退避する方式等を採用することにより、ライトデータの書き込み(データ更新)が行われたときでも、更新前の物理データはすぐには消えずに残るため、後述するデータの復元に利用することができる。
次に、プロセッサ23は、ボリューム情報管理テーブル210を参照し、ライトデータが書き込まれたボリュームにおいてスナップショット設定213が「有効」に設定されているか否かを判定する(ステップS208)。スナップショット設定が有効である場合は(ステップS208のYES)、ステップS209を経てステップS210に進み、スナップショット設定が無効である場合は(ステップS208のNO)、ステップS209をスキップしてステップS210に進む。
ステップS209では、プロセッサ23は、ライトデータの書き込み結果によって更新履歴管理テーブル240を更新する。具体的には、論理アドレス243にライトデータの論理アドレスを有するレコードにおいて、ドライブ28やメモリ24(キャッシュ)の書き込み先アドレスを更新後物理アドレス246に登録する。なお、ステップS209の処理は、データライト時の更新差分を記録することを目的としているが、ストレージシステム20における性能低下を考慮して、常時は差分を記録しないといった設定がなされてもよい。
そしてステップS210では、プロセッサ23は、ライト要求に対する完了応答を要求元のホストに送信し、次いで、ステップS201で実施した排他制御を解除し(ステップS211)、ライト処理を終了する。
図10は、リビルド処理の処理手順例を示すフローチャートである。リビルド処理は、マルウェアに感染してホストが壊れた場合に、マルウェアに感染したホストからアクセス可能なボリュームのデータがマルウェアによって破壊されるおそれがあることを鑑みて、当該ボリュームのデータをホストがマルウェアに感染する前のデータに復元する処理である。ホストのマルウェアへの感染は、例えばホストユーザが利用しているウィルス検知ソフトによって検知される。なお、リビルド処理の開始時には、各ボリュームへのデータIOが停止される。
図10によればまず、管理者であるユーザが、データ更新を無効にするホスト(ホスト計算機30や仮想マシン41等)を指定する(ステップS301)。ステップS301で指定するホストは、具体的には、マルウェアに感染したホストであり、以下、指定ホストとも称する。
次に、ユーザは、ステップS301で指定したホストによるデータ更新の無効開始時刻を指定する(ステップS302)。「無効開始時刻」は、指定ホストによる更新データを無効にすることによって復旧したいデータのタイミングを示すものであって、任意の時間(日時)を指定可能である。本例の場合、ホストがマルウェアに感染したと推定される時刻よりも少し前のタイミングが無効開始時刻として指定されることが好ましい。
以上ステップS301,S302の指定を受けて、プロセッサ23が、リビルドの処理を開始する。ここで、本実施形態に係るストレージシステム20では、複数の方法によってリビルド処理を実行することができ、図16に示したステップS303以降の処理は、そのうちの1つの方法(第1の方法)の処理手順を示している。そこで、以下ではまず、図16に沿って、第1の方法によるリビルド処理について説明する。
第1の方法は、データ更新を無効にするホストとその無効開始の時刻(日時)とが指定されたときに、指定日時より後に指定ホストから更新されたデータを、指定日時以前のスナップショットをデータ復旧の起点として、更新履歴管理テーブル240を用いて更新前の状態に復元する方法である。
第1の方法によればまず、プロセッサ23は、スナップショット管理テーブル230を参照し、ステップS302で指定された無効開始時刻以前に取得されたスナップショットから「(データ更新を無効にするデータの)データ復旧の起点」とするスナップショットを1つ選択する(ステップS303)。なお、後述する復元データの特定における処理負荷を考慮すると、ステップS303では、無効開始時刻以前の比較的近いタイミングで取得されたスナップショットが「データ復旧の起点」として選択されることが好ましい。
次に、プロセッサ23は、現ボリューム(P-VOL1000)で論理アドレスが割り当てられたすべてのデータについて、ステップS301で指定された指定ホストと更新履歴管理テーブル240の更新履歴とに基づいて、データ更新の書き込みホスト(データ登録ホスト)ごとに、更新前データによる復元が必要なデータ(以後、「第1種別のデータ」とも称する)であるか、更新前データによる復元が不要なデータ(以後、「第2種別のデータ」とも称する)であるかを判別する。なお、第2種別のデータは、更新前データによる復元が不要というだけであって、リビルド処理において復元されないわけではなく、第1の方法では、後述するように最新状態の現データによって復元される。さらにプロセッサ23は、判別した第1種別のデータについて、ステップS302で指定された無効開始時刻に基づいて、その復元データ(すなわち、更新前データ)の物理アドレスを特定する(ステップS304)。
ステップS304の処理で判別する第1種別のデータとは、無効開始時刻より後に指定ホストによるデータ更新が行われたデータである。図1の例でいえば、P-VOL1000のデータXであり、図7の例で言えば、P-VOL1000の仮想ディスクイメージ205-1のデータXである。第1の方法では、この第1種別のデータは、具体的には、更新履歴管理テーブル240を参照し、無効開始時刻から現在までの期間に含まれる更新履歴のうち、データ登録ホスト242が指定ホストである更新履歴を検索することによって、判別することができる。
また、ステップS304で特定する第1種別のデータに対する復元データは、無効開始時刻の直前の更新前データである。第1の方法では、ステップS303で選択したスナップショットのデータ構成を起点として、この復元データの物理アドレスを特定する。具体的には、更新履歴管理テーブル240を参照し、スナップショットの取得時刻(図5のスナップショット取得時刻231参照)から無効開始時刻までの間に、第1種別のデータの更新履歴が存在するかを検索する。該当する1以上の更新履歴が存在する場合には、第1種別のデータに属する各データの論理アドレス(論理アドレス243)ごとに、無効開始時刻に最も近い更新履歴における更新後物理アドレス246を、当該論理アドレスに対応する物理アドレス(すなわち、復元データの物理アドレス)として特定する。補足すると、ボリュームデータに割り当てられた論理アドレスは、データ更新によって変更されない。また、上記「該当する更新履歴」が存在しない場合は、第1種別のデータに割り当てられたすべての論理アドレスについて、データ復旧の起点とするスナップショットのデータ構成に示される物理アドレス(図5の物理アドレス233参照)を、対応する物理アドレス(すなわち、復元データの物理アドレス)として特定する。
ステップS304では、上記のようにして復元データの論理アドレス及び物理アドレスを特定することにより、第1種別のデータにおけるスナップショット取得時より後の無効開始時刻までの間のデータ更新を、復元データに反映させることが可能となる。また、第1の方法では、スナップショットを起点として復元データを探索することにより、最新状態のデータ構成から遡って復元データを探索する場合よりも、探索に要する時間や負荷を軽減することができる。
次に、プロセッサ23は、データを復元するセカンダリボリューム(例えばS-VOL1100)における論物マッピングを作成する(ステップS305)。なお、ステップS305において、プロセッサ23は、更新前データによる復元が必要な第1種別のデータと、更新前データによる復元が不要な第2種別のデータ(無効開始時刻より後にアクセス元がマルウェアに感染した指定ホストに変更されていないデータであり、図7の例でいえば、P-VOL1000の仮想ディスクイメージ205-2,205-3のデータ)とで、以下のように異なる処理を実行する。
第1種別のデータについては、ステップS305においてプロセッサ23は、ステップS301で指定されたホスト及びステップS304で判別した第1種別のデータの論理アドレスをキーとして、論物マッピングテーブル220上の対応する論理アドレスに、ステップS304で特定した復元データの物理アドレスを記録することにより、セカンダリボリュームに第1種別のデータを復元する。
また、第2種別のデータについては、プロセッサ23は、更新履歴管理テーブル240の最新レコードにおける論理アドレス243及び更新後物理アドレス246の組み合わせを用いて(あるいは、論物マッピングテーブル220で管理されている現データの論物対応を参照して)、セカンダリボリュームにおける論理アドレスと物理アドレスとのマッピングを作成する。このマッピングにより、セカンダリボリュームでは、マルウェアに感染しなかったホストからアクセスされた第2種別のデータ(言い換えると、無効開始時刻より後に、マルウェアに感染したホストからアクセスされていないデータ)は、最新のデータ構成によって復元される。
次に、プロセッサ23は、ステップS305でデータを復元したセカンダリボリュームについて、管理者に異常がないかの確認を求める(ステップS306)。セカンダリボリュームのデータに異常がない(正常である)と確認された場合は(ステップS306のYES)、ステップS307に進む。一方、セカンダリボリュームのデータに異常があると確認された場合は(ステップS306のNO)、ステップS302で指定された無効開始時刻が遅すぎる(指定ホストが既にマルウェアに感染した後である)可能性が考えられることから、ステップS302に戻る。ステップS302に戻った場合は、管理者に別の無効開始時刻(好ましくは、現在の指定日時よりも前の日時)を指定させるようにしてもよいし、プロセッサ23が、現在の指定日時よりも少し前(例えばスナップショット取得の1周期分だけ前)の無効開始時刻を設定して、ステップS303以降の処理を行うようにしてもよい。
そして、ステップS307では、プロセッサ23は、セカンダリボリュームに作成した論物マッピングを、プライマリボリューム(例えばP-VOL1000)にコピーし、リビルド処理を終了する。ステップS307の処理によって、感染したホストによって更新されたデータを復旧したセカンダリボリュームのデータが、プライマリボリュームにコピーされ、正式にデータ復旧が完了する。
以上のように第1の方法でリビルド処理が実行されることにより、ストレージシステム20は、マルウェアに感染したホストによって破壊されたデータを、感染前に取得したスナップショットとの変更差分を利用して削除する(正常な過去のデータに戻して復元する)とともに、正常なホストから書き込まれた有効なデータについては、最新のデータのままで復元する。言い換えれば、ストレージシステム20は、マルウェアに感染したホストから更新された可能性があるデータだけを選択的に削除する態様で感染前のデータを復元し、感染時刻より後に正常なホストから更新されたデータは最新状態のままで復元することができる。このようなストレージシステム20によれば、データの破壊が開始されたタイミングを判断して、有効なデータの消失を防ぐことができ、データ復旧に要する作業時間を短縮することができる。
なお、図16に示したリビルド処理の変形例として、ステップS306においてセカンダリボリュームに異常が認められなかった場合に、プロセッサ23が、ステップS302で指定された時刻よりも新しい日時に繰り上げた無効開始時刻を再指定してステップS303~S306の処理を繰り返し、セカンダリボリュームの復元データに異常がないかを改めて管理者に確認させるようにしてもよい。上記のように、指定ホストからのデータ更新を無効にするタイミング(無効開始時刻)を更新しながらマルウェアの感染による異常のないデータ復元を試みることにより、マルウェアの感染の影響が生じる最も直前のデータを復旧することができるため、巻き戻されるデータの差分を可及的に小さくすることができる。なお、上記の処理を行うとき、セカンダリボリュームのデータに異常があった場合には、ステップS307において、その直前に異常がないと確認されたときのセカンダリボリュームの論物マッピングを用いて、プライマリボリュームへのコピーを行えばよい。
図11は、本実施形態におけるストレージシステム20によるデータの復元イメージの一例(その3)を説明するための図である。図11には、ストレージシステム20が複数のホストノード(ホスト計算機)30に接続する構成例が示されており、各ホストノード30からボリュームへのアクセス先は特に規定されていない構成となっている。
詳しく説明すると、図11の各ホストノード30は、OS(Operation System)42及びアプリケーション(APP)43の機能により、ネットワーク31を介してストレージシステム20のボリューム(P-VOL1000)にアクセスすることができる。
以下、図11に示すストレージシステム20の接続例におけるデータの復元イメージについて説明する。なお、図1の説明と類似する部分については、詳細な説明を省略する。なお、データX,Yは、マルウェアに感染したホスト(ホストノード30-1,30-2)から更新された不正なデータであり、暗号化されている場合もある。
図11において、P-VOL1000は、当初、データA,B,Cを格納しており、スナップショットPが取得される。次に、ホストノード30-1がマルウェアに感染し、ホストノード30-1によってP-VOL1000のデータBがデータXに更新された後、スナップショットQが取得されたとする。この時点で、P-VOL1000は、データA,X,Cを格納する。次に、ホストノード30-2もマルウェアに感染し、ホストノード30-2によってP-VOL1000のデータAがデータYに更新されたとする。また、ホストノード30-3はマルウェアに感染することなく、正常な状態で、P-VOL1000のデータCをデータFに更新したとする。したがって、最終的には、P-VOL1000は、データY,X,Fを格納する。
上記の最終的な状況において、ホストノードのマルウェアへの感染が検知されたとすると、ストレージシステム20は、ボリューム内のデータを正常化するために、マルウェアに感染したホストノード30-1,30-2から更新されたデータY,Xを選択的に削除する態様で、P-VOL1000のデータを復旧する。
このようなデータ復旧を行う際のリビルド処理について、図10の流れに沿って確認すると、まず、ステップS301において、管理者が更新を無効にするホストとしてホストノード30-1,30-2を指定する。次のステップS302において、管理者は、指定ホストによるデータ更新の無効開始時刻を指定する。本例では、例えば、比較的新しいスナップショットQの取得時刻より少し前の時刻が指定されたとする。なお、第1の方法の変形例として後述するように、ステップS302では、指定ホストであるホストノード30-1とホストノード30-2とで別々の無効開始時刻を指定してもよいが、本例では同一の無効開始時刻を指定したとする。
次のステップS303では、プロセッサ23が、データ復旧の起点とするスナップショットを選択する。具体的には、無効開始時刻以前の直近に取得されたスナップショットQが選択される。
次のステップS304では、プロセッサ23が、ステップS301,S302の指定に基づいて第1種別のデータと第2種別のデータとを判別し、さらにステップS303で選択したスナップショットを用いて、第1種別のデータに対する復元データの物理アドレスを特定する。詳しくは、プロセッサ23は、更新履歴管理テーブル240を参照し、ホストノード30-1または30-2のデータ登録ホスト242をキーとして、無効開始時刻から現在までの期間に含まれる更新履歴を検索することにより、ホストノード30-2から更新されたデータYを、第1種別のデータと判別する。ホストノード30-1によるデータBからデータXへの更新は、無効開始時刻よりも後に実行されているため、この時点ではデータXは第1種別のデータとは判別されない。したがって、データX,データFが第2種別のデータと判別される。そして、プロセッサ23は、第1種別と判別したデータYについて、更新履歴管理テーブル240において、更新履歴取得期間241がスナップショットQの取得時刻から無効開始時刻までの更新履歴を検索し、データYの無効開始時刻に最も近い更新履歴のレコードにおける更新後物理アドレス246を復元データの物理アドレスとして特定する。この場合、具体的には、ホストノード30-2によって更新されたデータYについては更新前のデータAが復元データとされ、その物理アドレスが特定される。
次のステップS305では、プロセッサ23は、ステップS304の特定結果等を踏まえて、セカンダリボリューム(S-VOL1100)の論物マッピングを生成する。詳細な処理は省略するが、ステップS305の結果、S-VOL1100は、データA,X,Fの構成でデータが復元される。
次のステップS306では、ステップS304でデータ復元されたS-VOL1100の異常確認が管理者に求められるが、データXを含んでいることから、異常があると判断され、ステップS302に戻る。そして、ステップS302では、先のステップS302で指定された日時よりも古い、スナップショットPの取得時刻よりも少し前に繰り下げた日時が、無効開始時刻に再指定される。
以降は、前述した処理が繰り返される。具体的には、ステップS303の処理によって、スナップショットPがデータ復旧の起点として選択される。そしてステップS304の処理によって、ホストノード30-1によって更新されたデータXが第1種別のデータとして新たに判別され、データXの復元データとして更新前のデータBが探索され、その物理アドレスが特定される。さらに、ステップS305の処理によって、S-VOL1100は、データA,B,Fの構成でデータが復元される。
そして、ステップS306では、改めてステップS305でデータ復元されたS-VOL1100の異常確認が管理者に求められる。このとき、マルウェアに感染したホストノード30-1,30-2から更新されたデータX,Yがともに削除されていることから、S-VOL1100には異常が認められず、ステップS307においてS-VOL1100の論物マッピングをP-VOL1000にコピーすることにより、マルウェアに感染したホストによって破壊されたデータを選択的に削除する態様で、P-VOL1000のデータ復旧が実現される。
以上に説明したように、本実施形態に係るストレージシステム20は、図1や図11のように、ホスト単位でアクセス先が規定されていない場合、及び図7のように、ホスト単位でアクセス先が規定されている場合の何れの構成であっても、更新を無効にするホスト及びその無効開始時刻(日時)を指定してボリュームデータの復旧(リビルド)が指示されたとき、ボリュームの全論理アドレスの特定時刻におけるデータ(現データであるP-VOL1000のデータやバックアップ領域203に管理されるスナップショット)から、更新履歴管理テーブル240等に基づいて、書き込みホストごとに復元データを特定し(特に、指定されたホストによってデータ更新されたことがあるデータは、無効開始時刻以前の直近のデータを復元データとし)、これらの復元データによってボリュームのデータを復旧する。このようなストレージシステム20によれば、マルウェアに感染したホスト(更新の無効が指示されたホスト)から更新された可能性があるデータを選択的に感染前のデータに復元することができるため、ボリューム全体では、感染時刻より後に正常なホストから更新されたデータを削除することなく復元することができ。その結果、有効なデータの消失を防ぐことができ、データ復旧に要する作業時間を短縮することができる。
なお、図10及び図11を参照しながら説明した第1の方法によるリビルド処理の変形例として、ステップS301において、データ更新を無効にする複数のホストを指定可能としてもよく、さらに、ステップS302において、それぞれの指定ホストに対して異なる無効開始時刻を指定可能としてもよい。指定ホストごとに異なる無効開始時刻が指定される場合、指定ホストごとに第1種別のデータが判別され、それぞれの第1種別のデータが、指定ホストに対応する無効開始時刻以前の直近のデータを復元データとして復元される。また、指定ホストごとに異なる無効開始時刻が指定される場合、データ復旧の起点とするスナップショットは、指定ホストごとに指定された無効開始時刻に基づいて都度スナップショットを選択してもよいし、複数の無効開始時刻のうちで最も古い無効開始時刻に基づいて共通する1つのスナップショットを選択してもよい。このような変形例によれば、指定されたホストごとに、それぞれ指定された無効開始時刻より後のデータ更新を無効化して、データ更新前のデータを復旧することができる。
また、本実施形態におけるリビルド処理の第2の方法は、データ更新を無効にするホストとその無効開始の時刻(日時)とが指定されたときに、指定日時より後に指定ホストから更新されたデータを、(スナップショットを起点とせずに)更新履歴管理テーブル240を用いて更新前の状態に復元する方法である。
第2の方法によるリビルド処理の処理手順を、図16との相違点を示して説明する。まず、スナップショットをデータ復旧の起点としないことから、ステップS303の処理は不要となる。次に、ステップS304で、プロセッサ23が、現ボリュームのすべてのデータについて、更新前データによる復元が必要な第1種別のデータと、更新前データによる復元が不要な第2種別のデータとを判別し、第1種別のデータに対する復元データ(更新前データ)の物理アドレスを特定する。但し、第2の方法が第1の方法と違う点として、プロセッサ23は、ステップS304で第1種別のデータに対する復元データを特定するときに、最新状態である現データをデータ復旧の起点として、更新履歴管理テーブル240を遡って検索することにより、無効開始時刻の直前まで巻き戻す形で、復元データの物理アドレスを特定する。より具体的には、第2の方法においてプロセッサ23は、第1種別のデータに含まれる各データについて、更新履歴管理テーブル240を参照しながら、データ復旧の起点(ここでは最新状態)から更新履歴を遡り、無効開始時刻より後の最初のデータ更新における更新前データを復元データとし、その物理アドレスを特定する。そして、ステップS305以降の処理は、スナップショットを用いる処理以外は第1の方法と同様に実行することにより、第1種別のデータを、無効開始時刻の直前の更新前データで復元することができる。また、第2種別のデータは、第1の方法と同様に、最新状態の現データで復元される。
このような第2の方法によれば、スナップショットを用いることなく、第1の方法と同様にマルウェアに感染したホストから書き込まれたデータを更新前データに復旧することができるため、第1種別の復元データを特定するために要する処理時間は第1の方法よりも長くなるものの、第1の方法よりも簡素なプログラムで実現できるという利点がある。
また、第2の方法によるリビルド処理の変形例として、指定時刻(無効開始時刻)以降のスナップショットを選択し、このスナップショットをデータ復旧の起点として更新履歴管理テーブル240を遡ることによって、第1種別のデータの復元データ及びその物理アドレスを特定し、復元するようにしてもよい。第2種別のデータについては、前述した各方法またはその変形例と同様に、最新状態の現データを復元する。このような変形例によれば、スナップショットとの変更差分を利用してデータ復旧を行うため、第1の方法と同様に、探索に要する時間や負荷を軽減することができる。
また、上述した各方法によるリビルド処理では、指定日時(無効開始時刻)以降に指定ホストによるデータ更新が行われていない第2種別のデータを最新状態の現データで復旧するとしたが、第2種別のデータを所定のスナップショットのデータ構成で復元する処理を組み合わせることもできる。この場合、具体的には例えば、リビルド処理の開始時に、データ更新を無効にするホスト(マルウェアに感染したホスト)及びデータ更新の無効開始時刻(マルウェアの感染前と推定されるタイミング)の指定に加えて、データ更新を無効にしないデータ(第2種別のデータ)に対するデータ復旧の目標日時を示すデータ復旧日時が指定される。実際の運用を考慮すると、データ復旧日時として指定される目標日時は、データ更新を無効にする指定日時(無効開始時刻)よりも後の日時であることが好ましい。このときプロセッサ23は、第2種別のデータに対しては、データ復旧日時で指定された日時以前の直近に取得されたスナップショットを特定し、当該スナップショットのデータ構成に従ってデータを復元する。また、プロセッサ23は、第1種別のデータに対しては、上述した各方法に従ってデータを復元する。派生例として、第1種別のデータに対するデータ復旧の起点としてスナップショットを利用する方法の場合に、第2種別のデータに対するデータ復旧の起点とするスナップショットを流用するようにしてもよい。なお、上記のデータ復旧日時の指定に代えて、所望のスナップショットの取得日時が直接指定されてもよい。以上のようなリビルド処理によれば、ボリュームデータのうち、マルウェアに感染したホストからの書き込みが行われていない第2種別のデータをユーザ所望のタイミングに近いスナップショット(あるいはユーザ所望のスナップショット)のデータ構成で復旧するとともに、マルウェアに感染したホストからの書き込みが行われた第1種別のデータを感染前のデータで復元することができるため、データ復旧に関するユーザの多様な要求に応えることができる。
また、以上のリビルド処理は、データの書き込み方式に追い書き方式を採用した場合で説明したが、前述した更新差分を退避する方式等を採用した場合でも、更新前の物理データはすぐに消えずに残っていることから、追い書き方式の場合と同様に、リビルド処理においてデータ復元に利用することができる。
本実施形態に係るストレージシステム20は、ホスト単位(ホスト計算機、仮想マシン、ホストノード、コンテナ等)またはアプリケーションの管理単位(ボリューム、永続ボリューム、仮想ディスクイメージ等)で、登録されるデータが分類される仕組みを有するストレージシステム全般に適用することができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。具体的には例えば、図10に示したリビルド処理では、P-VOL1000のデータを復旧する際に、一旦、S-VOL1100にデータを復元し、異常がないことをユーザに確認させてからP-VOL1000に復元したデータ構成をコピーするようにしたが、変形例として、S-VOL1100におけるデータ復元を行わずに、P-VOL1000において直接、データを復元するようにしてもよい。前者の場合は、通常使用しているボリュームとは別のボリュームで復元したデータを確認させることによって、安全なデータ復旧が期待できるのに対し、後者の場合は、安全性は劣るものの、データ復旧に要する時間や手間を削減する効果に期待できる。
また、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
10 データ
20 ストレージシステム
21 ストレージコントローラ
22 FE I/F
23 プロセッサ
24 メモリ
25 バス
26 BE I/F
27 ストレージI/F
28 ドライブ
30 ホスト計算機(ホストノード)
31 ネットワーク
40 ハイパーバイザ
41 仮想マシン(VM)
42 OS
43 アプリケーション
201 プログラム領域
202 キャッシュ領域
203 バックアップ領域
204 テーブル管理領域
205 仮想ディスクイメージ
210 ボリューム情報管理テーブル
220 論物マッピングテーブル
230 スナップショット管理テーブル
240 更新履歴管理テーブル
1000 P-VOL
1100 S-VOL

Claims (13)

  1. 記憶装置とストレージコントローラとを有し、前記ストレージコントローラによって前記記憶装置の記憶領域を仮想化したボリュームを複数のホストに提供するストレージシステムにおいて、
    前記ストレージコントローラは、
    前記ホストによる前記ボリュームのデータ更新の履歴を、当該ホストを識別可能な情報を添えて更新履歴情報に記録し、
    前記データ更新を無効にするホスト及び日時の指定を含む前記ボリュームのデータの復旧が要求されたとき、
    前記更新履歴情報に基づいて、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストとは異なるホストによって更新されたデータ更新を有効にしたままで、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストによって更新されたデータ更新を無効にして前記ボリュームを復元する
    ことを特徴とするストレージシステム。
  2. 前記ストレージコントローラは、
    前記ボリュームの最新状態の各データに割り当てられた論理アドレスと当該各データの前記記憶装置における格納先を示す物理アドレスとの対応関係を、各データを登録した前記ホストを識別可能な情報を添えて論物マッピング情報に記録し、
    前記ボリュームのデータ更新時には、更新前データとは異なる前記記憶領域の物理アドレスに更新後データを格納して前記論物マッピング情報を更新し、少なくともアクセス元ホストが変更となるデータ更新について、アクセス元ホストの変更と、更新前データ及び更新後データそれぞれの論理アドレスと物理アドレスとの組み合わせとを追跡可能な形態で、前記更新履歴情報に履歴を記録し、
    前記ボリュームのデータの復旧が要求されたとき、
    前記ボリュームのデータから、前記更新履歴情報に基づいて、前記指定された日時より後に前記指定されたホストによって更新された第1種別のデータを特定し、
    前記第1種別のデータに含まれる各データの論理アドレスについて、前記更新履歴情報に基づいて、前記指定された日時以前に実行されたデータ更新による更新後データにかかる物理アドレスを特定し、
    前記特定した更新後データにかかる物理アドレスを前記論理アドレスに対応付けて前記第1種別のデータを復元する
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 前記ストレージコントローラは、
    前記ボリュームのデータの復旧が要求されたとき、
    前記ボリュームのデータから、前記更新履歴情報に基づいて、前記第1種別のデータを特定するとともに、前記指定された日時より後に前記指定されたホストによって更新されていない第2種別のデータを特定し、
    前記第2種別のデータを、前記更新履歴情報または前記論物マッピング情報に基づいて最新状態で復元する
    ことを特徴とする請求項2に記載のストレージシステム。
  4. 前記ストレージコントローラは、
    前記ボリュームのスナップショットを所定のタイミングで繰り返し取得し、
    前記ボリュームのデータの復旧が要求されたとき、
    前記指定された日時よりも前に取得されたスナップショットを前記第1種別のデータの復元データの起点として選択し、前記起点から前記指定された日時までの前記第1種別のデータの物理アドレスの更新差分を前記更新履歴情報を用いて特定することにより、前記第1種別のデータの復元データを前記記憶装置に格納されたデータから特定する
    ことを特徴とする請求項2に記載のストレージシステム。
  5. 前記ボリュームのデータの復旧の要求において、前記データ更新を無効にするホストが複数あり、その指定日時が異なって指定されたとき、
    前記ストレージコントローラは、
    前記指定されたホストごとに、対応する前記指定された日時を基準として前記第1種別のデータを特定し、当該日時以前に実行されたデータ更新による更新後データで当該第1種別のデータを復元する
    ことを特徴とする請求項2に記載のストレージシステム。
  6. 前記ボリュームのデータの復旧が要求されたとき、前記ストレージコントローラは、
    前記論物マッピング情報に示される最新状態のデータを前記第1種別のデータの復元データの起点として選択し、前記起点から前記指定された日時までの前記第1種別のデータの物理アドレスの更新差分を前記更新履歴情報を用いて特定することにより、前記第1種別のデータの復元データを前記記憶装置に格納されたデータから特定する
    ことを特徴とする請求項2に記載のストレージシステム。
  7. 前記ストレージコントローラは、
    前記ボリュームのスナップショットを所定のタイミングで繰り返し取得し、
    前記ボリュームのデータの復旧が要求されたとき、
    前記指定された日時よりも後に取得されたスナップショットを前記第1種別のデータの復元データの起点として選択し、前記起点から前記指定された日時までの前記第1種別のデータの物理アドレスの更新差分を前記更新履歴情報を用いて特定することにより、前記第1種別のデータの復元データを前記記憶装置に格納されたデータから特定する
    ことを特徴とする請求項2に記載のストレージシステム。
  8. 前記ストレージコントローラは、
    前記ボリュームのスナップショットを所定のタイミングで繰り返し取得し、
    前記ボリュームのデータの復旧の要求において、前記データ更新を無効にするホスト及び日時の指定とは別に、前記データ更新を無効にしないデータに対するデータ復旧の目標日時が指定された場合、
    前記ボリュームのデータから、前記更新履歴情報に基づいて、前記第1種別のデータを特定するとともに、前記指定された日時より後に前記指定されたホストによって更新されていない第2種別のデータを特定し、
    前記第2種別のデータを、前記目標日時以前に取得されたスナップショットを用いて復元する
    ことを特徴とする請求項2に記載のストレージシステム。
  9. 第1のボリュームに対する前記データの復旧が要求されたとき、前記ストレージコントローラは、
    前記第1のボリュームとは別のバックアップ用の第2のボリュームに、前記データを復元し、復元後の前記第2のボリュームの確認をユーザに要求し、
    前記第2のボリュームに復元されたデータがユーザから確認された場合に、当該第2のボリュームのデータ構成を前記第1のボリュームにコピーすることによって、前記第1のボリュームのデータを復旧する
    ことを特徴とする請求項2に記載のストレージシステム。
  10. 前記ストレージコントローラは、
    前記第2のボリュームに復元されたデータが異常であるとユーザから確認された場合、前記指定された日時を当該日時よりも前の日時に変更して前記第2のボリュームに前記データを復元する処理を、当該第2のボリュームに復元されたデータが正常であるとユーザから確認されるまで繰り返し、当該繰り返しの終了時の前記第2のボリュームのデータ構成を前記第1のボリュームにコピーすることによって、前記第1のボリュームのデータを復旧する
    ことを特徴とする請求項9に記載のストレージシステム。
  11. 前記ストレージコントローラは、
    前記第2のボリュームに復元されたデータが正常であるとユーザから確認された場合、前記指定された日時を当該日時よりも後の日時に変更して前記第2のボリュームに前記データを復元する処理を、当該第2のボリュームに復元されたデータが異常であるとユーザから確認されるまで繰り返し、当該繰り返しの終了時の直前に正常であると確認されたときの前記第2のボリュームのデータ構成を前記第1のボリュームにコピーすることによって、前記第1のボリュームのデータを復旧する
    ことを特徴とする請求項9に記載のストレージシステム。
  12. 前記ボリュームのデータ管理領域が、複数の独立した仮想ディスクイメージに分割され、それぞれの前記仮想ディスクイメージにアクセス可能な前記ホストが予め登録されるとき、
    前記ストレージコントローラは、
    前記ホストによる前記仮想ディスクイメージへのデータ更新の履歴を、当該ホストを識別可能な情報を添えて更新履歴情報に記録し、
    前記データ更新を無効にするホスト及び日時の指定を含む前記ボリュームのデータの復旧が要求されたとき、
    前記更新履歴情報に基づいて、前記指定されたホストとは異なるホストからアクセスされる前記仮想ディスクイメージにおいてデータ更新を有効にしたままで、前記指定されたホストからアクセスされる前記仮想ディスクイメージにおいて前記指定された日時より後に前記指定されたホストによって更新されたデータ更新を無効にして当該仮想ディスクイメージのデータを復元する
    ことを特徴とする請求項1に記載のストレージシステム。
  13. 記憶装置とストレージコントローラとを有し、前記ストレージコントローラによって前記記憶装置の記憶領域を仮想化したボリュームを複数のホストに提供するストレージシステムによるデータ復旧方法であって、
    前記ストレージコントローラが、前記ホストによる前記ボリュームのデータ更新の履歴を、当該ホストを識別可能な情報を添えて更新履歴情報に記録する更新履歴記録ステップと、
    前記データ更新を無効にするホスト及び日時の指定を含む前記ボリュームのデータの復旧が要求されたとき、前記ストレージコントローラが、前記更新履歴情報に基づいて、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストとは異なるホストによって更新されたデータ更新を有効にしたままで、前記ボリュームにおいて前記指定された日時より後に前記指定されたホストによって更新されたデータ更新を無効にして前記ボリュームを復元するデータ復元ステップと、
    を備えることを特徴とするデータ復旧方法。
JP2021160452A 2021-09-30 2021-09-30 ストレージシステム及びデータ復旧方法 Pending JP2023050384A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021160452A JP2023050384A (ja) 2021-09-30 2021-09-30 ストレージシステム及びデータ復旧方法
US17/691,253 US20230113507A1 (en) 2021-09-30 2022-03-10 Storage system and data restoration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021160452A JP2023050384A (ja) 2021-09-30 2021-09-30 ストレージシステム及びデータ復旧方法

Publications (1)

Publication Number Publication Date
JP2023050384A true JP2023050384A (ja) 2023-04-11

Family

ID=85798067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021160452A Pending JP2023050384A (ja) 2021-09-30 2021-09-30 ストレージシステム及びデータ復旧方法

Country Status (2)

Country Link
US (1) US20230113507A1 (ja)
JP (1) JP2023050384A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11960606B2 (en) * 2022-03-24 2024-04-16 Check Point Software Technologies Ltd. System and method for protecting against data storage attacks

Also Published As

Publication number Publication date
US20230113507A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
US20210157523A1 (en) Storage system
JP3878412B2 (ja) データを保存し使用し及び回復する方法
US7895394B2 (en) Storage system
JP2703479B2 (ja) タイム・ゼロ・バックアップ・セッションの安全保護機能を有するデータ処理方法及びシステム
US8386434B2 (en) Optimizing defragmentation operations in a differential snapshotter
US9396198B2 (en) Computer system, file management method and metadata server
US8732121B1 (en) Method and system for backup to a hidden backup storage
KR101085767B1 (ko) 데이터베이스 뷰 제공 방법 및 컴퓨터 판독가능 기록 매체
US6564307B1 (en) Method, system, and program for logically erasing data
US7673096B2 (en) Control apparatus for controlling virtual storage
US20090216973A1 (en) Computer system, storage subsystem, and data management method
JP2007226347A (ja) 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
WO2023206968A1 (zh) 一种数据存储方法、系统及计算机可读存储介质
KR20090091746A (ko) 라이트백 캐시 유닛을 사용하여 데이터를 관리하는 시스템, 방법 및 컴퓨터 프로그램 제품
KR100819022B1 (ko) 하나의 타겟 볼륨과 하나의 소스 볼륨 사이의 관계 관리
US20100005255A1 (en) Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log
EP3385846B1 (en) Method and device for processing access request, and computer system
US11409451B2 (en) Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
US20070143591A1 (en) Method for non-destructive restoration of a corrupted operating system
JP2008204460A (ja) ディスク・パーティションのほぼ瞬時のバックアップおよび復元
US7152147B2 (en) Storage control system and storage control method
JP2023050384A (ja) ストレージシステム及びデータ復旧方法
US11755223B2 (en) Systems for modular hybrid storage devices
US8880820B2 (en) Techniques for using sparse files during snapshots
US20140059291A1 (en) Method for protecting storage device data integrity in an external operating environment