以下に図面を参照して、開示のストレージ制御装置、およびストレージ制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。ストレージ制御装置101は、第1種別のストレージ装置102と、第1種別のストレージ装置102が記憶するデータを一時的に記憶する第2種別の複数のストレージ装置103−1、2、とを制御するコンピュータである。ストレージ制御装置101は、例えば、サーバである。また、ストレージ制御装置101は、第1種別のストレージ装置102と、第2種別のストレージ装置103−1、2と、を含むストレージシステム100に含まれる。さらに、ストレージ制御装置101は、ホスト装置104と接続する。ホスト装置104は、ストレージシステム100を利用するユーザが操作する装置であり、ストレージ制御装置101に対して上位装置となる。
ここで、第2種別のストレージ装置103−1、2は、ストレージシステム100の性能を向上させるために用意されており、第1種別のストレージ装置102が記憶するデータを一時的に記憶するキャッシュとして動作する。従って、第2種別のストレージ装置が第1種別のストレージ装置よりもアクセス性能が高いものであれば、第1種別のストレージ装置と第2種別のストレージ装置とはどのようなものでもよい。
例えば、第1種別のストレージ装置が、磁気テープを用いてデータを記憶する装置、すなわちテープライブラリ装置であるのに対して、第2種別のストレージ装置が、磁気ディスクを用いてデータを記憶する装置、すなわちHDD(Hard Disk Drive)である。または、第1種別のストレージ装置がテープライブラリ装置であるのに対して、第2種別のストレージ装置がSSD(Solid State Drive)でもよい。または、第2種別のストレージ装置がSSDであるのに対して、第1種別のストレージ装置がHDDであってもよい。
また、第2種別のストレージ装置103−1、2のそれぞれは、物理的なディスクでもよいし、論理的なディスクでもよい。論理的なディスクとして、例えば、第2種別のストレージ装置103−1、2のそれぞれは、RAID(Redundant Arrays of Inexpensive Disks)により形成されたディスクでもよい。
ストレージシステム100の運用中において、第2種別のストレージ装置103−1、2のファームウェアを更新することがある。例えば、第2種別のストレージ装置103−1、2の不具合が発見された場合に、第2種別のストレージ装置103−1、2の製造元が、不具合を解消したファームウェアを提供する。または、第2種別のストレージ装置103−1、2の製造元が、第2種別のストレージ装置103−1、2に新たな機能を追加したファームウェアを提供する場合もある。ストレージシステム100の管理者は、第2種別のストレージ装置103−1、2に、提供されたファームウェアを適用することにより、第2種別のストレージ装置103−1、2のファームウェアを更新する。
ここで、第2種別のストレージ装置103−1、2のファームウェアとは、第2種別のストレージ装置103−1、2を制御するソフトウェアである。例えば、第2種別のストレージ装置103−1、2のファームウェアは、第2種別のストレージ装置103−1、2のCPU(Central Processing Unit)上で動作するOS(Operating System)である。また、例えば、第2種別のストレージ装置103−1、2が、PLD(Programmable Logic Device)で制御されるものであれば、第2種別のストレージ装置103−1、2のファームウェアは、PLDの論理回路を決定する回路情報でもよい。
ここで、第2種別のストレージ装置103−1、2のファームウェアを更新する間に、第1種別のストレージ装置102へのアクセス性能が低下することがある。例えば、第2種別のストレージ装置103−1、2のファームウェアを共に更新すると、第2種別のストレージ装置103−1、2をアンマウントすることになり、第2種別のストレージ装置103−1、2をキャッシュとして動作させることができなくなる。
また、第2種別のストレージ装置103−1のファームウェアを更新する際には、第2種別のストレージ装置103−1をアンマウントすることになり、第2種別のストレージ装置103−1をキャッシュとして動作させることができなくなる。この状態で、第1種別のストレージ装置102のデータであって、第2種別のストレージ装置103−1が一時的に記憶するデータに対するアクセス要求が発生する場合がある。この場合、第2種別のストレージ装置103−1にアクセスすることができないため、第1種別のストレージ装置102のデータがキャッシュされず、アクセス性能が低下することになる。
そこで、ストレージ制御装置101は、ストレージ装置102のキャッシュとなる複数ディスクのファーム適用を、先に適用するグループとアクセス用のグループとに分類し、並列して処理する。これにより、ストレージ制御装置101は、ファーム適用中のストレージシステム100のアクセス性能の低下を抑えることができる。
ここで、説明の簡略化のため、以下、ファームウェアを、単に「ファーム」と呼称する場合がある。また、ファームの更新を、単に、「ファームを適用」または「ファーム適用」と呼称する場合がある。また、ファーム適用中の前半部を、以下、単に、「前半部」と呼称する。同様に、ファーム適用中の後半部を、単に、「後半部」と呼称する。
図1を用いて、ストレージ制御装置101の動作を詳細に説明する。図1の(a)では、ファーム適用前の状態を示す。第1種別のストレージ装置102は、データ1_1、1_2、2_1、2_2を記憶する。ここで、データ1_1、1_2は、第2種別のストレージ装置103−1に対応付けられており、図1の(a)の状態では、第2種別のストレージ装置103−1は、データ1_1を記憶する。また、データ2_1、2_2は、第2種別のストレージ装置103−2に対応付けられており、図1の(a)の状態では、第2種別のストレージ装置103−2は、データ2_1を記憶する。具体的な対応付けの方法としては、ストレージ制御装置101は、第2種別のストレージ装置103−1、2と、第1種別のストレージ装置102が記憶するデータの各々を特定する情報とを対応付けて記憶する記憶部にアクセス可能である。ここで、第1種別のストレージ装置102が記憶するデータの各々を特定する情報は、データの各々の名称やファイルパス等である。
図1の(a)について、ストレージ制御装置101は、第2種別のストレージ装置103−1、2を、第1グループ110−1と、第2グループ110−2とに分類する。ここで、第1グループ110−1と、第2グループ110−2とに分類する際には、空となるグループがなければどのように分類してもよい。より具体的なグループの分類方法については、図15で説明する。図1の(a)では、ストレージ制御装置101は、第2種別のストレージ装置103−1を第1グループ110−1に分類するとともに、第2種別のストレージ装置103−2を第2グループ110−2に分類する。
次に、図1の(b)では、前半部として、第1グループ110−1に属する第2種別のストレージ装置103−1がファーム105を適用中であるとする。このとき、ストレージ制御装置101は、第2グループ110−2に属する第2種別のストレージ装置103−2を用いて第1種別のストレージ装置102にアクセスする。ここで、アクセスの契機は、例えば、ホスト装置104からのアクセス要求である。または、アクセスの契機は、例えば、第2種別のストレージ装置103−1、2のいずれかが一時的に記憶するデータのキャッシュ元となるデータを、第1種別のストレージ装置102内部で移動させる処理の発生によってもよい。
図1の(b)の例では、第2種別のストレージ装置103−1をファーム適用する間に、ホスト装置104が、データ1_1に対するアクセス要求106をストレージ制御装置101に発行したとする。この場合、ストレージ制御装置101は、第2種別のストレージ装置103−2を用いて第1種別のストレージ装置102にアクセスする。より具体的には、ストレージ制御装置101は、データ1_1を第2種別のストレージ装置103−2に記憶させて、データ1_1に対するアクセス要求106を処理する。次に、ストレージシステム100を、仮想テープライブラリシステム200に適用した例を、図2を用いて説明する。
図2は、仮想テープライブラリシステム200の構成例を示す説明図である。仮想テープライブラリシステム200は、仮想的なテープライブラリのサービスを提供するシステムである。仮想テープライブラリシステム200は、階層制御サーバ201と、ディスクアレイ装置202と、テープライブラリ装置203とを有する。また、仮想テープライブラリシステム200は、仮想テープライブラリシステム200を利用する装置としてホスト装置211と接続する。
ここで、階層制御サーバ201は、図1に示したストレージ制御装置101に相当する。また、ディスクアレイ装置202は、図1に示した第2種別の複数のストレージ装置103−1、2に相当する。また、テープライブラリ装置203は、図1に示した第1種別のストレージ装置102に相当する。また、ホスト装置211は、図1に示したホスト装置104に相当する。
仮想テープライブラリシステム200は、ホスト装置211に対して、テープライブラリとしてふるまう。テープライブラリ装置203は、ロボット221と、テープドライブ222と、PV(Physical Volume)223とを有する。
階層制御サーバ201は、仮想テープライブラリシステム200全体を制御する装置である。具体的には、階層制御サーバ201は、ホスト装置211からの読込要求や書込要求に対して、ディスクアレイ装置202を利用してデータの読込や書込を行う。より具体的には、ホスト装置211から書込要求があった場合、ディスクアレイ装置202に書き込み、ホスト装置211に応答を通知する。このように、仮想テープライブラリシステム200は、実際のテープライブラリを使用するよりも高速に処理を行うことが可能である。そして、階層制御サーバ201は、ホスト装置211を介さずにバックグラウンドでディスクアレイ装置202に書き込まれたデータをテープライブラリ装置203へ保存する。ディスクアレイ装置202に書き込まれたデータをテープライブラリ装置203へ保存する処理のことを、「マイグレーション処理」と呼称する。ここで、マイグレーション処理として、階層制御サーバ201は、上書きされたデータを書き込む際には、PV内の古いデータが書き込まれた領域を無効とし、現在使用中の領域の次の領域に上書きされたデータを保存する。
ディスクアレイ装置202は、テープライブラリ装置203に対するキャッシュであり、テープボリュームキャッシュ(TVC:Tape Volume Cache)とも呼ばれる。ディスクアレイ装置202に書き込まれたデータを、論理ボリューム(LV:Logical Volume)と呼称する。階層制御サーバ201は、ディスクアレイ装置202に書き込まれたLVによって容量が圧迫されるのを防ぐために、頻繁にLVの更新がなく、マイグレーション処理済のLVをディスクアレイ装置202から消去する。
ホスト装置211からの読込要求や書込要求に対して、対象となるデータがディスクアレイ装置202に存在する場合、階層制御サーバ201は、ディスクアレイ装置202から読み込みまたは書き込んで、ホスト装置211に応答を返す。ホスト装置211からの読込要求や書込要求に対するデータがディスクアレイ装置202に存在することを、「オンキャッシュ」と呼称する。
一方、ホスト装置211からの読込要求や書込要求に対して、対象となるデータがディスクアレイ装置202に存在しない場合、階層制御サーバ201は、ロボット221を制御して、対象のデータを格納するPV223をテープドライブ222に挿入する。そして、階層制御サーバ201は、マイグレーション処理済のPV223をテープドライブ222から読込、ディスクアレイ装置202にデータを移した後、ホスト装置211に応答を返す。ホスト装置211からの読込要求や書込要求に対するデータがディスクアレイ装置202に存在しないことを、「オフキャッシュ」と呼称する。また、PV223からLVへ読み出す処理のことを、「リコール処理」と呼称する。次に、図3を用いて、階層制御サーバ201のハードウェア構成について説明する。
図3は、階層制御サーバ201のハードウェア構成例を示す説明図である。階層制御サーバ201は、プロセッサ301と、RAM(Random Access Memory)302と、内蔵ディスク303と、テープインタフェース304と、入力インタフェース305と、読取装置306と、ホストインタフェース307と、ディスクインタフェース308とを有する。プロセッサ301〜ディスクインタフェース308は、バス309で接続される。
プロセッサ301は、階層制御サーバ201全体を制御する。例えば、プロセッサ301は、CPU、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD等がある。
RAM302は、階層制御サーバ201の主記憶装置であり、プロセッサ301のワークエリアとして使用される揮発性メモリである。内蔵ディスク303は、階層制御サーバ201の2次記憶装置である。例えば、内蔵ディスク303には、ファームウェアプログラムおよび各種データが格納される。例えば、内蔵ディスク303は、SSD、HDDなどの不揮発性記憶装置を採用することができる。
テープインタフェース304は、テープライブラリ装置203との間でデータを送受信する通信インタフェースである。入力インタフェース305は、入力装置310を接続するためのインタフェースである。例えば、各種の操作キーなどを有する入力装置310が接続可能である。
読取装置306は、可搬型記録媒体311を読み取るための装置である。読取装置306は、読み取ったデータを、プロセッサ301に送信する。プロセッサ301は、可搬型記録媒体311としては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ホストインタフェース307は、ホスト装置211との間でデータを送受信する通信インタフェースである。ディスクインタフェース308は、ディスクアレイ装置202との間でデータを送受信する通信インタフェースである。
図4は、仮想テープライブラリシステム200のファイルシステムを示す説明図である。ディスクアレイ装置202は、RAIDグループごとに1つ以上のファイルシステムが作成されている。ここで、1つのRAIDグループが、図1に示した第2種別の複数のストレージ装置103の1つに相当する。RAIDグループを形成することにより、ディスクアレイ装置202は、RAIDグループを形成するディスクの一部からデータが読み出せなくなったとしても残りのディスクからデータを復元させることができるため、データの信頼性を向上させることができる。
ファイルシステムの構成例として、例えば、仮想テープライブラリシステム200の構成データを格納するために作成されたRAIDグループRAID#CNFにはファイルシステムが1個作成される。また、ホスト装置211のユーザのデータであるユーザデータを格納するために作成されたRAIDグループRAID#DATA−Mには、1RAIDグループあたりファイルシステムがN_M個作成される。ここで、N、Mは1以上の整数である。また、N_1、N_2、…N_Mはそれぞれ独立した値であり、同じ値となる可能性もあるし、それぞれ異なる値となる可能性もある。階層制御サーバ201上には「DATA−MN_M」としてマウントされる。
DATA−MN_Mを、以下、「ユーザ領域」と呼称する場合がある。これに対し、RAID#CNFを、「管理領域」と呼称する場合がある。
RAID#CNFには、仮想テープライブラリシステム200を管理するために、LV情報テーブル401と、ディスク情報テーブル402と、RAIDグループ情報テーブル403と、ファイルシステム情報テーブル404とを含む。LV情報テーブル401の詳細については、図5で説明する。ディスク情報テーブル402の詳細については、図6で説明する。RAIDグループ情報テーブル403の詳細については、図7で説明する。ファイルシステム情報テーブル404の詳細については、図8で説明する。
図5は、LV情報テーブル401の記憶内容の一例を示す説明図である。LV情報テーブル401は、LVを管理するテーブルである。図5に示すLV情報テーブル401は、レコード501−1〜7を記憶する。
LV情報テーブル401は、LV名と、所属先ファイルシステム名と、LV容量と、状態と、格納先PV名というフィールドを含む。LV名フィールドには、LV名が格納される。所属先ファイルシステム名フィールドには、LVが属するファイルシステムの名称が格納される。LV容量フィールドには、LVの記憶容量の値が格納される。状態フィールドには、LVの状態が格納される。LVの状態としては、具体的には、オンキャッシュ、オフキャッシュ、リコール処理中、マイグレーション処理中、リオーガニゼーション処理中、ホスト装置211から追記処理中、ホスト装置211への読込処理中等がある。
ここで、リオーガニゼーション処理とは、LVからPVへのマイグレーション処理を何度も行うことで、仮想テープライブラリシステム200内で使用不能となった領域を減らし、使用可能なPVの領域を増やすための処理である。場合によっては、リオーガニゼーション処理を行うことにより、PVの使用数も増える場合がある。使用不能となった領域とは、マイグレーション処理を行う際のPV内の古いデータが書き込まれた領域である。リオーガニゼーション処理は、実質、対象のPVに対してリコール処理を行い、行った結果書き込まれたLVから新たなPVへのマイグレーション処理となる。格納先PV名フィールドには、LVが格納されているPV名が格納される。
例えば、レコード501−1は、LV名「A00000」が、ファイルシステム「DATA−11」に属しており、容量が1000000[Byte]であり、オンキャッシュであり、PV名が「TVXQ00」であることを示す。
図6は、ディスク情報テーブル402の記憶内容の一例を示す説明図である。ディスク情報テーブル402は、ディスクアレイ装置202のディスクを管理するテーブルである。図6に示すディスク情報テーブル402は、レコード601−1〜7を記憶する。
ディスク情報テーブル402は、ディスク名と、ベンダ名と、ファーム版数と、所属先RAIDグループ名というフィールドを含む。ディスク名フィールドには、ディスクの名称が格納される。ベンダ名フィールドには、ディスクを製造したベンダの名称が格納される。ファーム版数フィールドには、稼働中のディスクのファーム版数が格納される。所属先RAIDグループ名フィールドには、ディスクが属するRAIDグループの名称が格納される。
例えば、レコード601−1は、ディスク名が「Disk#00」であり、ベンダ名が「A社」であり、ファーム版数が「AA09」であり、所属先RAIDグループ名が「RAID#CNF」であることを示す。
図7は、RAIDグループ情報テーブル403の記憶内容の一例を示す説明図である。RAIDグループ情報テーブル403は、ディスクアレイ装置202のRAIDグループを管理するテーブルである。図7に示すRAIDグループ情報テーブル403は、レコード701−1〜3を記憶する。
RAIDグループ情報テーブル403は、RAIDグループ名と、RAIDレベルと、所属ディスク数というフィールドを含む。RAIDグループ名フィールドには、RAIDグループの名称が格納される。RAIDレベルフィールドには、RAIDグループのRAIDレベルが格納される。所属ディスク数フィールドには、RAIDグループに属するディスクの数が格納される。
例えば、レコード701−1は、RAIDグループ名が「RAID#CNF」であり、RAIDレベルが1であり、所属ディスク数が2つであることを示す。
図8は、ファイルシステム情報テーブル404の記憶内容の一例を示す説明図である。ファイルシステム情報テーブル404は、ディスクアレイ装置202内のファイルシステムを管理するテーブルである。図8に示すファイルシステム情報テーブル404は、レコード801−1〜4を記憶する。
ファイルシステム情報テーブル404は、ファイルシステム名と、マウント状態と、所属RAIDグループというフィールドを含む。ファイルシステム名フィールドには、LVが属するファイルシステムの名称が格納される。マウント状態フィールドには、ファイルシステムが階層制御サーバ201上にマウントされているか否かを示す識別子が格納される。具体的には、マウント状態フィールドには、ファイルシステムがマウントされていることを示す「Mounted」、または、ファイルシステムがマウントされていないことを示す「Unmounted」のいずれかが格納される。所属RAIDグループフィールドには、ディスクが属するRAIDグループ名が格納される。
次に、図9〜図11を用いて、本実施の形態においてLVに対して行う処理として、追記処理、読込処理、リオーガニゼーション処理の動作について説明する。
図9は、PVへの追記処理時の動作例を示す説明図である。追記処理について、オンキャッシュかオフキャッシュかによって、仮想テープライブラリシステム200の動作が異なる。そこで、図9の(a)を用いて、オンキャッシュにおけるPVへの追記処理について説明するとともに、図9の(b)を用いて、オフキャッシュにおけるPVへの追記処理について説明する。
図9の(a)について、オンキャッシュである場合には、階層制御サーバ201は、ディスクアレイ装置202のLV901へデータを書き込む。図9の(a)で、黒く塗りつぶした箇所が追記した部分である。そして、階層制御サーバ201は、LV901の全てに対してマイグレーション処理を行う。ここで、階層制御サーバ201は、マイグレーション処理実行前に、PVに格納されていた、LV901の白い部分についてのデータを削除する。具体的には、階層制御サーバ201は、LV901の白い部分についてのデータが書き込まれた領域を無効とする。
図9の(b)について、オフキャッシュである場合には、階層制御サーバ201は、リコール処理を行う。以降の処理については、階層制御サーバ201は、オンキャッシュである場合と同様の処理を行う。
図10は、ホスト装置211からのLVへの読込処理時の動作例を示す説明図である。LVへの読込処理について、オンキャッシュかオフキャッシュかによって、仮想テープライブラリシステム200の動作が異なる。そこで、図10の(a)を用いて、オンキャッシュにおけるLVへの読込処理について説明するとともに、図10の(b)を用いて、オフキャッシュにおけるLVへの読込処理について説明する。
図10の(a)について、オンキャッシュである場合には、階層制御サーバ201は、ホスト装置211からの読込要求に応じたデータをLV1001から読み出して、ホスト装置211に読み出したデータを返す。
図10の(b)について、オフキャッシュである場合には、階層制御サーバ201は、リコール処理を行う。以降の処理については、階層制御サーバ201は、オンキャッシュである場合と同様の処理を行う。
図11は、リオーガニゼーション処理時の動作例を示す説明図である。リオーガニゼーション処理について、オンキャッシュかオフキャッシュかによって、仮想テープライブラリシステム200の動作が異なる。そこで、図11の(a)を用いて、オンキャッシュにおけるリオーガニゼーション処理について説明するとともに、図11の(b)を用いて、オフキャッシュにおけるリオーガニゼーション処理について説明する。
図11の(a)について、オンキャッシュである場合には、階層制御サーバ201は、PV223#Aと同一のデータを有するLV1101を、PV223#Bにマイグレーション処理する。
図11の(b)について、オフキャッシュである場合には、階層制御サーバ201は、リコール処理を行う。以降の処理については、階層制御サーバ201は、オンキャッシュである場合と同様の処理を行う。
(階層制御サーバ201の機能構成例)
図12は、階層制御サーバ201の機能構成例を示すブロック図である。階層制御サーバ201は、制御部1200を含む。制御部1200は、分類部1201と、実行部1202と、更新部1203と、を含む。制御部1200は、記憶装置に記憶されたプログラムをプロセッサ301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したRAM302、内蔵ディスク303などである。また、各部の処理結果は、プロセッサ301のレジスタや、プロセッサ301のキャッシュメモリ等に格納される。
また、階層制御サーバ201は、記憶部1210にアクセス可能である。記憶部1210は、図4で示した管理領域に相当する。また、記憶部1210は、RAM302、内蔵ディスク303といった記憶装置に格納されていてもよい。記憶部1210は、複数のRAIDグループの各々のRAIDグループとテープライブラリ装置203が記憶するデータの各々、すなわちPVを特定する情報とを対応付けて記憶する。図5と図8とを用いて説明すると、各々のRAIDグループは、図8に示したファイルシステム情報テーブル404が示す通り、ファイルシステム名と対応付けられている。そして、ファイルシステム名は、図5に示したLV情報テーブル401が示す通り、PV名と対応付けられている。従って、図5と図8とが示す通り、RAIDグループとPV名とが対応付けられている。
分類部1201は、複数のRAIDグループを、第1グループと第2グループとに分類する。以下の記載では、第1グループを「グループA」と呼称し、第2グループを「グループB」と呼称する。また、分類部1201は、複数のRAIDグループのうち、いずれのグループに所属しないグループがあってもよい。本実施の形態では、分類部1201は、RAID#CNFを、グループAにもグループBにも所属させず、ファーム適用外とする。
また、分類部1201は、複数のRAIDグループの各々のRAIDグループが記憶するデータに対する処理にかかる時間と、各々のRAIDグループのファーム適用にかかる時間とに基づいて、グループAとグループBとに分類してもよい。ここで、各々のRAIDグループが記憶するデータに対する処理は、オンキャッシュのLVに対する処理となる。また、分類部1201は、オンキャッシュのLVに対する処理にかかる時間について、開発者が予め指定しておいた時間をそのまま用いてもよいし、データに対する処理の種別に応じて開発者が予め指定しておいた時間を使い分けてもよい。また、分類部1201は、各々のRAIDグループのファーム適用にかかる時間についても、開発者が予め指定しておいた時間をそのまま用いてもよいし、開発者が予め指定しておいた時間に対して、ファームのデータサイズに応じて重みづけた値を用いてもよい。
例えば、RAID#DATA−1〜3をグループ分けの対象とし、RAID#DATA−1〜3について、オンキャッシュのLVに対する処理にかかる時間が、それぞれ、20秒、10秒、10秒であったとする。そして、RAID#DATA−1〜3のファーム適用にかかる時間が、全て20秒であり、各ファーム適用は並列にできるものとする。この場合、分類部1201は、ファーム適用にかかる時間以上となるRAIDグループであるRAID#DATA−1をグループBに分類し、残余となるRAID#DATA−2、3をグループAに分類する。より具体的な分類方法については、図15で説明する。
実行部1202は、グループAに属するRAIDグループのファーム適用の間、すなわち、前半部では、グループBに属するRAIDグループを用いてテープライブラリ装置203にアクセスする。
また、実行部1202は、前半部では、グループBに属するRAIDグループが記憶するデータに対する処理を、グループBに属するRAIDグループが記憶しないデータに対する処理より優先させて、先に実行してもよい。ここで、グループBに属するRAIDグループが記憶しないデータに対する処理は、グループBのオフキャッシュのLVに対する処理、または、グループB以外のRAIDグループに対応付けられたLVに対する処理となる。
また、実行部1202は、前半部では、グループAに属するRAIDグループが記憶しないデータに対する処理を、グループAに属するRAIDグループが記憶するデータに対する処理より優先させて、先に実行してもよい。ここで、グループAに属するRAIDグループが記憶しないデータに対する処理は、グループAのオフキャッシュのLVに対する処理、または、グループA以外のRAIDグループに対応付けられたLVに対する処理となる。
また、実行部1202は、前半部では、記憶部1210を参照して、グループBに属するRAIDグループに対応付けられたデータに対する処理を、グループAに属するRAIDグループに対応付けられたデータに対する処理より優先させて、先に実行してもよい。グループBに属するRAIDグループに対応付けられたデータに対する処理は、グループBのオンキャッシュのLVに対する処理、または、グループBのオフキャッシュのLVに対する処理となる。同様に、グループAに属するRAIDグループに対応付けられたデータに対する処理は、グループAのオンキャッシュのLVに対する処理、または、グループAのオフキャッシュのLVに対する処理となる。前半部におけるLVに対する処理の優先度を纏めたものを、図13で示す。また、後半部におけるLVに対する処理の優先度を纏めたものを、図14で示す。
また、グループAに属するRAIDグループのファーム適用が完了したとする。この後、実行部1202は、グループBに属するRAIDグループのファーム適用の間、すなわち、後半部では、グループAに属するRAIDグループを用いてテープライブラリ装置203にアクセスする。
更新部1203は、前半部に、グループAに属するRAIDグループに対応付けられたデータに対する処理を実行することに応じて、記憶部1210を更新する。更新の内容として、更新部1203は、グループAに属するRAIDグループに対応付けられたデータをグループBに属するRAIDグループに対応付けるように更新する。更新するタイミングは、グループAに属するRAIDグループに対応付けられたデータに対する処理と同時でもよいし、前でも後でもよい。より具体的には、更新部1203は、LV情報テーブル401を更新する。具体的な更新の内容は、図24と図25とで説明する。
図13は、前半部におけるLV処理優先度の一例を示す説明図である。表1300は、前半部においてLVに対する処理の優先度を示したものである。表1300は、レコード1301−1〜4を有する。ここで、グループAに属するRAIDグループは、ファーム適用を先行するRAIDグループであり、グループBに属するRAIDグループは、ホスト装置211からのI/Oを先行するRAIDグループである。また、表1300内の優先度は、数値が低い方が高い優先度であるとする。また、同じ優先度であれば、LVに対する処理については、リクエストのあった時刻順に処理するものとする。
ここで、レコード1301−1〜4が示すように、グループBに属するLVを、グループAに属するLVより高優先に設定する理由を説明する。階層制御サーバ201は、前半部では、グループAに対してファーム適用を行う。従って、階層制御サーバ201は、グループBに属するLVに対する処理を、グループAに属するLVに対する処理よりも優先させる。
次に、レコード1301−1、2が示すように、グループBに属するオンキャッシュのLVを、グループBに属するオフキャッシュのLVより高優先に設定する理由を説明する。グループBに属するファイルシステムは、後半部ではアンマウントされる。アンマウントされると、グループBに属するLVは読み出すことができなくなり、仮想テープライブラリシステム200は、リコール処理を行うことになる。従って、階層制御サーバ201は、グループBのRAIDグループに存在するオンキャッシュのLVを第1優先度として処理する。
また、レコード1301−3、4が示すように、グループAに属するオンキャッシュのLVを、グループAに属するオフキャッシュのLVより低優先に設定する理由を説明する。グループAに属するファイルシステムは、前半部ではファーム適用中であるためファイルシステムがアンマウントされている。従って、前半部にグループAに属するオンキャッシュのLVに対する処理を行おうとすると、仮想テープライブラリシステム200は、オンキャッシュであっても、リコール処理を行うことになる。これに対し、後半部ではファイルシステムがマウントされているため、グループAに属するオンキャッシュのLVに対する処理を行う際には、仮想テープライブラリシステム200は、リコール処理を行わなくてよくなる。従って、階層制御サーバ201は、グループAのRAIDグループに存在するオンキャッシュのLVを第4優先度、すなわち最低の優先度として処理する。
図14は、後半部におけるLV処理優先度の一例を示す説明図である。表1400は、後半部においてLVに対する処理の優先度を示したものである。表1400は、レコード1401−1〜4を有する。ここで、グループAは、ファーム適用を先行するRAIDグループであり、グループBは、I/Oを先行するRAIDグループである。また、表1400内の優先度は、数値が低い方が高い優先度であるとする。また、同じ優先度であれば、LVに対する処理については、リクエストのあった時間順に処理するものとする。
ここで、レコード1401−1〜4が示すように、グループAに属するLVを、グループBに属するLVより高優先に設定する理由を説明する。階層制御サーバ201は、後半部では、グループAのファーム適用が完了したため、グループBに対してファーム適用を行う。従って、階層制御サーバ201は、グループBに属するLVに対する処理よりも、グループAに属するLVに対する処理を優先させる。そして、階層制御サーバ201は、グループAのRAIDグループに存在するオンキャッシュのLVを第1優先度として処理する。
また、レコード1401−3、4が示すように、グループBに属するオンキャッシュのLVを、グループBに属するオフキャッシュのLVより低優先に設定する理由を説明する。グループBに属するファイルシステムは、後半部ではファーム適用中であるためファイルシステムがアンマウントされている。従って、後半部にグループBに属するオンキャッシュのLVに対する処理を行おうとすると、仮想テープライブラリシステム200は、オンキャッシュであっても、リコール処理を行うことになる。これに対し、ファーム適用完了後には、後半部ではファイルシステムがマウントされているため、グループBに属するオンキャッシュのLVに対する処理を行う際には、仮想テープライブラリシステム200は、リコール処理を行わなくてよくなる。従って、階層制御サーバ201は、グループBのRAIDグループに存在するオンキャッシュのLVを第4優先度、すなわち最低の優先度として処理する。
図15は、グループの分類方法の一例を示す説明図である。図15では、グループAとグループBとの分類方法について説明する。初期状態では、グループA、グループBともに空の状態である。まず、階層制御サーバ201は、ホスト装置からの追記処理および読込処理、リオーガニゼーション処理、リコール処理対象となるLVを抽出する。
次に、階層制御サーバ201は、抽出したLVを対象に、属するRAIDグループLVrdごとのオンキャッシュのLVの合計処理時間LVtmを算出する。具体的な算出方法として、階層制御サーバ201は、例えば、あるLVrdに属するオンキャッシュのLVの個数を求め、求めた個数に、各処理で平均的にかかる時間を乗じた時間を、あるLVrdの合計処理時間LVtmとしてもよい。平均的にかかる時間が、追記処理や読込処理などで大きく異なる場合には、階層制御サーバ201は、処理の種別ごとに平均的にかかる時間を用意しておく。そして、階層制御サーバ201は、各処理の種別ごとの各オンキャッシュのLVの個数に各処理の種別ごとの平均的にかかる時間をかけた時間の合計を、あるLVrdの合計処理時間LVtmとしてもよい。図15の(a)で示す表1501は、RAIDグループLVrdごとのオンキャッシュLV処理時間の一例を示す。
次に、階層制御サーバ201は、LVrdごとのLVtmを、LVstm_1、…、LVstm_n、…、LVstm_Nに降順に代入する。Nは、RAIDグループの個数である。図15の(a)で示す表1501の例では、階層制御サーバ201は、図15の(b)で示すように、レコード1501−3で示すRAID#DATA−3のオンキャッシュLV処理時間を、LVstm_1に代入する。同様に、階層制御サーバ201は、RAID#DATA−4、1、2のオンキャッシュLV処理時間を、それぞれ、LVstm_2、LVstm_3、LVstm_4に代入する。
そして、階層制御サーバ201は、1ディスクあたりのファーム適用にかかる時間Tfwを超えるまで、降順に、オンキャッシュLV処理時間を加えていくとともに、加えたオンキャッシュLV処理時間に対応するRAIDグループをグループBに分類する。Tfwは、仮想テープライブラリシステム200の管理者が予め決定した値でもよいし、過去のファーム適用にかかった時間でもよい。さらに、Tfwについて、同一のRAIDグループ内でディスクが同一の種類であれば、Tfwと、RAIDグループ全体のファーム適用時間は同一となる。
そして、階層制御サーバ201は、加えた合計時間がTfwを超えた際、グループBに分類していないRAIDグループをグループAに分類する。図15の例では、Tfw=15とする。図15の(b)の例では、RAID#DATA−3のオンキャッシュLV処理時間が20であるから、Tfw=15を超えることになる。図15の(b)の例に対して、階層制御サーバ201がグループの分類を行った結果を、図15の(c)の表1502で示す。表1502のレコード1502−2が示すように、階層制御サーバ201は、グループBに属するRAIDグループをRAID#DATA−3とする。また、表1502のレコード1502−1が示すように、階層制御サーバ201は、グループAに属するRAIDグループを、RAID#DATA−1、2、4とする。
次に、図16〜図21を用いて、前半部と後半部とにおける、追記処理、読込処理、リオーガニゼーション処理時のそれぞれの動作例について説明する。図16〜図21で共通する前提として、ファーム適用を先行させるグループAには、RAID#DATA−1が所属しており、I/Oを先行させるグループBには、RAID#DATA−2が属する。
図16は、前半部におけるホスト装置211からの追記処理時の動作例を示す説明図である。図16の(a)では、前半部におけるホスト装置211からの追記処理時の動作例を示す。図16の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−1に対する追記処理、リコール処理、マイグレーション処理を行えず、RAID#DATA−2に対する追記処理、リコール処理、マイグレーション処理を行える。
図16の(b)では、前半部における処理の可否をまとめた表1600を示す。前半部では、仮想テープライブラリシステム200は、ホスト装置211からRAID#DATA−1への追記処理、PV223からRAID#DATA−1へのリコール処理、RAID#DATA−1からPV223へのマイグレーション処理を行えない。一方で、前半部では、仮想テープライブラリシステム200は、ホスト装置211からRAID#DATA−2への追記処理、PV223からRAID#DATA−2へのリコール処理、RAID#DATA−2からPV223へのマイグレーション処理を行える。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−1のLVに関する処理について、RAID#DATA−2を経由して行う。
図17は、後半部におけるホスト装置211からの追記処理時の動作例を示す説明図である。図17の(a)では、後半部におけるホスト装置211からの追記処理時の動作例を示す。図17の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−2に対する追記処理、リコール処理、マイグレーション処理を行えず、RAID#DATA−1に対する追記処理、リコール処理、マイグレーション処理を行える。
図17の(b)では、後半部における処理の可否をまとめた表1700を示す。後半部では、仮想テープライブラリシステム200は、ホスト装置211からRAID#DATA−2への追記処理、PV223からRAID#DATA−2へのリコール処理、RAID#DATA−2からPV223へのマイグレーション処理を行えない。一方で、後半部では、仮想テープライブラリシステム200は、ホスト装置211からRAID#DATA−1への追記処理、PV223からRAID#DATA−1へのリコール処理、RAID#DATA−1からPV223へのマイグレーション処理を行える。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−2のLVに関する処理について、RAID#DATA−1を経由して行う。
図18は、前半部におけるホスト装置211への読込処理時の動作例を示す説明図である。図18の(a)では、前半部におけるホスト装置211への読込処理時の動作例を示す。図18の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−1に対する読込処理、リコール処理を行えず、RAID#DATA−2に対する読込処理、リコール処理を行える。
図18の(b)では、前半部における処理の可否をまとめた表1800を示す。前半部では、仮想テープライブラリシステム200は、RAID#DATA−1からホスト装置211への読込処理、PV223からRAID#DATA−1へのリコール処理を行えない。一方で、前半部では、仮想テープライブラリシステム200は、RAID#DATA−2からホスト装置211への読込処理と、PV223からRAID#DATA−2へのリコール処理とを行える。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−1のLVに関する処理について、RAID#DATA−2を経由して行う。
図19は、後半部におけるホスト装置211への読込処理時の動作例を示す説明図である。図19の(a)では、後半部におけるホスト装置211への読込処理時の動作例を示す。図19の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−2に対する読込処理、リコール処理を行えず、RAID#DATA−1に対する読込処理、リコール処理を行える。
図19の(b)では、後半部における処理の可否をまとめた表1900を示す。後半部では、仮想テープライブラリシステム200は、RAID#DATA−2からホスト装置211への読込処理、PV223からRAID#DATA−2へのリコール処理を行うことができない。一方で、後半部では、仮想テープライブラリシステム200は、RAID#DATA−1からホスト装置211への読込処理、PV223からRAID#DATA−1へのリコール処理を行うことができる。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−2のLVに関する処理について、RAID#DATA−1を経由して行う。
図20は、前半部におけるリオーガニゼーション処理時の動作例を示す説明図である。図20の(a)では、前半部におけるリオーガニゼーション処理時の動作例を示す。ここで、図5で説明したように、リオーガニゼーション処理は、リコール処理とマイグレーション処理との組み合わせとなる。図20の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−1に対するリコール処理、マイグレーション処理を行えず、RAID#DATA−2に対するリコール処理、マイグレーション処理を行える。
図20の(b)では、前半部における処理の可否をまとめた表2000を示す。前半部では、仮想テープライブラリシステム200は、PV223からRAID#DATA−1へのリコール処理、RAID#DATA−1からPV223へのマイグレーション処理を行えない。一方で、前半部では、仮想テープライブラリシステム200は、PV223からRAID#DATA−2へのリコール処理、RAID#DATA−2からPV223へのマイグレーション処理を行える。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−1のLVに関する処理について、RAID#DATA−2を経由して行う。
図21は、後半部におけるリオーガニゼーション処理時の動作例を示す説明図である。図21の(a)では、後半部におけるリオーガニゼーション処理時の動作例を示す。図21の(a)が示すように、仮想テープライブラリシステム200は、RAID#DATA−2に対するリコール処理、マイグレーション処理を行えず、RAID#DATA−1に対するリコール処理、マイグレーション処理を行える。
図21の(b)では、後半部における処理の可否をまとめた表2100を示す。後半部では、仮想テープライブラリシステム200は、PV223からRAID#DATA−2へのリコール処理、RAID#DATA−2からPV223へのマイグレーション処理を行えない。一方で、後半部では、仮想テープライブラリシステム200は、PV223からRAID#DATA−1へのリコール処理、RAID#DATA−1からPV223へのマイグレーション処理を行える。従って、仮想テープライブラリシステム200は、ファーム適用中のRAID#DATA−2のLVに関する処理について、RAID#DATA−1を経由して行う。
次に、図22〜図25を用いて、優先度1〜4それぞれのLVに対するLV情報テーブル401の更新例について説明する。ここで、図22〜図25において、追記処理の対象となるLV名を、それぞれ、APWR01〜04とする。また、読込処理の対象となるLV名を、それぞれ、READ01〜04とする。また、リオーガニゼーション処理の対象となるLV名を、それぞれ、REOG01〜04とする。また、図22〜図27において、ハッチが付与された項目が、更新された項目であることを示す。
図22は、優先度1のLV処理に対するLV情報テーブル401の記憶内容の更新例を示す説明図である。図22に示すLV情報テーブル401は、レコード2201−1〜3を記憶する。レコード2201−1〜3が示すLVは、表1300のレコード1301−1、または表1400のレコード1401−1に対応するものであり、全て優先度1である。優先度1のLVであるため、ファイルシステム「DATA−21」は、マウントしており、I/Oが可能である。そして、図22の(a)に示すLV情報テーブル401は、レコード2201−1〜3が示すLVに対する処理を行う前の状態を示す。優先度1のLVであるため、LVの状態は、全て「オンキャッシュ」となる。
図22の(b)では、レコード2201−1〜3が示すLVに対する処理の1段階目の状態を示す。図22の(b)のレコード2201−1が示すように、LV名「APWR01」について、階層制御サーバ201は、追記処理により、LV容量が750000[Byte]となり、状態を「オンキャッシュ」から「追記処理中」に更新する。
また、図22の(b)のレコード2201−2が示すように、LV名「READ01」について、階層制御サーバ201は、読込処理により、状態を「オンキャッシュ」から「読込処理中」に更新する。
また、図22の(b)のレコード2201−3が示すように、LV名「REOG01」について、階層制御サーバ201は、リオーガニゼーション処理により、格納先PVが「TVXQ00」から「TVXQ01」に変更する。また、図22の(b)のレコード2201−3が示すように、LV名「REOG01」について、階層制御サーバ201は、状態を「オンキャッシュ」から「リオーガニゼーション処理中」に更新する。
次に、図22の(c)では、レコード2201−1〜3が示すLVに対する処理の2段階目の状態を示す。図22の(c)のレコード2201−1が示すように、LV名「APWR01」について、階層制御サーバ201は、追記処理により、LV容量が1000000[Byte]となる。さらに、図22の(c)のレコード2201−1が示すように、LV名「APWR01」について、階層制御サーバ201は、追記処理後のマイグレーション処理により、状態を「追記処理中」から「マイグレーション処理中」に更新する。また、図22の(c)のレコード2201−2、3が示すように、LV名「READ01」とLV名「REOG01」について、階層制御サーバ201は、それぞれの処理が完了したため、状態を「オンキャッシュ」に更新する。
次に、図22の(d)では、レコード2201−1〜3が示すLVに対する処理の全てが完了した状態を示す。図22の(d)のレコード2201−1が示すように、LV名「APWR01」について、階層制御サーバ201は、マイグレーション処理が完了したため、状態を「オンキャッシュ」に更新する。
図23は、優先度2のLV処理に対するLV情報テーブル401の記憶内容の更新例を示す説明図である。図23に示すLV情報テーブル401は、レコード2301−1〜3を記憶する。レコード2301−1〜3が示すLVは、表1300のレコード1301−2、または表1400のレコード1401−2に対応するものであり、全て優先度2である。優先度2のLVであるため、ファイルシステム「DATA−21」は、マウントしており、I/Oが可能である。そして、図23の(a)に示すLV情報テーブル401は、レコード2301−1〜3が示すLVに対する処理を行う前の状態を示す。優先度2のLVであるため、LVの状態は、全て「オフキャッシュ」となる。
図23の(b)では、レコード2301−1〜3が示すLVに対する処理の1段階目の状態を示す。図23の(b)のレコード2301−1〜3が示すように、全てのLVについて、オフキャッシュであるから、階層制御サーバ201は、リコール処理により、状態を「オフキャッシュ」から「リコール処理中」に更新する。
リコール処理を行った後、階層制御サーバ201は、LVの状態がオンキャッシュとなるため、優先度1のLVと同様の処理を行う。従って、図23の(c)〜図23の(e)は、図22の(b)〜図22の(d)と同一のものとなるので、説明を省略する。
図24は、優先度3のLV処理に対するLV情報テーブル401の記憶内容の更新例を示す説明図である。図24に示すLV情報テーブル401は、レコード2401−1〜3を記憶する。レコード2401−1〜3が示すLVは、表1300のレコード1301−3、または表1400のレコード1401−3に対応するものであり、全て優先度3である。優先度3のLVであるため、ファイルシステム「DATA−11」は、アンマウントしており、I/Oが不可能である。そして、図24の(a)に示すLV情報テーブル401は、レコード2401−1〜3が示すLVに対する処理を行う前の状態を示す。優先度3のLVであるため、LVの状態は、全て「オフキャッシュ」となる。
図24の(b)では、レコード2401−1〜3が示すLVに対する処理の1段階目の状態を示す。図24の(b)のレコード2401−1〜3が示すように、階層制御サーバ201は、全てのLVの所属先を、アンマウントされたファイルシステム「DATA−11」からマウント中のファイルシステム「DATA−21」に変更する。また、図24の(b)のレコード2401−1〜3が示すように、変更先のファイルシステム「DATA−21」にはPVに対応するデータはないため、階層制御サーバ201は、リコール処理により、状態を「リコール処理中」に更新する。
リコール処理を行った後は、階層制御サーバ201は、LVの所属先のファイルシステムがマウントされたファイルシステムとなり、LVの状態がオンキャッシュとなるため、優先度1や優先度2のLVと同様の処理を行う。従って、図24の(c)〜図24の(e)は、図22の(b)〜図22の(d)と同一のものとなるので、説明を省略する。
図25は、優先度4のLV処理に対するLV情報テーブル401の記憶内容の更新例を示す説明図である。図25に示すLV情報テーブル401は、レコード2501−1〜3を記憶する。レコード2501−1〜3が示すLVは、表1300のレコード1301−4、または表1400のレコード1401−4に対応するものであり、全て優先度4である。優先度4のLVであるため、ファイルシステム「DATA−21」は、アンマウントしており、I/Oが不可能である。そして、図25の(a)に示すLV情報テーブル401は、レコード2501−1〜3が示すLVに対する処理を行う前の状態を示す。優先度4のLVであるため、LVの状態は、全て「オンキャッシュ」となる。
図25の(b)では、レコード2501−1〜3が示すLVに対する処理の1段階目の状態を示す。状態がオンキャッシュであったとしても、階層制御サーバ201は、アンマウントされたファイルシステムに対してはアクセスできない。そこで、図25の(b)のレコード2501−1〜3が示すように、階層制御サーバ201は、全てのLVの所属先を、アンマウントされたファイルシステム「DATA−21」からマウント中のファイルシステム「DATA−11」に変更する。そして、図25の(b)のレコード2501−1〜3が示すように、変更先のファイルシステム「DATA−11」にはPVに対応するデータはないため、階層制御サーバ201は、リコール処理により、状態を「リコール処理中」に更新する。
リコール処理を行った後は、階層制御サーバ201は、LVの所属先のファイルシステムがマウントされたファイルシステムとなり、LVの状態がオンキャッシュとなるため、優先度1〜3のLVと同様の処理を行う。従って、図25の(c)〜図25の(e)は、図22の(b)〜図22の(d)と同一のものとなるので、説明を省略する。
次に、図26、図27を用いて、ファーム適用前後におけるファイルシステム情報テーブル404と、ディスク情報テーブル402との記憶内容の更新例を説明する。
図26は、ファーム適用前後におけるファイルシステム情報テーブル404の記憶内容の更新例を示す説明図である。図26に示すファイルシステム情報テーブル404は、レコード2601−1〜5を記憶する。ここで、図26において、ファーム適用を先行するRAIDグループであるグループAには、RAID#DATA−1が所属しており、I/Oを先行するRAIDグループであるグループBには、RAID#DATA−2が属するものとする。図26の(a)に示すファイルシステム情報テーブル404は、ファーム適用前の状態を示す。
図26の(b)では、前半部の途中における状態を示す。図26の(b)のレコード2601−2、3が示すように、階層制御サーバ201は、グループAに属するRAID#DATA−1のファイルシステム「DATA−11」と、「DATA−12」とをアンマウントする。図26の(c)では、前半部の完了時点の状態を示す。図26の(c)のレコード2601−2、3が示すように、階層制御サーバ201は、グループAに属するRAID#DATA−1のファイルシステム「DATA−11」と、「DATA−12」をマウントする。
図26の(d)では、後半部の途中における状態を示す。図26の(d)のレコード2601−4、5が示すように、階層制御サーバ201は、グループBに属するRAID#DATA−2のファイルシステム「DATA−21」と、「DATA−22」をアンマウントする。図26の(e)では、後半部の完了時点の状態を示す。図26の(e)のレコード2601−4、5が示すように、階層制御サーバ201は、グループBに属するRAID#DATA−2のファイルシステム「DATA−21」と、「DATA−22」とをマウントする。
図27は、ファーム適用前後におけるディスク情報テーブル402の記憶内容の更新例を示す説明図である。図27に示すディスク情報テーブル402は、レコード2701−1〜7を記憶する。ここで、図27において、ファーム適用対象のディスクをDisk#2〜06とする。また、適用するファーム版数をFA99とする。また、ファーム適用を先行するRAIDグループであるグループAには、RAID#DATA−1が所属しており、I/Oを先行するRAIDグループであるグループBには、RAID#DATA−2が属するものとする。図27の(a)に示すディスク情報テーブル402は、ファーム適用前の状態を示す。
図27の(b)では、前半部の完了時点の状態を示す。図27の(b)のレコード2701−3、4が示すように、階層制御サーバ201は、Disk#02、03のファーム適用を完了する。次に、図27の(c)では、後半部の完了時点の状態を示す。図27の(c)のレコード2701−5〜7が示すように、階層制御サーバ201は、Disk#04〜06のファーム適用を完了する。
次に、階層制御サーバ201が行う処理を示すフローチャートを、図28〜図40を用いて説明する。
図28は、RAIDグループ分類処理手順の一例を示すフローチャート(その1)である。また、図29は、RAIDグループ分類処理手順の一例を示すフローチャート(その2)である。RAIDグループ分類処理は、複数のRAIDグループを、ファーム適用を先行するグループAと、ホスト装置211からのI/Oを先行するグループBとに分類する処理である。
階層制御サーバ201は、ディスクに適用するファームについて、適用可能ベンダNVendor、適用版数Nverを指定する(ステップS2801)。次に、階層制御サーバ201は、ファーム適用対象ディスクの、開発ベンダVendor、稼働版数Ver、所属RAIDグループRdGrを取得する(ステップS2802)。そして、階層制御サーバ201は、NvendorをVendor、Nver≠Ver、RdGr≠RAID#CNF、適用モード=非活性を全て満たすユーザ領域のRAIDグループを抽出する(ステップS2803)。ここで、適用モードとは、階層制御サーバ201がディスクアレイ装置202に発行するコマンドのことである。そして、非活性というモードは、アンマウントして、I/Oを止めてファーム適用することを示す。一方、活性というモードは、マウントしたままI/Oを止めずにファーム適用することを示す。
次に、階層制御サーバ201は、抽出したファーム適用対象のRAIDグループの数をNに設定する(ステップS2804)。そして、階層制御サーバ201は、1ディスクあたりのファーム適用にかかる時間をTfwに設定する(ステップS2805)。
次に、階層制御サーバ201は、ホスト装置211からの追記処理および読込処理、リオーガニゼーション処理、リコール処理対象となるLVを抽出する(ステップS2901)。そして、階層制御サーバ201は、抽出した全てのLVを対象に、属するRAIDグループLVrdごとのオンキャッシュのLVの合計処理時間LVtmを算出する(ステップS2902)。次に、階層制御サーバ201は、LVrdごとのLVtmを、LVstm_1、…、LVstm_n、…、LVstm_Nに降順に代入する(ステップS2903)。そして、階層制御サーバ201は、kを1,tm_sum=0に設定する(ステップS2904)。
次に、階層制御サーバ201は、k番目に大きいLVstm_kを、tm_sumに加算する(ステップS2905)。そして、階層制御サーバ201は、kがN−2以下であり、かつtm_sumがTfwより小さいか否かを判断する(ステップS2906)。kがN−2以下であり、かつtm_sumがTfwより小さい場合(ステップS2906:Yes)、階層制御サーバ201は、kをインクリメントする(ステップS2907)。そして、階層制御サーバ201は、ステップS2905の処理に移行する。
一方、kがN−2より大きい、またはtm_sumがTfw以上である場合(ステップS2906:No)、階層制御サーバ201は、RAIDグループ分類処理を終了する。ステップS2906:Noにより、階層制御サーバ201は、1〜k番目のRAIDグループをグループBに分類し、k+1〜N番目のRAIDグループをグループAに分類することになる。RAIDグループ分類処理を実行することにより、階層制御サーバ201は、複数のRAIDグループを、グループAと、グループBとに分類することができる。
図30は、ファーム適用処理手順の一例を示すフローチャート(その1)である。ファーム適用処理は、RAIDグループにファーム適用する処理である。また、ファーム適用処理は、図28と図29とで示したRAIDグループ分類処理の後で行われる。
階層制御サーバ201は、グループAとして、k+1〜N番目のRAIDグループに属するファイルシステムを全てアンマウントする(ステップS3001)。次に、階層制御サーバ201は、k+1〜N番目のRAIDグループへファーム適用開始する(ステップS3002)。そして、階層制御サーバ201は、lに1を代入するとともに、flagに1を代入する(ステップS3003)。
次に、階層制御サーバ201は、k+1〜N番目のRAIDグループへのファーム適用が完了したか否かを判断する(ステップS3004)。k+1〜N番目のRAIDグループへのファーム適用が完了していない場合(ステップS3004:No)、階層制御サーバ201は、flagの値をチェックする(ステップS3005)。
flagの値が1である場合(ステップS3005:1)、階層制御サーバ201は、前半部における優先度1のLV処理を実行する(ステップS3006)。前半部における優先度1のLV処理については、図31で説明する。また、flagの値が2である場合(ステップS3005:2)、階層制御サーバ201は、前半部における優先度2のLV処理を実行する(ステップS3007)。前半部における優先度2のLV処理については、図32で説明する。
また、flagの値が3である場合(ステップS3005:3)、階層制御サーバ201は、前半部における優先度3のLV処理を実行する(ステップS3008)。前半部における優先度3のLV処理については、図33で説明する。また、flagの値が4である場合(ステップS3005:4)、階層制御サーバ201は、前半部における優先度4のLV処理を実行する(ステップS3009)。前半部における優先度4のLV処理については、図34で説明する。
ステップS3006〜S3009のうちのいずれかの処理終了後、または、flagの値が5である場合(ステップS3005:5)、階層制御サーバ201は、ステップS3004の処理に移行する。
一方、k+1〜N番目のRAIDグループへのファーム適用が完了した場合(ステップS3004:Yes)、階層制御サーバ201は、k+1〜N番目のRAIDグループに属するファイルシステムを全てマウントする(ステップS3010)。ステップS3010の処理実行後については、図35で説明する。
図31は、前半部における優先度1のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオンキャッシュLVに対する処理を実行する(ステップS3101)。次に、階層制御サーバ201は、lがkより小さいか否かを判断する(ステップS3102)。lがkより小さい場合(ステップS3102:Yes)、階層制御サーバ201は、lに1を加える(ステップS3103)。一方、lがk以上である場合(ステップS3102:No)、階層制御サーバ201は、flagに2を代入するとともに、lに1を代入する(ステップS3104)。
ステップS3103、またはS3104の処理終了後、階層制御サーバ201は、前半部における優先度1のLV処理を終了する。前半部における優先度1のLV処理を実行することにより、階層制御サーバ201は、グループBに属する、すなわち、1〜k番目のRAIDグループに属するオンキャッシュLVに対する処理を実行することができる。
図32は、前半部における優先度2のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオフキャッシュLVに対する処理を実行する(ステップS3201)。次に、階層制御サーバ201は、lがkより小さいか否かを判断する(ステップS3202)。lがkより小さい場合(ステップS3202:Yes)、階層制御サーバ201は、lに1を加える(ステップS3203)。一方、lがk以上である場合(ステップS3202:No)、階層制御サーバ201は、flagに3を代入するとともに、lに1を代入する(ステップS3204)。
ステップS3203、またはS3204の処理終了後、階層制御サーバ201は、前半部における優先度2のLV処理を終了する。前半部における優先度2のLV処理を実行することにより、階層制御サーバ201は、グループBに属する、すなわち、1〜k番目のRAIDグループに属するオフキャッシュLVに対する処理を実行することができる。
図33は、前半部における優先度3のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、k+l番目のRAIDグループに属するオフキャッシュLVに対する処理を実行する(ステップS3301)。ステップS3301の処理について、階層制御サーバ201は、リコール処理のリコール先を、ファーム適用中でないRAIDグループのいずれかとする。
次に、階層制御サーバ201は、lがN−kより小さいか否かを判断する(ステップS3302)。lがN−kより小さい場合(ステップS3302:Yes)、階層制御サーバ201は、lに1を加える(ステップS3303)。一方、lがN−k以上である場合(ステップS3302:No)、階層制御サーバ201は、flagに4を代入するとともに、lに1を代入する(ステップS3304)。
ステップS3303、またはS3304の処理終了後、階層制御サーバ201は、前半部における優先度3のLV処理を終了する。前半部における優先度3のLV処理を実行することにより、階層制御サーバ201は、グループAに属する、すなわち、k+1〜N番目のRAIDグループに属するオフキャッシュLVに対する処理を実行することができる。
図34は、前半部における優先度4のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、k+l番目のRAIDグループに属するオンキャッシュLVに対する処理を実行する(ステップS3401)。ステップS3401の処理について、階層制御サーバ201は、リコール処理のリコール先を、ファーム適用中でないRAIDグループのいずれかとする。
次に、階層制御サーバ201は、lがN−kより小さいか否かを判断する(ステップS3402)。lがN−kより小さい場合(ステップS3402:Yes)、階層制御サーバ201は、lに1を加える(ステップS3403)。一方、lがN−k以上である場合(ステップS3402:No)、階層制御サーバ201は、flagに5を代入する(ステップS3404)。
ステップS3403、またはS3404の処理終了後、階層制御サーバ201は、前半部における優先度4のLV処理を終了する。前半部における優先度4のLV処理を実行することにより、階層制御サーバ201は、グループAに属する、すなわち、k+1〜N番目のRAIDグループに属するオンキャッシュLVに対する処理を実行することができる。
図35は、ファーム適用処理手順の一例を示すフローチャート(その2)である。階層制御サーバ201は、1〜k番目のRAIDグループに属するファイルシステムを全てアンマウントする(ステップS3501)。次に、階層制御サーバ201は、1〜k番目のRAIDグループへファーム適用開始する(ステップS3502)。そして、階層制御サーバ201は、lにk+1を代入し、flagに1を代入する(ステップS3503)。
次に、階層制御サーバ201は、1〜k番目のRAIDグループへのファーム適用が完了したか否かを判断する(ステップS3504)。1〜k番目のRAIDグループへのファーム適用が完了していない場合(ステップS3504:No)、階層制御サーバ201は、flagの値をチェックする(ステップS3505)。
flagの値が1である場合(ステップS3505:1)、階層制御サーバ201は、後半部における優先度1のLV処理を実行する(ステップS3506)。後半部における優先度1のLV処理については、図36で説明する。また、flagの値が2である場合(ステップS3505:2)、階層制御サーバ201は、後半部における優先度2のLV処理を実行する(ステップS3507)。後半部における優先度2のLV処理については、図37で説明する。
また、flagの値が3である場合(ステップS3505:3)、階層制御サーバ201は、後半部における優先度3のLV処理を実行する(ステップS3508)。後半部における優先度3のLV処理については、図38で説明する。また、flagの値が4である場合(ステップS3505:4)、階層制御サーバ201は、後半部における優先度4のLV処理を実行する(ステップS3509)。後半部における優先度4のLV処理については、図39で説明する。
ステップS3506〜S3509のうちのいずれかの処理終了後、または、flagの値が5である場合(ステップS3505:5)、階層制御サーバ201は、ステップS3504の処理に移行する。
一方、1〜k番目のRAIDグループへのファーム適用が完了した場合(ステップS3504:Yes)、階層制御サーバ201は、1〜k番目のRAIDグループに属するファイルシステムを全てマウントする(ステップS3510)。次に、階層制御サーバ201は、未処理のLVに対する処理を実行する(ステップS3511)。ステップS3511の処理終了後、階層制御サーバ201は、ファーム適用処理を終了する。ファーム適用処理を実行することにより、階層制御サーバ201は、1〜N番目のRAIDグループへのファーム適用を行うことができるとともに、ファーム適用を行っている間にもテープライブラリ装置203に対する処理を続行することができる。
図36は、後半部における優先度1のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオンキャッシュLVに対する処理を実行する(ステップS3601)。次に、階層制御サーバ201は、lがNより小さいか否かを判断する(ステップS3602)。lがNより小さい場合(ステップS3602:Yes)、階層制御サーバ201は、lに1を加える(ステップS3603)。一方、lがN以上である場合(ステップS3602:No)、階層制御サーバ201は、flagに2を代入するとともに、lにk+1を代入する(ステップS3604)。
ステップS3603、またはS3604の処理終了後、階層制御サーバ201は、後半部における優先度1のLV処理を終了する。後半部における優先度1のLV処理を実行することにより、階層制御サーバ201は、グループAに属する、すなわち、k+1〜N番目のRAIDグループに属するオンキャッシュLVに対する処理を実行することができる。
図37は、後半部における優先度2のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオフキャッシュLVに対する処理を実行する(ステップS3701)。次に、階層制御サーバ201は、lがNより小さいか否かを判断する(ステップS3702)。lがNより小さい場合(ステップS3702:Yes)、階層制御サーバ201は、lに1を加える(ステップS3703)。一方、lがN以上である場合(ステップS3702:No)、階層制御サーバ201は、flagに3を代入するとともに、lに1を代入する(ステップS3704)。
ステップS3703、またはS3704の処理終了後、階層制御サーバ201は、後半部における優先度2のLV処理を終了する。後半部における優先度2のLV処理を実行することにより、階層制御サーバ201は、グループAに属する、すなわち、k+1〜N番目のRAIDグループに属するオフキャッシュLVに対する処理を実行することができる。
図38は、後半部における優先度3のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオフキャッシュLVに対する処理を実行する(ステップS3801)。ステップS3801の処理について、階層制御サーバ201は、リコール処理のリコール先を、ファーム適用中でないRAIDグループのいずれかとする。
次に、階層制御サーバ201は、lがkより小さいか否かを判断する(ステップS3802)。lがkより小さい場合(ステップS3802:Yes)、階層制御サーバ201は、lに1を加える(ステップS3803)。一方、lがk以上である場合(ステップS3802:No)、階層制御サーバ201は、flagに4を代入するとともに、lに1を代入する(ステップS3804)。
ステップS3803、またはS3804の処理終了後、階層制御サーバ201は、後半部における優先度3のLV処理を終了する。後半部における優先度3のLV処理を実行することにより、階層制御サーバ201は、グループBに属する、すなわち、1〜k番目のRAIDグループに属するオフキャッシュLVに対する処理を実行することができる。
図39は、後半部における優先度4のLV処理手順の一例を示すフローチャートである。階層制御サーバ201は、l番目のRAIDグループに属するオンキャッシュLVに対する処理を実行する(ステップS3901)。ステップS3901の処理について、階層制御サーバ201は、リコール処理のリコール先を、ファーム適用中でないRAIDグループのいずれかとする。
次に、階層制御サーバ201は、lがkより小さいか否かを判断する(ステップS3902)。lがkより小さい場合(ステップS3902:Yes)、階層制御サーバ201は、lに1を加える(ステップS3903)。一方、lがk以上である場合(ステップS3902:No)、階層制御サーバ201は、flagに5を代入する(ステップS3904)。
ステップS3903、またはS3904の処理終了後、階層制御サーバ201は、後半部における優先度4のLV処理を終了する。後半部における優先度4のLV処理を実行することにより、階層制御サーバ201は、グループBに属する、すなわち、1〜k番目のRAIDグループに属するオンキャッシュLVに対する処理を実行することができる。
図40は、ファーム適用中のLV処理手順の一例を示すフローチャートである。ファーム適用中のLV処理は、ファーム適用中にLVを実行する処理である。階層制御サーバ201は、LVがオンキャッシュ、かつ属するRAIDグループがファーム適用中でないか否かを判断する(ステップS4001)。LVがオフキャッシュ、または属するRAIDグループがファーム適用中である場合(ステップS4001:No)、階層制御サーバ201は、ファーム適用中でないRAIDグループのファイルシステムへLVをリコールする(ステップS4002)。ここで、LVがオフキャッシュである場合には、階層制御サーバ201は、LVが属するファイルシステムに対してLVをリコールすればよい。
ステップS4002の処理終了後、または、LVがオンキャッシュ、かつ属するRAIDグループがファーム適用中でない場合(ステップS4001:Yes)、階層制御サーバ201は、LVに対する処理種別が次に示す処理のいずれに一致するかを判断する(ステップS4003)。次に示す処理は、追記処理と、読込処理と、リオーガニゼーション処理とである。
LVに対する処理種別が追記処理である場合(ステップS4003:追記処理)、階層制御サーバ201は、LVに対するデータの追記処理を実行する(ステップS4004)。また、LVに対する処理種別が読込処理である場合(ステップS4003:読込処理)、階層制御サーバ201は、LVに対するデータの読込処理を実行する(ステップS4005)。また、LVに対する処理種別がリオーガニゼーション処理である場合(ステップS4003:リオーガニゼーション処理)、階層制御サーバ201は、LVに対するデータのリオーガニゼーション処理を実行する(ステップS4006)。
ステップS4004〜ステップS4006のうちのいずれかの処理終了後、階層制御サーバ201は、ファーム適用中のLV処理を終了する。ファーム適用中のLV処理を実行することにより、階層制御サーバ201は、ファーム適用中であっても、LVに対する処理を実行することができる。
以上説明したように、階層制御サーバ201によれば、テープライブラリ装置203のキャッシュとなるディスクアレイ装置202に含まれる複数のRAIDグループのファーム適用を、グループAとグループBとに分類し、並列して処理する。これにより、階層制御サーバ201は、グループAに属するRAIDグループのオンキャッシュLVに対するデータでもキャッシュの効果を発揮できるため、ファーム適用中の仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。また、仮想テープライブラリシステム200は、ファーム適用中であっても、ホスト装置211からのアクセスを継続することができる。
また、階層制御サーバ201によれば、前半部では、グループBに属するRAIDグループのオンキャッシュLVに対する処理を、グループBに属するRAIDグループのオンキャッシュLV以外のLVに対する処理より先に実行してもよい。これにより、階層制御サーバ201は、グループBのファイルシステムがマウントしている間にグループBに属するRAIDグループのオンキャッシュLVに対する処理を可能な限り実行できる。オンキャッシュLVであればリコール処理が発生しないため、階層制御サーバ201は、リコール処理を可能な限り発生させないようにして、仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。
同様の効果を後半部で得るために、階層制御サーバ201は、後半部では、グループAに属するRAIDグループのオンキャッシュLVに対する処理を、グループAに属するRAIDグループのオンキャッシュLV以外のLVに対する処理より先に実行してもよい。
また、階層制御サーバ201によれば、前半部では、グループAに属するRAIDグループのオンキャッシュLV以外のLVに対する処理を、グループAに属するRAIDグループのオンキャッシュLVに対する処理より先に実行してもよい。グループAに属するRAIDグループのオンキャッシュLVは、前半部ではアンマウントされておりアクセスできないものの、後半部になればアクセスできるようになり、リコール処理を行わなくてよくなる。従って、階層制御サーバ201は、グループAに属するRAIDグループのオンキャッシュLV以外のLVに対する処理を先に実行しリコール処理を発生させないようにして、仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。
同様の効果を後半部で得るために、階層制御サーバ201は、後半部では、グループBに属するRAIDグループのオンキャッシュLV以外のLVに対する処理を、グループBに属するRAIDグループのオンキャッシュLVに対する処理より先に実行してもよい。グループBに属するRAIDグループのオンキャッシュLVは、後半部ではアンマウントされておりアクセスできないものの、後半部のファーム適用が完了すればアクセスできるようになり、リコール処理を行わなくてよくなるためである。
また、階層制御サーバ201によれば、前半部では、グループBに属するRAIDグループのLVに対する処理を、グループAに属するRAIDグループのLVに対する処理より先に実行してもよい。グループAに属するRAIDグループのLVに対する処理を実行しようとすると、階層制御サーバ201は、RAID#CNFの更新を行うことになる。従って、階層制御サーバ201は、グループBに属するRAIDグループのLVに対する処理を先に実行して、仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。
同様の効果を後半部で得るために、階層制御サーバ201は、後半部では、グループAに属するRAIDグループのLVに対する処理を、グループBに属するRAIDグループのLVに対する処理より先に実行してもよい。
また、階層制御サーバ201によれば、前半部で、グループAに属するRAIDグループのLVに対する処理を実行することに応じて、処理対象のLVをグループBに属するRAIDグループのLVとなるようにLV情報テーブル401を更新してもよい。これにより、階層制御サーバ201は、アンマウントされておりアクセスできないLVに対してもキャッシュの効果を発揮することができて、仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。
同様の効果を後半部で得るためには、グループAが行う処理とグループBが行う処理とを入れ替えればよい。具体的には、階層制御サーバ201は、後半部で、グループBに属するRAIDグループのLVに対する処理を実行することに応じて、処理対象のLVをグループAに属するRAIDグループのLVとなるようにLV情報テーブル401を更新してもよい。
また、階層制御サーバ201によれば、RAIDグループのLVに対する処理にかかる時間と、RAIDグループのファーム適用にかかる時間とに基づいて、グループAとグループBとを分類してもよい。ここで、前半部にかかる時間は、グループAに属するRAIDグループのファーム適用にかかる時間となる。従って、グループBに属するRAIDグループのLVに対する処理にかかる時間が、前半部にかかる時間以上となるようにグループ分けすることで、階層制御サーバ201は、優先度1となるオンキャッシュLVに対する処理の数を最大にすることができる。
また、階層制御サーバ201によれば、前半部が終わった後、後半部には、グループBに属するファーム適用の間には、グループAに属するRAIDグループを用いてテープライブラリ装置203にアクセスしてもよい。これにより、階層制御サーバ201は、後半部であっても、ファーム適用中の仮想テープライブラリシステム200のアクセス性能の低下を抑制することができる。
また、ストレージシステム100は、第1種別のストレージ装置102を、テープライブラリ装置とし、第2種別のストレージ装置103をHDDとしてもよい。これにより、ストレージシステム100は、仮想テープライブラリシステム200のように、仮想的なテープライブラリのサービスを提供するシステムに適用することができる。
なお、本実施の形態で説明した階層制御サーバ201が実行する方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1種別のストレージ装置が記憶するデータを一時的に記憶する第2種別の複数のストレージ装置を、第1グループと第2グループとに分類し、
分類した前記第1グループに属するストレージ装置のファームウェアを更新する間には、前記第2グループに属するストレージ装置を用いて前記第1種別のストレージ装置にアクセスする、
制御部を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記第1グループに属するストレージ装置のファームウェアを更新する間には、前記第2グループに属するストレージ装置が記憶するデータに対する処理を、前記第2グループに属するストレージ装置が記憶しないデータに対する処理より先に実行することを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記第1グループに属するストレージ装置のファームウェアを更新する間には、前記第1グループに属するストレージ装置が記憶しないデータに対する処理を、前記第1グループに属するストレージ装置が記憶するデータに対する処理より先に実行することを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記複数のストレージ装置の各々のストレージ装置と前記第1種別のストレージ装置が記憶するデータの各々を特定する情報とを対応付けて記憶する記憶部にアクセス可能であり、
前記制御部は、
前記第1グループに属するストレージ装置のファームウェアを更新する間には、前記記憶部を参照して、前記第2グループに属するストレージ装置に対応付けられたデータに対する処理を、前記第1グループに属するストレージ装置に対応付けられたデータに対する処理より先に実行することを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。
(付記5)前記制御部は、
前記第1グループに属するストレージ装置のファームウェアを更新する間に、前記第1グループに属するストレージ装置に対応付けられたデータに対する処理を実行することに応じて、前記第1グループに属するストレージ装置に対応付けられたデータを前記第2グループに属するストレージ装置に対応付けるように前記記憶部を更新することを特徴とする付記4に記載のストレージ制御装置。
(付記6)前記制御部は、
前記複数のストレージ装置の各々のストレージ装置が記憶するデータに対する処理にかかる時間と、前記各々のストレージ装置のファームウェアの更新にかかる時間とに基づいて、第1グループと第2グループとに分類することを特徴とする付記1〜5のいずれか一つに記載のストレージ制御装置。
(付記7)前記制御部は、
前記第1グループに属するストレージ装置のファームウェアの更新が完了した後、前記第2グループに属するストレージ装置のファームウェアを更新する間には、前記第1グループに属するストレージ装置を用いて前記第1種別のストレージ装置にアクセスすることを特徴とする付記1〜6のいずれか一つに記載のストレージ制御装置。
(付記8)前記第1種別のストレージ装置は、磁気テープを用いてデータを記憶する装置であり、前記複数のストレージ装置の各々のストレージ装置は、磁気ディスクを用いてデータを記憶する装置であることを特徴とする付記1〜7のいずれか一つに記載のストレージ制御装置。
(付記9)コンピュータに、
第1種別のストレージ装置が記憶するデータを一時的に記憶する第2種別の複数のストレージ装置を、第1グループと第2グループとに分類し、
分類した前記第1グループに属するストレージ装置のファームウェアを更新する間には、前記第2グループに属するストレージ装置を用いて前記第1種別のストレージ装置にアクセスする、
処理を実行させることを特徴とするストレージ制御プログラム。