JP2009175824A - メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 - Google Patents
メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 Download PDFInfo
- Publication number
- JP2009175824A JP2009175824A JP2008011104A JP2008011104A JP2009175824A JP 2009175824 A JP2009175824 A JP 2009175824A JP 2008011104 A JP2008011104 A JP 2008011104A JP 2008011104 A JP2008011104 A JP 2008011104A JP 2009175824 A JP2009175824 A JP 2009175824A
- Authority
- JP
- Japan
- Prior art keywords
- mainframe
- control information
- data
- volume
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
【課題】本発明の記憶制御装置は、ライト性能を低下させずに、複数の外部ボリュームを一つの仮想ボリュームとしてメインフレームに提供することができる。
【解決手段】メインストレージ装置1内の仮想ボリューム1Bは、外部ストレージ装置2内の複数の外部ボリューム2Bに対応付けられている。メインフレーム3が仮想ボリューム1Bをフォーマットする場合、メインストレージ装置1の制御情報生成部1A4は、仮想ボリューム1Bに関する制御情報1Cを生成して保持する。これにより、メインフレーム3から指定された書込みサイズと書込先に設定されたデータサイズとが一致する、いわゆる等長ライト時の処理性能を高めることができる。
【選択図】図1
【解決手段】メインストレージ装置1内の仮想ボリューム1Bは、外部ストレージ装置2内の複数の外部ボリューム2Bに対応付けられている。メインフレーム3が仮想ボリューム1Bをフォーマットする場合、メインストレージ装置1の制御情報生成部1A4は、仮想ボリューム1Bに関する制御情報1Cを生成して保持する。これにより、メインフレーム3から指定された書込みサイズと書込先に設定されたデータサイズとが一致する、いわゆる等長ライト時の処理性能を高めることができる。
【選択図】図1
Description
本発明は、メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法に関する。
例えば、金融機関等では、多量のデータを使用して業務を行うために、メインフレームを用いる。メインフレームには、メインフレーム用のボリュームを提供する記憶制御装置が接続される。メインフレームが取り扱うデータ量は日々増大する。そこで、データ量の増大に応じて、記憶制御装置にディスクドライブを追加したり、あるいは、新たな記憶制御装置をシステムに導入する。
しかし、ディスクドライブの追加には限界がある。複数の記憶制御装置をシステムに導入した場合は、その維持管理が面倒であり、さらに、各記憶制御装置の有する記憶領域を有効に使用することができない。
ところで、メインフレーム用記憶制御装置の技術ではないが、いわゆるオープン系の記憶制御装置では、複数のボリュームを一つにまとめて仮想化する技術は知られている(特許文献1)。
特開2000−242434号公報
上記従来技術では、旧式の記憶制御装置が有する複数の実ボリュームを一つの仮想ボリュームとしてまとめてサーバに提供することができる。しかし、前記従来技術は、オープン系のストレージシステムに関するものであり、メインフレームを含むシステムにそのまま適用することはできない。メインフレームとオープン系とでは、データの取り扱い方法等が異なるためである。
さらに、複数の実ボリュームを一つの仮想ボリュームとして単純に仮想化するだけでは、かえってアクセス性能が低下する恐れもある。ライトコマンドを処理するために旧データが必要な場合、メインフレームから発行されるライトコマンド毎に、各実ボリュームから旧データを読み出す必要があるためである。
そこで、本発明の目的は、複数の実ボリュームを一つの仮想ボリュームとして仮想化し、メインフレームに提供することのできるメインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法を提供することにある。本発明の他の目的は、アクセス性能を低下させることなく、複数の実ボリュームを一つの仮想ボリュームとしてメインフレームに提供することができるようにしたメインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかとなるであろう。
上記課題を解決すべく、本発明の第1観点に従うメインフレーム用記憶制御装置は、メインフレーム及び他の記憶制御装置に接続されるメインフレーム用記憶制御装置であって、他の記憶制御装置は、複数のメインフレーム用の実ボリュームを備えており、各実ボリュームに対応付けられる仮想ボリュームと、メインフレームから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換部と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成部と、変換部と制御情報生成部とを用いて、メインフレームから発行されるコマンドを処理し、その処理結果をメインフレームに通知するコマンド処理部と、を備える。
第2観点では、第1観点において、変換部は、コマンド内のパラメータを変換するためのコマンド変換部と、データ内のカウント値を変換するためのデータ変換部とを備えている。
第3観点では、第1観点において、変換部は、コマンド内のパラメータを変換するためのコマンド変換部であって、メインフレームから仮想ボリュームに対するコマンドを受信した場合に、このコマンド内の第1シリンダ番号を各実ボリュームのうち対応する実ボリュームの第2シリンダ番号に変換するコマンド変換部と、メインフレームまたは他の記憶制御装置のいずれかから受信したデータの各レコード内のカウント値をそれぞれ変換するためのデータ変換部であって、メインフレームからデータを受信した場合には、このデータ内の各レコードのカウント値を第2シリンダ番号にそれぞれ変換し、他の記憶制御装置からデータを受信した場合には、このデータ内の各レコードのカウント値を第1シリンダ番号にそれぞれ変換する、データ変換部と、を備えている。
第4観点では、第1〜3観点のいずれかにおいて、制御情報生成部は、メインフレームが仮想ボリュームにフォーマットライトを要求した場合に、制御情報を各シリンダ毎に生成して保存する。
第5観点では、第1〜4観点のいずれかにおいて、他の記憶制御装置は、各実ボリュームのフォーマットに関する他の制御情報を生成する他の制御情報生成部であって、フォーマットライトの要求に従って各シリンダ毎に生成される他の制御情報を実ボリューム内の制御情報領域に格納させる、他の制御情報生成部を備えており、メインフレームが仮想ボリュームにフォーマットライトを要求した場合、変換部は、フォーマットライトの要求を各実ボリュームに対するフォーマットライトの要求に変換して他の記憶制御装置に送信させ、制御情報生成部は、他の制御情報生成部による他の制御情報の生成と同期して、仮想ボリュームのフォーマットに関する制御情報を生成するようになっている。
第6観点では、第1〜5観点のいずれかにおいて、制御情報は、シリンダを構成する各トラックの各レコード毎のデータサイズを記憶する情報である。
第7観点では、第3観点において、仮想ボリュームの記憶領域と各実ボリュームの記憶領域との対応関係に基づいてシリンダ番号を補正するためのシリンダ番号補正テーブルを更に備え、コマンド変換部及びデータ変換部は、シリンダ番号補正テーブルを用いることにより、第1シリンダ番号と第2シリンダ番号との変換を行う。
第8観点では、第1〜7観点のいずれかにおいて、仮想ボリュームの記憶領域の先頭から順番に、各実ボリュームの記憶領域のうちユーザにより使用可能な記憶領域が対応付けられている。
第9観点に従う、メインフレーム用ボリュームの仮想化方法は、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめて、メインフレームに提供するためのメインフレーム用ボリュームの仮想化方法であって、メインフレームから仮想ボリュームへのフォーマットライトが要求された場合に、仮想ボリュームのフォーマットに関する制御情報を生成し、生成した制御情報を仮想ボリュームに対応付けて、所定の実記憶領域に記憶させるステップと、フォーマットライトの要求を仮想ボリュームに対応付けられている各実ボリュームへのフォーマットライトの要求に変換して他の記憶制御装置に送信させることにより、他の記憶制御装置内で各実ボリュームのフォーマットに関する他の制御情報をそれぞれ生成させるステップと、メインフレームから仮想ボリュームへのライトコマンドを受信した場合には、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが一致するか否かを判定するステップと、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが一致する場合は、メインフレームから受信するライトデータをキャッシュメモリに記憶させ、メインフレームにライトコマンドの処理が完了した旨を通知するステップと、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが不一致の場合は、他の記憶制御装置にリードコマンドを発行し、ライトコマンドに関する所定のデータを他の記憶制御装置に要求するステップと、他の記憶制御装置から受信したデータに基づいて、メインフレームから受信したライトコマンドを処理するステップと、をそれぞれ実行する。
第10観点では、第9観点において、ライトコマンドを処理するステップの後に、キャッシュメモリに記憶されたライトデータを他の記憶制御装置に送信し、各実ボリュームのうち対応する実ボリュームに記憶させるステップを更に備える。
第11観点に従う、コンピュータプログラムは、コンピュータを、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめてメインフレームに提供する仮想化装置として機能させるためのコンピュータプログラムであって、メインフレームから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換機能と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成機能と、変換部と制御情報生成部とを用いて、メインフレームから発行されるコマンドを処理し、その処理結果をメインフレームに通知するコマンド処理機能と、を、コンピュータ上にそれぞれ実現させる。
第12観点に従う、ホストコンピュータ用共有記憶装置は、ホストコンピュータ及び他の記憶制御装置に接続されるホストコンピュータ用記憶制御装置であって、他の記憶制御装置は、複数のホストコンピュータ用の実ボリュームを備えており、各実ボリュームに対応付けられる仮想ボリュームと、ホストコンピュータから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換部と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成部と、変換部と制御情報生成部とを用いて、ホストコンピュータから発行されるコマンドを処理し、その処理結果をホストコンピュータに通知するコマンド処理部と、を備える。
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に詳述するように、他の記憶制御装置2内に存在する複数の実ボリューム2B(1)〜2B(3)を、一つの仮想ボリューム1Bとして仮想化し、メインフレーム3に提供する。
図1は、本実施形態の概要を示す説明図である。この情報処理システムは、「メインフレーム用記憶制御装置」としてのメインストレージ装置1と、「他の記憶制御装置」としての外部ストレージ装置2と、メインフレーム3とを備えている。メインストレージ装置1から見た場合、外部ストレージ装置2はメインストレージ装置1の外部に存在するストレージ装置であるため、ここでは、外部ストレージ装置と呼ぶ。
メインフレーム3とは、主に企業等の基幹業務に使用される大規模な汎用コンピュータ装置である。メインフレーム3では、CKD(Count Key and Data)方式と呼ばれる記録方式により、ディスク円盤にブロックデータを記録する。これに対し、オープン系システムの場合は、FBA(Fixed Block Architecture)方式と呼ばれる記録方式により、ブロックデータを記憶する。
CKD方式では、各レコード(各ブロック)毎にそれぞれカウント部、キー部及びデータ部の3種類のデータが記録される。カウント部には、そのレコードの番号やデータサイズ等が記憶されており、キー部には、検索対象となるキーが格納される。データ部には、そのレコードに記録されるデータ本体が記憶される。
メインフレーム3とメインストレージ装置1とは、通信経路4を介して接続される。通信経路4は、例えば、FC−SAN(Fibre Channel-SAN(Storage Area Network))のように構成される。メインフレーム3とメインストレージ装置1とは、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)のような通信プロトコルを用いて、双方向の通信を行うようになっている。
メインストレージ装置1と外部ストレージ装置2とは、通信経路5を介して接続されている。この通信経路5は、通信経路4と同様に、例えば、FC−SANとして構成することができる。
メインストレージ1は、コントローラ1Aと、仮想ボリューム1B及び制御情報1Cを備える。コントローラ1Aは、例えば、コマンド処理部1A1と、コマンド内パラメータ変換部1A2と、レコード内パラメータ変換部1A3と、制御情報生成部1A4とを備えている。
コマンド処理部1A1は、メインフレーム3から発行されたコマンドに基づいて処理を実行し、その処理結果をメインフレーム3に返す機能である。
「コマンド変換部」としてのコマンド内パラメータ変換部1A2は、メインフレーム3から受信したコマンドを外部ストレージ装置2用のコマンドに変換すべく、コマンド内のパラメータを補正する機能である。補正対象のパラメータは、シリンダ番号である。
「データ変換部」としてのレコード内パラメータ変換部1A3は、メインフレーム3から受信したデータの各レコード内のパラメータを補正し、かつ、外部ストレージ装置2から受信したデータの各レコード内のパラメータを補正するための機能である。補正対象のパラメータは、カウント部内のシリンダ番号である。
制御情報生成部1A4は、仮想ボリューム1Bのフォーマットライト時に、仮想ボリューム1Bのフォーマットに関する制御情報1Cを生成し、予め用意される実記憶領域に保存させる機能である。制御情報1Cを保存するための実記憶領域としては、例えば、メインストレージ装置1内のメモリ装置やハードディスク装置等を挙げることができる。
外部ストレージ装置2は、コントローラ2Aと、複数の実ボリューム2B(1)〜2B(3)と、各実ボリューム2B(1)〜2B(3)毎の制御情報2C(1)〜2C(3)とを備える。なお、以下の説明では、特に区別する必要が無い場合等に、実ボリューム2B(1)〜2B(3)を実ボリューム2Bと、制御情報2C(1)〜2C(3)を制御情報2Cと呼ぶ場合がある。
コントローラ2Aは、例えば、コマンド処理部2A1と、制御情報生成部2A4とを備える。コマンド処理部2A1は、メインストレージ装置1から受信したコマンドに応じて処理を行い、その処理結果をメインストレージ装置1に返す機能である。制御情報生成部2A4は、各実ボリューム2Bのフォーマットライト時に、各実ボリューム2Bのフォーマットに関する制御情報2Cをそれぞれ生成し、各実ボリューム2B内に保存させる機能である。
仮想ボリューム1Bは、メインストレージ装置1内に仮想的に設けられる論理ボリュームである。仮想ボリューム1Bの実体は、外部ストレージ装置2内の各実ボリューム2Bである。仮想ボリューム1Bの先頭から順番に、各実ボリューム2Bの記憶領域がそれぞれ割り当てられている。つまり、仮想ボリューム1Bの有する仮想的な記憶領域を3つに分割して捉えるのならば、第1の仮想記憶領域には第1の実ボリューム2B(1)の実記憶領域が、第2の仮想記憶領域には第2の実ボリューム2B(2)の実記憶領域が、第3の仮想記憶領域には第3の実ボリューム2B(3)の実記憶領域が、それぞれ対応付けられている。
メインフレーム3は、仮想ボリューム1Bの実体がどこに存在するかを何ら意識することなく、仮想ボリューム1Bに対してライトコマンドやリードコマンドを発行することができる。実際のデータの読み書きは、メインフレーム3のアクセス先に対応する実ボリューム2Bに対して行われる。コントローラ1A内のコマンド処理部1A1は、各変換部1A2,1A3を用いてコマンドやライトデータを変換させ、外部ストレージ装置2に送信させる。
各実ボリューム2Bは、それぞれ制御情報2Cを備える。各制御情報2Cは、その実ボリューム2Bの各シリンダ毎にそれぞれ生成される。各実ボリューム2Bは、複数の(多数の)シリンダを備えており、各シリンダは多数のトラックを備えている。さらに、各トラックは、複数のレコードを備えている。
制御情報2Cは、各シリンダの各トラックを構成する各レコードのサイズ等を管理するための情報である。換言すれば、制御情報2Cは、各トラックが書込み済であるか否かを示すビットマップ情報であると考えることもできる。制御情報2Cは、実ボリューム2Bについてフォーマットライトが要求された場合に、コントローラ2A内の制御情報生成部2A4により生成される。生成された制御情報2Cは、実ボリューム2B内の制御情報格納領域に保存される。
仮想ボリューム1Bの制御情報1Cも、実ボリューム2Bの制御情報1Cと同様に、フォーマットライト時に制御情報生成部1A4によって生成される。但し、仮想ボリューム1Bの制御情報1Cは、仮想的なボリューム1Bに関する制御情報であり、かつ、仮想ボリューム1Bとは別の実記憶領域に保存される点で、実ボリューム2Bに関する制御情報2Cと異なる。
本システムの動作を説明する。メインフレーム3が仮想ボリューム1Bにフォーマットライトを要求した場合、コントローラ1Aは、そのフォーマットライト要求を各実ボリューム2B用のフォーマットライト要求に変換する。この変換処理には、各変換部1A2,1A3が使用される。
外部ストレージ装置2は、メインストレージ装置1から受信したフォーマットライト要求に従って、各実ボリューム2Bをフォーマットする。その際、制御情報生成部2A4は、各実ボリューム2Bの制御情報2Cをそれぞれ生成して保存する。
メインストレージ装置1の制御情報生成部1A4は、メインフレーム3からのフォーマットライト要求に基づいて、仮想ボリューム1Bの制御情報1Cを生成し、予め用意された実記憶領域に格納する。これにより、仮想ボリューム1Bの各シリンダ毎に、そのシリンダの各トラックを構成する各レコードのデータサイズ等が判明する。
メインフレーム3がライトコマンドを発行した場合、メインストレージ装置1は、制御情報1Cを参照し、メインフレーム3が仮想ボリューム1Bの所定位置に書き込もうとするデータのサイズと、その所定位置にフォーマットライト時に設定されたデータサイズとを比較する。
両方のデータサイズが一致する場合、コントローラ1Aのコマンド処理部1A1は、メインフレーム3から受信したライトデータをコントローラ1A内のキャッシュメモリに記憶し、メインフレーム3にライトコマンドの処理が完了した旨を報告する。
フォーマットライト要求を発行して仮想ボリューム1Bを今後どのように使用するかを設定したのは、メインフレーム3である。従って、メインフレーム3により設定されたレコードのデータサイズと、メインフレーム3により書き込まれるレコードのデータサイズとは、通常の場合一致する。以下の説明では、フォーマットライト時に設定されたレコードのデータサイズと更新時(ライト時)のレコードのデータサイズとが一致する場合を、等長ライトを呼ぶ場合がある。等長ライトとは、予め設定されたサイズと等しいサイズでデータを書き込むことを意味する。
旧データの一部を更新して書き戻すというリードモディファイライトとは異なり、等長ライトの場合は、メインフレーム3から受信したライトデータをボリュームにそのまま書き込めばよい。つまり、コントローラ1Aは、メインフレーム3から受信したライトデータを、コントローラ1A内のキャッシュメモリに格納した時点で、ライトコマンドの処理が完了した旨をメインフレーム3に報告することができる。従って、等長ライトの場合は、ライトコマンドの処理時間を短縮でき、メインストレージ装置1のライト性能を改善できる。
キャッシュメモリ内のライトデータは、所定のタイミングで、外部ストレージ装置2に送信され、実ボリューム2Bを構成するディスクドライブに書き込まれる。キャッシュメモリ上のデータをディスクドライブに書き込む処理をデステージングと呼ぶ。逆に、キャッシュメモリにデータを格納する処理をステージングと呼ぶ。
メインストレージ装置1から外部ストレージ装置2にライトデータを転送する場合、コントローラ1Aは、ライトコマンド内のシリンダ番号を実ボリューム2Bのシリンダ番号に変換し、かつ、ライトデータの各レコード内のカウント値の一部を実ボリューム2Bのシリンダ番号に変換する。
外部ストレージ装置2のコントローラ2Aは、メインストレージ装置1から受信したライトコマンドに従って、メインストレージ装置1から受信したライトデータを実ボリューム2Bに書き込む。コントローラ2Aは、書込先の実ボリューム2Bに関する制御情報2Cを参照し、等長ライトであるか否かを判定する。等長ライトの場合は、コントローラ2A内のキャッシュメモリにライトデータを格納させた時点で、メインストレージ装置1にライトコマンドの処理が完了した旨を報告することができる。
このように構成される本実施形態によれば、メインフレーム用の複数の実ボリューム2Bを一つの仮想ボリューム1Bとしてまとめてメインフレーム3に提供できる。従って、ボリュームを有効に使用することができ、ユーザの使い勝手が向上する。
なお、メインフレームに限らず他のコンピュータにも、本実施例を適用できる。また、ストレージ装置は、直接メインフレームとコマンドやデータ等の送受信を行う構成でもよいし、あるいは、ホストコンピュータ等を介して送受信を行う構成でもよい。
なお、メインフレームに限らず他のコンピュータにも、本実施例を適用できる。また、ストレージ装置は、直接メインフレームとコマンドやデータ等の送受信を行う構成でもよいし、あるいは、ホストコンピュータ等を介して送受信を行う構成でもよい。
さらに、本実施例では、仮想ボリューム1Bへのフォーマットライト時に、仮想ボリューム1Bに関する制御情報1Cを作成して保持する。従って、メインフレーム3から等長ライトが要求された場合には、直ちにライト処理を完了することができる。以下、本実施形態について詳細に説明する。
図2は、本実施例に係る情報処理システムの全体構成を模式的に示す説明である。このシステムは、例えば、メインストレージ装置10と、外部ストレージ装置20と、メインフレーム30と、サーバ40とを備えている。図1との対応関係を説明する。メインストレージ装置10は図1中のメインストレージ装置1に、外部ストレージ装置20は図1中の外部ストレージ装置2に、メインフレーム30は図1中のメインフレーム3に、それぞれ対応する。コントローラ110は図1中のコントローラ1Aに、コントローラ210は図1中のコントローラ2Aに、それぞれ対応する。さらに、図3に示す仮想ボリューム123Vは図1中の仮想ボリューム1Bに、図3に示す外部ボリューム223は図1中の実ボリューム2Bに、図3に示す制御情報T10(V)は図1中の制御情報1Cに、図3に示す制御情報T10(1)−T10(3)は図1中の制御情報2C(1)−2C(3)に、それぞれ対応する。
図2に示すように、メインストレージ装置10は、コントローラ110と、ディスク搭載部120とから構成される。コントローラ110は、メインストレージ装置10の動作を制御する。ディスク搭載部(図中「HDU」)120は、複数のディスクドライブ121を搭載する。
本実施例のメインストレージ装置10は、外部ストレージ装置20の有するボリューム223をメインストレージ装置10内に取り込み、そのボリュームがあたかもメインストレージ装置10内の実ボリュームであるかのようにメインフレーム30に提供する。従って、メインストレージ装置10は、必ずしもディスクドライブ121を備えている必要はない。上述の通り、メインストレージ装置10は、外部ストレージ装置20内のボリュームを利用できるためである。メインストレージ装置10がディスクドライブ121やボリューム123を備えない場合でも、本発明は成立する。この場合、メインストレージ装置10は、メインフレーム用のボリューム仮想化装置として考えることができる。
コントローラ110の構成を説明する。コントローラ110は、例えば、複数のマイクロプロセッサ111,112,113と、共有メモリ114と、キャッシュメモリ115と、接続回路部116と、を備える。
マイクロプロセッサ111,112,113は、マイクロプロセッサやメモリ、データ転送回路、通信インターフェース回路等を含んで構成される制御基板である。第1のマイクロプロセッサ111(MP1,MP2)は、上位装置としてのメインフレーム30またはサーバ40と通信を行うための制御基板である。第2のマイクロプロセッサ112(MP3,MP4)は、外部ストレージ装置20と通信を行うための制御基板である。第3のマイクロプロセッサ113(MP5)は、各ディスクドライブ121と通信を行うためのものである。
第1のマイクロプロセッサ111のうち図2中の左側に示す2つのマイクロプロセッサ111(MP1)は、メインフレーム用の通信経路CN1を介して、メインフレーム30との間で通信を行う。第1のマイクロプロセッサ111のうち図2中の右側に示す2つのマイクロプロセッサ111(MP2)は、オープン用の通信経路CN2を介して、サーバ40との間で通信を行う。
同様に、第2のマイクロプロセッサ112のうち上側の2つのマイクロプロセッサ111(MP3)は、メインフレーム用の通信経路CN3を介して、外部ストレージ装置20との間でメインフレーム用の通信を行う。第2のマイクロプロセッサ112のうち下側の2つのマイクロプロセッサ111(MP4)は、オープン用の通信経路CN4を介して、外部ストレージ装置20との間でオープン用の通信を行う。メインフレーム用の通信は、例えば、FICONやESCON等の通信プロトコルに従う。オープン用の通信は、例えば、FCP(Fibre Channel Protocol)等の通信プロトコルに従う。
本実施例によるシステムには、メインフレーム用ボリュームの仮想化と、オープン用ボリュームの仮想化とを混在させている。以下、メインフレーム用ボリュームの仮想化を中心に説明する。なお、第1のマイクロプロセッサ111及び第2のマイクロプロセッサ112は、チャネルアダプタと呼ばれる場合がある。第3のマイクロプロセッサ113(MP5)は、ディスクアダプタとも呼ばれる。
共有メモリ(図中「SM」)114は、各マイクロプロセッサ111,112,113によって共有される各種の管理情報等を記憶する。キャッシュメモリ(図中「CM」)115は、メインフレーム30やサーバ40から受信したデータと、外部ストレージ装置20から受信したデータとを記憶する。
接続回路部116は、各マイクロプロセッサ111,112,113と共有メモリ114及びキャッシュメモリ115とをそれぞれ接続させる。各マイクロプロセッサ111,112,113は、接続回路部116を介して、共有メモリ114及びキャッシュメモリ115にアクセスすることができる。
ディスク搭載部120は、複数のディスクドライブ121を備えている。ディスクドライブ121としては、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
なお、ハードディスクデバイスに限らず、例えば、半導体メモリデバイス(フラッシュメモリデバイスを含む)、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等の、データを読み書き可能な種々の不揮発性記憶デバイスを利用可能である。
各ディスクドライブ121の有する物理的記憶領域をRAIDグループ122としてグループ化し、このグループ化された記憶領域に一つまたは複数の論理ボリューム123を設定することができる。例えば、4個1組のような複数のディスクドライブ121を用いて、冗長化された物理的記憶領域を生成し、この冗長化された記憶領域上に、論理的な記憶領域を設けることができる。なお、1つのディスクドライブ121に複数の論理ボリューム123を設けることもできる。
外部ストレージ装置20は、メインストレージ装置10と同様に、全体動作を制御するコントローラ210と、記憶領域を提供するディスク搭載部220とを備える。コントローラ210は、メインストレージ装置10と通信を行うためのマイクロプロセッサ211(MP1,MP2)と、ディスクドライブ221と通信を行うためのマイクロプロセッサ213(MP5)と、共有メモリ214と、キャッシュメモリ215と、接続回路部216とを備える。
マイクロプロセッサ211(MP1)は、メインストレージ装置10との間で、メインフレーム用の通信を行う。マイクロプロセッサ211(MP2)は、メインストレージ装置10との間で、オープン用の通信を行う。
ディスク搭載部220は、複数のディスクドライブ221を備える。RAIDグループ222には、一つ以上の論理ボリューム223を設けることができる。外部ストレージ装置20内の論理ボリューム223は、データを格納するための実記憶領域を備えている実ボリュームである。外部ストレージ装置20内に存在する実ボリュームであるため、以下の説明では、外部ボリューム223と呼ぶ場合がある。
図3に基づいて、仮想ボリューム123Vと外部ボリューム223との関係、及び各ボリューム123V,223と制御情報T10(V),T10(1)−T10(3)の関係を説明する。
メインストレージ装置10内には、仮想ボリューム123Vが設けられる。仮想ボリューム123Vの記憶領域(ユーザ領域#0)には、その先頭から順番に、複数の外部ボリューム223が対応付けられている。これについては、図4と共に後述する。
各外部ボリューム223は、ユーザ領域(図4中のUA)と制御情報格納領域(図4中のCA)とを備える。ユーザ領域には、ユーザデータが格納される。制御情報格納領域には、制御情報T10が格納される。制御情報T10の構成は、図6と共に後述する。簡単に言えば、制御情報T10は、ユーザ領域の各トラックがどのように使用されるかを示す情報である。
仮想ボリューム123Vにも、制御情報T10(V)が対応付けられる。仮想ボリューム123Vは実体を備えない仮想的な存在であるため、制御情報T10(V)は、予め用意された所定の記憶領域に格納される。所定の記憶領域としては、例えば、メインストレージ装置10内の論理ボリューム123、共有メモリ114を挙げることができる。
図4は、仮想ボリューム123Vと複数の外部ボリューム223との対応関係を示す説明図である。仮想ボリューム123Vは、シリンダ番号(以下、CYL#とも呼ぶ)0からシリンダ番号10016までの合計10017個のシリンダを有しているとする。各外部ボリューム223は、CYL#0からCYL#3338までの合計3339個のシリンダをそれぞれ有しているものとする。
仮想ボリューム123VのCYL#0からCYL#3338までの領域には、第1の外部ボリューム223(1)が対応付けられる。仮想ボリューム123VのCYL#3339からCYL#6677までの領域には、第2の外部ボリューム223(2)が対応付けられる。仮想ボリューム123VのCYL#6678からCYL#10016には、第3の外部ボリューム223(3)が対応付けられる。即ち、複数の外部ボリューム223の記憶領域を連結させることにより、仮想ボリューム123Vを構成している。
詳細は後述するが、メインフレーム30が仮想ボリューム123Vの第1領域(ユーザ領域#1)にアクセスする場合、コントローラ110は、コマンド内のシリンダ番号やレコード内のカウント値を変更せずに、外部ボリューム223(1)にアクセスすることができる。
メインフレーム30が仮想ボリューム123Vの第2領域(ユーザ領域#2)にアクセスする場合、コントローラ110は、ライトコマンドで指定されたシリンダ番号及びレコード内のカウント値を補正する必要がある。仮想ボリューム123Vの第2領域の各シリンダ番号と、第2領域に対応する外部ボリューム223(2)のシリンダ番号とは一致しないためである。この場合、コントローラ110は、メインフレーム30から指定されたCYL#から3339を減じて、外部ストレージ装置20にコマンドを発行する。同様に、メインフレーム30が仮想ボリューム123Vの第3領域(ユーザ領域#3)にアクセスする場合、コントローラ110は、メインフレーム30により指定されたCYL#から6678を減じて、外部ストレージ装置20にコマンドを発行する。
メインフレーム30が仮想ボリューム123Vからデータを読み出す場合、外部ボリューム223から読み出されたデータの各レコード内のカウント値も補正する。なお、図4に示すCYL#の値は一例であって、本発明はそれらの値に限定されない。
図5は、ボリュームの構成を模式的に示す説明図である。ボリューム(仮想ボリューム123V及び各外部ボリューム223)は、図4で示したように、それぞれ多数のシリンダを備えている。
各シリンダは、それぞれ15個のトラックから構成される。各トラックは、ヘッダ部(図中「HA」)と、複数のレコードR0〜Rnを備える。図5の下側に示すように、各レコードは、カウント部(図中「COUNT」)と、キー部(図中「KEY」)と、データ部(図中「DATA」)とを備える。このため、CKDフォーマットと呼ばれる。
カウント部は、アドレス情報(図中「CCHH」)と、論理レコード番号(図中「R#」)と、キー長(図中「KL」)と、データ長(図中「DL」)とを備える。アドレス情報のCCHHのうち、CCは論理シリンダアドレス(CYL#)を示し、HHは論理ヘッドアドレス(トラック番号)を示す。
このように、メインフレーム用のストレージシステムでは、各データの各レコード内に、アドレスやキー長及びデータ長を示す情報がそれぞれ含まれている。これに対し、オープン系のストレージシステムでは、論理ブロックのデータそのものが順番に格納されており、先頭論理ブロックアドレスと論理ブロックの個数を指定するだけで、データの読み書きが可能である。
図6は、制御情報の構造を示す説明図である。仮想ボリューム123Vの制御情報T10(V)及び各外部ボリューム223の制御情報T10(1)〜T10(3)の構成は、以下の通りである。以下、T10(V),T10(1)〜(3)を特に区別する必要が無い場合、T10と示す。制御情報T10は、メインフレーム30がCKDフォーマットライトを要求した場合に作成されて保存される。
図6(a)に示す通り、各ボリュームは、多数のシリンダを備える。ボリューム内の全シリンダは、所定個ずつのグループに分けられて管理される。図6(b)に示すように、各シリンダグループは、別の所定個ずつのサブグループに分けられて管理される。図6(c),(d)に示すように、各サブグループ内の各シリンダには、それぞれ制御用のデータC10〜C14が対応付けられる。即ち、制御情報T10は、各シリンダ毎にそれぞれ設けられる。
制御データC10は、そのシリンダを構成する各トラック(図中、トラックを「HD」と示す場合がある)毎のビットマップである。制御データC11は、第1データサイズである。制御データC12は、第2データサイズである。制御データHDは、トラックに関する情報である。制御データLRC(Longitudinal Redundancy check)は、水平パリティチェックの値である。HD及びLRCは、本発明と直接的な関係はないため、これ以上の説明を省略する。
図6(e),(f)に示すように、各トラック毎にそれぞれ4ビット(C15〜C17)が割り当てられる。C15は、そのトラック内の各レコードが標準レコードであるか、それとも非標準レコードであるかを示す。標準レコードの場合、C15には0がセットされる。非標準レコードの場合、C15には1がセットされる。C16は予備のビットであり、使用されていない。
C17及びC18の2つのビットは、そのトラックを構成する各レコードのサイズを示す情報である。以下、C17及びC18の2つのビットを、判定ビットと呼ぶ。第1データサイズDL1に一致する場合、判定ビットには10がセットされる。第2データサイズDL2に一致する場合、判定ビットには01がセットされる。第1データサイズ及び第2データサイズのいずれにも一致しない場合、判定ビットには00がセットされる。
図6に示すように、制御情報は各シリンダ毎に作成される。各シリンダの制御情報には、そのシリンダ内の全トラックについて、各トラックに書き込まれるレコードのサイズが示されている。
図7は、メインストレージ装置10が外部ストレージ装置20にアクセスするために使用される管理テーブルT20の構成を示す。このテーブルT20は、例えば、仮想ボリューム番号C21と、ポート番号C22と、外部ストレージ装置番号C23と、ポート番号C24と、外部ボリューム番号C25とを対応付けている。
仮想ボリューム番号C21は、メインストレージ装置10内の仮想ボリューム123Vを識別する情報である。ポート番号C22は、メインストレージ装置10から外部ストレージ装置20にコマンドやデータを送信するために使用される通信ポートを識別する情報である。外部ストレージ装置番号C23は、外部ストレージ装置20を識別するための情報である。ポート番号C24は、外部ボリューム223に対応付けられている通信ポートを識別する情報である。外部ボリューム番号C25は、外部ボリューム223を識別する情報である。
テーブルT20の構成からわかるように、複数の外部ストレージ装置がそれぞれ有する外部ボリュームを一つの仮想ボリューム123Vに対応付けることができる。なお、図7に示す項目以外の他の項目をテーブルT20で管理してもよい。例えば、外部ボリューム223を構成するディスクドライブの種類、ボリュームサイズ、RAIDレベル、空き容量等を管理することもできる。
図8は、コマンド内のパラメータ及びレコード内のカウント値を補正(変換)するために使用されるテーブルT30の構成を示す。このテーブルT30は、例えば、外部ボリューム番号C31と、仮想ボリュームの各領域C32と、シリンダ番号の補正値C33とを対応付けて管理する。シリンダ番号の補正値C33は、シーク処理時の補正値C331と、ライト処理時の補正値C332と、リード処理時の補正値C333を備える。
外部ボリューム番号C31は、各外部ボリューム223を識別する情報である。C31の値と図7に示すC25の値は等しい。仮想ボリュームの領域C32とは、外部ボリューム223が対応付けられている仮想ボリューム123Vの領域を示す情報である。
シリンダ番号の補正値C33は、外部ストレージ装置20にコマンドを送信等する場合に使用されるシリンダ番号の補正値である。シーク処理時、ライト処理時及びリード処理時のそれぞれについて、仮想ボリュームの領域C32に対応する補正値がそれぞれ設定されている。
図9は、CKDフォーマットライト処理を示すフローチャートである。以下に示す各フローチャートは、各処理の概要を示しており、実際のコンピュータプログラムと相違する場合がある。いわゆる当業者であれば、図示されたステップの変更や削除、新たなステップの追加等を行うことができるであろう。
CKDフォーマットライト処理は、ボリュームの使用方法を設定する。メインフレーム30がフォーマットライト要求を発行すると(S10)、メインストレージ装置10は、仮想ボリューム123Vの制御情報T10(V)を生成し、所定の記憶領域(例えば、共有メモリ114)に記憶する(S11)。
メインストレージ装置10は、メインフレーム30から受信したフォーマットライト要求を、シリンダ番号補正テーブルT30を用いることにより、外部ストレージ装置20用のフォーマットライト要求に変換する(S12)。メインストレージ装置10は、外部接続管理テーブルT20を用いることにより、S12で変換されたフォーマットライト要求を外部ストレージ装置20に送信する(S13)。
外部ストレージ装置20は、メインストレージ装置10からフォーマットライト要求を受信すると、そのフォーマットライト要求で指定された外部ボリューム223についての制御情報T10((1)〜(3)のいずれか)を作成する(S14)。作成された制御情報は、その外部ボリューム223の制御情報格納領域に記憶される。
外部ストレージ装置20はメインストレージ装置10にデータの転送を要求する(S15)。この要求を受けて、メインストレージ装置10は、メインフレーム30にデータの転送を要求する(S16)。
メインフレーム30は、メインストレージ装置10にライトデータを転送する(S17)。このライトデータは、例えば、0データである。メインストレージ装置10は、メインフレーム30から受信したライトデータをキャッシュメモリ115に記憶し(S18)、メインフレーム30にライトコマンドの処理が完了した旨を報告する(S19)。
メインストレージ装置10は、ライトデータの各レコードに含まれているカウント値を外部ボリューム223のシリンダ番号に変換し(S20)、その変換後のライトデータを外部ストレージ装置20に送信する(S21)。
外部ストレージ装置20は、メインストレージ装置10から受信したライトデータをキャッシュメモリ215に格納し(S22)、メインストレージ装置10にライトコマンドの処理が完了した旨を報告する(S23)。その後、所定のタイミングを見計らって、外部ストレージ装置20は、キャッシュメモリ215に記憶されたライトデータを、外部ボリューム223に書き込む(S24)。
図10は、図9中にS11,S14で示す制御情報の生成方法を示すフローチャートである。仮想ボリューム123V及び各外部ボリューム223のいずれも、以下に述べるように、各シリンダの各トラックが順番にフォーマットされ、制御情報が生成される。
コントローラ(110または210のいずれかである。)は、最初のシリンダ(S110)の先頭トラックをフォーマットする場合(S111)、コマンド(WRCKD)で指定されるデータサイズ(DL)を、第1データサイズDL1として記憶し(S112)、判定ビットに10をセットする(S113)。
次のトラック(HD#1)をフォーマットする場合(S114)、そのトラックについてコマンドが指定するデータサイズ(DL)と、既に記憶されている第1データサイズDL1とが、一致するか否かが判定される(S115)。
一致する場合(S115:YES)、そのトラックの判定ビットには、10がセットされる(S116)。不一致の場合(S115:NO)、第2データサイズDL2がセットされているか否かを判定する(S118)。ここでは、2番目のトラック(HD#1)について説明しているので、第2データサイズDL2は未だセットされていない(S118:NO)。そこで、コントローラは、コマンド(WRCKD)で指定されたデータサイズをDL2にセットし(S119)、判定ビットを01にセットする(S120)。
そして、コントローラは、処理対象シリンダの最終トラックであるか否かを判定する(S117)。処理対象トラックはHD#1であり、最終トラックではないので(S117:NO)、S114に戻って処理対象トラックの番号を1つ進める。即ち、処理対象トラックは、HD#2となる。
コントローラは、HD#2について指定されたデータサイズが、セット済のDL1またはDL2のいずれか一方と一致するか否かを判定する(S115)。HD#2のデータサイズがDL1と一致する場合(S115:YES)、コントローラは、判定ビットに10をセットする(S116)。HD#2のデータサイズがDL2と一致する場合(S115:YES)、コントローラは、判定ビットに01をセットする(S116)。
HD#2について指定されたデータサイズがDL1またはDL2のいずれとも不一致の場合(S115:NO)、DL2はセット済であるから(S118:YES)、判定ビットには00がセットされる(S121)。
なお、上記では、HD#0のデータサイズとHD#1のデータサイズとが一致せず、DL1にはHD#0で指定されたデータサイズがセットされ、DL2にはHD#1で指定されたデータサイズがセットされる場合を説明した。もしも、HD#0のデータサイズとHD#1のデータサイズとが一致し(HD#0のデータサイズ=HD#1のデータサイズ=DL1)、HD#2のデータサイズがDL1と不一致の場合(S115:NO,S118:NO)、HD#2のデータサイズがDL2にセットされる(S119)。
以上の処理(S111〜S121)を、各シリンダの先頭トラックから最終トラックまで実行することにより、処理対象シリンダの制御情報が確定する。ボリュームの各シリンダ毎に上述の処理を実行することにより、ボリューム内の全シリンダについて制御情報が設定される(S122,S123)。外部ボリューム223のような実ボリュームの場合は、ユーザデータを記憶するユーザ領域についてのみ制御情報が設定される。
図11は、仮想ボリューム123Vに対する更新処理を示すフローチャートである。メインストレージ装置10は、メインフレーム30からライトコマンドを受信すると(S30)、そのライトコマンドで指定された書込先トラックに関する制御情報をメインストレージ装置10が保持しているか否かを判定する(S31)。
制御情報が存在する場合(S31:YES)、メインストレージ装置10は、共有メモリ114またはディスクドライブ121から制御情報を読み出してキャッシュメモリ115に格納し、書込先トラックに関する制御情報を参照する(S32)。
メインストレージ装置10は、メインフレーム30から指定された書込みサイズと制御情報に設定されているデータサイズとが一致するか否か、つまり、等長ライトであるか否かを判定する(S33)。
等長ライトの場合(S33:YES)、メインストレージ装置10は、メインフレーム30から受信したライトデータをキャッシュメモリ115に記憶し(S34)、ライトコマンドの処理が完了した旨をメインフレーム30に報告する(S35)。
上述の通り、本実施例では、外部ボリューム223のフォーマットライト時に、仮想ボリューム123Vについても制御情報を生成して保持する。従って、通常の場合、メインフレーム30から指定される書込みサイズと制御情報内のデータサイズとは一致するため、図11中に二点鎖線で示す範囲(S31〜S35)で更新処理が完了する。即ち、メインストレージ装置10は、ライトデータをキャッシュメモリ115に格納した時点で、ライトコマンドの処理完了をメインフレーム30に通知することができ、別のタイミングでデステージ処理を行うことができる。
もしも、書込先トラックに関する制御情報をメインストレージ装置10が保持していない場合(S31:NO)、または、等長ライトではない場合(S33:NO)のいずれかの場合、メインストレージ装置10は、更新対象データがキャッシュメモリ115に存在するか否かを判定する(S36)。
更新対象データがキャッシュメモリ115に記憶されている場合(S36:YES)、メインストレージ装置10は、メインフレーム30から受信したデータと更新対象データとをキャッシュメモリ115上でマージする(S34)。メインストレージ装置10は、メインフレーム30にライトコマンドの完了を通知する(S35)。
更新対象データがキャッシュメモリ115に記憶されていない場合(S36:NO)、メインストレージ装置10は、更新対象データを取得すべく、外部ストレージ装置20にリードコマンドを発行する(S37)。リードコマンド内のパラメータ(シリンダ番号)は、読出し先の外部ボリューム223のシリンダ番号に設定される。メインストレージ装置10は、外部ストレージ装置20にリードコマンドを発行する場合、メインフレーム30との間のライトコマンド処理をいったん中止させる。
外部ストレージ装置20は、メインストレージ装置10からのリードコマンドを受信すると、要求されたデータを外部ボリューム223から読出し(S38)、メインストレージ装置10に送信する(S39)。
メインストレージ装置10は、外部ストレージ装置20から受信したデータをキャッシュメモリ115に格納する(S40)。メインストレージ装置10は、キャッシュメモリ115上で、受信データ内のカウント値を仮想ボリューム123Vに応じたカウント値に変換する(S41)。その後、メインフレーム30から同一の書込先について更新が再度要求された場合、S36でYESと判定され、S34,S35のステップに進む。
図12は、メインストレージ装置10のキャッシュメモリ115に蓄積されたライトデータを、外部ストレージ装置20内の外部ボリューム223に書き込むための、デステージ処理を示すフローチャートである。
メインストレージ装置10は、外部ストレージ装置20にライトコマンドを発行する(S50)。メインストレージ装置10は、外部ストレージ装置20からの転送要求を受信すると(S51)、デステージ対象データの各レコードのカウント値を、書込先である外部ボリューム223内のシリンダ番号に変換する(S52)。メインストレージ装置10は、キャッシュメモリ115に記憶されているデステージ対象データ(即ち、ライトデータである)を、外部ストレージ装置20に送信する(S53)。
外部ストレージ装置20は、メインストレージ装置10から受信したデータをキャッシュメモリ215に記憶し(S54)、メインストレージ装置10にライトコマンドの完了を報告する(S55)。その後、所定のタイミングを見計らって、外部ストレージ装置20は、キャッシュメモリ215に記憶されたデータを外部ボリューム223を構成するディスクドライブ221に書き込む(S56)。
なお、上記では、ライトコマンドの完了とディスクドライブ221への書込みとが非同期式の場合を説明した。これに代えて、外部ボリューム223を構成するディスクドライブ221の記憶領域にデータを書き込んだ後で、メインストレージ装置10にライトコマンドの処理完了を通知する構成でもよい。
図13は、メインフレーム30が仮想ボリューム123Vからデータを読み出すためのリード処理を示すフローチャートである。メインフレーム30は、仮想ボリューム123Vからデータを読み出すべく、リードコマンドを発行する(S60)。メインストレージ装置10は、メインフレーム30から受信したリードコマンド内のパラメータ(シリンダ番号)を、読出し先の外部ボリューム223内のシリンダ番号に変換して、外部ストレージ装置20にリードコマンドを発行する(S61)。
つまり、メインストレージ装置10は、仮想ボリューム123Vの読出し対象領域に対応する外部ボリューム223のシリンダ番号を指定して、新たなリードコマンドを生成し、外部ストレージ装置20に発行する。
外部ストレージ装置20は、メインストレージ装置10からリードコマンドを受信すると(S62)、外部ボリューム223からデータを読み出してメインストレージ装置10に送信する(S63)。
メインストレージ装置10は、外部ストレージ装置20から受信したデータをキャッシュメモリ115に記憶し(S64)、受信したデータ内の各レコードのカウント値を仮想ボリューム123Vに応じて書き換える(S65)。即ち、メインストレージ装置10は、キャッシュメモリ115上において、受信データの各レコード内のカウント部のうちCCの値を仮想ボリューム123Vのシリンダ番号に書き換える。
そして、メインストレージ装置10は、カウント値の書き換えられたデータをメインフレーム30に送信する(S66)。これにより、メインフレーム10は、仮想ボリューム123Vからデータを読み出すことができる(S67)。
実施例は上述の構成を備えるため、複数の外部ボリューム223を一つの仮想ボリューム123Vとして仮想化し、メインフレーム30に提供することができる。
さらに、本実施例では、仮想ボリューム123Vの各トラックがどのように使用されるかを示す制御情報を、メインストレージ装置10内で作成して保持する。従って、メインフレーム30からの書込みサイズと仮想ボリューム123V内の書込先に設定されたデータサイズとが一致する等長ライトの場合、直ちに処理することができ、メインストレージ装置10のライト性能を向上できる。
等長ライトの場合、メインフレーム30から受信したライトデータをメインストレージ装置10内のキャッシュメモリ115に記憶させた時点で、メインフレーム30にライトコマンドの処理完了を通知できる。仮想ボリューム123Vの制御情報は、メインフレーム30からのフォーマットライト要求に応じて自動的に作成されるため、通常の場合、メインフレーム30からのライトコマンドは等長ライトとして処理される。
従って、仮想ボリューム123Vの制御情報をメインストレージ装置10内で作成して保持することにより、メインストレージ装置10のライト性能を低下させることなく、仮想ボリューム123Vをメインフレーム30に提供できる。
さらに、本実施例では、外部ボリューム223のフォーマットライト時に、外部ボリューム223に関する制御情報の生成と同期させて、仮想ボリューム123Vの制御情報を生成する。従って、仮想ボリューム123Vの制御情報と各外部ボリューム223の制御情報とを同時期に作成することができ、速やかにフォーマットライト処理を完了させることができる。メインフレーム30からのフォーマットライト要求は、メインストレージ装置10を経由して外部ストレージ装置20に伝達されるため、その際に仮想ボリューム123Vの制御情報を同時に生成する方が効率的である。
これに対し、先に各外部ボリューム223の制御情報を作成し、その後に、メインストレージ装置10が外部ストレージ装置20から各外部ボリューム223の制御情報を収集して、仮想ボリューム123Vに関する制御情報を生成する方法も考えられる。しかし、この場合は、仮想ボリューム123Vの制御情報を作成するまでに時間がかかり、フォーマットライト処理の完了に要する時間が長くなる。但し、この方法も、特許請求の範囲から除外されない限り、本発明の範囲に含まれる。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
1:メインストレージ装置、1A:コントローラ、1A1:コマンド処理部、1A2:コマンド内パラメータ変換部、1A3:レコード内パラメータ変換部、1A4:制御情報生成部、1B:仮想ボリューム、1C:制御情報、2:外部ストレージ装置、2A:コントローラ、2A1:コマンド処理部、2A4:制御情報生成部、2B:外部ボリューム(実ボリューム)、2C:制御情報、3:メインフレーム、4,5:通信経路、10:メインストレージ装置、20:外部ストレージ装置、30:メインフレーム、40:サーバ、110:コントローラ、111,112,113:マイクロプロセッサ、114:共有メモリ、115:キャッシュメモリ、116:接続回路部、120:ディスク搭載部、121:ディスクドライブ、122:RAIDグループ、123:論理ボリューム、123V:仮想ボリューム、210:コントローラ、211,213:マイクロプロセッサ、214:共有メモリ、215:キャッシュメモリ、216:接続回路部、220:ディスク搭載部、221:ディスクドライブ、222:RAIDグループ、223:外部ボリューム(実ボリューム)。
Claims (12)
- メインフレーム及び他の記憶制御装置に接続されるメインフレーム用記憶制御装置であって、
前記他の記憶制御装置は、複数のメインフレーム用の実ボリュームを備えており、
前記各実ボリュームに対応付けられる仮想ボリュームと、
前記メインフレームから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換部と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成部と、
前記変換部と前記制御情報生成部とを用いて、前記メインフレームから発行されるコマンドを処理し、その処理結果を前記メインフレームに通知するコマンド処理部と、
を備えるメインフレーム用記憶制御装置。 - 前記変換部は、前記コマンド内のパラメータを変換するためのコマンド変換部と、前記データ内のカウント値を変換するためのデータ変換部とを備えている、請求項1に記載のメインフレーム用記憶制御装置。
- 前記変換部は、
前記コマンド内のパラメータを変換するためのコマンド変換部であって、前記メインフレームから前記仮想ボリュームに対する前記コマンドを受信した場合に、このコマンド内の第1シリンダ番号を前記各実ボリュームのうち対応する実ボリュームの第2シリンダ番号に変換するコマンド変換部と、
前記メインフレームまたは前記他の記憶制御装置のいずれかから受信した前記データの各レコード内のカウント値をそれぞれ変換するためのデータ変換部であって、前記メインフレームから前記データを受信した場合には、このデータ内の各レコードのカウント値を前記第2シリンダ番号にそれぞれ変換し、前記他の記憶制御装置から前記データを受信した場合には、このデータ内の各レコードのカウント値を前記第1シリンダ番号にそれぞれ変換する、データ変換部と、
を備えている請求項1に記載のメインフレーム用記憶制御装置。 - 前記制御情報生成部は、前記メインフレームが前記仮想ボリュームにフォーマットライトを要求した場合に、前記制御情報を各シリンダ毎に生成して保存する、請求項1〜3のいずれかに記載のメインフレーム用記憶制御装置。
- 前記他の記憶制御装置は、前記各実ボリュームのフォーマットに関する他の制御情報を生成する他の制御情報生成部であって、フォーマットライトの要求に従って各シリンダ毎に生成される前記他の制御情報を前記実ボリューム内の制御情報領域に格納させる、他の制御情報生成部を備えており、
前記メインフレームが前記仮想ボリュームにフォーマットライトを要求した場合、前記変換部は、前記フォーマットライトの要求を前記各実ボリュームに対するフォーマットライトの要求に変換して前記他の記憶制御装置に送信させ、
前記制御情報生成部は、前記他の制御情報生成部による前記他の制御情報の生成と同期して、前記仮想ボリュームのフォーマットに関する前記制御情報を生成するようになっている、請求項1〜4のいずれかに記載のメインフレーム用記憶制御装置。 - 前記制御情報は、シリンダを構成する各トラックの各レコード毎のデータサイズを記憶する情報である、請求項1〜5のいずれかに記載のメインフレーム用記憶制御装置。
- 前記仮想ボリュームの記憶領域と前記各実ボリュームの記憶領域との対応関係に基づいてシリンダ番号を補正するためのシリンダ番号補正テーブルを更に備え、
前記コマンド変換部及び前記データ変換部は、前記シリンダ番号補正テーブルを用いることにより、前記第1シリンダ番号と前記第2シリンダ番号との変換を行う、請求項3に記載のメインフレーム用記憶制御装置。 - 前記仮想ボリュームの記憶領域の先頭から順番に、前記各実ボリュームの記憶領域のうちユーザにより使用可能な記憶領域が対応付けられている、請求項1〜7のいずれかに記載のメインフレーム用記憶制御装置。
- 他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめて、メインフレームに提供するためのメインフレーム用ボリュームの仮想化方法であって、
前記メインフレームから前記仮想ボリュームへのフォーマットライトが要求された場合に、前記仮想ボリュームのフォーマットに関する制御情報を生成し、生成した制御情報を前記仮想ボリュームに対応付けて、所定の実記憶領域に記憶させるステップと、
前記フォーマットライトの要求を前記仮想ボリュームに対応付けられている前記各実ボリュームへのフォーマットライトの要求に変換して前記他の記憶制御装置に送信させることにより、前記他の記憶制御装置内で前記各実ボリュームのフォーマットに関する他の制御情報をそれぞれ生成させるステップと、
前記メインフレームから前記仮想ボリュームへのライトコマンドを受信した場合には、前記制御情報に記憶されているデータサイズと前記メインフレームが指定するデータサイズとが一致するか否かを判定するステップと、
前記制御情報に記憶されている前記データサイズと前記メインフレームが指定する前記データサイズとが一致する場合は、前記メインフレームから受信するライトデータをキャッシュメモリに記憶させ、前記メインフレームに前記ライトコマンドの処理が完了した旨を通知するステップと、
前記制御情報に記憶されている前記データサイズと前記メインフレームが指定するデータサイズとが不一致の場合は、前記他の記憶制御装置にリードコマンドを発行し、前記ライトコマンドに関する所定のデータを前記他の記憶制御装置に要求するステップと、
前記他の記憶制御装置から受信したデータに基づいて、前記メインフレームから受信したライトコマンドを処理するステップと、
をそれぞれ実行する、メインフレーム用ボリュームの仮想化方法。 - 前記ライトコマンドを処理するステップの後に、前記キャッシュメモリに記憶された前記ライトデータを前記他の記憶制御装置に送信し、前記各実ボリュームのうち対応する実ボリュームに記憶させるステップを更に備える、請求項9に記載のメインフレーム用ボリュームの仮想化方法。
- コンピュータを、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめてメインフレームに提供する仮想化装置として機能させるためのコンピュータプログラムであって、
前記メインフレームから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換機能と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成機能と、
前記変換部と前記制御情報生成部とを用いて、前記メインフレームから発行されるコマンドを処理し、その処理結果を前記メインフレームに通知するコマンド処理機能と、
を、前記コンピュータ上にそれぞれ実現させるためのコンピュータプログラム。 - ホストコンピュータ及び他の記憶制御装置に接続されるホストコンピュータ用記憶制御装置であって、
前記他の記憶制御装置は、複数のホストコンピュータ用の実ボリュームを備えており、
前記各実ボリュームに対応付けられる仮想ボリュームと、
前記ホストコンピュータから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換部と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成部と、
前記変換部と前記制御情報生成部とを用いて、前記ホストコンピュータから発行されるコマンドを処理し、その処理結果を前記ホストコンピュータに通知するコマンド処理部と、
を備えるホストコンピュータ用記憶制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008011104A JP2009175824A (ja) | 2008-01-22 | 2008-01-22 | メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 |
US12/042,698 US7899971B2 (en) | 2008-01-22 | 2008-03-05 | Mainframe storage controller and mainframe volume virtualization method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008011104A JP2009175824A (ja) | 2008-01-22 | 2008-01-22 | メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009175824A true JP2009175824A (ja) | 2009-08-06 |
Family
ID=40877356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008011104A Pending JP2009175824A (ja) | 2008-01-22 | 2008-01-22 | メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7899971B2 (ja) |
JP (1) | JP2009175824A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013516667A (ja) * | 2010-04-27 | 2013-05-13 | 株式会社日立製作所 | ThinProvisioningが適用された、メインフレーム系のストレージ装置 |
JP2013532339A (ja) * | 2010-06-18 | 2013-08-15 | エルエスアイ コーポレーション | スケーラブルな記憶装置 |
JP2014167812A (ja) * | 2014-04-25 | 2014-09-11 | Hitachi Ltd | ストレージ装置及びその制御方法 |
US9146693B2 (en) | 2013-02-14 | 2015-09-29 | Panasonic Intellectual Property Management Co., Ltd. | Storage control device, storage system, and storage control method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176897B2 (en) * | 2007-09-04 | 2015-11-03 | Nintendo Co., Ltd. | Writing area security system |
JP5537732B2 (ja) * | 2010-08-11 | 2014-07-02 | 株式会社日立製作所 | ストレージシステム |
WO2012158890A1 (en) * | 2011-05-17 | 2012-11-22 | Datavode Inc. | Providing access to mainframe data objects in a heterogeneous computing environment |
WO2013014701A1 (en) * | 2011-07-22 | 2013-01-31 | Hitachi, Ltd. | Data storage apparatus and data management method |
US8527732B2 (en) * | 2011-09-16 | 2013-09-03 | Hitachi, Ltd. | Storage system and method of controlling storage system |
US20150058868A1 (en) * | 2013-08-23 | 2015-02-26 | Ramanathan Padinjarel | Techniques for a common object model |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542961B1 (en) | 1998-12-22 | 2003-04-01 | Hitachi, Ltd. | Disk storage system including a switch |
JP2000242434A (ja) | 1998-12-22 | 2000-09-08 | Hitachi Ltd | 記憶装置システム |
-
2008
- 2008-01-22 JP JP2008011104A patent/JP2009175824A/ja active Pending
- 2008-03-05 US US12/042,698 patent/US7899971B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013516667A (ja) * | 2010-04-27 | 2013-05-13 | 株式会社日立製作所 | ThinProvisioningが適用された、メインフレーム系のストレージ装置 |
JP2013532339A (ja) * | 2010-06-18 | 2013-08-15 | エルエスアイ コーポレーション | スケーラブルな記憶装置 |
US9146693B2 (en) | 2013-02-14 | 2015-09-29 | Panasonic Intellectual Property Management Co., Ltd. | Storage control device, storage system, and storage control method |
JP2014167812A (ja) * | 2014-04-25 | 2014-09-11 | Hitachi Ltd | ストレージ装置及びその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US7899971B2 (en) | 2011-03-01 |
US20090187730A1 (en) | 2009-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009175824A (ja) | メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法 | |
JP4634157B2 (ja) | ストレージシステム | |
US7269667B2 (en) | Disk array system and method for migrating from one storage system to another | |
JP3671595B2 (ja) | 複合計算機システムおよび複合i/oシステム | |
US9003119B2 (en) | Control apparatus and method, and storage apparatus | |
US7996643B2 (en) | Synchronizing logical systems | |
JP2006146833A (ja) | ディスク装置の整合性検査支援方法およびディスクアレイ装置の整合性検査方法 | |
KR20150131359A (ko) | 데이터의 융통성있는 배치를 위한 다층형 저장 관리 | |
US20160239207A1 (en) | Storage control apparatus and storage control method | |
JP6011153B2 (ja) | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
KR20030091664A (ko) | 기억 장치 및 기억 장치 서브 시스템 | |
WO2016181464A1 (ja) | ストレージシステム、及び、記憶制御方法 | |
US8418029B2 (en) | Storage control device and storage control method | |
KR20230035055A (ko) | 기록 세트의 트랙에 대한 캐시 리소스가 해제된 이후 기록 세트의 트랙에 대한 예상 기록을 위한 캐시 리소스의 획득 | |
US8041850B2 (en) | Storage apparatus and data integrity assurance method | |
JP5760556B2 (ja) | ストレージ装置、制御装置およびストレージ装置制御方法 | |
JP6944117B2 (ja) | 情報処理装置、転送制御方法および転送制御プログラム | |
US9639417B2 (en) | Storage control apparatus and control method | |
US20160357479A1 (en) | Storage control apparatus | |
JP2005346426A (ja) | データ共有ディスク装置 | |
JP5585930B2 (ja) | ディスクアレイ装置、及びデータ制御方法 | |
JP4075790B2 (ja) | 複合計算機システムおよび複合i/oシステム | |
JP4285202B2 (ja) | 複合計算機システムおよび複合i/oシステム | |
JP2022166986A (ja) | ストレージ制御装置およびストレージ制御方法 | |
JP2022129774A (ja) | ストレージ装置、及び、そのデータ処理方法 |