JP3953986B2 - ストレージ装置、及びストレージ装置の制御方法 - Google Patents

ストレージ装置、及びストレージ装置の制御方法 Download PDF

Info

Publication number
JP3953986B2
JP3953986B2 JP2003185305A JP2003185305A JP3953986B2 JP 3953986 B2 JP3953986 B2 JP 3953986B2 JP 2003185305 A JP2003185305 A JP 2003185305A JP 2003185305 A JP2003185305 A JP 2003185305A JP 3953986 B2 JP3953986 B2 JP 3953986B2
Authority
JP
Japan
Prior art keywords
storage
volume
data
storage volume
storage area
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.)
Expired - Fee Related
Application number
JP2003185305A
Other languages
English (en)
Other versions
JP2005018612A5 (ja
JP2005018612A (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 JP2003185305A priority Critical patent/JP3953986B2/ja
Priority to US10/658,395 priority patent/US7032091B2/en
Publication of JP2005018612A publication Critical patent/JP2005018612A/ja
Publication of JP2005018612A5 publication Critical patent/JP2005018612A5/ja
Application granted granted Critical
Publication of JP3953986B2 publication Critical patent/JP3953986B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Description

【0001】
【発明の属する技術分野】
本発明は、ストレージ装置、及びストレージ装置の制御方法に関する。
【0002】
【従来の技術】
コンピュータシステムにおいては、ストレージ装置に記憶されるデータをバックアップする場合など、元のデータを記憶した記憶ボリュームの複製を生成する場合がある。この場合、元のデータを記憶した記憶ボリュームと複製データを記憶した記憶ボリュームとは内容が一致し整合性が保たれる必要がある。そのためには複製の生成が完了するまでの間、元のデータを記憶した記憶ボリュームの更新を停止させる必要がある。しかし高可用性が求められるコンピュータシステムなどでは、元のデータを記憶した記憶ボリュームに対するアクセスを停止することができない場合がある。
【0003】
そこで、元のデータを記憶した記憶ボリュームと複製データを記憶した記憶ボリュームとの間である時点での整合性を保ち、ある時点の後に元のデータが更新されたとしてもある時点の元のデータを参照できるようにすることができるスナップショットと呼ばれる技術が開発されている。
【0004】
スナップショットの技術によれば、整合性を保つべき時点の後に元のデータが更新される場合には、整合性を保つべき時点のデータを別の記憶ボリュームに記憶するようにする。つまり元のデータは、更新されなければそのままであり、更新される場合には整合性を保つべき時点のデータが別の記憶ボリュームに記憶される。
【0005】
【特許文献1】
特開2001−306407号公報
【0006】
【発明が解決しようとする課題】
しかしながら、通常、上記別の記憶ボリュームとして用意される記憶容量は、コスト抑制等のため元のデータが記憶される記憶ボリュームの記憶容量よりも小さい。
そのため従来のスナップショットの制御においては、元のデータを記憶した記憶ボリュームと複製データを記憶した記憶ボリュームとの整合性を保つことができる期間は、元のデータの更新頻度と上記別の記憶ボリュームの記憶容量と依存していた。
【0007】
本発明は上記課題を鑑みてなされたものであり、ストレージ装置、及びストレージ装置の制御方法を提供することを主たる目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るストレージ装置は、データを記憶するための第1、第2、及び第3の記憶ボリュームと、仮想的な記憶ボリュームと、制御装置と、を備えるストレージ装置であって、前記制御装置は、情報処理装置から、ある時点の後に、前記第1の記憶ボリュームに記憶される前記ある時点におけるデータの更新要求を受信する手段と、前記ある時点における更新前の前記データの複製を前記第2の記憶ボリュームに記憶する手段と、前記第2の記憶ボリュームの未使用の記憶領域の記憶容量が判定値よりも小さい場合には、前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域に記憶する手段と、前記仮想的な記憶ボリュームにおける各記憶領域と、前記各記憶領域のデータを実際に記憶する前記第1、第2、第3の記憶ボリュームにおける各記憶領域との間の対応付けを管理するS−VOL変換テーブルと、前記第1の記憶ボリュームの各記憶領域に記憶されているデータの有効性と、前記仮想的な記憶ボリュームの各記憶領域に記憶されているデータの有効性と、を示すスナップショット管理テーブルと、を備え、前記情報処理装置から前記仮想的な記憶ボリュームに対するデータの読み出し要求を受信すると、前記スナップショット管理テーブルを参照し、前記第1の記憶ボリュームに記憶されているデータが有効であり、前記仮想的な記憶ボリュームに記憶されているデータが無効である場合には、前記第1の記憶ボリュームからデータを読み出し、前記仮想的な記憶ボリュームに記憶されているデータが有効である場合には、前記S−VOL変換テーブルにより特定される、前記第1、第2、第3の記憶ボリュームのいずれかの記憶領域から、データを読み出すことを特徴とするストレージ装置に関する。
【0009】
これにより、例えば第2の記憶ボリューム(別の記憶ボリューム)の未使用記憶領域の記憶容量が判定値よりも小さくなった場合でも、第3の記憶ボリュームに前記データの複製を記憶させることにより、元のデータを記憶した記憶ボリュームと複製データを記憶した記憶ボリュームとの整合性を保つことができるようになる。また第1の記憶ボリュームに記憶されるデータに対する更新頻度に依存せずに、元のデータを記憶した記憶ボリュームと複製データを記憶した記憶ボリュームとの整合性を維持することができるようになる。
【0010】
ここで、記憶ボリュームとは、ハードディスク装置や半導体記憶装置等により構成されるディスクドライブにより提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む記憶リソースである。またスペアディスクを記憶ボリュームとして使用することも可能である。
【0011】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
===全体構成例===
まず、本実施の形態に係るストレージ装置200を含む情報処理システムの全体構成を示すブロック図を図1に示す。本実施の形態に係る情報処理システムは情報処理装置1(100)、情報処理装置2(100)、ストレージ装置200、管理用装置250を備えている。
【0013】
===情報処理装置===
情報処理装置1(100)、情報処理装置2(100)はCPU(Central Processing Unit)やメモリを備えたコンピュータである。情報処理装置100が備えるCPUにより各種プログラムが実行されることにより、様々な機能が実現される。情報処理装置100は例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等における中枢コンピュータとして利用される。情報処理装置100はメインフレームコンピュータとすることもできるし、パーソナルコンピュータとすることもできる。
【0014】
また情報処理装置100はストレージ装置200と通信可能に接続されており、ストレージ装置200に対してデータ入出力要求を送信する。データ入出力要求としては例えばデータの読み出し要求や書き込み要求(更新要求)などである。これにより情報処理装置100はストレージ装置200に記憶されているデータの読み出しや書き込みを行う。
【0015】
また情報処理装置100はストレージ装置200に対してストレージ装置200を管理するための各種コマンドの送信も行うようにすることができる。ストレージ装置200を管理するためのコマンドとしては、例えば後述するスナップショットコマンド等である。なお、情報処理装置100は2台に限られず1台とすることもできるし、3台以上とすることもできる。
【0016】
===ストレージ装置===
ストレージ装置200は、制御装置210、プライマリボリューム(第1の記憶ボリューム)220、セカンダリボリューム230、差分ボリューム(第2の記憶ボリューム)240を備えている。またストレージ装置200は管理用装置250に通信可能に接続されている。
【0017】
===記憶ボリューム===
プライマリボリューム220、差分ボリューム240は、データを記憶するための記憶ボリュームである。記憶ボリュームとは、ストレージ装置200が備えるハードディスク装置や半導体記憶装置等により構成されるディスクドライブにより提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む記憶リソースである。
【0018】
一方セカンダリボリューム230は、ストレージ装置200が仮想的に備える記憶ボリュームである。情報処理装置100はセカンダリボリューム230があたかも存在しているかのように、セカンダリボリューム230に対して例えばデータの読み出し要求を送信する。例えば図3に示すように、情報処理装置2(100)はセカンダリボリューム230から読み出したデータをテープ300等に記録しておくようにすることができる。
【0019】
===スナップショット制御===
この場合ストレージ装置200は、セカンダリボリューム230から読み出されるデータを、情報処理装置100から送信されるスナップショットコマンドに応じて制御することができる。すなわちストレージ装置200は、スナップショットコマンドに応じて、プライマリボリューム220に記憶されているデータと同一内容のデータがセカンダリボリューム230から読み出されるように制御することもできるし、ある時点のプライマリボリューム220に記憶されているデータがセカンダリボリューム230から読み出されるように制御することもできる。この制御をスナップショット制御と呼ぶ。ある時点とは、例えばストレージ装置200がスナップショットコマンドを受信した時点とすることもできるし、スナップショットコマンドにより指示された時刻とすることもできる。
【0020】
前者の場合、すなわちセカンダリボリューム230から読み出されるデータを、プライマリボリューム220に記憶されているデータと同一内容のデータとする場合には、例えば情報処理装置1(100)がプライマリボリューム220に記憶されるデータを更新すると、ストレージ装置200は更新後のデータがセカンダリボリューム230にも反映されるように制御する。このときに情報処理装置2(100)からセカンダリボリューム230に記憶されているデータの読み出し要求を受信すると、ストレージ装置200はプライマリボリューム220に記憶されているデータを情報処理装置2(100)に送信する。これにより、情報処理装置100はセカンダリボリューム230からデータを読み出すことにより、プライマリボリューム220と同一のデータを取得することができる。
【0021】
一方後者の場合、すなわちセカンダリボリューム230から読み出されるデータを、ある時点のプライマリボリューム220に記憶されているデータとする場合には、例えば情報処理装置1(100)がプライマリボリューム220に記憶されるデータを更新すると、ストレージ装置200はプライマリボリューム220に記憶されていた更新前のある時点のデータを差分ボリューム240に記憶するように制御する。このときに情報処理装置2(100)からセカンダリボリューム230に記憶されている当該データに対する読み出し要求を受信すると、ストレージ装置200は差分ボリューム240に記憶されているデータを情報処理装置2(100)に送信する。これにより、情報処理装置100はセカンダリボリューム230からデータを読み出すことにより、プライマリボリューム220の更新有無に拘わらず、プライマリボリューム220のある時点のデータを取得することができる。なおこの場合、プライマリボリューム220に記憶される同一のデータが複数回更新されても、差分ボリューム240に記憶されるのは、ある時点のデータだけである。これにより、プライマリボリューム220には最新のデータが記憶され、差分ボリューム240にはある時点のデータが保持されることになる。またストレージ装置200が情報処理装置1(100)からプライマリボリューム220に記憶されるデータの更新要求を受信した場合に、更新後のデータを差分ボリューム240に記憶するようにすることもできる。この場合プライマリボリューム220には更新前のある時点のデータが記憶されることになる。
以上の処理の様子を示した図を図4に示す。
【0022】
なお上述の後者の場合には、プライマリボリューム220に記憶されるデータが更新されるにつれ、差分ボリューム240に記憶されるプライマリボリューム220のある時点のデータが増加する。そのため図7に示すように、差分ボリューム240の未使用記憶領域の記憶容量がなくなってしまった場合には、プライマリボリューム220に記憶されるある時点のデータの更新要求を受信しても、ストレージ装置200は、更新前のある時点のデータを差分ボリューム240に記憶することができない。
【0023】
本実施の形態においては、そのような場合には図8に示すように、差分ボリューム240とは別の他の記憶ボリューム(第3の記憶ボリューム)241を差分ボリューム240として使用し、その未使用記憶領域にプライマリボリューム220の更新前のある時点のデータを記憶するようにする。これにより、差分ボリューム240の未使用記憶領域の記憶容量が少なくなった場合であっても、ある時点のプライマリボリューム220のデータを保持し続けることができる。
【0024】
例えば図3に示したように、情報処理装置2(100)がセカンダリボリューム240に記憶されているデータを読み出してテープ300に書き込むことによりプライマリボリューム220のある時点のデータに対するバックアップ処理を行う場合に、ストレージ装置200は、差分ボリューム240の状態に応じて、プライマリボリューム220に記憶されているある時点のデータの複製を、差分ボリューム240には記憶せずに、他の記憶ボリューム241の未使用記憶領域に記憶する。これにより、プライマリボリューム220のある時点のデータに対するバックアップ処理を継続することができるようになる。なお、差分ボリューム240の状態に応じてとは、差分ボリューム240の未使用記憶領域の記憶容量が判定値よりも小さくなった場合の他、未使用記憶領域の記憶容量の総記憶容量に対する割合が判定値よりも小さくなった場合や、使用済み記憶容量が判定値よりも大きくなった場合、あるいは使用済み記憶容量の総記憶容量に対する割合が判定値よりも大きくなった場合等も含む。
【0025】
===制御装置===
制御装置210は本実施の形態に係る各種制御を実行するための手段として機能する。制御装置の構成を示すブロック図を図2に示す。
本実施の形態においては、制御装置210は、CPU(Central Processing Unit)211、メモリ212、ホストI/F(InterFace)213、ディスクI/F214、内部I/F215を備えている。
【0026】
CPU211は制御装置210の全体の制御を司るものであり、メモリ212に記憶されたスナップショット制御プログラム800を実行する。メモリ212に記憶されたスナップショット制御プログラム800がCPU211により実行されることにより本実施の形態に係るスナップショット制御が行われる。
【0027】
メモリ212にはスナップショット制御プログラム800、スナップショット管理テーブル400、S−VOL(Secondary VOLume)変換テーブル500、ボリューム管理テーブル600、差分ボリューム管理テーブル700、フォーマット管理テーブル900が記憶されている。これらについては後述する。
【0028】
ホストI/F213は情報処理装置100と通信を行うための通信インタフェースとして機能する。情報処理装置100とストレージ装置200との間で行われる通信は、様々な通信プロトコルに従って行うようにすることができる。例えば、ファイバチャネルやSCSI(Small Computer System Interface)、FICON(Fibre Connection)(登録商標)、ESCON(Enterprise System Connection) (登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)、TCP/IP(Transmission Control Protocol/Internet Protocol)等である。これらの通信プロトコルを混在させるようにすることもできる。例えば情報処理装置1(100)との間の通信はファイバチャネルで行い、情報処理装置2(100)との間の通信はTCP/IPで行うようにすることもできる。情報処理装置100がメインフレームコンピュータである場合には、例えばFICONやESCON、ACONARC、FIBARCが用いられる。また情報処理装置100がオープン系の計算機である場合には、例えばファイバチャネルやSCSI、TCP/IPが用いられる。なお、情報処理装置100からのデータ入出力要求は、記憶ボリュームにおけるデータの管理単位であるブロックを単位として行うようにすることもできるし、ファイル名を指定することによりファイル単位に行うようにすることもできる。後者の場合にはストレージ装置200は、情報処理装置100からのファイルレベルでのアクセスを実現するNAS(Network Attached Storage)として機能する。
【0029】
ディスクI/F214は記憶ボリュームに対するデータ入出力制御を行うための通信インタフェースとして機能する。
内部I/F215は管理用装置215と通信を行うための通信インタフェースとして機能する。またストレージ装置200には複数の制御装置210が備えられるようにすることができる。この場合には、内部I/F215は他の制御装置210との間で通信を行うための通信インタフェースとして機能するようにすることもできる。
【0030】
===管理用装置===
図1に戻って、管理用装置250はストレージ装置200を保守・管理するために用いられるコンピュータである。管理用装置250を操作することにより、例えばディスクドライブの設定や、記憶ボリュームの設定、制御装置210において実行されるスナップショット制御プログラム800のインストール等を行うことができる。また管理用装置250は記録媒体読み取り装置を備えており、記録媒体読み取り装置を用いて、スナップショット制御プログラム800が記録された記録媒体からスナップショット制御プログラム800を読み取るようにすることもできる。
【0031】
またスナップショットコマンドは管理用装置250からストレージ装置200に送信されるようにすることもできる。管理用装置250はストレージ装置200に外付けされている形態とすることもできるし、内蔵されている形態とすることもできる。また管理用装置250が備える機能を情報処理装置100が備えるようにすることもできる。
【0032】
===スナップショット管理テーブル、S−VOL変換テーブル===
次にスナップショット管理テーブル400について図5を用いて説明する。スナップショット管理テーブル400は、上述したスナップショット制御を行うために用いられるテーブルである。情報処理装置100からセカンダリボリューム230に対してデータ入出力要求があった場合に、CPU211がスナップショット管理テーブル400を参照することにより、そのデータ入出力要求に対して、プライマリボリューム220にアクセスすべきなのか、差分ボリューム240にアクセスすべきなのかを知ることができる。スナップショット管理テーブル400は、図5に一例として示すビットマップに限らず、リスト構造や、物理アドレスを示すポインタ等とすることもできる。スナップショット管理テーブル400は、管理情報または制御情報として、以下に説明するようなプライマリボリューム220とセカンダリボリューム230との対応付けの管理又は制御のために用いることができるものであれば、どのような態様とすることもできる。
【0033】
スナップショット管理テーブル400において、プライマリボリュームBM(P)410はプライマリボリューム220のデータの保持状態を示し、セカンダリボリュームBM(S)420はセカンダリボリューム230のデータの保持状態を示す。具体的には、プライマリボリュームBM(P)410又はセカンダリボリュームBM(S)420のそれぞれにおいて、ビットの値が”0”の場合は、当該データが有効であることを示す。またビットの値が”1”の場合は、当該データが無効であることを示す。
【0034】
なお、ビットマップ上の各ビットの指定は、プライマリボリュームBM(P)410においては(xpi、ypj)(i、j=1、2、…)、セカンダリボリュームBM(S)420においては(xsi、ysj)(i、j=1、2、…)を指定することにより行われる。
【0035】
プライマリボリュームBM(P)410及びセカンダリボリュームBM(S)420のそれぞれのビットマップ上の対応するビットは、プライマリボリューム220及びセカンダリボリューム230のそれぞれ対応する記憶領域に対応する。プライマリボリュームBM(P)410、及びセカンダリボリュームBM(s)420のそれぞれのビットの値は、プライマリボリューム220及びセカンダリボリューム230上のデータの記憶単位であるブロック、ないしトラックなどのデータの状態に対応する。例えば各ビットが1トラックに対応する場合、(xpi,ypj)で特定されるビットの値は、例えばプライマリボリューム220のシリンダ番号xpi、ヘッド番号ypjで一意に定められるトラックのデータの状態を示す。なお、セカンダリボリューム230は仮想的な記憶ボリュームであるので、実際のデータはプライマリボリューム220や差分ボリューム240、他の記憶ボリューム241に記憶されている。そのためセカンダリボリューム230に対するデータ入出力要求があった場合には、図6に示すS−VOL変換テーブルにより、セカンダリボリューム230における仮想的な記憶領域を示す(xsi、ysj)(i、j=1、2、…)をプライマリボリューム220、差分ボリューム240、又は他の記憶ボリューム241における実際の記憶領域を示す(xsi’、ysj’)(i’、j’=1、2、…)に変換して、データ入出力処理が行われる。
【0036】
上述したように、プライマリボリュームBM(P)410、又はセカンダリボリュームBM(S)420において、ビットの値が”0”の場合は当該データが有効であることを示し、ビットの値が”1”の場合は当該データが無効であることを示す。例えば図5に示すように、プライマリボリュームBM(P)410上のビットの値が全て”0”であり、セカンダリボリュームBM(S)420上のビットの値が全て”1”である場合には、情報処理装置100からセカンダリボリューム230にデータの読み出し要求があると、ストレージ装置200は、プライマリボリューム220からデータを読み出して情報処理装置100に送信する。つまりストレージ装置200は、プライマリボリュームBM(P)410上のビットの値を全て”0”とし、セカンダリボリュームBM(S)420上のビットの値を全て”1とすることにより、プライマリボリューム220の複製をセカンダリボリューム230に記憶しているかのように制御を行うことができる。
【0037】
一方、ストレージ装置200が情報処理装置100からスナップショットコマンドを受信し、ある時点のプライマリボリューム220のデータの複製がセカンダリボリューム230に記憶されているかのように制御する場合には、ある時点の後に情報処理装置100からプライマリボリューム220のデータに対する更新要求を受信すると、更新前のある時点のデータを差分ボリューム240に記憶し、更新後のデータをプライマリボリューム220に記憶すると共に、プライマリボリュームBM(P)410、及びセカンダリボリュームBM(S)420のビットの値をどちらも”0”に更新する。この場合にプライマリボリューム220に対するデータ読み出し要求があった場合には、プライマリボリューム220から更新後のデータが読み出され、セカンダリボリューム230に対するデータ読み出し要求があった場合には、プライマリボリューム220からではなく、差分ボリューム240または他の記憶ボリューム241から更新前のある時点のデータが読み出される。
【0038】
もちろん、上記のようにある時点のプライマリボリューム220のデータの複製がセカンダリボリューム230に記憶されているかのように制御する場合であっても、プライマリボリューム220のデータに対する更新要求を受信していない場合には、ある時点のデータはプライマリボリューム220に記憶されたままであるので、プライマリボリュームBM(P)410の当該データに対するビットの値は”0”であり、セカンダリボリュームBM(S)420の当該データに対するビットの値は”1である。従って、この場合に情報処理装置100からセカンダリボリューム230にデータの読み出し要求があった場合には、ストレージ装置200は、プライマリボリューム220からデータを読み出して情報処理装置100に送信する。
【0039】
このように、ストレージ装置200は、スナップショット管理テーブル400を参照することにより、情報処理装置100からセカンダリボリューム230にデータ入出力要求があった場合に、プライマリボリューム220からデータを読み出すべきなのか、差分ボリューム240からデータを読み出すべきなのかを知ることができる。
【0040】
なおスナップショット管理テーブル400は、制御装置210内のメモリ212上に設けられる制御情報として重要であり、メモリ212が揮発性メモリの場合は、不揮発性メモリにスナップショット管理テーブル400のバックアップを取っておくようにすることもできる。またスナップショット管理テーブル400をストレージ装置200が備える記憶ボリュームに記憶するようにすることもできる。後述するその他の各テーブルについても同様である。
【0041】
===ボリューム管理テーブル、差分ボリューム管理テーブル===
次に、本実施の形態に係るボリューム管理テーブル600について図9を用いて説明する。ボリューム管理テーブル600は、ストレージ装置200が備える記憶ボリュームを管理するためのテーブルである。
【0042】
ボリューム管理テーブル600は、”LUN”欄、”記憶容量”欄、”空き容量”欄、”スナップショット用ボリューム管理”欄、”用途”欄を備える。”スナップショット用ボリューム管理”欄は、さらに”ボリューム種別”欄、”ペアボリュームNO”欄、”差分ボリュームNO”欄、”差分ボリューム使用可否”欄を備える。
”LUN”欄は、記憶ボリュームを識別するための番号である。例えば管理用装置250等を用いて記憶ボリュームを設定する際に付与される。
”記憶容量”欄は、記憶ボリュームの総記憶容量を示す。”記憶容量”欄に「−」と記載されている記憶ボリュームは、ストレージ装置200が仮想的に備える記憶ボリュームであることを示す。
”空き容量”欄は、記憶ボリュームの未使用記憶領域の記憶容量を示す。”記憶容量”欄に「−」と記載されている記憶ボリュームは、”空き容量”欄も「−」と記載されている。
【0043】
”ボリューム種別”欄は、当該記憶ボリュームが、スナップショット制御においてプライマリボリューム220して用いられるのか、セカンダリボリューム230として用いられるのか、差分ボリューム240として用いられるのかを示す。「P」と記載されている場合はプライマリボリューム220として用いられる記憶ボリュームであることを示す。「S」と記載されている場合はセカンダリボリューム230として用いられる記憶ボリュームであることを示す。「差分」と記載されている場合は差分ボリューム240として用いられる記憶ボリュームであることを示す。「−」と記載されている場合はスナップショット制御の対象ではない記憶ボリュームであることを示す。なお上述したように、セカンダリボリューム230はストレージ装置200が仮想的に備える記憶ボリュームであるから、”ボリューム種別”欄が「S」である記憶ボリュームについては、”記憶容量”欄、”空き容量”欄には「−」と記されている。
【0044】
”ペアボリュームNO”欄には、プライマリボリューム220またはセカンダリボリューム230の、それぞれのセカンダリボリューム230またはプライマリボリューム220のLUNが記載される。
【0045】
”差分ボリュームNO”欄にはプライマリボリューム220に対する差分ボリューム240のLUNが記載される。図9に示す例では、LUN=1のプライマリボリューム220に対する差分ボリューム240はLUN=6である。またLUN=3のプライマリボリューム220に対する差分ボリューム240はLUN=5及びLUN=9である。ここでLUN=5の”空き容量”欄に着目すると、0GB(Giga Byte)と記載されている。つまり差分ボリューム240の記憶領域を使いきってしまっている状態であることが分かる。そのため、LUN=9の未使用記憶領域を差分ボリューム240として使用することにより、プライマリボリューム220(LUN=3)のある時点のデータの記憶を継続して行うようにしている。
【0046】
”差分ボリューム使用可否”欄は、当該記憶ボリュームについて差分ボリューム240としての使用を許可するかどうかを示す欄である。「○」と記載されている場合は、当該記憶ボリュームは差分ボリューム240として使用されることが許可されていることを表す。「−」と記載されている場合には、当該記憶ボリュームは差分ボリューム240として使用されることが許可されていないことを表す。例えばLUN=6の空き容量は現在は100GBあるが、将来0GBになった場合には他の記憶ボリューム241の未使用記憶領域を差分ボリューム240として使用することになる。その際”差分ボリューム使用可否”欄に「○」が記載されている記憶ボリュームの中から他の記憶ボリューム241が選定される。
【0047】
なお差分ボリューム240として使用する他の記憶ボリューム241の選定は、図10に示す差分ボリューム管理テーブル700を参照して行うようにすることもできる。差分ボリューム管理テーブル700は、プライマリボリューム220毎に差分ボリューム240の候補となる記憶ボリュームが記載されたものである。差分ボリューム管理テーブル700は、例えば管理用装置250が備えるユーザインタフェースからオペレータ等により入力された差分ボリューム240の候補を指定するための情報に応じて作成されるようにすることができる。
【0048】
差分ボリューム240として使用する他の記憶ボリューム241の選定は、差分ボリューム管理テーブル700を参照して行う場合であっても参照せずに行う場合であっても、例えば候補となる記憶ボリュームの中から、空き容量に応じて記憶ボリュームを選定するようにすることもできるし、LUNに応じて記憶ボリュームを選定するようにすることもできる。また単位時間当たりのデータ入出力要求の回数に応じて記憶ボリュームを選定するようにすることもできるし、空き容量の総記憶容量に対する割合に応じて記憶ボリュームを選定するようにすることもできる。さらには、例えば管理用装置250が備えるユーザインタフェースから、オペレータ等が差分ボリューム240として使用する記憶ボリュームを指定するための情報を入力することにより、記憶ボリュームを選定するようにすることもできる。
【0049】
”用途”欄は、各記憶ボリュームの使用用途を示す。「DB」と記載されている場合はデータベースアプリケーションにより使用される記憶ボリュームであることを示す。「WEB」と記載されている場合はWEBアプリケーションにより使用される記憶ボリュームであることを示す。「FS」と記載されている場合はオペレーティングシステムにより使用される記憶ボリュームであることを示す。「−」と記載されている場合は特に特定のアプリケーションに使用されている記憶ボリュームではないことを示す。例えばLUN=5は差分ボリューム240としてのみ使用されている。なお、”用途”欄に例えば「DB」と記載されている場合であっても、データベースアプリケーション以外の他のアプリケーションと共用されているようにすることもできる。また各記憶ボリュームは上記以外の用途に使用されるようにすることもできる。
【0050】
図9に示すボリューム管理テーブル600に記載される内容や、図10に示す差分ボリューム管理テーブル700記載される内容は、管理用装置250や情報処理装置100が備えるユーザインタフェースに表示するようにすることができる。例えば差分ボリューム240の空き容量が表示されることにより、オペレータ等は差分ボリューム240の未使用記憶領域の記憶容量を把握することができる。これにより、例えば差分ボリューム240が不足してきたと判断した場合には、差分ボリューム240の記憶領域を使いきってしまう前にディスクドライブを増設して、差分ボリューム240の記憶容量を増やすようにすることもできる。またストレージ装置200が備える記憶ボリュームの設定を変更して差分ボリューム240の記憶容量を増やすようにすることもできる。
【0051】
===プライマリボリュームからのデータの読み出し処理===
次に、本実施の形態に係るプライマリボリューム220からデータを読み出す場合の処理のフローチャートを図11に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるスナップショット制御プログラム800を、CPU211が実行することにより実現される。以下に説明するその他の処理についても同様である。
【0052】
まずストレージ装置200は情報処理装置100からプライマリボリューム220に対するデータの読み出し要求を受信する。そうすると、まずスナップショット管理テーブル400をチェックし、目的のデータをプライマリボリューム220から読み出すべきなのか、セカンダリボリューム230から読み出すべきなのかを判定する(S1000)。プライマリボリュームBM(P)410上のビットの値が”0”であり、セカンダリボリュームBM(S)420上のビットの値が”1”である場合には、プライマリボリューム220に記憶されているデータが有効なデータであるので、S1001において”YES”に進む。そしてプライマリボリューム220から目的のデータを読み出して情報処理装置100に送信する(S1002)。
【0053】
一方、プライマリボリュームBM(P)410上のビットの値が”1”であり、セカンダリボリュームBM(S)420上のビットの値が”0”である場合には、セカンダリボリューム230に記憶されているデータが有効なデータであるので、S1001において”NO”に進む。そしてS−VOL変換テーブル500を参照して目的のデータの記憶位置を取得し(S1003)、差分ボリューム240からデータを読み出して情報処理装置100に送信する(S1004)。
【0054】
===プライマリボリュームへのデータの書き込み処理===
次に、本実施の形態に係るプライマリボリューム220へデータを書き込む場合の処理のフローチャートを図12に示す。
まずストレージ装置200は情報処理装置100からプライマリボリューム220に対するデータの書き込み要求を受信する。そしてスナップショット管理テーブル400をチェックし(S2000)、プライマリボリューム220に記憶されている更新前のデータをセカンダリボリューム230に反映する必要があるのか、ないのかを判定する。例えば、ストレージ装置200がプライマリボリューム220に記憶されているデータと同一内容のデータがセカンダリボリューム230から読み出されるように制御している場合には、更新前のプライマリボリューム220に記憶されているデータをセカンダリボリューム230に反映する必要はない。また、ストレージ装置200がある時点のプライマリボリューム220に記憶されているデータがセカンダリボリューム230から読み出されるように制御している場合には、ある時点のデータがセカンダリボリューム230に未反映であれば反映する必要があるし、反映済みであれば反映する必要はない。
【0055】
プライマリボリューム220のある時点のデータをセカンダリボリューム230に反映する必要がない場合には、S2001において”YES”に進む。そしてプライマリボリューム220にデータを書き込む(S2002)。
一方、プライマリボリューム220のある時点のデータをセカンダリボリューム230に反映する必要がある場合には、S2001において”NO”に進む。そしてボリューム管理テーブル600を参照し、差分ボリューム240の未使用記憶領域の記憶容量すなわち空き容量をチェックする(S2003)。
【0056】
空き容量が規定容量(判定値)以上ある場合には、”YES”に進む(S2004)。そして当該データのセカンダリボリューム230における記憶位置と、差分ボリューム240における記憶位置とをS−VOL変換テーブル500に登録し(S2005)、差分ボリューム240にある時点のプライマリボリューム220のデータの複製を書き込む(S2006)。なお、S2004における空き容量と規定容量との比較において、例えば空き容量が規定容量よりも大きい場合に”YES”に進むようにすることもできる。次に、スナップショット管理テーブル400のプライマリボリュームBM(P)410及びセカンダリボリュームBM(S)420のビットの値を共に”0”に更新し(S2007)、プライマリボリューム220にデータを書き込む(S2002)。
【0057】
S2004において、差分ボリューム240の空き容量が規定容量以上ない場合には、”NO”に進む。この場合は、ある時点のプライマリボリューム220のデータを記憶する差分ボリューム240として使用するための他の記憶ボリューム241を選定することが必要になる。選定は、上述したように例えばボリューム管理テーブル600や差分ボリューム管理テーブル700を参照することにより行うことができる(S2008)。差分ボリューム240として使用するための他の記憶ボリューム241が選定できた場合には、S2009において”YES”に進む。そしてボリューム管理テーブル600の各記憶ボリュームについての情報を更新して(S2010)、S2003に戻る。その後はS2004にて”YES”に進み、上述した各ステップの処理を行って(S2005乃至S2007)、プライマリボリューム220にデータを書き込む(S2002)。
【0058】
なおS2006において、上記選定された他の記憶ボリューム241の未使用記憶領域にある時点のプライマリボリューム220のデータの複製を書き込む場合には、当該未使用記憶領域のうちデータアクセス性能の低い記憶領域に書き込むようにすることもできる。例えばディスクドライブなどでは、ディスクの外周側のトラックほど、1トラックあたりのセクタの数が多いものがある。この場合ディスクの外周側と内周側とではディスクが1回転する時間の間に読み書きすることができるデータ量が異なり、ディスクの内周側ほどデータアクセス性能が低いことになる。ディスクの外周側のようなデータアクセス性能の高い記憶領域は、例えば情報処理装置100が情報処理サービスを提供するためのデータを記憶するために使用するようにし、ディスクの内周側のようなデータアクセス性能の低い記憶領域は、本実施の形態におけるプライマリボリューム220のある時点のデータを記憶するために使用するようにする。これにより、他の記憶ボリューム241の未使用記憶領域にある時点のプライマリボリューム220のデータの複製を書き込むようにしても、他の記憶ボリューム241を用いて提供される本来の情報処理サービスに与える影響を抑制することができる。なお、記憶ボリュームのうちデータアクセス性能の低い記憶領域は、例えば上述したトラック番号により識別することができる。またデータの記憶アドレスやセクタ番号等によっても識別することができる。
【0059】
一方、S2008において差分ボリューム240として使用するための他の記憶ボリューム241が選定できなかった場合には、S2009において”NO”に進む。差分ボリューム240として使用するための他の記憶ボリューム241が選定できなかった場合とは、例えば差分ボリューム240として使用可能な記憶ボリュームがボリューム管理テーブル600に登録されていない場合や、差分ボリューム管理テーブル700に差分ボリューム候補が登録されていない場合、あるいは差分ボリューム240として使用可能な全ての記憶ボリュームを既に差分ボリューム240として使用してしまっている場合などである。続いてS2011にて、差分ボリューム240の未使用記憶領域に、ある時点のプライマリボリューム220のデータをまだ書き込めるだけの記憶容量が残っているかどうかを判定し、まだ残っている場合には”NO”に進む。そして例えば管理用装置250が備えるユーザインタフェースに警告を表示する(S2012)。警告が表示されることにより、ストレージ装置200を管理するオペレータは、差分ボリューム240を使い切ってしまう前に対策を行うことが可能となる。例えばディスクドライブを増設して差分ボリューム240の記憶容量を増やすようにすることもできる。あるいはスナップショットコマンドをストレージ装置200に送信して、ある時点のプライマリボリューム220のデータの維持を中止するようにすることもできる。
【0060】
S2011にて、差分ボリューム240の未使用記憶領域に、ある時点のプライマリボリューム220のデータをまだ書き込めるだけの記憶容量が残っていない場合には”YES”に進む。そして例えば管理用装置250が備えるユーザインタフェースに警告を表示し(S2013)、ある時点のプライマリボリューム220のデータの維持を中止する(S2014)。これにより差分ボリューム240に記憶されているある時点のプライマリボリューム220のデータが無効とされる。スナップショット管理テーブル400のプライマリボリュームBM(P)410のビットが”0”に更新され、セカンダリボリュームBM(S)420のビットの値が”1”に更新される。そしてプライマリボリューム220にデータを書き込む(S2002)。
【0061】
===セカンダリボリュームからのデータの読み出し処理===
次に、本実施の形態に係るセカンダリボリューム230からデータを読み出す場合の処理のフローチャートを図13に示す。
まずストレージ装置200は情報処理装置100からセカンダリボリューム230に対するデータの読み出し要求を受信する。そうすると、まずスナップショット管理テーブル400をチェックし、目的のデータをプライマリボリューム220から読み出すべきなのか、セカンダリボリューム230から読み出すべきなのかを判定する(S3000)。プライマリボリュームBM(P)410上のビットの値が”0”であり、セカンダリボリュームBM(S)420上のビットの値が”1”である場合には、プライマリボリューム220に記憶されているデータが有効なデータであるので、S3001において”NO”に進む。そしてスナップショット管理テーブル400を参照して、セカンダリボリューム230の当該データに対応するプライマリボリューム220の記憶位置を特定し(S3004)、プライマリボリューム220から目的のデータを読み出して情報処理装置100に送信する(S3005)。
【0062】
一方、プライマリボリュームBM(P)410上のビットの値が”1”であり、セカンダリボリュームBM(S)420上のビットの値が”0”である場合、又はどちらの値も”0”であるには、セカンダリボリューム230に記憶されているデータが有効なデータであるので、S3001において”YES”に進む。そしてS−VOL変換テーブル500を参照して目的のデータの記憶位置を取得し(S3002)、差分ボリューム240からデータを読み出して情報処理装置100に送信する(S3003)。
【0063】
===セカンダリボリュームへのデータの書き込み処理===
次に、本実施の形態に係るセカンダリボリューム230へデータを書き込む場合の処理のフローチャートを図14に示す。
まずストレージ装置200は情報処理装置100からセカンダリボリューム230に対するデータの書き込み要求を受信する。そしてスナップショット管理テーブル400をチェックし(S4000)、プライマリボリューム220に記憶されている更新前のデータがセカンダリボリューム230に反映済みであるのか、未反映であるのかを判定する。例えば、ある時点のデータがセカンダリボリューム230に未反映であれば反映する必要があるし、反映済みであれば反映する必要はない。
【0064】
プライマリボリューム220のある時点のデータをセカンダリボリューム230に反映済みの場合には、S4001において”YES”に進む。そしてセカンダリボリューム230にデータを書き込む(S4002)。実際には、S−VOL変換テーブル500に記憶されているセカンダリボリューム230に対応する差分ボリューム240における記憶位置にデータを書き込む(S4002)。
一方、プライマリボリューム220のある時点のデータがセカンダリボリューム230に未反映である場合には、S4001において”NO”に進む。そしてボリューム管理テーブル600を参照し、差分ボリューム240の未使用記憶領域の記憶容量すなわち空き容量をチェックする(S4003)。
【0065】
空き容量が規定容量(判定値)以上ある場合には、”YES”に進む(S4004)。そして当該データのセカンダリボリューム230における記憶位置と、差分ボリューム240における記憶位置とをS−VOL変換テーブル500に登録し(S4005)、差分ボリューム240にある時点のプライマリボリューム220のデータの複製を書き込む(S4006)。なお、S4004における空き容量と規定容量との比較において、例えば空き容量が規定容量よりも大きい場合に”YES”に進むようにすることもできる。次にスナップショット管理テーブル400のプライマリボリュームBM(P)410及びセカンダリボリュームBM(S)420のビットの値を共に”0”に更新し(S4007)、セカンダリボリューム230、すなわち差分ボリューム240にデータを書き込む(S4002)。
【0066】
S4004において、差分ボリューム240の空き容量が規定容量以上ない場合には、”NO”に進む。この場合は、ある時点のプライマリボリューム220のデータを記憶する差分ボリューム240として使用するための他の記憶ボリューム241を選定することが必要になる。選定は、上述したように例えばボリューム管理テーブル600や差分ボリューム管理テーブル700を参照することにより行うことができる(S4008)。差分ボリューム240として使用するための他の記憶ボリューム241が選定できた場合には、S4009において”YES”に進む。そしてボリューム管理テーブル600の各記憶ボリュームについての情報を更新して(S4010)、S4003に戻る。その後はS4004にて”YES”に進み、上述した各ステップの処理を行って(S4005乃至S4007)、セカンダリボリューム230すなわち差分ボリューム240にデータを書き込む(S4002)。
【0067】
なおS4006において、上記選定された他の記憶ボリューム241の未使用記憶領域にある時点のプライマリボリューム220のデータの複製を書き込む場合には、当該未使用記憶領域のうちデータアクセス性能の低い記憶領域に書き込むようにすることもできる。
【0068】
一方、S4008において差分ボリューム240として使用するための他の記憶ボリューム241が選定できなかった場合には、S4009において”NO”に進む。続いてS4011にて、差分ボリューム240の未使用記憶領域に、ある時点のプライマリボリューム220のデータをまだ書き込めるだけの記憶容量が残っているかどうかを判定し、まだ残っている場合には”NO”に進む。そして例えば管理用装置250が備えるユーザインタフェースに警告を表示する(S4012)。警告が表示されることにより、ストレージ装置200を管理するオペレータは、差分ボリューム240を使い切ってしまう前に対策を行うことが可能となる。例えばディスクドライブを増設して差分ボリューム240の記憶容量を増やすようにすることもできる。あるいはスナップショットコマンドをストレージ装置200に送信して、ある時点のプライマリボリューム220のデータの維持を中止するようにすることもできる。
【0069】
S4011において、差分ボリューム240の未使用記憶領域に、ある時点のプライマリボリューム220のデータをまだ書き込めるだけの記憶容量が残っていない場合には”YES”に進む。そして例えば管理用装置250が備えるユーザインタフェースに警告を表示し(S4013)、ある時点のプライマリボリューム220のデータの維持を中止する(S4014)。
【0070】
===記憶ボリュームへのデータの書き込みについて===
一般に、ストレージ装置200が備える記憶ボリュームへデータを書き込むためには、当該記憶ボリュームに対するフォーマット処理を行っておく必要がある。フォーマット処理とは、記憶ボリュームを構成するディスクドライブ等の記憶メディアにより提供される記憶領域を、データを記憶するための区画に区分することにより、データの書き込みや読み出しを可能とするための処理である。区画とは、例えばディスクドライブに設定されるトラック上に設定されるセクタとすることができる。
【0071】
本実施の形態に係るストレージ装置200においては、フォーマット処理として2種類の方式を実行可能である。すなわち図17に示すように、第1のフォーマット方式と第2のフォーマット方式とである。なお第1のフォーマット方式でフォーマット処理を行うか、第2のフォーマット方式でフォーマット処理を行うかは、例えば管理用装置250が備えるユーザインタフェースからの指示により、切り替えるようにすることができる。もちろん、本実施の形態に係るストレージ装置200は、例えば第2のフォーマット方式のみを実行可能とすることもできる。
【0072】
第1のフォーマット方式では、ストレージ装置200は、情報処理装置100や管理用装置250からフォーマット処理実行の指示を受信すると、指定された記憶ボリュームに対するフォーマット処理を開始する。しかしフォーマット処理を行っている間はその記憶ボリュームに対するデータ入出力要求を受け付けない。フォーマット処理が完了した後にその記憶ボリュームに対するデータ入出力要求の受け付けを開始する。
【0073】
一方第2のフォーマット方式では、ストレージ装置200は、情報処理装置100や管理用装置250からフォーマット処理実行の指示を受信すると、指定された記憶ボリュームに対するフォーマット処理を開始するが、フォーマット処理を行っている間であってもその記憶ボリュームに対するデータ入出力要求を受け付ける。この場合、ストレージ装置200はフォーマット処理が完了していなくても、当該記憶ボリュームに対するデータ入出力要求を受信した場合には、あたかもフォーマット処理が完了しているかのようにデータ入出力制御を行う。
【0074】
このため、第2のフォーマット方式でフォーマット処理を行っている間にデータ入出力要求を受け付けた場合には、まだフォーマット処理が済んでいない記憶領域に対してデータ入出力処理を行わなければならない場合がある。例えば本実施の形態において、差分ボリューム240のフォーマット処理が第2のフォーマット方式で実行される場合には、図12及び図14において説明した差分ボリューム240へのデータの書き込みの際に、当該データが書き込まれる予定の記憶領域のフォーマット処理が完了していない場合がある。この場合は図18に示すように、当該データを書き込むために必要な記憶領域についてフォーマット処理を先に行ってからデータを書き込むようにする。これにより、フォーマット処理がまだ完了していない記憶ボリュームに対してデータ入出力要求があった場合であってもデータ入出力処理を行うことが可能となる。
【0075】
以下、本実施の形態に係る第2のフォーマット方式について説明する。
第2のフォーマット方式により記憶ボリュームのフォーマット処理を行う場合には、上述した区画毎にフォーマット処理が済んでいるか、済んでいないかをフォーマット管理テーブル900を用いて管理する。フォーマット管理テーブル900を用いてフォーマット処理が行われる様子を図15に示す。フォーマット管理テーブル900は記憶ボリューム毎に設けられるようにすることができる。
【0076】
フォーマット管理テーブル900の一例を図16に示す。図16において(xfi、yfj)(i、j=1、2、…)は記憶ボリューム上の記憶位置を区画毎に特定するための情報である。例えば各区画がディスクドライブ上の1セクタに対応する場合には、xfi(i=1、2、…)は例えばディスクドライブ上に設定されるトラック番号に対応し、yfj(j=1、2、…)はトラック上に設定されるセクタ番号に対応するようにすることができる。そしてフォーマット処理が済んでいる区画に対しては、フォーマット管理テーブル900において”1”が記載される。フォーマット処理が済んでいない区画に対しては”0”が記載される。これによりストレージ装置200は、記憶ボリュームの各区画についてフォーマット処理が済んでいるのか、済んでいないのかを管理することができる。そのためフォーマット処理中であっても情報処理装置100からデータ入出力要求を受け付けることができ、フォーマット処理が済んでいない記憶領域に対するデータ入出力要求であってもデータ入出力処理を行うようにすることが可能となる。
【0077】
次に第2のフォーマット形式でフォーマット処理が行われている記憶ボリュームに対してデータの書き込み要求があった場合の処理の流れについて、図19に示すフローチャートを用いて説明する。なお図19においては、上述した差分ボリューム240に対して第2のフォーマット方式でフォーマット処理が行われている場合について記載されているが、他の記憶ボリュームに対して第2のフォーマット方式でフォーマット処理が行われている場合も同様である。また以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるスナップショット制御プログラム800を、CPU211が実行することにより実現される。もちろん、CPU211はスナップショット制御プログラム800の他に、他のプログラムを実行することにより以下の処理を実現するようにすることもできる。
【0078】
まずストレージ装置200は、情報処理装置100からデータの書き込み要求を受信する(S5000)。次にデータ書き込み要求の対象となっている記憶ボリュームについてフォーマット処理が完了しているかどうかをチェックする(S5001)。このチェックは、例えばフォーマット処理が完了しているかどうかを示すフラグを記憶ボリューム毎に設けて、このフラグをチェックすることにより行うようにすることができる。この場合、フラグは記憶ボリュームに対するフォーマット処理を完了したときに、ストレージ装置200によりセットされる。次に、当該記憶ボリュームに対するフォーマット処理が完了している場合には”完了”に進み、差分ボリューム240にデータを書き込む(S5002)。
【0079】
フォーマット処理が完了していない場合には”未完”に進む。そしてフォーマット管理テーブル900を参照して、当該データ入出力要求の対象となっている記憶領域についてのフォーマットが済んでいるかどうかをチェックする(S5003)。フォーマット処理が完了している場合には”1”に進み、差分ボリューム240にデータを書き込む(S5004)。
【0080】
フォーマット処理が完了していない場合には、”0”に進む。そしてまず当該記憶領域に対するフォーマット処理を行うために、データ入出力要求の処理を一時的に停止する(S5005)。その間に当該記憶領域に対するフォーマット処理を行う(S5006)。そしてフォーマット管理テーブル900の更新を行った後(S5007)、データ入出力要求の処理を再開し、差分ボリューム240の当該記憶領域にデータを書き込む(S5008)。
【0081】
これにより、第2のフォーマット方式によってフォーマット処理を行っている間であってもデータ入出力要求を受信することができ、フォーマット処理が済んでいない記憶領域に対するデータ入出力要求であってもデータ入出力処理を行うようにすることができる。
【0082】
以上説明したように、本実施の形態によれば、スナップショット制御に用いられる差分ボリューム240の記憶容量が不足した場合であっても、スナップショット制御を継続することが可能となる。
【0083】
これにより、例えばあらかじめ差分ボリューム240として用意しておく記憶容量を抑制することが可能となる。あらかじめ用意しておく差分ボリューム240を無くすようにすることも可能である。差分ボリューム240はプライマリボリューム220の更新前のある時点のデータを記憶するための記憶ボリュームであり、情報処理装置100により提供される情報処理サービスのために使用される記憶ボリュームではない。このため、本実施の形態により、差分ボリューム240として用意しておく記憶容量を抑制可能となったことにより、コンピュータシステム及びストレージ装置200のコストパフォーマンスを向上させることが可能となる。
【0084】
また、例えばバックアップ処理の実行中に差分ボリューム240の記憶領域を使い切ってしまった場合であっても、バックアップ処理を中止する必要がなくなる。これによりバックアップ処理を確実に行えるようにできるため、コンピュータシステムの信頼性を向上させることができる。
【0085】
同様に、例えばセカンダリボリューム230に仮想的に記憶されている、ある時点のプライマリボリューム220のデータを用いて、テストプログラムの実行やシミュレーションプログラムの実行を行う場合にも、プログラムの実行中に差分ボリューム240の記憶領域を使い切ってしまったとしても、プログラムの実行を継続することが可能となる。
【0086】
また本実施の形態においては、差分ボリューム240の空き容量が管理用装置250や情報処理装置100が備えるユーザインタフェースに表示される。これによりコンピュータシステムを管理するオペレータは、スナップショット制御の実施状況を把握することができ、例えば差分ボリューム240の増設等の処置を的確に行うことが可能となる。
【0087】
また差分ボリューム240の空き容量が少なくなった場合には、管理用装置250や情報処理装置100が備えるユーザインタフェースに警告が表示される。これによりコンピュータシステムを管理するオペレータは、差分ボリューム240を使い切って突然スナップショット制御が中止されてしまう前に、例えばディスクドライブを増設して差分ボリューム240の記憶容量を増やす等の対策や、スナップショット制御の中止等の処置を行うことが可能となる。
【0088】
また本実施の形態においては、記憶ボリュームに対するフォーマット処理を行っている間であっても、その記憶ボリュームに対するデータ入出力要求を受け付けることができる。これにより、フォーマット処理中であっても情報処理装置100からデータ入出力要求を受け付け、フォーマット処理が済んでいない記憶領域に対するデータ入出力要求であってもデータ入出力処理を行うようにすることが可能となる。
【0089】
以上本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【0090】
【発明の効果】
ストレージ装置、及びストレージ装置の制御方法を提供することができる。
【図面の簡単な説明】
【図1】 本実施の形態に係るストレージ装置を含む情報処理システムの全体構成を示すブロック図である。
【図2】 本実施の形態に係るストレージ装置における制御装置の構成を示すブロック図である。
【図3】 本実施の形態に係るスナップショットにおけるプライマリボリューム及びセカンダリボリュームを示す図である。
【図4】 本実施の形態に係るスナップショットにおける処理の概要を示す図である。
【図5】 本実施の形態に係るスナップショット管理テーブルを示す図である。
【図6】 本実施の形態に係るS−VOL変換テーブルを示す図である。
【図7】 本実施の形態に係るスナップショットにおける処理の概要を示す図である。
【図8】 本実施の形態に係るスナップショットにおける処理の概要を示す図である。
【図9】 本実施の形態に係るボリューム管理テーブルを示す図である。
【図10】 本実施の形態に係る差分ボリューム管理テーブルを示す図である。
【図11】 本実施の形態に係るプライマリボリュームへのデータの読み出し処理を示すフローチャートである。
【図12】 本実施の形態に係るプライマリボリュームへのデータの書き込み処理を示すフローチャートである。
【図13】 本実施の形態に係るセカンダリボリュームへのデータの読み出し処理を示すフローチャートである。
【図14】 本実施の形態に係るセカンダリボリュームへのデータの書き込み処理を示すフローチャートである。
【図15】 本実施の形態に係るフォーマットを説明するためのブロック図である。
【図16】 本実施の形態に係るフォーマット管理テーブルを示す図である。
【図17】 本実施の形態に係るフォーマットを説明するためのブロック図である。
【図18】 本実施の形態に係るフォーマットを説明するためのブロック図である。
【図19】 本実施の形態に係るフォーマット処理を示すフローチャートである。
【符号の説明】
100 情報処理装置
200 ストレージ装置
210 制御装置
211 CPU
212 メモリ
220 プライマリボリューム
230 セカンダリボリューム
240 差分ボリューム
241 他の記憶ボリューム
250 管理用装置
400 スナップショット管理テーブル
500 S−VOL変換テーブル
600 ボリューム管理テーブル
700 差分ボリューム管理テーブル
800 スナップショット制御プログラム
900 フォーマット管理テーブル

Claims (4)

  1. データを記憶するための第1、第2、及び第3の記憶ボリュームと、
    仮想的な記憶ボリュームと、
    制御装置と、
    を備えるストレージ装置であって、
    前記制御装置は、
    情報処理装置から、ある時点の後に、前記第1の記憶ボリュームに記憶される前記ある時点におけるデータの更新要求を受信する手段と、
    前記ある時点における更新前の前記データの複製を前記第2の記憶ボリュームに記憶する手段と、
    前記第2の記憶ボリュームの未使用の記憶領域の記憶容量が判定値よりも小さい場合には、前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域に記憶する手段と、
    前記仮想的な記憶ボリュームにおける各記憶領域と、前記各記憶領域のデータを実際に記憶する前記第1、第2、第3の記憶ボリュームにおける各記憶領域との間の対応付けを管理するS−VOL変換テーブルと、
    前記第1の記憶ボリュームの各記憶領域に記憶されているデータの有効性と、前記仮想的な記憶ボリュームの各記憶領域に記憶されているデータの有効性と、を示すスナップショット管理テーブルと、
    を備え、
    前記情報処理装置から前記仮想的な記憶ボリュームに対するデータの読み出し要求を受信すると、前記スナップショット管理テーブルを参照し、
    前記第1の記憶ボリュームに記憶されているデータが有効であり、前記仮想的な記憶ボリュームに記憶されているデータが無効である場合には、前記第1の記憶ボリュームからデータを読み出し、
    前記仮想的な記憶ボリュームに記憶されているデータが有効である場合には、前記S−VOL変換テーブルにより特定される、前記第1、第2、第3の記憶ボリュームのいずれかの記憶領域から、データを読み出す
    ことを特徴とするストレージ装置。
  2. 前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域に記憶する前記手段は、
    前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域のうちの、単位時間あたりに読み書きできるデータ量が相対的に少ない記憶領域に記憶する手段である
    ことを特徴とする請求項1に記載のストレージ装置。
  3. データを記憶するための第1、第2、及び第3の記憶ボリュームと、
    仮想的な記憶ボリュームと、
    制御装置と、
    を備え、
    前記制御装置は、
    情報処理装置から、ある時点の後に、前記第1の記憶ボリュームに記憶される前記ある時点におけるデータの更新要求を受信する手段と、
    前記ある時点における更新前の前記データの複製を前記第2の記憶ボリュームに記憶する手段と、
    前記第2の記憶ボリュームの未使用の記憶領域の記憶容量が判定値よりも小さい場合には、前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域に記憶する手段と、
    前記仮想的な記憶ボリュームにおける各記憶領域と、前記各記憶領域のデータを実際に記憶する前記第1、第2、第3の記憶ボリュームにおける各記憶領域との間の対応付けを管理するS−VOL変換テーブルと、
    前記第1の記憶ボリュームの各記憶領域に記憶されているデータの有効性と、前記仮想的な記憶ボリュームの各記憶領域に記憶されているデータの有効性と、を示すスナップショット管理テーブルと、
    を備えるストレージ装置の制御方法であって、
    前記ストレージ装置が、前記情報処理装置から前記仮想的な記憶ボリュームに対するデータの読み出し要求を受信し、
    前記ストレージ装置が、前記スナップショット管理テーブルを参照し、
    前記ストレージ装置が、前記第1の記憶ボリュームに記憶されているデータが有効であり、前記仮想的な記憶ボリュームに記憶されているデータが無効である場合には、前記第1の記憶ボリュームからデータを読み出し、
    前記ストレージ装置が、前記仮想的な記憶ボリュームに記憶されているデータが有効である場合には、前記S−VOL変換テーブルにより特定される、前記第1、第2、第3の記憶ボリュームのいずれかの記憶領域から、データを読み出す
    ことを特徴とするストレージ装置の制御方法。
  4. 前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域に記憶する前記手段は、
    前記ある時点における更新前の前記データの複製を、前記第3の記憶ボリュームの未使用の記憶領域のうちの、単位時間あたりに読み書きできるデータ量が相対的に少ない記憶領域に記憶する手段である
    ことを特徴とする請求項3に記載のストレージ装置の制御方法。
JP2003185305A 2003-06-27 2003-06-27 ストレージ装置、及びストレージ装置の制御方法 Expired - Fee Related JP3953986B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003185305A JP3953986B2 (ja) 2003-06-27 2003-06-27 ストレージ装置、及びストレージ装置の制御方法
US10/658,395 US7032091B2 (en) 2003-06-27 2003-09-10 Storage device and storage device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003185305A JP3953986B2 (ja) 2003-06-27 2003-06-27 ストレージ装置、及びストレージ装置の制御方法

Publications (3)

Publication Number Publication Date
JP2005018612A JP2005018612A (ja) 2005-01-20
JP2005018612A5 JP2005018612A5 (ja) 2006-08-03
JP3953986B2 true JP3953986B2 (ja) 2007-08-08

Family

ID=33535404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003185305A Expired - Fee Related JP3953986B2 (ja) 2003-06-27 2003-06-27 ストレージ装置、及びストレージ装置の制御方法

Country Status (2)

Country Link
US (1) US7032091B2 (ja)
JP (1) JP3953986B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
EP1668486A2 (en) 2003-08-14 2006-06-14 Compellent Technologies Virtual disk drive system and method
US7441052B2 (en) * 2003-09-29 2008-10-21 Hitachi Data Systems Corporation Methods and apparatuses for providing copies of stored data for disaster recovery and other uses
WO2005089241A2 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
JP4681247B2 (ja) * 2004-04-08 2011-05-11 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US20050240726A1 (en) * 2004-04-27 2005-10-27 Hitachi Global Storage Technologies Netherlands B.V. Synergistic hybrid disk drive
JP2005332067A (ja) * 2004-05-18 2005-12-02 Hitachi Ltd バックアップ取得方法及びディスクアレイ装置
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US7574464B2 (en) * 2005-02-14 2009-08-11 Netapp, Inc. System and method for enabling a storage system to support multiple volume formats simultaneously
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
JP4615337B2 (ja) * 2005-03-16 2011-01-19 株式会社日立製作所 ストレージシステム
US7487386B2 (en) * 2005-03-30 2009-02-03 International Business Machines Corporation Method for increasing file system availability via block replication
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
JP4783076B2 (ja) * 2005-07-08 2011-09-28 株式会社日立製作所 ディスクアレイ装置及びその制御方法
JP4903461B2 (ja) * 2006-03-15 2012-03-28 株式会社日立製作所 記憶システム及びデータ移行方法並びにサーバ装置
JP2009538493A (ja) * 2006-05-24 2009-11-05 コンペレント・テクノロジーズ データ・プログレッション・ディスク局所性最適化のシステムおよび方法
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8224864B1 (en) 2008-01-07 2012-07-17 Network Appliance, Inc. Striping directories across a striped volume set by the filenames contained in the directories
US8180983B1 (en) * 2008-02-26 2012-05-15 Network Appliance, Inc. Caching filenames of a striped directory in predictable locations within a volume locally accessible to a storage server node
JP2009217404A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd ストレージシステム
US20100058319A1 (en) * 2008-08-28 2010-03-04 Hitachi, Ltd. Agile deployment of server
JP4886918B1 (ja) 2008-10-30 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フラッシュコピー・プロセスを処理する方法、ならびにそのためのシステム、およびコンピュータ・プログラム
JP4924645B2 (ja) * 2009-03-31 2012-04-25 富士通株式会社 ストレージ制御装置、ストレージシステム及びコピー方法。
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9251059B2 (en) * 2011-09-23 2016-02-02 Avalanche Technology, Inc. Storage system employing MRAM and redundant array of solid state disk
US8495221B1 (en) * 2012-10-17 2013-07-23 Limelight Networks, Inc. Targeted and dynamic content-object storage based on inter-network performance metrics

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644698A (en) * 1996-05-30 1997-07-01 International Business Machines Corporation Configurable reuse delay criterion for storage volumes
JPH10222312A (ja) * 1997-02-07 1998-08-21 Hitachi Ltd ストレージシステム
US6212531B1 (en) * 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6236983B1 (en) * 1998-01-31 2001-05-22 Aveo, Inc. Method and apparatus for collecting information regarding a device or a user of a device
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6651075B1 (en) * 2000-02-16 2003-11-18 Microsoft Corporation Support for multiple temporal snapshots of same volume
US6636953B2 (en) * 2000-05-31 2003-10-21 Matsushita Electric Co., Ltd. Receiving apparatus that receives and accumulates broadcast contents and makes contents available according to user requests
US6594744B1 (en) * 2000-12-11 2003-07-15 Lsi Logic Corporation Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US6771843B1 (en) * 2001-05-11 2004-08-03 Lsi Logic Corporation Data timeline management using snapshot volumes
US6862671B1 (en) * 2001-08-06 2005-03-01 Lsi Logic Corporation System and method for optimizing establishment of mirrored data
US6751715B2 (en) 2001-12-13 2004-06-15 Lsi Logic Corporation System and method for disabling and recreating a snapshot volume
JP2004258944A (ja) 2003-02-26 2004-09-16 Hitachi Ltd ストレージ装置およびその管理方法
JP4292882B2 (ja) * 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置

Also Published As

Publication number Publication date
JP2005018612A (ja) 2005-01-20
US20040268035A1 (en) 2004-12-30
US7032091B2 (en) 2006-04-18

Similar Documents

Publication Publication Date Title
JP3953986B2 (ja) ストレージ装置、及びストレージ装置の制御方法
US6587933B2 (en) Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
JP4681249B2 (ja) ディスクアレイ装置
US6421767B1 (en) Method and apparatus for managing a storage system using snapshot copy operations with snap groups
US6192444B1 (en) Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US7680984B2 (en) Storage system and control method for managing use of physical storage areas
US7461100B2 (en) Method for fast reverse restore
US6119208A (en) MVS device backup system for a data processor using a data storage subsystem snapshot copy capability
EP0976044B1 (en) System for providing write notification during data set copy
US20060143412A1 (en) Snapshot copy facility maintaining read performance and write performance
US20050216532A1 (en) System and method for file migration
JP6317524B2 (ja) ストレージシステム、計算機システム、およびストレージシステムの制御方法
US20050015415A1 (en) Method, system, and program for performing an input/output operation with respect to a logical storage device
US7519786B2 (en) Storage system, storage access restriction method and computer program product
US7047390B2 (en) Method, system, and program for managing a relationship between one target volume and one source volume
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
JP2008152695A (ja) 電子的な保護対象に要求される保護能力で該保護対象を保護する記憶制御装置
US20090216972A1 (en) Storage system, copy method, and primary storage apparatus
US6111707A (en) Tape duplexing with unique identity and error recovery
US6732194B1 (en) Method and apparatus for multi-sequential data operations
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
US8589645B1 (en) Remote read for storage devices
US11789657B2 (en) Devices, systems, and methods for transparently intercepting data stored on a storage device and providing services related to the data
US20230130096A1 (en) Method and system for improving performance during deduplication
US20200333960A1 (en) Fine-grain asynchronous mirroring suppression

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060614

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20060905

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20060926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070425

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees