JP4756545B2 - 複数のテープ装置を備えるストレージシステム - Google Patents

複数のテープ装置を備えるストレージシステム Download PDF

Info

Publication number
JP4756545B2
JP4756545B2 JP2006135773A JP2006135773A JP4756545B2 JP 4756545 B2 JP4756545 B2 JP 4756545B2 JP 2006135773 A JP2006135773 A JP 2006135773A JP 2006135773 A JP2006135773 A JP 2006135773A JP 4756545 B2 JP4756545 B2 JP 4756545B2
Authority
JP
Japan
Prior art keywords
tape
target
data
disk
host
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.)
Expired - Fee Related
Application number
JP2006135773A
Other languages
English (en)
Other versions
JP2007305075A (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 JP2006135773A priority Critical patent/JP4756545B2/ja
Priority to US11/514,842 priority patent/US7523253B2/en
Priority to EP06256372A priority patent/EP1860542A2/en
Publication of JP2007305075A publication Critical patent/JP2007305075A/ja
Application granted granted Critical
Publication of JP4756545B2 publication Critical patent/JP4756545B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox

Landscapes

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

Description

本発明は、複数のテープ装置を備えるストレージシステムの記憶制御に関する。
例えば、特開2004−227448号公報に、ディスク装置で磁気テープ装置を仮想的にエミュレートした技術が開示されている。その技術では、ディスク装置上の仮想テープ記憶領域から仮想テープのファイルが作成され、作成された仮想テープのファイルが、他のシステムの仮想テープのファイルにディスク装置間のファイルのコピー機能によって転送する。
特開2004−227448号公報
ところで、法規制などにより、長期間保管しなければならない電子データが増加している。大容量のデータを長期間保管するには、例えば、コストの面で、ディスク装置よりも磁気テープ装置(以下、単に「テープ」と言う)が有効であると考えられる。一般的に、ビットコスト(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は、本発明の一実施形態に係る計算機システムの構成例を示す。
仮想ディスクライブラリ装置1に、ホスト装置(以下、単に「ホスト」と言う)2と、管理端末3とが接続される。また、ホスト装置2と管理端末3が互いに接続される。それぞれの接続は、専用線を介してされても良いし、通信ネットワークを介してされても良い。
ホスト2も管理端末3も、一種の計算機であり、CPU(図示せず)や記憶資源(図示せず)を備える。ホスト2の記憶資源には、例えば、指示プログラム2が格納され、ホスト2のCPUによって指示プログラム2が実行されることにより、仮想ディスクライブラリ装置1への指示が行なわれる。一方、管理端末3の記憶資源には、例えば、管理プログラム31が格納され、管理端末3のCPUによって管理プログラム31が実行されることにより、仮想ディスクライブラリ装置1の管理が行なわれる。ホスト2は、複数台であっても良い。管理端末3は、必ずしも備えられなくても良い。ホスト2は管理端末3を兼ねることができ、ホスト2上で管理プログラム31が実行されてもよい。また、指示プログラム21は、管理端末3に配置してもよく、仮想ディスクライブラリ装置1へのOut-of-bandによる指示(具体的には、ライトコマンド或いはリードコマンドを発行するホスト2とは別の端末である管理端末3からの指示)も可能である。以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するCPUによって処理が行われるものとする。
仮想ディスクライブラリ装置1は、コントローラ11と、一又は複数のディスク装置12と、テープライブラリ装置13とを備える。テープライブラリ装置13には、複数のテープ132と、一又は複数のテープドライブ131とを備える。各テープドライブ131は、装填されたテープ132に対してデータを書込むことや、装填されたテープ132からデータを読み出すことができる。
コントローラ11は、ホスト2からのアクセスを制御する。コントローラ11は、ディスク装置をエミュレーションした仮想ディスク14をホスト2に提供する。コントローラ11は、ディスク装置12を、ディスクキャッシュとして用い、テープ132内のデータをディスクキャッシュに読み出したり(ステージング)、ディスクキャッシュ内のデータをテープ132に書き出したりする(デステージング)ことができる。
図2は、コントローラ11の構成の一例を示す図である。
コントローラ11は、メモリ111、CPU112、上位IF113、下位IF114、IF115及びブリッジ116を備える。
メモリ111には、仮想ディスクライブラリ装置1の制御に必要な各種情報が格納される。各種情報としては、例えば、仮想ディスクライブラリ装置1の制御を行なうための制御プログラム1110や、仮想ディスクライブラリ装置1に関する制御情報などを挙げることができる。また、メモリ111は、ホスト2から受信したデータやディスク装置12或いはテープ132から読まれたデータを一時的に格納するキャッシュメモリとしても使用される。制御プログラム1110は、LUを管理するためのLU管理テーブル1111や、仮想ディスク14のステータスを記述するステータス管理テーブル1112や、ステータス毎のIO可否を記述するIO管理テーブル1113や、ディスク装置12に対するアクセス(以下、ディスクアクセス)を制御するディスク制御モジュール1114や、テープ132に対するアクセス(以下、テープアクセス)を制御するテープ制御モジュール1115を備える。
CPU112は、制御プログラム1110を実行することにより、仮想ディスクライブラリ装置1の制御を行なう。
上位IF113はホスト2とコントローラ11との間の入出力制御を行ない、下位IF114は、コントローラ11とディスク装置12との間の入出力制御を行なう。テープライブラリ装置13は、上位IF113または下位IF114に接続される。上位IF113と接続される場合は、上位IF113が、コントローラ11とテープライブラリ装置13との間の入出力制御を行なう。下位IF114と接続される場合は、下位IF114が、コントローラ11とテープライブラリ装置13との間の入出力制御を行なう。ホスト2やディスク装置12との接続には、ファイバチャネル(Fibre Channel)やSCSI(Small Computer System Interface)、iSCSI(Internet Small Computer System Interface)、Infiniband、SATA(Serial ATA)、SAS(Serial Attached SCSI)等の様々なIFを適用することができる。ホスト2側をフロントエンド、ディスク装置12側をバックエンドと呼ぶこともある。本実施形態では、説明を分かり易くするために、上位IF113及び下位IF114はそれぞれ1つとしているが、それら少なくとも一方を複数個備えてもよい。
IF115は、ホスト2からのデータの入出力とは別に設けられたIFであり、仮想ディスクライブラリ装置1の管理用ポートとして用いられる。IF115においても様々なIFを適用することが可能であり、例えば、LAN(Local Area Network)接続を採用することができる。
ブリッジ116は、CPU112とメモリ111との間のデータ転送や、上位IF113とメモリ111との間のデータ転送などの、各種データ転送を制御する。
以上が、コントローラ11についての説明である。なお、コントローラ11は、例えば、負荷分散やフェイルオーバのために、仮想ディスクライブラリ装置1内に複数台備えられても良い。また、コントローラ11は、上記の構成に限らず、他の構成が採用されても良い。例えば、ホスト2との通信を制御する複数の第一の制御部(例えば制御回路基板)と、ディスク装置12或いはテープ132との通信を制御する複数の第二の制御部(例えば制御回路基板)と、ホスト2から送信されてディスク装置12或いはテープ132に書かれるデータやディスク装置12或いはテープ132から読み出されてホスト2に送信されるデータを記憶することができるキャッシュメモリと、仮想ディスクライブラリ装置13を制御するためのデータを記憶することができる制御メモリと、各第一の制御部、各第二の制御部、キャッシュメモリ及び制御メモリを接続する接続部(例えば、クロスバスイッチなどのスイッチ)とを備えることができる。この場合、第一の制御部と第二の制御部の一方が、又は双方が協働して、コントローラ11としての処理を行うことができる。制御メモリは無くても良く、その場合、キャッシュメモリに、制御メモリが記憶する情報を記憶する領域が設けられても良い。
さて、次に、論理ボリュームに関して説明する。
図3は、論理ボリュームの割り当てを模式的に示した図である。
通常、ディスク領域は、論理ボリューム(LU:Logical Unit)という単位でホスト2から認識される。仮想ディスクライブラリ装置1は、ホスト2から使用される論理ボリュームを仮想的に定義し、構築することができる。本実施形態では、これを、「仮想ディスク」と呼んでいる。仮想ディスクライブラリ装置1では、その装置1内で論理ボリュームを一意に識別するため、0から始まる整数で仮想ディスク14をシリアル番号付けすることができる。この番号を、「仮想ディスクLUN」と呼ぶ。
これに対し、装置1内の物理的な格納先を表す論理ボリュームを「内部LU」と呼ぶ。具体的には、ディスク装置12に作成される内部LUを「ディスクLU」と呼び、テープ132に作成される内部LUを「テープLU」と呼ぶことにする。例えば、複数台のディスク装置12からRAIDグループ(パリティグループ或いはアレイグループと呼ばれることもある)を形成し、1つのRAIDグループに複数のディスクLU141を定義することができる。同様に、複数本のテープ132からテープグループを形成し、1つのテープグループから複数のテープLU142を定義することができる。ディスクLU141とテープLU142には、仮想ディスクライブラリ装置1内で管理するための固有IDであるディスクLUNとテープLUNがそれぞれ割り当てられる。
仮想ディスク14は、実際にデータを格納するための領域が必要な場合には、装置1内の物理的な格納先を表す内部LUNとマッピングされる。複数の内部LUを統合し、1つの仮想ディスク14とマッピングすることもできる。具体的には、例えば、仮想ディスク14には、一又は複数のテープLU142を固定的にマッピングし、ディスクLU141を動的にマッピングすることができる。仮想ディスク14の容量と、それにマッピングされたテープLU142の記憶容量(複数のテープLU142がマッピングされた場合には、それらのテープLU142の総記憶容量)とを、同じにすることができる。また、仮想ディスク14に動的にマッピングされたディスクLU141を、本実施形態で言うディスクキャッシュとして利用することができる。固定的ではなく動的にマッピングするようにすることで、複数の仮想ディスクLU14の総記憶容量よりも少ない総記憶容量のディスクLUで済み、以って、搭載するディスク装置12の総記憶容量(例えばディスク装置12の数)を抑えることができる。
また、データのマイグレーションなどにより、仮想ディスク14aにマッピングされている内部LU142aから内部LU142bにデータの格納先が変更された場合は、仮想ディスク14aにマッピングする内部LUを内部LU142aから内部LU142bに切替えることができる。それにより、仮想ディスク14aに対してアクセス(リード或いはライト)が発生した場合には、マイグレーション先の内部LU142bへのアクセスが可能となる。
以下、図3を例に採り、本実施形態の概要を説明する。なお、以下の説明では、仮想ディスク14a(仮想ディスクLUN0)に、テープLU142a(テープLUN0)がマッピングされているとする。
仮想ディスクライブラリ装置1では、リードコマンドやライトコマンドといったデータアクセス系のコマンドの他に、複数種類の制御コマンドがサポートされている。制御コマンドとしては、例えば、ディスクキャッシュにテープLU内の全データを準備させるためのアクティベイト指示と、ディスクキャッシュ内の全データをテープLUに反映させるためのインアクティベイト指示とがある。
本実施形態では、以下の(A)乃至(C)の処理が行われる。
(A)制御プログラム1110は、仮想ディスク14aに対するアクセスが発生する前に、換言すれば、仮想ディスク14aに対応したテープLU142aに対するアクセスが発生する前に、テープLU142a内の全データをディスクキャッシュに準備する。具体的には、例えば、ホスト2(或いは管理端末3)の指示プログラム21が、仮想ディスク14aに対するアクセスコマンドがホスト2から発行される前に(つまり仮想ディスク14aの使用前に)、仮想ディスク14aを指定したアクティベイト指示を送信し、制御プログラム1110が、そのアクティベイト指示を受信する。制御プログラム1110は、そのアクティベイト指示に応答して、未使用の(例えば、どの仮想ディスク14にも割り当てられていない)一以上のディスクLUを仮想ディスク14aに割り当てる。割り当てられる一以上のディスクLUの記憶容量(複数のディスクLUであれば総記憶容量)は、仮想ディスク14aの記憶容量以上であり、それら一以上のディスクLU(以下、141a、141bとする)が、本実施形態で言うディスクキャッシュである。制御プログラム1110は、テープLU142a内の全データを読み出し、読み出された全データを、そのディスクキャッシュに書く。これにより、テープLU142a内の全データがディスクキャッシュ141a、141bに準備される。
(B)制御プログラム1110は、仮想ディスク14aに対するアクセスコマンドをホスト2から受けた場合、そのアクセスコマンドに従って、ディスクキャッシュ141a、141bに対してアクセスを行い、仮想ディスク14aに対応するテープLU142aに対しては、アクセスを行わない。
(C)制御プログラム1110は、所定のイベントが発生した場合に、ディスクキャッシュ141a、141b内の全データを、テープLU142aにシーケンシャルに書き、そのディスクキャッシュ141a、141bを構成していたディスクLU141a、141bを解放する(換言すれば、割当てを解除する)。それにより、ディスクLU141a、141bは、ディスクキャッシュが確保されていない仮想ディスク14に対するアクティベイト指示が受信された場合には、その仮想ディスク14に対して割り当てることができる。なお、この(C)の処理において、所定のイベントが発生した場合とは、例えば、ホスト2からインアクティベイト指示を受信した場合である。それに代えて又は加えて、ディスク141a、141bが最後に更新されてから一定時間が経過した場合などであっても良い。
以上の(A)乃至(C)の処理によれば、仮想ディスクライブラリ装置1では、テープLU142に対するアクセスが生じる前に、そのテープLU142内の全データがディスク装置12上に準備され、そのテープLU142に対するアクセスは、テープ132ではなくディスク装置12に対して行われる。これにより、テープLU132に対するアクセスを、実際にテープ132にアクセスする場合よりも高速に行うことができる。これは、特に、テープLUに対してランダムアクセスが発生した場合に有効である。
なお、(A)において、例えば、制御プログラム1110が、仮想ディスク14aに対するアクセスコマンドをホスト2から受信した場合、テープLU142a内の全データがディスクキャッシュに準備されていなければ、所定のエラーをホスト2に返すことにより、ホスト2のユーザに、アクティベイト指示を送信することを促すか、或いは、エラーをホスト2に報告することなく、テープLU142a内のデータをディスクキャッシュにロードしても良い。
また、図3の例では、3つのテープLU142a〜142cにより一つのテープグループが構成され、そのテープグループにおいて、3つのテープLU142a〜142cが連続している。一つのテープグループにおいて、同一テープ132上に、複数のテープLUが混在する可能性がある。具体的には、例えば、テープLU142bの終端アドレスと、テープLU142cの先端アドレスが、テープ132bの途中に位置し、以って、同一テープ132b上に、テープLU142bとテープLU142cが存在する。つまり、本実施形態において、「テープグループ」とは、一以上のテープ132で構成され、一以上のテープLU142を有し、複数のテープLUを連続して格納している。上記(A)において、制御プログラム1110は、テープLU142aを有するテープグループ内の全データをディスクキャッシュに読み出し、上記(C)では、ディスクキャッシュ内のデータをそのテープグループにシーケンシャルに書き込むことができる。そのため、制御プログラム1110は、ディスクキャッシュを構成するディスクLUの総記憶容量が、そのテープグループの記憶容量(テープLU142a〜142cの総記憶容量)以上になるようにする。もし、テープLU142a以外のテープLUのデータが存在しない状態であれば、制御プログラム1110は、そのテープLU142aのみデータの読み出しを行えばよい。また、一つのテープグループに存在する複数のテープLUのうち、指定された仮想ディスクに対応するテープLU(対象テープLU)を含んだ二以上のテープLUとしても良い。その際、例えば、これら二以上のテープLUの後端を有するテープには、その後端以降に、同一のテープグループに存在する他のテープLUのデータが存在しない。そして、それら二以上のテープLUの先頭のテープLUは、対象テープLUとすることができる。
以下、本実施形態について詳細に説明する。
LU管理テーブル110には、例えば、LU関係テーブル、仮想ディスク管理テーブル、RAIDグループ管理テーブル、ディスクLU管理テーブル、テープグループ管理テーブル及びテープLU管理グループが含まれている。以下、各種テーブルについて説明する。
図4は、LU関係テーブルの一例を示す。
LU関係テーブル1111は、論理ボリュームの対応関係が記述される。具体的には、例えば、LU関係テーブル1111には、仮想ディスクLUNが書かれるフィールド1111aと、各ホストがアクセスに使用するWWNや各ホストから認識されるホストLUNを示すホスト情報が記述されるフィールド1111bと、ディスクLUNが書かれるフィールド1111cと、テープLUNがかかれるフィールド1111dとがある。一つの仮想ディスク14に対して、仮想ディスクLUN、ホスト情報、ディスクLUN及びテープLUNが対応付けられる。図4において、ディスクLUNが記述されているということは、ディスクキャッシュが確保されていることを意味し、ディスクLUNが記述されていないということは、ディスクキャッシュが確保されていないことを意味する。
なお、ホスト2は、OSブート時に、接続するストレージシステムをサーチしてLUを検出し、その際、LUNが連続番号で存在することを仮定し0から順にサーチすることができる。そのため、或る番号が存在しない場合は以降のサーチは行なわない場合がある。これは、サーチ時間を短縮するための工夫である。このような場合、仮想ディスクLUNをそのままホストに割り当てると、仮想ディスクLUN=0以外のLUを割り当てられたホスト2は、このLUを検出できないことになってしまう。そこで、すべてのホスト2に対し、0から始まり、かつ連続番号でLUNを割り当てるように再定義することが必要である。これをホストLUNと呼ぶ。このように、各ホスト2から認識されるホストLUN、仮想ディスクLUN及び内部LUN(ディスクLUN及びテープLUN)はそれぞれ区別される。制御プログラム1110は、LU関係テーブル1111を参照することによって、どのホスト2にどの論理ボリュームが割り当てられているかを知ることができる。
図5は、仮想ディスク管理テーブルの一例を示す。
仮想ディスク管理テーブル150は、仮想ディスクを管理するためのテーブルである。具体的には、例えば、仮想ディスク管理テーブル150には、仮想ディスクLUNが書かれるフィールド150aと、仮想グループのIDが書かれるフィールド150bと、仮想ディスクのサイズ(記憶容量)が書かれるフィールド150cと、初回書込みフラグがセットされるフィールド150dとがある。一つの仮想ディスク14に対して、仮想ディスクLUN、仮想グループID、サイズ及び初回書込みフラグが対応付けられる。なお、「仮想グループ」とは、複数の仮想ディスクから構成されるグループである。また、「初回書込みフラグ」とは、仮想ディスクに対する書込みが初めてか否かを表すフラグであり、初めての場合には"1"であり、初めてでは無い場合には"0"である。つまり、仮想ディスクが設定された場合、初回書込みフラグは全て"1"とされ、仮想ディスクに書込みが生じた場合には、その仮想ディスクに対応する初回書込みフラグは"0"にされる。
図6は、RAIDグループ管理テーブルの一例を示す。
RAIDグループ管理テーブル151は、RAIDグループを管理するためのテーブルである。具体的には、例えば、RAIDグループ管理テーブル151には、RAIDグループIDが書かれるフィールド151aと、ディスクLUが書かれるフィールド151bと、ディスク装置のID(ディスクID)が書かれるフィールド151cとがある。一つのRAIDグループに対して、RAIDグループIDと、そのRAIDグループ上にあるディスクLUのディスクLUNと、そのRAIDグループを構成するディスク装置のディスクIDとが対応付けられる。
図7は、ディスクLU管理テーブルの一例を示す。
ディスクLU管理テーブル154は、ディスクLUを管理するためのテーブルである。具体的には、例えば、ディスクLU管理テーブル154には、ディスクLUNが書かれるフィールド154aと、ディスクLUのサイズ(記憶容量)が書かれるフィールド154bと、ディスクアドレスが書かれるフィールド154cと、ディスクLUステータスが書かれるフィールド154dと、直前使用テープLUNアドレスが書かれるフィールド154eとがある。一つのディスクLU141に対して、ディスクLUN、サイズ、ディスクアドレス、ディスクLUステータス及び直前使用テープLUNアドレスが対応付けられる。なお、「ディスクアドレス」とは、ディスク装置12上でのディスクLUの場所を示す値であり、例えば、ディスクID(例えば0)と、ディスク装置12上でのアドレス(例えば1000)とのセットを用いて表すことができる。「ディスクLUステータス」とは、ディスクLU141のステータスであり、例えば、使用中(ディスクキャッシュとして割当て中)と、未使用(どのディスクキャッシュにも割り当てられておらず、割当て可能な状態)とがある。「直前使用テープLUNアドレス」とは、ディスクLUが直前にはどのテープLUNのどのアドレスとして使用されたかを表す。制御プログラム1110は、ディスクキャッシュを確保する場合には、ディスクLUステータスが"未使用"のディスクLUを探し、探し出されたディスクLUを、確保するディスクキャッシュの構成要素とする。また、制御プログラム1110は、ディスクキャッシュにディスクLUを割り当てた場合、そのディスクキャッシュを使用するテープLUのLUNとアドレスを、そのディスクLUに対応する「直前使用テープLUNアドレス」の欄に記載する。図4にて、テープLUと仮想ディスクLUのアドレスの対応関係がわかるため、直前使用テープLUNアドレスは、仮想ディスクLUのアドレス(LUNとアドレス)を書込むようにしても良い。
図8は、テープグループ管理テーブルの一例を示す。
テープグループ管理テーブル152は、テープグループを管理するためのテーブルである。具体的には、例えば、テープグループ管理テーブル152には、テープグループのIDが書かれるフィールド152aと、そのテープグループ上にあるテープLUのLUNが書かれるフィールド152bと、そのテープグループを構成するテープ132のIDが書かれるフィールド152cとがある。一つのテープグループに対して、テープグループID、テープLUN及びテープIDが対応付けられる。
図9は、テープLU管理テーブルの一例を示す。
テープLU管理テーブル153は、テープLU142を管理するためのテーブルである。具体的には、例えば、テープLU管理テーブル153には、テープLUNが書かれるフィールド153aと、テープLUのサイズ(記憶容量)が書かれるフィールド153bと、テープアドレスが書かれるフィールド153cとがある。一つのテープLU132に対して、テープLUN、サイズ及びテープアドレスが対応付けられる。なお、「テープアドレス」とは、テープ132上でのテープLU142の場所を示す値であり、例えば、テープID(例えば0)と、テープ132上でのアドレス(例えば100)とのセットを用いて表すことができる。
図10は、ステータス管理テーブル1112の一例を示した図である。
ステータス管理テーブル1112には、仮想ディスクのLUNが書かれるフィールド1111aと、その仮想ディスクのステータス(以下、仮想ディスクステータス)が書かれるフィールド1112bとがある。仮想ディスクステータスは、指示プログラム21や管理プログラム31から参照することができる。仮想ディスクステータスとしては、データアクセス可能な状態を意味する"Active"や、データアクセス不可の状態を意味する"Inactive"などがある。指示プログラム21や管理プログラム31は、各仮想ディスクの仮想ディスクステータスによって、対象仮想ディスクのアクセス可否や現在の処理状態を知ることができる。各仮想ディスクステータスにおける処理内容は、後述するIO管理テーブルによって管理される。
図11は、IO管理テーブル1113の一例を示した図である。
IO管理テーブル1113には、仮想ディスクステータスが書かれるフィールド1113aと、その仮想ディスクステータスにおける処理内容が書かれるフィールドとがある。処理内容が書かれるフィールドとして、リード/ライトコマンドの処理が可能か否かが書かれるフィールド1113bと、制御コマンドの処理が可能か否かが書かれるフィールド1113cとがある。フィールド1113aには、仮想ディスクのとりうる全仮想ディスクステータスが書かれる。
図11に示すように、Active状態ではRead/Writeが可能であるが、他の状態ではRead/Writeが不可である。制御コマンドは、全ての状態で応答可となっている。Active状態とは、仮想ディスクへのアクセス準備が完了し、ホストからのデータアクセスを受け付けることができる状態である。Inactive状態とは、テープにデータが格納されており、データアクセスを禁止している状態である。Activate状態とは、Inactive状態からActive状態への過渡状態である。Inactivate状態とは、Active状態からInactive状態への過渡状態である。Error状態は、障害などによりアクセスができなくなった状態である。このように、各状態でのIO可否を決めておくことができる。ホスト2は、対象仮想ディスクをActive状態にしてからデータアクセスを行なう。制御コマンドは、どの状態でもアクセス可能である。
次に、仮想ディスクの使用準備を行なう処理に関して説明する。
指示プログラム21或いは管理プログラム31は、対象となる仮想ディスク14に対してホスト2からのデータアクセスが開始される前に(リードコマンド或いはライトコマンドが発行される前に)、仮想ディスクライブラリ装置1に対して準備指示を行なう必要がある。この指示を「Activate指示」と呼ぶ。仮想ディスク14へのデータアクセスが必要となる契機として、例えば、仮想ディスクライブラリ装置1に、データのバックアップを行う場合、アーカイブデータを格納する場合、仮想ディスクライブラリ装置1にバックアップしたデータをリストアする場合、或いは、監査などにより仮想ディスクライブラリ装置1にアーカイブしておいたデータを読み出する場合などがある。このような場合に、指示プログラム21または管理プログラム31が、仮想ディスクライブラリ装置1にActivate指示を送る。バックアップ対象のデータを格納する時など、予め、仮想ディスクの使用スケジュールがわかっている場合には、ホスト2或いは管理端末3上のスケジューラなどにより、Activate指示の発行を自動化することも可能である。
図12は、制御コマンドの形式の一例を示した図である。制御コマンドには、コマンド名、仮想グループID、または仮想ディスクLUNが指定される。仮想グループIDは、仮想ディスクをまとめて指定する場合に用いられる。一つの仮想ディスクに対して制御コマンドを発行する場合には、仮想グループIDの記述は不要である。また、仮想ディスクの一部の領域のみを使用する場合は、そのアドレスを制御コマンドに含めて指定してもよい。
なお、あらかじめ指示受領専用の仮想ディスク(以下、専用仮想ディスク)を仮想ディスクライブラリ装置1に用意しておき、指示プログラム21或いは管理プログラム31は、常に、専用仮想ディスクに対して制御コマンドを発行しても良い。専用仮想ディスクは、実際にデータを格納する必要がないため、内部LUNとマッピングされていなくてもよい。専用仮想ディスクに対して発行される制御コマンドには、実際のターゲットの仮想ディスクのLUN或いは仮想グループIDが書かれ、制御プログラム1110は、その制御コマンドを受けた場合には、その実際のターゲットの仮想ディスクのLUN或いは仮想グループIDに従って処理を行うことができる。
図13は、制御プログラム1110がActivate指示を受領した場合に行われる処理の流れの一例を示す。なお、以下の説明では、Activate指示で指定されている仮想ディスクLUN或いは仮想グループIDに対応した仮想ディスクを、「指定仮想ディスク」と言う。
制御プログラム1110は、指示プログラム21又は管理プログラム31からActivate指示を受領した場合(ステップ800)、そのActivate指示で指定された仮想ディスク(指定仮想ディスク)に必要な容量のディスク領域(ディスクキャッシュ)を確保する(ステップ801)。Activate指示において、仮想グループIDが指定されている場合、制御プログラム1110は、その仮想グループIDに対応する仮想ディスクLUNを仮想ディスク管理テーブル150(図5参照)から取得することができる。制御プログラム1110は、指定仮想ディスクの記憶容量以上の記憶容量のディスクキャッシュを確保し、そのディスクキャッシュを構成するディスクLUのLUNを、LU関係テーブル1111(図4参照)に登録し、且つ、ディスクLU管理テーブル154において、そのディスクLUのステータスを、"使用中"に変える。ディスクLUを確保する際には、ディスクLU管理テーブル154の直前使用テープLUNアドレスを参照し、指定仮想ディスクに対応するテープLUNアドレスが存在すれば、そのディスクLUNを割り当てる。また、LU関係テーブル111において、対象仮想ディスクに、既にディスクLUNが割り当てられている場合は、そのままそのディスクLUNを使用することができる。なお、制御プログラム1110は、ディスクキャッシュとして使用可能な(つまり、ディスクLUステータスが"未使用"の)一以上のディスクLUの総記憶容量が、指定仮想ディスクの記憶容量よりも小さい場合は、ディスクキャッシュの確保ができない旨を、Activate指示の発行元に通知する。複数のディスク装置12の総記憶容量と、未使用の一以上のディスクLUの総記憶容量は、指示プログラム21または管理プログラム31から任意のタイミングで参照可能である。
次に、制御プログラム1110は、テープからディスクへのコピー要否を判定する(ステップ802)。
例えば、制御プログラム1110は、指定仮想ディスクへの書き込みが初めての場合には(例えば、指定仮想ディスクへの書込みが初めてであることが、仮想ディスク管理テーブル150から特定できた場合には)、コピー不要と判定する。指定仮想ディスクに対応したテープLUには、読み出すべきデータが存在しないためである。
また、例えば、制御プログラム1110は、確保したディスクキャッシュ上に既に有効データが存在する場合は、コピー不要と判定する。「有効データ」とは、指定仮想ディスクに対応したテープLU内のデータと同じデータのことである。つまり、「有効データが存在する」とは、ディスクキャッシュ上に、指定仮想ディスクに対応するテープLUのデータが存在することを意味する。これは、ディスクキャッシュを構成する各ディスクLUのディスクLUNに対応した直前使用テープLUNアドレス(図7参照)を参照することにより、特定することができる。具体的には、指定仮想ディスクに対応するテープLUNのデータと、ディスクキャッシュを構成する各ディスクLUのディスクLUNに対応した直前使用テープLUNアドレスとが全て一致した場合には、「有効データが存在する場合」となる。なお、有効データが存在する場合にコピー不要と判定されるのは、既にディスクキャッシュ上に、指定仮想ディスクに対応するテープLU内の全データが存在するためである。
コピー不要と判定した場合、制御プログラム1110は、指定仮想ディスクの仮想ディスクステータスを、"Active"に変更し処理を終了し、一方、コピー必要と判定した場合、指定仮想ディスクの仮想ディスクステータスを"Activate"に変更し、次のステップ803へ進む。
テープからディスク装置へのコピーが必要と判定されると、テープ制御モジュール1115は、対象テープ132をテープドライブ131に準備する(ステップ803)。ここでは、「対象テープ」とは、指定仮想ディスクに対応する(つまり読み出し対象の)テープLUNを有するテープである。
対象テープ132がテープドライブ131に準備されると、テープ制御モジュール1115は、対象テープ132からコントローラ11のメモリ111上にデータを読み出す(ステップ804)。
読み出されたデータは、ディスク制御モジュール1114によって、確保済みのディスクキャッシュに書き込まれる(ステップ805)。
テープ制御モジュール1115は、読み出すべきデータが対象テープ132に残っている場合は(ステップ806でNO)、対象テープ132の読み出しを継続し、ステップ804からステップ805を繰り返す。テープ制御モジュール1115は、読み出すべきデータが残っていない場合には、対象テープ132の読み出しを終了する(ステップ806)。
対象テープ132の読み出しが終了すると、テープ制御モジュール1115は、対象テープ132の巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ807)。
指定仮想ディスクのデータが全てディスクキャッシュ上に準備できていれば、制御プログラム1110は、指定仮想ディスクの仮想ディスクステータスを"Active"に変更し、処理を終了する。複数の対象テープ132に跨ってデータが格納されている場合は(ステップ808でNO)、ステップ803に戻り、必要に応じて、対象テープ132を切替えて、コピーを継続する。なお、複数のテープドライブ131を使用できる場合には、制御プログラム1110は、複数本の対象テープ132をそれぞれのテープドライブ131から同時並列的に読み出してもよい。指示プログラム21或いは管理プログラム31は、指定仮想ディスク14の仮想ディスクステータスを定期的に監視し、"Active"を検知することで、指定仮想ディスク14の準備完了を知ることができる。換言すれば、指示プログラム21或いは管理プログラム31は、指定仮想ディスク14の仮想ディスクステータスが"Active"になっていない場合には、ホスト2からリードコマンド及びライトコマンドが発行されないように制御しても良い。
以上が、Activate指示が受領された場合に行われる処理である。なお、図13において、ステップ802でYESからステップ803にかけて、以下の対象テープ判定処理が行われる。
図14は、対象テープ判定処理の一例を示す。
制御プログラム1110は、指定仮想ディスク14に対応するテープLU(以下、該当テープLU)142を構成するテープ132に他のテープLUが存在しないことをテープグループ管理テーブル152及びテープLU管理テーブル153(図9参照)から特定できた場合(ステップ701でNO)、該当テープLU142を有するテープ132を、ステップ806で言う対象テープ132とする(ステップ702)。
一方、制御プログラム1110は、該当テープLU142を構成するテープ132に他のテープLUが存在することをテープグループ管理テーブル152及びテープLU管理テーブル153から特定できた場合(ステップ701でYES)、該当テープLU142を有するテープグループを構成する全テープ132を、それぞれ対象テープ132とする(ステップ703)。
つまり、制御プログラム1110は、テープ132に記録された全データを読み出すようにする。換言すれば、制御プログラム1110は、後述のInactivate指示に従う処理において、テープ132の一部分だけで書込み終了とならないようにする。これにより、テープ132からディスクキャッシュへのデータの読出しや、ディスクキャッシュからテープ132へのデータの書込みを、シーケンシャルに行うことができる。なお、一つのディスクキャッシュ上に、複数のテープLUのデータが読み出された場合には、ディスクキャッシュ上でのアドレスと、テープLUとの対応を図示しないテーブルで管理することができ、以って、ディスクキャッシュ上のどこのデータをどのテープLUに書いたら良いかを特定することができる。
ステップ702又は703の後、制御プログラム1110は、確保したディスクキャッシュを構成する各ディスクLU141に対して、対象テープ132上のテープLUN(例えば、ステップ702でのテープLUN、或いは、ステップ703でのテープグループ上の全テープLUN)を直前使用テープLUNアドレス(図7参照)として対応付けて、図13のステップ803へ移行する(ステップ704)。
図15は、制御プログラム1110が行うデータアクセス制御処理の一例を示す。
制御プログラム1110は、データアクセスコマンド(リードコマンド或いはライトコマンド)をホスト2から受領した場合、ステータス管理テーブル1112を参照し、そのデータアクセスコマンドで指定されている仮想ディスク(具体的には、例えば、データアクセスコマンドで指定されているホスト情報にマッピングされている仮想ディスク)14の仮想ディスクステータスが"Active"か否かを判定する。"Active"ではない場合には(ステップ751でNO)、制御プログラム1110は、エラーをホスト2に返答し(ステップ752)、それにより、Activate指示の発行をうながすことができる。一方、制御プログラム1110は、指定されている仮想ディスク14の仮想ディスクステータスが"Active"の場合には(ステップ751でYES)、その仮想ディスク14のために確保されたディスクキャッシュに対してデータアクセス(データの読出し或いは書込み)を行う(ステップ753)。
次に、仮想ディスクの使用終了を行なう処理に関して説明する。指示プログラム21又は管理プログラム31は、指定仮想ディスク14へのデータアクセスが終了した場合、仮想ディスクライブラリ装置1に対して終了指示を行なう。この指示をInactivate指示と呼ぶ。ディスク装置12の総記憶容量は、仮想ディスク14の総記憶容量に比べて小さいため、データアクセスが行なわれない仮想ディスク14からは、確保されたディスクキャッシュ(つまりディスク領域)を解放する必要がある。指示プログラム21又は管理プログラム31は、ユーザ或いは管理者による手動で、或いは、バックアップ或いはアーカイブ完了などを検出したときに自動で、Active状態の仮想ディスク(例えば、Activate指示が発行された上記指定仮想ディスク)に対して、Inactivate指示を発行する。
図16は、制御プログラム1110がInactivate指示を受領した場合に行われる処理の流れの一例を示す。なお、以下の説明では、Inactivate指示で指定されている仮想ディスクLUN或いは仮想グループIDに対応した仮想ディスクを、「指定仮想ディスク」と言う。
制御プログラム1110は、指示プログラム21又は管理プログラム31からInactivate指示を受領した場合(ステップ900)、ディスクキャッシュからテープ132へのコピー要否を判定する(ステップ901)。例えば、制御プログラム1110は、Active中にそのディスクキャッシュに更新が無かった場合には、コピー不要と判定する。指定仮想ディスク14に対応するディスクキャッシュ上の全データと、指定仮想ディスク14に対応するテープLU(又は、指定仮想ディスクに対応するテープグループ上の全テープLU)142内の全データとに差分が無いためである。コピー不要と判定した場合、制御プログラム1110は、指定仮想ディスク14の仮想ディスクステータス(図10参照)を"Inactive"に変更し処理を終了する。コピー必要と判定した場合、制御プログラム1110は、指定仮想ディスク14の仮想ディスクステータスを"Inactivate"に変更し、次のステップ902へ進む。
ディスクキャッシュからテープ132へのコピーが必要と判定されると、テープ制御モジュール1115は、対象テープ132をテープドライブ131に準備する(ステップ902)。ここでの「対象テープ」とは、ディスクキャッシュに対応するテープLU142を有するテープ132である。このため、例えば、図14において、ステップ702が実行された場合には、指定仮想ディスクに対応するテープLUを有したテープ132であり、ステップ703が実行された場合には、指定仮想ディスクに対応するテープグループを構成する各テープ132である。
対象テープ132がテープドライブ131に準備されると、ディスク制御モジュール1114は、ディスクキャッシュ(ディスクLU)からコントローラ11のメモリ111上にデータを読み出す(ステップ903)。読み出されたデータは、テープ制御モジュール1115によって、対象テープ132に書き込まれる(ステップ904)
ディスク制御モジュール1115は、読み出すべきデータがディスクキャッシュに残っている場合は(ステップ905でNO)、ディスクキャッシュからの読み出しを継続し、ステップ903からステップ904を繰り返す。ディスク制御モジュール1115は、読み出すべきデータが残っていない場合には(ステップ905でYES)、読み出しを終了する。
対象テープ132への書き込みが終了した場合、テープ制御モジュール1115は、対象テープ132の巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ906)。
ディスクキャッシュ上のデータが全て対象テープ132に格納できていれば(ステップ907でYES)、制御プログラム1110は、指定仮想ディスク14の仮想ディスクステータスを、"Inactive"に変更し、ディスクLUN111c(図4参照)、ディスクスLUテータス154d(図7参照)を更新し、処理を終了する。一方、複数の対象テープ132に跨ってデータを格納する場合には、制御プログラム1110は、ステップ902に戻り、必要に応じて、対象テープ132を切替えてコピーを継続する(ステップ907)。なお、複数のテープドライブ131を使用できる場合には、制御プログラム1110は、複数の対象テープ132をそれぞれのテープドライブ131から同時並列的に書き込んでもよい。また、ディスクキャッシュから対象テープ132には、データをコピーしているので、コピー元のディスクキャッシュには、対象テープ132に書かれるデータが残る。このため、例えば、指定仮想ディスクのディスクキャッシュを構成するディスクLUが、一旦解放されて、そのディスクLU内のデータが更新されること無く再びその指定仮想ディスクにディスクキャッシュとして割り当てられた場合には、その指定仮想ディスクに対応するテープLU内の全データが、そのディスクLUに残っていることになる。
指示プログラム21或いは管理プログラム31は、指定仮想ディスク14の仮想ディスクステータスを定期的に監視し、Inactive状態を検知することで、指定仮想ディスクの終了処理完了を知ることができる。終了処理が完了した場合、テープへのデータ格納が保証されるためバックアップ元データは削除されてもよい。
以上、上述した実施形態によれば、仮想ディスクライブラリ装置1では、テープLU142に対するアクセスが生じる前に、そのテープLU142内の全データがディスク装置12上に準備され、そのテープLU142に対するアクセスは、テープ132ではなくディスク装置12に対して行われる。これにより、テープLU132に対するアクセスを、実際にテープ132にアクセスする場合よりも高速に行う(つまり、ディスク装置12に対するアクセスと同等の速度で行う)ことができる。
さて、以下、本発明の別の実施形態について説明する。以下の説明では、上記実施形態との相違点を主に説明し、上記実施形態との共通点については、説明を省略或いは簡略する。
この別の実施形態では、ディスクキャッシュに対するリード及びライト、つまり通常のアクセスモードに加えて、テープ132からディスクキャッシュを介さないでホスト2にデータを読み出す「シーケンシャルリード」と、ホスト2からディスクキャッシュを介さないでテープ132にデータを書き込む「シーケンシャルライト」との2種類の別種のアクセスモードが用意される。シーケンシャルリードは、例えば、仮想ディスク全体のリストアに使用することができる。シーケンシャルライトは、例えば、仮想ディスク全体へのバックアップのために使用することができる。
図17は、本発明の別の実施形態に係るIO管理テーブル1113の一例を示した図である。
仮想ディスクステータスとして、更に、"SeqRead"、"SR-prepare"、"SeqWrite"、"SW-prepare"の4種類が追加されている。"SeqRead"は、Readのみ可でありWriteは不可である。"SR-prepare"は、"SeqRead"への過渡状態である。"SeqWrite"は、Readは不可でありWriteのみ可である。"SW-prepare"は、"SeqWrite"への過渡状態である。
指示プログラム21又は管理プログラム31は、シーケンシャルリードを指示するためのSeqReadコマンドや、シーケンシャルライトを指示するためのSeqWriteコマンドを発行することができる。
図18は、制御プログラム1110がSeqReadコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
制御プログラム1110は、SeqReadコマンドを受領した場合(ステップ1100)、そのSeqReadコマンドで指定されている仮想ディスク(以下、指定仮想ディスク)14の仮想ディスクステータスを"SR-prepare"に変更し、テープ制御モジュール1115が、指定仮想ディスク14に対応するテープ(以下、対象テープ)132をテープドライブ131に準備する(ステップ1101)。
対象テープ132がテープドライブ131に準備されたならば、制御プログラム1110は、指定仮想ディスク14の仮想ディスクステータスを"SeqRead"に変更し、テープ制御モジュール1115が、準備された対象テープ132からコントローラ11のメモリ111上にデータを読み出す(ステップ1102)。
ホスト2は、SeqReadコマンドが発行された後、定期的に、指定仮想ディスク14の仮想ディスクステータスを監視し、その仮想ディスクステータスが"SeqRead"になったことを検出した場合、指定仮想ディスクに対するリードコマンドを発行する。制御プログラム1110は、ホスト2からのリードコマンドに従って、メモリ111上に読み出されたデータを、ホスト2へ転送する(ステップ1103)。
テープ制御モジュール1115は、読み出すべきデータが対象テープ132に残っている場合は(ステップ1104でNO)、対象テープ132からの読み出しを継続し、読み出すべきデータが残っていない場合には(ステップ1104でYES)、対象テープ132の読み出しを終了する。
対象テープ132からの読み出しが終了した場合、テープ制御モジュール1115は、テープの巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ1105)。
指定仮想ディスク14からのデータを全て読み出された場合に(ステップ1106でYES)、処理が終了となる。複数の対象テープ132に跨ってデータが格納されている場合は、ステップ1101に戻り、必要に応じて、対象テープ132を切替えて読み出しを継続することができる。読み出したデータがメモリ111からあふれないように、制御プログラム1110は、ホスト2からのリードコマンドに応じて、対象テープ132からの読み出し速度を変更することもできる。また、ディスクLUが割り当てられている場合には、ホストへの読出しと並行してディスクへの書き込みを行っても良い。また、制御プログラム1110は、ホスト2へのデータ転送速度が対象テープ132からの読み出し速度よりも早いためにメモリ111にデータが準備できていない場合は、ホスト2に、データの準備中である旨を通知することができる。データ準備中の通知を受領したホスト2は、一定時間経過後に、リードコマンドをリトライすることができる。
図19は、制御プログラム1110がSeqWriteコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
制御プログラム1110は、SeqWriteコマンドを受領した場合(ステップ1200)、そのSeqWriteコマンドで指定されている仮想ディスク(以下、指定仮想ディスク)14の仮想ディスクステータスを"SW-prepare"に変更し、テープ制御モジュール1115が、指定仮想ディスク14に対応するテープ(以下、対象テープ)132をテープドライブ131に準備する(ステップ1101)。
対象テープ132がテープドライブ131に準備されたならば、制御プログラム1110は、指定仮想ディスク14の仮想ディスクステータスを"SeqWrite"に変更する。ホスト2は、SeqWriteコマンドが発行された後、定期的に、指定仮想ディスク14の仮想ディスクステータスを監視し、その仮想ディスクステータスが"SeqWrite"になったことを検出した場合、指定仮想ディスクに対するライトコマンド及びデータを発行する。制御プログラム1110は、ホスト2からのライトコマンドに従って、ホスト2からのデータをメモリ111に書く(ステップ1202)。テープ制御モジュール1115は、メモリ111に書かれたデータを、準備された対象テープ132に書込む(ステップ1203)。
テープ制御モジュール1115は、書込むデータがメモリ111に残っている場合は(ステップ1204でNO)、対象テープ132への書き込みを継続し、書込むべきデータが残っていない場合には(ステップ1204でYES)、対象テープ132への書き込みを終了する。
対象テープ132への書き込みが終了した場合、テープ制御モジュール1115は、テープの巻き戻しやアンロードなどのテープ使用終了処理を実施する(ステップ1205)。
指定仮想ディスク14に対してデータの書き込みが完了した場合に(ステップ1206でYES)、処理が終了となる。複数の対象テープ132に跨ってデータを書込む場合は、ステップ1201に戻り、必要に応じて、対象テープ132を切替えて書き込みを継続することができる。SeqRead時と同様に、ディスクLUが割り当てられている場合には、テープへの書込みと並行してディスクへの書き込みを行っても良い。
以上、上述した別の実施形態によれば、ディスクキャッシュを利用する通常のアクセスモードの他に、ホスト2からディスクキャッシュを介さずにテープLUからデータを読み出すシーケンシャルリードや、ホスト2からディスクキャッシュを介さずにテープLUにデータを書込むシーケンシャルライトが用意される。これらの複数のアクセスモードを、用途(例えば、バックアップ或いはリストア)に応じて使い分けることにより、仮想ディスク全体の読み出しや書き込みの高速化が期待できる。具体的には、例えば、仮想ディスク全体のリストアの場合には、その仮想ディスクに対してSeqReadコマンドを発行することにより、ホスト2への仮想ディスク全体のコピーを高速化することが期待できる。
以上、本発明の好適な幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、仮想ディスク14は、テープLU142にマッピングされず、ディスクLU12に固定的にマッピングされても良い。換言すれば、複数のディスクLU141には、仮想ディスク14に固定的にマッピングされているディスクLU141と、仮想ディスク14に動的にマッピングされるディスクLU141とが含まれても良い。これにより、一つの仮想ディスクライブラリ装置1で、ディスクキャッシュを利用したテープアクセスと、テープアクセスの発生しないディスクアクセスとの両方を行うことができる。
また、例えば、テープグループ単位での読出し或いは書き込みは、シーケンシャルリードの場合にも行われても良い。具体的には、例えば、SeqReadコマンドで指定された仮想ディスク14にマッピングされたテープLUについて、該当テープLUを構成するテープ上に複数のテープLUが存在する場合は、その該当テープLUを有するテープグループを構成する全テープ132からデータが読み出されても良い。
図1は、本発明の一実施形態に係る計算機システムの構成例を示す。 図2は、コントローラ11の構成の一例を示す図である。 図3は、論理ボリュームの割り当てを模式的に示した図である。 図4は、LU関係テーブルの一例を示す。 図5は、仮想ディスク管理テーブルの一例を示す。 図6は、RAIDグループ管理テーブルの一例を示す。 図7は、ディスクLU管理テーブルの一例を示す。 図8は、テープグループ管理テーブルの一例を示す。 図9は、テープLU管理テーブルの一例を示す。 図10は、ステータス管理テーブル1112の一例を示した図である。 図11は、IO管理テーブル1113の一例を示した図である。 図12は、制御コマンドの形式の一例を示した図である。 図13は、制御プログラム1110がActivate指示を受領した場合に行われる処理の流れの一例を示す。 図14は、対象テープ判定処理の一例を示す。 図15は、制御プログラム1110が行うデータアクセス制御処理の一例を示す。 図16は、制御プログラム1110がInactivate指示を受領した場合に行われる処理の流れの一例を示す。 図17は、本発明の別の実施形態に係るIO管理テーブル1113の一例を示した図である。 図18は、制御プログラム1110がSeqReadコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。 図19は、制御プログラム1110がSeqWriteコマンドを受領した場合に行われる処理の流れの一例を示すフローチャートである。
符号の説明
1…仮想ディスクライブラリ装置 2…ホスト 3…管理端末 11…コントローラ 12…ディスク装置 13…テープライブラリ装置 14…仮想ディスク 131…テープドライブ 132…テープ 141…ディスクLU 142…テープLU

Claims (14)

  1. ホストを含む一以上の上位装置に接続されたストレージシステムにおいて、
    データを記憶する複数のテープ装置グループと、
    アクセス先がランダムに異なるアクセスであるランダムアクセスをテープ装置よりも高速に行うことのできる一以上の記憶装置と、
    前記一以上の記憶装置をエミュレーションした複数の仮想記憶装置と、
    前記ホストからのデータアクセスコマンドを制御するコントローラと
    を備え、
    各テープ装置グループは、複数のテープ装置を有し、
    各テープ装置グループについて、連続した二以上のテープLUがあり、
    各テープLUは、テープ装置グループ内の一以上のテープ装置に基づく論理的な記憶ユニットであり、
    前記複数の仮想記憶装置に、複数のテープLUがそれぞれマッピングされており、
    前記コントローラは、
    (A)前記複数の仮想記憶装置のうちの或る仮想記憶装置である対象仮想記憶装置を指定したデータアクセスコマンドを前記ホストから受ける前に、前記対象仮想記憶装置を指定した所定の準備コマンドを受信し、その準備コマンドに応答して、下記の処理(a1)及び(a2)を行い、
    (a1)前記対象仮想記憶装置について、前記一以上の記憶装置上に記憶領域を確保する
    (a2)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループからシーケンシャルに全データを前記確保した記憶領域に読
    (B)前記ホストから前記対象仮想記憶装置を指定したデータアクセスコマンドを受信した場合、前記対象テープLUに対してではなく、前記確保した記憶領域に対してデータアクセスを行
    (C)前記対象仮想記憶装置を指定した所定の準備終了コマンドを受信し、その準備終了コマンドに応答して、前記確保した記憶領域上の全データを、前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループにシーケンシャルに書き込む、
    ストレージシステム。
  2. 前記(a2)において、前記コントローラは、
    (a21)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置が他のテープLUの基にもなっているか否かを判断し、
    (a22)前記(a21)の判断の結果が肯定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループ内の全データを前記確保した記憶領域に読出し、
    (a23)前記(a21)の判断の結果が否定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループのうちの、対象テープLUの基になっているテープ装置のみから、前記確保した記憶領域にデータを読み出す、
    請求項1記載のストレージシステム。
  3. 前記対象仮想記憶装置について前記確保した記憶領域に対する前記データアクセスが終了する都度に、前記(C)で前記所定の準備終了コマンドを受信する、
    請求項1又は2記載のストレージシステム。
  4. 前記コントローラは、複数種類のアクセスモードのうちの選択されたアクセスモードに応じて、前記テープ装置に対して直接アクセスを行うか否かを制御する、
    請求項1乃至3のうちのいずれか1項に記載のストレージシステム。
  5. 前記複数種類のアクセスモードには、シーケンシャルリードモードが含まれており、
    前記コントローラは、前記シーケンシャルリードモードが選択された場合には、前記対象データLUからデータを読み出して前記一以上の記憶装置を介さずに前記ホストに送信する、
    請求項記載のストレージシステム。
  6. 前記シーケンシャルリードモードは、前記対象仮想記憶装置全体のリストアの場合に選択される、
    請求項記載のストレージシステム。
  7. 前記複数種類のアクセスモードには、シーケンシャルライトモードが含まれており、
    前記コントローラは、前記シーケンシャルライトモードが選択された場合には、前記ホストからデータを受信し、該受信したデータを、前記一以上の記憶装置を介さずに前記対象テープLUに書込む、
    請求項5又は6記載のストレージシステム。
  8. 前記シーケンシャルライトモードは、前記指定仮想記憶装置全体に対するバックアップの場合に選択される、
    請求項記載のストレージシステム。
  9. 一以上の上位装置と該一以上の上位装置に接続されたストレージシステムとを備えた計算機システムで実現される方法において、
    前記一以上の上位装置には、少なくともホストが含まれ、
    前記ストレージシステムが、
    データを記憶する複数のテープ装置グループと、
    一以上の記憶装置と、
    記憶装置をエミュレーションした複数の仮想記憶装置と、
    前記ホストからのデータアクセスコマンドを制御するコントローラと
    を備え、
    各テープ装置グループは、複数のテープ装置を有し、
    各テープ装置グループについて、連続した二以上のテープLUがあり、
    各テープLUは、テープ装置グループ内の一以上のテープ装置に基づく論理的な記憶ユニットであり、
    前記複数の仮想記憶装置に、複数のテープLUがそれぞれマッピングされており、
    (A)前記一以上の上位装置のいずれかかが、前記複数の仮想記憶装置のうちの或る仮想記憶装置である対象仮想記憶装置を指定したデータアクセスコマンドの発行前に、前記対象仮想記憶装置を指定した所定の準備コマンドを前記ストレージシステムに送信し
    (B)前記コントローラが、前記所定の準備コマンドを受信し、該準備コマンドに応答して、下記の処理を行い、
    (b1)前記対象仮想記憶装置について、前記一以上の記憶装置上に記憶領域を確保する(b2)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループからシーケンシャルに全データを前記確保した記憶領域に読
    (C)前記ホストが、前記対象仮想記憶装置を指定したデータアクセスコマンドを送信し、
    (D)前記コントローラが、前記データアクセスコマンドを受信した場合、前記対象テープLUに対してではなく、前記確保した記憶領域に対してデータアクセスを行
    (E)前記一以上の上位装置のいずれかかが、前記対象仮想記憶装置を指定した所定の準備終了コマンドを送信し、
    (F)前記コントローラが、前記所定の準備終了コマンドを受信し、その準備終了コマンドに応答して、前記確保した記憶領域上の全データを、前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループにシーケンシャルに書き込む、
    記憶制御方法。
  10. 前記(b2)において、前記コントローラは、
    (b21)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置が他のテープLUの基にもなっているか否かを判断し、
    (b22)前記(b21)の判断の結果が肯定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループ内の全データを前記確保した記憶領域に読出し、
    (b23)前記(b21)の判断の結果が否定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループのうちの、対象テープLUの基になっているテープ装置のみから、前記確保した記憶領域にデータを読み出す、
    請求項9記載の記憶制御方法。
  11. 前記対象仮想記憶装置について前記確保した記憶領域に対する前記データアクセスが終了する都度に、前記一以上の上位装置のいずれかかが、前記所定の準備終了コマンドを送信する、
    請求項9又は10記載の記憶制御方法。
  12. 一以上の上位装置と
    該一以上の上位装置に接続されたストレージシステムと
    を備え、
    前記一以上の上位装置には、少なくともホストが含まれ、
    前記ストレージシステムが、
    データを記憶する複数のテープ装置グループと、
    一以上の記憶装置と、
    記憶装置をエミュレーションした複数の仮想記憶装置と、
    前記ホストからのデータアクセスコマンドを制御するコントローラと
    を備え、
    各テープ装置グループは、複数のテープ装置を有し、
    各テープ装置グループについて、連続した二以上のテープLUがあり、
    各テープLUは、テープ装置グループ内の一以上のテープ装置に基づく論理的な記憶ユニットであり、
    前記複数の仮想記憶装置に、複数のテープLUがそれぞれマッピングされており、
    (A)前記一以上の上位装置のいずれかかが、前記複数の仮想記憶装置のうちの或る仮想記憶装置である対象仮想記憶装置を指定したデータアクセスコマンドの発行前に、前記対象仮想記憶装置を指定した所定の準備コマンドを前記ストレージシステムに送信し、
    (B)前記コントローラが、前記所定の準備コマンドを受信し、該準備コマンドに応答して、下記の処理を行い、
    (b1)前記対象仮想記憶装置について、前記一以上の記憶装置上に記憶領域を確保する、(b2)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループからシーケンシャルに全データを前記確保した記憶領域に読出す、
    (C)前記ホストが、前記対象仮想記憶装置を指定したデータアクセスコマンドを送信し、
    (D)前記コントローラが、前記データアクセスコマンドを受信した場合、前記対象テープLUに対してではなく、前記確保した記憶領域に対してデータアクセスを行い、
    (E)前記一以上の上位装置のいずれかかが、前記対象仮想記憶装置を指定した所定の準備終了コマンドを送信し、
    (F)前記コントローラが、前記所定の準備終了コマンドを受信し、その準備終了コマンドに応答して、前記確保した記憶領域上の全データを、前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置を含んだテープ装置グループにシーケンシャルに書き込む、
    計算機システム。
  13. 前記(b2)において、前記コントローラは、
    (b21)前記対象仮想記憶装置に対応する対象テープLUの基になっているテープ装置が他のテープLUの基にもなっているか否かを判断し、
    (b22)前記(b21)の判断の結果が肯定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループ内の全データを前記確保した記憶領域に読出し、
    (b23)前記(b21)の判断の結果が否定的の場合に、対象テープLUの基になっているテープ装置を含んだテープ装置グループのうちの、対象テープLUの基になっているテープ装置のみから、前記確保した記憶領域にデータを読み出す、
    請求項12記載の計算機システム。
  14. 前記対象仮想記憶装置について前記確保した記憶領域に対する前記データアクセスが終了する都度に、前記一以上の上位装置のいずれかかが、前記所定の準備終了コマンドを送信する、
    請求項12又は13記載の計算機システム。
JP2006135773A 2006-05-15 2006-05-15 複数のテープ装置を備えるストレージシステム Expired - Fee Related JP4756545B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006135773A JP4756545B2 (ja) 2006-05-15 2006-05-15 複数のテープ装置を備えるストレージシステム
US11/514,842 US7523253B2 (en) 2006-05-15 2006-09-05 Storage system comprising a plurality of tape media one of which corresponding to a virtual disk
EP06256372A EP1860542A2 (en) 2006-05-15 2006-12-14 Storage system comprising a plurality of tape media

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006135773A JP4756545B2 (ja) 2006-05-15 2006-05-15 複数のテープ装置を備えるストレージシステム

Publications (2)

Publication Number Publication Date
JP2007305075A JP2007305075A (ja) 2007-11-22
JP4756545B2 true JP4756545B2 (ja) 2011-08-24

Family

ID=38432865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006135773A Expired - Fee Related JP4756545B2 (ja) 2006-05-15 2006-05-15 複数のテープ装置を備えるストレージシステム

Country Status (3)

Country Link
US (1) US7523253B2 (ja)
EP (1) EP1860542A2 (ja)
JP (1) JP4756545B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984236B2 (en) * 2007-09-13 2011-07-19 Hewlett-Packard Development Company, L.P. Data transfer
US7774560B2 (en) * 2007-11-30 2010-08-10 Aten International Co., Ltd. Storage emulator and method thereof
US9495116B2 (en) * 2007-12-26 2016-11-15 Sandisk Il Ltd. Storage device coordinator and a host device that includes the same
JP2010102492A (ja) 2008-10-23 2010-05-06 Hitachi Ltd データアーカイブシステム
JP2010128630A (ja) * 2008-11-26 2010-06-10 Hitachi Ltd ストレージシステム、負荷分散管理方法、および記憶媒体
US8650328B1 (en) * 2008-12-15 2014-02-11 American Megatrends, Inc. Bi-directional communication between redundant storage controllers
JP4911198B2 (ja) * 2009-06-03 2012-04-04 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US8886602B2 (en) * 2010-02-09 2014-11-11 Google Inc. Location assignment daemon (LAD) for a distributed storage system
WO2011100368A1 (en) * 2010-02-09 2011-08-18 Google Inc. Method and system for providing efficient access to a tape storage system
US9305069B2 (en) * 2010-02-09 2016-04-05 Google Inc. Method and system for uploading data into a distributed storage system
US8341118B2 (en) 2010-02-09 2012-12-25 Google Inc. Method and system for dynamically replicating data within a distributed storage system
US8423517B2 (en) 2010-02-09 2013-04-16 Google Inc. System and method for determining the age of objects in the presence of unreliable clocks
US8868508B2 (en) * 2010-02-09 2014-10-21 Google Inc. Storage of data in a distributed storage system
US8874523B2 (en) * 2010-02-09 2014-10-28 Google Inc. Method and system for providing efficient access to a tape storage system
US8862617B2 (en) 2010-02-09 2014-10-14 Google Inc. System and method for replicating objects in a distributed storage system
US8615485B2 (en) * 2010-02-09 2013-12-24 Google, Inc. Method and system for managing weakly mutable data in a distributed storage system
US8380659B2 (en) 2010-02-09 2013-02-19 Google Inc. Method and system for efficiently replicating data in non-relational databases
WO2013128494A1 (en) * 2012-03-02 2013-09-06 Hitachi, Ltd. Storage system and data transfer control method
US9170888B2 (en) * 2012-06-11 2015-10-27 International Business Machines Corporation Methods and apparatus for virtual machine recovery
US10019203B1 (en) * 2013-05-30 2018-07-10 Cavium, Inc. Method and system for processing write requests
US9607000B1 (en) * 2013-06-27 2017-03-28 EMC IP Holding Company LLC Backup to tape-out using common backup data storage
US10817207B2 (en) * 2018-08-21 2020-10-27 International Business Machines Corporation Management of a multi-library storage system
CN113282245B (zh) * 2021-06-15 2024-04-12 中国建设银行股份有限公司 一种审计供数的方法及主机平台

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03252809A (ja) * 1990-03-02 1991-11-12 Toshiba Corp ファイル編成装置
JPH04170752A (ja) * 1990-11-02 1992-06-18 Hitachi Ltd 磁気ディスク装置
JP3132115B2 (ja) * 1992-01-21 2001-02-05 ミノルタ株式会社 ファクシミリ装置及びファクシミリ装置に用いられる制御装置と読取装置
JP3761962B2 (ja) * 1996-03-28 2006-03-29 富士通株式会社 タイムスイッチメモリのデータ制御装置
JP3618552B2 (ja) * 1998-06-30 2005-02-09 富士通株式会社 記憶装置
JP2004227448A (ja) 2003-01-27 2004-08-12 Hitachi Ltd テープ管理方法及びシステム
JP4559046B2 (ja) * 2003-08-04 2010-10-06 株式会社日立製作所 仮想テープライブラリ装置
JP2005235019A (ja) * 2004-02-20 2005-09-02 Sony Corp ネットワークシステム、分散処理方法、情報処理装置
JP4624702B2 (ja) * 2004-03-22 2011-02-02 日本ユニシス株式会社 仮想テープ装置の制御システムおよび制御プログラム
JP2006092124A (ja) * 2004-09-22 2006-04-06 Fujitsu Ltd 記憶装置、記憶制御方法および記憶制御プログラム

Also Published As

Publication number Publication date
JP2007305075A (ja) 2007-11-22
EP1860542A2 (en) 2007-11-28
US20070266204A1 (en) 2007-11-15
US7523253B2 (en) 2009-04-21

Similar Documents

Publication Publication Date Title
JP4756545B2 (ja) 複数のテープ装置を備えるストレージシステム
JP4863765B2 (ja) バックアップ及び/又はリストアを行う記憶制御方法及びシステム
JP4890160B2 (ja) ストレージシステム及びバックアップ/リカバリ方法
US8352783B2 (en) Information system and I/O processing method
US7574577B2 (en) Storage system, storage extent release method and storage apparatus
US7480780B2 (en) Highly available external storage system
JP5511960B2 (ja) 情報処理装置、及びデータの転送方法
US9213490B2 (en) Computer system and data migration method
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP2010211681A (ja) ストレージ装置及び仮想化装置
JP2007156597A (ja) ストレージ装置
JP5022773B2 (ja) ジャーナルを利用したリモートコピーのコピー先となるストレージシステムの消費電力を節約する方法及びシステム
JP2005228170A (ja) 記憶装置システム
WO2012117435A1 (en) Storage apparatus and data processing method of the same
JP4731420B2 (ja) 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム
JP2008299695A (ja) ストレージシステムの電力消費を制御するデータベース管理システム
JP5856665B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP5047342B2 (ja) ストレージ装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110406

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees