(57)【要約】【課題】ストレージ装置の試験時間を短縮すること。【解決手段】チャンクサイズ取得処理部２２ｂがチャンクサイズを取得し、重複除去単位取得処理部２２ｃが重複除去単位を取得する。そして、データ圧縮率計算処理部２２ｄがチャンクサイズと重複除去単位に基づいてデータ圧縮率を計算し、データ量計算処理部２２ｅがデータ圧縮率に基づいて全面ライトサイズを計算する。そして、試験実行部２２ｆが全面ライトサイズに基づいて全面ライト／リード／コンペアを行うことでストレージ装置を試験する。【選択図】図２
2019021050.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置の容量仮想化機能によるストレージの割り当て単位であるチャンクサイズを取得する第１取得部と、
前記ストレージ装置におけるデータの重複を除去する単位である重複除去単位を取得する第２取得部と、
前記第１取得部により取得されたチャンクサイズと前記第２取得部により取得された重複除去単位とに基づいて前記ストレージ装置におけるデータ圧縮率を計算する第１計算部と、
前記第１計算部により計算されたデータ圧縮率に基づいて前記ストレージ装置を試験する際に該ストレージ装置に書き込むデータ量を計算する第２計算部と、
前記第２計算部により計算されたデータ量のデータを前記ストレージ装置に書き込んだ後読み出して比較する試験実行部と
を有することを特徴とするストレージ試験装置。
【請求項２】
前記第１取得部は、前記チャンクサイズより小さいことが確実な所定の大きさのデータを前記ストレージ装置の全データが削除された状態で書き込んだ後の前記ストレージ装置の使用量を前記チャンクサイズとして取得することを特徴とする請求項１に記載のストレージ試験装置。
【請求項３】
前記第２取得部は、前記重複除去単位より小さいことが確実なデータを前記チャンクサイズより離れた複数箇所に前記ストレージ装置の全データが削除された状態で書き込んで前記ストレージ装置の使用量を取得する処理を前記データのサイズを徐々に大きくしながら該使用量が前記チャンクサイズの２倍から１倍に変化するまで繰り返し、該使用量が前記チャンクサイズの２倍から１倍に変化したときの前記データのサイズを前記重複除去単位として取得することを特徴とする請求項２に記載のストレージ試験装置。
【請求項４】
前記第１計算部は、前記チャンクサイズと前記重複除去単位の最小公倍数に所定の倍率を乗じた書き込みサイズに達するまで前記重複除去単位のデータを重複除去が行われないように前記ストレージ装置の全データが削除された状態で書き込んで該ストレージ装置の使用量を取得し、取得した使用量の前記書き込みサイズに対する比率を１から引いた値を前記データ圧縮率として計算することを特徴とする請求項３に記載のストレージ試験装置。
【請求項５】
コンピュータに、
ストレージ装置の容量仮想化機能によるストレージの割り当て単位であるチャンクサイズを取得し、
前記ストレージ装置におけるデータの重複を除去する単位である重複除去単位を取得し、
前記チャンクサイズと前記重複除去単位とに基づいて前記ストレージ装置におけるデータ圧縮率を計算し、
前記データ圧縮率に基づいて前記ストレージ装置を試験する際に該ストレージ装置に書き込むデータ量を計算し、
前記データ量のデータを前記ストレージ装置に書き込んだ後読み出して比較する
処理を実行させることを特徴とするストレージ試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ試験装置及びストレージ試験プログラムに関する。
【背景技術】
【０００２】
近年、ビッグデータの利用等でストレージ装置に保存されるデータの量が増大している。増大するデータに対応するため、ストレージ装置は、データの重複を除去するデータ重複除去機能とデータを圧縮するデータ圧縮機能を用いてデータ保存量の削減を行う。また、初期投資を削減するため、仮想的に定めた全体容量に対して使用する容量のみ物理ストレージを割り当てる容量仮想化機能（Thin  Provisioning）をストレージ装置は備える。
【０００３】
図１２は、データ保存量の削減を説明するための図である。図１２において、情報処理装置は論理ボリュームとしてデータをストレージ装置に記憶して利用するコンピュータである。図１２に示すように、情報処理装置が１回目にライトするデータはデータパターン＃１とデータパターン＃２とデータパターン＃１を含むため、重複除去機能により重複する２つ目のデータパターン＃１が重複除去される。
【０００４】
そして、データパターン＃１とデータパターン＃２はデータ圧縮機能によりそれぞれ圧縮されてディスク９へ書き込まれる。このとき、容量仮想化機能によりチャンクサイズのディスク領域が割り当てられ、割り当てられたディスク領域に圧縮されたデータパターン＃１とデータパターン＃２が書き込まれる。チャンクサイズは、容量仮想化機能によりディスク９から割り当てられる割り当て単位である。チャンクサイズのディスク領域はチャンクである。
【０００５】
情報処理装置が２回目にライトするデータはデータパターン＃３とデータパターン＃２とデータパターン＃１を含むため、重複除去機能によりデータパターン＃２とデータパターン＃１が重複除去される。そして、データパターン＃３は圧縮され、圧縮されたデータパターン＃１とデータパターン＃２が書き込まれているチャンクに追記される。
【０００６】
なお、チャンクサイズが可変であり、重複除去率が高い一方で重複除去性能が低い可変チャンク方式において、重複除去性能を向上する重複除去システムがある。この重複除去システムは、クライアント端末からのコンテンツを入力し、予め定めた最大チャンクサイズと最小チャンクサイズから計算範囲を決定し、計算範囲を少なくとも２つの小計算範囲に分割する。そして、この重複除去システムは、２つの小計算範囲間でローリングハッシュ計算が連続するように、ローリングハッシュ計算のためのウィンドウの位置を設定する。そして、この重複除去システムは、ウィンドウをずらしながらのローリングハッシュ計算を少なくとも２つの小計算範囲において並列処理してコンテンツからチャンクを切り出す。そして、この重複除去システムは、切り出されたチャンクと同一内容のチャンクが既に記憶装置に格納されているならば、切り出されたチャンクを記憶装置に格納しない。
【０００７】
また、速やかに故障被疑箇所を発見することができるディスクアレイ装置がある。このディスクアレイ装置は、複数のホストインタフェース及び複数のディスクインタフェースから構成される複数のインタフェースモジュールと、インタフェースモジュール間を接続するスイッチモジュールとを備える。このディスクアレイ装置は、インタフェースモジュールに設けられ、スイッチモジュールを通じて他のインタフェースモジュール内のメモリに対するライト／リード試験を行う１以上の診断試験実行手段を備える。また、このディスクアレイ装置は、診断ルールを複数記憶する診断ルール記憶手段を備える。診断ルールは、診断試験を実行する診断試験実行手段と試験対象となる他のインタフェースモジュールとの組が相違する１以上のライト／リード試験の試験結果の組み合わせパターンと該組み合わせパターンが成立したときの故障被疑箇所との対応関係を示す。また、このディスクアレイ装置は、診断ルール記憶手段に記憶された診断ルールから、成否判定に必要な未確定の診断結果の個数が最も少ない診断ルールを抽出し、この抽出した診断ルールの成否を判定するのに必要な未実行のライト／リード試験を選択する。そして、このディスクアレイ装置は、該選択したライト／リード試験を実行する診断試験実行手段に試験の実行を指示する処理を行う。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２０１４／１８４８５７号
【特許文献２】特開２０１０−２７７４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１２に示したデータ保存量削減を行うストレージ装置の試験では、ストレージ試験装置がストレージ装置に書き込んだデータのサイズとディスク９が保存するデータのサイズが異なる。このため、ストレージ装置の試験を行う場合に、ストレージ試験装置は、チャンクサイズ、重複除去単位及びデータ圧縮率を用いて、ストレージ装置全体にデータを書き込むための書き込みサイズを計算する。ここで、重複除去単位は、ストレージ装置が重複除去を行うデータの単位サイズである。
【００１０】
オペレータは、ストレージ装置の試験を行う場合に、チャンクサイズ、重複除去単位及びデータ圧縮率を調査して定義ファイルに定義する。しかしながら、チャンクサイズ、重複除去単位及びデータ圧縮率の調査のために、試験時間が長くなるという問題がある。
【００１１】
本発明は、１つの側面では、ストレージ装置の試験時間を短縮することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、ストレージ試験装置は、第１取得部と第２取得部と第１計算部と第２計算部と試験実行部とを有する。第１取得部は、ストレージ装置の容量仮想化機能によるストレージの割り当て単位であるチャンクサイズを取得する。第２取得部は、ストレージ装置におけるデータの重複を除去する単位である重複除去単位を取得する。第１計算部は、第１取得部により取得されたチャンクサイズと第２取得部により取得された重複除去単位とに基づいてストレージ装置におけるデータ圧縮率を計算する。第２計算部は、第１計算部により計算されたデータ圧縮率に基づいてストレージ装置を試験する際に該ストレージ装置に書き込むデータ量を計算する。試験実行部は、第２計算部により計算されたデータ量のデータをストレージ装置に書き込んだ後読み出して比較する。
【発明の効果】
【００１３】
１つの側面では、本発明は、ストレージ装置の試験時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例に係る試験システムの構成を示す図である。
【図２】図２は、ストレージ試験装置の機能構成を示す図である。
【図３】図３は、ストレージ試験装置による処理のフローを示すフローチャートである。
【図４】図４は、チャンクサイズを取得する処理のフローを示すフローチャートである。
【図５】図５は、チャンクサイズを取得する処理の例を示す図である。
【図６】図６は、重複除去単位を取得する処理のフローを示すフローチャートである。
【図７Ａ】図７Ａは、重複除去単位を取得する処理の例（重複除去前）を示す図である。
【図７Ｂ】図７Ｂは、重複除去単位を取得する処理の例（重複除去時）を示す図である。
【図８】図８は、データ圧縮率を計算する処理のフローを示すフローチャートである。
【図９Ａ】図９Ａは、データ圧縮率を計算する処理の例（ライトサイズ計算）を示す図である。
【図９Ｂ】図９Ｂは、データ圧縮率を計算する処理の例（ライトデータ作成）を示す図である。
【図９Ｃ】図９Ｃは、データ圧縮率を計算する処理の例（ステップＳ４１〜ステップＳ４８）を示す図である。
【図１０】図１０は、全体容量分の試験を行う処理のフローを示すフローチャートである。
【図１１】図１１は、ストレージ試験プログラムを実行するホストのハードウェア構成を示す図である。
【図１２】図１２は、データ保存量の削減を説明するための図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示するストレージ試験装置及びストレージ試験プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１６】
まず、実施例に係る試験システムの構成について説明する。図１は、実施例に係る試験システムの構成を示す図である。図１に示すように、実施例に係る試験システム１は、ホスト２とストレージ装置３を有する。
【００１７】
ホスト２は、ストレージ装置３の試験を行うストレージ試験プログラム２ａを実行するコンピュータであり、ストレージ試験装置として動作する。ストレージ装置３は、ディスクにデータを記憶する装置であり、ストレージ試験プログラム２ａにより試験される被試験装置である。
【００１８】
ホスト２とストレージ装置３は、ホストインタフェース及び管理ＬＡＮ（Local  Area  Network）により接続される。ホスト２は、ホストインタフェースを介してストレージ装置３に対してＩ／Ｏアクセス（ライト及びリード）を行う。また、ホスト２は、管理ＬＡＮを介してストレージ装置３からディスク全体容量、ディスク使用量等の管理情報を取得する。
【００１９】
ストレージ装置３は、ホスト２が書き込んだ論理ボリュームを記憶するディスク３１を有する。ただし、ストレージ装置３は、重複除去機能、データ圧縮機能及び容量仮想化機能を有し、ホスト２が書き込んだ論理ボリュームのサイズより小さいサイズのディスク領域にデータを記憶する。図１では、縦線網掛けで表されるデータパターンの１つが重複除去され、縦線網掛けで表されるデータパターンと斜線網掛けで表されるデータパターンが圧縮され、１つのチャンクに記憶される。
【００２０】
ストレージ装置３は、管理Ｉ／Ｆ３２を有する。管理Ｉ／Ｆ３２は、ホスト２からの要求に基づいて、ディスク全体容量、ディスク使用量等の管理情報を取得してホスト２に応答する。
【００２１】
次に、ストレージ試験装置の機能構成について説明する。図２は、ストレージ試験装置の機能構成を示す図である。図２に示すように、ストレージ試験装置２０は、制御部２１とテスト処理部２２とを有する。
【００２２】
制御部２１は、オペレータの操作に基づいてストレージ試験装置２０の動作を制御する。制御部２１は、オペレータ操作処理部２１ａと、試験構成構築処理部２１ｂと、メッセージ作成処理部２１ｃと、テストスケジューラ２１ｄとを有する。
【００２３】
オペレータ操作処理部２１ａは、オペレータによる端末装置からのストレージ試験装置２０の操作を処理する。また、オペレータ操作処理部２１ａは、各機能部からのメッセージの端末装置への出力と、オペレータによる入力値の要求元の機能部への受け渡しとを行う。
【００２４】
試験構成構築処理部２１ｂは、ストレージ装置３に対して、試験で使用する論理ボリュームの構築及び削除を行う。また、試験構成構築処理部２１ｂは、ストレージ装置３の設定を退避し、ストレージ装置３を試験システム１の実行条件に合うよう設定し、退避しておいた設定を試験後にストレージ装置３に戻す。
【００２５】
メッセージ作成処理部２１ｃは、各機能部からのメッセージ、テスト結果等の情報を収集し、端末装置及び外部記憶媒体へ出力するメッセージを作成する。
【００２６】
テストスケジューラ２１ｄは、ストレージ装置３に対して、試験ボリュームの作成、チャンクサイズの取得処理、重複除去単位の取得処理、データ圧縮率計算処理、データ量計算処理、Ｉ／Ｏ（ライト／リード／コンペア）処理の実行をスケジュールする。ライト／リード／コンペアとは、ストレージ装置３にデータをライトした後読み出し、ライトしたデータと比較することでストレージ装置３を試験することである。
【００２７】
テスト処理部２２は、テストスケジューラ２１ｄによるスケジューリングに基づいてストレージ装置３を試験する。テスト処理部２２は、試験ボリューム作成部２２ａと、チャンクサイズ取得処理部２２ｂと、重複除去単位取得処理部２２ｃと、データ圧縮率計算処理部２２ｄと、データ量計算処理部２２ｅと、試験実行部２２ｆと、定義ファイル２２ｇとを有する。
【００２８】
試験ボリューム作成部２２ａは、ストレージ装置３が有するディスク３１の全体を使用して、Ｉ／Ｏアクセス試験用のボリューム作成を行う。
【００２９】
チャンクサイズ取得処理部２２ｂは、チャンクサイズすなわち容量仮想化機能によるディスク３１の領域の割り当て単位を取得する。チャンクサイズ取得処理部２２ｂは、ストレージ装置３の全データが削除された状態で１バイトのデータをストレージ装置３に書き込んだ後のディスク使用量をストレージ装置３から受け取ってチャンクサイズとする。
【００３０】
重複除去単位取得処理部２２ｃは、重複除去単位すなわちストレージ装置３が重複除去を行うデータの単位サイズを取得する。重複除去単位取得処理部２２ｃは、ストレージ装置３の全データが削除された状態でデータをディスク３１の先頭と中央から書き込んでディスク３１の使用量を取得する処理をデータのサイズを徐々に大きくしながら繰り返す。そして、重複除去単位取得処理部２２ｃは、ディスク３１の使用量がチャンクサイズの２倍から１倍に変化したときのデータのサイズを重複除去単位とする。
【００３１】
データ圧縮率計算処理部２２ｄは、チャンクサイズと重複除去単位を用いてデータ圧縮率を計算する。具体的には、データ圧縮率計算処理部２２ｄは、ストレージ装置３の全データが削除された状態で、チャンクサイズと重複除去単位の最小公倍数に１０００を乗じた書き込みサイズに達するまで重複除去単位のデータを重複除去が行われないように書き込む。そして、データ圧縮率計算処理部２２ｄは、ストレージ装置３の使用量を取得し、取得した使用量の書き込みサイズに対する比率を１から引いた値をデータ圧縮率とする。なお、データ圧縮率計算処理部２２ｄの処理の詳細については後述する。
【００３２】
データ量計算処理部２２ｅは、データ圧縮率を用いて、ディスク３１の容量にデータ圧縮されて減少する分を上乗せし、ディスク３１の全体容量分の試験（全面ライト／リード／コンペア）を行うデータ量を計算する。
【００３３】
試験実行部２２ｆは、データ量計算処理部２２ｅにより計算されたデータ量を用いて、試験システム１上のボリュームに対して、全面ライト／リード／コンペアを行うことで、ストレージ装置３を試験する。
【００３４】
定義ファイル２２ｇは、チャンクサイズ取得処理部２２ｂが取得したチャンクサイズ、重複除去単位取得処理部２２ｃが取得した重複除去単位、データ圧縮率計算処理部２２ｄが計算したデータ圧縮率等を記憶する。
【００３５】
次に、ストレージ試験装置２０による処理のフローについて説明する。図３は、ストレージ試験装置２０による処理のフローを示すフローチャートである。図３に示すように、ストレージ試験装置２０は、ストレージ装置３の現在の設定を退避する（ステップＳ１）。
【００３６】
そして、ストレージ試験装置２０は、チャンクサイズを取得し（ステップＳ２）、重複除去単位を取得する（ステップＳ３）。そして、ストレージ試験装置２０は、取得したチャンクサイズと重複除去単位を用いて、データ圧縮率を計算する（ステップＳ４）。
【００３７】
そして、ストレージ試験装置２０は、データ圧縮率を用いて、ディスク３１の全体容量分の試験（全面ライト／リード／コンペア）を行うデータ量を計算し、定義ファイル２２ｇを更新する（ステップＳ５）。そして、ストレージ試験装置２０は、ストレージ装置３の設定を試験システム１の実行条件に合うように設定する（ステップＳ６）。
【００３８】
そして、ストレージ試験装置２０は、ディスク３１の全体容量分のライト／リード／コンペアを行う（ステップＳ７）。そして、ストレージ試験装置２０は、ディスク３１の全体容量分を超えた領域にライトを行い、ライトできないことで、ディスク３１の全体容量分ライトされていることを確認する（ステップＳ８）。
【００３９】
そして、ストレージ試験装置２０は、退避しておいた設定を、ストレージ装置３の設定に適用する（ステップＳ９）。すなわち、ストレージ試験装置２０は、ストレージ装置３の設定を出荷設定に戻す。
【００４０】
このように、ストレージ試験装置２０は、チャンクサイズと重複除去単位を取得してデータ圧縮率を計算することで、オペレータによるチャンクサイズ、重複除去単位及びデータ圧縮率の調査を不要とすることができる。
【００４１】
次に、チャンクサイズを取得する処理のフローについて説明する。図４は、チャンクサイズを取得する処理のフローを示すフローチャートである。図４に示すように、チャンクサイズ取得処理部２２ｂは、試験対象のディスク３１上のデータを削除する（ステップＳ２１）。チャンクサイズ取得処理部２２ｂは、例えば、ＳＣＳＩ（Small  Computer  System  Interface）コマンドのＵＮＭＡＰコマンドでデータを未割り当てにすることでデータの削除を行う。
【００４２】
そして、チャンクサイズ取得処理部２２ｂは、ディスク３１の使用量を取得し、ディスク３１の使用量が０であることを確認する（ステップＳ２２）。チャンクサイズ取得処理部２２ｂは、管理ＬＡＮからの情報取得によりディスク３１の使用量を取得する。
【００４３】
そして、チャンクサイズ取得処理部２２ｂは、ディスク３１の先頭から１バイトライトする（ステップＳ２３）。１バイトだけライトすることで、重複除去及びデータ圧縮を回避できる。そして、チャンクサイズ取得処理部２２ｂは、ディスク３１の使用量を取得する（ステップＳ２４）。すなわち、チャンクサイズ取得処理部２２ｂは、ディスク３１の使用量を確認し、チャンクサイズとして取得する。チャンクサイズ取得処理部２２ｂは、管理ＬＡＮからの情報取得によりディスク３１の使用量を取得する。
【００４４】
そして、チャンクサイズ取得処理部２２ｂは、ステップＳ２３でライトしたデータを削除する（ステップＳ２５）。削除方法は、ステップＳ２１と同じである。そして、チャンクサイズ取得処理部２２ｂは、ディスク３１の使用量を取得し（ステップＳ２６）、ディスク３１の使用量が０であることを確認する。チャンクサイズ取得処理部２２ｂは、管理ＬＡＮからの情報取得によりディスク３１の使用量を取得する。
【００４５】
図５は、チャンクサイズを取得する処理の例を示す図である。図５に示すように、チャンクサイズ取得処理部２２ｂは、ステップＳ２１においてディスク３１上のデータを削除し、ステップＳ２２においてディスク全体容量＝１０ＧＢ（ギガバイト）とディスク使用量＝０ＭＢ（メガバイト）を取得する。
【００４６】
そして、チャンクサイズ取得処理部２２ｂは、ステップＳ２３において１バイトライトする。データは１バイトなので、重複除去、データ圧縮はされない。また、データ仮想化機能によりチャンクサイズ＝２１ＭＢ分ディスク３１が割り当てられる。そして、チャンクサイズ取得処理部２２ｂは、ステップＳ２４においてディスク全体容量＝１０ＧＢとディスク使用量＝２１ＭＢを取得し、チャンクサイズ＝２１ＭＢを特定する。
【００４７】
このように、チャンクサイズ取得処理部２２ｂは、ディスク３１の全データが削除された状態で１バイトライトしてディスク３１の使用量を取得することでチャンクサイズを特定することができる。なお、ライトするバイト数は、割り当てられるチャンクが１つであることが確かであれば、１より大きくてもよい。
【００４８】
次に、重複除去単位を取得する処理のフローについて説明する。図６は、重複除去単位を取得する処理のフローを示すフローチャートである。なお、ディスク３１上のデータは削除されているものとする。図６に示すように、重複除去単位取得処理部２２ｃは、ディスク３１の先頭から１バイトライトする（ステップＳ３１）。そして、重複除去単位取得処理部２２ｃは、ディスク３１の中央からステップＳ３１と同じデータを１バイトライトする（ステップＳ３２）。
【００４９】
そして、。重複除去単位取得処理部２２ｃは、管理ＬＡＮからの情報取得によりディスク３１の使用量を取得する（ステップＳ３３）。そして、重複除去単位取得処理部２２ｃは、ディスク３１の使用量がチャンクサイズの２倍か否かを判定する（ステップＳ３４）。
【００５０】
ディスク３１の使用量がチャンクサイズの２倍である場合には、重複除去は行われていないので、重複除去単位取得処理部２２ｃは、データのサイズを大きくし、ディスク３１の先頭からライトする（ステップＳ３５）。重複除去単位取得処理部２２ｃは、ステップＳ３４〜ステップＳ３７の繰り返しでデータのサイズを徐々に大きくしていく。また、重複除去単位取得処理部２２ｃは、圧縮されないようにデータをランダムデータとする。
【００５１】
そして、重複除去単位取得処理部２２ｃは、ディスク３１の中央からステップＳ３５と同じデータを同じサイズ分、ライトする（ステップＳ３６）。そして、重複除去単位取得処理部２２ｃは、ディスク３１の使用量を取得する（ステップＳ３７）。重複除去単位取得処理部２２ｃは、管理ＬＡＮからの情報取得によりディスク３１の使用量を取得する。そして、重複除去単位取得処理部２２ｃは、ステップＳ３４に戻る。
【００５２】
一方、ディスク３１の使用量がチャンクサイズの２倍でない場合には、重複除去が行われたので、重複除去単位取得処理部２２ｃは、ディスク３１にライトしたデータのサイズを重複除去単位として取得する（ステップＳ３８）。
【００５３】
図７Ａは、重複除去単位を取得する処理の例（重複除去前）を示す図であり、図７Ｂは、重複除去単位を取得する処理の例（重複除去時）を示す図である。図７Ａに示すように、重複除去単位取得処理部２２ｃは、ステップＳ３１においてディスク３１の先頭から１バイトライトし、ステップＳ３２においてディスク３１の中央から同じデータを１バイトライトする。ディスク３１には、２つのチャンクが割り当てられる。
【００５４】
そして、重複除去単位取得処理部２２ｃは、ステップＳ３３においてディスク全体容量＝１０ＧＢとディスク使用量＝２１ＭＢ×２＝４２ＭＢを取得する。重複除去が行われていないので、ディスク使用量＝チャンクサイズ×２である。
【００５５】
そして、重複除去単位取得処理部２２ｃは、ライトするデータのサイズを徐々に大きくしていき、図７Ｂに示すように、ステップＳ３５においてディスク３１の先頭から４ＫＢ（キロバイト）ライトする。そして、重複除去単位取得処理部２２ｃは、ステップＳ３６においてディスク３１の中央から同じデータを４ＫＢライトする。重複除去単位を４ＫＢとすると、この時点で重複除去が行われ、ディスク３１には、１つのチャンクが残る。
【００５６】
そして、重複除去単位取得処理部２２ｃは、ステップＳ３７においてディスク全体容量＝１０ＧＢとディスク使用量＝２１ＭＢを取得する。重複除去が行われたので、ディスク使用量＝チャンクサイズである。
【００５７】
このように、重複除去単位取得処理部２２ｃは、重複除去が行われるまでデータのサイズを徐々に大きくしながらディスク３１の先頭と中央にデータを書き込むことによって、重複除去単位を取得することができる。なお、２つのデータをディスク３１にライトする場所は、２つのチャンクが割り当てられることが確かであれば、先頭と中央でなくてもよい。なお、書き込む場所の数は３か所以上でもよい。
【００５８】
次に、データ圧縮率を計算する処理のフローについて説明する。図８は、データ圧縮率を計算する処理のフローを示すフローチャートである。なお、ディスク３１上のデータは削除されているものとする。また、図８では、ライト／リード／コンペアする時間も計算される。
【００５９】
図８に示すように、データ圧縮率計算処理部２２ｄは、データ圧縮率を計算するためにディスク３１にライトすることが必要なライトサイズ（書き込みサイズ）を計算する（ステップＳ４１）。このライトサイズがステップＳ４２〜ステップＳ４４でライトするサイズになる。
【００６０】
具体的には、データ圧縮率計算処理部２２ｄは、以下の条件を満たすライトサイズを計算する。
・重複除去単位とチャンクサイズの最小公倍数
・チャンクサイズの１０００倍以上
【００６１】
ライトサイズを重複除去単位の倍数とすることで、データ圧縮率計算処理部２２ｄは、データ圧縮率を計算するためにディスク３１に書き込むデータが重複除去されないように制御することができる。また、ライトサイズをチャンクサイズの倍数とすることで、データ圧縮率計算処理部２２ｄは、ディスク３１から割り当てられた領域を全てライトすることができる。
【００６２】
また、ライトサイズをチャンクサイズの１０００倍以上とする理由は、ディスク３１の使用量はチャンクサイズ単位になるが圧縮後のサイズがチャンクサイズ単位になるとは限らないので、圧縮後のサイズとチャンクサイズ単位のサイズとの誤差を小さくするためである。ライトサイズをチャンクサイズの１０００倍以上とすることで、データ圧縮率の誤差を１／１００以下とすることができる。
【００６３】
そして、データ圧縮率計算処理部２２ｄは、１回目のライトとして、重複除去単位のサイズ分ライトする（ステップＳ４２）。具体的には、データ圧縮率計算処理部２２ｄは、以下の内容のデータを用意し、重複除去単位のサイズ分ライトする。
・データの先頭４バイトを時間（例えば、１９７０年１月１日０：００からの累計秒数）とする。重複除去単位のサイズ分の全データが一致しないと重複除去されないため、この部分が可変データ用の領域として使用される。
・データの先頭５バイト目以降はランダムデータとする。圧縮されにくいデータとしてランダムデータが使用される。
【００６４】
そして、データ圧縮率計算処理部２２ｄは、２回目以降のライトとして、重複除去されずデータ圧縮率が１回目のライトとほぼ同じ圧縮率になるデータパターンを作成し、データを重複除去の単位サイズ分ライトする（ステップＳ４３）。具体的には、データ圧縮率計算処理部２２ｄは、以下の内容のデータを用意し、１つ前にライトした場所に続けてライトする。
・データの先頭４バイトは１つ前にライトした時の先頭４バイトに＋１したデータとする。この部分を変えることにより重複除去されないデータとなる。
・データの先頭５バイト目以降は１回目にライトしたデータと同じデータとする。これで全てのデータがほぼ同じ圧縮率で圧縮される。
【００６５】
そして、データ圧縮率計算処理部２２ｄは、ライトしたデータのサイズの合計がステップＳ４１で計算したライトサイズに達したか否かを判定し（ステップＳ４４）、達していない場合には、ステップＳ４３に戻る。データ圧縮率計算処理部２２ｄは、ライトしたデータの合計がライトサイズに達するまでステップＳ４３のライトを繰り返す。
【００６６】
そして、ライトしたデータの合計がライトサイズに達すると、データ圧縮率計算処理部２２ｄは、ステップＳ４２〜ステップＳ４４でライトした領域についてリード／コンペアを行う（ステップＳ４５）。そして、データ圧縮率計算処理部２２ｄは、ステップＳ４２〜ステップＳ４４でライトした時間とステップＳ４５でリード／コンペアした時間を取得する（ステップＳ４６）。
【００６７】
データ圧縮率計算処理部２２ｄは、ライト／リード／コンペアの処理時間を計測するためにステップＳ４５〜ステップＳ４６の処理を行う。データ圧縮率計算処理部２２ｄは、計測した時間と、ライトサイズとディスク３１の全体容量分の試験を行うために必要なサイズの比率とを用いて、全容量分の試験を行う目安の時間を計算することができる。
【００６８】
そして、データ圧縮率計算処理部２２ｄは、ディスク３１の使用量を確認し、データ圧縮後のデータ量を取得する（ステップＳ４７）。データ圧縮率計算処理部２２ｄは、ディスク３１の使用量を確認することで、データ圧縮後のデータ量を特定する。そして、データ圧縮率計算処理部２２ｄは、ステップＳ４７で取得したデータ量をステップＳ４１で計算したライトサイズで割り算して、データ圧縮率を計算する（ステップＳ４８）。データ圧縮率＝（１−ディスク使用量／ライトサイズ）×１００（％）である。
【００６９】
図９Ａは、データ圧縮率を計算する処理の例（ライトサイズ計算）を示す図であり、図９Ｂは、データ圧縮率を計算する処理の例（ライトデータ作成）を示す図であり、図９Ｃは、データ圧縮率を計算する処理の例（ステップＳ４１〜ステップＳ４８）を示す図である。
【００７０】
図９Ａに示すように、チャンクサイズ＝２１ＭＢ、重複除去単位＝４ＫＢとすると、４ＫＢ×５３７６個＝２１ＭＢであるので、チャンクサイズと重複除去単位の最小公倍数は２１ＭＢである。したがって、ステップＳ４１において、ライトサイズ＝２１ＭＢ×１０００個＝２１０００ＭＢが計算される。
【００７１】
また、図９Ｂに示すように、ステップＳ４２において１回目にライトされるデータの先頭４バイト（時間）は、１９７０年１月１日０：００から約４６年経過したとすると、０ｘ５６７７４１００であり、５バイト目以降（ランダムデータ）は０ｘ３０２８９１５３・・・７９９３５３１６である。また、ステップＳ４３において２回目にライトされるデータの先頭４バイト（時間）は０ｘ５６７７４１０１であり、５バイト目以降（ランダムデータ）は０ｘ３０２８９１５３・・・７９９３５３１６である。
【００７２】
また、図９Ｃに示すように、データ圧縮率計算処理部２２ｄは、ステップＳ４１においてライトサイズを計算し、ステップＳ４２〜ステップＳ４４において４ＫＢのデータを２１０００ＭＢ分ライトする。そして、データ圧縮率計算処理部２２ｄは、ステップＳ４５において２１０００ＭＢ分リード／コンペアし、ステップＳ４６においてライト／リード／コンペアの処理時間を計測する。そして、データ圧縮率計算処理部２２ｄは、ステップＳ４７においてディスク３１の使用量＝１９９５０ＭＢを取得し、ステップＳ４８において、データ圧縮率＝（１−１９９５０ＭＢ／２１０００ＭＢ）×１００％＝５％を計算する。
【００７３】
このように、データ圧縮率計算処理部２２ｄは、ライトサイズを計算し、重複除去単位のデータをライトサイズ分ライト後ディスク３１の使用量を取得することによって、データ圧縮率を計算することができる。
【００７４】
次に、全体容量分の試験を行う処理のフローについて説明する。図１０は、全体容量分の試験を行う処理のフローを示すフローチャートである。図１０に示すように、データ量計算処理部２２ｅは、ディスク３１の全面ライトに必要な全面ライトサイズを計算する（ステップＳ５１）。全面ライトサイズ＝全体容量×（１＋データ圧縮率）である。例えば、全体容量＝１０００ＧＢ、圧縮率＝５％とすると、全面ライトサイズ＝１０００ＧＢ×１．０５＝１０５０ＧＢである。
【００７５】
そして、データ量計算処理部２２ｅは、ステップＳ５１で計算した全面ライトサイズからディスク３１の全面ライト／リード／コンペアに必要な時間を計算する（ステップＳ５２）。データ量計算処理部２２ｅは、データ圧縮率を計算する際に計算したライトサイズと全面ライトサイズの比率、データ圧縮率を計算する際に計測した時間に基づいて、全面ライト／リード／コンペアに必要な時間を計算する。例えば、データ圧縮率を計算する際にライトに１分、リード／コンペアに２分かかったとすると、１０５０ＧＢの全面ライト／リード／コンペアに必要な時間は、１０５０×１０２４ＭＢ÷２１０００ＭＢ×３分＝１５３．６分である。１５３．６分が全容量分の試験を行う際の目安の時間である。
【００７６】
そして、試験実行部２２ｆは、ステップＳ５１で計算された全面ライトサイズのデータをディスク３１の先頭からライトする（ステップＳ５３）。すなわち、試験実行部２２ｆは、ディスク全面ライトを行う。そして、試験実行部２２ｆは、ステップＳ５３でライトしたデータに対して、リードを行う（ステップＳ５４）。すなわち、試験実行部２２ｆは、ディスク全面リードを行う。
【００７７】
そして、試験実行部２２ｆは、ステップＳ５３でライトしたデータとステップＳ５４でリードしたデータをコンペアする（ステップＳ５５）。そして、試験実行部２２ｆは、ライトしたデータとリードしたデータが全て一致するか否かを判定し（ステップＳ５６）、全て一致する場合には、試験を正常終了とする（ステップＳ５７）。一方、一致しないデータがある場合には、試験実行部２２ｆは、試験を異常終了とする（ステップＳ５８）。
【００７８】
このように、データ量計算処理部２２ｅがディスク３１の全面ライトに必要なサイズを計算することで、試験実行部２２ｆはディスク３１の全容量の試験を行うことができる。
【００７９】
次に、ストレージ試験プログラム２ａを実行するホスト２のハードウェア構成について説明する。図１１は、ストレージ試験プログラム２ａを実行するホスト２のハードウェア構成を示す図である。図１１に示すように、ホスト２は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮインタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００８０】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００８１】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００８２】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００８３】
そして、ホスト２において実行されるストレージ試験プログラム２ａは、ホスト２により読み出し可能な記録媒体の一例であるＣＤ−Ｒに記憶され、ＯＤＤ５７によってＣＤ−Ｒから読み出されてホスト２にインストールされる。あるいは、ストレージ試験プログラム２ａは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてホスト２にインストールされる。そして、インストールされたストレージ試験プログラム２ａは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【００８４】
上述してきたように、実施例では、チャンクサイズ取得処理部２２ｂがチャンクサイズを取得し、重複除去単位取得処理部２２ｃが重複除去単位を取得する。そして、データ圧縮率計算処理部２２ｄがチャンクサイズと重複除去単位に基づいてデータ圧縮率を計算し、データ量計算処理部２２ｅがデータ圧縮率に基づいて全面ライトサイズを計算する。そして、試験実行部２２ｆが全面ライトサイズに基づいて全面ライト／リード／コンペアを行うことでストレージ装置３を試験する。
【００８５】
したがって、オペレータは、ストレージ装置３の試験を行う場合に、チャンクサイズ、重複除去単位及びデータ圧縮率を調査する必要がなく、ストレージ試験装置２０は、試験時間を短縮することができる。
【００８６】
また、実施例では、チャンクサイズ取得処理部２２ｂは、ディスク３１の全データが削除された状態で１バイトのデータを書き込んだ後のディスク３１の使用量をチャンクサイズとして取得するので、正確なチャンクサイズを取得することができる。
【００８７】
また、実施例では、重複除去単位取得処理部２２ｃは、ディスク３１の全データが削除された状態でディスク３１の先頭と中央にデータを書き込んでディスク３１の使用量を取得する処理をデータのサイズを徐々に大きくしながら繰り返す。そして、重複除去単位取得処理部２２ｃは、ディスク３１の使用量がチャンクサイズの２倍から１倍に変化したときのデータのサイズを重複除去単位として取得する。したがって、重複除去単位取得処理部２２ｃは、正確な重複除去単位を取得することができる。
【００８８】
また、実施例では、データ圧縮率計算処理部２２ｄは、チャンクサイズと重複除去単位の最小公倍数に１０００を乗じたライトサイズに達するまで重複除去単位のデータを重複除去が行われないようにディスク３１の全データが削除された状態で書き込む。そして、データ圧縮率計算処理部２２ｄは、ディスク３１の使用量を取得し、取得した使用量のライトサイズに対する比率を１から引いた値をデータ圧縮率として計算する。したがって、データ圧縮率計算処理部２２ｄは、正確にデータ圧縮率を計算することができる。
【００８９】
また、実施例では、ストレージ装置３がディスク３１にデータを記憶する場合について説明したが、本発明はこれに限定されるものではなく、ＮＡＮＤフラッシュメモリ等の他の不揮発性記憶デバイスにデータを記憶する場合にも同様に適用することができる。
【符号の説明】
【００９０】
１    試験システム
２    ホスト
２ａ    ストレージ試験プログラム
３    ストレージ装置
９，３１    ディスク
２０    ストレージ試験装置
２１    制御部
２１ａ    オペレータ操作処理部
２１ｂ    試験構成構築処理部
２１ｃ    メッセージ作成処理部
２１ｄ    テストスケジューラ
２２    テスト処理部
２２ａ    試験ボリューム作成部
２２ｂ    チャンクサイズ取得処理部
２２ｃ    重複除去単位取得処理部
２２ｄ    データ圧縮率計算処理部
２２ｅ    データ量計算処理部
２２ｆ    試験実行部
２２ｇ    定義ファイル
３２    管理Ｉ／Ｆ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2019021050.tif 000003
【図２】
2019021050.tif 000004
【図３】
2019021050.tif 000005
【図４】
2019021050.tif 000006
【図５】
2019021050.tif 000007
【図６】
2019021050.tif 000008
【図７Ａ】
2019021050.tif 000009
【図７Ｂ】
2019021050.tif 000010
【図８】
2019021050.tif 000011
【図９Ａ】
2019021050.tif 000012
【図９Ｂ】
2019021050.tif 000013
【図９Ｃ】
2019021050.tif 000014
【図１０】
2019021050.tif 000015
【図１１】
2019021050.tif 000016
【図１２】
2019021050.tif 000017