本発明は、上述したように動的に割り当てが行われ、かつ、途中のデータページから書き込みが行われると、書き込まれたデータページ以降のデータページを解放する動的割り当て方式のデータ管理を行う仮想テープ装置を想定している。
<実施の形態1>
本発明に係る第1の実施の形態について、図面を参照して詳細に説明する。
(仮想テープ装置の構成)
図4は、本発明の一実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。図4に示す通り、仮想テープ装置1は、コマンド制御部10、仮想テープデータ記憶部30、データ管理情報記憶部40および仮想テープ制御部100を備えている。仮想テープ装置1は、例えば、磁気テープ装置をエミュレーションした装置であり、上位装置8のデータを仮想テープに記憶するものである。
コマンド制御部10は、上位装置8からのコマンドを受け取り、各コマンドの処理を行う。また、コマンド制御部10は、上記コマンドに付随するデータの送受信を行う。コマンド制御部10は、受信したコマンドまたは/およびデータを、仮想テープ制御部100に供給する。
仮想テープデータ記憶部30は、仮想テープに記憶されたデータを記憶する手段である。仮想テープには、1または複数のデータページが動的に割り当てられている。ここで、データページとは、記憶領域を一定のサイズ(例えば、1MB)に分割した領域の単位である。本実施の形態においては、記憶領域は10個のデータページに分割されているとするが、本発明はこれに限定されるものではない。なお、個々のデータページは、#1から順に割り当てたデータページ番号(データページ識別子)で識別する。
なお、本実施の形態に係る仮想テープ装置1では、記憶領域が内蔵されている構成であってもよいし、仮想テープ装置1に外付けされる構成であってもよい。
データ管理情報記憶部40は、各仮想テープの情報と、各データページの情報およびその接続関係に関する情報を記録している。具体的には、データ管理情報記憶部40は、仮想テープ管理情報50と、未割当データページ管理情報60と、データページ管理情報70とを記録している。データ管理情報記憶部40に記録された各管理情報については、図面を変えて詳細に説明する。
なお、仮想テープデータ記憶部30およびデータ管理情報記憶部40は、別個の構成として説明したが、これらは、同じ記憶手段で実現してもよい。本実施の形態では、ディスクアレイなどで実現される記憶装置に、仮想テープデータ記憶部30およびデータ管理情報記憶部40が含まれる構成として説明するが、本発明はこれに限定されるものではない。
仮想テープ制御部100は、仮想テープ装置1の全体を制御する。具体的には、仮想テープ制御部100は、仮想テープデータ記憶部30へのデータの記録およびデータ管理情報記憶部40の各管理情報の管理などを行う。図4に示す通り、仮想テープ制御部100は、データページ割当部110、管理情報更新部120、最終割当情報取得部130、判定部140およびデータ消去部150を備えている。
データページ割当部110は、1または複数のデータページを仮想テープに動的に割り当てる手段である。具体的には、データページ割当部110は、プールの始端ポインタが指すデータページを割当対象として決定する。また、データページ割当部110は、割り当てを終了する(つまり、仮想テープから解放する)データページを解放対象データページとして決定する。そして、データページ割当部110は、割当対象または解放対象として決定したデータページを示す情報を管理情報更新部120に供給する。
管理情報更新部120は、データ管理情報記憶部40に格納された各管理情報を更新する手段である。管理情報更新部120が更新する内容については、後述するフローチャート内で詳細に説明する。
最終割当情報取得部130は、データページ管理情報70から、各データページのデータページ番号に関連付けられた情報であって、当該データページに何れの仮想テープのデータが残存しているかを示す情報を取得する手段である。具体的には、最終割当情報取得部130は、データページ管理情報70から最終割り当て仮想テープIDを取得する。最終割当情報取得部130は、取得した最終割り当て仮想テープIDを判定部140に供給する。
判定部140は、コマンド制御部10が上位装置8から受け取ったコマンドに基づいて、コマンド制御部10から削除対象の仮想テープを示す仮想テープIDを取得し、当該仮想テープIDと最終割当情報取得部130から供給された最終割り当て仮想テープIDとが一致するか否かを判定する手段である。判定部140は、判定結果をデータ消去部150および最終割当情報取得部130に供給する。
データ消去部150は、判定部140から供給された判定結果に基づいて、仮想テープデータ記憶部30に記憶された仮想テープのデータであって、削除対象の仮想テープのデータを消去する。データ消去部150は、データの消去が完了したことを示す通知を管理情報更新部120に通知する。
図5は、本実施の形態に係る仮想テープ装置1のハードウェア構成の一例を示す図である。図5に示すように、仮想テープ装置1は、CPU11、通信I/F(通信インターフェース)12、メモリ13、および、プログラムを格納するハードディスク等の記憶装置14を含み、夫々、システムバス9を介して接続している。
CPU11は、例えば、本実施の形態のコマンド制御部10および仮想テープ制御部100の一部として機能し、記憶装置14からメモリ13にプログラムやデータを読み出して、プログラムに基づいて各種の処理を実行することによって、本実施の形態に係る仮想テープ装置1を制御する。
通信I/F12は、上位装置8と通信を行うインターフェースである。通信I/F12は、コマンド制御部10の一部として機能する。
記憶装置14は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記憶装置14の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶している。また、プログラムは通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。記憶装置14は、例えば、本実施の形態における仮想テープデータ記憶部30およびデータ管理情報記憶部40として機能する。
以上のように、本実施の形態に係る仮想テープ装置1は、図5に示されるハードウェア構成によって実現される。但し、仮想テープ装置1が備える各部の実現手段は特に限定されない。
(各管理情報について)
次に、図6から図8を参照して、データ管理情報記憶部40に格納されている各管理情報について説明を行う。
図6は、データ管理情報記憶部40に格納されている仮想テープ管理情報50の一例を示す図である。図6に示す通り、仮想テープ管理情報50は、仮想テープインデックス501、始端ポインタ502および終端ポインタ503を含んでいる。
仮想テープインデックス501は、仮想テープを識別するための識別番号(仮想テープID(仮想テープ識別子))をインデックスにしたものである。データページの始端ポインタ502は、仮想テープの割当リストの最初の(始端の)データページを示す情報である。終端ポインタ503は、仮想テープの割当リストの最後の(終端の)データページを示す情報である。以降、データページを単にページとも呼ぶ。
なお、各仮想テープの割当リストは、データ形式で、例えば、データ管理情報記憶部40に格納されていてもよいし、各管理情報を参照することにより作成されるものであってもよい。
仮想テープ制御部100は、仮想テープ管理情報50にて、仮想テープインデックス501の欄に記載された仮想テープIDで示される仮想テープがどのデータページで構成されているかを、データページの始端ポインタ502と終端ポインタ503とを用いて管理している。具体的には、各仮想テープにデータページが割り当てられているときは、仮想テープ制御部100は、始端ポインタ502および終端ポインタ503として、割り当てられたデータページのデータページ番号を、仮想テープIDに関連付けて管理している。一方、各仮想テープにデータページが割り当てられていないときは、仮想テープ制御部100は、始端ポインタ502および終端ポインタ503として、データページ番号の代わりに、データページが割り当てられていないことを示す情報を、仮想テープIDに関連付けて管理している。なお、本実施の形態において、データページが割り当てられていないことを示す情報として、データページが割り当てられていない仮想テープの仮想テープIDを記録する構成を例に説明を行うが、本発明はこれに限定されるものではない。
図6に示す仮想テープ管理情報50において、仮想テープIDが「テープ#1」の仮想テープには、最初のデータページがデータページ番号「ページ#1」で示されるデータページ#1であり、最後のデータページがデータページ番号「ページ#4」で示されるデータページ#4である複数のデータページが割り当てられている。また、仮想テープIDが「テープ#2」の仮想テープ#2には、データページが割り当てられていない。これは、仮想テープ#2の始端ポインタ502および終端ポインタ503が、当該仮想テープIDの「テープ#2」を示していることからわかる。
図7は、データ管理情報記憶部40に格納されている未割当データページ管理情報60の一例を示す図である。図7に示す通り、未割当データページ管理情報60は、未割当データページの要素601、始端ポインタ602および終端ポインタ603を含んでいる。未割当データページの要素601とは、未割当のデータページがリンクされているリストを示す情報であり、例えば、ストレージプール604である。
図7に示す未割当データページ管理情報60では、最初のデータページがデータページ#2であり、最後のデータページがデータページ#10である複数のデータページがプールにリンクされていることがわかる。
図8は、データ管理情報記憶部40に格納されているデータページ管理情報70の一例を示す図である。図8に示す通り、データページ管理情報70は、データページインデックス701、前方ポインタ702、後方ポインタ703および最終割り当て仮想テープID704を含んでいる。
データページインデックス701は、データページを識別するためのデータページ番号をインデックスにしたものである。本実施の形態においては、記憶領域は、#1〜#10の10個のデータページに分割されているとして説明を行う。そのため、データページインデックス701には10個のデータページの夫々を示す番号であるページ#1〜#10が示されている。
各データページ番号には、前方ポインタ702、後方ポインタ703および最終割り当て仮想テープID704が関連付けられている。前方ポインタ702は、割当リストにおいて、データページの前方に位置する要素を示している。同様に、後方ポインタ703は、割当リストにおいて、データページの後方に位置する要素を示している。
前方ポインタ702および後方ポインタ703について、具体的に説明する。前方ポインタ702および後方ポインタ703は、それぞれ、「データページ番号」、「仮想テープID」および「プール」のいずれかの値を取る。
前方ポインタ702がデータページ番号である場合、当該データページ番号で示されるデータページが、割当リストにおいて、当該前方ポインタ702を有するデータページの前方にあることを示している。同様に、後方ポインタ703がデータページ番号である場合、当該データページ番号で示されるデータページが、割当リストにおいて、当該後方ポインタ703を有するデータページの後方にあることを示している。
前方ポインタ702が仮想テープIDである場合、データページが当該仮想テープIDで示される仮想テープの割当リストの先頭にリンクされていることを示している。つまり、当該データページが、仮想テープIDで示される仮想テープの割当リストの最初のデータページであることを示している。同様に、後方ポインタ703が仮想テープIDである場合、データページが当該仮想テープIDで示される仮想テープの割当リストの最後尾にリンクされていることを示している。つまり、当該データページが、仮想テープIDで示される仮想テープの割当リストの最後のデータページであることを示している。
なお、本実施の形態においては、割当リストは、前方ポインタ702が仮想テープIDであるデータページと、後方ポインタ703が仮想テープIDであるデータページとを端点とする双方向リストであるとするが本発明はこれに限定されるものではなく片方向リストであってもよい。
また、前方ポインタ702がプールである場合、データページがプールの先頭にリンクされていることを示している。同様に、後方ポインタ703がプールである場合、データページがプールの最後尾にリンクされていることを示している。なお、プールも、上記仮想テープの割当リストと同様に、双方向リストであってもよいし、片方向リストであってもよい。
最終割り当て仮想テープID704(最終割り当て仮想テープ識別子)には、最終割り当て仮想テープ情報として、各データページがデータページ割当部110によって最後に割り当てられた仮想テープを示す仮想テープIDが示されている。また、各データページが仮想テープに、過去に割り当てられていない場合は、「無し」が示されている。なお、各データページが仮想テープに過去に割り当てられていない場合に、最終割り当て仮想テープID704に記録されている情報は、「無し」に限定されず、仮想テープが過去に割り当てられていないことを示す情報であればよい。
図8において、「ページ#1」で示されるデータページ(データページ#1)は、仮想テープ#1の割当リストの先頭にリンクされている。また、当該割当リストにおいて、データページ#1の後方にデータページ#4が存在する。
また、図8において、データページ#2は仮想テープ#2の割当リストの先頭および後方にリンクされている。このことから仮想テープ#2はデータページ#2のみがリンクされていることがわかる。
また、図8において、データページ#3はプールの先頭にリンクされている。これは、データページ#3の前方ポインタ702が「プール」であることからわかる。また、プールにおいて、データページ#3の後方にデータページ#5が存在する。また、データページ#3は、仮想テープ#1に対応付けられている。これは、データページ#3の最終割り当て仮想テープID704が、「テープ#1」であることからわかる。
(仮想テープ装置1の動作)
次に、図9から図18を参照して、仮想テープ装置1の動作について説明する。具体的には、データページ割当処理、データページ解放処理および仮想テープ削除処理について説明する。まず、図9を参照して、動作の説明に用いる仮想テープ、ストレージプールおよびデータページと、図6〜8の管理情報との対応付けについて説明する。図9は、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
仮想テープ欄は仮想テープの割当リストの端点を示す図で、図6に示す情報が含まれている。具体的には、仮想テープ管理情報50の仮想テープインデックス501に含まれる仮想テープIDと、始端ポインタ502と、終端ポインタ503とが含まれている。なお、始端ポインタ502および終端ポインタ503がデータページを示す場合、始端ポインタ502および終端ポインタ503の場所には、データページ番号の番号を示す部分(図9においては、#1および#3)のみを示す。
また、データページが割り当てられていない場合、つまり、図6において、始端ポインタ502および終端ポインタ503に仮想テープIDが記録されている場合、始端ポインタ502および終端ポインタ503の場所には、仮想テープIDが記録されていることを示す「テープ」を表示する。
ストレージプール欄は未割当のデータページの連結状態の端点を示す図で、仮想テープの端点を示す図の仮想テープIDの代わりに、ストレージプールを示す「プール」が示されている。また、図7に示す情報である始端ポインタ602と、終端ポインタ603とが含まれている。なお、始端ポインタ602および終端ポインタ603がデータページを示す場合、始端ポインタ602および終端ポインタ603の場所には、データページ番号の番号を示す部分(図9においては、#4および#10)のみを示す。
データページを示す図には、図8に示す情報が含まれている。具体的には、データページインデックス701に含まれるデータページ番号と、前方ポインタ702と、後方ポインタ703と、最終割り当て仮想テープID704とが含まれている。
データページ番号は、データページを示す図の中央に示されている。また、前方ポインタ702を当該図の左上に、後方ポインタ703を当該図の右上に示している。さらに、当該図の下部には、最終割り当て仮想テープID704を示している。なお、前方ポインタ702および後方ポインタ703がデータページを示す場合、前方ポインタ702および後方ポインタ703の場所には、データページ番号の番号を示す部分(図9においては、後方ポインタ703の場所に#4)のみを示す。
また、データページが、仮想テープの割当リストの始端および/または終端にリンクされている場合、前方ポインタ702および/または後方ポインタ703の場所には、「テープ」を表示し、リンク先の仮想テープの始端ポインタ502または終端ポインタ503に実線で接続する。また、データページがストレージプールの始端および/または終端にリンクされている場合、前方ポインタ702および/または後方ポインタ703の場所には、「プール」を表示する。
(データページ割当処理およびデータページ解放処理)
次に、図10および図11を参照して、仮想テープ装置1のデータページ割当処理の流れについて説明する。図10は、本実施の形態における仮想テープ装置1のデータページ割当処理の流れの一例を示すフローチャートである。
なお、以降の説明において、あるデータページにおいて、割当リストの前方または後方にある他のデータページを、前記データページの前方または後方に「繋がっている」とも表現する。
また、割当リストにおいて、あるデータページを他のデータページの前方または後方に挿入することを、あるデータページを他のデータページの前方または後方に「連結する」とも表現する。
コマンド制御部10が上位装置8などからデータを仮想テープ装置1に記録する指示を受けると、仮想テープ装置1は、データページの割当処理を開始する。
図10に示すように、仮想テープ装置1がデータページ割当処理を開始すると、仮想テープ制御部100は、以下のステップS101〜ステップS104の処理を行う。
ステップS101:データページ割当部110が、プールの始端ポインタ602が指すデータページを割当対象として決定する。データページ割当部110は、割当対象として決定したデータページを示す情報を管理情報更新部120に供給する。
ステップS102:管理情報更新部120が、プールから割当対象のデータページを切り離す。つまり、管理情報更新部120が、(a)S101にて決定したデータページの後方ポインタ703が指すデータページの前方ポインタ702と、(b)プールの始端ポインタ602と、を連結する。具体的には、管理情報更新部120が、以下の(1)および(2)を行う。
(1)未割当データページ管理情報60の始端ポインタ602を、S101にて決定したデータページの後方ポインタ703が指すデータページのデータページ番号に更新する。
(2)データページ管理情報70において、S101にて決定したデータページの後方ポインタ703が指すデータページのデータページ番号に関連付けられた前方ポインタ702を、「プール」に更新する。
ステップS103:管理情報更新部120は、S101にて割当対象として決定したデータページを仮想テープの割当リストの終端に連結する。このS103においては、データページの割当先の仮想テープにデータページが割り当てられていない場合と、既に割り当てられている場合とに分けて説明する。
S103において、データページの割当先の仮想テープにデータページが割り当てられていない場合、管理情報更新部120は、(a)割当先仮想テープの始端ポインタ502と、(b)S101で決定したデータページの前方ポインタ702と、を連結する。さらに、管理情報更新部120は、(c)S101で決定したデータページの後方ポインタ703と、(d)割当先仮想テープの終端ポインタ503と、を連結する。具体的には、管理情報更新部120が、以下の(1)〜(4)の動作を行う。
(1)仮想テープ管理情報50において、割当先の仮想テープを示す仮想テープIDに関連付けられた始端ポインタ502を、S101で決定したデータページのデータページ番号に更新する。
(2)データページ管理情報70において、S101で決定したデータページのデータページ番号に関連付けられた前方ポインタ702を、割当先の仮想テープを示す仮想テープIDに更新する。
(3)データページ管理情報70において、S101で決定したデータページのデータページ番号に関連付けられた後方ポインタ703を、割当先の仮想テープを示す仮想テープIDに更新する。
(4)仮想テープ管理情報50において、割当先の仮想テープを示す仮想テープIDに関連付けられた終端ポインタ503を、S101で決定したデータページのデータページ番号に更新する。
S103において、データページの割当先の仮想テープにデータページが既に割り当てられている場合、管理情報更新部120は、(a)割当先の仮想テープの終端ポインタ503の指すデータページの後方ポインタ703と、(b)S101で決定したデータページの前方ポインタ702と、を連結する。また、管理情報更新部120が、(c)S101で決定したデータページの後方ポインタ703と、(d)割当先仮想テープの終端ポインタ503と、を連結する。具体的には、管理情報更新部120が、以下の(5)および(6)、並びに、上述した(3)および(4)の動作を行う。
(5)データページ管理情報70において、割当先の仮想テープの終端ポインタ503の指すデータページのデータページ番号に関連付けられた後方ポインタ703を、S101で決定したデータページのデータページ番号に更新する。
(6)データページ管理情報70において、S101で決定したデータページのデータページ番号に関連付けられた前方ポインタ702を、割当先の仮想テープの終端ポインタ503の指すデータページのデータページ番号に更新する。
ステップS104:管理情報更新部120が、データページ管理情報70に含まれる、S101で決定したデータページであって、S102でプールから切り離されたデータページのデータページ番号に関連付けられている最終割り当て仮想テープID704を、割当先仮想テープの仮想テープIDに更新する。
ここで、データページ割当処理の開始前に、複数のデータページの全てが、何れの仮想テープにも割り当てられておらず、プールにリンクされており、データページ割当処理を3回繰り返して行った場合を考える。図11は、このような場合における、各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。なお、実線で結んだ部分はポインタの相互参照関係を表している。
図11に示すように、仮想テープ#1の割当リストには、ぺージ#1からページ#3の3つのデータページがリンクされている。また、プールには、何れのテープにも割り当てられていないデータページ(ページ#4〜ページ#10)がリンクされている。
次に、図11から図13を参照して、仮想テープ装置1のデータページ解放処理の流れについて説明する。図12は、本実施の形態における仮想テープ装置1のデータページ解放処理の流れの一例を示すフローチャートである。
本実施の形態に係るデータページの解放処理では、解放対象のデータページから解放元である仮想テープの終端のデータページまでが解放される。たとえば、図11に示す仮想テープ#1に割り当てられているデータページ#1の途中からデータの書き込み処理が行われると、データページ#1の次のデータページ(データページ#2)から、仮想テープ#1の終端のデータページ(データページ#3)までが解放される。
コマンド制御部10が上位装置8などからデータの書き込み指示などを受けると、仮想テープ装置1は、データが書き込まれる仮想テープに対応するデータページのうち、データが書き込まれるデータページの次のデータページ以降のデータページの解放処理を開始する。
図12に示すように、仮想テープ装置1がデータページ解放処理を開始すると、仮想テープ制御部100は、以下のステップS121〜S123の処理を行う。
ステップS121:データページ割当部110が、解放するデータページの始端から終端を決定する。データページ割当部110は、決定したデータページを示す情報を管理情報更新部120に供給する。
ステップS122:管理情報更新部120が、解放対象のデータページを仮想テープから切り離す。つまり、管理情報更新部120が、解放対象の始端データページの前方ポインタ702が指すデータページの後方ポインタ703と、解放元の仮想テープの終端ポインタ503とを連結する。具体的には、管理情報更新部120が、以下の(1)および(2)を行う。
(1)仮想テープ管理情報50において、解放元の仮想テープを示す仮想テープIDに関連付けられた終端ポインタ503を、解放対象の始端データページの前方ポインタ702が指すデータページのデータページ番号に更新する。
(2)データページ管理情報70において、解放対象の始端データページの前方ポインタ702が指すデータページの後方ポインタ703を、解放元の仮想テープを示す仮想テープIDに更新する。
なお、S122において、すべてのデータページを仮想テープから切り離す場合、管理情報更新部120は、仮想テープ管理情報50において、解放元の仮想テープを示す仮想テープIDに関連付けられた始端ポインタ502および終端ポインタ503を、当該仮想テープIDに更新する。
ステップS123:管理情報更新部120が、解放対象のデータページをプールの終端に連結する。つまり、管理情報更新部120が、(a)解放対象の始端データページの前方ポインタ702と、(b)プールの終端ポインタ603が指すデータページの後方ポインタ703と、を連結する。また、管理情報更新部120が、(c)プールの終端ポインタ603と、(d)解放対象の終端データページの後方ポインタ703とを連結する。具体的には、管理情報更新部120が、以下の(1)〜(4)の動作を行う。
(1)データページ管理情報70において、解放対象の始端データページのデータページ番号に関連付けられた前方ポインタ702を、プールの終端ポインタ603が指すデータページのデータページ番号に更新する。
(2)データページ管理情報70において、プールの終端ポインタ603が指すデータページのデータページ番号に関連付けられた後方ポインタ703を、解放対象の始端データページのデータページ番号に更新する。
(3)未割当データページ管理情報60において、プールの終端ポインタ603を、解放対象の終端データページのデータページ番号に更新する。
(4)データページ管理情報70において、解放対象の終端データページのデータページ番号に関連付けられた後方ポインタ703を、「プール」に更新する。
この時、管理情報更新部120は、データページ管理情報70の最終割り当て仮想テープID704の内容を変更しない。
図11の状態において、仮想テープ#1に割り当てられているデータページ#1の途中またはデータページ#1の後から仮想テープへの追記指示を受け付けた場合を考える。上記指示を受けると、仮想テープ制御部100は、データページ#2およびデータページ#3を解放してプールに連結する。このようにして、データページ解放処理が行われる。
そして、仮想テープへの追記指示であるため、図10に示すデータページ割当処理が実行される。まず、割り当てるデータページ(本例では、データページ#4とする)が決定され、プールからデータページ#4がプールから切り離される。そして、切り離されたデータページ#4を仮想テープ#1の終端データページに連結する。そして、切り離されたデータページ#4の最終割り当て仮想テープID704を「無し」から「テープ#1」に更新する。
この時のデータページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態を図13に示す。図13は、データページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
図13に示すようにデータページ#4は仮想テープ#1のリストの終端に連結されている。また、図11でプールの終端データページであったデータページ#10の後に、解放されたデータページ#2およびデータページ#3が連結されている。また、プールに解放されたデータページ#2およびデータページ#3の最終割り当て仮想テープID704は「テープ#1」のままである。
次に、プールにある最終割り当て仮想テープID704が「テープ#1」であるデータページを他の仮想テープ(例えば、仮想テープ#2)に割り当てる場合について説明する。図14は、データページ解放処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図14が図13と異なる点は、最終割り当て仮想テープID704がテープ#1であるデータページ#2およびデータページ#3がプールの先頭にリンクされている点である。
図14に示すように、仮想テープ#1には、データページ#1およびデータページ#4が割り当てられている。また、仮想テープ#2には、データページが割り当てられていない。プールには、10個のデータページのうち、データページ#1およびデータページ#4以外のデータページがリンクされている。そのうち、データページ#2およびデータページ#3は、最終割り当て仮想テープID704が「テープ#1」であり、そのほかのデータページの最終割り当て仮想テープID704は「無し」である。
図14の状態で、仮想テープ#2に対し、データページ割当処理が行われると、まず、データページ割当部110が、割り当てるデータページ(本例では、データページ#2)を決定する。そして、管理情報更新部120が、データページ#2をプールから切り離し、切り離したデータページ#2を仮想テープ#2に連結する。そして、管理情報更新部120が、切り離したデータページ#2の最終割り当て仮想テープID704を「テープ#1」から「テープ#2」に更新する。このデータページ割当処理が行われた後の状態を図15に示す。
図15は、図14の状態にデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図15に示すように、仮想テープ#2には、最終割り当て仮想テープID704が「テープ#2」に更新されたデータページ#2が割り当てられている。また、プールからデータページ#2が切り離されている。これにより、データページ#2は仮想テープ#1が過去に使用したデータページとして認識されなくなる。
(仮想テープ削除処理)
次に、図16〜図18を参照して、仮想テープ装置1の仮想テープ削除処理の流れについて説明する。図16は、本実施の形態における仮想テープ装置1の仮想テープ削除処理の流れの一例を示すフローチャートである。
コマンド制御部10が上位装置8などから仮想テープの削除処理を受け付けると、仮想テープ装置1は、仮想テープの削除処理を開始する。
図16に示すように、仮想テープ装置1が仮想テープ削除処理を開始すると、仮想テープ制御部100は、以下のステップS161〜ステップS167の処理を行う。
ステップS161:データページ割当部110および管理情報更新部120は、当該仮想テープに割り当てられている全てのデータページに対し、上述したデータページの解放処理を行う。管理情報更新部120は、データページの解放処理が終了すると(S123の後)、解放処理が終了したことを最終割当情報取得部130に通知する。
ステップS162:最終割当情報取得部130が、データページ管理情報70から当該データページ管理情報70の最初のデータページのデータページ番号に関連付けられた最終割り当て仮想テープID704を取得する。最終割当情報取得部130は、取得した最終割り当て仮想テープID704を判定部140に供給する。
ステップS163:判定部140が、コマンド制御部10から取得した、削除対象の仮想テープを示す仮想テープID(削除対象仮想テープ識別子)と、S162にて最終割当情報取得部130が取得した最終割り当て仮想テープID704とが、一致するか否かを判定する。一致した場合(YESの場合)、削除対象の仮想テープの仮想テープIDと一致した最終割り当て仮想テープID704のデータページを示す情報をデータ消去部150に供給し、S164に進む。一致しない場合(NOの場合)、一致しないことを示す情報を最終割当情報取得部130に通知し、S166に進む。
ステップS164:データ消去部150が、仮想テープデータ記憶部30に記録されている記録データであって、最終割り当て仮想テープID704が削除対象の仮想テープの仮想テープIDであるデータページの記録データを完全に消去する。そして、データ消去部150は、記録データを消去したデータページを示す情報を、管理情報更新部120に供給する。
ステップS165:管理情報更新部120が、S164にて記録データを消去したデータページのデータページ番号に関連付けられた最終割り当て仮想テープID704を、「無し」に更新する。そして、管理情報更新部120は、更新が完了したことを最終割当情報取得部130に通知する。
ステップS166:最終割当情報取得部130は、最終割り当て仮想テープID704を取得したデータページが、仮想テープ装置1に定義されている最終データページか否かを確認する。具体的には、最終割当情報取得部130は、上記最終割り当て仮想テープID704を取得したデータページが、データページ管理情報70の最後のデータページであるか否かを確認する。最終データページである場合(YESの場合)、処理を終了する。最終データページでない場合(NOの場合)、S167に進む。
ステップS167:最終割当情報取得部130が、データページインデックス701を1つ進めて、次のデータページのデータページ番号に関連付けられた最終割り当て仮想テープID704を取得する。その後、S163に進む。このように、最終データページの最終割り当て仮想テープID704を取得するまで、仮想テープ制御部100は、S163〜S166の処理を繰り返す。
図17は、図15の状態で、仮想テープ#1に対し、上述したS161の処理、つまり、仮想テープ#1に割り当てられているすべてのデータページに対するデータページ解放処理(図12)を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
仮想テープ#1に対し、仮想テープ削除処理におけるデータページ解放処理を行うと、図17に示すように、仮想テープ#1に割り当てられていたデータページ#1およびデータページ#4は解放され、プールの最後尾にリンクされる。この時、データページ#1およびデータページ#4の最終割り当て仮想テープID704は「テープ#1」のままである。
その後、上述した仮想テープ削除処理を行うと、プールにリンクされているデータページであって、最終割り当て仮想テープID704が「テープ#1」のデータページは、最終割り当て仮想テープID704が「無し」に更新される。この時の状態を図18に示す。図18は、仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図18に示すように、データページ番号が「ページ#3」、「ページ#1」および「ページ#4」のデータページの最終割り当て仮想テープID704は、「テープ#1」から「無し」に更新されている。また、仮想テープ#2に割り当てられているデータページ#2は、変化しない。
従って、仮想テープ#1の削除処理を行うことにより、仮想テープ#1に割り当てられてから他の仮想テープに割り当てられていないデータページに含まれるデータを完全に消去できる。
(効果)
以上のように、本実施の形態に係る仮想テープ装置1は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを、前記仮想テープに動的に割り当てる。そして、1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープID704を含むデータページ管理情報70に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
これにより、仮想テープの削除の際に、削除対象の仮想テープで、過去に使用したデータだけを特定して、効率よく仮想テープのデータを消去することできる。その理由は、データページ管理情報70に、各データページが、当該データページにデータが残存しているかを示す情報、つまり、最後に割り当てられた仮想テープを示す情報である、最終割り当て仮想テープID704が含まれているからである。これにより、データ消去部150は、削除対象の仮想テープで過去に使用したデータページのデータを消去することができる。
また、最終割り当て仮想テープID704には、当該最終割り当て仮想テープID704に関連付けられたデータページが最後に割り当てられた仮想テープがある場合、当該仮想テープを示す識別子が含まれている。一方、当該最終割り当て仮想テープID704に関連付けられたデータページが何れの仮想テープにも割り当てられていない場合、何れの仮想テープにも割り当てられていないことを示す情報(例えば「無し」)が含まれる。
このように、データが残存しているデータページと、データが残存していないデータページとを区別して管理されたデータページ管理情報を用いることにより、削除対象の仮想テープに対応するデータ領域を容易に特定することができる。したがって、より好適に、削除対象の仮想テープで過去に使用したデータページのデータを消去することができる。
<実施の形態2>
本発明に係る第2の実施の形態について、図面を参照して詳細に説明する。第1の実施の形態に係る仮想テープ装置1は、記録データを消去するデータページを特定するために、データページ管理情報70に含まれる全てのデータページを検索する必要がある。その為、扱うデータページが大量に存在すると、仮想テープ削除の処理時間に対する検索時間の割合が大きくなる場合がある。そこで、本実施の形態では、記録データを消去するデータページを、データページ管理情報の全データの検索せずに特定できるようにする。
(仮想テープ装置の構成)
図29は、本実施の形態に係る仮想テープ装置の機能構成の一例を示す機能ブロック図である。なお、説明の便宜上、前述した第1の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その説明を省略する。
図29に示す通り、仮想テープ装置1は、コマンド制御部10、仮想テープデータ記憶部30、データ管理情報記憶部40および仮想テープ制御部100を備えている。仮想テープ装置1は、例えば、磁気テープ装置をエミュレーションした装置であり、上位装置8のデータを仮想テープに記憶するものである。
データ管理情報記憶部40は、各仮想テープの情報と、各データページの情報およびその接続関係に関する情報を記録している。具体的には、データ管理情報記憶部40は、仮想テープ管理情報51と、未割当データページ管理情報60と、データページ管理情報71とを記録している。データ管理情報記憶部40に記録された仮想テープ管理情報51およびデータページ管理情報71については、図面を変えて詳細に説明する。
図29に示す通り、仮想テープ制御部100は、データページ割当部110、管理情報更新部120、最終割当情報取得部131およびデータ消去部150を備えている。
最終割当情報取得部131は、仮想テープ管理情報51およびデータページ管理情報71を用いて、削除対象である仮想テープの過去のデータが残存しているデータページを特定し、消去部150に供給する。また、過去のデータが残存しているデータページが存在しなくなった場合には、その旨を管理情報更新部120に通知する。なお、本実施の形態に係る仮想テープ装置1のハードウェア構成は、前述した第1の実施の形態に係る仮想テープ装置1のハードウェア構成と同様である。
(各管理情報について)
次に、図19および図20を参照して、データ管理情報記憶部40に格納されている各管理情報について説明を行う。
図19は、仮想テープ管理情報51の一例を示す図である。図19に示す通り、仮想テープインデックス511、始端ポインタ512、終端ポインタ513、最終割り当て始端ポインタ514および最終割り当て終端ポインタ515を含んでいる。
仮想テープインデックス511、始端ポインタ512および終端ポインタ513は、第1の実施の形態に係る仮想テープ管理情報50の仮想テープインデックス501、始端ポインタ502および終端ポインタ503とそれぞれ同様のものであるため、説明を省略する。
最終割り当て始端ポインタ514および最終割り当て終端ポインタ515は、それぞれ、仮想テープインデックス511の仮想テープIDから関連付けられている。最終割り当て始端ポインタ514は、当該仮想テープのデータを有しているデータページのうち、当該仮想テープの割当リストの最初の(始端の)データページを示す情報である。つまり、第1の実施の形態における最終割り当て仮想テープID704が当該仮想テープの仮想テープIDであるデータページのうち、当該仮想テープの割当リストの最初の(始端の)データページを示す情報である。
同様に、最終割り当て終端ポインタ515は、当該仮想テープのデータを有しているデータページのうち、当該仮想テープの割当リストの最後の(終端の)データページを示す情報である。
仮想テープのデータがデータページに残存しているときには、当該仮想テープの最終割り当て始端ポインタ514および最終割り当て終端ポインタ515には、当該データページのデータページ番号が記録される。一方、仮想テープのデータがデータページに残存していないときには、最終割り当て始端ポインタ514および最終割り当て終端ポインタ515には、当該仮想テープを示す仮想テープIDが記録される。
つまり、各仮想テープは、最終割り当て始端ポインタ514が示すデータページを始端とし、最終割り当て終端ポインタ515が示すデータページを終端とする、当該仮想テープへ最後に割り当てられたデータページの双方向リスト(最終割当リスト)を構成する。なお、最終割当リストは、片方向リストであってもよい。また、各仮想テープの最終割当リストは、データ形式で、例えば、データ管理情報記憶部40に格納されていてもよいし、各管理情報を参照することにより作成されるものであってもよい。
図20は、データ管理情報記憶部40に格納されているデータページ管理情報71の一例を示す図である。図20に示す通り、データページインデックス711、前方ポインタ712、後方ポインタ713、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715を含んでいる。
データページインデックス711、前方ポインタ712および後方ポインタ713は、第1の実施の形態に係るデータページ管理情報70のデータページインデックス701、前方ポインタ702および後方ポインタ703とそれぞれ同様のものであるため、説明を省略する。
最終割り当て前方ポインタ714および最終割り当て後方ポインタ715は、それぞれ、データページインデックス711のデータページ番号から関連付けられている。最終割り当て前方ポインタ714は、最終割当リストにおいて、当該データページの前方に位置する要素を示している。同様に、最終割り当て後方ポインタ715とは、最終割当リストにおいて、当該データページの後方に位置する要素を示している。
つまり、上述した最終割当リストは、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715を用いて、最終割り当て始端ポインタ514が示すデータページを始端とし、最終割り当て終端ポインタ515が示すデータページを終端として構成される。
また、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715は、最終割当リストにおいて、前方および後方にある要素を特定しているため、最終割当リストにおける位置情報を示しているといえる。
最終割り当て前方ポインタ714および最終割り当て後方ポインタ715は、前方ポインタ712および後方ポインタ713と同様に、それぞれ、「データページ番号」、「仮想テープID」および「プール」のいずれかの値を取る。最終割り当て前方ポインタ714および最終割り当て後方ポインタ715の各値については、上述した第1の実施の形態の割当リストにおける前方ポインタ702および後方ポインタ703の各値の場合と同様であるため、説明を省略する。
(仮想テープ装置1の動作)
次に、図21から図27を参照して、仮想テープ装置1の動作について説明する。具体的には、データページ割当処理および仮想テープ削除処理について説明する。なお、データページ解放処理は、第1の実施の形態と同様であるため、説明を省略する。
まず、図21を参照して、動作の説明に用いる仮想テープおよびデータページと、図19および図20の管理情報との対応付けについて説明する。なお、ストレージプールについては、図9と同様であるため、説明を省略する。図21は、仮想テープ管理情報、未割当データページ管理情報、データページ管理情報を模式的に表した図である。
仮想テープ欄は仮想テープの割当リストの端点を示す図で、図19に示す情報が含まれている。具体的には、仮想テープ管理情報51の仮想テープインデックス511に含まれる仮想テープIDと、始端ポインタ512と、終端ポインタ513と最終割り当て始端ポインタ514と、最終割り当て終端ポインタ515とが含まれている。なお、始端ポインタ512および終端ポインタ513がデータページを示す場合、始端ポインタ512および終端ポインタ513の場所には、それぞれ、データページ番号の番号を示す部分(図21においては、#1および#4)のみを示す。同様に、最終割り当て始端ポインタ514および最終割り当て終端ポインタ515がデータページを示す場合、最終割り当て始端ポインタ514および最終割り当て終端ポインタ515の場所には、データページ番号の番号を示す部分(図21においては、#1および#4)のみを示す。
また、現時点において、データページが割り当てられていない場合、つまり、図19の始端ポインタ512および終端ポインタ513に仮想テープIDが記録されている場合、始端ポインタ512および終端ポインタ513の場所には、仮想テープIDが記録されていることを示す「テープ」を表示する。
また、現時点において、仮想テープのデータが残存しているデータページがない場合、つまり、図19の最終割り当て始端ポインタ514および最終割り当て終端ポインタ515に仮想テープIDが記録されている場合、最終割り当て始端ポインタ514および最終割り当て終端ポインタ515の場所には、仮想テープIDが記録されていることを示す「テープ」を表示する。
データページを示す図には、図20に示す情報が含まれている。具体的には、データページインデックス711に含まれるデータページ番号と、前方ポインタ712と、後方ポインタ713と、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715とが含まれている。
データページ番号は、データページを示す図の中央に示されている。また、前方ポインタ712を当該図の左上に、後方ポインタ713を当該図の右上に示している。さらに、最終割り当て前方ポインタ714を当該図の左下に、最終割り当て後方ポインタ715を当該図の右下に示している。
前方ポインタ712および後方ポインタ713がデータページを示す場合、前方ポインタ712および後方ポインタ713の場所には、データページ番号の番号を示す部分(図21においては、後方ポインタ713の場所に#4)のみを示す。同様に、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715がデータページを示す場合、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715の場所には、データページ番号の番号を示す部分(図21おいては、最終割り当て後方ポインタ715の場所に#3)のみを示す。
また、データページが、仮想テープの割当リストの始端および/または終端にリンクされている場合、前方ポインタ712および/または後方ポインタ713の場所には、「テープ」を表示する。また、データページが、仮想テープの最終割当リストの始端および/または終端にリンクされている場合、最終割り当て前方ポインタ714および/または最終割り当て後方ポインタ715の場所には、「テープ」を表示する。
また、データページがストレージプールの始端および/または終端にリンクされている場合、前方ポインタ702および/または後方ポインタ703の場所には、「プール」を表示する。また、データページが何れの最終割当リストにも含まれず、ストレージプールにリンクされている場合、最終割り当て前方ポインタ714および最終割り当て後方ポインタ715の場所には、「無し」を表示する。
(データページ割当処理)
次に、図22〜図24を参照して、仮想テープ装置1のデータページ割当処理の流れについて説明する。図22は、本実施の形態における仮想テープ装置1のデータページ割当処理の流れの一例を示すフローチャートである。
コマンド制御部10が上位装置8などからデータを仮想テープ装置1に記録する指示を受けると、仮想テープ装置1は、データページの割当処理を開始する。
図22に示すように、仮想テープ装置1がデータページ割当処理を開始すると、以下のステップS221〜ステップS224の処理を行う。
ステップS221:データページ割当部110および管理情報更新部120が、データページをプールから仮想テープに割り当てる。具体的には、前述した第1の実施の形態のデータページ割当処理におけるS101〜S103を行う。これにより、割り当てられたデータページの前方ポインタ712および後方ポインタ713が更新される。また、データページが割り当てられた仮想テープの始端ポインタ512および終端ポインタ513が更新される。
ステップS222:管理情報更新部120が、S221で仮想テープに割り当てられたデータページが何れかの仮想テープのデータを有しているか否かを判定する。具体的には、管理情報更新部120は、データページ管理情報71において、S221で仮想テープに割り当てられたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ714が「無し」であるか否かを判定する。上記最終割り当て前方ポインタ714が「無し」でない場合(NOの場合)、つまり、いずれかの仮想テープのデータを有している場合、S223に進む。上記最終割り当て前方ポインタ714が「無し」である場合(YESの場合)、S224に進む。なお、S222において、管理情報更新部120は、最終割り当て前方ポインタ714ではなく、最終割り当て後方ポインタ715が「無し」であるか否かを判定してもよい。
ステップS223:管理情報更新部120が、割当先の仮想テープの最終割当リストからS221で割り当てたデータページを切り離す。つまり、管理情報更新部120が、(a)S221にて割り当てたデータページの最終割り当て後方ポインタ715が指すデータページの最終割り当て前方ポインタ714と、(b)S221にて割り当てたデータページの最終割り当て前方ポインタ714が指すデータページの最終割り当て後方ポインタ715と、を連結する。具体的には、管理情報更新部120が、以下の(1)および(2)を行う。
(1)データページ管理情報71において、S221にて割り当てたデータページの最終割り当て後方ポインタ715が指すデータページのデータページ番号に関連付けされた最終割り当て前方ポインタ714を、S221にて割り当てたデータページの最終割り当て前方ポインタ714が指すデータページのデータページ番号に更新する。
(2)データページ管理情報71において、S221にて割り当てたデータページの最終割り当て前方ポインタ714が指すデータページのデータページ番号関連付けされた最終割り当て後方ポインタ715を、S221にて割り当てたデータページの最終割り当て後方ポインタ715が指すデータページのデータページ番号に更新する。
なお、S223において、S221にて割り当てたデータページの最終割り当て後方ポインタ715が仮想テープIDである場合、管理情報更新部120は、(c)S221にて割り当てたデータページの最終割り当て前方ポインタ714が指すデータページの最終割り当て後方ポインタ715と、(d)仮想テープの最終割り当て終端ポインタ515とを連結する。
ステップS224:管理情報更新部120がS101にて割当対象として決定したデータページを、仮想テープの最終割当リストの終端に連結する。このS224においては、データページの割当先の仮想テープの最終割当リストにデータページがない場合とある場合とに分けて説明する。
S224において、データページの割当先の仮想テープの最終割当リストにデータページがない場合、管理情報更新部120は、(a)割当先の仮想テープの最終割り当て始端ポインタ514と、(b)S221で割り当てたデータページの最終割り当て前方ポインタ714と、を連結する。さらに、管理情報更新部120は、(c)S221で割り当てたデータページの最終割り当て後方ポインタ715と、(d)割当先仮想テープの最終割り当て終端ポインタ515と、を連結する。具体的には、管理情報更新部120が、以下の(1)〜(4)の動作を行う。
(1)仮想テープ管理情報51において、割当先の仮想テープを示す仮想テープIDに関連付けられた最終割り当て始端ポインタ514を、S221で割り当てたデータページのデータページ番号に更新する。
(2)データページ管理情報71において、S221で割り当てたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ714を、割当先の仮想テープを示す仮想テープIDに更新する。
(3)データページ管理情報71において、S221で割り当てたデータページのデータページ番号に関連付けられた最終割り当て後方ポインタ715を、割当先の仮想テープを示す仮想テープIDに更新する。
(4)仮想テープ管理情報51において、割当先の仮想テープを示す仮想テープIDに関連付けられた最終割り当て終端ポインタ515を、S221で割り当てたデータページのデータページ番号に更新する。
S224において、データページの割当先の仮想テープの最終割当リストにデータページがある場合、管理情報更新部120は、(a)割当先の仮想テープの最終割り当て終端ポインタ515の指すデータページの最終割り当て後方ポインタ715と、(b)S221で割り当てたデータページの最終割り当て前方ポインタ714と、を連結する。また、管理情報更新部120が、(c)S221で割り当てたデータページの最終割り当て後方ポインタ715と、(d)割当先仮想テープの最終割り当て終端ポインタ515と、を連結する。具体的には、管理情報更新部120が、以下の(5)および(6)、並びに、上述した(3)および(4)の動作を行う。
(5)データページ管理情報71において、割当先の仮想テープの最終割り当て終端ポインタ515の指すデータページのデータページ番号に関連付けられた最終割り当て後方ポインタ715を、S221で割り当てたデータページのデータページ番号に更新する。
(6)データページ管理情報70において、S221で割り当てたデータページのデータページ番号に関連付けられた最終割り当て前方ポインタ714を、割当先の仮想テープの最終割り当て終端ポインタ515の指すデータページのデータページ番号に更新する。
次に、図23および図24を参照して、上述のデータ割当処理について、更に説明する。図23は、図14の状態を、図21の仮想テープおよびデータページを用いて表した図であり、各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。実線および破線で結んだ部分はポインタの相互参照関係を表しており、実線は仮想テープの割当リストおよびプールのリストにおけるデータページの連結関係を示し、破線は最終割当リストにおけるデータページの連結関係を表す。
図23に示すように、仮想テープ#1には、データページ#1およびデータページ#4が割り当てられている。また、仮想テープ#2には、データページが割り当てられていない。プールには、10個のデータページのうち、データページ#1およびデータページ#4以外のデータページがリンクされている。そのうち、データページ#2およびデータページ#3は、仮想テープ#1の最終割当リストにリンクされている。また、プールにリンクされているデータページのうち、データページ#2およびデータページ#3以外のデータページは、何れの仮想テープにも割り当てられていない。
図23の状態で、仮想テープ#2に対し、データページ割当処理が行われると、まず、データページ割当部110が、割り当てるデータページ(本例では、データページ#2)を決定する。そして、管理情報更新部120が、データページ#2をプールから切り離し、切り離したデータページ#2を仮想テープ#2に連結する。さらに、管理情報更新部120が、切り離したデータページ#2が処理の前に割り当てられていた、仮想テープ#1の最終割当リストから、上記データページ#2を切り離す。そして、管理情報更新部120は、データページ#2を仮想テープ#2の最終割当リストに連結する。このデータページ割当処理が行われた後の状態を図24に示す。
図24は、図23の状態にデータページ割当処理を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図24に示すように、仮想テープ#2の割当リストおよび最終割当リストには、データページ#2が割り当てられている。また、プールからデータページ#2が切り離されている。これにより、データページ#2は仮想テープ#1が過去に使用したデータページとして認識されなくなる。
(仮想テープ削除処理)
次に、図25〜図27を参照して、仮想テープ装置1の仮想テープ削除処理の流れについて説明する。図25は、本実施の形態における仮想テープ装置1の仮想テープ削除処理の流れの一例を示すフローチャートである。
コマンド制御部10が上位装置8などから仮想テープの削除処理を受け付けると、仮想テープ装置1は、仮想テープの削除処理を開始する。
図25に示すように、仮想テープ装置1が仮想テープ削除処理を開始すると、仮想テープ制御部100は、以下のステップS251〜ステップS257の処理を行う。
ステップS251:データページ割当部110および管理情報更新部120は、当該仮想テープに割り当てられている全てのデータページに対し、第1の実施の形態で説明したデータページの解放処理を行う。管理情報更新部120は、データページの解放処理が終了すると(S123の後)、解放処理が終了したことを最終割当情報取得部131に通知する。
ステップS252:最終割当情報取得部131が、仮想テープ管理情報51を参照し、削除対象の仮想テープの仮想テープIDに関連付けられた最終割り当て始端ポインタ514が示すデータページのデータページ番号を取得する。最終割当情報取得部131は、取得したデータページ番号をデータ消去部150に供給する。
ステップS253:データ消去部150が、仮想テープデータ記憶部30に記録されている、S252にて取得したデータページ番号で特定されるデータページの記録データを完全に消去する。そして、データ消去部150は、記録データを消去したデータページを示す情報を、管理情報更新部120に供給する。
ステップS254:管理情報更新部120が、S253にて記録データを消去したデータページを、最終割当リストから切り離す。その際に、管理情報更新部120は、上記データページの最終割り当て後方ポインタ715を、メモリ13などに一時保存する。そして、その後、管理情報更新部120は、データページ管理情報71において、当該データページのデータページ番号に関連付けられた最終割り当て前方ポインタ714および最終割り当て後方ポインタ715を「無し」に更新する。そして、管理情報更新部120は、更新が完了したことを最終割当情報取得部131に通知する。
ステップS255:最終割当情報取得部131が、S254にて一時保存した最終割り当て後方ポインタ715を参照し、データを消去したデータページが、最終割当リストの最終データページか否かを確認する。具体的には、上記一時保存した最終割り当て後方ポインタ715が削除対象の仮想テープの仮想テープIDか否かを判定する。最終データページである場合(YESの場合)、最終データページであることを示す通知を、管理情報更新部120に送信し、S257に進む。最終データページでない場合(NOの場合)、S256に進む。
ステップS256:最終割当情報取得部131が、仮想テープ管理情報51を参照し、上記最終割当リストの次のデータページのデータページ番号を取得する。具体的には、S254にて一時保存した最終割り当て後方ポインタ715が示すデータページのデータページ番号を取得する。そして、S253に進む。このように、最終割当リストの最後のデータページまで、S253〜S256の処理を繰り返す。
ステップS257:管理情報更新部120が、仮想テープ管理情報51において、削除対象の仮想テープの仮想テープIDに関連付けられた最終割り当て始端ポインタ514と、最終割り当て終端ポインタ515とを当該仮想テープIDに更新し、処理を終了する。
図26は、図24の状態で、仮想テープ#1に対し、上述したS251の処理、つまり、仮想テープ#1に割り当てられているすべてのデータページに対するデータページ解放処理(図12)を行った後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。
仮想テープ#1に対し、仮想テープ削除処理におけるデータページ解放処理を行うと、図26に示すように、仮想テープ#1に割り当てられていたデータページ#1およびデータページ#4は解放され、プールの最後尾にリンクされる。この時、仮想テープ#1の最終割当リストは、変更しない。つまり、データページ#1およびデータページ#4の夫々における最終割り当て前方ポインタ714および最終割り当て後方ポインタ715、並びに、仮想テープ#1の最終割り当て始端ポインタ514および最終割り当て終端ポインタ515は、更新しない。
その後、上述した仮想テープ削除処理を行うと、プールにリンクされているデータページであって、仮想テープ#1の最終割当リストにリンクされたデータページ(データページ#1、データページ#3およびデータページ#4)の最終割り当て前方ポインタ714および最終割り当て後方ポインタ715は、「無し」に更新される。さらに、仮想テープ#1の最終割り当て始端ポインタ514および最終割り当て終端ポインタ515は、仮想テープ#1の仮想テープIDに更新される。この時の状態を図27に示す。
図27は、仮想テープ削除処理後の各仮想テープと、ストレージプールと、データページの連結関係、および各データページの状態の一例を模式的に表した図である。図27に示すように、データページ番号が「ページ#1」、「ページ#3」および「ページ#4」のデータページの最終割り当て前方ポインタ714および最終割り当て後方ポインタ715は、「無し」に更新されている。また、仮想テープ#2に割り当てられているデータページ#2は、変化しない。
従って、仮想テープ#1の削除処理を行うことにより、仮想テープ#1に割り当てられてから他の仮想テープに割り当てられていないデータページに含まれるデータを完全に消去できる。
(効果)
以上のように、本実施の形態に係る仮想テープ装置1は、1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割当リストにおける位置情報を含むデータページ管理情報71に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
上記最終割当リストには、削除対象の仮想テープのデータが残存しているデータページのみを示す情報が含まれている。そのため、データ消去部150は、上記最終割当リストを参照することによって、削除対象の仮想テープのデータが残存しているデータページを特定して、データを消去することができる。
したがって、本実施の形態に係る仮想テープ装置1は、全データページを参照することなく、削除対象の仮想テープに割り当てられてから他の仮想テープに割り当てられていないデータページをより短時間で消去することができる。
<実施の形態3>
本発明に係る第3の実施の形態について、図面を参照して詳細に説明する。上述した第1および第2の実施の形態の仮想テープ装置1は、本実施の形態にかかる仮想テープ制御装置を仮想テープ制御部として含んでいる。本実施の形態では、仮想テープ制御装置について説明を行う。
(仮想テープ制御装置の構成)
図28は、本発明の一実施の形態に係る仮想テープ制御装置の機能構成の一例を示す機能ブロック図である。なお、説明の便宜上、前述した第1および第2の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付す。また、本実施の形態に係る仮想テープ制御装置100のハードウェア構成は、上述した仮想テープ装置1と同様のハードウェア構成(図5)を有しているものとする。
図28に示す通り、仮想テープ制御装置100は、データページ割当部110およびデータ消去部150を備えている。
データページ割当部110は、記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを仮想テープに動的に割り当てる手段である。
データ消去部150は、データページ割当部110によって1または複数のデータページが割り当てられた仮想テープを削除するとき、データページ管理情報70に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する。
データページ管理情報70は、複数のデータページの各々に関連付けられた最終割り当て仮想テープ情報を含んでいる。最終割り当て仮想テープ情報とは、データページに何れの仮想テープのデータが残存しているのかを示す情報である。
なお、データページ管理情報70は、仮想テープ制御装置100内に内蔵された記憶装置に格納されていてもよいし、仮想テープ制御装置100の外部に接続された記憶装置に格納されていてもよい。
本実施の形態に係る仮想テープ制御装置100において、データ消去部150は、データページにデータが残存しているかを示す情報を含むデータページ管理情報70に基づいて、削除対象の仮想テープのデータが含まれるデータページを特定し、消去することができる。
これにより、仮想テープの削除の際に、削除対象の仮想テープで、過去に使用したデータだけを特定して、効率よく仮想テープのデータを消去することできる。
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
例えば、上述した実施の形態における各動作は、ハードウェアまたはソフトウェア、あるいはその両方の複合構成によって実行することも可能である。
なお、ソフトウェアによる処理を実行する場合には、例えば、上記各処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。また、上記プログラムは、例えば、ハードディスクなどの記録媒体に記録しておくことが可能である。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ制御装置。
(付記2)前記データページ管理情報は、前記最終割り当て仮想テープ情報として、データページが前記データページ割当手段によって最後に割り当てられた仮想テープを示す識別子である最終割り当て仮想テープ識別子を含み、
前記データ消去手段は、前記最終割り当て仮想テープ識別子に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする付記1に記載の仮想テープ制御装置。
(付記3)前記データページ管理情報から、前記最終割り当て仮想テープ識別子を取得する最終割当情報取得手段と、
前記削除対象の仮想テープを示す削除対象仮想テープ識別子と、前記最終割当情報取得手段によって取得された前記最終割り当て仮想テープ識別子と、が一致するか否かを判定する判定手段と、を更に備え、
前記データ消去手段は、前記判定手段によって、前記削除対象仮想テープ識別子と前記最終割り当て仮想テープ識別子とが一致すると判定されたとき、当該最終割り当て仮想テープ識別子に関連付けられたデータページに記録されているデータを消去する、ことを特徴とする付記2に記載の仮想テープ制御装置。
(付記4)前記最終割り当て仮想テープ識別子には、当該最終割り当て仮想テープ識別子に関連付けられたデータページが最後に割り当てられた仮想テープがある場合、当該仮想テープを示す識別子が含まれ、当該最終割り当て仮想テープ識別子に関連付けられたデータページが何れの仮想テープにも割り当てられていない場合、何れの仮想テープにも割り当てられていないことを示す情報が含まれる、ことを特徴とする付記2または3に記載の仮想テープ制御装置。
(付記5)
前記データページ割当手段によって、仮想テープに1または複数のデータページが割り当てられたとき、当該データページに関連付けられた前記最終割り当て仮想テープ識別子を、前記仮想テープを示す情報に更新する管理情報更新手段を更に備えることを特徴とする付記2から4の何れかに記載の仮想テープ制御装置。
(付記6)
前記管理情報更新手段は、前記データ消去手段によって、データが消去されたデータページの前記最終割り当て仮想テープ識別子を、何れの仮想テープにも割り当てられていないことを示す情報に更新することを特徴とする付記5に記載の仮想テープ制御装置。
(付記7)前記データページ管理情報は、前記最終割り当て仮想テープ情報として、仮想テープごとに、当該仮想テープのデータを有するデータページから構成される最終割当リストにおける位置情報を含み、
前記データ消去手段は、削除対象の仮想テープの前記最終割当リストにおける前記位置情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする付記1に記載の仮想テープ制御装置。
(付記8)前記最終割当リストの最初のデータページを示す最終割り当て始端情報および最後のデータページを示す最終割り当て終端情報を仮想テープごとに有する仮想テープ管理情報と、前記最終割当リストにおける位置情報とから、前記最終割当リストに含まれるデータページを示すデータページ識別子を取得する最終割当情報取得手段を更に備え、
前記データ消去手段は、前記最終割当情報取得手段によって取得されたデータページ識別子であって、削除対象の仮想テープの前記最終割当リストに含まれるデータページのデータページ識別子によって特定されるデータページに記録されているデータを消去する、ことを特徴とする付記7に記載の仮想テープ制御装置。
(付記9)
前記データページ割当手段によって、仮想テープに1または複数のデータページが割り当てられたとき、当該データページに関連付けられた前記最終割当リストにおける位置情報を更新する管理情報更新手段を更に備えることを特徴とする付記7または8に記載の仮想テープ制御装置。
(付記10)
前記管理情報更新手段は、前記データ消去手段によって、データが消去されたデータページに関連付けられた最終割当リストにおける位置情報を、何れの仮想テープにも割り当てられていないことを示す情報に更新することを特徴とする付記9に記載の仮想テープ制御装置。
(付記11)記憶領域と、
前記記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを、仮想テープに動的に割り当てるデータページ割当手段と、
前記データページ割当手段によって1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去手段と、を備えることを特徴とする仮想テープ装置。
(付記12)記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを、仮想テープに動的に割り当て、
1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去する、ことを特徴とする制御方法。
(付記13)記憶領域を所定のサイズに分割することによって得られる複数のデータページのうち、1または複数のデータページを、仮想テープに動的に割り当てるデータページ割当処理と、
前記データページ割当処理によって1または複数のデータページが割り当てられた仮想テープを削除するとき、前記複数のデータページの各々に関連付けられており、当該データページに何れの仮想テープのデータが残存しているのかを示す最終割り当て仮想テープ情報を含むデータページ管理情報に基づいて、削除対象の仮想テープのデータが残存しているデータページに記録されているデータを消去するデータ消去処理と、をコンピュータに実行させることを特徴とするプログラム。
(付記14)付記13に記載のプログラムを記録した記録媒体。