JP6875449B2 - ストレージシステム、及びデータの回復方法 - Google Patents

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

Info

Publication number
JP6875449B2
JP6875449B2 JP2019080055A JP2019080055A JP6875449B2 JP 6875449 B2 JP6875449 B2 JP 6875449B2 JP 2019080055 A JP2019080055 A JP 2019080055A JP 2019080055 A JP2019080055 A JP 2019080055A JP 6875449 B2 JP6875449 B2 JP 6875449B2
Authority
JP
Japan
Prior art keywords
volume
standard deviation
time
storage system
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
JP2019080055A
Other languages
English (en)
Other versions
JP2020177502A (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.)
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 JP2019080055A priority Critical patent/JP6875449B2/ja
Priority to US16/795,777 priority patent/US11175830B2/en
Publication of JP2020177502A publication Critical patent/JP2020177502A/ja
Application granted granted Critical
Publication of JP6875449B2 publication Critical patent/JP6875449B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/062Securing 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0653Monitoring storage devices or 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/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
    • 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
    • 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/0683Plurality of storage devices

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)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Description

本発明は、ストレージシステムのデータ回復技術に関する。
計算機システムのデータに不正な改変を行うコンピュータウィルスの内、ランサムウェアがある。このランサムウェア(Ransomware)とは、マルウェアの一種であり、これに感染したコンピュータは、利用者のシステムへのアクセスを制限する。この制限を解除するため、被害者がマルウェアの作者に身代金(ransom、ランサム)を支払うよう要求する。数種類のランサムウェアは、システムのハードディスクドライブを暗号化し、他の幾種類かは単純にシステムを使用不能にして、利用者が身代金を支払うように促すメッセージを表示する。
ストレージシステムにおいて、ランサムウェアによるデータ改竄が発生した時、スナップショット技術を使用して、改竄前、もしくは感染前のデータに復旧している。スナップショットを利用してデータをリストアすることで改竄前の最新データ復旧させる事が期待されるが、改竄がいつ実行されたかというデータがユーザにない為、改竄されていないデータを確認するためリストア及び内容確認を複数回実行しなくてはならず、復旧までに時間を要する。
スナップショットを用いてデータ回復時間を短縮する技術として、複数時点の複数のスナップショットから目標回復時刻に近いスナップショットを選択することで、データ回復時間を短縮する技術が特許文献1に開示されている。
特開2005−018738号公報
上記特許文献1によれば、複数のスナップショットから目標回復時刻に近いスナップショットを選択することで、データ回復時間を短縮することは開示されているが、目標回復時刻の求め方、即ち、ランサムウェアによって改竄される直前のデータに回復するための目標回復時刻の求め方については、言及されていない。システム復旧の観点からすると、データ回復の目標回復時刻は、データ改竄が発生する直前であることが望ましい。
そこで、本発明の目的は、改竄前のデータに回復するための目標回復時刻を提供するストレージシステム及びその方法を提供することにある。
上記目的を達成するため、本発明のストレージシステム一態様は、計算機と接続され、計算機からのIO要求を処理するコントローラと、IO要求に応じてデータを読み書きする記憶装置とを有するストレージシステムにおいて、コントローラは、記憶装置により構成されるボリュームを構成し、計算機からボリュームの仮想アドレスにデータが格納された時間を管理し、ボリュームの仮想アドレスに対する書込み時間のバラつきを示す標準偏差を計算し、標準偏差の値が減少を開始するタイミングをリストア時間として出力する。
本発明によれば、データ改竄前の目標回復時刻を把握することができる。
実施例のシステム構成図である。 実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図である。 実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図である。 実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図である。 実施例のストレージシステムのハードウェアブロック図を示した図である。 実施例の最終データ格納時刻テーブルの一例を示した図である。 実施例の標準偏差テーブルの一例を示した図である。 実施例の計算間隔テーブルの一例を示した図である。 実施例のボリューム選択画面の一例を示した図である。 実施例の計算間隔入力画面の一例を示した図である。 実施例の計算間隔設定の処理フローを示した図である。 実施例のボリューム作成の処理フローを示した図である。 実施例のボリューム削除の処理フローを示した図である。 実施例の最終データ格納時刻更新の処理フローを示した図である。 実施例の標準偏差計算の処理フローを示した図である。 実施例の標準偏差計算の定期実行の処理フローを示した図である。 実施例のデータ改竄時刻特定の処理フローを示した図である。 実施例の標準偏差テーブル(ボリューム作成直後)を示した図である。 実施例の標準偏差テーブル(運用開始後)を示した図である。 実施例の標準偏差テーブル(運用中)を示した図である。 実施例の標準偏差テーブル(データ改竄後)を示した図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、[AAAテーブル]の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、[AAAテーブル]を[AAA情報]と記載することができる。
また、以下の説明では、プロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、[プログラム]を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)等を用いながら行うため、実際の処理の主体はプロセッサである。従って、プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。
コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。
<1.システム構成>
図1は、本実施例によるシステムの一例を示す構成図である。
このシステム1は、1又は複数の業務サーバ10と、業務サーバ10からのIO(Input Output)要求を受信する1又は複数のストレージシステム30と、ストレージシステム30に接続され、ストレージシステムを管理する1又は複数の管理クライアント20とを有する。図1では、説明のため、業務サーバ10、ストレージシステム30、管理クライアント20はそれぞれ1つ図示している。
業務サーバ10は、ストレージシステム30とLANを経由して接続されるためのインタフェースとなるNIC(Network Interface Card)101と、ストレージシステム30と接続され、ストレージシステム30に対しIO要求を行うためのインタフェースであるHBA(Host Bus Adapter)102とを有する。業務サーバ10は、処理部であるCPU及びメモリ等の情報資源を備えたコンピュータ装置であり、例えば、オープン系のサーバや、クラウドサーバ等から構成される。業務サーバ10は、ユーザ操作や、実装されたプログラムからの要求に応じてネットワークを介してストレージシステム30にIO要求、即ち、ライトコマンドやリードコマンドを送信する計算機である。
管理クライアント20は、CPU及びメモリ等の情報資源を備えたコンピュータ装置であり、例えば、オープン系のサーバや、クラウドサーバ等から構成される。管理クライアント20は、ストレージシステム30とLANを介して接続するためのインタフェースであるNIC(Network Interface Card)201を有し、ストレージシステム30にボリューム作成、削除、リストア命令等の管理を行うため表示部を有する。
ストレージシステム30は、業務サーバ10とLANを介して接続するためのNIC301、業務サーバ10からのIO要求を受信するポート302、管理クライアント20とLANを介して接続するNIC303を有する。ストレージシステム30は、業務サーバ10からのIO要求を処理する1又は複数のストレージコントローラ304、1又は複数のストレージコントローラ304に接続される複数のドライブボックスからなる記憶装置307と、各部を接続するバスを有する。
ストレージコントローラ304は、ストレージシステム30としての機能を業務サーバ10に提供するための必要なソフトウエアが実装された装置である。通常、ストレージコントローラ304は、冗長化された複数のストレージコントローラから構成される。
CPU305は、ストレージコントローラ304全体の動作制御を司るハードウェアである。CPU305は、業務サーバ10から与えられたIO要求であるリードコマンドやライトコマンドに応じて、記憶装置307にデータを読み書きする。
またメモリ306は、例えば、Synchronous Dynamic Random Access Memory(SDRAM)等の半導体メモリから構成され、必要なプログラム(Operating System(OS)を含む)やデータを記憶保持するために利用される。メモリ306は、CPU305の主記憶であり、CPU305が実行するプログラム(ストレージ制御プログラム等)や、CPU305が参照する各種テーブル等が格納される他、ストレージコントローラ304のディスクキャッシュ(キャッシュメモリ)としても使用される。
CPU305によって処理される一部または全部は、Application Specific Integrated Circuit(ASIC)やField−Programmable Gate Array(FPGA)のような専用ハードウェアで実現することもできる。
記憶装置307は、SSD(Solid State Drive)、SATA(Serial ATA)、FC(Fibre Channel)等の各種ドライブから構成される。
また、記憶装置307は、各ドライブボックスに一つ又は複数含まれる。ドライブはNAND フラッシュメモリ(以下、NANDと呼ぶ)の他、複数のNANDフラッシュメモリチップを含んでいてもよい。NANDは、メモリセルアレイを含む。このメモリセルアレイは、多数のNANDブロック(ブロック)を含む。ブロックは、消去単位として機能する。ブロックは「物理ブロック」または「消去ブロック」と称されることもある。
ブロックは多数のページ(物理ページ)を含む。つまり、ブロックの各々は、複数のページを含む。NANDにおいては、データのリードおよびデータのライトはページ単位で実行される。データの消去はブロック単位で実行される。
記憶装置307は、不揮発性ストレージメディアを接続するための論理デバイスインターフェースの規格であるNVM Express (NVMe) もしくは NVMHCI (Non−Volatile Memory Host Controller Interface)に準拠する。
<2.書き込み標準偏差を用いたデータ改竄時刻の特定>
図2は、実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図である。
ここで、標準偏差とは、特定のボリュームの仮想アドレスに対する書込み時間のバラつきを示す指標である。この標準偏差は、数1によって求めることができる。
Figure 0006875449
N=対象ボリュームのデータが格納されている仮想アドレスの数
ここで、仮想アドレスとは、業務サーバからのIO要求に含まれるLBA(LogicalBlock Address)に対応するボリュームの記憶領域を表すアドレスである。
x_i= 対象ボリュームの対象仮想アドレスの最終書き込み時刻(UNIX(登録商標)時刻に変換した時刻)
μ= 対象ボリュームのデータが格納されている全仮想アドレスの最終書き込み時刻(UNIX時刻に変換した時刻)の平均値
図2は、例えば、管理クライアント20の表示部に表示され、対象ボリューム(Specified Volume(s) ID = 00:00:03)に対する最終書込み標準偏差210を時系列で示したグラフ202と、対象ボリュームのスナップショット取得時間204を示している。図2に示した画面は、管理クライアント20の他、ストレージシステム30に接続されるコンソールに表示されてもよい。
グラフ202に示すように、最終書込み標準偏差210は時間と共にわずかながら増加していき、リストア非推奨203の時点211から急激に値が減少している。そして、時点212において、減少がとまりその後ほぼ一定の値を示している。
これは、ウィルスによって時点211から対象ボリュームの多くの仮想アドレスのデータが短時間で更新されはじめ、時点212では対象ボリュームの多くの仮想アドレスのデータが更新されたため、各仮想アドレスに対する書き込み時間にバラつきがなくなったことを示している。
このように、データが改竄されていない状態で通常の業務を行っている場合には、標準偏差のバラつきは大きく、その変化は小さい。一方、ランサムウェア等のウィルスによってデータが改竄されると、ボリューム上のデータが全て暗号化されて更新されるため、標準偏差で示される書き込み時間のバラつきが小さく、その変化は大きくなる。つまり、標準偏差の値210が減少に転じるタイミングである時点211からランサムウェアの活動が開始されたものと推測することができる。
改竄される前の時点までデータを回復(リストア)するため、図2では、改竄されたと推測できる期間をリストア非推奨203として表示し、複数時点で取得された複数のスナップショットの内、その直前のスナップショットID101を選択することを推奨していることを示している。尚、複数のスナップショットは、スナップショット取得時間204において、スナップショットを取得した時間206と、スナップショットのID207が対応して表示され、セレクト205から選択できるように表示される。
図3は、実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図であり、図2の標準偏差に加えIOPS(Input/Output Per Second)301を監視する性能情報として加えたものである。
図3において、IOPS301は、時点310において、通常の書き込みに加えて、改竄による暗号用のライトが増加したと推測される。このように、最終書込み標準偏差210に加えて、IOPS301をグラフ202に表示することで、ユーザは、データ改竄時期をより正確に把握することができる。
図4は、実施例の最終書込み標準偏差の時系列グラフの画面の一例を示す図である。スナップショット取得時間204に、ユーザが管理クライアント20の入力部を介して、データ回復時間が入力された状態を示している。ユーザは、グラフ202を参考にして、データ回復時間として、2018/02/21 13:10:00を入力している。
図2から図4で示した画面は、管理クライアント20の表示部に表示される他、ストレージシステム30のNIC301、303に接続されるコンソールに表示されても良い。
図5は、実施例のストレージシステム30のハードウェアブロックを示した図である。ストレージシステム30は、ストレージシステム30の全体の制御を司る制御部となるCPU(プロセッサ)305、メモリ306とでコントローラ304を構成する。さらに、ストレージシステム30は、業務用サーバ10との通信インタフェースであるポート302、業務用サーバ10、管理クライアント20とLANを経由して接続するためのNIC301、303及びこれらを接続するバスを備える。また、ストレージシステム30は、コントローラ304により、各ドライブから構成される複数のボリューム501、ボリューム501から業務用サーバ10に記憶領域として提供される複数の論理ユニット(LU)502を作成する。
ストレージシステム30のコントローラ304はメモリ306に構成情報を格納する。この構成情報は、ボリューム501とLU502との関係、LU502のLBA(業務サーバからのIO要求に含まれるLBA)とLU502のLBAに対応するボリューム501の記憶領域を表す仮想アドレスとの関係とを含む。ボリューム501は、複数のLU502に対応しても良いし、一つのLU502に対応しても良い。以下では、説明を簡単にするため、ボリューム501とLU502が1対1で対応している場合を前提に説明するが、LU502とボリューム501の対応関係は、メモリ306に構成情報410として格納されているため、複数のLUが一つのボリュームに対応していても、本実施例を適応することができる。
また、所謂、シンプロビジョニング機能でLUが業務サーバ10に提供される場合においても、LU502のLBAとボリュームの仮想アドレスとの対応関係は構成情報410としてメモリ306に格納されているため、同様に本実施例を適応することができる。
ストレージシステム30のメモリ306には、ストレージシステム30の各種機能を実現する各種プログラムとして、ストレージ機能プログラム400の他、標準偏差計算プログラム404、標準偏差計算時刻監視プログラム405、最終データ格納時刻更新プログラム406、性能情報監視プログラム407、時刻提案プログラム408を記憶する。ストレージ機能プログラム400には、業務サーバ10からIO要求を処理し、記憶装置にデータを読み書きする機能の他、特定ボリュームの複数時点の複数のスナップショットを取得する機能、業務サーバ10からのIO要求のログを取り、ボリュームにログを適応することで、ボリュームをどの時点の状態にすることができるCDP(Continuous Data Protection)機能、LU502をシンプロビジョニングボリュームとして業務サーバ10に提供する機能が含まれる。
また、標準偏差計算プログラム404、標準偏差計算時刻監視プログラム405、最終データ格納時刻更新プログラム406、性能情報監視プログラム407、時刻提案プログラム408で参照される各種テーブルである、最終データ格納時刻テーブル401、標準偏差テーブル402、計算間隔テーブル403が格納されている。
CPU305は、ストレージ機能プログラム400により、LU502にデータを書き込み、読み出す制御を行う他、ボリュームのスナップショットを取得する。また、CPU305は、メモリ306に格納された各種プログラムを実行することで、各種機能を実現する。そのため、実際の処理主体はCPU305であっても、各プログラムの処理を分かりやすく説明するため、プログラムを主語にして説明する場合がある。CPU305によって処理される一部または全部は、ASICやFPGAのような専用ハードウェアで実現することもできる。
また、メモリ306は、例えば、Synchronous Dynamic Random Access Memory(SDRAM)等の半導体メモリから構成され、必要なプログラム(Operating System(OS)を含む)やデータを記憶保持するために利用される。メモリ306は、プロセッサ305の主記憶であり、CPU305が実行するプログラム(ストレージ機能プログラム等)や、CPU305が参照する管理情報等が格納される他、データを一時格納するデータバッファとしても使用される。
<3.各種管理情報>
図6は、実施例の最終データ格納時刻テーブル401の一例を示した図である。最終データ格納時刻テーブル401は、ストレージシステム30のメモリ306に格納され、CPU305によって参照されるテーブルであり、ボリューム毎に管理される。
図6は、ボリュームIDが「00:00:03」で特定されるボリュームに対応するLUの最終データ格納時刻を管理するための情報であり、ストレージシステム30のボリューム毎に同様のテーブルが存在する。仮想アドレス番号61は、ストレージシステム30によって業務サーバ10に提供されるLU502のLBAに対応するボリュームのアドレスを示す。最終データ格納時刻62は、仮想アドレス番号61によって特定されるアドレスに対する最終データ格納時刻を示し、仮想アドレス番号61「0」が「2018−01−05T12:33:11Z」に最終データ更新されたことを示している。従って、同一仮想アドレスに対し、複数回のデータ更新が行われた場合、最後に更新された時刻が格納されることとなる。尚、最終データ格納時刻62は、UNIX時刻に変換した仮想アドレスの最終書き込み時刻としても良い。
図7は、実施例の標準偏差テーブルの一例を示した図である。標準偏差テーブル402は、ストレージシステム30のメモリ306に格納され、CPU305によって参照されるテーブルであり、ボリューム毎に管理される。
図7では、ボリュームIDが「00:00:03」で特定されるボリュームに対応するLUの標準偏差テーブルを管理するための情報であり、ストレージシステム30のボリューム毎に同様のテーブルが存在する。n71は、0からインクリメントされる数字である。計算開始時刻72は、ボリュームIDが「00:00:03」の標準偏差の計算を開始した時刻を示し、標準偏差73は各時点における標準偏差の値を示している。図7は、計算開始時刻72が「2018−01−05T11:40:10Z」の時、標準偏差73が「0」で、計算開始時刻72が「2018−01−05T12:40:10Z」の時、標準偏差73が「145」であることを示している。
図8は、実施例の計算間隔テーブルの一例を示した図である。計算間隔テーブル403は、ストレージシステム30のメモリ306に格納され、CPU305によって参照されるテーブルであり、ボリューム毎に管理される。
図8では、ボリュームIDが「00:00:03」で特定されるボリュームに対応するLUの計算間隔テーブルを管理するための情報であり、ストレージシステム30のボリューム毎に同様のテーブルが存在する。図8の例では、計算間隔は「30分」と設定されていることを示している。
以上、図6から図8は、メモリ306に格納され、CPU305によって参照される各種テーブルを示したが、これらは単なる例示である。また、テーブルの表現にて情報を説明したが、情報は、どのようなデータ構造で表現されていてもよい。
<4.管理画面>
図9は、実施例のボリューム選択画面の一例を示した図である。このボリューム選択画面900は、管理対象のボリューム901を表示し、特定の少なくとも一つのボリュームを選択することができる。ボリューム選択画面900は、標準偏差計算プログラム404の制御の下、管理クライアント20の表示部に表示される。
図10は、実施例の計算間隔入力画面の一例を示した図である。この計算間隔入力画面1000は、計算間隔を設定するための画面である。図10では、計算間隔が30分と設定されている。計算間隔入力画面1000は、標準偏差計算時刻監視プログラム405の制御の下、管理クライアント20の表示部に表示される。管理画面1000においてユーザが計算間隔を入力すると、標準偏差計算時刻監視プログラム405が、計算間隔テーブル403に計算間隔を格納する。
図9、図10で示した管理画面は、図2、図3、図4で示した画面と同様、ストレージシステム30のNIC301、303に接続されるコンソールに表示されても良い。
<5.各種動作フロー>
図11は、実施例の計算間隔設定の処理フローを示した図である。図10の計算間隔入力画面で計算間隔が入力されることで、処理が開始され(ステップS1101)、入力された計算間隔を標準偏差計算時刻監視プログラム405が計算間隔テーブル403記憶する(ステップS1102)。
図12は、実施例のボリューム作成の処理フローを示した図である。ストレージシステム30は、管理クライアント20から新規ボリュームの作成依頼を受信することで開始され(ステップS1201)、ストレージ機能プログラム400によって、新たにボリュームが作成される(ステップS1202)。ボリュームが作成されると、標準偏差計算プログラム404が標準偏差テーブル402を、作成したボリュームのIDに紐付けて作成する(ステップS1203)。ボリュームが作成された直後の標準偏差は「0」が入力される。作成したボリュームに対する仮想アドレス毎の書込み時間を、最終データ格納時刻更新プログラム406が図6に示した最終格納時刻テーブル401に記憶する。標準偏差計算プログラム404が最終格納時刻テーブル401に基づき、作成したボリュームに対する標準偏差を計算する(ステップS1204)。尚、計算した標準偏差は、標準偏差計算プログラム404によって、標準偏差テーブル402に計算時刻と共に格納される。
図13は、実施例のボリューム削除の処理フローを示した図である。ストレージシステム30は、管理クライアント20からボリュームの削除依頼を受信することで開始され(ステップS1301)、ストレージ機能プログラム400によって、ボリュームが削除される(ステップS1302)。ボリュームが削除されると、削除したボリュームに対応する最終データ格納時刻テーブル401、標準偏差テーブル402等も削除する(ステップS1303)。
図14は、実施例の最終データ格納時刻更新プログラム406による最終データ格納時刻更新の処理フローを示した図である。対象ボリュームに対し、データの書込み要求があると、処理を開始する(ステップS1401)。ステップS1402では、最終データ格納時刻テーブル401の対象仮想アドレス番号の最終時刻に現在時刻を格納する。同じ仮想アドレスに対し、2回以上データ書き込み要求があると、最終の書込み時間によって最終データ格納時刻62が更新される。これにより、対象ボリュームの全ての仮想アドレスに対し、最後にデータ更新された時間が最終データ格納時刻テーブル401によって管理される。
図15は、実施例の標準偏差計算プログラム404によって実行される標準偏差計算の
処理フローを示した図である。
標準偏差計算プログラム404は、管理クライアント20から新規ボリュームの作成を
受けるか、既存ボリュームに対する標準偏差計算の要求を受けると、処理を開始する(ス
テップS1501)。管理クライアント20から新規ボリュームの作成を受けるタイミン
グの他、管理クライアント20から新規ボリュームの作成要求を受けて、ストレージ機能
プログラム400が新規ボリュームを作成したことの報告を受けるタイミングで開始して
も良い。
ステップS1502で、標準偏差計算プログラム404が対象ボリュームのデータが格納されている仮想アドレス群を特定する。
ステップS1503で、標準偏差計算プログラム404が現在時刻=tを取得する。
ステップS1504で、標準偏差計算プログラム404は対象仮想アドレスが1以上を判定し、YESの場合ステップS1505に進み、NOの場合ステップS1511に進む。
ステップS1505では、ステップS1505からステップS1508のステップを対象仮想アドレス分だけ繰り返すループ処理を開始する。
ステップS1506で、対象仮想アドレスの最終書き込み時刻を抽出する。このステップは、図14で説明した、対象仮想アドレスの最終時刻(図6の最終データ格納時刻62)を読み出すことによって行われる。尚、ステップS1501で処理が開始された対象ボリュームの全仮想アドレスに対する書込み処理は、図14で説明した通り、最終データ格納時刻更新プログラム406によって、仮想アドレス番号と共に最終データ格納時刻が図6のように格納されており、ステップS1506では、図6に示した最終データ格納時刻が抽出される。
ステップS1507では、最終データ格納時刻更新プログラム406が抽出した時刻をUNIX時刻に変換する。尚、図6に格納された最終データ格納時刻が既に、UNIX時刻に変換済みで時刻である場合には、ステップS1507の処理を省略できる。
ステップS1508は、データの書込みがあった他の仮想アドレスがある場合、ステップS1505に戻り、ステップS1506、S1507の処理を繰り返す。
データの書込みがあった全ての仮想アドレスについて処理が終了すると、ステップS1509に進み、ステップS1507で、対象ボリュームについて、変換した値の標準偏差を、数1によって計算する。
次に、ステップS1510で、現在時刻tおよびステップS1509で計算した標準偏差を、図7で示した対象ボリュームの標準偏差テーブル402に格納する。
尚、対象仮想アドレスが0個の場合、ステップS1511では、現在時刻tおよび対応する標準偏差として0を対象ボリュームの標準偏差テーブル402に格納する。
図16は、実施例の標準偏差計算プログラム404による標準偏差計算の定期実行の処理フローを示した図である。処理が開始されると(ステップS1601)、標準偏差計算プログラム404は、計算間隔テーブル403に格納されている計算間隔を取得する(ステップS1602)。
次に、標準偏差計算を行う対象ボリュームの数だけ、ステップS1603からステップS1607の処理を繰り返すループ処理を開始する(ステップS1603)。
ステップS1604で、対象ボリュームの標準偏差テーブル402内で最も新しい計算時刻を取得する。図7の標準偏差テーブル402の例では、「2018−01−05T12:40:10Z」を取得する。
次に、ステップS1605で、計算時刻+標準偏差計算間隔>=現在時刻であるかを判定する。つまり、対象ボリュームについて、標準偏差を計算する時間が経過したかを判断する。ステップS1605でNOの場合、ステップS1607に進み、ステップS1602からの処理を繰り返す。ステップS1605でYESの場合、ステップS1606に進み、対象ボリュームについて、数1により標準偏差計算を実行する。
図17は、実施例の時刻提案プログラム408によるデータ改竄時刻特定の処理フローを示した図である。
処理が開始されると、ステップS1701で、ユーザはボリュームの選択を行い、選択されたボリュームを時刻提案プログラム408に入力する。次に、変数nに0を入力する。
ステップS1703で、対象ボリュームの標準偏差テーブルの最新の値の位置を[a]とした場合の標準偏差[a−n−1]が存在するかを判定する。つまり、対象ボリュームの標準偏差テーブルに、二つ以上のエントリー(計算開示時刻と標準偏差)が存在するかを判定する。図7の場合、エントリーが3つ存在するので、YESとなる。対象エントリーが2つ未満の場合、処理は終了する。
対象エントリーが二つ以上存在する場合、ステップS1704に進み、標準偏差[a−n] =< 標準偏差[a−n−1]を判定する。つまり、標準偏差の値が、時間と共に減少しているかを判定する。判定結果、YESの場合ステップS1706に進み、NOの場合ステップS1705に進む。つまり、図2のグラフ202のリストア非推奨エリア203のように、標準偏差の値が右肩下がりである場合(YESの場合)、ステップS1706に進み、標準偏差格納テーブルの[a−n−1]の計算時刻を取得する。ステップS1707で、取得した時刻をデータ改竄が始まる前のリストア時間として提案する。
ステップS1705では、nに1を加え、次のエントリーを処理対象とする。
このように、標準偏差の傾きにより、データ改竄が開始された時期を特定することで、リストア時間をユーザに提供することができる。
<標準偏差テーブル>
図18から図21を用いて、対象ボリュームの各段階における標準偏差テーブルについて説明する。
図18は、実施例の標準偏差テーブル(ボリューム作成直後)を示した図であり、図19は、実施例の標準偏差テーブル(運用開始後)を示した図であり、図20は、実施例の標準偏差テーブル(運用中)を示した図であり、図21は、実施例の標準偏差テーブル(データ改竄後)を示した図である。
まず、図18において、ボリューム作成直後の標準偏差テーブルを示す。計算開始時刻72は、対象ボリュームの標準偏差の計算開始時刻を示す。計算開始時刻72には、ボリューム作成時間が入力されても良い。ボリュームが作成された直後にはどの仮想アドレスにもデータが格納されていない状態、即ち、対象ボリュームに各仮想アドレスの書き込みがなく、書き込み時間が入力されていない状態であるので、標準偏差73は「0」となる。
次に、図19において、作成されたボリュームの運用が開始されると、一部の仮想アドレスに対し、書き込みが発生し、書き込み時間が管理されることとなり、徐々に書き込み時間のバラつきが生じる。計算開始時刻「2018−01−05T12:40:10Z」では、標準偏差「145」と計算されていることを示している。
図20では、作成されたボリュームが運用されている期間(運用中)の標準偏差テーブルを示している。図19と比較し、エントリー2001から2006が増えている。標準偏差も時間の経過とともに増加している状態である。
図21は、データ改竄後の標準偏差テーブルを示している。エントリー2101までは、標準偏差は増加しているが、エントリー2102から減少に転じている。エントリー2103、エントリー2104では標準偏差の減少率は増加している。エントリー2101までは、対象ボリュームに対し、仮想アドレスに対する書込み時間のバラつきが増加しているため、通常の動作を行っていると推測され、エントリー2102の計算開示時刻「2018−02−23T11:40:10Z」で、標準偏差が減少しているから、この時点からウィルスにより、不正な書き込みが開示されていると推測される。
以上の通り、本実施例では、標準偏差の変化からエントリー2101の時点をリストア時刻としてユーザに提案することで、複数のスナップショットを繰り返し、選択し、検証する従来の技術より、改竄前のデータへの復旧を早期に行うことができる。
また、対象ボリュームの性能情報としてIOPSを監視することで、より詳細にデータ改竄時期を特定することができる。
さらに、本実施例では、ストレージシステムの対象ボリュームに対する書込み時間を利用した標準偏差を求めることで、データ改竄前の時間を特定できるので、追加のアプライアンスやサーバへのアプリケーションの導入等の必要がない。
10:業務サーバ、
20:管理クライアント、
30:ストレージシステム、
301:NIC、
302:ポート、
304:コントローラ、
305:CPU、
306:メモリ、
307:記憶装置、
400:ストレージ機能プログラム、
401:最終データ格納時刻テーブル、
402:標準偏差テーブル、
403:計算間隔テーブル、
404:標準偏差計算プログラム、
405:標準偏差計算時刻監視プログラム、
406:最終データ格納時刻更新プログラム、
407:性能情報監視プログラム、
408:時刻提案プログラム。

Claims (8)

  1. 計算機と接続され、前記計算機からのIO要求を処理するコントローラと、前記IO要求に応じてデータを読み書きする記憶装置とを有するストレージシステムにおいて、
    前記コントローラは、
    前記記憶装置により構成されるボリュームを構成し、
    前記計算機から前記ボリュームの仮想アドレスにデータが格納された時間を管理し、
    前記ボリュームの仮想アドレスに対する書込み時間のバラつきを示す標準偏差を計算し、
    前記標準偏差の値が減少を開始するタイミングをリストア時間として出力することを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムにおいて、
    前記コントローラは、複数のボリュームを構成し、
    前記複数のボリューム毎に、ボリュームの仮想アドレスにデータが格納された時間を管理し、
    前記複数のボリューム毎に、ボリュームの仮想アドレスに対する書込み時間のバラつきを示す標準偏差を計算し、
    前記複数のボリューム毎に、前記標準偏差の値が減少を開始するタイミングをリストア時間として出力することを特徴とするストレージシステム。
  3. 請求項1に記載のストレージシステムにおいて、
    前記コントローラは、前記仮想アドレスの最終書込み時刻と前記ボリュームのデータが格納されている全仮想アドレスの最終書込み時刻の平均値とに基づいて、前記標準偏差を計算することを特徴とするストレージシステム。
  4. 請求項1に記載のストレージシステムにおいて、
    前記コントローラは、
    前記ボリュームの複数時点の複数のスナップショットを生成し、
    前記複数のスナップショットの内、前記リストア時間の直前のスナップショットを選択
    して、前記ボリュームのデータをリストアすることを特徴とするストレージシステム。
  5. 計算機と接続され、前記計算機からのIO要求を処理するコントローラと、前記IO要求に応じてデータを読み書きする記憶装置とを有するストレージシステムにおいて、
    前記コントローラは、
    前記記憶装置により構成されるボリュームを構成し、
    前記計算機から前記ボリュームの仮想アドレスにデータが格納された時間を管理し、
    前記ボリュームの仮想アドレスに対する書込み時間のバラつきを示す標準偏差を計算し、
    前記ボリュームに対するIOPSを監視し、
    前記標準偏差の値が減少を開始し、前記IOPSが増加するタイミングをリストア時間として出力することを特徴とするストレージシステム。
  6. 請求項5に記載のストレージシステムにおいて、
    前記コントローラは、
    前記標準偏差と、前記IOPSを表示するよう出力することを特徴とするストレージシステム。
  7. 請求項4に記載のストレージシステムにおいて、
    前記コントローラに接続された表示部を有し、
    前記表示部は、
    前記ボリュームに対する前記標準偏差と前記コントローラにより監視される前記ボリュームに対するIOPSを時系列で表示するグラフと、
    前記複数のスナップショットの選択画面とを表示することを特徴とするストレージシステム。
  8. 請求項1に記載のストレージシステムにおいて、
    前記コントローラは、前記ボリュームの標準偏差の計算を開始した計算開始時刻に対応して、標準偏差の値を記憶するメモリを有することを特徴とするストレージシステム。
JP2019080055A 2019-04-19 2019-04-19 ストレージシステム、及びデータの回復方法 Active JP6875449B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019080055A JP6875449B2 (ja) 2019-04-19 2019-04-19 ストレージシステム、及びデータの回復方法
US16/795,777 US11175830B2 (en) 2019-04-19 2020-02-20 Storage system and data restoration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019080055A JP6875449B2 (ja) 2019-04-19 2019-04-19 ストレージシステム、及びデータの回復方法

Publications (2)

Publication Number Publication Date
JP2020177502A JP2020177502A (ja) 2020-10-29
JP6875449B2 true JP6875449B2 (ja) 2021-05-26

Family

ID=72832414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019080055A Active JP6875449B2 (ja) 2019-04-19 2019-04-19 ストレージシステム、及びデータの回復方法

Country Status (2)

Country Link
US (1) US11175830B2 (ja)
JP (1) JP6875449B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221185B1 (en) 2005-02-01 2007-05-22 Altera Corporation Method and apparatus for memory block initialization
US7111136B2 (en) 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
JP2008140300A (ja) * 2006-12-05 2008-06-19 Hitachi Ltd ストレージシステム及びウィルス感染拡散防止方法並びにウィルス除去支援方法
JP5454363B2 (ja) * 2010-06-02 2014-03-26 富士通株式会社 解析プログラム、解析装置および解析方法
US11580221B2 (en) * 2016-12-29 2023-02-14 Dropbox, Inc. Malware detection and content item recovery
US10650146B1 (en) * 2018-12-12 2020-05-12 Cohesity, Inc. Malicious software detection

Also Published As

Publication number Publication date
US11175830B2 (en) 2021-11-16
JP2020177502A (ja) 2020-10-29
US20200333963A1 (en) 2020-10-22

Similar Documents

Publication Publication Date Title
US10642633B1 (en) Intelligent backups with dynamic proxy in virtualized environment
US8688932B2 (en) Virtual computer system and method of controlling the same
US9652271B2 (en) Autonomously managed virtual machine anti-affinity rules in cloud computing environments
US9274714B2 (en) Method and system for managing storage capacity in a storage network
US9442809B2 (en) Management computer used to construct backup configuration of application data
US8448167B2 (en) Storage system, and remote copy control method therefor
US8495294B2 (en) Management computer for managing storage system capacity and storage system capacity management method
JP2013509658A (ja) 将来の使用推量に基づく記憶メモリの割り当て
CN106776147B (zh) 一种差异数据备份方法和差异数据备份装置
US10001926B2 (en) Management of extents for space efficient storage volumes by reusing previously allocated extents
US20070294568A1 (en) Storage system and method of managing data using the same
US11068188B2 (en) Monitored migration of copies of volumes of data between clusters of a virtual tape library system
US9594796B2 (en) Storage apparatus and data management method
US10204021B2 (en) Recovery of an infected and quarantined file in a primary storage controller from a secondary storage controller
JP2016519364A (ja) データパス関連プラグインの配備
CN111066005A (zh) 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新
KR20230170024A (ko) 구역 세그먼트 드라이브 관리
US11644997B2 (en) Releasing data storage tracks while maintaining logical corruption protection
JP6875449B2 (ja) ストレージシステム、及びデータの回復方法
US8914336B2 (en) Storage device and data storage control method
US9626117B2 (en) Computer system and management method for computer system
US8645659B1 (en) Method for managing volumes/snapshots in pools of external virtual memory
JP6886110B2 (ja) 情報処理装置及びプログラム
US11675539B2 (en) File system operations for a storage supporting a plurality of submission queues
US20220407770A1 (en) Blockchain system, program and network connection apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210301

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210422

R150 Certificate of patent or registration of utility model

Ref document number: 6875449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE

Ref document number: 6875449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350