(57)【要約】【課題】  本発明の課題は、例えば光ディスクアーカイブシステム等に対し、分散ストレージクラスタとしての機能を提供することにある。【解決手段】  上記目的を達成するため、複数の記録媒体に対しデータを記録再生するライブラリ装置と、前記ライブラリ装置を管理するサーバとを備え、前記記録媒体がデータ追記型の記録媒体であり、前記サーバの制御部は、上位サーバＩ／Ｆ部を介して受信したデータを、データ格納部に格納されたファイルに追記し、データが追記されたファイルをライブラリＩ／Ｆ部を介してライブラリ装置に送信し、サーバＩ／Ｆを介して受信したファイルを記録再生部が記録媒体に記録する様、ライブラリ装置を制御することを特徴とするデータアーカイブシステムを用いる。【選択図】図１
2016197357.tif 000002
【特許請求の範囲】
【請求項１】
複数の記録媒体に対しデータを記録再生するライブラリ装置と、前記ライブラリ装置を管理するサーバとを備えるデータアーカイブシステムであって、
前記ライブラリ装置は、
複数の記録媒体を格納する記録媒体格納部と、
前記記録媒体に対しデータを記録及び再生する記録再生部と、
前記記録再生部と記録媒体格納部との間で前記記録媒体を運搬する記録媒体搬送部と、
前記サーバと情報を送受信するサーバＩ／Ｆ部と、を備え、
前記サーバは、
前記ライブラリ装置を制御する制御部と、
上位サーバとデータを送受信する上位サーバＩ／Ｆ部と、
前記ライブラリ装置と情報を送受信するライブラリＩ／Ｆ部と、
前記上位サーバＩ／Ｆ部及び前記ライブラリＩ／Ｆ部で送受信するデータを格納するデータ格納部と、を備え、
前記記録媒体はデータ追記型の記録媒体であり、
前記サーバの前記制御部は、
前記上位サーバＩ／Ｆ部を介して受信したデータを、前記データ格納部に格納されたファイルに追記し、
前記データが追記された前記ファイルを前記ライブラリＩ／Ｆ部を介して前記ライブラリ装置に送信し、
前記サーバＩ／Ｆを介して受信した前記ファイルを前記記録再生部が前記記録媒体に記録する様、前記ライブラリ装置を制御することを特徴とするデータアーカイブシステム。
【請求項２】
請求項１に記載のデータアーカイブシステムであって、
前記サーバの前記制御部は、前記データ格納部に格納された複数のファイルの状態を監視し、
前記データ格納部に格納された前記ファイルの内、データの追記が完了したファイルを選択的に抽出し、前記ライブラリＩ／Ｆ部を介して前記ライブラリ装置に送信することを特徴とするデータアーカイブシステム。
【請求項３】
請求項１に記載のデータアーカイブシステムであって、
前記サーバの前記制御部は、データ追記型の前記記録媒体に記録されたファイルを前記記録再生部により再生し、当該ファイルを前記サーバＩ／Ｆを介して前記サーバに送信する様、前記ライブラリ装置を制御し、
当該ファイルを前記データ格納部に複製し、前記データ格納部に複製された前記ファイルに前記上位サーバＩ／Ｆ部を介して受信したデータを追記することを特徴とするデータアーカイブシステム。
【請求項４】
複数の記録媒体に対してデータを記録再生するライブラリ装置と、データ格納部とを備えるデータアーカイブシステムにおける、データ記録方法であって、
上位システムから受信したデータを、前記データ格納部に格納されたファイルに追記し、
前記データが追記された前記ファイルを前記ライブラリ装置に送信し、
前記ファイルを前記記録再生部によりデータ追記型の記録媒体に記録することを特徴とするデータ記録方法。
【請求項５】
請求項４に記載のデータ記録方法であって、
前記データ格納部に格納された複数のファイルの状態を監視し、
前記データ格納部に格納された前記ファイルの内、データの追記が完了したファイルを選択的に抽出し、前記ライブラリ装置に送信することを特徴とするデータ記録方法。
【請求項６】
請求項４に記載のデータ記録方法であって、
データ追記型の前記記録媒体に記録されたファイルを前記記録再生部により再生し、
再生した当該ファイルを前記データ格納部に送信し、
当該ファイルを前記データ格納部に複製し、前記データ格納部に複製された前記ファイルに前記上位システムから受信したデータを追記することを特徴とするデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データアーカイブシステム及びデータ記録方法に関する。
【背景技術】
【０００２】
特許文献１には、電子データを光ディスクに格納する際、ＨＤＤをバッファとして用いるライトバック制御が行われ、ホストからストレージコントロールサーバが受け取ったファイルは、ファイルシステム（例えば、ＸＦＳ）に書き込まれ、コマンドコントロールデーモン（ＣＣＤ）が当該ファイルの生成完了を認識した場合は、ＵＤＦ  Ｉｍａｇｅ  Ｃｒｅａｔｏｒに対して、光ディスクへの書き込むための前準備として、当該ファイルをＵＤＦ  Ｆｉｌｅｓｙｓｔｅｍ  Ｉｍａｇｅ形式へと変換すること、その後、ＵＤＦ  Ｉｍａｇｅ  ＣｒｅａｔｏｒはＳＢＣＤに対して、当該ＵＤＦ  Ｆｉｌｅｓｙｓｔｅｍ  Ｉｍａｇｅを光ディスクに書き込むように指示することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１２−５２６３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、多くの企業が内部統制や法令順守を推進し、企業情報システム内の電子データ（メール、ドキュメント、トランザクションログ)を改ざんから防ぐため、これらをＷＯＲＭ（あるいは、ライトワンス）メディアにアーカイブしようとする動きがある。
例えば、ＷＯＲＭメディアの一つである光ディスクは、他の電子記録媒体に比べ、低コストで長期間の保管が可能な媒体特性を持ち、アーカイブ用途での利用に適している。以上のような光ディスクへの読み書きを行う複数の光ディスクドライブを搭載し、多数の光ディスクカートリッジを格納する機構を備えたものを、光ディスクライブラリ装置と呼ぶ。
一方で、光ディスクは、データの書き込みを行う前に、カートリッジからドライブへの装填を必要とし、ハードディスクドライブ（ＨＤＤ）等に比べ、ライトレスポンス時間が大きいという特徴がある。そこで、例えば、光ディスクに書き出す予定のデータを、一時的に光ディスクより高性能なＨＤＤにバッファリングする制御（以下、ライトバック制御）が行われる。こうした機構を備えたストレージコントロールサーバと、バッファリングに用いるストレージ（例えば、ＨＤＤ）と、光ライブラリ装置と、からなる階層記憶システムを、光ディスクアーカイブシステムと呼ぶ。
【０００５】
特許文献１によると、ファイルシステム（ＸＦＳ）に格納されたファイルの生成後、コマンドコントロールデーモン（ＣＣＤ）は、ファイルをＵＤＦ  Ｆｉｌｅ  ｓｙｓｔｅｍ  Ｉｍａｇｅに変換し、光ディスクへの書き込みを行う。
【０００６】
本発明が前提とする構成において、複数の分散データベースサーバから構成される分散ストレージクラスタは、ホスト計算機からオブジェクト格納コマンドと共に送られたオブジェクト（データ）を、前述した光ディスクアーカイブシステム内にライトしたチャンクファイルに対して追記格納する。当該チャンクファイルがＲｅ−Ｗｒｉｔａｂｌｅな特性を持つライトバックバッファ（ＨＤＤ）内に存在する場合は、チャンクファイルへのオブジェクト（データ）の追記格納は可能である。一方、前述した光ディスクアーカイブシステムが、チャンクファイルを光ディスクにライト後であった場合、光ディスクに格納されたチャンクファイルには、オブジェクトの追記格納ができず、ライトが失敗するという課題がある。
【課題を解決するための手段】
【０００７】
上記課題を改善するために、例えば一例として特許請求の範囲に記載の構成を採用する。
【発明の効果】
【０００８】
本発明によれば、ホスト計算機等に対して、例えばオブジェクトデータ等の格納先として、光ディスクアーカイブシステム等を備える分散ストレージクラスタとしての機能を提供することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】ホスト、分散データベースサーバ、ストレージコントロールサーバ、光ディスクライブラリ装置からなる全体構成を示すブロック図
【図２】光ディスクライブラリ装置内部の物理構成を示すブロック図
【図３】ストレージコントロールサーバ内部の物理構成を示すブロック図
【図４】分散データベースサーバ内部の物理構成を示すブロック図
【図５】光ディスクライブラリ装置内のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図
【図６】ストレージコントロールサーバ内のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図
【図７】分散データベースサーバ内のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図
【図８】ボリューム情報テーブル
【図９】ボリューム番号とディスク番号との対応関係を示すテーブル
【図１０】カートリッジ番号とディスク番号との対応関係を示すテーブル
【図１１】チャンク管理情報テーブル
【図１２】分散データベースサーバが、ホスト計算機から、オブジェクト格納コマンド受信した場合、分散データベースサーバのホストコマンド制御部が、オブジェクトをファイルバッフリングストレージに格納後、チャンク管理情報を設定する処理フロー
【図１３】ストレージコントロールサーバ１０３のチャンク状態監視部が、ファイルバッフリングストレージ内のチャンク管理情報を参照し、チャンクファイルを光ディスクへの書き込み可能状態としてアーカイブシステムデータベースに登録する処理フロー
【図１４】ストレージコントロールサーバのマイグレーション制御部が、光ディスクへの書き込み可能状態のチャンクファイルを光ディスクへライトする処理フロー
【図１５】ファイル更新の処理フロー
【図１６】ファイルリネーム処理フロー
【発明を実施するための形態】
【００１０】
以下、本発明の実施例を説明する。
【００１１】
なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
【００１２】
また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、ＣＰＵの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００１３】
また、各要素例えば、論理ボリュームは、番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。
【００１４】
以下、図を用いて、本発明の実施例を説明する。以下の図中、同一の部分には同一の符号を付加する。ただし、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【実施例１】
【００１５】
＜ホスト、分散データベースサーバ、ストレージコントロールサーバ、光ディスクライブラリ装置からなる全体構成＞
図１に、システム全体の物理構成を示す。
【００１６】
システムは、例えば、光ディスクライブラリ装置１０１と、ストレージコントロールサーバ１０２と、分散データベースサーバ１０３、ホスト計算機１０４と、を備える計算機システムを構成する一つの装置である。
【００１７】
光ディスクライブラリ装置１０１と、ストレージコントロールサーバ１０２とは、例えば、通信線を介して接続される。また、分散データベースサーバ１０３と、ストレージコントロールサーバ１０３とは、例えば、通信線を介して接続される。
【００１８】
分散データベースサーバ１０３は、例えば、通信線を介してネットワークに接続される。各ホスト計算機１０４は、例えば、通信線を介してネットワークに接続される。
【００１９】
なお、上述の通信線は、例えば、メタルケーブルや光ファイバケーブル等の有線として構成される。しかし、各ホスト計算機１０４と分散データベースサーバ１０３間とを、それぞれ無線で接続することも可能である。この場合は、通信線は省略される。
【００２０】
また、光ディスクライブラリ装置１０１とストレージコントロールサーバ１０２間の通信線と、分散データベースサーバ１０３とストレージコントロールサーバ１０２間の通信線と、分散データベースサーバ１０３とネットワーク間の通信線と、ホスト計算機１０４とネットワーク間の通信線と、は、共通のネットワークであっても良い。ネットワークは、通信ネットワークであり、例えば、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
【００２１】
＜光ディスクライブラリ装置の物理構成と役割＞
図２に、光ディスクライブラリ装置の物理構成を示す。
【００２２】
図２において、光ディスクライブラリ装置は、例えば、光ディスクライブラリ装置１０１と、ストレージコントロールサーバ１０２と、分散データベースサーバ１０３、ホスト計算機１０４と、を備える計算機システムを構成する一つの装置である。
【００２３】
次に、光ディスクライブラリ装置１０１の内部構成を説明する。
【００２４】
光ディスクライブラリ装置１０１は、例えば、一つまたは複数のＣＰＵ２１１と、一つまたは複数の制御用メモリ２１２と、光ディスクに対しデータを記録及び再生する一つまたは複数の記録再生装置（以下、ドライブ）２１４と、複数の光ディスクを格納する一つまたは複数の光ディスク格納部（以下、カートリッジ）１１５と、ドライブ２１４とカートリッジ１１５との間で光ディスクを搬送する一つまたは複数の搬送装置２１３と、を備える。
【００２５】
各カートリッジ１１５内には、一つまたは複数の光ディスク１１６を内蔵している。また、各カートリッジ１１５は光ディスクライブラリ装置１０１から取り外しが可能となっている。
【００２６】
光ディスク１１６は、データを記録して保持する役割を持ち、且つデータの書換えができないデータ追記型（例えば、ＷＯＲＭ：Ｗｒｉｔｅ Ｏｎｃｅ Ｒｅａｄ Ｍａｎｙ等）の記録媒体として、例えばＢｌｕｅ−ｒａｙ  Ｄｉｓｃ（ＴＭ）、またはＨｏｌｏｇｒａｍ  Ｄｉｓｃ等を想定している。なお、光ディスクは、それらのうちの少なくとも１つに代えて、またはそれらに加えて、他の種類の物理的な記憶デバイス、例えばテープデバイス等でも良い。
【００２７】
一つまたは複数の光ディスク搬送装置２１３と、一つまたは複数のドライブ２１４は、例えば、カッパーケーブル、光ケーブルあるいはバス等の通信路を介して、光ディスクライブラリ装置に接続される。
【００２８】
なお、複数の光ディスクで、一つまたは複数のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）グループを構成することができる。
【００２９】
以上が、光ディスクライブラリ装置１０１の物理構成に関する説明である。
【００３０】
次に、光ディスクライブラリ装置１０１の役割を説明する。
【００３１】
光ディスクライブラリ装置１０１は、ストレージコントロールサーバＩ／Ｆ部を介してストレージコントロールサーバ１０２から受信したコマンドに従って、光ディスク搬送装置２１３に対するディスク搬送処理、またはドライブ２１４に対する電子データの入出力処理、即ち、光ディスクへのデータのライト（書き込み）やリード（読み出し）を制御する。
【００３２】
分散データベースサーバ１０３と、ストレージコントロールサーバ１０２と、を介して光ディスクライブラリ１０１装置に格納される電子データは、本来の光ディスクへのライトコマンドの要求元であるホスト計算機１０４からのものであるが、分散データベースサーバ１０３と、ストレージコントロールサーバ１０２の構成と動作については後述する。
【００３３】
光ディスクライブラリ装置１０１は、コマンドの送信元であるストレージコントロールサーバ１０２に対して、ドライブ２１４に装填した光ディスクを、実記憶領域が既に割り当てられている状態であり、かつアクセス対象としての論理ボリュームとして提供する。
【００３４】
ストレージコントロールサーバ１０２は、ドライブ２１４に装填した光ディスクの実記憶領域を、例えば、Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ（以下、ＬＢＡ）によって参照したり、識別したりすることができる。光ディスクライブラリ装置１０１は、ストレージコントロールサーバ１０２から受信したコマンドに従って、ＬＢＡで指定されるファイルに対し、電子データの入出力処理、即ち、データのライト（書き込み）やリード（読み出し）を制御する。
【００３５】
また、ストレージコントロールサーバ１０２は、光ディスクの実記憶領域上にファイルシステムをマッピングし、ファイル単位で、光ディスク内に保存された電子データファイルにアクセスする実施形態を取ることもできる。ファイルシステムとして、例えば、Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ（以下、ＵＤＦ）等を用いる。光ディスクライブラリ装置１０１は、ストレージコントロールサーバ１０２から受信したコマンドに従って、ファイルパスで指定されるファイルに対し、電子データの入出力処理、即ち、データのライト（書き込み）やリード（読み出し）を制御する。
【００３６】
以上が、光ディスクライブラリ装置（１０１）の役割に関する説明である。
【００３７】
＜ストレージコントールサーバの物理構成＞
図３に、ストレージコントロールサーバ１０２の物理構成を示す。
【００３８】
図３において、ストレージコントロールサーバ１０２は、例えば、光ディスクライブラリ装置１０１、ストレージコントロールサーバ１０２と、分散データベースサーバ１０３と、ホスト計算機１０４と、を備える計算機システムを構成する一つの装置である。また、ストレージコントロールサーバ１０２とその他の計算機や装置と、の接続は、前述のとおりである。
【００３９】
ストレージコントロールサーバ１０２の内部構成を説明する。
【００４０】
ストレージコントロールサーバ１０２は、例えば、一つまたは複数のＣＰＵ３１１と、一つまたは複数の制御用メモリ３１２と、一つまたは複数のアーカイブシステムデータベース（以下、アーカイブシステムＤＢ）３１４と、一つまたは複数のデータ格納部（以下、ファイルバッファリングストレージ）３１３を備える。ファイルバッファリングストレージ３１３の役割については後述する。
【００４１】
通信Ｉ／Ｆとしては、例えば、分散データベースサーバ１０３から、ファイル格納・読み出し指示を受け取るデータベースサーバＩ／Ｆと、光ディスクライブラリ装置にリードやライトを送信するライブラリＩ／Ｆと、を備える。
【００４２】
これらライブラリＩ／Ｆと、データベースサーバＩ／Ｆと、ＣＰＵと、制御用メモリと、一つまたは複数のアーカイブシステムＤＢと、一つまたは複数のファイルバッファリングストレージ３１３と、はバス等の通信線を介して相互に接続される。
【００４３】
分散データベースサーバ１０３を介してストレージコントロールサーバ１０２に転送される電子データは、本来の光ディスクへのライトやリードのアクセス要求元であるホスト計算機１０４からのものであるが、分散データベースサーバ１０３の構成と動作については後述する。
【００４４】
なお、本実施例ではファイルバッファリングストレージ３１３がストレージコントロールサーバ１０２内にあるものを一例として説明するが、ファイルバッファリングストレージ３１３はストレージコントロールサーバ１０２の外にあっても良い。すなわち、ストレージコントロールサーバ１０２の定義としてファイルバッファリングストレージ３１３を含むものに限定されない。
【００４５】
以上が、ストレージコントロールサーバ１０２の物理構成に関する説明である。
【００４６】
＜分散データベースサーバの物理構成＞
図４に、分散データベースサーバの物理構成１０３の物理構成を示す。
【００４７】
図４において、分散データベースサーバの物理構成１０３は、例えば、光ディスクライブラリ装置１０１、ストレージコントロールサーバ１０２と、分散データベースサーバ１０３と、ホスト計算機１０４と、を備える計算機システムを構成する一つの装置である。また、分散データベースサーバの物理構成１０３とその他の計算機や装置と、の接続は、前述のとおりである。
【００４８】
分散データベースサーバ１０３の内部構成を説明する。
【００４９】
分散データベースサーバ１０３は、例えば、一つまたは複数のＣＰＵ４１１と、一つまたは複数の制御用メモリ４１２と、一つまたは複数のオブジェクトマッピングデータベース（以下、オブジェクトマッピングＤＢ）４１３と、を備える。
【００５０】
通信Ｉ／Ｆとしては、例えば、ホスト計算機１０４から、オブジェクト格納・読み出し指示を受け取るホストＩ／Ｆと、ストレージコントロールサーバ装置にファイルのリードやライトコマンドを送信するストレージＩ／Ｆと、を備える。
【００５１】
これらストレージＩ／Ｆと、ホストＩ／Ｆと、ＣＰＵと、制御用メモリと、一つまたは複数のオブジェクトマッピングデータベース（以下、オブジェクトマッピングＤＢ）と、はバス等の通信線を介して相互に接続される。
【００５２】
以上が、ストレージコントロールサーバ１０２の物理構成に関する説明である。
【００５３】
ホスト計算機１０４は、オペレーティングシステム（ＯＳ）と、ＯＳ上で実行されるアプリケーション（ＡＰＰ）と、から構成される。ＡＰＰは、例えば、ＯＳが提供する入出力インタフェースを利用して、分散データベースサーバ１０３へのデータの入出力を行う。
【００５４】
ホスト計算機１０４が分散データベースサーバ１０３に対して行う入出力の単位は、オブジェクトである。オブジェクトデータは、例えば、オブジェクト識別子（以下、オブジェクトＩＤ）またはオブジェクトキーによって識別される。この例では、ホスト計算機１０４が意味のあるデータの集まりをオブジェクトとして読んでいるに過ぎず、ホスト計算機がこのデータの集まりを識別できるならば、オブジェクトは、例えば、ブロックやレコードやファイル、オブジェクトＩＤは、ファイルパスは、ＩＤ番号のようなものでもよい。
【００５５】
分散データベースサーバ１０３は、ホスト計算機１０４から受信したオブジェクト格納・読み出し指示に従い、ストレージコントロールサーバを介して、光ディスクライブラリ装置に対するデータの入出力コマンド、あるいは光ディスク搬送装置２１３に対する光ドライブ２１４への光ディスク搬送処理コマンドを送信し、その応答を受信する。即ち、光ディスクライブラリ装置を介して、光ディスクへのデータのライト（書き込み）やリード（読み出し）を行う。
【００５６】
次に、分散データベースサーバ１０３とストレージコントロールサーバ１０２の役割を説明するために、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト格納コマンド受信した場合に、当該オブジェクトを光ディスクへライトする流れと、分散データベースサーバ１０３が、ホスト計算機１０４から、ファイル読み出しコマンドを受信した場合に、当該オブジェクトを光ディスクからリードする流れと、を説明する。
【００５７】
＜分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト格納コマンド受信した場合、当該オブジェクトを光ディスクにライトする流れ＞
ストレージコントロールサーバ１０２は、ファイルシステム部６１２の機能として、ファイルバッファリングストレージ３１３の実記憶領域上に、ファイルシステム（例えば、ＸＦＳ）をマッピングし、ディレクトリパスとファイル名からなるファイルパスによって一意に識別可能なファイルデータの読み出し（リード）を行ったり、あるいは書き出し（ライト）を行ったりする機能を提供する。
【００５８】
また、ストレージコントロールサーバ１０２は、サーバコマンド制御部６１１の機能として、分散データベースサーバ１０３から、ファイル名とファイル格納コマンドと、ファイル（データ）とを、受信した場合、ファイルシステム部６１２の機能を利用することで、当該ファイル（データ）を、ストレージコントロールサーバ１０２内のファイルバッファリングストレージ３１３に格納する。
【００５９】
分散データベースサーバ１０３は、ホストコマンド制御部７１１の機能として、ホスト計算機１０４から、オブジェクトＩＤとオブジェクト格納コマンドと、オブジェクト（データ）とを、受信した場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内に、チャンクファイルと呼ばれるファイルが存在するかどうかを調べ、存在しない場合は、新たにチャンクファイルを作成し、チャンクファイル内に、オブジェクト（データ）を格納する。このとき、分散データベースサーバ１０３のホストコマンド制御部７１１は、チャンクファイル内に、これより前に格納された他のオブジェクト（データ）が存在する場合、当該オブジェクト（データ）の後ろに新たなオブジェクト（データ）を追記格納する。なお本実施例では、チャンクファイルに対しオブジェクトデータが追記される形式を例に説明するが、ファイルにデータが追記される他の分散ストレージクラスタの形式でも適用可能である。
【００６０】
チャンクファイルのサイズは、チャンクファイル内に格納されたオブジェクト（データ）のデータ量の総和として計算することができる。
【００６１】
分散データベースサーバ１０３のホストコマンド制御部７１１は、チャンクファイルに最大サイズが設定されている場合、ホスト計算機１０４から、受信したオブジェクト（データ）と、現時点のチャンクファイルのサイズと、の和が、チャンクファイルの最大サイズを超えるかどうかを調べる。分散データベースサーバ１０３のホストコマンド制御部７１１は、受信したオブジェクト（データ）と、現時点のチャンクファイルのサイズと、の和が、チャンクファイルの最大サイズを超える場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内に、新たにチャンクファイルを作成し、当該新チャンクファイル内に、ホスト計算機１０４から受信したオブジェクト（データ）を格納する。チャンクファイルの最大サイズは、例えば、２ギガバイトサイズである。オブジェクト（データ）のサイズは、例えば、１メガバイトである。チャンクファイルの最大サイズや、オブジェクト（データ）のサイズは、他のサイズを取ることもできる。
【００６２】
分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内のチャンクファイルにオブジェクト（データ）を格納後、“オブジェクトＩＤ”と、オブジェクト（データ）が格納されたチャンクファイル名とディレクトリパスから構成される“チャンクファイルパス”と、“チャンクファイルの先頭アドレスからのオフセットアドレス”と、を、オブジェクトマッピングＤＢ（４１３）に記憶する。
【００６３】
分散データベースサーバ１０３は、オブジェクトマッピングＤＢ（４１３）の内容と、オブジェクトＩＤと、に基づき、該当オブジェクトが保存された“チャンクファイルパス”と、“チャンクファイルの先頭アドレスからのオフセットアドレス”を取得することができる。分散データベースサーバ１０３は、“チャンクファイルパス”を指定し、ストレージコントロールサーバ１０２を介して、チャンクファイル（データ）を読み出し、“チャンクファイルの先頭アドレスからのオフセットアドレス”を用いて、オブジェクト（データ）にアクセスすることができる。
【００６４】
なお、分散データベースサーバ１０３のホストコマンド制御部７１１は、ホスト計算機１０４に対して、オブジェクト格納コマンドの処理が完了した旨の通知を、チャンクファイル内の空き領域にオブジェクト（データ）を格納後、あるいは、オブジェクトマッピングＤＢ（４１３）に、“オブジェクトＩＤ”と、“チャンクファイルパス”と、“チャンクファイルの先頭アドレスからのオフセットアドレス”と、を、記憶した時点で行う構成を取ることができる。或いは、後述するチャンク状態監視部６１３が、アーカイブシステムＤＢ（３１４）に、当該チャンクファイルを、光ディスクに書き込み可能な状態として登録後に行う構成でもよい。或いは、後述するマイグレーション制御部６１４が、当該チャンクファイルを光ディスクに書き込み、後述するスタブ情報を作成後に行う構成でもよい。一般に利用されるのはチャンクファイル内の空き領域に、オブジェクトデータを保存した時点で行う構成であって、その理由は、ホスト計算機１０４から受信したオブジェクト（データ）をファイルバッファリングストレージ３１３に記憶する処理よりも、ファイルバッファリングストレージ３１３から読み出したチャンクファイルを光ディスクライブラリ装置１０１内のドライブ２１４を介して光ディスクに書き込む処理の方がずっと遅いためである。
【００６５】
ストレージコントロールサーバ１０２内の、後述するチャンク状態監視部６１３の機能として、前述したチャンクファイルパスを、アーカイブシステムＤＢ（３１４）に、“光ディスクに書き込み（以下、マイグレーション）可能な状態”として登録する。チャンク状態監視部６１３の詳細な動作は後述する。
【００６６】
ストレージコントロールサーバ１０２は、マイグレーション制御部６１４の機能として、前述したアーカイブシステムＤＢ（３１４）内のチャンクファイルパスの一覧と、チャンクファイルの状態を取得する。ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、取得したチャンクファイルパスの一覧の中から、チャンクファイルの状態が、“光ディスクに書き込み可能な状態”に設定されているチャンクファイルパス（Ｘ）を選択し、チャンクファイルパス（Ｘ）が指すチャンクファイル（データ）（Ｄ）の光ディスクへのライト処理を行う。ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、取得したチャンクファイルパスの一覧の中から前述した条件に該当する全てのチャンクファイルパス（Ｘ）に対して、以下の通り、光ディスクへのライト処理を行う。
【００６７】
ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、ボリューム情報テーブル８１１に基づき、チャンクファイルサイズ以上の空きが存在するボリューム番号（Ａ）と“空き領域の先頭ボリュームアドレス、あるいは空きファイルパス（Ｂ）”を調べる。
【００６８】
ここで、前述したボリュームとは、光ディスクにそれぞれ対応している。ストレージコントロールサーバ１０２が、ドライブ２１４に装填した光ディスクの実記憶領域を、例えば、Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ（以下、ＬＢＡ）によって参照したり、識別したりする場合は、空き領域の先頭ボリュームアドレス（Ｂ）は、ボリューム容量（例：１０７３７４１８２４００ バイト）から使用済み容量（例：２１４７４８３６４８バイト）の数値を引いた数字（例：１０５２２６６９８７５２）として算出することができる。
【００６９】
また、光ディスクの実記憶領域上に、例えば、前述したＵＤＦをマッピングし、ファイルパスによって、光ディスク内に保存された電子データにアクセスする実施形態を取っている場合は、当該光ディスクにはチャンクファイルが全く記録されていないか、あるいは、既に一つまたは複数のチャンクファイルが記録されている。既に一つまたは複数のチャンクファイルが記録されている場合、当該一つまたは複数のチャンクファイルに対応したファイルパスと異なるファイルパスを任意に選び、空きファイルパス（Ｂ）を得ることができる。
【００７０】
以上のように、光ディスクへのアクセスパラメータにＬＢＡを用いる場合は、空き領域の先頭ボリュームアドレス、光ディスクへのアクセスパラメータにファイルパス）を用いる場合は空きファイルパスを用いる。
【００７１】
ボリューム情報テーブル８１１に登録された全ての光ディスクのチャンクファイルサイズ以上の空きが無かった場合は、ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、分散ストレージサーバ１０３を介して、未使用のカートリッジを挿入するようにホスト計算機１０４に通知してもよい。
【００７２】
光ディスクにチャンクファイルサイズ以上の空きがあった場合、ボリューム番号（Ａ）と、後述するボリューム番号とディスク番号との対応関係を示すテーブル９１１と、後述するカートリッジ番号とディスク番号との対応関係を示すテーブル１０１１と、に基づき、該当するカートリッジ番号と光ディスク番号（Ｅ）と、を取得する。
【００７３】
次に、ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、ボリューム番号（Ａ）と、空き領域の先頭ボリュームアドレスあるいは空きファイルパス（Ｂ）と、チャンクファイルサイズ（Ｃ）と、チャンクファイル（データ）（Ｄ）と、カートリッジ番号と光ディスク番号（Ｅ）と、を、コマンドパラメータとして、光ディスクライブラリ装置１０１に対してライトコマンドを送信する。
【００７４】
光ディスクライブラリ装置１０１は、ストレージコントロールサーバ１０２から、ライトコマンドを受信すると、ライトコマンドにパラメータとして含まれるカートリッジ番号と光ディスク番号（Ｅ）と、に基づき、光ディスク搬送装置２１３に対して、該当するディスク番号に対応した光ディスクをカートリッジから取出し、ドライブ２１４に搬送するように指示する。光ディスクライブラリ装置１０１は、ドライブ２１４に格納された光ディスクに、空き領域の先頭ボリュームアドレスあるいは空きファイルパス（Ｂ）と、チャンクファイルサイズ（Ｃ）と、チャンクファイル（データ）（Ｄ）と、に基づき、チャンクファイルをライトし、ストレージコントロールサーバ１０２に対してライト完了を通知する。
【００７５】
ストレージコントロールサーバ１０２のマイグレーション制御部６１４はライト完了通知を受け取ると、ライトしたチャンクファイルサイズ（Ｃ）に基づき、ボリューム情報テーブル８１１の使用済み容量を更新する。
【００７６】
ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、光ディスクへの格納が済んだチャンクファイル（データ）（Ｄ）を、１０４から削除してもよい。
【００７７】
ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、チャンクファイルパス（Ｘ）を“チャンクファイルパス”として、チャンクファイルサイズ（Ｃ）を“チャンクファイルファイルサイズ”として、当該チャンクファイルが格納されたボリューム番号（Ａ）を“ボリューム番号”として、空き領域の先頭ボリュームアドレス、あるいは空きファイルパス（Ｂ）を“ボリュームアドレス、あるいはボリュームファイルパス”として、を記憶する。光ディスクに格納したチャンクファイル毎に存在するこれらの情報を、一つに纏めて“スタブ情報”と呼ぶ。
【００７８】
このチャンクファイルパス（Ｘ）と、チャンクファイルサイズ（Ｃ）、ボリューム番号（Ａ）、ボリュームアドレスあるいはボリュームファイルパス（Ｂ）の関係を示すスタブ情報を、ストレージコントロールサーバ１０２内のファイルバッファリングストレージ３１３内で保持することで、分散データベースサーバ１０３が、ストレージコントロールサーバ１０２を介して、チャンクファイルパス（ディレクトリパスとチャンクファイル名）で指定したボリューム（光ディスク）内のチャンクファイルにアクセスすることが可能となる。
【００７９】
これらのスタブ情報はボリューム（光ディスク）毎に纏められ、当該スタブ情報に対応したチャンクファイル群が格納されたボリューム（光ディスク）と同じボリューム（光ディスク）に格納される実施形態を取ってもよい。これは、ストレージコントロールサーバ１０２内のファイルバッファリングストレージ３１３に障害が生じた場合でも、光ディスクからチャンクファイルに対応するスタブ情報を復旧することを可能にするためである。
【００８０】
以上が、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト格納コマンド受信した場合、当該オブジェクトを光ディスクにライトする流れである。
【００８１】
前述したとおり、ファイルバッファリングストレージ３１３は、ホスト計算機１０４から受信したオブジェクトデータを一時的に格納し、光ディスクへと書き出す“書き込みバッファ（あるいは、ライトバックバッファ）”として機能する。
【００８２】
＜分散データベースサーバ１０３が、ホスト計算機１０４から、ファイル読み出しコマンドを受信した場合、当該オブジェクトを光ディスクからリードする流れ＞
分散データベースサーバ１０３は、ホストコマンド制御部７１１の機能として、ホストＩ／Ｆを介して、いずれかのホスト計算機１０４から、オブジェクトＩＤとオブジェクト読み出しコマンドと、を、受信した場合、分散データベースサーバ１０３のホストコマンド制御部７１１は、オブジェクトマッピングＤＢ（４１３）の内容と、オブジェクト読み出しコマンドにパラメータで指定されるオブジェクトＩＤと、に基づき、該当オブジェクトが保存されたチャンクファイルパス（Ｘ）と、チャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）を取得する。
【００８３】
次に、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１に対して、チャンクファイルパス（Ｘ）をリードパラメータとして、チャンクファイルのリード（読み出し）コマンドを送信する。ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、チャンクファイルパス（Ｘ）で指定されるチャンクファイル（データ）（Ｄ）が、ファイルバッファリングストレージ３１３内に存在するか調べる。ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイル（データ）（Ｄ）がファイルバッファリングストレージ３１３に存在する場合、当該チャンクファイル（データ）（Ｄ）を分散データベースサーバ１０３に送信する。分散データベースサーバ１０３のホストコマンド制御部７１１は、当該チャンクファイル（データ）（Ｄ）と、チャ前述したンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）と、に基づき、オブジェクトデータを取得する。この処理が完了後、分散データベースサーバ１０３のホストコマンド制御部７１１は、オブジェクトデータを、ホスト計算機１０４に送信し、送信が終わった時点でオブジェクト読み出しコマンドの完了を通知する。
【００８４】
ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイル（データ）（Ｄ）がファイルバッファリングストレージ３１３に存在しない場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイルパス（Ｘ）が、ファイルバッファリングストレージ３１３に保存される全スタブ情報の何れかのスタブ情報内に記憶されているか否かを調べる。チャンクファイルパス（Ｘ）がスタブ情報に記憶されている場合、スタブ情報の中に含まれるボリューム番号（Ａ）、ボリュームアドレスあるいはボリュームファイルパス（Ｂ）、チャンクファイルサイズ（Ｃ）を取得する。また、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、チャンクファイルパス（Ｘ）がファイルバッファリングストレージ３１３に保存される全スタブ情報の何れのスタブ情報内にも記憶されていない場合、分散データベースサーバ１０３にチャンクファイルのリード失敗を通知し、この通知を受けた分散データベースサーバ１０３のコマンド制御部７１１は、ホスト計算機１０４に対して、オブジェクト読み出しコマンドの失敗を通知してもよい。
【００８５】
次に、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイルパス（Ｘ）が、ファイルバッファリングストレージ３１３に保存される全スタブ情報の何れかのスタブ情報内に記憶されている場合、ボリューム番号（Ａ）と、後述するボリューム番号とディスク番号との対応関係を示すテーブル９１１と、後述するカートリッジ番号とディスク番号との対応関係を示すテーブル１０１１と、に基づき、チャンクファイルパス（Ｘ）で指定されるチャンクファイルが格納された光ディスクを備えるカートリッジ番号と光ディスク番号（Ｅ）と、を取得する。
【００８６】
次に、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、光ディスクライブラリ装置１０１に対して、ボリューム番号（Ａ）と、ボリュームアドレスあるいはボリュームファイルパス（Ｂ）と、チャンクファイルサイズ（Ｃ）と、カートリッジ番号とディスク番号（Ｅ）と、をパラメータとして、光ディスクライブラリ装置１０１に対してリードコマンドを送信する。
【００８７】
光ディスクライブラリ装置１０１は、リードコマンドにパラメータとして含まれるカートリッジ番号とディスク番号（Ｅ）と、に基づき、読み出し対象となっているチャンクファイルが格納されている光ディスクを、光ディスク搬送装置２１３に対して該当カートリッジから取出し、ドライブ２１４に搬送するように指示する。光ディスクライブラリ装置は、ドライブ２１４に格納された光ディスクから、ボリュームアドレスあるいはボリュームファイルパス（Ｂ）とチャンクファイルサイズ（Ｃ）に基づき、チャンクファイル（データ）（Ｄ）を読み出し、ストレージコントロールサーバ１０２に対して送信する。また、光ディスクライブラリ装置１０１は、ストレージコントロールサーバ１０２へのチャンクファイル（データ）（Ｄ）の送信が終わった時点で、ストレージコントロールサーバ１０２に対して、リード完了を通知する。
【００８８】
ストレージコントロールサーバ１０２は光ディスクライブラリ装置１０１からリード完了通知を受け取ると、光ディスクライブラリ装置１０１から読み出したチャンクファイル（データ）（Ｄ）を分散データベースサーバ１０３に送信する。また、ストレージコントロールサーバ１０２は、分散データベースサーバ１０３へのチャンクファイル（データ）（Ｄ）の送信が終わった時点で、分散データベースサーバ１０３に対して、リード完了を通知する。
【００８９】
分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２からリード完了通知を受け取ると、前述したチャンクファイル（データ）（Ｄ）と、チャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）と、に基づき、オブジェクト（データ）を取得する。次に、分散データベースサーバ１０３のホストコマンド制御部７１１は、オブジェクトデータを、ホスト計算機１０４に送信し、送信が終わった時点でオブジェクト読み出しコマンドの完了を通知する。
【００９０】
以上が、分散データベースサーバ１０３が、ホスト計算機１０４から、ファイル読み出しコマンドを受信した場合、当該オブジェクトを光ディスクからリードする流れである。
【００９１】
ストレージコントロールサーバ１０２内のアーカイブシステムＤＢ（３１４）は、前述した、光ディスクへの書き込み可能な状態に設定されているチャンクファイルパスの一覧の他にも、ボリューム情報テーブル８１１や、ボリューム番号とディスク番号との対応関係を示すテーブル９１１や、カートリッジ番号とディスク番号との対応関係を示すテーブル１０１１を記憶する。アーカイブシステムＤＢ（３１４）は、これらのテーブル以外にも、光ディスクライブラリ装置を制御するために必要な情報が保存される。
【００９２】
分散ストレージサーバ１０３内のオブジェクトマッピングＤＢ（４１３）と、ストレージコントロールサーバ１０２内のファイルバッファリングストレージ３１３と、アーカイブシステムＤＢ（３１４）と、は、例えば、一つまたは複数の不揮発性記憶媒体の一種であるハードディスクドライブ（ＨＤＤ）やＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）から構成されるＲＡＩＤグループの記憶領域上に保存される。ファイルバッファリングストレージ３１３と、アーカイブシステムＤＢ（３１４）と、は、ストレージコントロールサーバと同じネットワークに接続された外部ストレージ装置上に保存されていてもよい。また、オブジェクトマッピングＤＢ（４１３）は、分散ストレージサーバ１０２と同じネットワークに接続された外部ストレージ装置上に保存されていてもよい。
【００９３】
＜光ディスクライブラリ装置１０１内のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック＞
図５に、光ディスクライブラリ装置１０１内のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図を示す。
【００９４】
図５によると、光ディスクライブラリ装置１０１のプログラム内は、ストレージコマンド制御部５１１と、資源管理部５１２と、から構成される。
【００９５】
ストレージコマンド制御部５１１は、分散データベースサーバ１０３から、ストレージコントロールサーバＩ／Ｆを介して、ライトコマンドあるいはリードコマンドを、受信すると、ライトコマンドあるいはリードコマンドのパラメータで指定される光ディスク番号をカートリッジから取り出し、該当ボリューム内のボリュームアドレスあるいはボリュームファイルパスでアクセス可能な実記憶領域に対して、指定サイズ分のファイル（データ）をライトあるいはリードする。
【００９６】
資源管理部５１２は、光ディスクライブラリ装置内のカートリッジ装填状況を監視し装填されたカートリッジあるいはカートリッジ内部のディスクの装填状態や、搬送装置の動作状態等をストレージコントロールサーバ１０２に通知する機能を有する。
【００９７】
＜ストレージコントロールサーバ１０２のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック＞
図６に、ストレージコントロールサーバ１０２のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図を示す。
【００９８】
図６によると、ストレージコントロールサーバ１０２のプログラム内は、サーバコマンド制御部６１１と、ファイルシステム部６１２と、チャンク状態監視部６１３と、マイグレーション制御部６１４と、から構成される。
【００９９】
サーバコマンド制御部６１１は、分散データベースサーバ１０３から、データベースサーバＩ／Ｆを介して、ファイルのライトコマンドを受信すると、ストレージコントロースサーバ１０２内のファイルバッファリングストレージ３１３をライトバックバッファとして利用し、光ディスクライブラリ装置１０１内のボリューム（光ディスク）上の実記憶領域に、ライトコマンドで指定されたファイルパスに対応したチャンクファイルを格納する
また、サーバコマンド制御部６１１は、データベースサーバＩ／Ｆを介して、ライトコマンドで指定されるファイルパスに対応するチャンクファイル（データ）を光ディスクライブラリ装置１０１内のボリューム（光ディスク）から読み出し、分散データベースサーバ１０３に送信する。
【０１００】
ファイルシステム部６１２は、ファイルバッファリングストレージ３１３の実記憶領域上に、ファイルシステム（例えば、ＸＦＳ）をマッピングし、ディレクトリパスとファイル名からなるファイルパスによって一意に識別可能なファイルのリードを行ったり、あるいはライトを行ったりする機能を提供する。ストレージコントロールサーバ１０２のサーバコマンド制御部が、ファイルバッファリングストレージ３１３内のチャンクファイルにアクセスする場合は、ファイルシステム部６１２の機能を介して、ディレクトリパスとファイル名から構成されるファイルパスによって一意に識別可能なチャンクファイル（データ）のリードあるいはライトを行う。
【０１０１】
チャンク状態監視部６１３は、ファイルバッファリングストレージ３１３に保存されたチャンクファイルを、アーカイブシステムＤＢ（３１４）に、光ディスクに書き込み可能な状態として登録する機能を有するが、詳細な動作は後述する。
【０１０２】
チャンク状態監視部６１３の役割は、光ディスクに書き込み可能なチャンクファイルを見つけて、アーカイブシステムＤＢ（３１４）に、書き込み可能な状態として設定するだけであるため、当該制御部が分散データベースサーバ１０３上のプログラム内で動作している実施形態を取ってもよい。この場合、分散データベースサーバ１０３のチャンク状態監視部６１３は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３や、アーカイブシステムＤＢ（３１４）にアクセスする。
【０１０３】
マイグレーション制御部６１４は、ホスト計算機１０４から受信し、ファイルバッファリングストレージ装置３１３にバッファリングされたチャンクファイルで、かつアーカイブシステムＤＢ（３１４）に光ディスクに書き込み可能な状態として登録されたチャンクファイルを、光ディスクライブラリ装置１０１を介して、光ディスクにライトする機能を有するが、詳細な動作は後述する。
【０１０４】
マイグレーション制御部６１４は、アーカイブシステムＤＢ（３１４）を参照し、光ディスクに書き込み可能な状態のチャンクファイルをファイルバッファリングストレージ３１３から光ディスクにマイグレーションすることが役割であるため、当該制御部が、分散データベースサーバ１０３上のプログラム内で動作する、あるいは当該ＤＢが分散データベースサーバ１０３内に存在する実施形態を取ってもよい。この場合、分散データベースサーバ１０３のマイグレーション制御部６１４は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３にアクセスする。
【０１０５】
＜分散データベースサーバ１０３のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック＞
図７に、分散データベースサーバ１０３のＣＰＵ内のローカルメモリに展開されているプログラムの機能ブロック図を示す。
【０１０６】
図７によると、分散データベースサーバ１０３のプログラム内は、ホストコマンド制御部７１１から構成される。
【０１０７】
ホストコマンド制御部７１１は、ホスト計算機１０４から、オブジェクトＩＤとオブジェクト格納コマンドと、オブジェクト（データ）とを、受信した場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内のチャンクファイル内に、オブジェクト（データ）を追記格納する。また、ホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内のチャンクファイルにオブジェクト（データ）を格納後、“オブジェクトＩＤ”と、オブジェクト（データ）が格納されたチャンクファイル名とディレクトリパスから構成される“チャンクファイルパス”と、“チャンクファイルの先頭アドレスからのオフセットアドレス”と、を、オブジェクトマッピングＤＢ（４１３）に記憶し、当該オブジェクトＩＤで指定されるオブジェクト（データ）の格納場所を管理する。
【０１０８】
＜分散ストレージコントロールサーバで管理しているボリューム情報テーブル＞
図８にボリューム情報テーブル８１１の構成を示す。
【０１０９】
図８によると、ボリューム情報テーブル８１１は、ボリューム番号フィールド（８２１）と、ボリューム容量フィールド（８２２）と、使用済み容量フィールド（８２３）と、から構成される。
【０１１０】
ボリューム番号は、ストレージコントロールサーバ１０２が、既に実記憶領域が割り当てられたアクセス対象として、光ディスクを一意に識別するための情報であって、ボリューム番号フィールドの各エントリは、例えば、前述したチャンクファイルが格納されているボリューム（光ディスク）のボリューム番号が格納される。
【０１１１】
ボリューム容量は、光ディスクの容量に対応する情報であって、ボリューム容量フィールドの各エントリは、前述した論理ボリューム番号に対応するボリュームの容量（例えば、単位はバイト）が格納される。
【０１１２】
使用済み容量は、ボリュームにおいて、ファイルデータが格納済みの領域の容量を示す情報であって、ボリューム容量フィールドの各エントリは、前述したボリューム番号に対応するボリュームのライト済み領域の容量（例えば、単位はバイト）が格納される。
【０１１３】
ボリューム情報テーブルは、ストレージコントロールサーバ１０２のアーカイブシステムＤＢ（３１４）に格納されている。また、必要に応じてストレージコントロールサーバ１０２の制御用メモリやＣＰＵ内部のローカルメモリにキャッシュしてもよい。
【０１１４】
＜ボリューム番号とディスク番号との対応関係＞
図９にボリューム番号とディスク番号との対応関係を示すテーブル９１１の構成を示す。
【０１１５】
図９によると、ボリューム番号とディスク番号との対応関係を示すテーブル９１１は、ボリューム番号フィールド（９２１）と、ディスク番号フィールド（９２２）と、から構成される。
【０１１６】
ボリューム番号は、ストレージコントロールサーバ１０２が、既に実記憶領域が割り当てられたアクセス対象として、光ディスクを一意に識別するための情報であって、ボリューム番号フィールドの各エントリは、例えば、前述したチャンクファイルが格納されているボリューム（光ディスク）のボリューム番号が格納される。
【０１１７】
ディスク番号は、光ディスクライブラリ装置１０１内の光ディスクを一意に識別するための情報であって、ディスク番号フィールドの各エントリには、ストレージコントロールサーバ１０２がアクセスするボリュームに、実記憶領域を割り当てている光ディスクのディスク番号が格納される。
【０１１８】
ボリューム番号とディスク番号との対応関係を示すテーブル９１１は、分散データベースサーバ１０３のアーカイブシステムＤＢ（３１４）に格納されている。また、必要に応じてストレージコントロールサーバ１０２の制御用メモリやＣＰＵ内部のローカルメモリにキャッシュしてもよい。
【０１１９】
＜カートリッジ番号とディスク番号との対応関係＞
図１０にカートリッジ番号とディスク番号との対応関係を示すテーブル１０１１の構成を示す。
【０１２０】
図１０によると、カートリッジ番号とディスク番号との対応関係を示すテーブル１０１１は、カートリッジ番号フィールド（１０２１）と、オンライン／オフライン属性フィールド（１０２２）と、ディスク番号フィールドと（１０２３）、から構成される。
【０１２１】
カートリッジ番号は、光ディスクライブラリ装置１０１内のカートリッジを一意に識別するための情報であって、カートリッジ番号フィールドの各エントリは、ボリュームに対して既に実記憶領域が割り当てられた状態にあるディスクを内蔵するカートリッジの番号が格納される。
【０１２２】
オンライン／オフライン属性は、カートリッジが光ディスクライブラリ装置１０１内に装填されているかを示す情報であって、オンライン／オフライン属性フィールドの各エントリには、前述したカートリッジ番号に対応するカートリッジが、光ディスクライブラリ装置されている場合はオンライン、そうでない場合はオフラインに対応する情報が格納される。
【０１２３】
ディスク番号は、光ディスクライブラリ装置１０１内の光ディスクを一意に識別するための情報であって、ディスク番号フィールドの各エントリには、前述したカートリッジ内に含まれる光ディスクに対応するディスク番号が格納される。
【０１２４】
カートリッジ番号とディスク番号との対応関係を示すテーブル１０１１は、分散データベースサーバ１０３のアーカイブシステムＤＢ（３１４）に格納されている。また、必要に応じてストレージコントロールサーバ１０２の制御用メモリやＣＰＵ内部のローカルメモリにキャッシュしてもよい。
【０１２５】
＜チャンク管理情報テーブル ＞
１１にチャンク管理情報テーブル １１１１の構成を示す。
【０１２６】
図１１によると、チャンク管理情報テーブル １１１１は、ロック中のチャンクファイル名フィールド（１１２１）と、チャンクファイルサイズフィールド（１１２２）と、チャンク最大ファイルサイズフィールド（１１２３）と、から構成される。
【０１２７】
ロック中のチャンクファイル名フィールド（１１２１）は、分散データベースサーバ１０３のホストコマンド制御部７１１がロック中のチャンクファイルを、他の制御部によって更新されることを防ぐための情報であって、ロック中のチャンクファイル名フィールド（１１２１）の各エントリには、ロック中のファイルのディレクトリパスとファイル名から構成されるファイルパスが格納される。
【０１２８】
チャンクファイルサイズフィールド（１１２２）は、ロック中のチャンクファイルのサイズを表す情報であって、チャンクファイルサイズフィールド（１１２２）の各エントリには、ロック中のチャンクファイル内に格納された全オブジェクトデータサイズの総和が格納される。
【０１２９】
チャンク最大ファイルサイズフィールド（１１２３）は、チャンクファイルの最大サイズを表す情報であって、チャンク内の全オブジェクトのサイズの総和は、チャンク最大ファイルサイズフィールド（１１２３）の各エントリに格納される値を超えてはならない。新たにオブジェクトを書き込む場合は、新たにチャンクファイルを作成し、ロック中のチャンクファイル名フィールド（１１２１）の値を新チャンクファイルにファイルパスを設定し、新たに作成した当該チャンクファイル内に当該オブジェクトを書き込む。このとき、チャンクファイルサイズフィールド（１１２２）は、新たに作成したチャンクファイル内の全オブジェクトデータサイズの総和に設定される。チャンクファイルサイズフィールドや、チャンク最大ファイルサイズフィールドの値は、必ずしも設定されなくてもよく、その場合は、チャンクの最大サイズは存在しない。
【０１３０】
チャンク管理情報テーブル １１１１は、ストレージコントロールサーバ１０３内のファイルバッファリングストレージ３１３に格納されている。
【０１３１】
＜分散データベースサーバが、ホスト計算機から、オブジェクト格納コマンド受信した場合、チャンク管理情報を更新する流れ＞
図１２に、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト格納コマンド受信した場合、分散データベースサーバ１０３のホストコマンド制御部７１１が、オブジェクトをファイルバッフリングストレージ３１３に格納後、チャンク管理情報を設定する処理フローを示す。
【０１３２】
図１２によると、分散データベースサーバ１０３のプログラム内のホストコマンド制御部７１１が、ホストＩ／Ｆを介して、いずれかのホスト計算機１０４から、オブジェクトＩＤとオブジェクト格納コマンドと、オブジェクトデータとを、受信した場合、ホストコマンド制御部７１１は、オブジェクトデータを一定サイズ（例えば、１メガバイト）の“分割オブジェクト”に分割する（Ｓ１００１）。
【０１３３】
次に、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバのサーバコマンド制御部６１１を介して、分割オブジェクトを、ファイルバッファリングストレージ３１３内のチャンクファイルの空き領域に追記する。ホストコマンド制御部７１１は、“オブジェクトＩＤ”と、“オブジェクトデータが保存されたチャンクファイル名とファイルシステム上のディレクトリ情報を合わせた“チャンクファイルパス”と、“チャンクファイルの先頭アドレスからのオフセットアドレス”と、を、オブジェクトマッピングＤＢ（４１３）に記憶する。（Ｓ１００２）。
【０１３４】
分散データベースサーバ１０３のホストコマンド制御部７１１は、チャンクファイルの空き領域が存在しない場合、当該チャンクファイルに対しこれ以上追記ができないことを示すロックフラグを生成する。そして、ストレージコントロールサーバのサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内に追記可能な新たなチャンクファイルを作成する（Ｓ１００３）。
【０１３５】
次に、ホストコマンド制御部７１１は、新たに作成したチャンクファイルのファイルパスを、ストレージコントロールサーバのサーバコマンド制御部６１１を介して、ファイルバッファリングストレージ３１３内のチャンク管理情報テーブル１１１１の“ロック中のチャンクファイル名フィールド”のエントリに、新たなチャンクファイルのファイルサイズを、チャンク管理情報をテーブル９１１の“チャンクファイルサイズフィールド”のエントリに、チャンクの最大サイズ（例えば、２ギガバイト）を、チャンク管理情報テーブル１１１１の“チャンク最大ファイルサイズフィールド”のエントリに設定する（Ｓ１００４）。ただし、分散データベースサーバ１０３のホストコマンド制御部７１１は、チャンクに分割オブジェクト分の空き領域（例えば、１メガバイト）が存在する場合、オブジェクトを追記したチャンクをそのままロックし続けるため、チャンク管理情報テーブル１１１１の更新は行わない。
【０１３６】
チャンクファイルの最大サイズが指定されていない場合は、以上の処理のうち、（Ｓ１００３）で示す処理と、チャンク管理情報テーブル１１１１の“チャンク最大ファイルサイズフィールド”のエントリへの設定処理は不要となる。
【０１３７】
分散データベースサーバ１０３のホストコマンド制御部７１１は、ホスト計算機１０４に対して、オブジェクト格納コマンドの処理が完了した旨の通知を行い、オブジェクト格納処理を終了する。
【０１３８】
＜ストレージコントロールサーバのチャンク状態監視部が、ファイルバッフリングストレージ内のチャンク管理情報を参照し、チャンクファイルを光ディスクへの書き込み可能状態としてアーカイブシステムデータベースに登録する流れ＞
図１３に、ストレージコントロールサーバ１０２のチャンク状態監視部６１３が、ファイルバッフリングストレージ３１３内のチャンク管理情報テーブル１１１１を参照し、チャンクファイルを光ディスクへの書き込み可能状態としてアーカイブシステムＤＢ（３１４）に登録する処理フローを示す。
【０１３９】
図１３によると、ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、ファイルバッファリングストレージ３１３内のチャンク管理情報テーブル１１１１の“ロック中のチャンクファイル名フィールド”のエントリを参照し、現在ロックしているファイルに関する情報が存在するかどうかを調べる（Ｓ１３０１）。
【０１４０】
現在ロックしているファイルに関する情報が存在する場合、ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、現在ロックしている全てのファイル（すなわち、データの追記が完了しており、これ以上の追記がされないことから、光ディスクへの書き込み可能なチャンクファイル）のファイルパスを取得する（Ｓ１３０２）。
【０１４１】
次に、ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、ファイルバッファリングストレージ３１３内に存在するチャンクファイルのうち、現在ロックしていないファイルのファイルパス（Ｘ）を取得し、以下の（１）、（２）の処理を実施する。また、ファイルバッファリングストレージ３１３内に存在するチャンクファイルのうち、現在ロックしていない他のファイル（すなわち、さらに追記される可能性があるため光ディスクへの書き込み不可のチャンクファイル）についても同様の処理を行う（Ｓ１３０３）。
【０１４２】
（１）  ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、ファイルパス（Ｘ）が、当該システムで予め設定された“光ディスクへの書き込み不可リスト”内に含まれていないかを調べる（Ｓ１３０４）。
【０１４３】
（２）  ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、ファイルパス（Ｘ）が、 “光ディスクへの書き込み不可リスト”内に含まれていない場合、当該ファイルパス（Ｘ）で指定されたファイルを、ストレージコントロールサーバ１０２上で更新不可能な状態に設定する。また、また、チャンク状態監視部６１３は、当該ファイルパス（Ｘ）と、“光ディスクへの書き込み可能状態”と、をアーカイブシステムＤＢ（３１４）に設定する（Ｓ１３０５）。
【０１４４】
ストレージコントロールサーバ１０２のチャンク状態監視部６１３は、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト格納コマンドの受信に同期して処理を開始してもよいし、定期的に行う処理として、ホスト計算機１０４からのコマンドとは非同期に動作してもよい。
【０１４５】
＜ストレージコントロールサーバのマイグレーション制御部が、光ディスクへの書き込み可能状態のチャンクファイルを光ディスクへライトする流れ＞
図１４に、ストレージコントロールサーバ１０２のマイグレーション制御部６１４が、光ディスクへの書き込み可能状態のチャンクファイルを光ディスクへライトする処理フローを示す。
【０１４６】
図１４によると、ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、前述したアーカイブシステムＤＢ（３１４）内のチャンクファイルパスの一覧と、チャンクファイルの状態を取得する（Ｓ１４０１）。
【０１４７】
ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、取得したチャンクファイルパスの一覧の中から、チャンクファイルの状態が、“光ディスクに書き込み可能な状態”に設定されているチャンクファイルが存在するかどうかを調べる（Ｓ１４０２）。
チャンクファイルの状態が、“光ディスクに書き込み可能な状態”に設定されているチャンクファイル（データの追記が完了したチャンクファイル）が存在する場合、そのチャンクファイルを選択的に抽出し光ディスクへ書き込む。例えば、ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、ボリューム情報テーブル８１１を参照し、チャンクファイルを格納する分だけの空き領域の存在するボリューム（光ディスク）を選択し、光ディスクライブラリ装置１０１を介して、“光ディスクに書き込み可能な状態”に設定されているチャンクファイルを光ディスクへライトする。また、チャンクファイルが複数存在する場合、当該ボリュームの容量が一杯になるまで、それらのチャンクファイルをライトする。ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、光ディスクへのライトが完了し、前述したスタブ情報を作成が完了したチャンクファイルの情報（ファイルパスと光ディスクへの書き込み可能状態設定）を、前述したアーカイブシステムＤＢ（３１４）から削除する。また、ストレージコントロールサーバ１０３のマイグレーション制御部６１４は、前述したスタブ情報を作成が完了したチャンクファイル（データ）を、ファイルバッファリングサーバ３１３内から削除する（Ｓ１４０３）。
【０１４８】
前述したアーカイブシステムＤＢ（３１４）内の“光ディスクに書き込み可能な状態”が設定されたチャンクファイルが他に存在しない場合、動作を終了する。
【０１４９】
ストレージコントロールサーバ１０２のマイグレーション制御部６１４は、前述したチャンク状態監視部６１３の処理の完了に同期して処理を開始してもよいし、定期的に行う処理として、チャンク状態監視部６１３の処理とは非同期に動作してもよい。
【０１５０】
本実施例によれば、チャンクファイル生成後から当該チャンクファイルに対する全てのオブジェクト（データ）の追記格納が完了するまでの間に、チャンクファイルが光ディスクにライトされることを防ぐことができ、ホスト計算機に対し、分散ストレージクラスタとしての機能を提供することができる。
【実施例２】
【０１５１】
＜分散データベースサーバが、ホスト計算機から、オブジェクト更新コマンドを受信した場合、分散データベースサーバが、ストレージコントロールサーバを介して、オブジェクトデータを更新する流れ＞
図１５に、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト更新コマンド受信した場合に、分散データベースサーバ１０３のホストコマンド制御部７１１が、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、オブジェクト（データ）を更新する処理フローを示す。
【０１５２】
図１５によると、分散データベースサーバ１０３のプログラム内のホストコマンド制御部７１１が、ホストＩ／Ｆを介して、いずれかのホスト計算機１０４から、オブジェクトＩＤとオブジェクト更新コマンドと、更新オブジェクト（データ）とを、受信した場合、ホストコマンド制御部７１１は、前述したオブジェクト格納コマンドと同じやり方で、オブジェクトデータを一定サイズ（例えば、１メガバイト）の“分割オブジェクト”に分割する。次に、分散データベースサーバ１０３のホストコマンド制御部７１１は、オブジェクトマッピングＤＢ（４１３）と、前述したオブジェクトＩＤと、に基づき、オブジェクト（データ）が格納されたチャンクファイルパス（Ｘ）とチャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）と、を取得する。
【０１５３】
次に、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１に対して、チャンクファイルパス（Ｘ）をコマンドパラメータとして、チャンクファイルの存在を確認するためのコマンドを送信する。
【０１５４】
ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、チャンクファイルパス（Ｘ）で指定されるチャンクファイル（データ）（Ｄ）が、ファイルバッファリングストレージ３１３内に存在するか調べる。ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイル（データ）（Ｄ）がファイルバッファリングストレージ３１３に存在する場合、その旨を分散データベース１０３のホストコマンド制御部７１１に通知する。
【０１５５】
分散データベースサーバ１０３のホストコマンド制御部７１１は、チャンクファイルパス（Ｘ）で指定されるチャンクファイル（データ）（Ｄ）が、ファイルバッファリングストレージ３１３内に存在する旨の通知を受けた場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、ストレージコントロールサーバ１０２のファイルバッファリングストレージ３１３内の、チャンク管理情報テーブル１１１１を参照し、現在ロックしているファイルに関する情報が存在するかどうかを調べる。現在ロックしているファイルに関する情報が存在する場合、分散データベースサーバ１０３のホストコマンド制御部７１１は、現在ロックしている全てのチャンクファイルのファイルパスを取得する（Ｓ１５０１）。
【０１５６】
分散データベースサーバ１０３のホストコマンド制御部７１１は、現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれているかを調べる（Ｓ１５０２）。現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれている場合は、ファイルパス（Ｘ）で指定されるチャンクファイルは、排他制御（ロック）されており、光ディスクへの書き出しが不可能な状態にあると判断することができる。この場合、分散データベースサーバ１０３のホストコマンド制御部７１１は、当該チャンクファイルパス（Ｘ）と、前述したチャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）と、前述した更新オブジェクト（データ）と、をコマンドパラメータとして指定し、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１に対して、ライトコマンドを送信して、チャンクファイル内のオブジェクト（データ）の更新を行う（Ｓ１５０６）。
【０１５７】
分散データベースサーバ１０３のホストコマンド制御部７１１は、現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれていない場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１に、当該チャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３内に格納されているかどうかを問い合わせ、その結果により、以下の（１）あるいは（２）の何れかの処理を実施する。
【０１５８】
（１）分散データベースサーバ１０３のホストコマンド制御部７１１は、前述したチャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３に含まれる場合、前述したチャンク状態監視部６１３、あるいは前述したマイグレーション制御部６１４の処理が未実施のため、ファイルバッファリングストレージ３１３内に、チャンクファイルが格納されたままになっている状態と判断し、ファイルバッファリングストレージ３１３内に新たなチャンクファイルを作成し（Ｓ１５０３）、チャンクファイルパス（Ｘ）で指定されるチャンクファイルの内容をコピーした上で、前述したチャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）に基づき、“古いオブジェクト（データ）”を、前述した更新オブジェクト（データ）の内容で上書きする（Ｓ１５０４）。
【０１５９】
分散データベースサーバ１０３のホストコマンド制御部７１１は、新たに作成したチャンクファイルにチャンクファイルパス（Ｘ）で指定されるチャンクファイルの内容をコピーしたり、前述した古いオブジェクト（データ）を、前述した更新オブジェクト（データ）の内容で上書きしたりする前に、新たに作成したチャンクファイルの内容を、前述したチャンク管理情報テーブル１１１１内の該当エントリに設定して、排他制御（ロック）を行ってもよい。
【０１６０】
また、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１と、ファイルシステム部６１２と、を介して、新たに作成したチャンクファイルを一意に参照したり、識別したりするためのファイルパスとして、前述したファイルパス（Ｘ）を設定する。この場合、以前にファイルパス（Ｘ）で指定される古いチャンクファイルは削除する（Ｓ１５０５）。
【０１６１】
また、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のチャンク状態監視部６１３を介して、新たに作成したチャンクファイルを、光ディスクに書き込み可能な状態としてアーカイブシステムＤＢ（３１４）に設定してもよい。
【０１６２】
（２）分散データベースサーバ１０３のホストコマンド制御部７１１は、前述したチャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３に含まれない場合、チャンクファイルパス（Ｘ）で指定されるチャンクファイルが光ディスクにライト済みと判断し、前述したスタブ情報を調べて該当チャンクファイルを光ディスクよりリードする。分散データベースサーバ１０３のホストコマンド制御部７１１が、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、チャンクファイルパス（Ｘ）で指定されるチャンクファイルを光ディスクからリード後、ファイルバッファリングストレージ３１３内に新たなチャンクファイルを作成し（Ｓ１５０３）、チャンクファイルパス（Ｘ）で指定されるチャンクファイルの内容をコピー（複製）した上で、前述したチャンクファイルの先頭アドレスからのオフセットアドレス（Ｏ）に基づき、“古いオブジェクト（データ）”を、前述した更新オブジェクト（データ）の内容で上書きする（Ｓ１５０４）。これ以降は前述した（１）の処理内容と同じであり、前述した（１）の処理内容と異なる点は、チャンクファイルを光ディスクから読み出すか、ファイルバッファリングストレージ３１３から読み出すかという点である。
【０１６３】
以上で説明した通り、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のホストコマンド制御部６１１を介して、チャンク管理情報テーブル１１１１の情報を基に、光ディスクへライト済みのチャンクファイル内のオブジェクト（データ）を更新することができる。
【０１６４】
最後に、分散データベースサーバ１０３のコマンド制御部７１１は、ホスト計算機１０４に対して、オブジェクト更新コマンドの完了を通知する。
【０１６５】
以上が、分散データベースサーバ１０３が、ホスト計算機１０４から、オブジェクト更新コマンド受信した場合、分散データベースサーバ１０３のホストコマンド制御部７１１が、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１を介して、オブジェクト（データ）を更新する処理の説明である。
【実施例３】
【０１６６】
＜ストレージコントロールサーバが、分散データベースサーバから、チャンクファイルのリネームコマンドを受信した場合、ストレージコントロールサーバが、チャンクファイルパスを更新する流れ＞
図１６に、ストレージコントロールサーバ１０２が、分散データベースサーバ１０３から、チャンクファイルのリネームコマンドを受信した場合に、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１が、チャンクファイルのファイルパスを更新する処理フローを示す。
【０１６７】
図１６によると、ストレージコントロールサーバ１０２のプログラム内のサーバコマンド制御部６１１が、データベースサーバＩ／Ｆを介して、分散データベースサーバ１０２から、変更対象のチャンクファイル名とディレクトリパスからなる“チャンクファイルパス（Ｘ）”と、新しく設定するチャンクファイル名とディレクトリパスからなる“チャンクファイルパス（Ｎ）”と、チャンクファイルのリネームコマンドと、を、受信した場合、サーバコマンド制御部６１１は、ファイルバッファリングストレージ３１３内の、チャンク管理情報テーブル１１１１を参照し、現在ロックしているファイルに関する情報が存在するかどうかを調べる。現在ロックしているファイルに関する情報が存在する場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、現在ロックしている全てのチャンクファイルのファイルパスを取得する（Ｓ１６０１）。
【０１６８】
ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれているかを調べる（Ｓ１６０２）。現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれている場合は、ファイルパス（Ｘ）で指定されるチャンクファイルは、排他制御（ロック）されており、光ディスクへの書き出しが不可能な状態にあると判断することができる。この場合、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、ファイルシステム部６１２を介して、当該チャンクファイルパス（Ｘ）で指定されるチャンクファイル（データ）を、新たなチャンクファイルパス（Ｎ）で指定されるように設定する。このとき、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、ファイルシステム部６１２を介して、前述したチャンクファイルパス（Ｘ）では、当該チャンクファイル（データ）を参照したり、識別したりできないように設定する。さらにチャンクファイルパスを変更したため、チャンク管理情報テーブル１１１１内の、現在ロックしているファイルパス情報のうち、チャンクファイルパス（Ｘ）をチャンクファイルパス（Ｎ）に更新する（Ｓ１６０７）。
【０１６９】
ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、現在ロックしている全てのチャンクファイルのファイルパスに、前述したチャンクファイルパス（Ｘ）が含まれていない場合、当該チャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３内に格納されているかどうかを問い合わせ、その結果により、以下の（１）あるいは（２）の何れかの処理を実施する（Ｓ１６０３）。
【０１７０】
（１）ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３に含まれる場合、前述したチャンク状態監視部６１３、あるいは前述したマイグレーション制御部６１４の処理が未実施のため、ファイルバッファリングストレージ３１３内に、チャンクファイルが格納されたままになっている状態と判断し、ファイルシステム部６１２を介して、当該チャンクファイルパス（Ｘ）で指定されるチャンクファイル（データ）を、新たなチャンクファイルパス（Ｎ）で指定されるように設定する。このとき、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、ファイルシステム部６１２を介して、前述したチャンクファイルパス（Ｘ）では、当該チャンクファイル（データ）を参照したり、識別したりできないように設定する（Ｓ１６０６）。
【０１７１】
（２）ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、前述したチャンクファイルパス（Ｘ）で指定されるチャンクファイルが、ファイルバッファリングストレージ３１３に含まれない場合、チャンクファイルパス（Ｘ）で指定されるチャンクファイルが光ディスクにライト済みと判断し、全スタブ情報の中からチャンクファイルパス（Ｘ）を含むスタブ情報エントリ（Ｓ）を取得する。次に、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１は、当該スタブ情報内のチャンクファイルパス（Ｘ）をチャンクファイル（Ｎ）に上書きする。また、スタブ情報の内容の上書きが不可能な実装形態の場合、新たにスタブ情報を作成し、当該スタブ情報内の“チャンクファイルパス”としてチャンクファイルパス（Ｎ）を設定し、それ以外のチャンクファイルサイズ（Ｃ）と、ボリューム番号（Ａ）と、ボリュームアドレスあるいはボリュームファイルパス（Ｂ）と、の内容を、前述したスタブ情報（Ｓ）の内容と同じに設定し（Ｓ１６０４）、スタブ情報（Ｓ）は削除する（Ｓ１６０５）。
【０１７２】
以上で説明した通り、分散データベースサーバ１０３のホストコマンド制御部７１１は、ストレージコントロールサーバ１０２のホストコマンド制御部６１１を介して、チャンク管理情報テーブル１１１１の情報を基に、チャンクファイルのファイルパスを更新することができる。
【０１７３】
最後に、ストレージコントロールサーバ１０２のコマンド制御部６１１は、分散データベースサーバ１０３に対して、チャンクファイルのリネームコマンドの完了を通知する。
【０１７４】
以上が、ストレージコントロールサーバ１０２が、分散データベースサーバ１０３から、チャンクファイルのリネームコマンドを受信した場合に、分散データベースサーバ１０３のホストコマンド制御部７１１が、ストレージコントロールサーバ１０２のサーバコマンド制御部６１１が、チャンクファイルのファイルパスを更新する処理の説明である。
【０１７５】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１７６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラムは、ローカルメモリ以外にも、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。 
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１７７】
１０１  光ディスクライブラリ装置
１０２  ストレージコントロールサーバ
１０３  分散データベースサーバ
１０４  ホスト計算機
１１５  カートリッジ
１１６  光ディスク
２１１  ＣＰＵ
２１２  制御用メモリ
２１３  搬送装置
２１４  ドライブ
３１１  ＣＰＵ
３１２  制御用メモリ
３１３  ファイルバッファリングストレージ
３１４  アーカイブシステムＤＢ
４１１  ＣＰＵ
４１２  制御用メモリ
４１３  オブジェクトマッピングＤＢ
【図１】
2016197357.tif 000003
【図２】
2016197357.tif 000004
【図３】
2016197357.tif 000005
【図４】
2016197357.tif 000006
【図５】
2016197357.tif 000007
【図６】
2016197357.tif 000008
【図７】
2016197357.tif 000009
【図８】
2016197357.tif 000010
【図９】
2016197357.tif 000011
【図１０】
2016197357.tif 000012
【図１１】
2016197357.tif 000013
【図１２】
2016197357.tif 000014
【図１３】
2016197357.tif 000015
【図１４】
2016197357.tif 000016
【図１５】
2016197357.tif 000017
【図１６】
2016197357.tif 000018