IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許7468914ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム
<>
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図1
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図2
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図3
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図4A
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図4B
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図5
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図6
  • 特許-ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】ディスクアレイ装置、負荷分散方法、及び負荷分散プログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240409BHJP
   G06F 11/34 20060101ALI20240409BHJP
   G06F 11/10 20060101ALI20240409BHJP
【FI】
G06F3/06 302J
G06F3/06 305C
G06F3/06 540
G06F11/34 176
G06F11/10 676
【請求項の数】 8
(21)【出願番号】P 2022034480
(22)【出願日】2022-03-07
(65)【公開番号】P2023130038
(43)【公開日】2023-09-20
【審査請求日】2022-03-07
【前置審査】
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】高瀬 俊一
【審査官】松平 英
(56)【参考文献】
【文献】特開2007-102607(JP,A)
【文献】特開2003-150324(JP,A)
【文献】特開平08-335146(JP,A)
【文献】特開2008-090372(JP,A)
【文献】特開2014-211849(JP,A)
【文献】特表2015-504187(JP,A)
【文献】特開2009-026117(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
11/08-11/10
11/28-11/36
12/00-12/128
13/16-13/18
(57)【特許請求の範囲】
【請求項1】
複数のデータブロックを有する複数のRAIDグループの、前記データブロック毎のアクセス状況を示すアクセス情報を第1の管理テーブル及び第2の管理テーブルの何れか一方に記録する記録手段と、
前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて、前記複数のRAIDグループ間で前記データブロックのスワップを行うスワップ制御手段と、
前記スワップ制御手段が、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて前記スワップを行い、前記記録手段が、前記スワップが行われている間も前記第1の管理テーブル及び第2の管理テーブルの何れか他方に前記アクセス情報を記録するように前記スワップ制御手段及び前記記録手段を制御する制御手段と、
を備え
前記記録手段は、前記アクセス情報として、前記データブロックにアクセスした回数を示すアクセス回数と、前記データブロックにアクセスした累積時間を示す累積アクセス時間とを、前記データブロックに対するアクセスの種類毎に記録する、
ィスクアレイ装置。
【請求項2】
前記スワップ制御手段は、前記累積アクセス時間が最も大きいデータブロックと、前記累積アクセス時間が最も小さいデータブロックとのスワップを行う、請求項1記載のディスクアレイ装置。
【請求項3】
前記スワップが行われる前記データブロックの一方を記憶する第1のキャッシュと、
前記スワップが行われる前記データブロックの他方を記憶する第2のキャッシュと、
を備え、
前記スワップ制御手段は、前記スワップが行われる前記データブロックの一方を前記第1のキャッシュにコピーするとともに前記スワップが行われる前記データブロックの他方を前記第2のキャッシュにコピーした後に、前記第1のキャッシュと前記第2のキャッシュとの入れ替えを行い、前記第1のキャッシュにコピーされた前記データブロックを前記スワップが行われる前記データブロックの他方にコピーするとともに前記第2のキャッシュにコピーされた前記データブロックを前記スワップが行われる前記データブロックの一方にコピーすることで前記スワップを行う、
請求項1又は請求項2記載のディスクアレイ装置。
【請求項4】
前記スワップ制御手段は、前記スワップを行っている間に、前記スワップが行われる前記データブロックの一方又は他方へのアクセスがあった場合には、前記第1のキャッシュ又は前記第2のキャッシュを前記アクセスの対象とする、請求項3記載のディスクアレイ装置。
【請求項5】
前記スワップ制御手段は、前記スワップが終了した場合には、前記第1のキャッシュ又は前記第2のキャッシュを前記アクセスの対象から解除する、請求項4記載のディスクアレイ装置。
【請求項6】
前記スワップ制御手段により前記スワップが行われた前記データブロックの一方及び他方のスワップ先を示す情報を記憶するスワップ先記憶手段を備え、
前記スワップが行われた前記データブロックへのアクセスは、前記スワップ先記憶手段に記憶された情報を参照して行われる、
請求項1から請求項5の何れか一項に記載のディスクアレイ装置。
【請求項7】
ディスクアレイ装置の記録手段が、複数のデータブロックを有する複数のRAIDグループの、前記データブロック毎のアクセス状況を示すアクセス情報を第1の管理テーブル及び第2の管理テーブルの何れか一方に記録するステップと、
前記ディスクアレイ装置のスワップ制御手段が、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて、前記複数のRAIDグループ間で前記データブロックのスワップを行うステップと、
前記ディスクアレイ装置の制御手段が、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて前記スワップが行われ、前記スワップが行われている間も前記第1の管理テーブル及び第2の管理テーブルの何れか他方に前記アクセス情報が記録されるように制御するステップと、
を有し、
前記記録手段は、前記アクセス情報として、前記データブロックにアクセスした回数を示すアクセス回数と、前記データブロックにアクセスした累積時間を示す累積アクセス時間とを、前記データブロックに対するアクセスの種類毎に記録する、
荷分散方法。
【請求項8】
請求項7記載の負荷分散方法をコンピュータに実行させるための負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスクアレイ装置、負荷分散方法、及び負荷分散プログラムに関する。
【背景技術】
【0002】
ディスクアレイ装置は、外部記憶装置(例えば、ハードディスク)を複数搭載し、大容量ディスクとして扱う装置である。ディスクアレイ装置では、信頼性或いは処理能力を向上させるために、RAID(Redundant Arrays of Inexpensive Disks)技術が採用されている。尚、ディスクアレイ装置は、RAID技術が採用されていることから、「レイド」と呼ばれることもある。
【0003】
ディスクアレイ装置には、RAIDグループ(RAID技術によって複数の外部記憶装置が論理的に1つの外部記憶装置とされたもの)を複数備えるものがある。以下の特許文献1には、2つのRAIDグループを備えるディスクアレイ装置が開示されている。このディスクアレイ装置では、2つのRAIDグループ(「RAIDグループA」、「RAIDグループB」とする)の何れか一方にアクセス負荷が集中するのを防止することで処理性能の向上を図っている。
【0004】
具体的に、以下の特許文献1に開示されたディスクアレイ装置は、RAIDグループAとRAIDグループBの各々に設けられたデータブロックへのアクセス回数を集計する。そして、RAIDグループAで最もアクセス回数が多いデータブロックと、RAIDグループBで最もアクセス回数が少ないデータブロックとをスワップする。続いて、RAIDグループAで2番目にアクセス回数が多いデータブロックと、RAIDグループBで2番目にアクセス回数が少ないデータブロックとをスワップする。このような方法で、RAIDグループAとRAIDグループBとのアクセス回数が平均化されるまでデータブロックのスワップを行うことで、2つのRAIDグループの何れか一方にアクセス負荷が集中するのを防止している。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2007-102607号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上記の特許文献1に開示されたディスクアレイ装置は、データブロックのスワップ処理が開始されてから終了するまで、データブロックへのアクセス回数の集計を停止している。これにより、データブロックへの実際のアクセス回数と集計されたアクセス回数との間に乖離が生ずるため、負荷分散の正確性が若干欠けるという問題があった。
【0007】
本発明は上述の課題を解決するディスクアレイ装置、負荷分散方法、及び負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の一態様によるディスクアレイ装置は、複数のデータブロックを有する複数のRAIDグループの、前記データブロック毎のアクセス状況を示すアクセス情報を第1の管理テーブル及び第2の管理テーブルの何れか一方に記録する記録手段と、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて、前記複数のRAIDグループ間で前記データブロックのスワップを行うスワップ制御手段と、前記スワップ制御手段が、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて前記スワップを行い、前記記録手段が、前記第1の管理テーブル及び第2の管理テーブルの何れか他方に前記アクセス情報を記録するように前記スワップ制御手段及び前記記録手段を制御する制御手段と、を備える。
【0009】
上記課題を解決するために、本発明の一態様による負荷分散方法は、複数のデータブロックを有する複数のRAIDグループの、前記データブロック毎のアクセス状況を示すアクセス情報を第1の管理テーブル及び第2の管理テーブルの何れか一方に記録するステップと、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて、前記複数のRAIDグループ間で前記データブロックのスワップを行うステップと、前記第1の管理テーブル及び第2の管理テーブルの何れか一方に記録された前記アクセス情報を用いて前記スワップが行われ、前記第1の管理テーブル及び第2の管理テーブルの何れか他方に前記アクセス情報が記録されるように制御するステップと、を有する。
【0010】
上記課題を解決するために、本発明の一態様による負荷分散プログラムは、上記の負荷分散方法をコンピュータに実行させる。
【発明の効果】
【0011】
本発明によれば、より正確な負荷分散を行うことができるという効果がある。
【図面の簡単な説明】
【0012】
図1】本発明の一実施形態によるディスクアレイ装置の要部構成を示すブロック図である。
図2】本発明の一実施形態によるディスクアレイ装置の動作例を示すフローチャートである。
図3図2中のステップS15の詳細な処理を示すフローチャートである。
図4A】本発明の一実施形態において管理テーブルに記録される情報の一例を示す図である。
図4B】本発明の一実施形態において管理テーブルに記録される情報の一例を示す図である。
図5】本発明の一実施形態においてスワップ先記憶部に記憶される情報の一例を示す図である。
図6】本発明の一実施形態において、スワップが行われた後のRAIDグループの様子の一例を示す図である。
図7】本発明の一実施形態によるディスクアレイ装置の最小構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態によるディスクアレイ装置、負荷分散方法、及び負荷分散プログラムについて詳細に説明する。
【0014】
〈ディスクアレイ装置の構成〉
図1は、本発明の一実施形態によるディスクアレイ装置の要部構成を示すブロック図である。図1に示す通り、本実施形態のディスクアレイ装置1は、ディスクアレイコントローラ2、RAIDグループ3、及びRAIDグループ4を備える。このようなディスクアレイ装置1は、ホストコンピュータHCから出力されるアクセス指示に基づいて、RAIDグループ3,4に対するデータの読み出し及び書き込みを行う。
【0015】
尚、以下では、説明の便宜上、RAIDグループ3を「RAIDグループA」といい、RAIDグループ4を「RAIDグループB」という。また、本実施形態では、ディスクアレイ装置1が、2つのRAIDグループ(RAIDグループA及びRAIDグループB)を備える例について説明するが、ディスクアレイ装置1は、3つ以上のRAIDグループを備えていてもよい。
【0016】
ディスクアレイコントローラ2は、主制御部20(制御手段)、R/Wアクセス時間データ記録制御部21(記録手段)、データブロックスワップ制御部22(スワップ制御手段)、管理テーブル23(第1の管理テーブル)、管理テーブル24(第2の管理テーブル)、スワップ先記憶部25(スワップ先記憶手段)、データブロックキャッシュ26(第1のキャッシュ)、及びデータブロックキャッシュ27(第2のキャッシュ)を備える。
【0017】
主制御部20は、ホストコンピュータHCからのアクセス指示に基づいて、R/Wアクセス時間データ記録制御部21及びデータブロックスワップ制御部22に対して制御指示を行う。具体的に、主制御部20は、R/Wアクセス時間データ記録制御部21が、管理テーブル23,24の何れにデータの記録を行うかを制御し、データブロックスワップ制御部22が管理テーブル23,24の何れに記録されたデータを用いるかを制御する。例えば、主制御部20は、データブロックスワップ制御部22が管理テーブル23に記録されたデータを用いる場合には、R/Wアクセス時間データ記録制御部21が、管理テーブル24にデータの記録を行うように制御する。或いは、主制御部20は、データブロックスワップ制御部22が管理テーブル24に記録されたデータを用いる場合には、R/Wアクセス時間データ記録制御部21が、管理テーブル23にデータの記録を行うように制御する。
【0018】
R/Wアクセス時間データ記録制御部21は、RAIDグループA及びRAIDグループBの各データブロックにアクセスした回数を示すアクセス回数と、アクセスした時間を示すアクセス時間とを計測する。R/Wアクセス時間データ記録制御部21は、計測したアクセス時間を、RAIDグループA及びRAIDグループBのデータブロック単位で積算した累積アクセス時間を求める。R/Wアクセス時間データ記録制御部21は、データブロック毎のアクセス回数及び累積アクセス時間を、管理テーブル23又は管理テーブル24に記録する。
【0019】
ここで、RAIDグループA及びRAIDグループBの各データブロックに対するアクセスの種類としては、読み出し(Read)及び書き込み(Write)等がある。このため、R/Wアクセス時間データ記録制御部21は、データブロック毎のアクセス回数及び累積アクセス時間を、データブロックに対するアクセスの種類毎に記録する。例えば、R/Wアクセス時間データ記録制御部21は、データブロック毎に、読み出しについてのアクセス回数及び累積アクセス時間と、書き込みについてのアクセス回数及び累積アクセス時間とを記録する。
【0020】
データブロックスワップ制御部22は、管理テーブル23又は管理テーブル24に記録された情報に基づいて、データブロックキャッシュ26.27を介したデータブロックのスワップ処理を行う。データブロックスワップ制御部22は、RAIDグループAが有する全てのデータブロックの累積アクセス時間を合計した総アクセス時間と、RAIDグループBが有する全てのデータブロックの累積アクセス時間を合計した総アクセス時間とを算出する。そして、データブロックスワップ制御部22は、算出した総アクセス時間に基づいて、スワップ処理を実行するか否か、或いはスワップ処理を継続するか否かを制御する。
【0021】
データブロックスワップ制御部22は、スワップ処理を行っている間に、スワップが行われるデータブロックの一方又は他方へのアクセスがあった場合には、データブロックキャッシュ26,27をアクセスの対象とする。データブロックスワップ制御部22は、スワップ処理が終了した場合には、データブロックキャッシュ26,27をアクセスの対象から解除する。尚、データブロックスワップ制御部22が行うスワップ処理の詳細については後述する。
【0022】
管理テーブル23,24は、RAIDグループA及びRAIDグループBの、データブロック毎のアクセス状況を示すアクセス情報が記録されるテーブルである。管理テーブル23,24に記録されるアクセス情報としては、RAIDグループA及びRAIDグループBのデータブロック毎のアクセス回数及び累積アクセス時間が挙げられる。尚、管理テーブル23,24は、機能的には同じものである。
【0023】
スワップ先記憶部25は、データブロックスワップ制御部22によるデータブロックのスワップ処理が完了した場合に、スワップが行われたデータブロックのスワップ先を示す情報を記憶する。尚、スワップが行われたデータブロックへのアクセスは、スワップ先記憶部25に記憶された情報を参照して行われる。
【0024】
データブロックキャッシュ26,27は、データブロックスワップ制御部22によりスワップ処理が行われる場合に、スワップが行われるデータブロックを一時的に記憶する。また、データブロックキャッシュ26,27は、上述した通り、スワップが行われるデータブロックへのアクセスがあった場合には、アクセスの対象とされる。このため、データブロックキャッシュ26,27は、例えば、ホストコンピュータHCからアクセスがあった場合に、データブロックをキャッシュする。尚、データブロックキャッシュ26,27は、機能的には同じものである。
【0025】
RAIDグループAは、データブロックA#0(30)、A#1(31)、A#2(32)、A#3(33)、A#4(34)を有する。RAIDグループBは、データブロックB#0(40)、B#1(41)、B#2(42)、B#3(43)、B#4(44)を有する。RAIDグループAのデータブロック30~34、及び、RAIDグループBのデータブロック40~44は、データブロックキャッシュ26,27のデータサイズと同じサイズで分割されている。
【0026】
〈ディスクアレイ装置の動作〉
図2は、本発明の一実施形態によるディスクアレイ装置の動作例を示すフローチャートである。尚、ディスクアレイ装置1が備える各ブロックのメモリ状態は、システム起動時に全て「0」でクリアされているものとする。
【0027】
[ステップS10]
例えば、ホストコンピュータHCが、ディスクアレイコントローラ2の主制御部20に対してアクセス監視の開始を指示する。この指示により、主制御部20は、例えば、R/Wアクセス時間データ記録制御部21を制御して、管理テーブル24に各種データの記録をさせるようにする。
【0028】
[ステップS11]
R/Wアクセス時間データ記録制御部21は、管理テーブル23に対し、RAIDグループA及びRAIDグループBのデータブロック毎のアクセス情報の記録を開始する。具体的に、ホストコンピュータHCからデータのアクセス要求があると、RAIDグループA又はRAIDグループBへのデータアクセスが行われる。R/Wアクセス時間データ記録制御部21は、そのデータアクセスの状況を示す情報を受け取ってアクセス回数及びアクセス時間の計測を開始する。
【0029】
R/Wアクセス時間データ記録制御部21は、RAIDグループA及びRAIDグループBのデータブロックへのアクセスに要した時間を計測し、その計測データをアクセスの種類毎(Read/Write毎)、データブロック毎に積算して累積アクセス時間を算出する。また、R/Wアクセス時間データ記録制御部21は、RAIDグループA及びRAIDグループBに対するアクセスがある度に、アクセスのあったデータブロックのアクセス回数をインクリメントする(+1のカウントを行う)。R/Wアクセス時間データ記録制御部21は、アクセスの種類毎、データブロック毎の累積アクセス時間及びアクセス回数を管理テーブル23に記録する。
【0030】
[ステップS12]
主制御部20が、R/Wアクセス時間データ記録制御部21及びデータブロックスワップ制御部22を制御し、管理テーブルを入れ替えてスワップ処理を開始させる。具体的に、主制御部20は、データブロックスワップ制御部22が管理テーブル23に記録されたデータを用いてスワップ処理を行い、R/Wアクセス時間データ記録制御部21が、管理テーブル24にデータの記録を行うように制御する。
【0031】
[ステップS13]
データブロックスワップ制御部22が、スワップを行うデータブロックの特定、及び、スワップ前の総アクセス時間とスワップ後の総アクセス時間の算出を行う。具体的に、データブロックスワップ制御部22は、まず、スワップ前の総アクセス時間を算出する。具体的には、管理テーブル23に記録されたアクセス情報を用いて、スワップ前のRAIDグループAについての総アクセス時間と、スワップ前のRAIDグループBについての総アクセス時間とを算出する。
【0032】
次に、データブロックスワップ制御部22は、スワップを行うデータブロックを特定する。具体的には、総アクセス時間が大きいRAIDグループの累積アクセス時間が最も大きいデータブロックと、総アクセス時間が小さいRAIDグループの累積アクセス時間が最も小さいデータブロックとをスワップを行うデータブロックとして特定する。このようなデータブロックを特定するのは、総アクセス時間が大きいRAIDグループの負荷を、総アクセス時間が小さいRAIDグループに効率的に分散させるためである。
【0033】
次いで、データブロックスワップ制御部22は、スワップ後の総アクセス時間を算出する。具体的には、スワップを行うデータブロックとして特定されたデータブロックが仮にスワップされたとした場合の、RAIDグループAについての総アクセス時間と、RAIDグループBについての総アクセス時間とを算出する。
【0034】
[ステップS14]
データブロックスワップ制御部22は、ステップS13で算出されたスワップ前後の総アクセス時間に基づいて、特定されたデータブロックがスワップされた場合のRAIDグループAとRAIDグループBとの総アクセス時間の差が短縮されるか否かを判断する。具体的に、データブロックスワップ制御部22は、スワップ後のRAIDグループAとRAIDグループBとの総アクセス時間の差が、スワップ前のRAIDグループAとRAIDグループBとの総アクセス時間の差よりも小さくなっているか否かを判断する。短縮されると判断した場合(YES)には、ステップS15に進み、短縮されないと判断した場合(NO)には、ステップS17に進む。
【0035】
[ステップS15]
データブロックスワップ制御部22は、ステップS13で特定されたデータブロックのスワップを実行する。尚、スワップ処理の詳細については後述する。データブロックのスワップが完了すると、データブロックスワップ制御部22は、ステップS13で総アクセス時間を算出する過程で得られたデータを管理テーブル23に反映する。
【0036】
[ステップS16]
データブロックスワップ制御部22は、RAIDグループAとRAIDグループBとの総アクセス時間の差が、予め規定された一定値以下であるか否かを判断する。一定値以下であると判断した場合(YES)には、RAIDグループAとRAIDグループBとの総アクセス時間の差が無くなったものとして、ステップS17に進む。これに対し、一定値以下でないと判断した場合(NO)には、RAIDグループAとRAIDグループBとの総アクセス時間の差を更に無くすために、ステップS13に進む。
【0037】
[ステップS17]
データブロックスワップ制御部22は、スワップ処理を終了する。スワップ処理が完了すると、管理テーブル23のデータは必要がなくなるため、データブロックスワップ制御部22は、管理テーブル23のデータをクリアする。尚、ステップS17が終了すると、ステップS12に進む。以上にて、図2に示す一連の処理が終了する。
【0038】
図3は、図2中のステップS15の詳細な処理を示すフローチャートである。尚、以下では、RAIDグループAの総アクセス時間が、RAIDグループBの総アクセス時間よりも大きいとする。また、累積アクセス時間が最も大きいデータブロックが、データブロックがA#3(33)であり、累積アクセス時間が最も小さいデータブロックが、データブロックがB#0(10)であるとする。よって、以下では、データブロックA#3とデータブロックB#0とがスワップされる場合を例に挙げて説明する。
【0039】
[ステップS20]
データブロックスワップ制御部22は、データブロックキャッシュ26,27を、ホストコンピュータHCからデータブロックA#3,B#0に対するアクセス(Read/Writeアクセス)があった場合のアクセス対象にそれぞれ設定する。
【0040】
[ステップS21]
データブロックスワップ制御部22は、データブロックA#3をデータブロックキャッシュ26にコピーし、データブロックB#0をデータブロックキャッシュ27にコピーする。ここで、コピー処理中に、ホストコンピュータHCからデータブロックA#3へのアクセスがあった場合には、データブロックキャッシュ26を介してデータブロックA#3がアクセスされる。また、ホストコンピュータHCからデータブロックB#0へのアクセスがあった場合には、データブロックキャッシュ27を介してデータブロックB#0がアクセスされる。
【0041】
[ステップS22]
データブロックスワップ制御部22は、データブロックキャッシュ26とデータブロックキャッシュ27との全ての入出力インターフェースを切り替える。これにより、データブロックキャッシュ26に記憶されたデータブロックは、データブロックB#0に対するものになり、データブロックキャッシュ27に記憶されたデータブロックは、データブロックA#3に対するものになる。
【0042】
[ステップS23]
データブロックスワップ制御部22は、データブロックキャッシュ26に記憶されているデータをデータブロックB#0にコピーし、データブロックキャッシュ27に記憶されているデータをデータブロックA#3にコピーする。ここで、コピー処理中に、ホストコンピュータHCからデータブロックA#3へのアクセスがあった場合には、データブロックキャッシュ27を介してデータブロックA#3がアクセスされる。また、ホストコンピュータHCからデータブロックB#0へのアクセスがあった場合には、データブロックキャッシュ26を介してデータブロックB#0がアクセスされる。
【0043】
[ステップS24]
データブロックスワップ制御部22は、データブロックキャッシュ26,27を、ホストコンピュータHCからのアクセス対象から切り離す。
【0044】
[ステップS25]
データブロックスワップ制御部22は、データブロックA#3,B#0のスワップ先を示す情報をスワップ先記憶部25に記憶させる。以後、データブロックA#3,B#0へのアクセスはスワップ先記憶部25に記憶されたスワップ先を示す情報を参照して行われる。
【0045】
図4A図4Bは、本発明の一実施形態において管理テーブルに記録される情報の一例を示す図である。尚、図4Aは、スワップ処理が行われる前のものであり、図4Bは、スワップ処理が行われた後のものである。尚、ここでは、前述した例と同様に、スワップ処理が行われる前において、RAIDグループAの総アクセス時間が、RAIDグループBの総アクセス時間よりも大きいとする。また、図4A図4Bでは、理解を容易にするために、RAIDグループA及びRAIDグループBの総アクセス時間(TOTAL)及び平均時間も図示している。
【0046】
図4Aに示す例において、累積アクセス時間の差は、RAIDグループAのデータブロックA#3とRAIDグループBのデータブロックB#0との間で最も大きく、RAIDグループAのデータブロックA#2とRAIDグループBのデータブロックB#2との間で次に大きい。尚、RAIDグループAの総アクセス時間は222秒であり、RAIDグループBの総アクセス時間は123秒であり、RAIDグループAとRAIDグループBとの総アクセス時間に差が見られる。
【0047】
ここで、図1に示す通り、RAIDグループAのデータブロックA#3とRAIDグループBのデータブロックB#0とのスワップ、及び、RAIDグループAのデータブロックA#2とRAIDグループBのデータブロックB#2とのスワップが行われたとする。図4Bを参照すると、RAIDグループA及びRAIDグループBの総アクセス時間が共に153秒になっており、RAIDグループAとRAIDグループBとの総アクセス時間に差が無くなっている。これは、負荷分散が行われたことを示している。
【0048】
図5は、本発明の一実施形態においてスワップ先記憶部に記憶される情報の一例を示す図である。図5に示す例では、RAIDグループAのブロック番号「3」については、スワップ先「B」、ブロック番号「0」が設定されている。これは、データブロックA#3のスワップ先がデータブロックB#0であることを示している。また、RAIDグループBのブロック番号「0」については、スワップ先「A」、ブロック番号「3」が設定されている。これは、データブロックB#0のスワップ先がデータブロックA#3であることを示している。
【0049】
同様に、図5に示す例では、RAIDグループAのブロック番号「2」については、スワップ先「B」、ブロック番号「2」が設定されている。また、RAIDグループBのブロック番号「2」については、スワップ先「A」、ブロック番号「2」が設定されている。
【0050】
図6は、本発明の一実施形態において、スワップが行われた後のRAIDグループの様子の一例を示す図である。図6に例示するものは、RAIDグループAのデータブロックA#3とRAIDグループBのデータブロックB#0とのスワップ、及び、RAIDグループAのデータブロックA#2とRAIDグループBのデータブロックB#2とのスワップが行われたものである。
【0051】
以上の通り、本実施形態では、RAIDグループA及びRAIDグループBのデータブロックへのアクセス情報が記録される2つの管理テーブル23,24を設けている。そして、データブロックスワップ制御部22が、管理テーブル23,24の何れか一方に記録されたアクセス情報を用いてスワップ処理を行っている間、R/Wアクセス時間データ記録制御部21が管理テーブル23,24の何れか他方にアクセス情報を記録するようにしている。これにより、スワップ処理が行われている間も、RAIDグループA及びRAIDグループBのアクセス情報を記録することができるため、より正確な負荷分散を行うことができる。
【0052】
また、本実施形態では、RAIDグループA及びRAIDグループBのデータブロックへのアクセス回数のみならず、アクセス時間を計測して累計アクセス時間を算出している。このため、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のデバイスの種類によるアクセス時間の違い、Read/Write等のアクセスの種類によるアクセス時間の違いを考慮することができる。これにより、より正確に負荷分散を行うことが可能となる。
【0053】
また、本実施形態では、スワップが行われる一対のデータブロックを記憶する2つのデータブロックキャッシュ26,27を設け、これらデータブロックキャッシュ26,27を介してデータブロックのスワップ処理を行うようにしている。これにより、ホストコンピュータHCからのアクセスを止めることなく、常時アクセス可能となるため、スワップ処理中におけるホストコンピュータHCのアクセス待ち時間を大きく削減することが可能となる。
【0054】
〈変形例〉
RAIDグループA及びRAIDグループBの具体的なRAID構成は、特定のRAID構成に限定されることはなく、任意のRAID構成でよい。例えば、RAIDグループA及びRAIDグループBの具体的なRAID構成は、RAID1構成であってもよく、RAID5構成であってもよい。また、ディスクアレイコントローラ2は、これらのRAIDグループを自由に構築することができる。
【0055】
〈最小構成例〉
図7は、本発明の一実施形態によるディスクアレイ装置の最小構成例を示す図である。図7に示す通り、ディスクアレイ装置1は、少なくとも、記録手段51、スワップ制御手段52、及び制御手段53を備える。記録手段51は、複数のデータブロックを有する複数のRAIDグループの、データブロック毎のアクセス情報を第1の管理テーブル及び第2の管理テーブルの何れか一方に記録する。スワップ制御手段52は、第1の管理テーブル及び第2の管理テーブルの何れか一方に記録されたアクセス情報を用いて、複数のRAIDグループ間でデータブロックのスワップを行う。制御手段53は、スワップ制御手段52が、第1の管理テーブル及び第2の管理テーブルの何れか一方に記録されたアクセス情報を用いてスワップを行い、記録手段51が、第1の管理テーブル及び第2の管理テーブルの何れか他方にアクセス情報を記録するようにスワップ制御手段52及び記録手段51を制御する。
【0056】
上記のディスクアレイ装置1は、内部にコンピュータシステムを有している。そして、ディスクアレイコントローラ2の機能は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって実現される。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0057】
尚、図1におけるディスクアレイ装置1のディスクアレイコントローラ2の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりディスクアレイコントローラ2の機能の全て又は一部を実現してもよい。尚、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(或いは、表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。更に、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0058】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、或いは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。更に、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0059】
1 ディスクアレイ装置
3,4 RAIDグループ
20 主制御部
21 R/Wアクセス時間データ記録制御部
22 データブロックスワップ制御部
23,24 管理テーブル
25 スワップ先記憶部
26,27 データブロックキャッシュ
30~34 データブロック
40~44 データブロック
51 記録手段
52 スワップ制御手段
53 制御手段
図1
図2
図3
図4A
図4B
図5
図6
図7