(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-01
(45)【発行日】2023-08-09
(54)【発明の名称】ストレージ装置、ストレージシステムおよびプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20230802BHJP
G06F 12/0862 20160101ALI20230802BHJP
G06F 12/0866 20160101ALI20230802BHJP
G06F 12/00 20060101ALI20230802BHJP
G06F 12/06 20060101ALI20230802BHJP
【FI】
G06F3/06 302A
G06F3/06 301Z
G06F3/06 302J
G06F12/0862 100
G06F12/0866
G06F12/00 560B
G06F12/06 523C
(21)【出願番号】P 2019077071
(22)【出願日】2019-04-15
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】中川 礼介
(72)【発明者】
【氏名】松原 真紀
【審査官】小林 義晴
(56)【参考文献】
【文献】特開2008-083845(JP,A)
【文献】特開2004-341780(JP,A)
【文献】特開2008-234059(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 12/0862
G06F 12/0866
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
第1の記憶装置と第2の記憶装置を含むストレージ部と、
データ書き込み要求時に前記第1の記憶装置に対象データを書き込み、前記第1の記憶装置から前記第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、データ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出してデータ要求元へ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記データ要求元へ転送する制御部と、
を有し、
前記制御部は、
前記対象データを所定サイズに分割し、分割したうちの先頭データを前記第1のデータ、前記先頭データを除く分割データを前記第2のデータとした場合、
複数の前記分割データを含む分割データ群を前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出して前記データ要求元へ転送すると共に前記分割データ群のうちの第1の分割データを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記先頭データの転送後に前記第1の記憶装置に移動した前記第1の分割データを前記データ要求元へ転送し、
前記第1の分割データを前記データ要求元へ転送すると共に前記分割データ群のうちの第2の分割データを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1の分割データの転送後に前記第1の記憶装置に移動した前記第2の分割データを前記データ要求元へ転送する、
ストレージ装置。
【請求項2】
前記制御部は、前記第2のデータの転送完了後、前記第1のデータに前記第2のデータを結合して前記第1の記憶装置上で前記対象データを復元する請求項1記載のストレージ装置。
【請求項3】
前記制御部は、前記対象データをファイル単位で管理する場合、前記先頭データ、前記分割データが格納されている前記第2の記憶装置の格納先アドレス、および前記分割データが前記第1の記憶装置から前記第2の記憶装置へ移動した後の前記第1の記憶装置の空き領域の属性を含むファイル情報を生成して前記第1の記憶装置に格納する
請求項1記載のストレージ装置。
【請求項4】
前記制御部は、前記ファイル情報に示される前記格納先アドレスにもとづいて、前記第1の分割データの読み出しおよび前記第1の分割データに続く前記第2の分割データを読み出して、前記第2の記憶装置から前記第1の記憶装置へ前記分割データを移動する
請求項3記載のストレージ装置。
【請求項5】
前記制御部は、前記ファイル情報に示される前記空き領域にもとづいて、前記分割データを前記空き領域に格納して、前記第2の記憶装置から前記第1の記憶装置へ前記分割データを移動する
請求項3記載のストレージ装置。
【請求項6】
前記制御部は、前記対象データを前記データ要求元へ転送する際の回線速度でデータ容量を転送する場合に要する第1の時間と、前記第2の記憶装置から前記第1の記憶装置への移動に要する第2の時間との差分が、前記データ要求元の読み出し規定時間の範囲内に収まるように定められる前記データ容量を前記所定サイズに設定して前記対象データを分割する
請求項1記載のストレージ装置。
【請求項7】
第1の記憶装置と第2の記憶装置を含むストレージ部と、
データ書き込み要求時に前記第1の記憶装置に対象データを書き込み、前記第1の記憶装置から前記第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、データ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出してデータ要求元へ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記データ要求元へ転送する制御部と、
を有し、
前記制御部は、
前記対象データの先頭データを前記第1のデータ、前記先頭データを除く残りデータを前記第2のデータとした場合、
前記残りデータを前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出して前記データ要求元へ転送すると共に、前記残りデータを所定サイズで分割して分割データを生成して複数の前記分割データを含む分割データ群を前記第2の記憶装置から前記第1の記憶装置へ移動し、
前記先頭データの転送後に前記第1の記憶装置に移動した前記分割データ群のうちの第1の分割データを前記データ要求元へ転送し、前記第1の分割データの転送後に前記分割データ群のうちの第2の分割データを前記データ要求元へ転送する、
ストレージ装置。
【請求項8】
ホストサーバと、
第1の記憶装置と第2の記憶装置を含むストレージ部と、前記ホストサーバからのデータ書き込み要求時に前記第1の記憶装置に対象データを書き込み、前記第1の記憶装置から前記第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、前記ホストサーバからのデータ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出して前記ホストサーバへ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記ホストサーバへ転送する制御部とを備えるストレージ装置と、
を有し、
前記制御部は、
前記対象データの先頭データを前記第1のデータ、前記先頭データを除く残りデータを前記第2のデータとした場合、
前記残りデータを前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出し
てデータ要求元へ転送すると共に、前記残りデータを所定サイズで分割して分割データを生成して複数の前記分割データを含む分割データ群を前記第2の記憶装置から前記第1の記憶装置へ移動し、
前記先頭データの転送後に前記第1の記憶装置に移動した前記分割データ群のうちの第1の分割データを前記データ要求元へ転送し、前記第1の分割データの転送後に前記分割データ群のうちの第2の分割データを前記データ要求元へ転送する、
ストレージシステム。
【請求項9】
コンピュータに、
データ書き込み要求時に第1の記憶装置に対象データを書き込み、
前記第1の記憶装置から第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、
データ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出してデータ要求元へ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記データ要求元へ転送
し、
前記対象データの先頭データを前記第1のデータ、前記先頭データを除く残りデータを前記第2のデータとした場合、
前記残りデータを前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出して前記データ要求元へ転送すると共に、前記残りデータを所定サイズで分割して分割データを生成して複数の前記分割データを含む分割データ群を前記第2の記憶装置から前記第1の記憶装置へ移動し、
前記先頭データの転送後に前記第1の記憶装置に移動した前記分割データ群のうちの第1の分割データを前記データ要求元へ転送し、前記第1の分割データの転送後に前記分割データ群のうちの第2の分割データを前記データ要求元へ転送する、
処理を実行させるプログラム。
【請求項10】
前記制御部は、前記先頭データの前記データ要求元への転送に要する時間が、前記残りデータを前記所定サイズで分割して前記第2の記憶装置から前記第1の記憶装置へ移動する際に要する時間に等しいまたは大きくなるように、前記先頭データのデータ容量を設定する請求項7記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置、ストレージシステムおよびプログラムに関する。
【背景技術】
【0002】
ストレージシステムは、記憶装置を有して、情報処理で扱う大量のデータを記憶管理する。また、近年では、使用頻度は低いが削除できず長期保管が求められるようなデータを高速アクセスのストレージから低速アクセスのストレージへ退避させるアーカイブ機能を備えたストレージシステムが注目されている。
【0003】
このようなストレージシステムは、階層化された1次ストレージと2次ストレージを備えており、例えば、SSD(Solid State Drive)で構成される1次ストレージに記憶されているデータが、テープで構成される2次ストレージへ移動される。2次ストレージは、1次ストレージから移動されたデータをアーカイブデータ(保管データ)として記憶する。
【0004】
関連技術としては、例えば、記憶装置がデータの先頭部分を保持して上位装置に送信し、該記憶装置よりも読み出し速度の遅い記憶装置が先頭部分以降のデータを上位装置に送信する技術が提案されている。また、通信装置がホストサーバからダウンロード対象のファイルにおける複数の領域のデータを同時に呼び出して複数のデータを並行にダウンロードし、生成した格納ファイルの各領域に格納する技術が提案されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2008-83845号公報
【文献】国際公開第2017/126105号
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のようなストレージシステムでは、アーカイブデータの読み出しを行う場合、2次ストレージから1次ストレージへ全データの移動が完了した後に1次ストレージからデータが読み出される。また、データ読み出しには規定時間が定められ、規定時間内にデータの読み出しが開始されることが求められている。しかし、2次ストレージから1次ストレージへのデータ移動に時間がかかると規定時間内にデータの読み出しが開始されずタイムアウトが発生する可能性がある。
【0007】
1つの側面では、本発明は、データ読み出し時のタイムアウトの発生を防止したストレージ装置、ストレージシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、ストレージ装置が提供される。ストレージ装置は、第1の記憶装置と第2の記憶装置を含むストレージ部と、データ書き込み要求時に第1の記憶装置に対象データを書き込み、第1の記憶装置から第2の記憶装置へのデータ移動時に、第1の記憶装置に対象データのうちの第1のデータを格納し、第2の記憶装置に対象データから第1のデータを除いた第2のデータを少なくとも格納し、データ読み出し要求時に、第1のデータを第1の記憶装置から読み出してデータ要求元へ転送すると共に第2のデータを第2の記憶装置から第1の記憶装置へ移動し、第1のデータの転送後に第1の記憶装置に移動した第2のデータをデータ要求元へ転送する制御部と、を有する。制御部は、対象データを所定サイズに分割し、分割したうちの先頭データを第1のデータ、先頭データを除く分割データを第2のデータとした場合、複数の分割データを含む分割データ群を第2の記憶装置に保存し、データ読み出し要求時、先頭データを第1の記憶装置から読み出してデータ要求元へ転送すると共に分割データ群のうちの第1の分割データを第2の記憶装置から第1の記憶装置へ移動し、先頭データの転送後に第1の記憶装置に移動した第1の分割データをデータ要求元へ転送し、第1の分割データをデータ要求元へ転送すると共に分割データ群のうちの第2の分割データを第2の記憶装置から第1の記憶装置へ移動し、第1の分割データの転送後に第1の記憶装置に移動した第2の分割データをデータ要求元へ転送する。
【0009】
また、上記課題を解決するために、ストレージシステムが提供される。ストレージシステムは、ホストサーバと、第1の記憶装置と第2の記憶装置を含むストレージ部と、ホストサーバからのデータ書き込み要求時に第1の記憶装置に対象データを書き込み、第1の記憶装置から第2の記憶装置へのデータ移動時に、第1の記憶装置に対象データのうちの第1のデータを格納し、第2の記憶装置に対象データから第1のデータを除いた第2のデータを少なくとも格納し、ホストサーバからのデータ読み出し要求時に、第1のデータを第1の記憶装置から読み出してホストサーバへ転送すると共に第2のデータを第2の記憶装置から第1の記憶装置へ移動し、第1のデータの転送後に第1の記憶装置に移動した第2のデータをホストサーバへ転送する制御部とを備えるストレージ装置と、を有する。制御部は、対象データの先頭データを第1のデータ、先頭データを除く残りデータを第2のデータとした場合、残りデータを第2の記憶装置に保存し、データ読み出し要求時、先頭データを第1の記憶装置から読み出してデータ要求元へ転送すると共に、残りデータを所定サイズで分割して分割データを生成して複数の分割データを含む分割データ群を第2の記憶装置から第1の記憶装置へ移動し、先頭データの転送後に第1の記憶装置に移動した分割データ群のうちの第1の分割データをデータ要求元へ転送し、第1の分割データの転送後に分割データ群のうちの第2の分割データをデータ要求元へ転送する。
さらに、上記課題を解決するために、コンピュータに上記ストレージシステムと同様の制御を実行させるプログラムが提供される。
【発明の効果】
【0010】
1側面によれば、データ読み出し時のタイムアウトの発生を防止できる。
【図面の簡単な説明】
【0011】
【
図1】ストレージ装置の一例を説明するための図である。
【
図2】ストレージシステムの構成の一例を示す図である。
【
図3】ストレージ制御部のハードウェア構成の一例を示す図である。
【
図5】アーカイブ分割時におけるデータ転送動作の一例を示すフローチャートである。
【
図6】アーカイブ分割時における書き込み動作の一例を示すフローチャートである。
【
図7】アーカイブ分割時における読み出し動作の一例を示すフローチャートである。
【
図8】書き込み動作の一例を説明するための図である。
【
図9】書き込み動作の一例を説明するための図である。
【
図10】書き込み動作の一例を説明するための図である。
【
図11】読み出し動作の一例を説明するための図である。
【
図12】読み出し動作の一例を説明するための図である。
【
図13】読み出し動作の一例を説明するための図である。
【
図14】リコール分割時におけるデータ転送動作の一例を示すフローチャートである。
【
図15】リコール分割時における書き込み動作の一例を示すフローチャートである。
【
図16】リコール分割時における読み出し動作の一例を示すフローチャートである。
【
図17】書き込み動作の一例を説明するための図である。
【
図18】書き込み動作の一例を説明するための図である。
【
図19】読み出し動作の一例を説明するための図である。
【
図20】読み出し動作の一例を説明するための図である。
【
図21】先頭データの転送から対象データの復元までの動作の一例を示すフローチャートである。
【
図22】データ転送の一例を示す図である(テープの場合)。
【
図23】データ転送の一例を示す図である(ディスクの場合)。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態について
図1を用いて説明する。
図1はストレージ装置の一例を説明するための図である。ストレージ装置1は、制御部1aとストレージ部1bを備え、ストレージ部1bは、1次ストレージm1(第1の記憶装置)と2次ストレージm2(第2の記憶装置)を含む。また、ストレージ装置1には、ホストサーバ3が接続されている。
【0013】
制御部1aは、ホストサーバ3からのデータ書き込み要求時に1次ストレージm1に対象データd0を書き込む。制御部1aは、1次ストレージm1から2次ストレージm2へのデータ移動時に、1次ストレージm1に対象データd0のうちの第1のデータを格納し、2次ストレージm2に対象データd0から第1のデータを除いた第2のデータを少なくとも格納する。なお、2次ストレージm2には、第2のデータだけでなく第1のデータが格納されてもよい(すなわち、対象データd0が2次ストレージm2に格納されてもよい)。
【0014】
さらに、制御部1aは、ホストサーバ3からのデータ読み出し要求時に、第1のデータを1次ストレージm1から読み出してデータ要求元へ転送すると共に第2のデータを2次ストレージm2から1次ストレージm1へ移動する。そして、第1のデータの転送後に1次ストレージm1に移動した第2のデータをデータ要求元へ転送する。
【0015】
図1に示す例を用いて動作について説明する。
〔ステップS1〕制御部1aは、ホストサーバ3からのデータ書き込み要求時、1次ストレージm1に対象データd0を書き込み保存する。
【0016】
〔ステップS2〕制御部1aは、1次ストレージm1から2次ストレージm2へのデータ移動時に、対象データd0を所定サイズに分割する。制御部1aは、対象データd0を分割したデータのうちの先頭データd1を1次ストレージm1に格納し、先頭データd1を除く分割データ群(分割データ#1、・・・、#n)を2次ストレージm2に格納する。
【0017】
〔ステップS3〕制御部1aは、ホストサーバ3からのデータ読み出し要求時、先頭データd1を1次ストレージm1から読み出してホストサーバ3へ転送する。また、制御部1aは、先頭データd1のホストサーバ3への転送と並列して、2次ストレージm2に格納されている分割データ群のうちの分割データ#1を2次ストレージm2から1次ストレージm1へコピーして移動する。
【0018】
〔ステップS4〕制御部1aは、先頭データd1の転送後、1次ストレージm1に移動した分割データ#1を1次ストレージm1から読み出してホストサーバ3へ転送する。また、制御部1aは、分割データ#1のホストサーバ3への転送と並列して、2次ストレージm2に格納されている分割データ群のうちの分割データ#2を2次ストレージm2から1次ストレージm1へコピーして移動する。以降同様にして、2次ストレージm2から1次ストレージm1に移動した分割データがホストサーバ3へ順次転送される。
【0019】
このように、ストレージ装置1では、対象データd0のうちの第1のデータを1次ストレージm1に格納し、第1のデータを除く残りの第2のデータを2次ストレージm2に少なくとも格納する。そして、ストレージ装置1は、第1のデータのホストサーバ3への転送と共に2次ストレージm2から1次ストレージm1へ第2のデータを移動し、1次ストレージm1に移動した第2のデータをホストサーバ3へ順次転送する。
【0020】
これにより、ホストサーバ3からのデータ読み出し要求時、規定時間以内にデータ読み出しが開始され、かつデータが途切れることなくホストサーバ3へデータが転送されるので、データ読み出し時のタイムアウトの発生を防止することができる。
【0021】
[第2の実施の形態]
次に第2の実施の形態について説明する。
図2はストレージシステムの構成の一例を示す図である。ストレージシステムsy1は、ストレージ装置1-1、ホストサーバ3および端末装置4を備える。ホストサーバ3には保守・運用管理を行う端末装置4が接続され、ホストサーバ3とストレージ装置1-1は、ネットワーク5を介して接続されている。
【0022】
ストレージ装置1-1は、ストレージ制御部10およびストレージ部20を備える。ストレージ部20は、1次ストレージ21および2次ストレージ22を含む。
1次ストレージ21は、2次ストレージ22よりも高速にデータの読み書きが可能な記録媒体で構成される。例えば、1次ストレージ21は、HDD(Hard Disk Drive)やSSDである。
【0023】
また、1次ストレージ21は、運用領域21aと一時領域21bを有する。運用領域21aには例えば、対象データ(実データ)や、対象データを分割した際の先頭データが格納される。一時領域21bには例えば、対象データを分割した際の全分割データが格納される。また、対象データをファイル単位で管理する場合、後述のファイル情報が運用領域21aまたは一時領域21bに格納される。運用領域21aと一時領域21bの使用例については後述する。
【0024】
2次ストレージ22は、1次ストレージ21よりも低速にデータの読み書きを行う記録媒体で構成される。2次ストレージ22は、例えば、HDD、光ディスクまたはテープである。
【0025】
ストレージ制御部10は、制御部11、記憶部12およびインタフェース部13を含み、ホストサーバ3が有する上位アプリケーション3aの指示にもとづき、ストレージ部20に対するI/O制御を行う。
【0026】
制御部11は、
図1に示した制御部1aの機能を有する。制御部11は、1次ストレージ21から2次ストレージ22へ、または2次ストレージ22から1次ストレージ21へのデータ移動を行って、1次ストレージ21と2次ストレージ22との階層管理(1次ストレージ21および2次ストレージ22間でのデータ再配置)を行う。
【0027】
記憶部12は、ストレージ間のデータ再配置に伴う後述の設定情報(データの分割サイズや同時読み書き可能数等)を記憶し、またストレージ装置1-1全体の運用管理にかかわる制御情報等を記憶する。インタフェース部13は、ネットワーク5を介したホストサーバ3とのインタフェース制御、またはストレージ部20とのインタフェース制御を行う。
【0028】
<ハードウェア>
図3はストレージ制御部のハードウェア構成の一例を示す図である。ストレージ制御部10は、プロセッサ(コンピュータ)100によって全体が制御されている。すなわち、プロセッサ100は、ストレージ制御部10の制御部として機能する。プロセッサ100には、バス103を介して、メモリ101および複数の周辺機器が接続されている。プロセッサ100は、マルチプロセッサであってもよい。プロセッサ100は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ100は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0029】
メモリ101は、ストレージ制御部10の主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
【0030】
また、メモリ101は、ストレージ制御部10の補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD等の半導体記憶装置やHDD等の磁気記録媒体を含んでもよい。
【0031】
バス103に接続されている周辺機器としては、入出力インタフェース102、ネットワークインタフェース104およびストレージインタフェース105がある。入出力インタフェース102は、プロセッサ100からの命令にしたがってストレージ制御部10の状態を表示する表示装置として機能するモニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)が接続されている。
【0032】
また、入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
さらにまた、入出力インタフェース102は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Blu-rayDisc(登録商標)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(Rewritable)等がある。
【0033】
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【0034】
ネットワークインタフェース104は、ネットワーク5の通信インタフェース制御を行い、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等を使用することもできる。ネットワークインタフェース104で受信されたデータは、メモリ101やプロセッサ100に出力される。
【0035】
ストレージインタフェース105は、ストレージ部20とのインタフェース制御を行い、ストレージ部20との間で行われるデータやファイル情報等の送受信を制御する。
以上のようなハードウェア構成によって、ストレージ制御部10の処理機能を実現することができる。例えば、ストレージ制御部10は、プロセッサ100がそれぞれ所定のプログラムを実行することで本発明の制御を行うことができる。
【0036】
ストレージ制御部10は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ストレージ制御部10に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【0037】
例えば、ストレージ制御部10に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【0038】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0039】
<機能ブロック>
図4は機能ブロックの構成の一例を示す図である。ストレージ制御部10は、制御部11、記憶部12、外部インタフェース部13aおよびストレージインタフェース部13bを備える。
【0040】
制御部11は、分割データ書き込み部11a、分割データ読み出し部11bおよび動作設定部11cを含む。分割データ書き込み部11aは、1次ストレージ21に保存されたデータを分割する。分割データ読み出し部11bは、2次ストレージ22から1次ストレージ21へ分割データを読み出し、ホストサーバ3に転送する。
【0041】
動作設定部11cは、データを分割する際のサイズの設定や、1次ストレージ21でのデータ滞留時間等を設定する。また動作設定部11cは、1次ストレージ21と2次ストレージ22との間で同時に読み書き可能なデータ数を決定する同時読み書き可能数を設定する。
【0042】
外部インタフェース部13aは、ネットワーク5またはストレージ制御部10に接続される各種機器のインタフェース制御を行い、ストレージインタフェース部13bは、ストレージ部20のインタフェース制御を行う。
【0043】
なお、制御部11は
図3のプロセッサ100により実現され、外部インタフェース部13aは
図3の入出力インタフェース102またはネットワークインタフェース104により実現される。さらに、ストレージインタフェース部13bは、
図3のストレージインタフェース105により実現され、記憶部12は、
図3のメモリ101により実現される。
【0044】
<アーカイブ分割時における動作>
次に本発明の動作について以降詳しく説明する。なお、対象データを分割するタイミングとして、2次ストレージ22にデータを書き込む際に分割する場合と、2次ストレージ22から1次ストレージ21へのデータ移動時に分割する場合とがある。前者をアーカイブ分割、後者をリコール分割と呼ぶことにし、最初にアーカイブ分割時における動作について説明する。
【0045】
(フローチャート)
図5はアーカイブ分割時におけるデータ転送動作の一例を示すフローチャートである。
〔ステップS11〕制御部11は、上位アプリケーション3aのタイムアウト情報(規定時間)等にもとづき分割サイズ等を設定する。
【0046】
〔ステップS12〕制御部11は、上位アプリケーション3aからの書き込み要求にもとづき、1次ストレージ21へ対象データの書き込みを行う。
〔ステップS13〕制御部11は、設定した分割サイズで対象データを分割する。
【0047】
〔ステップS14a〕制御部11は、対象データを分割した際の先頭データを1次ストレージ21に残して格納する。ステップS15aへ処理が進む。
〔ステップS14b〕制御部11は、先頭データ以外の分割データ群を2次ストレージ22に移動して格納する。ステップS15bへ処理が進む。なお、分割データ群は、2次ストレージ22へコピーされ、コピーが完了すると1次ストレージ21から削除される。
【0048】
〔ステップS15a〕制御部11は、上位アプリケーション3aからの対象データの読み出し要求の受信を待機する。読み出し要求を受信した場合はステップS16へ処理が進む。
【0049】
〔ステップS15b〕制御部11は、上位アプリケーション3aからの対象データの読み出し要求の受信を待機する。読み出し要求を受信した場合はステップS17へ処理が進む。
【0050】
〔ステップS16〕制御部11は、上位アプリケーション3aに先頭データを転送する。
〔ステップS17〕制御部11は、先頭データの転送と並列して2次ストレージ22から1次ストレージ21へ分割データを移動する。
【0051】
〔ステップS18〕制御部11は、1次ストレージ21に移動した分割データを上位アプリケーション3aへ転送する。
〔ステップS19〕制御部11は、すべての分割データが2次ストレージ22から1次ストレージ21へ移動したか否かを判定する。分割データが2次ストレージ22に残っている場合はステップS17へ処理が戻り、すべての分割データの移動が完了した場合は終了する。
【0052】
図6はアーカイブ分割時における書き込み動作の一例を示すフローチャートである。
〔ステップS21〕制御部11は、対象データを分割して転送・保存するための分割サイズや、データ滞留時間および同時読み書き可能数を設定する。データ滞留時間は、1次ストレージ21にデータを滞留させておく時間である。同時読み書き可能数は、1次ストレージ21と2次ストレージ22との間で同時に読み書き可能なデータ数である。
【0053】
〔ステップS22〕制御部11は、上位アプリケーション3aからの書き込み要求にもとづき、1次ストレージ21上の運用領域21aに対象データの書き込みを行う。
〔ステップS23〕制御部11は、設定した分割サイズで対象データを分割し、1次ストレージ21上の一時領域21bに、先頭データを含む分割データ群をコピーして格納する。
【0054】
〔ステップS24〕制御部11は、先頭データ以外の分割データ群を同時読み書き可能数にもとづいて、2次ストレージ22へコピーして格納する。
〔ステップS25〕制御部11は、先頭データ以外の分割データ群を一時領域21bから削除する。
【0055】
〔ステップS26〕制御部11は、ファイル情報を生成して一時領域21bに格納する。
ここで、制御部11は、対象データをファイル単位で管理する場合、ファイル情報を生成する。ファイル情報は、先頭データ、格納先情報および空き領域の属性(Sparse属性)を含み、各属性は例えば、ショートカット形式で管理することができる。格納先情報は、2次ストレージ22に移動した分割データ群の格納先アドレスを示し、空き領域は、2次ストレージ22に移動した分割データ群の容量を示す。
【0056】
また、空き領域の属性は、空の領域の存在を示す情報であり、1次ストレージ21上に空きの領域が実際に割り当てられているわけではない。分割データ群を1次ストレージ21に復元させるときに、該空き領域が示す容量分に分割データ群が書き込まれることになる。このようなファイル情報を生成して、1次ストレージ21と2次ストレージ22間のデータ再配置制御を行うことにより、ファイル情報を介して効率のよいデータ管理が可能になる。なお、以降ではファイル情報をスパースファイル(Sparse file)と呼ぶ。
【0057】
〔ステップS27〕制御部11は、データ滞留時間に達したか否かを判定する。データ滞留時間に達した場合はステップS28へ処理が進む。
〔ステップS28〕制御部11は、一時領域21b上のスパースファイルを運用領域21aに移動し、運用領域21a上の対象データを削除する。
【0058】
図7はアーカイブ分割時における読み出し動作の一例を示すフローチャートである。
〔ステップS31〕制御部11は、上位アプリケーション3aからの読み出し要求を受信する。
【0059】
〔ステップS32〕制御部11は、読み出し要求されたデータはスパースファイルに属性が設定されているデータか否かを判定する。属性が設定されている場合はステップS34、S35へ処理が進み、属性が設定されていない場合はステップS33へ処理が進む。
【0060】
〔ステップS33〕制御部11は、1次ストレージ21に格納されている対象データを上位アプリケーション3aへ転送する。
〔ステップS34〕制御部11は、スパースファイルに示される先頭データを上位アプリケーション3aへ転送する。ステップS39へ処理が進む。
【0061】
〔ステップS35〕制御部11は、2次ストレージ22に格納されている分割データを1次ストレージ21内の一時領域21bへ同時読み書き可能数にもとづいて移動する。
〔ステップS36〕制御部11は、移動した分割データを一時領域21bに書き込む。なお、ステップS34の処理と、ステップS35、S36の処理は並列に実行される。
【0062】
〔ステップS37〕制御部11は、一時領域21bに書き込んだ分割データを上位アプリケーション3aへ転送する。
〔ステップS38〕制御部11は、すべての分割データが2次ストレージ22から1次ストレージ21へ移動したか否かを判定する。分割データが2次ストレージ22に残っている場合はステップS35へ処理が戻り、すべての分割データの移動が完了した場合はステップS39へ処理が進む。
【0063】
〔ステップS39〕制御部11は、1次ストレージ21上で、先頭データに分割データ群を結合して対象データを復元し、スパースファイルを解除してスパースファイル内の格納先情報および空き領域の属性を削除する。
【0064】
(アーカイブ分割時における動作イメージ)
次にアーカイブ分割時における動作イメージについて
図8から
図13を用いて説明する。
図8から
図10は書き込み動作の一例を説明するための図である。
【0065】
〔ステップS41〕制御部11は、上位アプリケーション3aの書き込み要求にもとづき対象データを1次ストレージ21上の運用領域21aに書き込む。
〔ステップS42〕制御部11は、設定した分割サイズにもとづき、運用領域21aに書き込んだ対象データを分割し、分割したデータを先頭データ、分割データ#1、・・・、#nとして、1次ストレージ21上の一時領域21bにコピーする。
【0066】
〔ステップS43〕制御部11は、分割データ#1、・・・、#nを2次ストレージ22にコピーし、コピー完了後は一時領域21b上の分割データ#1、・・・、#nを削除する。
【0067】
〔ステップS44〕制御部11は、先頭データ、格納先情報および空き領域の属性を含むスパースファイルSf1を一時領域21b上に生成する。格納先情報は、2次ストレージ22に移動した分割データ#1、・・・、#nそれぞれの2次ストレージ22上の格納先アドレスを示し、空き領域は、分割データ群(分割データ#1、・・・、#n)の容量を示す。
【0068】
〔ステップS45〕制御部11は、一時領域21b上のスパースファイルSf1を運用領域21aへ移動する(運用領域21aに移動した後は、一時領域21bからスパースファイルSf1は削除される)。
【0069】
〔ステップS46〕制御部11は、運用領域21aから対象データを削除する。
図11から
図13は読み出し動作の一例を説明するための図である。
〔ステップS51〕制御部11は、上位アプリケーション3aの読み出し要求にもとづき運用領域21a上のスパースファイルSf1に含まれる先頭データを上位アプリケーション3aに転送する。
【0070】
〔ステップS52〕制御部11は、先頭データの転送と並列して、2次ストレージ22上の分割データ#1を1次ストレージ21上の一時領域21bにコピーして移動する。ここで、制御部11は、スパースファイルSf1に示される格納先情報にもとづいて2次ストレージ22上の分割データ#1を読み出し、スパースファイルSf1に示される一時領域21b上の空き領域に分割データ#1を格納する。
【0071】
〔ステップS53〕制御部11は、分割データ#1を上位アプリケーション3aに転送する。
〔ステップS54〕制御部11は、分割データ#1の転送と並列して、2次ストレージ22上の分割データ#2を1次ストレージ21上の一時領域21bにコピーして移動する。ここで、制御部11は、スパースファイルSf1に示される格納先情報にもとづいて2次ストレージ22上の分割データ#2を読み出し、スパースファイルSf1に示される一時領域21b上の空き領域に分割データ#2を格納する。
【0072】
上記のステップS52、S54のように、スパースファイルSf1で管理される格納先情報および空き領域にもとづいて、2次ストレージ22から1次ストレージ21へのデータ再配置が行われることで、効率よくデータ移動を行うことができる。
【0073】
〔ステップS55〕制御部11は、2次ストレージ22上の分割データ#1、・・・、#nをすべて転送した後、運用領域21a上で先頭データに分割データ#1、・・・、#nを結合して対象データを復元する。このように、読み出し要求のあった対象データは1次ストレージ21上に復元されるので、再度読み出し要求があった場合、1次ストレージ21から即時にデータ転送が行われることになり応答性を高めることができる。なお、制御部11は、対象データの復元後、スパースファイルSf1を解除してスパースファイルSf1内の格納先情報および空き領域の属性を削除する。
【0074】
<リコール分割時における動作>
(フローチャート)
図14はリコール分割時におけるデータ転送動作の一例を示すフローチャートである。
【0075】
〔ステップS61〕制御部11は、上位アプリケーション3aのタイムアウト情報等にもとづき分割サイズ等を設定する。
〔ステップS62〕制御部11は、上位アプリケーション3aからの書き込み要求にもとづき、1次ストレージ21へ対象データの書き込みを行う。
【0076】
〔ステップS63〕制御部11は、対象データを先頭データと先頭データ以外の残りデータとに分割する。
〔ステップS64a〕制御部11は、1次ストレージ21に先頭データを残して格納する。ステップS65aへ処理が進む。
【0077】
〔ステップS64b〕制御部11は、先頭データ以外の残りデータを2次ストレージ22に移動して格納する。ステップS65bへ処理が進む。なお、残りデータは、2次ストレージ22へコピーされ、コピーが完了すると1次ストレージ21から削除される。
【0078】
〔ステップS65a〕制御部11は、上位アプリケーション3aからの対象データの読み出し要求の受信を待機する。読み出し要求を受信した場合はステップS66へ処理が進む。
【0079】
〔ステップS65b〕制御部11は、上位アプリケーション3aからの対象データの読み出し要求の受信を待機する。読み出し要求を受信した場合はステップS67へ処理が進む。
【0080】
〔ステップS66〕制御部11は、上位アプリケーション3aに先頭データを転送する。
〔ステップS67〕制御部11は、先頭データの転送と並列して、2次ストレージ22から残りデータを読み出し、読み出した残りデータを、設定した分割サイズで分割して1次ストレージ21に格納する。
【0081】
〔ステップS68〕制御部11は、分割データを上位アプリケーション3aへ転送する。
〔ステップS69〕制御部11は、すべての残りデータが2次ストレージ22から1次ストレージ21へ移動したか否かを判定する。残りデータが2次ストレージ22に残っている場合はステップS67へ処理が戻り、すべての残りデータの移動が完了した場合は終了する。
【0082】
図15はリコール分割時における書き込み動作の一例を示すフローチャートである。
〔ステップS71〕制御部11は、分割サイズおよびデータ滞留時間を設定する。
〔ステップS72〕制御部11は、上位アプリケーション3aからの書き込み要求にもとづき、1次ストレージ21上の運用領域21aに対象データの書き込みを行う。
【0083】
〔ステップS73〕制御部11は、データ滞留時間に達したか否かを判定する。データ滞留時間に達した場合はステップS74へ処理が進む。
〔ステップS74〕制御部11は、対象データを先頭データと残りデータとに分割する。
【0084】
〔ステップS75〕制御部11は、先頭データ以外の残りデータを2次ストレージ22へコピーして移動する。
〔ステップS76〕制御部11は、先頭データ以外の残りデータを運用領域21aから削除する。
【0085】
〔ステップS77〕制御部11は、先頭データ、格納先情報および空き領域の属性を含むスパースファイルを運用領域21a上に生成し、運用領域21a上の対象データを削除する。
【0086】
図16はリコール分割時における読み出し動作の一例を示すフローチャートである。
〔ステップS81〕制御部11は、上位アプリケーション3aからの読み出し要求を受信する。
【0087】
〔ステップS82〕制御部11は、読み出し要求されたデータはスパースファイルに属性が設定されているデータか否かを判定する。属性が設定されている場合はステップS84、S85へ処理が進み、属性が設定されていない場合はステップS83へ処理が進む。
【0088】
〔ステップS83〕制御部11は、1次ストレージ21に格納されている対象データを上位アプリケーション3aへ転送する。
〔ステップS84〕制御部11は、スパースファイルに示される先頭データを上位アプリケーション3aへ転送する。ステップS89へ処理が進む。
【0089】
〔ステップS85〕制御部11は、2次ストレージ22に格納されている残りデータを読み出し、分割サイズにもとづいて分割する。
〔ステップS86〕制御部11は、分割データを一時領域21bに書き込む。なお、ステップS84の処理と、ステップS85、S86の処理は並列に実行される。
【0090】
〔ステップS87〕制御部11は、一時領域21bに書き込んだ分割データを上位アプリケーション3aへ転送する。
〔ステップS88〕制御部11は、すべての残りデータが2次ストレージ22から1次ストレージ21へ移動したか否かを判定する。残りデータが2次ストレージ22に残っている場合はステップS85へ処理が戻り、すべての残りデータの移動が完了した場合はステップS89へ処理が進む。
【0091】
〔ステップS89〕制御部11は、1次ストレージ21上で、先頭データに分割データ群を結合して対象データを復元し、スパースファイルを解除してスパースファイル内の格納先情報および空き領域の属性を削除する。
【0092】
(リコール分割時における動作イメージ)
次にリコール分割時における動作イメージについて
図17から
図20を用いて説明する。
【0093】
図17、
図18は書き込み動作の一例を説明するための図である。
〔ステップS91〕制御部11は、上位アプリケーション3aの書き込み要求にもとづき対象データを1次ストレージ21上の運用領域21aに書き込む。
【0094】
〔ステップS92〕制御部11は、運用領域21aに書き込んだデータを先頭データと残りデータとに分割し、残りデータを2次ストレージ22へ移動する。
〔ステップS93〕制御部11は、先頭データ、格納先情報および空き領域の属性を含むスパースファイルSf2を運用領域21a上に生成する。格納先情報は、2次ストレージ22に移動した残りデータの2次ストレージ22上の格納先アドレスを示し、空き領域は、残りデータの容量を示す。
【0095】
図19、
図20は読み出し動作の一例を説明するための図である。
〔ステップS101〕制御部11は、上位アプリケーション3aの読み出し要求にもとづき運用領域21a上の先頭データを上位アプリケーション3aに転送する。
【0096】
〔ステップS102〕制御部11は、先頭データの転送と並列して、残りデータを分割サイズにもとづき分割し、分割データ#1、・・・、#nを、2次ストレージ22上の一時領域21bにコピーして移動する。
【0097】
〔ステップS103〕制御部11は、一時領域21b上の分割データを上位アプリケーション3aへ順次転送する。
〔ステップS104〕制御部11は、2次ストレージ22上の分割データ#1、・・・、#nをすべて転送した後、運用領域21a上で先頭データに分割データ#1、・・・、#nを結合して対象データを復元する。また、制御部11は、スパースファイルSf2を解除してスパースファイルSf2内の格納先情報および空き領域の属性を削除する。
【0098】
ここで、上述のステップS63やステップS92において、対象データが先頭データと残りデータとに分割されるが、先頭データをどのようなデータ容量で分割するかについては、上位アプリケーション3aへの転送時にタイムアウトしないようなデータ容量が設定される。
【0099】
すなわち、制御部11は、先頭データの上位アプリケーション3aへの転送に要する時間が、残りデータを分割サイズで分割して2次ストレージ22から1次ストレージ21へ移動する際に要する時間に等しいまたは大きくなるように、先頭データのデータ容量を決定する。これにより、先頭データが転送されている間に、残りデータが分割されて2次ストレージ22から1次ストレージ21への移動が完了するので、タイムアウトが発生することなく、先頭データの転送後、分割データを順次転送することができる。
【0100】
(分割データ群転送後の動作)
図21は先頭データの転送から対象データの復元までの動作の一例を示すフローチャートである。なお、
図21は、アーカイブ分割およびリコール分割に対して共通動作である。
【0101】
〔ステップS111〕制御部11は、先頭データを上位アプリケーション3aへ転送する。
〔ステップS112〕制御部11は、分割データを上位アプリケーション3aへ転送する。すべての分割データの転送が終了した場合はステップS113へ処理が進む。
【0102】
〔ステップS113〕制御部11は、運用領域21a上のスパースファイルSf2を解除してスパースファイルSf2内の格納先情報および空き領域の属性を削除する。
〔ステップS114〕制御部11は、一時領域21b上の分割データ群を運用領域21aに移動し一時領域21b上の分割データ群を削除する。
【0103】
〔ステップS115〕制御部11は、運用領域21a上で先頭データと分割データ群を結合して対象データを復元する。
<データ転送時間>
次にアーカイブ分割時におけるデータ転送時間の具体例について、
図22、
図23を用いて説明する。なお、対象データのデータサイズを1TB(1024GB)、運用領域21aの容量を30TB、一時領域21bの容量を60TB、制御部11の2次ストレージ22への書き込み処理速度を60MB/sec、読み出し処理速度を30MB/secとする。
【0104】
また、データ滞留時間を24時間、同時読み書き可能数を4とする。さらに、ホストサーバ3とストレージ装置1-1間のネットワーク処理速度を1Gb/sec、上位アプリケーション3aのタイムアウト値を180秒とする。
【0105】
図22はデータ転送の一例を示す図である。2次ストレージ22がテープの場合のデータ転送状態を示している。分割サイズを5GBと設定したとする(先頭データおよび分割データが5GBデータサイズ)。また、分割データはテープの先頭から順番に格納されるので、同時読み書き可能数の値によらず1分割データずつ読み出される。
【0106】
ここで、ネットワーク処理速度の1Gb/secは、1Gb/sec×1024=1024Mb/secであり、1秒間で(1024÷8)MBのデータを転送できる。また、5GBは、(5×1024)MBである。したがって、先頭データの転送時間は、以下の式(1)から算出されて40secとなる。
【0107】
5GB×1024÷(1Gb/sec×1024÷8)=40sec・・・(1)
分割データの1つ目が転送可能となるまでの時間、すなわち、2次ストレージ22から1次ストレージ21の移動に要する時間は、2次ストレージ22の読み出し処理速度が30MB/secなので、以下の式(2)から算出されて171secとなる。
【0108】
5GB×1024÷30MB/sec=171sec・・・(2)
式(1)、(2)から、1つ目の分割データが転送されるまでの上位アプリケーション3aの待ち時間は、131sec(=171-40)となる。
【0109】
図22において、時刻t1はデータ転送開始時刻である。1次ストレージ21の運用領域21aに格納されている先頭データが時刻t1から転送され始め、先頭データの転送が終了するのに40secかかる。
【0110】
また、時刻t1から、分割データ#1が2次ストレージ22から1次ストレージ21に移動し始める。1つの分割データが2次ストレージ22から1次ストレージ21に移動するのに171sec要し、1次ストレージ21に移動してから上位アプリケーション3aに転送するのに40sec要する。したがって、上位アプリケーション3aが先頭データを受信してから分割データ#1を受信するまでの待ち時間は131sec(<180sec)となる。同様に、上位アプリケーション3aが分割データ#1を受信してから次の分割データ#2を受信するまでの待ち時間は131secとなる。以降、131sec毎に上位アプリケーション3aに継続的に分割データが転送されることになる。
【0111】
ここで、対象データのデータサイズは1TBであるから、分割データ#1、・・・、#nの個数は、以下の式(3)から算出されて203.8個となり、全データ転送時間は以下の式(4)から算出されて34890secとなる。
【0112】
1TB×1024÷5GB-1=203.8個・・・(3)
40sec+171sec×203.8≒34890sec・・・(4)
一方、本発明の機能を持たない通常システムでは、2次ストレージから1次ストレージにデータが移動するまでの時間は、以下の式(5)から算出されて34953secとなる。
【0113】
1TB×1024×1024÷30MB/sec=34953sec・・・(5)
また、1TB分のデータが上位アプリケーション3aに転送される時間は、以下の式(6)から算出されて8192secとなる。
【0114】
1TB×1024÷(1Gb/sec÷8)=8192sec・・・(6)
よって、全データ転送時間は43145sec(=34953+8192)になる。本発明と通常システムとを対比させると、本発明ではタイムアウトせずに2.3時間(=8255sec=43145sec-34889.8sec)データ転送時間を短くすることができる。
【0115】
ここで、分割サイズの算出について説明する。対象データをホストサーバ3へ転送する際の回線速度をVbpsとし、この回線を使ってデータ容量Aバイトを転送する場合、転送に要する時間T1(第1の時間)は、式(1)に示すように、T1=8A/V(sec)で算出される。
【0116】
また、2次ストレージ22の読み出し処理速度をRとした場合に、2次ストレージ22からデータ容量Aを読み出す時間T2(第2の時間:2次ストレージ22から1次ストレージ21の移動に要する時間)は、式(2)に示すように、T2=A/Rである。
【0117】
したがって、時間T2と時間T1との差分(T2-T1)が、ホストサーバ3のタイムアウト時間の範囲内にあれば、タイムアウトせずにデータ転送を行うことができる。差分(T2-T1)を算出するパラメータのうち、データ容量Aのみが可変値であり、その他のパラメータは固定値である。
【0118】
したがって、差分(T2-T1)の値が、ホストサーバ3のタイムアウト時間の範囲内に収まるようにデータ容量Aが決定される。すなわち、データ容量Aのサイズで対象データを分割して上記のような制御を行うことでタイムアウトを抑止できる。
【0119】
図23はデータ転送の一例を示す図である。2次ストレージ22がディスク(例えば、HDD)の場合のデータ転送状態を示している。分割サイズを5GBと設定したとする(先頭データおよび分割データが5GBデータサイズ)。また、同時読み書き可能数=4としたので、分割データは4分割データずつ読み出される。
【0120】
先頭データの転送時間は、式(1)から40secである。また、分割データが2次ストレージ22から1次ストレージ21に移動する時間は、4つの分割データは同時に移動するが、式(2)と同じで171secである。よって、1つ目の分割データが転送されるまでの上位アプリケーション3aの待ち時間は、131sec(=171-40)となる。
【0121】
図23において、時刻t1はデータ転送開始時刻である。1次ストレージ21の運用領域21aに格納されている先頭データが時刻t1から転送され始め、先頭データの転送が終了するのに40secかかる。
【0122】
また、時刻t1から、分割データ#1、・・・、#4が2次ストレージ22から1次ストレージ21に移動し始める。4つの分割データが2次ストレージ22から1次ストレージ21に同時に移動するのに171sec要し、1次ストレージ21に移動してから上位アプリケーション3aに1つの分割データが転送するのに40sec要する。したがって、上位アプリケーション3aが先頭データを受信してから分割データ#1を受信するまでの待ち時間は131secとなる。
【0123】
また、2つ目から4つ目の分割データ#2、・・・、#4は、一時領域21bに読み出しが完了していることから、1つ目の分割データの上位アプリケーション3aへの転送が終了次第、上位アプリケーション3aに順次転送されることになる。以降、分割データ#5、・・・、#8に対しても上位アプリケーション3aに継続的にデータが転送されることになる。
【0124】
ここで、分割データ#1、・・・、#nの個数は、式(3)から算出されて203.8個であり204個とすると、204個のうちに4つの分割データが51群含まれることになる。
【0125】
また、分割データの2次ストレージ22から1次ストレージ21への移動が171sec、4つの分割データの上位アプリケーション3aへの転送時間が160sec(=40sec×4)である。したがって、全データ転送時間は以下の式(7)から算出されて8881sec(約2.5時間)となる。
【0126】
171sec×51+40sec×4=8881sec・・・(7)
一方、本発明の機能を持たない通常システムの全データ転送時間は上述のように43145secになる。本発明と通常システムとを対比させると、本発明ではタイムアウトせずに約9.5時間(=34304sec=43145sec-8841sec)データ転送時間を短くすることができる。
【0127】
上記で説明した本発明のストレージ装置1、1-1の処理機能は、コンピュータによって実現することができる。この場合、ストレージ装置1、1-1が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0128】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD-R/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
【0129】
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD-ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0130】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0131】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
【0132】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0133】
(付記1) 第1の記憶装置と第2の記憶装置を含むストレージ部と、
データ書き込み要求時に前記第1の記憶装置に対象データを書き込み、前記第1の記憶装置から前記第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、データ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出してデータ要求元へ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記データ要求元へ転送する制御部と、
を有するストレージ装置。
【0134】
(付記2) 前記制御部は、前記第2のデータの転送完了後、前記第1のデータに前記第2のデータを結合して前記第1の記憶装置上で前記対象データを復元する付記1記載のストレージ装置。
【0135】
(付記3) 前記制御部は、
前記対象データを所定サイズに分割し、分割したうちの先頭データを前記第1のデータ、前記先頭データを除く分割データを前記第2のデータとした場合、
複数の前記分割データを含む分割データ群を前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出して前記データ要求元へ転送すると共に前記分割データ群のうちの第1の分割データを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記先頭データの転送後に前記第1の記憶装置に移動した前記第1の分割データを前記データ要求元へ転送し、
前記第1の分割データを前記データ要求元へ転送すると共に前記分割データ群のうちの第2の分割データを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1の分割データの転送後に前記第1の記憶装置に移動した前記第2の分割データを前記データ要求元へ転送する、
付記1記載のストレージ装置。
【0136】
(付記4) 前記制御部は、前記対象データをファイル単位で管理する場合、前記先頭データ、前記分割データが格納されている前記第2の記憶装置の格納先アドレス、および前記分割データが前記第1の記憶装置から前記第2の記憶装置へ移動した後の前記第1の記憶装置の空き領域の属性を含むファイル情報を生成して前記第1の記憶装置に格納する付記3記載のストレージ装置。
【0137】
(付記5) 前記制御部は、前記分割データ群の転送完了後、前記ファイル情報に示される前記先頭データに前記分割データ群を結合して前記第1の記憶装置上で前記対象データを復元する付記4記載のストレージ装置。
【0138】
(付記6) 前記制御部は、前記ファイル情報に示される前記格納先アドレスにもとづいて、前記第1の分割データの読み出しおよび前記第1の分割データに続く前記第2の分割データを読み出して、前記第2の記憶装置から前記第1の記憶装置へ前記分割データを移動する付記4記載のストレージ装置。
【0139】
(付記7) 前記制御部は、前記ファイル情報に示される前記空き領域にもとづいて、前記分割データを前記空き領域に格納して、前記第2の記憶装置から前記第1の記憶装置へ前記分割データを移動する付記4記載のストレージ装置。
【0140】
(付記8) 前記制御部は、前記対象データを前記データ要求元へ転送する際の回線速度でデータ容量を転送する場合に要する第1の時間と、前記第2の記憶装置から前記第1の記憶装置への移動に要する第2の時間との差分が、前記データ要求元の読み出し規定時間の範囲内に収まるように定められる前記データ容量を前記所定サイズに設定して前記対象データを分割する付記3記載のストレージ装置。
【0141】
(付記9) 前記制御部は、
前記対象データの先頭データを前記第1のデータ、前記先頭データを除く残りデータを前記第2のデータとした場合、
前記残りデータを前記第2の記憶装置に保存し、
データ読み出し要求時、前記先頭データを前記第1の記憶装置から読み出して前記データ要求元へ転送すると共に、前記残りデータを所定サイズで分割して分割データを生成して複数の前記分割データを含む分割データ群を前記第2の記憶装置から前記第1の記憶装置へ移動し、
前記先頭データの転送後に前記第1の記憶装置に移動した前記分割データ群のうちの第1の分割データを前記データ要求元へ転送し、前記第1の分割データの転送後に前記分割データ群のうちの第2の分割データを前記データ要求元へ転送する、
付記1記載のストレージ装置。
【0142】
(付記10) 前記制御部は、前記先頭データの前記データ要求元への転送に要する時間が、前記残りデータを前記所定サイズで分割して前記第2の記憶装置から前記第1の記憶装置へ移動する際に要する時間に等しいまたは大きくなるように、前記先頭データのデータ容量を設定する付記9記載のストレージ装置。
【0143】
(付記11) ホストサーバと、
第1の記憶装置と第2の記憶装置を含むストレージ部と、前記ホストサーバからのデータ書き込み要求時に前記第1の記憶装置に対象データを書き込み、前記第1の記憶装置から前記第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、前記ホストサーバからのデータ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出して前記ホストサーバへ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記ホストサーバへ転送する制御部とを備えるストレージ装置と、
を有するストレージシステム。
【0144】
(付記12) コンピュータに、
データ書き込み要求時に第1の記憶装置に対象データを書き込み、
前記第1の記憶装置から第2の記憶装置へのデータ移動時に、前記第1の記憶装置に前記対象データのうちの第1のデータを格納し、前記第2の記憶装置に前記対象データから前記第1のデータを除いた第2のデータを少なくとも格納し、
データ読み出し要求時に、前記第1のデータを前記第1の記憶装置から読み出してデータ要求元へ転送すると共に前記第2のデータを前記第2の記憶装置から前記第1の記憶装置へ移動し、前記第1のデータの転送後に前記第1の記憶装置に移動した前記第2のデータを前記データ要求元へ転送する、
処理を実行させるプログラム。
【符号の説明】
【0145】
1 ストレージ装置
1a 制御部
1b ストレージ部
m1 1次ストレージ
m2 2次ストレージ
3 ホストサーバ
d0 対象データ
d1 先頭データ
#1、・・・、#n 分割データ