(57)【要約】【課題】ストレージ間のデータ転送を、より効率的に行うための技術を提供する。【解決手段】サーバ４０が実行する転送設定プログラム４２のデータサイズ決定部４２１は、シーケンシャル負荷生成部４２２により、ＯＳ４１のデータアクセス部４１１にユーザリクエストを発行させる状況下で、異なるサイズでデータ移動部４１２にハードディスク装置５０とＳＳＤ６０間のデータ転送を要求し、その要求によるデータ転送に要する転送時間をレイテンシ監視部４１４から取得する。データサイズ決定部４２１は、各データ転送時に取得した転送時間、及び各データ転送時のサイズを用いて、データ移動部４１２がハードディスク装置５０とＳＳＤ６０間のデータ転送を行う単位とする最大サイズを特定する。【選択図】図４
2014228946.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージと第２のストレージとに接続する情報処理装置において、
前記第１のストレージと前記第２のストレージ間のデータ転送を異なるデータサイズに複数回行うとともに、前記複数回のデータ転送毎に転送間隔の時間である転送時間を計時する計時部と、
前記複数回のデータ転送毎の転送時間とデータサイズとに基づき、前記第１のストレージと前記第２のストレージ間のデータ転送における最大データサイズを表す最大サイズデータを特定する特定部と、
前記特定部が特定した最大サイズデータを記憶する記憶部と、
前記第１のストレージと前記第２のストレージ間のデータ転送を行う場合、前記記憶部に記憶された前記最大サイズデータに基づき、前記データ転送の転送対象データを複数の分割データに分割し、前記複数の分割データ毎にデータ転送要求を出力する要求部と、
前記要求部が要求したデータ転送要求に基づき、前記第１のストレージと前記第２のストレージ間のデータ転送を行う移動部とを有することを特徴とする情報処理装置。
【請求項２】
前記計時部は、
前記転送時間の計時を、前記第１のストレージ又は前記第２のストレージのいずれかに対し、前記要求部が、前記データ転送要求より優先度の高いデータ転送要求を前記移動部に行っている場合に行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
第１のストレージと、第２のストレージと、前記第１のストレージと前記第２のストレージとに接続する情報処理装置とを有する情報処理システムにおいて、
前記情報処理装置は、
前記第１のストレージと前記第２のストレージ間のデータ転送を異なるデータサイズに複数回行うとともに、前記複数回のデータ転送毎に転送間隔の時間である転送時間を計時する計時部と、
前記複数回のデータ転送毎の転送時間とデータサイズとに基づき、前記第１のストレージと前記第２のストレージ間のデータ転送における最大データサイズを表す最大サイズデータを特定する特定部と、
前記特定部が特定した最大サイズデータを記憶する記憶部と、
前記第１のストレージと前記第２のストレージ間のデータ転送を行う場合、前記記憶部に格納された前記最大サイズデータに基づき、前記データ転送の転送対象データを複数の分割データに分割し、前記複数の分割データ毎にデータ転送要求を出力する要求部と、
前記要求部が要求したデータ転送要求に基づき、前記第１のストレージと前記第２のストレージ間のデータ転送を行う移動部とを有することを特徴とする情報処理システム。
【請求項４】
第１のストレージと第２のストレージとに接続する情報処理装置の制御方法において、
前記情報処理装置が有する計時部が、前記第１のストレージと前記第２のストレージ間のデータ転送を異なるデータサイズに複数回行うとともに、前記複数回のデータ転送毎に転送間隔の時間である転送時間を計時し、
前記情報処理装置が有する特定部が、前記複数回のデータ転送毎の転送時間とデータサイズとに基づき、前記第１のストレージと前記第２のストレージ間のデータ転送における最大データサイズを表す最大サイズデータを特定し、
前記第１のストレージと前記第２のストレージ間のデータ転送を行う場合、前記情報処理装置が有する要求部が、前記特定部が特定した最大サイズデータを記憶する記憶部に記憶された前記最大サイズデータに基づき、前記データ転送の転送対象データを複数の分割データに分割し、前記複数の分割データ毎にデータ転送要求を出力し、
前記情報処理装置が有する移動部が、前記要求部が要求したデータ転送要求に基づき、前記第１のストレージと前記第２のストレージ間のデータ転送を行うことを特徴とする情報処理装置の制御方法。
【請求項５】
第１のストレージと第２のストレージとに接続する情報処理装置の制御プログラムにおいて、
前記情報処理装置が有する計時部に、前記第１のストレージと前記第２のストレージ間のデータ転送を異なるデータサイズに複数回行うとともに、前記複数回のデータ転送毎に転送間隔の時間である転送時間を計時させ、
前記情報処理装置が有する特定部に、前記複数回のデータ転送毎の転送時間とデータサイズとに基づき、前記第１のストレージと前記第２のストレージ間のデータ転送における最大データサイズを表す最大サイズデータを特定させ、
前記第１のストレージと前記第２のストレージ間のデータ転送を行う場合、前記情報処理装置が有する要求部に、前記特定部が特定した最大サイズデータを記憶する記憶部に記憶された前記最大サイズデータに基づき、前記データ転送の転送対象データを複数の分割データに分割し、前記複数の分割データ毎にデータ転送要求を出力させ、
前記情報処理装置が有する移動部に、前記要求部が要求したデータ転送要求に基づき、前記第１のストレージと前記第２のストレージ間のデータ転送を行わせることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置が処理を行うデータ量は、近年増大傾向にある。現在では、従来よりも大きいデータ量を情報処理装置に処理させることも普通になっている。このようなことから、データの格納に要するコストを抑えつつ、従来よりも高速なアクセスを可能にさせるストレージの階層化が多く採用されている。
【０００３】
ストレージは、アクセス速度が速くなるほど、単位データ量当たりの格納コストが大きくなる傾向にある。従って、アクセス速度の異なる２種類のストレージの階層化では、アクセス速度のより遅い安価なストレージにデータを全て格納し、アクセス速度のより速い高価なストレージには利用頻度が高いと考えられる一部のデータを格納する。低速で安価なストレージと高速で高価なストレージを使い分けることにより、データの格納コストは抑えられ、高速なアクセスも可能となる。
【０００４】
ストレージの階層化では、必要に応じて、ストレージ間のデータ転送が行われる。ストレージ間のデータ転送は、データ転送が行われる２つのストレージにアクセス可能な情報処理装置によって行われる。情報処理装置は、ストレージの階層化を行うプログラムによって、ストレージ間のデータ転送を行う。このストレージ間のデータ転送は、一方のストレージのデータを他方のストレージにコピーするためのデータ転送と、一方のストレージのデータを他方のストレージに移動させる再配置のためのデータ転送と、に大別することができる。
【０００５】
ストレージ間のデータ転送を行う転送単位は、ＬＵＮ（Logical Unit Number）、或いはサブＬＵＮ等のデータ単位である。データ単位のデータ量は、具体的には例えば数百ＧＢである。前述のデータ量のデータ転送を行う場合、情報処理装置は、実行するＯＳ（Operating System）の制御により、データを予め定められたサイズで分割し、分割したデータ毎にデータ転送を行う。
【０００６】
図１は、ＯＳの制御によって行われるデータ転送を説明する図である。図１に表すように、転送元として指定された転送単位である転送元データ１が所定のデータ量以上である場合、ＯＳは、転送元データ１を予め定められたサイズで複数の分割データ１ａに分割し、分割データ１ａ毎にデータ転送を行う。そのため、ＯＳは、ストレージ間のデータ転送を行わせるデータ転送リクエストを、分割データ１ａ毎に対象とするストレージに送信させる。分割データ１ａ毎にデータ転送リクエストを送信させることにより、全てのデータ転送リクエストを送信させるまでの間に、転送元データ１が格納されたストレージへのアクセスを要求する別のリクエスト（ユーザリクエスト）を送信させることができる。
【０００７】
分割データ１ａ毎のリクエストの発行のような連続するリクエストの発行では、通常、先行のリクエストに対するストレージからのレスポンスを待って、その次に発行すべきリクエストが発行される。しかし、例外もある。
【０００８】
例えばハードディスク装置のようなストレージでは、ヘッドの移動量がアクセス速度に大きく影響する。そのようなストレージでは、ヘッドの移動量をより小さくさせることは、単位時間当たりの処理可能なＩ／Ｏ（Input/Output）リクエスト数をより多くさせることになる。このことから、ＯＳは、ヘッドの移動量の小さいシーケンシャルアクセスを行うユーザリクエストであるＩ／Ｏリクエストがより多く発行されている場合、或いはリクエストの送信先のストレージが高負荷（ビジー）となっているような場合、そのＩ／Ｏリクエストの発行（送信（選択））を他のＩ／Ｏリクエストに優先させる。その結果、ストレージ間のデータ転送を行うデータ転送リクエストは、一定時間間隔で選択される。以降、その一定時間は「タイムアウト時間」と表記する。
【０００９】
図２は、通常よりも高負荷のシーケンシャルアクセスが発生している場合、Ｉ／Ｏリクエストの発行からレスポンスの受信までに要する遅延時間例を表すグラフである。縦軸は時刻（測定開始からの経過時間。単位は秒）、横軸は遅延時間（図２中「Ｉ／Ｏリクエスト遅延」と表記。単位は秒）をそれぞれ表している。各点は、それぞれＩ／Ｏリクエストを表している。ストレージ間のデータ転送のためのデータ転送リクエストを表す点は、図２中、丸で囲って表している。それにより、丸で囲っていない点は全てユーザリクエストを表している。
【００１０】
通常、ＯＳは、種類により設定された優先度にリクエストを分け、より高い優先度のリクエストを優先的に選択する。そのようにリクエストを優先度別に分けて選択する場合、より優先度の低いリクエストは、より優先度の高いリクエストが存在する状況では選択されなくなる。このことから、ＯＳは、選択対象とするリクエストの優先度を一定時間（タイムアウト時間）間隔で一時的に切り換え、優先度のより高いリクエストが存在する状況でも、優先度の低いリクエストを選択するようになっているのが普通である。
【００１１】
ストレージ間のデータ転送を行うデータ転送リクエストは、遅延時間がユーザリクエストより長いことから明らかなように、優先度がより低いリクエストとして扱われる。そのため、発行されたデータ転送リクエストは、タイムアウト時間の経過により選択され、ストレージに発行される。その結果、図２に表すように、各データ転送リクエストは、ほぼタイムアウト時間間隔で順次、発行されることとなる。各データ転送リクエストの遅延時間がほぼ同じであることは、各データ転送リクエストの遅延時間がタイムアウト時間とほぼ同じであることを示唆する。
【００１２】
図３は、高負荷のシーケンシャルアクセスが発生している場合のデータ転送サイズと遅延時間の関係を説明する図である。横軸にデータ転送サイズ、縦軸に遅延時間（図３中「レスポンス」と表記）をそれぞれ取っている。ここでの遅延時間は、データ転送をＯＳに依頼してからそのデータ転送の完了を意味するレスポンスをストレージから受信するまでに要する時間である。線３１はユーザリクエストのときのデータ転送サイズと遅延時間の関係を表し、線３２はデータ転送リクエストのときのデータ転送サイズと遅延時間の関係を表している。
【００１３】
ユーザリクエストによるデータ転送では、線３１が表すように、データ転送に要する遅延時間は、データ転送サイズに応じて指数関数的に長くなる。一方、図２に表すように、データ転送リクエストの遅延時間はタイムアウト時間を含む時間となる。そのため、線３２が表すように、遅延時間は、データ転送サイズによって階段状に長くなる。１つのデータ転送リクエストの遅延時間がタイムアウト時間に等しいと想定した場合、遅延時間は、転送元データ１の分割数にタイムアウト時間をかけた時間（＝分割数×タイムアウト時間）となる。
【００１４】
データ転送の対象となる転送元データ１へのアクセスは、そのデータ転送の完了によって可能となる。つまり、転送元データ１へのアクセスは、その転送元データ１の分割数に応じた時間だけ、禁止される。ストレージ間のデータ転送は、通常使用されるデータ、或いは使用される可能性の高いデータをより高速なストレージに移動させるために行われる。このことは、転送元データ１のデータ転送が完了する前に、その転送元データ１の少なくとも１部へのアクセスを要求するユーザリクエストが発生する可能性が高いことを意味する。それにより、より効率的なデータ処理の実現には、ストレージ間のデータ転送が完了する前に、転送対象とするデータの１部へのアクセスを可能にさせることも重要と思われる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００３−２１６４６０号公報
【特許文献２】特開２０１１−１６５１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
一側面では、本発明は、ストレージ間のデータ転送を、より効率的に行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明を適用した１システムは、第１のストレージと第２のストレージとに接続され、第１のストレージと第２のストレージ間のデータ転送を異なるデータサイズに複数回行うとともに、複数回のデータ転送毎に転送間隔の時間である転送時間を計時する計時部と、複数回のデータ転送毎の転送時間とデータサイズとに基づき、第１のストレージと第２のストレージ間のデータ転送における最大データサイズを表す最大サイズデータを特定する特定部と、特定部が特定した最大サイズデータを記憶する記憶部と、第１のストレージと第２のストレージ間のデータ転送を行う場合、記憶部に記憶された最大サイズデータに基づき、データ転送の転送対象データを複数の分割データに分割し、複数の分割データ毎にデータ転送要求を出力する要求部と、要求部が要求したデータ転送要求に基づき、第１のストレージと第２のストレージ間のデータ転送を行う移動部とを有する。
【発明の効果】
【００１８】
本発明を適用した場合には、ストレージ間のデータ転送を、より効率的に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】ＯＳの制御によって行われるデータ転送を説明する図である。
【図２】通常よりも高負荷のシーケンシャルアクセスが発生している場合、Ｉ／Ｏリクエストの発行からレスポンスの受信までに要する遅延時間例を表すグラフである。
【図３】高負荷のシーケンシャルアクセスが発生している場合のデータ転送サイズと遅延時間の関係を説明する図である。
【図４】本実施形態による情報処理装置を用いて構築された階層化ストレージシステムの構成例を説明する図である。
【図５】データサイズ決定部がデータサイズ値の特定に用いる変数例を説明する図である。
【図６】データサイズ決定部によるデータサイズ値の特定方法例を説明する図である。
【図７】データサイズ決定処理のフローチャートである。
【図８】本実施形態におけるサーバとして使用可能な情報処理装置の構成例を表す図である。
【図９】他の実施形態におけるデータサイズ決定処理のフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図４は、本実施形態による情報処理装置を用いて構築された階層化ストレージシステムの構成例を説明する図である。図４に表すように、階層化ストレージシステムは、本実施形態による情報処理装置であるサーバ４０、低速なストレージであるハードディスク装置（ＨＤＤ）５０、及び高速なストレージであるＳＳＤ（Solid State Drive）６０を備えている。
【００２１】
図４では、説明上、便宜的にハードディスク装置５０、及びＳＳＤ６０はそれぞれ１台のみ表している。しかし、多くの場合、ハードディスク装置５０、及びＳＳＤ６０はそれぞれ複数台、用意される。また、ストレージの階層化は、アクセス速度の異なる２種類のストレージとしてハードディスク装置５０、及びＳＳＤ６０を採用することで実現されているが、採用するストレージはこの組合せに限定されない。階層数も２に限定されない。つまり階層数は３以上であっても良い。
【００２２】
図４には、サーバ４０上で実行されるプログラムとして、ＯＳ４１、転送設定プログラム４２、及び自動階層化プログラム４３のみを表している。
【００２３】
ＯＳ４１は、ハードディスク装置５０とＳＳＤ６０間のデータ転送を実際に行うプログラムである。転送設定プログラム４２は、データ転送の最適化のために用意されたアプリケーション・プログラム（以降「アプリケーション」と略記）である。
【００２４】
自動階層化プログラム４３は、ＯＳ４１と連携し、ストレージの自動階層化を実現するアプリケーションであり、ハードディスク装置５０とＳＳＤ６０間のデータ転送を制御する。ここでは、自動階層化プログラム４３は、データのアクセス頻度を検出し、検出したアクセス頻度に応じて、データの再配置のためのデータ転送を行うと想定する。
【００２５】
ハードディスク装置５０上の各データ５１は、転送単位のデータである。このデータ５１は、ＯＳ４１が複数に分割してデータ転送を行う大きさのサイズであり、必要に応じてＳＳＤ６０に転送される。ＳＳＤ６０に格納されたデータ５１のなかで再配置の対象となるデータ５１は、ＳＳＤ６０からハードディスク装置５０に転送される。それらのデータ転送は、自動階層化プログラム４３の制御によって行われる。
【００２６】
ＯＳ４１は、機能として、データアクセス部４１１、データ移動部４１２、スケジューラ４１３、及びレイテンシ監視部４１４を実現させる。
【００２７】
データアクセス部４１１は、ＯＳ４１上で動作するアプリケーションからの要求により、ユーザリクエストを発行する機能である。図４中の２つの破線で表す矢印４ａ（４ａ−１、４ａ−２）は、ユーザリクエストがハードディスク装置５０、或いはＳＳＤ６０に送信され、その送信によってレスポンスがデータアクセス部４１１に返信されることを表している。
【００２８】
データ移動部４１２は、ハードディスク装置５０とＳＳＤ６０間のデータ転送を実現する機能であり、そのデータ転送のためのデータ転送リクエストを発行する。図４中の実線で表す矢印４ｂは、データ移動部４１２を介して、ハードディスク装置５０に格納されているデータ５１−０をＳＳＤ６０に移動させるデータ転送が行われた場合の転送経路を表している。
【００２９】
スケジューラ４１３は、データアクセス部４１１、及びデータ移動部４１２からそれぞれ発行されたリクエストを入力して、入力したリクエストのなかから一つを選択し、選択したリクエストを送信すべきストレージに送信する機能である。
【００３０】
データアクセス部４１１が発行したリクエストとデータ移動部４１２が発行するリクエストは、優先度が異なる。データアクセス部４１１が発行したリクエストは高優先度であり、データ移動部４１２が発行するリクエストは低優先度である。スケジューラ４１３は、データアクセス部４１１が発行したリクエストが存在する状況では、データ移動部４１２が発行するリクエストはタイムアウト時間が経過する毎に選択する。
【００３１】
レイテンシ監視部４１４は、転送設定プログラム４２との連携用に追加された機能であり、データ移動部４１２から発行された全てのデータ転送リクエストの処理に要する転送時間（遅延時間）を計時する。その転送時間は、最初のデータ転送リクエストがスケジューラ４１３に出力されてから、最後のデータ転送リクエストに対するハードディスク装置５０のレスポンスをデータ移動部４１２が入力するまでの時間である。以降、この転送時間は「レスポンス時間」とも呼ぶことにする。
【００３２】
転送設定プログラム４２は、ストレージ間のデータ転送（再配置）を行う場合に、１回のデータ転送の対象とすべきデータサイズを設定する。図４中に表すサイズデータ４４は、設定（保存）されたデータサイズ値を表すデータである。このサイズデータ４４の設定は、データ転送を効率的に行いつつ、より効率的なデータ処理を可能なようにするために行われる。データ処理を行う情報処理装置は、サーバ４０であっても良いが、サーバ４０からデータを受信する情報処理装置であっても良い。
【００３３】
転送単位のデータ５１のなかで転送が完了した部分をアクセス可能にするために、上記自動階層化プログラム４３は、再配置すべきデータ５１を、サイズデータ４４に従って分割し、分割したデータ毎にデータ転送を行う。その分割したデータのサイズ（以降「分割データサイズ」と表記）は、データ移動部４１２が１回のデータ転送の対象とするデータのサイズ（以降「最大転送サイズ」と表記）と一致させることが望ましい。これは、分割データサイズが最大転送サイズと一致しない場合、実際に発行されるデータ転送リクエストをより多くする可能性が極めて高いからである。
【００３４】
分割データサイズが最大転送サイズより小さい場合、ｃｅｉｌ（データ５１のサイズ／分割データサイズ）≧ｃｅｉｌ（データ５１のサイズ／最大転送サイズ）、の関係が成立する。「ｃｅｉｌ」は、小数点以下を切り上げた整数化を表す文字列である。
【００３５】
通常、最大転送サイズとデータ５１のサイズは大きく異なる。そのため、分割データサイズと最大転送サイズの差が非常に小さくない限り、ｃｅｉｌ（データ５１のサイズ／分割データサイズ）＞ｃｅｉｌ（データ５１のサイズ／最大転送サイズ）、の関係が成立することとなる。従い、分割データサイズが最大転送サイズより小さい場合、最大転送サイズでデータ転送を行う場合と比較して、発行するデータ転送リクエストの数は大きくなるのが普通である。
【００３６】
一方、分割データサイズが最大転送サイズより大きい場合、１つの分割データサイズのデータ転送に複数のデータ転送リクエストを発行させなければならない。そのため、最大転送サイズでデータ転送を行う場合と比較して、発行するデータ転送リクエストの数は必ず大きくなる。
【００３７】
発行するデータ転送リクエストの数が大きくなることは、データ転送効率が低下することを意味する。そのデータ転送効率の低下に伴い、データ５１全体のデータ転送（再配置）に要する転送時間はより長くなる。また、その転送時間が長く程、データ５１のなかでＳＳＤ６０に移動していない部分へのアクセスのために、ハードディスク装置５０にリクエストを送信する可能性は高くなる。
【００３８】
このようなことから、データ転送効率の低下は、より効率的なデータ処理を実現するうえで望ましくない。それにより、本実施形態では、より高いデータ転送効率、及びより効率的なデータ処理の実現のために、最大転送サイズと一致すると見なせる分割データサイズをデータサイズ４４として設定するようにしている。
【００３９】
そのデータサイズ４４を設定するために、転送設定プログラム４２は、図４に表すように、機能として、データサイズ決定部４２１、及びシーケンシャル負荷生成部４２２を備えている。
【００４０】
シーケンシャル負荷生成部４２２は、データサイズ決定部４２１からの指示に従い、ユーザリクエストをデータアクセス部４１１に発行させる機能である。発行させるユーザリクエストは、ハードディスク装置５０が備えるハードディスク上の近接した領域に順次アクセスさせるシーケンシャルアクセスのためのリクエストである。ユーザリクエストを発行させるのは、データ移動部４１２から発行されたデータ転送リクエストがタイムアウト時間間隔でスケジューラ４１３に選択させるためである。
【００４１】
データサイズ決定部４２１は、サイズデータ４４として設定すべき分割データサイズ値を特定するための機能である。データサイズ決定部４２１は、シーケンシャル負荷生成部４２２により、シーケンシャルアクセスのためのリクエストをデータアクセス部４１１に発行させている環境下で、分割データサイズ値を変更したデータ転送リクエストをデータ移動部４１２に発行させる。それにより、データサイズ決定部４２１は、分割データサイズと、レイテンシ監視部４１４が測定する転送時間との関係から、データサイズ４４として設定すべき分割データサイズ値を特定する。
【００４２】
図５は、データサイズ決定部がデータサイズ値の特定に用いる変数例を説明する図である。図６は、データサイズ決定部によるデータサイズ値の特定方法例を説明する図である。ここで、図５、及び図６を参照し、データサイズ部４２１のデータサイズ４４の設定に係わる動作について具体的に説明する。
【００４３】
図５、及び図６に表すグラフでは、共に、横軸にデータ転送サイズ、縦軸に転送時間（図５、及び図６共に「レスポンス」と表記）をそれぞれ取っている。その転送時間は、図５、及び図６に表すように、データ転送サイズの大きさに応じて、階段状に変化する。
【００４４】
図５には、変数例として「Ｔｍａｘ」「Ｒｍｉｎ」「Ｓｍｉｎ」及び「Ｓｏｐｔ」が表記されている。図６には、変数例として、「Ｓ」が表記されている。これらの変数は、それぞれ以下のように用いられる。
【００４５】
「Ｔｍａｘ」は、転送時間として許容可能とする最大時間（以降「最大許容転送時間」と表記）が代入される変数である。「Ｒｍｉｎ」は、レイテンシ監視部４１４が実際に測定した転送時間のなかの最小転送時間が代入される変数である。この変数Ｒｍｉｎには、最終的に最大転送サイズ以下のデータ転送時に測定された転送時間が代入される。
【００４６】
「Ｓｍｉｎ」は、最小の分割データサイズ値として予め設定されたデータサイズ値が代入される変数である。「Ｓｏｐｔ」は、データサイズ４４として設定すべき値、つまり最適とする分割データサイズの値が代入される変数である。「Ｓ」は、データ移動部４１２に発行させるデータ転送リクエストによってデータ転送させるデータのサイズを表す値が代入される変数である。
【００４７】
本実施形態では、転送時間がデータ転送サイズに応じて階段状に変化すること、及びデータサイズ値は２の冪乗の値であるのが普通であることに着目し、変数Ｓｏｐｔに代入すべき値を特定する。そのため、本実施形態では、最大転送サイズ値は２の冪乗の値であると想定し、最小転送時間、及び他の転送時間の２つの転送時間を特定する。
【００４８】
他の転送時間は、最小転送時間の約Ｎ（Ｎは１より大きい整数）倍となる。この他の転送時間が測定されたデータサイズ値をＳとすると、変数Ｓｏｐｔに代入すべき値、即ち最大転送サイズ値は、Ｓ／Ｎ≦Ｓｏｐｔ＜Ｓ／Ｎ×２、の範囲内となる。そのため、最大転送サイズ値が２の冪乗の値であった場合、最大転送サイズ値は、Ｓ／Ｎ以上で最小の２の冪乗の値となる。混乱を避けるために、以降、転送時間はタイムアウト時間の整数倍に完全に一致すると想定し、測定される転送時間のバラツキ分は無視する。
【００４９】
図６は、Ｎの値が２の場合を表している。それにより、図６の点６は、データサイズ値がＳの場合に測定された転送時間がタイムアウト時間の２倍であったことを表している。変数Ｓｏｐｔに代入すべき値である最大転送サイズ値は、Ｓ／２≦Ｓｏｐｔ＜Ｓ、の範囲内に存在する最小の２の冪乗の値となる。
【００５０】
転送時間がデータ転送サイズに応じて階段状に変化させるためには、ユーザリクエストが常に存在する環境とさせなければならない。そのため、本実施形態では、シーケンシャル負荷生成部４２２により、シーケンシャルアクセスのためのユーザリクエストを発行させるようにしている。
【００５１】
上記データサイズ決定部４２１、及びシーケンシャル負荷生成部４２２を備えた転送設定プログラム４２を実行するサーバ４０は、例えば図８に表すようなハードウェア構成である。ここで図８を参照し、本実施形態におけるサーバ４０として使用可能な情報処理装置の構成例について具体的に説明する。
【００５２】
この情報処理装置は、図８に表すように、ＣＰＵ（Central Processing Unit）８１、ＦＷＨ（Firm-Ware Hub）８２、メモリ（メモリモジュール）８３、ＮＩＣ（Network Interface Card）８４、ハードディスク装置（ＨＤ）８５、インタフェース（Ｉ／Ｆ）部８６、コントローラ８７、及びＢＭＣ（Baseboard Management Controller）８８を備えている。この構成は、サーバ４０として用いられる情報処理装置の１例であり、本実施形態による情報処理装置として使用可能な情報処理装置の構成は、図８に表すようなものに限定されない。
【００５３】
ＦＷＨ８２は、ファームウェアを格納したメモリである。このファームウェアは、ＣＰＵ８１によってメモリ８３に読み出され実行される。ハードディスク装置８５には、ＯＳ４１、及び転送設定プログラム４２を含む各種プログラムが格納されている。ＣＰＵ８１は、ファームウェアの起動が完了した後、コントローラ８７を介してハードディスク装置８５からＯＳ４１、及び転送設定プログラム４２を含む各種プログラムをメモリ８３上に読み出して実行することができる。ＮＩＣ８４を介した通信は、ファームウェア、或いはＯＳ４１の起動によって可能となる。
【００５４】
Ｉ／Ｆ部８６は、複数のストレージとの通信を可能にさせる。図４に表すハードディスク装置５０、及びＳＳＤ６０は、このＩ／Ｆ部８６と接続させることができる。Ｉ／Ｆ部８６を介した通信は、例えばファームウェアの起動によって可能となる。
【００５５】
ＮＩＣ８４は、ＬＡＮ（Local Area Network）等のネットワークを介した通信を可能にさせる。図４に表すハードディスク装置５０、及びＳＳＤ６０は、このＮＩＣ８４が通信可能なネットワークと接続させても良い。
【００５６】
ＢＭＣ８８は、情報処理装置を管理するための専用の管理装置である。ＢＭＣ８８は、ＣＰＵ８１のオン／オフ、各構成要素に発生するエラーの監視、等を行う。
【００５７】
図４に表すＯＳ４１、及び転送設定プログラム４２は、ＣＰＵ８１がコントローラ８７を介してハードディスク装置８５からメモリ８３に読み出されて実行される。コントローラ８７を介したハードディスク装置８５へのＣＰＵ８１によるアクセスは、ＦＷＨ８２から読み出したファームウェアの実行を開始した後に行われる。それにより、ＯＳ４１、及び転送設定プログラム４２がそれぞれ備えた全ての機能は、例えばＣＰＵ８１、ＦＷＨ８２、メモリ８３、コントローラ８７、及びハードディスク装置８５によって実現される。サイズデータ４４は、通常、メモリ８３に保存される。
【００５８】
本実施形態による情報処理装置としてのサーバ４０は、ＯＳ４１、及び転送設定プログラム４２をＣＰＵ８１が実行することによって実現される。本実施形態による情報処理装置としてのサーバ４０は、ＯＳ４１、及び自動階層化プログラム４３をＣＰＵ８１が少なくとも実行することで実現される。本実施形態による情報処理装置としてのサーバ４０は、ＯＳ４１、及び自動階層化プログラム４３に加えて、転送設定プログラム４２をＣＰＵ８１が実行するものとなっている。
【００５９】
図７は、データサイズ決定処理のフローチャートである。このデータサイズ決定処理は、転送設定プログラム４２をＣＰＵ８１が実行することによって実現される処理である。データサイズ決定部４２１は、このデータサイズ決定処理の実行によって実現される。転送設定プログラム４２は、例えば起動時に、或いはオペレータの指示等によって実行される。次に図７を参照し、データサイズ決定処理について詳細に説明する。
【００６０】
ＣＰＵ８１は、転送設定プログラム４２、及びＯＳ４１を含む全てのプログラムを実行する。それにより、処理を実行する主体をＣＰＵ８１とした場合、そのＣＰＵ８１が実行するプログラム（ここではサブプログラムを含む）が不明確となる。このことから、ここでは、ＯＳ４１、及び転送設定プログラム４２がそれぞれ備えた機能の名称を用いて説明を行う。
【００６１】
先ず、データサイズ決定部４２１は、変数Ｓに、変数Ｓｍｉｎの値、つまり最小の分割データサイズ値を代入する（Ｓ１）。次にデータサイズ決定部４２１は、シーケンシャルアクセス負荷生成部４２２を通して、ハードディスク装置５０（図７中「Ｄｉｓｋ」と表記）の利用率が１００％となるシーケンシャルアクセスのためのユーザリクエストを発生させる（Ｓ２）。その後、データサイズ決定部４２１は、変数Ｓの値をデータサイズ値とするデータの転送をＯＳ４１のデータ移動部４１２に要求し、レイテンシ監視部４１４が測定するデータ転送時間を取得して、取得したデータ転送時間を変数Ｒｍｉｎに代入する（Ｓ３）。
【００６２】
このとき、レイテンシ監視部４１４が測定するデータ転送時間は、データ移動部４１２がデータ転送リクエストをスケジューラ４１３に発行してから、そのデータリクエストが送信されるハードディスク装置５０によるレスポンスを受信するまでの時間である。転送を要求するハードディスク装置５０上のデータは任意で良いが、転送されるデータを格納すべきＳＳＤ６０上の領域は、未使用の領域、或いは不要なデータが格納されている領域とする必要がある。
【００６３】
変数Ｒｍｉｎにデータ転送時間を代入したデータサイズ決定部４２１は、変数Ｓの値を更新する（Ｓ４）。その更新は、変数Ｓに、変数Ｔｍａｘの値を変数Ｒｍｉｎの値で割った値に現在の変数Ｓの値を乗算して得られる値（＝Ｔｍａｘ／Ｒｍｉｎ＊Ｓ）を新たに代入することで行われる。変数Ｔｍａｘに代入された値が表す最大許容転送時間としては、変数Ｒｍｉｎに代入された値が表すデータ転送時間（最小転送時間）よりも非常に大きい時間が設定される。そのため、新たに変数Ｓに代入される値は、それまでの値よりも非常に大きい値となる。
【００６４】
変数Ｓの値の更新を行った後、データサイズ決定部４２１は、変数Ｓの値をデータサイズ値とするデータの転送をＯＳ４１のデータ移動部４１２に要求し、レイテンシ監視部４１４が測定するデータ転送時間を取得して、取得したデータ転送時間を変数Ｒに代入する（Ｓ５）。次に、データサイズ決定部４２１は、変数Ｒの値が変数Ｒｍｉｎの値より大きいか否か判定する（Ｓ６）。変数Ｒの値が変数Ｒｍｉｎの値よりも所定値以上、大きい場合、つまり変数Ｒの値と変数Ｒｍｉｎの値の差が１タイムアウト時間以上と見なせる場合、Ｓ６の判定はＹｅｓとなってＳ７に移行する。変数Ｒの値が変数Ｒｍｉｎの値よりも所定値以上、大きくなかった場合、Ｓ６の判定はＹｅｓとなって上記Ｓ４に戻る。
【００６５】
Ｓ７では、データサイズ決定部４２１は、変数Ｓｏｐｔに、変数Ｒの値を変数Ｒｍｉｎの値で割った値以上で最小の２の冪乗の値を代入し、この変数Ｓｏｐｔの値をサイズデータ４４として保存する。その保存を行った後、データサイズ決定部４２１は、シーケンシャル負荷生成部４２２に指示して、シーケンシャルアクセスのためのユーザリクエストを発行させる動作を停止させる（Ｓ８）。その後、データサイズ決定処理が終了する。このデータサイズ決定処理の終了により、データサイズ決定部４２１は停止する。
【００６６】
上記のように、最大転送サイズ値が２の冪乗の値であった場合、２回のデータ転送時間の測定により、最大転送サイズ値を適切に特定することができる。そのため、データサイズ値（変数Ｓの値）を順次、変更しながら、最大転送サイズ値を特定する方法と比較して、その最大転送サイズ値を極めて迅速に特定することができる。
【００６７】
自動階層化プログラム４３は、上記データサイズ決定処理の実行により保存されるサイズデータ４４を参照し、ハードディスク装置５０とＳＳＤ６０間のデータ転送を行う。自動階層化プログラム４３は、ハードディスク装置５０、或いはＳＳＤ６０に格納されている転送対象とするデータ５１を、そのサイズデータ４４が表すデータサイズ値で分割し、分割したデータ毎にデータ転送をＯＳ４１に指示する。それにより、転送対象とするデータ５１は、その１部のみアクセスが禁止される形でデータ転送が行われる。
【００６８】
（他の実施形態）
上記実施形態は、ＯＳ４１がデータ転送を行う最大転送サイズ値が２の冪乗の値であると想定し、最大転送サイズ値と考えられるデータサイズ値を特定している。しかし、最大転送サイズ値が２の冪乗の値でない可能性も考えられる。他の実施形態は、最大転送サイズ値が２の冪乗の値でない場合を想定し、最大転送サイズ値と考えられるデータサイズ値を特定するようにしたものである。
【００６９】
この他の実施形態におけるサーバ（情報処理装置）の構成は、上記実施形態と同じで良い。実行するプログラムも上記実施形態と基本的に同じである。このことから、上記実施形態の符号を用いて、上記実施形態から異なる部分についてのみ説明する。
【００７０】
この他の実施形態では、データサイズ決定部４２１が上記実施形態から異なっている。他の実施形態におけるデータサイズ決定部４２１は、図９に表すデータサイズ決定処理を実行することで実現される。このことから、図９を参照し、他の実施形態におけるデータサイズ決定処理について詳細に説明する。ここでも、処理を実行する主体として、ＯＳ４１、及び転送設定プログラム４２がそれぞれ備えた機能を想定する。
【００７１】
先ず、データサイズ決定部４２１は、変数Ｒｍｉｎに値として代入すべきデータ転送時間を測定し、測定したデータ転送時間を表す値を変数Ｒｍｉｎに代入するＲｍｉｎ測定処理を実行する（Ｓ１１）。このＲｍｉｎ測定処理としては、例えば図７のＳ１〜Ｓ３の処理を実行すれば良い。
【００７２】
次に、データサイズ決定部４２１は、変数Ｓに、変数Ｓｓｅｔの値を代入する（Ｓ１２）。その変数Ｓｓｅｔの値は、最大転送サイズ値の少なくとも２倍以上となると想定した値であり、例えば図７のＳ４と同じ方法で算出することができる。その後、データサイズ決定部４２１は、変数Ｓの値をデータサイズ値とするデータの転送をＯＳ４１のデータ移動部４１２に要求し、レイテンシ監視部４１４が測定するデータ転送時間を取得して、取得したデータ転送時間を変数Ｔに代入する（Ｓ１３）。
【００７３】
変数Ｔにデータ転送時間を代入したデータサイズ決定部４２１は、変数Ｎに、変数Ｔの値を変数Ｒｍｉｎの値で割った値を代入する（Ｓ１４）。次にデータサイズ決定部４２１は、変数Ｓの値を変数Ｎの値で割った除算結果（＝Ｓ／Ｎ）を変数Ｓｍｉｎに代入すると共に、その除算結果の２倍の値を変数Ｓｍａｘに代入する（Ｓ１５）。
【００７４】
各変数Ｓｍｉｎ及びＳｍａｘへの値の代入を行ったデータサイズ決定部４２１は、変数Ｓに、それまでの値を変数Ｎの値で割った除算結果に所定値αを乗算した値（＝（Ｓ／Ｎ）・α）を代入する。この所定値αは、変数Ｓｍｉｎの値と変数Ｓｍａｘの値の範囲内でデータ転送時間を確認すべきデータサイズ値を算出するために設定された値である。それにより、所定値αは、１＜α＜２、の関係にある。変数Ｓの値を更新したデータサイズ決定部４２１は、更新後の変数Ｓの値をデータサイズ値とするデータの転送をＯＳ４１のデータ移動部４１２に要求し、レイテンシ監視部４１４が測定するデータ転送時間を取得して、取得したデータ転送時間を変数Ｔに代入する（Ｓ１７）。
【００７５】
次に、データサイズ決定部４２１は、変数Ｔの値が変数Ｒｍｉｎの値と等しいか否か判定する（Ｓ１８）。変数Ｔの値が変数Ｒｍｉｎの値と等しくない場合、つまり変数Ｔの値が変数Ｒｍｉｎの値より大きい場合、Ｓ１８の判定はＮｏとなってＳ２０に移行する。変数Ｔの値が変数Ｒｍｉｎの値と等しい場合、Ｓ１８の判定はＹｅｓとなってＳ１９に移行する。
【００７６】
Ｓ１９では、データサイズ決定部４２１は、変数Ｓｍｉｎに変数Ｓの値を代入する。その後、Ｓ２１に移行する。一方、Ｓ２０では、データサイズ決定部４２１は、変数Ｓｍａｘに変数Ｓの値を代入する。その後、Ｓ２１に移行する。
【００７７】
Ｓ２１では、データサイズ決定部４２１は、変数Ｓｍａｘの値から変数Ｓｍｉｎの値を引いた減算結果が、変数Ｓｍｉｎの値に所定値ｄを掛けた乗算結果未満か否か判定する。所定値ｄは、その減算結果が十分に小さいか否かを判定するために設定された値である。このことから、その減算結果が十分に小さいと見なせる値であった場合、Ｓ２１の判定はＹｅｓとなってＳ２２に移行する。その減算結果が十分に小さいと見なせる値でない場合、Ｓ２１の判定はＮｏとなって上記Ｓ１４に戻る。
【００７８】
Ｓ２２では、データサイズ決定部４２１は、変数Ｓｏｐｔに、変数Ｓの値を代入し、この変数Ｓｏｐｔの値をサイズデータ４４として保存する。その保存を行った後、データサイズ決定部４２１は、シーケンシャル負荷生成部４２２に指示して、シーケンシャルアクセスのためのユーザリクエストを発行させる動作を停止させる（Ｓ２３）。その後、データサイズ決定処理が終了する。このデータサイズ決定処理の終了により、データサイズ決定部４２１は停止する。
【００７９】
Ｓ２１でのＮｏの判定によってＳ１４に戻った場合、Ｓ１６で変数Ｓには別の値が代入される。それにより、Ｓ２１でＹｅｓと判定されるまで、変数Ｓに別の値を変更しながら、Ｓ１４〜Ｓ２１で形成される処理ループが繰り返し実行されることとなる。最大転送サイズ値が２の冪乗の値ではないと想定した場合の最大転送サイズ値の特定方法は、上記のようなものに限定されない。別の方法を採用しても良い。
【００８０】
なお、上記各実施形態では、情報処理装置としてのサーバ４０は、ストレージ間のデータ転送を行う情報処理装置とは別の情報処理装置であっても良い。つまり、情報処理装置は、ストレージ間のデータ転送を行わなくとも良い。
【符号の説明】
【００８１】
４０    サーバ（情報処理装置）
４１    ＯＳ
４２    転送設定プログラム
４３    自動階層化プログラム
４４    サイズデータ
５０    ハードディスク装置
６０    ＳＳＤ
４１１    データアクセス部
４１２    データ移動部
４１３    スケジューラ
４１４    レイテンシ監視部
４２１    シーケンシャル負荷生成部
４２２    データサイズ決定部
【図１】
2014228946.tif 000003
【図２】
2014228946.tif 000004
【図３】
2014228946.tif 000005
【図４】
2014228946.tif 000006
【図５】
2014228946.tif 000007
【図６】
2014228946.tif 000008
【図７】
2014228946.tif 000009
【図８】
2014228946.tif 000010
【図９】
2014228946.tif 000011