JP2006119829A - 記憶制御装置及び記憶制御方法 - Google Patents

記憶制御装置及び記憶制御方法 Download PDF

Info

Publication number
JP2006119829A
JP2006119829A JP2004305776A JP2004305776A JP2006119829A JP 2006119829 A JP2006119829 A JP 2006119829A JP 2004305776 A JP2004305776 A JP 2004305776A JP 2004305776 A JP2004305776 A JP 2004305776A JP 2006119829 A JP2006119829 A JP 2006119829A
Authority
JP
Japan
Prior art keywords
address
storage
external
internal
information
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
JP2004305776A
Other languages
English (en)
Inventor
Masaru Tsukada
大 塚田
Yoshihiro Azumi
義弘 安積
Toshinori Sakaki
豪紀 榊
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 JP2004305776A priority Critical patent/JP2006119829A/ja
Priority to US11/009,033 priority patent/US20060085621A1/en
Publication of JP2006119829A publication Critical patent/JP2006119829A/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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0638Organizing or formatting or addressing of data
    • 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]

Abstract

【課題】 記憶制御装置と外部の記憶制御装置とを含んだ記憶システムの構築を容易に行うことができるようにする。
【解決手段】 記憶制御装置(20)は、ホスト装置(10)と、外部記憶デバイス(42)を有する外部記憶制御装置(40)とに接続される。外部記憶制御装置(40)は、外部記憶デバイスのアドレスである外部アドレスと、記憶制御装置に設定される内部記憶デバイスのアドレスである内部アドレスとのうちの少なくとも一方を表すアドレス情報を記憶する。記憶制御装置は、外部記憶制御装置からアドレス情報を受信し、そのアドレス情報に基づいて、内部アドレスと外部アドレスとの対応付けを表すアドレス対応情報(3)を生成し、内部アドレスをアクセス先としたライト/リード命令をホスト装置から受信した場合、アドレス対応情報を参照することで、その内部アドレスに対応付けられている外部アドレスを特定し、その特定された外部アドレスにアクセスする。
【選択図】図1

Description

本発明は、外部の記憶制御装置に接続される記憶制御装置及びその記憶制御装置において実現される記憶制御方法に関する。
例えば特開2004−5370号公報に開示されているように、記憶制御装置に外部の記憶制御装置を連結し、記憶制御装置と外部の記憶制御装置とを含んだ一つの記憶システムを構築する技術が知られている。具体的には、例えば、ホストコンピュータと第一の記憶制御装置とが第一の通信経路を介して接続され、且つ、第一の記憶制御装置と第二の記憶制御装置とが第二の通信経路を介して接続される。第一の記憶制御装置は、第一の通信経路を介してホストコンピュータから第一のデータ入出力要求を受信し、その第一のデータ入出力要求が自身の担当でないと判断した場合には、その第一のデータ入出力要求に対応する第二のデータ入出力要求を第二の通信手段を介して第二の記憶制御装置に送信する。この場合、第二の記憶制御装置が、第二のデータ入出力要求を受信し、その要求に対応するデータ入出力処理を実行する。
特開2004−5370号公報
この種の技術では、例えば、第二の記憶制御装置に故障が発生した場合、第二の記憶制御装置を第一の記憶制御装置から切り離し、別の第二の記憶制御装置を第一の記憶制御装置に接続する作業が行われる。このような復旧作業を容易に行うことができれば、ユーザ(例えば、第一の記憶制御装置の管理者)にとって便利である。
従って、本発明の目的の一つは、記憶制御装置と外部の記憶制御装置とを含んだ記憶システムの構築を容易に行うことができるようにすることにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明の第一の側面に従う記憶制御装置は、ライト命令又はリード命令であるライト/リード命令を送信するホスト装置と、外部記憶デバイスを有する外部記憶制御装置とに接続することができるものである。前記外部記憶制御装置は、外部記憶デバイスのアドレスである外部アドレスと、前記記憶制御装置に設定される内部記憶デバイスのアドレスである内部アドレスとのうちの少なくとも一方を表すアドレス情報を記憶し、且つ、前記記憶しているアドレス情報を前記記憶制御装置に送信する。前記記憶制御装置は、記憶資源と、制御部とを備える。前記制御部は、前記外部記憶制御装置から前記アドレス情報を受信し、前記受信したアドレス情報に基づいて、内部アドレスと外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成する。また、前記制御部は、前記ホスト装置から前記ライト/リード命令を受信し、前記記憶資源上のアドレス対応情報を参照することで、前記内部アドレスに対応付けられている外部アドレスを特定し、前記ライト/リード命令に従うアクセス先が前記対応付けられた内部アドレスの場合、前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信する。
記憶制御装置に接続される外部記憶制御装置の数は、1であっても2以上であってもよい。同様に、存在する外部記憶デバイスの数も、1であっても2以上であってもよい。
「外部記憶デバイス」としては、例えば、物理的な記憶デバイスであっても論理的な記憶デバイスであっても良い。また、「外部記憶制御装置」としては、例えば、ハードディスクを備えるハードディスクドライブであっても良いし、複数の物理記憶デバイスを備えるディスクアレイ装置であってもよい。
「内部記憶デバイス」としては、例えば、物理的な記憶デバイス或いは論理的な記憶デバイスのように実体のある記憶デバイスであっても良いし、実体の無い仮想的な記憶デバイスであっても良い。具体的には、例えば、実体のある記憶デバイスの場合、記憶制御装置は、その記憶デバイスにはデータを書くことができ、一方、仮想的な記憶デバイスの場合、それは仮想的なものなのでデータを書くことができず、その仮想的な記憶デバイスに外部記憶デバイスが対応付けられていれば、その外部記憶デバイスにデータを書くことができる。
「制御部」は、マイクロプロセッサであっても良いし、マイクロプロセッサを備えた回路基板等であっても良い。
「記憶資源」は、論理的な資源であっても良いし物理的な資源であっても良い。後者の場合は、例えば、記憶資源は、メモリであっても良いし、ハードディスクであっても良い。
「記憶制御装置」は、例えば、パーソナルコンピュータであっても良いし、外部記憶制御装置と同様の記憶制御装置であっても良い。記憶制御装置は、必ずしも、実体のある記憶デバイスを備えていなくても良い。
この記憶制御装置の第一の実施態様では、前記アドレス情報は、前記内部アドレスを表す内部アドレス情報を含み、前記外部記憶デバイスに格納されている。この場合、前記制御部が、前記外部記憶デバイスから読み出されたアドレス情報を受信し、前記外部記憶デバイスの外部アドレスと、前記受信したアドレス情報中の内部アドレス情報が表す内部アドレスとの対応付けを表すアドレス対応情報を生成する。
なお、この第一の実施態様では、複数の外部記憶デバイスが存在する場合には、各記憶デバイス毎にアドレス情報が格納されてもよいし、一つの外部記憶デバイスに複数のアドレス情報が格納されても良い。前者の場合、記憶制御装置は、アドレス情報の読出し元の外部記憶デバイスの外部アドレスと、そのアドレス情報に含まれている内部アドレス情報が表す内部アドレスとを対応付けることができる。一方、後者の場合、複数のアドレス情報の各々には、内部アドレス情報の他に、その情報が表す内部アドレスに対応付けられる外部アドレスを表す外部アドレス情報が含まれており、記憶制御装置は、受信したアドレス情報に含まれている内部アドレス情報と外部アドレス情報とに基づいて、内部アドレスと外部アドレスとの対応付けを行うことができる。
この記憶制御装置の第二の実施態様では、前記制御装置は、一以上の外部記憶制御装置と接続することができる。前記一以上の外部記憶制御装置は、複数の外部記憶デバイスを備える。一つの外部記憶制御装置が複数の外部記憶デバイスを備えていても良いし、各外部記憶制御装置が少なくとも一つの外部記憶デバイスを備えていても良い。前記記憶資源が、複数の記憶デバイスにそれぞれ対応した複数の内部アドレスを表す内部デバイス情報を記憶している。この場合、前記制御部が、複数の外部記憶デバイスにそれぞれ対応した複数の外部アドレスを特定するための外部デバイス情報を入力して前記記憶資源に書込む。外部デバイス情報は、例えば、ユーザの手作業によって入力されたものでもよいし、外部記憶制御装置に送信した特定のコマンドの応答として受信したものでもよい。前記制御部は、前記外部デバイス情報と前記アドレス情報とに基づいて、前記複数の外部アドレスのうち内部アドレスに対応付けられない未対応の外部アドレスがどれであるかを前記記憶資源に記憶させる。また、前記制御部は、前記内部デバイス情報と前記アドレス情報とに基づいて、前記複数の内部アドレスのうち外部アドレスが対応付けられない未対応の内部アドレスがどれであるかを前記記憶資源に記憶させる。前記制御部は、前記記憶資源に記憶されている未対応の内部アドレスがアクセス先である前記ライト/リード命令を前記ホスト装置から受信した場合、前記記憶資源に記憶されている一以上の未対応の外部アドレスの中から少なくとも一つの外部アドレスを選択し、選択された外部アドレスにアクセスする。また、前記制御部は、前記選択された外部アドレスと、前記アクセス先の未対応の内部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成する。
この記憶制御装置の第三の実施態様では、前記記憶制御装置が、実体のある内部記憶デバイスを備える。前記制御部は、前記受信したアドレス情報に基づいて内部アドレスと外部アドレスとの対応付けを行う場合、その内部アドレスが前記実体のある内部記憶デバイスのアドレスならば、前記内部記憶デバイスと前記外部記憶デバイスとの対応付けを表すデバイス対応情報を前記記憶資源上に生成する。また、前記制御部は、前記記憶資源上に生成されたデバイス対応情報に基づいて、前記実体のある内部記憶デバイスに書かれたデータを、前記実体のある内部記憶デバイスに対応付けられた外部記憶デバイスに書き込む、或いは、前記外部記憶デバイスに書き込まれたデータを、その外部記憶デバイスに対応付けられた前記実体のある内部記憶デバイスに書き込む。
この記憶制御装置の第四の実施態様では、前記第三の実施態様において、前記アドレス情報は、前記外部記憶デバイスの記憶容量を表す外部記憶容量情報と、前記実体のある内部記憶デバイスの記憶容量を表す内部記憶容量情報とを含む。この場合、前記制御部は、前記受信したアドレス情報中の外部記憶容量情報が表す記憶容量が、前記内部記憶容量情報が表す記憶容量以上である場合に、前記デバイス対応情報を生成する。
この記憶制御装置の第五の実施態様では、前記第三の実施態様において、前記アドレス情報は、内部アドレスを表す内部アドレス情報を含む。前記記憶資源は、前記実体のある記憶デバイスの内部アドレスを表す別の内部アドレス情報を記憶する。前記制御部は、前記受信したアドレス情報に含まれている内部アドレス情報が前記別の内部アドレス情報に適合しない場合には、前記内部アドレス情報に基づいて仮想的な内部記憶デバイスを設定する。前記制御部は、前記設定された仮想的な内部記憶デバイスも、前記実体のある内部記憶デバイスも、前記制御装置が有する内部記憶デバイスとして前記ホスト装置に提供する。
この第五の実施態様では、例えば、前記制御部は、前記適合しない内部アドレス情報が表す内部アドレスを記憶資源に書込み、且つ、その内部アドレスを有する記憶デバイスを仮想的な記憶デバイスであるとして記憶資源に登録する。記憶資源には、その他に、実体のある内部記憶デバイスに関する情報(例えば内部アドレス)も登録されている。制御部は、ホスト装置に対し、仮想的な記憶デバイスも、実体のある内部記憶デバイスも、記憶制御装置が備える記憶デバイスとして提供する。この場合、ホスト装置は、提供された記憶デバイスに対して、ライト/リード命令を発行することができる。前記制御部は、ライト/リード命令を受信した場合、アクセス先が実体のある内部記憶デバイスの場合には、その内部記憶デバイスに対してデータの読み書きを行うことができる。また、前記制御部は、ライト/リード命令を受信した場合、アクセス先が実体の無い仮想的な記憶デバイスの場合には、アドレス対応情報を参照して、その記憶デバイスに対応付けられた外部記憶デバイスに対して、データの読み書きを行うことができる。もし、アクセス先が仮想的な記憶デバイスであるにも関わらず、その記憶デバイスに外部記憶デバイスが対応付けられていない場合には、前記制御部は、対応付けのされていない外部記憶デバイスを特定し、特定された外部記憶デバイスの外部アドレスを、上記仮想的な記憶デバイスの内部アドレスに対応付けることができる。
この記憶制御装置の第六の実施態様では、前記アドレス情報は、外部アドレス及びローカルアドレスのうちの少なくとも一方に最後にアクセスされた時刻を表す最終アクセス時刻情報を含む。前記制御部は、前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信することを行った場合、その外部アドレスに対応したアドレス情報に含まれている最終アクセス時刻情報を更新する。前記制御部は、前記記憶資源に記憶されている複数の前記アクセス対応情報のうち、前記最終アクセス時刻情報が表す時刻が最も古いアドレス情報に対応したアドレス対応情報を消去する。
この記憶制御装置の第七の実施態様では、前記アドレス情報は、複数の内部アドレスを表す複数の内部アドレス情報を含む。前記制御部は、前記受信したアドレス情報中の複数の内部アドレス情報がそれぞれ表す複数の内部アドレスを、同一の外部アドレスに対応付け、その対応付けを表すアドレス対応情報を前記記憶資源上に生成する。
この記憶制御装置の第八の実施態様では、前記外部記憶制御装置は、同一の内部アドレスを表す情報を含んだ複数のアドレス情報を記憶している。前記制御部は、前記複数のアドレス情報を受信した場合、同一の内部アドレスと、複数の外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成する。
この記憶制御装置の第九の実施態様では、前記制御部は、内部記憶デバイス又は外部記憶デバイスがニアラインか否かを判断し、その判断結果が肯定的である場合に、その内部記憶デバイスの内部アドレスとその外部記憶デバイスの外部アドレスとの対応付けを表すアドレス対応情報を生成する。
この第九の実施態様では、前記制御部は、例えば、各内部記憶デバイス毎に、ニアラインの対象か否かを記憶資源に記録する。これは、例えば、前記制御部が、各内部記憶デバイス毎に、アクセス頻度(単位時間当たりのアクセス回数)を管理し、アクセス頻度が所定値以上の場合には、その内部記憶デバイスはニアラインではないと判断し、それが所定値未満の場合には、その内部記憶デバイスはニアラインであると判断し、その判断結果に基づいて、記憶資源を更新することができる。また、例えば、前記制御部が、ユーザによる手作業に応答して(例えば、記憶制御装置に接続されたコンピュータマシンからの入力に基づいて)、ユーザ所望の内部記憶デバイスに対してニアラインであることを記憶資源上で設定することができる。また、例えば、前記制御部が、内部記憶デバイス又は外部記憶デバイスのデータを参照し、そのデータの更新頻度が所定値以上か否かで、その内部記憶デバイスがニアラインであるか否かを判断してもよい。
本発明の第二の側面に従う方法は、ライト命令又はリード命令であるライト/リード命令を送信するホスト装置と、外部記憶デバイスを有する外部記憶制御装置とに接続することができる記憶制御装置において実現される記憶制御方法である。前記外部記憶制御装置は、外部記憶デバイスと、前記記憶制御装置に設定される内部記憶デバイスとのうちの少なくとも一方のアドレスを表すアドレス情報を記憶し、且つ、前記記憶しているアドレス情報を前記制御装置に送信する。この場合、前記記憶制御方法は、前記外部記憶制御装置から前記アドレス情報を受信するステップと、前記受信したアドレス情報に基づいて、内部アドレスと外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成するステップと、前記ホスト装置から前記ライト/リード命令を受信し、前記記憶資源上のアドレス対応情報を参照することで、前記内部アドレスに対応付けられている外部アドレスを特定するステップと、前記ライト/リード命令に従うアクセス先が前記対応付けられた内部アドレスの場合、前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信するステップとを有する。
上述した記憶制御装置及び記憶制御方法は、メインフレーム系の記憶システムにも、オープン系の記憶システムにも適用することができる。
本発明によれば、記憶制御装置と外部の記憶制御装置とを含んだ記憶システムの構築を容易に行うことができる。
以下、図面を参照して、本発明の一実施形態に係る幾つかの実施例について説明する。
図1は、本発明の一実施形態の第一実施例に係る記憶システムの構成を示す。なお、以下の説明では、第一の記憶制御装置を単に「記憶制御装置」と称し、第二の記憶制御装置を「外部記憶制御装置」と称することがある。また、図1では、第一の記憶制御装置20に接続される第二の記憶制御装置40の台数は一つであるが、第一の記憶制御装置20には複数の第二記憶制御装置40を接続することもできる。
この記憶システム100には、一以上の論理記憶デバイス(論理ボリュームとも言う、以下、「VOL」と略記する)31を備える第一の記憶制御装置20と、一以上のVOL42を備える第二の記憶制御装置40とが備えられる。
第一の記憶制御装置20には、第一の通信ネットワークCN1を介してホスト装置10が接続され、第二の通信ネットワークCN2を介して第二の記憶制御装置40が接続され、第三の通信ネットワークCN3を介して管理サーバ14が接続される。
ホスト装置10は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置10は、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等の情報入力装置(図示せず)と、例えば、モニタディスプレイやスピーカー等の情報出力装置(図示せず)とを備えている。さらに、ホスト装置10には、例えば、第一の記憶制御装置20が提供する記憶領域を使用するデータベースソフトウェア等のアプリケーションプログラム11と、第一の通信ネットワークCN1介して第一の記憶制御装置20にアクセスするためのアダプタ12とが設けられている。
また、ホスト装置10は、ストレージ管理アプリケーション13を備えている。ストレージ管理アプリケーション13は、例えば、図示しないCPUに読み込まれて動作するコンピュータプログラムであり、第一の記憶制御装置20に指令(制御データ)を出し、第一の記憶制御装置20の作動を制御するものである。具体的には、例えば、ストレージ管理アプリケーション13は、第一の記憶制御装置20で管理している複数のVOL31から、コピー元のVOL31(又は32)とコピー先のVOL31(又は32)を選択し、コピー元からコピー先へデータをコピーすることを第一の記憶制御装置20に行わせることができる。
ホスト装置10は、第一の通信ネットワークCN1を介して、第一の記憶制御装置20に対してデータの入出力を行うことができる。ホスト装置10は、例えば、メインフレーム系のコンピュータマシンとすることができる。ホスト装置10は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って通信を行うことができる。
第一の記憶制御装置20は、例えば、ディスクアレイサブシステムとして構成されるものである。但し、これに限らず、第一の記憶制御装置20を、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成することもできる。これは、第二の記憶制御装置40についても同様である。
第一の記憶制御装置20は、コントローラ部と、一又は複数の物理記憶デバイス400とを備える。コントローラ部は、例えば、複数(例えば二つ)のチャネルアダプタ(CHA)2A、2Bと、複数のディスクアダプタ(DKA)22と、サービスプロセッサ(SVP)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
CHA2A、2Bは、第一の記憶制御装置20に接続された外部の装置(例えば、ホスト装置10或いは第二の記憶制御装置40)との間のデータ通信を行うものである。各CHA2A,2Bは、外部の装置と通信を行うための通信ポート21A、21Bを備えている。この実施例では、CHA2Aは、通信ポート21A及び第一の通信ネットワークCN1を介してホスト装置10に接続されており、CHA2Bは、通信ポート21B及び第二の通信ネットワークCN2を介して第二の記憶制御装置40に接続されている。CHA2A、2Bは、それぞれMP(Micro Processor)801やメモリ等を備えたマイクロコンピュータシステムとして構成されており、外部の装置から受信した各種コマンドを解釈して実行する。例えば、CHA2A、2Bには、それぞれを識別するためのネットワークアドレスが割り当てられている。また、CHA2A、2Bは、MP801に読み込まれて稼動する制御プログラム800により動作することができる。この制御プログラム800は、例えば、後述する接続処理やデータ処理を行うことができる。
各DKA22は、物理記憶デバイス400との間のデータ授受を行うものである。各DKA22は、物理記憶デバイス400に接続するための通信ポート22Aを備えている。また、各DKA22は、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。各DKA22は、CHA2A、2Bからの指示に従って、物理記憶デバイス400にデータを書き込んだり、物理記憶デバイス400からデータを読み出したりする。物理記憶デバイス400との間でデータ入出力を行う場合、各DKA22は、論理的なアドレスを物理的なアドレスに変換する。各DKA22は、物理記憶デバイス400がRAIDに従って管理されている場合は、RAID構成に応じたデータアクセスを行う。
SVP23は、第一の記憶制御装置20の保守又は管理のために操作されるコンピュータ装置であり、例えば、ノート型のパーソナルコンピュータである。SVP23は、装置20内の障害発生を監視してディスプレイ画面(図示せず)に表示したり、ストレージ管理アプリケーションからの指令に基づいて、VOL31を備える物理的な記憶デバイス(例えばハードディスクドライブ)の閉塞処理等を指示したりすることができる。SVP23には、第三の通信ネットワークCN3を介して管理サーバ14が接続されている。SVP23は、第三の通信ネットワークCN3を介して、管理サーバ14からデータ或いは命令を受信することができる。
キャッシュメモリ24は、ホスト装置10から受信したデータや、VOL31から読み出されたデータ等を一時的に記憶するものである。共有メモリ25には、第一の記憶制御装置20の動作を制御するための情報や、各VOL31と各物理記憶デバイス400との対応関係を表す情報等が格納される。キャッシュメモリ24と共有メモリ25は、図示のように別々のメモリで構築されても良いし、同一のメモリ上で論理的に分割されることにより構築されても良い。
接続部26は、各CHA21,各DKA22,SVP23,キャッシュメモリ24,共有メモリ25を相互に接続させる。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバススイッチ等のような高速バスとして構成することができる。また、LAN、SANのような通信ネットワークでも構成でき、さらに、前述の高速バスとともに複数のネットワークでも構成することができる。
物理記憶デバイス400としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のようなデバイスを用いることができる。一又は複数の物理記憶デバイス400上には、一以上のVOL31が用意される。なお、以下、説明を分かり易くするために、第一の記憶制御装置20に備えられるVOL31を「内部VOL31」と言い、それに対し、第二の記憶制御装置40に備えられるVOL42を「外部VOL42」と言うことがある。
図1に点線で示される参照番号32は、ホスト装置10(又は管理サーバ14)に対して提供される仮想的な内部VOLを示す。別の言い方をすれば、参照番号32は、第二の記憶制御装置40の有する外部VOL42を仮想的に第一の記憶制御装置20側に取り込んだ状態を示すものである。即ち、本実施例では、第一の記憶制御装置20から見て外部に存在するVOL42が、第一の記憶制御装置20の内部に備えられるVOL32として、ホスト装置10(又は管理サーバ14)に提供される。別の言い方をすれば、第一の記憶制御装置20は、第二の記憶制御装置40の有するVOL42を自己のVOL32としてホスト装置10に提供することができるものであるから、自己が直接支配するローカルなVOL31(換言すれば、そのVOL31を備えるための物理記憶デバイス400)を有していなくてもよい。つまり、第一の記憶制御装置20がVOL31を全く備えていなくても、ホスト装置10に対し、記憶資源を提供することができる。
第二の記憶制御装置40は、第一の記憶制御装置20と同様の構成をとることができる。例えば、第二の記憶制御装置40は、通信ポート41とVOL42とを備えている。このほか、CHAやDKA等を備えることもできる。第二の記憶制御装置40は、第二の通信ネットワークCN2を介して第一の記憶制御装置20に接続されており、外部VOL42は、第一の記憶制御装置20の内部VOL32として扱われるようになっている。
以上が、本実施例に係る記憶システム100の概要である。第一の記憶制御装置20は、共有メモリ25(又はキャッシュメモリ24)上で、複数の内部VOLの各々について、どの内部VOLが実体のある内部VOL31で、どの内部VOLが実体のない仮想的な内部VOL32であるかを管理している。CHA2Aは、或る内部VOL31に対するI/O要求(入出力要求、例えばライト命令或いはリード命令)を受けた場合、DKA22Aに、その或る内部VOL31にアクセスさせる。また、CHA2Aは、或る仮想内部VOL32に対するI/O要求を受けた場合、その仮想内部VOL32に対応した外部VOL42を特定し、CHA2Bに、特定された外部VOL42にアクセスさせる。
図2Aは、共有メモリ25に格納される情報の一例を示す。
共有メモリ25には、例えば、VOLを管理するためのVOL管理テーブル1と、内部VOLと外部VOLとの対応付けを管理するためのマッピングテーブル102とが記憶される。
図2Bは、VOL管理テーブルの構成例を示す。
VOL管理テーブル1には、内部VOLに関する情報が登録される。具体的には、例えば、各内部VOL毎に、内部VOLアドレスと、シリンダ数と、ペア相手と、内部VOL属性とが登録される。
内部VOLアドレスは、内部VOLのアドレスに関する情報であり、例えば、シリンダヘッド番号と、レコード番号とを含んだ情報である。シリンダヘッド番号は、シリンダの位置を表す番号であり、レコード番号は、シリンダ内のどこの位置にアクセスするかを表す番号である。なお、各VOLは、シリンダの集合である。シリンダとは、VOLを論理的に区切ったサブ的なVOLである。各VOLの記憶容量は、そのVOLを構成するシリンダの個数によって異なる。シリンダの記憶サイズは、所定サイズであっても、任意サイズであってもよいが、本実施例では所定サイズとする。シリンダのサイズは、例えば、共有メモリ25に記憶させることができる。
シリンダ数は、内部VOLを構成するシリンダの数である。
ペア相手は、内部VOLに対応付けられたペアの相手(別の内部VOL又は外部VOL)を表す。なお、内部VOLにペアが存在しない場合には、そのことを表す情報(例えば「無し」)が登録される。また、ペア相手が外部VOLの場合、ペア相手の情報は、その外部VOLのアドレスと、その外部VOLを有する第二の記憶制御装置のIDとの組み合わせで表すことができる。
内部VOL属性は、内部VOLの種類を表す情報である。内部VOL属性としては、例えば、実体のある内部VOL31であることを意味する「実VOL」というものと、実体の無い仮想的な内部VOL32であることを意味する「仮想VOL」というものとがある。
以上がVOL管理テーブル1の構成例である。このVOL管理テーブル1に登録される情報項目としては、前述したものに限らず、例えば、前述した項目よりも少なくても多くても良い。
図3は、マッピングテーブル102の構成例を示す。
マッピングテーブル102は、前述したように、内部VOLと外部VOLとの対応付けを管理するためのテーブルである。マッピングテーブル102は、例えば、一以上のアドレス対応レコード3を含んでいる。各アドレス対応レコード3は、内部VOLのアドレスに関するデータである内部アドレスデータと、外部VOLのアドレスに関するデータである外部アドレスデータとを含んでいる。内部アドレスデータは、例えば、前述した内部VOLアドレスである。外部アドレスデータは、例えば、接続先の第二の記憶制御装置40を識別するためのデータ要素(以下、外部装置ID)と、その第二の記憶制御装置40が有する外部VOL42の外部VOLアドレスと、その外部VOL42の使用領域の先頭と終端とを表すデータ要素(例えば、使用エリアの先頭シリンダを表す番号(以下、使用先頭CYL#)と、使用エリアの終端シリンダを表す番号(以下、使用終端CYL#))とを含んだデータである。
第一の記憶制御装置20(例えば、CHA2A、2Bのマイクロプロセッサ)は、このようなマッピングテーブル102を参照することにより、どの第二記憶制御装置40のどの外部VOL42に対してどの内部VOLが対応付けられているかを特定することができる。
図4Aは、或る外部VOLの構成例を示す。図4Bは、マッピング用データの構成例を示す。
外部VOL42には、ホスト装置10から送信された書込み対象データの他に、マッピング用データ47を格納することができる。マッピング用データ47は、マッピングテーブル102中のアドレス対応レコード3の生成に使用されるデータである。
マッピング用データ47は、制御サブデータ49と、一以上のマッピング本体サブデータ48とを含む。
制御サブデータ49には、マッピング用データ47に幾つのマッピング本体サブデータ48が含まれているかを表すマッピング本体サブデータ数と、このマッピング用データ47を格納している外部VOL42が有する空きのシリンダの数とが記述される。
マッピング本体サブデータ48は、マッピングテーブル102中のアドレス対応レコード3の生成に使用されるサブデータである。マッピング本体サブデータ48は、例えば、内部VOLのアドレスと、その内部VOLのタイプと、その内部VOLの記憶サイズ(この実施例ではシリンダ数)とを含んでいる。また、マッピング本体サブデータ48は、このマッピング用データ47を格納している外部VOL42の使用領域の先頭と終端とを表すサブデータ要素(例えば使用先頭CYL#及び使用終端CYL#)と、その外部VOL42に最後にアクセスされた時間を表す最終アクセス時間とを含んでいる。このマッピング用データ47を格納している外部VOL42にデータが書き込まれた場合、使用先頭CYL#、使用終端CYL#及び最終アクセス時間のうちの少なくとも一つが、第一の記憶制御装置20のCHA2Bによって、或いは、第二の記憶制御装置40の図示しないCHAによって、更新される。
以上が、マッピング用データ47の構成例である。なお、図4Bの例示によれば、マッピング本体サブデータ48の数は一であるが、その数が二以上の場合には、制御サブデータ49において、マッピング本体サブデータ数が二以上となり、且つ、同一のマッピング用データ47に、二以上のマッピング本体サブデータ48が含まれる。また、マッピング用データ47は、第二の記憶制御装置40のどの場所に記憶されていてもよい。例えば、本実施例では、一つの外部VOL42に一つのマッピング用データ47が格納されるが、必ずしもそうする必要は無い。具体的には、例えば、マッピング用データ47を格納するための外部VOLが用意され、その外部VOLに、複数のマッピング用データ47が格納されてもよい。その場合、各マッピング用データ47には、内部VOLアドレスの他に、その内部VOLアドレスに対応付けられる外部VOLアドレスが含まれても良い。また、一又は複数のマッピング用データ47は、第二記憶制御装置40の図示しないメモリ(例えば共有メモリ或いはキャッシュメモリ)に記憶されていても良い。
第一の記憶制御装置20(例えば、CHA2Bのマイクロプロセッサ801に読み込まれる制御プログラム800)は、以下に説明する接続処理や、データ処理を行うことができる。以下、それぞれの処理の流れについて説明する。
(A)第一の接続処理。
この第一の接続処理は、例えば、第一の記憶制御装置20に実体のある内部VOL31が一つも存在しない場合、或いは、それが存在しても、第二の記憶制御装置40から受信するマッピング用データ47に、内部VOL31の内部VOLアドレスと同一の内部VOLアドレスが存在しない場合に、実行することができる。
図5は、第一の接続処理の流れの一例を示す。
CHA2Bは、第二の記憶制御装置40に接続した場合(ステップS11)、所定の照会コマンドを、第二通信ネットワークCN2を介して第二の記憶制御装置40に発行する。第二の記憶制御装置40(例えば図示しないCHA)は、その照会コマンドに応答して、図示しないメモリ(例えば共有メモリ)に記憶されているVOL管理テーブル(図2Bのテーブル1と同様のテーブル)を参照し、そのVOL管理テーブルに基づいて、その第二の記憶制御装置40に関する構成情報を生成し、生成した構成情報をCHA2Bに送信する。これにより、CHA2Bは、接続された第二の記憶制御装置40に関する構成情報を取得する(S12)。なお、この構成情報は、第二の記憶制御装置40の所定の記憶域に用意されていても良い。構成情報には、例えば、その第二の記憶制御装置40が備える外部VOL42の数と、各外部VOL42毎の外部VOLアドレス及びシリンダ数とが含まれている。CHA2Bは、取得した構成情報を、第一の記憶制御装置20内の記憶域(例えば、自分が有する図示しないメモリ、或いは共有メモリ25)に蓄積する。
CHA2Bは、S12で取得した構成情報から、接続された第二記憶制御装置40に存在する一以上の外部VOL42を把握することができる。CHA2Bは、把握される一以上の外部VOL42のうちの或る外部VOLに対する特定のリードコマンドを発行する(S13)。特定のリードコマンドとは、外部VOLに存在するであろうマッピング用データ47の読出しのためのコマンドである。第二記憶制御装置40は、そのコマンドを受信した場合、指定された外部VOLにマッピング用データ47が存在すればそのマッピング用データを読み出して返信し、存在しなければその旨を返信することができる。また、例えば、マッピング用データ47が、外部VOL42の所定シリンダ(例えば先頭シリンダ)から別の所定シリンダ(例えば終端シリンダ)に向けて連続的に書かれるようになっている場合、所定シリンダを指定したリードコマンドを発行することにより、その所定シリンダから書かれ始めているマッピング用データ47が取得可能である。
CHA2Bは、マッピング用データ47を受信した場合(S14でYES)、受信したマッピング用データ47に含まれているマッピング本体サブデータ48に基づいて、アドレス対応レコード3を生成し、生成したアドレス対応レコード3を、マッピングテーブル102に追加する(S15)。具体的には、例えば、CHA2Bは、接続された第二記憶制御装置40のIDと、マッピング用データ47の読み出し元の外部VOL42の外部アドレスと、マッピング本体サブデータ48に含まれている使用先頭CYL#及び使用終端CYL#とを、そのマッピング本体サブデータ48に含まれている内部VOLアドレスに対応付けることにより、アドレス対応レコード3を生成する。なお、マッピング本体サブデータ48が複数個含まれている場合には、CHA2Bは、上記読出し元の外部VOL42に対して、それら複数のマッピング本体サブデータ48にそれぞれ含まれている複数の内部VOLアドレスを対応付けることができる。
CHA2Bは、取得されたマッピング本体サブデータ48に含まれている内部VOLアドレスに基づいて、仮想VOLを登録する(S16)。具体的には、例えば、CHA2Bは、取得されたマッピング本体サブデータ48に含まれている内部VOLアドレスを、所定の記憶域(例えば共有メモリ25)に書く。
S14において、マッピング用データ47を取得できない場合(S14でNO)、CHA2Bは、S13のリードコマンドの発行先である外部VOLに対する書込み処理により(例えば、その外部VOLにライトコマンドを発行することにより)、その外部VOL42に制御サブデータ49を書き込む(S17)。具体的には、例えば、CHA2Bは、マッピング本体サブデータ数「0」と、その外部VOL42の空きシリンダ数(S12で取得した構成情報から特定されたシリンダ数)とを含んだ制御サブデータ49を生成し、生成した制御サブデータ49を、外部VOL42に書き込む。これにより、その外部VOL42には、制御サブデータ49が存在するがマッピング本体サブデータ48が存在しない未完成のマッピング用データが格納される。
CHA2Bは、S17の処理を行う場合、未使用外部VOL数をカウントアップする(S18)。未使用外部VOL数のカウント値は、所定の記憶域、例えば、CHA2Bが備えるレジスタ或いは図示しないメモリ等に記憶させられる。また、CHA2Bは、その外部VOL42の外部VOLアドレス(S12で取得した構成情報から特定されたアドレス)を、未使用の外部VOLアドレスとして、所定の記憶域(例えば、CHA2Bの図示しないメモリ或いは共有メモリ25)に登録することができる。
CHA2Bは、S12で取得された構成情報から特定される全ての外部VOL42に対して、S13乃至S18の処理を行う(S19でNO)。
CHA2Bは、それら全ての外部VOL42に対して、S13乃至S18の処理を行ったならば(S19でYES)、S16で登録された仮想VOLを設定する(S20)。具体的には、例えば、CHA2Bは、共有メモリ25に登録された内部VOLアドレスをVOL管理テーブル1に追記し、且つ、その内部VOLアドレスに対応する内部VOL属性として「仮想VOL」を登録する。
また、CHA2Bは、未使用外部VOL数と同数の仮想VOLを新たに設定する(S21)。具体的には、例えば、CHA2Bが、所定の規則に従って、未使用外部VOL数と同数の内部VOLアドレスを生成し、それらの内部VOLアドレスに基づいて、S20と同様の方法で仮想VOLを設定する。
S16で登録された仮想VOLの設定と、未使用外部VOL数と同数の仮想VOLの設定とが終了したならば、接続処理の終了となる(S22)。
以上が、第一の接続処理の流れである。なお、第二の記憶制御装置40は、S11で第一の記憶制御装置20に接続された場合、第一の記憶制御装置20から照会コマンド及びリードコマンドを受けることなく、構成情報及び各外部VOLについてのマッピング用データを送信しても良い。
(B)第一のデータ処理。
この第一のデータ処理は、例えば、図5を参照して説明した第一の接続処理が行われた後に、ホスト装置からI/O要求を受信した場合に実行することができる。
図6は、第一のデータ処理の流れの一例を示す。
CHA2Aは、ホスト装置からI/O要求を受信した場合(S31)、I/O要求で指定された内部VOLアドレス(ここでは仮想VOLアドレス)に対応する外部VOLアドレスをマッピングテーブル102から検索する(S32)。
この検索でヒットした場合には(S33でYES)、CHA2Aは、サーチヒットしたマッピングテーブル102のアドレス対応レコード3から、外部VOLアドレス及び外部装置IDを特定し、特定された外部装置IDに対応する第二記憶制御装置40の外部VOLアドレス(特定された外部VOLアドレス)に対するI/O処理を実行すること(データの書き込み又は読出しをすること)を、その第二記憶制御装置40に接続されているCHA2Bに対して命じる。具体的には、例えば、CHA2Aは、その命令に関するコマンドを共有メモリ25に書き、CHA2Bが、そのコマンドを取得する。CHA2Bは、CHA2Aからの命令に応答して、上記特定された外部VOLアドレスに対してI/O処理を実行する(S34)。CHA2Bは、その外部VOLアドレスに対応した外部VOL内のマッピング用データを更新する(S35)。具体的には、例えば、CHA2Bは、S32における内部VOLアドレスを含んだマッピング本体サブデータ48の使用終端CYL#及び最終アクセス時間を更新する。
S33でサーチヒットしなかった場合(S33でNO)、CHA2Aは、一以上の未使用の外部VOLアドレス(例えば、S18において登録されたアドレス)の中から選択された外部VOLアドレスに対してI/O処理を実行することを、その外部VOLアドレスを有する第二記憶制御装置40に接続されたCHB2Bに対して命令し、それにより、その外部VOLアドレスに対してI/O処理が実行される(S36)。なお、どの第二記憶制御装置40にどのCHA2Bが接続されているかは、例えば、共有メモリ25に記憶されており、CHA2Aは、共有メモリ25を参照することで、命令先となるCHA2Bを特定することができる。
CHA2Bは、I/O処理で使用したシリンダの番号、I/O処理により上記選択された外部VOLアドレスにアクセス時間、及びS32における内部VOLアドレスに基づいて、マッピング本体サブデータ48を生成し、生成したマッピング本体サブデータ48を、上記選択された外部VOLアドレスを有する外部VOLに書き込む(S37)。その際、CHA2Bは、図5のS17で書き込んだ制御サブデータ49と、そのマッピング本体サブデータ48とでマッピング用データ47を構成する。具体的には、例えば、CHA2Bは、制御サブデータ49が書かれたシリンダ番号の次のシリンダ番号を有するシリンダからマッピング本体サブデータ48を書き始める。
CHA2Bは、S37で生成したマッピング本体サブデータ48に基づいて、図5のS15と同様の方法でアドレス対応レコード3を生成し、生成したアドレス対応レコード3をマッピングテーブル102に追加する(S38)。
以上が、第一のデータ処理の流れである。なお、この処理において、CHA2Aは、S32で、I/O要求で指定された内部VOLアドレスが実体のある内部VOL31のアドレスであり、且つ、S33でサーチヒットしなかった場合には、その内部VOL31のアドレスにアクセスすることをDKA22に命じてもよい。
(C)第二の接続処理。
この第二の接続処理は、例えば、第一の記憶制御装置20に実体のある内部VOL31が存在する場合に実行することができる。
図7は、第二の接続処理の流れの一例についての一部を示し、図8は、第二の接続処理の流れの一例についての別の一部を示す。図7及び図8をつなげることで、第二の接続処理の流れの一例が示される。
第二の接続処理では、図5のS11乃至S14と同様の処理が行われる(S41乃至S44)。また、S44でNOの場合、図5のS17乃至S19の処理が行われる(S49、S50及びS52)。
CHA2Bは、S44でYESの場合、S15と同様にして、マッピングテーブル102にアドレス対応レコードを追加し(S45)、取得されたマッピング用データ47における各マッピング本体サブデータ48内の内部VOLアドレスが実装されているか否かを判断する(S46)。実装されているか否かは、例えば、その内部VOLアドレスがVOL管理テーブル1に登録されており、且つ、その内部VOLアドレスに対応した内部VOL属性が「実VOL」であるか否かを調べることにより、判別することができる。
CHA2Bは、S46の判断結果が否定的な場合(S46でNO)、マッピング本体サブデータ48内の内部VOLアドレスに基づいて仮想VOLを登録する(S51)。具体的には、例えば、CHA2Bは、共有メモリ25等の所定の記憶域に、その内部VOLアドレスが仮想VOLである旨を記憶させる。
CHA2Bは、S46の判断結果が肯定的な場合(S46でYES)、取得されたマッピング用データ47におけるマッピング本体サブデータ48内の内部VOL記憶サイズと、その取得されたマッピング用データ47における制御サブデータ49内の空きの記憶サイズとを比較する(S47)。
S47の比較の結果、空きの記憶サイズが内部VOL記憶サイズ未満であれば(S47でNO)、CHA2Bは、取得されたマッピング用データ47を格納していた外部VOLを未使用外部VOLとし、S50を実行する。なお、この場合、CHA2Bは、S45で追加したアドレス対応レコードを削除しても良い。
S47の比較の結果、空きの記憶サイズが内部VOL記憶サイズ以上であれば(S47でYES)、CHA2Bは、S46で実装であると判断された内部VOLをバックアップペア対象として登録する(S48)。具体的には、例えば、CHA2Bは、共有メモリ25等の所定の記憶域に、その実装内部VOLの内部VOLアドレスがバックアップ対象である旨(換言すれば、マッピング用データ47の読出し元の外部VOLのペア相手となる旨)を記憶させる。
CHA2Bは、S52でYESとなれば、S53の処理にすすみ、バックアップペア対象の登録があるか否かを判断する(S53)。
S53の判断の結果が否定的な結果の場合(S53でNO)、CHA2Bは、後述するS60の処理を実行する。
S53の判断の結果が肯定的な結果の場合(S53でYES)、CHA2Bは、バックアップペアを形成するか否かを判定する(S54)。この判定は、例えば、管理サーバ14或いはSVP23から、S48で登録された実装内部VOLをバックアップペアとすることの入力を受けたか否かで行うことができる。
S54の判定の結果が否定的な結果の場合(S54でNO)、CHA2Bは、未使用外部VOL数をカウントアップし(S58)、マッピング用データ47を上記読出し元の外部VOL42から消去し、且つ、新たな制御サブデータ49を生成し、その制御サブデータ49をその外部VOL42に書き込む(S59)。ここで書き込まれる制御サブデータ49は、例えば、図5のS17と同様の方法で生成することができる。その後、CHA2Bは、後述するS60の処理を実行する。
S54の判定の結果が肯定的な結果の場合(S54でYES)、CHA2Bは、実装内部VOLと、上記読出し元の外部VOLとのペアを形成する(S55)。具体的には、例えば、CHA2Bは、VOL管理テーブル1において、実装内部VOLの内部VOLアドレスに対応したペア相手の欄に、読出し元の外部VOLのアドレスと、その外部VOLを有する第二記憶制御装置40の外部装置IDとを書き込む。
CHA2Bは、S55の後、データの回復を行うか否かを判定する(S56)。この判定は、例えば、管理サーバ14或いはSVP23から、データの回復を行うことの入力を受けたか否かで行うことができる。
S56の判定の結果が否定的な結果の場合(S56でNO)、CHA2Bは、後述するS60の処理を実行する。
S56の判定の結果が肯定的な結果の場合(S56でYES)、CHA2Bは、S55でペア形成された外部VOL42からデータ(例えば、マッピング用データ47とは別のデータ)を読み出し、読み出したデータを、ペア形成された実装内部VOL31に書き込む(S57)。これにより、外部VOL42のバックアップを実装内部VOL31に生成される。
S57(S53でNO、S56でNO及びS59)の後、S60の実行が可能である。
S60では、ペア形成オペレーションが実行される。ここでは、例えば、CHA2Bは、SVP23又は管理サーバ14からの入力に基づいて、未使用の外部VOLと、ペア相手の存在しない内部VOLとの間でペアを形成する。そして、CHA2Bは、形成したペアの数だけ、未使用外部VOLの数を減らす(S61)。また、CHA2Bは、ペア形成された外部VOL42のマッピング用データを更新する(例えば図6のS37と同様の処理を行う)(S62)。
その後、図5のS20乃至S22と同様の処理が行われる(S63乃至S65)。
以上が、第二の接続処理の流れである。なお、この第二の接続処理でも、第二の記憶制御装置40は、S41で第一の記憶制御装置20に接続された場合、第一の記憶制御装置20から照会コマンド及びリードコマンドを受けることなく、構成情報及び各外部VOLについてのマッピング用データを送信しても良い。また、S47の判断処理は、S44でYESとS45との間に行われてもよい。
(D)第二のデータ処理。
この第二のデータ処理は、例えば、図7及び図8を参照して説明した第二の接続処理が行われた後に、ホスト装置からI/O要求を受信した場合に実行することができる。
図9は、第二のデータ処理の流れの一例を示す。
CHA2Aは、実装内部VOL31に対するI/O要求を受信した場合(S71)、DKA22を制御して、その実装内部VOL31に対するI/O処理を実行する(S72)。また、CHA2Aは、VOL管理テーブル1及び/又はマッピングテーブル102を参照して、その実装内部VOL31にバックアップペアが存在するか否かを判定する(S73)。このS73では、例えば、実装内部VOL31のアドレスを含んだアドレス対応レコードが見つかった、及び/又は、その実装内部VOL31のペア相手として外部VOLがVOL管理テーブル1上に登録されていたことが検出された場合に、肯定的な判定結果となる。
肯定的な判定結果が得られた場合(S73でYES)、CHA2Aは、CHA2Bに、ペア相手である外部VOL42に対するI/O処理を実行させる(S74)。CHA2Bは、その外部VOL42におけるマッピング用データ47(例えば、実装内部VOLのアドレスを含んだマッピング本体サブデータ48における最終アクセス時間)を更新する(S75)。
S73でNOの場合、第二のデータ処理が終了してもよい。
以上が第一実施例についての説明である。なお、この第一実施例では、制御サブデータ49のデータサイズは一定であり、且つ、マッピング本体サブデータ48のデータサイズも一定であるとすることができる。この場合、CHA2Bは、例えば、まず、制御サブデータ49を参照し、その制御サブデータ49に登録されているマッピング本体サブデータ数に基づいて、読出し範囲を制御することができる。具体的には、例えば、CHA2Bは、制御サブデータ49に登録されているマッピング本体サブデータ数がより多くなれば、マッピング本体サブデータの読出し範囲をより広くすることができる。
以上、本実施例によれば、第一の記憶制御装置20に設定される内部VOL(仮想でも実装でもよい)のアドレスを含んだマッピング用データ47を、第二の記憶制御装置40が記憶している。そして、第二の記憶制御装置40が第一の記憶制御装置20に接続された場合には、第一の記憶制御装置20が、第二の記憶制御装置40からマッピング用データ47を受信し、そのマッピング用データ47を用いて、内部VOLアドレスと外部VOLアドレスとが自動的に対応付ける。これにより、第一の記憶制御装置20に対する第二の記憶制御装置40の接続を容易に行うことができる。
次に、本発明の一実施形態の第二実施例について説明する。なお、以下の説明では、第一実施例との相違点を主に説明し、共通点についての説明は省略或いは簡略する。
この第二実施例では、マッピングテーブル102のサイズが制限される。具体的には、マッピングテーブル102に或る個数のアドレス対応レコード(例えばサイズは一定)が登録された場合には、少なくとも一つのアドレス対応レコードが消去されないと、新たなアドレス対応レコードを追加することができない。そこで、この第二実施例では、以下に説明する方法で、アドレス対応レコードが消去される。
図10は、第二実施例における接続処理の流れの一部を示す。
CHA2Bは、生成したアドレス対応レコードをマッピングテーブル102に追加した後、マッピングテーブル102が満杯になれば(S200でYES)、最終アクセス時間が最も古いマッピング本体サブデータ48に対応したアドレス対応レコードをマッピングテーブル102から削除する(S201)。マッピングテーブル102が満杯か否かは、例えば、アドレス対応レコードが所定の上限値(例えば共有メモリ25等の所定の記憶域に登録されている)に達したか否かを判定することにより、判定することができる。
図11は、第二実施例におけるデータ処理の流れの一部を示す。
CHA2Aは、S33でYESの場合、サーチヒットしたアドレス対応レコードを、マッピングテーブル102の先頭に移動させる(S307)。すなわち、この第二実施例では、マッピングテーブル102の先頭から終端にかけて、最終アクセス時間が古いマッピング本体サブデータに対応したアドレス対応レコードとなる。
S33でNOの場合、CHA2Bは、全ての外部VOLに対してリードコマンドを発行して、一以上のマッピング用データ47を取得し、取得されたマッピング用データ47の中から、S32で指定された内部VOLアドレスをサーチする(S301)。
S301で、サーチヒットとならなければ(S301でNO)、CHA2Bは、指定された内部VOLアドレスを含んだマッピング本体サブデータを生成し、未使用の外部VOLの中から選択された外部VOLに対してそのサブデータを書込み、且つ、そのサブデータを用いてアドレス対応レコードを生成し、マッピングテーブル102の先頭に、生成したアドレス対応レコードを追加する(S302)。CHA2Bは、生成したアドレス対応レコードをマッピングテーブル102に追加した後、マッピングテーブル102が満杯になれば(S305でYES)、最終アクセス時間が最も古いマッピング本体サブデータ48に対応したアドレス対応レコードをマッピングテーブル102から削除する(S306)。
S301で、サーチヒットとなれば(S301でYES)、CHA2Bは、サーチヒットとなったマッピング用データ中のマッピング本体サブデータを用いてアドレス対応レコードを生成し、マッピングテーブル102の先頭に、生成したアドレス対応レコードを追加する(S304)。CHA2Bは、生成したアドレス対応レコードをマッピングテーブル102に追加した後、マッピングテーブル102が満杯になれば(S305でYES)、最終アクセス時間が最も古いマッピング本体サブデータ48に対応したアドレス対応レコードをマッピングテーブル102から削除する(S306)。
S305でNOであれば、CHA2Bは、上記指定された内部VOLアドレスに対応した外部アドレスを有する外部VOLに対してI/O処理を行い、且つ、その外部VOL内のマッピング用データ47を更新する。
この第二実施例によれば、マッピングテーブル102のサイズが肥大化してしまうことを抑えることができ、故に、メモリ容量の節約が可能となる。
第三実施例では、第一の記憶制御装置20と第二の記憶制御装置40とを備えた記憶システム100が、オープン系のシステムである。例えば、第一の記憶制御装置20は、第二の記憶制御装置40に、SCSIのプロトコルに従う通信を行うことができる。通信ネットワークCN1〜CN3の各々を、LAN(Local Area Network)或いはSAN(Storage Area Network)とすることができる。
この第三実施例では、マッピング用データを、図12に例示する構成とすることができる。すなわち、マッピング用データ147を構成する制御サブデータ149において、外部VOLの記憶サイズを、バイトで表すことができる(内部VOLの記憶サイズについても同様である)。また、マッピング本体サブデータ148において、内部VOLアドレスを、LUN(Logical Unit Number)と、CHA2Bのポート21BのIDと、CHA2BのWWN(World Wide Name)との組み合わせ(換言すれば、第二記憶制御装置からの内部VOLに対するパスを特定するための情報)で表すことができる。
第四実施例では、第一の記憶制御装置20(例えばCHA2B)が、内部VOL及び外部VOLのうちの少なくとも一方がニアラインか否かを判定し、ニアラインでなければ、アドレス対応レコードの生成を行わないという制御を実行することができる。その判定は、例えば、図13に例示するように、S14のYESとS15との間に行うことができる(S400)。
この第四実施例では、CHA2B(又は2A)が、SVP23又は管理サーバ24から、内部VOLの指定とその指定された内部VOLがニアラインであることの入力とを受け、その指定及び入力に基づいて、VOL管理テーブル1に、各内部VOL毎にニアラインであるか否かを登録する。この場合、CHA2Bは、VOL管理テーブル1を参照することで、受信したマッピング用データ47中の内部VOLアドレスを有する内部VOLがニアラインであるか否かを判定し、ニアラインであれば、アドレス対応レコードを生成してマッピングテーブル102に追加するが、ニアラインでなければ、アドレス対応レコードを生成せずに、未使用外部VOL数をカウントアップする処理を実行することができる。なお、ニアラインであるか否かを表す情報は、マッピング用データ47の制御サブデータ或いはマッピング本体サブデータのどちらかに登録されても良い。
ここで、「ニアライン」とは、例えば、アクセス頻度が所定値よりも低いことを意味する。ニアラインよりもアクセス頻度が高いものとして、例えば「オンライン」が存在する。例えば、オンラインでは、千分の一秒のオーダーでアクセスが発生するのに対し、ニアラインでは、秒のオーダーでアクセスが発生する。
ニアラインの場合だけアドレス対応レコードを生成することにより、ニアラインの内部VOLにのみ外部VOLがマッピングされ、それとは別の内部VOLには外部VOLはマッピングされない。このため、アクセス頻度が低い内部VOLにアクセスされた場合には、外部VOLにもアクセスされるが、アクセス頻度が高い内部VOLにアクセスされた場合には、外部VOLへのアクセスは行われない。これにより、ニアラインの内部VOLとそれよりもアクセス頻度の高い内部VOLが記憶制御装置に混在する場合には、アクセス頻度の高い内部VOLについての処理効率の悪化を抑えることができる。
なお、この第四実施例では、CHA2B又はCHA2A(DKA22でも良い)が、各内部VOL毎に、アクセス頻度(単位時間当たりのアクセス回数)を管理し、アクセス頻度が所定値以上の場合には、その内部VOLはニアラインではない(例えばオンラインである)と判断し、それが所定値未満の場合には、その内部VOLはニアラインであると判断してもよい。また、ニアラインか否かの区別は、内部VOLの種別により行われても良い。その種別は、例えば、VOL管理テーブル1等に記録することができる。ニアラインであることを意味する種別としては、例えば、SATA(Serial ATA)或いはSAS(Serial Attached SCSI)を採用することができ、ニアラインではないことを意味する種別としては、例えば、FC(Fiber Channel)を採用することができる。
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
図1は、本発明の一実施形態の第一実施例に係る記憶システムの構成を示す。 図2Aは、共有メモリに格納される情報の一例を示す。図2Bは、VOL管理テーブルの構成例を示す。 図3は、マッピングテーブルの構成例を示す。 図4Aは、或る外部VOLの構成例を示す。図4Bは、マッピング用データの構成例を示す。 図5は、第一の接続処理の流れの一例を示す。 図6は、第一のデータ処理の流れの一例を示す。 図7は、第二の接続処理の流れの一例についての一部を示す。 図8は、第二の接続処理の流れの一例についての別の一部を示す。 図9は、第二のデータ処理の流れの一例を示す。 図10は、本発明の一実施形態の第二実施例における接続処理の流れの一部を示す。 図11は、本発明の一実施形態の第二実施例におけるデータ処理の流れの一部を示す。 図12は、本発明の一実施形態の第三実施例におけるマッピング用データの構成例を示す。 図13は、本発明の一実施形態の第四実施例において行われる処理の一例を示す。
符号の説明
1…VOL管理テーブル 2A,2B…CHA(チャネルアダプタ) 10・・・ホスト装置 11…アプリケーションプログラム 12…アダプタ 13…ストレージ管理アプリケーション 14…管理サーバ 20…第一の記憶制御装置 21A、21B…通信ポート 22…DKA 22A…通信ポート 23…SVP 24…キャッシュメモリ 25…共有メモリ 26…接続部 31…記憶デバイス 32…記憶デバイス(仮想化された内部記憶デバイス) 40…第二の記憶制御装置 41…通信ポート 42…記憶デバイス 102…マッピングテーブル CN1…第一の通信ネットワーク CN2…第二の通信ネットワーク CN3…第三の通信ネットワーク

Claims (11)

  1. ライト命令又はリード命令であるライト/リード命令を送信するホスト装置と、外部記憶デバイスを有する外部記憶制御装置とに接続することができる記憶制御装置において、
    前記外部記憶制御装置は、外部記憶デバイスのアドレスである外部アドレスと、前記記憶制御装置に設定される内部記憶デバイスのアドレスである内部アドレスとのうちの少なくとも一方を表すアドレス情報を記憶し、且つ、前記記憶しているアドレス情報を前記記憶制御装置に送信し、
    前記記憶制御装置が、記憶資源と、制御部とを備え、
    前記制御部が、前記外部記憶制御装置から前記アドレス情報を受信し、前記受信したアドレス情報に基づいて、内部アドレスと外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成し、前記ホスト装置から前記ライト/リード命令を受信し、前記記憶資源上のアドレス対応情報を参照することで、前記内部アドレスに対応付けられている外部アドレスを特定し、前記ライト/リード命令に従うアクセス先が前記対応付けられた内部アドレスの場合、前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信する、
    記憶制御装置。
  2. 前記アドレス情報は、前記内部アドレスを表す内部アドレス情報を含み、前記外部記憶デバイスに格納されており、
    前記制御部が、前記外部記憶デバイスから読み出されたアドレス情報を受信し、前記外部記憶デバイスの外部アドレスと、前記受信したアドレス情報中の内部アドレス情報が表す内部アドレスとの対応付けを表すアドレス対応情報を生成する、
    請求項1記載の記憶制御装置。
  3. 前記制御装置は、一以上の外部記憶制御装置と接続することができ、
    前記一以上の外部記憶制御装置は、複数の外部記憶デバイスを備え、
    前記記憶資源が、複数の記憶デバイスにそれぞれ対応した複数の内部アドレスを表す内部デバイス情報を記憶しており、
    前記制御部が、
    複数の外部記憶デバイスにそれぞれ対応した複数の外部アドレスを特定するための外部デバイス情報を入力して前記記憶資源に書込み、
    前記外部デバイス情報と前記アドレス情報とに基づいて、前記複数の外部アドレスのうち内部アドレスに対応付けられない未対応の外部アドレスがどれであるかを前記記憶資源に記憶させ、
    前記内部デバイス情報と前記アドレス情報とに基づいて、前記複数の内部アドレスのうち外部アドレスが対応付けられない未対応の内部アドレスがどれであるかを前記記憶資源に記憶させ、
    前記記憶資源に記憶されている未対応の内部アドレスがアクセス先である前記ライト/リード命令を前記ホスト装置から受信した場合、前記記憶資源に記憶されている一以上の未対応の外部アドレスの中から少なくとも一つの外部アドレスを選択し、選択された外部アドレスにアクセスし、
    前記選択された外部アドレスと、前記アクセス先の未対応の内部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成する、
    請求項1記載の記憶制御装置。
  4. 前記記憶制御装置が、実体のある内部記憶デバイスを備え、
    前記制御部は、
    前記受信したアドレス情報に基づいて内部アドレスと外部アドレスとの対応付けを行う場合、その内部アドレスが前記実体のある内部記憶デバイスのアドレスならば、前記内部記憶デバイスと前記外部記憶デバイスとの対応付けを表すデバイス対応情報を前記記憶資源上に生成し、
    前記記憶資源上に生成されたデバイス対応情報に基づいて、前記実体のある内部記憶デバイスに書かれたデータを、前記実体のある内部記憶デバイスに対応付けられた外部記憶デバイスに書き込む、或いは、前記外部記憶デバイスに書き込まれたデータを、その外部記憶デバイスに対応付けられた前記実体のある内部記憶デバイスに書き込む、
    請求項1記載の記憶制御装置。
  5. 前記アドレス情報は、前記外部記憶デバイスの記憶容量を表す外部記憶容量情報と、前記実体のある内部記憶デバイスの記憶容量を表す内部記憶容量情報とを含み、
    前記制御部は、
    前記受信したアドレス情報中の外部記憶容量情報が表す記憶容量が、前記内部記憶容量情報が表す記憶容量以上である場合に、前記デバイス対応情報を生成する、
    請求項4記載の記憶制御装置。
  6. 前記アドレス情報は、内部アドレスを表す内部アドレス情報を含み、
    前記記憶資源は、前記実体のある記憶デバイスの内部アドレスを表す別の内部アドレス情報を記憶し、
    前記制御部は、
    前記受信したアドレス情報に含まれている内部アドレス情報が前記別の内部アドレス情報に適合しない場合には、前記内部アドレス情報に基づいて仮想的な内部記憶デバイスを設定し、
    前記設定された仮想的な内部記憶デバイスも、前記実体のある内部記憶デバイスも、前記制御装置が有する内部記憶デバイスとして前記ホスト装置に提供する、
    請求項4記載の記憶制御装置。
  7. 前記アドレス情報は、外部アドレス及びローカルアドレスのうちの少なくとも一方に最後にアクセスされた時刻を表す最終アクセス時刻情報を含み、
    前記制御部は、
    前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信することを行った場合、その外部アドレスに対応したアドレス情報に含まれている最終アクセス時刻情報を更新し、
    前記記憶資源に記憶されている複数の前記アクセス対応情報のうち、前記最終アクセス時刻情報が表す時刻が最も古いアドレス情報に対応したアドレス対応情報を消去する、
    請求項1記載の記憶制御装置。
  8. 前記アドレス情報は、複数の内部アドレスを表す複数の内部アドレス情報を含み、
    前記制御部は、前記受信したアドレス情報中の複数の内部アドレス情報がそれぞれ表す複数の内部アドレスを、同一の外部アドレスに対応付け、その対応付けを表すアドレス対応情報を前記記憶資源上に生成する、
    請求項1記載の記憶制御装置。
  9. 前記外部記憶制御装置は、同一の内部アドレスを表す情報を含んだ複数のアドレス情報を記憶しており、
    前記制御部は、前記複数のアドレス情報を受信した場合、同一の内部アドレスと、複数の外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成する、
    請求項1記載の記憶制御装置。
  10. 前記制御部は、内部記憶デバイス又は外部記憶デバイスが、アクセス頻度が所定値よりも低いか否かを判断し、その判断結果が肯定的である場合に、その内部記憶デバイスの内部アドレスとその外部記憶デバイスの外部アドレスとの対応付けを表すアドレス対応情報を生成する、
    請求項1記載の記憶制御装置。
  11. ライト命令又はリード命令であるライト/リード命令を送信するホスト装置と、外部記憶デバイスを有する外部記憶制御装置とに接続することができる記憶制御装置において実現される記憶制御方法において、
    前記外部記憶制御装置は、外部記憶デバイスのアドレスである外部アドレスと、前記記憶制御装置に設定される内部記憶デバイスのアドレスである内部アドレスとのうちの少なくとも一方を表すアドレス情報を記憶し、且つ、前記記憶しているアドレス情報を前記記憶制御装置に送信し、
    前記外部記憶制御装置から前記アドレス情報を受信するステップと、
    前記受信したアドレス情報に基づいて、内部アドレスと外部アドレスとの対応付けを表すアドレス対応情報を前記記憶資源上に生成するステップと、
    前記ホスト装置から前記ライト/リード命令を受信し、前記記憶資源上のアドレス対応情報を参照することで、前記内部アドレスに対応付けられている外部アドレスを特定するステップと、
    前記ライト/リード命令に従うアクセス先が前記対応付けられた内部アドレスの場合、前記特定された外部アドレスにデータを書き込む、又は、その特定された外部アドレスからデータを読み出して前記ホスト装置に送信するステップと
    を有する記憶制御方法。
JP2004305776A 2004-10-20 2004-10-20 記憶制御装置及び記憶制御方法 Pending JP2006119829A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004305776A JP2006119829A (ja) 2004-10-20 2004-10-20 記憶制御装置及び記憶制御方法
US11/009,033 US20060085621A1 (en) 2004-10-20 2004-12-13 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004305776A JP2006119829A (ja) 2004-10-20 2004-10-20 記憶制御装置及び記憶制御方法

Publications (1)

Publication Number Publication Date
JP2006119829A true JP2006119829A (ja) 2006-05-11

Family

ID=36182170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004305776A Pending JP2006119829A (ja) 2004-10-20 2004-10-20 記憶制御装置及び記憶制御方法

Country Status (2)

Country Link
US (1) US20060085621A1 (ja)
JP (1) JP2006119829A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146890B1 (en) * 2013-01-25 2015-09-29 Pmc—Sierra Us, Inc. Method and apparatus for mapped I/O routing in an interconnect switch
KR102389028B1 (ko) * 2016-01-04 2022-04-22 한국전자통신연구원 가상 데스크탑 간의 데이터 고속 전송 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US221077A (en) * 1879-10-28 Improvement in tumbler-washers
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
JP2003005920A (ja) * 2001-06-22 2003-01-10 Nec Corp ストレージシステム、データ再配置方法及びデータ再配置プログラム
JP2003248605A (ja) * 2002-02-26 2003-09-05 Hitachi Ltd ストレージシステム、主記憶システム、副記憶システム、及びそのデータ複写方法
US7263593B2 (en) * 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
JP4409181B2 (ja) * 2003-01-31 2010-02-03 株式会社日立製作所 画面データ生成方法、コンピュータ、プログラム

Also Published As

Publication number Publication date
US20060085621A1 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
JP5202884B2 (ja) 記憶ボリューム間でデータを移行する方法および装置
JP4428993B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
US8484425B2 (en) Storage system and operation method of storage system including first and second virtualization devices
US7673107B2 (en) Storage system and storage control device
US7299333B2 (en) Computer system with storage system having re-configurable logical volumes
JP4963808B2 (ja) 記憶制御システム
JP4646574B2 (ja) データ処理システム
JP2006309483A (ja) ストレージ装置及びストレージシステム
JP4634136B2 (ja) 記憶制御システム
JP2006178811A (ja) ストレージシステム及びストレージシステムのパス制御方法
US20070079098A1 (en) Automatic allocation of volumes in storage area networks
JP2008123132A (ja) 記憶制御装置及び記憶制御装置の論理ボリューム形成方法
JP2006309640A (ja) 記憶制御システム及び記憶制御方法
JP2007087102A (ja) ファイル管理機能を備えたコンピュータシステム、ストレージ装置およびファイル管理方法
JP2005250925A (ja) 記憶制御システム
US20060221721A1 (en) Computer system, storage device and computer software and data migration method
US8732428B2 (en) Computer system and its control method
JP4502748B2 (ja) デジタルアーカイブを保存するボリュームを管理するサーバ及び方法
US8117405B2 (en) Storage control method for managing access environment enabling host to access data
JP2006119829A (ja) 記憶制御装置及び記憶制御方法
JP2007257667A (ja) データ処理システム
JP4640770B2 (ja) 外部の装置に接続される制御装置
JP2009129261A (ja) ストレージシステム及びストレージシステムの外部ボリューム接続経路探索方法
JP2006134049A (ja) ホスト装置が接続される制御装置の接続部とその制御装置が備える記憶デバイスとの間の論理パスを生成する装置及び方法
JP2009294699A (ja) ストレージ装置