JP5176854B2 - ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム - Google Patents

ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム Download PDF

Info

Publication number
JP5176854B2
JP5176854B2 JP2008262450A JP2008262450A JP5176854B2 JP 5176854 B2 JP5176854 B2 JP 5176854B2 JP 2008262450 A JP2008262450 A JP 2008262450A JP 2008262450 A JP2008262450 A JP 2008262450A JP 5176854 B2 JP5176854 B2 JP 5176854B2
Authority
JP
Japan
Prior art keywords
cache
memory
data
cache memory
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008262450A
Other languages
English (en)
Other versions
JP2010092318A (ja
Inventor
修材 添田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008262450A priority Critical patent/JP5176854B2/ja
Publication of JP2010092318A publication Critical patent/JP2010092318A/ja
Application granted granted Critical
Publication of JP5176854B2 publication Critical patent/JP5176854B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラムに関し、特に保守性向上、或いは可用性向上を目的としたディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラムに関する。
ディスクアレイサブシステムにおいては、複数の磁気ディスク装置を統合管理する冗長化ディスク(RAID、Redundant Arrays of Inexpensive Disks)制御技術を採用し、複数の磁気ディスク装置を並列に動作させることによって、高速にデータの読み出しや書き込みを行うことができるようになっている。しかし、RAID技術を採用した場合でも、磁気ディスク装置がひとつのI/O(Input/Output)を処理するには、ミリ秒オーダの時間を要するため、一般的なディスクアレイサブシステムでは、磁気ディスク装置から読み出したデータ、或いは、磁気ディスク装置へ書き込むべきデータを一時的に保持する、キャッシュメモリを装備し、より高速なI/O処理を実現している。
キャッシュメモリを装備することによって、頻繁に読み出されるデータは、毎回磁気ディスク装置から読み出す必要がなくなり、また、キャッシュメモリに書き込んだ時点で、ホストへ書き込み完了のレスポンスを返すことができるようになる。さらに、ホストから発行されるリード要求が、磁気ディスク装置の連続的なアドレスであった場合には、ホストからの要求アドレスよりも先のデータをまとめてキャッシュに読み込んでおくことで、以降のリード要求に対する磁気ディスク装置へのアクセス回数を最少化したり、或いは、書き込むべきデータを、磁気ディスク装置にとって都合の良いサイズにまとめたりすることができる。これにより、特にパリティRAIDにおけるライトペナルティを、軽減することができるなど、キャッシュメモリを装備しないディスクアレイサブシステムに比べて、数十倍の高速化を図ることが可能となる。
ここで、ライトペナルティとは、パリティデータを生成するために必要となる磁気ディスク装置からの読み出し処理のことである。ホストから要求される前に、事前にデータをキャッシュメモリへ読み出しておく動作を、一般的にはプリフェッチリードや先読みと呼んでおり、磁気ディスク装置へデータを書き込む前に、ホストへ書き込み完了のレスポンスを返す動作を、一般的にはファストライトや遅延書き込みなどと呼んでいる。
一方、磁気ディスク装置への書き込みが完了する前に、ホストに対して、書き込み完了のレスポンスを返すために、キャッシュメモリに保持した未書き込みデータが失われないことを保証することが重要となってくる。例えば、2つのキャッシュメモリを冗長構成にすることによって、片方のキャッシュメモリが故障した場合でも、もう一方のキャッシュメモリに保持したデータを使用して、データを失うことなく、書き込み処理を継続できるようにする。しかし、キャッシュメモリが冗長構成でなくなった時点で、新たに受信した書き込み要求は、磁気ディスク装置に書き込まれるまでホストに書き込み完了のレスポンスを返すことができなくなるので、キャッシュメモリを搭載したことによる性能改善は見込めなくなる。従って、基幹系のシステムで使われるような、ハイエンドに位置するディスクアレイサブシステムでは、4つのキャッシュメモリを冗長構成とすることによって、ひとつのキャッシュメモリが故障しても、冗長性を維持し、書き込み性能が低下するのを防いでいる。
ここで、ディスクアレイサブシステムのキャッシュメモリについて、図11を用いて詳細に説明する。図11は、ディスクアレイサブシステムのメモリ構成を示したブロック図である。図11に示したディスクアレイサブシステムの例では、各ハードウェア部品は、単一の障害であれば処理を継続できるように、クラスタ構成を採用している。図11では、クラスタ90aは2つのメモリコントローラ20a、20cを含み、クラスタ90bは2つのメモリコントローラ20b、20dを含む。
メモリコントローラ20aは、データを格納するキャッシュメモリ80aを搭載しており、同様にメモリコントローラ20cは、キャッシュメモリ80cを搭載している。メモリコントローラ20aは、キャッシュメモリに格納されているデータを管理するためのテーブルである、ディレクトリ70aも有しており、このディレクトリ70aが、キャッシュメモリ80aとキャッシュメモリ80cとを合わせたメモリ空間を管理する。クラスタ90bもクラスタ90aとハードウェア的にまったく同じ構成で、かつ、ディレクトリ70aとディレクトリ70bもまったく同じテーブルとなっているので、データの格納は、クラスタ90aとクラスタ90bの同一アドレスのキャッシュメモリに対して実行されることになる。
図12を用いて、ディレクトリについてさらに詳細に説明する。ディレクトリとは、キャッシュメモリをある固定長のサイズに分割したメモリブロック(以降、キャッシュページ、あるいは単にページと呼ぶ)に、どのようなデータが保持されているかを示したテーブルである。図12は、正常状態におけるメモリ構成を示した機能ブロック図である。図12のディレクトリ70aは、キャッシュメモリ80aのサイズを1GB、キャッシュメモリ80cのサイズを1GB、ページサイズを32KBとしたときの一例である。合計ページ数は2GBを32KBで割った65536ページとなり、ページ0が保持しているデータは、論理ディスク2の論理ブロック0x40に、ページ1が保持しているデータは、論理ディスク1の論理ブロック0x80に書き込むべきデータであることを示している。
また、ページ65535が保持しているデータは、論理ディスク2の論理ブロック0x80から読み出したデータであることを示しており、ページ2には有効なデータが格納されていないことを示している。この例では、2つのキャッシュメモリ80a,80cを図示しているが、クラスタ90a内にひとつのキャッシュメモリしか存在しないときは、そのキャッシュメモリだけをディレクトリ70aで管理する。
キャッシュメモリは冗長構成となっており、データはキャッシュメモリ80aとキャッシュメモリ80bの同一ページに二重書きされ、キャッシュメモリ80cとキャッシュメモリ80dの同一ページに二重書きされているので、ディレクトリ70bはディレクトリ70aとまったく同じ情報を保持することになる。
このようなキャッシュメモリを冗長化した記憶装置システムの一例が特許文献1に開示されている。特許文献1の記憶システムは、同一のディスク装置を共有する2つのクラスタのキャッシュメモリに相手のクラスタのキャッシュメモリのライトデータを相互に冗長化する。その他、本発明に関連する文献として、特許文献2、3、及び4がある。
キャッシュメモリを搭載したディスクアレイサブシステムにおいて、2つのキャッシュメモリが故障すると冗長性を維持することができなくなるために、以後のホストからの書き込み要求に対して、ファストライト動作を実行できなくなることがある。この場合、冗長性のないキャッシュメモリにおいてファストライトを継続し、そのキャッシュメモリが故障したとすると、データを失うことになるため、キャッシュメモリにデータを格納した後、直ちにホストへ書き込み完了のレスポンスを返すのではなく、磁気ディスク装置への書き込みが完了してから、ホストへ書き込み完了のレスポンスを返すのが一般的である。このときの動作を、ライトスルー動作と呼ぶ。
ファストライト動作を実行できなくなる理由を図13と図14を用いて詳しく説明する。図13は、メモリコントローラが1台故障した状態におけるメモリ構成を示した機能ブロック図である。図14は、メモリコントローラが2台故障した状態におけるメモリ構成を示した機能ブロック図である。
図13に示すように、メモリコントローラ20cが故障したとすると、メモリコントローラ20aとメモリコントローラ20bのペアは、冗長構成となっているのでファストライトを継続できるが、メモリコントローラ20cとメモリコントローラ20dのペアは、非冗長構成となるために、ファストライトを行うことができなくなる。メモリコントローラ20cが故障したとしても、ディレクトリ70aとディレクトリ70bは同一の内容を維持するが、実際にはページ32768〜65535はキャッシュメモリ80dにしか存在しなくなるので、当該ページへのアクセス要求があった場合は、メモリコントローラ20dにだけアクセスが実行されることになる。さらに、図14に示すように、メモリコントローラ20bが故障したとすると、メモリコントローラ20dにディレクトリ70dが再構築されるが、メモリコントローラ20aとメモリコントローラ20bのペアも非冗長構成となるので、ファストライトをまったく行うことができなくなる。このとき、ディレクトリ70aとディレクトリ70dは同一の内容を維持するが、実際には、ページ0〜32767はキャッシュメモリ80aにしか存在しなくなるので、当該ページへのアクセス要求があった場合には、メモリコントローラ20aにだけアクセスが実行されることになる。
特開2005−043930号公報 特開2001−344154号公報 特開平10−198602号公報 特開平06−035802号公報
このように、上述した技術では、メモリコントローラが故障等で使用不能となった場合に、ファストライト動作を継続することができないことがあるという問題があった。その理由は、第1のクラスタ(クラスタ90a)において生存しているメモリコントローラは、第2のクラスタ(クラスタ90b)におけるメモリコントローラのディレクトリと同一内容を維持する必要があるため、データを復旧して、キャッシュメモリの任意の格納アドレスに新たにデータを書き込み、冗長性を回復することが困難であるためである。
本発明の目的は、メモリコントローラが使用不能となった場合に、ファストライト動作を継続することができないという課題を解決するディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラムを提供することにある。
本発明のディスクアレイサブシステムは、ディスク装置を共有し、同一のキャッシュデータを格納する第1のクラスタと第2のクラスタとを含み、第1のクラスタは、キャッシュデータの少なくとも一部を格納する第1のキャッシュメモリと、キャッシュデータの格納アドレスを決定する第1のメモリコントローラとを含み、第2のクラスタは、キャッシュデータの少なくとも一部を格納する第2のキャッシュメモリと、キャッシュデータの格納アドレスを決定する第2のメモリコントローラとを含み、第1及び第2のメモリコントローラは、互いに無関係に、キャッシュデータを格納するアドレスを決定する。
本発明のディスクアレイサブシステムのキャッシュ制御方法は、ディスク装置を共有し、同一のキャッシュデータを格納する第1のクラスタと第2のクラスタの内、第1のクラスタの第1のキャッシュメモリがキャッシュデータの少なくとも一部を格納し、第1のクラスタの第1のメモリコントローラがキャッシュデータの格納アドレスを決定し、第2のクラスタの第2のキャッシュメモリがキャッシュデータの少なくとも一部を格納し、第2のクラスタの第2のメモリコントローラがキャッシュデータの格納アドレスを決定し、第1及び第2のメモリコントローラは、互いに無関係に、キャッシュデータを格納するアドレスを決定する。
本発明のプログラムは、コンピュータを、ディスク装置を共有し、同一のキャッシュデータを格納する第1のクラスタと第2のクラスタの内、第1のクラスタの第1のキャッシュメモリにキャッシュデータの少なくとも一部を格納させ、第1のクラスタの第1のメモリコントローラに、第2のクラスタの第2のメモリコントローラがキャッシュデータの第2のキャッシュメモリにおける格納アドレスを決定するのとは無関係に、キャッシュデータの第1のキャッシュメモリにおける格納アドレスを決定させる手段として機能させる。
本発明は、メモリコントローラが使用不能となった場合においてもファストライト動作を継続することができるという効果を有する。
次に本発明の概要について説明する。図1は、ディスクアレイサブシステム600の概要を示す図である。ディスクアレイサブシステム600は、ディスク装置を共有し、同一のキャッシュデータを格納するクラスタ90a、90bを含む。
クラスタ90aは、キャッシュデータの格納アドレスを決定するメモリコントローラ20aを含む。メモリコントローラ20aは、キャッシュデータの少なくとも一部を格納するキャッシュメモリ80aを含む。
クラスタ90bは、キャッシュデータの格納アドレスを決定するメモリコントローラ20bを含む。メモリコントローラ20bは、キャッシュデータの少なくとも一部を格納するキャッシュメモリ80bを含む。
コントローラ20a及びコントローラ20bは、それぞれ独立して互いに無関係に、キャッシュデータを格納するアドレスを決定する。
より具体的には、図2に示すように、データ自体はキャッシュメモリ80a、80cとキャッシュメモリ80b、80dの両方に格納されるが、ディレクトリ70aとディレクトリ70bとをそれぞれ関係することなく個別に管理することにより、それぞれのデータを異なるアドレスのページに格納できる。例えば、キャッシュメモリ80aとキャッシュメモリ80bとの間で、データを二重書きしても良いし、キャッシュメモリ80aとキャッシュメモリ80dとの間で、データを二重書きしても良い。同様に、キャッシュメモリ80cとキャッシュメモリ80bの間で、データを二重書きしても良いし、キャッシュメモリ80cとキャッシュメモリ80dとの間で、データを二重書きしても良い。
これにより、本発明は、メモリコントローラが使用不能となった場合においてもファストライト動作を継続することができるという効果を有する。
その理由は、メモリコントローラ20a,20bが、それぞれ独立して互いに無関係に、データを格納するアドレスを決定するためである。即ち、クラスタ90aにおいてメモリコントローラが使用不能となった場合においても、クラスタ90aにおいて生存しているメモリコントローラ20aは、クラスタ90bのメモリコントローラ20bのディレクトリと同一内容を維持する必要がなく、キャッシュメモリ80aの任意の格納アドレスに復旧したデータを書き込み、冗長性を回復することが可能であるためである。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図3は、ディスクアレイサブシステム600の全体構成を示すブロック図である。ディスクアレイサブシステム600は、ホストコントローラ10a,10b、メモリコントローラ20a〜20d、ディスクコントローラ30a,30b、内部スイッチ40a,40b、ディスクエンクロージャ500という主要コンポーネントを含む。また、クラスタ構成となっており、クラスタ90aは、クラスタ90bと同一機能を提供し、クラスタ90bと同一のキャッシュデータを格納する。ディスクエンクロージャ500を除くコンポーネントは、クラスタ90a又はクラスタ90bに含まれる。この例では、メモリコントローラ20a,20cとメモリコントローラ20b,20dとの間で、データを二重書きしている。
図4は、本実施の形態において、正常状態の一動作例を示した図である。
ファームウェアにより制御されるメモリコントローラ20a〜20dには、それぞれ1GBのキャッシュメモリ80a〜80dが搭載されており、ページサイズは32KBとする。メモリコントローラ20aには、キャッシュメモリ80a,80cを管理するディレクトリ70aが構築されており、初期状態では、いずれのページにも有効なデータが格納されていないことを示す値が書き込まれている。同様に、メモリコントローラ20bには、キャッシュメモリ80b,80dを管理するディレクトリ7bが構築されており、初期状態では、いずれのページにも有効なデータが格納されていないことを示す値が書き込まれている。
メモリコントローラ20aは、他のメモリコントローラが使用不能であることを検出する監視部01aを含む。また、メモリコントローラ20aは、例えば、キャッシュデータをキャッシュメモリ80a及び80cの少なくとも一方からキャッシュメモリ80bに複製する復旧部02aを含む。
同様に、メモリコントローラ20b,20c、20dは、それぞれ、他のメモリコントローラが使用不能であることを、検出する監視部01b,01c,01dを含み、キャッシュデータを複製し、別のメモリコントローラのキャッシュメモリに格納する復旧部02b,02c,02dを含む。
次に、各コンポーネントの動作を、ホストライトコマンド処理を例に説明する。
ホストライトコマンドを図3に示したホストコントローラ10aが受信すると、まずメモリコントローラ20a、20cの中から、当該ライトデータを格納するためのキャッシュページを獲得する。より具体的には、メモリコントローラ20aは、メモリコントローラ20aが保持するディレクトリ70aを検索し、当該ライト要求と同一アドレスのキャッシュページがすでに存在すれば、そのページがデータを格納すべきページであると判断し、当該ライト要求と同一アドレスのキャッシュページが存在しなければ、新たにページを獲得することになる。このとき、割り当てるページをどのように決定するかは、ディスクアレイサブシステム600の制御方法により異なり、様々なアルゴリズムが存在するが、一般的には、LRU(Least Recently Used)アルゴリズムが用いられる。次に、ホストコントローラ10aは、メモリコントローラ20b,20dの中からも、同様にライトデータを格納するためのキャッシュページを獲得し、それぞれのページに対して、ホストからのライトデータを転送する。
図3及び図4に示す例では、ホストコントローラ10aが、論理ディスク2番、論理ブロック番号0x80番へのライトコマンドを受信し、そのデータを格納するページが、キャッシュメモリ80cのページ65535とキャッシュメモリ80bのページ1に互いに無関係に、それぞれ独立して決定されたときの様子を示している。ディスクコントローラ30a、3bは、ディレクトリ70a、もしくはディレクトリ70bを検索し、ページ属性がdirtyのページがあれば、当該ページのデータを、ディスクエンクロージャ500の中の磁気ディスク装置に書き落とし、ページ属性を適切な属性に変更する。一般的には、磁気ディスク装置と当該キャッシュページのデータとが一致していることを示すために、clean属性に変更するが、当該キャッシュページ内に有効なデータが格納されていないことを示す属性に変更しても良い。また、ページ属性がdirtyのページを無作為に抽出して書き落とすのではなく、一般的には、ディスクエンクロージャ500に構築されているRAIDタイプによって最適な書き込みとなるように、スケジューリングする。
次に、ホストコントローラ10aがライトデータをキャッシュページに書き込んだ後、ディスクコントローラ30a,30bが当該ライトデータをディスクエンクロージャ500に書き込む前に、メモリコントローラ20cが故障したときの動作について、図5及び図8を参照して説明する。
図5は、本実施の形態において、メモリコントローラが1台故障した状態の一動作例を示した図である。図8は、本実施の形態において、メモリコントローラが1台故障した状態の動作例を示すシーケンス図である。監視部01a及び監視部01bが、メモリコントローラ20cの故障を検知すると(A1)、監視部01aは、キャッシュメモリ80cに格納されていたデータを無効化するために、ディレクトリ70aを初期化、再構築する(A2)。クラスタ90aのキャッシュメモリの全容量は1GBとなるので、ページ番号は0〜32767となる。また、キャッシュメモリ80cに格納されていたdirty属性のデータを復旧するために、復旧部02bは、ディレクトリ70bを検索する(A3)。dirty属性のページを見つけたときは(A4,Y)、監視部01bは、そのページに対応する論理ディスク番号と論理ブロック番号の情報をメモリコントローラ20aに送信し(A5)、メモリコントローラ20aが、受信する(A6)。
メモリコントローラ20aの復旧部02aは、ディレクトリ70aを検索する(A7)。受信した情報が示す論理ディスク番号と論理ブロック番号のdirty属性のページが存在しなかったときは(A8,N)、新たにページを獲得(A9)し、そのページ番号の情報をメモリコントローラ20bに送信する(A10)。復旧部02bは、ページ番号の情報を受信し(A11)、キャッシュメモリ80aの当該ページ番号領域に対してdirtyデータをコピーする(A12)。図5の例では、キャッシュメモリ80aのページ0に対して、キャッシュメモリ80bのページ1からdirtyデータが転送された後の様子を示している。
次に、メモリコントローラ20cが故障した際の復旧動作が完了し、dirtyデータが再び二重化された後に、メモリコントローラ20bが故障したときの動作について、図6及び図9を参照して説明する。
図6は、本実施の形態において、メモリコントローラが2台故障した状態の一動作例を示した図である。図9は、本実施の形態において、メモリコントローラが2台故障した状態の動作例を示すシーケンス図である。監視部01a及び監視部01dが、メモリコントローラ20bの故障を検知すると(B1)、監視部01dは、ディレクトリ70bを再構築する(B2)。クラスタ90bのキャッシュメモリの全容量は1GBとなるので、ページ番号は32768〜65535となる。また、キャッシュメモリ80bに格納されていたdirty属性のデータを復旧するために、復旧部02aは、ディレクトリ70aを検索し(B3)。dirty属性のページを見つけたときは(B4,Y)、監視部01aは、そのページに対応する論理ディスク番号と論理ブロック番号の情報をメモリコントローラ20bに送信し(B5)、メモリコントローラ20bが、受信する(B6)。
メモリコントローラ20bの復旧部02dは、ディレクトリ70bを検索する(B7)。受信した情報が示す論理ディスク番号と論理ブロック番号のdirty属性のページが存在しなかったときは(B8,N)、新たにページを獲得(B9)し、そのページ番号の情報をメモリコントローラ20aに送信する(B10)。復旧部02aは、ページ番号の情報を受信し(B11)、キャッシュメモリ80dの当該ページ番号領域に対してdirtyデータをコピーする(B12)。図9の例では、キャッシュメモリ80dのページ32768に対して、キャッシュメモリ80aのページ0からdirtyデータを転送した後の様子を示している。
以上説明してきたように、第1の実施の形態は、クラスタ90a,90bそれぞれに少なくともひとつのメモリコントローラが生存すれば、複数のメモリコントローラが故障したとしても、ファストライトを継続することができるので、高速なI/O処理性能を維持することができるという効果を有する。その理由は、クラスタ90a,90b毎にディレクトリを個別に管理することによって、冗長データの格納アドレスを任意に選択することができるためである。
次に、本発明の第2の実施の形態を図7と図11を比較参照して詳細に説明する。
前述の図11においては、メモリコントローラ20aと20bがペアとなり、メモリコントローラ20cと20dとがペアとなっているため、例えば、メモリコントローラ20aのキャッシュメモリだけを増設したとしても、メモリコントローラ20bに搭載しているキャッシュメモリがそれより少なければ、少ない容量に合わせることになり、増設したキャッシュメモリを有効に利用することができなかった。これにより例えば、メモリコントローラ20cが故障したときに、キャッシュメモリ80cは正常であったとしても、そのキャッシュメモリ80cを正常なメモリコントローラ20aに搭載して、再利用することができなかった。
図7は、本実施の形態において、メモリコントローラ20cが故障した後に、キャッシュメモリ80cをメモリコントローラ20aに載せ換えた後のメモリ構成を示した機能ブロック図である。図10は、本実施の形態において、メモリコントローラが1台故障した状態の動作例を示すシーケンス図である。
監視部01a,01bがメモリコントローラ20cの故障を検出した場合に(C1)、保守員等がメモリコントローラ20cは故障したが、キャッシュメモリ80cは正常であると判断し、かつ、メモリコントローラ20bが第1の実施の形態として示した図8の復旧処理をまだ行っていない場合には、当該キャッシュメモリ80cを取り外し、メモリコントローラ20aの空きスロットに搭載する。メモリコントローラ20aの監視部01aは、キャッシュメモリ80cが増設されたことを検出し(C2)、ディレクトリ70aを再構築する(C3)。キャッシュメモリの容量は2GBとなるので、ページ番号は0〜65535となる。このとき、ページ番号0〜32767がキャッシュメモリ80aに割り当てられ、ページ番号32768〜65535がキャッシュメモリ80cに割り当てられることになる。また、キャッシュメモリ80cに格納されていたdirty属性のデータを復旧するために、復旧部02bは、ディレクトリ70bを検索し(C4)、dirty属性のページを探索する。dirty属性のページが見つかったときは(C5,Y)、メモリコントローラ20aに対し、dirty属性のページの論理ディスク番号と論理ブロック番号を送信する(C6)。
復旧部02aはdirty属性のページの論理ディスク番号と論理ブロック番号を受信し(C7)、ディレクトリ70aを検索する(C8)。ディレクトリ70aにおいて同一アドレスのdirty属性のページが存在しなかったときは(C9,N)、新たにページを獲得し(C10)、メモリコントローラ20bに対し、そのページ番号を送信する(C11)。復旧部02bは、ページ番号を受信し(C12)、そのページに対してdirtyデータをコピーする。図7の例では、キャッシュメモリ80aのページ0に対して、キャッシュメモリ80bのページ1からdirtyデータを転送した後の状態を示している。
以上説明したように、第2の実施の形態は、可用性を向上させることができるという効果を有する。その理由は、故障したメモリコントローラ20cに搭載されているキャッシュメモリ80cが正常であるときは、同一クラスタ90a内の正常なメモリコントローラ20aに載せ換えることにより、故障したメモリコントローラ20cを交換するまでの間も、キャッシュ容量の減少を防ぐことが可能となるためである。
ディスクアレイサブシステム600の概要を示す図である。 本発明における、正常状態におけるメモリ構成を示した機能ブロック図である。 ディスクアレイサブシステム600の全体構成を示すブロック図である。 本実施の形態において、正常状態の一動作例を示した図である。 本実施の形態において、メモリコントローラが1台故障した状態の一動作例を示す図である。 本実施の形態において、メモリコントローラが2台故障した状態の一動作例を示す図である。 本発明の第2の実施の形態において、メモリコントローラ20cが故障した後に、キャッシュメモリ80cをメモリコントローラ20aに載せ換えた後のメモリ構成を示した機能ブロック図である。 本実施の形態において、メモリコントローラが1台故障した状態の動作例を示すシーケンス図である。 本実施の形態において、メモリコントローラが2台故障した状態の動作例を示すシーケンス図である。 本実施の形態において、メモリコントローラが1台故障した状態の動作例を示すシーケンス図である。 ディスクアレイサブシステムのメモリ構成を示したブロック図である。 正常状態におけるメモリ構成を示した機能ブロック図である。 メモリコントローラが1台故障した状態におけるメモリ構成を示した機能ブロック図である。 メモリコントローラが2台故障した状態におけるメモリ構成を示した機能ブロック図である。
符号の説明
01a,01b,01c,01d 監視部
02a,02b,02c,02d 復旧部
10a,10b ホストコントローラ
20a,20b,20c,20d メモリコントローラ
30a,30b ディスクコントローラ
40a,40b 内部スイッチ
70a,70b ディレクトリ
80a,80b,80c,80d キャッシュメモリ
90a,90b クラスタ
500 ディスクエンクロージャ
600 ディスクアレイサブシステム

Claims (4)

  1. ディスク装置を共有し、同一のキャッシュデータを格納する第1のクラスタと第2のクラスタとを含み、
    前記第1のクラスタは、
    前記キャッシュデータの少なくとも一部を格納する第1のキャッシュメモリと、前記キャッシュデータが格納されるキャッシュページ番号を決定する第1のメモリコントローラと、前記第1のキャッシュメモリが格納するキャッシュデータとは異なるキャッシュデータを格納する第3のキャッシュメモリを備えた第3のメモリコントローラとを含み、
    前記第2のクラスタは、
    前記キャッシュデータの少なくとも一部を格納する第2のキャッシュメモリと、前記キャッシュデータが格納されるキャッシュページ番号を決定する第2のメモリコントローラとを含み、
    前記第1及び第2のメモリコントローラは、互いに無関係に、キャッシュデータを格納するキャッシュページ番号を決定し、
    前記第1のメモリコントローラは、前記第1のクラスタに第4のキャッシュメモリが接続されたことを検出する第1の監視部を含み、
    前記第2のメモリコントローラは、
    前記第3のメモリコントローラが使用不能であることを検出する第2の監視部と、
    前記第2の監視部が前記第3のメモリコントローラが使用不能であることを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記ダーティーデータを前記第2のキャッシュメモリから第1のキャッシュメモリに複製する復旧部
    を含み、
    前記第1の監視部が前記第1のクラスタに第4のキャッシュメモリが接続されたことを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記復旧部は、前記ダーティーデータを前記第2のキャッシュメモリから前記第4のキャッシュメモリに複製する
    ディスクアレイサブシステム。
  2. 前記第4のキャッシュメモリは、前記第3のメモリコントローラが使用不能であることが検出された後、取り外された前記第3のキャッシュメモリである
    請求項1に記載のディスクアレイサブシステム。
  3. 第1のクラスタと第2のクラスタとに、ディスク装置を共有させ、
    前記第1のクラスタと前記第2のクラスタで互いに無関係に、キャッシュデータを格納するキャッシュページ番号を決定し、
    第1のクラスタと第2のクラスタとに、同一のキャッシュデータを格納し、
    前記第1のクラスタが含む第1のキャッシュメモリに、前記キャッシュデータの少なくとも一部を格納し、
    前記第1のクラスタが含む第3のメモリコントローラが備える、第3のキャッシュメモリに、前記第1のキャッシュメモリが格納するキャッシュデータとは異なるキャッシュデータを格納し、
    前記第2のクラスタが含む、第2のキャッシュメモリに、前記キャッシュデータの少なくとも一部を格納し、
    前記第3のメモリコントローラが使用不能であることを検出し、
    前記第3のメモリコントローラが使用不能であることを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記ダーティーデータを前記第2のキャッシュメモリから第1のキャッシュメモリに複製し、
    前記第1のクラスタに第4のキャッシュメモリが接続されたことを検出し、
    前記第1のクラスタに第4のキャッシュメモリが接続されたことを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記ダーティーデータを前記第2のキャッシュメモリから前記第4のキャッシュメモリに複製する
    ディスクアレイサブシステムのキャッシュ制御方法。
  4. キャッシュデータの少なくとも一部を格納する第1のキャッシュメモリと、
    第1のクラスタに第4のキャッシュメモリが接続されたことを検出する第1の監視部を含み、前記キャッシュデータが格納されるキャッシュページ番号を決定する第1のメモリコントローラと、
    前記第1のキャッシュメモリが格納するキャッシュデータとは異なるキャッシュデータを格納する第3のキャッシュメモリを備えた第3のメモリコントローラと
    を含む前記第1のクラスタが含まれるディスクアレイサブシステムに含まれ、前記第1のクラスタとディスク装置を共有し、前記第1のクラスタと同一の前記キャッシュデータを格納する、第2のクラスタ
    に含まれるコンピュータを、
    前記第2のクラスタが含む、前記キャッシュデータの少なくとも一部を格納する第2のキャッシュメモリの、前記キャッシュデータが格納されるキャッシュページ番号を、前記第1のメモリコントローラと無関係に決定する手段と、
    前記第3のメモリコントローラが使用不能であることを検出する第2の監視部と、
    前記第2の監視部が前記第3のメモリコントローラが使用不能であることを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記ダーティーデータを前記第2のキャッシュメモリから第1のキャッシュメモリに複製し、前記第1の監視部が前記第1のクラスタに第4のキャッシュメモリが接続されたことを検出した場合、前記第2のキャッシュメモリに前記ディスク装置への書込みが完了していないダーティーデータが存在し、前記第1のキャッシュメモリに前記ダーティーデータと論理ディスク番号及び論理ブロック番号が同一であるダーティーデータが存在しなかった場合、前記ダーティーデータを前記第2のキャッシュメモリから前記第4のキャッシュメモリに複製する復旧部
    として機能させるためのプログラム。
JP2008262450A 2008-10-09 2008-10-09 ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム Expired - Fee Related JP5176854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008262450A JP5176854B2 (ja) 2008-10-09 2008-10-09 ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008262450A JP5176854B2 (ja) 2008-10-09 2008-10-09 ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010092318A JP2010092318A (ja) 2010-04-22
JP5176854B2 true JP5176854B2 (ja) 2013-04-03

Family

ID=42254958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008262450A Expired - Fee Related JP5176854B2 (ja) 2008-10-09 2008-10-09 ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5176854B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9031154B2 (en) 2010-04-13 2015-05-12 Lenovo Innovations Limited (Hong Kong) OFDM modulator, OFDM transmission device, and OFDM modulation method
JP6878977B2 (ja) * 2017-03-21 2021-06-02 日本電気株式会社 制御装置、ディスクアレイ装置、制御方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3204143B2 (ja) * 1997-01-06 2001-09-04 日本電気株式会社 ディスクキャッシュの制御方法
JP2005122453A (ja) * 2003-10-16 2005-05-12 Hitachi Ltd ストレージ装置のディスクコントローラ制御方式およびストレージ装置
JP4454299B2 (ja) * 2003-12-15 2010-04-21 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の保守方法
JP2008047029A (ja) * 2006-08-21 2008-02-28 Nec Corp ストレージシステム及びキャッシュの冗長化方法とコンピュータプログラム

Also Published As

Publication number Publication date
JP2010092318A (ja) 2010-04-22

Similar Documents

Publication Publication Date Title
US6243795B1 (en) Redundant, asymmetrically parallel disk cache for a data storage system
US8495291B2 (en) Grid storage system and method of operating thereof
US8078906B2 (en) Grid storage system and method of operating thereof
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
US7054960B1 (en) System and method for identifying block-level write operations to be transferred to a secondary site during replication
US7930588B2 (en) Deferred volume metadata invalidation
US8452922B2 (en) Grid storage system and method of operating thereof
US20020069318A1 (en) Real time application accelerator and method of operating the same
CN110196818B (zh) 缓存数据的方法、缓存设备和存储系统
US20150199244A1 (en) Intelligent i/o cache rebuild in a storage controller
US8407437B1 (en) Scalable metadata acceleration with datapath metadata backup
US20050086559A1 (en) Storage system using fast storage devices for storing redundant data
US8806134B2 (en) Mirrored cache protection
JP2001142778A (ja) キャッシュ・メモリを管理する方法、多重細分性キャッシュ・メモリ・システム、及び該システムを制御するメモリ媒体
CN111857540B (zh) 数据存取方法、装置和计算机程序产品
WO2012041601A1 (en) Intelligent write caching for sequential tracks
US20100146206A1 (en) Grid storage system and method of operating thereof
TW201107981A (en) Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
JP2023055998A (ja) ストレージシステム及びストレージシステムの制御方法
US11216388B2 (en) Tiering between storage media in a content aware storage system
CN110134551B (zh) 一种持续数据保护方法及装置
US9262088B2 (en) Use of flash cache to improve tiered migration performance
US7130973B1 (en) Method and apparatus to restore data redundancy and utilize spare storage spaces
JP5176854B2 (ja) ディスクアレイサブシステム、ディスクアレイサブシステムのキャッシュ制御方法、及びプログラム
US20140372672A1 (en) System and method for providing improved system performance by moving pinned data to open nand flash interface working group modules while the system is in a running state

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121224

R150 Certificate of patent or registration of utility model

Ref document number: 5176854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees