(57)【要約】プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化する。ストレージ装置（１）のシステム管理手段（１０）は、ディスク回転状態検出手段（１４２）と、データディスク（２０）を回転または停止させるディスク回転状態制御手段（１４３）と、データディスク（２０）にアクセスしてデータを移動させるデータ配置制御手段（１５）とを備え、データ配置制御手段（１５）は、書込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、スピンアップさせてアクセスし、読込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、回転中の側に優先してアクセスし、読込時にプライマリ側およびバックアップ側のデータディスクが両方とも停止中の場合に、停止時間が長い側をスピンアップさせてアクセスする。
2011102429.tif 000002
【特許請求の範囲】
【請求項１】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、
前記システム管理手段は、
前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、
前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、
書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段と、
を備えることを特徴とするストレージ装置。
【請求項２】
前記データ配置制御手段は、
書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する１つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、
読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、
前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
請求項１または請求項２に記載のストレージ装置において、さらに、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、
前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、
前記データ配置制御手段は、
書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、
前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させることを特徴とするストレージ装置。
【請求項４】
請求項１ないし請求項３のいずれか一項に記載のストレージ装置において、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、
前記データ配置制御手段は、
前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すことを特徴とするストレージ装置。
【請求項５】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、書込要求時において、
書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、
当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
前記プライマリデータ処理は、
前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、
前記第１のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
前記プライマリ側の書込ステップは、
前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、
当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、を含み、
前記バックアップデータ処理は、
前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、
前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
前記バックアップ側の書込ステップは、
前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、
当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、
を含むことを特徴とするストレージ装置の制御方法。
【請求項６】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、書込要求時において、
書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、
当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
前記プライマリデータ処理は、
前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、
前記第１のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
前記プライマリ側の書込ステップは、
前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、
前記第１のデータディスクのプライマリデータデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、
前記第１のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、
前記バックアップデータ処理は、
前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、
前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
前記バックアップ側の書込ステップは、
前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、
前記第２のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、
前記第２のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とするストレージ装置の制御方法。
【請求項７】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、読込要求時において、
読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
【請求項８】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、読込要求時において、
読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、
当該データが前記キャッシュディスクに無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
【請求項９】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、
前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、
前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、
書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、
として機能させるためのシステム管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて１つのデータをあるデータディスクのプライマリデータ領域と別のデータディスクのバックアップデータ領域にそれぞれ記憶するストレージ装置およびその制御に関する。
【背景技術】
【０００２】
従来、ストレージ装置内の複数のデータディスクにおいて、原データとその原データのバックアップデータとを分散させて蓄積することで、データを多重化して、故障時において迅速に復旧させることのできる技術が知られている（例えば、特許文献１参照）。このようなストレージ装置において、データディスクには、原データを記憶するプライマリ領域と、原データのバックアップデータを記憶するバックアップ領域とからなる複数の論理記憶区分が設定されている。そして、ストレージ装置は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて、原データをあるデータディスク（プライマリ側のディスク）のプライマリデータ領域に記憶するとともに、その原データのバックアップデータを別のデータディスク（バックアップ側のディスク）のバックアップデータ領域に記憶する。これによって、この種のストレージ装置は、プライマリ側のディスクもバックアップ側のディスクも常時回転させることを前提に、プライマリ側またはバックアップ側のディスクが故障したときに、迅速に復旧することができる。【０００３】
近年、例えばインターネット等、現在の情報化社会を支えるために、膨大なデータを記憶するために数多くのデータディスクを備えた専用のストレージ装置が様々な用途で利用されている。このようなストレージ装置は、情報量の増加に対応して年々規模が大きくなり、また、その台数が増加している。各ストレージ装置において、保存すべき記録を書き込む（ライト）要求や、読み出し（リード）要求も同様に増加している。また、ストレージ装置の電力消費量も同様に増加しており、地球温暖化対策の一環として電力消費量の減少やストレージ装置の管理コストの減少が喫緊の課題として浮上している。【０００４】
ストレージ装置を省電力化するためには、データを記憶している磁気ディスク装置（データディスク）の回転をなるべく止めておくようにすると最も大きな効果を発揮することができる。ただし、磁気ディスク装置の回転を止めた場合には、応答時間やスループットなどの性能の劣化が懸念される。そのため、省電力化しつつ性能を維持するという課題に対処するために、従来、様々な手法が提案されてきた。【０００５】
従来の主な手法を列挙すると、例えば、複数のデータディスクの中でディスクに対するアクセスには偏りがあるという性質を利用し、頻繁にアクセスされるデータを一部のデータディスクに集約させる手法が知られている。また、データディスクが回転中であってライト処理やリード処理をしていない状態を示すアイドル時には、このデータディスクの回転数を低く抑える手法が知られている。さらに、データを記憶しているメインのデータディスクとは別に、同じデータを記憶させたアクセス用のキャッシュディスクを用意し、そのキャッシュアルゴリズムを工夫することでデータディスクへのアクセスの頻度を下げるという手法も知られている。【０００６】
例えば、非特許文献１に記載の方法では、データアクセスの局所性を利用して、アクセス頻度の高いデータを少数の読み出し専用のキャッシュディスクに集め、他の大多数のデータディスクをできる限り回転させずに停止させる手法を提案している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３３４７３９号公報
【非特許文献】
【０００８】
【非特許文献１】Dennis Colarelli, Dirk Grunwald. Massive Arrays of Idle Disks For Storage Archives. Proc. 2002 Conf. High-Performance Networking and Computing, IEEE CS Press 2002
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、例えば、非特許文献１に記載の方法では、データのキャッシュにのみ着目し、ストレージの信頼性は考慮していない。つまり、ストレージ装置内でデータを記憶しているメインのデータディスクが何らかの理由でクラッシュ等の故障を起こした場合にその複製がないので対応することができない。仮に信頼性を高めるためにバックアップ側のディスクを増設した場合には、ストレージ装置が大型になり、製造コストや電力消費量が増加してしまうことになる。このように従来の手法は、省電力化および性能の確保を志向することで省電力化を実現したとしても、ストレージ装置として重要であるデータの信頼性については考慮していないという問題がある。【００１０】
また、ストレージ装置内のデータディスクの台数を変更せずに、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを備えたストレージ装置において、省電力化を図ることが考えられる。この場合、従来技術では、プライマリ側のディスクもバックアップ側のディスクも常時回転させていることを前提としていた。そのため、ストレージ装置を省電力化する技術とストレージ装置の信頼性を確保する技術とを単純に組み合わせることができなかった。【００１１】
そこで、本発明は、以上のような問題点に鑑みてなされたものであり、プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化することを課題としている。
【課題を解決するための手段】
【００１２】
前記課題を解決するために、本発明に係るストレージ装置は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、前記システム管理手段が、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段とを備えることを特徴とする。【００１３】
かかる構成によれば、ストレージ装置は、信頼性を確保するための２つのデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。ここで、通常回転休止状態とは、回転が停止している状態だけを示すものではなく、通常回転数よりも低い回転数で回転する低速回転状態をも示している。また、かかる構成によれば、ストレージ装置は、プライマリ側のディスクとバックアップ側のディスクを常時回転させるのではなく、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。【００１４】
また、本発明に係るストレージ装置は、前記データ配置制御手段が、書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する１つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことが好ましい。【００１５】
かかる構成によれば、ストレージ装置は、書込要求時に書き込み先のデータディスクが通常回転休止状態であったとしても、データ配置制御手段が、ディスク回転状態制御手段によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。また、ストレージ装置は、読込要求時において、読み出し対象のデータを格納した２つのデータディスクのうち一方が通常回転状態であれば、データ配置制御手段がそのデータディスクにアクセスし、両方のデータディスクが通常回転休止状態であれば、一方のデータディスクだけをスピンアップしてアクセスする。つまり、ストレージ装置は、信頼性を確保するための２つのデータディスクの一方の通常回転休止状態を長時間確保することができる。
また、両方のデータディスクが通常回転休止状態の場合にスピンアップする側のデータディスクを選択する基準を、通常回転休止状態の時間が長い側としたことで、信頼性を確保するための２つのデータディスクについての総計で、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。
また、ストレージ装置は、読込要求時に、通常回転休止状態であったプライマリ側またはバックアップ側のデータディスクをスピンアップした後に、プライマリデータ領域またはバックアップデータ領域のうちの一方のデータ領域から読み出し処理を行う。そのため、このスピンアップしたデータディスクを予め定めた期間だけ通常回転状態に保持しておくことで、その期間内に、一方のデータ領域に対して別の読込要求や書込要求があった場合にデータディスクをスピンアップする必要がない。また、その期間内に他方のデータ領域に対する読込要求や書込要求があった場合にも、このデータディスクをスピンアップする必要がない。【００１６】
また、本発明に係るストレージ装置は、さらに、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、前記データ配置制御手段が、書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させるように構成することが好ましい。【００１７】
かかる構成によれば、ストレージ装置は、データディスクのデータをキャッシュするキャッシュメモリを備える構成としたので、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。例えば、プライマリ側とバックアップ側のキャッシュメモリの電源を保持しておけば、一方がクラッシュしてもデータを保持することができる。【００１８】
また、本発明に係るストレージ装置は、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、前記データ配置制御手段が、前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すように構成することが好ましい。【００１９】
かかる構成によれば、ストレージ装置は、読み出し専用のキャッシュディスクを備えているので、各データディスクに格納されている頻繁にアクセスされるデータをキャッシュディスクに集約させておくことで、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。【００２０】
また、前記課題を解決するために、本発明の第１の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第１のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、を含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、を含むことを特徴とする。【００２１】
かかる手順によれば、本発明の第１の観点に係るストレージ装置の制御方法は、書込要求時において、システム管理手段によって、プライマリデータ処理と、バックアップデータ処理と、を含んで実行するので、信頼性を高めることができる。また、システム管理手段は、プライマリデータ処理にて、データディスクのプライマリデータ領域に格納すべきデータを一時的にキャッシュメモリにキャッシュしてからデータディスクに格納する処理を行う。ここで、データをキャッシュメモリにキャッシュしている間は、データディスクを通常回転休止状態としておくことができる。また、データをキャッシュメモリからデータディスクに格納する処理を行っている間は、データディスクが通常回転状態である。そして、システム管理手段は、プライマリデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのバックアップデータ領域に対応付けられているデータの更新も行う。すなわち、システム管理手段は、データディスクのバックアップデータ領域に対応付けられているデータが格納されているキャッシュメモリのバックアップデータ領域に格納されているデータを、このデータディスクのバックアップデータ領域に格納する。ここでバックアップデータ領域に対応付けられているデータを更新する際には、このデータディスクが通常回転休止状態のときに更新する場合と比較すると、データディスクをスピンアップする必要がないため、電力消費を低減することができる。
また、かかる手順によれば、システム管理手段は、バックアップデータ処理にて、データディスクのプライマリデータ領域に格納されているデータに対するバックアップを一時的にキャッシュメモリにキャッシュしてから該当するデータディスクに格納する処理を行う。そして、システム管理手段は、バックアップデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのプライマリデータ領域に対応付けられているデータの更新も行う。したがって、このバックアップデータ処理に際しても、データディスクの通常回転状態中に２つのデータ領域を続けて更新することで、プライマリデータ処理と同様に、電力消費を低減することができる。【００２２】
また、本発明の第２の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第１のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、前記第１のデータディスクのプライマリデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、前記第１のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、前記第２のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、前記第２のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とする。【００２３】
かかる手順によれば、本発明の第２の観点に係るストレージ装置の制御方法は、本発明の第１の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、データディスクが通常回転状態のときに、そのデータのコピーをキャッシュディスクに格納する処理を実行するので、データディスクの不要な回転動作を防止することができる。これにより、読み出し処理をキャッシュディスクによって安定的に行い、データディスクをより長く通常回転休止状態としておくことができる。【００２４】
また、本発明の第３の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。【００２５】
かかる手順によれば、本発明の第３の観点に係るストレージ装置の制御方法は、読込要求時において、システム管理手段によって、読込要求が対象とするデータの格納候補を順次検索する。すなわち、システム管理手段は、当該データの格納候補として、キャッシュメモリにおけるプライマリデータ領域を最優先で検索し、次に、バックアップとしてのキャッシュメモリのバックアップデータ領域を検索する。これにより、システム管理手段は、これまでの処理で読込対象のデータを読み出すことができない場合にはじめて、データディスクにアクセスするので、その間、データディスクを通常回転休止状態としておくことができる。また、システム管理手段がデータディスクにアクセスするときに、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。つまり、ストレージ装置は、通常は、プライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクを通常回転状態にまでスピンアップする運用ができるので、大幅な省電力化を実現することができる。【００２６】
また、本発明の第４の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、当該データが前記キャッシュディスクに無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。【００２７】
かかる手順によれば、本発明の第４の観点に係るストレージ装置の制御方法は、本発明の第３の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、読込要求が対象とするデータの格納候補を順次検索する際に、データディスクよりもキャッシュディスクを優先して検索する処理を実行するので、キャッシュディスクにてヒットすることで、データディスクをより長く通常回転休止状態としておくことができる。【００２８】
また、本発明に係るシステム管理プログラムは、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、として機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【００２９】
請求項１に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。また、請求項９に係るシステム管理プログラムをインストールされたストレージ装置のコンピュータは、同様の効果を奏することができる。【００３０】
請求項２に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクの一方の通常回転休止状態を長時間確保することができると共に、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる【００３１】
請求項３に係るストレージ装置によれば、データディスクに加えてキャッシュメモリを備えるので、書込処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。【００３２】
請求項４に係るストレージ装置によれば、データディスクに加えて読み出し専用のキャッシュディスクを備えているので、読み出し処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。【００３３】
請求項５または請求項６に係るストレージ装置の制御方法によれば、書込要求時において、システム管理手段によって、プライマリデータ処理とバックアップデータ処理とを行うことで信頼性を確保しつつ、これら両処理においてデータディスクの通常回転状態中にプライマリ側データ領域およびバックアップ側データ領域をそれぞれ更新することができる。したがって、プライマリデータ処理またはバックアップデータ処理において、データディスクの通常回転状態中にいずれか一方のデータ領域だけを更新する場合に比べ電力消費を低減することができる。【００３４】
請求項７または請求項８に係るストレージ装置の制御方法によれば、読込要求時において、システム管理手段がデータディスクになるべくアクセスしない順序で判別処理を実行し、データディスクにアクセスする場合であったとしても、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。したがって、大幅な省電力化を実現することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に係るストレージ装置の構成を模式的に示すブロック図である。
【図２】図１のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位が単数の場合を模式的に示す説明図である。
【図３】図２のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。
【図４】図３のPrimaryデータ処理を示すフローチャートであって、（ａ）は処理の全体の流れ、（ｂ）はＤPrimary書込処理をそれぞれ示している。
【図５】図３のBackupデータ処理を示すフローチャートであって、（ａ）は処理の全体の流れ、（ｂ）はＤBackup書込処理をそれぞれ示している。
【図６】図２のストレージ装置においてRead処理の流れを示すフローチャート（その１）である。
【図７】図２および図８のストレージ装置においてRead処理の流れを示すフローチャート（その２）である。
【図８】図１のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位が複数の場合を模式的に示す説明図である。
【図９】図８のストレージ装置においてネットワークから受信したデータをキャッシュメモリへ書き込む処理を模式的に示す説明図である。
【図１０】図８のストレージ装置においてネットワークから受信したデータをキャッシュディスクに書き込むまでの処理を模式的に示す説明図であって、（ａ）はキャッシュメモリからデータディスクへの書込処理、（ｂ）はデータディスクからキャッシュディスクへの書込処理をそれぞれ示している。
【図１１】図８のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。
【図１２】図１１のＤPrimary書込処理を示すフローチャートである。
【図１３】図１２のＤbackup＼primary書込処理を示すフローチャートである。
【図１４】図８のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。
【図１５】図１４のＤBackup書込処理を示すフローチャートである。
【図１６】図１５のＤprimary＼backup書込処理を示すフローチャートである。
【図１７】図８のストレージ装置においてネットワークからリード要求があり、かつ、要求されたデータがキャッシュディスクにない場合の処理を模式的に示す説明図である。
【図１８】図８のストレージ装置においてRead処理の流れを示すフローチャート（その１）である。
【図１９】図１のストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが１つのプライマリデータに対して複数のバックアップデータを記憶する場合を模式的に示す説明図である。
【発明を実施するための形態】
【００３６】
図面を参照して本発明のストレージ装置およびその制御方法を実施するための形態について詳細に説明する。以下では、説明の都合上、１．ストレージ装置の基本構成の概要、２．データ書込時の安定化のための構成の概要、３．データ読込時の安定化のための構成の概要、４．キャッシュ単位が単数の場合のストレージ装置の動作、５．キャッシュ単位が複数の場合のストレージ装置の動作の各章について順次説明することとする。
【００３７】
［１．ストレージ装置の基本構成の概要］
本発明の実施形態に係るストレージ装置１は、図１に示すように、システム管理手段１０と、データディスク２０とを主な構成要素として備え、また、書き込み処理を安定に行うためにキャッシュメモリ３０を備え、さらに読み込み処理を安定にするためにキャッシュディスク４０を備えている。ここでは、主な構成要素であるシステム管理手段１０とデータディスク２０との関係を説明する。
【００３８】
システム管理手段１０は、例えば、CPU（Central Processing Unit）等の演算装置と、メモリ、ハードディスク等の記憶装置と、外部との各種情報の送受信を行うインタフェース装置とを備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。このシステム管理手段１０は、ハードウェア装置とソフトウェアとが協働することによって、前記したハードウェア資源がプログラムによって制御されることにより実現され、図１に示すように、通信送受信手段１１と、データ格納手段１２と、データ配信手段１３と、データ管理手段１４と、データ配置制御手段１５とを備えることとした。
【００３９】
通信送受信手段１１は、ネットワーク２を介して、図示しないクライアントコンピュータと、データの送受信を行う。例えば、通信送受信手段１１は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の通信プロトコルによってデータの送受信を行う通信ボードである。
【００４０】
また、通信送受信手段１１には、このストレージ装置１内のデータディスク２０、キャッシュメモリ３０およびキャッシュディスク４０との間で、データの入出力を行う入出力インタフェースを含む。なお、以下では、データディスク２０、キャッシュメモリ３０およびキャッシュディスク４０を特に区別しない場合には、単に、記憶装置という。
【００４１】
データ格納手段１２は、通信送受信手段１１を介して外部から受信したデータや、このストレージ装置１内の記憶装置から通信送受信手段１１を介して入力したデータを、所定の記憶装置に記憶するものである。ここでは、データ格納手段１２は、データ受信手段１２１と、データ書込手段１２２とを備えている。
【００４２】
データ受信手段１２１は、通信送受信手段１１を介してデータを受信するものである。このデータ受信手段１２１は、データ配置制御手段１５から通知されるデータの送信元（例えば図示しないクライアントコンピュータ）から、通信送受信手段１１を介してデータを受信する。このデータ受信手段１２１で受信されたデータは、データ書込手段１２２に出力される。
【００４３】
データ書込手段１２２は、データ受信手段１２１で受信されたデータを、データ配置制御手段１５から指示される記憶装置上の書き込みアドレスに書き込むものである。
【００４４】
データ配信手段１３は、通信送受信手段１１を介して、記憶装置に記憶されているデータを、そのデータを要求した要求元（例えば図示しないクライアントコンピュータ）に、当該データを配信するものである。ここでは、データ配信手段１３は、データ読出手段１３１と、データ送信手段１３２とを備えている。
【００４５】
データ読出手段１３１は、データ配置制御手段１５から指示されるデータを記憶装置から読み出してデータ送信手段１３２に出力する。なお、データ配置制御手段１５からは、データを特定するアドレス等が、データ読出手段１３１に対して指示されるものとする。
データ送信手段１３２は、データ読出手段１３１で読み出されたデータを、通信送受信手段１１を介して、データ配置制御手段１５から通知される図示しないクライアントコンピュータに送信したり、同じく通知される他の記憶装置に送信したりするものである。
【００４６】
データ管理手段１４は、このストレージ装置１内の記憶装置に格納されているデータを管理するためのものである。ここでは、データ管理手段１４は、キャッシュメモリ容量検出手段１４１と、ディスク回転状態検出手段１４２と、ディスク回転状態制御手段１４３とを備えることとした。これらキャッシュメモリ容量検出手段１４１、ディスク回転状態検出手段１４２、およびディスク回転状態制御手段１４３の詳細については、後記する。
【００４７】
データ配置制御手段１５は、データ格納手段１２、データ配信手段１３およびデータ管理手段１４を制御し、ストレージ装置１内の各記憶装置に格納するデータを管理してその配置を決定するものである。データ配置制御手段１５の詳細については、後記する。
【００４８】
データディスク２０は、例えば、一般的な磁気ディスク装置、光ディスク装置、光磁気ディスク装置などから構成されている。データディスク２０は、ディスクの記憶領域がプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。また、データディスク２０のプライマリデータ領域およびバックアップデータ領域のことを、プライマリ層およびバックアップ層とも呼ぶ。図１に示す例では、データディスク２０は、プライマリ層データとしてのプライマリデータ２１と、バックアップ層データとしてのバックアップデータ２２とを格納している。
【００４９】
図１では、データディスク２０を１台だけ例示したが、ストレージ装置１は、複数台のデータディスク２０を備えている。詳細は後記するが、図２および図８に、ストレージ装置の要部として各記憶装置の組み合わせ例を示す。
【００５０】
システム管理手段１０は、外部からの書込要求に応じて、複数のデータディスク２０の１つに格納すべきデータを当該データディスク２０のプライマリデータ領域に格納すると共に、当該データを少なくとも１つの別のデータディスク２０のバックアップデータ領域に格納する制御を行うことを前提としている。例えば、ストレージ装置１が図２に示すように、データディスク２０ａ、２０ｂを備えているものとする。ここで、データディスク２０ａは、プライマリデータ領域２１ａと、バックアップデータ領域２２ａとを備え、データディスク２０ｂは、プライマリデータ領域２１ｂと、バックアップデータ領域２２ｂとを備えている。書込要求または読込要求が対象とするデータと、データディスク２０とは予め対応付けられているものとする。
【００５１】
この場合、システム管理手段１０は、書込時に、あるデータをデータディスク２０ａのプライマリデータ領域２１ａに格納する。この格納されているデータをプライマリデータまたはデータＰ1と呼ぶ。ここで、データＰ1に対応付けられたプライマリデータ領域を有するデータディスクをプライマリ側のデータディスクＤprimaryと呼ぶ。
【００５２】
また、システム管理手段１０は、データＰ1を格納するときに、同じ内容のデータをデータディスク２０ｂのバックアップデータ領域２２ｂに格納する。この格納されているデータをバックアップデータまたはデータＢ1と呼ぶ。ここで、データＢ1に対応付けられたバックアップデータ領域を有するデータディスクをバックアップ側のデータディスクＤbackupと呼ぶ。
【００５３】
したがって、図２において、データＰ1（＝データＢ1）に着目した場合には、プライマリ側のデータディスクＤprimaryとはデータディスク２０ａのことであり、バックアップ側のデータディスクＤbackupとはデータディスク２０ｂである。
【００５４】
一方、図２に示す例の場合、システム管理手段１０は、別の書込時に、別のあるデータをデータディスク２０ｂのプライマリデータ領域２１ｂに格納する。この格納されているデータをプライマリデータまたはデータＰ2と呼ぶ。また、システム管理手段１０は、データＰ2を格納するときに、同じ内容のデータをデータディスク２０ａのバックアップデータ領域２２ａに格納する。この格納されているデータをバックアップデータまたはデータＢ2と呼ぶ。したがって、図２において、データＰ2（＝データＢ2）に着目した場合には、プライマリ側のデータディスクＤprimaryとはデータディスク２０ｂのことであり、バックアップ側のデータディスクＤbackupとはデータディスク２０ａである。
【００５５】
ストレージ装置１は、装置の性能と信頼性を確保しつつ、省電力化するために、システム管理手段１０によって、通常は、プライマリ側のデータディスクＤprimaryおよびバックアップ側のデータディスクＤbackupをそれぞれなるべく休止させた状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクをスピンアップする制御を行う。
【００５６】
システム管理手段１０は、各データディスク２０をそれぞれなるべく休止させた状態としておくために、図１に示すように、ディスク回転状態検出手段１４２と、ディスク回転状態制御手段１４３と、データ配置制御手段１５とを備えている。
【００５７】
ディスク回転状態検出手段１４２は、データ配置制御手段１５の制御の下、データディスク２０の回転状態が、通常回転状態と通常回転休止状態とのいずれであるのかを検出するものである。
【００５８】
ここで、通常回転状態とは、データディスク２０が予め定められた通常回転数で回転している状態を示す。通常回転数は、書き込み処理や読み出し処理のアクセスを行うときのディスク回転数であり、例えば、7200［rpm］、10000［rpm］、15000［rpm］等とすることができる。また、通常回転数は、例えば、アクセスのスピードや消費電力、騒音等様々な要因で適宜設計変更することができる。
【００５９】
また、通常回転休止状態とは、通常回転数よりも低い予め定められた低速回転状態または停止状態を示す。以下では、簡単のため、通常回転休止状態を回転停止状態であるものとして説明する。
【００６０】
ディスク回転状態制御手段１４３は、データ配置制御手段１５の制御の下、データディスク２０の回転状態を通常回転状態また停止状態（通常回転休止状態）のいずれかに切り替えるものである。
【００６１】
データ配置制御手段１５は、各データディスク２０とディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理しており、また、ディスク回転状態検出手段１４２およびディスク回転状態制御手段１４３を制御するものである。
【００６２】
データ配置制御手段１５は、書込要求または読込要求に応じて、複数台のデータディスク２０の中から、書込要求または読込要求が対象とするデータに対応付けられたプライマリ側のデータディスクＤprimaryと、バックアップ側のデータディスクＤbackupとを探索し、探索されたデータディスクＤprimary、Ｄbackupにそれぞれアクセスして、書込要求または読込要求に応じてデータを移動させる処理を行う。
【００６３】
データ配置制御手段１５は、書込要求時において、プライマリ側のデータディスクＤprimaryまたはバックアップ側のデータディスクＤbackupが回転停止状態であることがディスク回転状態検出手段１４２によって検出された場合には、ディスク回転状態制御手段１４３によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。
【００６４】
また、データ配置制御手段１５は、読込要求時において、プライマリ側のデータディスクＤprimaryまたはバックアップ側のデータディスクＤbackupが回転停止状態であることがディスク回転状態検出手段１４２によって検出された場合には、通常回転状態の側のデータディスクに優先してアクセスする。
【００６５】
さらに、データ配置制御手段１５は、読込要求時において、プライマリ側のデータディスクＤprimaryおよびバックアップ側のデータディスクＤbackupが両方とも回転停止状態であることがディスク回転状態検出手段１４２によって検出された場合には、回転停止状態の時間が長い側のデータディスクをディスク回転状態制御手段１４３によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。
【００６６】
［２．データ書込時の安定化のための構成の概要］
図１に示すストレージ装置１は、書き込み処理を安定に行うために、データディスク２０へ格納するデータをキャッシュするキャッシュメモリ３０を備えている。ここでは、システム管理手段１０と、データディスク２０と、キャッシュメモリ３０との関係を説明する。
【００６７】
キャッシュメモリ３０は、例えば、一般的な半導体メモリ、常時回転しているディスクやＳＳＤ（Solid State Drive）等から構成される。キャッシュメモリ３０は、揮発性メモリでも不揮発性メモリでもよい。キャッシュメモリ３０を揮発性メモリで構成する場合には、バックアップ電源を用いる。キャッシュメモリ３０は、メモリがプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。これにより、揮発性メモリを用いた場合でも信頼性を確保することができる。図１に示す例では、キャッシュメモリ３０は、プライマリデータ３１と、バックアップデータ３２とを格納している。
【００６８】
図１では、キャッシュメモリ３０を１台だけ例示したが、ストレージ装置１は、複数台のキャッシュメモリ３０を備えている（図２、図８参照）。キャッシュメモリ３０の台数は、適宜設計変更することができる。例えば、図２に示すように、キャッシュメモリ３０がデータディスク２０のデータを記憶するキャッシュ単位が単数の場合には、キャッシュメモリ３０の台数は、データディスク２０の台数と同じである。また、キャッシュメモリ３０がデータディスク２０のデータを記憶するキャッシュ単位が複数である場合には、キャッシュメモリ３０の台数は、データディスク２０の台数よりも少なくなる。例えば、図８に示すように、キャッシュメモリ３０がデータディスク２０のデータを記憶するキャッシュ単位が「２」である場合には、キャッシュメモリ３０の台数は、データディスク２０の台数の半分となる。なお、図８に示すストレージ装置の構成の詳細は後記する。
【００６９】
データ配置制御手段１５は、各データディスク２０を管理すると共に、各キャッシュメモリ３０とキャッシュメモリに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。
【００７０】
データ配置制御手段１５は、外部からの書込要求に応じて、複数のデータディスク２０の１つに格納すべきデータを一時的に、当該データディスク２０に対応付けられたキャッシュメモリ３０のプライマリデータ領域に格納すると共に、当該データを少なくとも１つの別のキャッシュメモリ３０のバックアップデータ領域に格納する。
このようにデータ配置制御手段１５が、これらのキャッシュメモリ３０にデータを書き込んだ時点で、データ配信手段１３は応答を返す。これにより、アクセス要求に対して高速な応答が可能となり、さらに、ディスクアクセスの頻度を下げることができる。そのため、データディスク２０の回転停止時間を確保し、回転開始回数を低く抑えることができる。
【００７１】
例えば、ストレージ装置１が図２に示すように、キャッシュメモリ３０ａ、３０ｂを備えているものとする。ここで、キャッシュメモリ３０ａは、プライマリデータ領域３１ａと、バックアップデータ領域３２ａとを備え、キャッシュメモリ３０ｂは、プライマリデータ領域３１ｂと、バックアップデータ領域３２ｂとを備えている。書込要求または読込要求が対象とするデータと、キャッシュメモリ３０とは予め対応付けられているものとする。外部からキャッシュメモリ３０へデータを書き込む制御は、図１に示すデータ配置制御手段１５が行う。
【００７２】
このデータ配置制御手段１５は、例えば、図９に示すように、外部から、writeデータの書き込み要求があった場合に、このデータＰ1をキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納する処理を行うと共に、データＢ1（＝データＰ1）をキャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納する処理を行う。つまり、データ配置制御手段１５は、キャッシュメモリ３０へのデータの書き込みに際して、隣接先行ログ書き込み(nWAL：Neighboring Write Ahead Log)の手法を利用する。なお、例えば、キャッシュメモリ３０ａに格納されているＰ1は、データディスク２０ａに格納されているＰ1のごく一部のデータや、中身が新しく書き換えられたデータを示している。
【００７３】
ここで、writeデータの書き込み要求があったときに行う一連の書き込み処理のうち、プライマリ側のデータディスク２０ａにデータＰ1を格納する処理をprimary処理と呼び、このバックアップデータとしてバックアップ側のデータディスク２０ｂにデータＢ1を格納する処理をbackup処理と呼ぶ。
【００７４】
また、図２に示す例の場合には、データＰ1を格納するプライマリデータ領域３１ａを有するキャッシュメモリ３０ａをプライマリ側のキャッシュメモリと呼ぶ。また、データＰ1のバックアップデータであるデータＢ1を格納するバックアップデータ領域を有するキャッシュメモリ３０ｂをバックアップ側のキャッシュメモリと呼ぶ。同様に、図２において、データＰ2（＝データＢ2）に着目した場合には、プライマリ側のキャッシュメモリとはデータディスク２０ｂを示し、バックアップ側のキャッシュメモリとはデータディスク２０ａを示す。
【００７５】
また、図２に示す例の場合には、キャッシュメモリ３０ａ，３０ｂと、データディスク２０ａ，２０ｂとは予めそれぞれ次のように対応付けられているものとする。
キャッシュメモリ３０ａのプライマリデータ領域３１ａと、データディスク２０ａのプライマリデータ領域２１ａとが対応付けられている。
キャッシュメモリ３０ａのバックアップデータ領域３２ａと、データディスク２０ａのバックアップデータ領域２２ａとが対応付けられている。
キャッシュメモリ３０ｂのプライマリデータ領域３１ｂと、データディスク２０ｂのプライマリデータ領域２１ｂとが応付けられている。
キャッシュメモリ３０ｂのバックアップデータ領域３２ｂと、データディスク２０ｂのバックアップデータ領域２２ｂとが対応付けられている。
【００７６】
キャッシュメモリ３０からデータディスク２０へデータを移動させる制御は、図１に示すキャッシュメモリ容量検出手段１４１およびデータ配置制御手段１５が行う。
キャッシュメモリ容量検出手段１４１は、キャッシュメモリ３０における現在のキュー長を検出するものである。
データ配置制御手段１５は、検出されたキャッシュメモリ３０の現在のキュー長に応じて、キャッシュメモリ３０に格納されているデータを該当するデータディスク２０に移動させる制御を行う。
【００７７】
本実施形態では、キャッシュメモリ容量検出手段１４１は、検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出することとした。そして、データ配置制御手段１５は、キャッシュメモリ３０のキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリ３０に格納されているデータを当該データディスク２０に移動させる。なお、キャッシュメモリ３０が例えばディスクやＳＳＤである場合、メモリ容量とは、ディスクやＳＳＤの容量を示す。
【００７８】
本実施形態では、一例として、現在のキュー長Ｗと２つの閾値（最小許容キューサイズＷth、最大許容キューサイズＷmax）との大小関係を用いて、メモリ容量の状態を（ａ１）〜（ａ３）の条件に応じて３つの状態に区分した。
（ａ１）Ｗ＜Ｗth
（ａ２）Ｗth＜Ｗ＜Ｗmax
（ａ３）Ｗ＞Ｗmax
【００７９】
現在のキュー長Ｗが前記（ａ１）の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ３０には、データディスク２０に書き込むべきデータがまだ充分に蓄積されていない状態を表しているため、データ配置制御手段１５は、まだデータを書き込まないこととする。これにより、省電力化を図ることができる。
【００８０】
現在のキュー長Ｗが前記（ａ２）の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ３０には、データディスク２０に書き込むべきデータがある程度蓄積されている状態を表しているため、データ配置制御手段１５は、該当するデータディスク２０が通常回転状態であれば、データを書き込むこととする。つまり、現在のキュー長Ｗが前記（ａ２）の条件を満たしていたとしても、該当するデータディスク２０が回転停止状態であれば、データ配置制御手段１５は、データを書き込まないこととする。これにより、省電力化を図ることができる。
【００８１】
現在のキュー長Ｗが前記（ａ３）の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ３０には、許容量を超えたデータが蓄積されている状態を表しているため、データ配置制御手段１５は、該当するデータディスク２０にデータを書き込むこととする。このときに、該当するデータディスク２０が回転停止状態であれば、データ配置制御手段１５は、そのデータディスク２０をスピンアップしてデータを書き込む。
【００８２】
データ配置制御手段１５は、キャッシュメモリ３０からデータディスク２０へデータを書き込む際には、同一のデータディスク２０に格納されるプライマリデータとバックアップデータとを同期させて書き込む。つまり、図２に示す例では、データ配置制御手段１５は、例えば、キャッシュメモリ３０ａからデータディスク２０ａへデータＰ1を書き込む際には、続けてデータＢ2を書き込む。また、データ配置制御手段１５は、キャッシュメモリ３０ａからデータディスク２０ａへデータＢ2を書き込む際には、続けてデータＰ1を書き込む。データ配置制御手段１５は、キャッシュメモリ３０ｂとデータディスク２０ｂとの間の書き込み処理も同様に処理する。
【００８３】
ストレージ装置１内では、書込要求のデータについてのプライマリ側のデータディスク２０とバックアップ側のデータディスク２０との回転状態は、一般に非同期なので、タイミングによっては、データディスク２０ａに格納されているデータＰ1の内容と、データディスク２０ｂに格納されているデータＢ1の内容とが一致していない場合も生じる。同様に、データＰ2の内容とデータＢ2の内容とが一致していない場合も生じることがある。ただし、データ配置制御手段１５は、各記憶装置の格納データが最新のものであるか否かを管理しており、かつ、プライマリ側のキャッシュメモリ３０とバックアップ側のキャッシュメモリ３０とを配置したので、各データディスク２０に格納される同一データについてのプライマリ側の内容とバックアップ側の内容とに差が生じる期間があったとしても、内容を一致させることができる。
【００８４】
データ配置制御手段１５は、以上のようにキャッシュメモリ３０のキュー長やデータディスク２０の回転状態に応じて、当該キャッシュメモリ３０に格納されているデータを当該データディスク２０に移動させる処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。
【００８５】
［３．データ読込時の安定化のための構成の概要］
図１に示すストレージ装置１は、読み込み処理を安定に行うために、読み出し専用のディスクを示すキャッシュディスク４０を備えている。ここでは、システム管理手段１０と、データディスク２０と、キャッシュメモリ３０と、キャッシュディスク４０との関係を説明する。
【００８６】
キャッシュディスク４０は、データディスク２０に格納されたオリジナルのデータをコピーしたデータを格納するものであり、常時、通常回転状態である。キャッシュディスク４０は、例えば、一般的な磁気ディスク装置、光ディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）などから構成されている。キャッシュディスク４０は、データディスク２０と同じものを用いてもよい。この場合には、キャッシュディスク４０は、ディスクの記憶領域をプライマリデータ領域とバックアップデータ領域とに分割する必要はない。
【００８７】
図１に示す例では、キャッシュディスク４０は、記憶領域を特に分割することなく、プライマリデータ４１と、バックアップデータ４２とを格納している。この場合、プライマリデータ４１は、例えば、プライマリ側のデータディスク２０ａが格納しているオリジナルのデータ（例えば、データＰ1）をコピーしたデータを示す。また、バックアップデータ４２は、例えば、このデータディスク２０ａのバックアップデータ領域２２ａに格納しているデータ（例えば、データＢ2）をコピーしたデータを示す。
【００８８】
図１では、キャッシュディスク４０を１台だけ例示したが、キャッシュディスクの台数は複数でもよい。例えば、キャッシュディスク４０およびデータディスク２０がすべて同規模の記憶領域を有する場合には、キャッシュディスク４０の台数は、その目的から、データディスク２０の台数よりも少なくすることが好ましく、省電力の観点からは、データディスク２０の台数の３割程度までであることが特に好ましい（図８参照）。
【００８９】
キャッシュディスク４０にデータを格納する制御は、図１に示すデータ配置制御手段１５が行う。データ配置制御手段１５は、各データディスク２０および各キャッシュメモリ３０を管理すると共に、各キャッシュディスク４０とキャッシュディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。
【００９０】
データ配置制御手段１５は、例えば、図８の一部である図１０（ｂ）に示すように、データディスク２０ａのプライマリデータ領域２１ａに格納されているデータのコピーを、キャッシュディスク４０に格納する。このとき、データディスク２０ａは通常回転状態である。したがって、本実施形態では、データ配置制御手段１５は、キャッシュメモリ３０に格納されているデータをデータディスク２０に移動させる処理を実行した後で、続けて、データディスク２０に格納されているデータをコピーしてキャッシュディスク４０に格納することとする。これにより、必要のないときにはデータディスク２０を回転停止状態にしておくことがでるので、省電力化を図ることができる。なお、データ配置制御手段１５は、データをコピーしてキャッシュディスク４０に格納する処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。
【００９１】
また、ストレージ装置１において、キャッシュディスク４０は常時、通常回転状態であるが、データディスク２０は必要のないときには回転停止状態とするので、データ配置制御手段１５は、読込要求時には、データディスク２０よりもキャッシュディスク４０を優先して、当該読込要求が対象とするデータを読み出す。
【００９２】
また、本実施形態のように、ストレージ装置１がキャッシュメモリ３０を備える構成とした場合には、データ配置制御手段１５は、読込要求時には、キャッシュディスク４０よりもキャッシュメモリ３０を優先して、当該読込要求が対象とするデータを読み出す。そして、この場合、データ配置制御手段１５は、読み出し対象のデータを、まず、プライマリ側のキャッシュメモリを優先して探索し、次いで、バックアップ側のキャッシュメモリを探索する。
【００９３】
また、データ配置制御手段１５は、読込要求時に、キャッシュディスク４０に格納されていない場合やキャッシュヒットミス等が生じた場合にはじめて、オリジナルデータが格納されているデータディスク２０からキャッシュディスク４０に当該データを書き込む。そして、このときキャッシュディスク４０に書き込んだデータを応答として返す。このようにデータディスク２０からキャッシュディスク４０に当該データを書き込む際には、データ配置制御手段１５は、プライマリ側のデータディスク２０と、バックアップ側のデータディスク２０のいずれから読み出すかについて予め定めた次の規則（ｂ１）〜（ｂ３）にしたがってデータを読み出す。これらの規則は、キャッシュディスク４０への書き込み時に、データディスク２０の無用な回転開始をできるだけ避けて省電力化を図るための規則である。
【００９４】
（ｂ１）プライマリ側のキャッシュメモリに対応したプライマリ側のデータディスクＤprimaryと、バックアップ側のキャッシュメモリに対応したバックアップ側のデータディスクＤbackupとの一方が回転停止状態である場合に、通常回転状態の側から当該データを読み出す。
【００９５】
（ｂ２）プライマリ側のデータディスクＤprimaryおよびバックアップ側のデータディスクＤbackupが両方とも回転停止状態である場合には、対応するキャッシュメモリ３０の中でキャッシュしているすべてのデータ（メモリキャッシュデータ）の総キューサイズが大きい側のキャッシュメモリ３０に対応したデータディスク２０を選択する。
【００９６】
この場合には、データ配置制御手段１５は、選択したデータディスク２０をディスク回転状態制御手段１４３によって通常回転状態にまでスピンアップさせてから当該データディスク２０にアクセスしてデータを読み出す。ここで、データ配置制御手段１５は、総キューサイズが大きい側を選択することとしたので、キャッシュメモリ３０のメモリ容量が許容範囲を超える前に、データディスク２０に格納されているデータを更新し易くなる。そのため、プライマリデータとバックアップデータとが不一致となるような期間を短縮する効果がある。
【００９７】
（ｂ３）プライマリ側のデータディスクＤprimaryと、バックアップ側のデータディスクＤbackupとが両方とも回転停止状態、かつ、メモリキャッシュデータの総キューサイズが等しい場合には、回転停止状態の時間が長い側のデータディスク２０を選択する。この場合も、データ配置制御手段１５は、選択したデータディスク２０をディスク回転状態制御手段１４３によって通常回転状態にまでスピンアップさせてから当該データディスク２０にアクセスしてデータを読み出す。なお、ストレージ装置にキャッシュメモリ３０を備えていない場合には、回転停止状態の時間の長さだけで判別する。
【００９８】
［４．キャッシュ単位が単数の場合のストレージ装置の動作］
ここでは、ストレージ装置１が、一例として図２に示すように、キャッシュ単位を単数とした場合の動作について説明する。なお、図２では、ストレージ装置１のデータディスク２０およびキャッシュメモリ３０の台数は２台であるが、複数であるものとして一般化して説明する。以下では、４−１．Write処理の概要、４−２．Primaryデータ処理、４−３．Backupデータ処理、４−４．Read処理の各節に分けて順次説明する。
【００９９】
［４−１．Write処理の概要］
図３は、図２のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。Write処理は、システム管理手段１０が行う記憶装置への書込処理であって、Primaryデータ処理（ステップＳ１００）と、Backupデータ処理（ステップＳ２００）とを含む。
【０１００】
［４−２．Primaryデータ処理］
まず、ステップＳ１００のPrimaryデータ処理について図４を参照（適宜図１および図２参照）して説明する。図４は、図３のPrimaryデータ処理を示すフローチャートであって、（ａ）は処理の全体の流れ、（ｂ）はＤPrimary書込処理をそれぞれ示している。
【０１０１】
ここで、ＤPrimaryとは、着目しているデータについてのプライマリ側データが格納されているディスクを示している。例えば、図２に示すようにデータを配列し、データＰ1に着目した場合には、データディスク２０ａがＤPrimaryとなる。また、図２に示すようにデータを配列し、データＰ2に着目した場合には、データディスク２０ｂがＤPrimaryとなる。
【０１０２】
Primaryデータ処理（ステップＳ１００）では、図４（ａ）に示すように、まず、システム管理手段１０のキャッシュメモリ容量検出手段１４１は、ｉ番目のキャッシュメモリにおける現在のプライマリ層データキューＰiＷに、外部から受信した書込データを加えたものを、新たなプライマリ層データキューＰiＷとする（ステップＳ１０１）。ここで、現在のプライマリ層データキューＰiＷの初期値は例えば０である。また、図２に示すように、ｉ＝１の場合、キャッシュメモリ３０ａを指し、ｉ＝２の場合、キャッシュメモリ３０ｂを指す。
【０１０３】
次に、キャッシュメモリ容量検出手段１４１は、この新たなプライマリ層データキューＰiＷのキュー長が、プライマリ層データキューにおける最大許容キューサイズＰＷmaxよりも小さいか否かを判別する（ステップＳ１０２）。プライマリ層データキューＰiＷのキュー長が、プライマリ層データキューにおける最大許容キューサイズＰＷmaxよりも小さい場合（ステップＳ１０２：Ｙｅｓ）、データ配置制御手段１５は、ｉ番目のキャッシュメモリのプライマリ層データに対応するデータディスクＤprimaryが回転中、かつ、プライマリ層データキューＰiＷのキュー長がプライマリ層データキューにおけるキューサイズの閾値ＰＷthよりも大きいという条件を満たすか否かを判別する（ステップＳ１０３）。
【０１０４】
ステップＳ１０３において、データディスクＤprimaryが回転中、かつ、プライマリ層データキューＰiＷのキュー長が閾値ＰＷthよりも大きいという条件を満たす場合（ステップＳ１０３：Ｙｅｓ）、システム管理手段１０は、ステップＳ１１０のＤprimary書込処理に進む。なお、ステップＳ１１０のＤprimary書込処理の詳細については後記する。このＤprimary書込処理が終了すると、システム管理手段１０は、ステップＳ１０１に戻る。一方、データディスクＤprimaryが回転中、かつ、プライマリ層データキューＰiＷのキュー長が閾値ＰＷthよりも大きいという条件を満たさない場合（ステップＳ１０３：Ｎｏ）、システム管理手段１０は、ステップＳ１０１に戻る。
【０１０５】
また、ステップＳ１０２において、プライマリ層データキューＰiＷのキュー長が、プライマリ層データキューにおける最大許容キューサイズＰＷmax以上である場合（ステップＳ１０２：Ｎｏ）、ディスク回転状態検出手段１４２は、ｉ番目のキャッシュメモリのプライマリ層データに対応するデータディスクＤprimaryが回転中であるか否かを判別する（ステップＳ１０４）。
【０１０６】
ステップＳ１０４において、データディスクＤprimaryが回転中ではない場合（ステップＳ１０４：Ｎｏ）、ディスク回転状態制御手段１４３は、そのデータディスクＤprimaryをスピンアップする（ステップＳ１０５）。ステップＳ１０５に続いて、システム管理手段１０は、ステップＳ１１０に進む。また、ステップＳ１０４において、データディスクＤprimaryが回転中である場合（ステップＳ１０４：Ｙｅｓ）、システム管理手段１０は、ステップＳ１０５をスキップしてステップＳ１１０に進む。
【０１０７】
＜ステップＳ１１０のＤprimary書込処理＞
ここで、ステップＳ１１０のＤprimary書込処理を説明する。図４（ｂ）に示すように、データ配置制御手段１５は、ｉ番目のキャッシュメモリのプライマリ層データキューＰiＷを、対応するデータディスクＤprimary（プライマリ層）に書き込む（ステップＳ１１１）。図２において、例えば、ｉ＝１の場合、データ配置制御手段１５は、キャッシュメモリ３０ａのプライマリデータ領域３１ａのデータＰ1を、データディスク２０ａのプライマリデータ領域２１ａ（プライマリ層）に書き込む。
【０１０８】
次に、データ配置制御手段１５は、ｉ番目のキャッシュメモリのプライマリ層データキューＰiＷを空にする（ステップＳ１１２）。そして、データ配置制御手段１５は、ｉ番目のキャッシュメモリから対応するデータディスクＤprimary（プライマリ層）に書き込まれたＰiＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ１１３）。ここで、キャッシュディスクＤcacheは、図１に示すキャッシュディスク４０に相当する。なお、図１には、１つのキャッシュディスク４０を示したが、キャッシュディスクの台数に限定は無く、キャッシュディスクが複数ある場合には、キャッシュディスクＤcacheはそのうちのいずれかを示すものである。
【０１０９】
続いて、データ配置制御手段１５は、このデータディスクＤprimaryのバックアップ層データに対応するメモリキャッシュデータＢuＷ（キャッシュメモリのバックアップ層データキュー）を、データディスクＤprimary（バックアップ層）に書き込む（ステップＳ１１４）。図２において、ｉ＝１の場合、データ配置制御手段１５は、キャッシュメモリ３０ａのバックアップデータ領域３２ａのデータＢ2を、データディスク２０ａのバックアップデータ領域２２ａ（バックアップ層）に書き込む。
【０１１０】
なお、ｕ（unknown）は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクＤprimaryのプライマリ層に対応したバックアップ層のデータを一般化した識別番号を示す。したがって、例えば、キャッシュメモリとデータディスクとの組が３つあるならば、ｉ＝１の場合にはｕ＝２またはｕ＝３もあり得る。図２の例では、ｉ＝１の場合にはｕ＝１、ｉ＝２の場合にはｕ＝２となる。
【０１１１】
続いて、データ配置制御手段１５は、データディスクＤprimary（バックアップ層）に書き込まれたキャッシュメモリのバックアップ層データキューＢuＷを空にする（ステップＳ１１５）。そして、データ配置制御手段１５は、データディスクＤprimary（バックアップ層）に書き込まれたＢuＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ１１６）。
【０１１２】
［４−３．Backupデータ処理］
次に、ステップＳ２００のBackupデータ処理について図５を参照（適宜図１および図２参照）して説明する。図５は、図３のBackupデータ処理を示すフローチャートであって、（ａ）は処理の全体の流れ、（ｂ）はＤBackup書込処理をそれぞれ示している。
【０１１３】
ここで、ＤBackupとは、着目しているデータについてのバックアップ側データが格納されているディスクを示している。例えば、図２に示すようにデータを配列し、データＢ1に着目した場合には、データディスク２０ｂがＤBackupとなる。また、図２に示すようにデータを配列し、データＢ2に着目した場合には、データディスク２０ａがＤBackupとなる。
【０１１４】
Backupデータ処理（ステップＳ２００）は、図５（ａ）に示すように、まず、システム管理手段１０のキャッシュメモリ容量検出手段１４１は、Primaryデータ処理で対象としたｉ番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、ｋ番目のキャッシュメモリに格納されているバックアップ層データキューＢkＷに、外部から受信した書込データを加えたものを、新たなバックアップ層データキューＢkＷとする（ステップＳ２０１）。ここで、現在のバックアップ層データキューＢkＷの初期値は例えば０である。また、図２に示すように、ｉ＝１、ｋ＝２の場合、キャッシュメモリ３０ｂを指し、ｉ＝２、ｋ＝１の場合、キャッシュメモリ３０ａを指す。
【０１１５】
次に、キャッシュメモリ容量検出手段１４１は、このバックアップ層データキューＢkＷのキュー長が、バックアップ層データキューにおける最大許容キューサイズＢＷmaxよりも小さいか否かを判別する（ステップＳ２０２）。バックアップ層データキューＢkＷのキュー長が、バックアップ層データキューにおける最大許容キューサイズＢＷmaxよりも小さい場合（ステップＳ２０２：Ｙｅｓ）、データ配置制御手段１５は、ｉ番目のキャッシュメモリのプライマリ層データＰiＷのバックアップ層データＢkＷに対応するデータディスクＤbackupが回転中、かつ、バックアップ層データキューＢkＷのキュー長がバックアップ層データキューにおけるキューサイズの閾値ＢＷthよりも大きいという条件を満たすか否かを判別する（ステップＳ２０３）。
【０１１６】
ステップＳ２０３において、データディスクＤbackupが回転中、かつ、バックアップ層データキューＢkＷのキュー長が閾値ＢＷthよりも大きいという条件を満たす場合（ステップＳ２０３：Ｙｅｓ）、システム管理手段１０は、ステップＳ２１０のＤbackup書込処理に進む。なお、Ｄbackup書込処理の詳細については後記する。このＤbackup書込処理が終了すると、システム管理手段１０は、ステップＳ２０１に戻る。一方、データディスクＤbackupが回転中、かつ、バックアップ層データキューＢkＷのキュー長が閾値ＢＷthよりも大きいという条件を満たさない場合（ステップＳ２０３：Ｎｏ）、システム管理手段１０は、ステップＳ２０１に戻る。
【０１１７】
また、ステップＳ２０２において、バックアップ層データキューＢkＷのキュー長が、バックアップ層データキューにおける最大許容キューサイズＢＷmax以上である場合（ステップＳ２０２：Ｎｏ）、ディスク回転状態検出手段１４２は、バックアップ層データＢkＷに対応するデータディスクＤbackupが回転中であるか否かを判別する（ステップＳ２０４）。
【０１１８】
ステップＳ２０４において、データディスクＤbackupが回転中ではない場合（ステップＳ２０４：Ｎｏ）、ディスク回転状態制御手段１４３は、そのデータディスクＤbackupをスピンアップする（ステップＳ２０５）。ステップＳ２０５に続いて、システム管理手段１０は、ステップＳ２１０のＤbackup書込処理に進む。また、ステップＳ２０４において、データディスクＤbackupが回転中である場合（ステップＳ２０４：Ｙｅｓ）、システム管理手段１０は、ステップＳ２０５をスキップしてステップＳ２１０に進む。
【０１１９】
＜ステップＳ２１０のＤbackup書込処理＞
ここで、ステップＳ２１０のＤbackup書込処理を説明する。図５（ｂ）に示すように、データ配置制御手段１５は、ｋ番目のキャッシュメモリに格納されているバックアップ層データキューＢkＷを、対応するデータディスクＤbackup（バックアップ層）に書き込む（ステップＳ２１１）。図２において、ｉ＝１、ｋ＝２の場合、データ配置制御手段１５は、キャッシュメモリ３０ｂのバックアップデータ領域３２ｂのデータＢ1を、データディスク２０ｂのバックアップデータ領域２２ｂ（バックアップ層）に書き込む。
【０１２０】
次に、データ配置制御手段１５は、ｋ番目のキャッシュメモリのバックアップ層データキューＢkＷを空にする（ステップＳ２１２）。そして、データ配置制御手段１５は、ｋ番目のキャッシュメモリから対応するデータディスクＤbackup（バックアップ層）に書き込まれたＢkＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ２１３）。
【０１２１】
続いて、データ配置制御手段１５は、このデータディスクＤbackupのプライマリ層データに対応するメモリキャッシュデータＰuＷ（キャッシュメモリのプライマリ層データキュー）を、データディスクＤbackup（プライマリ層）に書き込む（ステップＳ２１４）。図２において、ｉ＝１、ｋ＝２の場合、データ配置制御手段１５は、キャッシュメモリ３０ｂのプライマリデータ領域３１ｂのデータＰ2を、データディスク２０ｂのプライマリデータ領域２１ｂ（プライマリ層）に書き込む。
【０１２２】
なお、ｕ（unknown）は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクＤbackupのバックアップ層に対応したプライマリ層のデータを一般化した識別番号を示す。図２に示す例では、ｉ＝１、ｋ＝２の場合にはｕ＝２となり、ｉ＝２、ｋ＝１の場合にはｕ＝１となる。
【０１２３】
続いて、データ配置制御手段１５は、データディスクＤbackup（プライマリ層）に書き込まれたキャッシュメモリのプライマリ層データキューＰuＷを空にする（ステップＳ２１５）。そして、データ配置制御手段１５は、データディスクＤbackup（プライマリ層）に書き込まれたＰuＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ２１６）。
【０１２４】
［４−４．Read処理］
次に、システム管理手段１０が記憶装置からデータを読み出す処理（Read処理）について図６および図７を参照（適宜図１および図２参照）して説明する。
図６に示すように、システム管理手段１０のデータ配置制御手段１５は、ｉ番目のキャッシュメモリにおけるプライマリ層データＰiＷに、読み出し対象のデータＲiが無いか否かを判別する（ステップＳ３０１）。図２において、例えば、ｉ＝１の場合、データ配置制御手段１５は、データＲiが、キャッシュメモリ３０ａのプライマリデータ領域３１ａに無いか否かを判別する。
【０１２５】
プライマリ層データＰiＷに、読み出し対象のデータＲiが無い場合（ステップＳ３０１：Ｙｅｓ）、データ配置制御手段１５は、ｉ番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、ｋ番目のキャッシュメモリに格納されているバックアップ層データＢkＷに、読み出し対象のデータＲiが無いか否かを判別する（ステップＳ３０２）。図２において、例えば、ｉ＝１の場合、ｋ＝２なので、データ配置制御手段１５は、データＲiが、キャッシュメモリ３０ｂのバックアップデータ領域３２ｂに無いか否かを判別する。
【０１２６】
バックアップ層データＢkＷに、読み出し対象のデータＲiが無い場合（ステップＳ３０２：Ｙｅｓ）、データ配置制御手段１５は、キャッシュディスクＤcacheに、読み出し対象のデータＲiが無いか否かを判別する（ステップＳ３０３）。キャッシュディスクＤcacheに、読み出し対象のデータＲiが無い場合（ステップＳ３０３：Ｙｅｓ）、データ配置制御手段１５は、ステップＳ３１１の判別処理に進む。
【０１２７】
一方、プライマリ層データＰiＷに、読み出し対象のデータＲiがある場合（ステップＳ３０１：Ｎｏ）、または、バックアップ層データＢkＷに、読み出し対象のデータＲiがある場合（ステップＳ３０２：Ｎｏ）、または、キャッシュディスクＤcacheに、読み出し対象のデータＲiがある場合（ステップＳ３０３：Ｎｏ）、データ配置制御手段１５は、該当する読み出し対象のデータＲiを読み出し（ステップＳ３１０）、処理を終了する。
【０１２８】
＜ステップＳ３１１の判別処理＞
ここで、ステップＳ３１１の判別処理を説明する。図６に示すように、ステップＳ３１１にて、データ配置制御手段１５は、プライマリ層のメモリキャッシュデータに対応するデータディスクＤprimaryと、バックアップ層のメモリキャッシュデータに対応するデータディスクＤbackupとが両方とも停止しているか否かを判別する。図２に示すようにデータを配列し、データＰ1，Ｂ1に着目した場合には、例えば、ｉ＝１、ｋ＝２の場合、データディスクＤprimaryはデータディスク２０ａを指し、データディスクＤbackupはデータディスク２０ｂを指す。
【０１２９】
ステップＳ３１１において、データディスクＤprimaryとデータディスクＤbackupとが両方とも停止しているわけではない場合（ステップＳ３１１：Ｎｏ）、データ配置制御手段１５は、プライマリ側のデータディスクＤprimaryが回転中であるか否かを判別する（ステップＳ３１２）。
【０１３０】
ステップＳ３１２において、プライマリ側のデータディスクＤprimaryが回転中の場合（ステップＳ３１２：Ｙｅｓ）、データ配置制御手段１５は、データディスクＤprimaryから読み出し対象のデータＲiを読み出す（ステップＳ３１３）。そして、データ配置制御手段１５は、データディスクＤprimaryから読み出したデータＲiをキャッシュディスクＤcacheへ書き込む（ステップＳ３１４）。これにより、データ配信手段１３のデータ読出手段１３１がキャッシュディスクＤcacheからデータＲiを読み出すことで、リード要求に対する応答データを出力することができる。
【０１３１】
続いて、データディスクＤprimaryが回転中なので、データ配置制御手段１５は、前記したステップＳ１１０のＤprimary書込処理と同様の処理を行う。すなわち、データ配置制御手段１５は、前記したステップＳ１１１〜Ｓ１１６の処理を行う。これにより、システム管理手段１０は、プライマリ側のデータディスクＤprimaryが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段１４３は、このデータディスクＤprimaryの回転を停止してもよい。
【０１３２】
ステップＳ３１２において、プライマリ側のデータディスクＤprimaryが回転中でない場合（ステップＳ３１２：Ｎｏ）、バックアップ側のデータディスクＤbackupが回転中なので、データ配置制御手段１５は、この回転しているデータディスクＤbackupから読み出し対象のデータＲiを読み出す（ステップＳ３１５）。そして、データ配置制御手段１５は、データディスクＤbackupから読み出したデータＲiをキャッシュディスクＤcacheへ書き込む（ステップＳ３１６）。これにより、データ読出手段１３１がキャッシュディスクＤcacheからデータＲiを読み出すことで、リード要求に対する応答データを出力することができる。
【０１３３】
続いて、このデータディスクＤbackupが回転中なので、データ配置制御手段１５は、前記したステップＳ２１０のＤbackup書込処理と同様の処理を行う。すなわち、データ配置制御手段１５は、前記したステップＳ２１１〜Ｓ２１６の処理を行う。これにより、システム管理手段１０は、バックアップ側のデータディスクＤbackupが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段１４３は、データディスクＤbackupの回転を停止してもよい。
【０１３４】
一方、ステップＳ３１１において、データディスクＤprimaryとデータディスクＤbackupとが両方とも停止している場合（ステップＳ３１１：Ｙｅｓ）、システム管理手段１０は、ステップＳ３２１の判別処理に進む。
【０１３５】
＜ステップＳ３２１の判別処理＞
ここで、ステップＳ３２１の判別処理を説明する。図７に示すように、ステップＳ３２１にて、データ配置制御手段１５は、データディスクＤprimary（プライマリ層）側を示すｉ番目のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）が、データディスクＤbackup（バックアップ層）側を示すｋ番目のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）よりも大きいか否かを判別する（ステップＳ３２１）。
【０１３６】
図２に示すようにデータを配列し、データＰ1，Ｂ1に着目した場合には、例えば、ｉ＝１、ｋ＝２のとき、データディスクＤprimary側のキャッシュメモリは、キャッシュメモリ３０ａを指し、データディスクＤbackup側のキャッシュメモリは、キャッシュメモリ３０ｂを指す。したがって、この場合、総キューサイズ（ＰiＷ＋ＢiＷ）は、プライマリデータ領域３１ａのメモリ容量と、バックアップデータ領域３２ａのメモリ容量との和を示す。
また、この場合、総キューサイズ（ＰkＷ＋ＢkＷ）は、プライマリデータ領域３１ｂのメモリ容量と、バックアップデータ領域３２ｂのメモリ容量との和を示す。
【０１３７】
ステップＳ３２１において、プライマリ層側のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）が、バックアップ層側のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）よりも大きい場合（ステップＳ３２１：Ｙｅｓ）、ディスク回転状態制御手段１４３は、プライマリ層側のデータディスクＤprimaryをスピンアップする（ステップＳ３２２）。図２において、例えば、ｉ＝１、ｋ＝２の場合、ディスク回転状態制御手段１４３は、データディスク２０ａの方をスピンアップする。続いて、データ配置制御手段１５が行うステップＳ３２３，Ｓ３２４，Ｓ１１０の各処理は、前記したステップＳ３１３，Ｓ３１４，Ｓ１１０の各処理と同様なので説明を省略する。
【０１３８】
一方、ステップＳ３２１において、プライマリ層側のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）が、バックアップ層側のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）以下である場合（ステップＳ３２１：Ｎｏ）、データ配置制御手段１５は、バックアップ層側のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）が、プライマリ層側のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）よりも大きいか否かを判別する（ステップＳ３２５）。
ステップＳ３２５において、バックアップ層側のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）が、プライマリ層側のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）よりも大きい場合（ステップＳ３２５：Ｙｅｓ）、ディスク回転状態制御手段１４３は、バックアップ層側のデータディスクＤbackupをスピンアップする（ステップＳ３３２）。図２において、例えば、ｉ＝１、ｋ＝２の場合、ディスク回転状態制御手段１４３は、データディスク２０ｂの方をスピンアップする。続いて、データ配置制御手段１５が行うステップＳ３３３，Ｓ３３４，Ｓ２１０の各処理は、前記したステップＳ３１５，Ｓ３１６，Ｓ２１０の各処理と同様なので説明を省略する。
【０１３９】
ステップＳ３２５において、バックアップ層側のメモリキャッシュデータの総キューサイズ（ＰkＷ＋ＢkＷ）と、プライマリ層側のメモリキャッシュデータの総キューサイズ（ＰiＷ＋ＢiＷ）とが等しい場合（ステップＳ３２５：Ｎｏ）、データ配置制御手段１５は、停止しているデータディスクＤprimaryとデータディスクＤbackupのうち、回転停止期間の長い方のデータディスク（ＤprimaryまたはＤbackup）を選択し、ディスク回転状態制御手段１４３は、この選択されたデータディスクをスピンアップする（ステップＳ３２６）。
【０１４０】
続いて、データ配置制御手段１５が行うステップＳ３２７，Ｓ３２８の各処理は、前記したステップＳ３１３，Ｓ３１４の各処理、または、前記したステップＳ３１５，Ｓ３１６の各処理と同様なので説明を省略する。そして、データ配置制御手段１５は、前記したステップＳ３２５の判別結果により選択したデータディスクがプライマリ側のデータディスクである場合（ステップＳ３２９：Ｄprimary）、前記したステップＳ１１０の処理を実行し、一方、選択したデータディスクがバックアップ側のデータディスクである場合（ステップＳ３２９：Ｄbackup）、前記したステップＳ２１０の処理を実行する。
【０１４１】
［５．キャッシュ単位が複数の場合のストレージ装置の動作］
ここでは、ストレージ装置１が、一例として図８に示すように、キャッシュ単位を単数とした場合の動作について説明する。以下では、５−１．ストレージ装置の構成例、５−２．Write処理のPrimaryデータ処理、５−３．Write処理のBackupデータ処理、５−４．Read処理の各節に分けて順次説明する。
【０１４２】
［５−１．ストレージ装置の構成例］
図８は、キャッシュ単位を複数としたストレージ装置の要部として各記憶装置の組み合わせ例を示している。キャッシュ単位を複数とするとは、各キャッシュメモリ３０が、プライマリ層側もバックアップ層側も、複数ノードのデータディスク２０のデータを記憶していることを意味する。
【０１４３】
図８に示すストレージ装置１は、データディスク２０ａと、データディスク２０ｂと、データディスク２０ｃと、データディスク２０ｄと、データディスク２０ｅと、データディスク２０ｆとを備えている。これらデータディスク２０ａ〜２０ｆは、台数が６台であって、データ種類が６種類である点を除いて、図２に示したデータディスク２０ａ，２０ｂと同様な構成なので、同様の符号を付して説明を省略する。
【０１４４】
なお、プライマリデータＰ1〜Ｐ6は、データディスク２０ａ〜２０ｆのプライマリデータ領域２１ａ〜２１ｆにそれぞれ対応付けられている。一方、バックアップデータＢ1〜Ｂ6は、それぞれ１つ隣のデータディスク２０ｂ、２０ｃ，２０ｄ，２０ｅ，２０ｆ，２０ａのバックアップデータ領域２２ｂ、２２ｃ，２２ｄ，２２ｅ，２２ｆ，２２ａにそれぞれ対応付けられている。
【０１４５】
また、図８に示すストレージ装置１は、キャッシュメモリ３０ａと、キャッシュメモリ３０ｂと、キャッシュメモリ３０ｃとを備えている。これらキャッシュメモリ３０ａ〜３０ｃは、台数が３台であって、データ種類が６種類である点を除いて、図２に示したキャッシュメモリ３０ａ，３０ｂと同様な構成なので、同様の符号を付して説明を適宜省略する。
【０１４６】
書込要求または読込要求が対象とするデータと、キャッシュメモリ３０ａ〜３０ｃとは予め対応付けられているものとする。外部から各キャッシュメモリ３０へデータを書き込む制御は、図１に示すデータ配置制御手段１５が行う。
【０１４７】
このデータ配置制御手段１５は、例えば、図９に示すように、外部から、writeデータの書き込み要求があった場合に、このデータＰ1をキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納する処理を行うと共に、データＢ1（＝データＰ1）をキャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納する処理を行う。この処理と同様に、外部から、データＰ2の書き込み要求があった場合に、このデータＰ2をキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納する処理を行うと共に、データＢ2（＝データＰ2）をキャッシュメモリ３０ｃのバックアップデータ領域３２ｃに格納する処理を行う。
【０１４８】
ここで、例えば、図８に示すキャッシュメモリ３０ａのプライマリデータ領域３１ａに着目すると、異なるプライマリデータとして、データＰ1とデータＰ2とが格納されている。このうち、データＰ1は、データディスク２０ａのプライマリデータ領域２１ａに格納すべきデータであり、一方、データＰ2は、データディスク２０ｂのプライマリデータ領域２１ｂに格納すべきデータである。このようにキャッシュメモリ３０ａは、プライマリデータ領域３１ａに、２つのノードのデータディスク２０ａ，２０ｂのメモリキャッシュデータを格納している。
【０１４９】
同様に、キャッシュメモリ３０ａのバックアップデータ領域３２ａに着目すると、異なるバックアップデータとして、データＢ4とデータＢ5とが格納されている。このうち、データＢ4は、データディスク２０ｅのバックアップデータ領域２２ｅに格納すべきデータであり、一方、データＢ5は、データディスク２０ｆのバックアップデータ領域２２ｆに格納すべきデータである。このようにキャッシュメモリ３０ａは、バックアップデータ領域３２ａに、２つのノードのデータディスク２０ｅ，２０ｆのメモリキャッシュデータを格納している。言い換えると、キャッシュメモリ３０ａのバックアップデータ領域３２ａは、キャッシュ単位を２としている。
【０１５０】
要するに、キャッシュメモリ３０ａは、プライマリ層側もバックアップ層側も、２つのノードのデータディスク２０のデータを記憶している。同様に、キャッシュメモリ３０ｂ，３０ｃは、プライマリ層側もバックアップ層側も、２つのノードのデータディスク２０のデータを記憶している。換言すると、図８に示すストレージ装置は、キャッシュ単位を２としている。
【０１５１】
図８に示す例では、キャッシュ単位数（Number of Cash Unit、以下Ｎcuと呼ぶ）を複数とする場合に、その数は３以上であってもよい。また、図８では、ストレージ装置１のデータディスク２０の台数は６台であり、キャッシュメモリ３０の台数は３台であるが、以下では、それぞれが複数であるものとして一般化して説明する。この一般化した場合と、例えば図８に示す記憶装置との対応関係は、次の通りである。
【０１５２】
＜プライマリ側の関係＞
プライマリ側の関係は、Write処理のPrimaryデータ処理の中で適用される。
プライマリ側の関係において、キャッシュ単位ｉ＝１は、キャッシュメモリ３０ａのプライマリデータ領域３１ａに格納されたデータＰ1とデータＰ2とから成る。
また、キャッシュ単位ｉ＝２は、キャッシュメモリ３０ｂのプライマリデータ領域３１ｂに格納されたデータＰ3とデータＰ4とから成る。
また、キャッシュ単位ｉ＝３は、キャッシュメモリ３０ｃのプライマリデータ領域３１ｃに格納されたデータＰ5とデータＰ6とから成る。
キャッシュ単位ｉの中のノード別のデータの順番を識別記号ｊ（ｊ＝１，２）で識別し、キャッシュメモリ３０のプライマリ側の各データを「ｉｊ」で指定する。
【０１５３】
プライマリ側の関係において、ディスク単位ｌ＝１は、データディスク２０ａ，２０ｂから成る。
また、ディスク単位ｌ＝２は、データディスク２０ｃ，２０ｄから成る。
また、ディスク単位ｌ＝３は、データディスク２０ｅ，２０ｆから成る。
ディスク単位ｌの中のデータディスクの順番を識別記号ｊ（ｊ＝１，２）で識別し、プライマリ側に着目したときのデータディスクを「ｌｊ」で指定する。
【０１５４】
＜バックアップ側の関係＞
バックアップ側の関係は、Write処理のBackupデータ処理の中で適用される。そのため、バックアップ側の関係で指定する識別記号と、プライマリ側の関係で指定した識別記号とは独立に扱う。
【０１５５】
バックアップ側の関係において、キャッシュ単位ｋ＝１は、キャッシュメモリ３０ａのバックアップデータ領域３２ａに格納されたデータＢ4とデータＢ5とから成る。
また、キャッシュ単位ｋ＝２は、キャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納されたデータＢ1とデータＢ6とから成る。
また、キャッシュ単位ｋ＝３は、キャッシュメモリ３０ｃのバックアップデータ領域３２ｃに格納されたデータＢ2とデータＢ3とから成る。
キャッシュ単位ｋの中のノード別のデータの順番を識別記号ｌ（ｌ＝１，２）で識別し、キャッシュメモリのバックアップ側の各データを「ｋｌ」で指定する。
【０１５６】
バックアップ側の関係において、ディスク単位ｍ＝１は、データディスク２０ａ，２０ｂから成る。
また、ディスク単位ｍ＝２は、データディスク２０ｃ，２０ｄから成る。
また、ディスク単位ｍ＝３は、データディスク２０ｅ，２０ｆから成る。
ディスク単位ｍの中のデータディスクの順番を識別記号ｎ（ｎ＝１，２）で識別し、バックアップ側に着目したときのデータディスクを「ｍｎ」で指定する。
【０１５７】
［５−２．Write処理のPrimaryデータ処理］
図８のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてWrite処理の全体の流れは、図３に示した通り、Primaryデータ処理と、Backupデータ処理とを含む。ただし、図８のストレージ装置の場合の処理は、図２のストレージ装置の場合の処理と異なる。そこで、図８のストレージ装置の場合には、Primaryデータ処理をステップＳ１００Ｂと表記し、Backupデータ処理をステップＳ２００Ｂと表記する。
【０１５８】
まず、ステップＳ１００ＢのPrimaryデータ処理について図１１を参照（適宜図１、図４、図８参照）して説明する。図１１は、図８のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。
【０１５９】
前提として、プライマリ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のPrimaryデータ処理（ステップＳ１００Ｂ）では、ｉ番目のキャッシュ単位のプライマリ層データキューのうちのｊ番目のデータキューＰijＷを指定する。このプライマリ層データキューＰijＷは、キャッシュメモリ３０のプライマリ側に格納されており、ｌ番目のディスク単位のｊ番目のデータディスクＤljに対する書込データである。
【０１６０】
Primaryデータ処理（ステップＳ１００Ｂ）では、図１１に示すように、まず、システム管理手段１０のキャッシュメモリ容量検出手段１４１は、ｉ番目のキャッシュ単位のうちｊ番目のプライマリ層データキューＰijＷを書き込むときには、ｉ番目のキャッシュ単位（プライマリデータ）全体のキューＰiＷのメモリ容量を検出する（ステップＳ１２１）。
【０１６１】
以下、システム管理手段１０が実行するステップＳ１２２〜Ｓ１２５の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップＳ１０２〜Ｓ１０５の各処理（図４（ａ）参照）と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、ｉ番目のキャッシュ単位に対応する、ｌ番目のディスク単位のｊ番目のデータディスクＤljである。
【０１６２】
システム管理手段１０は、ステップＳ１２３において、データディスクＤljが回転中、かつ、プライマリ層データキューＰiＷのキュー長が閾値ＰＷthよりも大きいという条件を満たす場合（ステップＳ１２３：Ｙｅｓ）、または、ステップＳ１２４においてデータディスクＤljが回転中である場合（ステップＳ１２４：Ｙｅｓ）、または、ステップＳ１２５の後に、ステップＳ１３０に進む。
【０１６３】
＜ステップＳ１３０のＤPrimary書込処理＞
ここで、ステップＳ１３０のＤprimary書込処理について図１２を参照（適宜図１０参照）して説明する。図１２に示すように、データ配置制御手段１５は、まず、繰り返し回数をカウントする変数ｒの初期値を「１」とする（ステップＳ１３１）。変数ｒの現在値がキャッシュ単位を構成するノード数Ｎcu以下であるか否かを判別する（ステップＳ１３２）。なお、図８に示す例の場合には、キャッシュ単位を構成するノード数Ｎcuは「２」である。
【０１６４】
ステップＳ１３２において、変数ｒの現在値がノード数Ｎcu以下である場合（ステップＳ１３２：Ｙｅｓ）、データ配置制御手段１５は、データディスクＤlrが回転中であるか否かを判別する（ステップＳ１３３）。データディスクＤlrが回転中である場合（ステップＳ１３３：Ｙｅｓ）、データ配置制御手段１５は、キャッシュメモリに格納されている、ｉ番目のキャッシュ単位のｒ番目のプライマリ層データキューＰirＷを、対応するデータディスクＤlr（プライマリ層）に書き込み（ステップＳ１３４）、そのＰirＷをキャッシュディスクＤcacheへ書き込む（ステップＳ１３５）。このとき、ｒ＝１ならば、例えば、図１０（ａ）の左側に示すキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納されているデータのうち、１番目のデータＰ1を、データディスク２０ａのプライマリデータ領域２１ａへ書き込むことになる。
【０１６５】
続いて、データ配置制御手段１５は、ｉ番目のキャッシュ単位のプライマリ層データキューＰiＷのバッファ（現在値）から、既にデータディスクに書き込んだｒ番目のプライマリ層データキューＰirＷを削除する（ステップＳ１３６）。このとき、ｒ＝１ならば、例えば、図１０（ａ）の左側に示すプライマリデータ領域３１ａから１番目のデータＰ1を削除すると、図１０（ｂ）の左側に示すように、プライマリデータ領域３１ａにはデータＰ2が残ることになる。
【０１６６】
続いて、データ配置制御手段１５は、このプライマリ層を書き込んだデータディスクＤlrのバックアップ層データに対応するメモリキャッシュデータＢuvＷ（ｕ番目のキャッシュ単位のｖ番目のバックアップ層データキュー）を、このデータディスクＤlr（バックアップ層）に書き込む（ステップＳ１３７）。このとき、ｒ＝１ならば、図１０（ａ）の左側に示すように、データＰ1をデータディスク２０ａのプライマリデータ領域２１ａへ書き込む場合には、図１０（ａ）の右側に示すように、キャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納された２番目のデータＢ6を、当該データディスク２０ａのバックアップデータ領域２２ａへ書き込むこととなる。
【０１６７】
次いで、データ配置制御手段１５は、データディスクＤlr（バックアップ層）に書き込まれたＢuvＷをキャッシュディスクＤcacheへ書き込む（ステップＳ１３８）。そして、データ配置制御手段１５は、データディスクＤlrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューＢuＷのバッファ（現在値）から、既にディスクに書き込んだｖ番目のバックアップ層データキューＢuvＷを削除する（ステップＳ１３９）。このとき、ｒ＝１ならば、図１０（ａ）の右側に示すバックアップデータ領域３２ｂに格納された２番目のデータＢ6を削除すると、図１０（ｂ）の右側に示すように、バックアップデータ領域３２ｂにデータＢ1が残ることになる。
【０１６８】
続いて、データ配置制御手段１５は、変数ｒの現在値に「１」を加算し（ステップＳ１４０）、ステップＳ１３２に戻る。
【０１６９】
前記したステップＳ１３３において、データディスクＤlrが回転中ではない場合（ステップ１３３：Ｎｏ）、データ配置制御手段１５は、前記したステップＳ１３４〜ステップＳ１３９をスキップしてステップＳ１４０に進む。
【０１７０】
前記したステップＳ１３２において、変数ｒの現在値がノード数Ｎcuを超えた場合（ステップＳ１３２：Ｎｏ）、データ配置制御手段１５は、ステップＳ１５０のＤbackup＼primary書込処理を実行し、その後、図１１のステップＳ１２１に戻る。
【０１７１】
＜ステップＳ１５０のＤbackup＼primary書込処理＞
ここで、ステップＳ１５０のＤbackup＼primary書込処理について図１３を参照（適宜図１０および図１１参照）して説明する。図１３に示すように、データ配置制御手段１５は、まず、このPrimaryデータ処理（Ｓ１００Ｂ）で対象としているｉ番目のキャッシュ単位のバックアップ層データキューＢiＷのキュー長が、バックアップ層データキューにおけるキューサイズの閾値ＢＷthよりも大きいか否かを判別する（ステップＳ１５１）。
【０１７２】
なお、ステップＳ１５１では、バックアップ側の関係を示す識別記号ｋの代わりに、識別記号ｉを用いる。また、ここで、バックアップ層データキューＢiＷは、具体的には、次のデータが相当する。例えば、ステップＳ１５０の処理の前に、図１０（ａ）に示すキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納されたデータＰ1をディスクに書き込む処理をした場合には、バックアップ層データキューＢiＷは、バックアップデータ領域３２ａのデータキューに相当する。
【０１７３】
ステップＳ１５１において、バックアップ層データキューＢiＷのキュー長が閾値ＢＷthよりも大きい場合（ステップＳ１５１：Ｙｅｓ）、データ配置制御手段１５は、繰り返し回数をカウントする変数ｒの初期値を「１」とする（ステップＳ１５２）。そして、データ配置制御手段１５は、変数ｒの現在値がキャッシュ単位を構成するノード数Ｎcu以下であるか否かを判別する（ステップＳ１５３）。変数ｒの現在値がノード数Ｎcu以下である場合（ステップＳ１５３：Ｙｅｓ）、データ配置制御手段１５は、ｉ番目のキャッシュ単位のバックアップ層データに対応する、ｍ番目のディスク単位のｒ番目のデータディスクＤmrが回転中であるか否かを判別する（ステップＳ１５４）。
【０１７４】
なお、ステップＳ１５４では、バックアップ側の関係における識別記号ｍ，ｒを用いる。また、例えば、バックアップ層データキューＢiＷが、図８に示すバックアップデータ領域３２ａのデータキューである場合、データディスクＤmrは、ｒ＝１のときにデータディスク２０ｅであり、ｒ＝２のときにデータディスク２０ｆとなる。
【０１７５】
前記したステップＳ１５４において、データディスクＤmrが回転中である場合（ステップＳ１５４：Ｙｅｓ）、データ配置制御手段１５は、キャッシュメモリに格納されている、ｉ番目のキャッシュ単位のｒ番目のバックアップ層データキューＢirＷを、対応するデータディスクＤmr（バックアップ層）に書き込む（ステップＳ１５５）。例えば、図８に示すバックアップデータ領域３２ａに格納されたデータＢ4を、データディスク２０ｅのバックアップデータ領域２２ｅに書き込む。
【０１７６】
続いて、データ配置制御手段１５は、データディスクＤmr（バックアップ層）に書き込まれたＢirＷをキャッシュディスクＤcacheへ書き込む（ステップＳ１５６）。そして、データ配置制御手段１５は、ｉ番目のキャッシュ単位のバックアップ層データキューＢiＷのバッファ（現在値）から、既にデータディスクに書き込んだｒ番目のバックアップ層データキューＢirＷを削除する（ステップＳ１５７）。
【０１７７】
次いで、データ配置制御手段１５は、このバックアップ層を書き込んだデータディスクＤmrのプライマリ層データに対応するメモリキャッシュデータＰwvＷ（ｗ番目のキャッシュ単位のｖ番目のプライマリ層データキュー）を、このデータディスクＤmr（プライマリ層）に書き込む（ステップＳ１５８）。例えば、図８に示すバックアップデータ領域３２ａに格納されたデータＢ4を、データディスク２０ｅのバックアップデータ領域２２ｅに書き込む場合には、キャッシュメモリ３０ｃのプライマリデータ領域３１ｃに格納されたデータＰ5を、データディスク２０ｅのプライマリデータ領域２１ｅに書き込む。
【０１７８】
続いて、データ配置制御手段１５は、データディスクＤmr（プライマリ層）に書き込まれたＰwvＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ１５９）。そして、データ配置制御手段１５は、データディスクＤmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューＰwＷのバッファ（現在値）から、既にディスクに書き込んだｖ番目のプライマリ層データキューＰwvＷを削除する（ステップＳ１６０）。そして、データ配置制御手段１５は、変数ｒの現在値に「１」を加算し（ステップＳ１６１）、ステップＳ１５３に戻る。
【０１７９】
前記したステップＳ１５４において、データディスクＤmrが回転中ではない場合（ステップ１５４：Ｎｏ）、データ配置制御手段１５は、前記したステップＳ１５５〜ステップＳ１６０をスキップしてステップＳ１６１に進む。
【０１８０】
前記したステップＳ１５３において変数ｒの現在値がノード数Ｎcuを超えた場合（ステップＳ１５３：Ｎｏ）、または、前記したステップＳ１５１においてバックアップ層データキューＢiＷのキュー長が閾値ＢＷth以下である場合（ステップＳ１５１：Ｎｏ）、データ配置制御手段１５は、図１１のステップＳ１２１に戻る。
【０１８１】
［５−３．Write処理のBackupデータ処理］
次に、ステップＳ２００ＢのBackupデータ処理について図１４を参照（適宜図１、図５、図８参照）して説明する。図１４は、図８のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。
【０１８２】
前提として、バックアップ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のBackupデータ処理（ステップＳ２００Ｂ）では、ｉ番目のキャッシュ単位のｊ番目のプライマリデータキューＰijＷのバックアップとして、ｋ番目のキャッシュ単位のｌ番目のバックアップ層データキューＢklＷを指定する。このバックアップ層データキューＢklＷは、キャッシュメモリ３０のバックアップ側に格納されており、ｍ番目のディスク単位のｎ番目のデータディスクＤmnに対する書込データである。
【０１８３】
Backupデータ処理（ステップＳ２００Ｂ）では、図１４に示すように、まず、システム管理手段１０のキャッシュメモリ容量検出手段１４１は、キャッシュメモリ３０のバックアップ側に格納されている、ｋ番目のキャッシュ単位のうちｌ番目のバックアップ層データキューＢklＷを書き込むときには、ｋ番目のキャッシュ単位（バックアップデータ）全体のキューＢkＷのメモリ容量を検出する（ステップＳ２２１）。
【０１８４】
以下、システム管理手段１０が実行するステップＳ２２２〜Ｓ２２５の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップＳ２０２〜Ｓ２０５の各処理（図５（ａ）参照）と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、ｋ番目のキャッシュ単位に対応する、ｍ番目のディスク単位のｎ番目のデータディスクＤmnである。
【０１８５】
システム管理手段１０は、ステップＳ２２３において、データディスクＤmnが回転中、かつ、バックアップ層データキューＢkＷのキュー長が閾値ＢＷthよりも大きいという条件を満たす場合（ステップＳ２２３：Ｙｅｓ）、または、ステップＳ２２４においてデータディスクＤmnが回転中である場合（ステップＳ２２４：Ｙｅｓ）、または、ステップＳ２２５の後に、ステップＳ２３０に進む。
【０１８６】
＜ステップＳ２３０のＤBackup書込処理＞
ここで、ステップＳ２３０のＤBackup書込処理について図１５を参照（適宜図１０参照）して説明する。図１５に示すように、データ配置制御手段１５は、まず、繰り返し回数をカウントする変数ｒの初期値を「１」とする（ステップＳ２３１）。変数ｒの現在値がキャッシュ単位を構成するノード数Ｎcu以下であるか否かを判別する（ステップＳ２３２）。変数ｒの現在値がノード数Ｎcu以下である場合（ステップＳ２３２：Ｙｅｓ）、データ配置制御手段１５は、データディスクＤmrが回転中であるか否かを判別する（ステップＳ２３３）。
【０１８７】
ステップＳ２３３において、データディスクＤmrが回転中である場合（ステップＳ２３３：Ｙｅｓ）、データ配置制御手段１５は、キャッシュメモリに格納されている、ｋ番目のキャッシュ単位のｒ番目のバックアップ層データキューＢkrＷを、対応するデータディスクＤmr（バックアップ層）に書き込む（ステップＳ２３４）。
【０１８８】
このとき、既に行ったprimary処理にて、例えば、図１０（ａ）の左側に示すキャッシュメモリ３０ａでデータＰ1を、データディスク２０ａのプライマリデータ領域２１ａへ書き込んでいた場合、ｒ＝１とすると、キャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納された１番目のデータＢ1を、データディスク２０ｂのバックアップデータ領域２２ｂへ書き込むこととなる。
【０１８９】
続いて、データ配置制御手段１５は、データディスクＤmr（バックアップ層）に書き込まれたＢkrＷをキャッシュディスクＤcacheへ書き込み（ステップＳ２３５）、ｋ番目のキャッシュ単位のバックアップ層データキューＢkＷのバッファ（現在値）から、既にディスクに書き込んだｒ番目のバックアップ層データキューＢkrＷを削除する（ステップＳ２３６）。
【０１９０】
続いて、データ配置制御手段１５は、このバックアップ層を書き込んだデータディスクＤmrのプライマリ層データに対応するメモリキャッシュデータＰuvＷ（ｕ番目のキャッシュ単位のｖ番目のプライマリ層データキュー）を、このデータディスクＤmr（プライマリ層）に書き込む（ステップＳ２３７）。例えば、図１０（ａ）の右側に示すキャッシュメモリ３０ｂから既にデータＢ1をデータディスク２０ｂのバックアップデータ領域２２ｂへ書き込んだ場合には、キャッシュメモリ３０ａのプライマリデータ領域３１ａに格納された２番目のデータＰ2を、データディスク２０ｂのプライマリデータ領域２１ｂへ書き込む。
【０１９１】
続いて、データ配置制御手段１５は、データディスクＤmr（プライマリ層）に書き込まれたＰuvＷをキャッシュディスクＤcacheへ書き込み（ステップＳ２３８）、データディスクＤmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューＰuＷのバッファ（現在値）から、既にディスクに書き込んだｖ番目のプライマリ層データキューＰuvＷを削除する（ステップＳ２３９）。そして、データ配置制御手段１５は、変数ｒの現在値に「１」を加算し（ステップＳ２４０）、ステップＳ２３２に戻る。
【０１９２】
前記したステップＳ２３３において、データディスクＤmrが回転中ではない場合（ステップ２３３：Ｎｏ）、データ配置制御手段１５は、前記したステップＳ２３４〜ステップＳ２３９をスキップしてステップＳ２４０に進む。
【０１９３】
前記したステップＳ２３２において、変数ｒの現在値がノード数Ｎcuを超えた場合（ステップＳ２３２：Ｎｏ）、データ配置制御手段１５は、ステップＳ２５０のＤprimary＼backup書込処理を実行し、その後、図１４のステップＳ２２１に戻る。
【０１９４】
＜ステップＳ２５０のＤprimary＼backup書込処理＞
ここで、ステップＳ２５０のＤprimary＼backup書込処理について図１６を参照（適宜図１０および図１４参照）して説明する。図１６に示すように、データ配置制御手段１５は、まず、このBackupデータ処理（Ｓ２００Ｂ）で対象としているｋ番目のキャッシュ単位のプライマリ層データキューＰkＷのキュー長が、プライマリ層データキューにおけるキューサイズの閾値ＰＷthよりも大きいか否かを判別する（ステップＳ２５１）。
【０１９５】
なお、ステップＳ２５１では、プライマリ側の関係を示す識別記号「ｉ」の代わりに、識別記号ｋを用いる。また、ここで、プライマリ層データキューＰkＷは、具体的には、次のデータが相当する。例えば、ステップＳ２５０の処理の前に、図１０（ａ）に示すキャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納されたデータＢ1をディスクに書き込む処理をした場合には、プライマリ層データキューＰkＷは、プライマリデータ領域３１ｂのデータキューに相当する。
【０１９６】
ステップＳ２５１において、プライマリ層データキューＰkＷのキュー長が閾値ＰＷthよりも大きい場合（ステップＳ２５１：Ｙｅｓ）、データ配置制御手段１５は、繰り返し回数をカウントする変数ｒの初期値を「１」とする（ステップＳ２５２）。そして、データ配置制御手段１５は、変数ｒの現在値がキャッシュ単位を構成するノード数Ｎcu以下であるか否かを判別する（ステップＳ２５３）。変数ｒの現在値がノード数Ｎcu以下である場合（ステップＳ２５３：Ｙｅｓ）、データ配置制御手段１５は、ｋ番目のキャッシュ単位のプライマリ層データに対応する、ｋ番目のディスク単位のｒ番目のデータディスクＤkrが回転中であるか否かを判別する（ステップＳ２５４）。
【０１９７】
なお、キャッシュ単位およびディスク単位のプライマリ側の関係においては、キャッシュ単位の識別記号とそれに対応したディスク単位の識別記号とは同じなので、ステップＳ２５４では、キャッシュ単位もディスク単位も共にｋ番目となる。また、例えば、プライマリ層データキューＰkＷが、図８に示すプライマリデータ領域３１ｂのデータキューである場合、データディスクＤkrは、ｒ＝１のときにデータディスク２０ｃであり、ｒ＝２のときにデータディスク２０ｄとなる。
【０１９８】
前記したステップＳ２５４において、データディスクＤkrが回転中である場合（ステップＳ２５４：Ｙｅｓ）、データ配置制御手段１５は、キャッシュメモリに格納されている、ｋ番目のキャッシュ単位のｒ番目のプライマリ層データキューＰkrＷを、対応するデータディスクＤkr（プライマリ層）に書き込む（ステップＳ２５５）。例えば、図８に示すプライマリデータ領域３１ｂに格納されたデータＰ3を、データディスク２０ｃのプライマリデータ領域２１ｃに書き込む。
【０１９９】
続いて、データ配置制御手段１５は、データディスクＤkr（プライマリ層）に書き込まれたＰkrＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ２５６）。そして、データ配置制御手段１５は、ｋ番目のキャッシュ単位のプライマリ層データキューＰkＷのバッファ（現在値）から、既にディスクに書き込んだｒ番目のプライマリ層データキューＰkrＷを削除する（ステップＳ２５７）。
【０２００】
次いで、データ配置制御手段１５は、このプライマリ層を書き込んだデータディスクＤkrのバックアップ層データに対応するメモリキャッシュデータＢwvＷ（キャッシュ単位のｖ番目のバックアップ層データキュー）を、このデータディスクＤkr（バックアップ層）に書き込む（ステップＳ２５８）。例えば、図８に示すプライマリデータ領域３１ｂに格納されたデータＰ3を、データディスク２０ｃのプライマリデータ領域２１ｃに書き込む場合には、キャッシュメモリ３０ｃのバックアップデータ領域３２ｃのうちのデータ「Ｂ2」を、データディスク２０ｃのバックアップデータ領域２２ｃに書き込む。
【０２０１】
続いて、データ配置制御手段１５は、データディスクＤkr（バックアップ層）に書き込まれたＢwvＷを、キャッシュディスクＤcacheへ書き込む（ステップＳ２５９）。そして、データ配置制御手段１５は、データディスクＤkrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューＢwＷのバッファ（現在値）から、既にディスクに書き込んだｖ番目のバックアップ層データキューＢwvＷを削除する（ステップＳ２６０）。そして、データ配置制御手段１５は、変数ｒの現在値に「１」を加算し（ステップＳ２６１）、ステップＳ２５３に戻る。
【０２０２】
前記したステップＳ２５４において、データディスクＤkrが回転中ではない場合（ステップ１５４：Ｎｏ）、データ配置制御手段１５は、前記したステップＳ２５５〜ステップＳ２６０をスキップしてステップＳ２６１に進む。
【０２０３】
前記したステップＳ２５３において変数ｒの現在値がノード数Ｎcuを超えた場合（ステップＳ２５３：Ｎｏ）、または、前記したステップＳ２５１においてプライマリ層データキューＰkＷのキュー長が閾値ＰＷth以下である場合（ステップＳ２５１：Ｎｏ）、データ配置制御手段１５は、図１４のステップＳ２２１に戻る。
【０２０４】
［５−４．Read処理］
図８のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてRead処理の全体の流れを図１８に示す。図１８に示すように、システム管理手段１０が実行するステップＳ４０１〜Ｓ４０３、Ｓ４１０の各処理は、読み出し対象のデータをＲijである点を除いて、前記したステップＳ３０１〜Ｓ３０３、Ｓ３１０の各処理（図６参照）と同様なので説明を適宜省略する。
【０２０５】
ここで、読み出し対象のデータＲijは、そのオリジナルデータが、ｉ番目のキャッシュ単位に対応する、ｌ番目のディスク単位のｊ番目のデータディスクＤljに格納されていることを表している。例えば、図８に示す例において、ｉ＝１、ｊ＝１の場合、データＲijがデータＰ1に相当する。
【０２０６】
したがって、キャッシュディスクＤcacheに、読み出し対象のデータＲijが無い場合（ステップＳ４０３：Ｙｅｓ）、システム管理手段１０のデータ配置制御手段１５は、各データディスク２０を管理するための図示しないデータベースを参照して、ディスク単位も考慮して、図１７に示すように、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定し（ステップＳ４０４）、ステップＳ４１１の判別処理に進む。
図１７に示す例では、データディスク２０ｆのプライマリデータ領域２１ｆに格納されたデータＰ６に読み出し要求があった場合を示している。この場合、キャッシュメモリ３０にもキャッシュディスク４０にもデータＰ６は存在しないため、ヒットミスが発生し、該当データをデータディスク２０から読み出すこととなる。そして、プライマリ側のデータディスクは、データディスク２０ｆとして決定され、バックアップ側のデータディスクは、データディスク２０ａとして決定される。その後の処理にて、データ配置制御手段１５は、どちらか回転しているデータディスク２０から該当データをキャッシュディスク４０にコピーする。
【０２０７】
なお、キャッシュ単位が単数の場合、図６では省略したが、データ配置制御手段１５は、ディスク単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定している。
【０２０８】
また、図１８に示すように、システム管理手段１０が実行するステップＳ４１１〜Ｓ４１６の各処理は、前記したステップＳ３１１〜Ｓ３１６の各処理（図６参照）と同様なので説明を省略する。
【０２０９】
ただし、システム管理手段１０のデータ配置制御手段１５は、各キャッシュメモリ３０を管理するための図示しないデータベースを参照して、キャッシュ単位も考慮して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定し（ステップＳ４１７）、前記したステップＳ３２１の判別処理（図７参照）に進む。
【０２１０】
なお、キャッシュ単位が単数の場合、図６では省略したが、データ配置制御手段１５は、キャッシュ単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定している。
【０２１１】
前記１章〜５章に詳述したように、本実施形態のストレージ装置１およびその制御方法によれば、所定データに関するプライマリ側およびバックアップ側のデータディスク２０の一方の回転停止状態を長時間確保することができると共に、各データディスク２０のスピンアップの開始回数および回転停止への切り換え回数を少なく抑えることができる。したがって、本実施形態のストレージ装置１は、多くのデータディスク２０をなるべく回転停止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。
【０２１２】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で様々に実施することができる。
【０２１３】
［変形例１］
本実施形態では、データディスク２０の通常回転休止状態を回転停止状態であるものとして説明したが、回転停止状態の代わりに低速回転状態としてもよい。データディスク２０の回転を完全に停めると、定常電力が消費されないという利点があるが、再び回転するときに、ディスクアイドル状態（通常回転数で回転しているがライトもリードもしていない状態）になるまでに遅れが生じ、スパイク電流が起こる。これに対して、データディスク２０を低速回転状態にした場合には、低速回転状態からディスクアイドル状態になるまでの所要時間およびその消費電力が少なくなる。すなわち、ストレージ装置の性能や省電力の観点からは、低速回転状態の方がより好ましい。
【０２１４】
ここで、低速時の回転数は、省電力の観点からは通常回転数よりもできるだけ低い方がよいが、スピンアップ時の応答時間を短縮して性能の劣化を低減する観点からは過度に低くする必要はない。また、低速回転にすることによって得られる消費電力量と、アクセスが発生した場合に最高速回転（通常回転数）に戻るまでの時間損失とのトレードオフの関係がある。また、低速時の好適な回転数は、ディスクドライブに対するアクセス（read/write）頻度によっても影響を受ける。そのため、低速時の回転数は、消費電力量と通常回転数に戻るまでの時間との優先度の違いや、使用条件等の運用方法を考慮した上で、適宜設計変更することができる。
【０２１５】
一例として挙げると、通常回転数と低速時の回転数との関係は、ストレージの分野において従来公知のように、最高回転数と、低速時の回転数とを一対一に対応させて、低速時の回転数を最高回転数の約６割となるようにしてもよい。また、例えば、ストレージの分野において、従来、最高回転数を、アクセス頻度に応じて最高時の３０〜９５％になるように多段速の回転数に切り替える手法も提案されており、このように、最高回転数と低速時の回転数とを一対多に対応させてもよい。
【０２１６】
［変形例２］
本実施形態では、キャッシュ単位が複数の場合に、例えば、前記したステップＳ１２２（図１１参照）の処理でＮｏ、かつ、データディスクＤljが回転停止状態である場合に、ｉ番目のキャッシュ単位のプライマリ層データキューのうちのｊ番目のデータキューＰijＷに対応した固定のデータディスクをスピンアップする（ステップＳ１２５）こととしたが、これに限定されるものではない。
【０２１７】
つまり、ステップＳ１２５においてスピンアップするデータディスクを固定とするのではなく、このＰijＷを含むデータキューＰiＷの中にある、Ｐi1〜ＰiNcuまでのＮcu個のメモリキャッシュデータのうちで、一番大きなキュー長をもつキャッシュデータに対応したデータディスクをスピンアップさせてもよい。この場合には、キャッシュメモリ３０のデータキューを効果的に減らすることができる。
【０２１８】
［変形例３］
本実施形態では、キャッシュメモリ３０を、１つのプライマリデータ領域と１つのバックアップデータ領域とに論理的に分割するものとして説明したが、１つのプライマリデータ領域と複数のバックアップデータ領域とに分割するように構成してもよい。一例として、ストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが１つのプライマリデータに対して２つのバックアップデータを記憶する場合の模式図を図１９に示す。なお、１つのプライマリデータ領域と３つ以上のバックアップデータ領域とに分割するように構成してもよいことはもちろんである。
【０２１９】
図１９に示すキャッシュメモリ３０ａは、１つのプライマリデータ領域３１と２つのバックアップデータ領域３２とに分割されている。このキャッシュメモリ３０ａのプライマリデータ領域３１には、データディスク２０ａにプライマリデータとして格納するためのメモリキャッシュデータとして、データＣＰiが格納されている。また、キャッシュメモリ３０ａの一方のバックアップデータ領域３２には、データディスク２０ａにバックアップデータとして格納するためのメモリキャッシュデータとして、データＣＢi-1が格納されている。同様に、他方のバックアップデータ領域３２には、データＣＢi-2が格納されている。このようにキャッシュメモリ３０を構成することで、データを多重化して信頼性をより向上させることができる。
【０２２０】
また、この場合には、キャッシュメモリ３０ａのプライマリデータ領域３１に格納されたデータＣＰiのバックアップデータ（データＣＢi）は、キャッシュメモリ３０ｂのバックアップデータ領域３２と、キャッシュメモリ３０ｃのバックアップデータ領域３２とに格納されている。したがって、例えば、Backupデータ処理（ステップＳ２００）により、キャッシュメモリ３０ｂのバックアップデータ領域３２に格納されていたデータＣＢiを消去したとしても、キャッシュメモリ３０ｃのバックアップデータ領域３２に格納されているデータＣＢiを同時には消去せずに、しばらく残したままにすることが可能となる。
【０２２１】
［変形例４］
本実施形態では、ストレージ装置１は、１つのシステム管理手段１０が複数のデータディスク２０を制御するものとして説明したが、本発明は、これに限定されるものではない。例えば、システム管理手段をデータディスクごとに設けて自律ストレージ装置を個別に構成し、全体のストレージ装置を、複数の自律ストレージ装置を備える自律ストレージシステムとして構成してもよい。この場合には、予め定めた自律分散管理ルールに基づいて、各自律ストレージ装置が他の自律ストレージ装置と協調しながら、データの複製や移動を行うことができる。
【０２２２】
［変形例５］
本実施形態では、ストレージ装置１は、システム管理手段１０と、データディスク２０と、キャッシュメモリ３０と、キャッシュディスク４０とを備えるものとして説明したが、本発明は、これに限定されるものではない。例えば、リード処理の安定を重視しない場合には、キャッシュディスク４０を除いて構成してもよい。また、例えば、ライト処理の安定を重視せずに、リード処理の安定だけを重視する場合には、キャッシュメモリ３０を除いて構成してもよい。さらに、データディスク２０とシステム管理手段とによる基本構成のみで簡易的に構成するようにしてもよい。
【０２２３】
例えば、システム管理手段１０と、データディスク２０と、キャッシュメモリ３０とを備えるストレージ装置の場合には、前記したストレージ装置の動作において次のように処理を変更する。
キャッシュ単位が単数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理（ステップＳ１００）にて、データ配置制御手段１５は、ステップＳ１１３とステップＳ１１６とをスキップする。また、Backupデータ処理（ステップＳ２００）にて、データ配置制御手段１５は、ステップＳ２１３とステップＳ２１６とをスキップする。また、Read処理にて、データ配置制御手段１５は、ステップＳ３０３、Ｓ３１４、Ｓ３１６、Ｓ３２４、Ｓ３２８およびＳ３３４をスキップする。
【０２２４】
また、キャッシュ単位が複数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理（ステップＳ１００Ｂ）にて、データ配置制御手段１５は、ステップＳ１３５、Ｓ１３８、Ｓ１５６およびＳ１５９をスキップする。また、Backupデータ処理（ステップＳ２００Ｂ）にて、データ配置制御手段１５は、ステップＳ２３５、Ｓ２３８、Ｓ２５６およびＳ２５９をスキップする。また、Read処理にて、データ配置制御手段１５は、ステップＳ４１４、Ｓ４１６、Ｓ３２４、Ｓ３２８およびＳ３３４をスキップする。このように、キャッシュディスク４０を備えていないストレージ装置の場合には、処理を簡略化することができる。
【実施例】
【０２２５】
本発明による効果を確認するために、本発明のストレージ装置の性能を検証するコンピュータシミュレーションを行った。【０２２６】
（実験方法）
実施例のストレージ装置は、システム管理手段と、データディスク２０と、キャッシュメモリ３０と、キャッシュディスク４０とを備え、前記した制御方法により、なるべく多くのデータディスク２０を停止させておく制御を行うこととした。この実施例のストレージ装置を、従来方式のストレージ装置と比較して消費電力の低減効果を見積もる実験を行った。ここで、従来方式のストレージ装置とは、キャッシュメモリ３０と、キャッシュディスク４０とを備えておらず、すべてのデータディスク２０が常に回転中であり、実施例のような特別な制御を行わない装置である。以下に記載する数式中の記号の説明を表１にまとめて記す。【０２２７】
【表１】
2011102429.tif 000003
【０２２８】
（算出式）
実施例のストレージ装置は、ｍ台のデータディスク２０と、ｎ台のキャッシュディスク４０とを備えることとした。この場合に、実施例のストレージ装置のｍ台のデータディスク２０全体に係る消費電力ＰdataDiskを式（１）にて算出した。【０２２９】
【数１】
2011102429.tif 000004
【０２３０】
式（１）において、ｆrは読み出しアクセス頻度、ｆwは書き込みアクセス頻度をそれぞれ示す。これらｆr，ｆwはそれぞれ０〜１の割合で示す（０≦ｆr≦１、０≦ｆw≦１）。データディスク２０へのアクセスは、読み出し事象、書き込み事象、その他の事象に分類できるが、仮にすべてのアクセスを読み出し事象または書き込み事象に対応付けた場合には、ｆr＋ｆwは１となる。【０２３１】
式（１）の右辺第１項は、書込時、読込時およびそれ以外のときに、データディスク２０にアクセスが無い場合の消費電力に相当する項である。式（１）の右辺第２項は、読込時に、キャッシュメモリ３０およびキャッシュディスク４０の両方でキャッシュヒットミスした場合にデータディスク２０から直接読み出すときの消費電力に相当する項である。式（１）の右辺第３項は、書込時に、キャッシュメモリ３０のキュー長が閾値を超えていた場合にデータディスク２０に直接書き込むときの消費電力に相当する項である。【０２３２】
また、この場合に、実施例のストレージ装置のｎ台の常に回転しているキャッシュディスク４０全体に係る消費電力ＰcacheDiskを式（２）にて算出した。【０２３３】
【数２】
2011102429.tif 000005
【０２３４】
式（２）の右辺第１項は、キャッシュメモリ３０にヒットした場合および読み出し処理自体が発生しなかった場合の消費電力に相当する項である。式（２）の右辺第２項は、キャッシュメモリ３０がヒットミスした場合において、キャッシュディスク４０ではヒットした場合の消費電力に相当する項である。式（２）の右辺第３項は、キャッシュディスク４０でもヒットしなかった場合において、データディスク２０からデータを読み出し、さらにそのデータをキャッシュディスク４０に書き込むときの消費電力に相当する項である。式（２）の右辺第４項は、キャッシュメモリ３０のメモリバッファをオーバーフローしてデータディスク２０に書き込む際に、当該データをキャッシュディスク４０に書き込む消費電力に相当する項である。【０２３５】
また、前記式（１）で示す消費電力ＰdataDiskおよび式（２）で示す消費電力ＰcacheDiskを用いて、実施例のストレージ装置全体に係る消費電力Ｐtotalを式（３）にて算出した。
【数３】
2011102429.tif 000006
【０２３６】
これら式（１）〜式（３）は、読み出しアクセス頻度ｆrと、書き込みアクセス頻度ｆwと、読み出しアクセスに対するキャッシュメモリのヒット率ｈcと、読み出しアクセスに対するキャッシュディスクのヒット率ｈdと、書き込みアクセスに対する書き込み可能率ｂwとを用いて、ヒットしたときにどこにデータがあるものを読むのかという点と、それぞれのその読みにいった場所に対する消費電力の使い方とを考慮して予め定めた関係式である。なお、前提としては、読み出し要求があったときに、読み出し対象データがキャッシュディスク４０に無い場合にはデータディスク２０からキャッシュディスク４０側にコピーして、それを読み出す。また、書き込み要求があったときに、書き込みアクセスに対するキャッシュヒットがあれば、キャッシュメモリ３０だけで対応しつつデータディスク２０を停止させておき、キャッシュメモリ３０にデータがある程度たまったときにだけデータディスク２０をスピンアップして書き出す。【０２３７】
また、比較例のストレージ装置は、ｍ台のデータディスク２０を備えることとして、その消費電力Ｐnormalを式（４）にて算出した。
【数４】
2011102429.tif 000007
【０２３８】
なお、書き込みアクセス時には、書き込み直前に、比較例の場合には、データディスク２０を回転させておくための消費電力を要しているが、実施例の場合には、通常は停止させており、キャッシュメモリ３０にデータがある程度たまったときにだけデータディスク２０をスピンアップして書き出す点が大きく異なる。【０２３９】
（計算条件）
ここでは、データディスク２０の台数ｍと、キャッシュディスク４０の台数ｎとの合計値を１００台とした（ｍ＋ｎ＝１００）。数多くの実験を行ったが、ここでは、代表として３つの例を挙げる。
＜実験Ａ＞内訳をｍ＝９０、ｎ＝１０とした。
シミュレーションでは、次のパラメータに関しては、以下の固定値とした。ここで、状態遷移時の消費電力Ｐtranは、読み込みまたは書き込み時のおよそ２倍の電力消費とした。
Ｐstandby=０．８［Ｗ］、Ｐidle＝９．３［Ｗ］、Ｐtran＝２４［Ｗ］、Ｐread＝１３［Ｗ］、
Ｐwrite＝１３［Ｗ］、ｈd＝０．９５、ｂw＝１．０、ｒd＝０．２、ｆｒ＝０．７、ｆｗ＝０．２
その上で、ｈcを７０〜９５％の間で５％ずつ変化させたときの実施例のストレージ装置１の全電力消費量Ｐtotalを求めた。また、比較例の消費電力Ｐnormalを求め、消費電力削減率を算出した（（Ｐnormal−Ｐtotal）／Ｐnormal）。
＜実験Ｂ＞内訳をｍ＝８０、ｎ＝２０とし、全く同じ計算条件で消費電力削減率を算出した。
＜実験Ｃ＞内訳をｍ＝７０、ｎ＝３０とし、ｆｗ＝０．３（ｆｒ＋ｆｗ＝１）に変更し、他のパラメータは、全く同じ計算条件で消費電力削減率を算出した。【０２４０】
（実験結果）
実験Ａ（ｍ＝９０、ｎ＝１０とした場合）の実験結果を表２に示す。
実験Ｂ（ｍ＝８０、ｎ＝２０とした場合）の実験結果を表３に示す。
実験Ｃ（ｍ＝７０、ｎ＝３０、ｆｗ＝０．３とした場合）の実験結果を表４に示す。【０２４１】
【表２】
2011102429.tif 000008
【０２４２】
【表３】
2011102429.tif 000009
【０２４３】
【表４】
2011102429.tif 000010
【０２４４】
表２〜表４に示すすべてのケースで、消費電力削減効果を認めることができた。なお、比較例は常に回転しており、実施例はディスクを停めては動かすという前提なので、回転の停止および再開を頻繁に繰り返すと、動かし続けるときよりもコストがかかる場合も当然生じる。このような場合には、消費電力削減率がマイナスになる。【０２４５】
また、表２〜表４に示すように、消費電力削減率は、読み出しアクセス頻度ｆrや、書き込みアクセス頻度ｆwの比率によって、大きく変化する。例えば、表２と表３との結果を比較すると、ｎ＝１０の場合の方が、ｎ＝２０の場合よりも消費電力削減率が大きいが、読み出しアクセスに対するキャッシュメモリのヒット率ｈc、読み出しアクセスに対するキャッシュディスクのヒット率ｈdや、読み出しアクセス頻度ｆrと書き込みアクセス頻度ｆwとの比率によって、大きく変化する。【０２４６】
また、消費電力削減率は、キャッシュディスク４０の台数ｎと、データディスク２０の台数ｍとの比率によっても大きく変化する。表２と表３に示すように、実施例のストレージ装置において総ディスク数の１０〜２０％をキャッシュディスク４０とし、アクセスデータに強く局所性があり、読み出しアクセスに対するキャッシュメモリのヒット率ｈcが非常に高い状況では、表２のNo.Ａ６に示すように、最大７１．１［％］程度の省電力化が達成可能となる。【０２４７】
また、表４に示すように、キャッシュディスク４０の台数ｎを３０とした場合でも、ケースによっては４０［％］以上の省電力化が達成可能となる。なお、キャッシュディスク４０の台数ｎが、データディスク２０の台数ｍ以上であると、キャッシュディスク４０のコストが大きいので、本発明の効果が相対的に減る。【０２４８】
また、ここでは、読み出しアクセスに対するキャッシュメモリのヒット率ｈcを７０〜９５％の間で変化させたが、その最適値は、例えば、アプリケーション、データディスク２０の格納データの種類等に依存する。例えば、データディスク２０に、多くのユーザがアクセスするブログページを数多く格納し、アクセス頻度の少ないブログページを少数格納している場合には、ｈcが高くなるため、この場合には、本実施例の制御方法の適用が特に好ましい。【０２４９】
なお、書き込み時には、キャッシュメモリ３０のヒット率（書き込みアクセスに対する書き込み可能率ｂw）が高いので、キャッシュメモリ３０の方で済ませられる処理が増え、その分だけデータディスク２０にアクセスする必要がなくなり、データディスク２０を長い間停めておけるので、コスト削減効果が大きい。そのため、読み出しアクセス頻度ｆrや、書き込みアクセス頻度ｆwの比率を変えて、相対的に読み出しアクセス頻度ｆrを減らすと、書き込み処理によるコスト削減効果が増加する。
【符号の説明】
【０２５０】
１      ストレージ装置
２      ネットワーク
１０    システム管理手段
１１    通信送受信手段
１２    データ格納手段
１２１  データ受信手段
１２２  データ書込手段
１３    データ配信手段
１３１  データ読出手段
１３２  データ送信手段
１４    データ管理手段
１４１  キャッシュメモリ容量検出手段
１４２  ディスク回転状態検出手段
１４３  ディスク回転状態制御手段
１５    データ配置制御手段
２０    データディスク
２０ａ〜２０ｆ  データディスク
２１    プライマリデータ
２１ａ〜２１ｆ  プライマリデータ領域
２２    バックアップデータ
２２ａ〜２２ｆ  バックアップデータ領域
３０    キャッシュメモリ
３０ａ〜３０ｅ  キャッシュメモリ
３１    プライマリデータ
３１ａ〜３１ｅ  プライマリデータ領域
３２    バックアップデータ
３２ａ〜３２ｅ  バックアップデータ領域
４０    キャッシュディスク
４１    プライマリデータ
４２    バックアップデータ
【図１】
2011102429.tif 000011
【図２】
2011102429.tif 000012
【図３】
2011102429.tif 000013
【図４】
2011102429.tif 000014
【図５】
2011102429.tif 000015
【図６】
2011102429.tif 000016
【図７】
2011102429.tif 000017
【図８】
2011102429.tif 000018
【図９】
2011102429.tif 000019
【図１０】
2011102429.tif 000020
【図１１】
2011102429.tif 000021
【図１２】
2011102429.tif 000022
【図１３】
2011102429.tif 000023
【図１４】
2011102429.tif 000024
【図１５】
2011102429.tif 000025
【図１６】
2011102429.tif 000026
【図１７】
2011102429.tif 000027
【図１８】
2011102429.tif 000028
【図１９】
2011102429.tif 000029
【手続補正書】
【提出日】平成23年10月19日(2011.10.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、
前記システム管理手段は、
前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段と、
前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、
前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、
通常は前記各データディスクをなるべく前記通常回転休止状態としておき、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段と、
を備え、
前記データ配置制御手段は、
書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データのバックアップデータを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、
前記データを格納した後の当該キャッシュメモリのキュー長が、予め定められた第１閾値より大きなメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば回転状態を前記通常回転状態に切り替えた後に当該データを移動させ、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば当該データを移動することなく保持し、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第２閾値以下のメモリ容量の状態であることが検出された場合に、当該データを移動することなく保持することを特徴とするストレージ装置。
【請求項２】
前記データ配置制御手段は、
前記書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクとして選択した第１のデータディスクが前記通常回転状態のときに、前記書込要求に応じて第１のキャッシュメモリのプライマリデータ領域に格納したデータを前記第１のデータディスクのプライマリデータ領域に移動させる処理と、前記第１のデータディスクのバックアップデータ領域に対応付けられている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを前記第１のデータディスクのバックアップデータ領域に移動させる処理とを連続的に行い、
続いて、前記書込要求に応じたバックアップデータを書き込むために選択した第２のデータディスクが前記通常回転状態のときに、前記バックアップデータを格納した第２のキャッシュメモリのバックアップデータ領域に格納されているデータを前記第２のデータディスクのバックアップデータ領域に移動させる処理と、前記第２のデータディスクのプライマリデータ領域に対応付けられている第３のキャッシュメモリのプライマリデータ領域に格納されているデータを前記第２のデータディスクのプライマリデータ領域に移動させる処理とを連続的に行うことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記データ配置制御手段は、
読込要求時において、前記読込要求が対象とするデータが、プライマリ側のキャッシュメモリ及びバックアップ側のキャッシュメモリに無い場合、前記プライマリ側のキャッシュメモリに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記バックアップ側のキャッシュメモリに対応付けられた１つまたは複数のバックアップデータ領域を有するバックアップ側のデータディスクとをそれぞれ選択し、
前記選択したいずれかのデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、
前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記プライマリ側のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記バックアップ側のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較し、前記総キューサイズが大きい側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、前記総キューサイズが等しい場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことを特徴とする請求項１または請求項２に記載のストレージ装置。
【請求項４】
請求項１ないし請求項３のいずれか一項に記載のストレージ装置において、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、
前記データ配置制御手段は、
前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すことを特徴とするストレージ装置。
【請求項５】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、書込要求時において、
書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、
当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
前記プライマリデータ処理は、
前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、
前記データを格納した後の当該キャッシュメモリのキュー長が予め定められた第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第１のデータディスクの回転状態が前記通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
前記キュー長が前記第１閾値より大きく且つ前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記いずれかの条件を満たし且つ前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
前記プライマリ側の書込ステップは、
前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、
当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、を含み、
前記バックアップデータ処理は、
前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、
前記データを格納した後の前記第３のキャッシュメモリのキュー長が予め定められた第３閾値より小さく予め定められた第４閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、
前記データを格納した後の前記第３のキャッシュメモリのキュー長が、前記第３閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
前記キュー長が前記第３閾値より大きく且つ前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記いずれかの条件を満たし且つ前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
前記バックアップ側の書込ステップは、
前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、
当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、
を含むことを特徴とするストレージ装置の制御方法。
【請求項６】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、書込要求時において、
書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとし書き込むプライマリデータ処理と、
当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、
前記プライマリデータ処理は、
前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、
前記データを格納した後の当該キャッシュメモリのキュー長が予め定められた第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第１のデータディスクの回転状態が前記通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、
前記キュー長が前記第１閾値より大きく且つ前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記いずれかの条件を満たし且つ前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、
前記プライマリ側の書込ステップは、
前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、
前記第１のデータディスクのプライマリデータデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、
前記第１のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、
前記バックアップデータ処理は、
前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、
前記データを格納した後の前記第３のキャッシュメモリのキュー長が予め定められた第３閾値より小さく予め定められた第４閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、
前記データを格納した後の前記第３のキャッシュメモリのキュー長が、前記第３閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、
前記キュー長が前記第３閾値より大きく且つ前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、
前記いずれかの条件を満たし且つ前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、
前記バックアップ側の書込ステップは、
前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、
前記第２のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、
当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、
前記第２のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とするストレージ装置の制御方法。
【請求項７】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、読込要求時において、
読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記第５のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記第６のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較するステップと、
前記総キューサイズが等しくない場合、前記総キューサイズが大きい側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記総キューサイズが等しい場合、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記プライマリ側のデータディスクまたはバックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
【請求項８】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、
前記システム管理手段は、読込要求時において、
読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、
当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、
当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、
当該データが前記キャッシュディスクに無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、
前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記第５のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記第６のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較するステップと、
前記総キューサイズが等しくない場合、前記総キューサイズが大きい側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記総キューサイズが等しい場合、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、
前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。
【請求項９】
ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、を備え、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、
前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段、
前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、
前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、
通常は前記各データディスクをなるべく前記通常回転休止状態としておき、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、
として機能させるためのシステム管理プログラムであって、
前記データ配置制御手段は、
書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データのバックアップデータを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、
前記データを格納した後の当該キャッシュメモリのキュー長が、予め定められた第１閾値より大きなメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば回転状態を前記通常回転状態に切り替えた後に当該データを移動させ、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば当該データを移動することなく保持し、
前記データを格納した後の当該キャッシュメモリのキュー長が、前記第２閾値以下のメモリ容量の状態であることが検出された場合に、当該データを移動することなく保持することを特徴とするシステム管理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
［００１２］
前記課題を解決するために、本発明に係るストレージ装置は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、前記システム管理手段が、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段と、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、通常は前記各データディスクをなるべく前記通常回転休止状態としておき、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段と、を備え、前記データ配置制御手段は、書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データのバックアップデータを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記データを格納した後の当該キャッシュメモリのキュー長が、予め定められた第１閾値より大きなメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば回転状態を前記通常回転状態に切り替えた後に当該データを移動させ、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば当該データを移動することなく保持し、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第２閾値以下のメモリ容量の状態であることが検出された場合に、当該データを移動することなく保持することを特徴とする。
［００１３］
かかる構成によれば、ストレージ装置は、信頼性を確保するための２つのデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。ここで、通常回転休止状態とは、回転が停止している状態だけを示すものではなく、通常回転数よりも低い回転数で回転する低速回転状態をも示している。また、かかる構成によれば、ストレージ装置は、プライマリ側のディスクとバックアップ側のディスクを常時回転させるのではなく、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することが
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
できる。
［００１４］
また、かかる構成によれば、ストレージ装置は、データディスクのデータをキャッシュするキャッシュメモリを備える構成としたので、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。例えば、プライマリ側とバックアップ側のキャッシュメモリの電源を保持しておけば、一方がクラッシュしてもデータを保持することができる。
［００１５］
また、本発明に係るストレージ装置は、前記データ配置制御手段が、前記書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクとして選択した第１のデータディスクが前記通常回転状態のときに、前記書込要求に応じて第１のキャッシュメモリのプライマリデータ領域に格納したデータを前記第１のデータディスクのプライマリデータ領域に移動させる処理と、前記第１のデータディスクのバックアップデータ領域に対応付けられている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを前記第１のデータディスクのバックアップデータ領域に移動させる処理とを連続的に行い、続いて、前記書込要求に応じたバックアップデータを書き込むために選択した第２のデータディスクが前記通常回転状態のときに、前記バックアップデータを格納した第２のキャッシュメモリのバックアップデータ領域に格納されているデータを前記第２のデータディスクのバックアップデータ領域に移動させる処理と、前記第２のデータディスクのプライマリデータ領域に対応付けられている第３のキャッシュメモリのプライマリデータ領域に格納されているデータを前記第２のデータディスクのプライマリデータ領域に移動させる処理とを連続的に行うことが好ましい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
［００１６］
また、本発明に係るストレージ装置は、前記データ配置制御手段が、読込要求時において、前記読込要求が対象とするデータが、プライマリ側のキャッシュメモリ及びバックアップ側のキャッシュメモリに無い場合、前記プライマリ側のキャッシュメモリに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記バックアップ側のキャッシュメモリに対応付けられた１つまたは複数のバックアップデータ領域を有するバックアップ側のデータディスクとをそれぞれ選択し、前記選択したいずれかのデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記プライマリ側のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記バックアップ側のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較し、前記総キューサイズが大きい側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、前記総キューサイズが等しい場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことが好ましい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
［００１７］
かかる構成によれば、ストレージ装置は、書込要求時に書き込み先のデータディスクが通常回転休止状態であったとしても、データ配置制御手段が、ディスク回転状態制御手段によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。また、ストレージ装置は、読込要求時において、読み出し対象のデータを格納した２つのデータディスクのうち一方が通常回転状態であれば、データ配置制御手段がそのデータディスクにアクセスし、両方のデータディスクが通常回転休止状態であれば、一方のデータディスクだけをスピンアップしてアクセスする。つまり、ストレージ装置は、信頼性を確保するための２つのデータディスクの一方の通常回転休止状態を長時間確保することができる。
また、両方のデータディスクが通常回転休止状態の場合にスピンアップする側のデータディスクを選択する基準を、通常回転休止状態の時間が長い側としたことで、信頼性を確保するための２つのデータディスクについての総計で、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。
また、ストレージ装置は、読込要求時に、通常回転休止状態であったプライマリ側またはバックアップ側のデータディスクをスピンアップした後に、プライマリデータ領域またはバックアップデータ領域のうちの一方のデータ領域から読み出し処理を行う。そのため、このスピンアップしたデータディスクを予め定めた期間だけ通常回転状態に保持しておくことで、その期間内に、一方のデータ領域に対して別の読込要求や書込要求があった場合にデータディスクをスピンアップする必要がない。また、その期間内に他方のデータ領域に対する読込要求や書込要求があった場合にも、このデータディスクをスピンアップする必要がない。
［００１８］
また、本発明に係るストレージ装置は、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、前記データ配置制御手段が、前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すように構成することが好ましい。
［００１９］
かかる構成によれば、ストレージ装置は、読み出し専用のキャッシュディスクを備えているので、各データディスクに格納されている頻繁にアクセスされるデータをキャッシュディスクに集約させておくことで、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。
［００２０］
また、前記課題を解決するために、本発明の第１の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、前記データを格納した後の当該キャッシュメモリのキュー長が予め定められた第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第１のデータディスクの回転状態が前記通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記キュー長が前記第１閾値より大きく且つ前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記いずれかの条件を満たし且つ前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータデ
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
ィスクのプライマリデータ領域に格納するステップと、当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータディスクのバックアップデータ領域に格納するステップと、を含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、前記データを格納した後の前記第３のキャッシュメモリのキュー長が予め定められた第３閾値より小さく予め定められた第４閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、前記データを格納した後の前記第３のキャッシュメモリのキュー長が、前記第３閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第２のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記キュー長が前記第３閾値より大きく且つ前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記いずれかの条件を満たし且つ前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、を含むことを特徴とする。
［００２１］
かかる手順によれば、本発明の第１の観点に係るストレージ装置の制御方法は、書込要求時において、システム管理手段によって、プライマリデータ処理と、バックアップデータ処理と、を含んで実行するので、信頼性を高めることができる。また、システム管理手段は、プライマリデータ処理にて、データディスクのプライマリデータ領域に格納すべきデータを一時的にキャッシュメモリにキャッシュしてからデータディスクに格納する処理を行う。ここで、データをキャッシュメモリにキャッシュしている間は、データディ
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段は、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第１のデータディスクに対応付けられた第１のキャッシュメモリのプライマリデータ領域に格納するステップと、前記データを格納した後の当該キャッシュメモリのキュー長が予め定められた第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第１のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記キュー長が前記第１閾値より大きく且つ前記第１のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記いずれかの条件を満たし且つ前記第１のデータディスクの回転状態が前記通常回転状態であるときに当該第１のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第１のデータディスクのプライマリデータ領域に格納するステップと、前記第１のデータディスクのプライマリデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第１のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第２のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第１のデータデ
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
ィスクのバックアップデータ領域に格納するステップと、前記第１のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第１のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第３のキャッシュメモリのバックアップデータ領域に格納するステップと、前記データを格納した後の前記第３のキャッシュメモリのキュー長が予め定められた第３閾値より小さく予め定められた第４閾値以上のメモリ容量の状態であって、かつ、前記第１のデータディスクのバックアップとして対応付けられた第２のデータディスクの回転状態が通常回転状態であるという条件を満たすか否かを判別するステップと、前記データを格納した後の前記第３のキャッシュメモリのキュー長が、前記第３閾値より大きなメモリ容量の状態であるという条件を満たす場合、前記第２のデータディスクの回転状態が前記通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記キュー長が前記第３閾値より大きく且つ前記第２のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記いずれかの条件を満たし且つ前記第２のデータディスクの回転状態が前記通常回転状態であるときに当該第２のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第３のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第２のデータディスクのバックアップデータ領域に格納するステップと、前記第２のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第２のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第４のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第２のデータディスクのプライマリデータ領域に格納するステップと、前記第２のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とする。
［００２３］
かかる手順によれば、本発明の第２の観点に係るストレージ装置の制御方法は、本発明の第１の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、データディスクが通常回転状態のときに、そのデータのコピーをキャッシュディスクに格納する処理を実行するので、データディスクの不要な回転動作を防止することができる。これにより、読み
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
出し処理をキャッシュディスクによって安定的に行い、データディスクをより長く通常回転休止状態としておくことができる。
［００２４］
また、本発明の第３の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記第５のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記第６のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較するステップと、前記総キューサイズが等しくない場合、前記総キューサイズが大きい側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記総キューサイズが等しい場合、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第５のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第５のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第５のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第６のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第６のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、当該データが前記キャッシュディスクに無い場合、前記第５のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第６のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記第５のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズと、前記第６のキャッシュメモリにおけるメモリキャッシュデータの総キューサイズとを比較するステップと、前記総キューサイズが等しくない場合、前記総キューサイズが大きい側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記総キューサイズが等しい場合、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。
［００２７］
かかる手順によれば、本発明の第４の観点に係るストレージ装置の制御方法は、本発明の第３の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、読込要求が対象とするデータの格納候補を順
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
次検索する際に、データディスクよりもキャッシュディスクを優先して検索する処理を実行するので、キャッシュディスクにてヒットすることで、データディスクをより長く通常回転休止状態としておくことができる。
［００２８］
また、本発明に係るシステム管理プログラムは、ディスクの記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、記憶領域が１つのプライマリデータ領域と１つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、を備え、書込要求に応じて前記データディスクの１つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも１つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、通常は前記各データディスクをなるべく前記通常回転休止状態としておき、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、として機能させるためのシステム管理プログラムであって、前記データ配置制御手段が、書込要求に応じて前記データディスクの１つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データのバックアップデータを少なくとも１つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記データを格納した後の当該キャッシュメモリのキュー長が、予め定められた第１閾値より大きなメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば回転状態を前記通常回転状態に切り替えた後に当該データを移動させ、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第１閾値より小さく予め定められた第２閾値以上のメモリ容量の状態であることが検出された場合に、前記選択したデータディスクが前記通常回転状態であれば当該データを前記データディスクに移動させ、前記通常回転休止状態であれば当該データを移動することなく保持し、前記データを格納した後の当該キャッシュメモリのキュー長が、前記第２閾値以下のメモリ容量の状態であることが検出された場合に、当該データを移動することなく保持することを特徴とするプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
発明の効果
［００２９］
請求項１に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。また、請求項９に係るシステム管理プログラムをインストールされたストレージ装置のコンピュータは、同様の効果を奏することができる。
［００３０］
また、請求項１に係るストレージ装置によれば、データディスクに加えてキャッシュメモリを備えるので、書込処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。
［００３１］
請求項２または請求項３に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクの一方の通常回転休止状態を長時間確保することができると共に、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。
［００３２］
請求項４に係るストレージ装置によれば、データディスクに加えて読み出し専用のキャッシュディスクを備えているので、読み出し処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。
［００３３］
請求項５または請求項６に係るストレージ装置の制御方法によれば、書込要求時において、システム管理手段によって、プライマリデータ処理とバックアップデータ処理とを行うことで信頼性を確保しつつ、これら両処理においてデータディスクの通常回転状態中にプライマリ側データ領域およびバックアップ側データ領域をそれぞれ更新することができる。したがって、プラ
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
、３０ｂを備えているものとする。ここで、キャッシュメモリ３０ａは、プライマリデータ領域３１ａと、バックアップデータ領域３２ａとを備え、キャッシュメモリ３０ｂは、プライマリデータ領域３１ｂと、バックアップデータ領域３２ｂとを備えている。書込要求または読込要求が対象とするデータと、キャッシュメモリ３０とは予め対応付けられているものとする。外部からキャッシュメモリ３０へデータを書き込む制御は、図１に示すデータ配置制御手段１５が行う。
［００７２］
このデータ配置制御手段１５は、例えば、図９に示すように、外部から、ｗｒｉｔｅデータの書き込み要求があった場合に、このデータＰ１をキャッシュメモリ３０ａのプライマリデータ領域３１ａに格納する処理を行うと共に、データＢ１（＝データＰ１）をキャッシュメモリ３０ｂのバックアップデータ領域３２ｂに格納する処理を行う。つまり、データ配置制御手段１５は、キャッシュメモリ３０へのデータの書き込みに際して、隣接先行ログ書き込み（ｎＷＡＬ：Ｎｅｉｇｈｂｏｒｉｎｇ  Ｗｒｉｔｅ  Ａｈｅａｄ  Ｌｏｇ）の手法を利用する。なお、例えば、キャッシュメモリ３０ａに格納されているＰ１は、データディスク２０ａに格納されているＰ１のごく一部のデータや、中身が新しく書き換えられたデータを示している。
［００７３］
ここで、ｗｒｉｔｅデータの書き込み要求があったときに行う一連の書き込み処理のうち、プライマリ側のデータディスク２０ａにデータＰ１を格納する処理をｐｒｉｍａｒｙ処理と呼び、このバックアップデータとしてバックアップ側のデータディスク２０ｂにデータＢ１を格納する処理をｂａｃｋｕｐ処理と呼ぶ。
［００７４］
また、図２に示す例の場合には、データＰ１を格納するプライマリデータ領域３１ａを有するキャッシュメモリ３０ａをプライマリ側のキャッシュメモリと呼ぶ。また、データＰ１のバックアップデータであるデータＢ１を格納するバックアップデータ領域を有するキャッシュメモリ３０ｂをバックアップ側のキャッシュメモリと呼ぶ。同様に、図２において、データＰ２（＝データＢ２）に着目した場合には、プライマリ側のキャッシュメモリとはキャッシュメモリ３０ｂを示し、バックアップ側のキャッシュメモリとはキャッシュメモリ３
【国際調査報告】
2011102429.tif 000030
2011102429.tif 000031
2011102429.tif 000032
2011102429.tif 000033