JP2022108987A - ストレージシステム、ストレージ制御装置およびストレージ制御方法 - Google Patents

ストレージシステム、ストレージ制御装置およびストレージ制御方法 Download PDF

Info

Publication number
JP2022108987A
JP2022108987A JP2021004255A JP2021004255A JP2022108987A JP 2022108987 A JP2022108987 A JP 2022108987A JP 2021004255 A JP2021004255 A JP 2021004255A JP 2021004255 A JP2021004255 A JP 2021004255A JP 2022108987 A JP2022108987 A JP 2022108987A
Authority
JP
Japan
Prior art keywords
cache
control device
storage
storage control
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.)
Withdrawn
Application number
JP2021004255A
Other languages
English (en)
Inventor
基裕 酒井
Motohiro Sakai
圭馬 阿部
Keima Abe
拓郎 隈部
Takuro Kumabe
秀治郎 大黒谷
Hidejiro Daikokuya
自由 櫛原
Jiyu Kushihara
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 JP2021004255A priority Critical patent/JP2022108987A/ja
Priority to US17/478,993 priority patent/US20220222015A1/en
Publication of JP2022108987A publication Critical patent/JP2022108987A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F3/0647Migration mechanisms
    • 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
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

Figure 2022108987000001
【課題】I/O処理の担当装置の切り替え指示を受けてからの応答時間を短縮する。
【解決手段】ストレージ制御装置10は、論理記憶領域1に対するI/O処理の制御を担当する担当装置をストレージ制御装置20に切り替える切り替え指示を受信すると、キャッシュ11を管理する装置としてストレージ制御装置10を示す管理装置番号22をストレージ制御装置20に通知し、切り替え指示に対する応答処理を実行して担当装置を切り替える。ストレージ制御装置20は、論理記憶領域1からの読み出し要求を受信すると、読み出しが要求されたデータがキャッシュ11にヒットするかの判定依頼を、通知された管理装置番号22が示すストレージ制御装置10に送信する。ストレージ制御装置10は、判定依頼に応じて、このデータがキャッシュ11にヒットするかを判定する。
【選択図】図1

Description

本発明は、ストレージシステム、ストレージ制御装置およびストレージ制御方法に関する。
複数のストレージ制御装置を含むストレージシステムでは、例えば、複数の論理記憶領域のそれぞれについて、I/O(Input/Output)処理を担当するストレージ制御装置があらかじめ決められている。また、このようなストレージシステムでは、ある論理記憶領域に対するI/O処理を担当するストレージ制御装置が切り替えられ、切り替え先のストレージ制御装置によってそのI/O処理が引き継がれる場合がある。例えば、切り替え元のストレージ制御装置における処理負荷が過大になった場合に、処理負荷がより低いストレージ制御装置にI/O処理の担当が切り替えられる。
このような切り替え処理の手順としては、次のような手順が考えられる。例えば、切り替えが指示されると、切り替え元のストレージ制御装置がI/O処理で用いていたキャッシュから、ダーティデータがバックエンドの記憶装置にライトバックされる。そして、すべてのダーティデータのライトバックが完了すると、切り替え指示に対する応答が行われ、切り替え先のストレージ制御装置でのI/O処理が開始される。
また、キャッシュメモリとストレージモジュールとの間の接続関係の切り替えに関して、次のような技術が提案されている。例えば、ストレージモジュールが現状とは別のキャッシュメモリと接続するように接続が切り替えられると、切り替え前のキャッシュメモリに格納されている情報が切り替え後のキャッシュメモリへ移動される。
特開2003-162377号公報 特開2015-169956号公報
ところで、上記のように、キャッシュのダーティデータのライトバックが完了してから切り替え指示に対する応答を行う場合には、切り替え指示を受けてから応答するまでの時間が長くなるという問題がある。特に、I/O処理に二次キャッシュが用いられる場合、二次キャッシュの容量は一次キャッシュよりはるかに大きいので、二次キャッシュのダーティデータのライトバックには長時間かかる可能性が高く、その分だけ切り替え指示に対する応答時間が長くなってしまう。
1つの側面では、本発明は、I/O処理の担当装置の切り替え指示を受けてからの応答時間を短縮することが可能なストレージシステム、ストレージ制御装置およびストレージ制御方法を提供することを目的とする。
1つの案では、第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムが提供される。このストレージシステムにおいて、第1のストレージ制御装置は、論理記憶領域に対するI/O処理をキャッシュを用いて制御している状態において、論理記憶領域に対するI/O処理の制御を担当する担当装置を第1のストレージ制御装置から第2のストレージ制御装置に切り替える切り替え指示を受信すると、キャッシュを管理する装置として第1のストレージ制御装置を示す管理装置番号を第2のストレージ制御装置に通知し、切り替え指示に対する応答処理を実行して担当装置を切り替える第1の切り替え処理を実行し、第1の切り替え処理の実行後において、読み出し要求によって論理記憶領域からの読み出しが要求されたデータがキャッシュにヒットするかの判定依頼を第2のストレージ制御装置から受信すると、データがキャッシュにヒットするかを判定する。第2のストレージ制御装置は、第1の切り替え処理の実行後において、読み出し要求を受信すると、通知された管理装置番号が示す第1のストレージ制御装置に対して判定依頼を送信する。
また、1つの案では、上記の第1のストレージ制御装置と同様の処理を実行する処理部を有するストレージ制御装置が提供される。
さらに、1つの案では、上記の第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムによって実行されるストレージ制御方法が提供される。
1つの側面では、I/O処理の担当装置の切り替え指示を受けてからの応答時間を短縮できる。
第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 CMのハードウェア構成例を示す図である。 CMが備える処理機能の構成例を示す図である。 担当CMとアクセスパスについて説明するための図である。 一次キャッシュと二次キャッシュを用いたI/O処理について説明するための図である。 キャッシュ管理情報のデータ構成例を示す図である。 論理ボリュームからのデータの読み出し処理を示すフローチャートの例である。 論理ボリュームに対するデータの書き込み処理を示すフローチャートの例である。 担当CMの切り替え処理の比較例を示すフローチャートである。 担当CMの切り替え処理Aを示すフローチャートの例である。 切り替え処理Aの完了後における切り替え先CMでの読み出し処理を示すシーケンス図の例である。 担当CMの切り替え処理Bを示すフローチャートの例である。 担当CM管理情報のデータ構成例を示す図である。 切り替え処理Bの完了後における切り替え先CMでの読み出し処理を示すシーケンス図の例である。 担当CMの切り替えが指示された際の切り替え制御処理を示すフローチャートの例(その1)である。 担当CMの切り替えが指示された際の切り替え制御処理を示すフローチャートの例(その2)である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図1に示すストレージシステムは、ストレージ制御装置10,20を含む。
ストレージ制御装置10,20は、論理記憶領域に対するI/O処理を制御する。図1では例として、ストレージ制御装置10は、論理記憶領域1に対するI/O処理を制御するものとする。そして、論理記憶領域1に対するI/O処理の制御を担当する担当装置が、ストレージ制御装置10からストレージ制御装置20に切り替えられるものとする。
ストレージ制御装置10は、キャッシュ11を用いて論理記憶領域1に対するI/O処理を制御する。キャッシュ11は、ストレージ制御装置10の内部に搭載された記憶装置、または、ストレージ制御装置10の外部に接続された記憶装置に確保される。このような状態において、ストレージ制御装置10が、担当装置をストレージ制御装置10からストレージ制御装置20に切り替えるように指示する切り替え指示を受信したとする(ステップS1)。
すると、ストレージ制御装置10は、ステップS2,S3の処理を含む次のような切り替え処理を実行する。まず、ストレージ制御装置10は、キャッシュ11を管理する装置としてストレージ制御装置10を示す管理装置番号22を、切り替え先のストレージ制御装置20に通知する(ステップS2)。通知された管理装置番号22は、例えば、ストレージ制御装置20が備える記憶装置21に格納される。ストレージ制御装置10は、管理装置番号22を通知すると、切り替え指示に対する応答処理を実行して、担当装置をストレージ制御装置20に切り替える(ステップS3)。
これにより、切り替え先のストレージ制御装置20による論理記憶領域1に対するI/O処理の制御が開始される。この状態で、ストレージ制御装置20が、論理記憶領域1からのデータの読み出し要求を受信したとする(ステップS4)。すると、ストレージ制御装置20は、通知された管理装置番号22を参照して、論理記憶領域1に対応するキャッシュ11の管理装置がストレージ制御装置10であることを認識する。そして、ストレージ制御装置20は、読み出し要求によって読み出しが要求されたデータ(読み出しデータ)がキャッシュ11にヒットするかの判定依頼を、管理装置番号22が示すストレージ制御装置10に送信する(ステップS5)。
切り替え元のストレージ制御装置10は、判定依頼を受信すると、読み出しデータがキャッシュ11にヒットするかを判定する(ステップS6)。ここで、例えば、読み出しデータがキャッシュ11に存在し、キャッシュヒットと判定されると、ストレージ制御装置10は、読み出しデータをキャッシュ11から読み出し、ストレージ制御装置20に転送する(ステップS7)。ストレージ制御装置20は、転送された読み出しデータを受信し、受信した読み出しデータを読み出し要求の送信元装置(図示せず)に送信して、読み出し要求に対する応答処理を実行する(ステップS8)。
以上のように、切り替え元のストレージ制御装置10は、担当装置の切り替え指示を受信した場合、キャッシュ11の管理装置を示す管理装置番号22を切り替え先のストレージ制御装置20に通知するだけで、切り替え指示に対して応答し、担当装置を切り替える。これにより、キャッシュ11に格納されたすべてのダーティデータを、論理記憶領域1を実現する物理記憶領域にライトバックしてから応答する場合と比較して、切り替え指示を受けてからの応答時間を短縮できる。
また、担当装置が切り替えられた時点では、キャッシュ11にダーティデータが残っている可能性がある。このため、切り替え先のストレージ制御装置20が読み出し要求を受信したときに、データの不整合が発生しないように、キャッシュ11に残っているダーティデータにアクセスできるようにしておく必要がある。上記処理では、切り替え処理時に管理装置番号22がストレージ制御装置20に通知される。これにより、切り替え先のストレージ制御装置20は、この管理装置番号22に基づいて、読み出しデータがキャッシュ11にヒットするかの判定を依頼できるようになり、ヒットした場合に読み出しデータをキャッシュ11から取得できるようになる。
このように、切り替え元のストレージ制御装置10は、キャッシュ11のライトバックを実行する代わりに管理装置番号22を通知し、切り替え後にストレージ制御装置20がキャッシュ11のダーティデータにアクセスできるようにした上で、切り替え処理を完了する。これにより、切り替え後のI/O処理によるデータ不整合を回避しながら、切り替え指示に対する応答時間を短縮できる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、CM(Controller Module)100a~100d、ホストサーバ400a,400bおよび管理端末500を含む。
CM100a~100dは、ホストサーバ400a,400bからの要求に応じて論理ボリュームに対するI/O処理を制御するストレージ制御装置である。I/O制御対象の論理ボリュームは、ディスクアレイに搭載された記憶装置を用いて実現される。
図2の例では、CM100a,100bに対してディスクアレイ200aが接続され、CM100c,100dに対してディスクアレイ200bが接続されている。この場合、CM100a,100bは基本的に、ディスクアレイ200aに搭載された記憶装置を用いて実現される論理ボリュームに対するI/O処理を制御する。また、CM100c,100dは基本的に、ディスクアレイ200bに搭載された記憶装置を用いて実現される論理ボリュームに対するI/O処理を制御する。
ディスクアレイ200a,200bには、論理ボリュームの記憶領域を実現する複数台の記憶装置がそれぞれ搭載されている。本実施の形態では例として、ディスクアレイ200a,200bには、このような記憶装置としてHDD(Hard Disk Drive)が搭載されているものとする。
また、CM100a~100dは、フラッシュモジュールに搭載された記憶装置(フラッシュメモリ)による記憶領域を二次キャッシュとして用いて、論理ボリュームに対するI/O制御を行う。図2の例では、CM100a,100bに対してフラッシュモジュール300aが接続され、CM100c,100dに対してフラッシュモジュール300bが接続されている。フラッシュモジュール300a,300bには、複数台のフラッシュメモリがそれぞれ搭載されている。
CM100a~100dは、ネットワーク511を介してホストサーバ400a,400bに接続されている。ネットワーク511は、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)である。
また、CM100a~100dは、スイッチ512を介して相互に通信することができる。スイッチ512は、例えば、PCI Express(Peripheral Component Interconnect Express。以下、“PCIe”と略称する)のバスを介してCM100a~100dに接続し、CM間で伝送される信号を中継する。
管理端末500は、CM100a~100dを管理するために管理者が操作する端末装置であり、ネットワーク511を介してCM100a~100dに接続されている。
なお、ストレージシステムに含まれるCMの台数は、図2のように4台に限定されず、2台以上の任意の台数に設定できる。また、各CMとディスクアレイおよびフラッシュモジュールの接続関係も図2の例に限定されるものではなく、1台のCMに1台以上のディスクアレイと1台以上のフラッシュモジュールとが接続されていればよい。
また、本実施の形態では、ディスクアレイに搭載された記憶装置(ここではHDD)によって論理ボリュームが実現される。また、論理ボリュームに対するI/O制御時に一次キャッシュと二次キャッシュが利用される。そして、一次キャッシュはCM内のRAM(Random Access Memory)によって実現され、二次キャッシュはフラッシュモジュール内の記憶装置(ここではフラッシュメモリ)によって実現される。
ただし、二次キャッシュを実現する記憶装置は、論理ボリュームを実現する記憶装置よりアクセス速度が高速であり、一次キャッシュを実現する記憶装置よりアクセス速度が低速である不揮発性記憶装置であればよい。例えば、論理ボリュームを実現する記憶装置としてSSD(Solid State Drive)が用いられた場合、二次キャッシュを実現する記憶装置として、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistive RAM)などのいわゆるSCM(Storage Class Memory)が用いられてもよい。また、二次キャッシュを実現する不揮発性記憶装置は、CMに内蔵されていてもよい。
図3は、CMのハードウェア構成例を示す図である。図3では例としてCM100aについて示すが、他のCM100b~100dも同様のハードウェア構成によって実現可能である。
CM100aは、例えば、図3に示すようなコンピュータとして実現される。図3に示すCM100aは、プロセッサ101、RAM102、SSD103、ホストインタフェース(I/F)104、ドライブインタフェース(I/F)105、フラッシュインタフェース(I/F)106およびCMインタフェース(I/F)107を備える。
プロセッサ101は、CM100a全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、例えばDRAM(Dynamic RAM)として実現され、CM100aの主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。なお、後述するように、RAM102の記憶領域の一部は、論理ボリュームに対するI/O制御の際に一次キャッシュとして用いられる。
SSD103は、CM100aの補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、HDDなどの他の種類の不揮発性記憶装置を使用することもできる。
ホストインタフェース104は、ネットワーク511を介してホストサーバ400a,400bや管理端末500と通信する。
ドライブインタフェース105は、ディスクアレイ200aに接続されている。図3に示すように、ディスクアレイ200aには、複数台のHDD201,202,・・・が搭載されている。ドライブインタフェース105は、ディスクアレイ200aに搭載されたHDD201,202,・・・と通信する。
フラッシュインタフェース106は、フラッシュモジュール300aに接続されている。図3に示すように、フラッシュモジュール300aには、複数台のフラッシュメモリ301,302,・・・が搭載されている。フラッシュインタフェース106は、フラッシュモジュール300aに搭載されたフラッシュメモリ301,302,・・・と通信する。
CMインタフェース107は、スイッチ512を介して他のCM100b~100dと通信する。
以上のようなハードウェア構成によって、CM100aの処理機能を実現することができる。なお、例えば、ホストサーバ400a,400bについても、図3に示したようなハードウェア構成を有するコンピュータとして実現することができる。
図4は、CMが備える処理機能の構成例を示す図である。図4では例としてCM100aについて示すが、他のCM100b~100dも同様の処理機能を備えている。
まず、RAM102には、一次キャッシュ111の領域が確保される。また、フラッシュモジュール300aには、二次キャッシュ311の領域が確保される。CM100aは、論理ボリュームに対するI/O処理を、一次キャッシュ111と二次キャッシュ311を用いて制御する。
また、RAM102には、キャッシュ管理情報112と担当CM管理情報113が記憶される。キャッシュ管理情報112は、一次キャッシュ111および二次キャッシュ311を管理するための情報であり、例えば、論理ボリューム上のアドレスとキャッシュ上のアドレスとの対応関係を示す情報や、論理ボリューム上のデータの属性を示す情報などを含む。担当CM管理情報113は、論理ボリュームとその担当CMとの対応関係を示す情報である。「担当CM」とは、論理ボリュームに対するI/O処理を制御するCMを示す。
また、CM100aは、ホスト通信部121、リソース制御部122、キャッシュ制御部123、RAID(Redundant Array of Inexpensive Disks)制御部124および切り替え制御部125を備える。ホスト通信部121、リソース制御部122、キャッシュ制御部123、RAID制御部124および切り替え制御部125の処理は、例えば、CM100aが備えるプロセッサ101が所定のアプリケーションプログラムを実行することで実現される。
ホスト通信部121は、ホストサーバ400a,400bとの間や管理端末500との間の通信処理を実行する。例えば、ホスト通信部121は、ホストサーバ400a,400bからI/O要求を受信し、そのI/O要求に対する応答をホストサーバ400a,400bに送信する。
リソース制御部122は、担当CM管理情報113を参照して、ホスト通信部121が受信したI/O要求の対象の論理ボリュームについての担当CMを判定する。リソース制御部122は、担当CMが自CM(ここではCM100a)である場合、I/O要求を自CM内のキャッシュ制御部123に受け渡す。一方、リソース制御部122は、担当CMが他のCMである場合、I/O要求をそのCMに転送する。また、リソース制御部122は、他のCMのリソース制御部から転送されたI/O要求を受信すると、そのI/O要求を自CM内のキャッシュ制御部123に受け渡す。
キャッシュ制御部123は、一次キャッシュ111および二次キャッシュ311を用いて、I/O要求に応じたI/O処理を実行する。
RAID制御部124は、ディスクアレイ200aに対するI/O処理やフラッシュモジュール300aに対するI/O処理を、RAIDを用いて制御する。例えば、RAID制御部124は、論理ボリューム内のデータをディスクアレイ200aに書き込む要求をキャッシュ制御部123から受信すると、そのデータがディスクアレイ200a内の複数のHDDに冗長化されるようにデータの書き込みを行う。また、RAID制御部124は、二次キャッシュ311に対するデータの書き込み要求をキャッシュ制御部123から受信すると、そのデータがフラッシュモジュール300a内の複数のフラッシュメモリに冗長化されるようにデータの書き込みを行う。
なお、このようなI/O制御の際のRAIDレベルは、ディスクアレイ200aおよびフラッシュモジュール300aのそれぞれについて任意に設定される。また、これらのRAIDレベルは論理ボリュームごとに個別に設定されてもよい。
切り替え制御部125は、担当CMの切り替え処理を制御する。
図5は、担当CMとアクセスパスについて説明するための図である。前述のように、担当CMとは、論理ボリュームに対するI/O処理を制御するCMを示す。ホストサーバ400a,400bからのアクセス対象となる論理ボリュームのそれぞれには、I/O制御を担当する1つのCMが対応付けられている。
図5の例では、論理ボリュームLV1の担当CMとしてCM100aが設定され、論理ボリュームLV2の担当CMとしてCM100bが設定されている。この場合、CM100aは、論理ボリュームLV1に対応付けて確保されたキャッシュ領域CA1を用いて、論理ボリュームLV1に対するアクセス処理を制御する。また、CM100bは、論理ボリュームLV2に対応付けて確保されたキャッシュ領域CA2を用いて、論理ボリュームLV2に対するアクセス処理を制御する。
なお、キャッシュ領域CA1,CA2のいずれも、実際には一次キャッシュと二次キャッシュの各領域を含む。また、論理ボリュームLV1,LV2のいずれも、ディスクアレイ200aまたはディスクアレイ200bに含まれる複数のHDDを用いて実現され、RAIDによってデータが複数のHDDに冗長化されて格納される。
一方、ホストサーバ400a,400bは、ある論理ボリュームにアクセスする際に複数のアクセスパスを用いることができる。これにより、1つのアクセスパスが異常発生などによって閉塞された場合でも、他のアクセスパスを介して論理ボリュームとの間のI/O処理を継続できる。
図5の例では、ホストサーバ400aが論理ボリュームLV1にアクセスするためのアクセスパスとして、ホストサーバ400aとCM100aとの間のアクセスパス521と、ホストサーバ400aとCM100bとの間のアクセスパス522とが設定されている。ここで、CM100a~100dのそれぞれは、論理ボリュームとその担当CMとの対応関係を示す担当CM管理情報113を保持している。そして、CM100a~100dのリソース制御部122は、いずれかのホストサーバから論理ボリュームに対するI/O要求を受信すると、担当CM管理情報113に基づいてその論理ボリュームの担当CMを判別する。担当CMが他のCMの場合、リソース制御部122は、そのCMに対してI/O要求を転送する。
例えば、図5において、ホストサーバ400aがアクセスパス521を利用し、CM100aに対して論理ボリュームLV1に対するI/O要求を送信したとする。この場合、CM100aのリソース制御部122は、担当CM管理情報113に基づき、受信したI/O要求をCM100aのキャッシュ制御部123に受け渡す。一方、ホストサーバ400aがアクセスパス522を利用し、CM100bに対して論理ボリュームLV1に対するI/O要求を送信したとする。この場合、CM100bのリソース制御部122は、担当CM管理情報113に基づき、受信したI/O要求を担当CMであるCM100aに転送する。転送されたI/O要求は、CM100aのキャッシュ制御部123に受け渡される。このようにして、アクセスパス521,522のどちらを用いてI/O要求が送信されても、論理ボリュームLV1に対するI/O処理は担当CMであるCM100aによって制御される。
図6は、一次キャッシュと二次キャッシュを用いたI/O処理について説明するための図である。前述のように、論理ボリュームに対するI/O処理は、RAM102によって実現される一次キャッシュ111と、フラッシュモジュール(ここではフラッシュモジュール300aとする)によって実現される二次キャッシュ311とを用いて制御される。
例えば、CM100aに対して論理ボリュームに対するデータD1の書き込みが要求されたとする。この場合、CM100aのキャッシュ制御部123は、データD1を一次キャッシュ111に書き込む。これとともに、CM100aの故障によるデータロストを防ぐために、キャッシュ制御部123は、あらかじめ決められたバックアップ先のCM(ここではCM100bとする)に対してデータD1を転送する。これにより、CM100bのRAM101にもデータD1が書き込まれ、データD1が二重化される。これらの処理が完了すると、キャッシュ制御部123は、書き込み要求元のホストサーバに対して応答を返す。
また、キャッシュ制御部123は、一次キャッシュ111にデータを書き込む際に一次キャッシュ111の空き領域が足りない場合には、一次キャッシュ111内のデータのうち最終アクセス時刻が最も早いデータを二次キャッシュ311に移動させる。図6の例ではデータD2が一次キャッシュ111から二次キャッシュ311に移動されたとする。ここで、二次キャッシュ311への書き込みでは、データはフラッシュモジュール300a上の複数のフラッシュメモリに冗長化されて書き込まれる。例えば、フラッシュメモリ301,302を用いてRAID1で制御される場合、データD2はフラッシュメモリ301,302にミラーリングされる。
なお、データが二次キャッシュ311に書き込まれるケースとしては、上記のように一次キャッシュ111からデータが追い出されたケースに加え、ホストサーバからの書き込み要求に対して二次キャッシュ311でヒットしたケースもある。
ところで、一次キャッシュ111および二次キャッシュ311に対するデータの書き込みは、RAM102に記憶されたキャッシュ管理情報112を用いて管理される。一次キャッシュ111や二次キャッシュ311にデータが書き込まれると、そのデータに関する管理データがキャッシュ管理情報112に登録される。この管理データには、データの書き込み先を示す論理ボリュームの番号およびその論理ボリューム上の論理アドレス(Logical Block Address:LBA)と、キャッシュ領域における格納先アドレスを含む。一次キャッシュ111への書き込みの場合、格納先アドレスとしては、例えば、RAM102上のメモリアドレスが登録される。二次キャッシュ311への書き込みの場合、格納先アドレスとしては、例えば、フラッシュモジュール300a上の複数のフラッシュメモリをRAIDにより制御することで実現される論理記憶領域(RAIDボリューム)におけるアドレスが登録される。
また、キャッシュ管理情報112に対して管理データが新規に登録されると、その管理データはバックアップ先のCM100bに転送され、そのCM100bのRAM102にも格納される。また、キャッシュ管理情報112内の管理データが更新されると、バックアップ先のCM100bに格納された対応する管理データも更新される。このようにして、少なくともキャッシュ上のダーティデータに対応する管理データが二重化される。
図6の例では、データD1が一次キャッシュ111に書き込まれると、そのデータD1に対応する管理データM1がキャッシュ管理情報112に登録される。これとともに、登録された管理データM1はCM100bに転送され、CM100bのRAM102に格納される。
また、データD2が一次キャッシュ111から二次キャッシュ311に移動すると、データD2に対応する管理データM2のうち、キャッシュ領域における格納先アドレスが更新される。これとともに、更新後の管理データM2がCM100bに転送され、CM100bのRAM102に格納されている管理データM2が更新後の管理データM2によって更新される。これにより、管理データM2が二重化される。
この管理データM2の例のように、二次キャッシュ311に関する管理データは、二次キャッシュ311の領域が確保されたフラッシュモジュールではなく、CM内のRAM上に格納される。これにより、管理データの読み書きの速度を向上させることができ、その結果として、一次キャッシュ111や二次キャッシュ311を用いたI/O処理速度を高めることができる。
図7は、キャッシュ管理情報のデータ構成例を示す図である。キャッシュ管理情報112は、ハッシュテーブル112-1とページ管理情報112-2を含む。これらのハッシュテーブル112-1およびページ管理情報112-2は、一次キャッシュ111と二次キャッシュ311のそれぞれについて生成される。図7では例として、二次キャッシュ311についてのハッシュテーブル112-1およびページ管理情報112-2を示す。
ハッシュテーブル112-1には、キャッシュ領域内の単位領域であるキャッシュページごと(図7の例では二次キャッシュ311のキャッシュページごと)のレコードが登録される。各レコードには、レコードを識別するレコード番号と、キャッシュページを識別するキャッシュページIDとが登録される。
また、キャッシュ管理情報112には、キャッシュページIDごとに(すなわちキャッシュページごとに)ページ管理情報112-2が登録される。ページ管理情報112-2には、キャッシュページの物理位置情報と、キャッシュページに格納されたデータの属性を示すデータ属性とが登録される。図7では例として、フラッシュモジュールにおける二次キャッシュ311の記憶領域がRAID1で管理されるものとすると、物理位置情報としては、メインのフラッシュメモリを示すフラッシュ番号と、そのフラッシュメモリ内のアドレスを示すフラッシュアドレスとが登録される。データ属性は、格納されたデータがダーティデータであるか否か(ライトバック済みのデータであるか否か)を示す。
ここで、ハッシュテーブル112-1のレコード番号は、論理ボリュームにおけるデータの書き込み先情報に基づくハッシュキーである。例えば、論理ボリュームに対するデータの書き込みが要求されたとき、キャッシュ制御部123は、その論理ボリュームのボリューム番号と、論理ボリュームにおける書き込み先範囲の先頭論理アドレスとに基づいてハッシュキーを算出する。キャッシュ制御部123は、算出されたハッシュキーと同じレコード番号がハッシュテーブル112-1に存在しない場合(キャッシュミスの場合)、ハッシュテーブル112-1に新たなレコードを登録して、レコード番号としてハッシュキーを登録する。また、キャッシュ制御部123は、空いているキャッシュページのキャッシュページIDを取得して、そのレコードに登録し、取得したキャッシュページIDに対応するページ管理情報112-2に対して、ダーティデータを示すデータ属性を登録する。
なお、図6に示した管理データM2は、ハッシュテーブル112-1のレコードのうち、データD2が格納されるキャッシュページに対応するレコードと、このレコードに対応するページ管理情報112-2とを示す。
次に、図8、図9のフローチャートを用いて、論理ボリュームに対するI/O処理手順を説明する。図8、図9では例として、CM100aが担当CMである論理ボリュームに対する、CM100aでのI/O処理について説明する。
図8は、論理ボリュームからのデータの読み出し処理を示すフローチャートの例である。
[ステップS11]CM100aのホスト通信部121は、ホストサーバから、論理ボリュームからの読み出し要求を受信し、リソース制御部122に受け渡す。リソース制御部122は、担当CM管理情報113に基づいて、読み出し元の論理ボリュームの担当CMがCM100aであると判定すると、読み出し要求をキャッシュ制御部123に受け渡す。
なお、例えば他のCMが読み出し要求を受信した場合、そのCMのリソース制御部122が、担当CM管理情報113に基づいて担当CMがCM100aであると判定し、読み出し要求をCM100aに転送する。CM100aでは、転送された読み出し要求をリソース制御部122が受信し、キャッシュ制御部123に受け渡す。
[ステップS12]キャッシュ制御部123は、キャッシュ管理情報112に含まれる一次キャッシュ111用のハッシュテーブルを参照して、論理ボリュームにおける読み出し元範囲のデータが一次キャッシュ111に存在するかを判定する。読み出し元の論理ボリュームのボリューム番号および読み出し元アドレスを基に算出されたハッシュキーがレコード番号として登録されたレコードが、ハッシュテーブルに登録されている場合、読み出し元範囲のデータが一次キャッシュ111に存在する(一次キャッシュヒット)と判定される。読み出し元範囲のデータが一次キャッシュ111に存在する場合、処理がステップS16に進められ、存在しない場合、処理がステップS13に進められる。
[ステップS13]キャッシュ制御部123は、キャッシュ管理情報112に含まれる二次キャッシュ311用のハッシュテーブルを参照して、論理ボリュームにおける読み出し元範囲のデータが二次キャッシュ311に存在するかを判定する。読み出し元の論理ボリュームのボリューム番号および読み出し元アドレスを基に算出されたハッシュキーがレコード番号として登録されたレコードが、ハッシュテーブルに登録されている場合、読み出し元範囲のデータが二次キャッシュ311に存在する(二次キャッシュヒット)と判定される。読み出し元範囲のデータが二次キャッシュ311に存在する場合、処理がステップS14に進められ、存在しない場合、処理がステップS15に進められる。
[ステップS14]キャッシュ制御部123は、二次キャッシュ311から読み出し元範囲のデータを読み出し、一次キャッシュ111にコピーする。このとき、キャッシュ制御部123は、読み出したデータをバックアップ先のCMに転送してRAM101に二重化する。また、キャッシュ制御部123は、キャッシュ管理情報112に含まれる管理データのうち、コピー先のキャッシュページに対応する管理データを更新するとともに、更新された管理データをバックアップ先のCMに転送してRAM101に二重化する。
[ステップS15]キャッシュ制御部123は、ディスクアレイ200a内のHDDから読み出し元範囲のデータを読み出し、一次キャッシュ111にコピーする。このとき、キャッシュ制御部123は、読み出したデータをバックアップ先のCMに転送してRAM101に二重化する。また、キャッシュ制御部123は、キャッシュ管理情報112に含まれる管理データのうち、コピー先のキャッシュページに対応する管理データを更新するとともに、更新された管理データをバックアップ先のCMに転送してRAM101に二重化する。
なお、ステップS14,S15では、一次キャッシュ111の空き領域が足りない場合、一次キャッシュ111上のキャッシュページのうち最終アクセス時刻が最も早いキャッシュページに記憶されたデータが、二次キャッシュ311に追い出される。そして、そのキャッシュページに対して、二次キャッシュ311またはHDDから読み出したデータが格納される。
[ステップS16]キャッシュ制御部123は、読み出しが要求されたデータを一次キャッシュ111から読み出す。読み出されたデータはリソース制御部122の制御により、読み出し要求を受信したCM内のホスト通信部121を介してホストサーバに転送される。
図9は、論理ボリュームに対するデータの書き込み処理を示すフローチャートの例である。
[ステップS21]CM100aのホスト通信部121は、ホストサーバから、論理ボリュームに対する書き込み要求と書き込みデータを受信し、リソース制御部122に受け渡す。リソース制御部122は、担当CM管理情報113に基づいて、書き込み先の論理ボリュームの担当CMがCM100aであると判定すると、書き込み要求と書き込みデータをキャッシュ制御部123に受け渡す。
なお、例えば他のCMが書き込み要求と書き込みデータを受信した場合、そのCMのリソース制御部122が、担当CM管理情報113に基づいて担当CMがCM100aであると判定し、書き込み要求と書き込みデータをCM100aに転送する。CM100aでは、転送された読み出し要求および書き込みデータをリソース制御部122が受信し、キャッシュ制御部123に受け渡す。
[ステップS22]キャッシュ制御部123は、キャッシュ管理情報112に含まれる一次キャッシュ111用のハッシュテーブルを参照して、論理ボリュームにおける書き込み先範囲のデータが一次キャッシュ111に存在するかを判定する。書き込み先の論理ボリュームのボリューム番号および書き込み先アドレスを基に算出されたハッシュキーがレコード番号として登録されたレコードが、ハッシュテーブルに登録されている場合、書き込み先範囲のデータが一次キャッシュ111に存在する(一次キャッシュヒット)と判定される。書き込み先範囲のデータが一次キャッシュ111に存在する場合、処理がステップS23に進められ、存在しない場合、処理がステップS24に進められる。
[ステップS23]キャッシュ制御部123は、書き込みデータを、一次キャッシュ111に記憶されている書き込み先範囲のデータに上書きして書き込む。このとき、キャッシュ制御部123は、書き込みデータをバックアップ先のCMに転送し、RAM101に二重化されている書き込み先範囲の元のデータに上書きする。
[ステップS24]キャッシュ制御部123は、キャッシュ管理情報112に含まれる二次キャッシュ311用のハッシュテーブルを参照して、論理ボリュームにおける書き込み先範囲のデータが二次キャッシュ311に存在するかを判定する。書き込み先の論理ボリュームのボリューム番号および書き込み先アドレスを基に算出されたハッシュキーがレコード番号として登録されたレコードが、ハッシュテーブルに登録されている場合、書き込み先範囲のデータが二次キャッシュ311に存在する(二次キャッシュヒット)と判定される。書き込み先範囲のデータが二次キャッシュ311に存在する場合、処理がステップS25に進められ、存在しない場合、処理がステップS26に進められる。
[ステップS25]キャッシュ制御部123は、書き込みデータを、二次キャッシュ311に記憶されている書き込み先範囲のデータに上書きして書き込む。
[ステップS26]キャッシュ制御部123は、書き込みデータを一次キャッシュ111に書き込むとともに、書き込みデータをバックアップ先のCMに転送してRAM101に二重化する。また、キャッシュ制御部123は、データ書き込み先のキャッシュページに対応する管理データをキャッシュ管理情報112に新規登録するとともに、その管理データをバックアップ先のCMに転送してRAM101に二重化する。
[ステップS27]キャッシュ制御部123は、書き込み完了の応答処理をリソース制御部122に依頼する。このリソース制御部122の処理により、書き込み完了の応答が、書き込み要求を受信したCM内のホスト通信部121を介してホストサーバに送信される。
なお、図8、図9の手順により二次キャッシュ311に書き込まれたデータは、論理ボリュームのI/O処理とは非同期のタイミングでディスクアレイのHDDにライトバックされる。例えば、二次キャッシュ311に新たなデータを書き込む際に空き領域が不足している場合、二次キャッシュ311上のキャッシュページのうち最終アクセス時刻が最も早いキャッシュページに記憶されたデータが追い出されて、ディスクアレイのHDDにライトバックされる。あるいは、バックグラウンドの処理によって二次キャッシュ311上のデータのライトバックが行われてもよい。この場合、二次キャッシュ311上のキャッシュページの中から最終アクセス時刻が早い順にキャッシュページが選択され、選択されたキャッシュページ内のデータがディスクアレイのHDDにライトバック(コピー)されう。このとき、選択されたキャッシュページに対応するページ管理情報のデータ属性が、ライトバック済みを示すように更新される。
次に、論理ボリュームについての担当CMの切り替え処理について説明する。
本実施の形態に係るストレージシステムでは、論理ボリュームの担当CMを任意の他のCMに切り替えることが可能となっている。例えば、ある論理ボリュームの担当CMであるCMにおいて処理負荷が過大となった場合に、担当CMを、他のCMのうち処理負荷が最も低いCMに切り替えることが可能である。また、前述のように、各CM内のキャッシュ領域や管理データのバックアップ先CMはあらかじめ決められているが、担当CMの切り替え先は、バックアップ先CMであるか否かに関係なく選択することができる。
ここで、担当CMの切り替え処理の比較例を図10に示し、その後に本実施の形態における切り替え処理の詳細について説明する。
図10は、担当CMの切り替え処理の比較例を示すフローチャートである。図10に示す比較例では、キャッシュ領域とバックエンドの記憶領域との間のデータの整合性を維持するために、キャッシュ領域内のデータをすべてライトバックした後に担当CMが切り替えられる。
[ステップS31]管理端末500からCM100aに対して、ある論理ボリュームの担当CMの切り替え指示が送信される。ここでは例として、論理ボリュームLV1の担当CMをCM100aからCM100cに切り替えるように指示されたとする。CM100aのホスト通信部121は、切り替え指示を受信し、切り替え制御部125に受け渡す。
[ステップS32]切り替え制御部125は、キャッシュ制御部123に対して、一次キャッシュ111および二次キャッシュ311のダーティデータをライトバックするように指示する。キャッシュ制御部123はこの指示に応じて、一次キャッシュ111および二次キャッシュ311のダーティデータをディスクアレイ200aの対応するHDDにライトバックする。
[ステップS33]ステップS33ですべてのダーティデータのライトバックが完了すると、切り替え制御部125は、キャッシュ制御部123に、論理ボリュームLV1に対するI/O処理を停止させる。
[ステップS34]切り替え制御部125は、一次キャッシュ111および二次キャッシュ311に格納されたすべてのデータを削除するように指示する。キャッシュ制御部123はこの指示に応じて、一次キャッシュ111および二次キャッシュ311に格納されたすべてのデータを削除する。
[ステップS35]ステップS34で対応するすべてのデータが削除されると、切り替え制御部125は、論理ボリュームLV1の担当CMをCM100cに切り替える処理を実行する。具体的には、切り替え制御部125は、論理ボリュームLV1の担当CMがCM100cを示すように担当CM管理情報113を更新する。また、切り替え制御部125は、他のCMに対しても論理ボリュームLV1の担当CMをCM100cに切り替えることを通知して、各CMの担当CM管理情報113を更新させる。
このステップS35が実行されると、切り替え先のCM100cにより、論理ボリュームLV1に対するI/O処理が再開される。このとき、CM100cのキャッシュ制御部123は、CM100cが備えるRAM102に確保した一次キャッシュと、CM100cに接続されたフラッシュモジュールに確保した二次キャッシュとを用いて、論理ボリュームLV1に対するI/O処理を制御できる。
[ステップS36]切り替え制御部125は、担当CMの切り替え完了の応答を、ホスト通信部121を介して管理端末500に送信する。
なお、切り替え元のCM100aのキャッシュ制御部123は、ステップS31の開始からステップS35の完了までの期間に論理ボリュームLV1へのデータの書き込みが要求された場合には、例えば、書き込みデータをキャッシュ領域に書き込まず、バックエンドの記憶領域に直接書き込む。一方、キャッシュ制御部123は、この期間に論理ボリュームLV1からのデータの読み出しが要求されたときにキャッシュヒットした場合には、キャッシュ領域からデータを読み出すことができる。ただし、データの不整合を防止するため、一次キャッシュ111と二次キャッシュ311との間のデータ移動やデータコピーが行われないことが望ましい。
以上の図10のような担当CMの切り替え処理では、切り替え指示を受信してから切り替え完了の応答が行われるまでの応答時間が長くなるという問題がある。この応答時間は、主に、一次キャッシュ111および二次キャッシュ311のデータのライトバックにかかる時間に依存する。特に、二次キャッシュ311の容量は一次キャッシュ111の容量よりはるかに大きく、その分だけ二次キャッシュ311のデータのライトバックにかかる時間が長くなることが、切り替え完了の応答までにかかる時間を長くしてしまう。
そこで、本実施の形態に係るストレージシステムでは、下記に示す「切り替え処理A」「切り替え処理B」という2つの方法が用いられる。
図11は、担当CMの切り替え処理Aを示すフローチャートの例である。図11の処理は、管理端末500からの担当CMの切り替え指示を受信した場合に実行される。ここでは図10と同様に、論理ボリュームLV1の担当CMをCM100aからCM100cに切り替えるように指示されたとする。
[ステップS41]CM100aの切り替え制御部125は、キャッシュ制御部123に、論理ボリュームLV1に対するI/O処理を停止させる。
[ステップS42]切り替え制御部125は、キャッシュ制御部123に対して、一次キャッシュ111のダーティデータをライトバックするように指示する。キャッシュ制御部123はこの指示に応じて、一次キャッシュ111のダーティデータをディスクアレイ200aの対応するHDDにライトバックする。
[ステップS43]切り替え制御部125は、キャッシュ管理情報112に含まれる管理データのうち、二次キャッシュ311に関する管理データを、切り替え先のCM100cに転送して、CM100cのRAM102にコピーする。具体的には、二次キャッシュ311のキャッシュページのうち、ダーティデータが格納されたキャッシュページについての管理データ(ハッシュテーブルのレコードとページ管理情報)がCM100cにコピーされる。この管理データは、切り替え先のCM100cが論理ボリュームLV1のI/O処理を実行するために参照するキャッシュ管理情報112に組み込まれる。
なお、ステップS42,S43の処理は並行して実行されてもよい。そして、ステップS42,S43の両方の処理が完了すると、ステップS44の処理が実行される。
[ステップS44]切り替え制御部125は、担当CMの切り替え完了の応答を、ホスト通信部121を介して管理端末500に送信する。そして、切り替え制御部125は、切り替え先のCM100cに対してI/O処理を開始するように依頼する。これにより、CM100cによって論理ボリュームLV1に対するI/O処理が再開される。
なお、例えば、管理端末500はホストサーバに対して、論理ボリュームLV1の担当CMが切り替えられたことを通知する。これにより、ホストサーバは、論理ボリュームLV1についての切り替え後の担当CMを認識して、その担当CMに直接I/O要求を送信できるようになる。
以上の切り替え処理Aによれば、二次キャッシュ311のライトバックを実行しない代わりに、二次キャッシュ311の管理データが切り替え先のCM100cをコピーすることで、切り替え処理が完了する。このため、切り替え指示から切り替え完了の応答までにかかる時間を短縮できる。
一方、切り替え先のCM100cは、図11の処理が完了すると論理ボリュームLV1のI/O処理を開始する。ただし、この段階では切り替え元のCM100aの二次キャッシュ311にダーティデータが残っている。このため、切り替え先のCM100cがI/O処理を正しく引き継ぐためには、切り替え元の二次キャッシュ311のダーティデータにアクセスできる必要がある。ステップS43でCM100cに転送された管理データは、CM100cが論理ボリュームLV1のI/O処理を実行するために参照するキャッシュ管理情報112に組み込まれる。これにより、転送された(コピーされた)管理データは、I/O処理を引き継いだCM100cが切り替え元の二次キャッシュ311のダーティデータにアクセスするために利用される。
このように、切り替え処理Aでは、切り替え先CMがI/O処理時に切り替え元の二次キャッシュにアクセスするための管理データが切り替え元CMから切り替え先CMにコピーされるだけで、切り替え処理が完了する。これにより、切り替え指示から応答までの時間が短縮される。
図12は、切り替え処理Aの完了後における切り替え先CMでの読み出し処理を示すシーケンス図の例である。
前述のように、図11に示した切り替え処理Aが完了すると、切り替え先のCM100cが論理ボリュームLV1のI/O処理を開始する。このとき、CM100cのRAM102に確保された一次キャッシュと、CM100cに接続されたフラッシュモジュール300bに確保された二次キャッシュとを用いて、論理ボリュームLV1のI/O処理が制御される。一次キャッシュについては、切り替え処理によって切り替え元の一次キャッシュがリセットされているので、切り替え先の一次キャッシュを用いて通常通りの制御が行われる。一方、二次キャッシュについては、論理ボリュームLV1のうち、切り替え元の二次キャッシュに残っているダーティデータの読み出しが要求された場合には、そのデータが切り替え元の二次キャッシュから読み出される。論理ボリュームLV1のうちその他の領域のデータについては、切り替え先の二次キャッシュを用いてI/O処理が実行される。
例えば、ホストサーバから、論理ボリュームLV1からのデータの読み出し要求が送信され、CM100cがこれを受信したとする(ステップS51)。そして、CM100cのキャッシュ制御部123は、CM100cが保持するキャッシュ管理情報112に基づき、一次キャッシュにはミスヒットしたものの、二次キャッシュにはヒットしたと判定したとする(ステップS52)。すなわち、データの読み出し位置情報に基づくハッシュキーが、キャッシュ管理情報112内の二次キャッシュ用ハッシュテーブルにおけるいずれかのレコードのレコード番号と一致したとする。
ここで、当該レコードに対応するページ管理情報に基づき、読み出しが要求されたデータがCM100cに接続されたフラッシュモジュール300bに格納されている(切り替え先の二次キャッシュに格納されている)と判定されたとする(ステップS53:Yes)。この場合、CM100cのキャッシュ制御部123は、CM100cに接続されたフラッシュモジュール300bに確保された切り替え後の二次キャッシュから、読み出しが要求されたデータを読み出す。読み出されたデータはCM100cのホスト通信部121からホストサーバに送信され、これによって応答処理が実行される(ステップS54)。実際には、読み出されたデータはCM100cの一次キャッシュにコピーされた後、ホストサーバに送信される。
一方、読み出しが要求されたデータが他のCM(ここではCM100a)に接続されたフラッシュモジュール300aに格納されている(切り替え元の二次キャッシュに格納されている)と判定されたとする(ステップS53:No)。これは、ステップS52において、ハッシュキーと同一のレコード番号が登録されたレコードが、図11のステップS43で切り替え元のCM100aからコピーされたものであったケースに相当する。
この場合、CM100cのキャッシュ制御部123は、当該レコードに対応するページ管理情報に登録されたフラッシュ番号およびフラッシュアドレスを切り替え元のCM100aに送信して、送信した情報が示す場所からのデータの読み出しを依頼する(ステップS55)。CM100aのキャッシュ制御部123は、フラッシュモジュール300aにおける該当する場所、すなわち切り替え元の二次キャッシュにおける該当する場所からデータを読み出し、CM100cに返送する(ステップS56)。
CM100cのキャッシュ制御部123は、返送されたデータを取得する。このデータはCM100cのホスト通信部121からホストサーバに送信され、これによって応答処理が実行される(ステップS57)。実際には、読み出されたデータはCM100cの一次キャッシュにコピーされた後、ホストサーバに送信される。
このように、切り替え先のCM100cは、切り替え処理Aによってコピーされた二次キャッシュの管理データを用いて、切り替え元の二次キャッシュに残っているライトバック未実行のデータを取得し、読み出し要求元に送信することができる。
なお、切り替え先のCM100cは、例えば、CM100cに接続されたフラッシュモジュール300bを用いた二次キャッシュを使用せずにI/O処理を制御してもよい。この場合、二次キャッシュのヒット判定は、切り替え元の二次キャッシュでヒットしたか否かのみが判定される。このような処理により、キャッシュ制御を簡易化できる。
また、書き込み要求に対しては次のような処理が実行される。例えば、切り替え先のCM100cは、書き込み要求に対して切り替え元の二次キャッシュでヒットした場合、書き込みデータを切り替え先の一次キャッシュに格納し、切り替え処理Aで切り替え元CMからコピーされた管理データを更新する。これとともに、CM100cは、書き込みデータについての論理ボリュームLV1上のアドレス情報を切り替え元のCM100aに通知する。
後述するように、切り替え元のCM100aは、切り替え処理Aが完了した後、バックグラウンドで切り替え元の二次キャッシュ上のダーティデータをライトバックする。切り替え元のCM100aは、切り替え先のCM100aから通知された書き込み先のアドレス情報に基づいて、対応するダーティデータをライトバックの対象から外し、ライトバックが行われないようにする。あるいは、切り替え元のCM100aは、通知された書き込みデータのアドレス情報に基づいて、対応するダーティデータを即座にライトバックする。このような処理により、データ不整合の発生を防止できる。
なお、図11、図12の例では、論理ボリュームLV1の物理領域は、切り替え先のCM100cから直接アクセスできないディスクアレイ200aによって実現されている。このケースでは、切り替え先のCM100cは、書き込みが要求された際やライトバック実行の際に論理ボリュームLV1の物理領域にアクセスする場合、CM100aまたはCM100bを介して論理ボリュームLV1の物理領域にアクセスすることになる。
次に、図13は、担当CMの切り替え処理Bを示すフローチャートの例である。図13の処理は、管理端末500からの担当CMの切り替え指示を受信した場合に実行される。ここでは図10、図11と同様に、論理ボリュームLV1の担当CMをCM100aからCM100cに切り替えるように指示されたとする。
[ステップS61]CM100aの切り替え制御部125は、キャッシュ制御部123に、論理ボリュームLV1に対するI/O処理を停止させる。
[ステップS62]切り替え制御部125は、キャッシュ制御部123に対して、一次キャッシュ111のダーティデータをライトバックするように指示する。キャッシュ制御部123はこの指示に応じて、一次キャッシュ111のダーティデータをディスクアレイ200aの対応するHDDにライトバックする。
[ステップS63]切り替え制御部125は、論理ボリュームLV1についての二次キャッシュの管理CM番号としてCM100aを示すCM番号を、切り替え先のCM100cに送信し、CM100cに記録させる。CM100cでは、送信された管理CM番号が例えばRAM102に記録される。
なお、ステップS62,S63の処理は並行して実行されてもよい。そして、ステップS62,S63の両方の処理が完了すると、ステップS64の処理が実行される。
[ステップS64]切り替え制御部125は、担当CMの切り替え完了の応答を、ホスト通信部121を介して管理端末500に送信する。そして、切り替え制御部125は、切り替え先のCM100cに対してI/O処理を開始するように依頼する。これにより、CM100cによって論理ボリュームLV1に対するI/O処理が再開される。
以上の切り替え処理Bでは、二次キャッシュの管理CM番号を切り替え先CMに送信して記録することで、切り替え処理が完了する。このため、図10に示した比較例と比較して、切り替え指示から応答までの時間を短縮できる。
ここで、図14を用いて、ステップS63で送信・記録される管理CM番号について説明する。
図14は、担当CM管理情報のデータ構成例を示す図である。前述のように、担当CM管理情報113には、論理ボリュームのボリューム番号と、その論理ボリュームの担当CMを示す担当CM番号とが対応付けて登録されている。これに加えて、担当CM管理情報113には、論理ボリュームのボリューム番号に対応付けて、二次キャッシュの管理CM番号が登録される。管理CM番号は、対応する論理ボリュームのI/O処理に用いられる二次キャッシュを管理しているCMの番号を示す。この「二次キャッシュを管理しているCM」とは、二次キャッシュを管理するための管理データを自装置のRAM102に保持しているCMを指す。
例えば図14のボリューム番号「0」、「2」のように、通常、担当CMと二次キャッシュの管理CMは同一のCMとなる。このため、初期状態では、管理CM番号としては担当CM番号と同一の値が登録される。しかし、図13のステップS63では、切り替え元CMのCM番号が切り替え先CMに送信され、切り替え先CM内の担当CM管理情報113に対して、送信されたCM番号が管理CM番号として上書きして登録される。このため、図14のボリューム番号「1」のように、担当CM番号と管理CM番号とが一致しない状態となる。
なお、以上の図14は、CMにおける管理CM番号の保持方法の一例である。管理CM番号は必ずしも担当CM管理情報113に登録されなくてもよく、ボリューム番号に対応付けてCM内に保持されていればよい。
図15は、切り替え処理Bの完了後における切り替え先CMでの読み出し処理を示すシーケンス図の例である。
前述のように、図13に示した切り替え処理Bが完了すると、切り替え先のCM100cが論理ボリュームLV1のI/O処理を開始する。このときのI/O処理では、CM100cのRAM102に確保された一次キャッシュが用いられるが、CM100cに接続されたフラッシュモジュール300bに確保された二次キャッシュは用いられない。その代わり、切り替え元のCM100aに対して二次キャッシュにヒットするかの判定が依頼され、ヒットした場合には、CM100aによって二次キャッシュへのアクセスが行われる。
例えば、ホストサーバから、論理ボリュームLV1からのデータの読み出し要求が送信され、CM100cがこれを受信したとする(ステップS71)。また、CM100cのキャッシュ制御部123は、CM100cが保持するキャッシュ管理情報112に基づき、一次キャッシュにヒットしないと判定したとする。すると、CM100cのキャッシュ制御部123は次に、CM100c内の担当CM管理情報113を参照して、読み出し元の論理ボリュームに対応する二次キャッシュの管理CM番号を取得する。
ここで、取得された管理CM番号が示すCMが、他のCM(切り替え元のCM100a)であったとする(ステップS72)。この場合、CM100cのキャッシュ制御部123は、切り替え元のCM100aに対して二次キャッシュヒットの判定を依頼する(ステップS73)。このとき、論理ボリュームLV1における読み出し位置情報がCM100aに対して指定される。
CM100aのキャッシュ制御部123は、CM100aが保持するキャッシュ管理情報112を参照して、二次キャッシュにヒットするかを判定する(ステップS74)。ここでは、指定された読み出し位置情報に基づくハッシュキーが、キャッシュ管理情報112内の二次キャッシュ用ハッシュテーブルにおけるいずれかのレコードのレコード番号と一致して、二次キャッシュヒットと判定されたとする。この場合、CM100aのキャッシュ制御部123は、フラッシュモジュール300aに確保された切り替え元の二次キャッシュから、読み出しが要求されたデータを読み出し、CM100cに返送する(ステップS75)。
CM100cのキャッシュ制御部123は、返送されたデータを取得する。このデータはCM100cのホスト通信部121からホストサーバに送信され、これによって応答処理が実行される(ステップS76)。実際には、読み出されたデータはCM100cの一次キャッシュにコピーされた後、ホストサーバに送信される。
なお、ステップS74で二次キャッシュミスと判定された場合には、その旨が切り替え先のCM100cに通知される。CM100cのキャッシュ制御部123は、読み出しが要求されたデータをバックエンドの記憶領域から読み出し、CM100c内の一次キャッシュにコピーした後、ホストサーバに送信する。図15の例では、CM100cのキャッシュ制御部123は、切り替え元のCM100aを介して、ディスクアレイ200a内の対応するHDDから読み出しが要求されたデータを取得することになる。
あるいは、ステップS74で二次キャッシュミスと判定された場合、切り替え元のCM100aのキャッシュ制御部123によって、データがディスクアレイ200aから読み出されてもよい。この場合、読み出されたデータがCM100cに転送され、CM100aのキャッシュ制御部123は、そのデータをCM100c内の一次キャッシュにコピーした後、ホストサーバに送信する。
なお、書き込み要求に対しては次のような処理が実行される。例えば、切り替え先のCM100cは、書き込み要求に対して一次キャッシュでヒットしなかった場合、書き込み先のアドレス情報を切り替え元のCM100aに通知する。切り替え元のCM100aは、通知されたアドレス情報に基づいて二次キャッシュにヒットするかを判定する。ヒットした場合、CM100aは、二次キャッシュ上の対応するデータをライトバックの対象から外し、データ書き込みの許可を切り替え先のCM100cに通知する。一方、ヒットしなかった場合、CM100aは、データ書き込みの許可を切り替え先のCM100cに通知する。許可通知を受けたCM100cは、書き込みが要求されたデータをCM100c内の一次キャッシュに格納し、書き込み要求に対する応答を行う。
ここで、図11に示した切り替え処理Aでは、切り替え元の二次キャッシュに残っているダーティデータのデータ量が大きいほど、切り替え先CMにコピーされる管理データのデータ量も大きくなる。このため、ダーティデータのデータ量が大きいほど、論理ボリュームLV1のI/O処理が停止する時間が長くなってしまう。これに対して、図13に示した切り替え処理Bでは、二次キャッシュの管理CM番号を切り替え先CMに送信して記録することで、切り替え処理が完了する。このため、切り替え処理Aと比較して、論理ボリュームLV1のI/O処理が停止する時間を短縮できる。
一方で、切り替え後におけるI/O処理では、一次キャッシュにヒットしなかった場合には、二次キャッシュヒットの判定が切り替え元CMに対して依頼される。図12に示したように、切り替え処理Aが実行された場合でも切り替え後のI/O処理時にCM間通信が発生し得るが、切り替え処理Bの場合には、一次キャッシュにヒットしなかった場合に必ずCM間通信が発生する。このため、切り替え処理Aが実行された場合と比較して、切り替え後における論理ボリュームLV1のI/O性能が低くなる。
このように、切り替え処理A,Bの双方にメリットとデメリットがあることから、本実施の形態では、担当CMの切り替えが指示された場合に、切り替え処理A,Bのいずれかが適応的に選択されて実行されるようにする。具体的には、切り替え処理Aを実行したと仮定した場合にI/O処理が停止する時間が所定の判定閾値を超えると見込まれる場合には、切り替え処理Bを実行する。これにより、切り替えに伴うI/O処理の停止時間を抑制できる。
また、切り替え処理Bが完了して切り替え先CMでのI/O処理が開始されると、切り替え元CMは、二次キャッシュに残っているダーティデータを順次ライトバックする。そして、二次キャッシュのダーティデータが減少し、それによって切り替え先CMへ転送すべき管理データのデータ量が減少していくのに応じて、I/O処理が停止する見込み時間が上記の判定閾値以下になると、切り替え処理Bの代わりに切り替え処理Aが実行される。これにより、切り替え先CMによるI/O処理の性能を向上させる。
ここで、どちらの方法で切り替え処理を実行するかは、例えば、次の式(1)の条件を満たすか否かによって決定される。式(1)の条件を満たす場合、切り替え処理Bが実行され、式(1)の条件を満たさない場合、切り替え処理Aが実行される。
(切り替え先CMへ転送すべき管理データのデータ量)/(CM間のスループット)>I/O処理の停止許容時間 ・・・(1)
式(1)における右辺の停止許容時間が、上記の判定閾値に対応する。式(1)における管理データのデータ量は、二次キャッシュに残っているダーティデータのデータ量、または、二次キャッシュのキャッシュページのうちデータ属性がダーティデータを示すキャッシュページの数、または、このキャッシュページに対応する管理データの数から算出される。また、式(1)におけるスループットや停止許容時間は、あらかじめ決められた値に設定される。これらのうち、停止許容時間は、例えば、ホストサーバがI/O要求(例えば読み出し要求)の送信から応答の受信までの応答時間として許容する時間として、任意に設定されてよい。例えば、I/O要求の送信時におけるホストサーバのタイムアウト時間と同じか、それより所定時間短い時間に設定する方法が考えられる。また、例えば、HDDなどの記憶装置における一般的な最大応答時間内の値として設定されてもよい。
図16、図17は、担当CMの切り替えが指示された際の切り替え制御処理を示すフローチャートの例である。図16、図17では例として、担当CMをCM100aからCM100cに切り替えるように指示されたものとする。
[ステップS81]管理端末500からCM100aに対して、論理ボリュームLV1の担当CMをCM100aからCM100cに切り替える切り替え指示が送信されると、CM100aのホスト通信部121は、この切り替え指示を受信し、切り替え制御部125に受け渡す。
[ステップS82]切り替え制御部125は、CM100aが保持するキャッシュ管理情報112を参照し、二次キャッシュのキャッシュページのうちデータ属性がダーティデータを示すキャッシュページの数を計数する。切り替え制御部125は、計数された値から前述の式(1)における管理データのデータ量を換算し、この値と、あらかじめ決められたCM間のスループットおよびI/O処理の停止許容時間とに基づいて、式(1)の条件を満たすかを判定する。条件を満たす場合、処理がステップS83に進められる。一方、条件を満たさない場合、処理がステップS87に進められて、切り替え処理Aが実行される。
[ステップS83]切り替え制御部125の制御により、図13に示した切り替え処理Bが実行される。これにより、二次キャッシュの管理CM番号としてCM100aの番号が切り替え先のCM100cに転送され、CM100cによって論理ボリュームLV1のI/O処理が再開される。
[ステップS84]切り替え制御部125は、CM100aが保持するキャッシュ管理情報112に基づいて、二次キャッシュ上のキャッシュページのうちダーティデータが格納されたキャッシュページを1つ選択する。切り替え制御部125は、選択されたキャッシュページのIDをキャッシュ制御部123に指定して、そのキャッシュページ内のデータのライトバックを指示する。キャッシュ制御部123はこの指示に応じて、二次キャッシュの該当データをディスクアレイ200aの対応するHDDにライトバックする。
[ステップS85]キャッシュ制御部123は、キャッシュ管理情報112の管理データのうち、ステップS84でライトバックが行われたキャッシュページに対応する管理データを初期化する。この初期化では、例えば、ページ管理情報内のデータ属性がクリーンデータを示すように更新されてもよいし、該当ページ管理情報と、これに対応するハッシュテーブル上のレコードとがキャッシュ管理情報112から削除されてもよい。
[ステップS86]切り替え制御部125は、CM100aが保持するキャッシュ管理情報112を再度参照し、二次キャッシュのキャッシュページのうちデータ属性がダーティデータを示すキャッシュページの数を計数する。切り替え制御部125は、計数された値から式(1)における管理データのデータ量を換算し、この値を用いて式(1)の条件を満たすかを判定する。条件を満たす場合、処理がステップS84に進められて、ダーティデータが格納されたキャッシュページが1つ選択される。条件を満たさない場合、処理がステップS87に進められる。
[ステップS87]切り替え制御部125の制御により、図11に示した切り替え処理Aが実行される。これにより、キャッシュ管理情報112に含まれる管理データのうち二次キャッシュに関する管理データが切り替え先のCM100cにコピーされ、CM100cによって論理ボリュームLV1のI/O処理が再開される。
[ステップS88]切り替え制御部125は、CM100aが保持するキャッシュ管理情報112を参照し、二次キャッシュ上にダーティデータが残っているかを判定する。ダーティデータが残っている場合、処理がステップS89に進められ、ダーティデータが残っていない場合、処理がステップS91に進められる。
[ステップS89]ステップS84と同様の処理手順により、二次キャッシュからダーティデータが格納されたキャッシュページが選択され、このダーティデータがHDDにライトバックされる。
[ステップS90]ステップS85と同様の処理手順により、ライトバックが行われたキャッシュページに対応する管理データが初期化される。この後、処理がステップS88に進められ、二次キャッシュにおけるダーティデータの有無が判定される。
[ステップS91]切り替え制御部125は、切り替え先のCM100cに対して二次キャッシュからのライトバックが完了したことを通知する。CM100cはこの通知を受けると、CM100c内の一次キャッシュに加え、CM100cに接続されたディスクアレイ200bに確保された二次キャッシュ(切り替え後の二次キャッシュ)を用いた通常のI/O制御を開始する。これにより、二次キャッシュについては、切り替え元の二次キャッシュを用いず、切り替え後の二次キャッシュだけを用いてI/O処理が制御されるようになる。また、ステップS87において切り替え後の二次キャッシュが用いられていなかった場合には、このステップS91において切り替え後の二次キャッシュの使用が開始される。
なお、切り替え元のCM100aの切り替え制御部125は、論理ボリュームLV1のためのキャッシュ管理情報112がCM100aのRAM102に残っている場合には、これを削除する。
以上説明した第2の実施の形態では、図10に示した比較例と比較して、担当CMの切り替え指示から切り替え完了までの応答時間を短縮できる。また、切り替え処理A,Bが切り替え元の二次キャッシュの状況に応じて選択されて実行されるので、切り替え時における論理ボリュームのI/O処理の停止時間を抑制でき、その結果として、切り替え完了の応答までにかかる時間を抑制できる。これとともに、I/O処理の停止時間を抑制しつつ、切り替え先CMにおけるI/O処理の応答性能低下を抑制できる。
さらに、切り替え処理Bが実行された後には、切り替え元の二次キャッシュにおけるライトバックの進行に伴って、切り替え処理AにおけるI/O処理の停止見込み時間が許容値以下になった段階で、切り替え処理Aが実行される。これにより、切り替え先CMにおけるI/O処理の応答性能を向上させることができる。
なお、上記の各実施の形態に示した装置(例えば、ストレージ制御装置10,20、CM100a~100d、ホストサーバ400a,400b、管理端末500)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムであって、
前記第1のストレージ制御装置は、
論理記憶領域に対するI/O(Input/Output)処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記第1のストレージ制御装置から前記第2のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記第1のストレージ制御装置を示す管理装置番号を前記第2のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
前記第1の切り替え処理の実行後において、読み出し要求によって前記論理記憶領域からの読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を前記第2のストレージ制御装置から受信すると、前記データが前記キャッシュにヒットするかを判定し、
前記第2のストレージ制御装置は、
前記第1の切り替え処理の実行後において、前記読み出し要求を受信すると、通知された前記管理装置番号が示す前記第1のストレージ制御装置に対して前記判定依頼を送信する、
ストレージシステム。
(付記2) 前記第1の切り替え処理では、前記第1のストレージ制御装置は、前記論理記憶領域に対するI/O処理を停止して、前記管理装置番号を前記第2のストレージ制御装置に通知し、前記応答処理を実行するとともに、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させ、
前記第1のストレージ制御装置は、さらに、
前記切り替え指示を受信したとき、
前記論理記憶領域に対するI/O処理を停止し、前記キャッシュに格納されたダーティデータを管理するための管理情報を、前記第1のストレージ制御装置内の記憶装置からコピーして前記第2のストレージ制御装置に送信し、前記応答処理を実行するとともに、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させる第2の切り替え処理を、実行したと仮定した場合に、前記論理記憶領域に対するI/O処理が停止する停止時間を前記管理情報のデータ量に基づいて算出し、
前記停止時間が所定の閾値を超える場合には前記第1の切り替え処理を実行し、前記停止時間が前記閾値以下の場合には前記第2の切り替え処理を実行する、
付記1記載のストレージシステム。
(付記3) 前記第2のストレージ制御装置は、前記第2の切り替え処理の実行後において、前記読み出し要求を受信すると、前記第1のストレージ制御装置から送信された前記管理情報に基づいて、前記データが前記キャッシュにヒットするかを判定する、
付記2記載のストレージシステム。
(付記4) 前記第1のストレージ制御装置は、さらに、
前記第1の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックするとともに、ライトバックが完了したダーティデータに関する情報を前記管理情報から順次削除し、
前記ライトバックの実行中に、前記管理情報の現在のデータ量に基づいて前記停止時間を算出し、算出された前記停止時間が前記閾値以下になった場合、前記第2の切り替え処理を実行する、
付記2または3記載のストレージシステム。
(付記5) 前記第1のストレージ制御装置は、さらに、
前記第2の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックし、
前記キャッシュ内の全ダーティデータのライトバックが完了すると、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理において、前記第2のストレージ制御装置に接続された記憶領域に確保された新たなキャッシュの使用を開始させる、
付記2または3記載のストレージシステム。
(付記6) ストレージ制御装置において、
論理記憶領域に対するI/O処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記ストレージ制御装置から他のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記ストレージ制御装置を示す管理装置番号を前記他のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
前記第1の切り替え処理の実行後において、読み出し要求によって前記論理記憶領域からの読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を前記他のストレージ制御装置から受信すると、前記データが前記キャッシュにヒットするかを判定する、処理部、
を有するストレージ制御装置。
(付記7) 前記第1の切り替え処理では、前記論理記憶領域に対するI/O処理を停止して、前記管理装置番号を前記他のストレージ制御装置に通知し、前記応答処理を実行するとともに、前記他のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させ、
前記処理部は、さらに、
前記切り替え指示を受信したとき、
前記論理記憶領域に対するI/O処理を停止し、前記キャッシュに格納されたダーティデータを管理するための管理情報を、前記ストレージ制御装置内の記憶装置からコピーして前記他のストレージ制御装置に送信し、前記応答処理を実行するとともに、前記他のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させる第2の切り替え処理を、実行したと仮定した場合に、前記論理記憶領域に対するI/O処理が停止する停止時間を前記管理情報のデータ量に基づいて算出し、
前記停止時間が所定の閾値を超える場合には前記第1の切り替え処理を実行し、前記停止時間が前記閾値以下の場合には前記第2の切り替え処理を実行する、
付記6記載のストレージ制御装置。
(付記8) 前記処理部は、さらに、
前記第1の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックするとともに、ライトバックが完了したダーティデータに関する情報を前記管理情報から順次削除し、
前記ライトバックの実行中に、前記管理情報の現在のデータ量に基づいて前記停止時間を算出し、算出された前記停止時間が前記閾値以下になった場合、前記第2の切り替え処理を実行する、
付記7記載のストレージ制御装置。
(付記9) 前記処理部は、さらに、
前記第2の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックし、
前記キャッシュ内の全ダーティデータのライトバックが完了すると、前記他のストレージ制御装置による前記論理記憶領域に対するI/O処理において、前記他のストレージ制御装置に接続された記憶領域に確保された新たなキャッシュの使用を開始させる、
付記7記載のストレージ制御装置。
(付記10) 第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムにおけるストレージ制御方法であって、
前記第1のストレージ制御装置が、論理記憶領域に対するI/O処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記第1のストレージ制御装置から前記第2のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記第1のストレージ制御装置を示す管理装置番号を前記第2のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
前記第2のストレージ制御装置が、前記第1の切り替え処理の実行後において、前記論理記憶領域からの読み出し要求を受信すると、読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を、通知された前記管理装置番号が示す前記第1のストレージ制御装置に送信し、
前記第1のストレージ制御装置が、前記判定依頼に応じて、前記データが前記キャッシュにヒットするかを判定する、
ストレージ制御方法。
1 論理記憶領域
10,20 ストレージ制御装置
11 キャッシュ
21 記憶装置
22 管理装置番号
S1~S8 ステップ

Claims (7)

  1. 第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムであって、
    前記第1のストレージ制御装置は、
    論理記憶領域に対するI/O(Input/Output)処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記第1のストレージ制御装置から前記第2のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記第1のストレージ制御装置を示す管理装置番号を前記第2のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
    前記第1の切り替え処理の実行後において、読み出し要求によって前記論理記憶領域からの読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を前記第2のストレージ制御装置から受信すると、前記データが前記キャッシュにヒットするかを判定し、
    前記第2のストレージ制御装置は、
    前記第1の切り替え処理の実行後において、前記読み出し要求を受信すると、通知された前記管理装置番号が示す前記第1のストレージ制御装置に対して前記判定依頼を送信する、
    ストレージシステム。
  2. 前記第1の切り替え処理では、前記第1のストレージ制御装置は、前記論理記憶領域に対するI/O処理を停止して、前記管理装置番号を前記第2のストレージ制御装置に通知し、前記応答処理を実行するとともに、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させ、
    前記第1のストレージ制御装置は、さらに、
    前記切り替え指示を受信したとき、
    前記論理記憶領域に対するI/O処理を停止し、前記キャッシュに格納されたダーティデータを管理するための管理情報を、前記第1のストレージ制御装置内の記憶装置からコピーして前記第2のストレージ制御装置に送信し、前記応答処理を実行するとともに、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理を開始させる第2の切り替え処理を、実行したと仮定した場合に、前記論理記憶領域に対するI/O処理が停止する停止時間を前記管理情報のデータ量に基づいて算出し、
    前記停止時間が所定の閾値を超える場合には前記第1の切り替え処理を実行し、前記停止時間が前記閾値以下の場合には前記第2の切り替え処理を実行する、
    請求項1記載のストレージシステム。
  3. 前記第2のストレージ制御装置は、前記第2の切り替え処理の実行後において、前記読み出し要求を受信すると、前記第1のストレージ制御装置から送信された前記管理情報に基づいて、前記データが前記キャッシュにヒットするかを判定する、
    請求項2記載のストレージシステム。
  4. 前記第1のストレージ制御装置は、さらに、
    前記第1の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックするとともに、ライトバックが完了したダーティデータに関する情報を前記管理情報から順次削除し、
    前記ライトバックの実行中に、前記管理情報の現在のデータ量に基づいて前記停止時間を算出し、算出された前記停止時間が前記閾値以下になった場合、前記第2の切り替え処理を実行する、
    請求項2または3記載のストレージシステム。
  5. 前記第1のストレージ制御装置は、さらに、
    前記第2の切り替え処理の実行後に、前記キャッシュに格納されたダーティデータを、前記論理記憶領域を実現する物理記憶領域に順次ライトバックし、
    前記キャッシュ内の全ダーティデータのライトバックが完了すると、前記第2のストレージ制御装置による前記論理記憶領域に対するI/O処理において、前記第2のストレージ制御装置に接続された記憶領域に確保された新たなキャッシュの使用を開始させる、
    請求項2または3記載のストレージシステム。
  6. ストレージ制御装置において、
    論理記憶領域に対するI/O処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記ストレージ制御装置から他のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記ストレージ制御装置を示す管理装置番号を前記他のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
    前記第1の切り替え処理の実行後において、読み出し要求によって前記論理記憶領域からの読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を前記他のストレージ制御装置から受信すると、前記データが前記キャッシュにヒットするかを判定する、処理部、
    を有するストレージ制御装置。
  7. 第1のストレージ制御装置と第2のストレージ制御装置とを有するストレージシステムにおけるストレージ制御方法であって、
    前記第1のストレージ制御装置が、論理記憶領域に対するI/O処理をキャッシュを用いて制御している状態において、前記論理記憶領域に対するI/O処理の制御を担当する担当装置を前記第1のストレージ制御装置から前記第2のストレージ制御装置に切り替える切り替え指示を受信すると、前記キャッシュを管理する装置として前記第1のストレージ制御装置を示す管理装置番号を前記第2のストレージ制御装置に通知し、前記切り替え指示に対する応答処理を実行して前記担当装置を切り替える第1の切り替え処理を実行し、
    前記第2のストレージ制御装置が、前記第1の切り替え処理の実行後において、前記論理記憶領域からの読み出し要求を受信すると、読み出しが要求されたデータが前記キャッシュにヒットするかの判定依頼を、通知された前記管理装置番号が示す前記第1のストレージ制御装置に送信し、
    前記第1のストレージ制御装置が、前記判定依頼に応じて、前記データが前記キャッシュにヒットするかを判定する、
    ストレージ制御方法。
JP2021004255A 2021-01-14 2021-01-14 ストレージシステム、ストレージ制御装置およびストレージ制御方法 Withdrawn JP2022108987A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021004255A JP2022108987A (ja) 2021-01-14 2021-01-14 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US17/478,993 US20220222015A1 (en) 2021-01-14 2021-09-20 Storage system, storage control device, and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021004255A JP2022108987A (ja) 2021-01-14 2021-01-14 ストレージシステム、ストレージ制御装置およびストレージ制御方法

Publications (1)

Publication Number Publication Date
JP2022108987A true JP2022108987A (ja) 2022-07-27

Family

ID=82321850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021004255A Withdrawn JP2022108987A (ja) 2021-01-14 2021-01-14 ストレージシステム、ストレージ制御装置およびストレージ制御方法

Country Status (2)

Country Link
US (1) US20220222015A1 (ja)
JP (1) JP2022108987A (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106573A (ja) * 2016-12-28 2018-07-05 富士通株式会社 ストレージ制御装置及び制御プログラム

Also Published As

Publication number Publication date
US20220222015A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
US9304901B2 (en) System and method for handling I/O write requests
JP4901316B2 (ja) ストレージシステム及び記憶制御装置
US8495288B2 (en) Storage controller and duplicated data detection method using storage controller
US7975168B2 (en) Storage system executing parallel correction write
US7783850B2 (en) Method and apparatus for master volume access during volume copy
CN105940386B (zh) 用于在存储器之间移动数据的方法、系统和介质
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP2010102369A (ja) ストレージシステム
US10346051B2 (en) Storage media performance management
US7627610B2 (en) Computer system and method of reproducing data for the system
US11740823B2 (en) Storage system and storage control method
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20210278989A1 (en) Storage system and control method thereof
US9990134B2 (en) Command tunneling in a hybrid data storage device
US11429431B2 (en) Information processing system and management device
US20160259571A1 (en) Storage subsystem
JP2021114264A (ja) ストレージ制御装置およびストレージ制御プログラム
US8549244B2 (en) Device and method of copying data between disks having equal or different rotational rates
JP2023110180A (ja) ストレージ装置および制御方法
JP2022108987A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP7288191B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP6365557B2 (ja) 制御回路および制御方法
JP4563314B2 (ja) ストレージシステム制御装置、ストレージシステム制御プログラム、ストレージシステム制御方法
JP7281515B2 (ja) ストレージシステム、ストレージ管理方法、ストレージ管理プログラム
JP2018190192A (ja) ストレージ装置およびストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230907

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240329