JP2007122531A - 負荷分散システム及び方法 - Google Patents

負荷分散システム及び方法 Download PDF

Info

Publication number
JP2007122531A
JP2007122531A JP2005315634A JP2005315634A JP2007122531A JP 2007122531 A JP2007122531 A JP 2007122531A JP 2005315634 A JP2005315634 A JP 2005315634A JP 2005315634 A JP2005315634 A JP 2005315634A JP 2007122531 A JP2007122531 A JP 2007122531A
Authority
JP
Japan
Prior art keywords
ldev
pair
load
logical
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005315634A
Other languages
English (en)
Inventor
Yoko Sugiura
葉子 杉浦
Kiyousuke Achiwa
恭介 阿知和
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 JP2005315634A priority Critical patent/JP2007122531A/ja
Priority to US11/302,221 priority patent/US7395388B2/en
Publication of JP2007122531A publication Critical patent/JP2007122531A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Abstract

【課題】同一筐体内コピー機能及び外部接続機能の両方を利用している機器の負荷を分散し得る負荷分散システム及び方法を提案する。
【解決手段】自機内に設定された論理デバイスのうち、ペア設定された一方の論理デバイスのデータを他方の論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された第1の機器の負荷を分散させる負荷分散システム及び方法において、定期的に第1の機器の負荷と、当該第1の機器とは別個に設けられた第1及び第2の機能が搭載された第2の機器の負荷とをそれぞれ検出し、第1の機器の負荷が第2の機器の負荷よりも大きいときに、第1の論理デバイス内に設定された論理デバイスのうちの他の論理デバイスとペア設定されていない論理デバイスを第2の機器に移行させるように、第1及び第2の機器を制御するようにした。
【選択図】図24

Description

本発明は、負荷分散システム及び方法に関し、例えば記憶システムに適用して好適なものである。
従来、ストレージ装置に搭載されるアプリケーション機能の1つとして、上位装置としてのホスト装置を経由することなく、同一のストレージ装置内で論理デバイス(以下、これをLDEV(Logical Device)と呼ぶ)のミラーを作成するコピー機能(以下、これを同一筐体内コピー機能と呼ぶ)がある。
またストレージ装置に搭載される他のアプリケーション機能として、外部ストレージ装置内に設定されたLDEV(以下、これを外部LDEVと呼ぶ)を仮想化して自ストレージ装置内のLDEV(以下、これを内部LDEVと呼ぶ)のようにみせかけてホスト装置に提供する機能(以下、これを外部接続機能と呼ぶ)がある。
外部接続機能を利用していないストレージ装置の負荷を分散するには、ホスト装置を介して別のストレージ装置にデータを移行(コピー)する方法をとるのが一般的である。しかしながら、ストレージ装置が外部接続機能を利用している場合には、外部LDEVに対するマッピングを他のストレージ装置内のLDEVに切り替えるだけで済むため、比較的簡単にストレージ装置の負荷を分散することができる。
なお、下記特許文献1には、物理的に離れた場所にある複数のストレージ装置間でホスト装置の介在なしにデータの2重書きを行う、いわゆるリモートコピー機能が搭載されたストレージ装置の負荷を分散させる技術が開示されている。
特開2004−145855号公報
ところが、後述のように、同一筐体内コピー機能及び外部接続機能の両方を利用しているストレージ装置の場合、かかる外部LDEVに対するマッピングの切替え処理を行なっても、実質的に移行前のコピー状態の移行を行うことができず、結果的に同一筐体内コピー機能及び外部接続機能の両方を利用しているストレージ装置の負荷を分散し得ない問題があった。
本発明は以上の点を考慮してなされたもので、同一筐体内コピー機能及び外部接続機能の両方を利用している機器の負荷を分散し得る負荷分散システム及び方法を提案しようとするものである。
かかる課題を解決するため本発明においては、自機内に設定された論理デバイスのうち、ペア設定された一方の前記論理デバイスのデータを他方の前記論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された第1の機器の負荷を分散させる負荷分散システムにおいて、前記第1及び第2の機能が搭載された第2の機器と、定期的に前記第1の機器の負荷及び前記第2の機器の負荷をそれぞれ検出し、前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する管理装置とを設けるようにした。
この結果この負荷分散システムでは、第1の機器の負荷が第2の機器の負荷よりも大きくなったときに、第1の機器内に設定された論理デバイスが第2の機器に移行されるため、第1の機器の負荷を第2の機器に分散させることができる。この場合において、第2の機器に移行される論理デバイスは、他の論理デバイスとペア設定されていない論理デバイスであるため、第1の機器内に設定された各コピーペアの現在の状態に関わりなく、かかる論理デバイスの移行処理を容易に行うことができる。
また本発明においては、前記管理装置は、前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させた後に、前記第1の機器内に設定された前記論理デバイスのうちの他の前記論理デバイスとペア設定された前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御するようにした。さらに前記管理装置は、前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスからなるコピーペアを前記第2の機器に移行させる際に、当該コピーペアの現在の状態を検出すると共に、当該検出結果に応じた制御情報を前記第2の機器に通知し、前記第2の機器は、前記管理装置から通知される前記制御情報に基づいて、前記第1の機器から当該第2の機器に移行された前記コピーペアの状態を設定するようにした。
この結果、この負荷分散システムでは、第1の機器内に設定されたコピーペアを構成する各論理デバイスについては、そのときのコピーペアの状態を維持したまま、第2の機器に移行させることができる。
さらに本発明においては、自機内に設定された論理デバイスのうち、ペア設定された一方の前記論理デバイスのデータを他方の前記論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された第1の機器の負荷を分散させる負荷分散方法において、定期的に前記第1の機器の負荷と、当該第1の機器とは別個に設けられた第1及び第2の機能が搭載された第2の機器の負荷とをそれぞれ検出する第1のステップと、前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する第2のステップとを設けるようにした。
この結果、この負荷分散方法によれば、第1の機器の負荷が第2の機器の負荷よりも大きくなったときに、第1の機器内に設定された論理デバイスが第2の機器に移行されるため、第1の機器の負荷を第2の機器に分散させることができる。この場合において、第2の機器に移行される論理デバイスは、他の論理デバイスとペア設定されていない論理デバイスであるため、第1の機器内に設定された各コピーペアの現在の状態に関わりなく、かかる論理デバイスの移行処理を容易に行うことができる。
さらに本発明においては、前記第2のステップでは、前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させた後に、前記第1の機器内に設定された前記論理デバイスのうちの他の前記論理デバイスとペア設定された前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御するようにした。また前記第2のステップでは、前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスからなるコピーペアを前記第2の機器に移行させる際に、当該コピーペアの現在の状態を検出すると共に、当該検出結果に応じた制御情報を前記第2の機器に通知し、前記第2の機器は、前記管理装置から通知される前記制御情報に基づいて、前記第1の機器から当該第2の機器に移行された前記コピーペアの状態を設定するようにした。
この結果、この負荷分散方法によれば、第1の機器内に設定されたコピーペアを構成する各論理デバイスについては、そのときのコピーペアの状態を維持したまま、第2の機器に移行させることができる。
本発明によれば、自機内に設定された論理デバイスのうち、ペア設定された一方の論理デバイスのデータを他方の論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能との両方を利用している機器の負荷を、第1の機器内に設定された各コピーペアの現在の状態に関わりなく、容易に分散させることができる。
以下図面について、本発明の一実施の形態を詳述する。
(1)ストレージ装置におけるアプリケーション機能
(1−1)同一筐体内コピー機能
同一筐体内コピー機能が搭載されたストレージ装置2では、当該同一筐体内コピー機能の実行時、図1に示すように、コピーペアとして設定(以下、これをペア設定と呼ぶ)された2つのLDEV3,4のうちのコピー元となるLDEV(以下、これを正ボリュームと呼ぶ)3内に格納されたデータを、予めコピー先となるLDEV(以下、これを副ボリュームと呼ぶ)4にコピーすることにより、正ボリューム3及び副ボリューム4の内容を同一にする。
そして、ストレージ装置2は、その後ホスト装置1から正ボリューム3に対してデータの書込み要求があったときには、当該書込み要求に従ってデータを正ボリューム3の指定されたアドレスに書き込むと共に、これと同期又は非同期に同じデータを副ボリューム4の対応するアドレスにデータを書き込むように動作する。
また、このストレージ装置2では、その後正ボリューム3及び副ボリューム4のミラーが解除されてスナップショットが生成された状態でホスト装置1から正ボリューム3に対するデータの書込み要求が与えられたときには、正ボリューム3に書込み対象のデータを書き込む一方、これと併せてその箇所を記憶する。
そのための手段として、ストレージ装置2は、正ボリューム3におけるデータのアクセス単位であるブロック数と同じビット数のビット列を差分ビット情報6として内部メモリ5内に保持しており、正ボリューム3及び副ボリューム4の内容が同じブロックについては差分ビット情報6の対応するビットの値を「0」、正ボリューム3及び副ボリューム4の内容が異なるブロックについては対応するビットの値を「1」に設定することで、正ボリューム3及び副ボリューム4間の差分を管理する。
ところで、かかる同一筐体内コピー機能において、正ボリューム3及び副ボリューム4の状態(以下、これをペアステータスと呼ぶ)としては、「ペア(pair)」、「コピー(copy)」及び「スプリット(split)」の3つがある。そして、同一筐体内コピー機能が搭載されたストレージ装置2では、ペア設定された各正ボリューム3及び副ボリューム4について、これら正ボリューム3及び副ボリューム4のLDEV番号と、これら正ボリューム3及び副ボリューム4の現在のペアステータスとを、内部メモリ5に格納されたペア管理テーブル7を用いて管理している。
この場合、「ペア」のペアステータスは、図2に示すように、正ボリューム3から副ボリューム4へのデータコピーが完了して正ボリューム3及び副ボリューム4がミラーになっている状態を指す。このペアステータス時には、正ボリューム3にデータの書き込みがあったときに、これと同時に副ボリューム4の対応するブロックにも同じデータが書き込まれる。またこのペアステータス時には、正ボリューム3及び副ボリューム4の内容が等しいため、差分ビット情報6のすべてのビットが常に「0」となる。
「コピー」のペアステータスは、図3に示すように、正ボリューム3から副ボリューム4へのデータコピーが途中であり、正ボリューム3及び副ボリューム4が未だミラーとなっていない状態である。このペアステータス時には、正ボリューム3にデータの書き込みがあったときには、これと同時に副ボリューム4の対応する箇所にも同じデータが書き込まれる一方、これと並行して差分ビット情報6の「1」が設定されているブロックのデータコピーが正ボリューム3及び副ボリューム4間で行われる。
また「スプリット」のペアステータスは、図4に示すように、副ボリューム4へのデータ書き込みが行われず、この副ボリューム4によってある時点のスナップショットが作成されている状態である。このペアステータス時には、正ボリューム3にデータの書き込みがあっても副ボリューム4へのデータの書き込みが行われず、差分ビット情報6の対応するビットに「1」が設定される。
図5は、このような「ペア」、「コピー」及び「スプリット」の各ペアステータスと、ペア設定なしのペアステータス(「ペアなし」)との間の状態遷移の様子を示したものである。この図5からも明らかなように、「ペアなし」のペアステータスから2つのLDEVにペア設定がなされると、そのペアのペアステータスが「コピー」に遷移し、その後正ボリューム3から副ボリューム4へのデータコピーが完了するとペアステータスが「ペア」に遷移する。
そして、「ペア」のペアステータスからストレージ装置2に対してそのペアの分割要求を行うと、正ボリューム3及び副ボリューム4のペアステータスが「スプリット」となり、「スプリット」のペアステータスから再同期要求を行うことによりペアステータスを再度「コピー」に遷移させることができる。なお、「ペア」、「コピー」及び「スプリット」のいずれの場合においても、ペアを消去することによって、ペアステータスを「ペアなし」に遷移させることができる。
図6は、かかる同一筐体内コピー機能の実行時における正ボリューム3へのデータ書込み処理に関するストレージ装置2の処理内容を表すフローチャートである。
ストレージ装置2は、ホスト装置1から正ボリューム3へのデータの書込み要求が与えられた場合、まず、かかる書込み要求と共にホスト装置1から与えられる書込み対象のデータを正ボリューム3の指定されたブロックに書き込む(SP1)。
またストレージ装置2は、この後ペア管理テーブル7(図1)を参照して、その正ボリューム3及び対応する副ボリューム4からなるコピーペアに付与されたペア番号のペアステータスが「スプリット」である場合には(SP2:YES)、差分ビット情報7(図1)の対応するビットを「1」に設定する(SP3)。
これに対して、ストレージ装置2は、かかる正ボリューム3及び副ボリューム4のペアのペアステータスが「スプリット」でない場合には(SP2:NO)、差分ビット情報7の対応するビットを「0」に設定し(SP4)、副ボリューム4の対応するブロックに、正ボリューム3に書き込んだデータと同じデータを書き込む(SP5)。
一方、図7は、副ボリューム4へのデータ書込み処理(以下、これをデータコピー処理と呼ぶ)に関するストレージ装置2の処理内容を表すフローチャートである。ストレージ装置2は、ペアステータスが「ペア」又は「コピー」である正ボリューム3及び副ボリューム4の各ペアについて、このフローチャートに従って、正ボリューム3へのデータ書込み処理とは非同期に副ボリューム4へのデータのコピー処理を一定時間毎に実行する。
すなわちストレージ装置2は、データコピー処理を開始すると、まずペア管理テーブル5(図1)に登録された1つの正ボリューム3及び副ボリューム4のペアを選択し、そのコピーペアのペアステータスが「スプリット」であるか否かをペア管理テーブル7に基づいて判断する(SP10)。
ストレージ装置2は、このペアのペアステータスが「スプリット」である場合には(SP10:YES)、このデータコピー処理を終了し、これに対してこのペアのペアステータスが「スプリット」でない場合には(SP10:NO)、対応する差分ビット情報から値が「1」のビットを検索する(SP11)。
ストレージ装置2は、この検索により「1」のビットを検出できなかったときには(SP12:NO)、このデータコピー処理を終了し、「1」のビットを検出したときには(SP12:YES)、正ボリューム3における当該ビットと対応するブロックのデータを読み出し(SP13)、これを副ボリューム4における対応するブロックに書き込む(SP14)。
この後ストレージ装置2は、対応する差分ビット情報におけるステップSP12において「1」であると判定したビットの値を「0」に変更し、さらにこの後このデータコピー処理を終了する(SP16)。
(1−2)外部接続機能
一方、外部接続機能が搭載されたストレージ装置2は、当該外部接続機能の実行時、外部接続用ポート2Aに接続された外部ストレージ装置10内のLDEV12を、自ストレージ装置内に設定された仮想LDEV11にマッピングする。そして、ストレージ装置2は、ホスト装置1から仮想LDEV11に対するアクセスがあると、外部接続用ポート2Aを介して対応するデータ入出力要求を外部ストレージ装置10に発行する。この結果、対応するデータが外部ストレージ装置10内のLDEV12における対応するブロックに入出力される。従って、かかるホスト装置1から仮想LDEV11へのアクセスは、実際には外部ストレージ装置10内のLDEV12に対して行われることとなる。
また、このような外部接続機能及び上述の同一筐体内コピー機能の双方を連携させることも可能である。この場合、図9に示すように、ストレージ装置2の外部接続機能を利用して、外部ストレージ装置10の第1及び第2のLDEV12A,LDEV 12Bをそれぞれストレージ装置内の第1及び第2の仮想LDEV11A,11Bにマッピングし、同一筐体内コピー機能を利用して、これら第1及び第2の仮想LDEV11A,11B間においてデータコピーを行う。
ただし、第1及び第2の仮想ボリューム12A,12Bは実体がないため、ホスト装置1から第1の仮想LDEV11Aへのアクセスは第1の仮想LDEV11Aを介して第1のLDEV12Aに対して行われ、第1の仮想LDEV11Aから第2の仮想LDEV12Aへのデータコピーは、第1のLDEV12Aから第2のLDEV12Bへのデータコピーとして実行されることとなる。
(1−3)負荷分散処理
ところで、ある第1のストレージ装置に設定されたLDEVに対するアクセスが頻繁で、これに対する第1のストレージ装置の負荷が大きい場合に、その第1のストレージ装置のそのLDEVに格納されたデータを他の第2のストレージ装置のLDEVに移行することにより、第1のストレージ装置の負荷を分散することが考えられる。
この場合において、図10に示すように、第1のストレージ装置20が外部接続機能を利用していない場合のデータ移行は、ホスト装置1に搭載されたデータ移行ソフトウェア20の制御のもとに、第1のストレージ装置11内の対象とするLDEV22からデータを読み出し、これをホスト装置1を介して第2のストレージ装置23内の対象とするLDEV24に書き込むことにより行うことができる。しかしながら、この手法によると、実際にデータの移行が伴うため、ホスト装置1並びに第1及び第2のストレージ装置21,23のそれぞれに負荷が生じる問題がある。
これに対して、図11に示すように、第1のストレージ装置30が外部接続機能を利用している場合、つまり第1のストレージ装置30の外部接続用ポート31に接続された第2のストレージ装置32内に設定されたLDEV(以下、このようなLDEVを外部LDEVと呼ぶ)33を、第1のストレージ装置30内に設定された第1の仮想LDEV34にマッピングしている場合のデータ移行は、かかる外部LDEV33を、外部LDEV33及び第3のストレージ装置35に設定された第2の仮想LDEV36にマッピングし直すだけで、第1のストレージ装置30の負荷を第3のストレージ装置35に分散させることができる。この場合、第3のストレージ装置35の仮想LDEV36を当該第3のストレージ装置35内のポート37からホスト装置1のポート38に所定のLUN番号で割り当てることによって、ホスト装置1が第2の仮想ボリューム36を介して外部LDEV33にアクセスすることが可能となる。
そして、この手法によれば、実際のデータの移行を伴わないため、当該データ移行に起因する負荷をホスト装置1並びに第1及び第2のストレージ装置、30,33に生じさせることなく、第1のストレージ装置30の負荷を分散させることができるという利点がある。
しかしながら、図9について上述したような外部接続機能及び同一筐体内コピー機能の双方を利用しているストレージ装置2では、ペア管理テーブル7や各コピーペアについての差分ビット情報6が第1のストレージ装置2内に存在している。このため、例えば図12に示すように、外部ストレージ装置である第2のストレージ装置32内に設定された第1及び第2の外部LDEV33A,33Bがそれぞれ第1のストレージ装置30の第1及び第2の仮想LDEV34A,34Bにマッピングされている場合において、第1及び第2の外部LDEV33A,33Bを第3のストレージ装置35の第3又は第4の仮想LDEV36A,36Bにそれぞれマッピングするだけでは、これらペア管理テーブル7や各差分ビット情報11Bが第3のストレージ装置35に引き継ぐことができない。
つまり、図12のように構成されたシステムでは、第2のストレージ装置32内の外部LDEV33A,33Bに対するマッピングを第1のストレージ装置30内の第1及び第2の仮想LDEV34A,34Bから第3のストレージ装置35内の第1及び第2の仮想LDEV36A,36Bへのマッピングの切り替え処理を行うだけでは、第1のストレージ装置30から第3のストレージ装置35へのボリュームの移行を行い得ず、この結果として第1のストレージ装置30の負荷分散を行い得ない問題があった。
特に、第1のストレージ装置30内の第1及び第2の仮想ボリューム34A,34Bが「ペア」のペアステータスである場合に、ミラー状態を保ったまま、第1のストレージ装置30の負荷を第3のストレージ装置35に分散させることができない。
以下に説明する第1〜第4の実施の形態による記憶システムは、図13に示すように、外部接続機能により外部LDEVにそれぞれマッピングされた2つの仮想LDEV間において同一筐体内コピー機能により同一筐体内コピーを実行している既存のストレージ装置(以下、これを既設置ストレージ装置と呼ぶ)の負荷を、コピーペアの現在の状態(ペアステータス及び正副ボリューム間のデータ整合性)を維持したまま他のストレージ装置(以下、これを追加ストレージ装置と呼ぶ)に分散し得るようになされた点を特徴の1つとしている。
以下、このような機能(以下、これを負荷分散機能と呼ぶ)が搭載された第1〜第4の実施の形態による記憶システムについて説明する。
(2)第1の実施の形態
(2−1)第1の実施の形態による記憶システムの構成
図13において、40は全体として第1の実施の形態による記憶システムを示す。この記憶システム40は、ホスト装置41、既設置ストレージ装置42、追加ストレージ装置43及び管理サーバ44が第1のネットワーク45を介して接続されると共に、既設置ストレージ装置42及び追加ストレージ装置43が第2のネットワーク46を介して外部ストレージ装置47が接続され、さらにホスト装置41、既設置ストレージ装置42、追加ストレージ装置43、管理サーバ44及び外部ストレージ装置47がLAN(Local Area Network)48を介して接続されることにより構成されている。
上位装置としてのホスト装置41は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。ホスト装置41は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置(図示せず)と、モニタディスプレイやスピーカ等の情報出力装置(図示せず)とを備えている。また、ホスト装置41には、第1のネットワーク45を介して既設置ストレージ装置42等にアクセスするためのインタフェースとして機能するHBA(Host Bus Adapter)50と、LAN48を介して管理サーバ44等と通信を行うためのNIC(Network Interface Card)51とが設けられている。
既設置ストレージ装置42は、ホスト装置41に対して外部ストレージ装置47が提供するLDEV(以下、これを外部LDEVと呼ぶ)52を仮想化して仮想LDEV53として提供する外部接続機能と、自ストレージ装置内に設定されたLDEV(仮想LDEV53及び後述の内部LDEV62)間でのコピー処理を行う同一筐体内コピー機能とを有するもので、図14に示すように、複数の物理記憶デバイス60と、コントロール部61とを備えて構成される。
このうち物理記憶デバイス60としては、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスク又はSATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクが適用される。
これら物理記憶ディスク60はコントロール部61によりRAID方式で運用される。1又は複数の物理記憶ディスク60により提供される物理的な記憶領域上に、1又は複数のLDEV(以下、これを内部LDEVと呼ぶ)62(図13)が設定される。そしてデータは、これら内部LDEV62や仮想LDEV53内に所定大きさのブロック(以下、これを論理ブロックと呼ぶ)単位で記憶される。
各内部LDEV62及び各仮想LDEV53には、それぞれ固有の識別子(以下、これをLDEV番号と呼ぶ)が付与される。本実施の形態の場合、データの入出力は、このLDEV番号と、各ブロックにそれぞれ付与される固有の番号(LBA:Logical Block Address)とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
一方、コントロール部61は、複数のチャネルアダプタ70、接続部71、共有メモリ72、キャッシュメモリ73、複数のディスクアダプタ74及び管理端末75を備えて構成される。
各チャネルアダプタ70は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置41(図13)から第1のネットワーク45を介して送信される各種コマンドを解釈して対応する処理を実行する。
また各チャネルアダプタ70には、図13に示すように、それぞれ第1のネットワーク45に接続するための通常のポート42Aと、イニシエータ機能を有し、SCSIコマンドを発行可能な外部接続用ポート42Bとが設けられている。これらポート42A及び外部接続用ポート42Bには、それぞれを識別するためのIP(Internet Protocol)アドレスやWWN(World Wide Address)などのポートアドレスが割り当てられており、これにより各チャネルアダプタ70がそれぞれ個別にNAS(Network Attached Storage)として振る舞うことができるようになされている。
接続部71は、各チャネルアダプタ70、共有メモリ72、キャッシュメモリ73及び各ディスクアダプタ74と接続されている。チャネルアダプタ70、共有メモリ72、キャッシュメモリ73及びディスクアダプタ74間でのデータやコマンドの授受は、この接続部71を介して行われる。接続部71は、例えば高速スイッチングによりデータ伝送を行う超高速クロスデバイススイッチなどのスイッチ又はバス等で構成される。
共有メモリ72及びキャッシュメモリ73は、チャネルアダプタ70及びディスクアダプタ74により共有されるメモリである。共有メモリ72は、主にそのストレージ装置全体の構成に関するシステム構成情報や、コマンド等を記憶するために利用される。後述のLDEV管理テーブル85や、ペア管理テーブル7及びコピーペア毎の差分ビット情報6もこの共有メモリ72に格納される。またキャッシュメモリ73は、主に物理記憶デバイス60に入出力するデータを一時的に記憶するために利用される。
各ディスクアダプタ74は、マイクロプロセッサやメモリなどを備えたマイクロコンピュータシステムとして構成され、物理記憶デバイス60との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ74は、例えばファイバーチャネルケーブルを介して対応する物理記憶デバイス60と接続されており、ファイバーチャネルプロトコルに従ってこれら物理記憶デバイス60との間のデータの授受を行う。
管理端末75は、そのストレージ装置全体の動作を制御する端末装置であり、例えばノード型のパーソナルコンピュータから構成される。管理端末75は、図示しないLANを介して各チャネルアダプタ70及び各ディスクアダプタ74と接続されている。管理端末は、そのストレージ装置内の障害の有無を監視し、障害が発生したときにこれを自己のディスプレイに表示したり、オペレータ操作に応じて対応する物理記憶デバイスの閉塞処理を行う。オペレータは管理端末75を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ70又はディスクアダプタ74と接続部71とを経由して、共有メモリ72に格納することができる。
同様に、追加ストレージ装置43は、ホスト装置41に対して外部ストレージ装置47が提供するLDEV52を仮想化して仮想LDEV76(図13)として提供する外部接続機能と、自ストレージ装置内に設定された仮想LDEV76や、内部LDEV77(図13)間でのコピー処理を行う同一筐体内コピー機能とを有するもので、図13に示すように、複数の物理記憶デバイス60と、コントロール部61とを備えて構成される。
この追加ストレージ装置43は、図14について上述した既設置ストレージ装置42と同様の構成を有しており、ポート43Aを介して第1のネットワーク45と接続されると共に、外部接続用ポート43Bを介して第2のネットワーク46と接続されている。
管理サーバ44は、各種演算を実行するCPU80、各種制御プログラムが格納された図示しないROM(Read Only Memory)と、CPU80のワークメモリとしての図示しないRAM(Random Access Memory)と、ハードディスク等からなる物理記憶デバイス81と、LANに接続するためのNIC82と、第1のネットワーク45を介してホスト装置41や、既設置ストレージ装置42又は追加ストレージ装置43等にアクセスするためのHBA83などを備えて構成される。
物理記憶デバイス81には、データ入出力処理やデータコピー処理等に関する既設置ストレージ装置42の負荷を分散させる制御処理の処理内容を規定した負荷分散ソフトウェア84が格納されており、CPU80は、後述のようにこの負荷分散ソフトウェア84に従って、既設置ストレージ装置42や追加ストレージ装置43の負荷バランスをチェックし、既設置ストレージ装置42の方が負荷が高いときに既設置ストレージ装置42、追加ストレージ装置43及び外部ストレージ装置47を制御して、既設置ストレージ装置42の負荷を追加ストレージ装置43に分散させる。
第1及び第2のネットワーク45,46は、例えばSAN(Storage Area Network)、LAN、インターネット、公衆回線又は専用回線などから構成される。これら第1又は第2のネットワーク45,46を介した通信は、当該第1又は第2のネットワーク45,46がSANである場合にはファイバーチャネルプロトコルに従って行われ、第1又は第2のネットワーク45,46がLANである場合にはTCP/IP(Transmission Control Protocol/Internet Protocol)に従って行われる。なお、この実施の形態においては、既設置ストレージ装置42、追加ストレージ装置43及び外部ストレージ装置47間の接続関係を分かり易くするために第1及び第2のネットワーク45,46を別個のものとして構成しているが、これらを同じ1つのネットワークにより構成するようにしても良い。
また外部ストレージ装置47は、外部接続機能及び同一筐体内コピー機能を有しない点を除いて図14について上述した既設置ストレージ装置42と同様に構成されており、第2のネットワーク46を介して既設置ストレージ装置42の外部接続用ポート42B及び追加ストレージ装置43の外部接続用ポート43Bと接続されている。
(2−2)記憶システムにおける負荷分散処理機能
(2−2−1)各種テーブル及び差分ビット情報の構成
次に、本実施の形態による記憶システム40における負荷分散処理機能の説明をする前に、当該負荷分散処理機能の実行時に用いる各種テーブル及び差分ビット情報の構成について説明する。
図15に示すように、既設置ストレージ装置42及び追加ストレージ装置43の各共有メモリ72には、それぞれLDEV管理テーブル85、ペア管理テーブル7及び差分ビット情報6が保持されている。そして管理サーバ44のCPU80は、負荷分散処理時、管NIC82及びLAN48を介して既設置ストレージ装置42や追加ストレージ装置43からLDEV管理テーブル85、ペア管理テーブル7及び差分ビット情報6の各データを取得し得るようになされている。
この場合、LDEV管理テーブル85は、その既設置ストレージ装置42又は追加ストレージ装置43上に存在するすべての内部LDEV62,77及び仮想LDEV53,76に関する情報を保持するためのテーブルであり、図16(A)に示すように、内部(仮想)LDEVフィールド90及び外部LDEVフィールド91とから構成される。
このうち内部(仮想)LDEVフィールド90は、LDEV番号欄92、容量欄93、LUN欄94及び外部接続用ポートアドレス欄95から構成される。そして、LDEV番号欄92には、各内部LDEV62,77又は仮想LDEV53,76にそれぞれ付与された通し番号が格納され、容量欄93には、対応する内部LDEV62,77又は仮想LDEV53,76の容量が格納される。またLUN欄94には、当該対応する内部LDEV62,77又は仮想LDEV53,76のLUNが格納され、外部接続用ポートアドレス欄95には、その既設置ストレージ装置42又は追加ストレージ装置43における外部接続用ポート42A,43A(図13)のポートアドレスが格納される。
また外部LDEVフィールド91は、ポートアドレス欄96及びLUN欄97から構成される。そしてLUN欄97には、その既設置ストレージ装置42又は追加ストレージ装置43上の対応するLDEVが仮想LDEV53,76である場合に、当該仮想LDEV53,76にマッピングされた外部ストレージ装置47(図13)内の外部LDEV52(図13)のLUNが格納され、ポートアドレス欄96には、その外部LDEV52と接続された当該外部ストレージ装置47内のポート47A(図13)の例えばポートアドレスが格納される。
従って、図16(B)に示すように、このLDEV管理テーブル85における内部(仮想)LDEVフィールド90のLUN欄94及び外部LDEVフィールド91のLUN欄97の双方にLUNが格納されているエントリについては、実データが外部LDEV52(図13)に存在し、ホスト装置41(図13)からのアクセスが可能であり、内部LDEVフィールド90のLUN欄94にLUNが格納されているが外部LDEVフィールド91のLUN欄97にLUNが格納されていないエントリについては、実データがその既設置ストレージ装置42又は追加ストレージ装置43上の内部LDEV62,77に存在し、ホスト装置41からのアクセスが可能であることが分かる。なお、内部LDEVフィールド90のLUN欄94及び外部LDEVフィールド91のLUN欄97の双方にLUNが格納されていないエントリは、その既設置ストレージ装置42又は追加ストレージ装置43上に設定された未使用のLDEVであり、ホスト装置41からのアクセスはできない。
一方、ペア管理テーブル7は、同一筐体内コピー機能を利用した同一筐体内でのコピー処理のためにペア設定されたコピーペアの構成情報を保持するためのテーブルであり、図17に示すように、ペア番号欄100、正ボリュームLDEV番号欄101、副ボリュームLDEV番号欄102及びペアステータス欄103から構成される。
この場合、ペア番号欄100には、対応するコピーペアに付与された固有の番号であるペア番号が格納され、正ボリュームLDEV番号欄101には、そのコピーペアの正ボリュームを形成するLDEVのLDEV番号が格納される。また副ボリュームLDEV番号欄102には、そのコピーペアの副ボリュームを形成するLDEVのLDEV番号が格納され、ペアステータス欄103には、そのコピーペアの現在のペアステータス(「ペア(pair)」、コピー「copy」)又は「スプリット(sprit)」が格納される。
他方、差分ビット情報6は、図18に示すように、対応するコピーペアの正ボリュームや副ボリュームを形成するLDEVのブロック数と同じ数のビットから構成されるビット列であり、正ボリューム及び副ボリュームのデータが異なるブロックに対応するビットに「1」が設定され、正ボリューム及び副ボリュームのデータが同じブロックに対応するビットに「0」が設定される。この差分ビット列6は、ペア管理テーブル7に登録されたコピーペアにそれぞれ対応させて、これらコピーペアと同じ数だけ存在する。
(2−2−2)負荷分散処理に関する各種コマンド
次に、管理サーバ44のCPU80(図13)が負荷分散処理時に用いるコマンドについて説明する。
上述した記憶システム40において、管理サーバ44のCPU80は、負荷分散機能の実行時、負荷分散ソフトウェア84(図13)に基づいて、図19及び図20に示す各種コマンドのうちの対応するコマンドをLAN48(図13)を介して既設置ストレージ装置42や追加ストレージ装置43又は外部ストレージ装置47に送信することにより、これら既設置ストレージ装置42や追加ストレージ装置43又は外部ストレージ装置47に必要な処理を実行させる。
図19及び図20は、このように負荷分散機能の実行時に管理サーバ44から既設置ストレージ装置42や追加ストレージ装置43又は外部ストレージ装置47に送信される各種コマンドの一例を示している。
例えば「createMapping」コマンドは、既設置ストレージ装置42又は追加ストレージ装置43に対して、LDEV番号、LDEV容量、マッピングするストレージ装置のポートアドレス及びマッピングする外部LDEV52のLUNを指定して、当該LDEV番号のLDEVと同容量の仮想LDEV53,76を作成し、作成した仮想LDEV53,76に、自己の外部接続用ポート42B,43Bに接続されている当該ポートアドレスのポート下に割り当てられた当該LUNの外部LDEV52をマッピングすべき旨の指示を与えるときに用いられる。この処理によって、1つの外部LDEV52と1つの仮想ボリューム53,76とが関連付けられることとなる。
具体的に、管理サーバ44のCPU80は、図21(A)に示すように、既設置ストレージ装置42に対し、LDEV番号が「A」で容量が「100(〔GB〕)」の仮想LDEV53を作成させ、これをその既設置ストレージ装置42の外部接続用ポート42Bに接続されたポート47Aのネットワークアドレスが「12.23.34.45.56.67.78.89」である外部ストレージ装置47内のLUNが「n」である外部LDEV52をマッピングさせたいときには、「createmapping A 100 12.23.34.45.56.67.78.89 n」というコマンドを送信する。
この結果、かかるコマンドが与えられた既設置ストレージ装置42は、このコマンドに従って、図21(B)に示すように、指定されたLDEV番号及び容量と、外部接続用ポート42Bのネットワークアドレスとを、LDEV管理テーブル85の内部(仮想)LDEVフィールド90に登録するようにして、指定されたLDEV番号及び容量の仮想LDEV53を作成する。またかかる既設置ストレージ装置42は、LDEV管理テーブル85におけるそのエントリの外部LDEVフィールド91に、指定されたネットワークアドレス及び指定されたLUNを格納するようにして、かかる仮想LDEV53に対して指定された外部LDEV52をマッピングする。このときその既設置ストレージ装置42は、かかる処理が成功したときには「True」、失敗したときには「False」のコマンドをLAN48を介して管理サーバ44に送信する。
一方、「deleteMapping」コマンドは、既設置ストレージ装置42又は追加ストレージ装置43に対して、外部LDEV52と仮想LDEV53,76との関連付けを解除し、LDEV管理テーブル85から対応するLUNのエントリを削除すべき指示を与えるときに用いられる。この処理によって、ホスト装置41から仮想LDEV53,76にアクセスできなくなる。
例えば、管理サーバ44のCPU80は、図22(A)に示すように、既設置ストレージ装置42上のLDEV番号が「A」の仮想LDEV53を削除したいときには、「deleteMapping A」というコマンドをその既設置ストレージ装置42に送信する。
この結果、かかるコマンドが与えられた既設置ストレージ装置42は、このコマンドに従って、外部接続用ポート42Bにマッピングされている外部ストレージ装置47の当該マッピングを解除し、LDEV番号が「A」の仮想LDEV53を削除して、図22(B)に示すように、LDEV管理テーブル85からこの仮想LDEV53のエントリを削除する。このとき、その既設置ストレージ装置42は、かかる処理が成功したときには「True」、失敗したときには「False」のコマンドをLANを介して管理サーバ44に送信する。
他方、「createpair」コマンドは、コピー元のLDEV番号、コピー先のLDEV番号及び生成するコピーペアのペアステータス(「コピー」、「ペア」又は「スプリット」)を指定して、その既設置ストレージ装置42や追加ストレージ装置43にコピーペアを作成させる際に用いられる。この場合、「コピー」、「ペア」又は「スプリット」の各ペアステータスに対応する引数として、それぞれ「-inti」、「-pair」又は「-split」が用いられる。
例えば、管理サーバ44のCPU80は、既設置ストレージ装置42又は追加ストレージ装置43上のLDEV番号が「A」の仮想LDEV53,76又は内部LDEV62,77をコピー元(正ボリューム)、LDEV番号が「B」の仮想LDEV53,76又は内部LDEV62,77をコピー先(副ボリューム)として、ペアステータスが「ペア」のコピーペアを作成したいときには、「createpair A B -pair」というコマンドをその既設置ストレージ装置42又は追加ストレージ装置43に送信する。
図23は、このような「createpair」コマンドを受信した既設置ストレージ装置42内又は追加ストレージ装置43内のチャネルアダプタ70の処理内容を示すフローチャートである。かかるチャネルアダプタ70は、このフローチャートに従って、指定されたコピーペアを作成する。
すなわちチャネルアダプタ70は、「createpair」コマンドを受信すると、まず、この「createpair」コマンドに含まれるペアステータスについての引数が「-init」であるか否かを判断し(SP20)、否定結果を得るとステップSP23に進む。
これに対してチャネルアダプタ70は、かかるステップSP20の判断において肯定結果を得ると(SP20:YES)、指定されたコピーペアをペア管理テーブル7に新たに登録する。具体的には、そのコピーペアについてのペア番号、正ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号(コマンドにおいて指定されたコピー元LDEVのLDEV番号)、副ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号(コマンドにおいて指定されたコピー先LDEVのLDEV番号)及びペアステータス(「コピー」)を、それぞれペア管理テーブル7に追加する(SP21)。そしてチャネルアダプタ70は、この後そのコピーペアと対応付けた差分ビット情報6を生成し、その差分ビット情報6内のすべてのビットを「1」に設定する(SP22)。
続いてチャネルアダプタ70は、かかる「createpair」コマンドに含まれるペアステータスについての引数が「-pair」であるか否かを判断し(SP23)、否定結果を得ると(SP23:NO)、ステップSP26に進む。
これに対してチャネルアダプタ70は、かかるステップSP23の判断において肯定結果を得ると(SP23:YES)、指定されたコピーペアをペア管理テーブル7に新たに登録する。具体的には、ステップSP21の場合と同様に、そのコピーペアについてのペア番号、正ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号、副ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号及びペアステータス(「ペア」)を、それぞれペア管理テーブル7に追加する(SP24)。そしてチャネルアダプタ70は、この後そのコピーペアと対応付けた差分ビット情報6を生成し、その差分ビット情報6内のすべてのビットを「0」に設定する(SP25)。
次いで、チャネルアダプタ70は、かかる「createpair」コマンドに含まれるペアステータスについての引数が「-split」であるか否かを判断し(SP26)、否定結果を得ると(SP26:NO)この一連の処理を終了する。
これに対してチャネルアダプタ70は、かかるステップSP26の判断において肯定結果を得ると(SP26:YES)、指定されたコピーペアをペア管理テーブル7に新たに登録する。具体的には、ステップSP24の場合と同様にそのコピーペアについてのペア番号、正ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号、副ボリュームとなる仮想LDEV53,76又は内部LDEV62,77のLDEV番号及びペアステータス(「スプリット」)を、それぞれペア管理テーブル7に追加する(SP27)。そしてチャネルアダプタ70は、この後そのコピーペアと対応付けた差分ビット情報6を生成し、その差分ビット情報6内のすべてのビットを「1」に設定する(SP)。そしてチャネルアダプタ70は、この後この一連の処理を終了する。
(2−2−3)負荷分散処理の流れ
次に、この記憶システム40において行われる負荷分散処理の一連の流れについて、図24〜図35を参照して説明する。
管理サーバ44のCPU80は、負荷分散ソフトウェア84に基づいて、定期的に図24に示す第1の負荷分散処理手順RT4を実行して、ホスト装置41からのデータ入出力に対する既設置ストレージ装置42及び追加ストレージ装置43間の負荷バランスをチェックし、既設置ストレージ装置42の負荷が大きいときには、既設置ストレージ装置42及び追加ストレージ装置43間の負荷バランスが崩れない範囲内において、既設置ストレージ装置42内のLDEVを追加ストレージ装置43に移行させる処理(負荷分散処理)を実行する。
この際、移行させるLDEVとしては、移行させ易いものを優先する。具体的に、管理サーバ44のCPU80は、既設置ストレージ装置42内においてコピーペアを形成していない仮想LDEV53(SP30)、正ボリューム及び副ボリュームが共に外部LDEV52がマッピングされた仮想LDEV53で、ペアステータスが「ペア」のコピーペア(SP31)、正ボリューム及び副ボリュームが共に外部LDEV52がマッピングされた仮想LDEV53で、ペアステータスが「コピー」のコピーペア(SP32)、正ボリューム及び副ボリュームが共に外部LDEV52がマッピングされた仮想LDEV53で、ペアステータスが「スプリット」のコピーペア(SP33)、正ボリュームが内部LDEV62で、副ボリュームが外部LDEV52がマッピングされた仮想LDEV53であるコピーペア(SP34)の順番でLDEVの移行を行うように、既設置ストレージ装置42、追加ストレージ装置43及び外部ストレージ装置47を制御する。
以下、このような負荷分散処理の具体的内容について説明する。
(2−2−4)第1の負荷分散処理手順RT4のステップSP30における処理
まず、第1の負荷分散処理手順RT4(図24)のステップSP30において行われる、既設置ストレージ装置42内においてコピーペアを形成していない仮想LDEV53を追加ストレージ装置53に移行させるデータ移行処理の処理内容について説明する。このデータ移行処理は、負荷分散ソフトウェア84に基づき、図25に示す第1のLDEV移行処理手順RT5に従って行われる。
すなわち管理サーバ44のCPU80は、図24に示す第1の負荷分散処理手順RT4のステップSP30に進むと、図25に示す第1のLDEV移行処理手順RT5を開始し、まずLAN48(図13)を介して既設置ストレージ装置42及び追加ストレージ装置43にアクセスし、これら既設置ストレージ装置42及び追加ストレージ装置43の各共有メモリ72(図14)にそれぞれ格納されているLDEV管理テーブル85(図15)及びペア管理テーブル7(図15)を取得する(SP40)。
続いて、CPU80は、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP41)。この際、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP42:NO)、既設置ストレージ装置42の内部LDEV62や仮想LDEV53を追加ストレージ装置43に移行する必要がない。よって、このときCPU80は、この負荷分散処理を終了する(SP43)。
これに対して既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP42:YES)、既設置ストレージ装置42内のデータを追加ストレージ装置43に移行する必要がある。そこで、このときCPU80は、ステップSP40において取得した既設置ストレージ装置42のLDEV管理テーブル85及びペア管理テーブル7に基づいて、既設置ストレージ装置42内に設定された仮想LDEV53のうち、他の内部LDEV62又は仮想LDEV53とペアに設定されておらず、かつ外部ストレージ装置47内に設定された外部LDEV52がマッピングされている仮想LDEV53を検索する(SP44)。
そしてCPU80は、この検索により、かかる条件を満たす仮想LDEV53を検出しなかったときには(SP45:外部LDEVなし)、図24について上述した第1の負荷分散処理手順RT4のステップSP31に進み、かかる条件を満たす仮想LDEV53を検出したときには(SP45:外部LDEVあり)、追加ストレージ装置43を制御して、ステップSP44において検出した仮想LDEV(以下、これを検出仮想LDEVと呼ぶ)53と同じ容量の仮想LDEV(以下、これを代替仮想LDEVと呼ぶ)76を追加ストレージ装置43内に作成させる。またCPU80は、この後それまでかかる検出仮想LDEV53にマッピングされていた外部LDEV52のマッピング先を、代替仮想LDEV76に切り替える(SP47)。
そしてCPU80は、この後ステップSP40のテーブル取得処理からステップSP47のパス張替え処理までを同様に繰り返し(SP40〜SP47)、これにより既設置ストレージ装置42内に設定された仮想LDEV53のうち、他の内部LDEV62又は仮想LDEV53とペアに設定されておらず、かつ外部LDEV52がマッピングされた仮想LDEV53を、追加ストレージ装置43の負荷が既設置ストレージ装置42の負荷を超えない範囲でLDEV単位で追加ストレージ装置43に順次移行させる。
ここで図26は、このような第1のLDEV移行処理手順RT40のステップSP40について上述したテーブル取得処理に関するCPU80の具体的な処理内容を示したフローチャートである。CPU80は、この図26に示すテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43からLDEV管理テーブル85及びペア管理テーブル7を取得する。
すなわちCPU80は、かかる第1のLDEV移行処理手順RT5のステップSP40に進むと、テーブル取得処理手順RT6を開始し、まず、LAN48(図13)を介して既設置ストレージ装置42に「getLdevTable」コマンド(図19参照)を送信する。この結果、この「getLdevTable」コマンドに従って既設置ストレージ装置42からLDEV管理テーブル85のデータが管理サーバ44に送信される。そしてCPU80は、このデータを受信すると、これを図示しない内部メモリに格納する(SP51)。
またCPU80は、この後LAN48を介して既設置ストレージ装置42に「getPairTable」コマンド(図20参照)を送信する。この結果、この「getPairTable」コマンドに従って既設置ストレージ装置42からペア管理テーブル7のデータが管理サーバ44に送信される。そしてCPU80は、このデータを受信すると、これを上述の内部メモリに格納する(SP52)。
これと同様にして、CPU80は、この後LAN48を介して追加ストレージ装置43に「getLdevTable」コマンド及び「getPairTable」コマンドを順次送信する。この結果、これら「getLdevTable」コマンド及び「getPairTable」コマンドに従って追加ストレージ装置43からLDEV管理テーブル85のデータ及びペア管理テーブル7のデータが管理サーバ44に順次送信される。そしてCPU80は、これらデータを受信すると、これらを上述の内部メモリに順次格納する(SP53,SP54)。
また、図27は、第1のLDEV移行処理手順RT5(図25)のステップSP41について上述した負荷バランスチェック処理に関するCPU80の具体的な処理内容を示したフローチャートである。CPU80は、この図27に示す負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43それぞれの負荷(データ入出力の増加に伴う処理速度低下など)を数値化し、これらの値を比較することにより、いずれの負荷が高いかを判断する。
すなわちCPU80は、かかる第1のLDEV移行処理手順RT5(図25)のステップSP41に進むと、この負荷バランスチェック処理手順RT7を開始し、まず、既設置ストレージ装置42及び追加ストレージ装置43のうちのいずれか一方(ここでは既設置ストレージ装置42とする)のペア管理テーブル7に登録されたコピーペア数をカウントすることにより、既設置ストレージ装置42内に設定されたコピーペア数N(P)を検出する(SP60)。
またCPU80は、この後既設置ストレージ装置42内に設定された内部LDEV62及び仮想LDEV53のうち、コピーペアを形成していないLDEV(以下、これをノーマルボリュームと呼ぶ)数N(L)を算出する(SP61)。具体的には、既設置ストレージ装置42のLDEV管理テーブル85における内部(仮想)LDEVフィールド90(図16)のLUN欄94にLUNが格納されたエントリ数N(L)をカウントし、そのカウント値と、ステップSP60において検出したコピーペア数N(P)の2倍との差分を算出する。
続いてCPU80は、既設置ストレージ装置42内に設定された内部LDEV62及び仮想LDEV53を、コピーペアの正ボリュームを形成するLDEV、コピーペアの副ボリュームを形成するLDEV及びノーマルボリュームの3種類に分けて、各種類のLDEV数にその種類に対して予め設定された負荷係数を乗算したものの合計値を求めるようにして、既設置ストレージ装置42の負荷L1を数値化する(SP62)。
この演算は、コピーペアの正ボリュームに対する負荷係数をP、コピーペアの副ボリュームに対する負荷係数をS、ノーマルボリュームに対する負荷係数をTとして、次式
[数1]
L1=N(P)×P+N(P)×S+N(L) ……(1)

により算出することができる。
例えば、コピーペアの正ボリュームに対する負荷係数Pを1.0、コピーペアの副ボリュームに対する負荷係数Sを0.5、ノーマルボリュームに対する負荷係数Tを1.0とする。なお、コピーペアのペアステータスが「スプリット」のときは副ボリュームへの書込み処理がなく、副ボリュームの負荷が軽減されることから、正ボリュームに対する負荷係数Pの1.0に対して副ボリュームに対する負荷係数Sを0.2程度に設定することも考えられるが、これら正ボリューム及び副ボリュームが再同期することになれば副ボリュームへの書込み処理が発生し、これが高負荷となる可能性があるため、ここでは副ボリュームに対する負荷係数を0.5としている。
そして既設置ストレージ装置42におけるコピーペア数を400個、ノーマルボリューム数を200個であるものとすると、既設置ストレージ装置42全体での負荷L1は、次式
[数2]
L1=400×1.0+400×0.5+200×1.0=800

のように算出される。
このような既設置ストレージ装置42の負荷L1の演算後、CPU80は、データ移行先である追加ストレージ装置の43ペア管理テーブル7に登録されたコピーペア数をカウントすることにより、当該追加ストレージ装置43内に設定されたコピーペア数N(P)´を検出する(SP63)。
続いてCPU80は、ステップSP61において上述した演算手法により、追加ストレージ装置43内に設定された内部LDEV77及び仮想LDEV76のうちのノーマルボリュームの数N(L)´を算出し(SP64)、この後ステップSP62において上述した演算手法により、追加ストレージ装置43の負荷L3を数値化する(SP65)。
次いでCPU80は、既設置ストレージ装置42の数値化された負荷L1が追加ストレージ装置43の数値化された負荷L3よりも大きいか否かを判断し(SP66)、否定結果を得たときには(SP66:NO)、「False(間違い)」というチェック結果を得(SP67)、肯定結果を得たときには(SP66:YES)、「True(正しい)」というチェック結果を得る(SP68)。
かくして、CPU80は、「False(間違い)」というチェック結果を得た場合、図25に示す第1のLDEV移行処理手順RT5のステップSP42の判定において否定結果を得ることとなり、この後この負荷分散処理を終了する(SP43)。これに対して、CPU80は、「True(正しい)」というチェック結果を得た場合、第1のLDEV移行処理手順RT5のステップSP42の判定において肯定結果を得ることとなり、この後ステップSP44に進む。
一方、図28は、第1のLDEV移行処理手順RT5(図25)のステップSP44について上述した処理の具体的な処理内容を示したフローチャートである。CPU80は、この図28に示す第1のLDEV検索処理手順RT8に従って、コピーペアを形成しておらず、かつ外部LDEV52とマッピングされている仮想LDEV53を検索する。
すなわちCPU80は、第1のLDEV移行処理手順RT5のステップSP44に進むと、この第1のLDEV検索処理手順RT8を開始し、まず、既設置ストレージ装置42のLDEV管理テーブル85から、未だ後述のステップSP71及びステップSP73の処理の処理対象となっていない内部LDEV62又は仮想LDEV53を検索する(SP70)。
続いてCPU80は、既設置ストレージ装置42のLDEV管理テーブル85を参照して、ステップSP70において検出した未チェックの内部LDEV62又は仮想LDEV53のなかから、外部LDEVフィールド91(図16)のポートアドレス欄96及びLUN欄97にそれぞれポートアドレスやLUNが登録されているエントリ、つまり外部ストレージ装置47内の外部LDEV52がマッピングされている仮想LDEV53のエントリを1つ選択する(SP71)。
CPU80は、このとき対応するエントリを選択できなかった場合には(SP71:なし)、第1のLDEV移行処理手順RT5に戻り(SP72)、この後この第1のLDEV移行処理手順RT5のステップSP45を介してステップSP46に進む。
これに対して、CPU80は、このステップSP71において対応するエントリを選択できた場合には(SP71:あり)、そのエントリと対応付けられた内部LDEV62又は仮想LDEV53のLDEV番号が、正ボリュームのLDEV番号又は負ボリュームのLDEV番号として既設置ストレージ装置42のペア管理テーブル7に登録されていないかどうか検索する(SP73)。
そしてCPU80は、この検索により、ステップSP71において選択したエントリと対応付けられた内部LDEV62又は仮想LDEV53のLDEV番号を、既設置ストレージ装置42のペア管理テーブル7上において検出できた場合には(SP73:あり)、ステップSP70に戻って同様の処理を繰り返す(SP70〜SP73−SP70)。
これに対してCPU80は、かかる検索により、ステップSP71において選択したエントリと対応付けられた内部LDEV62又は仮想LDEV53のLDEV番号を、既設置ストレージ装置42のペア管理テーブル7上において検出できなかった場合には(SP73:なし)、第1のLDEV移行処理手順RT5に戻り(SP74)、この後この第1のLDEV移行処理手順RT5のステップSP45を介してステップSP47に進む。
他方、図29は、第1のデータ移行処理(図25)のステップSP47について上述したパス張替え処理に関するCPU80の具体的な処理内容を示したフローチャートである。CPU80は、この図29に示すパス張替え処理手順RT9に従って、上述のようなパス張替え処理を実行する。
すなわち、CPU80は、第1のLDEV移行処理手順RT5のステップSP47に進むと、このパス張替え処理手順RT9を開始し、まず、外部ストレージ装置47(図13)に対して「assignLUN」コマンド(図19参照)を送信する(SP80)。この「assignLUN」コマンドは、当該コマンドのあて先に対して、指定したLDEV番号のLDEVを指定したポートを介して指定した割当先に割り当てるべき旨の指示を与えるためのコマンドであり、LDEV番号、割当先に割り当てるそのコマンドのあて先のポートアドレス及び割当先のポートアドレスを引数として含んでなる。
かくして外部ストレージ装置47は、この「assignLUN」コマンドを受信すると、指定されたLDEV番号の外部LDEV52を、指定されたポート47A(図13)を介して追加ストレージ装置43の指定された外部接続用ポート43B(図13)に割り当てる。これにより追加ストレージ装置43からその外部LDEV52へのアクセスが可能となる。また外部ストレージ装置47は、かかる外部LDEV52のLUN番号をLAN48を介して管理サーバ44に通知する。
続いてCPU80は、追加ストレージ装置に「createMapping」コマンドを送信する(SP81)。この場合において、CPU80は、既設置ストレージ装置42内のデータ移行対象の内部LDEV62又は仮想LDEV53のLDEV管理テーブル85に登録されているエントリ情報(LDEV番号、容量、外部ストレージ装置のポートアドレス及びLUN)を引数として指定する。
追加ストレージ装置43は、この「createMapping」コマンドを受信すると、指定されたLDEV番号及び指定された容量(データ移行対象の内部LDEV62又は仮想LDEV53(以下、これを移行元LDEVと呼ぶ)と同じ容量)の仮想LDEV76(以下、これを移行先LDEVと呼ぶ)を作成し、その移行先LDEVのLDEV番号及び容量と、外部接続用ポート42B(図13)のポートアドレスと、ステップSPにおいて取得した外部ストレージ装置のポートアドレス及び対応する外部LDEV52のLUN番号とを、それぞれLDEV管理テーブル85の対応する欄に格納する。これによりこの新規に作成した移行先仮想LDEVがLDEV管理テーブル85に登録され、これと同時にこの移行先仮想LDEVに外部LDEV52がマッピングされたこととなる。
その後CPU80は、追加ストレージ装置43に対して「assignLUN」コマンドを送信する。この結果、追加ストレージ装置43は、かかる移行先仮想LDEVのLUN番号を、指定されたポート43Aを介して指定されたホスト装置41のポート(HBA50)に割り当てる。また追加ストレージ装置43は、そのLUN番号を、かかるLDEV管理テーブル85におけるその移行先仮想LDEVと対応するエントリにおける内部(仮想)フィールド90(図16)内のLUN欄94に格納する(SP82)。これにより、ホスト装置41からその移行先仮想LDEVへのアクセスが可能となる。
続いてCPU80は、既設置ストレージ装置42に対して、移行元仮想ボリュームを対象とする「deleteLUN」コマンド(図19参照)を送信する。既設置ストレージ装置42は、この「deleteLUN」コマンドを受信すると、LDEV管理テーブル85に登録されたエントリのうち、その移行元仮想LDEVに対応するエントリにおける内部(仮想)LDEVフィールド90のLUN欄94に格納されているLUNを削除することにより、かかる外部LDEV52と移行元仮想LDEVとの関連付けを解除する。これにより既設置ストレージ装置43を介してかかる外部LDEV52にアクセスできなくなる。
その後CPU80は、既設置ストレージ装置42に「deleteMapping」コマンドを送信する。そして既設置ストレージ装置42は、この「deleteMapping」コマンドに基づいて、LDEV管理テーブル85における移行元仮想LDEVと対応するエントリにおける外部LDEVフィールド91(図16)のポートアドレス欄96(図16)及びLUN欄97(図16)に格納されたデータを消去することにより、かかる外部LDEV52と移行元仮想LDEVとの関連付けを解除し、その後LDEV管理テーブル85における移行元仮想LDEVと対応するエントリを消去することにより、移行元仮想LDEVを削除する。
なお、この場合において、マッピングを解除した外部LDEV52のLUN番号、外部ストレージ装置47のポート47A(図13)のポートアドレス、既設置ストレージ装置42における対応する外部接続用ポート42B(図13)のポートアドレスは、負荷分散ソフトウェア84(図13)が保持し続ける。
続いてCPU80は、外部ストレージ装置47に対し、かかる外部LDEV52のLUN番号、外部ストレージ装置47のポート47Aのポートアドレス、外部接続用ポート42Bのポートアドレスを指定した「deleteLUN」コマンドを送信する。そして、外部ストレージ装置47は、この「deleteLUN」コマンドを受信すると、当該「deleteLUN」コマンドに従って、既設置ストレージ装置42に対するかかる外部LDEV52の割り当てを解除する。
(2−2−5)第1の負荷分散処理手順RT4のステップSP31における処理
次に、第1の負荷分散処理手順RT4(図24)のステップSP31において行われる、正ボリューム及び副ボリュームが共に外部LDEV52(図13)にマッピングされ、ペアステータスが「ペア」のコピーペアを、追加ストレージ装置43に移行させる処理について説明する。この移行処理は、負荷分散ソフトウェア84(図13)に基づき、図30に示す第2のLDEV移行処理手順RT10に従って行われる。
すなわち管理サーバ44のCPU80は、図24について上述した第1の負荷分散処理手順RT4のステップSP31に進むと、図30に示す第2のLDEV移行処理手順RT10を開始し、まず、図26について上述したテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43のLDEV管理テーブル85及びペア管理テーブル7を取得する(SP90)。
続いて、CPU80は、図27について上述した負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP91)。この結果、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP92:NO)、この負荷分散処理を終了する(SP93)。
これに対してCPU80は、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP92:YES)、ステップSP90において取得した既設置ストレージ装置42のLDEV管理テーブル85及びペア管理テーブル7に基づいて、正ボリューム及び副ボリュームが共に外部ストレージ装置47内の外部LDEV52にマッピングされ、かつペアステータスが「ペア」のコピーペアを検索する(SP94)。
CPU80は、この検索により、かかる条件を満たすコピーペアを検出しなかったときには(SP95:NO)、第1の負荷分散処理手順RT4(図24)のステップSP32に進み(SP96)、これに対してかかる条件を満たすコピーペアを検出したときには(SP95:YES)、このコピーペアを構成する正ボリュームのLDEV番号を既設置ストレージ装置42のLDEV管理テーブル85から検索する(SP97)。
そしてCPU80は、この後この検索結果に基づいて、図29について上述したパス張替え処理手順RT9に従って、ステップSP94において検出したコピーペアの正ボリュームを追加ストレージ装置43に移行させる(SP98)。
またCPU80は、同様にしてステップSP94において検出したコピーペアを構成する副ボリュームのLDEV番号を既設置ストレージ装置42のLDEV管理テーブル85から検索し(SP99)、この後この検索結果に基づいて、図29について上述したパス張替え処理手順RT9に従って、当該副ボリュームを追加ストレージ装置43に移行させる(SP100)。
続いてCPU80は、「deletepair」コマンドを既設置ストレージ装置42に送信することにより、当該既設置ストレージ装置42内のペア管理テーブル7に登録されている、ステップSP94において検出したコピーペアに対応するペア番号のエントリを削除することにより、既設置ストレージ装置42内から当該コピーペアを削除する(SP101)。
さらにCPU80は、この後生成すべきコピーペアのペアステータスを「ペア」とする「createpair」コマンド、つまり「createpair -pair」を追加ストレージ装置43に送信することにより、追加ストレージ装置43に移行後のコピーペアのペアステータスを「ペア」に設定すると共に、当該コピーペアの差分ビット情報6の各ビットの値をすべて「0」に設定する(SP102)。これにより追加ストレージ装置43に移行される前既設置ストレージ装置42内に設定されたコピーペアのペアステータス及び差分ビット情報6と同じペアステータス差分ビット情報が追加ストレージ装置43に設定されるため、結果的に移行前のコピーペアのコピーステータスがコピーペアの移行と共に追加ストレージ装置43に引き継がれたこととなる。
そしてCPU80は、この後同様の処理を繰り返し(SP90〜SP102)、これにより既設置ストレージ装置42内に設定された、正ボリューム及び副ボリュームが共に外部LDEV52にマッピングされ、かつペアステータスが「ペア」のコピーペアを、追加ストレージ装置43に順次移行させる。
ここで図31は、このような第2のデータ移行処理手順RT10(図30)のステップSP94について上述した、正ボリューム及び副ボリュームが共に外部ストレージ装置47内の外部LDEV52にマッピングされ、かつペアステータスが「ペア」のコピーペアの検索処理の処理内容を示すフローチャートである。
CPU80は、かかる第2のLDEV移行処理手順RT10のステップSP94に進むと、この図31に示す第1のコピーペア検索処理手順RT11を開始し、まず、既設置ストレージ装置42のペア管理テーブル7のペアステータス欄103(図17)から、指定されたペアステータス(「ペア」)のコピーペアのエントリを検索する(SP110)。
そしてCPU80は、かかる検索により、指定されたペアステータスのエントリを検出できなかったときには(SP110:なし)、第2のLDEV移行処理手順RT10に戻り(SP117)、この後この第2のLDEV移行処理手順RT10のステップSP95を介して第1の負荷分散処理手順RT4のステップSP32に進む。
これに対してCPU80は、かかる検索により、指定されたペアステータスのエントリを検出できたときには(SP110:あり)、検出したそのエントリの正ボリュームのLDEV番号を既設置ストレージ装置42のペア管理テーブル7から取得し(SP111)、この後既設置ストレージ装置42のLDEV管理テーブル85(図16)の内部(仮想)LDEVフィールド90(図16)の各LDEV番号欄92(図16)に格納されたLDEV番号から、ステップSP111において取得したLDEV番号が格納されているエントリを検索する(SP112)。
そしてCPU80は、このエントリを検出すると、当該エントリの外部LDEVフィールド91(図16)のポートアドレス欄96(図16)及びLUN欄97(図16)に、それぞれ対応するポートアドレスや外部LDEV52のLUNが格納されているか否か、つまりそのエントリに対応する既設置ストレージ装置42内の仮想LDEV53に、外部LDEV52がマッピングされているか否かを確認する(SP113)。
そしてCPU80は、かかるステップSP113の確認において否定的な結果を得ると(SP113:NO)、ステップSP110に戻り、これに対して肯定的な結果を得ると(SP113:YES)、ステップSP110において検出したエントリの副ボリュームのLDEV番号を既設置ストレージ装置42のペア管理テーブル7から取得する(SP114)。
またCPU80は、この後既設置ストレージ装置42のLDEV管理テーブル85の内部(仮想)LDEVフィールド90(図16)のLDEV番号欄92(図16)に、ステップSP114において取得したLDEV番号が格納されているエントリを検索する(SP115)。
さらにCPU80は、ステップSP115の検索により、対応するエントリを検出すると、当該エントリの外部LDEVフィールド91(図16)のポートアドレス欄96(図16)及びLUN欄97(図16)に、対応するポートアドレスや外部LDEV52のLUNが格納されているか否か、つまりそのエントリに対応する既設置ストレージ装置42内のLDEVに外部LDEV52がマッピングされているか否かを確認する(SP116)。
そしてCPU80は、このステップSP116の確認において否定結果を得ると(SP116:NO)、ステップSP110に戻り、これに対して肯定結果を得ると(SP116:YES)、第2のLDEV移行処理手順RT10に戻り(SP118)、この後この第2のLDEV移行処理手順RT10のステップSP97に進む。
(2−2−6)第1の負荷分散処理手順RT4のステップSP32における処理
次に、第1の負荷分散処理手順RT4(図24)のステップSP32において行われる、正ボリューム及び副ボリュームが共に外部LDEV52にマッピングされ、ペアステータスが「コピー」のコピーペアを追加ストレージ装置43に移行する処理について説明する。この移行処理は、負荷分散ソフトウェア84(図13)に基づき、図32に示す第3のLDEV移行処理手順RT12に従って行われる。
すなわち管理サーバ44のCPU80は、図24について上述した第1の負荷分散処理手順RT4のステップSP32に進むと、図32に示す第3のLDEV移行処理手順RT12を開始し、まず、図26について上述したテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43のLDEV管理テーブル85及びペア管理テーブル7を取得する(SP120)。
続いて、CPU80は、図27について上述した負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP121)。この結果、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP122:NO)、この負荷分散処理を終了する(SP123)。
これに対してCPU80は、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP122:YES)、ステップSP120において取得した既設置ストレージ装置42のLDEV管理テーブル85及びペア管理テーブル7に基づいて、正ボリューム及び副ボリュームが共に外部ストレージ装置47内の外部LDEV52にマッピングされ、かつペアステータスが「コピー」のコピーペアを検索する(SP124)。なお、このステップSP124における処理は、図31について上述した第1のコピーペア検索処理手順RT11のステップSP110における指定されたペアステータスが「コピー」である場合であるものとして、この第1のコピーペア検索処理手順RT11に従って行うことができる。
そしてCPU80は、この検索により、かかる条件を満たすコピーペアを検出しなかったときには(SP125:NO)、第1の負荷分散処理手順RT4のステップSP33に進み(SP126)、これに対してかかる条件を満たすコピーペアを検出したときには(SP125:YES)、このコピーペアのコピー処理が終了するまで待機する。具体的に、CPU80は、このコピーペアのペアステータスが「ペア」になるまで、既設置ストレージ装置42に対して「getLdevTable」コマンドを定期的(例えば1分毎)に発行して、当該コピーペアのペアテータスを確認する処理を繰り返す。
そしてCPU80は、やがてそのコピーペアのペアステータスが「ペア」になると、ステップSP128〜SP133の処理を、図30について上述した第2のLDEV移行処理手順RT10のステップSP97〜SP102と同様に実行することにより、そのコピーペアを追加ストレージ装置43に移行させると共に、当該コピーペアの管理情報(ペアステータス及び差分ビット情報6)を追加ストレージ装置43に移行後のコピーペアに引き継がせる。
そしてCPU80は、この後同様の処理を繰り返し(SP120〜SP133)、これにより既設置ストレージ装置42内に設定された、正ボリューム及び副ボリュームが共に外部LDEV52にマッピングされ、かつペアステータスが「コピー」のコピーペアを、追加ストレージ装置43に順次移行させる。
なお、上述の説明では、かかるコピーペアのコピー処理が終了するまで待機した後に(SP127)、パスを張り替えてペアステータスが「ペア」のコピーペアを形成する(SP128〜SP133)ようにしている場合について述べたが、かかるコピーペアのコピー処理が終了するまで待たずに、実施中のコピー処理を中止させて、正ボリューム及び副ボリュームのパスを張り替えた後(ステップSP128〜SP131の処理を実行した後)に、追加ストレージ装置43のペア管理テーブル85にエントリを追加し、対応する差分ビット情報6のすべてのビットを「1」に設定してコピーを実施する(ペアステータスを「コピー」とする)ようにしても良い。
(2−2−7)第1の負荷分散処理手順RT4のステップSP33における処理
次に、第1の負荷分散処理手順RT4(図24)のステップSP33において行われる、正ボリューム及び副ボリュームが共に外部LDEV52(図13)と対応付けられた仮想LDEV53でペアステータスが「スプリット」のコピーペアを、追加ストレージ装置43に移行する処理について説明する。この移行処理は、負荷分散ソフトウェア84(図13)に基づき、図33に示す第4のLDEV移行処理手順RT3に従って行われる。
すなわち管理サーバ44のCPU80は、図24について上述した第1の負荷分散処理手順RT4のステップSP33に進むと、図33に示す第4のLDEV移行処理手順RT13を開始し、まず、図26について上述したテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43のLDEV管理テーブル85及びペア管理テーブル7を取得する(SP140)。
続いて、CPU80は、図27について上述した負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP141)。この結果、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP142:NO)、この負荷分散処理を終了する(SP143)。
これに対してCPU80は、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP142:YES)、ステップSP140において取得した既設置ストレージ装置42のLDEV管理テーブル85及びペア管理テーブル7に基づいて、正ボリューム及び副ボリュームが共に外部ストレージ装置47内の外部LDEV52にマッピングされ、かつペアステータスが「スプリット」のコピーペアを検索する(SP144)。
CPU80は、この検索により、かかる条件を満たすコピーペアを検出しなかったときには(SP145:NO)、第1の負荷分散処理手順RT4(図24)のステップSP34に進み(SP146)、これに対してかかる条件を満たすコピーペアを検出したときには(SP145:YES)、この後ステップSP146〜SP150の処理を、図30について上述した第2のLDEV移行処理手順RT10のステップSP97〜SP101と同様に実行することにより、そのコピーペアとその管理情報(ペアステータス等)とを追加ストレージ装置43に移行させる。
さらにCPU80は、この後生成すべきコピーペアのペアステータスを「スプリット」とする「createpair」コマンド、つまり「createpair -split」を追加ストレージ装置43に送信することにより、追加ストレージ装置43に移行後のコピーペアのペアステータスを「スプリット」に設定すると共に、当該コピーペアの差分ビット情報6のすべてのビットを「1」に設定する(SP151)。
これにより、このコピーペアが追加ストレージ装置43に移行される前に既設置ストレージ装置42内に設定されていたペアステータスと同じペアステータスが追加ストレージ装置43に設定される。また、このコピーペアが追加ストレージ装置43に移行される前の正ボリューム及び副ボリューム間の差分箇所が記憶されている差分ビット情報6は既設置ストレージ装置42内に存在するが、追加ストレージ装置43の差分ビット情報6の各ビットをすべて「1」に設定しているため、移行前の差分ビット情報6が無くても(差分ビット情報を追加ストレージ装置43に引き継いではいないが)、コピーペアを追加ストレージ装置43に移行した後、当該コピーペアの同期をとる(「resync」コマンド相等)場合に、論理デバイス内のデータ欠落等が生じることはない。
そしてCPU80は、この後同様の処理を繰り返し(SP140〜SP151)、これにより既設置ストレージ装置42内に設定された、正ボリューム及び副ボリュームが共に外部LDEV52にマッピングされ、ペアステータスが「スプリット」のコピーペアを、追加ストレージ装置43に順次移行させる。
(2−2−8)第1の負荷分散処理手順RT4のステップSP34における処理
次に、第1の負荷分散処理手順RT4(図24)のステップSP34において行われる処理について説明する。このステップSP34では、同一筐体内コピーペアを形成しており、正ボリュームが内部LDEV62で副ボリュームが外部LDEV52にマッピングされた仮想LDEV53であるコピーペアを追加ストレージ装置43に移行する処理が行われる。そして、この移行処理は、負荷分散ソフトウェア84(図13)に基づき、図35に示す第5のLDEV移行処理手順RT14に従って行われる。
すなわち管理サーバ44のCPU80は、図24について上述した第1の負荷分散処理手順RT4のステップSP34に進むと、図34に示す第5のLDEV移行処理手順RT14を開始し、まず、図26について上述したテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43のLDEV管理テーブル85及びペア管理テーブル7を取得する(SP160)。
続いて、CPU80は、図27について上述した負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP161)。この結果、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP162:NO)、この負荷分散処理を終了する(SP165)。
これに対してCPU80は、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP162:YES)、ステップSP120において取得した既設置ストレージ装置42のLDEV管理テーブル85及びペア管理テーブル7に基づいて、同一筐体内コピーペアを形成しており、正ボリュームが内部LDEV62で副ボリュームが外部LDEV52にマッピングされた仮想LDEV53であるコピーペアを検索する(SP163)。
そしてCPU80は、この検索により、かかる条件を満たすコピーペアを検出しなかったときには(SP164:NO)、この負荷分散処理を終了し(SP165)、これに対してかかる条件を満たすコピーペアを検出したときには(SP164:YES)、既設置ストレージ装置42のペア管理テーブル7を検索して、このコピーペアの現在のペアステータス(「ペア」、「コピー」又は「スプリット」)を確認する(SP166)。
そしてCPU80は、かかるコピーペアのペアステータスが「コピー」でなかったときには、ステップSP169に進み(SP167:NO)、これに対してかかるコピーペアのペアステータスが「コピー」であったときには(SP167:YES)、そのコピーペアにおけるコピー処理が終了するまで待機する(SP168)。具体的に、CPU80は、図32について上述した第3のLDEV移行処理手順RT12のステップSP127と同様に、このコピーペアのペアステータスが「ペア」になるまで、既設置ストレージ装置42に対して「getLdevTable」コマンドを定期的(例えば1分毎)に発行して、当該コピーペアのペアテータスを確認する処理を繰り返すこととなる。
やがてCPU80は、かかるコピーペアのコピー処理が終了して、当該コピーペアのペアステータスが「ペア」になると、追加ストレージ装置43に対して「createLdev」コマンドを発行することにより、ステップSP163において検出したコピーペアの正ボリュームと同じ容量の内部LDEV77(図13)を追加ストレージ装置43内に作成させる(SP170)。
またCPU80は、追加ストレージ装置43に対して「assignLUN」コマンドを発行することにより、ステップSP169において追加ストレージ装置43内に作成させた内部LDEV77をホスト装置41(図13)に割り当てる。このような処理により、かかる内部LDEV77に対するホスト装置41からのアクセスが可能となる。
その後CPU80は、SCSI(Small Computer System Interface)コマンド等を利用して、ブロック単位で既設置ストレージ装置42内の正ボリュームのデータを、ステップSP169において作成した追加ストレージ装置43内の内部LDEV77にコピーする(SP171)。
またCPU80は、この後図30の第2のLDEV移行処理手順RT10のステップSP99〜ステップSP101と同様の処理を実行することにより、副ボリュームを追加ストレージ装置43に移行させ、かつステップSP163において検出したコピーペアを既設置ストレージ装置42から削除する(SP172〜SP174)。
さらにCPU80は、この後追加ストレージ装置43に対して「createpair -init」を発行することにより、ステップSP169〜ステップSP172の処理により追加ストレージ装置43内に移行させた正ボリュームと、ステップSP172及びステップSP173の処理により追加ストレージ装置43内に移行させた副ボリュームとからなるコピーペアを追加ストレージ装置43に生成させる。これにより追加ストレージ装置43に移行される前のコピーペアのペアステータス及び差分ビット情報6が移行後のコピーペアに引き継がれ(厳密には、移行前と同じペアステータス及び差分ビット情報が設定され)、この後これら正ボリューム及び副ボリューム間でのコピーが開始されることとなる(SP175)。
ここで図35は、このような第5のLDEV移行処理手順RT14(図34)のステップSP163について上述した、同一筐体内コピーペアを形成しており、正ボリュームが内部LDEV62で副ボリュームが仮想LDEV53にマッピングされた外部LDEV52であるコピーペアの検索処理の処理内容を示すフローチャートである。
CPU80は、かかる第5のLDEV移行処理手順RT14のステップSP163に進むと、この図35に示す第2のコピーペア検索処理手順RT15を開始し、まず、既設置ストレージ装置42のペア管理テーブル7の正ボリュームLDEV番号欄101(図17)から、1つの正ボリュームを選択する(SP180)。
そしてCPU80は、このとき正ボリュームを選択できなかった場合、つまり既設置ストレージ装置42のペア管理テーブル7にコピーペアが登録されていない場合には(SP180:なし)、図34について上述した第5のLDEV移行処理手順RT14に戻り(SP181)、この後この第5のLDEV移行処理手順RT14のステップSP164を介してステップSP165に進むことにより、この負荷分散処理を終了する(SP165)。
これに対してCPU80は、ステップSP180において正ボリュームのLDEVを選択できた場合には(SP180:あり)、既設置ストレージ装置42のLDEV管理テーブル85(図16)内のLDEV♯を検索して、選択したその正ボリュームのLDEV番号のエントリを検出する(SP182)。
続いてCPU80は、既設置ストレージ装置42のLDEV管理テーブル85におけるステップSP182において検出したエントリの外部LDEVフィールド91(図16)のポートアドレス欄96(図16)及びLUN欄97(図16)に、対応するポートアドレスや外部LDEV52のLUNが格納されているか否か、つまりそのエントリに対応する既設置ストレージ装置42内の仮想LDEV53に、外部LDEV52がマッピングされているか否かを確認する(SP183)。
そしてCPU80は、この確認において肯定的な結果を得ると(SP183:YES)、ステップSP180に戻り、これに対して否定的な結果を得ると(SP183:NO)、ステップSP181において正ボリュームのLDEV番号を選択したコピーペアの副ボリュームのLDEV番号を、既設置ストレージ装置42のペア管理テーブル7(図15)から取得する(SP184)。
続いてCPU80は、既設置ストレージ装置42のLDEV管理テーブル85(図16)内のLDEV♯を検索して、ステップSP184において取得したその副ボリュームのLDEV番号のエントリを検出する(SP185)。
またCPU80は、この後この既設置ストレージ装置42のLDEV管理テーブル85におけるステップSP185において検出したエントリの外部LDEVフィールド91(図16)のポートアドレス欄96(図16)及びLUN欄97(図16)に、対応するポートアドレスや外部LDEV52のLUNが格納されているか否か、つまりそのエントリに対応する既設置ストレージ装置42内の仮想LDEV62に、外部LDEV52がマッピングされているか否かを確認する(SP186)。
そしてCPU80は、この確認において否定的な結果を得ると(SP186:NO)、ステップSP180に戻り、これに対して肯定的な結果を得ると(SP186:YES)、図34について上述した第5のLDEV移行処理手順RT14に戻り(SP187)、この後この第5のLDEV移行処理手順RT14のステップSP164を介してステップSP166に進む。
(2−3)本実施の形態の効果
以上の構成において、本実施の形態による記憶システム40では、管理サーバ44が定期的に既設置ストレージ装置42及び追加ストレージ装置43の負荷をそれぞれ検出し、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも大きいときに、既設置ストレージ装置42内でコピーペアを形成していない内部LDEV62又は仮想LDEV53を優先的に追加ストレージ装置43に移行させる。従って、この段階で既設置ストレージ装置43の負荷分散処理を終了することができれば、既設置ストレージ装置42内に設定されたコピーペアの現在の状態に関わりなく、かかる既設置ストレージ装置42の負荷分散処理を行うことができる。
一方、記憶システム40では、この段階で既設置ストレージ装置42の負荷分散処理を終了できないときには、管理サーバ44の制御のもとに、既設置ストレージ装置42内に設定されたコピーペアの正ボリューム及び副ボリュームを形成する各仮想LDEV53のパスを張り替えるようにして、これら仮想LDEV53を追加ストレージ装置43に移行させる。またこの後管理サーバ44が、既設置ストレージ装置42から読み出したLDEV管理テーブル85及びペア管理テーブル7に基づいて、かかる正ボリューム及び副ボリュームの移行前のペアステータスに応じた引数(「-init」、「-pair」又は「-split」)を付加した「createpair」コマンドを追加ストレージ装置43に発行し、追加ストレージ装置43がこの「createpair」コマンドに従って移行後の正ボリューム及び副ボリュームのペアステータス及び差分ビット情報6を、移行前の対応する正ボリューム及び副ボリュームと同じペアステータス及び差分ビット情報6に設定する。
従って、この記憶システム40では、外部接続機能により外部ストレージ装置47の外部LDEV52にそれぞれマッピングされると共に、同一筐体内コピー機能により同一筐体内コピーを実行している正ボリューム及び副ボリュームを追加ストレージ装置43に移行する場合にも、そのコピーペアのペアステータスと差分ビット情報6とを移行前と同じに設定し、又はそのコピーペアのデータを移行したことによって移行前のデータと差異が生じないようにコピーペアの現在の状態を追加ストレージ装置43に設定することができ、かくしてかかる場合にも負荷分散が可能となる。
(3)第2の実施の形態
(3−1)第2の実施の形態による負荷分散処理の概要
図24について上述した第1の負荷分散処理手順RT4に従った負荷分散処理では、ステップSP32においてペアステータスが「コピー」のコピーペアを追加ストレージ装置43に移行する際に、当該コピーペアのコピー処理が終了するまで待機するため(図32のステップSP127)に無駄な時間が発生する。
またこの第1の負荷分散処理手順RT4に従った負荷分散処理では、ステップSP33においてペアステータスが「スプリット」のコピーペアを追加ストレージ装置43に移行する際に、差分ビット情報6(図18)を移行しないため、追加ストレージ装置43に移行された後の正ボリューム及び副ボリュームをその後再同期させる際にコピー量が多いという若干のデメリットがある。
そこで、正ボリューム及び副ボリュームが共に外部LDEV52にマッピングされ、かつペアステータスが「コピー」又は「スプリット」のコピーペアと、同一筐体内コピーペアを形成しており、正ボリュームが内部LDEV62で副ボリュームが外部LDEV52にマッピングされた仮想LDEV53であるコピーペアとを区別することなく同じ処理タイミングで一括して行うことによって、第1の負荷分散処理手順RT4に従った負荷分散処理に比べて負荷分散処理を迅速化することができる。
(3−2)本実施の形態による記憶システムの構成
図13において、100は全体として第2の実施の形態による記憶システムを示す。この記憶システム100は、管理サーバ101のCPU80が、物理記憶デバイス81に格納された負荷分散ソフトウェア102に基づき、図24について上述した第1の負荷分散処理手順RT4に代えて、図36に示す第2の負荷分散処理手順RT16に従って既設置ストレージ装置42の負荷を追加ストレージ装置43に分散させる負荷分散処理を行うようになされた点を除いて第1の実施の形態による記憶システム40(図13)と同様に構成されている。
実際上、管理サーバ101のCPU80は、この第2の負荷分散処理手順RT16を定期的に実行し、まず、第1の負荷分散処理手順RT4(図24)のステップSP30と同様にして、既設置ストレージ装置42内においてコピーペアを形成していない内部LDEV62又は仮想LDEV53を追加ストレージ装置53に移行させ(SP190)、この後当該第1の負荷分散処理手順RT4のステップSP31と同様にして、正ボリューム及び副ボリュームが共に外部LDEV52(図13)にマッピングされ、ペアステータスが「ペア」のコピーペアを、追加ストレージ装置43に移行させる(SP191)。
そしてCPU80は、この後ペアステータスが「ペア」でない既設置ストレージ装置42内のコピーペアを追加ストレージ装置43に移行させる(SP192)。
図37及び図38は、このようなコピーペアの移行処理の具体的内容を示すフローチャートである。CPU80は、かかる第2の負荷分散処理手順RT16のステップSP192に進むと、この図37及び図38に示す第6のLDEV移行処理手順RT17を開始し、まず、図26について上述したテーブル取得処理手順RT6に従って、既設置ストレージ装置42及び追加ストレージ装置43のLDEV管理テーブル85及びペア管理テーブル7を取得する(SP200)。
続いて、CPU80は、図27について上述した負荷バランスチェック処理手順RT7に従って、既設置ストレージ装置42及び追加ストレージ装置43間の現在の負荷バランスをチェックする(SP201)。この結果、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP202:NO)、この負荷分散処理を終了する(SP203)。
これに対してCPU80は、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さいときには(SP202:YES)、ステップSP200において取得した既設置ストレージ装置42のペア管理テーブル7からペアステータスが「ペア」でないコピーペアのエントリを1つ選択する(SP204)。
そしてCPU80は、この後そのコピーペアのペアステータスを、そのペア管理テーブル7に基づき確認し(SP205)、当該確認したペアステータスが「コピー」であった場合には(SP206:YES)、そのコピーペアのコピー処理が終了するまで待機する(SP207)。
一方、CPU80は、かかるコピーペアのペアステータスが「コピー」でなかった場合や(SP206:NO)、コピーペアのペアステータスが「コピー」であったが、そのコピーペアのコピー処理が終了した場合には、そのコピーペアを形成する正ボリュームのLDEVのLDEV番号を既設置ストレージ装置42のLDEV管理テーブル85から検索し(SP208)、この後この検索結果に基づいて、かかる正ボリュームが外部LDEV52にマッピングされている仮想LDEV53であるか否かを判断する(SP209)。
CPU80は、この判断において肯定結果を得ると(SP209:YES)、図29について上述したパス張替え処理手順RT9に従って、その正ボリュームを追加ストレージ装置43に移行する処理を実行する(SP210)。
これに対して、CPU80は、かかるステップSP219の判断において否定結果を得ると(SP209:NO)、図34について上述した第5のLDEV移行処理手順RT14のステップSP169〜ステップSP171と同様にして、かかる正ボリュームを追加ストレージ装置43に移行させる(SP211〜SP213)。
この後CPU80は、ステップSP214において選択したコピーペアを形成する副ボリュームのLDEVのLDEV番号を既設置ストレージ装置42のLDEV管理テーブル85から検索し(SP214)、この検索結果に基づいて、かかる副ボリュームが外部LDEV52にマッピングされている仮想LDEV53であるか否かを判断する(SP215)。
CPU80は、この判断において肯定結果を得ると(SP215:YES)、図29について上述したパス張替え処理手順RT9に従って、その副ボリュームを追加ストレージ装置43に移行する処理を実行する(SP216)。
これに対して、CPU80は、かかるステップSP215の判断において否定結果を得ると(SP215:NO)、追加ストレージ装置43に対して「createLdev」コマンドを発行することにより、その副ボリュームと同じ容量の仮想LDEV76(図13)を追加ストレージ装置43内に作成させる(SP217)。
次いでCPU80は、「deletepair」コマンドを既設置ストレージ装置42に送信することにより、当該既設置ストレージ装置42内のペア管理テーブル7に登録されている、ステップSP214において検出したコピーペアに対応するペア番号のエントリを削除する(SP218)。
またCPU80は、この後追加ストレージ装置43に対して「createpair -init」を発行することにより、ステップSP209〜ステップSP213の処理により追加ストレージ装置43内に移行させた正ボリュームと、ステップSP215〜ステップSP217の処理により追加ストレージ装置43内に移行させた副ボリュームとからなるコピーペアを追加ストレージ装置43に生成させる。これにより追加ストレージ装置43に移行される前のコピーペアのペアステータス及び差分ビット情報6が移行後のコピーペアに引き継がれ、この後これら正ボリューム及び副ボリューム間でのコピーが開始されることとなる(SP219)。
さらにCPU80は、この後ステップSP210に戻り、既設置ストレージ装置42の負荷が追加ストレージ装置43の負荷よりも小さくなるまで、同様の処理を繰り返す(SP200〜SP219)。
そして、このような第2の負荷分散処理手順RT16(図36)に従った負荷分散処理によれば、第1の負荷分散処理手順RT4に従った負荷分散処理に比べて負荷分散処理を迅速化することができる。かくするにつき、第1の実施の形態により得られる効果に加えて、さらに負荷分散処理を迅速化させ得る記憶システムを実現できる。
(4)第3の実施の形態
図13において、110は全体として第2の実施の形態による記憶システムを示す。この記憶システム110は、管理サーバ111のCPU80が、物理記憶デバイス81に格納された負荷分散ソフトウェア112に基づき、図24について上述した第1の負荷分散処理手順RT4に代えて、図39に示す第3の負荷分散処理手順RT17に従って既設置ストレージ装置42の負荷を追加ストレージ装置43に分散させる負荷分散処理を行うようになされた点を除いて第1の実施の形態による記憶システム40(図13)と同様に構成されている。
実際上、管理サーバ101のCPU80は、この第3の負荷分散処理手順RT18を定期的に実行し、第1の負荷分散処理手順RT4(図24)のステップSP30と同様にして、既設置ストレージ装置42内においてコピーペアを形成していない内部LDEV62又は仮想LDEV53を追加ストレージ装置53に移行させ(SP220)、この後この負荷分散処理を終了する。
このような第3の実施の形態による負荷分散処理によれば、第2の実施の形態による記憶システム110に比べて、より迅速に既設置ストレージ装置42の負荷を分散させ得る記憶システムを実現できる。
(5)第4の実施の形態
図13との対応部分に同一符号を付して示す図40は、第4の実施の形態による記憶システム120を示す。この記憶システム120は、第1の実施の形態による記憶システム40(図13)の既設置ストレージ装置42及び追加ストレージ装置43に代えて、同一筐体内コピー機能及び外部接続機能と同様の仮想化機能が搭載された既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122が設けられた点と、既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122に直接外部ストレージ装置57が接続されている点とを除いて第1の実施の形態による記憶システム40と同様に構成されている。
既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122は、図41に示すように、それぞれルーティングテーブル123を保持している複数のポート121A,122Aと、この既設置ファイバーチャネルスイッチ121又は追加ファイバーチャネルスイッチ122全体の動作制御を司るCPU124と、各種制御プログラムが格納されたメモリ125と、これら各ポート121A,122A、CPU124及びメモリ125間を接続するクロスバースイッチ126とを備えて構成される。
この既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122は、通常時、ホスト装置41や外部ストレージ装置57から送信されるファイバーチャネルパケットを、各ポート121A,122A内にそれぞれ保持しているルーティングテーブル123に従ってポート121A,122Aから対応するポート121A,122Aに渡すようにして振り分ける一方、仮想化機能の実行時には、接続された外部ストレージ装置57内に設定された外部LDEV52を仮想化する。
そのための手段として、既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122は、仮想LDEV130,131を作成し、これをホスト装置41に提供するためのSCSIターゲットとしての機能と、当該仮想LDEV130,131に対するデータ入出力要求を配下の外部ストレージ装置57に対するデータ入出力要求として発行しなおすイニシエータ(Initiator)機能とを備えている。
そして、既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122は、仮想化機能の実行時には、ホスト装置41から送信されるファイバーチャネルパケットをCPU124において解釈し、これが仮想LDEV130,131へのデータ入出力要求であった場合には、その仮想LDEV130,131にマッピングされている外部LDEV52に対するデータ入出力要求を対応する外部ストレージ装置57に発行する。
また既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122は、メモリ125内に上述のLDEV管理テーブル85、ペア管理テーブル7及びコピーペア毎の差分ビット情報6を保持しており、これらLDEV管理テーブル85、ペア管理テーブル7及び各差分ビット情報6に基づいて当該既設置ファイバーチャネルスイッチ121又は追加ファイバーチャネルスイッチ122内に設定した仮想LDEV130,131や、コピーペアを管理する。
一方、管理サーバ111は、第1の実施の形態の場合と同様に、これら既設置ファイバーチャネルスイッチ121や追加ファイバーチャネルスイッチ122のLDEV管理テーブル85及びペア管理テーブル7に基づき、図24に示す第1の負荷分散処理手順RT4に従って、既設置ファイバーチャネルスイッチ121の負荷を追加ファイバーチャネルスイッチ122に分散するための負荷分散処理を実行する。
ただし、この場合において、既設置ファイバーチャネルスイッチ121及び追加ファイバーチャネルスイッチ122内に内部LDEVが設定されることはないため、第1の負荷分散処理手順RT4のステップSP34は省略されることとなる。
以上のように、外部ストレージ装置57の外部LDEV52を仮想化する仮想化手段がファイバーチャネルスイッチ(既設置ファイバーチャネルスイッチ121、追加ファイバーチャネルスイッチ122)の場合においても、当該仮想化手段がストレージ装置(既設置ストレージ装置42、追加ストレージ装置43)の場合と同様に、その負荷を分散させることができる。
(6)他の実施の形態
なお上述の第1〜第4の実施の形態においては、外部ストレージ装置57の外部LDEV52を仮想化する仮想化手段がストレージ装置又はファイバーチャネルスイッチである記憶システム40,100,110,120に本発明を適用するようにした場合について述べたが、本発明はこれに限らず、要は、かかる仮想化手段として、自機内においてペア設定された正側の論理デバイスのデータを、上位装置を経由することなく副側の論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して前記ホスト装置に提供する第2の機能とが搭載された機器を適用した記憶システムであるのならば、この他種々の記憶システムに広く本発明を適用することができる。
また上述の第4の実施の形態においては、管理サーバ44が第1の負荷分散処理手順RT4(図24)に従って既設置ファイバーチャネルスイッチ121の負荷を分散させる処理を実行するようにした場合について述べたが、本発明はこれに限らず、例えば図36について上述した第2の負荷分散処理手順RT16や図39について上述した第3の負荷分散処理手順RT17に従って既設置ファイバーチャネルスイッチ121の負荷を分散させる処理を実行するように記憶システム120を構築するようにしても良い。
本発明は、自機内に設定された論理デバイスのうち、ペア設定された一方の論理デバイスのデータを他方の論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された機器を有する種々の記憶システムに広く適用することができる。
ストレージ装置における同一筐体内コピー機能の説明に供する概念図である。 ストレージ装置における同一筐体内コピー機能の説明に供する概念図である。 ストレージ装置における同一筐体内コピー機能の説明に供する概念図である。 ストレージ装置における同一筐体内コピー機能の説明に供する概念図である。 ストレージ装置における同一筐体内コピー機能の説明に供する遷移図である。 ストレージ装置における同一筐体内コピー機能の説明に供するフローチャートである。 ストレージ装置における同一筐体内コピー機能の説明に供するフローチャートである。 ストレージ装置における外部接続機能の説明に供する概念図である。 同一筐体内コピー機能及び外部接続機能の連携の説明に供する概念図である。 ホスト装置を介したLDEVの移行処理の説明に供する概念図である。 外部接続機能を利用している場合の負荷分散処理の説明に供する概念図である。 同一筐体内コピー機能及び外部接続機能を利用している場合の負荷分散処理の問題点の説明に供する概念図である。 第1〜第3の実施の形態による記憶システムの構成を示すブロック図である。 既設置ストレージ装置、追加ストレージ装置及び外部ストレージ装置の構成を示すブロック図である。 負荷分散ソフトウェアと、LDEV管理テーブル、ペア管理テーブル及び差分ビット情報との接続関係を示す概念図である。 (A)はLDEV管理テーブルの説明に供する概念図であり、(B)はLDEV管理テーブルの説明に供する図表である。 ペア管理テーブルの説明に供する概念図である。 差分ビット情報の説明に供する概念図である。 負荷分散処理に関する各種コマンドの説明に供する図表である。 負荷分散処理に関する各種コマンドの説明に供する図表である。 「createMapping」コマンドの説明に供する概念図である。 「deleteMapping」コマンドの説明に供する概念図である。 「createpair」コマンドの説明に供するフローチャートである。 第1の負荷分散処理手順を示すフローチャートである。 第1のLDEV移行処理手順を示すフローチャートである。 テーブル取得処理手順を示すフローチャートである。 負荷バランスチェック処理手順を示すフローチャートである。 第1のLDEV検索処理手順を示すフローチャートである。 パス張替え処理手順を示すフローチャートである。 第2のLDEV移行処理手順を示すフローチャートである。 第1のコピーペア検索処理手順を示すフローチャートである。 第3のLDEV移行処理手順を示すフローチャートである。 第4のLDEV移行処理手順を示すフローチャートである。 第5のLDEV移行処理手順を示すフローチャートである。 第2のコピーペア検索処理手順を示すフローチャートである。 第2の負荷分散処理手順を示すフローチャートである。 第6のLDEV移行処理手順を示すフローチャートである。 第6のLDEV移行処理手順を示すフローチャートである。 第3の負荷分散処理手順を示すフローチャートである。 第4の実施の形態による記憶システムの構成を示すブロック図である。 既設置ファイバーチャネルスイッチ及び追加ファイバーチャネルスイッチの構成を示すブロック図である。
符号の説明
6……差分ビット情報、7……LDEV管理テーブル、40,100,110,120……記憶システム、41……ホスト装置、42……既設置ストレージ装置、43……追加ストレージ装置、44,101,111……管理サーバ、47……外部ストレージ装置、48……LAN、52……外部LDEV、53,76,130,131……仮想LDEV、62,77……内部LDEV、80,124……CPU、81……負荷分散ソフトウェア、85……LDEV管理テーブル、RT4……第1の負荷分散処理手順、RT16……第2の負荷分散処理手順、RT17……第3の負荷分散処理手順。

Claims (8)

  1. 自機内に設定された論理デバイスのうち、ペア設定された一方の前記論理デバイスのデータを他方の前記論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された第1の機器の負荷を分散させる負荷分散システムにおいて、
    前記第1及び第2の機能が搭載された第2の機器と、
    定期的に前記第1の機器の負荷及び前記第2の機器の負荷をそれぞれ検出し、前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する管理装置と
    を備えることを特徴とする負荷分散システム。
  2. 前記管理装置は、
    前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させた後に、前記第1の機器内に設定された前記論理デバイスのうちの他の前記論理デバイスとペア設定された前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する
    ことを特徴とする請求項1に記載の負荷分散システム。
  3. 前記管理装置は、
    前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスからなるコピーペアを前記第2の機器に移行させる際に、当該コピーペアの現在の状態を検出すると共に、当該検出結果に応じた制御情報を前記第2の機器に通知し、
    前記第2の機器は、
    前記管理装置から通知される前記制御情報に基づいて、前記第1の機器から当該第2の機器に移行された前記コピーペアの状態を設定する
    ことを特徴とする請求項2に記載の負荷分散システム。
  4. 前記管理装置は、
    前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスを前記第2の機器に移行させる際に、前記一方の論理デバイスから前記他方の論理デバイスへのデータのコピー処理が行われているときには、当該コピー処理が終了した後に前記一方の論理デバイス及び前記他方の論理デバイスを第2の機器に移行させるように、前記第1及び第2の機器を制御する
    ことを特徴とする請求項2に記載の負荷分散システム。
  5. 自機内に設定された論理デバイスのうち、ペア設定された一方の前記論理デバイスのデータを他方の前記論理デバイスにコピーする第1の機能と、外部の論理デバイスを仮想化して上位装置に提供する第2の機能とが搭載された第1の機器の負荷を分散させる負荷分散方法において、
    定期的に前記第1の機器の負荷と、当該第1の機器とは別個に設けられた第1及び第2の機能が搭載された第2の機器の負荷とをそれぞれ検出する第1のステップと、
    前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する第2のステップと
    を備えることを特徴とする負荷分散方法。
  6. 前記第2のステップでは、
    前記第1の機器の負荷が前記第2の機器の負荷よりも大きいときに、前記第1の機器内に設定された前記論理デバイスのうち、他の前記論理デバイスと前記ペア設定されていない前記論理デバイスを前記第2の機器に移行させた後に、前記第1の機器内に設定された前記論理デバイスのうちの他の前記論理デバイスとペア設定された前記論理デバイスを前記第2の機器に移行させるように、前記第1及び第2の機器を制御する
    ことを特徴とする請求項5に記載の負荷分散方法。
  7. 前記第2のステップでは、
    前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスからなるコピーペアを前記第2の機器に移行させる際に、当該コピーペアの現在の状態を検出すると共に、当該検出結果に応じた制御情報を前記第2の機器に通知し、
    前記第2の機器は、
    前記管理装置から通知される前記制御情報に基づいて、前記第1の機器から当該第2の機器に移行された前記コピーペアの状態を設定する
    ことを特徴とする請求項6に記載の負荷分散方法。
  8. 前記第2のステップでは、
    前記第1の機器内においてペア設定された前記一方の論理デバイス及び前記他方の論理デバイスを前記第2の機器に移行させる際に、前記一方の論理デバイスから前記他方の論理デバイスへのデータのコピー処理が行われているときには、当該コピー処理が終了した後に前記一方の論理デバイス及び前記他方の論理デバイスを第2の機器に移行させるように、前記第1及び第2の機器を制御する
    ことを特徴とする請求項6に記載の負荷分散方法。

JP2005315634A 2005-10-31 2005-10-31 負荷分散システム及び方法 Pending JP2007122531A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005315634A JP2007122531A (ja) 2005-10-31 2005-10-31 負荷分散システム及び方法
US11/302,221 US7395388B2 (en) 2005-10-31 2005-12-14 Load balancing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005315634A JP2007122531A (ja) 2005-10-31 2005-10-31 負荷分散システム及び方法

Publications (1)

Publication Number Publication Date
JP2007122531A true JP2007122531A (ja) 2007-05-17

Family

ID=37997968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005315634A Pending JP2007122531A (ja) 2005-10-31 2005-10-31 負荷分散システム及び方法

Country Status (2)

Country Link
US (1) US7395388B2 (ja)
JP (1) JP2007122531A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187468A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd 記憶システム、解除方法及び副側のストレージ装置
JP5718533B1 (ja) * 2014-04-22 2015-05-13 株式会社日立製作所 ストレージシステムのデータ移行方法
JP2019185669A (ja) * 2018-04-17 2019-10-24 富士通株式会社 ストレージ装置及びストレージ制御プログラム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280111A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd ストレージシステム及びその性能チューニング方法
US9383938B2 (en) * 2006-04-18 2016-07-05 International Business Machines Corporation Method, system, and apparatus for re-conveying input/output operations utilizing a sequential-access data storage device secondary communication port
US8140785B2 (en) * 2006-06-29 2012-03-20 International Business Machines Corporation Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure
US7930496B2 (en) * 2006-06-29 2011-04-19 International Business Machines Corporation Processing a read request to a logical volume while relocating a logical volume from a first storage location to a second storage location using a copy relationship
JP2008059315A (ja) * 2006-08-31 2008-03-13 Hitachi Ltd 負荷分散方法及び計算機システム
JP2008234445A (ja) * 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム
JP4990066B2 (ja) * 2007-08-21 2012-08-01 株式会社日立製作所 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP4966135B2 (ja) * 2007-08-31 2012-07-04 株式会社東芝 サーバ装置、端末装置、通信制御方法および通信制御プログラム
JP5222617B2 (ja) * 2008-04-28 2013-06-26 株式会社日立製作所 情報システム及びi/o処理方法
US7984151B1 (en) 2008-10-09 2011-07-19 Google Inc. Determining placement of user data to optimize resource utilization for distributed systems
US8954666B2 (en) * 2009-05-15 2015-02-10 Hitachi, Ltd. Storage subsystem
US8380925B2 (en) * 2009-05-22 2013-02-19 Hitachi, Ltd. Storage system comprising plurality of processor units
US8352953B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
US8311032B2 (en) * 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US8418185B2 (en) 2010-10-19 2013-04-09 International Business Machines Corporation Memory maximization in a high input/output virtual machine environment
US9032146B2 (en) 2010-11-30 2015-05-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic use of raid levels responsive to workload requirements
US20120278553A1 (en) * 2011-04-28 2012-11-01 Mudhiganti Devender R System and method for migration of data clones
US9021499B2 (en) 2012-01-10 2015-04-28 Hewlett-Packard Development Company, L.P. Moving a logical device between processor modules in response to identifying a varying load pattern
US20150331615A1 (en) * 2012-11-20 2015-11-19 Empire Technology Development Llc Multi-element solid-state storage device management
WO2015072026A1 (ja) * 2013-11-18 2015-05-21 株式会社日立製作所 計算機システム
US9886301B2 (en) * 2015-05-04 2018-02-06 Strato Scale Ltd. Probabilistic deduplication-aware workload migration
WO2018038740A1 (en) * 2016-08-26 2018-03-01 Hitachi, Ltd. Method and apparatus to control data copy based on correlations between number of copied data and application output
CN107168645B (zh) * 2017-03-22 2020-07-28 佛山科学技术学院 一种分布式系统的存储控制方法及系统
CN107153513B (zh) * 2017-03-22 2020-07-24 佛山科学技术学院 一种分布式系统服务器的存储控制方法及服务器
CN107066206B (zh) * 2017-03-22 2020-07-24 佛山科学技术学院 一种分布式物理磁盘的存储控制方法及系统
US10606766B1 (en) * 2017-07-14 2020-03-31 STEALTHbits Technologies, Inc. Systems and methods for shadow copy access prevention
US20220188965A1 (en) * 2019-06-24 2022-06-16 Intel Corporation Apparatus and method for scheduling graphics processing resources
US20230090604A1 (en) * 2021-09-16 2023-03-23 T-Head (Shanghai) Semiconductor Co., Ltd. Parallel processing unit virtualization

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155722B1 (en) * 2001-07-10 2006-12-26 Cisco Technology, Inc. System and method for process load balancing in a multi-processor environment
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
US7127716B2 (en) * 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system
JP3950720B2 (ja) * 2002-03-18 2007-08-01 株式会社日立製作所 ディスクアレイサブシステム
US7162579B2 (en) * 2002-08-19 2007-01-09 Aristos Logic Corporation Asymmetrical load balancing for mirrored storage volumes
JP4341897B2 (ja) 2002-08-29 2009-10-14 株式会社日立製作所 記憶装置システム及びデータ複製方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187468A (ja) * 2008-02-08 2009-08-20 Hitachi Ltd 記憶システム、解除方法及び副側のストレージ装置
JP5718533B1 (ja) * 2014-04-22 2015-05-13 株式会社日立製作所 ストレージシステムのデータ移行方法
JP2019185669A (ja) * 2018-04-17 2019-10-24 富士通株式会社 ストレージ装置及びストレージ制御プログラム
JP7043952B2 (ja) 2018-04-17 2022-03-30 富士通株式会社 ストレージ装置及びストレージ制御プログラム

Also Published As

Publication number Publication date
US7395388B2 (en) 2008-07-01
US20070101082A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
JP2007122531A (ja) 負荷分散システム及び方法
JP2009211132A (ja) 記憶システム及びデータ移行方法
EP1973030B1 (en) Storage apparatus and storage area arrangement method
US7558916B2 (en) Storage system, data processing method and storage apparatus
CN101799742B (zh) 用于在存储系统之间转移精简配置卷的方法和装置
WO2013046254A1 (en) Management server and data migration method
JP2011165212A (ja) 分散型raid実装のための方法およびシステム
US20060004876A1 (en) Data migration in storage system
US8762669B2 (en) Computer system and storage migration method utilizing acquired apparatus specific information as virtualization information
US7111004B2 (en) Method, system, and program for mirroring data between sites
JP2009129441A (ja) 記憶システムにおける非重複化のための方法および装置
JP2007316995A (ja) 記憶システム及びデータ管理方法
EP1837765A2 (en) Backup apparatus and backup method
JP5996098B2 (ja) ストレージデバイスの高速アクセス及びデータ保護を実現する計算機、計算機システム、及びi/o要求処理方法
JP2009211401A (ja) ストレージ装置及びその制御方法
WO2019016911A1 (ja) 分散ストレージシステム及び分散ストレージ制御方法
WO2013076782A1 (en) Storage apparatus and its control method
JP6561765B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2013069096A (ja) 制御装置、制御方法およびストレージ装置
US8583884B2 (en) Computing system and backup method
US8127102B2 (en) Storage system, copy method, and primary storage apparatus
JP4837495B2 (ja) 記憶システム及びデータ管理移行方法
US8732422B2 (en) Storage apparatus and its control method
US11099751B2 (en) Determining tracks to release in a source volume being copied to a target volume
US20160357479A1 (en) Storage control apparatus