JP2006011874A - ボリューム提供システム及び方法 - Google Patents

ボリューム提供システム及び方法 Download PDF

Info

Publication number
JP2006011874A
JP2006011874A JP2004188709A JP2004188709A JP2006011874A JP 2006011874 A JP2006011874 A JP 2006011874A JP 2004188709 A JP2004188709 A JP 2004188709A JP 2004188709 A JP2004188709 A JP 2004188709A JP 2006011874 A JP2006011874 A JP 2006011874A
Authority
JP
Japan
Prior art keywords
volume
program
copy
logical
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.)
Granted
Application number
JP2004188709A
Other languages
English (en)
Other versions
JP4488807B2 (ja
Inventor
Kenichi Miki
健一 三木
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 JP2004188709A priority Critical patent/JP4488807B2/ja
Priority to US10/920,974 priority patent/US7124242B2/en
Publication of JP2006011874A publication Critical patent/JP2006011874A/ja
Priority to US11/436,265 priority patent/US7237063B2/en
Priority to US11/810,416 priority patent/US20070239933A1/en
Priority to US12/469,003 priority patent/US7925832B2/en
Application granted granted Critical
Publication of JP4488807B2 publication Critical patent/JP4488807B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 別々の物理記憶デバイス上に用意されたコピー元ボリュームとコピー先ボリュームの両方を上位装置に認識させることができ、且つ、それが原因で上位装置に異常が発生してしまうことのないようにすることにある。
【解決手段】 ホストコンピュータHA1などに、論理ボリューム212の提供を受けるターゲットプログラム3と、論理ボリューム212に対するインターフェースをターゲットプログラム3に提供するボリュームインターフェースプログラム12Aと、コピー元ボリューム212A及びコピー先ボリューム212Bのうちの一方の論理ボリュームを選択し、選択した論理ボリュームを、ボリュームインターフェースプログラム12Aを介してターゲットプログラム3に提供するボリュームフィルタプログラム12Bとが備えられる。
【選択図】図1

Description

本発明は、アプリケーションソフトウェア等のコンピュータプログラムに記憶デバイスを提供するための技術に関わる。
例えば、特許文献1(特開平11−327803号公報)や特許文献2(特開2002−236560号公報)に開示されているように、従来、複数の論理ボリュームを1つの大型のユニットとして上位装置に提供することができる記憶制御システムが知られている。
特開平11−327803号公報 特開2002−236560号公報
ところで、例えば、第1の物理ディスク上に用意された第1の論理ボリュームと、第2の物理ディスク上に用意された第2の論理ボリュームとをペアにし、一方をコピー元ボリュームとし、他方をコピー先ボリュームとし、コピー元ボリューム内のデータをコピー先ボリュームにコピーするデータコピー技術が知られている。このデータコピー技術では、例えば、コピー元ボリュームのみが上位装置のオペレーティングシステム(OS)に認識され、それのペア相手であるコピー先ボリュームはそのOSに認識されないようになっている。コピー元ボリュームとコピー先ボリュームの両方を同時にOSに認識させると、そのOSが正常に動作できない可能性があるためである。例えば、コピー元ボリュームもコピー先ボリュームも「Cドライブ」としてOSに認識させてしまうと、OSが正常に動作できない可能性がある。
しかし、データコピー技術において、コピー元ボリュームのみならず、コピー先ボリュームをもOS(及び/又は、その上位に存在するアプリケーションソフトウェア)に認識させることが望ましい場合もあると考えられる。
従って、本発明の目的は、別々の物理記憶デバイス上に用意されたコピー元ボリュームとコピー先ボリュームの両方を上位装置に認識させることができ、且つ、それが原因で上位装置に異常が発生してしまうことのないようにすることにある。
本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
本発明の第1の側面に従うボリューム提供システムは、例えば以下の環境において構築することができる。
複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでいる。前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでいる。前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられている。前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられている。
このような環境において、本発明の第1の側面に従うボリューム提供システムは、1以上のコンピュータプログラムを格納する記憶域と、前記記憶域から前記1以上のコンピュータプログラムのうちの少なくとも1つを読み込み、前記読み込んだコンピュータプログラムに従う処理を実行する1以上のプロセッサとを備える。前記1以上のコンピュータプログラムには、論理ボリュームの提供を受けるターゲットプログラムと、論理ボリュームに対するインターフェースを前記ターゲットプログラムに提供するボリュームインターフェースプログラムと、前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択し、前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するボリュームフィルタプログラムとが含まれている。
1つの論理ボリュームは、1又は複数の物理ディスク上に備えられても良いし、或いは、複数の論理ボリュームが、一つの物理ディスク上に備えられても良い。また、上述した複数の論理ボリュームの全部又は一部は、ボリューム提供システムの外部に備えられても良いし、ボリューム提供システムそれ自体に備えられても良い。
本発明の第1の側面に従う第1の実施態様では、例えば、前記1以上のプロセッサの少なくとも1つが、以下の処理を実行する。すなわち、前記1以上のプロセッサの少なくとも1つが、前記コピー元ボリュームに対応したコピー元スタックを準備し、前記コピー先ボリュームに対応したコピー先スタックを準備し、前記コピー元スタックに、前記コピー元ボリュームに対応した第1のボリュームインターフェースプログラムと第1のボリュームフィルタプログラムとを呼び出し、前記コピー先スタックに、前記コピー先ボリュームに対応した第2のボリュームインターフェースプログラムと第2のボリュームフィルタプログラムとを呼び出し、前記第1のボリュームフィルタプログラムを介して前記ターゲットプログラムに論理ボリュームを提供するようにし、且つ、前記第2のボリュームフィルタプログラムを前記ターゲットプログラムに対して隠蔽し、前記コピー元ボリュームを前記ターゲットプログラムに提供する場合、前記第1のボリュームフィルタプログラムから前記第1のボリュームインターフェースプログラムを介して前記ターゲットプログラムに前記コピー元ボリュームを提供し、前記コピー先ボリュームを前記ターゲットプログラムに提供する場合、前記第2のボリュームフィルタプログラムから前記第1のボリュームフィルタプログラムを介し、且つ、前記第1のボリュームフィルタプログラムから前記第1のボリュームインターフェースプログラムを介して、前記ターゲットプログラムに前記コピー先ボリュームを提供する。
本発明の第1の側面に従う第2の実施態様では、前記第1の実施態様において、例えば、前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムは、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を受信する。前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムの各々が、どのボリュームフィルタプログラムから論理ボリュームに対してI/O要求を発行するかを表した第1のボリューム管理データを取得し、前記取得した第1のボリューム管理データが自分を表している場合には、前記受信したI/O要求を、自分に対応した論理ボリュームに対して発行し、一方、前記取得した第1のボリューム管理データが他のボリュームフィルタプログラムを表している場合には、前記受信したI/O要求を前記他のボリュームフィルタプログラムに送信する。
本発明の第1の側面に従う第3の実施態様では、前記第1の実施態様において、例えば、前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムは、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を論理ボリュームに発行した場合、何らかのレスポンスデータを受信する。前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムの各々が、どのボリュームフィルタプログラムから上位に対して前記レスポンスデータを送信するかを表した第2のボリューム管理データを取得し、前記取得した第2のボリューム管理データが自分を表している場合には、前記受信したレスポンスデータを、自分の上位に送信し、一方、前記取得した第2のボリューム管理データが他のボリュームフィルタプログラムを表している場合には、前記受信したレスポンスデータを前記他のボリュームフィルタプログラムに送信する。
本発明の第1の側面に従う第4の実施態様では、前記第1の実施態様において、例えば、前記1以上のコンピュータプログラムには、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を所定のプロトコルに従って生成するI/O生成プログラムが更に含まれる。前記ボリュームフィルタプログラムには、前記I/O生成プログラムによって生成されたI/O要求を、自分の下位に存在する論理ボリューム又は別の下位フィルタサブプログラムに振り分ける下位フィルタサブプログラムと、論理ボリュームをボリュームインターフェースに提供するか隠蔽するかを制御する上位フィルタサブプログラムとが含まれる。前記1以上のプロセッサの少なくとも1つが、前記コピー元スタック及び前記コピー先の各々に、下位から上位にかけて、前記下位フィルタサブプログラム、前記I/O生成プログラム、前記上位フィルタサブプログラム及び前記ボリュームインターフェースを順次読み出して積み上げる。
本発明の第1の側面に従う第5の実施態様では、前記ボリュームフィルタプログラムを読込んだ少なくとも1つのプロセッサが、前記コピー元ボリュームに関連した異常を検出した場合に、前記ターゲットプログラムに提供する論理ボリュームを、前記コピー元ボリュームから前記コピー先ボリュームに切り替える。
本発明の第1の側面に従う第6の実施態様では、前記1以上のコンピュータプログラムには、前記ターゲットプログラムに提供される論理ボリュームを別の論理ボリュームに切り替えることのボリューム切替え選択をユーザから受け付けるためのグラフィカルユーザインターフェースを表示する表示プログラムが含まれる。前記ボリュームフィルタプログラムを読込んだ少なくとも1つのプロセッサが、前記グラフィカルユーザインターフェースを介してユーザから前記ボリューム切替え選択が入力された場合に、前記ターゲットプログラムに提供する論理ボリュームを、前記コピー元ボリュームから前記コピー先ボリュームに切り替える。
本発明の第2の側面に従うボリューム提供方法は、例えば以下の環境において行われる。
複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでいる。前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでいる。前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられている。前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられている。
この環境において、上記ボリューム提供方法は、前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択するステップと、前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するステップとを有する。
本発明の第3の側面に従う記録媒体に記録されたコンピュータプログラムは、例えば以下の環境において実行することができる。
複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでいる。前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでいる。前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられている。前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられている。また、コンピュータが、論理ボリュームの提供を受けるターゲットプログラムと、論理ボリュームに対するインターフェースを前記ターゲットプログラムに提供するボリュームインターフェースプログラムとを有する。
この場合、上記記録媒体には、前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択するステップと、前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するステップとをコンピュータに実行させるためのコンピュータプログラムが記録されている。
本発明の第4の側面に従うボリューム提供システムは、例えば以下の環境において構築することができる。
複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでいる。前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでいる。前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられている。前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられている。
上記ボリューム提供システムは、論理ボリュームの提供を受けるボリューム受け手段と、論理ボリュームに対するインターフェースを前記ボリューム受け手段に提供するボリュームインターフェース手段と、前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択し、前記選択した論理ボリュームを、前記ボリュームインターフェース手段を介して前記ボリューム受け手段に提供するボリュームフィルタ手段とを備える。
上述した手段或いはステップの全部または一部は、例えば、ハードウェア、コンピュータプログラム或いはそれらの組合せによって実現することができる。コンピュータプログラムは、例えば、ハードディスク、光ディスク、半導体メモリ等の記憶媒体に固定して配布することができる。または、コンピュータプログラムをインターネット等の通信ネットワークを介して、配信することもできる。
また、上述したボリューム提供システムは、1台のコンピュータマシン(例えばパーソナルコンピュータ或いはサーバ)内で構築しても良いし、通信ネットワークに接続された複数台のコンピュータマシン上で構築しても良い。
以下、図面に基づき、本発明の実施の形態を説明する。
図1A及び図1Bは、本発明の一実施形態の概念を示す。具体的には、図1Aは、コピー元ボリューム212Aが提供される場合の概念図であり、図1Bは、コピー先ボリューム212Bが提供される場合の概念図である。
複数の論理的な記憶デバイス(以下、論理ボリューム)212から構成されるボリュームグループ4が1又は複数個備えられる。ボリュームグループ4を構成する複数の論理ボリュームは、それぞれ、複数の物理記憶デバイス2に用意されている。ボリュームグループ4を構成する複数の論理ボリューム212のうち、1つが、コピー元ボリューム212Aであり、他の1つ以上が、コピー先ボリューム212Bである。
所定の記憶域(例えばメモリ或いはハードディスク等の記憶装置上の領域)5に、ボリューム管理情報6が存在する。ボリューム管理情報6は、複数の論理ボリューム212の各々に関する情報要素を含んでいる。例えば、ボリューム管理情報6に含まれる情報要素としては、各論理ボリューム212毎に、どのボリュームグループ4に属するか、ボリュームID、ボリュームへのパス情報(例えば、アクセスパス名)、利用可能か否か、ペア相手ボリュームのID、及びペア状態(例えばコピー元とコピー先のどちらか)のうちの少なくとも1つが採用される。
ボリュームを認識するターゲットプログラム(例えばOS或いはその上位にあるアプリケーションプログラム)3が存在する。
また、ボリューム管理コンピュータプログラム群1110が備えられる。ボリューム管理コンピュータプログラム群1110は、1又は複数のコンピュータプログラムを備えている。ボリューム管理コンピュータプログラム群1110は、例えば、ターゲットプログラム3に対してボリューム212のインターフェースを提供するボリュームI/Fプログラム(以下、「ボリュームI/F」と略記)12Aと、ボリュームI/F12Aを介してターゲットプログラム3にボリュームを提供したり隠蔽したりするボリュームフィルタプログラム(以下、「ボリュームフィルタ」と略記)12Bとを有する。ボリューム管理コンピュータプログラム群1110は、同一のボリュームグループ4における複数の論理ボリューム212のうちのどれをターゲットプログラム3に提供するかを制御する。
例えば、図1Aに示すように、ボリューム管理コンピュータプログラム群1110は、ボリューム管理情報6に基づいて、コピー元ボリューム212Aをターゲットプログラム3に提供する。この場合、ボリューム管理コンピュータプログラム群1110は、コピー先ボリューム212Bを認識することができるが、そのコピー先ボリューム212Bを、ターゲットプログラム3には提供することなく隠蔽する。換言すれば、ターゲットプログラム3は、ボリュームI/F12Aを介してコピー元ボリューム212Aを認識するが、コピー先ボリューム212Bを認識しない。
また、例えば、図1Bに示すように、ボリューム管理コンピュータプログラム群1110は、コピー元ボリューム212Aそれ自体或いはそれとボリューム管理コンピュータプログラム群1110との間のパス等で異常が発生した場合には、ターゲットプログラム3に提供するボリュームを、コピー元ボリューム212Aからコピー先ボリューム212Bに切替える。この場合、ボリュームフィルタ212Bが、コピー先ボリューム212Bをターゲットプログラム3に提供し、コピー元ボリューム212Aを提供するのをやめる(つまり、ターゲットプログラム3にコピー元ボリューム212Aを隠蔽する)。換言すれば、ターゲットプログラム3は、同一のボリュームI/F12Aを介してコピー先ボリューム212Bを認識し、今まで認識していたコピー元ボリューム212Aを認識しないことになる。
なお、図1Bの場合、提供したコピー先ボリューム212Bのペア状態(ボリューム管理情報6に含まれる一つの情報要素)を、コピー先からコピー元に変更し、且つ、隠蔽したコピー元ボリューム212Aのペア状態を、コピー元からコピー先に変更しても良い。また、ボリューム管理コンピュータプログラム群1110は、隠蔽するコピー元ボリューム212A内のデータを、提供するコピー先ボリューム212Bにコピーした後に、コピー先ボリューム212Bをターゲットプログラム3に提供しても良い。
上述した各種の構成要素は、通信ネットワーク上に配置することができる。例えば、ターゲットプログラム3及びボリューム管理コンピュータプログラム群1110は、一つの上位装置に備えることもできるし、複数の上位装置に分散して備えることもできる。また、ボリューム管理情報6は、上位装置に備えても良いし、別のノードに備えても良い。また、ボリュームグループ4を構成する複数の論理ボリューム212は、同一の記憶制御システム(例えばRAIDシステム)に備えられても良いし、2以上の記憶制御システムに分散して備えられても良い。
以下、本実施形態に係る幾つかの実施例を説明する。
図2は、ストレージシステムの全体概要を示すブロック図である。このストレージシステムは、例えば、第1サイト10Aと、第2サイト10Bとを備えており、各サイト10A,10B間は、通信ネットワークCN12,CN13によって接続されている。なお、ストレージシステムは3つ以上のサイトから構成することもできる。
第1サイト10Aと第2サイト10Bとは、例えば、別々の都市に設置することができる。また、第1サイト10Aと第2サイト10Bとは、例えば、同一行政区画に位置する異なる地点に設置することもできる。さらに、第1サイト10Aと第2サイト10Bとは、例えば、同一敷地内のそれぞれ異なる建物内に設けることもできる。
第1サイト10Aと第2サイト10Bとは、基本的に同一構造を備える。ディザスタリカバリシステムとしての機能を発揮可能であれば、両サイト10A,10Bは異なる構成であってもよい。一つの例として、第1サイト10Aは、図外のクライアントマシンに対して情報処理サービスを提供する現用系サイト(稼働系サイト)である。第2サイト10Bは、第1サイト10Aに障害が発生した場合にバックアップするバックアップサイト(待機系サイト)である。
もっとも、サイト全体を稼働系または待機系として使用する必要はなく、情報処理サービスを提供するアプリケーションプログラム毎に、稼働系サイトと待機系サイトとをそれぞれ設定してもよい。例えば、第1のアプリケーションプログラムの稼働系サイトを第1サイト10Aとし、第2のアプリケーションプログラムの稼働系サイトを第2サイト10Bとすることもできる。
第1サイト10Aは、複数のホストコンピュータHA1,HAnと、記憶制御システム20Aとを備えている。各ホストコンピュータHA1,HAnは、例えば、マイクロコンピュータを用いたサーバマシンとして構成される。
記憶制御システム20Aは、例えば、ディスクアレイサブシステムとして構成することができる。記憶制御システム20Aは、後述のように、複数の論理ボリューム212を備えており、これらの論理ボリューム212は、ホストコンピュータHA1,HAnによって利用される。
各ホストコンピュータHA1,HAnは、サイト内の通信ネットワークCN11を介して、記憶制御システム20Aと接続されている。この通信ネットワークCN11は、例えば、SAN(Storage Area Network)として構成され、ファイバチャネルプロトコルに従ってデータ通信を行う。
各ホストコンピュータHA1,HAnは、ホストコンピュータ間を相互に接続する通信ネットワークCN12を介して、それぞれ接続されている。また、第1サイト10Aの各ホストコンピュータHA1,HAnは、通信ネットワークCN12を介して、第2サイト10Bの各ホストコンピュータHB1,HBnとも相互に接続されている。このホストコンピュータ間の通信ネットワークCN12は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Netwrok)、MAN(Metropolitan Area Network)等のようなネットワークとして構成され、TCP/IP(Transmission Control Protocol/Internet Protocol)等に基づいてデータ通信を行う。
第2サイト10Bも、上述した第1サイト10Aと同様に、複数のホストコンピュータHB1,HBnと、記憶制御システム20Bとを備えている。これらの構成は、第1サイト10Aで述べたと同様であるので、その説明を省略する。
ここで、記憶制御システム20Aと記憶制御システム20Bとは、記憶装置間ネットワークとしてのリモートコピーラインCN13によって直接的に接続されている。リモートコピーラインCN13は、例えば、専用線または公衆回線により構成される。
なお、サイト内ネットワークCN11は、ファイバチャネルプロトコル(SCSI:Small Computer System Interface)を用いる構成に限らず、例えば、iSCSIのように、SCSIコマンドをIPパケットで包み込み、ブロックレベルのデータ転送をIP網で実行する構成でもよい。
さて、以下、ホストコンピュータHA1及び記憶制御システム20Aを代表的に例に採り説明する。なお、以下のホストコンピュータHA1及び記憶制御システム20Aについての説明は、他のホストコンピュータ及び他の記憶制御システムにも適用することができる。
ホストコンピュータHA1は、例えば、CPU310と、メモリ320と、ディスク330と、ディスクインターフェース(以下「I/F」)340と、上位ネットワークI/F350と、キーボードスイッチ360と、ディスプレイ370とを備え、これら各部はバス380により相互に接続されている。
CPU(Central Processing Unit)310は、メモリ320に記憶されているプログラムコードを読み込んで実行する。CPU310が所定のプログラムコードを実行することにより、クラスタ制御やリモートコピー制御等の各処理または機能がホストコンピュータHA1上に実現される。
メモリ320は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)等から構成される。図中では、ROMとRAMの区別をしていないが、実際には、プログラムコード等を格納するROMと、一時的記憶領域や作業領域等として使用されるRAMとが設けられる。ディスク330は、例えば、ハードディスクドライブとして構成される。ディスク330には、例えば、プログラムやデータが記憶される。また、ディスク330の一部の記憶領域は、一時ファイルを格納するために使用される場合もある。
ディスクI/F340は、サイト内ネットワークCN11を介して、記憶制御システム20Aとの間のデータ授受を制御する回路である。ディスクI/F340は、例えば、SCSIやiSCSI等に基づいて、ブロックレベルのデータ転送を制御する。上位ネットワークI/F350は、ホストコンピュータ間ネットワークCN12を介して、他のホストコンピュータ(HAn,HB1〜HBn)との間のデータ授受を制御する回路である。上位ネットワークI/F350は、例えば、IP(Internet Protocol)に基づいて、データ転送を制御する。
キーボードスイッチ360は、情報入力手段の一例であり、システム管理者は、キーボードスイッチ360を介して、必要な指示等を入力することができる。ディスプレイ370は、情報出力手段の一例であり、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、プラズマディスプレイ、EL(Electronic Luminescent)ディスプレイ等から構成される。ディスプレイ370には、システム管理者からの明示の要求に応じて、あるいは自発的に、種々の情報が表示される。なお、これらに限らず、例えば、音声入力装置、音声出力装置、ポインティングデバイス、プリンタ等を用いてもよい。
記憶制御システム20Aのハードウェア構成を説明する。記憶制御システム20Aは、例えば、RAIDグループ210と、ディスク制御部220と、ホストI/F230と、装置間I/F240と、キャッシュメモリ250と、共有メモリ260と、スイッチング制御部270と、サービスプロセッサ(SVP)280と、を備えて構成される。
RAID(Redundant Array of Independent
Disks)グループ210は、複数のディスクドライブ211を含んでおり、例えば、RAID1やRAID5等のRAIDに基づく冗長記憶を提供する。各ディスクドライブ211は、例えば、ハードディスクドライブ、半導体メモリ装置、光ディスクドライブ、光磁気ディスクドライブ等の記憶デバイスから構成することができる。各ディスクドライブ211が提供する物理的な記憶領域上には、論理的な記憶領域である論理ボリューム212を少なくとも一つ以上設定可能である。論理ボリューム212には、ホストコンピュータHから利用される多数のデータが記憶される。また、別の論理ボリューム212には、制御情報等を格納し、システム領域として利用することもできる。なお、ディスクドライブ211は、その全てが記憶制御システム20Aの筐体内に位置する必要はない。例えば、同一サイト内に設置された他の記憶制御システム(不図示)が有する論理ボリュームを、記憶制御システム20Aの論理ボリュームとして使用することもできる。以下の説明では、論理ボリュームを「ボリューム」と省略して記載する場合がある。
ディスク制御部220は、各ディスクドライブ211との間のデータ授受を制御するものである。ディスク制御部220は、例えば、CPUやROM、RAM等を含んだマイクロコンピュータシステムとして構成される。ディスク制御部220は、記憶制御システム20A内に複数設けられる。ディスク制御部220は、例えば、SCSIやiSCSI等に基づいて、ディスクドライブ211との間でブロックレベルのデータ転送を行う。
ホストI/F230は、サイト内ネットワークCN11を介して、ホストコンピュータHとの間のデータ転送を制御するものである。ホストI/F230は、ディスク制御部220と同様に、マイクロコンピュータシステムとして構成可能である。ホストI/F230は、ホストコンピュータHの種類(サーバかメインフレームか等)に応じて、それぞれ用意することができる。なお、本実施例では、ホストコンピュータHをサーバとして構成する場合を例に挙げて説明するが、メインフレームであってもよい。
装置間I/F240は、リモートコピーラインCN13を介して、他のサイト10Bの記憶制御システム20Bとの間でデータ通信を行うものである。装置間I/F240は、論理ボリューム212に書き込まれた更新データや差分データを、ホストコンピュータHを介さずに、相手方の記憶制御システム20Bに転送する。
キャッシュメモリ250は、例えば、揮発または不揮発の半導体メモリから構成することができる。キャッシュメモリ250は、ホストコンピュータHからのライトデータ(論理ボリュームに書き込まれるデータ)を記憶する。また、キャッシュメモリ250は、論理ボリューム212から読み出されたデータ(以下、リードデータ)を記憶する。
共有メモリ260は、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ260は、例えば、ホストコンピュータHから受信した各種コマンドや、記憶制御システム20Aの制御に使用する制御情報等を記憶する。これらのコマンドや制御情報等は、複数の共有メモリ260によって、冗長記憶される。なお、キャッシュメモリ250と共有メモリ260とは、それぞれ別々のメモリとして構成することもできるし、あるいは、一つのメモリの一部をキャッシュメモリ領域として使用し、残りを共有メモリ領域として使用することもできる。
スイッチング制御部270は、各ディスク制御部220と、各ホストI/F230と、装置間I/F240と、キャッシュメモリ250と、共有メモリ260とを、それぞれ相互に接続するものである。スイッチング制御部270は、例えば、超高速クロスバスイッチ等から構成することができる。
SVP280は、ホストI/F230を介して、記憶制御システム20A内の各部の状態を収集し監視する。SVP280は、収集した内部状態の情報を生データのままで、あるいは、統計処理したデータとして、外部の管理端末(不図示)に出力する。SVP280が収集可能な情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度(IOPS)等が挙げられる。システム管理者は、管理端末からSVP280を介して、RAID構成の設定変更や、各種パッケージ(ホストI/F、ディスク制御部等)の閉塞処理等を行うことができる。
次に、記憶制御システム20Aが行う処理の一例について説明する。ホストI/F230は、サイト内ネットワークCN11を介して、ホストコンピュータHからライトコマンド及びライトデータを受信する。受信されたライトコマンドは共有メモリ260に記憶され、受信されたライトデータはキャッシュメモリ250に記憶される。ディスク制御部220は、共有メモリ260を随時参照している。ディスク制御部220は、共有メモリ260に記憶されている未処理のライトコマンドを発見すると、このライトコマンドに従って、キャッシュメモリ250からライトデータを読み出し、アドレス変換等を行う。ディスク制御部220は、ライトコマンドによって指定された論理ボリューム212を構成する各ディスクドライブ211に、ライトデータを記憶させる。
ホストコンピュータHからのリード要求を処理する場合を説明する。ホストI/F230は、ホストコンピュータHからリードコマンドを受信すると、このリードコマンドを共有メモリ260に記憶させる。ディスク制御部220は、共有メモリ260内で未処理のリードコマンドを発見すると、このリードコマンドによって指定された論理ボリューム212を構成する各ディスクドライブ211からデータを読み出す。ディスク制御部220は、読み出したデータをキャッシュメモリ250に記憶させる。また、ディスク制御部220は、要求されたデータの読出しが完了した旨を、共有メモリ260を介して、ホストI/F230に通知する。ホストI/F230は、キャッシュメモリ250からデータを読み込み、ホストコンピュータHに送信する。
以上が、本実施例に係るストレージシステムにおけるハードウェア構成例である。なお、言うまでも無いが、サイト、ホストコンピュータHA1及び記憶制御システム20Aのいずれも、上述した構成に限定する必要は無い。
さて、以下、ホストコンピュータHA1内で動作する種々のコンピュータプログラムについて説明する。なお、以下の説明では、ホストコンピュータHA1から出力されるライトコマンド及びリードコマンドの少なくとも一方を指す場合には「I/O要求」と総称する。
図3は、ホストコンピュータHA1内で動作する種々のコンピュータプログラムを示す。
ホストコンピュータHA1には、ウィンドウズ(登録商標)或いはリナックス(登録商標)等のオペレーティングシステム(以下、OS)1130や、OS1130上で動作する1又は複数のアプリケーションプログラム(以下、AP)や、後述するコピー制御を行うためのコピー制御モジュール3600が搭載されている。各コンピュータプログラム1130、3500及び3600は、例えば、ディスク330に格納されており、そのプログラムの全部又は一部が、CPU310にメモリ320を介して読込まれることにより、そのコンピュータプログラムに特有の処理が実行される。
1又は複数のAPには、ボリューム管理を行うためのボリューム管理AP4000と、それ以外のAP(以下、第2AP)3500とがある。
OS1130には、サブコンピュータプログラムとして、例えば、ボリュームモジュール3000と、物理ディスクモジュール3200が搭載されている。そして、本実施例では、更に、以下のサブコンピュータプログラム、すなわち、下位ディスク管理フィルタドライバ3300、上位ディスク管理フィルタドライバ3100及び管理モジュール3400が搭載される。本実施例では、OS1130において、最下位に、下位ディスク管理フィルタドライバ3300が位置し、その上位に、物理ディスクモジュール3200が位置し、その上位に、上位ディスク管理フィルタドライバ3100が位置し、その上位に、ボリュームモジュール3000が位置するように構成される。管理モジュール3400は、下位ディスク管理フィルタドライバ3300及び上位ディスク管理フィルタドライバ3100を制御したり、ボリューム管理AP4000からの入力に基づく制御を行ったり、コピーの実行をコピー制御モジュール3600に指示したりする。コピー制御モジュール3600は、管理モジュール3400からの指示に応答して、その指示に従うコピー処理、例えば、シャドウイメージコピー或いはリモートコピーを実行するためのコピー制御コマンドを記憶制御システム20Aに送信する。ここで、「シャドウイメージコピー」とは、同一の記憶制御システム20A内において、コピー元ボリュームからコピー先ボリュームへデータコピーを行うことを言う。それに対して、「リモートコピー」とは、第1の記憶制御システム20A内のコピー元ボリュームから、その記憶制御システム20Aとは別の(例えば遠隔の)記憶制御システム20B内のコピー先論理ボリュームへデータコピーを行うことを言う。
以上が、ホストコンピュータHA1に搭載されるコンピュータプログラムの一例である。管理コンピュータ3400、上位ディスク管理フィルタドライバ3100及び下位ディスク管理フィルタドライバ3300のうちの少なくとも一つが、一体になっていても良い。また、管理コンピュータ3400、上位ディスク管理フィルタドライバ3100及び下位ディスク管理フィルタドライバ3300のうちの少なくとも一つが、上述したボリューム管理コンピュータプログラム群1110(図1参照)を構成しても良い。
ところで、上述した説明によれば、OS1130には、ボリュームモジュール3000及び物理ディスクモジュール3200に加えて、下位ディスク管理フィルタドライバ3300、上位ディスク管理フィルタドライバ3100及び管理モジュール3400が搭載されるが、これらのサブコンピュータプログラムにより、ホストコンピュータHA1に対し、コピー元ボリュームとコピー先ボリュームの両方を提供することができ、且つ、それらのうちのいずれを提供するかをソフトウェア的に選択することができる。以下、それについて詳述する。
本実施例では、例えば、管理モジュール3400が使用する情報として、ボリュームペアを構成していないプール状態の論理ボリュームに関する情報が記述されたプール管理テーブルと、ボリュームペアに関する情報が記述されたペア管理テーブルとが準備される。それらのテーブルは、例えば、管理モジュール3400に保持させることができる。管理モジュール3400は、それらのテーブルをメモリ320に登録して使用することができる。
図4は、プール管理テーブルの構成例を示す。
プール管理テーブルT1には、ホストコンピュータHA1に提供可能な複数の論理ボリュームのうち、ボリュームペアを構成していないプール状態の1以上の論理ボリュームの各々に関するボリューム情報が登録される。論理ボリュームのボリューム情報には、例えば、その論理ボリュームにアクセスする際に指定する通信ポートのターゲットID、その論理ボリュームが属するロジカルユニット番号(LUN)、RAID情報(例えば、その論理ボリュームを構成するRAIDグループのRAIDレベル)及びその論理ボリュームの番号が含まれる。
管理モジュール3400(或いはその他のコンピュータプログラム)は、このプール管理テーブルT1を参照することにより、ホストコンピュータHA1に提供可能な複数の論理ボリュームのうちのどの論理ボリュームがボリュームペアを構成していないかを判別することができる。
図5は、ペア管理テーブルの構成例を示す。
ペア管理テーブルT2には、ホストコンピュータHA1に提供可能な複数の論理ボリュームのうち、ボリュームペアを構成している論理ボリュームに関する情報、換言すれば、各ボリュームペア毎の情報が登録される。具体的には、例えば、ペア管理テーブルT2には、各ボリュームペア毎に、ボリュームペアを特定するためのペアIDと、第1のボリューム情報群及び第2のボリューム情報群が登録される。それぞれのボリューム情報群には、コピー元或いはコピー先のボリュームに関するボリューム情報と、ペア状態と、利用可フラグとが含まれる。ボリューム情報は、プール管理テーブルT1に登録されるボリューム情報と同種の情報を含んでいる。ペア状態は、対応する論理ボリュームの状態であり、例えば、ペア分割状態、コピー元状態及びコピー先状態のうちのいずれかである(各状態については後に詳述する)。利用可フラグは、対応する論理ボリュームが利用可能か否かを表す。なお、本実施形態では、原則として、第1のボリューム情報群の欄に登録された情報に該当するボリュームが、第2AP3500に対して認識されるボリュームであって、第2のボリューム情報群の欄に登録された情報に該当するボリュームが、第2AP3500に対して隠蔽されるボリュームであるとする。
管理モジュール3400(或いはその他のコンピュータプログラム)は、このペア管理テーブルT2を参照することにより、ホストコンピュータHA1に提供可能な複数の論理ボリュームのうちのどの2つの論理ボリュームによってボリュームペアが形成されているかを判別することができる。また、管理モジュール3400(或いはその他のコンピュータプログラム)は、ペア管理テーブルT2を参照することにより、各ボリュームペア毎に、そのボリュームペアを構成する2つの論理ボリュームはそれぞれ利用可能か否かを判別することができる。
上述したプール管理テーブルT1及びペア管理テーブルT2には、記憶制御システム20A(及び/又は他の記憶制御システム20B)に存在する全ての又は一部の論理ボリュームについて情報が登録される。
図6は、ボリュームペアを構成する第1と第2のボリュームのうち第1のボリュームが第2AP3500に対して提供される場合の複数のサブコンピュータプログラム間の連携例を示す。
その連携例を説明する前に、まず、ホストコンピュータHA1においてどのように上記複数のサブコンピュータプログラムが構築されるかを説明する。
管理モジュール3400が、プール管理テーブルT1及びペア管理テーブルT2を参照して、記憶制御システム20A(及び/又は他の記憶制御システム20B)に存在する複数の論理ボリュームにそれぞれ対応した複数のプログラムスタックを準備する。具体的には、例えば、管理モジュール3400は、或るボリュームペアについて、第1のボリューム212Aに対応したプログラムスタックST1と、第2のボリューム212Bに対応したプログラムスタックST2とを準備する。
そして、管理モジュール3400は、下位ディスク管理フィルタドライバ3300、物理ディスクモジュール3200、上位ディスク管理フィルタドライバ3100及びボリュームモジュール3000の順で、サブコンピュータプログラムを各プログラムスタックST1、ST2に呼び出す。これにより、各プログラムスタックST1、ST2毎に、そのプログラムスタックに対応した論理ボリュームに専用のデバイスドライバが構築される。なお、図6では、プログラムスタックST1に呼び出されたサブコンピュータプログラムに枝符号として「a」を付し、プログラムスタックST2に呼び出されたサブコンピュータプログラムに枝符号として「b」を付す。以下、枝符号aの側のサブコンピュータプログラムを代表的に例に採り説明する。
ボリュームモジュール3000aは、上位ディスク管理フィルタドライバ3100aによって、ボリューム認識の対象とされたボリュームを、第2AP3500に提供する。また、ボリュームモジュール3000aは、第2AP3500からのライト要求或いはリード要求を受けて、それを下位の上位ディスク管理フィルタドライバ3100aに通知する。
上位ディスク管理フィルタドライバ3100aは、自分に対応するボリューム212Aを第2AP3500に対して認識させるか或いは隠蔽するかの指示を管理モジュール3400から受け、受けた指示に応じて、自分に対応するボリューム212Aを上位に認識させるか或いは隠蔽するかを決定する。その他、上位ディスク管理フィルタドライバ3100aは、上位からのライト要求或いはリード要求を下位の物理ディスクモジュール3200aに送ったり、下位からのデータを上位に送ったりする。
物理ディスクモジュール3200aは、上位からのライト要求或いはリード要求を、所定のフォーマットのコマンド(例えば、SCSIプロトコルに基づく後述のI/O要求)に変換して、下位の下位ディスク管理フィルタドライバ3300aに送信する。その他、物理ディスクモジュール3200aは、下位からのデータを上位に送ることも行う。
下位ディスク管理フィルタドライバ3300aは、上位からのI/O要求を、自分に対応するボリューム212Aを宛先として記憶制御システム20Aに送信するか、或いは、別の下位ディスク管理フィルタドライバ3300aに転送するかを制御する。その制御は、後述の下位ディスク制御情報(図13参照)を参照することにより行われる。その他、下位ディスク管理フィルタドライバ3300aは、発行したI/O要求に対する戻り値(例えば成功或いは失敗というステータスコード)を、上位に送信するか、或いは、別の下位ディスク管理フィルタドライバ3300aに転送するかを制御する。この制御も、後述の下位ディスク制御情報(図13参照)を参照することにより行われる。
この第一実施例において、例えば、第2AP3500にボリュームを認識させているボリュームモジュール3000aがライト要求或いはリード要求を受けた場合、ボリュームモジュール3000aは、同一のプログラムスタックST1内にいる下位の上位ディスク管理フィルタドライバ3100aに、そのライト要求或いはリード要求を送る。上位ディスク管理フィルタドライバ3100aは、同一のプログラムスタックST1内にいる下位の物理ディスクモジュール3200aに、そのライト要求或いはリード要求を送る。物理ディスクモジュール3200aは、そのライト要求或いはリード要求をI/O要求に変換し、そのI/O要求を、同一のプログラムスタックST1内にいる下位ディスク管理フィルタドライバ3300aに送る。下位ディスク管理フィルタドライバ3300aは、後述の下位ディスク制御情報を参照し、I/O発行下位ドライバデータとして自分が設定されていれば、自分に対応したボリューム212Aを宛先とするI/O要求を発行する。
下位ディスク管理フィルタドライバ3300aは、記憶制御システム20Aからデータを受けた場合(例えば後述のI/O要求の戻り値を受けた場合)、後述の下位ディスク制御情報を参照し、ボリューム認識下位ドライバデータとして自分が設定されていれば、その受けたデータを上位に流す。それにより、そのデータが、同一のプログラムスタックST1内において、上位に流れていく。
図7は、図6において、第2AP3500に対して提供される論理ボリュームが第1のボリュームから第2のボリュームに切り替わった場合の連携例を示す。
図6において、下位ディスク管理フィルタドライバ3300aは、I/Oを発行する場合、I/O発行下位ドライバデータ(図13参照)として別の下位ディスク管理フィルタドライバ3300bが設定されていれば、そのドライバ3300bに、I/O要求を送る。この場合、そのドライバ3300bが、同様に、自分の下位ディスク制御情報におけるI/O発行下位ドライバデータを参照し、そのデータとして自分が設定されていれば、自分に対応するボリューム212Bを宛先とするI/O要求を発行する。
また、別の下位ディスク管理フィルタドライバ3300bは、記憶制御システム20Aからデータを受けた場合、自分に対応する後述の下位ディスク制御情報を参照し、ボリューム認識下位ドライバデータとして、下位ディスク管理フィルタドライバ3300aが設定されていれば、その受けたデータを、下位ディスク管理フィルタドライバ3300aに渡す。この場合、下位ディスク管理フィルタドライバ3300aが、同様に、自分の下位ディスク制御情報におけるボリューム認識下位ドライバデータを参照し、そのデータとして自分が設定されていれば、受けたデータを、同一のプログラムスタックST1内における上位の物理ディスクモジュール3200に送信する。
図8は、ボリュームが取り得る各種のペア状態とこれら各ペア状態間での遷移を模式的に示す状態遷移図である。図8に示すように、コピーの対象となるボリュームのペア状態としては、例えば、「ペア分割状態」、「コピー元状態」及び「コピー先状態」の3種類を挙げることができる。
「ペア分割状態」とは、コピーの対象となっていない状態を示す。「ペア分割状態」のボリュームに対して、このボリュームに繋がるホストコンピュータHA1は、リードアクセス及びライトアクセスの両方を行うことができる。
「コピー元状態」とは、コピー元ボリュームとして設定された状態である。「コピー元状態」のボリュームに対して、このボリュームに繋がるホストコンピュータHA1は、リードアクセス及びライトアクセスの両方が可能である。「コピー元状態」に設定されたボリュームの記憶内容が更新されると、これに同期して、「コピー先状態」に設定されたボリュームの記憶内容も更新される。
「コピー先状態」とは、「コピー元状態」と対になる状態であり、コピー先ボリュームとして設定された状態を示す。「コピー先状態」に設定されたボリュームには、「コピー元状態」に設定されたボリュームへの更新が、同期して反映される。「コピー先状態」に設定されたボリュームに対しては、このボリュームに繋がれるホストコンピュータHA1からライトアクセスすることはできない。なお、「コピー先状態」に設定されたボリュームへのリードアクセスは、許可してもよいし、禁止してもよい。
次に、各ペア状態間の遷移について説明する。仮に、コピーペアを構成する各ボリュームの初期状態を「ペア分割状態」であるとする。「ペア分割状態」の2つのボリュームのうち、一方のボリュームに関して「ペア形成指示」を発行すると(P1)、このボリュームは、「ペア分割状態」から「コピー元状態」に変化する。このボリュームは、コピー元ボリュームとなる。そして、このコピー元ボリュームとペアを構成する他方のボリュームは、「ペア分割状態」から「コピー先状態」に変化する(P3)。
「コピー元状態」に設定されているボリュームに設定されているボリュームに関して、そのボリュームに繋がるホストコンピュータHA1から「ペア分割指示」を発行した場合(P2)、「コピー元状態」から「ペア分割状態」に変化する。これとほぼ同時に、「コピー先状態」に設定されているボリュームは、「ペア分割状態」に変化する。「コピー先状態」に設定されているボリュームに関して、「ペア分割指示」を発行した場合も(P4)、上記同様の変化を生じる。即ち、「コピー先状態」のボリュームも「コピー元状態」のボリュームも、ともに「ペア分割状態」に変化する。
コピーの方向は、ボリュームに設定された状態により定まる。「コピー元状態」に設定されているボリュームから、「コピー先状態」に設定されているボリュームに向けて、ライトデータが転送される。このコピーの方向は、「ペア反転指示」を発行することにより、反転させることができる。
「コピー元状態」に設定されているボリュームに関して、そのボリュームに繋がるホストコンピュータHA1から「ペア反転指示」を発行すると(P5)、そのボリュームは「コピー元状態」から「コピー先状態」に変化する。同時に、相手方のボリュームは、「コピー先状態」から「コピー元状態」に変化する。同様に、「コピー先状態」に設定されているボリュームに関して、そのボリュームに繋がるホストコンピュータHA1から「ペア反転指示」を発行すると(P6)、「コピー先状態」のボリュームは「コピー元状態」に変化し、「コピー元状態」のボリュームは「コピー先状態」に変化する。
以上のようなペア状態の変更は、例えば、管理モジュール3400が実行することができる。
さて、以下、本実施例において行われる処理について詳細に説明する。
図9は、下位ディスク管理フィルタドライバが行う処理流れの一例を示す。
下位ディスク管理フィルタドライバ3300は、OS1130(例えば管理モジュール3400)から起動要求を受けて、管理モジュール3400から指定されたプログラムスタックSTで起動する。ちなみに、例えば、管理モジュール3400は、以下の処理によって、ホストコンピュータHA1がアクセス可能な全ての論理ボリュームを認識し、認識した各論理ボリューム毎に、プログラムスタックを準備し、且つ、そのプログラムスタック上で、その論理ボリュームに対応するサブコンピュータプログラムを起動することができる。
例えば、OS1130は、起動した場合に、記憶制御システム20A(及び/又は、他の記憶制御システム20B)に対して、所定のコマンド(例えばSCSIプロトコルに基づくデバイスディスカバリーコマンド)を送信する。その場合、記憶制御システム20AのホストI/F230が、そのコマンドに応答して、共有メモリ260に記録されているデバイス情報321を取得してホストコンピュータHA1に送信する。ホストコンピュータHA1のOS1130は、記憶制御システム20Aから受信したデバイス情報321を受信してメモリ320(或いは他の記憶装置)に登録しておく。そのデバイス情報321には、記憶制御システム20Aに関する情報として、例えば、記憶制御システム20Aのメーカ或いはベンダの情報や、記憶制御システム20Aが有する全ての論理ボリュームに関するボリューム属性情報(例えば、プール状態のボリュームか、ボリュームペアを構成するボリュームか、ボリュームペアを構成するボリュームであればペア状態やペア相手はどのボリュームであるか等)が含まれている。管理モジュール3400は、そのデバイス情報321(例えばそれに含まれているボリューム情報)を参照することにより、ホストコンピュータHA1に提供可能な全ての論理ボリュームを認識することができ、以って、認識された各論理ボリューム毎に、プログラムスタックSTを準備し、準備したプログラムスタックSTに、下位ディスク管理フィルタドライバ3300等のサブコンピュータプログラムを順次起動することができる。
プログラムスタックSTに呼び出された(つまり起動した)下位ディスク管理フィルタドライバ3300は、デバイス情報321を参照する等の所定の方法により、自分に対応した論理ボリュームがコピー機能を有するボリュームか否かを判定する(ステップS1)。ここで、例えば、下位ディスク管理フィルタドライバ3300は、デバイス情報321に、所定のコード(例えば所定のベンダ名)が含まれていない場合には、コピー機能無しのボリュームであると判定し、一方、所定のコードが含まれている場合には、コピー機能有りのボリュームであると判定することができる。
S1の判定処理によって、コピー機能無しのボリュームであると判定された場合には(S2で「コピー機能なしボリューム」)、OS1130が、その論理ボリュームについては、I/Oトラップを行なわないモードへ移行する(S3)。ここで、「I/Oトラップ」とは、第2AP3500から出力されたI/O要求の送信先を、第2AP3500に実際に認識されているボリューム(例えばコピー元ボリューム)から、そのボリュームの状態(例えば利用可フラグが立っているか否か)に応じて、そのボリュームのペア相手のボリューム(例えばコピー先ボリューム)へ切替えることを言う。なお、このS3では、例えば、起動した下位ディスク管理フィルタドライバ3300は、そのまま終了しても良い。すなわち、コピー機能無しと判定された論理ボリュームに対応するプログラムスタックSTには、サブコンピュータプログラムが構築されていく必要は無い。
S1の判定処理によって、コピー機能有りのボリュームであると判定された場合には(S2で「コピー機能ありボリューム」)、下位ディスク管理フィルタドライバ3300は、ボリューム登録要求処理を実行する(S4)。具体的には、例えば、下位ディスク管理フィルタドライバ3300は、自分に対応する論理ボリュームに関するボリューム属性情報の全部又は一部(例えば、プール管理テーブルT1又はペア管理テーブルT2の情報項目に対応した情報)を、管理モジュール3400に送信する。
S4の後、OS1130が、プール管理テーブルT1或いはペア管理テーブルT2に情報が登録される論理ボリュームについては、I/Oトラップを行うモードへ移行する(S5)。
図10は、上位ディスク管理フィルタドライバの動作流れの一例を示す。
例えば、管理モジュール3400によって、上述のデバイス情報321から認識される各ボリューム毎のプログラムスタックSTに対し、上位ディスク管理フィルタドライバ3100も起動要求を受ける。上位ディスク管理フィルタドライバ3100は、下位ディスク管理フィルタドライバ3300と同様の方法で、自分に対応する論理ボリュームがコピー機能を持つか否かを判定する(S11)。
S11の判定の結果、コピー機能無しのボリュームであると判定された場合には(S12で「コピー機能なしボリューム」)、OS1130が、その論理ボリュームを第2AP3500に認識させるボリューム認識モードを実行する(S13)。なお、このS13では、例えば、起動した上位ディスク管理フィルタドライバ3100は、そのまま終了しても良い。すなわち、コピー機能無しと判定された論理ボリュームに対応するプログラムスタックSTには、サブコンピュータプログラムが構築されていく必要は無い。
S11の判定の結果、コピー機能有りのボリュームであると判定された場合には(S12で「コピー機能ありボリューム」)、上位ディスク管理フィルタドライバ3100は、ボリューム認識可否判定処理を実行する(S14)。具体的には、例えば、上位ディスク管理フィルタドライバ3100は、管理モジュール3400に所定の要求を送信し、その要求に応答して管理モジュール3400から受けた情報(例えば後述する戻り値)に基づいて、自分に対応する論理ボリュームを、第2AP3500に認識させるか、或いは、その論理ボリュームを第2AP3500に対して隠蔽するかを判定する(S15)。
S15の判定の結果、認識させると判定された場合には(S15で「ボリューム認識」)、S13の処理が実行される。具体的には、例えば、上位ディスク管理フィルタドライバ3100は、管理モジュール3400から戻り値として「ボリューム認識」を受けた場合、それを所定の記憶域(例えばメモリ320)にセットし、その戻り値に基づいて、自分に対応するモジュールを上位(例えばボリュームモジュール3000)に見せるように制御する。
一方、S15の判定の結果、隠蔽させると判定された場合には(S15で「ボリューム隠蔽」)、OS1130によって、その論理ボリュームが第2AP3500に対して隠蔽されるボリューム隠蔽モードが実行される(S16)。具体的には、例えば、上位ディスク管理フィルタドライバ3100は、管理モジュール3400から戻り値として「ボリューム隠蔽」を受けた場合、それを所定の記憶域(例えばメモリ320)にセットし、その戻り値に基づいて、自分に対応するモジュールを上位(例えばボリュームモジュール3000)に見せないように制御する。
図11は、管理モジュール3400が行うボリューム登録要求応答処理の流れの一例を示す。
この図に示す処理は、下位ディスク管理フィルタドライバ3300によるS4の処理(図9参照)によって、下位ディスク管理フィルタドライバ3300からボリューム属性情報の全部又は一部を管理モジュール3400が受信した場合に行なわれる。
管理モジュール3400は、受信したボリューム属性情報に基づいて、コピー状態の判定処理を行う(S21)。この判定処理では、例えば、管理モジュール3400は、ボリューム属性情報にペア状態を表す情報が含まれていないことを検出した場合には、コピー状態でないと判定し、一方、ペア状態を表す情報が含まれていることを検出した場合には、コピー状態であると判定する。
S21の判定処理の結果、コピー状態でないと判定された場合には(S23で「コピー状態でない」)、管理モジュール3400は、受信したボリューム属性情報の一部であるボリューム情報を、プール管理テーブルT1に登録する。
S21の判定処理の結果、コピー状態であると判定された場合には(S23で「コピー状態である」)、管理モジュール3400は、受信したボリューム属性情報の全部又は一部に適合する情報が既にペア管理テーブルT2に登録されているか否かを判定する(S24)。
S24の判定の結果、登録されていないと判定された場合には(S25で「登録されていない」)、管理モジュール3400は、受信したボリューム属性情報の全部又は一部を、新たなペアボリューム(ボリュームペアを構成する一つのボリューム)に関する情報として、ペア管理テーブルT2に登録する(S26)。この処理により、ペア管理テーブルT2には、新たなボリュームペアIDと共に、そのIDが付与されたボリュームペアを構成するボリュームに関する情報が、第1又は第2のボリューム情報群としてペア管理テーブルT2に登録される。なお、第1又は第2のボリューム情報群のどちらに登録するかは、例えば、ペア状態の内容によって選択されても良い。具体的には、例えば、管理モジュール3400は、ペア状態が「コピー元状態」であれば、ボリューム属性情報の全部又は一部を第1のボリューム情報群として登録し、ペア状態が「コピー先状態」であれば、ボリューム属性情報の全部又は一部を第2のボリューム情報群として登録し、ペア状態が「ペア分割状態」であれば、任意のボリューム情報群に登録するようにしても良い。
S24の判定の結果、登録されていると判定された場合には(S25で「登録されている」)、管理モジュール3400は、受信したボリューム属性情報の全部又は一部を、既存のペアボリュームに関する情報として、ペア管理テーブルT2に登録する(S27)。
図12は、管理モジュール3400が行うボリューム認識可否判定処理の流れの一例を示す。
この図に示す処理は、上位ディスク管理フィルタドライバ3100によるS14の処理(図10参照)によって、上位ディスク管理フィルタドライバ3100から管理モジュール3400が所定の要求を受信した場合に行なわれる。
管理モジュール3400は、プール管理テーブルT1及びペア管理テーブルT2を参照し、この図に示す処理の対象となっている対象論理ボリューム(例えば、受信した要求に含まれているボリュームIDを含んだボリューム情報に該当するボリューム)のコピー状態の判定処理を行う(S31)。この判定処理では、例えば、管理モジュール3400は、その論理ボリュームについてペア状態を表す情報があれば、コピー状態でないと判定し、一方、ペア状態を表す情報があれば、コピー状態であると判定する。
S31の判定処理の結果、コピー状態でないと判定された場合には(S32で「コピー状態でない」)、管理モジュール3400は、上位ディスク管理フィルタドライバ3100に送信する戻り値として「ボリューム認識」表すコードをセットし(S33)、その戻り値を上位ディスク管理フィルタドライバ3100に送信する(S37)。
S31の判定処理の結果、コピー状態であると判定された場合には(S32で「コピー状態である」)、管理モジュール3400は、上記対象論理ボリュームに関する情報がペア管理テーブルT2の第1のボリューム情報群の欄に登録されているか否かを判定する(S34)。
S34の判定の結果が肯定的であれば(S35で「含まれている」)、管理モジュール3400は、上記S33及びS37の処理を実行する。
一方、S34の判定の結果が否定的であれば(S35で「含まれていない」)、管理モジュール3400は、上位ディスク管理フィルタドライバ3100に送信する戻り値として「ボリューム隠蔽」表すコードをセットし(S36)、その戻り値を上位ディスク管理フィルタドライバ3100に送信する(S37)。
以上のような流れによって、各ボリューム毎に準備された各プログラムスタックに、下位ディスク管理フィルタドライバ3300及び上位ディスク管理フィルタドライバ3100が構築するか否かが制御される。
なお、ボリュームペアを構成する2つのボリュームにそれぞれ対応した2つの下位ディスク管理フィルタドライバ3300a及び3300bは、下位ディスク制御情報を保持し、その下位ディスク制御情報に基づいて、データの送信を制御する。
図13は、下位ディスク制御情報の構成例を示す。
下位ディスク制御情報25には、ボリューム認識下位デバイスデータと、I/O発行下位デバイスデータとが含まれている。
ボリューム認識下位デバイスデータは、ボリュームを認識する下位ディスク管理フィルタドライバ3300を特定するための情報であり、例えば、その下位ディスク管理フィルタドライバ3300の名称である。このボリューム認識下位デバイスデータを参照することにより、例えば2つの下位ディスク管理フィルタドライバ3300a及び3300bのうちのどちらから上位にボリュームを伝えるべきかを判別することができる。
I/O発行下位デバイスデータは、I/O要求をボリュームに発行する下位ディスク管理フィルタドライバ3300を特定するための情報であり、例えば、その下位ディスク管理フィルタドライバ3300の名称である。このI/O発行下位デバイスデータを参照することにより、例えば2つの下位ディスク管理フィルタドライバ3300a及び3300bのうちのどちらから下位にI/O要求を発行するべきかを判別することができる。
このような下位ディスク制御情報25に基づいて、第2AP3500に対して認識させるボリュームを、コピー元ボリュームとコピー先ボリュームとの間で切替える処理が可能になる。以下、その下位ディスク制御情報25がOS1130に反映されるまでに行われる処理流れを説明する。
図14は、下位ディスク制御情報25を登録するために下位ディスク管理フィルタドライバ3300によって行われる処理流れの一例を示す。
下位ディスク管理フィルタドライバ3300は、OS1130(例えば管理モジュール3400)から、ボリューム利用開始要求を受けて、以下のS41の処理を実行する。すなわち、下位ディスク管理フィルタドライバ3300は、S1(図9参照)と同様の方法で、自分に対応した論理ボリュームがコピー機能を有するボリュームか否かを判定する(S41)。
S41の判定処理によって、コピー機能無しのボリュームであると判定された場合には(S42で「コピー機能なしボリューム」)、下位ディスク管理フィルタドライバ3300は、処理を終了する。
S41の判定処理によって、コピー機能有りのボリュームであると判定された場合には(S42で「コピー機能ありボリューム」)、下位ディスク管理フィルタドライバ3300は、下位ディスク制御情報要求処理を実行する(S43)。具体的には、例えば、下位ディスク管理フィルタドライバ3300は、下位ディスク制御情報を管理モジュール3400に要求し、その要求に応答して、下位ディスク制御情報を管理モジュール3400から受信する。その後、下位ディスク管理フィルタドライバ3300は、受信した下位ディスク制御情報を、所定の記憶域(例えばメモリ320)に登録する(S44)。
図15は、下位ディスク制御情報の要求に応答して管理モジュール3400が行う処理の流れの一例を示す。
管理モジュール3400は、各プログラムスタックST毎に(換言すれば、各論理ボリューム毎に)、それに対応する下位ディスク管理フィルタドライバ3300の名称を、所定の記憶域(例えばメモリ320)上で管理している。
管理モジュール3400は、下位ディスク制御情報を要求した下位ディスク管理フィルタドライバ3300(以下、要求元ドライバ3300)に対応したボリュームのコピー状態を、S21(図11参照)或いはS31(図12参照)と同様の方法で判定する(S51)。なお、管理モジュール3400は、例えば、所定の記憶域(例えばメモリ320)上で、各ボリュームID毎に、そのIDから特定されるボリュームに対応する下位ディスク管理フィルタドライバ3300の名称を管理することで、要求元ドライバ3300に対応したボリュームを特定することができる。
S51の判定の結果、コピー状態でないと判定された場合には(S52で「コピー状態でない」)、管理モジュール3400は、要求元ドライバ3300の名称を、下位ディスク制御情報の「ボリューム認識下位ドライバデータ」及び「I/O発行下位ドライバデータ」の両方にセットする(S53)。これにより、要求元ドライバ3300に対応するボリュームが、コピー状態で無い場合には、上位へボリュームを伝達するデバイス3300も、下位へI/O要求を発行するデバイス3300も同一となる。換言すれば、要求元ドライバ3300に対応するボリュームがコピー状態で無い場合には、第2AP3500に認識させるボリュームの切替えは行われない。
S51の判定の結果、コピー状態であると判定された場合には(S52で「コピー状態である」)、管理モジュール3400は、ペア管理テーブルT2を参照することにより、要求元ドライバ3300に対応するボリュームが属するペアボリュームのうち第1ボリューム(第1のボリューム情報群の欄に登録された情報に該当するボリューム)を特定し、そして、特定された第1ボリュームに対応する下位ディスク管理フィルタドライバ3300の名称を、下位ディスク制御情報の「ボリューム認識下位ドライバデータ」にセットする(S54)。また、管理モジュール3400は、ペア管理テーブルT2を参照することにより、要求元ドライバ3300に対応するボリュームが属するペアボリュームのうちコピー元ボリューム(ペア状態がコピー元状態であるボリューム)を特定し、そして、特定されたコピー元ボリュームに対応する下位ディスク管理フィルタドライバ3300の名称を、下位ディスク制御情報の「ボリューム認識下位ドライバデータ」にセットする(S55)。これらS54及びS55の処理により、上位へボリュームを伝達する下位ディスク管理フィルタドライバ3300として、第2AP3500に認識されるボリュームに対応した下位ディスク管理フィルタドライバ3300がセットされ、下位へI/O要求を発行する下位ディスク管理フィルタドライバ3300として、データの読出しだけでなく書込みも許可されるコピー元ボリュームに対応した下位ディスク管理フィルタドライバ3300がセットされる。
S53又はS55の処理の後、すなわち、下位ディスク制御情報の「ボリューム認識下位ドライバデータ」及び「I/O発行下位ドライバデータ」の両方に名称がセットされたならば、管理モジュール3400が、名称のセットが完了した下位ディスク制御情報を戻り値として要求元ドライバ3300に送信する(S56)。
以上の図14及び図15の処理によって、各論理ボリュームに対応する各下位ディスク管理フィルタドライバ3300が、下位ディスク制御情報を管理モジュール3400から受信し所定の記憶域(例えばメモリ3200)に登録することができる。その後、各下位ディスク管理フィルタドライバ3300は、I/O要求を受信した場合には、以下に説明する処理を実行する。
図16は、I/O要求を受信した下位ディスク管理フィルタドライバ3300が行う処理流れの一例を示す。
下位ディスク管理フィルタドライバ3300は、自分の上位にある物理ディスクモジュール3200又は別の下位ディスク管理フィルタドライバ3300から、I/O要求を受信する。その場合、下位ディスク管理フィルタドライバ3300は、所定の記憶域に登録されている下位ディスク制御情報中の「I/O発行下位デバイスデータ」にセットされている名称を参照し(S61)、その名称が、自分の名称か否かを判定する(S62)。
S62の判定の結果、肯定的であれば(S62でYES)、下位ディスク管理フィルタドライバ3300は、自分に対応するボリュームにI/O要求を発行する(S63)。ここでは、例えば、下位ディスク管理フィルタドライバ3300は、管理モジュール3400からの制御の下、宛先となるボリュームのボリューム情報(プール管理テーブルT1又はペア管理テーブルT2に記録されている情報、例えばアクセスパス名)を有するI/O要求を発行する。これにより、I/O要求が記憶制御システム20Aに送信され、そのボリュームからデータがリードされるか、或いは、そのボリュームにデータがライトされる。
S62の判定の結果、否定的であれば(S62でNO)、下位ディスク管理フィルタドライバ3300は、「I/O発行下位デバイスデータ」にセットされている名称に対応した別の下位ディスク管理フィルタドライバ3300に、受信したI/O要求を送信する(S64)。
記憶制御システム20Aは、ホストコンピュータHA1からI/O要求を受信した場合、そのI/O要求に従う処理を実行すること、すなわち、そのI/O要求の対象となっているボリュームからデータを読み出す、或いはそのボリュームにデータを書込むことを試みる。記憶制御システム20Aは、その試みに成功し、データの読出し或いはデータの書込みを行えた場合には、I/O要求に対するレスポンスとして戻り値「成功」をホストコンピュータHA1に返送し、一方、その試みに失敗した場合(例えばビジー状態の場合)には、そのI/O要求に対するレスポンスとして戻り値「失敗」をホストコンピュータHA1に返送する。
図17は、I/O要求の戻り値を記憶制御システム20Aから受信した下位ディスク管理フィルタドライバ3300が行う処理流れの一例を示す。
下位ディスク管理フィルタドライバ3300は、記憶制御システム20A又は別の下位ディスク管理フィルタドライバ3300から、I/O要求の戻り値を受信する。下位ディスク管理フィルタドライバ3300は、受信した戻り値を確認する(S71)。
S71において、戻り値「成功」が確認された場合(S71で「成功」)、下位ディスク管理フィルタドライバ3300は、所定の記憶域に登録されている下位ディスク制御情報中の「ボリューム認識下位デバイスデータ」にセットされている名称を参照し(S72)、その名称が、自分の名称か否かを判定する(S73)。
S73の判定の結果、肯定的であれば(S73でYES)、下位ディスク管理フィルタドライバ3300は、受信した戻り値「成功」を、OS1130(例えば、自分の上位のサブコンピュータプログラムである物理ディスクモジュール3200)に送信する(S74)。
S73の判定の結果、否定的であれば(S73でNO)、下位ディスク管理フィルタドライバ3300は、「ボリューム認識下位デバイスデータ」にセットされている名称に対応した別の下位ディスク管理フィルタドライバ3300に、受信した戻り値「成功」を送信する(S75)。
S71において、戻り値「失敗」が確認された場合(S71で「失敗」)、下位ディスク管理フィルタドライバ3300は、I/O失敗時判定処理を行うこと管理モジュール3400に要求する(S76)。その要求に応答して管理モジュール3400がI/O失敗時判定処理を行い、その結果、「リトライ無し」という戻り値を受けた場合(S77で「リトライなし」)、下位ディスク管理フィルタドライバ3300は、S72の処理を実行し、一方、「リトライ」という戻り値を受けた場合(S77で「リトライ」)、I/O要求の再発行を行なう(S78)。ここで、例えば、下位ディスク管理フィルタドライバ3300は、S63或いはS64(図16参照)で発行したI/O要求を所定の記憶域(例えばメモリ320)に一時的に保存しておき、S78では、その保存しておいたI/O要求を読み出して発行する。もし、S71で戻り値「成功」が確認された場合には、下位ディスク管理フィルタドライバ3300は、その保存しておいたI/O要求を消去しても良い。
図18は、I/O失敗時判定処理を行うことの要求を下位ディスク管理フィルタドライバ3300から受けた管理モジュール3400が行う処理流れの一例を示す。
管理モジュール3400は、ペア管理テーブルT2を参照し、I/O失敗時判定処理の要求元ドライバに対応するボリュームが、どのペアボリュームに所属しているかを検索する(S81)。なお、要求元ドライバ3300に対応するボリュームがどれであるかは、例えば、各ボリュームIDと、それに対応する下位ディスク管理フィルタドライバ3300の名称とを所定の記憶域(例えばメモリ320)で管理することにより、管理モジュール3400が判別することができる。
管理モジュール3400は、要求元ドライバ3300に対応するペアボリュームが検索されたならば、そのペアボリュームの「利用可フラグ」を利用不可に変更する(つまりフラグを倒す)(S82)。
次に、管理モジュール3400は、検索されたペアボリュームと一緒にボリュームペアを構成するペア相手ボリュームをペア管理テーブルT2から特定し、特定されたペア相手ボリュームの利用可フラグを確認する(S83)。
S83において、管理モジュール3400は、利用可フラグが倒れている(つまり、ペア相手ボリュームは利用不可である)ことが確認された場合には(S84でNO)、要求元ドライバ3300に返送する戻り値に「リトライなし」をセットして(S85)、その戻り値「リトライなし」を要求元ドライバに送信する。これにより、要求元ドライバ3300によって、S77からS72以降の処理を経て(図17参照)、戻り値「失敗」が、OS11130(例えば、要求元ドライバ3300の上位の物理ディスクモジュール3200)に送信される。
S83において、管理モジュール3400は、利用可フラグが立っている(つまり、ペア相手ボリュームは利用可である)ことが確認された場合には(S84でYES)、ペア管理テーブルT2を参照し、上記ペア相手ボリュームのペア状態を確認する(S86)。
S86において、管理モジュール3400は、ペア状態が「コピー先状態」であると判定された場合には(S87で「コピー先状態」)、ペア反転操作を行う(S88)。具体的には、例えば、管理モジュール3400は、ペア相手ボリュームのペア状態を、コピー先状態からコピー元状態に変更し、且つ、S81で検索されたボリューム(つまり、ペア相手ボリュームのペア相手)のペア状態を、コピー元状態からコピー先状態に変更する。なお、このS88の処理は、例えば、管理モジュール3400が、ペア反転操作が可能な状態か否かの判断を行い、肯定的な判断結果が得られた場合にのみ、行なっても良い。ペア反転操作が可能であるとの判断結果は、例えば、S81で検索されたボリューム(つまり現在のコピー元ボリューム)にデータが書込みされていない場合に得られ、それが不可能であるとの判断結果は、例えば、そのボリュームにデータが書き込まれている最中の場合に得られても良い。
S86において、管理モジュール3400は、ペア状態が「コピー元状態」であると判定された場合には(S87で「コピー元状態」)、下位ディスク制御情報の「I/O発行下位ドライバデータ」の名称を、上記ペア相手ボリュームに対応する下位ディスク管理フィルタドライバ3300の名称に更新する(S89)。
S88又はS89の処理の後、管理モジュール3400は、要求元ドライバ3300に返送する戻り値に「リトライ」をセットし(S90)、その戻り値「リトライ」を要求元ドライバ3300に送信する。これにより、要求元ドライバ3300によって、S78の処理が行われる。すなわち、I/O要求は、S89で名称が書き込まれた別の下位ディスク管理フィルタドライバ3300(上記ペア相手ボリュームに対応した下位ディスク管理フィルタドライバ3300)に振り分けられる。
さて、上述したように、各ボリューム毎にプログラムスタックが準備され、各プログラムスタックに、サブコンピュータプログラムが呼び出され構築されていくが、そのプログラムスタックに構築された1又は複数のサブコンピュータプログラム(或いはプログラムスタックそれ自体)は、以下の流れで削除することができる。その流れを、図19及び図20を参照して説明する。なお、以下の削除処理は、例えば、1つのボリュームとして第2AP3500に認識されるように管理されている複数のボリュームの利用可フラグが全て利用不可となった場合(例えばそのことが管理モジュール3400によって検出された場合)に、それら複数のボリュームにそれぞれ対応する複数の下位ディスク管理フィルタドライバに対して、削除要求が送信されることで行われる。
図19は、削除要求を受けた下位ディスク管理フィルタドライバ3300の処理流れを示す。
下位ディスク管理フィルタドライバ3300は、OS1130(例えば管理モジュール3400又は別の下位ディスク管理フィルタドライバ3300)から削除要求を受けた場合、削除処理を管理モジュール3400に要求する(S91)。この要求に応答して、管理モジュール3400によって後述する削除処理が行われ、下位ディスク管理フィルタドライバ3300は、管理モジュール3400から戻り値「ドライバ削除」又は「ドライバ削除なし」を受信する。
下位ディスク管理フィルタドライバ3300は、受信した戻り値が「ドライバ削除」を示すことを判定した場合には(S92で「ドライバ削除」)、そのドライバ3300(又はそのドライバ3300を有するプログラムスタックそれ自体)を削除する(S93)。一方、下位ディスク管理フィルタドライバ3300は、受信した戻り値が「ドライバ削除なし」を示すことを判定した場合には(S92で「ドライバ削除なし」)、そのドライバ3300(又はそのドライバ3300を有するプログラムスタックそれ自体)を削除することなく(S94)、処理を終了する。
図20は、削除処理の要求を受けた管理モジュール3400が行う処理流れの一例を示す。
管理モジュール3400は、ペア管理テーブルT2を参照し、I/O失敗時判定処理の要求元ドライバに対応するボリュームが、どのペアボリュームに所属しているかを検索する(S101)。
管理モジュール3400は、要求元ドライバ3300に対応するペアボリュームが検索されたならば、そのペアボリュームの「利用可フラグ」を利用不可に変更する(S102)。
次に、管理モジュール3400は、検索されたペアボリュームと一緒にボリュームペアを構成するペア相手ボリュームをペア管理テーブルT2から特定し、特定されたペア相手ボリュームの利用可フラグを確認する(S103)。
S103において、管理モジュール3400は、利用可フラグが立っている(つまり、ペア相手ボリュームは利用可である)ことが確認された場合には(S104でYES)、要求元ドライバ3300に返送する戻り値に「ドライバ削除なし」をセットして(S105)、その戻り値「ドライバ削除なし」を要求元ドライバに送信する。
S103において、管理モジュール3400は、利用可フラグが倒れている(つまり、ペア相手ボリュームは利用不可である)ことが確認された場合には(S104でNO)、ペア相手ボリュームに対応する別の下位ディスク管理フィルタドライバ3300に、削除要求を送信する(S106)。これにより、その別の下位ディスク管理フィルタドライバ3300において、図19に示した処理が行われる。
S106の後、管理モジュール3400は、要求元ドライバ3300に返送する戻り値に「ドライバ削除」をセットして(S107)、その戻り値「ドライバ削除」を要求元ドライバ3300に送信する。
以上、上述した実施例によれば、ホストコンピュータHA1において、OS1130の上位に存在する第2AP3500に、コピー元ボリューム及びコピー先ボリュームを仮想的に一つのボリュームとして認識させることができる。
図21Aは、本発明の一実施形態の第二の実施例に係るストレージシステムの全体概要を示す。この図21Aと、前述した図2とを参照して第二の実施例について説明する。
第二の実施例は、本実施形態を、リモートコピー、すなわち、第1の記憶制御システム20A内のコピー元ボリュームから、その記憶制御システム20Aとは別の(例えば遠隔の)記憶制御システム20B内のコピー先論理ボリュームへデータコピーすることに適用した場合の例である。
リモートコピーについて、簡単に説明すると、記憶制御システム20Aが有する複数の論理ボリューム212と、記憶制御システム20Bが有する複数の論理ボリューム212とのうち、同期対象となる論理ボリュームが予め選択される。これら選択された一対の論理ボリューム212は、一方がコピー元ボリューム212Aとなり、他方がコピー先ボリューム212Bとなる。ホストコンピュータHからコピー元ボリュームに書き込まれたデータ(更新データ)は、装置間I/F240からリモートコピーラインCN13を介して、コピー先ボリューム212Bに転送され、コピー先ボリューム212Bに書き込まれる。
また、リモートコピーの停止期間中に、コピー元ボリューム212Aに書き込まれたデータは、差分データとして管理される。差分データは、例えば、差分ビットマップテーブル等を用いて管理可能である。リモートコピーを再開する場合、まず先に、コピー元ボリューム212Aからコピー先ボリューム212Bに差分データが転送され、各ボリュームの再同期が行われる。
以下、この第二の実施例について詳細に説明する。
ホストコンピュータHA1からデータを書き込まれた論理ボリューム212が、コピー元ボリューム212Aに設定されている場合、このライトデータは、装置間I/F240からリモートコピーラインCN13を介して、コピー先ボリューム212Bを有する記憶制御システム20Bに転送される。転送先の記憶制御システム20Bは、装置間I/Fを介してライトデータを受信すると、このライトデータをキャッシュメモリに格納し、転送元の記憶制御システム20Aに対して、書込み完了を報告する。転送先の記憶制御システム20Bは、書込み完了の報告後、適当なタイミングで、ライトデータをコピー先ボリューム212Bに書込む。
転送元の記憶制御システム20AのホストI/F230は、転送先の記憶制御システム20Bから書込み完了が報告されたことを確認した後、ホストコンピュータHに対して、書込み完了を報告する。以上のように、転送先の記憶制御システム20Bからの書込み完了報告を待ってから、ホストコンピュータHに書込み完了を報告する方法を、同期式リモートコピーと呼ぶ。
これに対し、転送元の記憶制御システム20Aが、ホストコンピュータHからのライトデータをキャッシュメモリ250に記憶させた時点で、ホストコンピュータHに書込み完了を報告する方法を非同期式リモートコピーと呼ぶ。同期式リモートコピーの場合は、転送先からの応答を待つ時間だけ処理時間が長くなる。しかし、転送が正常に完了したことを確認してからホストコンピュータHに書込み完了を報告するため、コピー元ボリューム212Aとコピー先ボリューム212Bとが同期していることを保証できる。非同期式リモートコピーの場合は、相手方の記憶制御システム20Bにライトデータを転送する前に、ホストコンピュータHに書込み完了を報告するため、応答時間を短縮することができる。しかし、コピー元ボリューム212Aの記憶内容が更新されたか否かを確認していないため、リモートコピーが正常に完了したことを確実に保証することはできない。
以上のように、同期式リモートコピーと非同期式リモートコピーとの2つの方式のいずれをも実行することが可能である。このように、リモートコピーを行う場合にも、上述した本実施形態を適用することができる。
なお、リモートコピーを行うことができるストレージシステムの構成は、図21Aの構成に限られない。
例えば、図21Bに示すように、別々の通信ネットワークCN11A及びCN11Bにそれぞれ接続されたホストコンピュータHA1及びHB1の両方に、ボリューム管理プログラム群1110A、1110Bが組み込まれても良い。ボリューム管理プログラム群1110A及び1110Bの両方が、上記実施形態或いは第一実施例で説明したような処理を行うことで、ストレージシステムの可用性が高まる。
また、例えば、図22Aに示すように、図21Bに示したストレージシステムにおいて、ホストコンピュータHA1及びHA2が、ホスト間を結ぶ通信ネットワーク(例えばIPプロトコルに従うネットワーク)CN12を介して接続されていても良い。この場合、例えば、ホストコンピュータHA1が、ボリュームペアを構成している或るボリュームにアクセスできないときに、ホストコンピュータHA1がその旨を別のホストコンピュータHB1に送信し、ホストコンピュータHB1が、そのアクセスできないボリュームの利用可フラグ(ペア管理テーブルT2上の利用可フラグ)を利用不可に変更しても良い。これによれば、ストレージシステムの可用性の向上が図れる。
また、例えば、図22Bに示すように、コピー元ボリューム212Aには、複数のコピー先ボリューム212Bが存在していても良い。この場合には、例えば、ペア管理テーブルT2において、各ボリュームペア毎に、複数のボリュームのボリューム情報、ペア状態及び利用可フラグを登録することができる。なお、この場合、例えば、制御モジュール3400は、各ボリュームペアにおいて、そのボリュームペアを構成する2つ以上のボリュームのペア状態を同時期にコピー元状態としないような制御を行ってもよい。
本発明の一実施形態の第三実施例では、上記実施形態及び第一〜第二実施例において、ボリューム管理AP4000が提供するGUI(グラフィカルユーザインターフェース)を介して、ボリューム管理プログラム群1110によって行われる処理を制御することができる。
ボリューム管理AP4000は、起動して、ユーザによって所定の操作が行われた場合、図23に例示する第一のGUI画面をディスプレイ画面370に表示する。このGUI画面上で、何らかの情報が入力された場合、ボリューム管理AP4000は、入力された情報の内容を、管理モジュール3400に通知する。管理モジュール3400は、入力された情報を所定の記憶域(例えばメモリ320)にセットし、そのセットした情報に基づく制御を実行する。
例えば、管理モジュール3400は、第一のGUI画面上で「ペア反転モード」が選択された旨の通知をボリューム管理AP400から受けた場合、その旨を所定の記憶域にセットしても良い。その後、管理モジュール3400は、ペア反転モードが選択された旨が所定の記憶域にセットされていることを検出した場合、ペア反転モードを実行しても良い。具体的には、例えば、管理モジュール3400が、図18のS88の処理の前に、ペア反転操作が可能か否かの判断を行い、肯定的な判断結果が得られた場合にのみ、行なっても良い。これは、例えば、他のホストコンピュータが同一ボリュームを用いて運用を行っている等、ストレージシステムの運用により、自動でペア反転操作を行えない環境も存在するため、このように、ペア反転操作が可能か否かの判断を行った上でペア反転を行うのは有用である。なお、ペア反転モードが選択されたか否かの情報は、例えば、ペア管理テーブルT2上に、各ボリュームペア毎に記録されてもよい。
また、例えば、管理モジュール3400は、第一のGUI画面上で「ペア状態監視モード」が選択された旨の通知をボリューム管理AP400から受けた場合、その旨を所定の記憶域にセットしても良い。その後、管理モジュール3400は、ペア状態監視モードが選択された旨が所定の記憶域にセットされていることを検出した場合、ペア状態監視モードを実行しても良い。具体的には、例えば、管理モジュール3400が、各下位ディスク管理フィルタドライバ3300に、そのドライバ3300に対応するボリュームにI/O要求を不定期に又は定期的に発行させ、それの戻り値の内容を参照させることで、各ドライバ3300と各ボリュームとの間のパスが正常か異常かを判定させても良い。これにより、早期のパス障害の発見、或いは、実処理前のパスのフェイルオーバーが可能となる。なお、ペア状態監視モードが選択されたか否かの情報は、例えば、ペア管理テーブルT2上に、各ボリュームペア毎に記録されてもよい。
また、例えば、管理モジュール3400は、第一のGUI画面上で「優先ディスクモード」が選択された旨の通知をボリューム管理AP400から受けた場合、その旨を所定の記憶域にセットしても良い。その後、管理モジュール3400は、優先ディスクモードが選択された旨が所定の記憶域にセットされていることを検出した場合、優先ディスクモードを実行しても良い。具体的には、例えば、管理モジュール3400が、図15を参照して説明した処理流れにおいて、優先ディスクとして選択されたボリュームを検出し、そのボリュームに対応する下位ディスク管理フィルタドライバ3300の名称を、I/O発行下位ドライバデータに優先的にセットしても良い。ホストコンピュータよりコピーペアを形成するボリュームの通信経路が同じ条件であることは少なく、優劣が付く可能性があるので、この優先ディスクモードは有用である。なお、優先ディスクモードが選択されたか否かの情報は、例えば、ペア管理テーブルT2上に、各ボリュームペア毎に記録されてもよい。また、そのテーブルT2上では、各ボリュームペア毎に、どれが優先ディスクとして選択されたボリュームであるかが記録されても良い。
また、例えば、管理モジュール3400は、第一のGUI画面上で「パス切り替え実行」が選択された(例えばボタン16が押された)旨の通知をボリューム管理AP400から受けた場合、第2AP3500に認識させるボリュームをそれのペア相手である別のボリュームに切り替えるための処理を実行しても良い。例えば、管理モジュール3400は、ペア管理テーブルT2における或るボリュームペアについて、第1のボリューム情報群の欄に記録されている全ての情報と、第2のボリューム情報群の欄に記録されている全ての情報とを入れ替えてもよい。そして、管理モジュール3400は、その或るボリュームペアを構成する2つのボリュームにそれぞれ対応する2つのプログラムスタックをリセットし(つまり、構築されたサブコンピュータプログラムを削除し)、新たに、サブコンピュータプログラムを順次起動していってもよい。このような処理を行うことによって、第2AP3500に認識させるボリュームの切り替えが行われても良い。
また、例えば、管理モジュール3400は、第一のGUI画面上で「パス切り替え実行」が選択された(例えばボタン16が押された)旨の通知をボリューム管理AP400から受けた場合、第2AP3500に認識させるボリュームをそれのペア相手である別のボリュームに切り替えるための処理を実行しても良い。
また、例えば、ボリューム管理AP4000は、ユーザによって別の操作が行われた場合、図24に例示する第二のGUI画面をディスプレイ画面370に表示しても良い。この場合、例えば、管理モジュール3400は、第二のGUI画面上で「更新実行」が選択された(例えばボタン14が押された)旨の通知をボリューム管理AP400から受けた場合、所定の条件に合うボリュームについてのプログラムスタックをリセットしても良い。ここで、「所定の条件」とは、例えば、ユーザに指定されたボリューム、アクセス頻度が所定値より低いボリューム等、様々な条件を設定することができる。
以上、本発明の好適な実施形態及び幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態及び実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
本発明の一実施形態の概念を示す。 第1実施例に係るストレージシステムの全体構成図である。 ホストコンピュータHA1内で動作する種々のコンピュータプログラムを示す。 プール管理テーブルの構成例を示す。 ペア管理テーブルの構成例を示す。 ボリュームペアを構成する第1と第2のボリュームのうち第1のボリュームが第2AP3500に対して提供される場合の複数のサブコンピュータプログラム間の連携例を示す。 図6において、第2AP3500に対して提供される論理ボリュームが第1のボリュームから第2のボリュームに切り替わった場合の連携例を示す。 ボリュームが取り得る各種のペア状態とこれら各ペア状態間での遷移を模式的に示す状態遷移図である。 下位ディスク管理フィルタドライバが行う処理流れの一例を示す。 上位ディスク管理フィルタドライバの動作流れの一例を示す。 管理モジュール3400が行うボリューム登録要求応答処理の流れの一例を示す。 管理モジュール3400が行うボリューム認識可否判定処理の流れの一例を示す。 下位ディスク制御情報の構成例を示す。 下位ディスク制御情報25を登録するために下位ディスク管理フィルタドライバ3300によって行われる処理流れの一例を示す。 下位ディスク制御情報の要求に応答して管理モジュール3400が行う処理の流れの一例を示す。 I/O要求を受信した下位ディスク管理フィルタドライバ3300が行う処理流れの一例を示す。 I/O要求の戻り値を記憶制御システム20Aから受信した下位ディスク管理フィルタドライバ3300が行う処理流れの一例を示す。 I/O失敗時判定処理を行うことの要求を下位ディスク管理フィルタドライバ3300から受けた管理モジュール3400が行う処理流れの一例を示す。 下位ディスク管理フィルタドライバ3300の削除を行うその下位ディスク管理フィルタドライバ3300の処理流れを示す。 削除処理の要求を受けた管理モジュール3400が行う処理流れの一例を示す。 図21Aは、本発明の一実施形態の第二の実施例に係るストレージシステムの全体概要を示す。図21Bは、第二の実施例の一つの変形例を示す。 図22Aは、第二の実施例の別の変形例を示す。図22Bは、第二の実施例のまた別の変形例を示す。 第三実施例において、ボリューム管理AP4000が提供する第一のGUI画面の構成例を示す。 第三実施例において、ボリューム管理AP4000が提供する第二のGUI画面の構成例を示す。
符号の説明
2…物理記憶デバイス、3…ターゲットプログラム、210…RAIDグループ、211…ディスクドライブ、212…論理ボリューム、220…ディスク制御部、230…ホストI/F、240…装置間I/F、250…キャッシュメモリ、260…共有メモリ、270…スイッチング制御部、310…CPU、320…メモリ、330…ディスクドライブ、340…ディスクI/F、350…上位ネットワークI/F、360…キーボードスイッチ、370…ディスプレイ、380…バス、CN…ネットワーク、H…ホストコンピュータ、1110…ボリューム管理コンピュータプログラム群、1130…OS、3000…ボリュームモジュール、3100…上位ディスク管理フィルタドライバ、3200…物理ディスクモジュール、3300…下位ディスク管理フィルタドライバ、3400…管理モジュール、3500…第2アプリケーション、3600…コピー制御モジュール、4000…ボリューム管理アプリケーション

Claims (10)

  1. 複数の論理ボリュームのうちの少なくとも一つを提供するボリューム提供システムにおいて、
    複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでおり、
    前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでおり、
    前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられており、
    前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられており、
    前記ボリューム提供システムが、
    1以上のコンピュータプログラムを格納する記憶域と、
    前記記憶域から前記1以上のコンピュータプログラムのうちの少なくとも1つを読み込み、前記読み込んだコンピュータプログラムに従う処理を実行する1以上のプロセッサと
    を備え、
    前記ボリューム提供システムの前記1以上のコンピュータプログラムは、
    論理ボリュームの提供を受けるターゲットプログラムと、
    論理ボリュームに対するインターフェースを前記ターゲットプログラムに提供するボリュームインターフェースプログラムと、
    前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択し、前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するボリュームフィルタプログラムと
    を含んでいる、
    ボリューム提供システム。
  2. 前記1以上のプロセッサの少なくとも1つが、
    前記コピー元ボリュームに対応したコピー元スタックを準備し、
    前記コピー先ボリュームに対応したコピー先スタックを準備し、
    前記コピー元スタックに、前記コピー元ボリュームに対応した第1のボリュームインターフェースプログラムと第1のボリュームフィルタプログラムとを呼び出し、
    前記コピー先スタックに、前記コピー先ボリュームに対応した第2のボリュームインターフェースプログラムと第2のボリュームフィルタプログラムとを呼び出し、
    前記第1のボリュームフィルタプログラムを介して前記ターゲットプログラムに論理ボリュームを提供するようにし、且つ、前記第2のボリュームフィルタプログラムを前記ターゲットプログラムに対して隠蔽し、
    前記コピー元ボリュームを前記ターゲットプログラムに提供する場合、前記第1のボリュームフィルタプログラムから前記第1のボリュームインターフェースプログラムを介して前記ターゲットプログラムに前記コピー元ボリュームを提供し、
    前記コピー先ボリュームを前記ターゲットプログラムに提供する場合、前記第2のボリュームフィルタプログラムから前記第1のボリュームフィルタプログラムを介し、且つ、前記第1のボリュームフィルタプログラムから前記第1のボリュームインターフェースプログラムを介して、前記ターゲットプログラムに前記コピー先ボリュームを提供する、
    請求項1記載のボリューム提供システム。
  3. 前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムは、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を受信し、
    前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムの各々が、どのボリュームフィルタプログラムから論理ボリュームに対してI/O要求を発行するかを表した第1のボリューム管理データを取得し、前記取得した第1のボリューム管理データが自分を表している場合には、前記受信したI/O要求を、自分に対応した論理ボリュームに対して発行し、一方、前記取得した第1のボリューム管理データが他のボリュームフィルタプログラムを表している場合には、前記受信したI/O要求を前記他のボリュームフィルタプログラムに送信する、
    請求項2記載のボリューム提供システム。
  4. 前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムは、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を論理ボリュームに発行した場合、何らかのレスポンスデータを受信し、
    前記第1のボリュームフィルタプログラム及び前記第2のボリュームフィルタプログラムの各々が、どのボリュームフィルタプログラムから上位に対して前記レスポンスデータを送信するかを表した第2のボリューム管理データを取得し、前記取得した第2のボリューム管理データが自分を表している場合には、前記受信したレスポンスデータを、自分の上位に送信し、一方、前記取得した第2のボリューム管理データが他のボリュームフィルタプログラムを表している場合には、前記受信したレスポンスデータを前記他のボリュームフィルタプログラムに送信する、
    請求項2記載のボリューム提供システム。
  5. 前記1以上のコンピュータプログラムには、論理ボリュームからデータを読み出す或いは論理ボリュームにデータを書込むためのI/O要求を所定のプロトコルに従って生成するI/O生成プログラムが更に含まれ、
    前記ボリュームフィルタプログラムには、
    前記I/O生成プログラムによって生成されたI/O要求を、自分の下位に存在する論理ボリューム又は別の下位フィルタサブプログラムに振り分ける下位フィルタサブプログラムと、
    論理ボリュームをボリュームインターフェースに提供するか隠蔽するかを制御する上位フィルタサブプログラムと
    が含まれ、
    前記1以上のプロセッサの少なくとも1つが、前記コピー元スタック及び前記コピー先の各々に、下位から上位にかけて、前記下位フィルタサブプログラム、前記I/O生成プログラム、前記上位フィルタサブプログラム及び前記ボリュームインターフェースを順次読み出して積み上げる、
    請求項2記載のボリューム提供システム。
  6. 前記ボリュームフィルタプログラムを読込んだ少なくとも1つのプロセッサが、前記コピー元ボリュームに関連した異常を検出した場合に、前記ターゲットプログラムに提供する論理ボリュームを、前記コピー元ボリュームから前記コピー先ボリュームに切り替える、
    請求項1記載のボリューム提供システム。
  7. 前記1以上のコンピュータプログラムには、前記ターゲットプログラムに提供される論理ボリュームを別の論理ボリュームに切り替えることのボリューム切替え選択をユーザから受け付けるためのグラフィカルユーザインターフェースを表示する表示プログラムが含まれ、
    前記ボリュームフィルタプログラムを読込んだ少なくとも1つのプロセッサが、前記グラフィカルユーザインターフェースを介してユーザから前記ボリューム切替え選択が入力された場合に、前記ターゲットプログラムに提供する論理ボリュームを、前記コピー元ボリュームから前記コピー先ボリュームに切り替える、
    請求項1記載のボリューム提供システム。
  8. 複数の論理ボリュームのうちの少なくとも一つを提供するボリューム提供方法において、
    前記複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでおり、
    前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでおり、
    前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられており、
    前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられており、
    論理ボリュームの提供を受けるターゲットプログラムと、論理ボリュームに対するインターフェースを前記ターゲットプログラムに提供するボリュームインターフェースプログラムとが存在し、
    前記ボリューム提供方法が、
    前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択するステップと、
    前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するステップと
    を有するボリューム提供方法。
  9. コンピュータに実行させるためのコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体において、
    前記コンピュータが、複数の論理ボリュームのうちの少なくとも一つの提供を受けるターゲットプログラムと、論理ボリュームに対するインターフェースを前記ターゲットプログラムに提供するボリュームインターフェースプログラムとを有し、
    複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでおり、
    前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでおり、
    前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられており、
    前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられており、
    前記コンピュータプログラムは、
    前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択するステップと、
    前記選択した論理ボリュームを、前記ボリュームインターフェースプログラムを介して前記ターゲットプログラムに提供するステップと
    をコンピュータに実行させるためのコンピュータプログラムである、
    記録媒体。
  10. 複数の論理ボリュームのうちの少なくとも一つを提供するボリューム提供システムにおいて、
    複数の論理ボリュームが、二以上の物理ディスク上に準備され、データのコピー元となるコピー元ボリュームと、データのコピー先となるコピー先ボリュームとを含んでおり、
    前記二以上の物理ディスクが、一以上の第一物理ディスクと、前記第一の物理ディスクとは別の一以上の第二物理ディスクとを含んでおり、
    前記コピー元ボリュームが、前記一以上の第一物理ディスクに備えられており、
    前記コピー先ボリュームが、前記一以上の第二物理ディスクに備えられており、
    前記ボリューム提供システムが、
    論理ボリュームの提供を受けるボリューム受け手段と、
    論理ボリュームに対するインターフェースを前記ボリューム受け手段に提供するボリュームインターフェース手段と、
    前記コピー元ボリューム及び前記コピー先ボリュームのうちの一方の論理ボリュームを選択し、前記選択した論理ボリュームを、前記ボリュームインターフェース手段を介して前記ボリューム受け手段に提供するボリュームフィルタ手段と
    を備えるボリューム提供システム。
JP2004188709A 2004-06-25 2004-06-25 ボリューム提供システム及び方法 Expired - Fee Related JP4488807B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004188709A JP4488807B2 (ja) 2004-06-25 2004-06-25 ボリューム提供システム及び方法
US10/920,974 US7124242B2 (en) 2004-06-25 2004-08-18 Volume providing system and method
US11/436,265 US7237063B2 (en) 2004-06-25 2006-05-17 Volume providing system and method
US11/810,416 US20070239933A1 (en) 2004-06-25 2007-06-04 Volume providing system and method
US12/469,003 US7925832B2 (en) 2004-06-25 2009-05-20 Volume providing system calling two processes executing the same program code and exchanging information between the two processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004188709A JP4488807B2 (ja) 2004-06-25 2004-06-25 ボリューム提供システム及び方法

Publications (2)

Publication Number Publication Date
JP2006011874A true JP2006011874A (ja) 2006-01-12
JP4488807B2 JP4488807B2 (ja) 2010-06-23

Family

ID=35507443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004188709A Expired - Fee Related JP4488807B2 (ja) 2004-06-25 2004-06-25 ボリューム提供システム及び方法

Country Status (2)

Country Link
US (4) US7124242B2 (ja)
JP (1) JP4488807B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003719A (ja) * 2007-06-21 2009-01-08 Hitachi Ltd 連携して動作する複数のアプリケーションが使用するデータのバックアップ環境の設定を行う計算機及び方法
JP2009032014A (ja) * 2007-07-26 2009-02-12 Hitachi Ltd ストレージシステム及びこれの管理方法
JP2009217700A (ja) * 2008-03-12 2009-09-24 Toshiba Corp ディスクアレイ装置及び物理配置最適化方法
JP2013508882A (ja) * 2009-10-26 2013-03-07 アマゾン テクノロジーズ インコーポレイテッド 複製されたデータインスタンスのプロビジョニングおよび管理
JP2013508884A (ja) * 2009-10-26 2013-03-07 アマゾン テクノロジーズ インコーポレイテッド 複製されたデータインスタンスのモニタリング
US8499098B2 (en) 2009-10-09 2013-07-30 Hitachi, Ltd. Storage system and storage system communication path management method
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9218245B1 (en) 2009-03-31 2015-12-22 Amazon Technologies, Inc. Cloning and recovery of data volumes
WO2015198390A1 (ja) * 2014-06-24 2015-12-30 株式会社日立製作所 ストレージシステム
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US10127149B2 (en) 2009-03-31 2018-11-13 Amazon Technologies, Inc. Control service for data management

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004107213A1 (en) * 2003-05-31 2004-12-09 Nhn Corporation A method of managing websites registered in search engine and a system thereof
US7328325B1 (en) * 2004-09-27 2008-02-05 Symantec Operating Corporation System and method for hierarchical storage mapping
WO2006057038A1 (ja) * 2004-11-25 2006-06-01 Fujitsu Limited Raid管理プログラムおよびraid管理方法
US7165158B1 (en) * 2005-08-17 2007-01-16 Hitachi, Ltd. System and method for migrating a replication system
JP4718285B2 (ja) * 2005-09-22 2011-07-06 株式会社日立製作所 ファイル管理機能を備えたコンピュータシステム、ストレージ装置およびファイル管理方法
JP4920291B2 (ja) * 2006-04-18 2012-04-18 株式会社日立製作所 計算機システム、アクセス制御方法及び管理計算機
US8656098B1 (en) 2007-07-30 2014-02-18 Hewlett-Packard Development Company, L.P. System and method for activating a raid disk
US8214341B2 (en) * 2008-03-31 2012-07-03 International Business Machines Corporation Determining when to apply writes received to data units being transferred to a secondary storage
JP4616898B2 (ja) 2008-05-07 2011-01-19 株式会社日立製作所 ストレージ装置制御方法および計算機システム
US20100039214A1 (en) * 2008-08-15 2010-02-18 At&T Intellectual Property I, L.P. Cellphone display time-out based on skin contact
US8913991B2 (en) 2008-08-15 2014-12-16 At&T Intellectual Property I, L.P. User identification in cell phones based on skin contact
TWI451243B (zh) * 2009-01-23 2014-09-01 Infortrend Technology Inc 單一架構下進行資料卷複製的方法及其裝置
US20100191907A1 (en) * 2009-01-26 2010-07-29 Lsi Corporation RAID Converter and Methods for Transforming a First RAID Array to a Second RAID Array Without Creating a Backup Copy
KR20110106594A (ko) * 2010-03-23 2011-09-29 주식회사 히타치엘지 데이터 스토리지 코리아 광디스크 드라이브 아카이브 시스템에서의 패리티 드라이브 설정 장치 및 방법
US8489809B2 (en) 2010-07-07 2013-07-16 International Business Machines Corporation Intelligent storage provisioning within a clustered computing environment
US8473565B2 (en) * 2010-09-10 2013-06-25 International Business Machines Corporation Abstracting special file interfaces to concurrently support multiple operating system levels
US8473462B1 (en) * 2011-04-21 2013-06-25 Symantec Corporation Change tracking for shared disks
KR102193547B1 (ko) * 2013-05-22 2020-12-22 삼성전자주식회사 입력 장치, 디스플레이 장치 및 입력 장치 제어 방법
US10754822B1 (en) * 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619635A (ja) * 1992-07-01 1994-01-28 Mitsubishi Electric Corp 2重化ディスク制御装置
JPH096544A (ja) * 1995-06-19 1997-01-10 Toshiba Corp コンピュータシステムのディスクドライバ
JPH11327803A (ja) * 1998-05-14 1999-11-30 Hitachi Ltd データ多重化制御方法
JP2002236560A (ja) * 2000-12-07 2002-08-23 Hitachi Ltd 計算機システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5835954A (en) 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US6067602A (en) * 1997-06-23 2000-05-23 Sun Microsystems, Inc. Multi-stack-caching memory architecture
JP2927282B2 (ja) 1997-11-06 1999-07-28 日本電気株式会社 ディスクアレイ装置
US6145066A (en) 1997-11-14 2000-11-07 Amdahl Corporation Computer system with transparent data migration between storage volumes
US6260120B1 (en) * 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6363385B1 (en) 1999-06-29 2002-03-26 Emc Corporation Method and apparatus for making independent data copies in a data processing system
US6757797B1 (en) 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US6976139B2 (en) * 2001-11-14 2005-12-13 Emc Corporation Reversing a communication path between storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619635A (ja) * 1992-07-01 1994-01-28 Mitsubishi Electric Corp 2重化ディスク制御装置
JPH096544A (ja) * 1995-06-19 1997-01-10 Toshiba Corp コンピュータシステムのディスクドライバ
JPH11327803A (ja) * 1998-05-14 1999-11-30 Hitachi Ltd データ多重化制御方法
JP2002236560A (ja) * 2000-12-07 2002-08-23 Hitachi Ltd 計算機システム

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003719A (ja) * 2007-06-21 2009-01-08 Hitachi Ltd 連携して動作する複数のアプリケーションが使用するデータのバックアップ環境の設定を行う計算機及び方法
US8452923B2 (en) 2007-07-26 2013-05-28 Hitachi, Ltd. Storage system and management method thereof
JP2009032014A (ja) * 2007-07-26 2009-02-12 Hitachi Ltd ストレージシステム及びこれの管理方法
US8151047B2 (en) 2007-07-26 2012-04-03 Hitachi, Ltd. Storage system and management method thereof
JP2009217700A (ja) * 2008-03-12 2009-09-24 Toshiba Corp ディスクアレイ装置及び物理配置最適化方法
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US10798101B2 (en) 2009-03-31 2020-10-06 Amazon Technologies, Inc. Managing security groups for data instances
US11914486B2 (en) 2009-03-31 2024-02-27 Amazon Technologies, Inc. Cloning and recovery of data volumes
US10761975B2 (en) 2009-03-31 2020-09-01 Amazon Technologies, Inc. Control service for data management
US11132227B2 (en) 2009-03-31 2021-09-28 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9218245B1 (en) 2009-03-31 2015-12-22 Amazon Technologies, Inc. Cloning and recovery of data volumes
US11550630B2 (en) 2009-03-31 2023-01-10 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US11385969B2 (en) 2009-03-31 2022-07-12 Amazon Technologies, Inc. Cloning and recovery of data volumes
US11770381B2 (en) 2009-03-31 2023-09-26 Amazon Technologies, Inc. Managing security groups for data instances
US11379332B2 (en) 2009-03-31 2022-07-05 Amazon Technologies, Inc. Control service for data management
US10127149B2 (en) 2009-03-31 2018-11-13 Amazon Technologies, Inc. Control service for data management
US10162715B1 (en) 2009-03-31 2018-12-25 Amazon Technologies, Inc. Cloning and recovery of data volumes
US10225262B2 (en) 2009-03-31 2019-03-05 Amazon Technologies, Inc. Managing security groups for data instances
US10282231B1 (en) 2009-03-31 2019-05-07 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US10977226B2 (en) 2009-10-07 2021-04-13 Amazon Technologies, Inc. Self-service configuration for data environment
US8499098B2 (en) 2009-10-09 2013-07-30 Hitachi, Ltd. Storage system and storage system communication path management method
JP2014053050A (ja) * 2009-10-26 2014-03-20 Amazon Technologies Inc 複製されたデータインスタンスのプロビジョニングおよび管理
US11321348B2 (en) 2009-10-26 2022-05-03 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US9806978B2 (en) 2009-10-26 2017-10-31 Amazon Technologies, Inc. Monitoring of replicated data instances
US9336292B2 (en) 2009-10-26 2016-05-10 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US11477105B2 (en) 2009-10-26 2022-10-18 Amazon Technologies, Inc. Monitoring of replicated data instances
JP2013508884A (ja) * 2009-10-26 2013-03-07 アマゾン テクノロジーズ インコーポレイテッド 複製されたデータインスタンスのモニタリング
US11907254B2 (en) 2009-10-26 2024-02-20 Amazon Technologies, Inc. Provisioning and managing replicated data instances
JP2013508882A (ja) * 2009-10-26 2013-03-07 アマゾン テクノロジーズ インコーポレイテッド 複製されたデータインスタンスのプロビジョニングおよび管理
WO2015198390A1 (ja) * 2014-06-24 2015-12-30 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
US20070239933A1 (en) 2007-10-11
US7925832B2 (en) 2011-04-12
US20090235024A1 (en) 2009-09-17
US7124242B2 (en) 2006-10-17
JP4488807B2 (ja) 2010-06-23
US7237063B2 (en) 2007-06-26
US20060206678A1 (en) 2006-09-14
US20050289310A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4488807B2 (ja) ボリューム提供システム及び方法
US6598174B1 (en) Method and apparatus for storage unit replacement in non-redundant array
US7334029B2 (en) Data migration method
US7480780B2 (en) Highly available external storage system
US6571354B1 (en) Method and apparatus for storage unit replacement according to array priority
JP4671738B2 (ja) ストレージシステム及び記憶領域割当て方法
JP5218284B2 (ja) 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
US7478267B2 (en) Access control device and interface installed in same
JP2006011581A (ja) ストレージシステム及びストレージシステムの制御方法
JP2007066162A (ja) ストレージシステム及びストレージシステムの管理方法
JP2007058728A (ja) データ移行方式
JP2006127217A (ja) 計算機システムおよび計算機システムの制御方法
JP4783076B2 (ja) ディスクアレイ装置及びその制御方法
JP2015191385A (ja) 情報処理装置、ストレージシステム、およびプログラム
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
US7886186B2 (en) Storage system and management method for the same
JP2007286806A (ja) 記憶システム及びデータ保存方法
JP6708928B2 (ja) ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム
JP5272185B2 (ja) 計算機システム及びストレージシステム
JP2014048883A (ja) ストレージシステム、仮想化制御装置、情報処理装置、および、ストレージシステムの制御方法
JP7506707B2 (ja) 記憶システム及び障害対処方法
JP5640480B2 (ja) データ管理プログラム、ストレージシステム、およびデータ管理方法
JP4893731B2 (ja) 通信制御装置
JP5947974B2 (ja) 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070425

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100330

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees