図面 (/)

技術 ストレージ装置、その制御方法およびシステム管理プログラム

出願人 国立大学法人東京工業大学
発明者 横田治夫引田諭之
出願日 2011年2月17日 (9年9ヶ月経過) 出願番号 2012-500644
公開日 2013年6月17日 (7年5ヶ月経過) 公開番号 WO2011-102429
状態 特許登録済
技術分野 外部記憶装置との入出力
主要キーワード 回転停止期間 全電力消費量 定常電力 通常回転数 切り換え回数 バックアップ層 Read処理 スパイク電流
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2013年6月17日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化する。ストレージ装置(1)のシステム管理手段(10)は、ディスク回転状態検出手段(142)と、データディスク(20)を回転または停止させるディスク回転状態制御手段(143)と、データディスク(20)にアクセスしてデータを移動させるデータ配置制御手段(15)とを備え、データ配置制御手段(15)は、書込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、スピンアップさせてアクセスし、読込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、回転中の側に優先してアクセスし、読込時にプライマリ側およびバックアップ側のデータディスクが両方とも停止中の場合に、停止時間が長い側をスピンアップさせてアクセスする。

概要

背景

従来、ストレージ装置内の複数のデータディスクにおいて、原データとその原データのバックアップデータとを分散させて蓄積することで、データを多重化して、故障時において迅速に復旧させることのできる技術が知られている(例えば、特許文献1参照)。このようなストレージ装置において、データディスクには、原データを記憶するプライマリ領域と、原データのバックアップデータを記憶するバックアップ領域とからなる複数の論理記憶区分が設定されている。そして、ストレージ装置は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて、原データをあるデータディスク(プライマリ側ディスク)のプライマリデータ領域に記憶するとともに、その原データのバックアップデータを別のデータディスク(バックアップ側のディスク)のバックアップデータ領域に記憶する。これによって、この種のストレージ装置は、プライマリ側のディスクもバックアップ側のディスクも常時回転させることを前提に、プライマリ側またはバックアップ側のディスクが故障したときに、迅速に復旧することができる。

近年、例えばインターネット等、現在の情報化社会支えるために、膨大なデータを記憶するために数多くのデータディスクを備えた専用のストレージ装置が様々な用途で利用されている。このようなストレージ装置は、情報量の増加に対応して年々規模が大きくなり、また、その台数が増加している。各ストレージ装置において、保存すべき記録を書き込む(ライト)要求や、読み出しリード)要求も同様に増加している。また、ストレージ装置の電力消費量も同様に増加しており、地球温暖化対策一環として電力消費量の減少やストレージ装置の管理コストの減少が喫緊の課題として浮上している。

ストレージ装置を省電力化するためには、データを記憶している磁気ディスク装置(データディスク)の回転をなるべく止めておくようにすると最も大きな効果を発揮することができる。ただし、磁気ディスク装置の回転を止めた場合には、応答時間やスループットなどの性能の劣化が懸念される。そのため、省電力化しつつ性能を維持するという課題に対処するために、従来、様々な手法が提案されてきた。

従来の主な手法を列挙すると、例えば、複数のデータディスクの中でディスクに対するアクセスには偏りがあるという性質を利用し、頻繁にアクセスされるデータを一部のデータディスクに集約させる手法が知られている。また、データディスクが回転中であってライト処理リード処理をしていない状態を示すアイドル時には、このデータディスクの回転数を低く抑える手法が知られている。さらに、データを記憶しているメインのデータディスクとは別に、同じデータを記憶させたアクセス用のキャッシュディスクを用意し、そのキャッシュアルゴリズムを工夫することでデータディスクへのアクセスの頻度下げるという手法も知られている。

例えば、非特許文献1に記載の方法では、データアクセス局所性を利用して、アクセス頻度の高いデータを少数読み出し専用のキャッシュディスクに集め、他の大多数のデータディスクをできる限り回転させずに停止させる手法を提案している。

概要

プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化する。ストレージ装置(1)のシステム管理手段(10)は、ディスク回転状態検出手段(142)と、データディスク(20)を回転または停止させるディスク回転状態制御手段(143)と、データディスク(20)にアクセスしてデータを移動させるデータ配置制御手段(15)とを備え、データ配置制御手段(15)は、書込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、スピンアップさせてアクセスし、読込時にプライマリ側またはバックアップ側のデータディスクが停止中の場合に、回転中の側に優先してアクセスし、読込時にプライマリ側およびバックアップ側のデータディスクが両方とも停止中の場合に、停止時間が長い側をスピンアップさせてアクセスする。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台データディスクと、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、前記システム管理手段は、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段と、を備えることを特徴とするストレージ装置。

請求項2

前記データ配置制御手段は、書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する1つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことを特徴とする請求項1に記載のストレージ装置。

請求項3

請求項1または請求項2に記載のストレージ装置において、さらに、記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、前記データ配置制御手段は、書込要求に応じて前記データディスクの1つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させることを特徴とするストレージ装置。

請求項4

請求項1ないし請求項3のいずれか一項に記載のストレージ装置において、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、前記データ配置制御手段は、前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すことを特徴とするストレージ装置。

請求項5

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段は、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理は、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップは、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、を含み、前記バックアップデータ処理は、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップは、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、を含むことを特徴とするストレージ装置の制御方法。

請求項6

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段は、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理は、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップは、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、前記第1のデータディスクのプライマリデータデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、前記バックアップデータ処理は、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップは、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、前記第2のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、前記第2のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とするストレージ装置の制御方法。

請求項7

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段は、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。

請求項8

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段は、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、当該データが前記キャッシュディスクに無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とするストレージ装置の制御方法。

請求項9

ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、として機能させるためのシステム管理プログラム

技術分野

0001

本発明は、プライマリデータ領域とバックアップデータ領域とを有したデータディスク複数台備えて1つのデータをあるデータディスクのプライマリデータ領域と別のデータディスクのバックアップデータ領域にそれぞれ記憶するストレージ装置およびその制御に関する。

背景技術

0002

従来、ストレージ装置内の複数のデータディスクにおいて、原データとその原データのバックアップデータとを分散させて蓄積することで、データを多重化して、故障時において迅速に復旧させることのできる技術が知られている(例えば、特許文献1参照)。このようなストレージ装置において、データディスクには、原データを記憶するプライマリ領域と、原データのバックアップデータを記憶するバックアップ領域とからなる複数の論理記憶区分が設定されている。そして、ストレージ装置は、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを複数台備えて、原データをあるデータディスク(プライマリ側ディスク)のプライマリデータ領域に記憶するとともに、その原データのバックアップデータを別のデータディスク(バックアップ側のディスク)のバックアップデータ領域に記憶する。これによって、この種のストレージ装置は、プライマリ側のディスクもバックアップ側のディスクも常時回転させることを前提に、プライマリ側またはバックアップ側のディスクが故障したときに、迅速に復旧することができる。

0003

近年、例えばインターネット等、現在の情報化社会支えるために、膨大なデータを記憶するために数多くのデータディスクを備えた専用のストレージ装置が様々な用途で利用されている。このようなストレージ装置は、情報量の増加に対応して年々規模が大きくなり、また、その台数が増加している。各ストレージ装置において、保存すべき記録を書き込む(ライト)要求や、読み出しリード)要求も同様に増加している。また、ストレージ装置の電力消費量も同様に増加しており、地球温暖化対策一環として電力消費量の減少やストレージ装置の管理コストの減少が喫緊の課題として浮上している。

0004

ストレージ装置を省電力化するためには、データを記憶している磁気ディスク装置(データディスク)の回転をなるべく止めておくようにすると最も大きな効果を発揮することができる。ただし、磁気ディスク装置の回転を止めた場合には、応答時間やスループットなどの性能の劣化が懸念される。そのため、省電力化しつつ性能を維持するという課題に対処するために、従来、様々な手法が提案されてきた。

0005

従来の主な手法を列挙すると、例えば、複数のデータディスクの中でディスクに対するアクセスには偏りがあるという性質を利用し、頻繁にアクセスされるデータを一部のデータディスクに集約させる手法が知られている。また、データディスクが回転中であってライト処理リード処理をしていない状態を示すアイドル時には、このデータディスクの回転数を低く抑える手法が知られている。さらに、データを記憶しているメインのデータディスクとは別に、同じデータを記憶させたアクセス用のキャッシュディスクを用意し、そのキャッシュアルゴリズムを工夫することでデータディスクへのアクセスの頻度下げるという手法も知られている。

0006

例えば、非特許文献1に記載の方法では、データアクセス局所性を利用して、アクセス頻度の高いデータを少数読み出し専用のキャッシュディスクに集め、他の大多数のデータディスクをできる限り回転させずに停止させる手法を提案している。

0007

特開2004−334739号公報

先行技術

0008

Dennis Colarelli, Dirk Grunwald. Massive Arrays of Idle Disks For Storage Archives. Proc. 2002 Conf. High-Performance Networking and Computing,IEEE CS Press 2002

発明が解決しようとする課題

0009

しかしながら、例えば、非特許文献1に記載の方法では、データのキャッシュにのみ着目し、ストレージ信頼性は考慮していない。つまり、ストレージ装置内でデータを記憶しているメインのデータディスクが何らかの理由でクラッシュ等の故障を起こした場合にその複製がないので対応することができない。仮に信頼性を高めるためにバックアップ側のディスクを増設した場合には、ストレージ装置が大型になり、製造コストや電力消費量が増加してしまうことになる。このように従来の手法は、省電力化および性能の確保を志向することで省電力化を実現したとしても、ストレージ装置として重要であるデータの信頼性については考慮していないという問題がある。

0010

また、ストレージ装置内のデータディスクの台数を変更せずに、プライマリデータ領域とバックアップデータ領域とを有したデータディスクを備えたストレージ装置において、省電力化を図ることが考えられる。この場合、従来技術では、プライマリ側のディスクもバックアップ側のディスクも常時回転させていることを前提としていた。そのため、ストレージ装置を省電力化する技術とストレージ装置の信頼性を確保する技術とを単純に組み合わせることができなかった。

0011

そこで、本発明は、以上のような問題点に鑑みてなされたものであり、プライマリデータ領域とバックアップデータ領域とを有した複数のデータディスクを備えたストレージ装置において、その性能と信頼性を確保しつつ、省電力化することを課題としている。

課題を解決するための手段

0012

前記課題を解決するために、本発明に係るストレージ装置は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うシステム管理手段とを備えたストレージ装置において、前記システム管理手段が、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段と、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段と、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段とを備えることを特徴とする。

0013

かかる構成によれば、ストレージ装置は、信頼性を確保するための2つのデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。ここで、通常回転休止状態とは、回転が停止している状態だけを示すものではなく、通常回転数よりも低い回転数で回転する低速回転状態をも示している。また、かかる構成によれば、ストレージ装置は、プライマリ側のディスクとバックアップ側のディスクを常時回転させるのではなく、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。

0014

また、本発明に係るストレージ装置は、前記データ配置制御手段が、書込要求時において、書込対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクと、前記プライマリ側のデータディスクのバックアップとして対応付けられたバックアップデータ領域を有する1つまたは複数のバックアップ側のデータディスクとをそれぞれ選択し、プライマリ側またはバックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記書込要求が対象とするデータを前記データディスクに移動させる処理をディスク毎に連続して行い、読込要求時において、選択した前記プライマリ側または前記バックアップ側のデータディスクが前記通常回転休止状態であることが検出された場合に、前記通常回転状態の側のデータディスクに優先してアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行い、前記読込要求時において、選択した前記プライマリ側および前記バックアップ側のデータディスクが両方とも前記通常回転休止状態であることが検出された場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記ディスク回転状態制御手段によって前記通常回転状態にまでスピンアップさせてから当該データディスクにアクセスし、当該データディスクが前記通常回転状態であるときに前記読込要求が対象とするデータを前記データディスクから移動させる処理を行うことが好ましい。

0015

かかる構成によれば、ストレージ装置は、書込要求時に書き込み先のデータディスクが通常回転休止状態であったとしても、データ配置制御手段が、ディスク回転状態制御手段によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。また、ストレージ装置は、読込要求時において、読み出し対象のデータを格納した2つのデータディスクのうち一方が通常回転状態であれば、データ配置制御手段がそのデータディスクにアクセスし、両方のデータディスクが通常回転休止状態であれば、一方のデータディスクだけをスピンアップしてアクセスする。つまり、ストレージ装置は、信頼性を確保するための2つのデータディスクの一方の通常回転休止状態を長時間確保することができる。
また、両方のデータディスクが通常回転休止状態の場合にスピンアップする側のデータディスクを選択する基準を、通常回転休止状態の時間が長い側としたことで、信頼性を確保するための2つのデータディスクについての総計で、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、省電力化することができる。したがって、ストレージ装置は、その性能と信頼性を確保しつつ、省電力化することができる。
また、ストレージ装置は、読込要求時に、通常回転休止状態であったプライマリ側またはバックアップ側のデータディスクをスピンアップした後に、プライマリデータ領域またはバックアップデータ領域のうちの一方のデータ領域から読み出し処理を行う。そのため、このスピンアップしたデータディスクを予め定めた期間だけ通常回転状態に保持しておくことで、その期間内に、一方のデータ領域に対して別の読込要求や書込要求があった場合にデータディスクをスピンアップする必要がない。また、その期間内に他方のデータ領域に対する読込要求や書込要求があった場合にも、このデータディスクをスピンアップする必要がない。

0016

また、本発明に係るストレージ装置は、さらに、記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記キャッシュメモリにおける現在のキュー長を検出し、前記検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出するキャッシュメモリ容量検出手段とを備え、前記データ配置制御手段が、書込要求に応じて前記データディスクの1つに格納すべきデータを一時的に、当該データディスクに対応付けられた前記キャッシュメモリのプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記キャッシュメモリのバックアップデータ領域に格納し、前記キャッシュメモリのキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリに格納されているデータを当該データディスクに移動させるように構成することが好ましい。

0017

かかる構成によれば、ストレージ装置は、データディスクのデータをキャッシュするキャッシュメモリを備える構成としたので、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。例えば、プライマリ側とバックアップ側のキャッシュメモリの電源を保持しておけば、一方がクラッシュしてもデータを保持することができる。

0018

また、本発明に係るストレージ装置は、さらに、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクを備え、前記データ配置制御手段が、前記データディスクに格納されているデータをコピーして前記キャッシュディスクに格納し、読込要求時には、前記データディスクよりも前記キャッシュディスクを優先して、当該読込要求が対象とするデータを読み出すように構成することが好ましい。

0019

かかる構成によれば、ストレージ装置は、読み出し専用のキャッシュディスクを備えているので、各データディスクに格納されている頻繁にアクセスされるデータをキャッシュディスクに集約させておくことで、データディスクへのアクセスの頻度を下げることができる。つまり、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。

0020

また、前記課題を解決するために、本発明の第1の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、を含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、を含むことを特徴とする。

0021

かかる手順によれば、本発明の第1の観点に係るストレージ装置の制御方法は、書込要求時において、システム管理手段によって、プライマリデータ処理と、バックアップデータ処理と、を含んで実行するので、信頼性を高めることができる。また、システム管理手段は、プライマリデータ処理にて、データディスクのプライマリデータ領域に格納すべきデータを一時的にキャッシュメモリにキャッシュしてからデータディスクに格納する処理を行う。ここで、データをキャッシュメモリにキャッシュしている間は、データディスクを通常回転休止状態としておくことができる。また、データをキャッシュメモリからデータディスクに格納する処理を行っている間は、データディスクが通常回転状態である。そして、システム管理手段は、プライマリデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのバックアップデータ領域に対応付けられているデータの更新も行う。すなわち、システム管理手段は、データディスクのバックアップデータ領域に対応付けられているデータが格納されているキャッシュメモリのバックアップデータ領域に格納されているデータを、このデータディスクのバックアップデータ領域に格納する。ここでバックアップデータ領域に対応付けられているデータを更新する際には、このデータディスクが通常回転休止状態のときに更新する場合と比較すると、データディスクをスピンアップする必要がないため、電力消費を低減することができる。
また、かかる手順によれば、システム管理手段は、バックアップデータ処理にて、データディスクのプライマリデータ領域に格納されているデータに対するバックアップを一時的にキャッシュメモリにキャッシュしてから該当するデータディスクに格納する処理を行う。そして、システム管理手段は、バックアップデータ処理にて、このデータディスクが通常回転状態である期間に、続けて、この通常回転状態のデータディスクのプライマリデータ領域に対応付けられているデータの更新も行う。したがって、このバックアップデータ処理に際しても、データディスクの通常回転状態中に2つのデータ領域を続けて更新することで、プライマリデータ処理と同様に、電力消費を低減することができる。

0022

また、本発明の第2の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、書込要求時において、書込要求が対象とするデータに対応付けられたプライマリデータ領域を有するプライマリ側のデータディスクに対して当該データをプライマリデータとして書き込むプライマリデータ処理と、当該データに対応付けられたバックアップデータ領域を有するバックアップ側のデータディスクに対して、当該データをバックアップデータとして書き込むバックアップデータ処理と、を含んで実行し、前記プライマリデータ処理が、前記書込要求が対象とするデータを一時的に、前記プライマリ側のデータディスクである第1のデータディスクに対応付けられた第1のキャッシュメモリのプライマリデータ領域に格納するステップと、前記第1のデータディスクの回転状態が通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを判別するステップと、前記第1のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第1のデータディスクの回転状態が前記通常回転状態であるときに当該第1のデータディスクに対してデータの書込を行うプライマリ側の書込ステップとを含み、前記プライマリ側の書込ステップが、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第1のデータディスクのプライマリデータ領域に格納するステップと、前記第1のデータディスクのプライマリデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第1のデータディスクのバックアップデータ領域に対応付けられているデータが格納されている第2のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第1のデータディスクのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含み、前記バックアップデータ処理が、前記書込要求が対象とするデータを一時的に、前記第1のキャッシュメモリのプライマリデータ領域に格納されているデータに対するバックアップとして、第3のキャッシュメモリのバックアップデータ領域に格納するステップと、前記第1のデータディスクのバックアップとして対応付けられた第2のデータディスクの回転状態が通常回転状態と前記通常回転休止状態とのいずれであるのかを判別するステップと、前記第2のデータディスクの回転状態が前記通常回転休止状態である場合に回転状態を前記通常回転状態に切り替えるステップと、前記第2のデータディスクの回転状態が前記通常回転状態であるときに当該第2のデータディスクに対してデータの書込を行うバックアップ側の書込ステップとを含み、前記バックアップ側の書込ステップが、前記第3のキャッシュメモリのバックアップデータ領域に格納されているデータを、前記第2のデータディスクのバックアップデータ領域に格納するステップと、前記第2のデータディスクのバックアップデータ領域に格納されているデータのコピーを、前記キャッシュディスクに格納するステップと、当該第2のデータディスクのプライマリデータ領域に対応付けられているデータが格納されている第4のキャッシュメモリのプライマリデータ領域に格納されているデータを、前記第2のデータディスクのプライマリデータ領域に格納するステップと、前記第2のデータディスクのプライマリデータ領域に対応付けられているデータのコピーを、前記キャッシュディスクに格納するステップとを含むことを特徴とする。

0023

かかる手順によれば、本発明の第2の観点に係るストレージ装置の制御方法は、本発明の第1の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、データディスクが通常回転状態のときに、そのデータのコピーをキャッシュディスクに格納する処理を実行するので、データディスクの不要な回転動作を防止することができる。これにより、読み出し処理をキャッシュディスクによって安定的に行い、データディスクをより長く通常回転休止状態としておくことができる。

0024

また、本発明の第3の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスクおよびキャッシュメモリにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも、予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。

0025

かかる手順によれば、本発明の第3の観点に係るストレージ装置の制御方法は、読込要求時において、システム管理手段によって、読込要求が対象とするデータの格納候補を順次検索する。すなわち、システム管理手段は、当該データの格納候補として、キャッシュメモリにおけるプライマリデータ領域を最優先検索し、次に、バックアップとしてのキャッシュメモリのバックアップデータ領域を検索する。これにより、システム管理手段は、これまでの処理で読込対象のデータを読み出すことができない場合にはじめて、データディスクにアクセスするので、その間、データディスクを通常回転休止状態としておくことができる。また、システム管理手段がデータディスクにアクセスするときに、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。つまり、ストレージ装置は、通常は、プライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクを通常回転状態にまでスピンアップする運用ができるので、大幅な省電力化を実現することができる。

0026

また、本発明の第4の観点に係るストレージ装置の制御方法は、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクと、メモリが1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のキャッシュメモリと、前記データディスクに格納されたオリジナルのデータをコピーしたデータを格納する読み出し専用のディスクを示すキャッシュディスクと、前記データディスクの回転状態と、前記キャッシュメモリのメモリ容量の状態と、外部からの書込要求または読込要求とに応じて、前記データディスク、キャッシュメモリおよびキャッシュディスクにデータを配置して管理するシステム管理手段とを備えたストレージ装置の制御方法であって、前記システム管理手段が、読込要求時において、読込要求が対象とするデータが、当該データに対応付けられた第5のキャッシュメモリにおけるプライマリデータ領域に無いか否かを判別するステップと、当該データが前記第5のキャッシュメモリにおけるプライマリデータ領域には無い場合、前記第5のキャッシュメモリのプライマリデータ領域に格納されるデータに対するバックアップとして、第6のキャッシュメモリのバックアップデータ領域に、当該データが無いか否かを判別するステップと、当該データが前記第6のキャッシュメモリにおけるバックアップデータ領域には無い場合、当該データが前記キャッシュディスクに無いか否かを判別するステップと、当該データが前記キャッシュディスクに無い場合、前記第5のキャッシュメモリにおけるプライマリデータ領域に格納されるデータに対応するプライマリ側のデータディスクと、前記第6のキャッシュメモリにおけるバックアップデータ領域に格納されるデータに対応するバックアップ側のデータディスクとが両方とも予め定められた通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態であるか否かを判別するステップと、前記プライマリ側のデータディスクと、前記バックアップ側のデータディスクとが両方とも前記通常回転休止状態である場合に、前記通常回転休止状態の時間が長い側のデータディスクを前記通常回転数で回転している状態を示す通常回転状態にまでスピンアップして、当該データディスクから当該データを読み出すステップと、前記プライマリ側のデータディスクまたは前記バックアップ側のデータディスクが前記通常回転休止状態である場合に、前記通常回転状態の側から当該データを読み出すステップと、を含んで実行することを特徴とする。

0027

かかる手順によれば、本発明の第4の観点に係るストレージ装置の制御方法は、本発明の第3の観点に係るストレージ装置の制御方法と同様な効果を奏することができる。さらに、読込要求が対象とするデータの格納候補を順次検索する際に、データディスクよりもキャッシュディスクを優先して検索する処理を実行するので、キャッシュディスクにてヒットすることで、データディスクをより長く通常回転休止状態としておくことができる。

0028

また、本発明に係るシステム管理プログラムは、ディスクの記憶領域が1つのプライマリデータ領域と1つまたは複数のバックアップデータ領域とに論理的に分割された複数台のデータディスクを備え、書込要求に応じて前記データディスクの1つに格納すべきデータを当該データディスクの前記プライマリデータ領域に格納すると共に、当該データを少なくとも1つの別の前記データディスクのバックアップデータ領域に格納する制御を行うストレージ装置のコンピュータを、前記データディスクの通常回転状態と、前記通常回転数よりも低い予め定められた低速回転状態または停止状態を示す通常回転休止状態とのいずれであるのかを検出するディスク回転状態検出手段、前記データディスクの回転状態を前記通常回転状態または前記通常回転休止状態に切り替えるディスク回転状態制御手段、書込要求または読込要求に応じて、前記複数台のデータディスクの中から選択したデータディスクの回転状態が前記通常回転休止状態である場合に前記ディスク回転状態制御手段によって回転状態を前記通常回転状態に切り替えさせる制御を行うと共に、当該データディスクが前記通常回転状態であるときに、書込対象とするデータを前記選択したデータディスクに移動させる処理、または、読込対象とするデータを前記選択したデータディスクから移動させる処理を行うデータ配置制御手段、として機能させるためのプログラムである。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。

発明の効果

0029

請求項1に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクをなるべく通常回転休止状態としておき、書込要求や読込要求があるときに、通常回転状態に戻すことができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。また、請求項9に係るシステム管理プログラムをインストールされたストレージ装置のコンピュータは、同様の効果を奏することができる。

0030

請求項2に係るストレージ装置によれば、所定のデータに関するプライマリ側およびバックアップ側のデータディスクの一方の通常回転休止状態を長時間確保することができると共に、各データディスクのスピンアップの開始回数および通常回転休止状態への切り換え回数を少なく抑えることができる。したがって、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる

0031

請求項3に係るストレージ装置によれば、データディスクに加えてキャッシュメモリを備えるので、書込処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。また、キャッシュメモリとデータディスクの両方でプライマリデータとバックアップデータとを保持する構成としたので、信頼性をより高めることができる。

0032

請求項4に係るストレージ装置によれば、データディスクに加えて読み出し専用のキャッシュディスクを備えているので、読み出し処理を安定に行うことができ、データディスクへのアクセスの頻度を下げることができる。そのため、ストレージ装置は、多くのデータディスクをなるべく通常回転休止状態としておくことができるので、省電力化することができる。

0033

請求項5または請求項6に係るストレージ装置の制御方法によれば、書込要求時において、システム管理手段によって、プライマリデータ処理とバックアップデータ処理とを行うことで信頼性を確保しつつ、これら両処理においてデータディスクの通常回転状態中にプライマリ側データ領域およびバックアップ側データ領域をそれぞれ更新することができる。したがって、プライマリデータ処理またはバックアップデータ処理において、データディスクの通常回転状態中にいずれか一方のデータ領域だけを更新する場合に比べ電力消費を低減することができる。

0034

請求項7または請求項8に係るストレージ装置の制御方法によれば、読込要求時において、システム管理手段がデータディスクになるべくアクセスしない順序判別処理を実行し、データディスクにアクセスする場合であったとしても、プライマリ側またはバックアップ側のうち少なくとも一方のデータディスクが通常回転休止状態であれば、アクセスしない側のデータディスクを通常回転休止状態に保持し続けることができる。したがって、大幅な省電力化を実現することができる。

図面の簡単な説明

0035

本発明の実施形態に係るストレージ装置の構成を模式的に示すブロック図である。
図1のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位単数の場合を模式的に示す説明図である。
図2のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。
図3のPrimaryデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDPrimary書込処理をそれぞれ示している。
図3のBackupデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDBackup書込処理をそれぞれ示している。
図2のストレージ装置においてRead処理の流れを示すフローチャート(その1)である。
図2および図8のストレージ装置においてRead処理の流れを示すフローチャート(その2)である。
図1のストレージ装置においてキャッシュメモリがデータディスクのデータを記憶するキャッシュ単位が複数の場合を模式的に示す説明図である。
図8のストレージ装置においてネットワークから受信したデータをキャッシュメモリへ書き込む処理を模式的に示す説明図である。
図8のストレージ装置においてネットワークから受信したデータをキャッシュディスクに書き込むまでの処理を模式的に示す説明図であって、(a)はキャッシュメモリからデータディスクへの書込処理、(b)はデータディスクからキャッシュディスクへの書込処理をそれぞれ示している。
図8のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。
図11のDPrimary書込処理を示すフローチャートである。
図12のDbackup\primary書込処理を示すフローチャートである。
図8のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。
図14のDBackup書込処理を示すフローチャートである。
図15のDprimary\backup書込処理を示すフローチャートである。
図8のストレージ装置においてネットワークからリード要求があり、かつ、要求されたデータがキャッシュディスクにない場合の処理を模式的に示す説明図である。
図8のストレージ装置においてRead処理の流れを示すフローチャート(その1)である。
図1のストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが1つのプライマリデータに対して複数のバックアップデータを記憶する場合を模式的に示す説明図である。

0036

図面を参照して本発明のストレージ装置およびその制御方法を実施するための形態について詳細に説明する。以下では、説明の都合上、1.ストレージ装置の基本構成概要、2.データ書込時の安定化のための構成の概要、3.データ読込時の安定化のための構成の概要、4.キャッシュ単位が単数の場合のストレージ装置の動作、5.キャッシュ単位が複数の場合のストレージ装置の動作の各章について順次説明することとする。

0037

[1.ストレージ装置の基本構成の概要]
本発明の実施形態に係るストレージ装置1は、図1に示すように、システム管理手段10と、データディスク20とを主な構成要素として備え、また、書き込み処理を安定に行うためにキャッシュメモリ30を備え、さらに読み込み処理を安定にするためにキャッシュディスク40を備えている。ここでは、主な構成要素であるシステム管理手段10とデータディスク20との関係を説明する。

0038

システム管理手段10は、例えば、CPU(Central Processing Unit)等の演算装置と、メモリ、ハードディスク等の記憶装置と、外部との各種情報送受信を行うインタフェース装置とを備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。このシステム管理手段10は、ハードウェア装置ソフトウェアとが協働することによって、前記したハードウェア資源がプログラムによって制御されることにより実現され、図1に示すように、通信送受信手段11と、データ格納手段12と、データ配信手段13と、データ管理手段14と、データ配置制御手段15とを備えることとした。

0039

通信送受信手段11は、ネットワーク2を介して、図示しないクライアントコンピュータと、データの送受信を行う。例えば、通信送受信手段11は、TCP/IP(Transmission Control Protocol/Internet Protocol)の通信プロトコルによってデータの送受信を行う通信ボードである。

0040

また、通信送受信手段11には、このストレージ装置1内のデータディスク20、キャッシュメモリ30およびキャッシュディスク40との間で、データの入出力を行う入出力インタフェースを含む。なお、以下では、データディスク20、キャッシュメモリ30およびキャッシュディスク40を特に区別しない場合には、単に、記憶装置という。

0041

データ格納手段12は、通信送受信手段11を介して外部から受信したデータや、このストレージ装置1内の記憶装置から通信送受信手段11を介して入力したデータを、所定の記憶装置に記憶するものである。ここでは、データ格納手段12は、データ受信手段121と、データ書込手段122とを備えている。

0042

データ受信手段121は、通信送受信手段11を介してデータを受信するものである。このデータ受信手段121は、データ配置制御手段15から通知されるデータの送信元(例えば図示しないクライアントコンピュータ)から、通信送受信手段11を介してデータを受信する。このデータ受信手段121で受信されたデータは、データ書込手段122に出力される。

0043

データ書込手段122は、データ受信手段121で受信されたデータを、データ配置制御手段15から指示される記憶装置上の書き込みアドレスに書き込むものである。

0044

データ配信手段13は、通信送受信手段11を介して、記憶装置に記憶されているデータを、そのデータを要求した要求元(例えば図示しないクライアントコンピュータ)に、当該データを配信するものである。ここでは、データ配信手段13は、データ読出手段131と、データ送信手段132とを備えている。

0045

データ読出手段131は、データ配置制御手段15から指示されるデータを記憶装置から読み出してデータ送信手段132に出力する。なお、データ配置制御手段15からは、データを特定するアドレス等が、データ読出手段131に対して指示されるものとする。
データ送信手段132は、データ読出手段131で読み出されたデータを、通信送受信手段11を介して、データ配置制御手段15から通知される図示しないクライアントコンピュータに送信したり、同じく通知される他の記憶装置に送信したりするものである。

0046

データ管理手段14は、このストレージ装置1内の記憶装置に格納されているデータを管理するためのものである。ここでは、データ管理手段14は、キャッシュメモリ容量検出手段141と、ディスク回転状態検出手段142と、ディスク回転状態制御手段143とを備えることとした。これらキャッシュメモリ容量検出手段141、ディスク回転状態検出手段142、およびディスク回転状態制御手段143の詳細については、後記する。

0047

データ配置制御手段15は、データ格納手段12、データ配信手段13およびデータ管理手段14を制御し、ストレージ装置1内の各記憶装置に格納するデータを管理してその配置を決定するものである。データ配置制御手段15の詳細については、後記する。

0048

データディスク20は、例えば、一般的な磁気ディスク装置、光ディスク装置光磁気ディスク装置などから構成されている。データディスク20は、ディスクの記憶領域がプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。また、データディスク20のプライマリデータ領域およびバックアップデータ領域のことを、プライマリ層およびバックアップ層とも呼ぶ。図1に示す例では、データディスク20は、プライマリ層データとしてのプライマリデータ21と、バックアップ層データとしてのバックアップデータ22とを格納している。

0049

図1では、データディスク20を1台だけ例示したが、ストレージ装置1は、複数台のデータディスク20を備えている。詳細は後記するが、図2および図8に、ストレージ装置の要部として各記憶装置の組み合わせ例を示す。

0050

システム管理手段10は、外部からの書込要求に応じて、複数のデータディスク20の1つに格納すべきデータを当該データディスク20のプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別のデータディスク20のバックアップデータ領域に格納する制御を行うことを前提としている。例えば、ストレージ装置1が図2に示すように、データディスク20a、20bを備えているものとする。ここで、データディスク20aは、プライマリデータ領域21aと、バックアップデータ領域22aとを備え、データディスク20bは、プライマリデータ領域21bと、バックアップデータ領域22bとを備えている。書込要求または読込要求が対象とするデータと、データディスク20とは予め対応付けられているものとする。

0051

この場合、システム管理手段10は、書込時に、あるデータをデータディスク20aのプライマリデータ領域21aに格納する。この格納されているデータをプライマリデータまたはデータP1と呼ぶ。ここで、データP1に対応付けられたプライマリデータ領域を有するデータディスクをプライマリ側のデータディスクDprimaryと呼ぶ。

0052

また、システム管理手段10は、データP1を格納するときに、同じ内容のデータをデータディスク20bのバックアップデータ領域22bに格納する。この格納されているデータをバックアップデータまたはデータB1と呼ぶ。ここで、データB1に対応付けられたバックアップデータ領域を有するデータディスクをバックアップ側のデータディスクDbackupと呼ぶ。

0053

したがって、図2において、データP1(=データB1)に着目した場合には、プライマリ側のデータディスクDprimaryとはデータディスク20aのことであり、バックアップ側のデータディスクDbackupとはデータディスク20bである。

0054

一方、図2に示す例の場合、システム管理手段10は、別の書込時に、別のあるデータをデータディスク20bのプライマリデータ領域21bに格納する。この格納されているデータをプライマリデータまたはデータP2と呼ぶ。また、システム管理手段10は、データP2を格納するときに、同じ内容のデータをデータディスク20aのバックアップデータ領域22aに格納する。この格納されているデータをバックアップデータまたはデータB2と呼ぶ。したがって、図2において、データP2(=データB2)に着目した場合には、プライマリ側のデータディスクDprimaryとはデータディスク20bのことであり、バックアップ側のデータディスクDbackupとはデータディスク20aである。

0055

ストレージ装置1は、装置の性能と信頼性を確保しつつ、省電力化するために、システム管理手段10によって、通常は、プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupをそれぞれなるべく休止させた状態としておき、どうしても必要な場合にだけ、プライマリ側またはバックアップ側のデータディスクをスピンアップする制御を行う。

0056

システム管理手段10は、各データディスク20をそれぞれなるべく休止させた状態としておくために、図1に示すように、ディスク回転状態検出手段142と、ディスク回転状態制御手段143と、データ配置制御手段15とを備えている。

0057

ディスク回転状態検出手段142は、データ配置制御手段15の制御の下、データディスク20の回転状態が、通常回転状態と通常回転休止状態とのいずれであるのかを検出するものである。

0058

ここで、通常回転状態とは、データディスク20が予め定められた通常回転数で回転している状態を示す。通常回転数は、書き込み処理や読み出し処理のアクセスを行うときのディスク回転数であり、例えば、7200[rpm]、10000[rpm]、15000[rpm]等とすることができる。また、通常回転数は、例えば、アクセスのスピード消費電力騒音等様々な要因で適宜設計変更することができる。

0059

また、通常回転休止状態とは、通常回転数よりも低い予め定められた低速回転状態または停止状態を示す。以下では、簡単のため、通常回転休止状態を回転停止状態であるものとして説明する。

0060

ディスク回転状態制御手段143は、データ配置制御手段15の制御の下、データディスク20の回転状態を通常回転状態また停止状態(通常回転休止状態)のいずれかに切り替えるものである。

0061

データ配置制御手段15は、各データディスク20とディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理しており、また、ディスク回転状態検出手段142およびディスク回転状態制御手段143を制御するものである。

0062

データ配置制御手段15は、書込要求または読込要求に応じて、複数台のデータディスク20の中から、書込要求または読込要求が対象とするデータに対応付けられたプライマリ側のデータディスクDprimaryと、バックアップ側のデータディスクDbackupとを探索し、探索されたデータディスクDprimary、Dbackupにそれぞれアクセスして、書込要求または読込要求に応じてデータを移動させる処理を行う。

0063

データ配置制御手段15は、書込要求時において、プライマリ側のデータディスクDprimaryまたはバックアップ側のデータディスクDbackupが回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、ディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。

0064

また、データ配置制御手段15は、読込要求時において、プライマリ側のデータディスクDprimaryまたはバックアップ側のデータディスクDbackupが回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、通常回転状態の側のデータディスクに優先してアクセスする。

0065

さらに、データ配置制御手段15は、読込要求時において、プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupが両方とも回転停止状態であることがディスク回転状態検出手段142によって検出された場合には、回転停止状態の時間が長い側のデータディスクをディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスクにアクセスする。

0066

[2.データ書込時の安定化のための構成の概要]
図1に示すストレージ装置1は、書き込み処理を安定に行うために、データディスク20へ格納するデータをキャッシュするキャッシュメモリ30を備えている。ここでは、システム管理手段10と、データディスク20と、キャッシュメモリ30との関係を説明する。

0067

キャッシュメモリ30は、例えば、一般的な半導体メモリ、常時回転しているディスクやSSD(Solid State Drive)等から構成される。キャッシュメモリ30は、揮発性メモリでも不揮発性メモリでもよい。キャッシュメモリ30を揮発性メモリで構成する場合には、バックアップ電源を用いる。キャッシュメモリ30は、メモリがプライマリデータ領域とバックアップデータ領域とに論理的に分割されている。これにより、揮発性メモリを用いた場合でも信頼性を確保することができる。図1に示す例では、キャッシュメモリ30は、プライマリデータ31と、バックアップデータ32とを格納している。

0068

図1では、キャッシュメモリ30を1台だけ例示したが、ストレージ装置1は、複数台のキャッシュメモリ30を備えている(図2図8参照)。キャッシュメモリ30の台数は、適宜設計変更することができる。例えば、図2に示すように、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が単数の場合には、キャッシュメモリ30の台数は、データディスク20の台数と同じである。また、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が複数である場合には、キャッシュメモリ30の台数は、データディスク20の台数よりも少なくなる。例えば、図8に示すように、キャッシュメモリ30がデータディスク20のデータを記憶するキャッシュ単位が「2」である場合には、キャッシュメモリ30の台数は、データディスク20の台数の半分となる。なお、図8に示すストレージ装置の構成の詳細は後記する。

0069

データ配置制御手段15は、各データディスク20を管理すると共に、各キャッシュメモリ30とキャッシュメモリに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。

0070

データ配置制御手段15は、外部からの書込要求に応じて、複数のデータディスク20の1つに格納すべきデータを一時的に、当該データディスク20に対応付けられたキャッシュメモリ30のプライマリデータ領域に格納すると共に、当該データを少なくとも1つの別のキャッシュメモリ30のバックアップデータ領域に格納する。
このようにデータ配置制御手段15が、これらのキャッシュメモリ30にデータを書き込んだ時点で、データ配信手段13は応答を返す。これにより、アクセス要求に対して高速な応答が可能となり、さらに、ディスクアクセスの頻度を下げることができる。そのため、データディスク20の回転停止時間を確保し、回転開始回数を低く抑えることができる。

0071

例えば、ストレージ装置1が図2に示すように、キャッシュメモリ30a、30bを備えているものとする。ここで、キャッシュメモリ30aは、プライマリデータ領域31aと、バックアップデータ領域32aとを備え、キャッシュメモリ30bは、プライマリデータ領域31bと、バックアップデータ領域32bとを備えている。書込要求または読込要求が対象とするデータと、キャッシュメモリ30とは予め対応付けられているものとする。外部からキャッシュメモリ30へデータを書き込む制御は、図1に示すデータ配置制御手段15が行う。

0072

このデータ配置制御手段15は、例えば、図9に示すように、外部から、writeデータの書き込み要求があった場合に、このデータP1をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB1(=データP1)をキャッシュメモリ30bのバックアップデータ領域32bに格納する処理を行う。つまり、データ配置制御手段15は、キャッシュメモリ30へのデータの書き込みに際して、隣接先行ログ書き込み(nWAL:Neighboring Write Ahead Log)の手法を利用する。なお、例えば、キャッシュメモリ30aに格納されているP1は、データディスク20aに格納されているP1のごく一部のデータや、中身新しく書き換えられたデータを示している。

0073

ここで、writeデータの書き込み要求があったときに行う一連の書き込み処理のうち、プライマリ側のデータディスク20aにデータP1を格納する処理をprimary処理と呼び、このバックアップデータとしてバックアップ側のデータディスク20bにデータB1を格納する処理をbackup処理と呼ぶ。

0074

また、図2に示す例の場合には、データP1を格納するプライマリデータ領域31aを有するキャッシュメモリ30aをプライマリ側のキャッシュメモリと呼ぶ。また、データP1のバックアップデータであるデータB1を格納するバックアップデータ領域を有するキャッシュメモリ30bをバックアップ側のキャッシュメモリと呼ぶ。同様に、図2において、データP2(=データB2)に着目した場合には、プライマリ側のキャッシュメモリとはデータディスク20bを示し、バックアップ側のキャッシュメモリとはデータディスク20aを示す。

0075

また、図2に示す例の場合には、キャッシュメモリ30a,30bと、データディスク20a,20bとは予めそれぞれ次のように対応付けられているものとする。
キャッシュメモリ30aのプライマリデータ領域31aと、データディスク20aのプライマリデータ領域21aとが対応付けられている。
キャッシュメモリ30aのバックアップデータ領域32aと、データディスク20aのバックアップデータ領域22aとが対応付けられている。
キャッシュメモリ30bのプライマリデータ領域31bと、データディスク20bのプライマリデータ領域21bとが応付けられている。
キャッシュメモリ30bのバックアップデータ領域32bと、データディスク20bのバックアップデータ領域22bとが対応付けられている。

0076

キャッシュメモリ30からデータディスク20へデータを移動させる制御は、図1に示すキャッシュメモリ容量検出手段141およびデータ配置制御手段15が行う。
キャッシュメモリ容量検出手段141は、キャッシュメモリ30における現在のキュー長を検出するものである。
データ配置制御手段15は、検出されたキャッシュメモリ30の現在のキュー長に応じて、キャッシュメモリ30に格納されているデータを該当するデータディスク20に移動させる制御を行う。

0077

本実施形態では、キャッシュメモリ容量検出手段141は、検出したキュー長と、メモリ容量の状態を分類するための予め定められた閾値とを比較することにより現在のメモリ容量の状態を検出することとした。そして、データ配置制御手段15は、キャッシュメモリ30のキュー長が、データをディスクに移動させるための閾値の範囲内のメモリ容量の状態であることが検出された場合に、当該キャッシュメモリ30に格納されているデータを当該データディスク20に移動させる。なお、キャッシュメモリ30が例えばディスクやSSDである場合、メモリ容量とは、ディスクやSSDの容量を示す。

0078

本実施形態では、一例として、現在のキュー長Wと2つの閾値(最小許容キューサイズWth、最大許容キューサイズWmax)との大小関係を用いて、メモリ容量の状態を(a1)〜(a3)の条件に応じて3つの状態に区分した。
(a1)W<Wth
(a2)Wth<W<Wmax
(a3)W>Wmax

0079

現在のキュー長Wが前記(a1)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、データディスク20に書き込むべきデータがまだ充分に蓄積されていない状態を表しているため、データ配置制御手段15は、まだデータを書き込まないこととする。これにより、省電力化を図ることができる。

0080

現在のキュー長Wが前記(a2)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、データディスク20に書き込むべきデータがある程度蓄積されている状態を表しているため、データ配置制御手段15は、該当するデータディスク20が通常回転状態であれば、データを書き込むこととする。つまり、現在のキュー長Wが前記(a2)の条件を満たしていたとしても、該当するデータディスク20が回転停止状態であれば、データ配置制御手段15は、データを書き込まないこととする。これにより、省電力化を図ることができる。

0081

現在のキュー長Wが前記(a3)の条件を満たす場合には、メモリ容量の状態は、キャッシュメモリ30には、許容量を超えたデータが蓄積されている状態を表しているため、データ配置制御手段15は、該当するデータディスク20にデータを書き込むこととする。このときに、該当するデータディスク20が回転停止状態であれば、データ配置制御手段15は、そのデータディスク20をスピンアップしてデータを書き込む。

0082

データ配置制御手段15は、キャッシュメモリ30からデータディスク20へデータを書き込む際には、同一のデータディスク20に格納されるプライマリデータとバックアップデータとを同期させて書き込む。つまり、図2に示す例では、データ配置制御手段15は、例えば、キャッシュメモリ30aからデータディスク20aへデータP1を書き込む際には、続けてデータB2を書き込む。また、データ配置制御手段15は、キャッシュメモリ30aからデータディスク20aへデータB2を書き込む際には、続けてデータP1を書き込む。データ配置制御手段15は、キャッシュメモリ30bとデータディスク20bとの間の書き込み処理も同様に処理する。

0083

ストレージ装置1内では、書込要求のデータについてのプライマリ側のデータディスク20とバックアップ側のデータディスク20との回転状態は、一般に非同期なので、タイミングによっては、データディスク20aに格納されているデータP1の内容と、データディスク20bに格納されているデータB1の内容とが一致していない場合も生じる。同様に、データP2の内容とデータB2の内容とが一致していない場合も生じることがある。ただし、データ配置制御手段15は、各記憶装置の格納データが最新のものであるか否かを管理しており、かつ、プライマリ側のキャッシュメモリ30とバックアップ側のキャッシュメモリ30とを配置したので、各データディスク20に格納される同一データについてのプライマリ側の内容とバックアップ側の内容とに差が生じる期間があったとしても、内容を一致させることができる。

0084

データ配置制御手段15は、以上のようにキャッシュメモリ30のキュー長やデータディスク20の回転状態に応じて、当該キャッシュメモリ30に格納されているデータを当該データディスク20に移動させる処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。

0085

[3.データ読込時の安定化のための構成の概要]
図1に示すストレージ装置1は、読み込み処理を安定に行うために、読み出し専用のディスクを示すキャッシュディスク40を備えている。ここでは、システム管理手段10と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40との関係を説明する。

0086

キャッシュディスク40は、データディスク20に格納されたオリジナルのデータをコピーしたデータを格納するものであり、常時、通常回転状態である。キャッシュディスク40は、例えば、一般的な磁気ディスク装置、光ディスク装置、光磁気ディスク装置、SSD(Solid State Drive)などから構成されている。キャッシュディスク40は、データディスク20と同じものを用いてもよい。この場合には、キャッシュディスク40は、ディスクの記憶領域をプライマリデータ領域とバックアップデータ領域とに分割する必要はない。

0087

図1に示す例では、キャッシュディスク40は、記憶領域を特に分割することなく、プライマリデータ41と、バックアップデータ42とを格納している。この場合、プライマリデータ41は、例えば、プライマリ側のデータディスク20aが格納しているオリジナルのデータ(例えば、データP1)をコピーしたデータを示す。また、バックアップデータ42は、例えば、このデータディスク20aのバックアップデータ領域22aに格納しているデータ(例えば、データB2)をコピーしたデータを示す。

0088

図1では、キャッシュディスク40を1台だけ例示したが、キャッシュディスクの台数は複数でもよい。例えば、キャッシュディスク40およびデータディスク20がすべて同規模の記憶領域を有する場合には、キャッシュディスク40の台数は、その目的から、データディスク20の台数よりも少なくすることが好ましく、省電力の観点からは、データディスク20の台数の3割程度までであることが特に好ましい(図8参照)。

0089

キャッシュディスク40にデータを格納する制御は、図1に示すデータ配置制御手段15が行う。データ配置制御手段15は、各データディスク20および各キャッシュメモリ30を管理すると共に、各キャッシュディスク40とキャッシュディスクに格納するデータとを関連付けた情報等を図示しないデータベースで管理している。

0090

データ配置制御手段15は、例えば、図8の一部である図10(b)に示すように、データディスク20aのプライマリデータ領域21aに格納されているデータのコピーを、キャッシュディスク40に格納する。このとき、データディスク20aは通常回転状態である。したがって、本実施形態では、データ配置制御手段15は、キャッシュメモリ30に格納されているデータをデータディスク20に移動させる処理を実行した後で、続けて、データディスク20に格納されているデータをコピーしてキャッシュディスク40に格納することとする。これにより、必要のないときにはデータディスク20を回転停止状態にしておくことがでるので、省電力化を図ることができる。なお、データ配置制御手段15は、データをコピーしてキャッシュディスク40に格納する処理を、前記したprimary処理とbackup処理にてそれぞれ行う。その動作の詳細については後記する。

0091

また、ストレージ装置1において、キャッシュディスク40は常時、通常回転状態であるが、データディスク20は必要のないときには回転停止状態とするので、データ配置制御手段15は、読込要求時には、データディスク20よりもキャッシュディスク40を優先して、当該読込要求が対象とするデータを読み出す。

0092

また、本実施形態のように、ストレージ装置1がキャッシュメモリ30を備える構成とした場合には、データ配置制御手段15は、読込要求時には、キャッシュディスク40よりもキャッシュメモリ30を優先して、当該読込要求が対象とするデータを読み出す。そして、この場合、データ配置制御手段15は、読み出し対象のデータを、まず、プライマリ側のキャッシュメモリを優先して探索し、次いで、バックアップ側のキャッシュメモリを探索する。

0093

また、データ配置制御手段15は、読込要求時に、キャッシュディスク40に格納されていない場合やキャッシュヒットミス等が生じた場合にはじめて、オリジナルデータが格納されているデータディスク20からキャッシュディスク40に当該データを書き込む。そして、このときキャッシュディスク40に書き込んだデータを応答として返す。このようにデータディスク20からキャッシュディスク40に当該データを書き込む際には、データ配置制御手段15は、プライマリ側のデータディスク20と、バックアップ側のデータディスク20のいずれから読み出すかについて予め定めた次の規則(b1)〜(b3)にしたがってデータを読み出す。これらの規則は、キャッシュディスク40への書き込み時に、データディスク20の無用回転開始をできるだけ避けて省電力化を図るための規則である。

0094

(b1)プライマリ側のキャッシュメモリに対応したプライマリ側のデータディスクDprimaryと、バックアップ側のキャッシュメモリに対応したバックアップ側のデータディスクDbackupとの一方が回転停止状態である場合に、通常回転状態の側から当該データを読み出す。

0095

(b2)プライマリ側のデータディスクDprimaryおよびバックアップ側のデータディスクDbackupが両方とも回転停止状態である場合には、対応するキャッシュメモリ30の中でキャッシュしているすべてのデータ(メモリキャッシュデータ)の総キューサイズが大きい側のキャッシュメモリ30に対応したデータディスク20を選択する。

0096

この場合には、データ配置制御手段15は、選択したデータディスク20をディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスク20にアクセスしてデータを読み出す。ここで、データ配置制御手段15は、総キューサイズが大きい側を選択することとしたので、キャッシュメモリ30のメモリ容量が許容範囲を超える前に、データディスク20に格納されているデータを更新し易くなる。そのため、プライマリデータとバックアップデータとが不一致となるような期間を短縮する効果がある。

0097

(b3)プライマリ側のデータディスクDprimaryと、バックアップ側のデータディスクDbackupとが両方とも回転停止状態、かつ、メモリキャッシュデータの総キューサイズが等しい場合には、回転停止状態の時間が長い側のデータディスク20を選択する。この場合も、データ配置制御手段15は、選択したデータディスク20をディスク回転状態制御手段143によって通常回転状態にまでスピンアップさせてから当該データディスク20にアクセスしてデータを読み出す。なお、ストレージ装置にキャッシュメモリ30を備えていない場合には、回転停止状態の時間の長さだけで判別する。

0098

[4.キャッシュ単位が単数の場合のストレージ装置の動作]
ここでは、ストレージ装置1が、一例として図2に示すように、キャッシュ単位を単数とした場合の動作について説明する。なお、図2では、ストレージ装置1のデータディスク20およびキャッシュメモリ30の台数は2台であるが、複数であるものとして一般化して説明する。以下では、4−1.Write処理の概要、4−2.Primaryデータ処理、4−3.Backupデータ処理、4−4.Read処理の各節に分けて順次説明する。

0099

[4−1.Write処理の概要]
図3は、図2のストレージ装置においてWrite処理の全体の流れを示すフローチャートである。Write処理は、システム管理手段10が行う記憶装置への書込処理であって、Primaryデータ処理(ステップS100)と、Backupデータ処理(ステップS200)とを含む。

0100

[4−2.Primaryデータ処理]
まず、ステップS100のPrimaryデータ処理について図4を参照(適宜図1および図2参照)して説明する。図4は、図3のPrimaryデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDPrimary書込処理をそれぞれ示している。

0101

ここで、DPrimaryとは、着目しているデータについてのプライマリ側データが格納されているディスクを示している。例えば、図2に示すようにデータを配列し、データP1に着目した場合には、データディスク20aがDPrimaryとなる。また、図2に示すようにデータを配列し、データP2に着目した場合には、データディスク20bがDPrimaryとなる。

0102

Primaryデータ処理(ステップS100)では、図4(a)に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、i番目のキャッシュメモリにおける現在のプライマリ層データキューPiWに、外部から受信した書込データを加えたものを、新たなプライマリ層データキューPiWとする(ステップS101)。ここで、現在のプライマリ層データキューPiWの初期値は例えば0である。また、図2に示すように、i=1の場合、キャッシュメモリ30aを指し、i=2の場合、キャッシュメモリ30bを指す。

0103

次に、キャッシュメモリ容量検出手段141は、この新たなプライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmaxよりも小さいか否かを判別する(ステップS102)。プライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmaxよりも小さい場合(ステップS102:Yes)、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データに対応するデータディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長がプライマリ層データキューにおけるキューサイズの閾値PWthよりも大きいという条件を満たすか否かを判別する(ステップS103)。

0104

ステップS103において、データディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たす場合(ステップS103:Yes)、システム管理手段10は、ステップS110のDprimary書込処理に進む。なお、ステップS110のDprimary書込処理の詳細については後記する。このDprimary書込処理が終了すると、システム管理手段10は、ステップS101に戻る。一方、データディスクDprimaryが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たさない場合(ステップS103:No)、システム管理手段10は、ステップS101に戻る。

0105

また、ステップS102において、プライマリ層データキューPiWのキュー長が、プライマリ層データキューにおける最大許容キューサイズPWmax以上である場合(ステップS102:No)、ディスク回転状態検出手段142は、i番目のキャッシュメモリのプライマリ層データに対応するデータディスクDprimaryが回転中であるか否かを判別する(ステップS104)。

0106

ステップS104において、データディスクDprimaryが回転中ではない場合(ステップS104:No)、ディスク回転状態制御手段143は、そのデータディスクDprimaryをスピンアップする(ステップS105)。ステップS105に続いて、システム管理手段10は、ステップS110に進む。また、ステップS104において、データディスクDprimaryが回転中である場合(ステップS104:Yes)、システム管理手段10は、ステップS105をスキップしてステップS110に進む。

0107

<ステップS110のDprimary書込処理>
ここで、ステップS110のDprimary書込処理を説明する。図4(b)に示すように、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データキューPiWを、対応するデータディスクDprimary(プライマリ層)に書き込む(ステップS111)。図2において、例えば、i=1の場合、データ配置制御手段15は、キャッシュメモリ30aのプライマリデータ領域31aのデータP1を、データディスク20aのプライマリデータ領域21a(プライマリ層)に書き込む。

0108

次に、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データキューPiWを空にする(ステップS112)。そして、データ配置制御手段15は、i番目のキャッシュメモリから対応するデータディスクDprimary(プライマリ層)に書き込まれたPiWを、キャッシュディスクDcacheへ書き込む(ステップS113)。ここで、キャッシュディスクDcacheは、図1に示すキャッシュディスク40に相当する。なお、図1には、1つのキャッシュディスク40を示したが、キャッシュディスクの台数に限定は無く、キャッシュディスクが複数ある場合には、キャッシュディスクDcacheはそのうちのいずれかを示すものである。

0109

続いて、データ配置制御手段15は、このデータディスクDprimaryのバックアップ層データに対応するメモリキャッシュデータBuW(キャッシュメモリのバックアップ層データキュー)を、データディスクDprimary(バックアップ層)に書き込む(ステップS114)。図2において、i=1の場合、データ配置制御手段15は、キャッシュメモリ30aのバックアップデータ領域32aのデータB2を、データディスク20aのバックアップデータ領域22a(バックアップ層)に書き込む。

0110

なお、u(unknown)は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクDprimaryのプライマリ層に対応したバックアップ層のデータを一般化した識別番号を示す。したがって、例えば、キャッシュメモリとデータディスクとの組が3つあるならば、i=1の場合にはu=2またはu=3もあり得る。図2の例では、i=1の場合にはu=1、i=2の場合にはu=2となる。

0111

続いて、データ配置制御手段15は、データディスクDprimary(バックアップ層)に書き込まれたキャッシュメモリのバックアップ層データキューBuWを空にする(ステップS115)。そして、データ配置制御手段15は、データディスクDprimary(バックアップ層)に書き込まれたBuWを、キャッシュディスクDcacheへ書き込む(ステップS116)。

0112

[4−3.Backupデータ処理]
次に、ステップS200のBackupデータ処理について図5を参照(適宜図1および図2参照)して説明する。図5は、図3のBackupデータ処理を示すフローチャートであって、(a)は処理の全体の流れ、(b)はDBackup書込処理をそれぞれ示している。

0113

ここで、DBackupとは、着目しているデータについてのバックアップ側データが格納されているディスクを示している。例えば、図2に示すようにデータを配列し、データB1に着目した場合には、データディスク20bがDBackupとなる。また、図2に示すようにデータを配列し、データB2に着目した場合には、データディスク20aがDBackupとなる。

0114

Backupデータ処理(ステップS200)は、図5(a)に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、Primaryデータ処理で対象としたi番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、k番目のキャッシュメモリに格納されているバックアップ層データキューBkWに、外部から受信した書込データを加えたものを、新たなバックアップ層データキューBkWとする(ステップS201)。ここで、現在のバックアップ層データキューBkWの初期値は例えば0である。また、図2に示すように、i=1、k=2の場合、キャッシュメモリ30bを指し、i=2、k=1の場合、キャッシュメモリ30aを指す。

0115

次に、キャッシュメモリ容量検出手段141は、このバックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmaxよりも小さいか否かを判別する(ステップS202)。バックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmaxよりも小さい場合(ステップS202:Yes)、データ配置制御手段15は、i番目のキャッシュメモリのプライマリ層データPiWのバックアップ層データBkWに対応するデータディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長がバックアップ層データキューにおけるキューサイズの閾値BWthよりも大きいという条件を満たすか否かを判別する(ステップS203)。

0116

ステップS203において、データディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たす場合(ステップS203:Yes)、システム管理手段10は、ステップS210のDbackup書込処理に進む。なお、Dbackup書込処理の詳細については後記する。このDbackup書込処理が終了すると、システム管理手段10は、ステップS201に戻る。一方、データディスクDbackupが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たさない場合(ステップS203:No)、システム管理手段10は、ステップS201に戻る。

0117

また、ステップS202において、バックアップ層データキューBkWのキュー長が、バックアップ層データキューにおける最大許容キューサイズBWmax以上である場合(ステップS202:No)、ディスク回転状態検出手段142は、バックアップ層データBkWに対応するデータディスクDbackupが回転中であるか否かを判別する(ステップS204)。

0118

ステップS204において、データディスクDbackupが回転中ではない場合(ステップS204:No)、ディスク回転状態制御手段143は、そのデータディスクDbackupをスピンアップする(ステップS205)。ステップS205に続いて、システム管理手段10は、ステップS210のDbackup書込処理に進む。また、ステップS204において、データディスクDbackupが回転中である場合(ステップS204:Yes)、システム管理手段10は、ステップS205をスキップしてステップS210に進む。

0119

<ステップS210のDbackup書込処理>
ここで、ステップS210のDbackup書込処理を説明する。図5(b)に示すように、データ配置制御手段15は、k番目のキャッシュメモリに格納されているバックアップ層データキューBkWを、対応するデータディスクDbackup(バックアップ層)に書き込む(ステップS211)。図2において、i=1、k=2の場合、データ配置制御手段15は、キャッシュメモリ30bのバックアップデータ領域32bのデータB1を、データディスク20bのバックアップデータ領域22b(バックアップ層)に書き込む。

0120

次に、データ配置制御手段15は、k番目のキャッシュメモリのバックアップ層データキューBkWを空にする(ステップS212)。そして、データ配置制御手段15は、k番目のキャッシュメモリから対応するデータディスクDbackup(バックアップ層)に書き込まれたBkWを、キャッシュディスクDcacheへ書き込む(ステップS213)。

0121

続いて、データ配置制御手段15は、このデータディスクDbackupのプライマリ層データに対応するメモリキャッシュデータPuW(キャッシュメモリのプライマリ層データキュー)を、データディスクDbackup(プライマリ層)に書き込む(ステップS214)。図2において、i=1、k=2の場合、データ配置制御手段15は、キャッシュメモリ30bのプライマリデータ領域31bのデータP2を、データディスク20bのプライマリデータ領域21b(プライマリ層)に書き込む。

0122

なお、u(unknown)は、キャッシュメモリとデータディスクとの組が複数ある場合に、データディスクDbackupのバックアップ層に対応したプライマリ層のデータを一般化した識別番号を示す。図2に示す例では、i=1、k=2の場合にはu=2となり、i=2、k=1の場合にはu=1となる。

0123

続いて、データ配置制御手段15は、データディスクDbackup(プライマリ層)に書き込まれたキャッシュメモリのプライマリ層データキューPuWを空にする(ステップS215)。そして、データ配置制御手段15は、データディスクDbackup(プライマリ層)に書き込まれたPuWを、キャッシュディスクDcacheへ書き込む(ステップS216)。

0124

[4−4.Read処理]
次に、システム管理手段10が記憶装置からデータを読み出す処理(Read処理)について図6および図7を参照(適宜図1および図2参照)して説明する。
図6に示すように、システム管理手段10のデータ配置制御手段15は、i番目のキャッシュメモリにおけるプライマリ層データPiWに、読み出し対象のデータRiが無いか否かを判別する(ステップS301)。図2において、例えば、i=1の場合、データ配置制御手段15は、データRiが、キャッシュメモリ30aのプライマリデータ領域31aに無いか否かを判別する。

0125

プライマリ層データPiWに、読み出し対象のデータRiが無い場合(ステップS301:Yes)、データ配置制御手段15は、i番目のキャッシュメモリにおけるプライマリ層データに対するバックアップ層として、k番目のキャッシュメモリに格納されているバックアップ層データBkWに、読み出し対象のデータRiが無いか否かを判別する(ステップS302)。図2において、例えば、i=1の場合、k=2なので、データ配置制御手段15は、データRiが、キャッシュメモリ30bのバックアップデータ領域32bに無いか否かを判別する。

0126

バックアップ層データBkWに、読み出し対象のデータRiが無い場合(ステップS302:Yes)、データ配置制御手段15は、キャッシュディスクDcacheに、読み出し対象のデータRiが無いか否かを判別する(ステップS303)。キャッシュディスクDcacheに、読み出し対象のデータRiが無い場合(ステップS303:Yes)、データ配置制御手段15は、ステップS311の判別処理に進む。

0127

一方、プライマリ層データPiWに、読み出し対象のデータRiがある場合(ステップS301:No)、または、バックアップ層データBkWに、読み出し対象のデータRiがある場合(ステップS302:No)、または、キャッシュディスクDcacheに、読み出し対象のデータRiがある場合(ステップS303:No)、データ配置制御手段15は、該当する読み出し対象のデータRiを読み出し(ステップS310)、処理を終了する。

0128

<ステップS311の判別処理>
ここで、ステップS311の判別処理を説明する。図6に示すように、ステップS311にて、データ配置制御手段15は、プライマリ層のメモリキャッシュデータに対応するデータディスクDprimaryと、バックアップ層のメモリキャッシュデータに対応するデータディスクDbackupとが両方とも停止しているか否かを判別する。図2に示すようにデータを配列し、データP1,B1に着目した場合には、例えば、i=1、k=2の場合、データディスクDprimaryはデータディスク20aを指し、データディスクDbackupはデータディスク20bを指す。

0129

ステップS311において、データディスクDprimaryとデータディスクDbackupとが両方とも停止しているわけではない場合(ステップS311:No)、データ配置制御手段15は、プライマリ側のデータディスクDprimaryが回転中であるか否かを判別する(ステップS312)。

0130

ステップS312において、プライマリ側のデータディスクDprimaryが回転中の場合(ステップS312:Yes)、データ配置制御手段15は、データディスクDprimaryから読み出し対象のデータRiを読み出す(ステップS313)。そして、データ配置制御手段15は、データディスクDprimaryから読み出したデータRiをキャッシュディスクDcacheへ書き込む(ステップS314)。これにより、データ配信手段13のデータ読出手段131がキャッシュディスクDcacheからデータRiを読み出すことで、リード要求に対する応答データを出力することができる。

0131

続いて、データディスクDprimaryが回転中なので、データ配置制御手段15は、前記したステップS110のDprimary書込処理と同様の処理を行う。すなわち、データ配置制御手段15は、前記したステップS111〜S116の処理を行う。これにより、システム管理手段10は、プライマリ側のデータディスクDprimaryが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段143は、このデータディスクDprimaryの回転を停止してもよい。

0132

ステップS312において、プライマリ側のデータディスクDprimaryが回転中でない場合(ステップS312:No)、バックアップ側のデータディスクDbackupが回転中なので、データ配置制御手段15は、この回転しているデータディスクDbackupから読み出し対象のデータRiを読み出す(ステップS315)。そして、データ配置制御手段15は、データディスクDbackupから読み出したデータRiをキャッシュディスクDcacheへ書き込む(ステップS316)。これにより、データ読出手段131がキャッシュディスクDcacheからデータRiを読み出すことで、リード要求に対する応答データを出力することができる。

0133

続いて、このデータディスクDbackupが回転中なので、データ配置制御手段15は、前記したステップS210のDbackup書込処理と同様の処理を行う。すなわち、データ配置制御手段15は、前記したステップS211〜S216の処理を行う。これにより、システム管理手段10は、バックアップ側のデータディスクDbackupが回転中の場合のリード処理を終了する。なお、続いて、ディスク回転状態制御手段143は、データディスクDbackupの回転を停止してもよい。

0134

一方、ステップS311において、データディスクDprimaryとデータディスクDbackupとが両方とも停止している場合(ステップS311:Yes)、システム管理手段10は、ステップS321の判別処理に進む。

0135

<ステップS321の判別処理>
ここで、ステップS321の判別処理を説明する。図7に示すように、ステップS321にて、データ配置制御手段15は、データディスクDprimary(プライマリ層)側を示すi番目のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、データディスクDbackup(バックアップ層)側を示すk番目のメモリキャッシュデータの総キューサイズ(PkW+BkW)よりも大きいか否かを判別する(ステップS321)。

0136

図2に示すようにデータを配列し、データP1,B1に着目した場合には、例えば、i=1、k=2のとき、データディスクDprimary側のキャッシュメモリは、キャッシュメモリ30aを指し、データディスクDbackup側のキャッシュメモリは、キャッシュメモリ30bを指す。したがって、この場合、総キューサイズ(PiW+BiW)は、プライマリデータ領域31aのメモリ容量と、バックアップデータ領域32aのメモリ容量との和を示す。
また、この場合、総キューサイズ(PkW+BkW)は、プライマリデータ領域31bのメモリ容量と、バックアップデータ領域32bのメモリ容量との和を示す。

0137

ステップS321において、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)よりも大きい場合(ステップS321:Yes)、ディスク回転状態制御手段143は、プライマリ層側のデータディスクDprimaryをスピンアップする(ステップS322)。図2において、例えば、i=1、k=2の場合、ディスク回転状態制御手段143は、データディスク20aの方をスピンアップする。続いて、データ配置制御手段15が行うステップS323,S324,S110の各処理は、前記したステップS313,S314,S110の各処理と同様なので説明を省略する。

0138

一方、ステップS321において、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)が、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)以下である場合(ステップS321:No)、データ配置制御手段15は、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)が、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)よりも大きいか否かを判別する(ステップS325)。
ステップS325において、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)が、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)よりも大きい場合(ステップS325:Yes)、ディスク回転状態制御手段143は、バックアップ層側のデータディスクDbackupをスピンアップする(ステップS332)。図2において、例えば、i=1、k=2の場合、ディスク回転状態制御手段143は、データディスク20bの方をスピンアップする。続いて、データ配置制御手段15が行うステップS333,S334,S210の各処理は、前記したステップS315,S316,S210の各処理と同様なので説明を省略する。

0139

ステップS325において、バックアップ層側のメモリキャッシュデータの総キューサイズ(PkW+BkW)と、プライマリ層側のメモリキャッシュデータの総キューサイズ(PiW+BiW)とが等しい場合(ステップS325:No)、データ配置制御手段15は、停止しているデータディスクDprimaryとデータディスクDbackupのうち、回転停止期間の長い方のデータディスク(DprimaryまたはDbackup)を選択し、ディスク回転状態制御手段143は、この選択されたデータディスクをスピンアップする(ステップS326)。

0140

続いて、データ配置制御手段15が行うステップS327,S328の各処理は、前記したステップS313,S314の各処理、または、前記したステップS315,S316の各処理と同様なので説明を省略する。そして、データ配置制御手段15は、前記したステップS325の判別結果により選択したデータディスクがプライマリ側のデータディスクである場合(ステップS329:Dprimary)、前記したステップS110の処理を実行し、一方、選択したデータディスクがバックアップ側のデータディスクである場合(ステップS329:Dbackup)、前記したステップS210の処理を実行する。

0141

[5.キャッシュ単位が複数の場合のストレージ装置の動作]
ここでは、ストレージ装置1が、一例として図8に示すように、キャッシュ単位を単数とした場合の動作について説明する。以下では、5−1.ストレージ装置の構成例、5−2.Write処理のPrimaryデータ処理、5−3.Write処理のBackupデータ処理、5−4.Read処理の各節に分けて順次説明する。

0142

[5−1.ストレージ装置の構成例]
図8は、キャッシュ単位を複数としたストレージ装置の要部として各記憶装置の組み合わせ例を示している。キャッシュ単位を複数とするとは、各キャッシュメモリ30が、プライマリ層側もバックアップ層側も、複数ノードのデータディスク20のデータを記憶していることを意味する。

0143

図8に示すストレージ装置1は、データディスク20aと、データディスク20bと、データディスク20cと、データディスク20dと、データディスク20eと、データディスク20fとを備えている。これらデータディスク20a〜20fは、台数が6台であって、データ種類が6種類である点を除いて、図2に示したデータディスク20a,20bと同様な構成なので、同様の符号を付して説明を省略する。

0144

なお、プライマリデータP1〜P6は、データディスク20a〜20fのプライマリデータ領域21a〜21fにそれぞれ対応付けられている。一方、バックアップデータB1〜B6は、それぞれ1つ隣のデータディスク20b、20c,20d,20e,20f,20aのバックアップデータ領域22b、22c,22d,22e,22f,22aにそれぞれ対応付けられている。

0145

また、図8に示すストレージ装置1は、キャッシュメモリ30aと、キャッシュメモリ30bと、キャッシュメモリ30cとを備えている。これらキャッシュメモリ30a〜30cは、台数が3台であって、データ種類が6種類である点を除いて、図2に示したキャッシュメモリ30a,30bと同様な構成なので、同様の符号を付して説明を適宜省略する。

0146

書込要求または読込要求が対象とするデータと、キャッシュメモリ30a〜30cとは予め対応付けられているものとする。外部から各キャッシュメモリ30へデータを書き込む制御は、図1に示すデータ配置制御手段15が行う。

0147

このデータ配置制御手段15は、例えば、図9に示すように、外部から、writeデータの書き込み要求があった場合に、このデータP1をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB1(=データP1)をキャッシュメモリ30bのバックアップデータ領域32bに格納する処理を行う。この処理と同様に、外部から、データP2の書き込み要求があった場合に、このデータP2をキャッシュメモリ30aのプライマリデータ領域31aに格納する処理を行うと共に、データB2(=データP2)をキャッシュメモリ30cのバックアップデータ領域32cに格納する処理を行う。

0148

ここで、例えば、図8に示すキャッシュメモリ30aのプライマリデータ領域31aに着目すると、異なるプライマリデータとして、データP1とデータP2とが格納されている。このうち、データP1は、データディスク20aのプライマリデータ領域21aに格納すべきデータであり、一方、データP2は、データディスク20bのプライマリデータ領域21bに格納すべきデータである。このようにキャッシュメモリ30aは、プライマリデータ領域31aに、2つのノードのデータディスク20a,20bのメモリキャッシュデータを格納している。

0149

同様に、キャッシュメモリ30aのバックアップデータ領域32aに着目すると、異なるバックアップデータとして、データB4とデータB5とが格納されている。このうち、データB4は、データディスク20eのバックアップデータ領域22eに格納すべきデータであり、一方、データB5は、データディスク20fのバックアップデータ領域22fに格納すべきデータである。このようにキャッシュメモリ30aは、バックアップデータ領域32aに、2つのノードのデータディスク20e,20fのメモリキャッシュデータを格納している。言い換えると、キャッシュメモリ30aのバックアップデータ領域32aは、キャッシュ単位を2としている。

0150

要するに、キャッシュメモリ30aは、プライマリ層側もバックアップ層側も、2つのノードのデータディスク20のデータを記憶している。同様に、キャッシュメモリ30b,30cは、プライマリ層側もバックアップ層側も、2つのノードのデータディスク20のデータを記憶している。換言すると、図8に示すストレージ装置は、キャッシュ単位を2としている。

0151

図8に示す例では、キャッシュ単位数(Number of Cash Unit、以下Ncuと呼ぶ)を複数とする場合に、その数は3以上であってもよい。また、図8では、ストレージ装置1のデータディスク20の台数は6台であり、キャッシュメモリ30の台数は3台であるが、以下では、それぞれが複数であるものとして一般化して説明する。この一般化した場合と、例えば図8に示す記憶装置との対応関係は、次の通りである。

0152

<プライマリ側の関係>
プライマリ側の関係は、Write処理のPrimaryデータ処理の中で適用される。
プライマリ側の関係において、キャッシュ単位i=1は、キャッシュメモリ30aのプライマリデータ領域31aに格納されたデータP1とデータP2とから成る。
また、キャッシュ単位i=2は、キャッシュメモリ30bのプライマリデータ領域31bに格納されたデータP3とデータP4とから成る。
また、キャッシュ単位i=3は、キャッシュメモリ30cのプライマリデータ領域31cに格納されたデータP5とデータP6とから成る。
キャッシュ単位iの中のノード別のデータの順番識別記号j(j=1,2)で識別し、キャッシュメモリ30のプライマリ側の各データを「ij」で指定する。

0153

プライマリ側の関係において、ディスク単位l=1は、データディスク20a,20bから成る。
また、ディスク単位l=2は、データディスク20c,20dから成る。
また、ディスク単位l=3は、データディスク20e,20fから成る。
ディスク単位lの中のデータディスクの順番を識別記号j(j=1,2)で識別し、プライマリ側に着目したときのデータディスクを「lj」で指定する。

0154

<バックアップ側の関係>
バックアップ側の関係は、Write処理のBackupデータ処理の中で適用される。そのため、バックアップ側の関係で指定する識別記号と、プライマリ側の関係で指定した識別記号とは独立に扱う。

0155

バックアップ側の関係において、キャッシュ単位k=1は、キャッシュメモリ30aのバックアップデータ領域32aに格納されたデータB4とデータB5とから成る。
また、キャッシュ単位k=2は、キャッシュメモリ30bのバックアップデータ領域32bに格納されたデータB1とデータB6とから成る。
また、キャッシュ単位k=3は、キャッシュメモリ30cのバックアップデータ領域32cに格納されたデータB2とデータB3とから成る。
キャッシュ単位kの中のノード別のデータの順番を識別記号l(l=1,2)で識別し、キャッシュメモリのバックアップ側の各データを「kl」で指定する。

0156

バックアップ側の関係において、ディスク単位m=1は、データディスク20a,20bから成る。
また、ディスク単位m=2は、データディスク20c,20dから成る。
また、ディスク単位m=3は、データディスク20e,20fから成る。
ディスク単位mの中のデータディスクの順番を識別記号n(n=1,2)で識別し、バックアップ側に着目したときのデータディスクを「mn」で指定する。

0157

[5−2.Write処理のPrimaryデータ処理]
図8のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてWrite処理の全体の流れは、図3に示した通り、Primaryデータ処理と、Backupデータ処理とを含む。ただし、図8のストレージ装置の場合の処理は、図2のストレージ装置の場合の処理と異なる。そこで、図8のストレージ装置の場合には、Primaryデータ処理をステップS100Bと表記し、Backupデータ処理をステップS200Bと表記する。

0158

まず、ステップS100BのPrimaryデータ処理について図11を参照(適宜図1図4図8参照)して説明する。図11は、図8のストレージ装置におけるPrimaryデータ処理の全体の流れを示すフローチャートである。

0159

前提として、プライマリ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のPrimaryデータ処理(ステップS100B)では、i番目のキャッシュ単位のプライマリ層データキューのうちのj番目のデータキューPijWを指定する。このプライマリ層データキューPijWは、キャッシュメモリ30のプライマリ側に格納されており、l番目のディスク単位のj番目のデータディスクDljに対する書込データである。

0160

Primaryデータ処理(ステップS100B)では、図11に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、i番目のキャッシュ単位のうちj番目のプライマリ層データキューPijWを書き込むときには、i番目のキャッシュ単位(プライマリデータ)全体のキューPiWのメモリ容量を検出する(ステップS121)。

0161

以下、システム管理手段10が実行するステップS122〜S125の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップS102〜S105の各処理(図4(a)参照)と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、i番目のキャッシュ単位に対応する、l番目のディスク単位のj番目のデータディスクDljである。

0162

システム管理手段10は、ステップS123において、データディスクDljが回転中、かつ、プライマリ層データキューPiWのキュー長が閾値PWthよりも大きいという条件を満たす場合(ステップS123:Yes)、または、ステップS124においてデータディスクDljが回転中である場合(ステップS124:Yes)、または、ステップS125の後に、ステップS130に進む。

0163

<ステップS130のDPrimary書込処理>
ここで、ステップS130のDprimary書込処理について図12を参照(適宜図10参照)して説明する。図12に示すように、データ配置制御手段15は、まず、繰り返し回数カウントする変数rの初期値を「1」とする(ステップS131)。変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS132)。なお、図8に示す例の場合には、キャッシュ単位を構成するノード数Ncuは「2」である。

0164

ステップS132において、変数rの現在値がノード数Ncu以下である場合(ステップS132:Yes)、データ配置制御手段15は、データディスクDlrが回転中であるか否かを判別する(ステップS133)。データディスクDlrが回転中である場合(ステップS133:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、i番目のキャッシュ単位のr番目のプライマリ層データキューPirWを、対応するデータディスクDlr(プライマリ層)に書き込み(ステップS134)、そのPirWをキャッシュディスクDcacheへ書き込む(ステップS135)。このとき、r=1ならば、例えば、図10(a)の左側に示すキャッシュメモリ30aのプライマリデータ領域31aに格納されているデータのうち、1番目のデータP1を、データディスク20aのプライマリデータ領域21aへ書き込むことになる。

0165

続いて、データ配置制御手段15は、i番目のキャッシュ単位のプライマリ層データキューPiWのバッファ(現在値)から、既にデータディスクに書き込んだr番目のプライマリ層データキューPirWを削除する(ステップS136)。このとき、r=1ならば、例えば、図10(a)の左側に示すプライマリデータ領域31aから1番目のデータP1を削除すると、図10(b)の左側に示すように、プライマリデータ領域31aにはデータP2が残ることになる。

0166

続いて、データ配置制御手段15は、このプライマリ層を書き込んだデータディスクDlrのバックアップ層データに対応するメモリキャッシュデータBuvW(u番目のキャッシュ単位のv番目のバックアップ層データキュー)を、このデータディスクDlr(バックアップ層)に書き込む(ステップS137)。このとき、r=1ならば、図10(a)の左側に示すように、データP1をデータディスク20aのプライマリデータ領域21aへ書き込む場合には、図10(a)の右側に示すように、キャッシュメモリ30bのバックアップデータ領域32bに格納された2番目のデータB6を、当該データディスク20aのバックアップデータ領域22aへ書き込むこととなる。

0167

次いで、データ配置制御手段15は、データディスクDlr(バックアップ層)に書き込まれたBuvWをキャッシュディスクDcacheへ書き込む(ステップS138)。そして、データ配置制御手段15は、データディスクDlrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューBuWのバッファ(現在値)から、既にディスクに書き込んだv番目のバックアップ層データキューBuvWを削除する(ステップS139)。このとき、r=1ならば、図10(a)の右側に示すバックアップデータ領域32bに格納された2番目のデータB6を削除すると、図10(b)の右側に示すように、バックアップデータ領域32bにデータB1が残ることになる。

0168

続いて、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS140)、ステップS132に戻る。

0169

前記したステップS133において、データディスクDlrが回転中ではない場合(ステップ133:No)、データ配置制御手段15は、前記したステップS134〜ステップS139をスキップしてステップS140に進む。

0170

前記したステップS132において、変数rの現在値がノード数Ncuを超えた場合(ステップS132:No)、データ配置制御手段15は、ステップS150のDbackup\primary書込処理を実行し、その後、図11のステップS121に戻る。

0171

<ステップS150のDbackup\primary書込処理>
ここで、ステップS150のDbackup\primary書込処理について図13を参照(適宜図10および図11参照)して説明する。図13に示すように、データ配置制御手段15は、まず、このPrimaryデータ処理(S100B)で対象としているi番目のキャッシュ単位のバックアップ層データキューBiWのキュー長が、バックアップ層データキューにおけるキューサイズの閾値BWthよりも大きいか否かを判別する(ステップS151)。

0172

なお、ステップS151では、バックアップ側の関係を示す識別記号kの代わりに、識別記号iを用いる。また、ここで、バックアップ層データキューBiWは、具体的には、次のデータが相当する。例えば、ステップS150の処理の前に、図10(a)に示すキャッシュメモリ30aのプライマリデータ領域31aに格納されたデータP1をディスクに書き込む処理をした場合には、バックアップ層データキューBiWは、バックアップデータ領域32aのデータキューに相当する。

0173

ステップS151において、バックアップ層データキューBiWのキュー長が閾値BWthよりも大きい場合(ステップS151:Yes)、データ配置制御手段15は、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS152)。そして、データ配置制御手段15は、変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS153)。変数rの現在値がノード数Ncu以下である場合(ステップS153:Yes)、データ配置制御手段15は、i番目のキャッシュ単位のバックアップ層データに対応する、m番目のディスク単位のr番目のデータディスクDmrが回転中であるか否かを判別する(ステップS154)。

0174

なお、ステップS154では、バックアップ側の関係における識別記号m,rを用いる。また、例えば、バックアップ層データキューBiWが、図8に示すバックアップデータ領域32aのデータキューである場合、データディスクDmrは、r=1のときにデータディスク20eであり、r=2のときにデータディスク20fとなる。

0175

前記したステップS154において、データディスクDmrが回転中である場合(ステップS154:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、i番目のキャッシュ単位のr番目のバックアップ層データキューBirWを、対応するデータディスクDmr(バックアップ層)に書き込む(ステップS155)。例えば、図8に示すバックアップデータ領域32aに格納されたデータB4を、データディスク20eのバックアップデータ領域22eに書き込む。

0176

続いて、データ配置制御手段15は、データディスクDmr(バックアップ層)に書き込まれたBirWをキャッシュディスクDcacheへ書き込む(ステップS156)。そして、データ配置制御手段15は、i番目のキャッシュ単位のバックアップ層データキューBiWのバッファ(現在値)から、既にデータディスクに書き込んだr番目のバックアップ層データキューBirWを削除する(ステップS157)。

0177

次いで、データ配置制御手段15は、このバックアップ層を書き込んだデータディスクDmrのプライマリ層データに対応するメモリキャッシュデータPwvW(w番目のキャッシュ単位のv番目のプライマリ層データキュー)を、このデータディスクDmr(プライマリ層)に書き込む(ステップS158)。例えば、図8に示すバックアップデータ領域32aに格納されたデータB4を、データディスク20eのバックアップデータ領域22eに書き込む場合には、キャッシュメモリ30cのプライマリデータ領域31cに格納されたデータP5を、データディスク20eのプライマリデータ領域21eに書き込む。

0178

続いて、データ配置制御手段15は、データディスクDmr(プライマリ層)に書き込まれたPwvWを、キャッシュディスクDcacheへ書き込む(ステップS159)。そして、データ配置制御手段15は、データディスクDmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューPwWのバッファ(現在値)から、既にディスクに書き込んだv番目のプライマリ層データキューPwvWを削除する(ステップS160)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS161)、ステップS153に戻る。

0179

前記したステップS154において、データディスクDmrが回転中ではない場合(ステップ154:No)、データ配置制御手段15は、前記したステップS155〜ステップS160をスキップしてステップS161に進む。

0180

前記したステップS153において変数rの現在値がノード数Ncuを超えた場合(ステップS153:No)、または、前記したステップS151においてバックアップ層データキューBiWのキュー長が閾値BWth以下である場合(ステップS151:No)、データ配置制御手段15は、図11のステップS121に戻る。

0181

[5−3.Write処理のBackupデータ処理]
次に、ステップS200BのBackupデータ処理について図14を参照(適宜図1図5図8参照)して説明する。図14は、図8のストレージ装置におけるBackupデータ処理の全体の流れを示すフローチャートである。

0182

前提として、バックアップ側の関係の識別記号を用いる。また、キャッシュ単位が複数の場合のBackupデータ処理(ステップS200B)では、i番目のキャッシュ単位のj番目のプライマリデータキューPijWのバックアップとして、k番目のキャッシュ単位のl番目のバックアップ層データキューBklWを指定する。このバックアップ層データキューBklWは、キャッシュメモリ30のバックアップ側に格納されており、m番目のディスク単位のn番目のデータディスクDmnに対する書込データである。

0183

Backupデータ処理(ステップS200B)では、図14に示すように、まず、システム管理手段10のキャッシュメモリ容量検出手段141は、キャッシュメモリ30のバックアップ側に格納されている、k番目のキャッシュ単位のうちl番目のバックアップ層データキューBklWを書き込むときには、k番目のキャッシュ単位(バックアップデータ)全体のキューBkWのメモリ容量を検出する(ステップS221)。

0184

以下、システム管理手段10が実行するステップS222〜S225の各処理は、回転状態を検出する対象のデータディスクが異なる点を除いて、前記したステップS202〜S205の各処理(図5(a)参照)と同様なので説明を適宜省略する。ここで、回転状態を検出する対象のデータディスクは、k番目のキャッシュ単位に対応する、m番目のディスク単位のn番目のデータディスクDmnである。

0185

システム管理手段10は、ステップS223において、データディスクDmnが回転中、かつ、バックアップ層データキューBkWのキュー長が閾値BWthよりも大きいという条件を満たす場合(ステップS223:Yes)、または、ステップS224においてデータディスクDmnが回転中である場合(ステップS224:Yes)、または、ステップS225の後に、ステップS230に進む。

0186

<ステップS230のDBackup書込処理>
ここで、ステップS230のDBackup書込処理について図15を参照(適宜図10参照)して説明する。図15に示すように、データ配置制御手段15は、まず、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS231)。変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS232)。変数rの現在値がノード数Ncu以下である場合(ステップS232:Yes)、データ配置制御手段15は、データディスクDmrが回転中であるか否かを判別する(ステップS233)。

0187

ステップS233において、データディスクDmrが回転中である場合(ステップS233:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、k番目のキャッシュ単位のr番目のバックアップ層データキューBkrWを、対応するデータディスクDmr(バックアップ層)に書き込む(ステップS234)。

0188

このとき、既に行ったprimary処理にて、例えば、図10(a)の左側に示すキャッシュメモリ30aでデータP1を、データディスク20aのプライマリデータ領域21aへ書き込んでいた場合、r=1とすると、キャッシュメモリ30bのバックアップデータ領域32bに格納された1番目のデータB1を、データディスク20bのバックアップデータ領域22bへ書き込むこととなる。

0189

続いて、データ配置制御手段15は、データディスクDmr(バックアップ層)に書き込まれたBkrWをキャッシュディスクDcacheへ書き込み(ステップS235)、k番目のキャッシュ単位のバックアップ層データキューBkWのバッファ(現在値)から、既にディスクに書き込んだr番目のバックアップ層データキューBkrWを削除する(ステップS236)。

0190

続いて、データ配置制御手段15は、このバックアップ層を書き込んだデータディスクDmrのプライマリ層データに対応するメモリキャッシュデータPuvW(u番目のキャッシュ単位のv番目のプライマリ層データキュー)を、このデータディスクDmr(プライマリ層)に書き込む(ステップS237)。例えば、図10(a)の右側に示すキャッシュメモリ30bから既にデータB1をデータディスク20bのバックアップデータ領域22bへ書き込んだ場合には、キャッシュメモリ30aのプライマリデータ領域31aに格納された2番目のデータP2を、データディスク20bのプライマリデータ領域21bへ書き込む。

0191

続いて、データ配置制御手段15は、データディスクDmr(プライマリ層)に書き込まれたPuvWをキャッシュディスクDcacheへ書き込み(ステップS238)、データディスクDmrのプライマリ層データに対応するキャッシュ単位のプライマリ層データキューPuWのバッファ(現在値)から、既にディスクに書き込んだv番目のプライマリ層データキューPuvWを削除する(ステップS239)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS240)、ステップS232に戻る。

0192

前記したステップS233において、データディスクDmrが回転中ではない場合(ステップ233:No)、データ配置制御手段15は、前記したステップS234〜ステップS239をスキップしてステップS240に進む。

0193

前記したステップS232において、変数rの現在値がノード数Ncuを超えた場合(ステップS232:No)、データ配置制御手段15は、ステップS250のDprimary\backup書込処理を実行し、その後、図14のステップS221に戻る。

0194

<ステップS250のDprimary\backup書込処理>
ここで、ステップS250のDprimary\backup書込処理について図16を参照(適宜図10および図14参照)して説明する。図16に示すように、データ配置制御手段15は、まず、このBackupデータ処理(S200B)で対象としているk番目のキャッシュ単位のプライマリ層データキューPkWのキュー長が、プライマリ層データキューにおけるキューサイズの閾値PWthよりも大きいか否かを判別する(ステップS251)。

0195

なお、ステップS251では、プライマリ側の関係を示す識別記号「i」の代わりに、識別記号kを用いる。また、ここで、プライマリ層データキューPkWは、具体的には、次のデータが相当する。例えば、ステップS250の処理の前に、図10(a)に示すキャッシュメモリ30bのバックアップデータ領域32bに格納されたデータB1をディスクに書き込む処理をした場合には、プライマリ層データキューPkWは、プライマリデータ領域31bのデータキューに相当する。

0196

ステップS251において、プライマリ層データキューPkWのキュー長が閾値PWthよりも大きい場合(ステップS251:Yes)、データ配置制御手段15は、繰り返し回数をカウントする変数rの初期値を「1」とする(ステップS252)。そして、データ配置制御手段15は、変数rの現在値がキャッシュ単位を構成するノード数Ncu以下であるか否かを判別する(ステップS253)。変数rの現在値がノード数Ncu以下である場合(ステップS253:Yes)、データ配置制御手段15は、k番目のキャッシュ単位のプライマリ層データに対応する、k番目のディスク単位のr番目のデータディスクDkrが回転中であるか否かを判別する(ステップS254)。

0197

なお、キャッシュ単位およびディスク単位のプライマリ側の関係においては、キャッシュ単位の識別記号とそれに対応したディスク単位の識別記号とは同じなので、ステップS254では、キャッシュ単位もディスク単位も共にk番目となる。また、例えば、プライマリ層データキューPkWが、図8に示すプライマリデータ領域31bのデータキューである場合、データディスクDkrは、r=1のときにデータディスク20cであり、r=2のときにデータディスク20dとなる。

0198

前記したステップS254において、データディスクDkrが回転中である場合(ステップS254:Yes)、データ配置制御手段15は、キャッシュメモリに格納されている、k番目のキャッシュ単位のr番目のプライマリ層データキューPkrWを、対応するデータディスクDkr(プライマリ層)に書き込む(ステップS255)。例えば、図8に示すプライマリデータ領域31bに格納されたデータP3を、データディスク20cのプライマリデータ領域21cに書き込む。

0199

続いて、データ配置制御手段15は、データディスクDkr(プライマリ層)に書き込まれたPkrWを、キャッシュディスクDcacheへ書き込む(ステップS256)。そして、データ配置制御手段15は、k番目のキャッシュ単位のプライマリ層データキューPkWのバッファ(現在値)から、既にディスクに書き込んだr番目のプライマリ層データキューPkrWを削除する(ステップS257)。

0200

次いで、データ配置制御手段15は、このプライマリ層を書き込んだデータディスクDkrのバックアップ層データに対応するメモリキャッシュデータBwvW(キャッシュ単位のv番目のバックアップ層データキュー)を、このデータディスクDkr(バックアップ層)に書き込む(ステップS258)。例えば、図8に示すプライマリデータ領域31bに格納されたデータP3を、データディスク20cのプライマリデータ領域21cに書き込む場合には、キャッシュメモリ30cのバックアップデータ領域32cのうちのデータ「B2」を、データディスク20cのバックアップデータ領域22cに書き込む。

0201

続いて、データ配置制御手段15は、データディスクDkr(バックアップ層)に書き込まれたBwvWを、キャッシュディスクDcacheへ書き込む(ステップS259)。そして、データ配置制御手段15は、データディスクDkrのバックアップ層データに対応するキャッシュ単位のバックアップ層データキューBwWのバッファ(現在値)から、既にディスクに書き込んだv番目のバックアップ層データキューBwvWを削除する(ステップS260)。そして、データ配置制御手段15は、変数rの現在値に「1」を加算し(ステップS261)、ステップS253に戻る。

0202

前記したステップS254において、データディスクDkrが回転中ではない場合(ステップ154:No)、データ配置制御手段15は、前記したステップS255〜ステップS260をスキップしてステップS261に進む。

0203

前記したステップS253において変数rの現在値がノード数Ncuを超えた場合(ステップS253:No)、または、前記したステップS251においてプライマリ層データキューPkWのキュー長が閾値PWth以下である場合(ステップS251:No)、データ配置制御手段15は、図14のステップS221に戻る。

0204

[5−4.Read処理]
図8のストレージ装置のようにキャッシュ単位を複数としたストレージ装置においてRead処理の全体の流れを図18に示す。図18に示すように、システム管理手段10が実行するステップS401〜S403、S410の各処理は、読み出し対象のデータをRijである点を除いて、前記したステップS301〜S303、S310の各処理(図6参照)と同様なので説明を適宜省略する。

0205

ここで、読み出し対象のデータRijは、そのオリジナルデータが、i番目のキャッシュ単位に対応する、l番目のディスク単位のj番目のデータディスクDljに格納されていることを表している。例えば、図8に示す例において、i=1、j=1の場合、データRijがデータP1に相当する。

0206

したがって、キャッシュディスクDcacheに、読み出し対象のデータRijが無い場合(ステップS403:Yes)、システム管理手段10のデータ配置制御手段15は、各データディスク20を管理するための図示しないデータベースを参照して、ディスク単位も考慮して、図17に示すように、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定し(ステップS404)、ステップS411の判別処理に進む。
図17に示す例では、データディスク20fのプライマリデータ領域21fに格納されたデータP6に読み出し要求があった場合を示している。この場合、キャッシュメモリ30にもキャッシュディスク40にもデータP6は存在しないため、ヒットミスが発生し、該当データをデータディスク20から読み出すこととなる。そして、プライマリ側のデータディスクは、データディスク20fとして決定され、バックアップ側のデータディスクは、データディスク20aとして決定される。その後の処理にて、データ配置制御手段15は、どちらか回転しているデータディスク20から該当データをキャッシュディスク40にコピーする。

0207

なお、キャッシュ単位が単数の場合、図6では省略したが、データ配置制御手段15は、ディスク単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のデータディスクと、バックアップ側のデータディスクとを決定している。

0208

また、図18に示すように、システム管理手段10が実行するステップS411〜S416の各処理は、前記したステップS311〜S316の各処理(図6参照)と同様なので説明を省略する。

0209

ただし、システム管理手段10のデータ配置制御手段15は、各キャッシュメモリ30を管理するための図示しないデータベースを参照して、キャッシュ単位も考慮して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定し(ステップS417)、前記したステップS321の判別処理(図7参照)に進む。

0210

なお、キャッシュ単位が単数の場合、図6では省略したが、データ配置制御手段15は、キャッシュ単位を考慮せずに、図示しないデータベースを参照して、プライマリ側のキャッシュメモリと、バックアップ側のキャッシュメモリとを決定している。

0211

前記1章〜5章に詳述したように、本実施形態のストレージ装置1およびその制御方法によれば、所定データに関するプライマリ側およびバックアップ側のデータディスク20の一方の回転停止状態を長時間確保することができると共に、各データディスク20のスピンアップの開始回数および回転停止への切り換え回数を少なく抑えることができる。したがって、本実施形態のストレージ装置1は、多くのデータディスク20をなるべく回転停止状態としておくことで、その性能と信頼性を確保しつつ、省電力化することができる。

0212

以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で様々に実施することができる。

0213

[変形例1]
本実施形態では、データディスク20の通常回転休止状態を回転停止状態であるものとして説明したが、回転停止状態の代わりに低速回転状態としてもよい。データディスク20の回転を完全に停めると、定常電力消費されないという利点があるが、再び回転するときに、ディスクアイドル状態(通常回転数で回転しているがライトもリードもしていない状態)になるまでに遅れが生じ、スパイク電流が起こる。これに対して、データディスク20を低速回転状態にした場合には、低速回転状態からディスクアイドル状態になるまでの所要時間およびその消費電力が少なくなる。すなわち、ストレージ装置の性能や省電力の観点からは、低速回転状態の方がより好ましい。

0214

ここで、低速時の回転数は、省電力の観点からは通常回転数よりもできるだけ低い方がよいが、スピンアップ時の応答時間を短縮して性能の劣化を低減する観点からは過度に低くする必要はない。また、低速回転にすることによって得られる消費電力量と、アクセスが発生した場合に最高速回転(通常回転数)に戻るまでの時間損失とのトレードオフの関係がある。また、低速時の好適な回転数は、ディスクドライブに対するアクセス(read/write)頻度によっても影響を受ける。そのため、低速時の回転数は、消費電力量と通常回転数に戻るまでの時間との優先度の違いや、使用条件等の運用方法を考慮した上で、適宜設計変更することができる。

0215

一例として挙げると、通常回転数と低速時の回転数との関係は、ストレージの分野において従来公知のように、最高回転数と、低速時の回転数とを一対一に対応させて、低速時の回転数を最高回転数の約6割となるようにしてもよい。また、例えば、ストレージの分野において、従来、最高回転数を、アクセス頻度に応じて最高時の30〜95%になるように多段速の回転数に切り替える手法も提案されており、このように、最高回転数と低速時の回転数とを一対多に対応させてもよい。

0216

[変形例2]
本実施形態では、キャッシュ単位が複数の場合に、例えば、前記したステップS122(図11参照)の処理でNo、かつ、データディスクDljが回転停止状態である場合に、i番目のキャッシュ単位のプライマリ層データキューのうちのj番目のデータキューPijWに対応した固定のデータディスクをスピンアップする(ステップS125)こととしたが、これに限定されるものではない。

0217

つまり、ステップS125においてスピンアップするデータディスクを固定とするのではなく、このPijWを含むデータキューPiWの中にある、Pi1〜PiNcuまでのNcu個のメモリキャッシュデータのうちで、一番大きなキュー長をもつキャッシュデータに対応したデータディスクをスピンアップさせてもよい。この場合には、キャッシュメモリ30のデータキューを効果的に減らすることができる。

0218

[変形例3]
本実施形態では、キャッシュメモリ30を、1つのプライマリデータ領域と1つのバックアップデータ領域とに論理的に分割するものとして説明したが、1つのプライマリデータ領域と複数のバックアップデータ領域とに分割するように構成してもよい。一例として、ストレージ装置においてキャッシュ単位が単数であってキャッシュメモリが1つのプライマリデータに対して2つのバックアップデータを記憶する場合の模式図を図19に示す。なお、1つのプライマリデータ領域と3つ以上のバックアップデータ領域とに分割するように構成してもよいことはもちろんである。

0219

図19に示すキャッシュメモリ30aは、1つのプライマリデータ領域31と2つのバックアップデータ領域32とに分割されている。このキャッシュメモリ30aのプライマリデータ領域31には、データディスク20aにプライマリデータとして格納するためのメモリキャッシュデータとして、データCPiが格納されている。また、キャッシュメモリ30aの一方のバックアップデータ領域32には、データディスク20aにバックアップデータとして格納するためのメモリキャッシュデータとして、データCBi-1が格納されている。同様に、他方のバックアップデータ領域32には、データCBi-2が格納されている。このようにキャッシュメモリ30を構成することで、データを多重化して信頼性をより向上させることができる。

0220

また、この場合には、キャッシュメモリ30aのプライマリデータ領域31に格納されたデータCPiのバックアップデータ(データCBi)は、キャッシュメモリ30bのバックアップデータ領域32と、キャッシュメモリ30cのバックアップデータ領域32とに格納されている。したがって、例えば、Backupデータ処理(ステップS200)により、キャッシュメモリ30bのバックアップデータ領域32に格納されていたデータCBiを消去したとしても、キャッシュメモリ30cのバックアップデータ領域32に格納されているデータCBiを同時には消去せずに、しばらく残したままにすることが可能となる。

0221

[変形例4]
本実施形態では、ストレージ装置1は、1つのシステム管理手段10が複数のデータディスク20を制御するものとして説明したが、本発明は、これに限定されるものではない。例えば、システム管理手段をデータディスクごとに設けて自律ストレージ装置を個別に構成し、全体のストレージ装置を、複数の自律ストレージ装置を備える自律ストレージシステムとして構成してもよい。この場合には、予め定めた自律分散管理ルールに基づいて、各自律ストレージ装置が他の自律ストレージ装置と協調しながら、データの複製や移動を行うことができる。

0222

[変形例5]
本実施形態では、ストレージ装置1は、システム管理手段10と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40とを備えるものとして説明したが、本発明は、これに限定されるものではない。例えば、リード処理の安定を重視しない場合には、キャッシュディスク40を除いて構成してもよい。また、例えば、ライト処理の安定を重視せずに、リード処理の安定だけを重視する場合には、キャッシュメモリ30を除いて構成してもよい。さらに、データディスク20とシステム管理手段とによる基本構成のみで簡易的に構成するようにしてもよい。

0223

例えば、システム管理手段10と、データディスク20と、キャッシュメモリ30とを備えるストレージ装置の場合には、前記したストレージ装置の動作において次のように処理を変更する。
キャッシュ単位が単数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理(ステップS100)にて、データ配置制御手段15は、ステップS113とステップS116とをスキップする。また、Backupデータ処理(ステップS200)にて、データ配置制御手段15は、ステップS213とステップS216とをスキップする。また、Read処理にて、データ配置制御手段15は、ステップS303、S314、S316、S324、S328およびS334をスキップする。

0224

また、キャッシュ単位が複数の場合のストレージ装置の動作においては、Write処理のPrimaryデータ処理(ステップS100B)にて、データ配置制御手段15は、ステップS135、S138、S156およびS159をスキップする。また、Backupデータ処理(ステップS200B)にて、データ配置制御手段15は、ステップS235、S238、S256およびS259をスキップする。また、Read処理にて、データ配置制御手段15は、ステップS414、S416、S324、S328およびS334をスキップする。このように、キャッシュディスク40を備えていないストレージ装置の場合には、処理を簡略化することができる。

0225

本発明による効果を確認するために、本発明のストレージ装置の性能を検証するコンピュータシミュレーションを行った。

0226

実験方法
実施例のストレージ装置は、システム管理手段と、データディスク20と、キャッシュメモリ30と、キャッシュディスク40とを備え、前記した制御方法により、なるべく多くのデータディスク20を停止させておく制御を行うこととした。この実施例のストレージ装置を、従来方式のストレージ装置と比較して消費電力の低減効果見積もる実験を行った。ここで、従来方式のストレージ装置とは、キャッシュメモリ30と、キャッシュディスク40とを備えておらず、すべてのデータディスク20が常に回転中であり、実施例のような特別な制御を行わない装置である。以下に記載する数式中の記号の説明を表1にまとめて記す。

0227

0228

算出式
実施例のストレージ装置は、m台のデータディスク20と、n台のキャッシュディスク40とを備えることとした。この場合に、実施例のストレージ装置のm台のデータディスク20全体に係る消費電力PdataDiskを式(1)にて算出した。

0229

0230

式(1)において、frは読み出しアクセス頻度、fwは書き込みアクセス頻度をそれぞれ示す。これらfr,fwはそれぞれ0〜1の割合で示す(0≦fr≦1、0≦fw≦1)。データディスク20へのアクセスは、読み出し事象、書き込み事象、その他の事象に分類できるが、仮にすべてのアクセスを読み出し事象または書き込み事象に対応付けた場合には、fr+fwは1となる。

0231

式(1)の右辺第1項は、書込時、読込時およびそれ以外のときに、データディスク20にアクセスが無い場合の消費電力に相当する項である。式(1)の右辺第2項は、読込時に、キャッシュメモリ30およびキャッシュディスク40の両方でキャッシュヒットミスした場合にデータディスク20から直接読み出すときの消費電力に相当する項である。式(1)の右辺第3項は、書込時に、キャッシュメモリ30のキュー長が閾値を超えていた場合にデータディスク20に直接書き込むときの消費電力に相当する項である。

0232

また、この場合に、実施例のストレージ装置のn台の常に回転しているキャッシュディスク40全体に係る消費電力PcacheDiskを式(2)にて算出した。

0233

0234

式(2)の右辺第1項は、キャッシュメモリ30にヒットした場合および読み出し処理自体が発生しなかった場合の消費電力に相当する項である。式(2)の右辺第2項は、キャッシュメモリ30がヒットミスした場合において、キャッシュディスク40ではヒットした場合の消費電力に相当する項である。式(2)の右辺第3項は、キャッシュディスク40でもヒットしなかった場合において、データディスク20からデータを読み出し、さらにそのデータをキャッシュディスク40に書き込むときの消費電力に相当する項である。式(2)の右辺第4項は、キャッシュメモリ30のメモリバッファオーバーフローしてデータディスク20に書き込む際に、当該データをキャッシュディスク40に書き込む消費電力に相当する項である。

0235

また、前記式(1)で示す消費電力PdataDiskおよび式(2)で示す消費電力PcacheDiskを用いて、実施例のストレージ装置全体に係る消費電力Ptotalを式(3)にて算出した。

0236

これら式(1)〜式(3)は、読み出しアクセス頻度frと、書き込みアクセス頻度fwと、読み出しアクセスに対するキャッシュメモリのヒット率hcと、読み出しアクセスに対するキャッシュディスクのヒット率hdと、書き込みアクセスに対する書き込み可能率bwとを用いて、ヒットしたときにどこにデータがあるものを読むのかという点と、それぞれのその読みにいった場所に対する消費電力の使い方とを考慮して予め定めた関係式である。なお、前提としては、読み出し要求があったときに、読み出し対象データがキャッシュディスク40に無い場合にはデータディスク20からキャッシュディスク40側にコピーして、それを読み出す。また、書き込み要求があったときに、書き込みアクセスに対するキャッシュヒットがあれば、キャッシュメモリ30だけで対応しつつデータディスク20を停止させておき、キャッシュメモリ30にデータがある程度たまったときにだけデータディスク20をスピンアップして書き出す

0237

また、比較例のストレージ装置は、m台のデータディスク20を備えることとして、その消費電力Pnormalを式(4)にて算出した。

0238

なお、書き込みアクセス時には、書き込み直前に、比較例の場合には、データディスク20を回転させておくための消費電力を要しているが、実施例の場合には、通常は停止させており、キャッシュメモリ30にデータがある程度たまったときにだけデータディスク20をスピンアップして書き出す点が大きく異なる。

0239

計算条件
ここでは、データディスク20の台数mと、キャッシュディスク40の台数nとの合計値を100台とした(m+n=100)。数多くの実験を行ったが、ここでは、代表として3つの例を挙げる。
<実験A>内訳をm=90、n=10とした。
シミュレーションでは、次のパラメータに関しては、以下の固定値とした。ここで、状態遷移時の消費電力Ptranは、読み込みまたは書き込み時のおよそ2倍の電力消費とした。
Pstandby=0.8[W]、Pidle=9.3[W]、Ptran=24[W]、Pread=13[W]、
Pwrite=13[W]、hd=0.95、bw=1.0、rd=0.2、fr=0.7、fw=0.2
その上で、hcを70〜95%の間で5%ずつ変化させたときの実施例のストレージ装置1の全電力消費量Ptotalを求めた。また、比較例の消費電力Pnormalを求め、消費電力削減率を算出した((Pnormal−Ptotal)/Pnormal)。
<実験B>内訳をm=80、n=20とし、全く同じ計算条件で消費電力削減率を算出した。
<実験C>内訳をm=70、n=30とし、fw=0.3(fr+fw=1)に変更し、他のパラメータは、全く同じ計算条件で消費電力削減率を算出した。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ