JP4715286B2 - 計算機システムおよび計算機システムの制御方法 - Google Patents

計算機システムおよび計算機システムの制御方法 Download PDF

Info

Publication number
JP4715286B2
JP4715286B2 JP2005130732A JP2005130732A JP4715286B2 JP 4715286 B2 JP4715286 B2 JP 4715286B2 JP 2005130732 A JP2005130732 A JP 2005130732A JP 2005130732 A JP2005130732 A JP 2005130732A JP 4715286 B2 JP4715286 B2 JP 4715286B2
Authority
JP
Japan
Prior art keywords
transfer
volume
storage device
storage
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.)
Expired - Fee Related
Application number
JP2005130732A
Other languages
English (en)
Other versions
JP2005353044A (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 JP2005130732A priority Critical patent/JP4715286B2/ja
Priority to EP05010277A priority patent/EP1619594B1/en
Priority to DE602005024212T priority patent/DE602005024212D1/de
Priority to US11/250,367 priority patent/US8032729B2/en
Publication of JP2005353044A publication Critical patent/JP2005353044A/ja
Application granted granted Critical
Publication of JP4715286B2 publication Critical patent/JP4715286B2/ja
Priority to US13/239,982 priority patent/US8307185B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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/2071Error 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 a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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/2069Management of state, configuration or failover

Description

本発明は、計算機と記憶装置とから構成される計算機システムに関し、さらに詳細には計算機システムにおける複製データの転送技術に関する。
従来の計算機システムでは、第1の計算機が接続されている第1の記憶装置から第2の計算機が接続されている第2の記憶装置に対して複製データを転送する場合、第1の計算機と第2の計算機とを接続する通信線を介して複製データの転送が実行されている(例えば、特許文献1)。
米国特許5170480号公報
しかしながら、上記従来の計算機システムにおける第1の計算機に要求される主たる処理は、入力に対する演算処理並びに第1の記憶装置に対する演算処理結果(データ)の書き込み処理にある。一方、上述のように、第1の計算機は第1の記憶装置に格納されているデータの複製データを第2の計算機を介して第2の記憶装置に書き込むことによって、第1の記憶装置に格納されているデータの信頼性を確保しなければならない。したがって、第1の計算機における処理負荷が増大し、その処理能力が飽和した場合には、計算機システム全体がダウンしてしまうおそれがある。
また、第1の計算機から第1の記憶装置に対するデータの書き込みは、第1の計算機と第1の記憶装置とを接続する通信線を介して実行され、一方、第1の記憶装置に格納されているデータの複製データの読み出しもまた前記通信線を介して実行される。したがって、データの書き込みに伴うデータ転送と複製データの読み出しに伴うデータ転送とが衝突し、第1の記憶装置に対する第1の計算機からのデータ参照、データ更新に要する時間が長くなるおそれがある。
本発明は、上記課題を解決するためになされたものであり、記憶システムに接続されている計算機に負荷を掛けることなく複数の記憶装置間でデータの転送、データの複製を実行することを目的とする。
上記課題の少なくとも一つを解決するために、本発明の第1の態様に係る記憶システムは、データを格納するデータ格納領域と、前記第2の記憶装置へ転送すべきデータを格納する転送データ格納領域と、前記第2の記憶装置との間で通信線を介してデータを送受信する第1の送受信部とを備える第1の記憶装置と、データを格納するデータ格納領域と、前記第1の記憶装置から転送されたデータを格納する転送データ格納領域と、前記転送データ格納領域として割当て可能な予約領域とを備える第2の記憶部と、前記転送データ格納領域に対する前記予約領域の割当ておよび割当ての解除の実行指示を外部装置から受け取る第2の実行指示受信部と、前記転送データ格納領域に対する前記予約領域の割当ておよび割当ての解除を実行する第2の予約領域管理部と、前記第1の記憶装置との間で通信線を介してデータを送受信する第2の送受信部とを備える第2の記憶装置と、を備えることを特徴とする。
本発明の第1の態様に係る記憶システムによれば、第2の記憶装置は、転送データ格納領域に対する予約領域の割当ておよび割当ての解除の実行指示に従って転送データ格納領域に対する予約領域の割当ておよび割当ての解除を実行する第2の予約領域管理部を備えるので、複数の記憶装置間でデータの転送、データの複製を実行することができる。また、転送データ格納領域の容量不足による複数の記憶装置間におけるデータの転送、データの複製の停止を抑制または防止することができる。また、記憶システムに接続されている計算機に負荷を掛けることなく第1および第2の記憶装置間でデータの転送、データの複製を実行することができる。また、第1の記憶装置に格納されるデータの複製が第2の記憶装置40に転送されるので、第1の記憶装置で障害が発生し、データが消失した場合でも、第2の記憶装置40の転送ボリュームに既に転送されているデータを用いてリストア処理を行うことにより障害復旧を実現することができる。
本発明の第1の態様に記憶システムは、この他にも、方法、プログラム、およびプログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。また、本発明の他の態様は、後述する実施例を用いて明らかにする。
以下、本発明に係る計算機システムおよび計算機システムにおける予約領域の割当制御方法について図面を参照しつつ、実施例に基づいて説明する。
図1〜図4を参照して本実施例に係る計算機システム、計算機システムを構成する記憶装置、ホストコンピュータのハードウェア構成について説明する。図1は本実施例に係る計算機システムの概略構成を示す説明図である。図2は本実施例における第1のホストコンピュータの内部構成を示すブロック図である。図3は本実施例における第1の記憶装置の内部構成を示すブロック図である。図4は本実施例における第1の記憶装置を構成する第1ホストアダプタの内部構成を示すブロック図である。
計算機システム100は、第1のホストコンピュータ10と第1の記憶装置20とを備
える第1の計算機システム101と、第2のホストコンピュータ30と第2の記憶装置40とを備える第2の計算機システム102とを備えている。また、第1の記憶装置20と第2の記憶装置40とは記憶装置間回線50を介して接続されており、記憶システムを形成する。すなわち、本実施例においては、複数の記憶装置から構成されるシステムを記憶システムという。さらに、第1の記憶装置20および第2の記憶装置40には各記憶装置20、40を動作の制御、状態の管理を行うための第1のコンソール51、第2のコンソール52がそれぞれ接続されていても良い。一般的には、第1の計算機システム101には、第1のホストコンピュータ10において実行された演算結果としてのデータが格納され、第2の計算機システム102には、第1の計算機システム101に格納されているデータの複製データ(転送フレーム)が格納される。したがって、第1の計算機システム101は、正計算機システム101(正ホストコンピュータ、正記憶装置)と呼ばれることがあり、第2の計算機システム102は副計算機システム102(副ホストコンピュータ、副記憶装置)と呼ばれることがある。
第1のホストコンピュータ10は、第1の記憶装置20と第1の信号線14を介して接続されている。第1のホストコンピュータ10において実行された演算処理結果としてのデータは、第1の信号線14を介して第1の記憶装置20に送信され、格納される。第1のホストコンピュータ10は、図2に示すように、各種演算処理を実行するプロセッサとしての中央演算装置(CPU)11、メモリ12、第1の記憶装置20との間でデータ、コマンドの送受信を実行するためのI/Oポート13を備えている。メモリ12は、CPU11において実行される各種アプリケーションプログラム、予約領域管理情報121、グループ情報122、第1の記憶装置20におけるデータの格納、転送を制御するストレージ制御プログラム123を格納している。ストレージ制御プログラム123は、第1の記憶装置20を制御するためのプログラムであり、例えば、第1の記憶装置20における転送領域(転送ボリューム)の使用状況を監視する転送領域監視モジュール124、記憶装置20における予約領域(予約ボリューム)の割当、割当の解除を決定する予約領域管理モジュール125を含んでいる。
第2のホストコンピュータ30は、第1のホストコンピュータ10と同様の構成を備えており、図1に符号を付すことでその説明を省略する。
第1の記憶装置20が備える記憶領域について図1および図3を参照して説明する。第1の記憶装置20は、図3に示すように、物理的に複数のHDD26を備えているが、これらは全体として1つの論理的な記憶領域を形成し、さらに、複数の論理ボリュームに分割されて用いられる。各論理ボリュームは、例えば、図1に示すように、データ格納ボリュームD1、D2、D3、転送データ格納ボリュームT11、T12を形成している。また、データ格納ボリュームD1、D2と転送データ格納ボリュームT11とは第1の転送グループTG11を形成し、データ格納ボリュームD3と転送データ格納ボリュームT12とは第2の転送グループTG12を形成している。
本実施例における第1の記憶装置20はさらに、論理ボリュームの一部を予約ボリュームR11、R12として利用する。予約ボリュームR11、R12は、予約グループRG11を形成する。予約ボリュームR11、R12は、転送データ格納ボリュームT11、T12の使用状況に応じて、一時的な転送データ格納ボリュームとして各転送グループTG11、TG12に割当可能な論理ボリュームである。より具体的には、予約ボリュームR11、R12は、その使用率が所定値以上になった転送データ格納ボリュームに対して割り当てられる。本実施例では、複数の転送データ格納ボリューム、あるいは、1または複数の転送データ格納ボリュームと予約ボリュームとからなる論理ボリュームを仮想転送ボリュームと呼ぶ。また、割り当てられた予約ボリュームは、転送データ格納ボリュームの使用率が所定値未満となると、その割当が解除される。なお、図1では、説明を容易にするため、各論理ボリュームを概念的に記述している。
同様にして第2の記憶装置40もまた、複数の論理ボリュームから形成される記憶領域を備えている。各論理ボリュームは、例えば、図1に示すように、複製データ格納ボリュームC1、C2、C3、転送データ格納ボリュームT21、T22を形成している。また、複製データ格納ボリュームC1、C2と転送データ格納ボリュームT21とは第1の転送グループTG21を形成し、複製データ格納ボリュームC3と転送データ格納ボリュームT22とは第2の転送グループTG22を形成している。
本実施例における第2の記憶装置40はまた、論理ボリュームの一部を予約ボリュームR21、R22として利用する。予約ボリュームR21、R22は、予約グループRG21を形成する。予約ボリュームR21、R22は、転送データ格納ボリュームT21、T22の使用状況に応じて、一時的な転送データ格納ボリュームとして各転送グループTG21、TG22に割当可能な論理ボリュームである。予約ボリュームR21、22もまた、予約ボリュームR11、R12と同様にして、転送データ格納ボリュームT21、T22に対して割り当てられ、あるいは、割当が解除される。
各論理ボリュームの容量および記憶装置20内における物理的な格納位置(物理アドレス)は、記憶装置20内のHDD26を識別する番号(HDD番号)と、HDD26内の記憶領域を一意に示す数値、例えば、HDDの記憶領域の先頭からの位置によって指定することができる。また、第1のホストコンピュータ10が、第1の記憶装置20に格納されているデータを参照、更新する際に用いる論理アドレスは、論理ボリュームを識別する番号(論理ボリューム番号)と、論理ボリュームにおける記憶領域を一意に示す数値、例えば、論理ボリュームの先頭からの位置によって定義される。したがって、第1のホストコンピュータ10によって指定された論理アドレスを物理アドレスに変換することによって、HDD26の物理アドレスに対する書き込み並びに読み出しが実行される。なお、各論理ボリュームの物理アドレスは、後に詳述するボリューム情報として保存されている。
ここで、1または複数の論理ボリュームから構成されるグループという管理単位は、各論理ボリューム間におけるデータの更新順序を保持するために用いられる。すなわち、第1の記憶装置20におけるデータ格納ボリュームD1とD2の様に、第1のホストコンピュータ10から送信されたライトデータが書き込まれるデータ格納ボリュームが複数存在する場合、第1の記憶装置20における各データ格納ボリュームD1、D2への更新(書き込み)順序と、第2の記憶装置40における各複製データ格納ボリュームC1、C2への更新順序とは整合していることが要求される。そこで、データの更新順序を守る必要のある論理ボリュームを同一のグループに登録し、データの更新毎にグループ情報の更新番号を割り当てて、更新番号順に、第2の記憶装置40に対する複製データの書き込み処理を行う。
図1および図3を参照して、第1の記憶装置20の構成について説明する。第1の記憶装置20は、第1のホストアダプタ21、第2のホストアダプタ22、キャッシュ23、共有メモリ24、複数のディスクアダプタ25、複数のハードディスクドライブ(HDD)26、クロスバスイッチ27を備えている。各構成要素21〜25は、クロスバスイッチ27によって選択的に接続される。
第1のホストアダプタは、第1のホストコンピュータ10とキャッシュメモリとの間のデータ転送制御、第1の記憶装置20全体の動作制御を実行する。第1のホストアダプタ21は、図4に示すように、各種演算処理を実行するCPU211、メモリ212、第1のホストコンピュータ10との間でデータおよびコマンドの送受信を実行するためのI/Oポート217を備えている。メモリ212には、HDD26に対する読み出し、書き込み処理を実行するためのリード・ライト処理モジュール213、ホストコンピュータ10からの命令に従って転送ボリュームに対する予約ボリュームの割当、割当の解除を実行するための予約領域割当解除実行モジュール214を備えている。第1のホストコンピュータ10によって実行される転送領域監視機能、予約領域管理機能を第1の記憶装置20が備える場合には、メモリ212は、さらに、記憶装置20における転送領域(転送ボリューム)の使用状況を監視する転送領域監視モジュール215および記憶装置20における予約領域(予約ボリューム)の割当、割当の解除を決定する予約領域管理モジュール216を備えても良い。
第2のホストアダプタ22は、第2の記憶装置40との間のデータ、コマンドの送受信制御を実行する。第2のホストアダプタ22も、第1のホストアダプタ21と同様にしてCPU、メモリ、I/Oポートを備えている。
キャッシュ23は、第1のホストコンピュータ10から送られてきたライトデータ、HDD26から読み出したデータを一時的に格納すると共に、ライトデータを管理するための更新情報を格納する。
共有メモリ24は、第1および第2のホストアダプタ21、22、ディスクアダプタ25が共有するメモリであり、後述するボリューム情報241、ペア情報242、グループ情報243、仮想論理アドレス変換テーブル244、ポインタ情報245といった各種情報を格納している。
ディスクアダプタ25は、各HDD26にそれぞれ備えられており、HDD26に対するデータの書き込み、HDD26からのデータの読み出しを制御する。ディスクアダプタ25もまた、第1のホストアダプタ21と同様にしてCPU、メモリ、I/Oポートを備えている。
第2の記憶装置40は、第2の記憶装置40と同様の構成を備えており、図3および図4に符号を付すことでその説明を省略する。
第2の計算機システム102について簡単に説明する。第2のホストコンピュータ30と第2の記憶装置40とは信号線24を介して接続されている。第2の記憶装置40には、第2のコンソール52が接続されている。既述のように、第2のホストコンピュータ30は、第1のホストコンピュータ10と同様の構成を、第2の記憶装置40は、記憶領域の論理ボリュームの構成を除いて、第1の記憶装置20と同様の構成を備えている。
図5〜図11を参照して、第1の記憶装置20の共有メモリ24に格納される各種情報について説明する。図5は共有メモリ24に格納されるボリューム情報241の一例を示す説明図である。図6は共有メモリ24に格納されるペア情報242の一例を示す説明図である。図7は共有メモリ24に格納されるグループ情報243の一例を示す説明図である。図8は仮想転送ボリュームの構成を概念的に示す説明図である。図9は仮想転送ボリュームの更新情報領域に格納される更新情報の一例を示す説明図である。図10は共有メモリ24に格納されるポインタ情報244の一例を示す説明図である。図11は仮想転送ボリュームにおける各アドレス位置を概念的に示す説明図である。
ボリューム情報241は、論理ボリュームを管理するための情報であり、各論理ボリューム毎に、ボリューム状態、フォーマット形式、容量、ペア番号、物理アドレスを含んでいる。ボリューム状態は、正常、正、副、異常、未使用のいずれかの値を取る。ボリューム状態が正常または正の場合には、その論理ボリュームに対してホストコンピュータ10が正常にアクセス可能であることを意味する。また、ボリューム状態が正の場合には、データの複製が行われている論理ボリュームであることを意味する。ボリューム状態が副の場合には、その論理ボリュームに対する、ホストコンピュータ10のアクセスを許可しても良いことを意味すると共に、複製に使用されている論理ボリュームであることを意味する。ボリューム状態が異常の場合には、その論理ボリュームに対してホストコンピュータ10が正常にアクセスできないことを意味する。たとえば、論理ボリュームを有するHDD26の故障による障害が該当する。ボリューム状態が未使用の場合には、その論理ボリュームは使用されていないことを意味する。ペア番号は、ボリューム状態が正または副の論理ボリュームに対して有効である、ペア情報242を特定するためのペア番号を含む。図5において、たとえば、論理ボリューム1は、フォーマット形式がOPEN3、容量が3GB、HDD26の先頭からデータが格納され、ホストコンピュータ10によるアクセス可能であり、データの複製対象である。
ペア情報242は、ペアとなる論理ボリュームを管理するための情報であり、図9に示すように、ペア状態、第1の(正)記憶装置番号、第1の(正)論理ボリューム番号、第2の(副)記憶装置番号、第2の(副)論理ボリューム番号、グループ番号、コピー済みアドレスを含む。ペア状態は、正常、異常、未使用、コピー未、コピー中のいずれかの値を取る。ペア状態が正常の場合には、第1の論理ボリュームの複製が正常に行われていることを意味する。ペア状態が異常の場合には、たとえば、記憶装置間回線50の断線による障害によって、第1の論理ボリュームの複製を行うことができないことを意味する。ペア状態が未使用の場合には、そのペア番号の情報は有効でないことを意味する。ペア状態がコピー中の場合には、後述する初期コピー処理中であることを意味する。ペア状態がコピー未の場合には、初期コピー処理が未だ実行されていないことを意味する。
第1の記憶装置番号は、第1の論理ボリュームを有する第1の記憶装置20を特定する番号を示す。第2の記憶装置番号は、第2の論理ボリュームを有する第2の記憶装置40を特定する番号を示す。グループ番号は、第1の記憶装置20の場合には、第1の論理ボリュームが属するグループ番号を示す、第2の記憶装置40の場合には、第2の論理ボリュームが属するグループ番号を示す。コピー済みアドレスは、作成された転送用の複製データの容量を示し、初期値は0である。図9において、たとえば、ペア情報におけるペア1は、データ複製対象となる論理ボリュームが、第1の記憶装置1の第1の論理ボリューム1であり、データの複製先(複製データ、転送フレームの転送先)が第2の記憶装置2の第2論理ボリューム1であり、正常にデータ複製処理が行われているこを示す。
グループ情報243は、グループを管理するための情報であり、図7に示すように、グループ状態、ペア情報、仮想転送ボリューム番号、更新番号を含む。グループ状態は、正常、異常、未使用のいずれかの値を取る。グループ状態が正常の場合には、ペア集合の少なくとも1つのペア状態が正常であることを意味する。グループ状態が異常の場合には、ペア集合の全てのペアが異常であることを意味する。グループ状態が未使用の場合には、そのグループ番号は有効でないことを意味する。ペア集合は、第1の記憶装置20の場合には、グループ番号が示すグループに属する全ての第1の論理ボリュームのペア番号を
全て示す。第2の記憶装置40の場合には、グループ番号が示すグループに属する全ての第2の論理ボリュームのペア番号を全て示す。仮想転送論理ボリューム番号は、そのグループ番号のグループに属する仮想転送論理ボリュームの番号を示す。ここで、仮想転送論理ボリュームは、各転送グループにおける複数の転送ボリュームを1つのボリュームとして取り扱うために形成される仮想的な転送ボリュームを意味する。更新番号は、初期値として1を取り、グループ内の第1の論理ボリュームに対してデータの書き込みが行われると、1つインクリメントされる。図10において、たとえば、グループ1は、ペア1、2のペア情報から第1の論理ボリューム1、2と、仮想転送ボリューム4とから構成されており、正常にデータ複製処理が行われていることを示す。
仮想転送ボリュームの構成および論理ボリューム(データ格納ボリューム)との関係について図8および図9を参照して説明する。仮想転送ボリュームは、更新情報を格納する更新情報格納領域とライトデータを格納するライトデータ格納領域とから構成されている。更新情報は、図9に示すように、ライトデータを管理するための情報でありライト命令の受信時刻、グループ番号、グループ情報243の更新番号、ライト命令の論理アドレス、ライトデータのデータサイズ、ライトデータを格納した仮想転送ボリュームの論理アドレスを含む。図9の例では、更新情報は1993年3月17日の22時20分10秒に受信したライト命令によって作成されている。受信されたライト命令は、データサイズ300のライトデータを論理ボリューム番号1の論理ボリュームが有する記憶領域の先頭から700の位置に格納することを指示している。仮想転送ボリュームにおけるライトデータの格納位置は、仮想転送ボリュームの記憶領域の先頭位置から1500〜1800の位置なる。また、更新情報は、この論理ボリュームはグループ1に属し、グループ1のデータ複製開始から4番目のデータ更新であることを示している。
ポインタ情報245は、グループ毎に保持され、そのグループの転送ボリュームを管理する情報であり、図10に示すように、更新情報領域先頭アドレス、ライトデータ領域先頭アドレス、更新情報最新アドレス、更新情報最古アドレス、ライトデータ最新アドレス、ライトデータ最古アドレス、リード開始アドレス、リトライ開始アドレス、ライトデータ領域終端アドレスを含む。これら各アドレスは、1または複数の論理ボリュームから形成される仮想転送ボリュームにおいて記憶位置を指定する仮想アドレスであり、後述する仮想論理アドレス変換情報244を用いて各論理ボリュームにおける論理アドレスへと変換される。仮想アドレスは、仮想転送ボリュームの番号と、仮想転送ボリュームにおける記憶領域先頭位置からの位置情報とによって指定される。
図11に示すように、更新情報は、更新情報領域先頭アドレス(0)からライトデータ領域先頭アドレスADs(700)までの領域に記憶される。更新情報領域はさらに、もっとも古い更新情報の先頭位置を示す更新情報最古アドレス、最新の更新情報の記憶開始位置を示す更新情報最新アドレス、リトライ開始アドレス、リード開始アドレスを備えている。
ライトデータは、ライトデータ領域先頭アドレスADs(700)〜ライトデータ領域終端アドレスADe(2700)までの領域に記憶される。ライトデータ最古アドレスADoは、最も古いライトデータの格納開始位置を示し、ライトデータ最新アドレスADnは、最新のライトデータの格納開始位置を示す。図11の例では、更新情報は仮想アドレス200〜500の範囲に記憶されており、ライトデータは仮想アドレス1300〜2200の範囲に記憶されている。
ここで、本実施例において用いられる仮想転送ボリュームは、転送ボリュームの使用状況に応じて予約ボリュームが割当、あるいは、予約ボリュームの割当が解除される、容量可変の仮想ボリュームである。したがって、元の転送論理ボリュームが0〜2700の記憶容量を有している場合に、容量Vの予約論理ボリュームが割り当てられると、仮想転送ボリュームの容量は追加された容量Vだけ増加する。この場合には、ライトデータ領域終端アドレスADeは、容量Vに相当する位置だけ加算された位置を示す。
一方、仮想転送ボリュームとして、既に予約論理ボリュームが割り当てられており、予約論理ボリュームの割当が解除されると、仮想転送ボリュームの容量は解除された容量Vだけ減少する。この場合には、ライトデータ領域終端アドレスADeは、容量Vに相当する位置だけ減算された位置を示す。
図12および図13を参照して仮想転送ボリュームの登録処理について説明する。図12は本実施例において実行される仮想転送ボリュームの登録処理の処理ルーチンを示すフローチャートである。図13は本実施例において用いられる仮想論理アドレス変換情報および論理ボリューム情報の一例を示す説明図である。
仮想転送ボリュームの登録処理に先立って、グループ作成処理、ペア登録処理がそれぞれ実行される。これら各処理は、ユーザによって第1のホストコンピュータ10または第1のコンソール51を介して実行される処理である。以下に簡単に説明する。
グループ作成処理では、第1の記憶装置20における、ユーザによって指定された未使用のグループの状態が、第1のホストアダプタ21によって正常に変更される。また、第1のホストアダプタ21からグループ作成指示を受けた、第2のホストアダプタ41によって、第2の記憶装置40における、ユーザによって指定された未使用のグループの状態が正常に変更される。
ペア登録処理もまた、第1のホストコンピュータ10または第1のコンソール51を介してユーザの指示によって開始される。第1のホストコンピュータ10は、データ複製対象を示す情報とデータ複製先を示す情報を指定し、ペア登録指示を第1の記憶装置20に行う。データ複製対象を示す情報は、データ複製対象の転送グループ番号と第1の論理ボリューム番号である。データ複製先を示す情報は、複製データを保持する第2の記憶装置40と転送グループ番号、第2の論理ボリューム番号である。
第1の記憶装置20は、ペア情報242からペア情報が“未使用”のペア番号を取得し、ペア状態を“コピー未”に、第1の記憶装置番号に第1の記憶装置20を示す第1の記憶装置番号を、第1の論理ボリューム番号に指示された第1の論理ボリューム番号を設定する。第1の記憶装置20はまた、第2の記憶装置番号に指示された第2の記憶装置番号を、第2の論理ボリューム番号に指示された第2の論理ボリューム番号を、グループ番号に指示されたグループ番号を設定する。第1の記憶装置20は、指示されたグループ番号のグループ情報のペア集合に取得したペア番号を追加し、第1の論理ボリューム番号のボ
リューム状態を“正”に変更する。
第1の記憶装置20は、第1の記憶装置20を示す第1の記憶装置番号、ユーザから指定されたグループ番号、第1の論理ボリューム番号、および第2の論理ボリューム番号を第2の記憶装置40に送信する。第2の記憶装置40は、ペア情報から未使用のペア番号を取得し、ペア状態を“コピー未”に、第1の記憶装置番号に、第1の記憶装置20を示す第1の記憶装置番号を、第1の論理ボリューム番号に指示された第1の論理ボリューム番号を設定する。第2の記憶装置40は、第2の記憶装置番号に第2の記憶装置40を示す第2の記憶装置番号を、第2の論理ボリューム番号に指示された第2の論理ボリューム
番号を、グループ番号に指示されたグループ番号を設定する。
第2の記憶装置40は、指示されたグループ番号のグループ情報のペア集合に取得したペア番号を追加し、第2の論理ボリューム番号のボリューム状態を“副”に変更する。以上の処理を全てのデータ複製対象のペアに対して行う。なお、論理ボリュームのグループへの登録と、論理ボリュームのペアの設定はそれぞれ個別に行ってもよい。
仮想転送ボリューム登録処理は、ホストコンピュータ10またはコンソール51を介してユーザによって実行開始が指示される、転送データ(転送フレーム)の保存に用いられる仮想転送ボリュームを転送グループTGに登録するための処理である。また、仮想転送ボリュームを構成する全ての転送ボリュームに対して実行される処理である。
ユーザによって仮想転送ボリューム登録処理が要求されると、ホストコンピュータ10は、仮想転送ボリューム登録指示を第1の記憶装置20に送り、第1の記憶装置20において仮想転送ボリュームの登録処理が実行される。仮想転送ボリューム登録指示は、登録先の転送グループの番号と登録すべき仮想転送ボリュームの番号とを含んでいる。
仮想転送ボリューム登録指示を受け取ると、ホストアダプタ21(CPU211)は、仮想転送ボリュームを構成する転送ボリュームのうち、今回、対象となる転送ボリュームの容量Vltが所定容量Vent以上であるか否かを判定する(ステップS100)。ホストアダプタ21は、Vlt≧Ventであると判定すると(ステップS100:Yes)、仮想論理変換情報2441を作成する(ステップS101)。ここで、仮想論理変換情報2441の各エントリには一定の容量が割り当てられており、所定の容量Ventは各エントリに割り当てられている容量に一致する。
一方、ホストアダプタ21は、Vlt<Ventであると判定すると(ステップS100:No)、エラー処理を実行して(ステップS109)本処理ルーチンを終了する。かかる場合には、対象となる転送ボリュームには仮想アドレスを割り当てる領域が存在しないからである。
仮想論理変換情報2441は、図13に示すように、仮想アドレス、有効ビット、オフセット、ディスクポインタとを含む情報である。仮想アドレスは、例えば、0000から00FFの値を取り、有効ビットは仮想アドレスが有効であるか否かを示し、1の場合には有効、0の場合には無効を意味する。オフセットは、同一の転送ボリュームに対して複数の仮想アドレス(エントリ)が割り当てられた時に付与される他のエントリに対する差分情報であり、ディスクポインタは各エントリに対応する論理ボリューム情報を指し示す情報である。
ホストアダプタ21は、転送ボリューム情報2442を作成する(ステップS102)。転送ボリューム情報2442は、図13に示すように、転送ボリュームの論理ボリューム番号、開始アドレス、ボリュームサイズを含んでいる。ホストアダプタ21は、仮想論理変換情報2441におけるエントリ#Nのディスクポインタに対象転送ボリューム情報を割り当てる(ステップS103)。ディスクポインタに対する転送ボリューム情報の割当ては、仮想転送ボリューム登録指示によって指定された仮想転送ボリューム番号と同値の番号の転送ボリュームが割り当てられるように実行される。
ホストアダプタ21は、対象転送ボリュームへのエントリの割当は初めてであるか否かを判定し(ステップS104)、初めてであると判定した場合には(ステップS104:Yes)、仮想論理変換情報2441における対象エントリのオフセットOff_#Nを0に設定する(ステップS105)。一方、ホストアダプタ21は、対象転送ボリュームへのエントリの割当が初めてでないと判定した場合には(ステップS104:No)、仮想論理変換情報2441における対象エントリのオフセットOff_#NをOff_#N-1+Ventに設定する(ステップS106)。すなわち、エントリ容量分だけ先のエントリに対してオフセットが与えられる。
ホストアダプタ21は、仮想論理変換情報2441中のエントリ#NのオフセットOff_#Nにエントリ容量Ventを加えた値が転送ボリュームの容量Vltを超えるか否か判定し(ステップS107)する。ホストアダプタ21は、Off_#N+Vent>Vltの場合には(ステップS107:Yes)、グループ情報243における指示されたグループ番号の仮想転送ボリューム番号に指示された仮想転送ボリューム番号を登録し、対応する論理ボリュームのボリューム情報のボリューム情報を正常に変更して、本処理ルーチンを終了する。一方、ホストアダプタ21は、Off_#N+Vent≦Vltの場合には(ステップS107:N
o)、ステップS103に移行して上記処理を繰り返して実行する。
第2の記憶装置40についても同様の仮想転送ボリューム登録処理が実行される。簡単に説明すると、第1の記憶装置20のホストアダプタ21は、ホストコンピュータ10から第2の記憶装置40に対する仮想転送ボリューム登録指示を受け取ると、第2の記憶装置40の第1のホストアダプタ41に転送する。第1のホストアダプタ41は、上記フローチャートを同様に実行する。
この処理ルーチンを終了すると、仮想論理変換情報2441と論理ボリューム情報2442とが関連付けられた仮想論理アドレス変換テーブル244が形成される。この仮想論理アドレス変換テーブル244を用いれば、仮想アドレスを指定することによって各論理ボリューム(転送ボリューム、予約ボリューム)における論理アドレスを指定することができる。
例えば、仮想アドレス(000201F2)が指定されると、上位2バイト(0002)と仮想論理アドレス変換テーブル244の仮想アドレスとが比較され、一致するエントリが特定される。図13の例では、仮想アドレス(0002)のエントリが該当する。したがって、転送ボリューム番号5の転送ボリューム情報がポインタによって指し示され、論理アドレスとしては、0(開始アドレス)+(0000)オフセット+(01F2)指定された仮想アドレスの下位2バイトとなる。
仮想転送ボリュームを構成する全ての転送ボリュームに対して仮想転送ボリューム登録処理が終了すると、初期化コピー処理が実行される。具体的には、第1のホストコンピュータ10または第1のコンソール51を介してユーザによって初期化コピー処理が指示される。初期化コピー指示には、データの複製処理を開始すべき転送グループ番号が含まれており、ホストアダプタ21は、指示されたグループに属する全てのペアについて、ペア情報におけるコピー済みアドレスを0にする。ホストアダプタ21は、ホストアダプタ41に対して後述する転送フレームリード処理、およびリストア処理の開始を指示する。
ホストコンピュータ10において実行される転送グループ監視処理について図14〜図17を参照して説明する。図14は本実施例においてホストコンピュータ10によって実行される転送グループ監視処理の処理ルーチンを示すフローチャートである。この処理は、各転送グループに対して実行されると共に、所定時間間隔で繰り返し実行される監視処理である。図15は転送グループの使用率および使用率の差分を含む使用率情報の一例を示す説明図である。図16は予約ボリュームの管理情報の一例を示す説明図である。図17は回線使用率情報の一例を示す説明図である。
第1のホストコンピュータ100(CPU11)は、図14または図15に示すように、第1の記憶装置20における転送グループTGの使用率Ur、使用率差分Urdを求める(ステップS200)。具体的には、使用率Ur、使用率差分Urdは、各転送グループにおける仮想転送ボリュームの使用率、使用率差分であり、それぞれ以下の式1〜式3を用いて算出される。
Figure 0004715286
第1のホストコンピュータ10は、Ur>所定値Ur_refかつUrd>0であるか否かを判定し(ステップS201)、Ur>Ur_refかつUrd>0であると判定した場合には(ステップS201:Yes)、対象転送グループに対する予約ボリュームの割当て要求を第1の記憶装置20に対して発行する(ステップS202)。すなわち、対象転送グループにおける仮想転送ボリュームの使用率Urが所定値Ur_refより大きく、使用率Urの差分(変動量)が正の場合には、第1のホストコンピュータ10は、仮想転送ボリュームが飽和状態にあると判定して、予約ボリュームの割当てを要求する。
第1のホストコンピュータ10は、予約ボリューム管理情報121における、割当て予約ボリュームの帰属先を対象転送グループに変更して(ステップS203)、ステップS200に移行する。予約ボリューム管理情報121は、図16に示すように予約ボリュームの番号、予約グループの割当先となる帰属先グループ、登録順序を含んでいる。図16の例では、予約ボリューム1と予約ボリューム2はともに転送グループ1に属しており、予約ボリューム1が予約ボリューム2よりも先に登録されている。
第1のホストコンピュータ10は、Ur>Ur_refかつUrd>0であると判定した場合には(ステップS201:Yes)、Ur≦Ur_refかつUrd≦0であるか否かを判定する(ステップS204)。第1のホストコンピュータ10は、Ur≦Ur_refかつUrd≦0であると判定した場合には(ステップS204:Yes)、対象転送グループに予約ボリュームが存在するか否かを判定する(ステップS205)。すなわち、対象転送グループにおける仮想転送ボリュームの使用率Urが所定値Ur_ref以下であり、使用率Urの差分(変動量)が0または負の場合には、第1のホストコンピュータ10は、仮想転送ボリュームが飽和状態にないと判定する。そして、既に割り当てられている予約ボリュームが存在するか否かを判定する。
第1のホストコンピュータ10は、対象転送グループに予約ボリュームが存在すると判定した場合には(ステップS205:Yes)、対象転送ボリューム、具体的には仮想転送ボリュームから、既に割り当てられている予約ボリュームの割り当て解除を要求する、割り当て解除要求を第1の記憶装置20に対して発行する(ステップS206)。第1のホストコンピュータ10は、予約ボリューム管理情報121における、割当て解除された予約ボリュームの帰属先をフリーに変更して(ステップS207)、ステップS200に移行する。
第1のホストコンピュータ10は、Ur≦Ur_refかつUrd≦0でないと判定した場合(ステップS204:No)、対象転送グループに予約ボリュームが存在しないと判定した場合(ステップS205:No)には、全ての転送グループについて使用率Ur、使用率差分Urdを求めたか否かを判定し(ステップS208)、終えていない場合には(ステップS208:No)、ステップS200に移行し、既述の処理を繰り返す。
第1のホストコンピュータ10は、全ての転送グループについて使用率Ur、使用率差分Urdを求めたと判定した場合には(ステップS208:Yes)、記憶装置間回線50の回線使用率Ulrを求める(ステップS209)。記憶装置間回線50の回線使用率は公知の方法によって算出される。回線使用率Ulrは、例えば、図17に示すように、その回線を使用している転送グループの番号と共に回線使用率情報として保持され得る。図17の例では、記憶装置間回線50は2重化されており、2つのパスを備えている。パス2は2つの転送グループ2、3によって共有されている。
第1のホストコンピュータ10は、回線使用率Ulrが判定値Ulr_refよりも大きいか否かを判定し(ステップS210)、Ulr>Ulr_refであると判定した場合には(ステップS210:Yes)、ステップS202、203を実行する。回線使用率Ulrは必ずしも現時点における転送グループの飽和状態を示すものではないが、転送グループが今後飽和するか否かを予測する判断材料の一つとして用いることができる。すなわち、回線使用率Ulrが大きければ、第1の記憶装置20から第2の記憶装置40への複製データ(転送フレーム)の転送が円滑に進行せず、第1の記憶装置20における転送ボリュームには転送フレームが蓄積することが予想される。
第1のホストコンピュータ10は、Ulr≦Ulr_refであると判定した場合には(ステップS210:No)、所定時間待機し(ステップS211)、全ての回線について回線使用率Urlを求めたか否か判定する(ステップS212)。第1のホストコンピュータ10は、全ての回線について回線使用率Urlを求めた場合には(ステップS212:Yes)、ステップS200に移行する。第1のホストコンピュータ10は、全ての回線について回線使用率Urlを求めていない場合には(ステップS212:No)、ステップS209に移行して、他の回線について回線使用率Ulrを求める。
図18を参照して、第1のホストコンピュータ10からの要求に応じて第1の記憶装置20において実行される、予約ボリュームの割当て、および割当て解除処理について説明する。なお、予約ボリュームの割当て・割当て解除処理は、第1のホストコンピュータ10からのアクセス命令受信処理の一部として実行される。図18は本実施例における第1の記憶装置20において実行されるアクセス命令受信処理における処理ルーチンを示すフローチャートである。
第1のホストアダプタ21は、第1のホストコンピュータ10から受信したアクセス命令が予約ボリューム割当要求であるか否かを判定する(ステップS300)。アクセス命令は、リード、ライト、予約ボリュームの割当要求・割当解除要求の命令、命令対象の論理アドレス、論理ボリューム番号、仮想アドレス、データ量を含んでいる。第1のホストアダプタ21は、受信したアクセス命令が予約ボリューム割当要求であると判定した場合には(ステップS300:Yes)、予約グループに空いてる予約ボリュームが存在するか否かを判定する(ステップS301)。第1のホストアダプタ21は、予約グループに空き予約ボリュームが存在すると判定した場合には(ステップS301:Yes)、対象となる転送グループTGに対して、予め登録されている予約ボリュームの割当を開始する(ステップS302)。
第1のホストアダプタ21は、図11に示すように、仮想転送ボリュームにおけるライトデータ領域終端アドレスADeに追加される予約ボリュームの容量を加算して新たなライトデータ領域終端アドレスADeとし、仮想転送ボリュームの容量を増加させる(ステップS303)。続いて、第1のホストアダプタ21は、仮想論理アドレス変換テーブル244に割り当てられた予約ボリューム情報を転送ボリューム情報として追加して、有効ビットを1にして(ステップS304)、本処理ルーチンを終了する。
予約ボリュームの割当について図19を参照して模式的に説明する。図19は転送グループに対する予約ボリュームの割当を模式的に示す説明図である。割当前は、転送グループTG1には、転送ボリュームT11が1つ存在している。また、予約グループRGには2つの予約ボリュームR11、R12が存在する。予約ボリュームの割当処理によって、予約ボリュームR11が転送グループTG1に割り当てられると、転送ボリュームT11と割り当てられた予約ボリュームR11(T13)とによって仮想転送ボリュームが形成される。この結果、仮想転送ボリュームの容量は、予約ボリュームR11(T13)の容量分だけ増大し、より多くの転送フレームを格納することができる。
第1のホストアダプタ21は、アクセス命令が予約ボリューム割当要求でないと判定した場合には(ステップS300:No)、アクセス命令は予約ボリューム割当解除要求であるか否かを判定する(ステップS305)。第1のホストアダプタ21は、アクセス命令が予約ボリューム割当解除要求であると判定した場合には(ステップS305:Yes)、対応する転送グループに予約ボリュームが存在するか否かを判定する(ステップS306)。第1のホストアダプタ21は、対応転送グループに予約ボリュームが存在すると判定した場合には(ステップS306:Yes)、仮想論理アドレス変換テーブル244における、割当解除の対象である予約ボリュームについて有効ビットを0に設定する。すなわち、割当解除の対象である予約ボリュームを転送ボリュームとして無効にする。対応転送グループに複数の予約ボリュームが存在する場合には、最も新しい時期に登録された予約ボリュームが対象となる。
第1のホストアダプタ21は、対象予約ボリューム情報が使用中であるか否かを判定し(ステップS308)、使用中の場合には待機する(ステップS308:Yes)。すなわち、対象予約ボリュームが転送ボリュームとして使用されているか否かを判定する。第1のホストアダプタ21は、対象予約ボリューム情報が使用中でなくなると(ステップS308:No)、対象予約ボリュームのオフセットが0であるか否かを判定する(ステップS309)。対象予約ボリュームは複数の仮想アドレスに対応する複数のディスクポインタによって指し示されている場合がある。そこで、オフセット0のディスクポインタによって指し示されている対象予約ボリューム情報の使用が終了するまで、すなわち、全ての対象予約ボリューム情報の使用が終了するまで待機する。
第1のホストアダプタ21は、オフセット=0であると判定した場合には(ステップS309:Yes)、対象予約ボリュームの割当を解除し(ステップS310)、本処理ルーチンを終了する。具体的には、図11に示すように、仮想転送ボリュームにおけるライトデータ領域終端アドレスADeから追加されていた予約ボリュームの容量を減算して、新たなライトデータ領域終端アドレスADeとする。
予約ボリュームの割当解除について図20を参照して模式的に説明する。図20は転送グループに割り当てられている予約ボリュームの割当解除を模式的に示す説明図である。解除前(割当中)は、転送グループTG1には、転送ボリュームT11と割り当てられた予約ボリュームT13(R11)とによって形成された仮想転送ボリュームが存在する。予約ボリュームの割当解除処理によって、転送グループTG1に対する予約ボリュームR11の割当が解除され、転送グループTG1には転送ボリュームT11のみが残る。この結果、仮想転送ボリュームの容量は、予約ボリュームR11(T13)の容量分だけ減少する。
第1のホストアダプタ21は、予約グループに予約ボリュームが存在しない場合(ステップS301:No)、および対応転送グループに割当済みの予約ボリュームが存在しない場合(ステップS306:No)には、予約ボリュームの割当、割当の解除を実行することができないので、エラー処理を実行して(ステップS312)、本処理ルーチンを終了する。エラー処理としては、たとえば、第1のコンソール51、第1のホストコンピュータ10に対する、予約ボリュームの割当・割当解除の実行不可能の通知が該当する。
ホストアダプタ21は、アクセス命令が予約ボリューム割当要求および予約ボリューム割当解除要求のいずれでもない場合には(ステップS305:No)、制御命令受信処理(ステップS320)を実行して本処理ルーチンを終了する。
制御命令受信処理について図21を参照して説明する。図21は本実施例において実行される制御命令受信処理の処理ルーチンを示すフローチャートである。以下、これらを用いて、第1の記憶装置20が、第1のホストコンピュータ10からデータ複製対象の論理ボリュームにライト命令を受信した場合の処理手順について説明する。
第1の記憶装置20の第1のホストアダプタ21は、受信したアクセス命令がライト命令であるか否かを判定し(ステップS400)、ライト命令の場合には(ステップS400:Yes)、アクセス命令によって指定されたデータ格納ボリュームのボリューム情報を参照する。第1のホストアダプタ21は、指定されたデータ格納ボリュームのボリューム状態が「正常」もしくは「正」以外の場合には(ステップS401:No)、指定されたデータ格納ボリュームへのアクセスは不可能なため、第1のホストコンピュータ10に異常終了を報知して(ステップ402)、本処理ルーチンを終了する。
第1のホストアダプタ21は、指定されたデータ格納ボリュームのボリューム状態が「正常」もしくは「正」の場合には(ステップS401:Yes)、キャッシュメモリ23を確保して第1のホストコンピュータ10からライトデータを受信する(ステップS403)。
第1のホストアダプタ21は、アクセス命令によって指定されたデータ格納ボリュームがデータ複製対象論理ボリュームであるか否か、すなわち、ボリューム状態が「正」であるか否か、を判定する(ステップS404。第1のホストアダプタ21は、指定されたデータ格納ボリュームがデータ複製対象論理ボリュームであると判定した場合には(ステップS404:Yes)、後述する転送フレーム作成処理を実行して(ステップS405)、ディスクアダプタ25に対してライト命令を送る(ステップS406)。
第1のホストアダプタ21は、指定されたデータ格納ボリュームがデータ複製対象論理ボリュームでないと判定した場合には(ステップS404:No)、ディスクアダプタ25に対してライト命令を送る(ステップS406)。
第1のホストアダプタ20は、第1のホストコンピュータ10に完了通知を送り(ステップS407)、本処理ルーチンを終了する。この後、ディスクアダプタ25は、リードライト処理により、HDD26にライトデータを書き込む。
ステップS400において、第1のホストアダプタ21は、アクセス命令がライト命令でないと判定した場合には(ステップS400:No)、アクセス命令が転送フレームリード命令であるか否かを判定する(ステップS408)。第1のホストアダプタ21は、アクセス命令が転送フレームリード命令であると判定した場合には(ステップS408:Yes)、後述する転送フレームリード処理を実行して(ステップS409)、本処理ルーチンを終了する。
一方、第1のホストアダプタ21は、アクセス命令が転送フレームリード命令でないと判定した場合には(ステップS408:No)、リード処理を実行して(ステップS410)、本処理ルーチンを終了する。
転送フレーム作成処理について図22を参照して説明する。図22は本実施例において実行される転送フレーム作成処理の処理ルーチンを示すフローチャートである。以下、これらを用いて、第1の記憶装置20が、第1のホストコンピュータ10からデータ複製対象の論理ボリュームにライト命令を受信した場合の処理手順について説明する。
第1のホストアダプタ21は、仮想転送ボリュームのボリューム状態が「正常」であるか否かを判定し(ステップS500)、正常である場合には(ステップS500:Yes)、アクセス命令に起因する転送フレーム作成処理であるか否かを判定する(ステップS501)。第1のホストアダプタ21は、仮想転送ボリュームのボリューム状態が「正常」でない場合には(ステップS500:No)、仮想転送ボリュームに転送フレームを格納することができないので、グループ状態を「異常」に変更し、処理を終了する。この場合、仮想転送ボリューム(を構成する転送ボリューム)を正常な論理ボリュームに変更す
ることが望ましい。
第1のホストアダプタ21は、今回の転送フレーム作成処理がアクセス命令に起因するものであると判定した場合には(ステップS501:Yes)、ライト命令に含まれる論理アドレスが初期コピー処理の対象であるか否かを判定する(ステップS502)。ライト命令によって指定されたデータ格納ボリュームのペア状態が「コピー未」または「コピー中」の場合には、後に初期コピー処理にて転送フレーム作成処理が実行される。したがって、ライト命令に含まれる論理アドレスが初期コピー処理の対象である場合には(ステップS502:Yes)、この時点では転送フレームを作成しない。第1のホストアダプタ21は、ライト命令に含まれる論理アドレスが初期コピー処理の対象でないと判定した場合、すなわち、ライト命令によって指定されたデータ格納ボリュームのペア状態が「正常」の場合には(ステップS502:No)、仮想転送ボリュームの更新情報領域に未使用領域が存在するか否かを判定する(ステップS503)。具体的には、第1のホストアダプタ21は、ポインタ情報245を参照して、更新情報最古アドレスと更新情報最新アドレスとが一致する場合には仮想転送ボリュームの更新情報領域には未使用領域が存在しないと判断する。
第1のホストアダプタ21は、仮想転送ボリュームの更新情報領域に未使用領域が存在すると判定した場合には(ステップS503:Yes)、仮想転送ボリュームのライトデータ領域にライトデータを格納可能であるか否かを判定する(ステップS504)。具体的には、第1のホストアダプタ21は、ポインタ情報245を参照して、ライトデータ最新アドレスADnとライトデータ容量との和が、ライトデータ領域終端アドレスADe以上となる場合には仮想転送ボリュームのライトデータ領域に対するライトデータの書き込みはできないと判断する。
第1のホストアダプタ21は、仮想転送ボリュームのライトデータ領域にライトデータを格納可能であると判定した場合には(ステップS504:Yes)、更新情報を格納する論理アドレスおよびライトデータを格納する論理アドレスを取得し、更新情報を作成する(ステップS505)。具体的には、対象転送グループのグループ情報243から現在の更新番号を取得し、1を加算した値をグループ情報243における更新番号に設定する。また、現在の更新情報最新アドレスに更新情報の容量を加算した値をポインタ情報245の更新情報最新アドレスに設定する。さらに、現在のライトデータ最新アドレスADnにライトデータの容量を加算した値をポインタ情報245のライトデータ最新アドレスADnに設定する。第1のホストアダプタ21は、これら数値とグループ番号等を用いて更新情報を作成する。
第1のホストアダプタ21は、ディスクアダプタ25に対して、更新情報およびライトデータを含むライト命令を送り(ステップS506)、本処理ルーチンを終了する。
第1のホストアダプタ21は、今回の転送フレーム作成処理がアクセス命令に起因するものでない、すなわち、初期コピー処理に起因すると判定した場合には(ステップS501:No)、仮想転送ボリュームの更新情報領域に未使用領域が存在するか否かを判定する(ステップS509)。
第1のホストアダプタ21は、仮想転送ボリュームの更新情報領域に未使用領域が存在すると判定した場合には(ステップS507:Yes)、更新情報を格納する論理アドレスを取得し、更新情報を作成する(ステップS509)。第1のホストアダプタ21は、ディスクアダプタ25に対して、更新情報を含むライト命令を送り(ステップS510)、本処理ルーチンを終了する。
第1のホストアダプタ21は、仮想転送ボリュームの更新情報領域に未使用領域が存在しないと判定した場合には(ステップS507:No)、転送フレーム作成失敗として(ステップS508)、本処理ルーチンを終了する。
転送フレームリード処理について図23を参照して説明する。図23は本実施例において実行される転送フレームリード処理の処理ルーチンを示すフローチャートである。以下、これらを用いて、第1の記憶装置20が、第2の記憶装置40から転送フレームリード命令を受信した場合の処理手順について説明する。転送フレームリード命令は、転送フレームリード命令であることを示す識別子、命令対象の転送グループ番号、リトライ指示の有無を含んでいる。
第1のホストアダプタ21は、第2の記憶装置40から転送フレームリード命令を受信すると、転送グループの状態は正常であるか否かを判定する(ステップS600)。第1のホストアダプタ21は、対象となる転送グループの状態が「正常」でない、すなわち、「障害」を示す場合には(ステップS600:No)、第2の記憶装置40に対象となる転送グループの状態を通知して(ステップS610)、本処理ルーチンを終了する。第2の記憶装置40は、受信したグループ状態に応じて処理を実行する。例えば、グループ状態が「障害」を示す場合には転送フレームリード処理を終了する。
第1のホストアダプタ21は、転送グループの状態が正常であると判定すると(ステップS600:Yes)、仮想転送ボリュームのボリューム状態が「正常」であるか否かを判定する(ステップS601)。第1のホストアダプタ21は、正常である場合には(ステップS601:Yes)、転送フレームリード命令がリトライ指示であるか否かを判定する(ステップS602)。
第1のホストアダプタ21は、仮想転送ボリュームのボリューム状態が「正常」でない場合には(ステップS601:No)、グループ状態を「異常」に変更し、第2の記憶装置40に仮想転送ボリュームの状態を通知して(ステップS610)、本処理ルーチンを終了する。第2の記憶装置40は、受信したボリューム状態に応じて処理を実行する。例えば、ボリューム状態が「異常」を示す場合には転送フレームリード処理を終了する。
第1のホストアダプタ21は、転送フレームリード命令がリトライ指示である場合には(ステップS602:Yes)、前回送信した転送フレームを第2の記憶装置40に対して再度送信する。第1のホストアダプタ21は、ディスクアダプタ25を介してリトライ開始アドレスの更新情報およびライトデータを読み取り(ステップS603)、読み取った更新情報およびライトデータを含む転送フレームを第2の記憶装置に送信して(ステップS604)、本処理ルーチンを終了する。
第1のホストアダプタ21は、転送フレームリード命令がリトライ指示でない場合には(ステップS602:No)、未送信転送フレームが存在するか否かを判定する(ステップS605)。具体的には、第1のホストアダプタ21は、ポインタ情報245におけるリード開始アドレスと更新情報最新アドレスとを比較し、両アドレスが等しい場合には全ての転送フレームを第2の記憶装置40に転送済みとなる。
第1のホストアダプタ21は、未送信転送フレームが存在する場合には(ステップS605:Yes)、ディスクアダプタ25を介してリード開始アドレスの更新情報、ライトデータを読み取り(ステップS606)、読み取った更新情報およびライトデータを含む転送フレームを第2の記憶装置に送信する(ステップS607)。第1のホストアダプタ21は、ポインタ情報245のリトライ開始アドレスにリード開始アドレスを設定し、リード開始アドレスには送信した更新情報の容量を加算した値を設定する。
第1のホストアダプタ21は、前回の転送フレームリード命令の処理時に、第2の記憶装置40に対して送信した転送フレームを格納していた仮想転送ボリュームの記憶領域を開放して(ステップS608)、本処理ルーチンを終了する。仮想転送ボリュームの記憶領域の開放処理は以下の通り実行される。先ず、ポインタ情報245における更新情報最古アドレスがリトライ開始アドレスに設定される。更新情報最古アドレスがライトデータ領域先頭アドレスADsと一致する場合には、更新情報最古アドレスは0とされる。ライトデータ最古アドレスADoは、前回の転送フレームリード命令に応じて送信したライトデータのデータ容量を加算した値に変更される。本実施例では、仮想転送ボリュームの使用状況に応じて、仮想転送ボリュームの容量を増減することができるので、ライトデータ最古アドレスADoが、仮想転送ボリュームの容量以上の論理アドレスとなることは原則としてない。
第1のホストアダプタ21は、未送信転送フレームが存在しない場合には(ステップS605:No)、全ての転送フレームを第2の記憶装置40に送信済みであるから、第2の記憶装置40に対して「転送フレーム無し」を通知する(ステップS609)。第1のホストアダプタ21は、転送フレームの記憶領域を開放して(ステップS608)、本処理ルーチンを終了する。
ディスクアダプタ25を介してリード開始アドレスの更新情報、ライトデータを読み取り(ステップS606)、読み取った更新情報およびライトデータを含む転送フレームを第2の記憶装置に送信する(ステップS607)。第1のホストアダプタ21は、ポインタ情報245のリトライ開始アドレスにリード開始アドレスを設定し、リード開始アドレスには送信した更新情報の容量を加算した値を設定する。
第1のホストアダプタ21は、前回の転送フレームリード命令の処理時に、第2の記憶装置40に対して送信した転送フレームを格納していた仮想転送ボリュームの記憶領域を開放して(ステップS608)、本処理ルーチンを終了する。
第1の記憶装置20に対する転送フレームリード命令送信処理について図24を参照して説明する。図24は本実施例において実行される転送フレームリード命令送信処理の処理ルーチンを示すフローチャートである。以下、これらを用いて、第2の記憶装置40が、第1の記憶装置20から転送フレームを読み出し、仮想転送ボリュームに格納する処理手順について説明する。
第2の記憶装置40における第1のホストアダプタ41は、第1の記憶装置20に対して送信した転送フレームリード命令に対する応答を受信する(ステップS700)。第1のホストアダプタ41は、応答が「転送フレーム無し」の場合には(ステップS701:
Yes)、所定時間後に第1の記憶装置20に対して転送フレームリード命令を再送信して(ステップS702)、ステップS700に移行する。指定した転送グループには、現在、転送フレームが存在しないので、待機するのである。
第1のホストアダプタ41は、応答が「転送フレーム無し」でない場合には(ステップ701:No)、応答が「指定した転送グループの状態が障害または未使用」であるか否かを判定する(ステップS703)。第1のホストアダプタ41は、応答が「指定した転送グループの状態が障害または未使用」である場合には(ステップS703:Yes)、転送フレームを受け取ることができないので、本処理ルーチンを終了する。
第1のホストアダプタ41は、応答が「指定した転送グループの状態が障害または未使用」でない場合には(ステップS703:No)、応答から、仮想転送ボリュームの状態が正常であるか否かを判定する(ステップS704)。第1のホストアダプタ41は、仮想転送ボリュームの状態が正常であるか否かを判定する(ステップS704)。
第1のホストアダプタ41は、仮想転送ボリュームの状態が正常でない、すなわち、異常の場合には(ステップS704:No)、仮想論理ボリュームに対して転送フレームを格納することができないので本処理ルーチンを終了する。この場合、仮想転送ボリューム(を構成する転送ボリューム)を正常な論理ボリュームに変更することが望ましい。
第1のホストアダプタ41は、仮想転送ボリュームの状態が正常である場合には(ステップS704:Yes)、後述する転送フレーム格納処理を実行する(ステップS705)。第1のホストアダプタ41は、転送フレーム格納処理が正常に終了した場合には(ステップS706:Yes)、第1の記憶装置20に対して転送フレームリード命令を送信して(ステップS707)、ステップS700に移行する。
第1のホストアダプタ41は、転送フレーム格納処理が正常に終了しなかった場合には(ステップS706:No)、第1の記憶装置20に対して、所定時間後にリトライ指示の転送フレームリード命令を送信して(ステップS708)、ステップS700に移行する。
転送フレーム格納処理について図25を参照して説明する。図25は本実施例において実行される転送フレーム格納処理の処理ルーチンを示すフローチャートである。
第1のホストアダプタ41は、ポインタ情報を参照して、仮想転送ボリュームの更新情報領域に未使用領域が存在するか否かを判定し(ステップS800)、仮想転送ボリュームの更新情報領域に未使用領域が存在しない場合には(ステップS800:No)、転送フレーム格納失敗として(ステップS801)、本処理ルーチンを終了する。
第1のホストアダプタ41は、仮想転送ボリュームの更新情報領域に未使用領域が存在する場合には(ステップS800:No)、ポインタ情報を参照してライトデータ領域にライトデータを格納可能であるか否かを判定する(ステップS802)。第1のホストアダプタ41は、ライトデータ領域にライトデータを格納可能でない場合には(ステップS802:No)、転送フレーム格納失敗として(ステップS801)、本処理ルーチンを終了する。
第1のホストアダプタ41は、ライトデータ領域にライトデータを格納可能できる場合には(ステップS802:Yes)、更新情報の修正、ポインタ情報の更新を実行する(ステップS803)。具体的には、第1のホストアダプタ41は、受信した更新情報におけるグループ番号を第2の記憶装置40におけるグループ番号に変更し、仮想転送ボリュームの論理アドレスは、ポインタ情報におけるライトデータ最新アドレスADnに変更する。また、第1のホストアダプタ41は、ポインタ情報における更新情報最新アドレスを現在の更新情報最新アドレスに更新情報の容量を加算した値に変更し、ライトデータ最新アドレスADnを現在のライトデータ最新アドレスADnにライトデータ容量を加算した値に変更する。
第1のホストアダプタ41は、ディスクアダプタ25に対して、更新情報およびライトデータの書き込みを命令し(ステップS804)、本処理ルーチンを終了する。
リストア処理について図26を参照して説明する。図26は本実施例において実行されるリストア処理の処理ルーチンを示すフローチャートである。
第1のホストアダプタ41は、対象となる転送グループのグループ状態が「正常」であるか否かを判定し(ステップS900)、グループ状態が「正常」でない場合、例えば、障害を示す場合には(ステップS900:No)、本処理ルーチンを終了する。
第1のホストアダプタ41は、対象となる転送グループのグループ状態が「正常」である場合には(ステップS900:Yes)、仮想転送ボリュームの状態は「正常」であるか否かを判定する(ステップS901)。第1のホストアダプタ41は、仮想転送ボリュームの状態が「正常」でない、例えば、異常を示す場合には(ステップS901:No)、グループ状態を「異常」として、本処理ルーチンを終了する。
第1のホストアダプタ41は、仮想転送ボリュームの状態が「正常」である場合には(ステップS901:Yes)、リストア対象の転送フレームが存在するか否かを判定する(ステップS902)。第1のホストアダプタ41は、リストア対象の転送フレームが存在しない場合には(ステップS902:No)、ステップS900に移行する。
第1のホストアダプタ41は、リストア対象の転送フレームが存在すると判定した場合には(ステップS902:Yes)、ディスクアダプタ25を介して更新情報、ライトデータを読み取る(ステップS903)。第1のホストアダプタ41は、ディスクアダプタ25に対して第2の論理ボリュームのデータの更新を命令し(ステップS904)、転送フレームの記憶領域を開放して(ステップS905)、ステップS900に移行する。すなわち、リストア処理は継続される。
以上説明したように、本実施例に係る計算機システム100によれば、第1および第2の記憶装置における転送グループ(転送ボリューム)の使用状況および第1の記憶装置20と第2の記憶装置40とを接続する記憶装置間回線50の回線使用率を監視するので、転送ボリュームの飽和を第1および第2のコンソール51、52を介してユーザに対して事前に報知することができる。したがって、転送ボリュームの飽和に対する対策を施すことにより、転送フレームの転送の停止といった計算機システムにおける障害発生を回避することができる。
また、本実施例に係る計算機システム100では、転送ボリュームの使用状況、記憶装置間回線50の回線使用率に応じて、転送ボリュームが飽和する前に、転送ボリュームに対して予約ボリュームを割り当てることができる。すなわち、転送ボリュームを複数の論理ボリュームから構成される可変容量の仮想転送ボリュームとすることができる。したがって、転送ボリュームの容量不足を抑制または防止することができる。この結果、転送ボリュームの容量不足に起因する転送フレームの転送の停止の防止または抑制が可能となり、計算機システムの停止、計算機システムに発生する障害を防止または抑制することがで
きる。
さらに、上記実施例では、記憶装置間回線50を介して第1および第2の記憶装置20、40巻における転送フレーム(複製データ)の転送が実行されるので、第1のホストコンピュータと第1の記憶装置20間におけるデータの送受信に影響を与えることなく、データの複製処理を実行することができる。
また、予約グループに属する予約ボリュームを複数の転送ボリュームに対して動的に割当し、または割当を解除することができるので、記憶装置における最小限のボリュームリソースにて効率的な転送フレームの転送を実現することができる。
・その他の実施例:
上記実施例では、第1のホストコンピュータ10が仮想転送ボリュームの監視処理を実行しているが、第1の記憶装置20によって実行されても良い。かかる場合には、第1のホストコンピュータ10を仮想転送ボリュームの監視処理から解放することが可能となり、第1のホストコンピュータ10に要求されるアプリケーション実行処理の効率を向上させることができる。
上記実施例では、第1の記憶装置20における予約ボリュームの割当・割当解除処理を中心に説明したが、第2の記憶装置40においても同様にして転送グループに対する予約ボリュームの割当・割当解除処理が実行され得ることはいうまでもない。第2の記憶装置40では、第1の記憶装置20から転送された転送フレームは先ず、転送ボリュームに格納されるので、転送ボリュームが不足する場合には、転送フレームの転送が停止してしまう。したがって、かかる場合に容量が不足する転送ボリュームに対して予約ボリュームを割り当てることによって、転送フレームの転送の停止を抑制または防止することができる。
また、第1の記憶装置に格納されるデータの複製が第2の記憶装置40に転送されるので、第1の記憶装置で障害発生、データが消失した場合でも、第2の記憶装置40の転送ボリュームに既に転送されているデータに対してリストア処理を行うことにより障害復旧を実現することができる。
上記実施例では、第1のホストアダプタ21によって予約ボリュームの割当・割当解除処理が実行されているが、この処理をディスクアダプタ25が実行しても良い。
上記実施例において、第1のコンソール51は、図27に示すように、第1の記憶装置10における転送ボリューム(転送グループTG)の使用率、使用率差分、記憶装置間回線使用率、予約ボリュームの割当状況を表示しても良い。この構成を備えることによって、ユーザ(管理者)は、計算機システムの動的な作動状態を知ることが可能となり、その結果を踏まえて、記憶システム(記憶装置)の管理(HDDの増設、回線の見直し)を容易に行うことができる。
第2の記憶装置に加えて、第3、第4の記憶装置を備えても良い。かかる場合には、第2の記憶装置40は、第1の記憶装置20が備える転送フレームリード処理、転送フレーム作成処理、アクセス命令受信処理といった機能モジュールを備えればよい。
上記実施例では、第1の記憶装置20における予約ボリュームの割当、割当解除処理を中心に説明しているが、第2の記憶装置40においても同様にして予約ボリュームの割当・割当解除処理が実行されることはいうまでもない。すなわち、第2のホストコンピュータ30によって、第2の記憶装置40における転送グループTGの使用率、回線使用率が監視され、使用率、回線使用率が所定値を超えると転送グループTGに対する予約ボリュームの割当が要求され、使用率、回線使用率が所定値を下回ると転送グループTGに対する予約ボリュームの割当解除が要求される。第2の記憶装置40の第1のホストアダプタ41は、これら予約ボリュームの割当要求および割当解除要求に応じて、転送グループTGに対する予約ボリュームの割当、割当解除を実行する。なお、第2の記憶装置40によって転送グループTGの使用率、回線使用率が監視されても良い。
さらに、第1のホストコンピュータから第1の記憶装置を介して第2の記憶装置に予約ボリュームの割当要求および割当解除要求を行ってもよい。この場合、第1の記憶装置は、第2の記憶装置に対する要求であるか否か判断し、第2の記憶装置に対する要求であると判断した場合、第2の記憶装置にその要求を送る。
また、上記実施例で、S202で予約ボリュームを割り当てる場合、割当先の転送グループ内で使用されている転送ボリュームの物理構成(HDDなど)を考慮して、予約ボリュームを割り当ててもよい。
メモリ12は、図28に示す予約ボリューム管理情報121Aを保持する。図28の121Aは、図16の予約ボリューム管理情報に、論理ボリューム番号とHDD番号を追加したものである。論理ボリューム番号は、データ格納ボリューム、転送ボリューム、複製データ格納ボリュームや未割り当てボリュームを含む論理ボリュームそれぞれに付された識別子である。HDD番号は、その論理ボリュームがどのHDDで構成されているかを示す。
第1のホストコンピュータ10のCPU11は、転送グループ3に対して、予約ボリュームを割り当てる場合、第1のホストコンピュータ10のCPU11は、図28に示す予約ボリューム管理情報121Aの帰属先グループ番号が3である予約ボリュームを抽出し、そのHDD番号を取得する。図28では、転送グループ3に既に割り当てられている、予約ボリュームの予約ボリューム番号3で、HDD番号である1、2である。そして、CPU11は、帰属先ボリューム番号が、「Free」である予約ボリュームのうち、転送グループに既に割り当てられている予約ボリュームのHDD番号と重複しないHDDから構成される予約ボリュームを予約ボリューム管理情報121Aから抽出する。
CPU11は、抽出された予約ボリュームを転送グループ3に割り当てるよう割り当て要求を作成し、第1の記憶装置20にその要求を送信する。したがって、転送グループに登録済みの予約ボリューム0003はHDD1、2を使用しているため、同じHDDで構成される予約ボリューム0004は競合するため割り当てず、予約ボリューム0005はHDD番号が3であり、登録済みの予約ボリュームのHDD番号と異なる、予約ボリューム005を指定し、割り当てる割当て要求を、CPU11は、生成する。帰属先グループに属する複数の転送ボリューム間の物理構成を異なるものにすることで、HDDの並列動作が可能になり、転送ボリューム全体のIO性能を向上させることができる。
予約ボリュームの割当てに割当優先制御を追加してもよい。これは、予約グループ内の予約ボリュームの数を管理し、予約ボリュームの残数が指定した数よりも下回った場合、優先度の高い転送グループへの予約ボリュームの割当を優先する制御に移行する。上記の予約ボリュームの割当てに優先順位を設定し、優先制御を行うために、ホストコンピュータ10のメモリ12は、図29のような転送グループの優先制御情報126を保持する。図29は、転送グループの優先制御情報126は転送グループの番号、割当済み予約ボリューム数、優先順位で構成される。優先順位は、値が大きければ、予約ボリュームからの割り当てをより優先させることを示す。
CPU11は、上記優先制御情報126を参照し、指定した転送グループのうち、優先順位の値が一番大きい転送グループに予約ボリュームを割り当てる割当要求を作成する。その次に、優先順位の値が2番目に大きい転送グループに予約ボリュームを割り当てる割当要求を作成し、予約ボリュームの未割り当てボリュームがなくなるまで、優先順位の値が大きい転送グループから順に予約ボリュームを割り当てても良い。また、CPU11は、指定された複数の転送グループの優先順位の値の割合に応じて、割り当てる予約ボリュームの数や容量を決定してもよい。
また、CPU11は、上記優先制御情報126を参照し、転送グループの優先順位の値があらかじめ指定されている値より低い場合は、予約ボリュームを当該転送グループに対し割り当てない。優先順位の値が同じのものがある場合は割当予約ボリューム数が少ないものを優先して、予約ボリュームを割り当てるよう割当要求を作成してもよい。予約ボリュームの割当を優先する制御は、優先順位が特定の値よりも低い場合は割当を行わない等の処理がある。
このように、予約グループに予約ボリュームが不足する場合を考慮した割当制御を行うことで、ホストコンピュータ上で動作する主業務アプリケーションプログラムへの影響を軽減することが可能になる。
たとえば、主業務アプリケーションやミッションクリティカルに関する-データを格納するボリュームの優先順位の値が、大きい値で設定されることにより、記憶システムが、第2の記憶装置への転送を停止することを防止でき、障害発生した場合に、主業務アプリケーションやミッションクリティカルに関する-データの復旧を実現することができる。
第2の記憶装置40において、予約ボリュームの割当・割当解除処理が効果的に働く好適な例を図30に示す。図30は複数の第1の記憶装置20が複数の第2の記憶装置40と記憶装置間回線50で接続される構成で、特に複数の第1の記憶装置20Aと20Bが1の第2の記憶装置40に記憶装置間回線50A、50Bで接続される場合である。
図1と同様に第1の記憶装置20Aには転送ボリュームT11、データボリュームD1、D2、予約ボリュームR11、R12、転送グループTG13、予約グループRG13があり、第1の記憶装置20Bには転送ボリュームT12、データボリュームD3、予約ボリュームR13、R14、転送グループTG14、予約グループRG14があり、第2の記憶装置40には転送データ格納ボリュームT21、T22があり、複製データ格納ボリュームC1、C2、C3、転送グループTG23、TG24、予約グループRG23がある。
図30の構成で、たとえば記憶装置間回線50Aの回線速度が低下した場合を考える。この場合、転送グループTG24へのデータの転送量と、TG23へのデータの転送量に差が生じる。結果、第2の記憶装置40では、第1の記憶装置20Aから転送されるデータの受信が遅れる一方で、第1の記憶装置20Bから転送されるデータの受信は通常通り実施されるため、転送データ格納ボリュームT22には受信したデータが蓄積されていく。特に、ホストコンピュータ10からの書き込み順序を第2の記憶装置40で保証する場合、転送データ格納ボリュームT22に蓄積されたデータを第1の記憶装置20から転送されるデータの受信に依存することなく、複製データ格納ボリュームC3に格納することができないため、転送グループTG24にはデータが蓄積され続けることになり、予約ボリュームR21、R22を割り当てが必要になる。転送データ格納ボリュームT22から複製データ格納ボリュームC3に格納することができない理由は、第1のホストコンピュータ10が発行したデータの書き込み順序の関係が、C1、C2、C3のデータ間で崩れさせないためである。
図30の例とは異なる、第2の記憶装置40において予約ボリュームの割当・割当解除処理が効果的に働く好適な例として、データボリュームをコピー対象に新たに追加する場合がある。図1において、データボリュームD4を転送グループTG11に、複製データ格納ボリュームC4をTG21に追加する場合を考える。この場合、初期コピーがデータボリュームD4と複製データ格納ボリュームC4間で実施されるため、第2記憶装置40の転送データ格納ボリュームに大量のデータが第1の記憶装置20から転送される。この場合、記憶装置40は、転送グループ22に予約ボリュームの追加し、初期コピーを実行し、する。また、初期コピー終了後は第1記憶装置20からのデータ転送量が大幅に減ることが多いので、記憶装置40は、割り当てた予約ボリュームの解除を行う。
上記実施例では、予め予約グループとしてグループ分けされた予約ボリュームを用いて仮想転送ボリュームを形成しているが、予約ボリュームが不足する場合には、通常のボリュームを予約ボリュームに移行させても良い。かかる場合には、予約ボリュームが不足しても、転送ボリュームの不足を防止することができる。
上記実施例では、予約ボリュームの割当・割当解除処理がソフトウェア的に、すなわちコンピュータプログラムの態様にて実行されているが、上記各処理(ステップ)を実行する論理回路を備えたハードウェア回路を用いて実行されてもよい。かかる場合には、CPUの負荷を軽減することができると共に、より高速に各処理を実現することができる。
以上、実施例に基づき本発明に係る計算機システム、計算機システムの制御方法を説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
本実施例に係る計算機システムの概略構成を示す説明図である。 本実施例における第1のホストコンピュータの内部構成を示すブロック図である。 本実施例における第1の記憶装置の内部構成を示すブロック図である。 本実施例における第1の記憶装置を構成する第1ホストアダプタの内部構成を示すブロック図である。 共有メモリに格納されるボリューム情報の一例を示す説明図である。 共有メモリに格納されるペア情報の一例を示す説明図である。 共有メモリに格納されるグループ情報の一例を示す説明図である。 仮想転送ボリュームの構成を概念的に示す説明図である。 仮想転送ボリュームの更新情報領域に格納される更新情報の一例を示す説明図である。 共有メモリに格納されるポインタ情報の一例を示す説明図である。 仮想転送ボリュームにおける各アドレス位置を概念的に示す説明図である。 本実施例において実行される仮想転送ボリュームの登録処理の処理ルーチンを示すフローチャートである。 本実施例において用いられる仮想論理アドレス変換情報および論理ボリューム情報の一例を示す説明図である。 本実施例においてホストコンピュータによって実行される転送グループ監視処理の処理ルーチンを示すフローチャートである。 転送グループの使用率および使用率の差分を含む使用率情報の一例を示す説明図である。 予約ボリュームの管理情報の一例を示す説明図である。 回線使用率情報の一例を示す説明図である。 本実施例における第1の記憶装置において実行されるアクセス命令受信処理における処理ルーチンを示すフローチャートである。 転送グループに対する予約ボリュームの割当を模式的に示す説明図である。 転送グループに割り当てられている予約ボリュームの割当解除を模式的に示す説明図である。 本実施例において実行される制御命令受信処理の処理ルーチンを示すフローチャートである 本実施例において実行される転送フレーム作成処理の処理ルーチンを示すフローチャートである。 本実施例において実行される転送フレームリード処理の処理ルーチンを示すフローチャートである。 本実施例において実行される転送フレームリード命令送信処理の処理ルーチンを示すフローチャートである。 本実施例において実行される転送フレーム格納処理の処理ルーチンを示すフローチャートである。 本実施例において実行されるリストア処理の処理ルーチンを示すフローチャートである。 コンソールに表示される使用率、回線使用率の一例を示す説明図である。 ボリュームの物理構成を意識した予約ボリューム管理情報 転送グループの優先制御情報 複数の第1の記憶装置が複数の第2の記憶装置と接続される構成で、特に複数の第1の記憶装置が1の第2の記憶装置に接続される場合を示す図である。
符号の説明
10…第1のホストコンピュータ、121…予約領域管理情報、121A…ボリュームの物理構成を意識した予約ボリューム管理情報、122…グループ情報、123…ストレージ制御プログラム、124…転送領域監視モジュール、125…予約領域管理モジュール、126…転送グループの優先制御情報、20、20A、20B…第1の記憶装置、213…リードライト処理モジュール、214…予約領域割当解除実行モジュール、215…転送領域監視モジュール、216…予約領域管理モジュール、241…ボリューム情報、242…ペア情報、243…グループ情報、244…仮想論理アドレス変換テーブル、245…ポインタ情報、25…ディスクアダプタ、26…ハードディスクドライブ(HDD)、30…第2のホストコンピュータ、321…予約領域管理情報、322…グループ情報、323…ストレージ制御プログラム、324…転送領域監視モジュール、325…予約領域管理モジュール、40…第2の記憶装置
413…リードライト処理モジュール、414…予約領域割当解除実行モジュール、415…転送領域監視モジュール、416…予約領域管理モジュール、441…ボリューム情報、442…ペア情報、443…グループ情報、444…仮想論理アドレス変換テーブル、445…ポインタ情報、46…ハードディスクドライブ(HDD)、100…計算機システム、D1、D2、D3…データ格納ボリューム、T11、T12、T21、T22…転送ボリューム、C1、C2、C3…複製データ格納ボリューム、R11、R12、R13、R14、R21、R22…予約ボリューム、TG11、TG12、TG13、TG14、TG21、TG22、TG24…転送グループ、RG11、RG21、RG13、RG24…予約グループ

Claims (2)

  1. ホスト計算機と、前記ホスト計算機に接続され、複数の論理記憶領域を構成する複数のディスク装置を含む第1の記憶装置と、前記第1の記憶装置に接続され、前記第1の記憶装置の複数の論理記憶領域とは異なる複数の論理記憶領域を構成する複数のディスク装置、を含む第2の記憶装置と、を備える計算機システムであって、
    前記第1の記憶装置の複数の論理記憶領域のうちの2つ以上が、前記ホスト計算機から送信されたデータを格納する、複数のデータ格納領域を構成し、前記第1の記憶装置の複数の論理記憶領域のうちの、他の少なくとも1つが、前記データ格納領域に格納されているデータの複製データを構成する転送データを格納する転送データ格納領域を構成し、
    前記転送データ格納領域は、前記転送データとともに、データの更新順序を示す情報と、前記転送データを格納した転送データ格納領域の論理アドレス情報とを含む更新情報を格納し、
    前記第1の記憶装置は、前記転送データ格納領域に格納された前記転送データを、前記更新情報とともに、前記第2の記憶装置に転送し、
    前記第2の記憶装置の複数の論理記憶領域のうちの2つ以上が、前記第1の記憶領域の前記データ格納領域に格納されたデータの複製データを格納する、複数の複製データ格納領域を構成し、前記第2の記憶装置の複数の論理記憶領域のうちの、他の少なくとも1つが、前記第1の記憶装置から送信された前記転送データを格納する転送データ格納領域を構成し、
    前記第2の記憶装置は、前記転送データの更新順序に基づいて前記複数の複製データ格納領域を更新し、
    前記ホスト計算機は、前記論理記憶領域及び前記転送データ格納領域のそれぞれに対応するディスク装置を識別する情報を含む、ボリューム管理情報を備え、
    前記第1の記憶装置の転送データ格納領域の使用容量が、予め定められた所定量になった場合に、前記ホスト計算機は、前記ボリューム管理情報に基づいて、前記第1の記憶装置の複数の論理記憶領域から、前記転送データ格納領域に対応するディスク装置とは異なるディスク装置に対応する記憶領域を抽出し、前記抽出した記憶領域を、前記転送データ格納領域に追加で割当てるよう要求する割当て要求を送信し、
    前記割当て要求を受信した前記第1の記憶装置は、前記第2の記憶装置に前記転送データを転送するための、前記転送データ格納領域に対応するディスク装置の操作とともに、前記転送データ格納領域に追加で割り当てるための、前記抽出された記憶領域に対応するディスク装置の操作を行うことを特徴とする計算機システム。
  2. ホスト計算機に接続され、複数の論理記憶領域を構成する複数のディスク装置を含む第1の記憶装置と、前記第1の記憶装置に接続され、前記第1の記憶装置の複数の論理記憶領域とは異なる複数の論理記憶領域を構成する複数のディスク装置を含む、第2の記憶装置と、を備えるストレージシステムであって、
    前記第1の記憶装置の複数の論理記憶領域のうちの2つ以上が、前記ホスト計算機から送信されたデータを格納する、複数のデータ格納領域を構成し、前記第1の記憶装置の複数の論理記憶領域のうちの、他の少なくとも1つが、前記データ格納領域に格納されているデータの複製データを構成する転送データを格納する転送データ格納領域を構成し、
    前記転送データ格納領域は、前記転送データとともに、データの更新順序を示す情報と、前記転送データを格納した転送データ格納領域の論理アドレス情報とを含む更新情報を格納し、
    前記第1の記憶装置は、前記転送データ格納領域に格納された前記転送データを、前記更新情報とともに、前記第2の記憶装置に転送し、
    前記第2の記憶装置の複数の論理記憶領域のうちの2つ以上が、前記第1の記憶領域の前記データ格納領域に格納されたデータの複製データを格納する、複数の複製データ格納領域を構成し、前記第2の記憶装置の複数の論理記憶領域のうちの、他の少なくとも1つが、前記第1の記憶装置から送信された前記転送データを格納する転送データ格納領域を構成し、
    前記第2の記憶装置は、前記転送データの更新順序に基づいて前記複数の複製データ格納領域を更新し、
    前記第1の記憶装置の転送データ格納領域の使用容量が、予め定められた所定量になった場合に、前記第1の記憶装置は、前記第1の記憶装置の複数の論理記憶領域から、前記転送データ格納領域に対応するディスク装置とは異なるディスク装置に対応する記憶領域を、前記転送データ格納領域に追加で割り当てるよう要求する割当て要求を、前記ホスト計算機より受信し、
    前記割当て要求を受信した前記第1の記憶装置は、前記第2の記憶装置に前記転送データを転送するための、前記転送データ格納領域に対応するディスク装置の操作とともに、前記転送データ格納領域に追加で割り当てるための、前記抽出された記憶領域に対応するディスク装置の操作を行うことを特徴とするストレージシステム。
JP2005130732A 2004-05-11 2005-04-28 計算機システムおよび計算機システムの制御方法 Expired - Fee Related JP4715286B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005130732A JP4715286B2 (ja) 2004-05-11 2005-04-28 計算機システムおよび計算機システムの制御方法
EP05010277A EP1619594B1 (en) 2004-05-11 2005-05-11 Dynamic storage area allocation method for replicated data and computer system with multiple storage devices
DE602005024212T DE602005024212D1 (de) 2004-05-11 2005-05-11 Verfahren zur dynamischen Zuweisung von Speicher für replizierte Daten und Computersystem mit mehreren Speichereinheiten
US11/250,367 US8032729B2 (en) 2004-05-11 2005-10-17 Computer system and management method for the transfer and replication of data among several storage devices
US13/239,982 US8307185B2 (en) 2004-05-11 2011-09-22 Computer system and management method for the transfer and replication of data among several storage devices

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004140654 2004-05-11
JP2004140654 2004-05-11
JP2005130732A JP4715286B2 (ja) 2004-05-11 2005-04-28 計算機システムおよび計算機システムの制御方法

Publications (2)

Publication Number Publication Date
JP2005353044A JP2005353044A (ja) 2005-12-22
JP4715286B2 true JP4715286B2 (ja) 2011-07-06

Family

ID=35423345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005130732A Expired - Fee Related JP4715286B2 (ja) 2004-05-11 2005-04-28 計算機システムおよび計算機システムの制御方法

Country Status (4)

Country Link
US (2) US8032729B2 (ja)
EP (1) EP1619594B1 (ja)
JP (1) JP4715286B2 (ja)
DE (1) DE602005024212D1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
US7454585B2 (en) * 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
US7685378B2 (en) 2007-02-15 2010-03-23 Hitachi, Ltd. Methods and apparatus for adjusting a journal area for continuous data protection
JP2009122873A (ja) * 2007-11-13 2009-06-04 Hitachi Ltd ストレージシステム間でのリモートコピーを管理する装置
US8560578B2 (en) * 2008-06-26 2013-10-15 Microsoft Corporation Common block storage infrastructure
JP4870190B2 (ja) * 2009-04-27 2012-02-08 株式会社日立製作所 データ処理方法、計算機、及びデータ処理プログラム
JP5284905B2 (ja) * 2009-08-12 2013-09-11 富士通株式会社 データ移行方法、及びプログラム
CN103229134B (zh) 2010-08-11 2016-01-20 株式会社日立制作所 存储设备及其控制方法
US8639908B2 (en) * 2011-07-15 2014-01-28 International Business Machines Corporation Dynamically managing available data storage within an automated data storage system
US8954979B1 (en) * 2011-08-15 2015-02-10 Netapp, Inc. Method and system for managing resources in a network
JP5853819B2 (ja) * 2012-03-29 2016-02-09 富士通株式会社 制御プログラム、制御方法、記憶制御装置および情報処理システム
US9195409B2 (en) * 2012-05-01 2015-11-24 Enmotus, Inc. Storage system with load balancing mechanism and method of operation thereof
KR101999132B1 (ko) * 2012-12-17 2019-10-01 삼성전자주식회사 가상 머신 환경에서 메모리 관리 방법 및 장치
JP5853109B2 (ja) * 2012-12-28 2016-02-09 株式会社日立製作所 計算機、計算機システムの制御装置及び記録媒体
KR102014083B1 (ko) * 2012-12-31 2019-08-27 삼성전자주식회사 단말기의 메모리 관리방법 및 장치
JP6260407B2 (ja) * 2014-03-28 2018-01-17 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
JP2015204126A (ja) 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
US9940379B2 (en) * 2014-09-30 2018-04-10 International Business Machines Corporation Hybrid data replication

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181634A (ja) * 1998-12-18 2000-06-30 Nec Corp ミラーリング装置
JP2000259505A (ja) * 1999-03-11 2000-09-22 Nec Corp システム間のデータバックアップシステム及びその方法
JP2002189570A (ja) * 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
JP2002278819A (ja) * 2001-03-21 2002-09-27 Toshiba Corp スナップショットイメージの世代管理方法、記憶媒体、及び世代管理装置
JP2003526156A (ja) * 2000-03-09 2003-09-02 ストレイジ・テクノロジー・コーポレイション 転送中のデータのブリッジ・ボリューム及び内部スナップショット・コピーを使用して、一次記憶装置と二次記憶装置との間でデータを転送する方法及びそのシステム
JP2003296039A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5876959A (ja) * 1981-10-30 1983-05-10 Fujitsu Ltd デイスク制御方式
US5129088A (en) * 1987-11-30 1992-07-07 International Business Machines Corporation Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device
US5170480A (en) 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
JP3414218B2 (ja) 1997-09-12 2003-06-09 株式会社日立製作所 記憶制御装置
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6209002B1 (en) 1999-02-17 2001-03-27 Emc Corporation Method and apparatus for cascading data through redundant data storage units
JP2001297026A (ja) * 2000-04-11 2001-10-26 Hitachi Ltd 複数のデータベースマネージメントシステムを有する計算機システム
JP3705731B2 (ja) * 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
US6779058B2 (en) 2001-07-13 2004-08-17 International Business Machines Corporation Method, system, and program for transferring data between storage devices
JP2004013367A (ja) 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
JP4124348B2 (ja) 2003-06-27 2008-07-23 株式会社日立製作所 記憶システム
JP4412989B2 (ja) * 2003-12-15 2010-02-10 株式会社日立製作所 複数の記憶システムを有するデータ処理システム
JP2006302015A (ja) * 2005-04-21 2006-11-02 Hitachi Ltd ストレージシステム及びデータ管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181634A (ja) * 1998-12-18 2000-06-30 Nec Corp ミラーリング装置
JP2000259505A (ja) * 1999-03-11 2000-09-22 Nec Corp システム間のデータバックアップシステム及びその方法
JP2003526156A (ja) * 2000-03-09 2003-09-02 ストレイジ・テクノロジー・コーポレイション 転送中のデータのブリッジ・ボリューム及び内部スナップショット・コピーを使用して、一次記憶装置と二次記憶装置との間でデータを転送する方法及びそのシステム
JP2002189570A (ja) * 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
JP2002278819A (ja) * 2001-03-21 2002-09-27 Toshiba Corp スナップショットイメージの世代管理方法、記憶媒体、及び世代管理装置
JP2003296039A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法

Also Published As

Publication number Publication date
EP1619594A3 (en) 2006-11-29
US8032729B2 (en) 2011-10-04
DE602005024212D1 (de) 2010-12-02
US8307185B2 (en) 2012-11-06
EP1619594B1 (en) 2010-10-20
US20060036825A1 (en) 2006-02-16
US20120011320A1 (en) 2012-01-12
EP1619594A2 (en) 2006-01-25
JP2005353044A (ja) 2005-12-22

Similar Documents

Publication Publication Date Title
JP4715286B2 (ja) 計算機システムおよび計算機システムの制御方法
JP4790372B2 (ja) ストレージのアクセス負荷を分散する計算機システム及びその制御方法
JP4958673B2 (ja) ストレージシステム及びこれの管理方法
JP4700459B2 (ja) データ処理システム及びデータ管理方法並びにストレージシステム
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US7299322B2 (en) Computer system, storage device and method providing intra-storage volume identifiers corresponding to intra-host volume identifiers through volume switching commands
EP1624376A2 (en) Storage system and data processing system
EP2254036B1 (en) Storage apparatus and data copy method
US8176273B2 (en) Backing-up apparatus, backing-up method, and backing-up program
US20070168634A1 (en) Storage system and storage control method
CN105516263B (zh) 存储系统中数据分发方法、装置、计算节点及存储系统
EP2120148A2 (en) Remote storage disk control device and method for controlling the same
US8010753B2 (en) Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
WO2014007249A1 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP5391277B2 (ja) ストレージシステム及びストレージシステムの処理効率向上方法
JP2013535037A (ja) データ移行システム及びデータ移行方法
JP2010152688A (ja) 記憶領域管理装置、記憶領域管理方法
JP2009122873A (ja) ストレージシステム間でのリモートコピーを管理する装置
US20050257014A1 (en) Computer system and a management method of a computer system
JP4893716B2 (ja) バックアップ装置、バックアップ方法およびバックアッププログラム
US20130138903A1 (en) Computer system
JP2007310448A (ja) 計算機システム、管理計算機、および、ストレージシステム管理方法
JP6884165B2 (ja) 複数のストレージノードを含むストレージシステム
JP2022057870A (ja) 制御装置および情報処理システムに関する。
JP2020149573A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110314

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

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees