JP2018022404A - ストレージシステム、ストレージ制御装置およびストレージ制御プログラム - Google Patents

ストレージシステム、ストレージ制御装置およびストレージ制御プログラム Download PDF

Info

Publication number
JP2018022404A
JP2018022404A JP2016154241A JP2016154241A JP2018022404A JP 2018022404 A JP2018022404 A JP 2018022404A JP 2016154241 A JP2016154241 A JP 2016154241A JP 2016154241 A JP2016154241 A JP 2016154241A JP 2018022404 A JP2018022404 A JP 2018022404A
Authority
JP
Japan
Prior art keywords
area
storage
cache
write
write data
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.)
Pending
Application number
JP2016154241A
Other languages
English (en)
Inventor
鈴木 利彦
Toshihiko Suzuki
利彦 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016154241A priority Critical patent/JP2018022404A/ja
Priority to US15/615,269 priority patent/US10528275B2/en
Publication of JP2018022404A publication Critical patent/JP2018022404A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2079Bidirectional techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Abstract

【課題】停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減する。【解決手段】ストレージ制御装置10は、ミラーリング領域11aを含む揮発性メモリ11を有する。ストレージ制御装置20は、キャッシュ領域21aを含む不揮発性メモリ21と、記憶装置30に対する書き込みデータの書き込み要求を受信すると、書き込みデータをキャッシュ領域21aとミラーリング領域11aの両方に書き込み、キャッシュ領域21aとミラーリング領域11aの両方に対する書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、書き込み完了通知の送信後にキャッシュ領域21a内の書き込みデータを記憶装置30に書き込む制御部22とを有する。【選択図】図1

Description

本発明は、ストレージシステム、ストレージ制御装置およびストレージ制御プログラムに関する。
記憶装置からの読み出し性能を向上させる技術として、キャッシュを用いたアクセス制御技術が広く利用されている。この技術では、記憶装置内のデータの一部がキャッシュに一時的に保持され、データの読み出しが要求されたとき、そのデータがキャッシュに保持されていれば、そのデータは記憶装置の代わりにキャッシュから読み出される。
また、キャッシュに格納されたデータを二重化することで、障害に対する耐性を高める技術も知られている。例えば、ライトデータが、2つのキャッシュユニットのいずれかと2つの不揮発性メモリユニットのいずれかとに格納される技術が提案されている。また、ホストコンピュータからの正ドライブへの書き込みデータを、ディスクキャッシュとバックアップメモリの両方に書き込んだ時点で、書き込み命令を完了させる技術が提案されている。
特開平5−158797号公報 特開平4−84215号公報
ところで、キャッシュの領域は、読み出し性能を高くするために揮発性メモリに確保されることが多い。しかし、この構成では、停電が発生した場合、キャッシュに格納されたデータが失われる。このため、キャッシュのデータをバックアップするための不揮発性記憶装置と、停電発生直後にキャッシュのデータを不揮発性記憶装置へコピーするための電力を供給するバッテリが必要となる。
一方、このようなバックアップ用の不揮発性記憶装置やバッテリを不要とする方法としては、キャッシュの領域を不揮発性記憶装置に確保する方法が考えられる。しかし、この場合には、キャッシュへの書き込み速度が低下するため、ホスト装置に対する書き込みの応答性能が劣化するという問題がある。
1つの側面では、本発明は、停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減可能なストレージシステム、ストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
1つの案では、第1のストレージ制御装置と、第2のストレージ制御装置とを有するストレージシステムが提供される。第1のストレージ制御装置は、ミラーリング領域を含む揮発性メモリを有する。第2のストレージ制御装置は、キャッシュ領域を含む不揮発性メモリと、記憶領域に対する書き込みデータの書き込み要求を受信すると、書き込みデータをキャッシュ領域とミラーリング領域の両方に書き込み、キャッシュ領域とミラーリング領域の両方に対する書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、書き込み完了通知の送信後にキャッシュ領域内の書き込みデータを記憶領域に書き込む制御部とを有する。
また、1つの案では、上記の第2のストレージ制御装置と同様の処理を実行するストレージ制御装置が提供される。
さらに、1つの案では、上記の第2のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減できる。
第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 CMおよびFRTのハードウェア構成例を示す図である。 CMが備える処理機能の例を示すブロック図である。 一方のCMの動作が停止した場合の処理例を示す図である。 ストレージ装置の比較例におけるキャッシュのミラーリング方法を示す図である。 ストレージ装置の比較例における停電発生時の動作を示す図である。 第2の実施の形態におけるローカルキャッシュおよびミラーキャッシュの配置を示す図である。 停電発生時のストレージ装置の状態を示す図である。 書き込みが要求された場合におけるストレージ装置の処理手順の例を示すシーケンス図である。 アクセス制御部による書き込み制御の処理例を示すフローチャートである。 正常にシャットダウンする場合のCMの処理例を示すフローチャートである。 起動時におけるCMの処理例を示すフローチャートである。 第3の実施の形態に係るストレージシステムの構成例を示す図である。 ローカルキャッシュとそのミラーリング先との関係を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図1に示すストレージシステムは、ストレージ制御装置10,20を含む。また、ストレージ制御装置20には、例えば、記憶装置30とホスト装置40とが接続されている。
ストレージ制御装置10は、揮発性メモリ11を有する。揮発性メモリ11としては、例えば、DRAM(Dynamic RAM,RAM:Random Access Memory)が用いられる。揮発性メモリ11は、後述するキャッシュ領域21aのデータがミラーリングされるミラーリング領域11aを含む。
ストレージ制御装置20は、ホスト装置40からの要求に応じて、記憶装置30へのアクセスを制御する。なお、記憶装置30は、ホスト装置40からのアクセス対象の記憶領域の一例である。このストレージ制御装置20は、不揮発性メモリ21と制御部22とを有する。
不揮発性メモリ21は、記憶装置30より書き込み速度が高速である。不揮発性メモリ21としては、例えば、SCM(Storage Class Memory)が用いられる。不揮発性メモリ21は、キャッシュ領域21aを含む。
制御部22は、例えば、1または複数のプロセッサである。この場合、制御部22の処理は、プロセッサが所定のプログラムを実行することで実現される。制御部22は、キャッシュ領域21aを用いて、ホスト装置40からの要求に応じた記憶装置30へのアクセスを制御する。具体的には、制御部22は、次のような手順で記憶装置30への書き込みを制御する。
制御部22は、ホスト装置40から書き込みデータの書き込み要求を受信する。すると、ホスト装置40は書き込みデータを、不揮発性メモリ21のキャッシュ領域21aと、揮発性メモリ11のミラーリング領域11aの両方に書き込む(ステップS1)。そして、制御部22は、これらの両方に対する書き込みデータの書き込みが完了すると、ホスト装置40に対して書き込み完了通知を送信する(ステップS2)。
また、制御部22は、書き込み完了通知の送信後のタイミング、すなわちその送信とは非同期のタイミングで、ステップS1でキャッシュ領域21aに書き込んだ書き込みデータを、記憶装置30の所定領域に書き込む(ステップS3)。ステップS3の実行タイミングは、例えば、キャッシュ領域21aの空き領域が不足し、かつ、ステップS1で書き込まれた書き込みデータのアクセス頻度が、キャッシュ領域21a内で最も低くなったタイミングである。
以上のストレージ制御装置20では、キャッシュ領域21aが不揮発性メモリ21に確保されているので、停電によってストレージ制御装置10,20の両方の動作が停止した場合でも、キャッシュ領域21aのデータが失われずに維持される。このため、停電時にキャッシュ領域21aのデータをバックアップするための別の不揮発性記憶装置や、そのバックアップ処理を実行するためのバッテリを、ストレージ制御装置20に搭載しておく必要がない。したがって、ストレージ制御装置20の製造コストや装置の大きさを抑制できる。
また、図1の構成では、キャッシュ領域21aをDRAMなどの揮発性メモリに確保した場合と比較して、キャッシュ領域21aに対する書き込みデータの書き込み時間が長くなる可能性が高い。このような書き込み時間の増加は、ホスト装置40に対する書き込み応答性能を低下させる原因になり得る。その一方、ミラーリング領域11aに対する書き込みデータのミラーリング処理には、揮発性メモリ11への書き込み処理の他、ストレージ制御装置10とストレージ制御装置20との間のデータ転送処理なども含まれる。
このため、上記のようなキャッシュ領域21aに対する書き込み時間の増加分の少なくとも一部は、ミラーリング領域11aに対するミラーリング処理時間によって相殺される。したがって、停電時のバックアップ処理を不要にするためにキャッシュ領域21aを不揮発性メモリ21に確保したことが、ホスト装置40に対する書き込み応答性能に与える影響を軽減できる。例えば、書き込み応答性能が低下したとしても、その低下幅を抑制できる。
なお、キャッシュ領域21aのミラーデータがミラーリング領域11aに保持されることで、例えば、ストレージ制御装置20が異常停止した場合、キャッシュ領域21aと同じデータをミラーリング領域11aに残すことができる。これにより、例えば、ストレージ制御装置20がキャッシュ領域21aを用いて実行していた記憶装置30に対するアクセス制御を、ストレージ制御装置10がミラーリング領域11aのデータを用いてすぐに引き継ぐことができる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置100と、ホスト装置210,220とを含む。ストレージ装置100は、例えばSAN(Storage Area Network)230を介して、ホスト装置210,220と接続している。
ストレージ装置100は、CM(Controller Module)110,120、FRT(Frontend RouTer)130、DE(Drive Enclosure)140およびPSU(Power Supply Unit)150を有する。
CM110,120は、ホスト装置210またはホスト装置220からの要求に応じて、DE140に搭載された記憶装置に対するアクセスを制御するストレージ制御装置である。CM110は、CM120の内部のキャッシュを用いて、DE140内の記憶装置に対するアクセスを制御する。CM120も同様に、CM120の内部のキャッシュを用いて、DE140内の記憶装置に対するアクセスを制御する。
また、CM110とCM120は、FRT130を介して互いに接続され、データを互いに送受信することができる。特に、後述するように、CM110とCM120との間では、それぞれが備えるDMA(Direct Memory Access)コントローラにより、一方が備えるRAMから他方が備えるRAMへのデータの転送が可能になっている。
本実施の形態では、このようなFRT130を介したRAM間のデータ転送が、キャッシュのミラーリングに利用される。CM110は、CM110のRAM内のキャッシュ領域に書き込んだデータを、FRT130を介してCM120のRAMにも書き込む。CM120も同様に、CM120のRAM内のキャッシュ領域に書き込んだデータを、FRT130を介してCM110のRAMにも書き込む。
DE140には、ホスト装置210,220からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、DE140は、このような記憶装置としてHDD(Hard Disk Drive)141,142,143,・・・が搭載されたディスクアレイ装置であるものとする。なお、ホスト装置210,220からのアクセス対象となる記憶装置は、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置であってもよい。
PSU150は、外部から供給される電力に基づいて、ストレージ装置100内の各部に電力を供給する。
ホスト装置210,220は、CM110,120のいずれかを介してDE140内の記憶装置にアクセスするコンピュータである。
図3は、CMおよびFRTのハードウェア構成例を示す図である。
CM110は、CPU(Central Processing Unit)111、DRAM112、SCM113、SSD114、PCIe(PCI express,PCI:Peripheral Component Interconnect)スイッチ115、CA(Channel Adapter)116、DI(Drive Interface)117およびDMAコントローラ118を有する。
CPU111は、CM110全体を統括的に制御する。CPU111は、例えば、1または複数のプロセッサを備える。また、図示しないが、CPU111は、メモリコントローラを備えている。メモリコントローラを介することで、DMAコントローラ118によるDRAM112およびSCM113に対するデータの読み書きが、CPU111のプロセッサを介さずに実行可能となる。
DRAM112は、CM110の主記憶装置として使用される。DRAM112には、CPU111に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、DRAM112には、CPU111による処理に必要な各種データが格納される。
SCM113は、アクセス性能がSSD114より高く、DRAM112より低い不揮発性メモリである。SCM113には、ホスト装置210,220からの要求に応じたDE140内の記憶装置へのアクセス制御の際に用いられるキャッシュの領域が確保される。なお、SCM113は、例えば、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistive RAM)として実現される。
SSD114は、CM110の補助記憶装置として使用される。SSD114には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、HDDなどの他の種類の不揮発性記憶装置が用いられてもよい。また、SSD114は、バスコントローラが搭載されたチップセットなどを介してCPU111と接続されていてもよい。
CPU111とCA116、DI117、DMAコントローラ118との間は、PCIeスイッチ115を介してPCIeバスによって接続されている。PCIeスイッチ115は、CPU111とCA116、DI117、DMAコントローラ118との間のデータ送受信を制御する。
CA116は、SAN230を介してホスト装置210,220と通信するためのインタフェースである。CA116は、例えば、FC(Fibre Channel)インタフェースである。DI117は、DE140内の記憶装置と通信するためのインタフェースである。DI117は、例えば、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)インタフェースである。DMAコントローラ118は、DRAM112およびSCM113と、CM120のDRAM122およびSCM123との間のデータ転送を、CPU111の介在なしに制御する。
CM120は、CM110と同様のハードウェア構成を有する。CM120は、CPU121、DRAM122、SCM123、SSD124、PCIeスイッチ125、CA126、DI127およびDMAコントローラ128を有する。CPU121、DRAM122、SCM123、SSD124、PCIeスイッチ125、CA126、DI127およびDMAコントローラ128は、CPU111、DRAM112、SCM113、SSD114、PCIeスイッチ115、CA116、DI117およびDMAコントローラ118にそれぞれ対応する構成要素であるので、ここでは説明を省略する。
FRT130は、PCIeスイッチ131を有する。PCIeスイッチ131は、CM110のDMAコントローラ118およびCM120のDMAコントローラ128に接続されている。DMAコントローラ118、PCIeスイッチ131およびDMAコントローラ128を介することで、CM110のDRAM112およびSCM113とCM120のDRAM122およびSCM123との間のデータ転送が、CPU111,121を介さずに実行される。
なお、以上の構成において、CM110,120は、図1のストレージ制御装置10,20の少なくとも一方の一例である。CM110をストレージ制御装置10の一例とした場合、DRAM112は、図1の揮発性メモリ11の一例である。また、CM120をストレージ制御装置20の一例とした場合、SCM123は、図1の不揮発性メモリ21の一例であり、CPU121は、図1の制御部22の一例であり、DE140は、図1の記憶装置30の一例である。
図4は、CMが備える処理機能の例を示すブロック図である。
CM110は、アクセス制御部111aと起動制御部111bとを有する。アクセス制御部111aおよび起動制御部111bの処理は、例えば、CPU111が所定のプログラムを実行することで実現される。また、SCM113には、ローカルキャッシュ113aの領域が確保され、DRAM112には、ミラーキャッシュ112aの領域が確保される。
一方、CM120は、アクセス制御部121aと起動制御部121bとを有する。アクセス制御部121aおよび起動制御部121bの処理は、例えば、CPU121が所定のプログラムを実行することで実現される。また、SCM123には、ローカルキャッシュ123aの領域が確保され、DRAM122には、ミラーキャッシュ122aの領域が確保される。
CM110において、アクセス制御部111aは、ホスト装置210,220からの要求に応じて、DE140内の記憶装置に対するアクセスを制御する。本実施の形態では、CM110の通常運用時には、アクセス制御部111aは、DE140の記憶領域を用いた論理ボリュームLV1に対するアクセスを、ホスト装置210からの要求に応じて制御するものとする。
アクセス制御部111aは、ローカルキャッシュ113aをキャッシュとして利用しながら、論理ボリュームLV1に対するアクセスを制御する。また、アクセス制御部111aは、論理ボリュームLV1に対する書き込みが要求された場合、書き込みデータをローカルキャッシュ113aだけでなくCM120のミラーキャッシュ122aにも書き込む。これにより、ローカルキャッシュ113aのデータはミラーキャッシュ122aにミラーリングされる。
起動制御部111bは、アクセス制御機能に関する終了時および起動時の処理を実行する。CM110が正常に終了されるとき、起動制御部111bは、シャットダウン(S/D)フラグ119を「0」から「1」に更新する。なお、シャットダウンフラグ119は、CM110内の不揮発性記憶装置(例えば、SSD114)に記憶されている。また、シャットダウンフラグ119の初期値は「0」とされる。
CM110が起動したとき、起動制御部111bは、シャットダウンフラグ119に応じた起動処理を実行する。シャットダウンフラグ119が「1」の場合、起動制御部111bは、アクセス制御を開始するための通常起動処理を実行する。一方、シャットダウンフラグ119が「0」の場合、起動制御部111bは、停電による異常終了状態から復帰するための復旧処理を実行する。この復旧処理には、CM120のローカルキャッシュ123aからデータを読み込んでミラーキャッシュ112aに格納することで、停電発生前のミラーキャッシュ112aのデータを復元する処理が含まれる。
CM120のアクセス制御部121aおよび起動制御部121bは、それぞれCM110のアクセス制御部111aおよび起動制御部111bと同様の処理を実行する。
アクセス制御部121aは、CM120の通常運用時には、DE140の記憶領域を用いた論理ボリュームLV2に対するホスト装置220からの要求に応じたアクセスを、ローカルキャッシュ123aをキャッシュとして利用しながら制御する。また、アクセス制御部121aは、ローカルキャッシュ123aのデータをCM110のミラーキャッシュ112aへミラーリングする。
起動制御部121bは、シャットダウン(S/D)フラグ129を用いて、アクセス制御機能に関する終了時および起動時の処理を実行する。なお、シャットダウンフラグ129は、CM120内の不揮発性記憶装置(例えば、SSD124)に記憶されている。起動制御部121bは、シャットダウンフラグ129の値に基づいて停電からの復旧処理を実行する際、CM110のローカルキャッシュ113aからデータを読み込んでミラーキャッシュ122aに格納する。
以上のように、CM110の通常運用時には、アクセス制御部111aは、ローカルキャッシュ113aをキャッシュとして利用しながら論理ボリュームLV1に対するアクセスを制御する。また、アクセス制御部111aは、ローカルキャッシュ113aのデータをミラーキャッシュ122aにミラーリングする。一方、CM120の通常運用時には、アクセス制御部121aは、ローカルキャッシュ123aをキャッシュとして利用しながら論理ボリュームLV2に対するアクセスを制御する。また、アクセス制御部121aは、ローカルキャッシュ123aのデータをミラーキャッシュ112aにミラーリングする。
ここで、図5を用いて、CM110,120の一方が故障などの異常発生によって停止した場合の処理について説明する。
図5は、一方のCMの動作が停止した場合の処理例を示す図である。この図5では、例としてCM110の動作が異常発生によって停止した場合を示す。この場合、CM110のローカルキャッシュ113aのデータと同一のデータが、CM120のミラーキャッシュ122aに残る。そのため、CM120のアクセス制御部121aは、ミラーキャッシュ122aをキャッシュとして利用しながら、論理ボリュームLV1に対するアクセスの制御をCM110から引き継ぐことができる。
また、図示しないが、上記と同様に、CM120の動作が停止した場合、CM110のアクセス制御部111aは、ミラーキャッシュ112aをキャッシュとして利用しながら、論理ボリュームLV2に対するアクセスの制御をCM120から引き継ぐことができる。
次に、図6、図7にストレージ装置の比較例を示し、比較例における問題点について説明する。そして、図8以降において、本実施の形態のストレージ装置100についての説明を続ける。
図6は、ストレージ装置の比較例におけるキャッシュのミラーリング方法を示す図である。図6に示すストレージ装置900は、CM910,920とFRT930とを有する。
CM910は、DRAM911を有し、DRAM911には、ローカルキャッシュ911aおよびミラーキャッシュ911bの各領域が確保されている。CM920は、DRAM921を有し、DRAM921には、ローカルキャッシュ921aおよびミラーキャッシュ921bの各領域が確保されている。
CM910は、ローカルキャッシュ911aをキャッシュとして利用しながら、所定の論理ボリュームに対するアクセスを制御する。これとともに、CM910は、ローカルキャッシュ911aのデータを、FRT930を介して、CM920のミラーキャッシュ921bにミラーリングする。
CM920は、ローカルキャッシュ921aをキャッシュとして利用しながら、所定の論理ボリュームに対するアクセスを制御する。これとともに、CM920は、ローカルキャッシュ921aのデータを、FRT930を介して、CM910のミラーキャッシュ911bにミラーリングする。
図7は、ストレージ装置の比較例における停電発生時の動作を示す図である。停電が発生してCM910,920への電力供給が停止すると、ローカルキャッシュ911a,921aのデータが失われてしまう。このようなデータロスを防止する方法として、バックアップ用の不揮発性記憶装置と、停電後にローカルキャッシュのデータを不揮発性記憶装置に退避させるための電力を供給するバッテリとを設ける方法がある。
図7の例では、CM910には不揮発性記憶装置912が設けられ、CM920には不揮発性記憶装置922が設けられている。また、停電を検出するとストレージ装置900に電力を供給するUPS(Uninterruptible Power Supply)940が、ストレージ装置900に接続されている。UPS940は、バッテリを内蔵している。
停電が発生すると、CM910は、UPS940からの電力を用いて、DRAM911内のデータのうち少なくともローカルキャッシュ911a内のデータを不揮発性記憶装置912に退避させる。また、CM920は、UPS940からの電力を用いて、DRAM921内のデータのうち少なくともローカルキャッシュ921a内のデータを不揮発性記憶装置922に退避させる。
これにより、CM910は、電力供給が再開されたとき、不揮発性記憶装置912に格納されたデータをローカルキャッシュ911aに書き戻し、論理ボリュームに対するアクセス制御を正しく再開できる。また、CM920も、電力供給が再開されたとき、不揮発性記憶装置922に格納されたデータをローカルキャッシュ921aに書き戻し、論理ボリュームに対するアクセス制御を正しく再開できる。
しかし、図7に示したデータロスの防止方法では、キャッシュデータを退避させるための電力を供給するためのバッテリや、キャッシュデータをバックアップするためのある程度大容量の不揮発性記憶装置が必要となる。このため、装置のコストが増大する、筐体が大きくなるという問題がある。
このような問題に対して、第2の実施の形態のストレージ装置100では、ローカルキャッシュの領域が不揮発性のSCMに確保される。以下、本実施の形態のストレージ装置100についての説明を続ける。
図8は、第2の実施の形態におけるローカルキャッシュおよびミラーキャッシュの配置を示す図である。本実施の形態のストレージ装置100では、ローカルキャッシュ113aの領域は、CM110のSCM113に確保され、ローカルキャッシュ123aの領域は、CM120のSCM123に確保される。また、ミラーキャッシュ124aの領域は、他方のCM120のDRAM124に確保され、ミラーキャッシュ112aの領域は、他方のCM110のDRAM112に確保される。
CM110は、ホスト装置210から書き込みが要求されたデータを、SCM113のローカルキャッシュ113aに書き込むとともに、CM120に転送し、DRAM124のミラーキャッシュ124aにも書き込む。これにより、書き込みデータをミラーリングする。同様に、CM120は、ホスト装置220から書き込みが要求されたデータを、SCM123のローカルキャッシュ123aに書き込むとともに、CM110に転送し、DRAM112のミラーキャッシュ112aにも書き込む。これにより、書き込みデータをミラーリングする。
図9は、停電発生時のストレージ装置の状態を示す図である。図9に示すように、停電によってストレージ装置100への電力供給が停止したとき、SCM113のローカルキャッシュ113aおよびSCM123のローカルキャッシュ123aにそれぞれ記憶されたデータは、失われずに維持される。このように、ローカルキャッシュ113a,123aの領域が不揮発性のSCM113,123に確保されることにより、停電が発生した場合でもローカルキャッシュ113a,123aに格納されたデータが保護される。このため、バッテリや、バックアップ用の他の不揮発性記憶装置が不要になる。
ここで、SCMは、SSDよりはアクセス性能が高い。また、容量当たりのコストもSSDよりSCMの方が低く、将来的にはさらなるコスト低減が予想されている。さらに、SCMは、ビットアクセスが可能である。これらの理由から、ローカルキャッシュ113a,123aの領域としてSCMを用いることで、SSDを用いる場合よりアクセス性能を向上させることができ、容量コストも下げることができる。
ただし、SCMのアクセス性能は、一般的にDRAMよりは低い。ローカルキャッシュ113a,123aの領域をSCMに確保する場合、SCMのアクセス性能がホスト装置210,220に対する応答性能に影響を与える可能性がある。しかしながら、本実施の形態では、次の図10に示すように、ミラーキャッシュ112a,124aの領域はSCMでなく高速なDRAMに確保されている。このため、データの書き込みが要求された際、書き込み性能の低下に伴うローカルキャッシュへの書き込み処理時間の増加分の少なくとも一部は、ミラーキャッシュへのミラーリング処理時間によって相殺される。したがって、ローカルキャッシュの領域を不揮発性記憶装置に確保したことが書き込み応答性能に与える影響を軽減できる。
図10は、書き込みが要求された場合におけるストレージ装置の処理手順の例を示すシーケンス図である。図10では例として、ホスト装置210からCM110に対してデータの書き込みが要求された場合を示す。なお、図10において、CPU111の処理はアクセス制御部111aの処理に対応し、CPU121の処理はアクセス制御部121aの処理に対応する。
ホスト装置210は、CM110に対して書き込み要求のコマンドを送信した後、書き込みデータを送信する(ステップS11)。CM110では、書き込みデータはCA116によって受信され、PCIeスイッチ(SW)115を介してCPU111に伝送される(ステップS12,S13)。このとき、書き込みデータはDRAM112のバッファ領域に一時的に格納される。
CPU111は、書き込みデータをDRAM112のバッファ領域から読み出してSCM113のローカルキャッシュ113aに書き込む処理を開始する(ステップS14)。これとともに、CPU111は、書き込みデータをCM120のDRAM122に書き込むための指示を、DMAコントローラ(DMAC)118に出力する(ステップS15)。
ステップS14で開始されたローカルキャッシュ113aへの書き込みデータの書き込み処理が完了すると、その旨がCPU111に通知される(ステップS16)。
その一方で、DMAコントローラ118は、ステップS15の指示を受信すると、DRAM112のバッファ領域から書き込みデータを読み出し、CM120へ転送する(ステップS17)。転送された書き込みデータは、FRT130のPCIeスイッチ(SW)131を介してCM120に転送される(ステップS18)。CM120では、転送された書き込みデータは、DMAコントローラ(DMAC)128を介してPCIeスイッチ(SW)125に受信され、CPU121に伝送される(ステップS19)。
CPU121は、書き込みデータをDRAM122のミラーキャッシュ122aに書き込む(ステップS20)。書き込みが完了すると、その旨がCPU121に通知される(ステップS21)。CPU121は、書き込みの完了通知をCM110宛てに送信する(ステップS22)。完了通知は、PCIeスイッチ125、FRT130のPCIeスイッチ131を介して、CM110のDMAコントローラ118に送信される(ステップS23,S24)。DMAコントローラ118は、例えば割り込みの発生により、書き込みデータの完了をCPU111に通知する(ステップS25)。
CPU111は、書き込み完了通知をホスト装置210宛てに送信する(ステップS26)。書き込み完了通知は、PCIeスイッチ115、CA116を介して、ホスト装置210に送信される(ステップS27,S28)。
以上の図10の処理では、CM110のCPU111は、ステップS14で開始された書き込み処理と、ステップS15で実行を指示した書き込み処理の両方が完了するのを待ち合わせる。そして、CPU111は、これら両方の処理が完了すると、ステップS26においてホスト装置210に対して応答する。
図10の例では、ステップS14で開始された書き込み処理にかかる時間より、ステップS15で実行を指示した書き込み処理にかかる時間の方が長い。このため、ステップS16において前者の書き込み処理の完了が通知された後に、ステップS25において後者の書き込み処理の完了が通知される。このケースでは、ローカルキャッシュ113aへの書き込みにかかる時間が、その領域がDRAMに確保されている場合より長くなっているにもかかわらず、ホスト装置210に対する応答までにかかる時間は遅延しない。したがって、ローカルキャッシュ113aの領域を不揮発性記憶装置に確保したことは、書き込み応答性能に影響を与えない。
また、仮に、前者の書き込み処理にかかる時間の方が後者より長かったとしても、ローカルキャッシュ113aの領域がDRAMに確保されている場合を基準とした書き込み応答時間の増加分は、前者の書き込み処理と後者の書き込み処理との時間差分のみとなる。このケースでは、ローカルキャッシュ113aへの書き込み時間の増加分のうちの多くが、ミラーリング処理にかかる時間によって相殺される。このため、ローカルキャッシュ113aの領域を不揮発性記憶装置に確保したことが書き込み応答性能に与える影響は小さい。
したがって、本実施の形態によれば、停電時のキャッシュデータの退避処理が不要になり、装置コストや筐体のサイズを抑制できるとともに、ホスト装置210に対する書き込み応答性能が大きく低下することを防止できる。
図11は、アクセス制御部による書き込み制御の処理例を示すフローチャートである。図11では例として、CM110のアクセス制御部111aの処理について示す。
[ステップS31]アクセス制御部111aは、ホスト装置210から論理ボリュームに対する書き込み要求を受信し、さらに、書き込みデータを受信する。
[ステップS32]アクセス制御部111aは、受信した書き込みデータを、SCM113のローカルキャッシュ113aに書き込む処理を開始する。
[ステップS33]アクセス制御部111aは、受信した書き込みデータを、CM120のDRAM122のミラーキャッシュ122aに書き込むように、DMAコントローラ118に指示する。DMAコントローラ118は、指示に応じて、書き込みデータをFRT130のPCIeスイッチ131を介してCM120に転送する。
なお、ステップS32,S33の処理順は、逆であってもよい。
[ステップS34]アクセス制御部111aは、ステップS32で開始した書き込み処理と、ステップS33で指示した書き込み処理の両方が完了したかを判定する。アクセス制御部111aは、書き込み処理が一方でも完了していない場合、一定時間後にステップS34の処理を再度実行する。また、アクセス制御部111aは、両方の書き込み処理が完了した場合、ステップS35の処理を実行する。
[ステップS35]アクセス制御部111aは、ホスト装置210に対して、書き込みが完了したことを通知するために応答する。
[ステップS36]アクセス制御部111aは、ステップS35の実行後の所定のタイミングで、ステップS32でローカルキャッシュ113aに書き込んだ書き込みデータを、DE140内の記憶装置へ書き込む。このステップS36の実行タイミングは、例えば、ローカルキャッシュ113aの空き領域が不足し、かつ、ステップS32で書き込まれた書き込みデータのアクセス頻度が、ローカルキャッシュ113a内で最も低くなったタイミングである。
次に、図12は、正常にシャットダウンする場合のCMの処理例を示すフローチャートである。図12では例として、CM110が正常にシャットダウンする場合について説明する。なお、図12の処理の開始時には、シャットダウンフラグ119は「0」になっているものとする。
[ステップS41]CM110の起動制御部111bは、シャットダウン指示に応じてシャットダウン処理を開始する。シャットダウン指示は、例えば、ホスト装置210,220や管理端末などの外部装置から指示される。あるいは、CM110またはストレージ装置100に搭載されたシャットダウンスイッチの操作に応じてシャットダウンが指示されてもよい。
[ステップS42]起動制御部111bは、シャットダウンフラグ119を「0」から「1」に更新する。この更新処理は、シャットダウン処理に含まれ、シャットダウン処理が終了すると、CM110の動作は停止する。
なお、停電によりCM110の動作が異常停止した場合には、シャットダウンフラグ119は「0」のまま更新されない。
図13は、起動時におけるCMの処理例を示すフローチャートである。図13では例として、CM110が起動した場合について説明する。
[ステップS51]CM110の起動制御部111bは、起動指示に応じて起動処理を開始する。起動指示は、例えば、CM110またはストレージ装置100に搭載された起動スイッチの操作に応じて指示される。
[ステップS52]起動制御部111bは、シャットダウンフラグ119を読み込み、その値を判定する。起動制御部111bは、シャットダウンフラグ119が「1」の場合、ステップS53の処理を実行し、「0」の場合、ステップS55の処理を実行する。
[ステップS53]起動制御部111bは、前回のシャットダウン時にCM110が正常に起動したと判定し、正常起動シーケンスを実行する。
[ステップS54]正常起動シーケンスの実行により、アクセス制御部111aが論理ボリュームLV1に対するアクセス制御を開始できる状態となる。起動制御部111bは、正常起動シーケンスが終了すると、シャットダウンフラグ119を「1」から「0」に更新する。この更新後に、アクセス制御部111aのアクセス制御が開始される。
[ステップS55]起動制御部111bは、前回のCM110が異常停止したと判定し、復旧シーケンスを実行する。復旧シーケンスには、起動制御部111bが、ローカルキャッシュ113aに格納されたデータをCM120のDRAM122に書き込んで、DRAM122内のミラーキャッシュ122aのデータを復元する処理が含まれる。復旧シーケンスが完了すると、アクセス制御部111aによる、論理ボリュームLV1に対するアクセス制御が開始される。
以上のように、起動制御部111bは、シャットダウンフラグ119に基づいてCM110の前回の停止状況を判定することができる。そして、起動制御部111bは、CM110が異常停止したと判定した場合、他方のCM120のミラーキャッシュ122aのデータをローカルキャッシュ113aに保持されているデータによって復元できる。このように、異常停止後にCM110が起動する場合には、ローカルキャッシュ113aの復旧の必要はないので、CM110のアクセス制御部111aがアクセス制御を開始できるまでの時間を短縮できる。
なお、ステップS52では、起動制御部111bは、CM110内のシャットダウンフラグ119だけでなく、CM120内のシャットダウンフラグ129も「0」であることを確認した場合に、ステップS55の処理を実行してもよい。これにより、起動制御部111bは、前回のCM110の停止時には、CM110だけでなくCM120も停止したことを判断でき、前回の停止要因が停電であったことを正確に判定できる。
〔第3の実施の形態〕
図14は、第3の実施の形態に係るストレージシステムの構成例を示す図である。図14に示すストレージシステムは、CE(Controller Enclosure)300,400、DE510,520、FRT530およびホスト装置540を含む。
CE300は、CM310,320とPSU330とを有する。CE400は、CM410,420とPSU430とを有する。CM310,320,410,420は、FRT530を介して相互に接続されている。また、CM310,320,410,420には、例えばファイバチャネルやiSCSIなどを用いたSANを介して、ホスト装置540が接続されている。なお、図14では例として1台のホスト装置540がCM310,320,410,420に接続されているが、例えば、複数台のホスト装置のそれぞれが1台以上のCMに接続されてもよい。
CM310,320には、DE510が接続されており、CM410,420には、DE520が接続されている。DE510,520には、ホスト装置540からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、DE510,520は、記憶装置としてHDDを備えたディスクアレイ装置である。CM310,320は、DE510に搭載された記憶装置に対するアクセスを制御する。CM410,420は、DE520に搭載された記憶装置に対するアクセスを制御する。
PSU330は、外部から供給される電力に基づいて、CM310,320に電力を供給する。PSU430は、外部から供給される電力に基づいて、CM410,420に電力を供給する。ただし、PSU330,430には、共通の外部電源からの電力が供給されるものとする。このため、停電が発生すると、CM310,320,410,420のいずれの動作も停止する。
なお、CM310,320,410,420のいずれも、図3に示したCM110,120と同様のハードウェア構成を有する。したがって、CM310,320,410,420のいずれも、DRAMおよびSCMを備える。
また、ストレージシステムに含まれるCEの数は2台に限定されるものではなく、各CEに含まれるCMの数も2台に限定されるものではない。例えば、ストレージシステムには、それぞれ2台のCMを備えるDEが12台含まれてもよい。
FRT530は、PCIeスイッチ531を備えている。CM310,320,410,420は、FRT530のPCIeスイッチ531を介して、相互に通信できるようになっている。
図15は、ローカルキャッシュとそのミラーリング先との関係を示す図である。本実施の形態のストレージシステムでは、CMとホスト装置540との間のデータの読み書きは論理ボリュームを単位として行われる。ストレージシステム内には複数の論理ボリュームが設定され、各論理ボリュームにはその論理ボリュームに対するホスト装置540からのアクセスを制御するCMが割り当てられる。CMは、自装置に割り当てられた論理ボリュームに対するアクセスを、自装置内のSCMに確保したローカルキャッシュの領域を用いて制御する。SCMには、ローカルキャッシュの領域が論理ボリューム毎に確保される。
図15では、説明を簡単にするために、CM310,320,410,420はそれぞれ、ホスト装置540からのアクセス要求に応じて、1つの論理ボリュームに対するアクセスを制御するものとする。この場合、CM310,320,410,420の各SCM313,323,413,423には、1つのローカルキャッシュ313a,323a,413a,423aの領域が確保される。
なお、各論理ボリュームに対応する物理記憶領域は、DE510,520に搭載された1台以上のHDDによって実現される。最も簡単な例では、あるCMがアクセス制御を担当する論理ボリュームに対応する物理記憶領域は、そのCMに接続されたDE内の1台以上のHDDによって実現される。例えば、CM310がアクセス制御を担当する論理ボリュームに対応する物理記憶領域として、DE510内の1台以上のHDDが割り当てられる。
また、CM310,320,410,420の各DRAM312,322,412,422には、ミラーキャッシュ312a,322a,412a,422aの領域がそれぞれ確保される。ミラーキャッシュ312a,322a,412a,422aには、それぞれに対応するローカルキャッシュのデータがミラーリングされる。
ローカルキャッシュのデータのミラーリング先は、次のように割り当てられる。CM310のローカルキャッシュ313aのデータは、CM410のミラーキャッシュ412aにミラーリングされる。CM410のローカルキャッシュ413aのデータは、CM320のミラーキャッシュ322aにミラーリングされる。CM320のローカルキャッシュ323aのデータは、CM420のミラーキャッシュ422aにミラーリングされる。CM420のローカルキャッシュ423aのデータは、CM310のミラーキャッシュ312aにミラーリングされる。
このように、あるCMのローカルキャッシュは、隣接するCE内のCMにサイクリックにミラーリングされる。このとき、あるCMのローカルキャッシュは、必ず、そのCMが搭載されたCEとは異なるCE内のCMにミラーリングされる。このような構成により、CE単位で動作が停止した場合でも、どの論理ボリュームについてもローカルキャッシュまたはミラーキャッシュのどちらかが利用可能な状態となり、可用性が向上する。
例えば、CM310のローカルキャッシュ313aのデータがCM320のミラーキャッシュ322aにミラーリングされると仮定する。この構成で、CE300の動作が停止した場合、ローカルキャッシュ313aもミラーキャッシュ322aも利用できなくなり、対応する論理ボリュームへのアクセスが不可能になる。
これに対して、図15の例では、CM310のローカルキャッシュ313aのデータがCM410のミラーキャッシュ412aにミラーリングされている。このため、CE300の動作が停止したとしても、ミラーキャッシュ412aのデータが利用可能になっている。したがって、CM410は、ミラーキャッシュ412aのデータを利用して、対応する論理ボリュームに対するアクセス制御をCM310から引き継ぐことができる。逆に、CE400の動作が停止したとしても、CM310は、ローカルキャッシュ313aのデータを利用して、対応する論理ボリュームに対するアクセス制御を継続できる。
ここで、CM310,320,410,420のそれぞれは、図4に示したアクセス制御部111a(またはアクセス制御部121a)と起動制御部111b(または起動制御部121b)と同様の処理機能を有する。なお、CM310,320,410,420のそれぞれが有するアクセス制御部および起動制御部の処理は、CM310,320,410,420のそれぞれに搭載されたCPUが所定のプログラムを実行することで実行される。
例えば、CM310のアクセス制御部は、ホスト装置540から書き込みが要求されると、書き込みデータを、CM310のローカルキャッシュ313aに書き込むとともに、CM410のミラーキャッシュ412aにも書き込む。CM310のアクセス制御部は、ローカルキャッシュ313aおよびミラーキャッシュ412aのそれぞれに対する書き込みが完了すると、ホスト装置540に対して書き込み完了を通知する。
このようなCM310では、ローカルキャッシュ313aの領域が不揮発性のSCM313に確保されたことで、停電によってCE300,400の動作が停止した場合でも、ローカルキャッシュ313aのデータが失われずに維持される。このため、バッテリや、バックアップ用の他の不揮発性記憶装置が不要になり、CM310の製造コストや筐体の大きさを抑制できる。
これに加えて、ローカルキャッシュ313aの領域をDRAMではなくSCM313に確保したことによる書き込み処理時間の増加分の少なくとも一部は、ミラーキャッシュ412aへのミラーリング処理時間によって相殺される。このため、ローカルキャッシュ313aの領域をSCM313に確保したことが書き込み応答性能に与える影響を軽減できる。
また、CM310の起動制御部111bは、停電から電力供給が復旧してCM310が起動したとき、ローカルキャッシュ313aのデータをCM410に転送して、ミラーキャッシュ412aのデータを復元する。このように、復電時にローカルキャッシュ313aの復旧の必要がないので、CM310のアクセス制御部がアクセス制御を開始できるまでの時間を短縮できる。
なお、上記の各実施の形態に示した装置(例えば、ストレージ制御装置10,20、CM110,120,310,320,410,420)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) ミラーリング領域を含む揮発性メモリを有する第1のストレージ制御装置と、
キャッシュ領域を含む不揮発性メモリ、および、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを前記キャッシュ領域と前記ミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部、
を有する第2のストレージ制御装置と、
を有するストレージシステム。
(付記2) 前記制御部は、
前記第1のストレージ制御装置と前記第2のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記1記載のストレージシステム。
(付記3) 前記制御部は、
前記第2のストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記第2のストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記第2のストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記1記載のストレージシステム。
(付記4) 前記第1のストレージ制御装置は、前記第2のストレージ制御装置が異常停止すると、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、前記ミラーリング領域をキャッシュとして用いて続行する他の制御部をさらに有する、
付記1乃至3のいずれか1つに記載のストレージシステム。
(付記5) 前記ストレージシステムは、他のミラーリング領域を含む他の揮発性メモリを有する第3のストレージ制御装置をさらに有し、
前記第1のストレージ制御装置は、
他のキャッシュ領域を含む他の不揮発性メモリと、
他の記憶領域に対する他の書き込みデータの書き込み要求を受信すると、前記他の書き込みデータを前記他のキャッシュ領域と前記他のミラーリング領域の両方に書き込み、前記他のキャッシュ領域と前記他のミラーリング領域の両方に対する前記他の書き込みデータの書き込みが完了すると、前記他の書き込みデータの書き込み完了を示す完了通知を送信し、前記完了通知の送信後に前記他のキャッシュ領域内の前記他の書き込みデータを前記他の記憶領域に書き込む他の制御部と、
をさらに有する、
付記1乃至3のいずれか1つに記載のストレージシステム。
(付記6) 前記不揮発性メモリは、SCM(Storage Class Memory)である、
付記1乃至5のいずれか1つに記載のストレージシステム。
(付記7) キャッシュ領域を含む不揮発性メモリと、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記キャッシュ領域と、他のストレージ制御装置が備える揮発性メモリ内のミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部と、
を有するストレージ制御装置。
(付記8) 前記制御部は、
前記ストレージ制御装置と前記他のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記7記載のストレージ制御装置。
(付記9) 前記制御部は、
前記ストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記ストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記ストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記7記載のストレージ制御装置。
(付記10) コンピュータに、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記コンピュータが備える不揮発性メモリ内のキャッシュ領域と、他のコンピュータが備える揮発性メモリ内のミラーリング領域の両方に書き込み、
前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、
前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む、
処理を実行させるストレージ制御プログラム。
(付記11) 前記コンピュータに、
前記コンピュータと前記他のコンピュータが停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
処理をさらに実行させる付記10記載のストレージ制御プログラム。
(付記12) 前記コンピュータに、
前記コンピュータが所定の停止要求に応じて動作を停止する場合に、前記コンピュータが備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記コンピュータが起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
処理をさらに実行させる付記10記載のストレージ制御プログラム。
10,20 ストレージ制御装置
11 揮発性メモリ
11a ミラーリング領域
21 不揮発性メモリ
21a キャッシュ領域
22 制御部
30 記憶装置
40 ホスト装置

Claims (8)

  1. ミラーリング領域を含む揮発性メモリを有する第1のストレージ制御装置と、
    キャッシュ領域を含む不揮発性メモリ、および、
    記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを前記キャッシュ領域と前記ミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部、
    を有する第2のストレージ制御装置と、
    を有するストレージシステム。
  2. 前記制御部は、
    前記第1のストレージ制御装置と前記第2のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
    請求項1記載のストレージシステム。
  3. 前記制御部は、
    前記第2のストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記第2のストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
    前記第2のストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
    請求項1記載のストレージシステム。
  4. 前記第1のストレージ制御装置は、前記第2のストレージ制御装置が異常停止すると、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、前記ミラーリング領域をキャッシュとして用いて続行する他の制御部をさらに有する、
    請求項1乃至3のいずれか1項に記載のストレージシステム。
  5. 前記ストレージシステムは、他のミラーリング領域を含む他の揮発性メモリを有する第3のストレージ制御装置をさらに有し、
    前記第1のストレージ制御装置は、
    他のキャッシュ領域を含む他の不揮発性メモリと、
    他の記憶領域に対する他の書き込みデータの書き込み要求を受信すると、前記他の書き込みデータを前記他のキャッシュ領域と前記他のミラーリング領域の両方に書き込み、前記他のキャッシュ領域と前記他のミラーリング領域の両方に対する前記他の書き込みデータの書き込みが完了すると、前記他の書き込みデータの書き込み完了を示す完了通知を送信し、前記完了通知の送信後に前記他のキャッシュ領域内の前記他の書き込みデータを前記他の記憶領域に書き込む他の制御部と、
    をさらに有する、
    請求項1乃至3のいずれか1項に記載のストレージシステム。
  6. 前記不揮発性メモリは、SCM(Storage Class Memory)である、
    請求項1乃至5のいずれか1項に記載のストレージシステム。
  7. キャッシュ領域を含む不揮発性メモリと、
    記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記キャッシュ領域と、他のストレージ制御装置が備える揮発性メモリ内のミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部と、
    を有するストレージ制御装置。
  8. コンピュータに、
    記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記コンピュータが備える不揮発性メモリ内のキャッシュ領域と、他のコンピュータが備える揮発性メモリ内のミラーリング領域の両方に書き込み、
    前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、
    前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む、
    処理を実行させるストレージ制御プログラム。
JP2016154241A 2016-08-05 2016-08-05 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム Pending JP2018022404A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016154241A JP2018022404A (ja) 2016-08-05 2016-08-05 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
US15/615,269 US10528275B2 (en) 2016-08-05 2017-06-06 Storage system, storage control device, and method of controlling a storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016154241A JP2018022404A (ja) 2016-08-05 2016-08-05 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2018022404A true JP2018022404A (ja) 2018-02-08

Family

ID=61069183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016154241A Pending JP2018022404A (ja) 2016-08-05 2016-08-05 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US10528275B2 (ja)
JP (1) JP2018022404A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020135499A (ja) * 2019-02-21 2020-08-31 株式会社日立製作所 データ処理装置、ストレージ装置およびプリフェッチ方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230409472A1 (en) * 2020-12-22 2023-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Snapshotting Pending Memory Writes Using Non-Volatile Memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07110788A (ja) * 1993-10-14 1995-04-25 Fujitsu Ltd ディスクキャッシュ装置
JPH09146842A (ja) * 1995-11-20 1997-06-06 Hitachi Ltd 記憶サブシステム
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
JP2015191414A (ja) * 2014-03-28 2015-11-02 日本電気株式会社 制御装置、ディスクアレイ装置、及び制御方法、並びにコンピュータ・プログラム
JP2016503927A (ja) * 2013-01-31 2016-02-08 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0484215A (ja) 1990-07-26 1992-03-17 Hitachi Ltd ディスク制御装置のデータ二重書き方法
JP3451099B2 (ja) 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
US5802561A (en) * 1996-06-28 1998-09-01 Digital Equipment Corporation Simultaneous, mirror write cache
US6665781B2 (en) * 2000-10-17 2003-12-16 Hitachi, Ltd. Method and apparatus for data duplexing in storage unit system
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
US6574709B1 (en) * 1999-09-30 2003-06-03 International Business Machine Corporation System, apparatus, and method providing cache data mirroring to a data storage system
US20010047412A1 (en) * 2000-05-08 2001-11-29 Weinman Joseph B. Method and apparatus for maximizing distance of data mirrors
US6912669B2 (en) * 2002-02-21 2005-06-28 International Business Machines Corporation Method and apparatus for maintaining cache coherency in a storage system
US7051174B2 (en) * 2002-09-24 2006-05-23 International Business Machines Corporation Method, system, and program for restoring data in cache
JP2004171437A (ja) * 2002-11-22 2004-06-17 Fujitsu Ltd ストレージ制御装置及びその制御方法
US6965979B2 (en) * 2003-01-29 2005-11-15 Pillar Data Systems, Inc. Methods and systems of host caching
US20050063216A1 (en) * 2003-09-24 2005-03-24 Wilkins Virgil V. System and method for providing efficient redundancy mirroring communications in an n-way scalable network storage system
US7441081B2 (en) * 2004-12-29 2008-10-21 Lsi Corporation Write-back caching for disk drives
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
US9785561B2 (en) * 2010-02-17 2017-10-10 International Business Machines Corporation Integrating a flash cache into large storage systems
JP5488346B2 (ja) * 2010-08-30 2014-05-14 富士通株式会社 ストレージシステム、制御装置および制御方法
US9304901B2 (en) * 2013-03-14 2016-04-05 Datadirect Networks Inc. System and method for handling I/O write requests
DE112013005903T5 (de) * 2013-10-09 2015-09-10 Hitachi, Ltd. Speichersystem und Speichersteuerungsverfahren
US9870177B2 (en) * 2015-04-16 2018-01-16 Futurewei Technologies, Inc. System and method for reliably persisting storage writes at high speed
US9916241B2 (en) * 2015-08-14 2018-03-13 Netapp, Inc. Storage controller caching using symmetric storage class memory devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07110788A (ja) * 1993-10-14 1995-04-25 Fujitsu Ltd ディスクキャッシュ装置
JPH09146842A (ja) * 1995-11-20 1997-06-06 Hitachi Ltd 記憶サブシステム
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
JP2016503927A (ja) * 2013-01-31 2016-02-08 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法
JP2015191414A (ja) * 2014-03-28 2015-11-02 日本電気株式会社 制御装置、ディスクアレイ装置、及び制御方法、並びにコンピュータ・プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小林 直登 他: "ストレージクラスメモリを用いたアプリケーション透過なチェックポイント取得手法", 情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS) 2015−OS−1, JPN6020027411, 19 May 2015 (2015-05-19), JP, pages 1 - 8, ISSN: 0004372227 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020135499A (ja) * 2019-02-21 2020-08-31 株式会社日立製作所 データ処理装置、ストレージ装置およびプリフェッチ方法
JP7261037B2 (ja) 2019-02-21 2023-04-19 株式会社日立製作所 データ処理装置、ストレージ装置およびプリフェッチ方法

Also Published As

Publication number Publication date
US10528275B2 (en) 2020-01-07
US20180039439A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
US8024525B2 (en) Storage control unit with memory cache protection via recorded log
EP2348413B1 (en) Controlling memory redundancy in a system
JP4939234B2 (ja) フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
JP4041473B2 (ja) マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ
US9507671B2 (en) Write cache protection in a purpose built backup appliance
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
JP5409159B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US9952785B2 (en) Enabling non-volatile random access to data
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US10338844B2 (en) Storage control apparatus, control method, and non-transitory computer-readable storage medium
JP2011170589A (ja) ストレージ制御装置、ストレージ装置およびストレージ制御方法
JP2018010557A (ja) ストレージシステムおよび管理装置
KR100827287B1 (ko) 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
JP6540202B2 (ja) 情報処理システム、制御装置および制御プログラム
US11630731B2 (en) System and device for data recovery for ephemeral storage
JP2018022404A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
JP2000357059A (ja) ディスクアレイ装置
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US8549244B2 (en) Device and method of copying data between disks having equal or different rotational rates
JP5505329B2 (ja) ディスクアレイ装置及びその制御方法
US8453007B2 (en) Storage device and recovery method
US9836359B2 (en) Storage and control method of the same
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
JP2007323377A (ja) 記録装置、管理データの書き込み方法および管理データの修復方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210112