JP4863765B2 - バックアップ及び/又はリストアを行う記憶制御方法及びシステム - Google Patents

バックアップ及び/又はリストアを行う記憶制御方法及びシステム Download PDF

Info

Publication number
JP4863765B2
JP4863765B2 JP2006135776A JP2006135776A JP4863765B2 JP 4863765 B2 JP4863765 B2 JP 4863765B2 JP 2006135776 A JP2006135776 A JP 2006135776A JP 2006135776 A JP2006135776 A JP 2006135776A JP 4863765 B2 JP4863765 B2 JP 4863765B2
Authority
JP
Japan
Prior art keywords
tape
disk device
disk
storage
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006135776A
Other languages
English (en)
Other versions
JP2007305076A (ja
Inventor
隆 天野
陽一 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Computer Peripherals Co Ltd
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 Computer Peripherals Co Ltd, Hitachi Ltd filed Critical Hitachi Computer Peripherals Co Ltd
Priority to JP2006135776A priority Critical patent/JP4863765B2/ja
Priority to US11/514,829 priority patent/US7461201B2/en
Priority to EP06256388A priority patent/EP1860560B1/en
Priority to DE602006020118T priority patent/DE602006020118D1/de
Publication of JP2007305076A publication Critical patent/JP2007305076A/ja
Priority to US12/289,668 priority patent/US8108597B2/en
Application granted granted Critical
Publication of JP4863765B2 publication Critical patent/JP4863765B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、データのバックアップ及び/又はリストアのための記憶制御技術に関する。
例えば、特開2002−41345号公報には、計算機、ディスクストレージ及びテープライブラリ装置を、SAN(Storage Area Network)と呼ばれる通信ネットワークに接続し、バックアップ処理用のサーバ(以下、バックアップサーバと称する)により、ディスクストレージに記憶されたデータをテープライブラリ装置へバックアップする記憶制御方法が開示されている。
特開2002−41345号公報
上述した記憶制御方法によれば、バックアップ対象のデータがバックアップサーバを経由してバックアップが行われる。このため、バックアップ性能は、バックアップサーバに依存し、バックアップサーバの処理性能が低い場合には、バックアップに要する時間が長大化してしまうという課題がある。
また、データのバックアップ先として、テープ装置(以下、単に「テープ」と言う)が有効であると考えられる。一般的に、ビットコスト(1ビット当たりのコスト)がディスク装置(例えばハードディスク)に比べて低いためである。しかし、テープは、ディスク装置に比べて書き込みや読出しに時間がかかる場合がある。特に、いわゆるランダムアクセスが発生する場合には、時間がかかる。
これと同様の課題は、例えば、バックアップされたデータを、バックアップと逆の流れでリストアする場合、具体的には、テープライブラリ装置からバックアップサーバを経由してディスクストレージにデータをリストアする場合にも、存在し得る。
従って、本発明の目的は、バックアップサーバを不要とし、バックアップ先及び/又はリストア元がテープであっても高速にバックアップ及び/又はリストアすることができる、記憶制御技術を提供することにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明に従う計算機システムは、計算機と、前記計算機に接続された第一のストレージシステムと、前記第一のストレージシステムに接続された第二のストレージシステムと
を備える。前記第二のストレージシステムは、データを記憶する複数のテープ装置と、アクセス先がランダムに異なるアクセスであるランダムアクセスをテープ装置よりも高速に行うことのできる第一の記憶装置と、前記第一の記憶装置をエミュレーションした仮想記憶装置と、前記複数のテープ装置や前記第一の記憶装置へのアクセスを制御する第二のコントローラとを備える。前記計算機は、コピー指示を前記第一のストレージシステムに送信する計算機制御部を備える。前記第一のストレージシステムは、データを記憶する第二の記憶装置と、前記仮想記憶装置がマッピングされた第三の記憶装置と、前記第二の記憶装置や前記第三の記憶装置へのデータアクセスを制御する第一のコントローラとを備える。前記第一のコントローラは、前記計算機から前記コピー指示を受信し、該コピー指示に応答して、前記第二の記憶装置と前記第三の記憶装置との間でデータコピーを行い、その際、前記第三の記憶装置に生じるデータアクセスのための、前記仮想記憶装置を指定したデータアクセスコマンドを前記第二のストレージシステムに送信する。前記第二のコントローラは、前記第一の記憶装置上に記憶領域を確保し、前記複数のテープ装置のうちの前記仮想記憶装置に対応したテープ装置である対象テープ装置から、前記記憶領域にデータを読出し、前記第一のストレージシステムから前記仮想記憶装置に対するデータアクセスコマンドを受信した場合、前記対象テープ装置に対してではなく、前記記憶領域に対してデータアクセスを行う。
第一の実施態様では、前記コピー指示は、前記第二の記憶装置を前記第三の記憶装置にバックアップすることの指示とすることができる。前記第一のコントローラは、前記コピー指示に応答して、前記第二の記憶装置から前記第三の記憶装置へのデータコピーを行い、その際、前記第三の記憶装置に生じる書き込みのための、前記仮想記憶装置を指定したライトコマンドを前記第二のストレージシステムに送信することができる。前記第二のコントローラは、前記第一のストレージシステムから前記仮想記憶装置に対するライトコマンドを受信し、前記対象テープ装置に対してではなく、前記記憶領域に対して書き込みを行い、該書き込みが完了した後、前記記憶領域上のデータを前記対象テープ装置に書き込むことができる。
第二の実施態様では、前記第一の実施態様において、前記計算機制御部は、前記第一のストレージシステムに分割指示を送信することができる。前記第一のコントローラが、前記計算機から分割指示を受信した後、前記第二の記憶装置に更新があったならば、該更新により生じた、前記第二の記憶装置と前記第三の記憶装置との差分を、管理し、その後、前記コピー指示を受信した場合には、前記管理されている差分のみを前記第三の記憶装置に書き込むための前記ライトコマンドを前記第二のストレージシステムに送信することができる。
第三の実施態様では、前記第一の実施態様において、前記計算機制御部は、前記第一のストレージシステムに解除指示を送信することができる。前記第一のコントローラが、前記計算機から解除指示を受信した後、前記第二の記憶装置に更新があっても、該更新により生じた、前記第二の記憶装置と前記第三の記憶装置との差分を、管理せず、その後、前記コピー指示を受信した場合には、更新後の前記第二の記憶装置内の全データを前記第三の記憶装置に書き込むための前記ライトコマンドを前記第二のストレージシステムに送信することができる。
第四の実施態様では、前記コピー指示は、前記第三の記憶装置を前記第二の記憶装置にリストアすることの指示であるとすることができる。前記第一のコントローラは、前記コピー指示に応答して、前記第三の記憶装置から前記第二の記憶装置へのデータコピーを行い、その際、前記第三の記憶装置からの読み出しのための、前記仮想記憶装置を指定したリードコマンドを前記第二のストレージシステムに送信し、該リードコマンドに応答して読み出されたデータを前記第二の記憶装置に書くことができる。前記第二のコントローラは、前記第一のストレージシステムから前記仮想記憶装置に対するリードコマンドを受信し、前記対象テープ装置からではなく、前記記憶領域からデータを読み出し、読み出したデータを前記第一のストレージシステムに送信することができる。
第五の実施態様では、前記第四の実施態様において、前記計算機制御部は、前記第一のストレージシステムに分割指示を送信することができる。前記第一のコントローラが、前記計算機から分割指示を受信した後、前記第二の記憶装置に更新があったならば、該更新により生じた、前記第二の記憶装置と前記第三の記憶装置との差分を、管理し、その後、前記コピー指示を受信した場合には、前記管理されている差分のみを前記第二の記憶装置に読み出すための前記リードコマンドを前記第二のストレージシステムに送信することができる。
第六の実施態様では、前記第四の実施態様において、前記計算機制御部は、前記第一のストレージシステムに解除指示を送信することができる。前記第一のコントローラが、前記計算機から解除指示を受信した後、前記第二の記憶装置に更新があっても、該更新により生じた、前記第二の記憶装置と前記第三の記憶装置との差分を、管理せず、その後、前記コピー指示を受信した場合には、前記第三の記憶装置内の全データを前記第二の記憶装置に読み出すための前記リードコマンドを前記第二のストレージシステムに送信することができる。なお、このように、差分が管理されない場合には、後述するシーケンシャルリード(記憶領域を介さないテープからの直接読出し)及び/又はシーケンシャルライト(記憶領域を介さないテープに対する直接書込み)が行われても良い。
第七の実施態様では、前記第一のストレージシステムは、前記第二の記憶装置と前記第三の記憶装置とを含んだ複数の記憶装置を備えることができる。前記複数の記憶装置のうちの一つと他の一つとが、ペアにされたり、そのペアが解除されたりすることができる。前記第一のコントローラが、各ペアに関するペア情報が記録されるペア管理テーブルを保持することができる。前記ペア管理テーブルには、記録されるペア情報の数に上限がある。前記計算機が、解除されたペアに関する解除ペア情報が記録される解除ペア管理テーブルを備えることができる。
第八の実施態様では、前記第三の記憶装置と前記仮想記憶装置とのセットである第三/仮想セットが複数個備えられてもよい。各第三/仮想セットは、セットが解除されることがある。前記第一のコントローラが、前記第三/仮想セットに関するセット情報が記録されるセット管理テーブルを保持することができる。前記セット管理テーブルには、記録されるセット情報の数に上限がある。前記計算機が、解除された第三/仮想セットに関する解除セット情報が記録される解除セット管理テーブルを備えることができる。
第九の実施態様では、前記仮想記憶装置が複数個備えられる。前記複数の仮想記憶装置の各々に、論理的な記憶ユニットであるテープLUがマッピングされることがある。前記第二のコントローラは、対象の仮想記憶装置にマッピングされている対象テープLUの後端のあるテープ装置にそれとは別のテープLUが存在する場合には、該対象テープLU及び該別のテープLUを含んだ二以上のテープLUから前記記憶領域にデータを読み出すことができる。前記二以上のテープLUの終端のあるテープ装置には、その終端以降に、他のテープLUのデータが存在しない。
第十の実施態様では、前記計算機が前記第二のストレージシステムに接続されてもよい。前記計算機制御部が、前記仮想記憶装置に対する所定の準備指示を前記第二のストレージシステムに送信することができる。前記第二のコントローラが、前記計算機から前記準備指示を受信し、該準備指示に応答して、前記記憶領域を確保することができる。
第十一の実施態様では、前記第一のコントローラが、前記データコピーの前に、前記仮想記憶装置に対する所定の準備指示を前記第二のストレージシステムに送信することができる。前記第二のコントローラが、前記第一のストレージシステムから前記準備指示を受信し、該準備指示に応答して、前記記憶領域を確保することができる。
第十二の実施態様では、前記計算機が前記第二のストレージシステムに接続されてもよい。前記計算機制御部が、前記仮想記憶装置に対する所定の完了指示を前記第二のストレージシステムに送信することができる。前記第二のコントローラが、前記計算機から前記完了指示を受信し、該完了指示に応答して、前記記憶領域上のデータを前記対象テープ装置に書き込むことができる。
第十三の実施態様では、前記第一のコントローラが、前記データコピーの後に、前記仮想記憶装置に対する所定の完了指示を前記第二のストレージシステムに送信することができる。前記第二のコントローラが、前記第一のストレージシステムから前記完了指示を受信し、該完了指示に応答して、前記記憶領域上のデータを前記対象テープ装置に書き込むことができる。
第十四の実施態様では、前記第二のコントローラは、解放されているディスク領域を確保し、所定のイベントが発生した場合に、前記確保したディスク領域を解放することができる。
第十五の実施態様では、前記第二のコントローラは、前記確保したディスク領域に、前記対象テープ装置からの読出し対象のデータが既に存在する場合には、前記対象テープ装置から前記ディスク領域へのデータの読出しを行わないようにすることができる。
第十六の実施態様では、前記第二のコントローラは、前記仮想記憶装置を指定したデータアクセスが初めての場合には、前記対象テープ装置から前記ディスク領域へのデータの読出しを行なわないようにすることができる。
第十七の実施態様では、前記複数のテープ装置には、論理的な記憶ユニットであるテープLUが二つ以上用意されてもよい。前記仮想記憶装置が複数個備えられ、前記複数の仮想記憶装置の各々に、前記二以上のテープLUの各々がマッピングされてもよい。前記第一の記憶装置には、論理的な記憶ユニットである記憶LUが二つ以上されてもよい。前記第二のコントローラは、前記計算機及び前記第一のストレージシステムの少なくとも一方である上位装置から、各仮想記憶装置に対する所定の準備指示を受け付け、該準備指示を受信した場合に、前記準備指示で指定されている指定仮想記憶装置にマッピングされている対象テープLU以上の記憶容量分の、解放されている一以上の記憶LUを確保し、前記確保した一以上の記憶LUに前記対象テープLUからデータを読出し、前記上位装置から、前記指定仮想記憶装置に対する所定の完了指示を受け付け、該完了指示を受信した場合に、前記確保した一以上の記憶LU上のデータを前記対象テープLUに書込み、前記一以上の記憶LUを解放することができる。
第一及び第二のコントローラの各処理は、各部により実行することができる。各部は、各手段と言い換えることができる。上記各部は、ハードウェア(例えば回路)、コンピュータプログラム、或いはそれらの組み合わせ(例えば、コンピュータプログラムを読み込んで実行する一又は複数のCPU)によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROMやDVD(Digital Versatile Disk)等の記録媒体を介してインストールすることもできるし、インターネットやLAN等の通信ネットワークを介してダウンロードすることもできる。
また、前述した第一の記憶装置及び第二の記憶装置のうちの少なくとも一方は、ディスクタイプの記憶装置であっても良いし、メモリタイプの記憶装置であっても良い。ディスクタイプの記憶装置としては、例えば、ハードディスク、光ディスク、光磁気ディスクなどの種々のディスクを採用することができる。メモリタイプの記憶装置としては、例えば、半導体メモリ、フラッシュメモリなどの種々のメモリを採用することができる。
本発明によれば、バックアップサーバを不要とし、バックアップ先及び/又はリストア元がテープであっても高速にバックアップ及び/又はリストアすることができる、記憶制御技術を提供することができる。
以下、図面を参照して、本発明の幾つかの実施例を説明する。
図1は、本発明の第一実施例に係る計算機システムの構成例を示す。
計算機100、ストレージ仮想化装置102及び仮想ディスクライブラリ装置106が、ファイバチャネルスイッチ(以下、「スイッチ」と略記)122に接続されている。計算機100は、ファイバチャネル120を用いてスイッチ122を経由しストレージ仮想化装置102と接続される。仮想ディスクライブラリ装置106は、ファイバチャネル102を用いて、スイッチ122を経由してストレージ仮想化装置102と接続される。計算機100、ストレージ仮想化装置102及び仮想ディスクライブラリ装置106は、LAN(Local Area Network)等の通信ネットワークに接続されても良いし、専用線などで接続されても良い。
計算機100は、バックアップ及びリストア(以下、バックアップ/リストア)を制御するバックアップ/リストア制御プログラム101、バックアップ/リストア制御プログラム101を記憶するメモリ121と、バックアップ/リストア制御プログラム101を実行するためのCPU(Central Processing Unit)123を備える。バックアップ/リストア制御プログラム101を実行するCPU123は、Activate指示、InActivate指示、ペアステータス確認コマンド、ペア分割指示、ペア解除指示、仮想ディスクステータス確認コマンド、表示コマンド、削除コマンド及び仮想ディスクID表示コマンドなどの種々のコマンドを出す。以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するCPUによって処理が行われるものとする。
ストレージ仮想化装置102は、この装置102の外部に存在する別の装置106内の記憶資源を、自分の記憶資源として計算機100に提供する機能を持ったストレージシステムである。ストレージ仮想化装置102は、ディスクアレイコントローラ103と、複数のディスク104a、104b、104cとを備える。各ディスク104a、104b、104cは、ディスク型の記憶装置であり、具体的には、例えば、ハードディスクである。ディスクアレイコントローラ103は、図示しない複数の論理ボリューム(論理ユニットとも言う。以下、「LU」と略記することもある)を提供する。複数のLUの中には、ディスク104a、104b、104cのいずれかに対応付けられており外部のLUにマッピングされていないLUもあれば、外部のLUにマッピングされているLUもある。以下、前者のLUを、「通常LU」と言い、後者のLUを、「外部ディスク」と言う。外部ディスク105は、後述の仮想ディスク108にマッピングされており、外部ディスク105に対するデータアクセスが発生する場合には、その外部ディスク105にマッピングされた仮想ディスク108に対してデータアクセスが行われる。
仮想ディスクライブラリ装置106は、ディスクをエミュレーションした仮想ディスク108を提供する機能を有したストレージシステムである。仮想ディスクライブラリ装置106は、仮想ディスクアレイコントローラ107と、一以上のディスク104d、104eと、テープライブラリ装置109とを備える。テープライブラリ装置109は、データを保存するための複数のテープ媒体(以下、テープ)112a、112bと、テープ112a、112bをテープドライブ111に装填したり、テープ112a、112bをテープドライブ111から取り出したりするためのロボット110と、装填されたテープ112a、112bに対してデータを読み書きするためのテープドライブ111とを備える。
図2は、ストレージ仮想化装置102のディスクアレイコントローラ103の構成例を示した図である。
ディスクアレイコントローラ103は、計算機100と接続される計算機インターフェース(IF)部201と、仮想ディスクライブラリ装置106と接続される外部IF部203と、ディスク104と接続されるディスクIF部202とを備える。さらに、ディスクアレイコントローラ103は、ディスク制御プログラム205、ディスク制御管理テーブル206及び外部ディスク対応テーブル209を記憶するローカルメモリ204と、ディスク制御プログラム205をローカルメモリ204から読み込んで実行するCPU207と、ディスク104に書かれるデータ或いはディスク104から読み出されたデータを一時的に保存しておくキャッシュメモリ208とを備える。
ディスク制御プログラム205は、ペアにされたLU間(例えば、通常LU間、通常LUと外部ディスク105との間、外部ディスク105間)のコピー処理を行う機能を有する。また、ディスク制御プログラム205は、ペアにされたLU間のコピー差分管理を行う機能も有する。また、ディスク制御プログラム205は、LUペアのステータスを計算機100に提供する機能と、ストレージ仮想化装置102外のLUである外部LUを仮想化する外部ディスク仮想化機能とを有する。また、ディスク制御プログラム205は、LUペアに関するペア情報を削除する削除コマンドや、ディスク制御管理テーブル206が表す情報を表示する表示コマンドを提供する。なお、「外部ディスク仮想化機能」によれば、外部LUをストレージ仮想化装置106のLU(外部ディスク)105として、計算機100に認識させることができる。
図3は、仮想ディスクアレイコントローラ107の構成例を示した図である。
仮想ディスクアレイコントローラ107は、スイッチ120を経由してストレージ仮想化装置102の外部IF部203とファイバチャネル102で接続されるFE/IF部301と、ディスク104に接続されるディスクIF部302と、テープライブラリ装置109にあるロボット110及びテープドライブ111に接続されているテープIF部310とを備える。また、仮想ディスクアレイコントローラ107は、コンピュータプログラムなどを記憶するローカルメモリ303と、ローカルメモリ303からコンピュータプログラムを読み出して実行するCPU308と、ディスク104又はテープ112に書かれるデータ或いはディスク104又はテープ112から読み出されたデータを一時的に保存するためのキャッシュメモリ208とを備える。ローカルメモリ303は、例えば、Activateプログラム304と、InActivateプログラム305と、仮想ディスク制御プログラム306と、仮想ディスク制御管理テーブル307とを記憶している。
仮想ディスク制御プログラム306は、テープ112をディスクとして扱えるように前述した仮想ディスク108を提供する仮想ディスク機能や、仮想ディスク108のステータを返答する機能を有する。また、仮想ディスク制御プログラム306は、仮想ディスクLUNを提供する仮想ディスクLUN表示コマンドや、仮想ディスクステータスを提供する仮想ディスクステータス確認コマンドを提供する。
以下、この第一実施例に係る計算機システムにおける論理ボリュームの関係を説明する。
図38は、論理ボリュームの割り当てを模式的に示した図である。
通常、ディスク領域は、論理ボリュームという単位で計算機100から認識される。ストレージ仮想化装置102では、ディスク104a、104bにマッピングされている通常LU180a、180bと、仮想ディスク(外部のLUの一種)108にマッピングされている外部ディスク105とがある。図示の例では、外部ディスク105a、105b及び105cが、仮想ディスク108a、108b及び108cにそれぞれマッピングされている。この第一実施例において、通常LU180は、計算機100にデータアクセスされるLUである。また、通常LU180は、バックアップやリストアの際に、外部ディスク105とペアにされる。
仮想ディスクライブラリ装置106は、仮想ディスク108の他に、物理的な格納先を表す論理ボリュームであるライブラリ内部LUを備える。ライブラリ内部LUには、ディスク104に作成されるディスクLUと、テープ112に作成されるテープLUとがある。例えば、複数のディスク104からRAIDグループ(パリティグループ或いはアレイグループと呼ばれることもある)を形成し、1つのRAIDグループに複数のディスクLU141を定義することができる。同様に、複数のテープ112からテープグループを形成し、1つのテープグループから複数のテープLU142を定義することができる。ディスクLU141とテープLU142には、仮想ディスクライブラリ装置106内で管理するための固有IDであるディスクLUN(Logical Unit Number)とテープLUNがそれぞれ割り当てられる。
仮想ディスク108は、実際にデータを格納するための領域が必要な場合には、装置106内の物理的な格納先を表す内部LUとマッピングされる。複数の内部LUを統合し、1つの仮想ディスク108とマッピングすることもできる。具体的には、例えば、仮想ディスク108には、一又は複数のテープLU142を固定的にマッピングし、ディスクLU141を動的に(或いは固定的に)マッピングすることができる。仮想ディスク108の容量と、それにマッピングされたテープLU142の記憶容量(複数のテープLU142がマッピングされた場合には、それらのテープLU142の総記憶容量)とを、同じにすることができる。また、仮想ディスク108に動的にマッピングされたディスクLU141を、本実施形態で言うディスクキャッシュとして利用することができる。固定的ではなく動的にマッピングするようにすることで、複数の仮想ディスク108の総記憶容量よりも少ない総記憶容量のディスクLUで済み、以って、搭載するディスク104の総記憶容量(例えばディスク104の数)を抑えることができる。
また、データのマイグレーションなどにより、仮想ディスク108aにマッピングされている内部LU142aから内部LU142bにデータの格納先が変更された場合は、仮想ディスク108aにマッピングする内部LUを内部LU142aから内部LU142bに切替えることができる。それにより、仮想ディスク108aに対してデータアクセス(リード或いはライト)が発生した場合には、マイグレーション先の内部LU142bへのアクセスが可能となる。
以下、図38を例に採り、第一実施例の概要を説明する。なお、以下の説明では、通常LU180aと外部ディスク105aとがペアにされ、外部ディスク105aが仮想ディスク108aにマッピングされ、仮想ディスク108aにテープLU142aがマッピングされているとする。
仮想ディスクライブラリ装置106では、リードコマンドやライトコマンドといったデータアクセス系のコマンドの他に、複数種類の制御コマンドがサポートされている。制御コマンドとしては、例えば、ディスクキャッシュにテープLU内の全データを準備させるためのActivate指示と、ディスクキャッシュ内の全データをテープLUに反映させるためのInActivate指示とがある。
第一実施例では、バックアップ処理が行われる。バックアップ処理では、以下の(A)乃至(D)の処理が行われる。
(A)バックアップ/リストア制御プログラム101は、通常LU180aのデータを外部ディスク105aにバックアップする前に、仮想ディスク108aを指定したActivate指示を、仮想ディスクライブラリ装置106に送信する。Activateプログラム304が、そのActivate指示に応答して、前処理を行う。具体的には、前処理において、Activateプログラム304は、未使用の(例えば、どの仮想ディスク108にも割り当てられていない)一以上のディスクLU141を仮想ディスク108aに割り当てる。割り当てられる一以上のディスクLUの記憶容量(複数のディスクLUであれば総記憶容量)は、仮想ディスク108aの記憶容量以上であり、それら一以上のディスクLU(以下、141a、141bとする)が、本実施形態で言うディスクキャッシュである。Activateプログラム304は、前処理において、テープLU142a内の全データを読み出し、読み出された全データを、そのディスクキャッシュに書く。これにより、テープLU142a内の全データがディスクキャッシュ141a、141bに準備される。Activateプログラム304は、前処理を開始した場合、仮想ディスク108aのステータスを"Activate"とし、前処理が終了した場合、そのステータスを"Active"に変更する。
(B)バックアップ/リストア制御プログラム101は、仮想ディスク108aのステータスを監視する。そのステータスが"Active"になったことを検出できた場合、バックアップ/リストア制御プログラム101は、通常LU180aをプライマリのLUとし外部ディスク105aをセカンダリのLUとするペア生成指示を、ストレージ仮想化装置102に送信する。ディスク制御プログラム205は、そのペア生成指示に応答して、通常LU180aをプライマリLUとし外部ディスク105aをセカンダリLUとしたペアを生成し、通常LU180aが記憶するデータを外部ディスク105aにコピーすることで、通常LU180aの中身と外部ディスク105aの中身とを同じにする。コピー対象のデータは、通常LU180aの全データであっても良いし、通常LU180aと外部ディスク105aとの差分のデータであっても良い。外部ディスク105aは仮想ディスク108aにマッピングされているので、ディスク制御プログラム205は、仮想ディスク108aを指定したライトコマンド(コピー対象のデータを仮想ディスク108aに書くためのライトコマンド)を仮想ディスクライブラリ装置106に送信する。仮想ディスク制御プログラム306は、そのライトコマンドに従うデータを、仮想ディスク108aにマッピングされたテープLU142aにではなく、ディスクキャッシュ141a、141bに書く。これにより、通常LU180aがディスクキャッシュ141a、141bにバックアップされる。ディスク制御プログラム205は、そのバックアップが済んだ場合、LUペアのステータスを"Duplex"とする。
(C)バックアップ/リストア制御プログラム101は、通常LU180aと仮想ディスク108aとのLUペアのステータスを監視する。そのステータスが"Duplex"になったことを検出できた場合、バックアップ/リストア制御プログラム101は、そのLUペアを解除するペア解除指示を、ストレージ仮想化装置102に送信する。ディスク制御プログラム205は、そのペア解除指示に応答して、通常LU180aと仮想ディスク108aとのペアを解除する。その場合、ディスク制御プログラム205は、LUペアのステータスを、解除を意味する"Simplex"にする。
(D)バックアップ/リストア制御プログラム101は、通常LU180aと仮想ディスク108aとのLUペアのステータスを監視する。そのステータスが"Simplex"になったことを検出できた場合、バックアップ/リストア制御プログラム101は、仮想ディスク108aを指定したInActivate指示を仮想ディスクライブラリ装置106に送信する。InActivateプログラム305が、そのInActivate指示に応答して、後処理を行う。具体的には、後処理において、InActivateプログラム305は、ディスクキャッシュ141a、141b内の全データを、テープLU142aにシーケンシャルに書き、そのディスクキャッシュ141a、141bを構成していたディスクLU141a、141bを解放する(換言すれば、割当てを解除する)。それにより、通常LU180aがテープLU142aにバックアップされ、ディスクLU141a、141bが未使用となる。InActivateプログラム305は、後処理を開始した場合、仮想ディスク108aのステータスを"InActivate"とし、後処理が終了した場合、そのステータスを"Inactive"に変更する。
以上の(A)乃至(D)の処理によれば、ストレージ仮想化装置102に設けた外部ディスク105と、仮想ディスクライブラリ装置106に設けた仮想ディスク108とをマッピングし、外部ディスク105aに対してデータがバックアップされる場合には、仮想ディスク108aに対してデータがバックアップされる。また、仮想ディスク108aに、テープLU142aがマッピングされているが、バックアップの際には、仮想ディスク108aに対して動的にディスクLU141a、141bがマッピングされ、そのディスクLU141a、141bに対して、データが一旦バックアップされ、最終的に、ディスクLU141a、141b上のデータがシーケンシャルにテープLU142aに書かれる。ストレージ仮想化装置102には、仮想ディスクライブラリ装置106の記憶資源がディスクとして提供されているので、仮想ディスク108aに対して、書込み先アドレスがランダムになるライト(以下、ランダムライト)が発生し得るが、ランダムライトが発生しても、ディスクLU141a、141bに対してそれが発生するのであって、テープLU142aにはそれが発生しない。テープLU142aからディスクLU141a、141bへのデータの読み出しや、ディスクLU141a、141bからテープLU142aへのデータの書き込みは、シーケンシャルに行われる。
以上のことから、バックアップ用のサーバを不要とし、且つ、バックアップ先がテープ112であっても高速にバックアップを済ますことができる。
ところで、この第一実施例では、リストア処理も行われる。リストア処理では、以下の(a)乃至(d)の処理が行われる。以下、リストア処理について説明する。なお、その際、バックアップ処理で説明した事項については、説明を省略或いは簡略する。
(a)バックアップ/リストア制御プログラム101は、仮想ディスク108aを指定したActivate指示を、仮想ディスクライブラリ装置106に送信する。Activateプログラム304が、そのActivate指示に応答して、前処理を行う。それにより、ディスクキャッシュ141a、141bに、テープLU142a内の全データがディスクキャッシュ141a、141bに準備される。
(b)バックアップ/リストア制御プログラム101は、仮想ディスク108aのステータスが"Active"になったことを検出できた場合、通常LU180aをセカンダリLUとし外部ディスク105aをプライマリLUとするペア生成指示を、ストレージ仮想化装置102に送信する。ディスク制御プログラム205は、そのペア生成指示に応答して、通常LU180aをセカンダリLUとし外部ディスク105aをプライマリLUとしたペアを生成し、外部ディスク105aが記憶するデータを通常LU180aにコピーすることで、通常LU180aの中身と外部ディスク105aの中身とを同じにする。コピー対象のデータは、外部ディスク105a内の全データであっても良いし、通常LU180aと外部ディスク105aとの差分のデータであっても良い。ディスク制御プログラム205は、仮想ディスク108aを指定したリードコマンド(コピー対象のデータを読み出すためのリードコマンド)を仮想ディスクライブラリ装置106に送信する。仮想ディスク制御プログラム306は、そのリードコマンドに従って、ディスクキャッシュ141a、141bからデータを読み出し、読み出したデータをストレージ仮想化装置102に送信する。ディスク制御プログラム205は、仮想ディスクライブラリ装置106からのデータを、通常LU180aに書く。これにより、通常LU180aに、仮想ディスク108aのデータがリストアされる。
(c)バックアップ/リストア制御プログラム101は、通常LU180aと仮想ディスク108aとのLUペアのステータスが"Duplex"になったことを検出できた場合、そのLUペアを解除することのペア解除指示を、ストレージ仮想化装置102に送信する。ディスク制御プログラム205は、そのペア解除指示に応答して、通常LU180aと仮想ディスク108aとのペアを解除する。
(d)バックアップ/リストア制御プログラム101は、通常LU180aと仮想ディスク108aとのLUペアのステータスが"Simplex"になったことを検出できた場合、仮想ディスク108aを指定したInActivate指示を仮想ディスクライブラリ装置106に送信する。InActivateプログラム305が、そのInActivate指示に応答して、後処理を行う。
以上の(a)乃至(d)の処理によれば、外部ディスク105と仮想ディスク108とをマッピングし、外部ディスク105aからデータがリストアされる場合には、仮想ディスク108aからデータがリストアされる。また、仮想ディスク108aに、テープLU142aがマッピングされているが、リストアの際には、仮想ディスク108aに対して動的にディスクLU141a、141bがマッピングされ、そのディスクLU141a、141bに対して、データが一旦リストアされ、最終的に、ディスクLU141a、141bから通常LU180にデータがリストアされる。ストレージ仮想化装置102には、仮想ディスクライブラリ装置106の記憶資源がディスクとして提供されているので、仮想ディスク108aに対して、読出し元アドレスがランダムになるリード(以下、ランダムリード)が発生し得るが、ランダムリードが発生しても、ディスクLU141a、141bに対してそれが発生するのであって、テープLU142aにはそれが発生しない。テープLU142aからディスクLU141a、141bへのデータの読み出しや、ディスクLU141a、141bからテープLU142aへのデータの書き込みは、シーケンシャルに行われる。
以上のことから、リストア用のサーバを不要とし、且つ、リストア元がテープ112であっても高速にリストアを済ますことができる。
なお、以上のバックアップ処理及び/又はリストア処理において、Activate指示及びInActivate指示のうちの少なくとも一方は、バックアップ/リストア制御プログラム101ではなく、ディスク制御プログラム205が発行しても良い。具体的には、例えば、ディスク制御プログラム205は、ペア生成指示に応答したデータコピーを行う前に、外部ディスク105aにマッピングされている仮想ディスク108aに対してActivate指示を発行しても良い。同様に、例えば、ディスク制御プログラム205は、ペア解除指示に応答してペアを解除した場合に、ペア解除された外部ディスク105aにマッピングされている仮想ディスク108aに対してInActivate指示を発行しても良い。
また、例えば、仮想ディスク制御プログラム306が、仮想ディスク108aに対するデータアクセスコマンド(ライトコマンド又はリードコマンド)を受信した場合、テープLU142a内の全データがディスクキャッシュ141a、141bに準備されていなければ、所定のエラーを、データアクセスコマンドの発行元に返すことにより、その発行元に、Activate指示を送信することを促すか、或いは、エラーをその発行元に報告することなく、テープLU142a内のデータをディスクキャッシュ141a、141bにロードしても良い。
また、図38の例では、3つのテープLU142a〜142cにより一つのテープグループが構成され、そのテープグループにおいて、3つのテープLU142a〜142cが連続している。一つのテープグループにおいて、同一テープ112上に、複数のテープLUが混在する可能性がある。具体的には、例えば、テープLU142bの終端アドレスと、テープLU142cの先端アドレスが、テープ112bの途中に位置し、以って、同一テープ112b上に、テープLU142bとテープLU142cが存在する。つまり、この第一実施例において、「テープグループ」とは、一以上のテープ112で構成され、一以上のテープLU142を有し、複数のテープLUを連続して格納している。Activateプログラム304は、テープLU142aを有するテープグループ内の全データをディスクキャッシュ141a、141bに読み出してもよい。Inactivateプログラム305が、ディスクキャッシュ141a、141b内のデータをそのテープグループにシーケンシャルに書き込むことができる。そのため、制御プログラム1110は、ディスクキャッシュを構成するディスクLUの総記憶容量が、そのテープグループの記憶容量(テープLU142a〜142cの総記憶容量)以上になるようにする。もし、テープLU142a以外のテープLUのデータが存在しない状態であれば、Activateプログラム304は、そのテープLU142aのみから全データの読み出しを行えばよい。また、一つのテープグループに存在する複数のテープLUのうち、指定された仮想ディスクに対応するテープLU(対象テープLU)を含んだ二以上のテープLUとしても良い。その際、例えば、これら二以上のテープLUの後端を有するテープには、その後端以降に、同一のテープグループに存在する他のテープLUのデータが存在しない。そして、それら二以上のテープLUの先頭のテープLUは、対象テープLUとすることができる。
以下、第一実施例について詳細に説明する。
ディスク制御管理テーブル206(図2参照)には、例えば、図22に例示するように、ペアIDが書かれるフィールド1101と、プライマリLUNが書かれるフィールド1102と、セカンダリLUN1103が書かれるフィールドと、ペアステータスが書かれるフィールド1104とがある。一つのペアに、ペアID、プライマリLUN、セカンダリLUN及びペアステータスが対応付けられる。なお、プライマリLUNとは、プライマリのLU(コピー元)のLUNである。セカンダリLUNとは、セカンダリのLU(コピー先)のLUNである。
外部ディスク対応テーブル209(図2参照)は、外部ディスク105と仮想ディスク108との対応を管理するためのテーブルである。外部ディスク対応テーブル209は、外部ディスク105を設定するときに生成される。外部ディスク対応テーブル209には、例えば、図34に例示するように、外部ディスクLUNが書かれるフィールド2302と、仮想ディスクLUNが書かれるフィールド401と、それらのLUNの対応関係を一意に識別するための対応IDが書かれるフィールド2301とがある。一つの外部ディスクLUNに一又は複数の仮想ディスクLUNがマッピングされても良いし、一つの仮想ディスクLUNに複数の外部ディスクLUNがマッピングされても良い。
仮想ディスク制御管理テーブル307(図3参照)には、例えば、LU関係テーブル、仮想ディスク管理テーブル、RAIDグループ管理テーブル、ディスクLU管理テーブル、テープグループ管理テーブル、テープLU管理グループ及びIO管理テーブルが含まれている。以下、各種テーブルについて説明する。
図4は、LU関係テーブルの一例を示す。
LU関係テーブル1111は、論理ボリュームの対応関係が記述される。具体的には、例えば、LU関係テーブル1111には、仮想ディスクLUNが書かれるフィールド1111aと、ディスクLUNが書かれるフィールド1111bと、テープLUNがかかれるフィールド1111cとがある。一つの仮想ディスク108に対して、仮想ディスクLUN、ディスクLUN及びテープLUNが対応付けられる。図4において、ディスクLUNが記述されているということは、ディスクキャッシュが確保されていることを意味し、ディスクLUNが記述されていないということは、ディスクキャッシュが確保されていないことを意味する。なお、LUNとは、Logical Unit Numberの略であり、LU(論理ボリューム)を一意に識別するためのIDである。
図5は、仮想ディスク管理テーブルの一例を示す。
仮想ディスク管理テーブル150は、仮想ディスクを管理するためのテーブルである。具体的には、例えば、仮想ディスク管理テーブル150には、仮想ディスクLUNが書かれるフィールド150aと、仮想ディスクのサイズ(記憶容量)が書かれるフィールド150bと、初回書込みフラグがセットされるフィールド150cとがある。一つの仮想ディスク108に対して、仮想ディスクLUN、サイズ及び初回書込みフラグが対応付けられる。なお、「初回書込みフラグ」とは、仮想ディスクに対する書込みが初めてか否かを表すフラグであり、初めての場合には"1"であり、初めてでは無い場合には"0"である。つまり、仮想ディスクが設定された場合、初回書込みフラグは全て"1"とされ、仮想ディスクに書込みが生じた場合には、その仮想ディスクに対応する初回書込みフラグは"0"にされる。仮想ディスクに対する書込みが初回であれば、テープLU142からディスクキャッシュへの読み出しを不要とすることができる。
図6は、RAIDグループ管理テーブルの一例を示す。
RAIDグループ管理テーブル151は、RAIDグループを管理するためのテーブルである。具体的には、例えば、RAIDグループ管理テーブル151には、RAIDグループIDが書かれるフィールド151aと、ディスクLUが書かれるフィールド151bと、ディスク装置のID(ディスクID)が書かれるフィールド151cとがある。一つのRAIDグループに対して、RAIDグループIDと、そのRAIDグループ上にあるディスクLUのディスクLUNと、そのRAIDグループを構成するディスク104のディスクIDとが対応付けられる。
図7は、ディスクLU管理テーブルの一例を示す。
ディスクLU管理テーブル154は、ディスクLUを管理するためのテーブルである。具体的には、例えば、ディスクLU管理テーブル154には、ディスクLUNが書かれるフィールド154aと、ディスクLUのサイズ(記憶容量)が書かれるフィールド154bと、ディスクアドレスが書かれるフィールド154cと、ディスクLUステータスが書かれるフィールド154dと、直前使用テープLUNアドレスが書かれるフィールド154eとがある。一つのディスクLU141に対して、ディスクLUN、サイズ、ディスクアドレス、ディスクLUステータス及び直前使用テープLUNアドレスが対応付けられる。なお、「ディスクアドレス」とは、ディスク104上でのディスクLUの場所を示す値であり、例えば、ディスクID(例えば0)と、ディスク104上でのアドレス(例えば1000)とのセットを用いて表すことができる。「ディスクLUステータス」とは、ディスクLU141のステータスであり、例えば、使用中(ディスクキャッシュとして割当て中)と、未使用(どのディスクキャッシュにも割り当てられておらず、割当て可能な状態)とがある。「直前使用テープLUNアドレス」とは、ディスクLUが直前にはどのテープLUNのどのアドレスとして使用されたかを表す。例えば、テープLU142aのために確保されたディスクLUの直前使用テープLUNアドレスが、そのテープLU142aのLUNである場合には、そのテープLU142aの全データがそのディスクLUに存在するので、テープLU142aからディスクLUへの読み出しを不要とすることができる。Activateプログラム304は、ディスクキャッシュを確保する場合には、ディスクLUステータスが"未使用"のディスクLUを探し、探し出されたディスクLUを、確保するディスクキャッシュの構成要素とする。また、Activateプログラム304は、ディスクキャッシュにディスクLUを割り当てた場合、そのディスクキャッシュを使用するテープLUのLUNとアドレスを、そのディスクLUに対応する「直前使用テープLUNアドレス」の欄に記載する。図4にて、テープLUと仮想ディスクLUのアドレスの対応関係がわかるため、直前使用テープLUNアドレスは仮想ディスクLUのアドレス(LUNとアドレス)を書込むようにしてもよい。
図8は、テープグループ管理テーブルの一例を示す。
テープグループ管理テーブル152は、テープグループを管理するためのテーブルである。具体的には、例えば、テープグループ管理テーブル152には、テープグループのIDが書かれるフィールド152aと、そのテープグループ上にあるテープLUのLUNが書かれるフィールド152bと、そのテープグループを構成するテープ112のIDが書かれるフィールド152cとがある。一つのテープグループに対して、テープグループID、テープLUN及びテープIDが対応付けられる。
図9は、テープLU管理テーブルの一例を示す。
テープLU管理テーブル153は、テープLU142を管理するためのテーブルである。具体的には、例えば、テープLU管理テーブル153には、テープLUNが書かれるフィールド153aと、テープLUのサイズ(記憶容量)が書かれるフィールド153bと、テープアドレスが書かれるフィールド153cとがある。一つのテープLU132に対して、テープLUN、サイズ及びテープアドレスが対応付けられる。なお、「テープアドレス」とは、テープ112上でのテープLU142の場所を示す値であり、例えば、テープID(例えば0)と、テープ112上でのアドレス(例えば100)とのセットを用いて表すことができる。
図10は、ステータス管理テーブル1112の一例を示した図である。
ステータス管理テーブル1112には、仮想ディスクのLUNが書かれるフィールド1111aと、その仮想ディスクのステータス(以下、仮想ディスクステータス)が書かれるフィールド1112bとがある。仮想ディスクステータスは、バックアップ/リストア制御プログラム101(及び/又はディスク制御プログラム205)から参照することができる。仮想ディスクステータスとしては、データアクセス可能な状態を意味する"Active"や、データアクセス不可の状態を意味する"Inactive"などがある。バックアップ/リストア制御プログラム101(及び/又はディスク制御プログラム205)は、各仮想ディスクの仮想ディスクステータスによって、対象仮想ディスクのアクセス可否や現在の処理状態を知ることができる。各仮想ディスクステータスにおける処理内容は、後述するIO管理テーブルによって管理される。
図11は、IO管理テーブル1113の一例を示した図である。
IO管理テーブル1113には、仮想ディスクステータスが書かれるフィールド1113aと、その仮想ディスクステータスにおける処理内容が書かれるフィールドとがある。処理内容が書かれるフィールドとして、リード/ライトコマンドの処理が可能か否かが書かれるフィールド1113bと、制御コマンドの処理が可能か否かが書かれるフィールド1113cとがある。フィールド1113aには、仮想ディスクのとりうる全仮想ディスクステータスが書かれる。
以下、この第一実施例で行われる処理の流れを説明する。
図12は、Activate処理の流れの一例を示すフローチャートである。
Activateプログラム304は、バックアップ/リストア制御プログラム101から、仮想ディスクLUNを含んだActivate指示(つまり、仮想ディスク108を指定したActivate指示)を受信する(ステップ501)。仮想ディスク制御プログラム305は、仮想ディスク108のLUNを出力する仮想ディスクID表示コマンドを提供する。バックアップ/リストア制御プログラム101は、仮想ディスクID表示コマンドを実行することで、仮想ディスクLUNを取得することができる。
Activateプログラム304は、指定された仮想ディスク(以下、指定仮想ディスク)108のステータスがInactiveかどうかを、ステータス管理テーブル1112を参照することで確認する(ステップ502)。
仮想ディスクステータスがInactiveではない場合は(ステップ502でN)、Activateプログラム304は、Activate処理を終了する。
一方、指定仮想ディスクのステータスがInactiveの場合は(ステップ502でY)、Activateプログラム304は、仮想ディスクライブラリ装置106の前処理を実行する(ステップ503)。前処理とは、指定仮想ディスク108へアクセス可能にする処理である。仮想ディスクライブラリ装置106は、データの保存媒体が、シーケンシャルでアクセスするテープ112であるため、仮想ディスク108にマッピングされたテープ112へ直接ランダムアクセスを許可すると、テープ112を巻き戻しや早送りしたり、テープ112を交換したりする場合があり、性能が低下してしまう。そこで、前処理として、仮想ディスクライブラリ装置106のランダムアクセス性能を向上させる処理を実行する。前処理については、後に詳述する。
前処理の実行が終了すると、Activateプログラム304は、仮想ディスクステータスをActiveへと変更する(ステップ504)。変更が終了することでActivate処理は完了する。
図13は、前処理の流れの一例を示す。
Activateプログラム304は、指定仮想ディスク108に必要な容量のディスク領域(ディスクキャッシュ)を確保する(ステップ2801)。Activateプログラム304は、指定仮想ディスクの記憶容量以上の記憶容量のディスクキャッシュを確保し、そのディスクキャッシュを構成するディスクLUのLUNを、LU関係テーブル1111(図4参照)に登録し、且つ、ディスクLU管理テーブル154において、そのディスクLUのステータスを、"使用中"に変える。ディスクLUを確保する際には、ディスクLU管理テーブル154の直前使用テープLUNアドレスを参照し、指定仮想ディスクに対応するテープLUNアドレスが存在すれば、そのディスクLUNを割り当てる。また、LU関係テーブル111において、対象仮想ディスクに、既にディスクLUNが割り当てられている場合は、そのままそのディスクLUNを使用することができる。なお、Activateプログラム304は、ディスクキャッシュとして使用可能な(つまり、ディスクLUステータスが"未使用"の)一以上のディスクLUの総記憶容量が、指定仮想ディスクの記憶容量よりも小さい場合は、ディスクキャッシュの確保ができない旨を、Activate指示の発行元に通知する。
次に、Activateプログラム304は、テープからディスクへのコピー要否を判定する(ステップ2802)。
例えば、Activateプログラム304は、指定仮想ディスクへの書き込みが初めての場合には(例えば、指定仮想ディスクへの書込みが初めてであることが、仮想ディスク管理テーブル150から特定できた場合には)、コピー不要と判定する。指定仮想ディスクに対応したテープLUには、読み出すべきデータが存在しないためである。
また、例えば、Activateプログラム304は、確保したディスクキャッシュ上に既に有効データが存在する場合は、コピー不要と判定する。「有効データ」とは、指定仮想ディスクに対応したテープLU内の全データと同じデータのことである。つまり、「有効データが存在する」とは、ディスクキャッシュ上に、指定仮想ディスクに対応するテープLUのデータが存在することを意味する。これは、ディスクキャッシュを構成する各ディスクLUのディスクLUNに対応した直前使用テープLUNアドレス(図7参照)を参照することにより、特定することができる。具体的には、指定仮想ディスクに対応するテープLUNのデータと、ディスクキャッシュを構成する各ディスクLUのディスクLUNに対応した直前使用テープLUNアドレスとが全て一致した場合には、「有効データが存在する場合」となる。なお、有効データが存在する場合にコピー不要と判定されるのは、既にディスクキャッシュ上に、指定仮想ディスクに対応するテープLU内の全データが存在するためである。
コピー不要と判定した場合、Activateプログラム304は、前処理を終了し、一方、コピー必要と判定した場合、指定仮想ディスクの仮想ディスクステータスを"Activate"に変更し、次のステップ2803へ進む。
テープからディスクへのコピーが必要と判定されると、Activateプログラム304は、対象テープ112をテープドライブ111に準備するようロボット110に指示を出す(ステップ2803)。ここでは、「対象テープ」とは、指定仮想ディスクに対応する(つまり読み出し対象の)テープLUNを有するテープである。
対象テープ112がテープドライブ111に準備され、対象テープ112からデータが読み出され、読み出されたデータが、仮想ディスクアレイコントローラ107のキャッシュメモリ309上に書かれる(ステップ2804)。
キャッシュメモリ309に書かれたデータは、Activateプログラム304によって、確保済みのディスクキャッシュに書き込まれる(ステップ2805)。
Activateプログラム304は、読み出すべきデータが対象テープ112に残っている場合は(ステップ2806でNO)、対象テープ112の読み出しを継続し、ステップ2804からステップ2805を繰り返す。Activateプログラム304は、読み出すべきデータが残っていない場合には、対象テープ112の読み出しを終了する(ステップ2806)。
対象テープ112の読み出しが終了すると、Activateプログラム304は、対象テープ112の巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ2807)。
指定仮想ディスクのデータが全てディスクキャッシュ上に準備できていれば、Activateプログラム304は、前処理を終了する。複数の対象テープ112に跨ってデータが格納されている場合は(ステップ2808でNO)、ステップ2803に戻り、必要に応じて、対象テープ112を切替えて、コピーを継続する。
以上が、前処理の流れの一例である。なお、図13において、ステップ2802でYESからステップ2803にかけて、以下の対象テープ判定処理が行われてもよい。
図14は、対象テープ判定処理の一例を示す。
Activateプログラム304は、指定仮想ディスク108に対応するテープLU(以下、該当テープLU)142を構成するテープ112に他のテープLUが存在しないことをテープグループ管理テーブル152及びテープLU管理テーブル153(図9参照)から特定できた場合(ステップ2701でNO)、該当テープLU142を有するテープ112を、ステップ2806で言う対象テープ112とする(ステップ2702)。
一方、Activateプログラム304は、該当テープLU142を構成するテープ112に他のテープLUが存在することをテープグループ管理テーブル152及びテープLU管理テーブル153から特定できた場合(ステップ2701でYES)、該当テープLU142を有するテープグループを構成する全テープ112を、それぞれ対象テープ112とする(ステップ2703)。
つまり、Activateプログラム304は、テープ112に記録された全データを読み出すようにする。換言すれば、Activateプログラム304は、前述した後処理において、テープ112の一部分だけで書込み終了とならないようにする。なお、一つのディスクキャッシュ上に、複数のテープLUのデータが読み出された場合には、ディスクキャッシュ上でのアドレスと、テープLUとの対応を図示しないテーブルで管理することができ、以って、ディスクキャッシュ上のどこのデータをどのテープLUに書いたら良いかを特定することができる。
ステップ2702又は2703の後、Activateプログラム304は、確保したディスクキャッシュを構成する各ディスクLU141に対して、対象テープ112上のテープLUN(例えば、ステップ702でのテープLUN、或いは、ステップ703でのテープグループ上の全テープLUN)を直前使用テープLUNアドレス(図7参照)として対応付けて、図13のステップ2803へ移行する(ステップ2704)。
図15は、仮想ディスク制御プログラム306が行うデータアクセス制御処理の一例を示す。
仮想ディスク制御プログラム306は、データアクセスコマンド(リードコマンド或いはライトコマンド)を受領した場合、ステータス管理テーブル1112を参照し、そのデータアクセスコマンドで指定されている仮想ディスク108のステータスが"Active"か否かを判定する。"Active"ではない場合には(ステップ2751でNO)、仮想ディスク制御プログラム306は、エラーを返答する(ステップ2752)。一方、仮想ディスク制御プログラム306は、指定されている仮想ディスク108の仮想ディスクのステータスが"Active"の場合には(ステップ2751でYES)、その仮想ディスク108のために確保されたディスクキャッシュに対してデータアクセス(データの読出し或いは書込み)を行う(ステップ2753)。
次に、仮想ディスクの使用終了を行なう処理に関して説明する。指示プログラム21又は管理プログラム31は、指定仮想ディスク108へのデータアクセスが終了した場合、仮想ディスクライブラリ装置106に対して終了指示を行なう。この指示をInactivate指示と呼ぶ。ディスク装置12の総記憶容量は、仮想ディスク108の総記憶容量に比べて小さいため、データアクセスが行なわれない仮想ディスク108からは、確保されたディスクキャッシュ(つまりディスク領域)を解放する必要がある。指示プログラム21又は管理プログラム31は、ユーザ或いは管理者による手動で、或いは、バックアップ或いはアーカイブ完了などを検出したときに自動で、Active状態の仮想ディスク(例えば、Activate指示が発行された上記指定仮想ディスク)に対して、Inactivate指示を発行する。
図16は、Inactivate処理の流れの一例を示すフローチャートである。
Inactivateプログラム305は、バックアップ/リストア制御プログラム101から仮想ディスクLUNを含んだInactivate指示(仮想ディスクを指定したInactivate指示)を受信する(ステップ601)。
Inactivateプログラム305は、指定仮想ディスクのステータスがActiveかどうかをステータス管理テーブル1112を参照することにより確認する(ステップ602)。指定仮想ディスクのステータスがActiveではない場合は(ステップ602でN)、Inactivateプログラム305は、Inactivate処理を終了する。
一方、指定仮想ディスクのステータスがActiveの場合は、Inactivateプログラム305は、後処理を実行する(ステップ603)。後処理とは、Inactivate指示された仮想ディスク108へアクセス不可能にする処理である。後処理については後に詳述する。
後処理の実行が終了すると、Inactivateプログラム305は、指定仮想ディスクのステータスをInactiveへと変更する(ステップ604)。変更が終了することでInactivate処理は完了する。
図17は、後処理の流れの一例を示す。
Inactivateプログラム305は、ディスクキャッシュからテープ112へのコピー要否を判定する(ステップ2901)。例えば、Inactivateプログラム305は、Active中にそのディスクキャッシュに更新が無かった場合には、コピー不要と判定する。指定仮想ディスク108に対応するディスクキャッシュ上の全データと、指定仮想ディスク108に対応するテープLU(又は、指定仮想ディスクに対応するテープグループ上の全テープLU)142内の全データとの間に差分が無いためである。コピー不要と判定した場合、Inactivateプログラム305は、は、後処理を終了する。コピー必要と判定した場合、Inactivateプログラム305は、は、指定仮想ディスク108の仮想ディスクステータスを"Inactivate"に変更し、次のステップ902へ進む。
ディスクキャッシュからテープ112へのコピーが必要と判定されると、Inactivateプログラム305は、対象テープ112をテープドライブ111に準備することをロボット110に実行させる(ステップ2902)。ここでの「対象テープ」とは、ディスクキャッシュに対応するテープLU142を有するテープ112である。このため、対象テープとは、例えば、図14において、ステップ2702が実行された場合には、指定仮想ディスクに対応するテープLUを有したテープ112であり、ステップ2703が実行された場合には、指定仮想ディスクに対応するテープグループを構成する各テープ112である。
対象テープ112がテープドライブ131に準備され、ディスクキャッシュ(ディスクLU)から仮想ディスクコントローラ107のキャッシュメモリ309上にデータが読み出される(ステップ2903)。キャッシュメモリ309に読み出されたデータは、対象テープ112に書き込まれる(ステップ904)
Inactivateプログラム305は、読み出すべきデータがディスクキャッシュに残っている場合は(ステップ2905でNO)、ディスクキャッシュからの読み出しを継続し、ステップ2903からステップ2904を繰り返す。Inactivateプログラム305は、読み出すべきデータが残っていない場合には(ステップ2905でYES)、読み出しを終了する。
対象テープ112への書き込みが終了した場合、Inactivateプログラム305は、対象テープ112の巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ2906)。
ディスクキャッシュ上のデータが全て対象テープ112に格納できていれば(ステップ2907でYES)、Inactivateプログラム305は、後処理を終了する。一方、複数の対象テープ112に跨ってデータを格納する場合には、制御プログラム1110は、ステップ2902に戻り、必要に応じて、対象テープ112を切替えてコピーを継続する(ステップ2907)。なお、ディスクキャッシュから対象テープ112には、データをコピーしているので、コピー元のディスクキャッシュには、対象テープ112に書かれるデータが残る。このため、例えば、指定仮想ディスクのディスクキャッシュを構成するディスクLUが、一旦解放されて、そのディスクLU内のデータが更新されること無く再びその指定仮想ディスクにディスクキャッシュとして割り当てられた場合には、その指定仮想ディスクに対応するテープLU内の全データが、そのディスクLUに残っていることになる。後処理が完了した場合、ディスクキャッシュ上のデータは削除されてもよい。
図18は、バックアップ処理においてバックアップ/リストア制御プログラム101が行う処理の流れの一例を示すフローチャートである。
例えば、図示していないジョブスケジューラや管理者によって、バックアップ/リストア制御プログラム101に対して、バックアップ処理が指示される。以下、通常LU180aのデータを外部ディスク105aへバックアップする場合を例に採り説明する。
バックアップ処理を実行するときは、バックアップ対象となる通常LU180aへの書き込みは行われないものとする。具体的には、例えば、バックアップ/リストア制御プログラム101は、通常LU180aにデータを書き込む可能性のあるコンピュータプログラム(例えば計算機100内の図示しないアプリケーションプログラム)に対して、データの書込みを禁止させてもよい。
ステップ701において、バックアップ/リストア制御プログラム101は、Activateプログラム304へ、仮想ディスク108aのLUNを含んだActivate指示を出す。
ステップ702において、バックアップ/リストア制御プログラム101は、仮想ディスク制御プログラム306へ、仮想ディスク108aのLUNを含んだステータス確認コマンドを出す。ステータス確認コマンドを受信した仮想ディスク制御プログラム306は、ステータス管理テーブル1112を参照し、仮想ディスク108aのLUNに対応した仮想ディスクステータスを返す。
ステップ703において、バックアップ/リストア制御プログラム101は、ステータス確認コマンドの戻り値として受信した仮想ディスクステータスが"Active"かどうか判定を行う。"Active"でなければ、バックアップ/リストア制御プログラム101は、ステップ702を実行する。"Active"であれば、バックアップ/リストア制御プログラム101は、ステップ704を実行する。
ステップ704において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、通常LU180aをプライマリLUとし外部ディスク105をセカンダリLUとするペアを生成するためのペア生成指示を出す。これにより、図20に示すように、通常LU180aと外部ディスク105aのペアが生成される。
ステップ705において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、上記ペアのIDを指定したペアステータス確認コマンドを出す。ペアステータス確認コマンドを受信したディスク制御プログラム205は、ディスク制御管理テーブル206から、指定されたペアIDに対応したペアステータスを取得し、取得したペアステータスを、バックアップ/リストア制御プログラム101に返す。また、ディスク制御プログラム205は、ディスク制御管理テーブル206の情報を出力する表示コマンドを提供しており、バックアップ/リストア制御プログラム101は、その表示コマンドを実行することにより、ディスク制御プログラム205からディスク制御管理テーブル206の情報を取得することができる。また、ディスク制御プログラム205は、ディスク制御管理テーブル206のペア情報を削除する削除コマンドを提供しており、削除するペアのペアIDを指定することで、そのペアIDに関連するペア情報を削除することができる。ペア情報とは、ディスク制御管理テーブル206におけるペアID、プライマリLUN、セカンダリLUN及びペアステータスの値である。
ステップ706において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205から返されたペアステータスが"Duplex"かどうかの判定を行う。"Duplex"でなければ、バックアップ/リストア制御プログラム101は、ステップ705を実行する。"Duplex"であれば、バックアップ/リストア制御プログラム101は、ステップ707を実行する。
ステップ707において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、ペアIDを指定したペア分割指示を出す。
ステップ708において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム101へ、そのペアIDを指定したペアステータス確認コマンドを出す。
ステップ709において、バックアップ/リストア制御プラグラム101は、ペアステータスが"Semi-Simplex"かどうか判定する。"Semi-Simplex"でなければ、バックアップ/リストア制御プログラム101は、ステップ708を実行する。"Semi-Simplex"であれば、バックアップ/リストア制御プログラム101は、ステップ710を実行する。
ステップ710において、バックアップ/リストア制御プログラムは、Inactivateプログラム305へ、仮想ディスク108aのLUNを含んだInactivate指示を出す。
ステップ711において、バックアップ/リストア制御プログラム101は、仮想ディスク制御プログラム306へ、仮想ディスク108aのLUNを含んだ仮想ディスクステータス確認コマンドを出す。
ステップ712において、バックアップ/リストア制御プログラム101は、仮想ディスクステータス確認コマンドの戻り値として受信した仮想ディスクステータスが"Inactive"かどうか判定を行う。"Inactive"でなければ、バックアップ/リストア制御プログラム101は、ステップ711を実行する。"Inactive"であれば、バックアップ/リストア制御プログラム101は、バックアップ処理を終了する。
図19は、ディスク制御プログラム205のLUペア生成処理の流れの一例を示すフローチャートである。
ステップ801において、ディスク制御プログラム205は、バックアップ/リストア制御プログラム101からLUペア生成指示を受信後、指定されたプライマリLU(例えば通常LU180a)とセカンダリLU(例えば外部ディスク105a)のペアを生成する。まず、ディスク制御プログラム205は、指定されたプライマリLUとセカンダリLUのペアにペアIDを割り振り、ペアID、プライマリLUN及びセカンダリLUNをディスク制御管理テーブル206に設定する。プライマリLUN及びセカンダリLUNには、それぞれ、LUNの他に、ターゲットIDを付加することもできる。ディスク制御プログラム205は、ペアを生成した後、プライマリLUからセカンダリLUへデータのコピーを行う。コピー中のペアステータスは"COPY"とする。ディスク制御プログラム205は、ペア生成後、ペアステータス1104に"COPY"を設定する。プライマリLUとセカンダリLUの中身が一致したところで、一旦コピー処理は停止するが、もし、プライマリLUに書き込みがあった場合はすぐにセカンダリLUへコピー処理される状態となる。この状態をDuplex状態とする。
ステップ802において、ディスク制御プログラム205は、ペアステータス1104に"Duplex"を設定する。ペアステータスの設定が終了すると、ペア生成処理は完了する。
図21は、ディスク制御プログラム205のペア分割処理の流れの一例を示すフローチャートである。
ステップ1001において、ディスク制御プログラム205は、バックアップ/リストア制御プログラム101からペア分割指示を受信後、指定されたペアの分割処理を実行する。ディスク制御プログラム205は、指定されたペアを分割状態とする。分割状態とは、プライマリLUに書き込みがあった場合でも、セカンダリLUへコピーされない状態である。この状態を、Semi-Simplex状態とする。Semi-Simplex状態では、ディスク制御プログラム205が、プライマリLUとセカンダリLUのデータの差分を管理している。ディスク制御プログラム205が差分を管理することで、再度ペア生成処理を実行するときに、すべてのデータをコピーする必要がなく、差分となっているデータのみをコピーするだけで、Duplex状態にすることが可能となる。
ステップ902において、ディスク制御プログラム205は、ペアステータス1104に"Semi-Simplex"を設定する。ペアステータス1104の設定が終了すると、ペア分割処理を終了する。
図23は、リストア処理においてバックアップ/リストア制御プログラム101が行う処理の流れの一例を示すフローチャートである。
例えば、図示していないジョブスケジューラや管理者によって、バックアップ/リストア制御プログラム101に対し、リストアが指示される。以下、外部ディスク105aのデータを通常LU180aへリストアする場合を例に採り説明する。
リストア処理を実行するときは、外部ディスク105aのリストア先となる通常LU180aへの書き込みは行われないものとする。具体的には、例えば、バックアップ/リストア制御プログラム101は、通常LU180aにデータを書き込む可能性のあるコンピュータプログラム(例えば計算機100内の図示しないアプリケーションプログラム)に対して、データの書込みを禁止させてもよい。
ステップ1201において、バックアップ/リストア制御プログラム101が、Activateプログラム304へ、仮想ディスク108aのLUNを含んだActivate指示を出す。
ステップ1202において、バックアップ/リストア制御プログラム101は、仮想ディスク制御プログラム306へ、仮想ディスク108aのLUNを含んだステータス確認コマンドを出す。
ステップ1203において、バックアップ/リストア制御プログラム101は、ステータス確認コマンドの戻り値として受信したステータスが"Active"かどうか判定を行う。"Active"でなければ、バックアップ/リストア制御プログラム101は、ステップ1202を実行する。"Active"であれば、バックアップ/リストア制御プログラム101は、ステップ1204を実行する。
ステップ1204において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、通常LU180aをプライマリLUとし外部ディスク105aをセカンダリLUとするペア再生成指示を出す。
ステップ1205において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、再生成したペアを指定したペアステータス確認コマンドを出す。ペアステータス確認コマンドを受信したディスク制御プログラム205は、ディスク制御管理テーブル206から、指定されたペアのペアステータスを読み出し、バックアップ/リストア制御プログラム101に返す。
ステップ1206において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205から返されたペアステータスが"Duplex"かどうかの判定を行う。"Duplex"でなければ、バックアップ/リストア制御プログラム101は、ステップ1205を実行する。"Duplex"であれば、バックアップ/リストア制御プログラム101は、ステップ1207を実行する。
ステップ1207において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、通常LU180aと外部ディスク105aのペアを指定したペア分割指示を出す。
ステップ1208において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、上記ペアを指定したペアステータス確認コマンドを出す。
ステップ1209において、バックアップ/リストア制御プログラム101は、戻り値として受けたペアステータスが"Semi-Simplex"かどうか判定する。"Semi-Simplex"でなければ、バックアップ/リストア制御プログラム101は、ステップ1208を実行する。"Semi-Simplex"であれば、バックアップ/リストア制御プログラム101は、ステップ1210を実行する。
ステップ1210において、バックアップ/リストア制御プログラム101は、Inactivateプログラム305へ、仮想ディスク108aを指定したInactivate指示を出す。
ステップ1211において、バックアップ/リストア制御プログラム101は、仮想ディスク制御プログラム306へ、仮想ディスク108aを指定した仮想ディスクステータス確認コマンドを出す。
ステップ1212において、バックアップ/リストア制御プログラム101は、仮想ディスクステータス確認コマンドの戻り値として受信したステータスが"Inactive"かどうか判定を行う。"Inactive"でなければ、バックアップ/リストア制御プログラム101は、ステップ1211を実行する。"Inactive"であれば、バックアップ/リストア制御プログラム101は、リストア処理を終了する。
図24は、ディスク制御プログラム205のペア再生成処理の一例を示すフローチャートである。
ステップ2001において、ディスク制御プログラム205は、バックアップ/リストア制御プログラム101からペア再生成指示を受信後、指定されたペアを再生成する。ディスク制御プログラム205は、ペアステータス1104に"COPY"を設定し、プライマリLUからセカンダリLUへ差分のみのデータのコピーを行う。
ステップ2002において、プライマリLUとセカンダリLUの中身が一致した場合、ディスク制御プログラム205は、ペアステータス1104に"Duplex"を設定する。ペアステータス1104の設定が終了すると、ペア再生成処理を終了する。
以上が、第一実施例についての説明である。なお、この第一実施例では、例えば、3つ以上のLUがいわゆるカスケード構成にされても良い。具体的には、例えば、図28に示すように、第一のペア(通常LU180aをプライマリLUとし、通常LU180bをセカンダリLUとしたペア)のセカンダリLUを、第二のペア(通常LU180bをプライマリLUとし、外部ディスク105aをセカンダリLUとしたペア)のプライマリLUとすることで、LUのカスケードを構成しても良い。この場合のディスク制御管理テーブル206を図29に例示する。このような場合には、例えば、外部ディスク105aから通常LU180aへリストアするときは、一旦通常LU180bへリストアし、通常LU180bから通常LU180aへリストアする方法がある。或いは、通常LU180bと外部ディスク105aのペア情報を削除し、プライマリLUを外部ディスク105aとし、セカンダリLUを通常LU180aとするペアを生成することで高速にリストアする方法もある。これらの方法は、バックアップ処理に応用することができる。
また、この第一実施例では、図30に例示するように、一つの通常LU180aに、複数のLUがセカンダリLUとしてペアにされても良い。
以下、本発明の第二実施例について説明する。なお、以下の説明では、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する。
この第二実施例では、プライマリLUとセカンダリLUとの差分の管理が行われない。このため、バックアップ処理では、通常LU180aの全データが外部ディスク105aにコピーされることになるし、リストア処理では、外部ディスク105aの全データが通常LU180aにコピーされることになる。差分管理が行われれば、差分管理が行われない場合に比して、バックアップやリストアに要する時間を短縮することができるが、差分管理が行われなければ、後述するシーケンシャルリード(ディスクLUを介さないテープからの直接読出し)及び/又はシーケンシャルライト(ディスクLUを介さないテープに対する直接書込み)を行うことが可能である。以下、詳述する。
図25は、第二実施例のバックアップ処理において、バックアップ/リストア制御プログラム101が実行する処理の流れの一例を示すフローチャートである。図26は、第二実施例のリストア処理において、バックアップ/リストア制御プログラム101が実行する処理の流れの一例を示すフローチャートである。
この図25において、ステープ1301〜1312は、図18のステップ701〜712にそれぞれ対応しており、相違点は、ステップ1307において、ペア分割指示ではなく、ペア解除指示が出される点である。このため、ステップ1309では、"Semi-Simplex"かどうかではなく、"Simplex"かどうかが判断される。
同様に、図26において、ステップ1401〜1412は、図23のステップ1201〜1212にそれぞれ対応しており、相違点は、ステップ1407において、ペア分割指示ではなく、ペア解除指示が出される点である。このため、ステップ1409では、"Semi-Simplex"かどうかではなく、"Simplex"かどうかが判断される。
図27は、ディスク制御プログラム205のペア解除処理の流れの一例を示すフローチャートである。
ステップ1501において、ディスク制御プログラム205は、バックアップ/リストア制御プログラム101からペア解除指示を受信後、指定されたペアを解除する。Duplex状態の後にペアが解除された場合には、プライマリLUに更新があっても、その更新が、セカンダリLUには反映されないし、更新により生じた差分も、管理されない。
ステップ1502において、ディスク制御プログラム205は、ペアステータス1104に"Simplex"を設定する。ペアステータス1104の設定が終了すると、ペア解除処理を終了する。
さて、本実施例では、プライマリLUとセカンダリLUとの差分の管理が行われないので、以下に説明するシーケンシャルリード及び/又はシーケンシャルライトを行うことができる。具体的には、例えば、計算機が、シーケンシャルリード及び/又はシーケンシャルライトのコマンドを発行することができる。ディスクアレイコントローラ103は、そのコマンドに応答して、仮想ディスクアレイコントローラ107に、シーケンシャルリード及び/又はシーケンシャルライトのコマンドを発行することができる。或いは、ディスクアレイコントローラ103は、計算機からのコマンドの有無に関わらず、プライマリLUとセカンダリLUとの差分の管理が行われていない場合に、仮想ディスクアレイコントローラ107に、シーケンシャルリード及び/又はシーケンシャルライトのコマンドを発行することができる。以下、シーケンシャルリードのコマンドを「SeqReadコマンド」と示し、シーケンシャルライトのコマンドを「SeqWriteコマンド」と示す。
図39は、仮想ディスクアレイコントローラ107がSeqReadコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
仮想ディスクアレイコントローラ107は、SeqReadコマンドを受領した場合(ステップ21100)、そのSeqReadコマンドで指定されている仮想ディスク(以下、指定仮想ディスク)108の仮想ディスクステータスを"SR-prepare"に変更し、指定仮想ディスク108に対応するテープ(以下、対象テープ)112をテープドライブ111に準備する(ステップ21101)。
対象テープ112がテープドライブ111に準備されたならば、仮想ディスクアレイコントローラ107は、指定仮想ディスク108の仮想ディスクステータスを"SeqRead"に変更し、準備された対象テープ112からキャッシュメモリ309にデータを読み出す(ステップ21102)。
ディスクアレイコントローラ103は、SeqReadコマンドが発行された後、定期的に、指定仮想ディスク108の仮想ディスクステータスを監視し、その仮想ディスクステータスが"SeqRead"になったことを検出した場合、指定仮想ディスクに対するリードコマンドを発行する。仮想ディスクアレイコントローラ107は、そのリードコマンドに従って、キャッシュメモリ309上に読み出されたデータを、ディスクアレイコントローラ103へ転送する(ステップ21103)。
仮想ディスクアレイコントローラ107は、読み出すべきデータが対象テープ112に残っている場合は(ステップ21104でNO)、対象テープ112からの読み出しを継続し、読み出すべきデータが残っていない場合には(ステップ21104でYES)、対象テープ112の読み出しを終了する。
対象テープ112からの読み出しが終了した場合、仮想ディスクアレイコントローラ107は、テープの巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ21105)。
指定仮想ディスク108からのデータを全て読み出された場合に(ステップ21106でYES)、処理が終了となる。複数の対象テープ112に跨ってデータが格納されている場合は、ステップ21101に戻り、必要に応じて、対象テープ112を切替えて読み出しを継続することができる。読み出したデータがキャッシュメモリ309からあふれないように、仮想ディスクアレイコントローラ107は、ディスクアレイコントローラからのリードコマンドに応じて、対象テープ112からの読み出し速度を変更することもできる。また、ディスクLUが割り当てられている場合には、ディスクアレイコントローラへの読出しと並行してディスクへの書き込みを行っても良い。また、仮想ディスクアレイコントローラ107は、ディスクアレイコントローラへのデータ転送速度が対象テープ112からの読み出し速度よりも早いためにキャッシュメモリ309にデータが準備できていない場合は、ディスクアレイコントローラ103に、データの準備中である旨を通知することができる。データ準備中の通知を受領したディスクアレイコントローラ103は、一定時間経過後に、リードコマンドをリトライすることができる。
図40は、仮想ディスクアレイコントローラ107がSeqWriteコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
仮想ディスクアレイコントローラ107は、SeqWriteコマンドを受領した場合(ステップ21200)、そのSeqWriteコマンドで指定されている仮想ディスク(以下、指定仮想ディスク)108の仮想ディスクステータスを"SW-prepare"に変更し、指定仮想ディスク108に対応するテープ(以下、対象テープ)112をテープドライブ111に準備する(ステップ1101)。
対象テープ112がテープドライブ111に準備されたならば、仮想ディスクアレイコントローラ107は、指定仮想ディスク108の仮想ディスクステータスを"SeqWrite"に変更する。ディスクアレイコントローラ103は、SeqWriteコマンドが発行された後、定期的に、指定仮想ディスク108の仮想ディスクステータスを監視し、その仮想ディスクステータスが"SeqWrite"になったことを検出した場合、指定仮想ディスクに対するライトコマンド及びデータを発行する。仮想ディスクアレイコントローラ107は、ディスクアレイコントローラ103からのライトコマンドに従って、ディスクアレイコントローラ103からのデータをキャッシュメモリ309に書く(ステップ21202)。仮想ディスクアレイコントローラ107は、キャッシュメモリ309に書かれたデータを、準備された対象テープ112に書込む(ステップ21203)。
仮想ディスクアレイコントローラ107は、書込むデータがキャッシュメモリ309に残っている場合は(ステップ21204でNO)、対象テープ112への書き込みを継続し、書込むべきデータが残っていない場合には(ステップ21204でYES)、対象テープ112への書き込みを終了する。
対象テープ112への書き込みが終了した場合、仮想ディスクアレイコントローラ107は、テープの巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ21205)。
指定仮想ディスク108に対してデータの書き込みが完了した場合に(ステップ21206でYES)、処理が終了となる。複数の対象テープ112に跨ってデータを書込む場合は、ステップ21201に戻り、必要に応じて、対象テープ112を切替えて書き込みを継続することができる。SeqRead時と同様に、ディスクLUが割り当てられている場合には、テープへの書込みと並行してディスクへの書き込みを行っても良い。
以下、本発明の第三実施例を説明する。以下、第二実施例との相違点を主に説明する。
図31は、本発明の第三実施例に係る計算機システムの構成例を示す。
ストレージ仮想化装置102では、ローカルメモリ204などの各種記憶資源が有限であるため、管理可能なペア数以上のペアを生成することは不可能である。そこで、この第三実施例では、ペア情報を削除する削除コマンドを提供し、保存可能なペア数以上のペアを生成する場合には、その削除コマンドを実行することで、保存領域を空けることができる。
また、その際、例えば、リストアのために、削除したペアのプライマリLUのデータを保存しておく場合は、管理者がそのペア情報を管理する必要があるが、削除するペア数が多い場合には、管理者にとって管理が負担となり、どのLUとどのLUがどのようにペアを構成していたのか把握できなくなってしまう場合がある。
そのため、この第三実施例では、削除ペア管理テーブル124が準備され、そのテーブル124で削除されたペアのペア情報(以下、削除ペア情報)を管理することができるようになっている。削除ペア管理テーブル124は、例えば、図31に示すように、計算機100のメモリ121に保存される。バックアップ/リストア制御プログラム101は、ペア削除指示を出す場合には、ペア情報を削除ペア管理テーブル124に格納する。バックアップ/リストア制御プログラム101は、削除ペア管理テーブル124の情報を、ディスプレイ(例えば計算機2の図示しないディスプレイ)へ出力する削除ペア表示コマンドを管理者へ提供する。管理者は、削除ペア表示コマンドを実行させることで、削除ペア情報を表示させることできる。
図32は、削除ペア管理テーブル124の構成例を示した図である。
削除ペア管理テーブル124には、ペアIDが書かれるフィールド2102と、プライマリLUNが書かれるフィールド2102と、セカンダリLUNが書かれるフィールド2103と、削除された日時が書かれるフィールド2104とがある。すなわち、削除ペア管理テーブル124には、削除ペア情報として、削除されたペア情報中のプライマリLUN及びセカンダリLUNと、ペアの削除を識別するための削除ペアIDと、ペア情報が削除された日時とが記録される。
図33は、第三実施例において、バックアップ処理の際に、バックアップ/リストア制御プログラム101によって行われる処理の流れの一例を示す。
図33によれば、図25のフローに、削除ペア情報を削除ペア管理テーブル124に格納するステップ2207と、ペア情報の削除を指示するステップ2214とが追加されている。
ステップ2207において、バックアップ/リストア制御プログラム101は、取得した日時と、削除するペアのプライマリLUN及びセカンダリLUNと、新たに割り当てた削除ペアIDとを、削除ペア管理テーブル124へ格納する。
ステップ2213において、ステータス確認コマンドの戻り値としてバックアップ/リストア制御プログラム101が受信したステータスが"Inactive"であれば、ステップ2214において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、ペア情報を削除するペアIDを指定して削除コマンドを出す。これにより、ディスク制御プログラム205によって、ディスク制御管理テーブル206からペア情報が削除される。ペア情報の削除が終了すると、バックアップ処理が完了する。
ペア情報の削除は、ペア解除処理で行っても良い。具体的には、ステップ2214を追加せず、図27のステップ1501において"Simplex"を設定する代わりにペア情報を削除する。その場合、ペアステータス確認コマンドを受信したディスク制御プログラム205は、ペアステータス確認コマンドで指定されたペアIDがディスク制御管理テーブル206に存在しないときに"Simplex"をバックアップ/リストア制御プログラム101に返す。
以下、本発明の第四実施例について説明する。
図35は、本発明の第四実施例に係る計算機システムの構成例を示す。
外部ディスク対応テーブル209には、管理可能な外部ディスク数以上の外部ディスク105を生成することは不可能である。ローカルメモリ204などの記憶資源が有限であるためである。
そこで、この第四実施例では、管理可能な外部ディスク数以上の外部ディスクを生成する場合には、外部ディスク105の対応を解除する外部ディスク解除コマンドを実行することで、外部ディスク対応テーブル209の保存領域を空けることができる。
その際、リストアのために、解除した外部ディスク105と仮想ディスク108の対応関係を保存しておく場合には、管理者がその対応関係を管理する必要があるであろうが、外部ディスク数が多い場合には、管理者にとって管理が負担となり、どの外部ディスク105とどの仮想ディスク108が対応していたのか把握できなくなってしまう場合がある。
そのため、この第四実施例では、バックアップ/リストア制御プログラム101が、図35に示した仮想ディスク対応テーブル125を用いて、削除した外部ディスク105と仮想ディスク108との対応関係を管理する。バックアップ/リストア制御プログラム101は、外部ディスク解除指示を出すときに、対応関係を仮想ディスク対応テーブル125に格納する。バックアップ/リストア制御プログラム101は、仮想ディスク対応テーブル125の情報を、ディスプレイ(例えば、計算機100の図示しないディスプレイ)へ出力する仮想ディスク対応テーブル表示コマンドを管理者へ提供する。管理者は、仮想ディスク対応テーブル表示コマンドを実行させることで、仮想ディスクと外部ディスクとの対応関係を表示させることができる。
図36は、仮想ディスク対応テーブル125の構成例を示した図である。
仮想ディスク対応テーブル125には、対応IDが書かれるフィールド2501と、外部ディスクLUNが書かれるフィールド2302と、仮想ディスクLUNが書かれるフィールド401と、プライマリLUNが書かれるフィールド1102と、セカンダリLUNが書かれるフィールド1103と、日時が書かれるフィールド2502とがある。対応IDとは、仮想ディスク108と外部ディスク105との対応関係を一意に識別するためのIDである。日時は、外部ディスク削除指示を出したときの日時である。
図37は、外部ディスク105の解除処理の流れの一例を示すフローチャートである。
ステップ2601において、バックアップ/リストア制御プログラム101は、新たに割り当てた対応IDと、解除する外部ディスク105のLUNと、その外部ディスク105と対応関係にあった仮想ディスク108のLUNと、その外部ディスク105が関連していたプライマリLU及びセカンダリLUのそれぞれのLUNと、計算機100で取得した日時とを、仮想ディスク対応テーブル125へ格納する。
ステップ2602において、バックアップ/リストア制御プログラム101は、ディスク制御プログラム205へ、外部ディスクLUNを含んだ外部ディスク解除コマンドを送信する。外部ディスク解除コマンドを受信したディスク制御プログラム205は、そのコマンド中の外部ディスクLUNに対応した情報(対応ID、外部ディスクLUN及び仮想ディスクLUN)を、外部ディスク対応テーブル209から削除する。外部ディスク105の解除が終了すると、外部ディスクの解除処理は完了する。
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、仮想ディスク108は、テープLU142にマッピングされず、ディスクLU12に固定的にマッピングされても良い。換言すれば、複数のディスクLU141には、仮想ディスク108に固定的にマッピングされているディスクLU141と、仮想ディスク108に動的にマッピングされるディスクLU141とが含まれても良い。これにより、一つの仮想ディスクライブラリ装置106で、ディスクキャッシュを利用したテープアクセスと、テープアクセスの発生しないディスクアクセスとの両方を行うことができる。
また、例えば、ディスクキャッシュに限らず、ランダムアクセスに対応できる種類の記憶領域、例えば、メモリ(例えばフラッシュメモリなど)上に確保された記憶領域が利用されても良い。
図1は、本発明の第一実施例に係る計算機システムの構成例を示す。 図2は、ストレージ仮想化装置102のディスクアレイコントローラ103の構成例を示した図である。 図3は、仮想ディスクアレイコントローラ107の構成例を示した図である。 図4は、LU関係テーブルの一例を示す。 図5は、仮想ディスク管理テーブルの一例を示す。 図6は、RAIDグループ管理テーブルの一例を示す。 図7は、ディスクLU管理テーブルの一例を示す。 図8は、テープグループ管理テーブルの一例を示す。 図9は、テープLU管理テーブルの一例を示す。 図10は、ステータス管理テーブル1112の一例を示した図である。 図11は、IO管理テーブル1113の一例を示した図である。 図12は、Activate処理の流れの一例を示すフローチャートである。 図13は、前処理の流れの一例を示す。 図14は、対象テープ判定処理の一例を示す。 図15は、仮想ディスク制御プログラム306が行うデータアクセス制御処理の一例を示す。 図16は、Inactivate処理の流れの一例を示すフローチャートである。 図17は、後処理の流れの一例を示す。 図18は、バックアップ処理においてバックアップ/リストア制御プログラム101が行う処理の流れの一例を示すフローチャートである。 図19は、ディスク制御プログラム205のLUペア生成処理の流れの一例を示すフローチャートである。 図20は、通常LU180aと外部ディスク105aのペアを示す。 図21は、ディスク制御プログラム205のペア分割処理の流れの一例を示すフローチャートである。 図22は、ディスク制御管理テーブル206の構成例を示す。 図23は、リストア処理においてバックアップ/リストア制御プログラム101が行う処理の流れの一例を示すフローチャートである。 図24は、ディスク制御プログラム205のペア再生成処理の一例を示すフローチャートである。 図25は、第二実施例のバックアップ処理において、バックアップ/リストア制御プログラム101が実行する処理の流れの一例を示すフローチャートである。 図26は、第二実施例のリストア処理において、バックアップ/リストア制御プログラム101が実行する処理の流れの一例を示すフローチャートである。 図27は、ディスク制御プログラム205のペア解除処理の流れの一例を示すフローチャートである。 図28は、三以上のLUのカスケードの一例を示す。 図29は、図28のカスケードを表すディスク制御管理テーブル206の一例を示す。 図30は、プライマリLUが共通である複数のペアの一例を示す。 図31は、本発明の第三実施例に係る計算機システムの構成例を示す。 図32は、削除ペア管理テーブル124の構成例を示した図である。 図33は、第三実施例において、バックアップ処理の際に、バックアップ/リストア制御プログラム101によって行われる処理の流れの一例を示す。 図34は、外部ディスク対応テーブル209の構成例を示す。 図35は、本発明の第四実施例に係る計算機システムの構成例を示す。 図36は、仮想ディスク対応テーブル125の構成例を示した図である。 図37は、外部ディスク105の解除処理の流れの一例を示すフローチャートである。 図38は、論理ボリュームの割り当てを模式的に示した図である。 図39は、仮想ディスクアレイコントローラ107がSeqReadコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。 図40は、仮想ディスクアレイコントローラ107がSeqWriteコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
符号の説明
101…バックアップ/リストア制御プログラム、102…ストレージ仮想化装置、103…ディスクアレイコントローラ、105…外部ディスク、106…仮想ディスクライブラリ装置、107…仮想ディスクアレイコントローラ、108…仮想ディスク、205…ディスク制御プログラム、304…Activateプログラム、305…Inactivateプログラム、305…仮想ディスク制御プログラム、307…仮想ディスク制御管理テーブル

Claims (20)

  1. 計算機に接続され、データを記憶する第二のディスク装置を含む第一のストレージシステムと、
    前記第一のストレージシステムに接続され、データを記憶する複数のテープ装置と、アクセス先がランダムに異なるアクセスであるランダムアクセスをテープ装置よりも高速に行うことのできる第一のディスク装置と、前記複数のテープ装置や前記第一のディスク装置へのアクセスを制御する第二のコントローラとを含む第二のストレージシステムと
    を備え、
    前記第二のコントローラは、仮想的なディスク装置であり前記第一のディスク装置もしくは前記テープ装置に対応する仮想ディスク装置を提供し、前記仮想ディスク装置と前記第一のディスク装置及び/又は前記テープ装置との間の対応関係を示す装置関係情報を記憶し、
    前記計算機は、コピー指示を前記第一のストレージシステムに送信する計算機制御部を備え、
    前記第一のストレージシステムは、前記第二のディスク装置の他に、
    前記仮想ディスク装置に対応する第三のディスク装置と、
    前記第二のディスク装置や前記第三のディスク装置へのデータアクセスを制御する第一のコントローラと
    を備え、
    (a)前記第一のコントローラは、前記計算機から前記コピー指示を受信し、該コピー指示に応答して、前記第二のディスク装置から前記第三のディスク装置へのデータコピーを行い、前記第三のディスク装置内のデータを前記仮想ディスク装置に書き込むためのデータアクセスコマンドを前記第二のコントローラに送信し、前記第二のコントローラは、前記第一のストレージシステムから前記データアクセスコマンドを受信し、前記第一のディスク装置上に記憶領域を確保し、前記複数のテープ装置のうちの前記仮想ディスク装置に対応した前記テープ装置からデータを読出し、前記仮想ディスク装置を前記第一のディスク装置に対応させ、前記データアクセスコマンドに従うデータを前記確保された記憶領域に書き込み、その記憶領域から前記データを読み出し、読み出したデータを、前記仮想ディスク装置に対応する前記テープ装置に書き込み、
    (b)前記第二のコントローラは、シーケンシャルライトのライトコマンドを前記第一のコントローラから受信した場合には、前記仮想ディスク装置を前記装置関係情報に基づき前記テープ装置に対応させ、そのライトコマンドに従うデータを前記仮想ディスク装置に対応した前記テープ装置に書き込む
    計算機システム。
  2. 前記コピー指示は、前記第二のディスク装置を前記第三のディスク装置にバックアップすることの指示であり、
    前記第一のコントローラは、前記コピー指示に応答して、前記第二のディスク装置から前記第三のディスク装置へのデータコピーを行い、その際、前記第三のディスク装置に生じる書き込みのための、前記仮想ディスク装置を指定したライトコマンドを前記第二のストレージシステムに送信し、
    前記第一のストレージシステムから前記仮想ディスク装置に対するライトコマンドを受信することに応答して、前記第二のコントローラは記テープ装置に対してではなく、前記記憶領域に対して書き込みを行い、該書き込みが完了した後、前記記憶領域上のデータを前記テープ装置に書き込む、
    請求項1記載の計算機システム。
  3. 前記計算機制御部は、前記第一のストレージシステムに分割指示を送信し、
    前記第一のコントローラが、前記計算機から分割指示を受信した後、前記第二のディスク装置に更新があったならば、該更新により生じた、前記第二のディスク装置と前記第三のディスク装置との差分を、管理し、その後、前記コピー指示を受信した場合には、前記管理されている差分のみを前記第三の記憶装置に書き込むための前記ライトコマンドを前記第二のストレージシステムに送信する、
    請求項2記載の計算機システム。
  4. 前記計算機制御部は、前記第一のストレージシステムに解除指示を送信し、
    前記第一のコントローラが、前記計算機から解除指示を受信した後、前記第二のディスク装置に更新があっても、該更新により生じた、前記第二のディスク装置と前記第三のディスク装置との差分を、管理せず、その後、前記コピー指示を受信した場合には、更新後の前記第二のディスク装置内の全データを前記第三のディスク装置に書き込むための前記ライトコマンドを前記第二のストレージシステムに送信する、
    請求項2又は3記載の計算機システム。
  5. 前記コピー指示は、前記第三のディスク装置を前記第二のディスク装置にリストアすることの指示であり、
    前記第一のコントローラは、前記コピー指示に応答して、前記第三のディスク装置から前記第二のディスク装置へのデータコピーを行い、その際、前記第三のディスク装置からの読み出しのための、前記仮想ディスク装置を指定したリードコマンドを前記第二のコントローラに送信し、該リードコマンドに応答して読み出されたデータを前記第二の記憶装置に書き、
    前記第一のストレージシステムから前記仮想ディスク装置に対するリードコマンドを受信することに応答して、前記第二のコントローラは、前記テープ装置からではなく、前記記憶領域からデータを読み出し、読み出したデータを前記第一のストレージシステムに送信する、
    請求項1乃至4のいずれか1項に記載の計算機システム。
  6. 前記計算機制御部は、前記第一のストレージシステムに分割指示を送信し、
    前記第一のコントローラが、前記計算機から分割指示を受信した後、前記第二のディスク装置に更新があったならば、該更新により生じた、前記第二の記憶装置と前記第三の記憶装置との差分を、管理し、その後、前記コピー指示を受信した場合には、前記管理されている差分のみを前記第二のディスク装置に読み出すための前記リードコマンドを前記第二のストレージシステムに送信する、
    請求項5記載の計算機システム。
  7. 前記計算機制御部は、前記第一のストレージシステムに解除指示を送信し、
    前記第一のコントローラが、前記計算機から解除指示を受信した後、前記第二の記憶装置に更新があっても、該更新により生じた、前記第二のディスク装置と前記第三のディスク装置との差分を、管理せず、その後、前記コピー指示を受信した場合には、前記第三の記憶装置内の全データを前記第二の記憶装置に読み出すための前記リードコマンドを前記第二のストレージシステムに送信する、
    請求項5又は6記載の計算機システム。
  8. 前記第一のストレージシステムは、前記第二のディスク装置と前記第三のディスク装置とを含んだ複数のディスク装置を備え、
    前記複数のディスク装置のうちの一つと他の一つとが、ペアにされたり、そのペアが解除されたりし、
    前記第一のコントローラが、各ペアに関するペア情報が記録されるペア管理テーブルを保持し、
    前記ペア管理テーブルには、記録されるペア情報の数に上限があり、
    前記計算機が、解除されたペアに関する解除ペア情報が記録される解除ペア管理テーブルを備える、
    請求項1乃至7のいずれか1項に記載の計算機システム。
  9. 前記第三のディスク装置と前記仮想ディスク装置とのセットである第三/仮想セットが複数個備えられ、各第三/仮想セットは、セットが解除されることがあり、
    前記第一のコントローラが、前記第三/仮想セットに関するセット情報が記録されるセット管理テーブルを保持し、
    前記セット管理テーブルには、記録されるセット情報の数に上限があり、
    前記計算機が、解除された第三/仮想セットに関する解除セット情報が記録される解除セット管理テーブルを備える、
    請求項1乃至8のいずれか1項に記載の計算機システム。
  10. 複数の仮想ディスク装置の各々に、論理的な記憶ユニットであるテープLUがマッピングされており、
    前記第二のコントローラは、対象の仮想ディスク装置にマッピングされている対象テープLUの後端のあるテープ装置にそれとは別のテープLUが存在する場合には、該対象テープLU及び該別のテープLUを含んだ二以上のテープLUから前記記憶領域にデータを読み出
    請求項1乃至9のいずれか1項に記載の計算機システム。
  11. 前記計算機が前記第二のストレージシステムに接続されており、
    前記計算機制御部が、前記仮想ディスク装置に対する所定の準備指示を前記第二のストレージシステムに送信し、
    前記第二のコントローラが、前記計算機から前記準備指示を受信し、該準備指示に応答して、前記記憶領域を確保する、
    請求項1乃至10のいずれか1項に記載の計算機システム。
  12. 前記第一のコントローラが、前記データコピーの前に、前記仮想ディスク装置に対する所定の準備指示を前記第二のストレージシステムに送信し、
    前記第二のコントローラが、前記第一のストレージシステムから前記準備指示を受信し、該準備指示に応答して、前記記憶領域を確保する、
    請求項1乃至11のいずれか1項に記載の計算機システム。
  13. 前記計算機が前記第二のストレージシステムに接続されており、
    前記計算機制御部が、前記仮想ディスク装置に対する所定の完了指示を前記第二のストレージシステムに送信し、
    前記第二のコントローラが、前記計算機から前記完了指示を受信し、該完了指示に応答して、前記記憶領域上のデータを前記対象テープ装置に書き込む、
    請求項1乃至12のいずれか1項に記載の計算機システム。
  14. 前記第一のコントローラが、前記データコピーの後に、前記仮想ディスク装置に対する所定の完了指示を前記第二のストレージシステムに送信し、
    前記第二のコントローラが、前記第一のストレージシステムから前記完了指示を受信し、該完了指示に応答して、前記記憶領域上のデータを前記テープ装置に書き込む、
    請求項1乃至13のいずれか1項に記載の計算機システム。
  15. 前記第二のコントローラは、解放されているディスク領域を確保し、所定のイベントが発生した場合に、前記確保したディスク領域を解放する、
    請求項1乃至14のいずれか1項に記載の計算機システム。
  16. 前記第二のコントローラは、前記確保したディスク領域に、前記テープ装置からの読出し対象のデータが既に存在する場合には、前記対象テープ装置から前記ディスク領域へのデータの読出しを行わない、
    請求項1乃至15のいずれか1項に記載の計算機システム。
  17. 前記第二のコントローラは、前記仮想ディスク装置を指定したデータアクセスが初めての場合には、前記テープ装置から前記ディスク領域へのデータの読出しを行なわない、
    請求項1乃至16のいずれか1項に記載の計算機システム。
  18. 前記複数のテープ装置には、論理的な記憶ユニットであるテープLUが二つ以上用意されており、
    前記仮想記憶装置が複数個備えられ、前記複数の仮想記憶装置の各々に、前記二以上のテープLUの各々がマッピングされており、
    前記第一のディスク装置には、論理的な記憶ユニットである記憶LUが二つ以上用意されており、
    前記第二のコントローラは、前記計算機及び前記第一のディスク装置の少なくとも一方である上位装置から、各仮想ディスク装置に対する所定の準備指示を受け付け、該準備指示を受信した場合に、前記準備指示で指定されている指定仮想ディスク装置にマッピングされている対象テープLU以上の記憶容量分の、解放されている一以上の記憶LUを確保し、前記確保した一以上の記憶LUに前記対象テープLUからデータを読出し、前記上位装置から、前記指定仮想記憶装置に対する所定の完了指示を受け付け、該完了指示を受信した場合に、前記確保した一以上の記憶LU上のデータを前記対象テープLUに書込み、前記一以上の記憶LUを解放する、
    請求項1乃至17のいずれか1項に記載の計算機システム。
  19. 計算機に接続され、データを記憶する第二のディスク装置を含む第一のストレージシステムと、
    前記第一のストレージシステムに接続され、データを記憶する複数のテープ装置と、アクセス先がランダムに異なるアクセスであるランダムアクセスをテープ装置よりも高速に行うことのできる第一のディスク装置と、前記複数のテープ装置や前記第一のディスク装置へのアクセスを制御する第二のコントローラとを含む第二のストレージシステムと
    を備えた計算機システム、で実現される記憶制御方法において、
    前記第二のコントローラは、仮想的なディスク装置であり前記第一のディスク装置もしくは前記テープ装置に対応する仮想ディスク装置を提供し、前記仮想ディスク装置と前記第一のディスク装置及び/又は前記テープ装置の間の対応関係を示す装置関係情報を記憶し、
    前記第一のストレージシステムは、前記仮想ディスク装置に対応する第三のディスク装置と、前記第二のディスク装置や前記第三のディスク装置へのデータアクセスを制御する第一のコントローラとを備え、
    前記計算機が、コピー指示を前記第一のストレージシステムに送信し、
    前記第一のコントローラが、前記計算機から前記コピー指示を受信し、前記第一のコントローラは該コピー指示に応答して、前記第二のディスク装置から前記第三のディスク装置へのデータコピーを行い、前記第三のディスク装置内のデータを前記仮想ディスク装置に書き込むためのデータアクセスコマンドを前記第二のコントローラに送信
    (a)前記第二のコントローラが、前記第一のストレージシステムから前記データアクセスコマンドを受信し、前記第二のコントローラは、前記第一のディスク装置上に記憶領域を確保し、前記複数のテープ装置のうちの前記仮想ディスク装置に対応した前記テープ装置からデータを読出し、前記仮想ディスク装置を前記第一のディスク装置に対応させ、前記データアクセスコマンドに従うデータを前記確保された記憶領域に書き込み、その記憶領域から前記データを読み出し、読み出したデータを、前記仮想ディスク装置に対応する前記テープ装置に書き込み、
    (b)前記第二のコントローラは、シーケンシャルライトのライトコマンドを前記第一のコントローラから受信した場合には、前記仮想ディスク装置を前記装置関係情報に基づき前記テープ装置に対応させ、そのライトコマンドに従うデータを前記仮想ディスク装置に対応した前記テープ装置に書き込む
    記憶制御方法。
  20. 複数の仮想記憶装置の各々に、論理的な記憶ユニットであるテープLUがマッピングされており、
    前記第一のディスク装置には、論理的な記憶ユニットである記憶LUが二つ以上用意されており、
    前記第二のコントローラは、以下の(A)乃至(F)、
    (A)前記複数の仮想記憶装置の各々について所定の準備指示を受け付け、
    (B)該準備指示を受信した場合、該準備指示で指定される指定仮想ディスク装置にマッピングされている対象テープLUの後端のあるテープ装置にそれとは別のテープLUが存在する場合には、該対象テープLU及び該別のテープLUを含んだ二以上のテープLUの各々を対象テープLUとし、全対象テープLU以上の記憶容量分の、解放されている一以上の記憶LUを確保し、一方、前記対象テープLUの後端のあるテープ装置にそれとは別のテープLUが存在しなければ、前記対象テープLU以上の記憶容量分の、解放されている一以上の記憶LUを確保し、
    (C)前記確保した一以上の記憶LUに前記対象テープLUからデータを読出し、
    (D)前記第一のストレージシステムから前記指定仮想ディスク装置に対するデータアクセスコマンドを受信した場合、前記対象テープLUに対してではなく、前記確保した一以上の記憶LUに対してデータアクセスを行い、
    (E)前記上位装置から、前記指定仮想ディスク装置に対する所定の完了指示を受け付け、
    (F)該完了指示を受信した場合に、前記一以上の記憶LU上のデータを、データの読出し元になった前記対象テープLUに書込み、前記一以上の記憶LUを解放する、
    を実行する、
    請求項1に記載の計算機システム。
JP2006135776A 2006-05-15 2006-05-15 バックアップ及び/又はリストアを行う記憶制御方法及びシステム Active JP4863765B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006135776A JP4863765B2 (ja) 2006-05-15 2006-05-15 バックアップ及び/又はリストアを行う記憶制御方法及びシステム
US11/514,829 US7461201B2 (en) 2006-05-15 2006-09-05 Storage control method and system for performing backup and/or restoration
EP06256388A EP1860560B1 (en) 2006-05-15 2006-12-15 Storage control method and system for performing backup and/or restoration
DE602006020118T DE602006020118D1 (de) 2006-05-15 2006-12-15 Speichersteuerungsverfahren und System zur Sicherungs- und/oder Wiederherstellungsdurchführung
US12/289,668 US8108597B2 (en) 2006-05-15 2008-10-31 Storage control method and system for performing backup and/or restoration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006135776A JP4863765B2 (ja) 2006-05-15 2006-05-15 バックアップ及び/又はリストアを行う記憶制御方法及びシステム

Publications (2)

Publication Number Publication Date
JP2007305076A JP2007305076A (ja) 2007-11-22
JP4863765B2 true JP4863765B2 (ja) 2012-01-25

Family

ID=38462031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006135776A Active JP4863765B2 (ja) 2006-05-15 2006-05-15 バックアップ及び/又はリストアを行う記憶制御方法及びシステム

Country Status (4)

Country Link
US (2) US7461201B2 (ja)
EP (1) EP1860560B1 (ja)
JP (1) JP4863765B2 (ja)
DE (1) DE602006020118D1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4863765B2 (ja) * 2006-05-15 2012-01-25 株式会社日立製作所 バックアップ及び/又はリストアを行う記憶制御方法及びシステム
US7774560B2 (en) * 2007-11-30 2010-08-10 Aten International Co., Ltd. Storage emulator and method thereof
US8161254B2 (en) 2008-06-02 2012-04-17 Syncsort Incorporated Method for creating consistent backup image of a storage volume without requiring a snapshot
JP2010128630A (ja) * 2008-11-26 2010-06-10 Hitachi Ltd ストレージシステム、負荷分散管理方法、および記憶媒体
JP4911198B2 (ja) * 2009-06-03 2012-04-04 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
WO2010140264A1 (en) 2009-06-04 2010-12-09 Hitachi,Ltd. Storage subsystem and its data processing method, and computer system
US8667191B2 (en) * 2010-01-15 2014-03-04 Kingston Technology Corporation Managing and indentifying multiple memory storage devices
US9298563B2 (en) 2010-06-01 2016-03-29 Hewlett Packard Enterprise Development Lp Changing a number of disk agents to backup objects to a storage device
US8494674B2 (en) 2011-08-24 2013-07-23 International Business Machines Corporation Fast-access self-repairing tape library using mobile robots
US9372827B2 (en) * 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
US10474369B2 (en) * 2012-02-06 2019-11-12 Vmware, Inc. Mapping guest pages to disk blocks to improve virtual machine management processes
US9263082B2 (en) 2013-01-30 2016-02-16 International Business Machines Corporation High density hybrid storage system
US9218251B1 (en) * 2013-03-11 2015-12-22 Emc Corporation Method to perform disaster recovery using block data movement
US10019203B1 (en) * 2013-05-30 2018-07-10 Cavium, Inc. Method and system for processing write requests
JP2015022345A (ja) * 2013-07-16 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ転送が停止しまうことがないように、キャッシュされているデータの転送レートを適合させる方法、システム、および、プログラム
US9459800B2 (en) * 2014-07-08 2016-10-04 International Business Machines Corporation Storage region metadata management
CN108984335B (zh) * 2017-06-02 2022-04-29 伊姆西Ip控股有限责任公司 备份和恢复数据的方法和系统
CN110362273A (zh) * 2019-06-05 2019-10-22 黄疆 基于硬件智能降速的降噪方法和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62214575A (ja) * 1986-03-14 1987-09-21 Fujitsu Ltd デ−タ更新制御方式
JPH096678A (ja) * 1995-06-19 1997-01-10 Toshiba Corp 階層記憶装置
JP3750163B2 (ja) * 1995-10-16 2006-03-01 株式会社日立製作所 キャッシュディスク制御
JPH11242570A (ja) * 1998-02-26 1999-09-07 Hitachi Ltd 外部記憶装置
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
JP2000089917A (ja) * 1998-09-09 2000-03-31 Hitachi Ltd 情報処理装置
JP2002041345A (ja) 2000-07-27 2002-02-08 Hitachi Ltd コンピュータシステム及びそのデータバックアップ方法
JP4128751B2 (ja) * 2001-01-12 2008-07-30 株式会社日立製作所 ストレージサブシステムおよびストレージシステム
US7069466B2 (en) 2002-08-14 2006-06-27 Alacritus, Inc. Method and system for copying backup data
US6889302B2 (en) * 2002-08-29 2005-05-03 International Business Machines Corporation Apparatus and method to maintain information in one or more virtual volume aggregates comprising a plurality of virtual volumes
JP4559046B2 (ja) * 2003-08-04 2010-10-06 株式会社日立製作所 仮想テープライブラリ装置
JP2005165485A (ja) * 2003-12-01 2005-06-23 Sony Corp ファイル管理装置、ストレージ管理システム、システム管理方法、プログラム及び記録媒体
JP2005165486A (ja) * 2003-12-01 2005-06-23 Sony Corp ファイル管理装置、ストレージ管理システム、ストレージ管理方法、プログラム及び記録媒体
JP4703959B2 (ja) * 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
JP2006072789A (ja) * 2004-09-03 2006-03-16 Hitachi Ltd ストレージシステム及びストレージシステムのデータ管理装置
JP2006092124A (ja) * 2004-09-22 2006-04-06 Fujitsu Ltd 記憶装置、記憶制御方法および記憶制御プログラム
JP4863765B2 (ja) * 2006-05-15 2012-01-25 株式会社日立製作所 バックアップ及び/又はリストアを行う記憶制御方法及びシステム

Also Published As

Publication number Publication date
US8108597B2 (en) 2012-01-31
US7461201B2 (en) 2008-12-02
EP1860560A2 (en) 2007-11-28
JP2007305076A (ja) 2007-11-22
US20090077311A1 (en) 2009-03-19
DE602006020118D1 (de) 2011-03-31
US20070266203A1 (en) 2007-11-15
EP1860560A3 (en) 2009-09-09
EP1860560B1 (en) 2011-02-16

Similar Documents

Publication Publication Date Title
JP4863765B2 (ja) バックアップ及び/又はリストアを行う記憶制御方法及びシステム
JP4756545B2 (ja) 複数のテープ装置を備えるストレージシステム
US8271444B2 (en) Storage control device to backup data stored in virtual volume
JP4559046B2 (ja) 仮想テープライブラリ装置
JP4920976B2 (ja) データ移動方法及びストレージシステム
JP5037881B2 (ja) ストレージシステム及びその制御方法
US20090100223A1 (en) Storage control apparatus, data archive method for storage control apparatus, and storage system
US7185048B2 (en) Backup processing method
JP2008065525A (ja) 計算機システム、データ管理方法及び管理計算機
US9268650B2 (en) Storage device, controller, and non-transitory computer-readable recording medium for backing up data without lowering I/O capabilities
US20160026409A1 (en) Storage system and method for migrating the same
US20170017433A1 (en) Storage system, storage device, and data transfer method
JP2012014286A (ja) ストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラム
JP2008123444A (ja) データ格納制御装置、データ格納制御方法、データ格納制御プログラムおよびデータ記憶システム
JP7145902B2 (ja) ストレージシステム及びその制御方法
JP4731420B2 (ja) 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム
US20060015696A1 (en) Integrated storage device
US8667030B2 (en) Storage system and management method of file system using the storage system
WO2016006108A1 (ja) ストレージおよびその制御方法
CN113360082B (zh) 存储系统及其控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110218

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: 20111108

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: 20111108

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

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4863765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250