(57)【要約】【課題】シーケンシャル処理を効率的に実行することを課題とする。【解決手段】ディスクアレイ装置は、ＲＡＩＤを構成するディスク内のボリュームへシーケンシャル処理を実行する場合に、当該ボリュームに対して、シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する。続いて、ディスクアレイ装置は、シーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、ディスクの種類を特定する。その後、ディスクアレイ装置は、特定されたディスクの種類に基づいて多重度を決定し、決定した多重度でシーケンシャル処理を実行する。【選択図】図１
2012018481.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤを構成するディスク内のボリュームへシーケンシャル処理を実行する場合に、当該ボリュームに対して、前記シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する実行判定部と、
前記実行判定部によって前記シーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、前記ディスクの種類を特定するディスク特定部と、
前記ディスク特定部によって特定されたディスクの種類に基づいて多重度を決定し、決定した多重度で前記シーケンシャル処理を実行する処理実行部と
を有することを特徴とするディスクアレイ装置。
【請求項２】
前記ディスク特定部によって特定されたディスクの種類に基づいて多重度が決定できない場合に、前記ボリュームの一定容量ごとに想定し得る各多重度に変えて、前記シーケンシャル処理を実行して、各多重度で処理できた単位時間当たりの処理容量を測定する第１測定部を有し、
前記処理実行部は、前記第１測定部によって測定された各多重度で処理できた単位時間当たりの処理容量が最も大きい多重度で、前記シーケンシャル処理を実行することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記処理実行部が決定した多重度で前記シーケンシャル処理を実行している間に、単位時間当たりの処理容量が所定値以下になった場合に、前記ボリュームの一定容量ごとに想定し得る各多重度に変えて、前記シーケンシャル処理を実行して、各多重度で処理できた単位時間当たりの処理容量を測定する第２測定部を有し、
前記処理実行部は、前記第２測定部によって測定された各多重度で処理できた単位時間当たりの処理容量が最も大きい多重度で、前記シーケンシャル処理を実行することを特徴とする請求項１または２に記載のディスクアレイ装置。
【請求項４】
前記処理実行部は、前記実行判定部によって前記シーケンシャル処理以外の処理が所定期間内に実行されていると判定された場合に、１多重で前記シーケンシャル処理を実行することを特徴とする請求項１〜３のいずれか一つに記載のディスクアレイ装置。
【請求項５】
前記処理実行部は、前記決定した多重度で前記シーケンシャル処理を実行している間に、前記シーケンシャル処理以外の処理が実行された場合に、前記決定した多重度から１多重に多重度を変更して、前記シーケンシャル処理を実行することを特徴とする請求項１〜４のいずれか一つに記載のディスクアレイ装置。
【請求項６】
前記処理実行部は、前記決定した多重度から１多重に変更した状態で、前記シーケンシャル処理以外の処理が終了した場合には、前記１多重から前記決定した多重度に変更して、前記シーケンシャル処理を実行することを特徴とする請求項５に記載のディスクアレイ装置。
【請求項７】
ディスクアレイ装置が、
ＲＡＩＤを構成するディスク内のボリュームへシーケンシャル処理を実行する場合に、当該ボリュームに対して、前記シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する実行判定ステップと、
前記実行判定ステップによって前記シーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、前記ディスクの種類を特定するディスク特定ステップと、
前記ディスク特定ステップによって特定されたディスクの種類に基づいて多重度を決定し、決定した多重度で前記シーケンシャル処理を実行する処理実行ステップと
を含んだことを特徴とするディスクアレイ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置およびディスクアレイ制御方法に関する。
【背景技術】
【０００２】
従来、ディスクアレイシステムでは、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）を構成するディスク内のデータに順次アクセスするシーケンシャル処理として、フォーマット（Format）処理やリビルド（Rebuild）処理などが実行されている。
【０００３】
フォーマット処理とは、ディスクアレイシステムのＲＡＩＤに論理ボリューム（Logical  Volume）が作成された場合に、ディスク上のデータについて初期データを保障するために実行される処理である。また、リビルド処理とは、ディスクアレイシステムでディスク故障が発生した場合に、冗長性復旧のために、故障ディスクが記憶するデータをホットスペアディスクや交換用ディスクへコピーして再構築する処理である。
【０００４】
このようなディスクアレイシステムでは、ディスクに対して、広範囲な領域に離散的にリードやライトなどのコマンドを発行すると、ディスクのヘッドシークが発生し、連続的な領域にコマンドを発行した場合に比べて、処理性能が劣化する。また、連続的な領域に対しても、多数のコマンドを発行した場合には、コマンドがディスク内で待ち状態となり、結果として性能劣化に繋がっていた。
【０００５】
その結果、ディスクアレイシステムでは、離散化させることなく１多重での連続領域へのディスクアクセスで、フォーマット処理やリビルド処理などのシーケンシャル処理を行っていた。すなわち、コマンド要求領域の連続性を維持することで、シーケンシャル処理におけるアクセス性能を向上させていた。例えば、１多重でのディスクアクセスの手法としては、通常の入出力（Ｉ／Ｏ）がない場合には、通常のＩ／Ｏがある場合に比べて、フォーマット処理やリビルド処理の処理サイズを大きくする技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−９４９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、フォーマット処理やリビルド処理などのシーケンシャル処理を効率的に実行することができない場合あるという課題があった。
【０００８】
例えば、現在利用されているディスクでは、ディスク容量の増加に伴い、ディスク内のバッファ増加、ディスク内のプラッタ数の増加、ディスクヘッドの増加が行われている。また、シーケンシャルアクセスそのものを必要としないＳＳＤ（Solid  State  Disk）などのディスクも利用されている。これらの結果、シーケンシャル処理であっても、連続的な領域を処理するよりも離散的に処理した方が、処理速度が速い場合がある。したがって、現在のディスクアレイシステムでは、連続的な領域を１多重で処理することが最も効率的な手法だとは言い難い事象が発生する。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、シーケンシャル処理を効率的に実行することが可能であるディスクアレイ装置およびディスクアレイ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するディスクアレイ装置およびディスクアレイ制御方法は、一つの態様において、ＲＡＩＤを構成するディスク内のボリュームへシーケンシャル処理を実行する場合に、当該ボリュームに対して、前記シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する実行判定部と、前記実行判定部によって前記シーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、前記ディスクの種類を特定するディスク特定部と、前記ディスク特定部によって特定されたディスクの種類に基づいて多重度を決定し、決定した多重度で前記シーケンシャル処理を実行する処理実行部とを有する。
【発明の効果】
【００１１】
本願の開示するディスクアレイ装置およびディスクアレイ制御方法の一つの態様によれば、シーケンシャル処理を効率的に実行することが可能であるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るディスクアレイ装置を含むディスクアレイシステムの構成を示すブロック図である。
【図２】図２は、実行ログＤＢに記憶される情報の例を示す図である。
【図３】図３は、多重度ＤＢに記憶される情報の例を示す図である。
【図４】図４は、処理対象ボリュームのデータの並び例を示す図である。
【図５】図５は、１多重でのシーケンシャル処理を示す図である。
【図６】図６は、３多重でのシーケンシャル処理を示す図である。
【図７】図７は、３多重でのシーケンシャル処理を示す図である。
【図８】図８は、図７の状態から１多重に変更した例を示す図である。
【図９】図９は、シーケンシャル処理実行時の処理の流れを示すフローチャートである。
【図１０】図１０は、シーケンシャル処理実行中の処理の流れを示すフローチャートである。
【図１１】図１１は、実施例２に係るディスクアレイ装置を含むディスクアレイシステムの構成を示すブロック図である。
【図１２】図１２は、１多重の性能を評価する例を示す図である。
【図１３】図１３は、２多重の性能を評価する例を示す図である。
【図１４】図１４は、３多重の性能を評価する例を示す図である。
【図１５】図１５は、実施例２に係るシーケンシャル処理実行時の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するディスクアレイ装置およびディスクアレイ制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
［ディスクアレイ装置の構成（実施例１）］
図１は、実施例１に係るディスクアレイ装置を含むディスクアレイシステムの構成を示すブロック図である。図１に示すように、このディスクアレイシステムは、ホスト１とディスクアレイ装置１０とが、ファイバチャネル（ＦＣ）やｉＳＣＳＩ（Internet  Small  Computer  System  Interface）などを用いて相互に通信可能に接続される。ホスト１は、ディスクアレイ装置１０にデータを格納したり読み出したりするサーバ装置である。
【００１５】
なお、図１では、１台のホストと１台のディスクアレイ装置１０とが接続されている場合を図示しているが、あくまで例示であり、これに限定されるものではない。例えば、ＦＣスイッチなどを用いることで、複数のホストと複数のディスクアレイ装置とを接続するようにしてもよい。
【００１６】
ディスクアレイ装置１０は、デバイスエンクロージャー１０ａ〜１０ｎとコントローラモジュール２０とを有する。デバイスエンクロージャー１０ａ〜１０ｎそれぞれは、ホスト１のデータを記憶し、ＲＡＩＤ−０やＲＡＩＤ−５などのＲＡＩＤを構成する複数のディスクを有する筐体である。つまり、ディスクアレイ装置１０は、デバイスエンクロージャー１０ａ〜１０ｎ内部のディスクを用いてＲＡＩＤを構成する。なお、ディスクは、例えばＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Disk）などである。
【００１７】
コントローラモジュール２０は、デバイスエンクロージャー１０ａ〜１０ｎへのデータ制御を実施する処理部であり、チャネルアダプタ２１とデバイスアダプタ２２とデバイスアダプタ２３と記憶部２４と制御部２５とを有する。
【００１８】
チャネルアダプタ２１は、ＦＣやｉＳＣＳＩで接続されるホスト１との間の通信を制御する。例えば、チャネルアダプタ２１は、ホスト１からデータの読み出しや書き込み要求を受け付けて制御部２５に送信する。また、チャネルアダプタ２１は、制御部２５からデータや処理結果を受信してホスト１に送信する。
【００１９】
デバイスアダプタ２２とデバイスアダプタ２２は、デバイスエンクロージャー１０ａ〜１０ｎとコントローラモジュール２０との間の通信を制御するアダプタであり、冗長構成となっている。つまり、デバイスアダプタ２２またはデバイスアダプタ２２の一方が正常に動作していれば、デバイスエンクロージャー１０ａ〜１０ｎとコントローラモジュール２０との間の通信を接続できる。後述する制御部２５は、このデバイスアダプタ２２とデバイスアダプタ２３を介して、デバイスエンクロージャー１０ａ〜１０ｎにデータを書き込んだり、デバイスエンクロージャー１０ａ〜１０ｎからデータを読み出したりする。
【００２０】
記憶部２４は、実行ログＤＢ２４ａと多重度ＤＢ２４ｂとを有するメモリなどの記憶部である。実行ログＤＢ２４ａは、制御部２５が実行した処理結果を記憶する。したがって、記憶部２４に記憶される各情報は、制御部２５によって格納される。図２は、実行ログＤＢに記憶される情報の例を示す図である。図２に示すように、実行ログＤＢ２４ａは、「実行時間、処理内容、結果」として「2010/05/20  11:00、リード、ＯＫ」、「2010/05/20  11:05、リード、ＯＫ」、「2010/05/20  11:15、ライト、ＯＫ」、「2010/05/20  11:45、リード、ＯＫ」などを記憶する。
【００２１】
ここで記憶される「実行時間」は、制御部２５が処理を実行した日時を示し、「処理内容」は、例えばリード（Read）、ライト（Write）、フォーマット（format）、リビルド（rebuild）など、制御部２５が実行した処理内容を示す。「結果」は、制御部２５が処理した結果を示し、成功した場合には「ＯＫ」が格納され、失敗（エラー）した場合には「ＮＧ」が格納される。つまり、図２の場合、「2010/05/20  11:00」に実行した「リード」が成功したことを示し、「2010/05/20  11:05」に実行した「リード」が成功したことを示す。また、「2010/05/20  11:15」に実行した「ライト」が成功したことを示し、「2010/05/20  11:45」に実行した「リード」が成功したことを示す。
【００２２】
多重度ＤＢ２４ｂは、ディスクの種別に対応付けて、フォーマット処理やリビルド処理などのシーケンシャル処理を実行する多重度を記憶する。図３は、多重度ＤＢに記憶される情報の例を示す図である。図３に示すように、多重度ＤＢ２４ｂは、「ディスク種類（種別、回転数、転送速度、容量）、多重度」として「ＨＤＤ、5400rpm、200Mbps、73GB、1多重」や「ＨＤＤ、7200rpm、240Mbps、140GB、2多重」などを記憶する。また、多重度ＤＢ２４ｂは、「ＨＤＤ、10000rpm、280Mbps、250GB、3多重」、「ＳＳＤ、−、300Mbps、200GB、3多重」などを記憶する。
【００２３】
ここで記憶される「種別」は、ディスクの種別を示し、「回転数」は、ディスクが１分間に回転する回転数を示し、「転送速度」は、ディスク単体のデータ転送速度を示し、「容量」は、ディスク単体の記憶容量を示す。「多重度」は、フォーマット処理やリビルド処理などのシーケンシャル処理を実行する多重度を示す。つまり、図３の場合、回転数が「5400rpm」かつ転送速度が「200Mbps」かつ容量が「73GB」であるＨＤＤに対するシーケンシャル処理は、「1多重」で実行されることを示す。また、回転数が「7200rpm」かつ転送速度が「240Mbps」かつ容量が「140GB」であるＨＤＤに対するシーケンシャル処理は、「2多重」で実行されることを示す。また、回転数が「10000rpm」かつ転送速度が「280Mbps」かつ容量が「250GB」であるＨＤＤに対するシーケンシャル処理は、「3多重」で実行されることを示す。また、転送速度が「300Mbps」かつ容量が「200GB」であるＳＳＤに対するシーケンシャル処理は、回転数、転送速度、容量に関係なく、「3多重」で実行されることを示す。
【００２４】
なお、図２や図３に示した情報はあくまで例示であり、これに限定されるものではなく、任意に設定変更ができる。例えば、図２に示した実行ログＤＢ２４ａの場合、どのディスクのどのボリュームに処理を実行したかをさらに記憶してもよく、図２の「結果」を記憶しないようにしてもよい。また、図３に示した多重度ＤＢ２４ｂの場合、さらに、ディスク内部に搭載される読み出したデータあるいは書込むデータを一時的に書込む領域を示す「キャッシュ容量」を対応付けてもよい。また、ディスク上の目的のトラック位置まで移動するまでの平均時間を示す「シークタイム」などを対応付けてもよい。すなわち、多重度を決定する情報は、ディスクの性能やディスクを特定できる情報であれば、どのような情報であってもよい。また、図３に示した情報は、「ＡＮＤ」条件でなく、「ＯＲ」条件等を用いて定義してもよい。
【００２５】
制御部２５は、データの書き込みや読み出しを実行する処理部であり、ＲＡＩＤコントローラ２６と実行判定部２７とディスク特定部２８と処理実行部２９とを有する。ＲＡＩＤコントローラ２６は、パリティ演算やデバイス、ディスクの管理を実施し、デバイスエンクロージャー１０ａ〜１０ｎのデバイスから構成されるＲＡＩＤ構成を実装制御する。すなわち、ＲＡＩＤコントローラ２６は、例えばデータの書き込みや読出しなどデバイスエンクロージャー１０ａ〜１０ｎに対する各種処理を制御する。
【００２６】
例えば、ＲＡＩＤコントローラ２６は、ホスト１から送信されたデータ書き込み要求をチャネルアダプタ２１から受信した場合に、デバイスエンクロージャー１０ａ〜１０ｎの所定のボリュームにデータ書き込みを実施する。そして、ＲＡＩＤコントローラ２６は、処理実行結果を実行ログＤＢ２４ａに書き込む。また、ＲＡＩＤコントローラ２６は、スト１から送信されたデータ読み出し要求をチャネルアダプタ２１から受信した場合に、デバイスエンクロージャー１０ａ〜１０ｎの所定のボリュームからデータ読み出してホスト１に送信する。そして、ＲＡＩＤコントローラ２６は、処理実行結果を実行ログＤＢ２４ａに書き込む。
【００２７】
実行判定部２７は、ＲＡＩＤを構成するディスク内のボリュームへシーケンシャル処理を実行する場合に、当該ボリュームに対して、シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する。例えば、実行判定部２７は、ホスト１や管理者からフォーマット処理またはリビルド処理の開始要求を受信した場合に、実行ログＤＢ２４ａを参照し、上記開始要求を受信した時間の５分前後に、シーケンシャル処理以外の処理が実行されたか否かを判定する。そして、実行判定部２７は、シーケンシャル処理以外の処理が実行されていない場合に、その旨をディスク特定部２８に出力し、シーケンシャル処理以外の処理が実行されていた場合に、その旨を処理実行部２９に出力する。
【００２８】
一例として、上記開始要求を受信した時間が「2010/5/20  11:48」である場合、実行判定部２７は、図２を参照すると、「2010/5/20  11:45」に「リード」が実行されていることから、シーケンシャル処理以外の処理が実行されていると判定する。
【００２９】
ディスク特定部２８は、実行判定部２７によってシーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、ディスクの種類を特定する。例えば、ディスク特定部２８は、実行判定部２７からシーケンシャル処理以外の処理が実行されていない通知を受信すると、フォーマット処理またはリビルド処理の対象となっているボリュームを有するディスクから各種情報を取得する。
【００３０】
一例としては、ディスク特定部２８は、ディスクのＣＭ（カートリッジメモリ）に格納されている情報や管理者によって作成されたディスク情報から、処理対象ディスクの「種別、回転数、転送速度、容量」を取得する。そして、ディスク特定部２８は、取得した「種別、回転数、転送速度、容量」を処理実行部２９に出力する。なお、ＣＭに格納されている情報は、管理者等によって格納された情報であってもよく、ディスク製造者等によって格納された情報であってもよい。また、管理者によって作成されたディスク情報とは、当該ディスクアレイ装置１０を構成する段階で作成されたデータベースであり、記憶部２４に格納される。
【００３１】
処理実行部２９は、ディスク特定部２８によって特定されたディスクの種類に基づいて多重度を決定し、決定した多重度でシーケンシャル処理を実行する。例えば、処理実行部２９は、ディスク特定部２８から「種別、回転数、転送速度、容量」を受信し、受信した上記情報に対応する「多重度」を多重度ＤＢ２４ｂから特定する。そして、処理実行部２９は、処理対象ボリュームに対して、特定した「多重度」でフォーマット処理またはリビルド処理を実行する。
【００３２】
一例として、処理実行部２９は、ディスク特定部２８から「種別、回転数、転送速度、容量」として、「ＨＤＤ、10000rpm、280Mbps、250GB」を受信したとする。この場合、処理実行部２９は、多重度ＤＢ２４ｂから多重度「3多重」と決定し、処理対象ボリュームに対して、「3多重」でフォーマット処理またはリビルド処理を実行する。
【００３３】
また、処理実行部２９は、実行判定部２７からシーケンシャル処理以外の処理が所定期間内に実行されているとの通知を受信した場合に、１多重でシーケンシャル処理を実行する。また、処理実行部２９は、決定した多重度でシーケンシャル処理を実行している間に、シーケンシャル処理以外の処理が実行された場合に、１多重でシーケンシャル処理を実行する。具体的には、処理実行部２９は、３多重でシーケンシャル処理を実行している間に、リードやライトなど通常のＩ／Ｏ処理が実行された場合に、３多重から１多重に変更してシーケンシャル処理を実行する。
【００３４】
［処理実行部の実行例（実施例１）］
次に、図４〜図８を用いて、処理実行部２９が実行する処理の具体例を説明する。図４は、処理対象ボリュームのデータの並び例を示す図であり、図５は、１多重でのシーケンシャル処理を示す図であり、図６は、３多重でのシーケンシャル処理を示す図である。また、図７は、３多重でのシーケンシャル処理を示す図であり、図８は、図７の状態から１多重に変更した例を示す図である。
【００３５】
図４〜図８に示した１〜２４は、データを示すとともに、シーケンシャルアクセスの順番を示している。つまり、当該ボリュームに対するシーケンシャルアクセスとは、１から順に実行されるものとする。なお、これは説明上の例示であり、これに限定されるものではない。
【００３６】
したがって、図４に示すように、１〜２４までのデータで構成されるボリュームに対して、１多重で処理を実行する場合、図５に示すように、処理実行部２９は、１から順に実行していく。また、３多重で処理を実行する場合、図６に示すように、処理実行部２９は、「１から８まで」と「９から１６まで」と「１７から２４まで」のそれぞれに対して順番に実行していく。
【００３７】
また、処理実行部２９は、図７に示すように、「１から８まで」と「９から１６まで」と「１７から２４まで」のそれぞれに対して順番に３多重で実行しており、それぞれ「２まで」、「１０まで」、「１８まで」処理が実行完了しているとする。この状態で、通常のＩ／Ｏ処理が発生したとする。すると、処理実行部２９は、図８に示すように、「１１以降」および「１９以降」の処理を停止し、「３以降」のみの処理を実行する、すなわち、３多重で実行していた処理を１多重に変更して実行する。なお、処理実行部２９は、例えば「９」、「１０」、「１７」、「１８」完了など、処理が完了しているデータを記憶部等に格納する。この結果、処理実行部２９は、どのデータまで処理が終了しているかを把握することができるので、３多重から１多重に変更した場合であっても、既に処理が終了しているデータに対して再度処理を実施することを防止できる。
【００３８】
［処理の流れ（実施例１）］
次に、図９と図１０を用いて、実施例１に係るディスクアレイ装置の処理の流れを説明する。ここでは、図９を用いて、シーケンシャル処理実行時の処理の流れを説明し、図１０を用いて、シーケンシャル処理実行中の処理の流れを説明する。
【００３９】
（シーケンシャル処理実行時の処理の流れ）
図９は、シーケンシャル処理実行時の処理の流れを示すフローチャートである。図９に示すように、ディスクアレイ装置１０の実行判定部２７は、ＲＡＩＤを構成するディスク内のボリュームへのシーケンシャル処理開始指示を受け付ける（ステップＳ１０１肯定）。すると、実行判定部２７は、実行ログＤＢ２４ａを参照し、処理対象のボリュームに対して、シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する（ステップＳ１０２）。
【００４０】
そして、ディスク特定部２８は、実行判定部２７によってシーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に（ステップＳ１０２否定）、ディスクの種類を特定する（ステップＳ１０３）。続いて、処理実行部２９は、ディスク特定部２８によって特定されたディスクの種類に対応する多重度を多重度ＤＢ２４ｂから決定し、決定した多重度でシーケンシャル処理を実行する（ステップＳ１０４）。その後、ディスクアレイ装置１０は、図１０の実行中処理を実行する（ステップＳ１０５）。
【００４１】
一方、処理実行部２９は、実行判定部２７からシーケンシャル処理以外の処理が所定期間内に実行されているとの通知を受信した場合に（ステップＳ１０２肯定）、１多重でシーケンシャル処理を実行する（ステップＳ１０６）。その後、ディスクアレイ装置１０は、図１０の実行中処理を実行する（ステップＳ１０５）。
【００４２】
（シーケンシャル処理実行中の処理の流れ）
図１０は、シーケンシャル処理実行中の処理の流れを示すフローチャートである。この処理は、図９のステップＳ１０５に該当する。図１０に示すように、ディスクアレイ装置１０の処理実行部２９は、シーケンシャル処理が実行中であるか否かを常時監視する（ステップＳ２０１）。
【００４３】
そして、処理実行部２９は、シーケンシャル処理が実行中である場合（ステップＳ２０１肯定）、シーケンシャル処理が実行中であるボリュームに対して、リードやライトなどの通常のＩ／Ｏが発生したか否かを判定する（ステップＳ２０２）。
【００４４】
その後、処理実行部２９は、シーケンシャル処理が実行中であるボリュームに対して通常のＩ／Ｏが発生したと検出した場合（ステップＳ２０２肯定）、現在実行中のシーケンシャル処理が１多重で実行されているか否かを判定する（ステップＳ２０３）。
【００４５】
そして、処理実行部２９は、現在実行中のシーケンシャル処理が１多重で実行されていると判定した場合（ステップＳ２０３肯定）、現在実行中のシーケンシャル処理をそのまま１多重で実行し続ける（ステップＳ２０４）。その後は、ステップＳ２０１以降を繰り返す。
【００４６】
一方、処理実行部２９は、現在実行中のシーケンシャル処理が１多重で実行されていないと判定した場合（ステップＳ２０３否定）、現在実行中のシーケンシャル処理を１多重に変更して実行し続ける（ステップＳ２０５）。その後、処理実行部２９は、シーケンシャル処理が実行中であるボリュームに対する通常のＩ／Ｏが終了した場合（ステップＳ２０６肯定）、１多重に変更する前の元の多重度に戻して、シーケンシャル処理を実行する（ステップＳ２０７）。その後は、ステップＳ２０１以降を繰り返す。
【００４７】
また、ステップＳ２０１において、処理実行部２９は、シーケンシャル処理が実行中でない、すなわち、シーケンシャル処理が終了した場合（ステップＳ２０１否定）、処理を終了する。
【００４８】
［実施例１による効果］
実施例１によれば、フォーマット処理やリビルド処理の対象となっているボリュームに対して、他のＩ／Ｏが発生しているか否かによって、多重度を動的に変更することができる。つまり、Ｉ／Ｏの発生状況やディスク自体の負荷を考慮した多重度で処理できる結果、シーケンシャル処理を効率的に実行することが可能である。また、ディスク種類が混在している場合でも、ディスク種類毎に最高性能を引き出せる多重度でのフォーマット処理やリビルド処理が実現できる。さらに、フォーマット処理やリビルド処理を高速化しても他のＩ／Ｏ処理への影響が処理方式切り替え時のみという、最低限の影響で抑えられる。
【実施例２】
【００４９】
ところで、本願の開示するディスクアレイ装置は、ディスクの種類がわからない状況やディスクの種類が特定できない状況、さらに、特定したディスクの種類に対応する多重度が予め決められていない状況であっても、効率的な多重度を選択することができる。そこで、実施例２では、ディスクアレイ装置が効率的な多重度を動的に選択する例について説明する。ここでは、装置の構成、実行例、処理の流れ、効果を順に説明する。
【００５０】
［ディスクアレイ装置の構成（実施例２）］
図１１は、実施例２に係るディスクアレイ装置を含むディスクアレイシステムの構成を示すブロック図である。図１１に示すように、このディスクアレイシステムは、実施例１と同様、ホスト１とディスクアレイ装置１０とが、ファイバチャネル（ＦＣ）やｉＳＣＳＩなどを用いて相互に通信可能に接続される。ホスト１は、ディスクアレイ装置１０にデータを格納したり読み出したりするサーバ装置である。
【００５１】
ディスクアレイ装置１０は、実施例１と同様、デバイスエンクロージャー１０ａ〜１０ｎとコントローラモジュール２０とを有する。デバイスエンクロージャー１０ａ〜１０ｎそれぞれは、実施例１と同様の機能を有するので、詳細な説明は省略する。
【００５２】
また、コントローラモジュール２０は、デバイスエンクロージャー１０ａ〜１０ｎへのデータ制御を実施する処理部であり、チャネルアダプタ２１とデバイスアダプタ２２とデバイスアダプタ２３と記憶部２４と制御部２５とを有する。このうち、チャネルアダプタ２１とデバイスアダプタ２２とデバイスアダプタ２３と記憶部２４と、制御部２５のＲＡＩＤコントローラ２６と実行判定部２７とは、実施例１と同様の機能を有するので、詳細な説明は省略する。ここでは、実施例１とは異なる機能を有する制御部２５のディスク特定部３０と性能測定部３１と処理実行部３２とについて説明する。
【００５３】
ディスク特定部３０は、実行判定部２７によってシーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に、ディスクの種類を特定する。例えば、ディスク特定部２８は、実行判定部２７からシーケンシャル処理以外の処理が実行されていない旨の通知を受信すると、フォーマット処理またはリビルド処理の対象となっているボリュームを有するディスクから各種情報を取得する。
【００５４】
一例としては、ディスク特定部３０は、ディスクのＣＭ（カートリッジメモリ）に格納されている情報や管理者によって作成されたディスク情報から、処理対象ディスクの「種別、回転数、転送速度、容量」を取得する。このとき、ディスク特定部３０は、ＣＭやディスク情報から処理対象ディスクの情報が取得できなかった場合には、性能測定部３１に性能測定指示を出力する。
【００５５】
また、ディスク特定部３０は、ディスクの種類である「種別、回転数、転送速度、容量」が取得できた場合には、取得した「種別、回転数、転送速度、容量」に対応する多重度を多重度ＤＢ２４ｂから特定する。このとき、ディスク特定部３０は、取得したディスクの種類に対応する多重度が多重度ＤＢ２４ｂに記憶されていない場合、すなわち、多重度が特定できなかった場合、性能測定部３１に性能測定指示を出力する。一方、ディスク特定部３０は、取得したディスクの種類に対応する多重度が多重度ＤＢ２４ｂに記憶されている場合、すなわち、多重度が特定できた場合、特定した多重度を処理実行部３２に出力する。そして、処理実行部３２では、ディスク特定部３０から受信した多重度でシーケンシャル処理を実行する。
【００５６】
性能測定部３１は、ディスク特定部３０が多重度を決定できない場合に、ボリュームの一定容量ごとに想定し得る各多重度に変えて、シーケンシャル処理を実行して、各多重度で処理できた単位時間当たりの容量を測定する。例えば、性能測定部３１は、ディスク特定部３０から性能測定指示を受信した場合、対象となっているボリュームを有するディスクに対して、３データごとに、多重度を１多重、２多重、３多重で実行する。つまり、性能測定部３１は、１多重で３データをフォーマットし、２多重で３＋３データをフォーマットし、３多重で３＋３＋３データをフォーマットする。そして、性能測定部３１は、各多重度で処理できた単位時間当たりの処理容量を測定し、その測定結果を処理実行部３２に出力する。
【００５７】
なお、ここでは、性能測定部３１は、３データごとに処理を実行して性能を評価する例を示したが、これに限定されるものではなく、例えば３ブロックごとなど、性能を評価するための実行範囲は任意に設定変更できる。
【００５８】
処理実行部３２は、性能測定部３１によって測定された各多重度で処理できた単位時間当たりの処理容量が最も大きい多重度で、シーケンシャル処理を実行する。上記例では、処理実行部３２は、３データごとに実施した１多重、２多重、３多重ごとの単位時間当たりの容量のうち、最も容量の大きかった多重度で、シーケンシャル処理を実行する。
【００５９】
［処理実行部の実行例（実施例２）］
次に、図１２〜図１４を用いて、性能測定部３１が実行する性能測定処理の具体例を説明する。図１２は、１多重の性能を評価する例を示す図であり、図１３は、２多重の性能を評価する例を示す図であり、図１４は、３多重の性能を評価する例を示す図である。
【００６０】
ここでは、対象ボリュームの構成が図４と同様であり、また、性能測定を２データで実行する場合について説明する。具体的には、１〜２４までのデータで構成されるボリュームであり、１〜２４は、データを示すとともに、シーケンシャルアクセスの順番を示している。つまり、当該ボリュームに対するシーケンシャルアクセスとは、１から順に実行されるものとする。なお、これは説明上の例示であり、これに限定されるものではない。
【００６１】
この場合に、まず、図１３に示すように、性能測定部３１は、データ「１、２」を１多重で実行して、単位時間当たりの処理容量を測定する。次に、図１４に示すように、性能測定部３１は、データ「３、４」とデータ「９、１０」を２多重で実行して、単位時間当たりの処理容量を測定する。最後に、図１５に示すように、性能測定部３１は、データ「５、６」とデータ「１１、１２」とデータ「１７、１８」を３多重で実行して、単位時間当たりの処理容量を測定する。
【００６２】
その後、例えば、処理実行部３２は、１多重が最も処理容量が大きいと判定した場合には、その後の処理については、「７、８、１３、１４、１５、１６、１９、２０、２１、２２、２３、２４」の順に１多重で実行する。また、処理実行部３２は、２多重が最も処理容量が大きいと判定した場合には、その後の処理については、「７、８」と「１３、１４」、「１５、１６」と「１９、２０」、「２１、２２」と「２３、２４」などのような順番で、２多重で実行する。また、処理実行部３２は、３多重が最も処理容量が大きいと判定した場合には、その後の処理については、「７、８」と「１３、１４」と「１９、２０」などのように３多重で実行する。
【００６３】
［処理の流れ（実施例２）］
次に、図１５を用いて、実施例２に係るディスクアレイ装置の処理の流れを説明する。図１５は、実施例２に係るシーケンシャル処理実行時の処理の流れを示すフローチャートである。
【００６４】
図１５に示すように、ディスクアレイ装置１０の実行判定部２７は、ＲＡＩＤを構成するディスク内のボリュームへのシーケンシャル処理開始指示を受け付ける（ステップＳ３０１肯定）。すると、実行判定部２７は、実行ログＤＢ２４ａを参照し、処理対象のボリュームに対して、シーケンシャル処理以外の処理が所定期間内に実行されたか否かを判定する（ステップＳ３０２）。
【００６５】
そして、ディスク特定部３０は、実行判定部２７によってシーケンシャル処理以外の処理が所定期間内に実行されていないと判定された場合に（ステップＳ３０２否定）、ディスクの種類を特定する（ステップＳ３０３）。続いて、ディスク特定部３０は、特定したディスクの種類に対応する多重度を多重度ＤＢ２４ｂから特定できたか否かを判定する（ステップＳ３０４）。
【００６６】
そして、処理実行部２９は、ディスク特定部３０によって多重度が特定された場合には（ステップＳ３０４肯定）、特定された多重度でシーケンシャル処理を実行する（ステップＳ３０５）。その後、ディスクアレイ装置１０は、図１０の実行中処理を実行する（ステップＳ３０６）。
【００６７】
一方、ディスク特定部３０は、特定したディスクの種類に対応する多重度が多重度ＤＢ２４ｂから特定できない場合（ステップＳ３０４否定）、性能測定部３１に性能測定指示を出力する。すると、性能測定部３１は、ボリュームの一定容量ごとに想定し得る各多重度に変えて、シーケンシャル処理を実行して、各多重度で処理できた単位時間当たりの処理容量を測定する（ステップＳ３０７）。なお、ディスク特定部３０によってディスクの種類が取得できなかった場合にも、ステップＳ３０４否定以降の処理が実行される。
【００６８】
その後、処理実行部３２は、性能測定部３１によって測定された各多重度で処理できた単位時間当たりの処理容量が最も大きい多重度で、シーケンシャル処理を実行する（ステップＳ３０８）。その後、ディスクアレイ装置１０は、図１０の実行中処理を実行する（ステップＳ３０６）。
【００６９】
一方、処理実行部２９は、実行判定部２７からシーケンシャル処理以外の処理が所定期間内に実行されているとの通知を受信した場合に（ステップＳ３０２肯定）、１多重でシーケンシャル処理を実行する（ステップＳ３０９）。その後、ディスクアレイ装置１０は、図１０の実行中処理を実行する（ステップＳ３０６）。
【００７０】
［実施例２による効果］
実施例２によれば、ディスクの種類がわからない状況やディスクの種類が特定できない状況、さらに、特定したディスクの種類に対応する多重度が予め決められていない状況であっても、効率的な多重度を選択することができる。
【００７１】
ディスク種が混在している場合でも実測による多重度性能の比較で、最高性能を引き出せる多重度でのフォーマット処理またはリビルド処理が実現できる。さらに、新規のディスク種が搭載されても、新たなファーム変更や装置の設定変更無しに、最高性能を引き出せる多重度でのフォーマット処理またはリビルド処理が実現できる。
【実施例３】
【００７２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００７３】
（多重度）
実施例１や２では、多重度として、１多重、２多重、３多重のいずれかで実行する例について説明したが、これに限定されるものではなく、任意の多重度を用いることができる。例えば、１〜５多重を用いるとしてもよく、１多重・３多重・５多重を用いるとしてもよい。
【００７４】
（シーケンシャル処理実行中に性能測定）
例えば、性能測定部３１は、処理実行部３２が決定した多重度でシーケンシャル処理を実行している間に、単位時間あたりの処理容量を随時測定し、処理容量が所定値以下になったか否かを判定する。そして、性能測定部３１は、処理容量が所定値以下になった場合に、実施例２と同様の手法で、ボリュームの一定容量ごとに１〜３多重度に変えて、シーケンシャル処理を実行して、各多重度で処理できた単位時間当たりの処理容量を測定する。その後、処理実行部３２は、性能測定部３１によって測定された各多重度で処理できた単位時間当たりの処理容量が最も大きい多重度で、シーケンシャル処理を実行することもできる。この結果、処理実行中のディスク負荷状況に応じた適切な多重度でシーケンシャル処理を実行することができる。
【００７５】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図２等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。例えば、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され得る。
【００７７】
（プログラム）
なお、本実施例で説明したディスクアレイ制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００７８】
１  ホスト
１０  ディスクアレイ装置
１０ａ、１０ｎ  デバイスエンクロージャー
２０  コントローラモジュール
２１  チャネルアダプタ
２２、２３  デバイスアダプタ
２４  記憶部
２４ａ  実行ログＤＢ
２４ｂ  多重度ＤＢ
２５  制御部
２６  ＲＡＩＤコントローラ
２７  実行判定部
２８、３０  ディスク特定部
２９、３２  処理実行部
３１  性能測定部
【図１】
2012018481.tif 000003
【図２】
2012018481.tif 000004
【図３】
2012018481.tif 000005
【図４】
2012018481.tif 000006
【図５】
2012018481.tif 000007
【図６】
2012018481.tif 000008
【図７】
2012018481.tif 000009
【図８】
2012018481.tif 000010
【図９】
2012018481.tif 000011
【図１０】
2012018481.tif 000012
【図１１】
2012018481.tif 000013
【図１２】
2012018481.tif 000014
【図１３】
2012018481.tif 000015
【図１４】
2012018481.tif 000016
【図１５】
2012018481.tif 000017