(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-18
(45)【発行日】2024-12-26
(54)【発明の名称】ストレージシステム及びデータ管理方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20241219BHJP
G06F 13/10 20060101ALI20241219BHJP
G06F 11/20 20060101ALI20241219BHJP
【FI】
G06F3/06 306Z
G06F3/06 302A
G06F13/10 340A
G06F3/06 304F
G06F11/20 689
(21)【出願番号】P 2021103479
(22)【出願日】2021-06-22
【審査請求日】2024-01-26
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】中條 徳男
【審査官】太田 龍一
(56)【参考文献】
【文献】特開平10-027047(JP,A)
【文献】特開2004-171437(JP,A)
【文献】特開2009-075658(JP,A)
【文献】特開2007-219757(JP,A)
【文献】米国特許出願公開第2013/0254446(US,A1)
【文献】特開2016-212475(JP,A)
【文献】安田 博,Oracle/SQL Server/ハードウェア別に見る データベース障害対策最新技術ガイド メモリからLANアダプタ、ストレージまで ハードウェアの冗長化によるシステム信頼性向上の考え方,DB Magazine,株式会社翔泳社,2008年08月28日,第18巻 第6号,pp.49-59
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 13/10
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
プロセッサと、第1メモリモジュールと、第2メモリモジュールと、記憶デバイスとを備えるストレージシステムであって、
前記プロセッサと、前記第1メモリモジュールとは、同一のノードに設けられ、
前記第2メモリモジュールは、前記ノードの電源を停止せずに交換可能であり、
前記第1メモリモジュールは、オペレーティングシステムと、前記記憶デバイスに格納するユーザデータを管理するプログラムとを記憶し、
前記第2メモリモジュールは、前記記憶デバイスに格納される前記ユーザデータのキャッシュデータを記憶し、
前記プロセッサは、前記第2メモリモジュールに格納されるデータのコピーを第3メモリモジュールに格納する
ストレージシステム。
【請求項2】
前記ノードは、前記第2メモリモジュールを備える
請求項1に記載のストレージシステム。
【請求項3】
前記第1メモリモジュールは、前記プロセッサのメモリコントローラに接続されている接続されているメモリモジュールである
請求項1に記載のストレージシステム。
【請求項4】
前記第2メモリモジュールは、前記ユーザデータを管理するための制御情報を記憶する
請求項1に記載のストレージシステム。
【請求項5】
前記ストレージシステムは、前記ノードを複数有し、
前記第3メモリモジュールは、他のノードのメモリモジュールである
請求項1に記載のストレージシステム。
【請求項6】
障害の発生した前記第2メモリモジュールの新たなメモリモジュールへの交換が完了していない状態で、ホストからユーザデータへのアクセスがあった場合に、前記プロセッサは、前記第3メモリモジュールの前記第2メモリモジュールの管理情報のコピーを参照して、前記ユーザデータへのアクセスを処理する
請求項1に記載のストレージシステム。
【請求項7】
前記第2メモリモジュールを新たなメモリモジュールに交換した場合に、前記プロセッサは、前記第3メモリモジュールから前記第2メモリモジュールのデータのコピーデータを読み出して、前記新たなメモリモジュールに書き込む
請求項6に記載のストレージシステム。
【請求項8】
前記第1メモリモジュールは、前記ノードの電源を停止せずに交換可能であり、
前記プロセッサは、前記第1メモリモジュールのOS及び処理プログラムを前記第2メモリモジュールにコピーする
請求項1に記載のストレージシステム。
【請求項9】
前記第1メモリモジュールに障害が発生した場合に、前記プロセッサは、前記第2メモリモジュールにコピーされたOS及び処理プログラムを用いて処理を実行する
請求項8に記載のストレージシステム。
【請求項10】
前記第1メモリモジュールを新たなメモリモジュールに交換した場合に、前記プロセッサは、前記第2メモリモジュールから前記第1メモリモジュールのデータのコピーデータを読み出して、前記新たなメモリモジュールに書き込む
請求項9に記載のストレージシステム。
【請求項11】
前記第2メモリモジュールは、前記第2メモリモジュールで発生したエラーの回数をカウントし、エラーの回数が所定の回数を超えた場合に、プロセッサに通知し、
前記プロセッサは、エラー回数が所定の回数を超えたとの通知を受けた場合に、前記第2メモリモジュールへの新たなデータの格納を停止し、プロセッサのキャッシュ内にキャッシュされているデータを前記第3メモリモジュールに書出し、第2メモリモジュールの交換を促す表示を行う
請求項1に記載のストレージシステム。
【請求項12】
プロセッサと、第1メモリモジュールと、第2メモリモジュールと、記憶デバイスとを備えるストレージシステムによるデータ管理方法であって、
前記プロセッサと、前記第1メモリモジュールとは、同一のノードに設けられ、
前記第2メモリモジュールは、前記ノードの電源を停止せずに交換可能であり、
前記第1メモリモジュールは、オペレーティングシステムと、ユーザデータを管理するプログラムとを記憶し、
前記第2メモリモジュールは、前記記憶デバイスに格納される前記ユーザデータのキャッシュデータを記憶し、
前記ストレージシステムは、前記第2メモリモジュールに格納されるデータのコピーを第3メモリモジュールに格納する
データ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステムにおけるメモリ障害に対する技術に関する。
【背景技術】
【0002】
各種データを格納し、管理するストレージシステムとして、複数のノードで構成されるストレージシステムが知られている。例えば、ノードは、CPUと、メモリとを有する計算機で構成されている。ノードのメモリには、オペレーティングシステムや、ストレージシステムとして動作するためのアプリケーション(単にアプリともいう)や、ドライブに格納されるデータ(ユーザデータ)のキャッシュデータや、ドライブに格納されるユーザデータを管理するための制御情報等が格納される。
【0003】
ノードのメモリとしては、RAM(Random Access Memory)が用いられており、ノードに対して電力の供給が停止してしまうと、格納していたデータが消失してしまう問題がある。
【0004】
これに対して、特許文献1には、制御用情報を不揮発媒体に格納することにより、電源の供給が停止する前に管理されていた制御用情報にアクセスできる技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、メモリに障害が発生した場合には、メモリを交換するために、メモリを取外す必要がある。例えば、CPUに対してメモリが直接接続されているノードにおいては、ノードの電源を落とす、すなわち、ノードを閉塞させる必要があり、ストレージシステムの性能を低下させてしまう。
【0007】
本発明は、上記事情に鑑みなされたものであり、その目的は、メモリに障害が発生した場合において、ノードを閉塞しなければならない状況の発生を低減できる技術を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一観点に係るストレージシステムは、プロセッサと、第1メモリモジュールと、第2メモリモジュールと、記憶デバイスとを備えるストレージシステムであって、前記プロセッサと、前記第1メモリモジュールとは、同一のノードに設けられ、前記第2メモリモジュールは、前記ノードの電源を停止せずに交換可能であり、前記第1メモリモジュールは、オペレーティングシステムと、前記記憶デバイスに格納するユーザデータを管理するプログラムとを記憶し、前記第2メモリモジュールは、前記記憶デバイスに格納される前記ユーザデータのキャッシュデータを記憶し、前記プロセッサは、前記第2メモリモジュールに格納されるデータのコピーを第3メモリモジュールに格納する。
【発明の効果】
【0009】
本発明によれば、ノードを閉塞しなければならない状況の発生を低減することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、第1実施形態に係るストレージシステムの全体構成図である。
【
図2】
図2は、第1実施形態に係るノードに関するメモリマップを説明する図である。
【
図3】
図3は、第1実施形態に係るストレージシステムの正常時の動作を説明する図である。
【
図4】
図4は、第1実施形態に係るストレージシステムのメモリモジュール交換時の動作を説明する図である。
【
図5】
図5は、第1実施形態に係るストレージシステムの処理動作を説明するフローチャートである。
【
図6】
図6は、第2実施形態に係るストレージシステムの全体構成図である。
【
図7】
図7は、第3実施形態に係るストレージシステムの全体構成図である。
【
図8】
図8は、第4実施形態に係るストレージシステムの全体構成図である。
【発明を実施するための形態】
【0011】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、第1実施形態に係るストレージシステムの全体構成図である。
【0013】
ストレージシステム1は、1以上のホスト10と、複数のノード100(100A,100B・・・,100X)と、複数のドライブ120と、を備えている。ホスト10とノード100とは、ネットワーク20を介して接続されている。ノード100とドライブ120とは、バス116を介して接続されている。各ノード100は、バックエンドネットワーク30を介して接続されている。
【0014】
ネットワーク20は、例えば、有線LAN(Local Area Network)や無線LANなどの通信路である。バックエンドネットワーク30は、例えば、有線LAN、無線LANなどの通信路である。
【0015】
ホスト10は、ストレージシステム1で管理されているデータ(ユーザデータ)を使用して各種処理を行う。
【0016】
ノード100は、例えば、PC(Personal Computer)やサーバ等の計算機によって構成されている。ノード10は、プロセッサの一例であるCPU(Central Processing Unit)101と、メモリモジュール104と、メモリモジュール107と、ネットワークI/F114と、ネットワークI/F(インターフェース)115と、バス116と、を備えている。メモリモジュール104は、CPU101に接続されている。CPU102と、メモリモジュール107と、ネットワークI/F114と、ネットワークI/F115とは、バス116を介して接続されている。バス116には、1以上のドライブ120(記憶装置の一例)が接続されている。
【0017】
ドライブ120は、記憶デバイスの一例であり、例えば、ハードディスクやフラッシュメモリなどである。ドライブ120は、ユーザデータ等のデータを記憶する。なお、ドライブ120は、ノード100の内部に設けられてもよく、ノード100の外部に設けられてもよい。
【0018】
ネットワークI/F115は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク20を介して他の装置(例えば、ホスト10)と通信する。
【0019】
ネットワークI/F114は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、バックエンドネットワーク30を介して他の装置(例えば、他のノード100)と通信する。
【0020】
CPU101は、メモリモジュール104に格納されているプログラム(OS(オペレーティングシステム)、アプリケーション(処理プログラム)等)に従って各種処理を実行する。CPU101は、メモリコントローラ102と、I/Oコントローラ103とを有する。メモリコントローラ102は、メモリモジュール104に格納されるデータに対するアクセスを制御する。I/Oコントローラ103は、バス116を介して接続される各種モジュールに対するI/Oを制御する。I/Oコントーラ103は、バス116に対するモジュールの取り付けや取外しを検知し、モジュールの状態に応じてI/Oを制御する。
【0021】
メモリモジュール104(第1メモリモジュールの一例)は、CPU102のメモリコントローラ102に接続されており、ノード100の電源を落とさずに交換することができない。ここで、交換できないとは、物理的に交換できないという意味ではなく、CPU101の動作に異常を発生させない状態で交換できないという意味である。メモリモジュール104は、例えば、RAM(RANDOM ACCESS MEMORY)のメモリチップであり、CPU101で実行されるプログラムや、必要な情報を記憶する。本実施形態では、メモリモジュール104は、OS105と、アプリケーション(単にアプリともいう)106とを記憶する。アプリケーション106は、ドライブ120に格納するユーザデータのI/Oを制御する処理や、メモリモジュール107の交換に関わる処理等を実行する。
【0022】
メモリモジュール107(第2メモリモジュールの一例)は、I/O・メモリコントローラ108と、メモリチップ109とを有する。I/O・メモリコントローラ108は、メモリチップ109に格納されるデータに対するアクセスを制御する機能と、バス116を介してメモリモジュール107を認識させ、バス116を介しての通信を制御する機能とを有する。また、I/O・メモリコントローラ108は、メモリチップ109に発生したエラーの回数を検出し、所定回数以上のエラーが発生した場合に、CPU101に通知する機能(RAS機能)を有する。このメモリモジュール107は、I/O・メモリコントローラ108を有しているので、ノード100の電源が落ちていない状態において交換可能である。具体的には、メモリモジュール107は、取外し可能、すなわち、CPU101等に取外されたことを認識させてメモリモジュール107に対する処理を行わないように対処させることができるとともに、ノード100の電源が落ちていない状態において取付け可能、すなわち、CPU101等に取付けられたことを認識させてメモリモジュール107に対する処理を開始させることができる。
【0023】
メモリチップ109は、例えば、RAMのチップであり、ドライブ120に格納されるユーザデータを管理する制御情報110と、ドライブ120に格納されるユーザデータのキャッシュデータ111と、他のノード100の制御情報110のコピーである制御情報ミラー112と、他のノード100のキャッシュデータ111のコピーであるキャッシュミラー113とを記憶する。例えば、ノード100Aの制御情報110及びキャッシュデータ111に対応する制御情報ミラー112及びキャッシュミラー113は、ノード100Bのメモリモジュール107(第3メモリモジュールの一例)に格納される。なお、制御情報110やキャッシュデータ111は、ノード100に対して1つ有していてもよく、ノード100で管理する所定のデータ単位(例えば、ボリューム)毎に有するようにしてもよい。また、所定のデータ単位毎に制御情報110やキャッシュデータ111を有する場合には、これらに対応する制御情報ミラー112やキャッシュミラー113は、データ単位によって異なるノード100のメモリモジュール107に格納されてもよい。
【0024】
図2は、第1実施形態に係るノードに関するメモリマップを説明する図である。
図2は、1つのノードに関してメモリで管理する必要がある情報(データ)のメモリマップを示している。
【0025】
ノード100に関してメモリで管理する必要がある情報としては、OS105と、アプリケーション106と、ローカルデータ117と、制御情報110と、キャッシュデータ111と、制御情報ミラー112と、キャッシュミラー113とがある。
【0026】
本実施形態では、比較的データ量が小さいOS105、アプリケーション106、及びローカルデータ117については、メモリモジュール104に格納し、比較的データ量が大きい制御情報110、キャッシュデータ111、制御情報ミラー112、及びキャッシュミラー113についてはメモリモジュール109に格納している。
【0027】
メモリモジュール104に格納されるデータのデータ量は小さく、メモリモジュール104に必要なメモリ容量を小さくできるので、メモリ障害の発生確率は小さい。必要なメモリ容量を小さくできるので、メモリモジュール104のメモリチップは、高信頼性のメモリチップや、強力なエラー訂正機能を持ったメモリチップとしてもよい。このようにすると、メモリ障害の発生を更に低くすることができる。
【0028】
一方、メモリモジュール107に格納されるデータのデータ量は大きく、メモリモジュール107に必要なメモリ容量が大きくなるので、メモリ障害の発生確率は大きい。このため、メモリモジュール107を交換する必要が生じる可能性が高くなる。必要なメモリ容量が大きくなるので、コストを低減するためには、メモリモジュール107を、エラー訂正機能のない又は訂正能力が低いメモリチップとしてもよい。このようにすると、メモリ障害の発生がより高くなる可能性がある。
【0029】
まず、ストレージシステム1の正常時(正常モード)の動作について説明する。
【0030】
図3は、第1実施形態に係るストレージシステムの正常時の動作を説明する図である。
【0031】
ホスト10からユーザデータの読出し要求を受けた場合には、ノード100AのCPU101は、メモリモジュール107のメモリチップ109に、読出し要求に対応するユーザデータのキャッシュデータが存在する場合には、メモリチップ109からユーザデータを読出して要求元のホスト10に送信する(ステップS1)一方、メモリチップ109に読出し要求に対応するユーザデータのキャッシュデータが存在しない場合には、ユーザデータをドライブ120から読出してメモリチップ109にキャッシュし(ステップS0)、要求元のホスト10に送信する(ステップS1)。
【0032】
また、ホスト10からユーザデータの書込み要求を受けた場合には、ノード100AのCPU101は、メモリモジュール107のメモリチップ109に、書込み対象のユーザデータをキャッシュデータとして格納するとともに、キャッシュデータのコピーをコピー先(ミラー先)の他のノード100(
図3の例では、ノード100B)のメモリモジュール107のメモリチップ109に格納する(ステップS2)。その後、CPU101は、メモリモジュール107のメモリチップ109に格納されたキャッシュデータ111をドライブ120に格納する(ステップS3)。
【0033】
次に、ストレージシステム1のメモリモジュール107の交換時(交換時モード)の動作について説明する。
【0034】
図4は、第1実施形態に係るストレージシステムのメモリモジュール交換時の動作を説明する図である。
【0035】
ホスト10からユーザデータの読出し要求を受けた場合には、CPU101は、キャッシュデータのミラー先の他のノード100(100B)のメモリモジュール107に、読出し要求に対応するユーザデータのキャッシュデータが存在する場合には、メモリチップ109からユーザデータを読み出して要求元のホスト10に送信する(ステップS5)一方、メモリチップ109に読出し要求に対応するユーザデータのキャッシュデータが存在しない場合には、ユーザデータをドライブ120から読出し(ステップS4)、要求元のホスト10に送信する(ステップS5)。
【0036】
また、ホスト10からユーザデータの書込み要求を受けた場合には、CPU101は、ミラー先のメモリモジュール107のメモリチップ109に、書込み対象のユーザデータをキャッシュデータとして格納する(ステップS6)。なお、キャッシュデータのコピーを更に別のノード100のメモリモジュール107のメモリチップ109に格納してもよい。その後、CPU101は、ミラー先のノード100のメモリモジュール107のメモリチップ109に格納されたキャッシュデータをノード100Aのドライブ120に格納する(ステップS7)。
【0037】
このように、ストレージシステム1によると、メモリモジュールの交換時においても支障なくユーザデータの読出し及び書込みを行うことできる。
【0038】
次に、ストレージシステム1の処理動作を説明する。
【0039】
図5は、第1実施形態に係るストレージシステムの処理動作を説明するフローチャートである。
【0040】
ストレージシステム1のノード100においては、CPU101は、OS105及びアプリケーション106を実行することにより、
図3に示す通常モードで動作を実行する(ステップS10)。
【0041】
この際、メモリモジュール107のI/O・メモリコントローラ108は、メモリチップ109でのエラー数(メモリエラー数)をカウントし(ステップS11)、メモリエラー数が障害であると判断する所定の閾値を超えたか否かを判定する(ステップS12)。この結果、メモリエラー数が閾値を超えていない場合(ステップS12:No)には、I/O・メモリコントローラ108は、処理をステップS11に進める。一方、メモリエラー数が閾値を超えている場合(ステップS12:Yes)には、I/O・メモリコントローラ108は、障害が発生したことをCPU101に通知する。
【0042】
障害が発生したことの通知を受けると、CPU101は、メモリモジュール107の領域を無効として(ステップS13)、ホスト10からのI/O(読込み要求、書込み要求)の受付を停止し、メモリモジュール107のメモリチップ109へのアクセスを停止する(ステップS14)。
【0043】
次いで、CPU101は、CPU101の内部のキャッシュのデータを、メモリモジュール107のミラー先となる他のノード100のメモリモジュール107にバックエンドネットワーク30を介して書き出す(ステップS15)。
【0044】
次いで、CPU101は、内部のキャッシュのデータの書き出しが完了したか否かを判定し(ステップS16)、書き出しが完了していない場合(ステップS16:No)には、ステップS15の処理を継続する一方、書き出しが完了した場合(ステップS16:Yes)には、CPU101の内部のキャッシュのデータの書き出しが完了し、メモリモジュール107の交換準備が整ったことを表示する(ステップS17)。なお、交換準備が整ったことの表示方法としては、表示対象のユーザの計算機に表示してもよいし、ノード100の所定のLEDを点灯させる等してもよい。
【0045】
さらに、CPU101は、OS105及びアプリケーション106を実行することにより、
図4に示す交換時モードで動作を実行する(ステップS18)。
【0046】
これにより、ノード100の管理者がノード100から障害の発生したメモリモジュール107を支障なく取外すことができるようになる。
【0047】
そして、CPU101のI/Oコントローラ103は、メモリモジュール107が取外された場合には、メモリモジュール107が取外されたことを検知して、メモリモジュール107が取外されたことに対応する処理を行う(ステップS19)。
【0048】
この後、管理者によりノード100に新たなメモリモジュール107(なお、新たなメモリモジュールは、交換前のメモリモジュールと異なる場合が多いが、便宜的に交換前のメモリモジュールと同一の符号を付す)が取付けられると、CPU101のI/Oコントローラ103は、メモリモジュール107が取付けられたことを検知して、CPU101に通知する(ステップS20)。
【0049】
CPU101は、OS105及びアプリケーション106を実行することにより、ホスト10からのI/O(読込み要求、書込み要求)の受付を停止し、メモリモジュール107のメモリチップ109へのホスト10からのI/Oに伴うアクセスを停止する(ステップS21)。
【0050】
次いで、CPU101は、新たなメモリモジュール107に、ミラー先のメモリモジュール107にミラーされているデータ(キャッシュデータ及び制御情報)と、自身がミラー先となるデータ(制御情報ミラー及びキャッシュミラー)とを書き戻す処理を実行する(ステップS22)。
【0051】
次いで、CPU101は、データの書き戻しが完了したか否かを判定し(ステップS23)、書き戻しが完了していない場合(ステップS23:No)には、ステップS22の処理を継続する。
【0052】
一方、書き戻しが完了した場合(ステップS23:Yes)には、CPU101は、OS105及びアプリケーション106を実行することにより、ホスト10からのI/Oの受付を開始し、通常モードでの動作を開始する(ステップS24)。
【0053】
上記した処理によると、障害の発生したメモリモジュールを支障なく取外すことができ、新しいメモリモジュールを取付けることができ、新しいメモリモジュールに対してデータを書き戻して、通常モードでの動作を実行できるようにすることができる。
【0054】
次に、第2実施形態に係るストレージシステムについて説明する。
【0055】
図6は、第2実施形態に係るストレージシステムの全体構成図である。なお、第1実施形態に係るストレージシステム1と同様な構成部分には、同一の符号を付すこととする。
【0056】
第2実施形態に係るストレージシステム1Aは、ストレージシステム1においてノード100に代えて、ノード200(200A,200B,・・・,200X)を備える。
【0057】
ノード200は、メモリモジュール201,204(第1メモリモジュールの一例)を備えている。
【0058】
メモリモジュール201は、I/O・メモリコントローラ202と、メモリチップ203とを有し、メモリモジュール204は、I/O・メモリコントローラ205と、メモリチップ206とを有する。I/O・メモリコントローラ202,205は、メモリコントローラ108と同様な機能を有し、メモリチップ203,206は、メモリチップ109と同様な構成となっている。
【0059】
本実施形態では、メモリモジュール201に、制御情報110及びキャッシュデータ111を記憶し、メモリモジュール204に、制御情報ミラー112及びキャッシュミラー113を記憶する。
【0060】
ストレージシステム1Aにおいては、各メモリモジュール201,204を単位として、交換可能である。
【0061】
CPU101は、メモリモジュール201の交換に関する処理としては、
図5に示す処理と同様な処理を実行する。なお、
図5におけるステップS22においては、メモリモジュール201に格納すべきデータである制御情報110及びキャッシュデータ111のみをミラー先のメモリモジュールから書き戻す。
【0062】
一方、CPU101は、メモリモジュール204の交換に関する処理としては、通常モード動作を継続して実行し、新しいメモリモジュール204の取り付けを検知した後に、メモリモジュール204に格納すべきデータである制御情報ミラー及びキャッシュミラーのみをミラー元のメモリモジュールから書き戻す。
【0063】
このストレージシステム1Aによると、メモリモジュールの交換時に書き戻すデータ量を抑えることができ、処理時間を短縮することができる。また、制御情報110及びキャッシュデータ111を格納していないメモリモジュール204の交換時には、通常モード動作を継続して実行できる。
【0064】
次に、第3実施形態に係るストレージシステムについて説明する。
【0065】
図7は、第3実施形態に係るストレージシステムの全体構成図である。なお、第1実施形態に係るストレージシステム1と同様な構成部分には、同一の符号を付すこととする。
【0066】
第3実施形態に係るストレージシステム1Bは、第1実施形態に係るストレージシステム1において、ノード100に代えて、ノード300(300A,300B,・・・,300X)を備えるようにしたものである。
【0067】
ノード300は、メモリモジュール301(第1メモリモジュールの一例)と、メモリモジュール304(第2メモリモジュールの一例)とを備える。メモリモジュール301は、I/O・メモリコントローラ302と、メモリチップ303とを有する。メモリモジュール304は、I/O・メモリコントローラ305と、メモリチップ306とを有する。I/O・メモリコントローラ302,305は、メモリコントローラ108と同様な機能を有し、メモリチップ303,306は、メモリチップ109と同様な構成となっている。
【0068】
メモリモジュール301のメモリチップ303は、OS105及びアプリケーション106を格納する。メモリモジュール305のメモリチップ306は、制御情報110と、キャッシュデータ111と、制御情報ミラー112と、キャッシュミラー113と、OS105のコピーであるOSミラー307と、アプリケーション106のコピーであるアプリケーションミラー308とを格納する。
【0069】
ストレージシステム1Bにおいては、各メモリモジュール301,304を単位として、交換可能である。
【0070】
CPU101は、メモリモジュール304の交換に関する処理としては、
図5に示す処理と同様な処理を実行する。なお、
図5におけるステップS22においては、メモリモジュール304に格納すべきデータであるOSミラー307と、アプリケーションミラー308とについてはメモリモジュール301から書き戻す。
【0071】
一方、CPU101は、メモリモジュール301の交換に関する処理としては、メモリモジュール304のOSミラー307及びアプリケーションミラー308を実行するようにして通常モード動作を継続して実行し、新しいメモリモジュール301の取り付けを検知した後に、メモリモジュール301にメモリモジュール304のOSミラー307及びアプリケーションミラー308を書き戻すことにより、OS105及びアプリケーション106を回復し、その後、CPU101は、メモリモジュール301のOS105及びアプリケーション106を実行するようにする。
【0072】
このストレージシステム1Bによると、OS105やアプリケーション106が格納されたメモリモジュール301を交換する場合において、ノード300の電源を落とすことなく、処理を継続することができ、メモリモジュールの交換後に、ノード300を元の状態に戻すことができる。
【0073】
次に、第4実施形態に係るストレージシステムについて説明する。
【0074】
図8は、第4実施形態に係るストレージシステムの全体構成図である。なお、第1実施形態に係るストレージシステム1と同様な構成部分には、同一の符号を付すこととする。
【0075】
第4実施形態に係るストレージシステム1Cは、第1実施形態に係るストレージシステム1において、ノード100に代えて、ノード400(400A,400B,・・・,400X)を備え、さらに、ネットワーク40を介して複数のノード400に接続される複数のメモリ装置420(420A,420B)(第2メモリモジュール、第3メモリモジュールの一例)を備えるようにしたものである。
【0076】
ノード400は、ノード100において、メモリモジュール107を備えずに、ネットワークI/F401を備えるようにしている。ネットワークI/F401は、ネットワーク40を介してメモリ装置420と通信するインターフェースである。
【0077】
メモリ装置420は、ネットワークI/F421と、メモリコントローラ422と、メモリチップ423とを有する。ネットワークI/F421は、ネットワーク40を介して複数のノード400と通信するインターフェースである。メモリコントローラ422は、メモリチップ423に格納されるデータに対するアクセスを制御する機能と、メモリチップ423に発生したエラーの回数を検出し、所定回数以上のエラーが発生した場合に、CPU101に通知する機能(RAS機能)を有する。メモリチップ423は、例えば、RAMのチップである。
【0078】
本実施形態では、メモリ装置420Aのメモリチップ423は、ノード400Aに関する制御情報110と、キャッシュデータ111とを格納し、メモリ装置420Bのメモリチップ423は、ノード400Aに関する制御情報ミラー112と、キャッシュミラー113とを格納する。なお、メモリ装置420Aのメモリチップ423に、他のノード400(ノード400B等)に関する制御情報110と、キャッシュ111とを格納してもよく、他のノード400(ノード400B等)に関する制御情報ミラー112と、キャッシュミラー113とを格納してもよい。また、メモリ装置420Bのメモリチップ423に、他のノード400(ノード400B等)に関する制御情報ミラー112と、キャッシュミラー113とを格納してもよく、他のノード400(ノード400B等)に関する制御情報110と、キャッシュ111とを格納してもよい。
【0079】
ストレージシステム1Cにおいては、各メモリ装置420は、ノード400の動作を維持しつつ交換可能である。
【0080】
ノード400AのCPU101は、メモリ装置420Aの交換に関する処理としては、
図5に示す処理と同様な処理を実行する。なお、
図5におけるステップS22においては、メモリ装置420に格納すべきデータである制御情報110及びキャッシュデータ111を他のメモリ装置420に書き戻す。
【0081】
このストレージシステム1Cによると、メモリ装置の交換時に書き戻すデータ量を抑えることができ、処理時間を短縮することができる。
【0082】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0083】
例えば、上記第1実施形態乃至第4実施形態では、制御情報110を、OS105及びアプリケーション106とは異なるメモリモジュールに格納するようにしていたが、本発明はこれに限られず、制御情報110をOS105及びアプリケーション106と同じメモリモジュールに格納するようにしてもよい。
【0084】
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
【符号の説明】
【0085】
1…ストレージシステム、10…ホスト、100,100A,100B,200,200A,200B,300,300A,300B,400,400A,400B…ノード、101…CPU、104,107,201,204,303,304…メモリモジュール、105…OS、106…アプリケーション、110…制御情報、111…キャッシュデータ、112…制御情報ミラー、113…キャッシュミラー、420,420A,420B…メモリ装置