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

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

▶ 日立ヴァンタラ株式会社の特許一覧

特開2025-2388ストレージ装置、及びストレージ装置の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025002388
(43)【公開日】2025-01-09
(54)【発明の名称】ストレージ装置、及びストレージ装置の制御方法
(51)【国際特許分類】
   G06F 3/06 20060101AFI20241226BHJP
【FI】
G06F3/06 306Z
G06F3/06 302A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023102543
(22)【出願日】2023-06-22
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】中條 徳男
(72)【発明者】
【氏名】高田 正法
(57)【要約】
【課題】ストレージ装置のパフォーマンスを維持しつつ、データの信頼性や可用性を確保する。
【解決手段】ストレージ装置は、第1メモリを有する第1制御装置と、第2メモリを有する第2制御装置と、第3メモリを有するメモリモジュールとを備える。第1メモリは、論理アドレスと物理アドレスの対応を含むドライブ制御情報と、データI/O処理における第1キャッシュデータと、第1キャッシュデータの論理アドレスとキャッシュアドレスの対応を含む第1キャッシュ制御情報とを記憶する。第2メモリは、ドライブ制御情報と、データI/O処理における第2キャッシュデータと、第2キャッシュデータの論理アドレスとキャッシュアドレスの対応を含む第2キャッシュ制御情報とを記憶する。第3メモリは、冗長化された第1キャッシュデータと、冗長化された第2キャッシュデータとを記憶する。
【選択図】図3A
【特許請求の範囲】
【請求項1】
他の装置と通信可能に接続し、
前記他の装置から受信したデータI/O要求に応じて記憶装置に対するデータI/O処理を行うストレージ装置であって、
第1メモリを有する第1制御装置と、
第2メモリを有するとともに前記第1制御装置と通信可能に接続する第2制御装置と、
前記第1制御装置及び前記第2制御装置と通信可能に接続し、第3メモリを有するメモリモジュールと、
を備え、
前記第1メモリは、
前記他の装置が前記データI/O処理で取り扱うデータの所在を示す情報である論理アドレスと、前記記憶装置における前記データの所在を示す情報である物理アドレスとの対応を管理する情報であるドライブ制御情報と、
前記データI/O処理における第1キャッシュデータと、
前記第1キャッシュデータの前記論理アドレスと、前記第1キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第1キャッシュ制御情報と、
を記憶し、
前記第2メモリは、
前記ドライブ制御情報と、
前記データI/O処理における第2キャッシュデータと、
前記第2キャッシュデータの前記論理アドレスと、前記第2キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第2キャッシュ制御情報と、
を記憶し、
前記第3メモリは、
前記第1キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第1キャッシュデータと、
前記第2キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第2キャッシュデータと、
を記憶し、
前記第1制御装置が閉塞した場合、
前記第3メモリが記憶する前記第1キャッシュデータを消去し、
前記第2メモリが記憶する前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを第3ダーティキャッシュデータとして前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第3キャッシュ制御情報を生成して前記第3メモリに記憶し、
前記第3メモリが前記閉塞前から記憶している前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを前記第2メモリに移動し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記第2ダーティキャッシュデータを前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第3キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記ドライブ制御情報を前記第3メモリに転送する、
ストレージ装置。
【請求項2】
請求項1に記載のストレージ装置であって、
前記メモリモジュールが閉塞した場合、
前記第1メモリの前記第1キャッシュデータの第1ダーティキャッシュデータを前記第2メモリに転送し、
前記第2メモリの前記第2キャッシュデータの第2ダーティキャッシュデータを前記第1メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第1キャッシュ制御情報に反映し、
前記第1ダーティキャッシュデータの前記論理アドレスと、前記第1ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映する、
ストレージ装置。
【請求項3】
他の装置と通信可能に接続し、
前記他の装置から受信したデータI/O要求に応じて記憶装置に対するデータI/O処理を行うストレージ装置であって、
第1制御装置と、
前記第1制御装置と通信可能に接続する第2制御装置と、
前記第1制御装置及び前記第2制御装置と通信可能に接続し、第1メモリを有する第1メモリモジュールと、
前記第1制御装置及び前記第2制御装置と通信可能に接続し、第2メモリを有する第2メモリモジュールと、
前記第1制御装置及び前記第2制御装置と通信可能に接続し、第3メモリを有する第3メモリモジュールと、
を備え、
前記第1メモリは、
前記他の装置が前記データI/O処理で取り扱うデータの所在を示す情報である論理アドレスと、前記記憶装置における前記データの所在を示す情報である物理アドレスとの対応を管理する情報であるドライブ制御情報と、
前記データI/O処理における第1キャッシュデータと、
前記第1キャッシュデータの前記論理アドレスと、前記第1キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第1キャッシュ制御情報と、
を記憶し、
前記第2メモリは、
前記ドライブ制御情報と、
前記データI/O処理における第2キャッシュデータと、
前記第2キャッシュデータの前記論理アドレスと、前記第2キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第2キャッシュ制御情報と、
を記憶し、
前記第3メモリは、
前記第1キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第1キャッシュデータと、
前記第2キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第2キャッシュデータと、
を記憶し、
前記第1メモリモジュールが閉塞した場合、
前記第3メモリが記憶する前記第1キャッシュデータを消去し、
前記第2メモリが記憶する前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを第3ダーティキャッシュデータとして前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第3キャッシュ制御情報を生成して前記第3メモリに記憶し、
前記第3メモリが前記閉塞前から記憶している前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを前記第2メモリに移動し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記第2ダーティキャッシュデータを前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第3キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記ドライブ制御情報を前記第3メモリに転送する、
ストレージ装置。
【請求項4】
請求項3に記載のストレージ装置であって、
前記第3メモリモジュールが閉塞した場合、
前記第1メモリの前記第1キャッシュデータの第1ダーティキャッシュデータを前記第2メモリに転送し、
前記第2メモリの前記第2キャッシュデータの第2ダーティキャッシュデータを前記第1メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第1キャッシュ制御情報に反映し、
前記第1ダーティキャッシュデータの前記論理アドレスと、前記第1ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映する、
ストレージ装置。
【請求項5】
請求項1乃至4のいずれか一項に記載のストレージ装置であって、
前記第1制御装置及び前記第2制御装置は、プロセッサ、前記他の装置と通信する通信インタフェース、及び前記記憶装置と通信するドライブインタフェースを更に備える、
ストレージ装置。
【請求項6】
請求項1乃至4のいずれか一項に記載のストレージ装置であって、
前記メモリモジュールは、前記第1制御装置及び前記第2制御装置と通信するメモリコントローラを更に備える、
ストレージ装置。
【請求項7】
他の装置と通信可能に接続し、
前記他の装置から受信したデータI/O要求に応じて記憶装置に対するデータI/O処理を行い、
第1メモリを有する第1制御装置と、
第2メモリを有するとともに前記第1制御装置と通信可能に接続する第2制御装置と、
前記第1制御装置及び前記第2制御装置と通信可能に接続し、第3メモリを有するメモリモジュールと、
を備える、ストレージ装置の制御方法であって、
前記第1メモリが、
前記他の装置が前記データI/O処理で取り扱うデータの所在を示す情報である論理アドレスと、前記記憶装置における前記データの所在を示す情報である物理アドレスとの対応を管理する情報であるドライブ制御情報と、
前記データI/O処理における第1キャッシュデータと、
前記第1キャッシュデータの前記論理アドレスと、前記第1キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第1キャッシュ制御情報と、
を記憶するステップ、
前記第2メモリが、
前記ドライブ制御情報と、
前記データI/O処理における第2キャッシュデータと、
前記第2キャッシュデータの前記論理アドレスと、前記第2キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第2キャッシュ制御情報と、
を記憶するステップ、
前記第3メモリが、
前記第1キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第1キャッシュデータと、
前記第2キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第2キャッシュデータと、
を記憶を記憶するステップ、
及び、
前記第1制御装置が閉塞した場合、
前記ストレージ装置が、
前記第3メモリが記憶する前記第1キャッシュデータを消去し、
前記第2メモリが記憶する前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを第3ダーティキャッシュデータとして前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第3キャッシュ制御情報を生成して前記第3メモリに記憶し、
前記第3メモリが前記閉塞前から記憶している前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを前記第2メモリに移動し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記第2ダーティキャッシュデータを前記第3メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第3キャッシュ制御情報に反映し、
前記第2メモリが記憶する前記ドライブ制御情報を前記第3メモリに転送するステップ、
を実行する、ストレージ装置の制御方法。
【請求項8】
請求項7に記載のストレージ装置の制御方法であって、
前記メモリモジュールが閉塞した場合に、
前記ストレージ装置が、
前記第1メモリの前記第1キャッシュデータの第1ダーティキャッシュデータを前記第2メモリに転送し、
前記第2メモリの前記第2キャッシュデータの第2ダーティキャッシュデータを前記第1メモリに転送し、
前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第1キャッシュ制御情報に反映し、
前記第1ダーティキャッシュデータの前記論理アドレスと、前記第1ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映するステップ、
を更に実行する、ストレージ装置の制御方法。
【請求項9】
請求項7又は8に記載のストレージ装置の制御方法であって、
前記第1制御装置及び前記第2制御装置は、プロセッサ、前記他の装置と通信する通信インタフェース、及び前記記憶装置と通信するドライブインタフェースを更に備える、
ストレージ装置の制御方法。
【請求項10】
請求項7又は8に記載のストレージ装置の制御方法であって、
前記メモリモジュールは、前記第1制御装置及び前記第2制御装置と通信するメモリコントローラを更に備える、
ストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置、及びストレージ装置の制御方法に関する。
【背景技術】
【0002】
近年、IT技術の進展やDX(Digital Transformation)の推進に伴うクラウドの利用率拡大等を背景として、DC(Data Center)やIDC(Internet Data Center)等で稼働するストレージ装置には、従来にも増して信頼性や可用性が求められるようになってきており、信頼性や可用性を高めるための様々な技術が提案されている。
【0003】
例えば、特許文献1には、2つの制御システムのうち情報の提供側として機能する制御システムのCPUの性能が過剰に消費され、システム全体の信頼性が低下するといった課題を解決することを目的として構成されたデータアクセスシステムについて記載されている。データアクセスシステムは、2つのメモリ共有装置と、メモリ共有装置に接続される2つの制御装置とを含む。2つのメモリ共有装置は、データアクセスシステムにおけるメモリ共有リソースプールを構成する。各制御装置は、各メモリ共有装置に対応し、少なくとも2つの制御装置における1つの制御装置がメモリ共有リソースプールにおけるデータを読み取る際、制御装置は、制御装置に対応するメモリ共有装置を利用することによりメモリ共有リソースプールにおける必要とされるデータを読み取る。各メモリ共有装置は、同じメモリ共有リソースプールに属し、複数のメモリユニットを有する。メモリユニットは、メモリ共有リソースプール全体における統一的なアドレッシングを受ける。各メモリ共有装置は、制御装置から受信したメモリアクセスリクエストを処理し、メモリユニットからデータを読み取る。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2016-513316号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ストレージ装置は、信頼性や可用性の確保を目的として、通常は制御装置(SSD(Solid State Drive)等の記憶ドライブに対してデータの入出力を行うコントローラ)を冗長化した構成を有する。また、ストレージ装置は、アクセス頻度の高いデータ等の一部のデータをDRAM(Dynamic Random Access Memory)等の高速なメモリに置くことによりパフォーマンスを高めるとともに、制御装置の夫々が備えるメモリに同じデータを置いて冗長化することにより可用性を高めている。
【0006】
しかし、こうした構成をとるストレージ装置においては、制御装置の一方が閉塞するとデータの冗長性が損なわれ、可用性が低下してしまうという課題がある。また、制御装置の一方が閉塞すると、例えば、記憶ドライブに直接データを書き込む運用に切り換えられるが、それによりストレージ装置のパフォーマンスが低下してしまう。
【0007】
特許文献1には、メモリユニットが、メモリ共有リソースプール全体における統一的なアドレッシングを受けることが記載されている。しかし、制御装置の一方が閉塞した場合に、ストレージ装置のパフォーマンスを維持しつつ、データの信頼性や可用性を確保する仕組みについては開示されていない。
【0008】
本発明は、ストレージ装置のパフォーマンスを維持しつつ、データの信頼性や可用性を確保することが可能な、ストレージ装置、及びストレージ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するための本発明の一つは、他の装置と通信可能に接続し、前記他の装置から受信したデータI/O要求に応じて記憶装置に対するデータI/O処理を行うストレージ装置であって、第1メモリを有する第1制御装置と、第2メモリを有するとともに前記第1制御装置と通信可能に接続する第2制御装置と、前記第1制御装置及び前記第2制御装置と通信可能に接続し、第3メモリを有するメモリモジュールと、を備え、前記第1メモリは、前記他の装置が前記データI/O処理で取り扱うデータの所在を示す情報である論理アドレスと、前記記憶装置における前記データの所在を示す情報である物理アドレスとの対応を管理する情報であるドライブ制御情報と、前記データI/O処理における第1キャッシュデータと、前記第1キャッシュデータの前記論理アドレスと、前記第1キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第1キャッシュ制御情報と、を記憶し、前記第2メモリは、前記ドライブ制御情報と、前記データI/O処理における第2キャッシュデータと、前記第2キャッシュデータの前記論理アドレスと、前記第2キャッシュデータの前記第1メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第2キャッシュ制御情報と、を記憶し、前記第3メモリは、前記第1キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第1キャッシュデータと、前記第2キャッシュ制御情報により論理アドレスとキャッシュアドレスの対応が管理される前記第2キャッシュデータと、を記憶し、前記第1制御装置が閉塞した場合、前記第3メモリが記憶する前記第1キャッシュデータを消去し、前記第2メモリが記憶する前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを第3ダーティキャッシュデータとして前記第3メモリに転送し、前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を管理する情報である第3キャッシュ制御情報を生成して前記第3メモリに記憶し、前記第3メモリが前記閉塞前から記憶している前記第2キャッシュデータのダーティキャッシュデータである第2ダーティキャッシュデータを前記第2メモリに移動し、前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第2メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第2キャッシュ制御情報に反映し、前記第2メモリが記憶する前記第2ダーティキャッシュデータを前記第3メモリに転送し、前記第2ダーティキャッシュデータの前記論理アドレスと、前記第2ダーティキャッシュデータの前記第3メモリにおける所在を示す情報であるキャッシュアドレスとの対応を前記第3キャッシュ制御情報に反映し、前記第2メモリが記憶する前記ドライブ制御情報を前記第3メモリに転送する。
【0010】
上記した以外の課題、構成及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【発明の効果】
【0011】
本発明によれば、ストレージ装置のパフォーマンスを維持しつつ、データの信頼性や可用性を確保することができる。
【図面の簡単な説明】
【0012】
図1】ストレージシステムの一例を示す図である。
図2A】データ読み出し処理の一例を示す図である。
図2B】データ書き込み処理の一例を示す図である。
図2C】記憶装置への書き込み処理の一例を示す図である。
図3A】第1実施形態にかかるストレージシステムの一例を示す図である。
図3B】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図3C】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図3D】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図3E】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図3F】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図3G】制御装置が閉塞した際のストレージ装置の動作を説明する図である。
図4】メモリモジュールが閉塞した際のストレージ装置の動作を説明する図である。
図5】第2実施形態にかかるストレージシステムの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しつつ本発明の実施形態について説明する。尚、以下の実施形態は、本発明を説明するための例示に過ぎず、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。とくに限定しない限り各構成要素は単数でも複数でも構わない。
【0014】
以下の説明において、同一又は同様の機能を有する構成要素が複数ある場合、同一の符号に異なる添字を付して説明することがある。また、これらの複数の構成要素をとくに区別する必要がない場合、添字を省略して説明することがある。
【0015】
以下では、各種情報の例として、「情報」、「データ」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造(「テーブル」、「表」等)で表現されてもよい。また、各構成を区別して説明する際に、「識別情報」、「識別子」、「ID」等の表現を用いるが、これらについてはお互いに置換が可能である。
【0016】
以下において、情報処理装置(コンピュータ、計算機)として機能する各種の装置がプログラムを実行して行う処理を説明する場合がある。情報処理装置は、プロセッサ(例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit))によりプログラムを実行し、記憶資源(例えば、メモリ)やインタフェースを用いつつ、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有する制御装置(コントローラ)、装置、システム、計算機、ノードであってもよい。
【0017】
プログラムを実行して行う処理の主体は、少なくとも演算部として機能するものであればよく、例えば、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等の特定の処理を行う専用回路を含んでいてもよい。
【0018】
また、以下の説明において、入出力のことを「I/O」(Input/Output)と、また、インタフェースのことを「I/F」(InterFace)と表記することがある。
【0019】
また、以下の説明において、符号の前に付した「S」の文字は処理ステップの意味である。
【0020】
図1に、ストレージシステム1の一例を示している。同図に示すように、例示するストレージシステム1は、ホスト装置2(「上位装置」、「サーバ装置」、「外部装置」等とも称される。)、通信システム5、及びストレージ装置10を含む。
【0021】
ホスト装置2は、通信システム5を介してストレージ装置10と通信可能に接続している。尚、通信システム5は、例えば、ストレージネットワーク(SAN:Storage Area Network)、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等である。
【0022】
ホスト装置2(他の装置)は、ストレージ装置10が通信システム5を介して提供する記憶領域をデータの格納場所として利用する情報処理装置(コンピュータ)であり、例えば、パーソナルコンピュータ、オフィスコンピュータ、メインフレーム(Mainframe)、スマートフォン、タブレット等である。ホスト装置2は、上記の記憶領域にアクセスする際、ストレージ装置10にI/O要求(データ書き込み要求、データ読み出し要求)を送信する。
【0023】
ストレージ装置10は、2つの制御装置100(第1制御装置100A、第2制御装置100B)と記憶装置17を有する。2つの制御装置100(第1制御装置100A、第2制御装置100B)と記憶装置107は、例えば、高速シリアル通信I/F(SATA(Serial ATA)等)、LAN、SAN等を介して通信可能に接続している。
【0024】
2つの制御装置100(第1制御装置100A、第2制御装置100B)は、例えば、ストレージ装置10の筐体(ケース、ラック等)に、例えば、夫々が独立した基板(回路基板)として着脱可能な状態で設けられる。尚、第1制御装置100Aと第2制御装置100Bは、基本的な構成が共通するため、以下では、共通する構成について説明する際は原則として第1制御装置100Aについてのみ説明するものとする。尚、ホスト装置2から送信されたデータI/O要求を2つの制御装置100(第1制御装置100A、第2制御装置100B)のうちのいずれが受信するかについては、例えば、ホスト装置2や通信システム5の構成や設定により決定される。
【0025】
同図に示すように、第1制御装置100Aは、プロセッサ110A、第1メモリ120A、通信I/F130A、及びドライブI/F140Aを有する。これらは高速通信が可能な内部バス(例えば、PCIe(Peripheral Component Interconnect-Express)バス(bus)等)を介して互いに通信可能に接続している。また、プロセッサ110Aは、第2制御装置100Bのプロセッサ110Bと、内部バス30(PCIeバス等)を介して通信可能に接続している。
【0026】
プロセッサ110Aは、演算コア、キャッシュメモリ、DMA(Direct Memory Access)等を用いて構成される。プロセッサ110Aは、通信I/F130Aから送られてくるI/O要求に応じて、通信I/F130A、第1メモリ120A、及びドライブI/F140Aの間で行われるデータ転送に関する処理を行う。例えば、プロセッサ110Aは、第1メモリ120Aを介して行われる、通信I/F130AとドライブI/F140Aとの間のデータ(記憶装置17から読み出されるデータ(以下、「読み出しデータ」と称する。)や、記憶装置17に書き込まれるデータ(以下、「書き込みデータ」と称する。)の引き渡しを行う。また、プロセッサ110Aは、第1メモリ120Aへのデータのステージング(記憶装置17から第1メモリ120Aへのデータの読み出し)や、第1メモリ120Aに格納されているデータのデステージング(第1メモリ120Aから記憶装置17へのデータの書き出し)を行う。
【0027】
通信I/F130Aは、通信システム5を介してホスト装置2と通信する。通信I/F130Aは、ホスト装置2から送られてくるデータI/O要求を受信し、受信したI/O要求や、当該I/O要求とともに送られてくるデータ(例えば、書き込みデータ)をプロセッサ110Aに転送する。また、通信I/F130Aは、プロセッサ110Aから送られてくるデータ(例えば、記憶装置17から読み出された読み出しデータ)を受信し、受信したデータをホスト装置2に送信する。
【0028】
また、通信I/F130Aは、通信システム5を介して行われるストレージ装置10とホスト装置2との間の通信において、通信システム5側で用いられている通信プロトコルと第1制御装置100A側で用いられている通信プロトコルとを相互に変換する。通信システム5側で用いられている通信プロトコルとして、例えば、ファイバーチャネル(Fibre Channel)、Ethernet(登録商標)、iSCSI(Internet Small Computer System Interface)等がある。通信I/F130Aは、「HBA(Host Bus Adaptor)」とも称される。
【0029】
第1メモリ120Aは、DRAM(Dynamic Random Access Memory)等の高速アクセスが可能な記憶素子を用いて構成される。第1メモリ120Aには、例えば、ストレージ装置10の機能の実現に用いられるプログラムやデータが格納される。また、第1メモリ120Aは、記憶装置17のデータを一時的に記憶して記憶装置17にアクセスするより高速な応答を可能とするキャッシュとしても機能する。尚、以下では第1メモリ120Aに書き込まれる一時的なデータのことを「キャッシュデータ」と称する。
【0030】
ドライブI/F140Aは、記憶装置17から第1メモリ120Aへのデータの読み出しや第1メモリ120Aから記憶装置17へのデータの書き込みに際し、記憶装置17との間でのデータ転送に関する処理を行う。
【0031】
記憶装置17は、物理的な記憶領域を提供する記録媒体である一つ以上の記憶ドライブ171を有する。記憶ドライブ171は、例えば、半導体記憶装置(SSD(Solid State Drive))やハードディスクドライブ(HDD(Hard Disk Drive))である。記憶装置17は、ストレージ装置10と同一の筐体に収容されていてもよいし、ストレージ装置10が収容される筐体とは別の筐体に収容されていてもよい。ストレージ装置10は、例えば、上記記憶領域をRAID(Redundant Array of Inexpensive Disks)技術等を用いて編成された論理的な記憶領域としてホスト装置2に提供する。
【0032】
以上の構成の他、ストレージ装置10は、例えば、ストレージ装置10の各構成要素の監視、制御、設定等を行う情報処理装置(コンピュータ)(以下、「管理装置」と称する。)を備えていてもよい。管理装置は、プロセッサ、記憶装置(メモリ、SSD等)、記録媒体読取装置(非一時的な記憶媒体からデータを読み取る装置)、通信装置、入出力装置(キーボード、マウス、タッチパネル、ディスプレイ、スピーカ等)を備える。管理装置は、例えば、LANや内部バス(PCIe等)等の通信手段を介して、上記の各構成要素と通信可能に接続する。また、管理装置は、例えば、ストレージ装置10が備えるサービスプロセッサ(SVP:SerVice Processor)を介してストレージ装置10に接続するものでもよい。管理装置は、通信装置や記録媒体読取装置を介して取得したプログラムやデータをストレージ装置10の構成要素に転送(書き込み、アップロード等)する。
【0033】
同図に示すように、第1制御装置100Aの第1メモリ120Aには、プログラム121A、ドライブ制御情報122A、第1キャッシュ制御情報123A、第1ダーティキャッシュデータ124A、及び第1クリーンキャッシュデータ125Aの各情報(データ)が格納される。
【0034】
また、第2制御装置100Bの第2メモリ120Bには、プログラム121B、ドライブ制御情報122B、第2キャッシュ制御情報123B、第2ダーティキャッシュデータ124B、及び第2クリーンキャッシュデータ125Bの各情報(データ)が格納される。
【0035】
尚、第1制御装置100Aの第1メモリ120Aに格納される各情報と、これら各情報と名称が共通する第2制御装置100Bの第2メモリ120Bに格納される各情報は、基本的に同様の意味や性質を有する。以下では、重複した説明を避けるため、第1制御装置100Aの第1メモリ120Aに格納される各情報について説明する。
【0036】
プログラム121Aは、例えば、オペレーティングシステムやデバイスドライバを実現するためのプログラムや各種アプリケーションを実現するためのプログラムである。
【0037】
ドライブ制御情報122Aは、プロセッサ110Aが、記憶装置17が提供する記憶領域にアクセスする際に用いる情報である。ドライブ制御情報122Aは、ホスト装置2のデータI/O要求において指定される、書き込みデータや読み出しデータの所在を示す情報(以下、「論理アドレス」と称する。)と、これらのデータが格納される上記記憶領域を指定する情報(以下、「物理アドレス」と称する。)とを対応づけた情報を含む。上記の論理アドレスは、例えば、ディレクトリ名(フォルダ名)やファイル名、URL(Uniform Resource Locator)である。
【0038】
第1キャッシュ制御情報123Aは、プロセッサ110Aが、第1メモリ120Aに格納されている第1ダーティキャッシュデータ124Aや第1クリーンキャッシュデータ125Aにアクセスする際に用いる情報である。第1キャッシュ制御情報123Aは、前述した論理アドレスと、キャッシュデータの格納先である第1メモリ120Aの記憶領域を指定する情報(以下、「キャッシュアドレス」と称する。)とを対応づけた情報を含む。
【0039】
第1ダーティキャッシュデータ124Aは、第1メモリ120Aに格納されているキャッシュデータのうち、記憶装置17への格納が完了していないデータや、記憶装置17に格納されている対応するデータとの一致性が保証されないデータ(内容の同期がとれていないデータ)である。例えば、データ書き込み要求(既存のデータの内容が変更(更新)される場合を含む)により第1メモリ120Aにキャッシュデータとして格納されたが、記憶装置17への格納が完了していない(更新が完了していない)データはダーティキャッシュデータとなる。
【0040】
第1クリーンキャッシュデータ125Aは、第1メモリ120Aに格納されるキャッシュデータのうち、記憶装置17に既に格納されており、記憶装置17に格納されているデータとの一致性が保証されているキャッシュデータ(以下、「クリーンキャッシュデータ」と称する。)である。例えば、データ読み出し要求により記憶装置17から第1メモリ120Aに読み出されたデータや、データ書き込み要求(既存のデータの内容が変更(更新)される場合を含む)により第1メモリ120Aにキャッシュデータとして格納され、記憶装置17への格納が完了している(更新が完了している)データである。
【0041】
尚、プロセッサ110Aは、第1メモリ120Aに格納されているキャッシュデータがダーティキャッシュデータであるかクリーンキャッシュデータであるかを示す情報(例えば、フラグ)を、例えば、キャッシュデータに付帯する情報として第1メモリ120Aに管理する。
【0042】
図2Aは、ホスト装置2からデータI/O要求としてデータ読み出し要求を受信した場合に第1制御装置100Aが行う主な処理(以下、「データ読み出し処理S200」と称する。)を説明する図である。以下、同図とともにデータ読み出し処理S200について説明する。
【0043】
第1制御装置100Aは、ホスト装置2からのデータ読み出し要求の受信をリアルタイムに監視している(S211:NO)。第1制御装置100Aは、ホスト装置2からデータ読み出し要求を受信すると(S211:YES)、データ読み出し要求に指定されているデータが第1メモリ120Aに(キャッシュデータとして)格納されているか否かを、第1キャッシュ制御情報123Aを参照して確認する(S212)。
【0044】
上記のデータが第1メモリ120Aに格納されている場合(S212:YES)、第1制御装置100Aは、当該データを読み出しデータとしてホスト装置2に送信する(S213)。その後、処理はS211に戻る。
【0045】
一方、上記のデータが第1メモリ120Aに格納されていない場合(S212:NO)、第1制御装置100Aは、記憶装置17から上記のデータを読み出して第1メモリ120Aに格納(ステージング)するとともに(S221)、当該データを読み出しデータとしてホスト装置2に送信する(S222)。その後、処理はS211に戻る。
【0046】
このように、第1制御装置100Aは、データ読み出し要求に指定されているデータが第1メモリ120Aに存在する場合は当該データを第1メモリ120Aから読み出してホスト装置2に送信するので、ホスト装置2に迅速に読み出しデータを提供することができる。
【0047】
図2Bは、ホスト装置2からデータI/O要求としてデータ書き込み要求を受信した場合に第1制御装置100Aが行う主な処理(以下、「データ書き込み処理S250」と称する。)を説明する図である。以下、同図とともにデータ書き込み処理S250について説明する。
【0048】
第1制御装置100Aは、ホスト装置2からのデータ書き込み要求の受信をリアルタイムに監視している(S251:NO)。第1制御装置100Aは、ホスト装置2からデータ書き込み要求を受信すると(S251:YES)、データ書き込み要求とともに受信した書き込みデータを第1メモリ120Aに格納する(S252)。尚、第1メモリ120Aに格納された当該書き込みデータは第1ダーティキャッシュデータ124Aとなる。
【0049】
続いて、第1制御装置100Aは、内部バス30を介して第2制御装置100Bと通信し、ホスト装置2から受信した上記の書き込みデータを第2制御装置100Bに転送する(S253)。第2制御装置100Bは、第1制御装置100Aから上記の書き込みデータを受信し、受信した書き込みデータを第2メモリ120Bに第2ダーティキャッシュデータ124Bとして格納する(S254)。
【0050】
続いて、第1制御装置100Aは、ホスト装置2にデータ書き込み要求の処理が完了した旨の通知(以下、「書き込み完了通知」と称する。)を送信する(S255)。
【0051】
図2Cは、第1制御装置100Aが、第1メモリ120Aに格納されている第1ダーティキャッシュデータ124Aを記憶装置17に書き込む際に行う主な処理(以下「記憶装置へのデータ書き込み処理S270」と称する。)を説明するフローチャートである。以下、同図とともに記憶装置へのデータ書き込み処理S270について説明する。
【0052】
第1制御装置100Aは、、第1メモリ120Aに格納されている第1ダーティキャッシュデータ124Aを記憶装置17に書き込むタイミングが到来したか否かをリアルタイムに監視している(S271:NO)。尚、上記のタイミングは、例えば、第1メモリ120Aに書き込みデータが書き込まれたタイミングから所定時間が経過した場合に到来する。
【0053】
上記のタイミングが到来すると(S271:YES)、第1制御装置100Aは、第1メモリ120Aに格納されている第1ダーティキャッシュデータ124Aを記憶装置17に格納する(S272)。これにより当該第1ダーティキャッシュデータ124Aは第1クリーンキャッシュデータ125Aに変更される(S273)。
【0054】
続いて、第1制御装置100Aは、当該第1ダーティキャッシュデータ124Aがクリーンキャッシュデータになったことを内部バス30を介して第2制御装置100Bに通知する(S274)。第2制御装置100Bは、上記通知を受信すると、当該第1ダーティキャッシュデータ124Aに対応する第2ダーティキャッシュデータ124Bをメモリ上から消去する(S275)。
【0055】
以上の仕組みにより、ストレージ装置10は、2つの制御装置100(第1制御装置100A、第2制御装置100B)のうちのいずれか一方の制御装置100が閉塞(機能停止)した場合でも、他方の制御装置100によりホスト装置2へのサービスを継続することができる。
【0056】
但し、一方の制御装置100が閉塞することで、第1ダーティキャッシュデータ124A又は第2ダーティキャッシュデータ124Bについては冗長性が損なわれて可用性が低下してしまう。また、その場合、例えば、メモリ120に比べて性能の低い記憶ドライブ170に直接データを書き込む運用に切り換えられるが、それによりストレージ装置10のパフォーマンスが低下してしまう。
【0057】
そこで、本発明のストレージシステム1では、ストレージ装置10を以下に説明する構成とすることにより上記の課題の解決を図っている。以下、具体的に説明する。
【0058】
[第1実施形態]
図3Aに、第1実施形態にかかるストレージシステム1の構成を示している。同図に示すストレージシステム1は、ストレージ装置10が、メモリモジュール200を更に備える点で、図1に例示したストレージシステム1と構成が異なる。
【0059】
メモリモジュール200は、例えば、ストレージ装置10の筐体に、2つの制御装置100(第1制御装置100A、第2制御装置100B)とは独立した基板(回路ボード)として着脱可能な状態で設けられる。メモリモジュール200には、2つの制御装置100(第1制御装置100A、第2制御装置100B)とは独立して電力が供給され、制御装置100のへの電力供給が失われた場合でも、データの消失を防ぐことができる。
【0060】
メモリモジュール200は、メモリコントローラ210と第3メモリ220を備える。メモリコントローラ210と第3メモリ220は、内部バス(PCIe等)を介して通信可能に接続している。また、メモリコントローラ210は、第1制御装置100Aのプロセッサ110A及び第2制御装置100Bのプロセッサ110Bと内部バス(PCIeやCXL(Compute Express Link)等)を介して通信可能に接続している。
【0061】
メモリコントローラ210は、第1制御装置100Aのプロセッサ110A及び第2制御装置100Bのプロセッサ110Bと通信し、プロセッサ110A又はプロセッサ110Bから送られてくる指示に応じて、第3メモリ220へのデータの書き込みや読み出しを行う。
【0062】
第3メモリ220は、DRAM等の高速アクセスが可能な揮発性の記憶素子を有する。また、第3メモリ220は、揮発性の記憶素子のデータがバックアップされる不揮発性の記憶素子(NVRAM)を有していてもよい。メモリコントローラ210への電力供給が失われた場合でもデータの消失を防ぐことができる。
【0063】
同図に示すように、メモリコントローラ210の第3メモリ220には、第1ダーティキャッシュデータ124C、第1クリーンキャッシュデータ125C、第2ダーティキャッシュデータ124D、及び第2クリーンキャッシュデータ125Dが格納される。
【0064】
このうち、第1ダーティキャッシュデータ124Cは、第2制御装置100Bの第2メモリ120Bに格納されている第2ダーティキャッシュデータ124Bと同じデータである。同図ではこれらのデータを下線付きの斜体字で示している。
【0065】
また、同図では、第1キャッシュ制御情報123Aと、第1キャッシュ制御情報123Aにより管理されているデータ(第1ダーティキャッシュデータ124A、第1ダーティキャッシュデータ124C、第1クリーンキャッシュデータ125A、第1クリーンキャッシュデータ125C)を同じ太線枠で示している。
【0066】
第3メモリ220の第2ダーティキャッシュデータ124Dは、第1制御装置100Aの第1メモリ120Aに格納されている第1ダーティキャッシュデータ124Aと同じデータである。尚、同図ではこれらのデータを太い斜体字で示している。
【0067】
また、同図では、第2キャッシュ制御情報123Bと、第2キャッシュ制御情報123Bにより管理されているデータ(第2ダーティキャッシュデータ124B、第2ダーティキャッシュデータ124D、第2クリーンキャッシュデータ125B、第2クリーンキャッシュデータ125D)を同じ破線枠で示している。
【0068】
<制御装置が閉塞した場合>
続いて、以上の構成からなるストレージ装置10において、制御装置100の一つが閉塞した場合におけるストレージ装置10の動作について説明する。尚、以下では、第1制御装置100Aが閉塞した場合を例として説明する。
【0069】
図3Bに、第1制御装置100Aが閉塞した直後の状態を示している。同図に示すように、第1制御装置100Aが閉塞した場合、メモリモジュール200には、第1ダーティキャッシュデータ124C、第1クリーンキャッシュデータ125C、第2ダーティキャッシュデータ124D、及び第2クリーンキャッシュデータ125Dが格納されている。
【0070】
ここで第1ダーティキャッシュデータ124C及び第1クリーンキャッシュデータ125Cについては、第1制御装置100Aが閉塞したため第1キャッシュ制御情報123Aが失われており、ホスト装置2からのデータI/O要求で利用することができない。
【0071】
そこで、第2制御装置100Bは、まず、メモリモジュール200のメモリコントローラ210に対して、第1ダーティキャッシュデータ124C及び第1クリーンキャッシュデータ125Cを第3メモリ220から消去する指示を送信する。メモリコントローラ210は、上記指示を受信すると、これらのデータを第3メモリ220から消去する。
【0072】
図3Cに、第1ダーティキャッシュデータ124C及び第1クリーンキャッシュデータ125Cが消去された後のストレージシステム1の状態を示す。
【0073】
続いて、第2制御装置100Bは、メモリコントローラ210に対して、第2ダーティキャッシュデータ124Bとともに、当該第2ダーティキャッシュデータ124Bを第3メモリ220に格納する指示を送信する。
【0074】
メモリコントローラ210は、第2ダーティキャッシュデータ124B及び上記指示を受信すると、受信した第2ダーティキャッシュデータ124Bを第3メモリ220に格納する。またこのとき、メモリコントローラ210は、第3メモリ220に格納した第2ダーティキャッシュデータ124Bの論理アドレスとキャッシュアドレスの対応を管理する第3キャッシュ制御情報123Cを生成して第3メモリ220に格納する。尚、以下では、新たに第3メモリ220に格納した第2ダーティキャッシュデータ124Bのことを、第3ダーティキャッシュデータ124C’と称する。
【0075】
図3Dに、第3ダーティキャッシュデータ124C’が第3メモリ220に格納された後のストレージシステム1の状態を示す。尚、第3キャッシュ制御情報123Cには、第3ダーティキャッシュデータ124C’の情報が反映済であるため、同図では、第3ダーティキャッシュデータ124C’を、第3キャッシュ制御情報123Cと同じ二重線枠で示している。
【0076】
ところで、図3Dに示す状態では、メモリモジュール200の第3メモリ220に格納されている第2ダーティキャッシュデータ124Dの論理アドレスとキャッシュアドレス(第3メモリ220におけるアドレス)の対応は管理されていない。そのため、例えば、第2制御装置100Bが閉塞した際、第2ダーティキャッシュデータ124Dは利用することはできず、第2ダーティキャッシュデータ124Dを消失してしまうことになる。そこで、第2制御装置100Bは、以下の手順により、第2ダーティキャッシュデータ124Dの論理アドレスとキャッシュアドレスの対応についても第3キャッシュ制御情報123Cで管理されるようにする。
【0077】
まず、第2制御装置100Bは、メモリコントローラ210に対して、第2ダーティキャッシュデータ124Dの、第2制御装置100Bの第2メモリ120Bへの移動(第2ダーティキャッシュデータ124Dの第2メモリ120Bへの転送と、メモリモジュール200の第3メモリ220からの消去)を指示する。以下、上記転送により第2メモリ120Bに格納した第2ダーティキャッシュデータ124Dのことを「第2ダーティキャッシュデータ124D’」と称する。
【0078】
第2制御装置100Bは、上記指示を受信すると、第2ダーティキャッシュデータ124Dを第2制御装置100Bに移動する。第2制御装置100Bは、第2ダーティキャッシュデータ124Dを受信すると、受信した第2ダーティキャッシュデータ124Dを第2メモリ120Bに格納する。このとき、第2制御装置100Bは、第2メモリ120Bに格納した第2ダーティキャッシュデータ124D’の論理アドレスとキャッシュアドレスの対応を、第2キャッシュ制御情報123Bに管理する。
【0079】
図3Eに、この段階におけるストレージシステム1の状態を示す。尚、第2キャッシュ制御情報123Bには、第2ダーティキャッシュデータ124D’の情報が反映済であるため、同図では、第2ダーティキャッシュデータ124D’を第2キャッシュ制御情報123Bと同じ破線枠で示している。
【0080】
続いて、第2制御装置100Bは、メモリモジュール200のメモリコントローラ210に第2ダーティキャッシュデータ124D’と、当該第2ダーティキャッシュデータ124D’を第3メモリ220に格納する旨の指示を送信する。
【0081】
メモリコントローラ210は、第2ダーティキャッシュデータ124D’と上記指示を受信すると、受信した第2ダーティキャッシュデータ124D’を第3メモリ220に格納する。このとき、第2制御装置100Bは、第3メモリ220に格納した第2ダーティキャッシュデータ124D’の論理アドレスとキャッシュアドレスの対応を、第3キャッシュ制御情報123Cに管理する。尚、第3メモリ220に格納した第2ダーティキャッシュデータ124D’のことを、以下、第2ダーティキャッシュデータ124D”と称する。
【0082】
図3Fに、この段階におけるストレージシステム1の状態を示す。尚、第3キャッシュ制御情報123Cには、第2ダーティキャッシュデータ124D”の情報が反映済であるため、同図では、第2ダーティキャッシュデータ124D”を第3キャッシュ制御情報123Cと同じ二重線枠で示している。
【0083】
尚、第1制御装置100Aが閉塞したためドライブ制御情報122Aが失われ、ドライブ制御情報122Aの冗長性が損なわれている。そこで、第2制御装置100Bは、メモリコントローラ210に対して、ドライブ制御情報122Bとともに当該ドライブ制御情報122Bを第3メモリ220に格納する指示を送信する。
【0084】
メモリコントローラ210は、ドライブ制御情報122B及び上記指示を受信すると、受信したドライブ制御情報122Bを第3メモリ220に格納する。尚、新たに第3メモリ220に格納したドライブ制御情報122Bのことを、以下、ドライブ制御情報122Cと称する。
【0085】
図3Gに、ドライブ制御情報122Cが第3メモリ220に格納された後のストレージシステム1の状態を示す。
【0086】
同図に示すように、この状態では、例えば、ドライブ制御情報122Bについてはドライブ制御情報122Cと、第2ダーティキャッシュデータ124Bについては第3ダーティキャッシュデータ124C’と、第2ダーティキャッシュデータ124D’については第2ダーティキャッシュデータ124D”と、夫々冗長化されている。このため、第1制御装置100Aが閉塞した場合でも、例えば、記憶ドライブに直接データを書き込む運用に切り換える必要はなく、ストレージ装置10は、パフォーマンスを低下させずにホスト装置2に対するサービスを継続することができる。また、このように閉塞していない第2制御装置100とメモリモジュール200との間でデータが冗長化されているため、第1制御装置100Aが閉塞した後もデータの信頼性や可用性は確保される。
【0087】
尚、第2メモリ120Bの第2クリーンキャッシュデータ125B及び第3メモリ220の第2クリーンキャッシュデータ125Dは、記憶装置17に対応するデータが存在するので、例えば、第2メモリ120Bや第3メモリ220の記憶領域の有効利用等を目的として、適宜なタイミングで消去してもよい。
【0088】
<メモリモジュールが閉塞した場合>
以上では、制御装置100(第1制御装置100A又は第2制御装置100B)が閉塞した場合のストレージ装置10の動作について説明したが、続いて、図3Aに示す正常にストレージ装置10が稼働していた際にメモリモジュール200が閉塞した場合におけるストレージ装置10の動作について説明する。
【0089】
まず、第1制御装置100Aは、メモリモジュール200が閉塞したことを検出すると、第1メモリ120Aの第1ダーティキャッシュデータ124Aを内部バス30を介して第2制御装置100Bに送信する。
【0090】
第2制御装置100Bは、第1制御装置100Aから第1ダーティキャッシュデータ124Aを受信すると、受信した第1ダーティキャッシュデータ124Aを第2メモリ120Bに格納する。以下、第2メモリ120Bに格納した第1ダーティキャッシュデータ124Aのことを「第1ダーティキャッシュデータ124A’」と称する。
【0091】
尚、第2制御装置100Bは、第1ダーティキャッシュデータ124A’の論理アドレスとキャッシュアドレスの対応を第2キャッシュ制御情報123Bに管理する。
【0092】
また、第2制御装置100Bは、メモリモジュール200が閉塞したことを検出すると、第2メモリ120Bの第2ダーティキャッシュデータ124Bを内部バス30を介して第1制御装置100Aに送信する。
【0093】
第1制御装置100Aは、第2制御装置100Bから第2ダーティキャッシュデータ124Bを受信すると、受信した第2ダーティキャッシュデータ124Bを第1メモリ120Aに格納する。以下、第1メモリ120Aに格納した第2ダーティキャッシュデータ124Bのことを「第2ダーティキャッシュデータ124B’」と称する。
【0094】
尚、第1制御装置100Aは、第2ダーティキャッシュデータ124B’の論理アドレスとキャッシュアドレスの対応を第1キャッシュ制御情報123Aに管理する。
【0095】
図4に、以上の処理が行われた後におけるストレージシステム1の状態を示す。尚、第2キャッシュ制御情報123Bには、第1ダーティキャッシュデータ124A’の情報が反映済である。そのため、同図では、第1ダーティキャッシュデータ124A’を第2キャッシュ制御情報123Bと同じ破線枠で示している。また、第1キャッシュ制御情報123Aには、第2ダーティキャッシュデータ124B’の情報が反映済である。そのため、同図では、第2ダーティキャッシュデータ124B’を第1キャッシュ制御情報123Aと同じ太線枠で示している。
【0096】
同図に示すように、この状態でドライブ制御情報122Aについてはドライブ制御情報122Bと、第1ダーティキャッシュデータ124Aについては第1ダーティキャッシュデータ124A’と、第2ダーティキャッシュデータ124Bについては第2ダーティキャッシュデータ124B’と冗長化されている。このため、例えば、記憶ドライブに直接データを書き込む運用に切り換える必要がなく、ストレージ装置10は、パフォーマンスを低下させることなくホスト装置2に対するサービスを継続することができる。また、第1制御装置100Aと第2制御装置100Bとの間でデータが冗長化されているため、第1制御装置100Aが閉塞した後もデータの信頼性や可用性は確保される。
【0097】
<効果等>
以上に説明したように、第1実施形態のストレージ装置10によれば、第1制御装置100A、第2制御装置100B、及びメモリモジュール200のうちのいずれが閉塞した場合でも、パフォーマンスを低下させることなくストレージ装置10はホスト装置2に対するサービスを継続することができる。また、いずれが閉塞した場合でも、閉塞していない装置の間でデータを冗長化されているため、データの信頼性や可用は確保される。このように、第1実施形態のストレージ装置10によれば、データの冗長性を確保しつつ、ストレージ装置10のパフォーマンスを維持することができる。
【0098】
尚、第1メモリ120Aの第1クリーンキャッシュデータ125A及び第2メモリ120Bの第2クリーンキャッシュデータ125Bは、記憶装置17に対応するデータが存在するので、例えば、第1メモリ120Aや第2メモリ120Bの記憶領域の有効利用等を目的として消去してもよい。
【0099】
[第2実施形態]
第1実施形態では、ドライブ制御情報122、キャッシュ制御情報123、及びキャッシュデータ(ダーティキャッシュデータ、クリーンキャッシュデータ)を、制御装置100のメモリ120に格納していた。第2実施形態では、ストレージ装置10に、制御装置100と通信可能に接続するメモリモジュール200を複数設け、これらのメモリモジュール200の第3メモリ220に上記のデータを格納するようにする。尚、ストレージ装置10が備える構成のうち、制御装置100が備えるメモリ120の閉塞率は、他の構成よりも比較的高いことが知られている。そのため、このようにデータを、制御装置100とは別体のメモリモジュール200に格納するようにすることで、制御装置100が閉塞する確率を減らすことができ、ホスト装置2とストレージ装置10との間の通信の可用性を高めることができる。
【0100】
図5に第2実施形態のストレージシステム1の一例を示す。同図に示すように、例示するストレージシステム1におけるストレージ装置10は、3つのメモリモジュール200(以下、第1メモリモジュール200A、第2メモリモジュール200B、第3メモリモジュール200Cと称する。)を有する。3つのメモリモジュール200は、夫々、例えば、ストレージ装置10の筐体に、2つの制御装置100(第1制御装置100A、第2制御装置100B)とは独立した基板(回路ボード)として着脱可能な状態で設けられる。3つのメモリモジュール200の夫々には、2つの制御装置100(第1制御装置100A、第2制御装置100B)とは独立して電力が供給され、制御装置100のへの電力供給が失われた場合でもデータの消失を防ぐことができる。
【0101】
同図に示すように、第1メモリモジュール200Aの第1メモリ220Aには、図3Aに示した第1制御装置100Aの第1メモリ120Aに格納されているデータ(ドライブ制御情報122A、第1キャッシュ制御情報123A、第1ダーティキャッシュデータ124A、第1クリーンキャッシュデータ125A)に相当するデータ(ドライブ制御情報222A、キャッシュ制御情報223A、第1ダーティキャッシュデータ224A、第1クリーンキャッシュデータ225A)が格納される。
【0102】
また、第2メモリモジュール200Bの第2メモリ220Bには、図3Aに示した第2制御装置100Bの第2メモリ120Bに格納されているデータ(ドライブ制御情報122B、第2キャッシュ制御情報123B、第2ダーティキャッシュデータ124B、第2クリーンキャッシュデータ125B)に相当するデータ(ドライブ制御情報222B、キャッシュ制御情報223B、第2ダーティキャッシュデータ224B、第2クリーンキャッシュデータ225B)が格納される。
【0103】
また、第3メモリモジュール200Cの第3メモリ220Cには、図3Aに示したメモリモジュール200の第3メモリ220に格納されているデータ(第1ダーティキャッシュデータ124C、第1クリーンキャッシュデータ125C、第2ダーティキャッシュデータ124D、第2クリーンキャッシュデータ125D)に相当するデータ(第1ダーティキャッシュデータ224C、第1クリーンキャッシュデータ225C、第2ダーティキャッシュデータ224D、第2クリーンキャッシュデータ225D)が格納される。
【0104】
第1メモリモジュール200Aの第1メモリ220Aは、第1実施形態における第1制御装置100Aの第1メモリ120Aに相当する。また、第2メモリモジュール200Bの第2メモリ220Bは、第1実施形態における第2制御装置100Bの第2メモリ120Bに相当する。また、第3メモリモジュール200Cの第3メモリ220は、第1実施形態におけるメモリモジュール200の第3メモリ220に相当する。そして、第2実施形態の第1制御装置100A及び第2制御装置100Bは、これらのメモリ220(第1メモリ220A、第2メモリ220B、第3メモリ220C)の夫々に格納されているデータについて、図3A図3Gに示した処理や制御と同様の処理や制御を行う。
【0105】
以上のように、第2実施形態のストレージ装置10は、第1実施形態のストレージ装置10のようにデータ(ドライブ制御情報222、キャッシュ制御情報223、及びキャッシュデータ(ダーティキャッシュデータ224、クリーンキャッシュデータ225))を制御装置100のメモリ120に格納するのではなく、3つのメモリモジュール200(第1メモリモジュール200A、第2メモリモジュール200B、第3メモリモジュール200C)に格納する。そのため、制御装置100が閉塞する確率を減らすことができ、ホスト装置2とストレージ装置10との間の通信の可用性を高めることができる。
【0106】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれ、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0107】
例えば、本発明は、制御装置が冗長化されメモリモジュールを実装可能なストレージ装置を用いて構成されるストレージシステムであれば、図1等に示したストレージシステム1とは異なるタイプのストレージシステムにも適用することができる。異なるタイプのストレージシステムの一例として、通信アダプタとして機能する複数の制御装置(チャネルアダプタ)と、ドライブ制御装置として機能する複数のドライブアダプタとを備え、これらが高速クロスバースイッチ等のスイッチで接続されて構成されるストレージ装置(例えば、エンタープライズタイプのストレージ装置)を用いたストレージシステムがある。
【符号の説明】
【0108】
1 ストレージシステム
2 ホスト装置
5 通信システム
10 ストレージ装置
100A 第1制御装置
100B 第2制御装置
110A プロセッサ
110B プロセッサ
120A 第1メモリ
121A プログラム
121B プログラム
122A ドライブ制御情報
122B ドライブ制御情報
123A 第1キャッシュ制御情報
123B 第2キャッシュ制御情報
124A 第1ダーティキャッシュデータ
124B 第2ダーティキャッシュデータ
125A 第1クリーンキャッシュデータ
125B 第2クリーンキャッシュデータ
120B 第2メモリ
130A 通信I/F
130B 通信I/F
140A ドライブI/F
140B ドライブI/F
17 記憶装置
171 記憶ドライブ
図1
図2A
図2B
図2C
図3A
図3B
図3C
図3D
図3E
図3F
図3G
図4
図5