JP2008171032A - ストレージ装置、及びこれを用いた記憶制御方法 - Google Patents
ストレージ装置、及びこれを用いた記憶制御方法 Download PDFInfo
- Publication number
- JP2008171032A JP2008171032A JP2007000746A JP2007000746A JP2008171032A JP 2008171032 A JP2008171032 A JP 2008171032A JP 2007000746 A JP2007000746 A JP 2007000746A JP 2007000746 A JP2007000746 A JP 2007000746A JP 2008171032 A JP2008171032 A JP 2008171032A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- primary
- primary volume
- data
- write
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2058—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2066—Optimisation of the communication load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1012—Load balancing
Abstract
【解決課題】正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するI/O負荷を増大させないトレージ装置を提供すること。
【解決手段】ストレージ装置は正ボリュームPに対するライトアクセスに基づくライトデータを 副ボリュームS1に書き込む。ストレージ装置のコントローラはバックグラウンド処理として、副ボリュームS1から副ボリュームS2及びS3にそれぞれコピーをする。ストレージ装置は副ボリュームS1と、副ボリュームS2及びS3との間の共有データをビットマップで管理している。
【選択図】図2
【解決手段】ストレージ装置は正ボリュームPに対するライトアクセスに基づくライトデータを 副ボリュームS1に書き込む。ストレージ装置のコントローラはバックグラウンド処理として、副ボリュームS1から副ボリュームS2及びS3にそれぞれコピーをする。ストレージ装置は副ボリュームS1と、副ボリュームS2及びS3との間の共有データをビットマップで管理している。
【選択図】図2
Description
本発明は、上位装置が記憶装置にデータを記憶する際の制御を上位装置に対して提供するストレージ装置に係り、特に、副ボリュームに対する上位装置からのライトデータの書き込みに係る制御機能を備えたストレージ装置に関するものである。
ストレージ装置は上位計算機に接続されて記憶制御システムを構成するものであって、上位計算機に対して大容量の記憶領域を提供する。そこで、ストレージ装置は、ハードディスクドライブなどの複数の記憶デバイスをアレイ状にして筐体内に収容している。ストレージ装置は記憶資源を仮想化して上位装置に提供し、上位計算機は物理的な記憶領域を仮想化したものである論理ボリュームを認識して、この論理ボリュームにライト又はリードアクセスする。この際、ストレージ装置は、複数の記憶デバイスについてRAIDグループを定義してデータの冗長性を保障している。上位計算機はストレージ装置に直接接続される他、SANやIP通信網を介して接続することも可能である。なお、ストレージ装置は、ストレージサブシステム、或いは記憶制御装置とも呼ばれている。
上位計算機上で稼動するアプリケーションプログラムは、ボリュームにリード又はライトアクセスして、物理的なリソースである記憶装置にデータを書き込み、又は記憶装置からデータを読み込む。ストレージ装置に付属している管理装置は、上位計算機がライト及びリードアクセスする正ボリューム(Primarily Volume)に対して副ボリューム(Secondly volume)をストレージ装置に定義する機能を備えている。
正ボリュームは上位計算機がオンラインアクセスするオンラインボリュームであり、副ボリュームは正ボリュームの複製ボリュームである。ストレージ装置のボリューム管理プログラムは、副ボリュームを正ボリュームのペアであって正ボリュームに同期すべきボリュームとして認識し、かつ、ストレージ装置のライト・リード管理プログラムは、上位計算機からのライト命令に伴うライトデータを正ボリュームと副ボリュームの両方に2重書きしている。したがって、正ボリュームのデータと副ボリュームのデータが一致し、ストレージ装置のユーザは副ボリュームをバックアップボリュームとして利用することができる。副ボリュームは複製ボリューム、或いはミラーボリュームとも呼ばれる。
副ボリュームを設定できるストレージ装置において、複数の副ボリュームが必要とされる場合がある。例えば、単独又は複数のユーザが複数の副ボリュームの各々をバックアップ用、テスト用、バッチ処理用などの処理用に使い分けたい場合である。例えば、特開2006―31579号公報には、一つの正ボリュームに対して複数(N個)の副ボリュームを作成できる機能を備えたストレージ装置が記載されている。
特開2006―31579号公報
複数の副ボリュームを作成できる機能を有するストレージ装置においては、複数の副ボリューム間でデータの整合性を保障する必要がある。そこで、ストレージ装置は、上位計算機がアクセスする正ボリュームに対して複数ある各副ボリュームを正ボリュームに同期するペアとして設定していた。したがって、上位計算機が正ボリュームにライトアクセスすると、ストレージ装置は、このライトアクセスを処理する際に、正ボリュームばかりでなく複数ある各副ボリュームにもアクセスして各副ボリュームにライトデータを書き込まなくてはならない。よって、ストレージ装置が上位装置にライト処理を完了する応答を返すまでの応答時間が長くなって、ストレージ装置の上位計算機からのライト命令に対する処理効率が低下するおそれがある。特に、一つのプロセッサで正ボリュームばかりでなく複数ある各副ボリュームにライト処理を行なおうとすると、プロセッサの負苛が増大して処理効率の低下が顕著となる。
一方で、高性能なストレージである、いわゆるハイエンドタイプであるストレージ装置では、上位計算機側(フロントエンド)とハードディスク側(バックエンド)それぞれにプロセッサを有している。このようなストレージ装置では、正ボリュームへのデータの書き込みと、正ボリュームから副ボリュームへのデータのコピーを複数あるプロセッサで分担することができる。したがって、ストレージ装置全体としてみればプロセッサに対する負荷が増大することを抑えることができる。
しかしながら、複数ある副ボリュームへ正ボリュームからライトデータをコピーすることに伴って正ボリュームへのストレージ装置内におけるI/Oアクセスが増大し、上位計算機から正ボリュームへ発行される他のライトアクセスやリードアクセスに影響を及ぼすおそれがある。また、フロントエンド側の処理とバックエンド側の処理とを同一のプロセッサで行なう、いわゆるミッドレンジタイプのストレージ装置において、正ボリュームへのライト処理に同期して全ての副ボリュームにライト処理を行なうとすると、プロセッサに対する負荷が増大することを避けられない。したがって、ミッドレンジタイプのストレージ装置では、正ボリュームに対して同時にペアにできる副ボリュームの数を制限せざるを得なかった。
そこで、本発明は、正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するI/O負荷を増大させないトレージ装置及び記憶制御方法を提供することを目的とするものである。さらに、本発明は、同様に副ボリュームが複数あっても、プロセッサに与える負荷を増大させないストレージ装置及び記憶制御方法を提供することを目的とするものである。
本発明はこの目的を達成するために、ストレージ装置が、複数の副ボリュームの中で正ボリュームとペアとなっている主ボリュームから主ボリューム以外の他の副ボリュームである従ボリュームに、上位計算機から発行されたライトデータを正ボリュームにアクセスすることなく複写することによって、正ボリュームへのアクセス頻度を低減させたことを特徴とするものである。特に、ストレージ装置が主ボリュームから従ボリュームへの既述のデータコピーをバックグランドで処理することによって、ストレージ装置のプロセッサ及び正ボリュームに対する負荷が増大しないようにできる。
また、本発明は、記憶装置と、上位計算機に前記記憶装置の記憶領域を複数のボリュームとして提供し、前記上位装置の前記ボリュームに対するアクセスを制御する制御装置と、前記ボリュームを管理する管理情報が設定されたメモリと、を備え、前記制御装置は前記管理情報に基づいて前記上位装置から発行されたライトデータを前記ボリュームに書き込むことを制御するように構成されたストレージ装置において、前記複数のボリュームは、前記上位装置がライトアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を有し、前記複数の副ボリュームは、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして構成されてなり、前記制御装置は、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むように構成されてなる、ことを特徴とする。
またさらに、本発明は、上位計算機に対して記憶ボリュームを提供し、当該記憶ボリュームに対する前記上位計算機のライトアクセスを制御するストレージ装置を用いた記憶制御方法において、前記ストレージ装置は、前記記憶ボリュームとして、前記上位計算機がアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を作成するステップと、複数の副ボリュームを、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして定義するステップと、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むステップと、を実行してなる、ことを特徴とするものである。
以上説明したように、本発明によれば、正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するI/O負荷を増大させないトレージ装置を提供することができる。さらに、本発明は、同様に副ボリュームが複数あっても、プロセッサに与える負荷を増大させないストレージ装置及び記憶制御方法を提供することができる。
次に、本発明に係るストレージ装置を備えた記憶制御システムの一例について説明する。図1は記憶制御システムのハードウエアブロック図である。なお、図1に示す、ストレージ装置は、既述したミドルレンジタイプのものであるが、ストレージ装置をハイエンドタイプのものにすることも勿論可能である。
図1において、ストレージ装置1は、制御装置10と複数の記憶デバイス20を備えて構成されている。ディスクアレイコントローラ10が制御装置に対応する。複数のハードディスクドライブ20が複数の記憶デバイスに対応する。記憶デバイスとしては、ハードディスクドライブに限らず、フラッシュメモリチップなどの半導体メモリであっても良い。
ストレージ装置1は、SAN(Storage Area Network)2を介して複数のホスト3(上位計算機に対応する。)に接続されると共に、LAN(Local Area Network)4を介して管理用端末装置5に接続されている。ディスクアレイコントローラ10は、メモリ102に記憶された制御プログラム103によって、ハードディスクドライブ20に対するホスト3からのデータの入出力・ボリュームの管理など処理を制御する。
ハードディスクドライブ20の記憶資源は、RAID(Redundant Array of Independent Disks)によって定義されホスト3にボリュームとして提供されている。複数の記憶装置の記憶領域が一緒になってあるRAIDレベルからなるRAIDグループを構成し、ストレージ装置1は、このRAIDグループを論理的に分割して、これをホストに論理的に見せるようにしている。
ホストが認識する論理的な単位は、論理ボリューム、論理ユニット、仮想ボリューム、論理ディスク、仮想ディスクなど、ホストがメインフレームかオープンフレームか、あるいは通信プロトコルの相違によって種々定義される。この明細書においては、これらを総称してボリュームと呼んでいる。ホストはボリュームを介して、物理ディスク(PDEV)にアクセスする。
例えば、論理ボリュームは、I/Oコマンドを実行するSCSIターゲット内のエンテティである。論理ボリュームは、LUN(論理ユニット番号)としてホストにより識別される。ディスクアレイコントローラ10は、制御情報としてLUについてこれを管理するための情報、すなわち、論理ボリューム番号(LUN)や、論理アドレス範囲、記憶容量、RAIDレベル、正ボリューム・副ボリュームに係る制御状態等の情報をボリューム管理情報としてメモリ102に格納し、かつこれらを管理する。ディスクアレイコントローラは、また、LUに対応する下位ボリューム(LDEV)の管理のための論理デバイス番号も管理する。ストレージ装置1内で各種制御情報は、必要に応じて動的に変更される。
ディスクアレイコントローラ10は、制御プログラム103を実行するために、メイン処理用コントローラとしてのCPU101と、制御プログラムを格納するメモリ102と、を備えている。CPU101の代わりにマイクロプロセッサーでも良い。制御プログラムがプロセッサーによって実行されることにより、後述の各処理が実現される。CPU101が制御プログラム103を呼び出して実行することによって各種処理が行われる。制御プログラムは、ストレージ装置がホストに対して提供する、記憶制御機能を実現する上で必要な機能を備える。制御プログラムは、特に、ホストからストレージ装置に発行されるライト又はリードアクセスを処理する機能、そして、正ボリューム及び複数の副ボリュームを作成して、これを管理、及び制御するための機能を備えている。
ディスクアレイコントローラ10は、この制御プログラムに基づいて、ホスト3或いは管理装置5からの命令に基づいて複数の副ボリュームを作成し、これをメモリ102に管理テーブルとして格納する。制御プログラムはこの管理テーブルに基づいて副ボリューム間でのデータをコピーすることを管理する。
ディスクアレイコントローラ10は、LUを単位としてボリュームを設定・ボリュームに対する制御を行なうことが可能である。ボリュームには、ホストがアクセスする正ボリュームと、正ボリュームの複製ボリュームとしての副ボリュームが含まれる。ホストは正ボリュームに対してライトアクセスすると、ライトデータが副ボリュームに反映される。勿論、ホストは正ボリュームにリードアクセスすることもできる。ホストは、正ボリュームから後述のようにスプリットされた副ボリュームに対してライト又はリードアクセスすることもできる。
ディスクアレイコントローラ10は、データ転送コントローラ104、フロントエンドインターフェース105、バックエンドインターフェース106、キャッシュメモリ107、及びLANインターフェース108を備えている。データ転送コントローラ104は、CPU101、フロントエンドインターフェース105、バックエンドインターフェース106、及びキャッシュメモリ107の間でのデータを転送することを制御する。
フロントエンドインターフェース105は、SAN2に対するインターフェースであって、例えば、ファイバチャネルプロトコルによって、ホスト3との間でデータや制御信号を送受信する。バックエンドインターフェース106は、ディスク20に対するインターフェースであって、例えば、ファイバチャネルプロトコルによって、ディスク20との間でデータや制御信号を送受信する。
キャッシュメモリ107には、フロントエンドインターフェース105とバックエンドインターフェース106との間で送受信されるデータが一時的に記憶される。すなわち、データ転送コントローラ104は、SAN4を介してディスクに読み書きされるデータをインターフェース105、106間で転送する。さらに、これらのディスクに読み書きされるデータをキャッシュメモリ107に転送する。
LANインターフェース108は、LAN4に対するインターフェースであって、例えば、TCP/IPプロトコルによって、管理用端末装置5とのストレージ装置1との間でデータや制御信号の送受信が可能となる。SAN2は、例えばファイバチャネルプロトコルのような、データの転送に適するプロトコルで通信可能なネットワークである。
管理用端末装置5は、CPU、メモリ、記憶装置、インターフェース、入力装置及び表示装置が備わるコンピュータ装置である。管理用端末装置5では管理プログラムが動作しており、該管理プログラムによってストレージ装置の動作状態を把握し、ストレージ装置の動作を制御する。管理用端末装置5ではwebブラウザ等のクライアントプログラムが動作しており、ストレージ装置1からCGI(Common Gateway Interface)等によって供給される管理プログラムによってストレージ装置の動作を制御してもよい。
管理用端末装置5はメモリ102にディスクアレイコントローラ10の各種制御を実現するためのデータを設定できる機能を備えている。この機能は、GUIとしてユーザに提供される。既述のように、正ボリューム及び複数の副ボリュームに対する各種管理情報の設定はホスト内のプログラムによってホストが実行すると説明したが、これに代えて管理用端末装置5が実行するようにしてもよい。ホストのこのような管理機能もGUIとしてホストを管理する管理者に提供される。ホスト3は、CPU、メモリ、記憶装置、インターフェース、入力装置及び表示装置が備わるコンピュータ装置であり、ホストのクライアントは、ストレージ装置1から提供されるデータを利用して、データベースサービスやウェブサービス等を利用できる。
ホストと記憶装置6の間でのデータ入出力の処理は例えば以下のようになる。例えば、コントローラ10のCPU101が、あるホスト3から受信したデータ入出力命令をライト命令と認識した場合、ライト命令をメモリ102に書き込むと共に、データ転送コントローラ104をして、ホストから受信したライトデータをキャッシュメモリ107に書き込み、そしてCPU101はホストにライト命令を実行した旨を報告する。
次いで、CPU101は、データ転送コントローラ104をして、キャッシュメモリ107からライトデータを読み出してこれを記憶装置20に書き込む。ホストからのリード命令の場合もこれに類する。すなわち、CPU101がリード命令を認識すると、リード命令をメモリ102に書き込むと共に、読み出し対象となるデータがキャッシュメモリ107に存在するかどうか調べる。キャッシュメモリに読み出しデータが存在する場合には、CPU101はデータ転送コンロトーラにこのデータをフロントエンドインターフェースを介して送信するように命令する。データ転送コントローラ104は、読み出しデータがキャッシュメモリ107に無い場合には当該データをディスク20から読み出してこれをホストに転送する。
次に、ストレージ装置1内での正ボリュームと副ボリュームとの関係を図2に示すブロック図に基づいて説明する。図2に示す関係は、管理情報としてメモリ102の所定領域に登録されている。すなわち、各ボリュームについて、正ボリューム又は副ボリュームの区別、副ボリュームの中で主ボリュームと従ボリュームとの区別、さらに、正ボリュームと副ボリュームとがペアの関係になっていることが、管理制御テーブルとして図1のメモリ102に格納されている。
符合Pは正ボリュームを示すものであり、Sは副ボリュームを示す。正ボリュームとは、ホスト3がストレージ装置1にリード又はライトする際にアクセスするボリュームである。副ボリュームは正ボリュームの複製としてのボリュームである。副ボリュームはS1ないしS3の複数がある。
S1はPと同期ペアの関係になっている主ボリュームである。ホスト3から正ボリュームPに対するライトコマンドがストレージ装置1に発行されると、ディスクアレイコントローラ10は正ボリューム(P)と副ボリューム(S1)の両方にライト処理を行う。このライト処理は好適には同期処理される。S1、S2、S3からなる複数の副ボリュームの各々は、正ボリューム(P)とデータの整合性を保障する同一グループの一員として定義付けられている。
S2及びS3で示される各副ボリュームは、正ボリューム(P)に対するライト処理に伴ってライトデータが格納される主ボリューム(S1)とは異なり、CPU101がバックグランド処理によって主ボリューム(S1)からライトデータをコピーすべき、主ボリュームS1に従属する従ボリュームである。但し、副ボリュームS1乃至S3は正ボリュームPに対してデータの整合性を保障されるグループとして定義されているので、これらボリュームは正ボリュームに対してペア設定がされている。勿論、主ボリュームS1の正ボリュームに対するペア設定の内容と、従ボリュームS2及びS3の正ボリュームPに対するペア設定の内容とは区別される。前者のペアが「同期ペア」であり、後者のペアが「非同期ペア」である。ボリューム管理テーブルには、ボリュームS1が同期ペアとして設定され、ボリュームS2及びS3が非同期ペアとして設定される。
図3は、S1,S2,及びS3の各副ボリュームが正ボリューム(P)と同期ペアの関係になっている従来の構成に係るブロック図である。図3の場合、ホスト3がストレージ装置1にライト命令を発行すると、ストレージ装置は、正ボリュームに対するライト処理(S30)と、三つの副ボリュームそれぞれに対するライト処理(S32―S36)を行う。即ち、ストレージ装置1はホストからライト命令を受ける都度合計4回のライト処理をフォアグランド処理として行なくてはならない。これでは、CPU104の負荷が増加すると共に、正ボリュームに対するI/O負荷も増加する。
これに対して、図2に示す本発明に係る実施形態によれば、CPU104は、ホストからライト命令を受ける都度、正ボリュームPと主ボリュームS1にライト処理を2回行えばよい。主ボリュームS1から他の副ボリュームS2、S3へのライトデータのコピーはバックグランド処理で行う。したがって、CPU及び正ボリューム(P)に対する負荷が増大することを共に防止する。ここで、バックグラウンド処理とは、例えば、コントローラがフォアグラウンド処理の背後でコントローラの稼動率が低いときに行う処理をいう。正ボリュームに対して同時にペアとなっている副ボリュームにおいて、バックグランド処理で主ボリュームから従ボリュームへコピーを行なうので、副ボリュームを正ボリュームからスプリット後直ちに副ボリュームをホストが使用することができる。
図2及び図3において、副ボリュームは正ボリュームに対するペアから分割(スプリット)されて、スプリットされた副ボリュームに対するホストからのアクセスが許容される。したがって、図3に係るストレージ装置では、副ボリュームが正ボリュームからスプリットされることに備えて、正ボリュームPに書き込まれたライトデータを全て副ボリュームに対して同期書き込みするか、同期ではなくとも相当短いタイミングで書き込む必要がある。これに対して、図2では、例えば、副ボリュームがスプリットされたタイミングで、主ボリュームから従ボリュームへライトデータを反映させればよい。したがって、従ボリュームへのライトデータの反映は、コントローラがバックグランド処理として行なえば良い。
主ボリューム(S1)から従ボリューム(S2、S3)へのライトデータを反映することは、ディスクアレイコントローラ10の負荷を軽減するために、例えば、ビットマップによって制御されている。図2において、符合20A,Bはビットマップを示している。ビットマップは、従ボリュームが主ボリュームに対して主ボリュームのどの領域のデータを共有しているかを示す制御情報である。
ビットマップとは複数のビットに係るマップであり、一つのビットが主ボリュームの論理アドレスのあるサイズのブロック(例えば、64キロビット/ブロック)に対応している。あるビット(BT)にフラグ“1”がセットされている場合は、主ボリュームのこのビット(BT)に対応する領域(A)に対応する従ボリュームの領域(B)が、主ボリュームの領域(A)に格納されているデータを共有していることを示している。
ホスト3から正ボリューム(P)にライトがあり、コントローラ10がこのライトデータを主ボリュームの領域(A)にライトした場合、コントローラは、従ボリュームの領域(B)にライトデータをライトすることなく、当該従ボリュームのビットマップ20の特定ビット(BT)に“1”をセットするだけである。ビットマップは各従ボリュームに対して設定されている。符合20Aは従ボリュームS2に対するビットマップであり、符合20Bは従ボリュームS3に対するビットマップである。
ビットマップはキャッシュメモリ107或いは制御メモリ102の管理領域に設定されている。ビットマップに対するフラグの設定はCPU101が制御プログラムに基づいてホストから発行されたライトコマンドに基づいて実行する。正ボリュームの論理アドレスと副ボリュームS1の論理アドレスとの間の対応関係、副ボリュームS1,S2,S3の相互間における論理アドレスの対応関係は、メモリ102に登録されている。CPU101は正ボリュームに対するライトアクセス先アドレスに基づいて、ビットマップ上で共有フラグをセットすべきビット位置を求める。
CPU101は、ホストからライト命令を受領した時、従来の構成(図3)のように、従ボリュームS2及びS3にライトデータを書き込むのではなく、従ボリュームに対するビットマップの特定ビットに主ボリュームとのデータを共有することを示すフラグをセットする。CPU101にとって従ボリュームの記憶領域にライトデータを書き込むことと比較して、ビットマップの特定ビットに共有ビット“1”をセットすることは短時間で済む事柄である。したがって、CPUに与えるI/O負荷増大はほぼ無いといえる。
主ボリュームから従ボリュームへのデータの反映は、コントローラ10が適宜行う。例えば、主ボリュームを正ボリュームのペアから切り離す(Split)場合である。または、CPUの稼動率が所定値以下の場合に行うようにしても良い。または、この反映は決められた時刻など時間的要素によって制御されても良い。従ボリュームは主ボリューム同様正ボリュームに対するデータについて整合性が確保されるグループであるために、主ボリュームから従ボリュームへのデータのコピーが必要になる。
主ボリュームが正ボリュームからスプリットされると、メモリの制御テーブルにおいて主ボリュームは従ボリュームへとその特性が変更され、従ボリュームが一つしかない場合にはその従ボリュームが主ボリュームへと、従ボリュームが複数ある場合にはいずれか一つの従ボリュームが主ボリュームへと、それぞれ特性が変更される。
CPU101は従ボリュームから主ボリュームになった副ボリュームに対して、元の主ボリュームから、ビットマップ情報を参照して、データのコピーを行う。即ち、ビットマップテーブルについて、CPUは“1”がたっているビットを検出し、先の主ボリュームのこのビットに対応する記憶領域からデータをリードして、このデータを新たに主ボリュームになった従ボリュームの対応する記憶領域に書き込む。
図4はホストのハードウエア構成を示すブロック図である。ホストはCPU41、メモリ42、ポート43を有するコンピュータであり、キーボードやマウス等の入力装置44、ディスプレイ等の出力装置45が接続されている。ホストは例えばパーソナルコンピュータやワークステーション、あるいはメインフレームコンピュータ、サーバ専用コンピュータ等である。メモリ42内に、正ボリューム及び副ボリュームを管理する管理プログラム46と、アプリケーションプログラム47とが格納され、CPU41は、これらプログラムを実行することにより各種機能を実現する。
正ボリューム及び副ボリューム管理プログラム46は、ストレージ装置に正ボリューム・複数の副ボリュームを作成させるための機能を実現するために、ストレージ装置に対する命令の発行処理とそのためのユーザインターフェイスの提供とを行うプログラムである。アプリケーションプログラム47は、ホストにおける通常の業務処理等を行うためのプログラムである。業務処理としては例えば銀行の自動預金預け払いシステムの処理等がある。ポート43は、ネットワーク3に接続されてストレージ装置や他のホスト等と通信を行うための通信インターフェースである。
通常時、ホストは、ストレージ装置に対してリード命令やライト命令等のデータ入出力命令を送信することで、記憶装置に記憶されているデータの読み出しや記憶装置へのデータの書き込みを行う。管理プログラムやアプリケーションプログラムは、図示しないCD−ROM等の記憶媒体や外部記憶装置から読み込んで、あるいはネットワークを通じて外部から受信して、メモリに格納される。
ホストのオペレータ(ユーザ)は、入力装置、出力装置、管理プログラム上のユーザインターフェイスを通じて、ストレージ装置に対し、データの記憶や副ボリュームに関する処理を行わせるための指示を入力する。例えば複数の副ボリュームを作成する処理を行わせるための指示を入力する。管理プログラム46上のユーザインターフェイスは、例えばWebブラウザ等のGUIや、コマンドユーザインターフェイス(CUI)等の形式である。管理プログラム46は、オペレータによる指示入力に基づき、対応する命令を発行する。ホストは、発行された命令をポート43、ネットワーク3を経由して処理の要求先となるストレージ装置のコントローラ10に送信する処理を行う。
送信された命令は、ストレージ装置のポートで受信される。管理プログラム46は、LUを単位として複数の副ボリュームを作成することをストレージ装置に要求できる。ホストを使用するオペレータ(ユーザ)は、管理プログラム46上のユーザインターフェイスを通じて、LU単位で処理を行なう。例えば、複製元となる正ボリュームや複製先となる副ボリュームを指定する場合に、論理ボリューム番号(LUN)をストレージ装置に指定する。
管理プログラム46は、ストレージ装置で管理している各種情報を一覧表示する処理をホストのCPUに行わせる。例えば、ストレージ装置に確保されているユーザが利用可能なLUを一覧表示可能であり、ユーザはこの中から複製対象となる正ボリュームや、正ボリュームに対する副ボリュームを選択できる。
次に、ストレージ装置における正ボリューム及び副ボリュームに対して設定されるペアに係る制御状態について説明する。ストレージ装置1では、ホストの管理プログラム46から発行される命令等に応じて、複数のボリュームについて設定されるペアについての制御状態(ペア制御状態)を遷移させ、ペア制御情報に応じた処理及び制御を正ボリューム及び副ボリュームに対して実行する。
ストレージ装置1のコントローラ10は、ホストのオペレータに指示された通りに、複数の記憶ボリュームについてのペアが確立される。正ボリュームと副ボリュームとの関係において、両者をペアの関係にする「ペア」状態、ペア状態を切り離す「スプリット」状態がある。
ストレージ装置では、ホストの管理プログラム46から発行される命令等に応じて、正ボリュームと副ボリュームのペアについてのペア制御状態を前記「ペア」状態及び「スプリット」状態の間で遷移させる。「ペア」状態では、正ボリュームに対するホスト装置からのライトアクセスに同期して、ライトデータを正ボリュームPと副ボリュームS1に2重書きする。
既述した図2に基づくと、複数の副ボリューム(S1、S2,S3)はそれぞれ正ボリュームとペア状態に設定されているが、主ボリュームS1と従ボリュームS2,S3のペア状態は区別される。主ボリュームS1は正ボリュームに同期ペアであるのに対して、従ボリュームS2及びS3は非同期ペアである。
従ボリュームに対しての非同期ペア状態では、ストレージ装置は副ボリュームS2,S3の記憶領域にライトデータを書き込むのではなく、ビットマップに主ボリュームに格納されたデータとの共有関係を記録するだけである。
ペアに対する制御では、ホストから発行された命令(ペア作成命令)等に応じて、ストレージ装置は正ボリュームと副ボリュームのペアを確立する処理を行う。例えば、ストレージ装置は、正ボリュームとペアとなるべき記憶ボリュームを新たに設定するか、あるいは既存の設定済み記憶ボリュームの中からこれを指定する。ストレージ装置は、コピー元となる正ボリュームからコピー先となる全ての副ボリュームへとデータをコピーする初期コピー処理を行う。そして、複数の副ボリュームについて、正ボリュームとのペア制御状態を「ペア(同期ペア又は非同期ペア)」として設定する。
「同期ペア」状態の副ボリュームでは、更新データ量や更新経過時間等の条件に基づくタイミングで実行される更新反映処理により、そのデータ内容は正ボリュームのデータ内容に近くなる。「同期又は非同期ペア」状態にある副ボリュームに対して、ホストはアクセスすることが禁止される。副ボリュームの正ボリュームに対するデータの一致性に影響がでるからである。
「ペア」状態において、例えばホストからペアの分割のための命令(スプリット命令)をストレージ装置が受領した場合に、CPU101によって目的となる副ボリュームが正ボリュームから解除(スプリット)され、これより目的となる副ボリュームについてのペア制御状態が「ペア」状態からスプリット迄の過渡中状態である「コピー中」状態を経由して、「スプリット」状態に遷移される。この遷移の過程では、従リュームと主ボリュームのデータ内容を完全に一致するように、主従の記憶ボリューム間で、共有データについてのデータコピー処理が行われる。スプリットされた以降の正ボリュームに対するライトデータは、差分ビットマップによって管理される。「スプリット」状態にある副ボリュームにおいては、正ボリュームにおけるデータ内容の更新と副ボリュームにおけるデータ内容の更新とが個別に行なわれる。
「スプリット」状態では、「ペア」状態において禁止されていた副ボリュームに対するホストからのアクセスが許可される。「スプリット」状態では、正ボリュームの更新が副ボリュームに反映されない。「スプリット」状態では、正ボリュームとは別に副ボリュームをデータのバックアップ等の処理に利用する。
正ボリュームへの更新がスプリットされた副ボリュームに反映されないので、スプリット状態の間に、正ボリュームへの更新により生じた副ボリュームへ未反映のデータは差分データとして管理される。スプリットがされた以降、正ボリュームに加わった新たな更新は、正ボリュームに対してペア設定されている副ボリュームには反映されている。スプリットされた副ボリュームを正ボリュームに対して再度ペア設定する場合には差分データをこの副ボリュームに反映して、この副ボリュームと正ボリュームとのデータイメージが一致するようにする。差分データは差分ビットマップ或いは差分ボリュームによって管理される。すなわち、副ボリュームを「スプリット」状態から再度「ペア」状態に遷移させる際に、ホスト或いは管理装置からのそのための命令(ペアリシンク命令)に基づき差分ボリュームなどによって、副ボリュームのデータの内容を正ボリュームの内容に一致させる同期化処理が行なわれる。これによりペア制御状態が「スプリット」状態から過渡中状態である「コピー中(リシンク中)」状態を経由して「ペア」状態に遷移される。
図5は、ペア制御状態に関連して、コントローラ10が管理するペア管理テーブル31を示す。ペア管理テーブル31は、ボリュームに対するペア関係を規定するものである。このテーブルにおいて指定されるべきペア管理情報として、ペア番号、正ボリューム番号、副ボリューム番号、主ボリューム又は副ボリュームの区別、ペア制御状態、グループ番号等の情報を保持する。番号を#で表わす。ペア番号は、ペアを識別する情報であり、ホスト側からこのペア番号を用いて処理対象となる論理ボリュームを指定可能である。主ボリューム又は副ボリュームは、この制御テーブルにおいて、例えば前者が「Main」、後者が「Sub」と設定される。
正ボリューム番号、副ボリューム番号は、それぞれ正ボリューム、副ボリュームを識別する情報である。ペア制御状態は、ストレージ装置1におけるペアについての制御状態を示す情報である。既述のように、「スプリット」、「同期ペア」、「非同期ペア」、「過渡中」がある。図5の例では、同期ペアに設定された副ボリューム(♯2)が主ボリュームであり、非同期ペアに設定された副ボリューム(♯3)が従ボリュームである。グループ番号は、当該ペアが属するコンシステンシグループを識別する情報である。
図5に示す例では、ペア番号#1のペアは、正ボリューム番号#1と副ボリューム番号#1の記憶ボリュームから成り、そのペア制御状態は「スプリット」状態で、グループ番号#1のコンシステンシグループに属する。ストレージ装置において、#1〜#nのn個のペアは、同一コンシステンシーグループが設定される。コンシステンシグループにあり、ペア制御状態が「同期ペア」又は「非同期ペア」となっている複数の副ボリュームが正ボリュームとデータが一致するボリュームとなる。
「スプリット」状態では、副ボリューム(♯1)への更新アクセスが許可され、正ボリュームと副ボリュームの更新が独立して扱われる。「スプリット」状態の間は、副ボリュームへのアクセスが許可されるので、例えば、ホストが正ボリュームのデータを利用してオンライン業務を継続しながら、それとは別に副ボリュームのデータを利用してバックアップ等の処理を行わせることができる。「スプリット」状態から「ペア」状態に遷移させるための命令(ペアリシンク命令)の受領に応じて、ストレージ装置1で、「スプリット」状態の間に正ボリュームに対して発生した更新に対応する差分データを副ボリュームに反映してデータ内容を一致させる再同期化処理が行われる。
ペア制御状態の設定、変更などは、ホストのオペレータが複製管理プログラムを通じて指示入力して対応する命令を発行することにより実行可能である。ディスクアレイコントローラ10はペア制御状態の遷移に伴いペア管理テーブル31のペア制御状態を更新する。なお、ペア制御状態の遷移は、ホストのオペレータからの指示入力に基づき開始される以外にも、所定時刻に自動的に開始されるように複製管理プログラム46を通じて設定することもできる。また、ホストの複製管理プログラムがネットワーク3を通じて接続される他のホストからの指示を受信してそれに基づき開始させることもできる。
ストレージ装置1における制御情報の一つであるコンシステンシグループについて説明する。正ボリュームとそれに対する複数の副ボリュームとの指定に応じて、一つのコンシステンシグループが形成される。このコンシステンシーグループは、正ボリュームに対するデータ整合性の保障の対象となる複数のペアの集まりである。既述のように、コンシステンシグループを形成する副ボリュームには正ボリュームの同期ペアとなる主ボリュームと、正ボリュームに対して非同期ペアとなる従ボリュームとからなる。
正ボリュームへのデータの書き込み、或いは更新は主ボリュームに反映される。正ボリュームへのデータの書き込み、或いは更新に係るデータは正ボリュームから従ボリュームにコピーされるのではなく、ディスクアレイコントローラは従ボリュームに対して設けられた共有ビットマップに、共有状態識別情報を設定する。ディスクアレイコントローラは、従ボリュームを主ボリュームに変更する、あるいは従ボリュームをコンシステンシグループから解放してホストからの業務処理に提供する際に、共有ビットマップを参照して主ボリュームからデータをコピーする。副ボリュームを正ボリュームに対するペアから解除したり、副ボリュームをコンシステンシグループから解除する際に、複数の副ボリューム間でデータのコピーが実行される。
ディスクアレイコントローラは正ボリュームにホストからのI/Oアクセスがあると、ボリューム管理テーブルを参照して正ボリュームにペア設定されている主ボリュームにライトデータを2重書きする。ディスクアレイコントローラは、主ボリュームが正ボリュームからスプリットされ従ボリュームが主ボリュームに変更されるなどのイベント発生時あるいは所定時刻、経過時間などのタイミングで、従ボリュームに対して主ボリュームのデータが共有ビットマップを参照して反映される。
図6はホストから正ボリュームに対するライト命令を発行した場合の処理を示すフローチャートである。図2にも基づいてこの処理を説明する。ホスト3はストレージ装置1の正ボリュームPに対してライト命令を発行する(600)。ストレージ装置1のコントローラ10は正ボリュームに対するライト命令及びライトデータを受領し、ライトデータをキャッシュメモリ107に書き込む(602)。コントローラ10は、ホストへライト命令を終了した旨を送信する(604)。コントローラ10はキャッシュメモリから正ボリューム及び主ボリュームにライトデータを書き込む(606)。CPU101は図5に示す制御テーブルを参照して、ライトデータを反映させるべき主ボリュームを認識する。図2においては、コントローラは副ボリュームS1を主ボリュームとして認識する。
次いで、コントローラ10は、従ボリュームS2に設定された共有ビットマップ上でのライトコマンドによって定まる特定ビットに共有フラグがセットされているか否かをチェックする(608)。このフラグがセットされている場合には、ステップ612に移行する。このビットがセットされていない場合には、当該ビットに共有フラグをセットする(610)。
コントローラはさらに従ボリュームS3に設定された共有ビットマップ上で特定ビットに共有フラグがセットされているか否かをチェックする(612)。共有フラグがセットされている場合には、ライト処理を完了し、このフラグがセットされていない場合には従ボリュームS3に対して設定されているビットマップの特定ビット領域に共有フラグを設定する。以上により、ホストのライトサクセスに対するストレージ装置の処理が完了する。
図7は主ボリュームである副ボリュームS1が正ボリューム(P)からスプリットされ、従ボリュームS2が主ボリュームに変更されて正ボリュームにペア形成される過程を示すブロック図である。
ホストはストレージ装置の主ボリュームS1に対してスプリット命令を発行する(S70)。コントローラ10は図5に示すテーブルにおいて、ボリュームS1に対する制御状態を変更する。この変更は、「過渡中」、次いで「スプリット」になるように行なわれる。「過渡中」の制御状態において、ボリュームS1に対する未反映のデータがあればキャッシュメモリからボリュームS1に書き込まれ、かつ、主ボリュームS1から従ボリュームS2及び従ボリュームS3に共有データがコピーされる(S72,S74)。
一方、従ボリュームS2に係るペア制御状態を「非同期ペア」から「同期ペア」に変更する。なお、コンシステンシグループ内において、少なくとも一つの副ボリュームが「同期ペア」として設定される。同期ペアが一つもないペア管理情報テーブルに対する変更のリクエストには、コントローラはエラーメッセージをホストに返信する。
主ボリュームがスプリットされた場合で従ボリュームが複数ある場合には、一つの従ボリュームが主ボリュームにとして変更される。この変更はホスト又は管理端末からのリクエストに応じてディスクアレイコントローラ10が行う。管理者は複数ある従ボリュームから一つの主ボリュームとなるべき副ボリュームを適宜選択する。ディスクアレイコントローラがこの選択を複数ある従ボリュームの特性を比較することによって行なっても良い。
例えば、複数の従ボリュームについて共有ビットマップを走査して、最も共有フラグが少ない従ボリュームを選択する。ストレージ装置がこの選択を行い、この選択を承認するかしないかを管理者が決定してもよい。図7では副ボリュームS2が主ボリュームに変更されている。
ディスクアレイコントローラ10は、主ボリュームS1に対するスプリット命令を検出すると、ディスクアレイコントローラは、ホストから正ボリュームに対するライトデータのうち、主ボリュームS1に対して未コピー分のデータがあるかをキャッシュメモリをチェックして判定する。未コピー分がある場合には、ディスクアレイコントローラは未コピーに係るデータをキャッシュメモリからリードしてこれを主ボリュームS1に書き込む。この処理はボリューム管理テーブルにおいて「過渡中」の際に行なわれる。「過渡中」で必要な処理が終了すると、ボリュームに対するステイタスが「スプリット」に変更される。
ディスアレイコントローラは、副ボリュームS2に係る共有ビットマップ20Aを参照する。ディスクアレイコントローラは、この共有ビットマップを最初から走査し、セットされた全ての共有フラグに対応する、副ボリュームS1の領域のデータを読み出し、これを副ボリュームS2の対応領域にコピーする(S72)。共有フラグが設定されていない領域に対しては、副ボリュームS2には副ボリュームS1のデータが既に反映されているか、又は主ボリュームS1に対してライトデータの書き込みが行なわれていないので、副ボリュームS1からのデータのコピーは行わない。ディスクアレイコントローラはこの処理をビットマップ全体について行う。コントローラは共有データのコピーが終了する都度該当する共有フラグをクリアする。
副ボリュームS3に対する共有データのコピーは、副ボリュームS3は従ボリュームのまま維持されるので必ずしも必須ではない。共有データのコピーが行なわれない場合、従ボリュームS3について主ボリュームS2に対する共有ビットマップを新たに設ける。
図7では、副ボリュームS2へ共有データのコピーと副ボリュームS3への共有データのコピーとをコントローラが共に実行していることを示している。符号20Bは従ボリュームS3に対して設定された共有ビットマップであり、S74は主ボリュームS1からボリュームS3に共有データがコピーされていることを示している。
次に、図8に示すように、ホストからストレージ装置へのオンラインアクセスをストレージ装置が維持するために、ディスアレイコントローラは、副ボリュームS2への共有データのバックグラウンドコピーの過程でホストからの正ボリュームPへのライトアクセス(S80)を許容する。この際、共有データのコピーが終了する前に、共有データをボリュームS1からコピーする必要がある、ボリュームS2の領域に対してこのライトデータを書き込むと、ボリュームS2のデータが正ボリュームPと一致しなくなる。そこで、この種の不都合を防止するために、ストレージ装置は以下のようにライトデータの副ボリュームS2に対する書き込みを制御する。
ディスクアレイコントローラは、共有データについてのバックグランドコピーが終了する前に、ホストから正ボリュームにライトアクセス(S80)があった場合には、このライトアクセスの主ボリュームS2に対するアクセス先について、共有データのコピーが必要か否か、かつ必要であればコピーが終わっているか否かをチェックする。
このチェックはコントローラが共有ビットマップ20Aを参酌することによって可能である。共有データのコピーが終わっていない場合には、共有フラグがセットされたままとなっている。コントローラはビットマップ20Aを参照し、クリアされることなくセットされたままとなっている共有フラグが少なくとも一つあるか否かを、制御プログラムに基づいてチェックする。当該フラグがある場合には、ボリュームS2においてライトアクセス先の領域に対する共有フラグであるか否かをチェックする。共有フラグが無い場合には、コントローラはライトデータを正ボリュームに続いて副ボリュームS2に書き込む。共有フラグがあった場合でも、ライトアクセス先の領域に対する共有フラグでないならば同様である。
一方、コントローラがビットマップを参照して、ボリュームS1からボリュームS2へ共有データのコピーが必要な、ボリュームS2における領域について共有ビットがクリアされることなくビットマップにおいて残っている場合には共有データのコピー(S82)が終了した後正ボリュームに対するライトデータをキャッシュメモリから読み出して書き込む(S84)。共有データについてコピーの終了の判定は、コントローラがビットマップ20Aを所定タイミングで繰り返し走査して、共有ビットがリセットされたことをチェックすることに基づく。
主ボリュームS2へのデータの書き込み先が副ボリュームS1からコピーの終わっている領域である場合には、既述のとおり、共有フラグがリセットされているので、コントローラは、正ボリュームへのデータの書き込みに続いて主ボリュームS2へのデータの書き込を行なう(S84)。
次いで、ディスクアレイコントローラは、従ボリュームS3に係る共有ビットマップに対して共有フラグをセットする。この共有ビットマップは新たに主ボリュームになったボリュームS2に対するものであるので、図7で説明したように、主ボリュームだったボリュームS1が正ボリュームからスプリットされる際に、コントローラはビットマップ20Bを参照してボリュームS3にボリュームS1から共有データをコピーしておくことが好ましい。
さらに、ディスクアレイコントローラは、従ボリュームS1に係る差分ビットマップ20Cに対して差分フラグをセットする。共有フラグ及び差分フラグは、正ボリュームPに対するライトデータに関連している。共有フラグは正ボリュームPに対して非同期ペアである副ボリュームS3に対して設定され、差分フラグは正ボリュームPからスプリットされた副ボリュームS1に対して設定される。差分フラグは副ボリュームが正ボリュームからスプリットされた以降の差分データに対応している。副ボリュームS1が正ボリュームに再度ペア設定される場合には差分ビットマップ及び差分フラグに基づいて差分データが副ボリュームS1に対して反映される。
なお、副ボリュームS1から副ボリュームS2へのコピーの間における正ボリュームへのライトアクセスに伴うライトデータをキャッシュメモリに格納し、このコピー終了後にライトデータを副ボリュームS2に反映してもよい。共有フラグの設定及び差分フラグの設定は、正ボリュームに対してライトアクセスがあった都度行う。
ボリュームS1から主ボリュームS2への共有データのコピーが終わる前に従ボリュームとなったボリュームS1に対するホストからのライトアクセスがあった場合の処理について、図9を利用して説明する。コントローラ10はホスト3からボリュームS1に対してライトコマンドを受領し(S90)、続いてライトデータを受領する(S92)。コントローラはライトデータをキャッシュメモリに格納しておき、ボリュームS1からボリュームS2への共有データのコピー(S94)が終了した後コントローラは、キャッシュメモリからライトデータを読み出しこれを従ボリュームS1に書き込む。このようにしないと、ボリュームS1のボリュームS2に対する共有データ(正ボリュームに対するライトデータ)がボリュームS1からボリュームS2へのコピー前に変化してしまうからである。
又は、コントローラは共有ビットマップ20Aを参照して、共有フラグが立っていない副ボリュームS1の領域に対するライトコマンドであれば、ライトデータをボリュームS1からボリュームS2に対するバックグランドコピーの過程でライトデータ(S92)をボリュームS1に書き込んでもよい。
次に、正ボリュームと同期ペアの関係でなく、非同期ペアの関係にある従ボリュームS2に対して、ホストからスプリット命令がストレージ装置に発行された場合の処理動作を図10に基づいて説明する。ストレージ装置は、副ボリュームS2を正ボリュームPからスプリットする場合は、副ボリュームS1の格納データと同じデータを持つように副ボリュームS2を処理する。
ホストから副ボリュームS2に正ボリュームからスプリットする命令(S100)が発行されると、ストレージ装置はボリューム管理テーブル中の副ボリュームS2の特性を「非同期ペア」から「過渡中」に変更する。コントローラは、管理テーブルの更新を契機にして、副ボリュームS2の共有ビットマップ20Aを参照して、同期ペアである主ボリュームS1から共有データを副ボリュームS2にコピーする(S102)。
図11に示すように、このコピーの過程で、ストレージ装置のリード・ライト管理プログラムが、ホストからライトコマンド(S110)を受領すると、ストレージ装置のボリューム管理プログラムに副ボリュームS1に対するライト先アドレスを通知する。ストレージ装置のリード・ライト管理プログラムは、ライトデータを副ボリュームS1に書き込む(S112)。
ボリューム管理プログラムは副ボリュームS2の共有ビットマップ20Aを参照して、主ボリュームS1におけるライト先アドレスに対して共有フラグがセットされているか否かをチェックしてその結果をリード・ライト管理プログラムに通知する。
リード・ライトコマンド管理プログラムは、共有フラグがセットされている、即ち、副ボリュームS1から副ボリュームS2に対する共有データのコピー(S114)が必要な場合は、そのコピーが終了するまで、副ボリュームS1へのライトデータの書き込みを待つ。なお、ストレージ装置は正ボリュームへのライト処理はライトコマンドの受領に続いて実行する。
一方、ライトデータのボリュームS1への書き込みが副ボリュームS2に対する共有ビットマップ20Aにおける共有フラグがセットされていない領域に対するものである場合には、副ボリュームS1から副ボリュームS2への共有データのコピーを待つことなく、ライトデータを主ボリュームS1に書き込んでよい。副ボリュームS2は既に正ボリュームからスプリットされているために、副ボリュームS2にライトデータを反映しなければならないということはない。副ボリュームS1から副ボリュームS2への共有データのコピーが終了すると、共有ビットマップ20Aの全フラグがクリアされる。
ストレージ装置は、副ボリュームS2が正ボリュームPからスプリットされている期間中における、正ボリュームに対するライトデータは、差分ビットマップ20Dに差分フラグをセットし、副ボリュームS2を正ボリュームに再度ペア設定(同期又は非同期ペア)する際に差分ビットマップを参照してスプリット期間中の差分データが副ボリュームS2に反映される。ストレージ装置のコントローラ10は差分ビットマップ20Dを参照して、差分データを副ボリュームS1から副ボリュームS2にコピーする。
図12は、副ボリュームS1から副ボリュームS2への共有データのバックグラウンドコピー(S124)中において、正ボリュームPからスプリットされた副ボリュームS2に対してホストからライトアクセス(120)が生じた際の制御を説明する機能ブロック図である。この場合も、図11と同様に、副ボリュームS1から共有データのコピーが必要な領域に対するライトアクセスか否かをストレージ装置が判定し、この判定が肯定された際には、ボリュームS1からのコピーが終了した後ディスクアレイ装置はライトデータを副ボリュームS2に書き込む(S122)。一方、副ボリュームS1からの共有データのコピーが必要でない領域に対するライトアクセスの場合はライトコマンド及びデータの受領に続いてストレージ装置はライトデータを副ボリュームS2に書き込む。
既述の実施形態では、コントローラは正ボリュームへのホストから送られたライトアクセスに基づくライトデータを副ボリュームの一つに書き込み、この副ボリュームに書き込まれたライトデータを副ボリュームの他のものにコピーするようにした。この実施形態の発展例あるいは変更例として、次のものがある。
コントローラ、あるいはプロセッサが2重化されている場合には、既述のバックグラウンド処理をホストからのライト・リード要求と、を別のコントローラ或いはプロセッサで行なうようにしても良い。
また、第1のホストから第1のライトアクセスが正ボリュームにあるが、第2以降のホストから第2以降のライトアクセス・リードアクセスが規定時間内に無い場合、コントローラが正ボリュームへのライト処理の際に、正ボリュームから他の全ての副ボリュームへコピーを行なうようにしてしても良い。一方、正ボリュームに対する負荷が高ければ、コントローラがバックグラウンド処理で副ボリュームから他の副ボリュームにライトデータのコピーを行なうようにする。すなわち、正ボリュームに対する、コントローラのアクセスの頻度、程度に応じて、既述のように副ボリュームに対するライトデータのコピーの方法を変えてもよい。また、コントローラに対する負荷に応じて、既述のように副ボリュームに対するライトデータのコピーの方法を変えてもよい。
また、従ボリュームを正ボリュームからスプリットした後、ホストからこの従ボリュームにリードアクセスがあった場合は、主ボリュームから共有データをリードした後リードデータをホストに返せばよい。あるいは、主ボリュームから共有データを未コピーの領域に対するホストからのリードアクセスの場合は、主ボリュームから共有データをリードしてこれをホストに返しても良い。
1:ストレージ装置、2:SAN、3:ホスト、4:LAN、5:管理用端末、20 ハードディスク、101 CPU、102 メモリ、104 データ転送コントローラ、107 キャッシュメモリ、P 正ボリューム、S1〜S3 副ボリューム
Claims (18)
- 記憶装置と、上位計算機に前記記憶装置の記憶領域を複数のボリュームとして提供し、前記上位装置の前記ボリュームに対するアクセスを制御する制御装置と、前記ボリュームを管理する管理情報が設定されたメモリと、を備え、前記制御装置は前記管理情報に基づいて前記上位装置から発行されたライトデータを前記ボリュームに書き込むことを制御するように構成されたストレージ装置において、
前記複数のボリュームは、前記上位装置がライトアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を有し、前記複数の副ボリュームは、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして構成されてなり、
前記制御装置は、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むように構成されてなる、
ストレージ装置。 - 前記管理情報は、前記複数のボリュームに対する管理テーブルであり、当該管理テーブルは、前記正ボリューム、前記副ボリューム、前記主ボリューム、そして前記従ボリュームの区別、さらに、前記複数の副ボリュームが前記正ボリュームに格納されたデータに対する整合性を保障するグループに属すること、を含む情報である、請求項1記載のストレージ装置。
- 前記制御装置は、前記従ボリュームが前記主ボリュームと共有するデータを、前記主ボリュームから前記従ボリュームに複写してなる請求項1記載のストレージ装置。
- 前記制御装置は、前記正ボリュームに対する前記ライトデータを前記従ボリュームに書き込むことなく、前記共有データとして前記主ボリュームに書き込む請求項3記載のストレージ装置。
- 前記制御装置は、前記主ボリュームを前記正ボリュームに同期ペアとして、そして、前記従ボリュームを前記正ボリュームに非同期ペアとして、前記管理情報に設定する請求項4記載のストレージ装置。
- 前記制御装置は、前記主ボリュームについて前記同期ペアを解除した際に前記従ボリュームを前記非同期ペアから前記同期ペアに変更する、請求項5記載のストレージ装置。
- 前記制御装置は、前記主ボリュームから前記従ボリュームへの前記共有データの複写をバックグランド処理として実行する請求項4記載のストレージ装置。
- 前記制御装置は前記従ボリュームが前記共有データの前記主ボリュームにおける所在を識別するための識別情報を前記管理情報として前記メモリに設定してなる請求項5記載のストレージ装置。
- 前記制御装置は、前記識別情報をビットマップにフラグとして設定し、このフラグに対応する前記主ボリュームの論理アドレスから前記共有データを読み込んで、当該共有データを前記従ボリュームの当該共有データが格納されるべき論理アドレスに当該共有データを複写する、請求項8記載のストレージ。
- 前記制御装置は、前記主ボリュームについて前記同期ペアを解除する際に、前記主ボリュームから前記共有データを前記従ボリュームに複写し、当該共有データが書き込まれた前記従ボリュームを前記正ボリュームに対して同期ペアとして前記管理情報に設定する、請求項6記載のストレージ装置。
- 前記制御装置は、前記従ボリュームについて前記非同期ペアを解除する際に、前記主ボリュームから前記共有データを当該従ボリュームに複写する請求項5記載のストレージ装置。
- 前記制御装置は、前記従ボリュームが前記正ボリュームに非同期ペアとして設定された後の前記共有データを前記ビットマップで管理し、前記同期ペアが解除された主ボリューム、又は前記非同期ペアが解除された従ボリュームが当該解除の後、前記正ボリュームに対して前記同期ペアが設定されている前記主ボリュームに対して書き込まれたライトデータを差分データとして前記ペアが解除された前記主ボリューム又は従ボリュームに対して設定された差分ビットマップで管理する、
請求項9記載のストレージ装置。 - 前記主ボリュームから前記従ボリュームへの前記共有データの複写が終了する前に、前記正ボリュームに前記同期ぺアとなった当該従ボリュームに対して前記上位計算機から前記正ボリュームにライトアクセスがあった場合、前記制御装置は、前記共有データの複写が終了した後、前記ライトデータを前記同期ペアとなった前記従ボリュームに書き込む、請求項10記載のストレージ装置。
- 前記主ボリュームから前記従ボリュームへの前記共有データの複写が終了する前に、前記主ボリュームにライトアクセスがあった場合、前記制御装置は、前記共有データの複写が終了した後、前記ライトアクセスに基づくライトデータを前記主ボリュームに書き込む、請求項10記載のストレージ装置。
- 前記制御装置は、前記従ボリュームを前記正ボリュームに対するペアから解除する際に、前記主ボリュームから当該従ボリュームに前記共有データを複写する、請求項5記載のストレージ装置。
- 前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了する前に、前記従ボリュームへライトアクセスがあった場合、前記制御装置は前記主ボリュームから前記従ボリュームへの前記共有データの複写が終わった後、前記ライトアクセスに基づくライトデータを前記従ボリュームに書き込む、請求項15記載のストレージ装置。
- 前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了する前に、前記上位計算機から前記正ボリュームにライトアクセスがあった場合、前記制御装置は前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了した後、前記主ボリュームに前記ライトアクセスに基づくライトデータを書き込む、請求項15記載のストレージ装置。
- 上位計算機に対して記憶ボリュームを提供し、当該記憶ボリュームに対する前記上位計算機のライトアクセスを制御するストレージ装置を用いた記憶制御方法において、
前記ストレージ装置は、
前記記憶ボリュームとして、前記上位計算機がアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を作成するステップと、
複数の副ボリュームを、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして定義するステップと、
前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むステップと、
を実行してなる、
記憶制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007000746A JP2008171032A (ja) | 2007-01-05 | 2007-01-05 | ストレージ装置、及びこれを用いた記憶制御方法 |
US12/003,905 US8108630B2 (en) | 2007-01-05 | 2008-01-03 | Storage apparatus, and storage control method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007000746A JP2008171032A (ja) | 2007-01-05 | 2007-01-05 | ストレージ装置、及びこれを用いた記憶制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008171032A true JP2008171032A (ja) | 2008-07-24 |
Family
ID=39595264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007000746A Pending JP2008171032A (ja) | 2007-01-05 | 2007-01-05 | ストレージ装置、及びこれを用いた記憶制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8108630B2 (ja) |
JP (1) | JP2008171032A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010044494A (ja) * | 2008-08-11 | 2010-02-25 | Fuji Xerox Co Ltd | 記憶装置、記憶装置アレイ及びデータ処理システム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5286192B2 (ja) * | 2009-08-12 | 2013-09-11 | 株式会社日立製作所 | ストレージシステムの容量を管理する管理計算機及びストレージシステムの容量管理方法 |
US20160054946A1 (en) * | 2014-02-18 | 2016-02-25 | Hitachi, Ltd. | System and method for managing logical volumes |
US9582348B2 (en) | 2015-02-17 | 2017-02-28 | International Business Machines Corporation | Correcting overlapping data sets in a volume |
CN115495288B (zh) * | 2022-11-17 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据备份方法、装置、设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691245B1 (en) * | 2000-10-10 | 2004-02-10 | Lsi Logic Corporation | Data storage with host-initiated synchronization and fail-over of remote mirror |
JP4575059B2 (ja) * | 2004-07-21 | 2010-11-04 | 株式会社日立製作所 | ストレージ装置 |
JP4469252B2 (ja) * | 2004-10-19 | 2010-05-26 | 株式会社日立製作所 | ストレージネットワークシステム及びホスト計算機並びに物理パス割当方法 |
US7631021B2 (en) * | 2005-03-25 | 2009-12-08 | Netapp, Inc. | Apparatus and method for data replication at an intermediate node |
JP4727437B2 (ja) * | 2006-02-03 | 2011-07-20 | 株式会社日立製作所 | データベースを有するストレージシステムの記憶制御方法 |
-
2007
- 2007-01-05 JP JP2007000746A patent/JP2008171032A/ja active Pending
-
2008
- 2008-01-03 US US12/003,905 patent/US8108630B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010044494A (ja) * | 2008-08-11 | 2010-02-25 | Fuji Xerox Co Ltd | 記憶装置、記憶装置アレイ及びデータ処理システム |
US8560745B2 (en) | 2008-08-11 | 2013-10-15 | Fuji Xerox Co., Ltd. | Storage device, storage device array and data processing system |
Also Published As
Publication number | Publication date |
---|---|
US20080168240A1 (en) | 2008-07-10 |
US8108630B2 (en) | 2012-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7673107B2 (en) | Storage system and storage control device | |
US8843715B2 (en) | System managing a plurality of virtual volumes and a virtual volume management method for the system | |
US9329795B2 (en) | Logical volume transfer method and storage network system | |
JP4575059B2 (ja) | ストレージ装置 | |
US7769968B2 (en) | Storage control system | |
US10152281B2 (en) | Systems, devices, apparatus, and methods for transparently inserting a virtual storage layer in a fibre channel based storage area network while maintaining continuous input/output operations | |
US20070277011A1 (en) | Storage system and data management method | |
US20070038748A1 (en) | Storage control method and storage control system | |
JP2015506506A (ja) | データ管理サービスを提供するシステム、および方法 | |
JP2008171032A (ja) | ストレージ装置、及びこれを用いた記憶制御方法 | |
US20120059987A1 (en) | Storage system, copy method, and primary storage apparatus | |
JP4604068B2 (ja) | ストレージ装置 | |
US7191278B2 (en) | Method for data accessing in a computer system including a storage system | |
US7219204B2 (en) | Dynamic, policy-based control of copy service precedence | |
US7130931B2 (en) | Method, system, and article of manufacture for selecting replication volumes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090220 |