JP2018132964A - ストレージ制御装置、ストレージ制御方法及びストレージシステム - Google Patents

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

Info

Publication number
JP2018132964A
JP2018132964A JP2017026521A JP2017026521A JP2018132964A JP 2018132964 A JP2018132964 A JP 2018132964A JP 2017026521 A JP2017026521 A JP 2017026521A JP 2017026521 A JP2017026521 A JP 2017026521A JP 2018132964 A JP2018132964 A JP 2018132964A
Authority
JP
Japan
Prior art keywords
storage
data
control device
mode
completion notification
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
JP2017026521A
Other languages
English (en)
Inventor
秀和 河野
Hidekazu Kawano
秀和 河野
宏章 今野
Hiroaki Konno
宏章 今野
猛 植田
Takeshi Ueda
猛 植田
弘 小嵐
Hiroshi Koarashi
弘 小嵐
千葉 博
Hiroshi Chiba
博 千葉
仁美 秋山
Hitomi Akiyama
仁美 秋山
憲二 樋口
Kenji Higuchi
憲二 樋口
礼介 中川
Reisuke Nakagawa
礼介 中川
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 JP2017026521A priority Critical patent/JP2018132964A/ja
Priority to US15/885,882 priority patent/US20180232312A1/en
Publication of JP2018132964A publication Critical patent/JP2018132964A/ja
Withdrawn 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/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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/2064Error 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 while ensuring consistency
    • 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/2074Asynchronous techniques
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/065Replication 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/0653Monitoring storage devices or systems
    • 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
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/453Microcode or microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ライトバックモードを用いることによって、情報処理装置へのレスポンス性能が低下する場合の性能を改善するライトバックモードとライトスルーモードを有するストレージ制御装置を提供する。
【解決手段】ストレージ制御装置が、キャッシュメモリ上でデータを冗長保持するのに要する第1時間と、ストレージ装置にデータを格納するのに要する第2時間を測定し、第1時間が第2時間よりも短い場合には、ライトバックモードが選択され、第1時間が第2時間よりも長い場合は、ライトスルーモードが選択される。
【選択図】図9

Description

本開示は、ストレージ制御装置、ストレージ制御方法及びストレージシステムに関する。
ストレージシステムは、データを記録するストレージ装置と、ストレージ装置を制御するストレージ制御装置を含む。ストレージ装置は、例えばSolid State Drive(SSD)やHard Disk Drive(HDD)等の不揮発性のデータ格納装置である。ストレージ制御装置は、ホストサーバから受信するデータ書き込み要求やデータ読み出し要求に応じてストレージ装置を制御し、ストレージ装置へのデータの書き込みやストレージ装置からのデータの読み出しを実行する。
ストレージ制御装置は、ホストサーバから例えばデータ書き込み要求(以下、ライトコマンド)を受信した場合、ライトコマンドの対象となるデータのストレージ装置への格納に関する所定の処理を実行する。そして、ストレージ制御装置は、当該所定の処理の完了後、処理完了通知をホストサーバへ送信する。ホストサーバは、ストレージ制御装置から送信された処理完了通知の受信に基づき、例えば次のライトコマンドの生成などの処理を行うことができる。ここで、ホストサーバがライトコマンドをストレージ制御装置に送信してから、ホストサーバがストレージ制御装置から処理完了通知を受信するまでの時間をレスポンスタイムと呼ぶ。レスポンスタイムが短いことは、ホストサーバ側から見た場合のストレージ制御装置の応答速度が速いことを意味し、ストレージ制御装置の処理性能の指標の一つとなる。
特開平08−335144号公報 特開平10−105467号公報
レスポンスタイムは、ストレージ制御装置の処理負荷等によって変動する。開示の技術は、レスポンスタイムを改善するようストレージ制御装置の制御を行うことを目的とする。
第1制御装置と第2制御装置とを含み、情報処理装置から受信した第1データのストレージ装置への格納を制御するストレージ制御装置において、前記第1制御装置は、第2データ(サンプルデータ)を前記第2制御装置へ送信し、前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を前記第2制御装置から受信する第1送受信部と、前記第2データを前記ストレージ装置へ送信し、前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第2送受信部と、前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が受信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第2時間を測定する測定部と、前記第1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択するモード選択部と、を有し、前記第1制御装置は、前記第1モードが選択された場合であって、前記情報処理装置から前記第1データを受信した場合には、前記第1データを前記第2制御装置へ送信し、前記第1データを前記ストレージ装置へ送信し、前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、前記第1制御装置は、前記第2モードが選択された場合であって、前記情報処理装置から前記第1データを受信した場合、前記第1データを前記ストレージ装置へ送信し、前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信することを特徴とするストレージ制御装置が開示される。
開示の技術により、ホストサーバからストレージシステムへのレスポンスタイムを改善することができる。
情報処理装置に接続されたストレージシステムを示す図である。 制御装置(CM)のハードウェアを示す図である。 ストレージ装置のハードウェアを示す図である。 ライトバックモードにおける処理フローを示すラダーチャートである。 ライトスルーモードにおける処理フローを示すラダーチャートである。 ライトバックモードにおける処理フローを示すラダーチャートである。 CMのプロセッサの機能ブロック図である。 ストレージ装置のプロセッサの機能ブロック図である。 第1時間及び第2時間の測定方法と、その結果に基づくモード選択方法を説明するための図である。 管理テーブルの登録内容の例を示す図である。 担当CMのプロセッサによって実行される、モード選択に関する処理のフローチャートである。 非担当CMのプロセッサによって実行される、モード選択に関する処理のフローチャートである。 ストレージ装置のプロセッサによって実行される、モード選択に関する処理のフローチャートである。 担当CMのプロセッサによって実行される、モード選択後にライトコマンドが入力された際の処理のフローチャートである。 ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に問題が生じる場合について説明するための図である。 ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に生じる問題を解決する方法を説明するための図である。 複数のCMがそれぞれ、複数のRAIDの担当CMとして機能するストレージシステムを示す図である。 変形例における管理テーブルの登録内容の例を示す図である。
図1は、情報処理装置10に接続されたストレージシステムを示す図である。情報処理装置10は例えばホストサーバである。ストレージシステムは、ストレージ制御装置20とストレージ装置30を含む。ストレージ制御装置20は、制御装置21a及び21bを含む。制御装置21a及び21bは互いに、例えばPCI Express(登録商標)バスによって接続され、相互にデータの送受信を行うことができる。制御装置21a及び21bはそれぞれControl Manager(以下、CM)と呼ばれる。以下、CM21a及び21bを区別しない場合は、単に「CM21」と表記するものとする。
ストレージ装置30は、複数の記憶領域31a、31b、31c、31dを含む。複数の記憶領域31a、31b、31c、31dは、それぞれ個別の記憶装置であってもよい。図1においては、記憶領域31a及び31bが、Redundant Arrays of Inexpensive Disks(RAID)32Aを構成し、記憶領域31c及び31dがRAID32Bを構成するものとする。例えばRAIDレベルがRAID1である場合、同一のデータが記憶領域31a及び31bにミラーリングされる。尚、本実施形態において、RAIDレベルはRAID1に限定されるものではなく、RAID5が適用されてもよい。以下、記憶領域31a、31b、31c、31dを区別しない場合は、単に「記憶領域31」と表記するものとする。また、RAID32A及び32Bを区別しない場合は、単に「RAID32」と表記するものとする。
次に、情報処理装置10がライトコマンドを発行してストレージシステムへのデータの格納を要求した場合における、ストレージ制御装置20及びストレージ装置30において行われる処理について説明する。情報処理装置10はライトコマンドを、CM21a及び21bの一方に送信する。CM21aがライトコマンドを受信した場合、CM21aは、記憶領域31a及び31bを含むRAID32Aにデータを格納する。この場合、CM21aは、RAID32Aに対する担当CMと呼ばれる。同様に、CM21bがライトコマンドを受信した場合、CM21bは、記憶領域31c及び31dを含むRAID32Bにデータを書き込む。この場合CM21bは、RAID32Bに対する担当CMと呼ばれる。
CM21aは、ライトコマンドを受信すると、CM21aに設けられたキャッシュメモリにデータを保持させる。その後CM21aは、キャッシュメモリに保持されたデータをRAID32Aに格納する処理を実行する。RAID32Aにデータが格納された後、キャッシュメモリに保持されたデータは消去される。
同様に、CM21bがライトコマンドを受信した場合は、CM21bは、CM21bに設けられたキャッシュメモリにデータを保持させる。その後CM21bは、キャッシュメモリに保持されたデータをRAID32Bに格納する処理を実行する。RAID32Bにデータが格納された後、キャッシュメモリに保持されたデータは消去される。
またストレージ制御装置20は、CM21aが情報処理装置10から受信したデータをCM21bへ送信し、CM21bのキャッシュメモリに保持させる機能を有する。これは、CM21aに何等かのエラーが発生し、CM21aのキャッシュメモリに保持されたデータをRAID32Aに格納することができなくなった場合に備えた処理である。この処理により、CM21aにエラーが発生した場合には、CM21bがCM21aに代わって、CM21bのキャッシュメモリに保持されたデータをRAID32Aに格納することが可能となる。この場合、CM21aが担当CMと呼ばれるのに対し、CM21bは非担当CMと呼ばれる。同様にストレージ制御装置20は、CM21bが情報処理装置10から受信したデータをCM21aへ送信し、CM21aのキャッシュメモリに保持させる機能を有する。この場合、CM21bが担当CMであり、CM21aが非担当CMとなる。このように、CM21a及び21bは、互いに同一のデータを冗長的に保持することによってデータの消失を防ぐ機能を有している。
図2は、CM21のハードウェアを示す図である。CM21は、Channel Adaptor(CA)210と、プロセッサ220と、不揮発性メモリ230と、揮発性メモリ240と、スイッチ250と、バッテリ260と、Input Output Controller(IOC)270と、Expander(EXP)280とを有する。CA210は、情報処理装置10に対するインターフェースとして機能し、情報処理装置10からライトコマンドを受信する。尚、本明細書においてライトコマンドは、データの書き込みの要求と、書き込み対象となるデータを含むものとして説明される。また、ストレージ装置30から読み出されたデータは、CA210を介して情報処理装置10に対して送信される。更に、情報処理装置10から受信したライトコマンドに対する処理完了通知もCA210を介して情報処理装置10に対して送信される。
プロセッサ220は、不揮発性メモリ230に格納されたコンピュータプログラムを揮発性メモリ240にロードして実行する。例えばプロセッサ220は、ライトコマンドの受信に応じて、非担当CMへのデータの送信処理や、ストレージ装置30へのデータの送信処理を実行する。プロセッサ220はハードウェアプロセッサであり、Central Processing Unit(CPU)、Micro Control Unit(MCU)、Micro Processing Unit(MPU)、Digital Signal Processor(DSP)、Field Programmable Gate Array(FPGA)等が適用可能である。
不揮発性メモリ230は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ230には、プロセッサ220によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ230は、例えばRead Only Memory(ROM)、Mask Read Only Memory(マスクROM)、Programable Read Only Memory(PROM)、フラッシュメモリ、Magnetoresistive Random Access Memory(MRAM)、Resistance Random Access Memory(ReRAM)、Ferroelectric Random Access Memory(FeRAM)等である。コンピュータプログラムは、不揮発性メモリ230以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録されることもできる。また、コンピュータプログラムが記録されたDigital Versatile Disc(DVD)、Compact Disc Read Only Memory(CD−ROM)などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
揮発性メモリ240は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ240には、不揮発性メモリ230に格納されているコンピュータプログラムがロードされる。また揮発性メモリ240には、プロセッサ220による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。また揮発性メモリ240は、上述のキャッシュメモリとして使用され、例えばCM21がライトコマンドを受信した場合、書き込み対象となるデータがキャッシュメモリに保持される。揮発性メモリ240は、例えばStatic Random Access Memory(SRAM)やDynamic Random Access Memory(DRAM)等である。
スイッチ250は、担当CMと非担当CMとの間の接続のインターフェースとして機能する。スイッチ250は例えばPCI Express スイッチである。バッテリ260は、CM21への外部からの電力供給が停止した際に、揮発性メモリ240に保持されたデータの損失を防ぐよう、不揮発性メモリ230や揮発性メモリ240に電力を供給する。IOC270はCM21とストレージ装置30との間で行われるデータの送受信を制御する。EXP280は、CM21とストレージ装置30との間で行われるデータの送受信を中継する。
図3は、ストレージ装置30のハードウェアを示す図である。ストレージ装置30は、インターフェースカード310、プロセッサ320、不揮発性メモリ330、揮発性メモリ340、フラッシュメモリ390を有する。図1に開示されたRAID32A及び32Bは、フラッシュメモリ390により実現される。
インターフェースカード310はCM21に対するインターフェースとして機能する。
プロセッサ320は、不揮発性メモリ330に格納されたコンピュータプログラムを揮発性メモリ340にロードして実行することにより、所定のデータ処理を行う。例えばプロセッサ320は、CM21からデータを受信すると、フラッシュメモリ390に設定されたRAID32にデータを格納する。プロセッサ320はハードウェアプロセッサであり、CPU、MCU、MPU、DSP、FPGA等が適用可能である。
不揮発性メモリ330は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ330には、プロセッサ320によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ330は、例えばROM、マスクROM、PROM、フラッシュメモリ、MRAM、ReRAM、FeRAM等である。揮発性メモリ340は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ340には、不揮発性メモリ330に格納されているコンピュータプログラムがロードされる。また揮発性メモリ340には、プロセッサ320による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ340は、例えばSRAMやDRAM等である。
次に、ライトバックモードとライトスルーモードについて説明する。情報処理装置10からライトコマンドを受信したCM21が、データをストレージ装置30に格納する処理のモードとして、ライトバックモードとライトスルーモードとがある。
ライトバックモードにおいては、担当CMから非担当CMへ、ライトコマンドの書き込み対象であるデータを送信し、非担当CMのキャッシュメモリにデータを保持させる処理が実行される。またライトバックモードでは、ライトコマンドの受信とは非同期に、担当CMからストレージ装置30へのデータの格納処理が実行される。またライトバックモードでは、非担当CMのキャッシュメモリにデータが保持されたことに基づいて、担当CMから情報処理装置10へ処理完了通知が送信される。
一方のライトスルーモードにおいては、担当CMから非担当CMへのデータの送信は行われず、担当CMと非担当CMとによるデータの冗長保持は行われない。またライトスルーモードでは、ライトコマンドの受信に同期して、担当CMからストレージ装置30へのデータの格納処理が実行される。またライトスルーモードでは、ストレージ装置30にデータが格納されたことに基づいて、担当CMから情報処理装置10へ処理完了通知が送信される。
以下、ライトバックモードとライトスルーモードにおける具体的な処理を、図4及び図5を用いて説明する。
(ライトバックモード)
図4は、ライトバックモードにおける処理フローを示すラダーチャートである。ここでは、CM21aが担当CM、CM21bが非担当CMであるものとして説明する。
まず処理S410において情報処理装置10が、データAのストレージ装置30への格納を要求するライトコマンドを発行する。ライトコマンドを受信した担当CMであるCM21aは、処理S420において、データAを自身のキャッシュメモリに保持する。
次に処理S421においてCM21aが、非担当CMであるCM21bへのデータAの送信処理を行う。またCM21aは、処理S421において、データAのストレージ装置30への送信処理も行う。但し、処理S421において、CM21bへのデータの送信処理と、ストレージ装置30へのデータの送信処理の開始タイミングは同一である必要はなく、異なるタイミングにおいてそれぞれの送信処理が実行されてもよい。
CM21bへ送信されたデータAが、CM21bのキャッシュメモリに保持された後、処理S422においてCM21bが、データAがCM20bのキャッシュメモリに保持されたことを示す保持完了通知を、CM21aに対して送信する。この保持完了通知は、CM21a及び21bが、同一データを冗長的にそれぞれのキャッシュメモリに保持させたことを意味する。よって、例えばデータAのストレージ装置30への格納処理が完了しない状態においてCM21aに何等かのエラーが発生しても、データAが紛失することを防止することができる。そこで処理S423においてCM21aは、情報処理装置10への処理完了通知を送信する。情報処理装置10がデータAに関するライトコマンドを発行してから、情報処理装置10が処理完了通知を受信するまでの時間がレスポンスタイムに相当する。
処理完了通知は、CM21aが更に次のライトコマンドを受け入れることが可能な状態となったことを示す通知でもある。よって情報処理装置10は、処理完了通知の受信に基づき、例えばデータBに関するライトコマンドを発行するなどの処理を行うことができる。
このように、担当CMから非担当CMへデータを送信し、非担当CMのキャッシュメモリにデータが保持されたことに伴って、担当CMから情報処理装置10に対して処理完了通知が発行される点が、ライトバックモードの特徴の一つである。言い換えれば、ライトバックモードにおいては、ストレージ装置30へのデータの格納処理が完了したかとは無関係に、担当CMと非担当CMとにおいてデータの冗長化が行われたタイミングに基づいてレスポンスタイムが決定される。
更に図4に基づいて、ストレージ装置30へのデータ格納に伴う処理について説明する。処理S421においてCM21aがデータAをストレージ装置30へ送信したことに基づき、ストレージ装置30のRAID32AへのデータAの格納処理が実行される。RAID32AへのデータAの格納が終了すると、処理S430においてストレージ装置30は、RAID32AへのデータAの格納が終了したことを示す格納完了通知を、CM21aに送信する。そして、図示はされていないが、この格納完了通知に基づいて、CM21aのキャッシュメモリに保持されていたデータAが、キャッシュメモリから消去される。これにより、他のデータのための保持領域がキャッシュメモリ内に確保される。またCM21aは、自身のキャッシュメモリからデータAを消去する場合、CM21bのキャッシュメモリに保持されたデータAを消去するよう、CM21bに通知を行ってもよい。この通知に基づき、CM21bは、自身のキャッシュメモリに保持されたデータAを消去する。
尚、繰り返しとなるが、本明細書において「保持完了通知」は、非担当CMが自身のキャッシュメモリにデータを保持させたことを示す通知であって、非担当CMから担当CMへ送信される通知を意味する。また「格納完了通知」は、ストレージ装置30がデータを格納したことを示す通知であって、ストレージ装置30からストレージ制御装置20へ送信される通知を意味する。また「処理完了通知」は、ライトコマンドの受信に応じて所定の処理が終了したことを示す通知であって、ストレージ制御装置20から情報処理装置10へ送信される通知を意味する。
一般に、SSD等の記憶装置へのデータ書き込み速度は、CM21の有するDRAM等の揮発性メモリ240を用いたキャッシュメモリへのデータ書き込み速度に比べて遅い。よって図4においては、処理S430における格納完了通知が、処理S422における保持完了通知の送信よりも、遅いタイミングで送信される状態が図示されている。
更に図4を用いて、ライトバックモードにおいて先に発行されたライトコマンドに関するストレージ装置30へのデータの格納処理が完了する前に、他のライトコマンドが発行された場合の処理手順を説明する。
図4において情報処理装置10は、処理S423においてCM21aが発行した処理完了通知を受信した後、処理S411において、データBに関するライトコマンドを発行する。CM21aは、処理S424においてデータBを自身のキャッシュメモリに保持させ、処理S425においてデータBをCM21bへ送信する。尚、図4に示される例においては、CM21aがデータBをCM21bへ送信するタイミングにおいては、データAのストレージ装置30への格納処理は完了していない。そのためデータBのストレージ装置30への送信は、処理S425においては実行されない。
データBを受信したCM21bは、データBを自身のキャッシュメモリに保持させ、処理S426において保持完了通知を送信する。CM21aは、処理S427において処理完了通知を情報処理装置10に対して送信する。尚、CM21aは、自身のキャッシュメモリに保持されているデータBをストレージ装置30へ送信する処理(処理S428)を、ストレージ装置30が格納完了通知(処理S430)を行った後に実行する。すなわち、データAの格納処理が完了するまでは、データBの格納処理は待ち状態となり、データBはキャッシュメモリにて保持される。
処理S428においてデータBがストレージ装置30に送信されると、ストレージ装置30はデータBのRAID32への格納処理を実行する。格納処理が終了すると、ストレージ装置30は、処理S431において格納完了通知を送信する。その後CM21aは、キャッシュメモリからデータBを消去する。
このように、ライトバックモードにおいては、ストレージ装置30へのデータ格納処理の完了とは無関係に、非担当CMのキャッシュメモリによるデータ保持に基づいて処理完了通知が発行される。そのため、情報処理装置10へのレスポンスタイムは、担当CMと非担当CMの間のデータ共有に要する時間によって決定される。また、ライトバックモードでは、ストレージ装置30へのデータ格納処理の途中であっても、担当CMが更に次のライトコマンドを受信することが可能となる。この場合、担当CMによるライトコマンドの受信処理とは非同期に、ストレージ装置30へデータの格納処理が実行される。
尚、ライトバックモードにおいて、担当CMのキャッシュメモリが、複数のライトコマンドによって飽和状態となり、更なる他のライトコマンドを受信できない状態(キャッシュミス)になる場合がある。この場合、既にキャッシュメモリに保持されているデータのストレージ装置30への格納処理が順に処理され、格納処理の終了によってキャッシュメモリ内に空き容量が確保されるまで、ライトコマンドはストレージ制御装置20への入力待ちの状態となる。そしてキャッシュメモリに空き容量が確保された後、ライトコマンドは担当CMによって受信される。
(ライトスルーモード)
図5は、ライトスルーモードにおける処理フローを示すラダーチャートである。上述のようにライトスルーモードにおいては、担当CMから非担当CMへのデータ送信は行われず、ストレージ装置30へのデータ格納処理が実行される。ライトスルーモードは、例えば担当CM及び非担当CMの少なくとも一方、又は担当CMと非担当CMの間の通信にエラーが生じ、非担当CMへデータを保持させる処理が実行できない場合等に選択され得る。ここでは、CM21aが担当CM、CM21bが非担当CMであるものとして説明する。尚、図4にて説明された処理と同一内容の処理については同一の参照符号が付されるものとする。
まず処理S410において情報処理装置10が、データAについてのライトコマンドを発行する。ライトコマンドを受信したCM21aは処理S420において、データAを自身のキャッシュメモリに保持させる。そして処理S421において、データAをストレージ装置30へ送信する。ストレージ装置30は、CM21aから送信されたデータAの、RAID32への格納処理を実行する。格納処理が完了すると、ストレージ装置30は処理S430において、格納完了通知を送信する。CM21aは、ストレージ装置30から格納完了通知を受信したことに伴い、処理S423において処理完了通知を情報処理装置10に送信する。
このようにライトスルーモードにおいては、担当CMと非担当CMとが同一データを冗長的に保持する処理は行われず、ストレージ装置30へのデータの格納処理が完了したことに基づいて処理完了通知が発行される。言い換えれば、レスポンスタイムは、ストレージ装置30へのデータの格納に要する時間に律速される。
図5において、情報処理装置10は、CM21aからの処理完了通知を受信した場合に、更なるライトコマンドの発行が可能となる。そして情報処理装置10は処理S411において、データBに関するライトコマンドをCM21aに送信する。処理S424においてCM21aは、データBを自身のキャッシュメモリに保持させる。そして処理S428においてCM21aは、データBをストレージ装置30へ送信する。その後、ストレージ装置30は処理S431において、データBのRAID32への格納処理が完了したことを示す格納完了通知を送信する。CM21aは、ストレージ装置30から格納完了通知を受信したことに伴い、処理S427において処理完了通知を情報処理装置10に送信する。
ここで、図4に示されたライトバックモードにおける処理S428と、図5に示されるライトスルーモードにおける処理S428の相違について説明する。図4においてデータBは、処理S424においてCM21aのキャッシュメモリに保持された後、先に発行されたライトコマンドに対応するデータAの格納処理が完了するまで、ストレージ装置30へ送信されない。すなわち、CM21aにおけるライトコマンドの受信と、ストレージ装置30へのデータBの送信は非同期である。
これに対して図5において、データBについてのライトコマンドがCM21aによって受信された時点において、データAのストレージ装置30への格納処理は既に終了している。そのため、CM21aのキャッシュメモリに保持されたデータBは、ストレージ装置30からの格納完了通知を待つことなく、ストレージ装置30に送信される。すなわち、ストレージ装置30へのデータBの送信は、CM21aにおけるライトコマンドの受信に同期して実行される。
以上、ライトバックモードとライトスルーモードの処理内容の相違について説明した。ここで、2つのモードの、レスポンス性能及びCM21のプロセッサ220の処理負荷について比較する。ライトバックモードでは、非担当CMからの保持完了通知に基づいて処理完了通知が発行される。そのため、ストレージ装置30からの格納完了通知よりも、非担当CMからの保持完了通知が先になされる場合においては、ライトバックモードの方がレスポンス性能は良い。但し、ライトバックモードにおけるCM21のプロセッサ220の処理負荷は、ライトスルーモードにおけるCM21のプロセッサ220の処理負荷よりも大きくなる。これは、ライトスルーモードにおいては、担当CMと非担当CMとの間でのデータの送受信処理は行われないのに対し、ライトバックモードでは、担当CMと非担当CMとの間でのデータの送受信処理が行われるためである。
次に、ライトバックモードにおけるレスポンスタイムが、ライトスルーモードにおけるレスポンスタイムよりも長くなる場合があることについて説明する。図4においては、ライトバックモードにおいて非担当CMからの保持完了通知が、ストレージ装置30からの格納完了通知よりも先に送信される例について説明した。しかし、担当CMのプロセッサ220や非担当CMのプロセッサ220の処理負荷の状態等によっては、非担当CMからの保持完了通知が、ストレージ装置30からの格納完了通知よりも後に送信される場合がある。例えば多数のライトコマンドが担当CMに短い期間に入力された場合や、非担当CMのプロセッサ220の処理負荷が高い場合には、担当CMと非担当CMの間での通信速度が低下する。また担当CMのキャッシュメモリが飽和し、先に入力されたライトコマンドに関するデータの格納処理が完了してデータがキャッシュメモリから消去されるまで、コマンドがストレージ制御装置20への入力待ちの状態となる場合もある。このような状態において、非担当CMからの保持完了通知と、ストレージ装置30からの格納完了通知のタイミングが逆転する場合がある。
図6は、ライトバックモードにおける処理フローを示すラダーチャートである。図4とは異なり、非担当CMからの保持完了通知が、ストレージ装置30からの格納完了通知よりも後に送信される例が示される。図4にて開示された処理と同一の処理については同一の参照番号が付される。
まず処理S410において情報処理装置10が、データAについてのライトコマンドを発行する。ライトコマンドを受信したCM21aは、処理S420において、データAをキャッシュメモリに保持する。そしCM21aは処理S421において、データAを非担当CMであるCM21bへ送信する。またCM21aは、処理S421において、データAのストレージ装置30へ送信する。
処理S430においてストレージ装置30が、データAをRAID32Aに格納したことを示す格納完了通知を、CM21aに対して送信する。そしてその後、処理S422においてCM21bが、データAをCM21bのキャッシュメモリに保持させたことを示す保持完了通知を、CM21aに対して送信する。そして処理S423においてCM21aが、保持完了通知に基づいて、情報処理装置10への処理完了通知を送信する。
このように、図6に示された例においては、担当CMと非担当CMの間でのデータの冗長化に要する時間が、ストレージ装置30へのデータ格納に要する時間よりも長くなっている。そのため、ライトバックモードによって処理完了通知が発行されることにより、ライトスルーモードによって処理完了通知が発行される場合に比べて、情報処理装置10へのレスポンスタイムが長くなることになる。このような場合は、ライトスルーモードが選択される方が、レスポンス性能の観点からは好ましいと考えられる。加えて、ライトバックモードによる処理が実行されることにより、担当CMのプロセッサ220及び非担当CMのプロセッサ220の処理負荷も、ライトスルーモードに比べて増加することになる。
このような考察に基づき、本実施形態においては、ライトバックモードとライトスルーモードのうち、情報処理装置10へのレスポンスタイムが短いモードが選択される。つまり、ライトバックモードが選択された方がレスポンスタイムは短くなると予測される場合は、ライトバックモードが選択される。逆にライトスルーモードが選択された方がレスポンスタイムは短くなると予測される場合は、ライトスルーモードが選択される。
本実施形態においては、あるデータ、例えばサンプルデータを担当CMから非担当CM及びストレージ装置30に送信する。そして、担当CMが非担当CMから保持完了通知を受信するまでの第1時間と、担当CMがストレージ装置30から格納完了通知を受信するまでの第2時間とが比較される。第1時間が第2時間よりも短い場合にはライトバックモードが選択され、第1時間が第2時間よりも長い場合は、ライトスルーモードが選択される。
図7は、CM21のプロセッサ220の機能ブロック図である。図7に開示される機能ブロックは、CM21a及びCM21bの何れにも適用され得る。
プロセッサ220は、コンピュータプログラムを実行することにより、モード選択部221、モード制御部222、コマンド受信部223、キャッシュメモリ制御部224、CM間通信制御部225、ストレージ制御部226、通知部227、測定部228、管理テーブル229として機能する。尚、管理テーブル229はプロセッサ220によって実現されなくてもよく、例えば揮発性メモリ240によって実現されてもよい。
モード選択部221は、後述の測定部228の測定結果に基づき、ライトバックモードとライトスルーモードの選択を行い、選択されたモードを記憶する。モード制御部222は、モード選択部221によって選択され記憶されたモードに応じた制御を行う。コマンド受信部223は、情報処理装置10からのコマンド、例えばライトコマンドを受信する。キャッシュメモリ制御部224は、CM21の、例えば揮発性メモリ240に設けられたキャッシュメモリの制御を行う。例えばライトコマンドがコマンド受信部223によって受信された場合には、ライトコマンドの対象データをキャッシュメモリに保持させる。CM間通信制御部225は、担当CMと非担当CMの間の通信の制御を行う。例えば担当CMがライトコマンドを受信した場合、CM間通信制御部225が担当CMと非担当CMの間の通信を制御し、ライトコマンドの対象データを非担当CMへ送信する。またCM間通信制御部225は、非担当CMからの保持完了通知を受信する。すなわちCM間通信制御部225は、担当CMと非担当CMの間の通信における送受信部として機能する。ストレージ制御部226は、ストレージ装置30へのデータの送信を行い、データをストレージ装置30に格納させる。またストレージ制御部226は、ストレージ装置30からの格納完了通知を受信する。すなわちストレージ制御部226は、ストレージ装置30との通信における送受信部として機能する。通知部227は、ライトコマンドを情報処理装置10から受信した場合であって、所定の処理が完了した場合に、処理完了通知を情報処理装置10に送信する。所定の処理とは、ライトバックモードが選択された場合には、非担当CMから保持完了通知を受信することであり、ライトスルーモードが選択された場合には、ストレージ装置30から格納完了通知を受信することである。測定部228は、サンプルデータが非担当CMに送信されてから、非担当CMからの保持完了通知が受信されるまでの第1時間を測定する。更に測定部228は、サンプルデータがストレージ装置30に送信されてから、ストレージ装置30からの格納完了通知が受信されるまでの第2時間を測定する。また測定部228は、測定された第1時間と第2時間を、管理テーブル229に登録する。管理テーブル229は、測定部228によって測定された第1時間及び第2時間を保持する。先述のモード選択部221は、管理テーブル229の登録内容を参照し、モードの選択を実行する。
図8は、ストレージ装置30のプロセッサ320の機能ブロック図である。プロセッサ320は、コンピュータプログラムを実行することにより、データ受信部322、RAID制御部325、通知部326として機能する。
データ受信部322は、ストレージ制御装置20からデータを受信する。RAID制御部325は、RAID32にデータを格納する処理を行う。通知部326は、RAID32にデータが格納されたことを示す格納完了通知を、ストレージ制御装置20へ送信する。
図9は、第1時間及び第2時間の測定方法と、その結果に基づくモード選択方法を説明するための図である。図9の(a)は、ライトバックモードが選択される場合を説明する図である。CM21aはサンプルデータを準備する。サンプルデータは例えば64KByteのデータであり、第1時間及び第2時間を測定するためのデータである。またCM21bは、他のデータ(例えばライトコマンドの対象となるデータ)が保持されるメモリ領域と分けて、サンプルデータを保持するためのメモリ領域をキャッシュメモリ内に確保する。
処理S450においてCM21aは、サンプルデータをCM21bへ送信する。サンプルデータは、サンプルデータ用の領域に保持される。その後、CM21bは、処理S460において保持完了通知を送信する。
一方、ストレージ装置30は、他のデータが保持されるメモリ領域と分けて、サンプルデータを保持するためのメモリ領域をRAID32内に確保する。そして処理S450においてCM21aはサンプルデータをストレージ装置30に送信する。ストレージ装置30は、サンプルデータ用の領域にサンプルデータを格納した後に、処理S470において格納完了通知を送信する。
処理S451においてCM21aは、サンプルデータがCM21bへ送信されてから、保持完了通知が受信されるまでの時間(第1時間)を測定する。また処理S452においてCM21aは、サンプルデータがストレージ装置30へ送信されてから、格納完了通知が受信されるまでの時間(第2時間)を測定する。図9の(a)に示される例では、第1時間の方が第2時間よりも短い。この場合は、ライトバックモードが選択された方が、短いレスポンスタイムが期待できる。よってモード選択部221は、ライトバックモードを選択し、以後に受け付けられたライトコマンドはライトバックモードにて処理される。
図9の(b)は、ライトスルーモードが選択される場合を説明する図である。CM21a、CM21b、及びストレージ装置30によって実行される処理の内容は、図9の(a)にて説明された内容と同じである。但し、測定された第1時間が第2時間よりも長い点において、図9の(b)に示された例は、図9の(a)に示された例と相違する。
上述のように、CM21aとCM21bとの間でのデータの共有に要する時間が長い場合、例えばCM21aのプロセッサ220やCM21bのプロセッサ220の処理負荷が高い場合等に、第1時間が第2時間よりも長くなる場合がある。このような場合は、ライトスルーモードが選択された方が、短いレスポンスタイムが期待できる。よってモード選択部221は、ライトスルーモードを選択し、以後に受け付けられたライトコマンドはライトスルーモードにて処理される。ライトスルーモードが選択された場合は、CM21aとCM21bの間のデータ送受信が行われないため、CM20aのプロセッサ220及びCM20bのプロセッサ220の処理負荷を軽減させることもできる。
図10は、管理テーブル229の登録内容の例を示す図である。測定部228によって測定された第1時間及び第2時間が、管理テーブル229に登録される。第1時間及び第2時間の測定は、複数回実行される。例えばCM21aは、所定の時間間隔、例えば30秒間隔で、サンプルデータの送信及び第1時間と第2時間の測定を繰り返し実行する。第1時間と第2時間は、CM21aのプロセッサ220やCM21bのプロセッサ220の処理負荷によって時間の経過とともに変動するためである。
尚、ここでは第1時間及び第2時間の測定間隔を30秒として例示したが、より短い時間間隔で測定が行われてもよい。測定の時間間隔が短く、第1時間又は第2時間が測定の時間間隔よりも長くなることがあり得る場合には、サンプルデータに識別情報が付される。サンプルデータに付された識別情報により、担当CMから送信されたサンプルデータと、担当CMにより受信された保持完了通知及び格納完了通知の対応関係を認識することができる。
図10に示される例においては、1回目及び2回目の測定では第1時間が第2時間よりも短いため、モード選択部221は、ライトバックモードを選択する。しかし3回目の測定において、第1時間が第2時間よりも長くなっているため、モード選択部221は、ライトスルーモードを選択する。その後、4回目及び5回目の測定でも、第1時間が第2時間よりも長くなる傾向が継続されているため、ライトスルーモードが維持される。
次に、管理テーブル229に基づくモード選択方法の他の例について説明する。図10に示される例では、3回目の測定結果において、第1時間が第2時間よりも長くなった。しかし、一度の測定結果のみでライトバックモードとライトスルーモードの切り替えを行うと、モードの切り替えが頻繁に生じる虞がある。頻繁にモードの切り替えが行われることを抑制するために、複数回の測定結果に基づいて選択されるモードが決定されてもよい。例えば連続する2回の測定において第1時間と第2時間の大小関係が同一の関係を示した場合に、モードが切り換えられてもよい。図10の例では、3回目の測定で第1時間が第2時間よりも長くなっているが、この時点ではライトバックモードからライトスルーモードへの切り替えは実行されない。そして4回目の測定でも第1時間が第2時間よりも長くなった(2回連続で第1時間が第2時間よりも長くなった)ことに基づき、ライトバックモードからライトスルーモードへの切り替えが行われる。或いは、更なる他の例として、直近の例えば5回の連続する測定結果の平均の傾向に基づいて、モードの選択が実行されてもよい。この場合も、モード切り替えの頻度を抑制することができる。
尚、第1時間及び第2時間の測定及び測定結果の管理テーブル229への登録は、CM21a及び21bのそれぞれが行う。CM21bが担当CMとなってライトコマンドを受信する場合もあるからである。
図11は、担当CMのプロセッサ220によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理S500によって開始され、処理S502においてCM間通信制御部225が、サンプルデータを非担当CMに送信する。その後、処理S504においてCM間通信制御部225が、非担当CMから保持完了通知を受信する。処理S506において測定部228が、サンプルデータが送信されてから保持完了通知が受信されるまでの第1時間を測定する。そして処理S508において測定部228が、測定された第1時間を管理テーブル229に登録する。
また、処理S510においてストレージ制御部226は、サンプルデータをストレージ装置30へ送信する。その後、処理S512においてストレージ制御部226は、ストレージ装置30から格納完了通知を受信する。処理S514において測定部228が、サンプルデータが送信されてから格納完了通知が受信されるまでの第2時間を測定する。そして処理S516において測定部228が、測定された第2時間を管理テーブル229に登録する。
第1時間と第2時間の管理テーブル229への登録がなされた後、処理S518においてモード選択部221が、管理テーブル229を参照することによって、第1時間が第2時間よりも短いかどうかを判定する。第1時間が第2時間よりも短いと判定された場合は、処理フローは処理S520へ進み、第1時間が第2時間よりも短いと判定されない場合は、処理フローは処理S522へ進む。処理S520においてモード選択部221は、ライトバックモードを選択し、処理S522においてモード選択部221は、ライトスルーモードを選択する。その後、処理フローは処理S530において終了する。
図12は、非担当CMのプロセッサ220によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理S600によって開始され、処理S602においてCM間通信制御部225が、サンプルデータを担当CMから受信する。そして、処理S604においてキャッシュメモリ制御部224が、サンプルデータをキャッシュメモリに保持させる。そして処理S606においてCM間通信制御部225が、保持完了通知を担当CMに送信し、処理S610において処理フローが終了する。
図13は、ストレージ装置30のプロセッサ320によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理S700によって開始され、処理S702においてデータ受信部322が、サンプルデータを担当CMから受信する。そして、処理S704においてRAID制御部325が、サンプルデータをRAID32(フラッシュメモリ390)に格納する。そして処理S706において通知部326が、格納完了通知を担当CMに送信し、処理S710において処理フローが終了する。
図14は、担当CMのプロセッサ220によって実行される、モード選択後にライトコマンドが入力された際の処理のフローチャートである。処理フローは処理S800によって開始され、処理S802においてコマンド受信部223が、ライトコマンドを受信する。そして処理S804においてキャッシュメモリ制御部224が、受信したライトコマンドの書き込み対象のデータをキャッシュメモリに保持させる。処理S806においてモード制御部222が、選択されたモードがライトバックモードであるかを判定する。選択されたモードがライトバックモードであると判定された場合は、処理フローは処理S808及び処理S814へ進み、ライトバックモードに沿った処理が実行される。また、選択されたモードがライトバックモードであると判定されない場合は、処理フローは処理S822へ進み、ライトスルーモードに沿った処理が実行される。
処理S808、処理S810、及び処理S812は、データを非担当CMのキャッシュメモリに保持させる処理である。処理S808においてCM間通信制御部225が、データを非担当CMへ送信する。その後、処理S810においてCM間通信制御部225が、非担当CMから保持完了通知を受信する。そして処理S812において通知部227が、保持完了通知の受信に基づいて、処理完了通知を、ライトコマンドの発行元である情報処理装置10に送信する。
一方、データをストレージ装置30に格納する処理S814、処理S816、処理S818、処理S820も実行される。処理S814においてストレージ制御部226が、他のデータ、例えば過去に受信されたライトコマンドの対象データの、ストレージ装置30への格納処理が完了しているか否かを判定する。他のデータの格納処理が完了していると判定される場合は、処理フローは処理S816へ進み、他のデータの格納処理が完了していると判定されない場合は、処理S814が繰り返し実行される。
処理S816においてストレージ制御部226が、データをストレージ装置30へ送信する。その後、処理S818においてストレージ制御部226が、ストレージ装置30から格納完了通知を受信する。そして処理S820においてキャッシュメモリ制御部224が、キャッシュメモリに保持されたデータを消去し、処理フローが処理S830にて終了する。
また、処理S806において、選択されたモードがライトバックモードであると判定されない場合、つまり選択されたモードがライトスルーモードである場合、処理S822においてストレージ制御部226が、データをストレージ装置30へ送信する。その後、処理S824においてストレージ制御部226が、ストレージ装置30から格納完了通知を受信する。そして処理S826においてキャッシュメモリ制御部224が、キャッシュメモリに保持されたデータを消去し、処理フローが処理S830にて終了する。
このように本実施形態においては、サンプルデータを非担当CMのキャッシュメモリに保持させる処理に要する第1時間と、サンプルデータをストレージ装置30に格納する処理に要する第2時間とが測定される。そして第1時間と第2時間の比較に基づき、ライトバックモードとライトスルーモードの切り替えが行われる。これにより、ストレージ制御装置20が情報処理装置10からライトコマンドを受けた際のレスポンス性能を改善することが可能となる。また、ライトスルーモードが選択された場合には、CM21a及び21bのプロセッサ220の負荷を抑制することができる。
次に、ライトバックモードからライトスルーモードへのモードの切り替えが行われた際の、データ順序性を維持するための処理について説明する。
図15は、ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に問題が生じる場合について説明するための図である。図15の(a)は、ライトバックモードにおいて複数のライトコマンドがストレージ制御装置20に入力され、担当CMのキャッシュメモリ(揮発性メモリ240)に複数の書き込み対象データ(データA1、データB1、データC1)が保持されている状態を示す。データA1の論理ブロックアドレス(Logical Block Address;以下、LBA)は001であり、データB1のLBAは002であり、データC1のLBAは003であるとする。これらのデータは、ストレージ装置30への格納処理の順番待ちの状態である。
その後、ライトバックモードからライトスルーモードへの切り替えが行われ、図15の(b)においてデータB2についてのライトコマンドがストレージ制御装置20へ入力されたとする。データB2は、データB1の改版データであり、データB2のLBAは、データB1のLBAと同じ002である。つまりデータB1は、データB2によってアップデートされるべきデータである。しかし、データB2はライトスルーモードによりストレージ制御装置20に入力されているため、ストレージ制御装置20への入力に同期して、ストレージ装置30へデータB2の格納処理が実行される。つまり、データB1よりも先に、アップデート版であるデータB2がストレージ装置30に格納される。
その後、図15の(c)において、ライトバックモードによりキャッシュメモリに保持されたデータB1が、ストレージ制御装置20に格納される。この際、先に格納されたデータB2(新しいデータ)が、データB1(古いデータ)によって上書きされてしまう、という問題が生じる。この問題を避けるために、図16に示される処理が実行される。
図16は、ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に生じる問題を解決する方法を説明するための図である。まず図16の(a)において、図15の(a)と同様に、ライトバックモードにおいて複数のライトコマンドがストレージ制御装置20に入力される。そして、担当CMのキャッシュメモリに複数の書き込み対象データ(データA1、データB1、データC1)が保持される。
その後、ライトバックモードからライトスルーモードへの切り替えが行われ、そして図16の(b)において、データB2についてのライトコマンドがストレージ制御装置20へ入力される。この際、図16の(c)においてキャッシュメモリ制御部224は、データB2のLBAと同一のLBAを有するデータが、キャッシュメモリに保持されているかどうかを判定する。そしてデータB1のLBAがデータB2のLBAと同一であることに基づき、キャッシュメモリ上でデータB1を、データB2で上書きする。この処理により、キャッシュメモリ上においてデータB1は消去され、代わりにデータB2がキャッシュメモリに保持される。その後、図16の(d)においてデータB2は、ストレージ装置30に格納される。
このように、ライトバックモードにてストレージ制御装置20に入力され、キャッシュメモリ上に保持されているデータが、アップデートされたデータであってライトスルーモードにてストレージ装置に20に入力されたデータによって上書きされる。この処理により、ストレージ装置30に格納された新しいデータが、古いデータによって上書きされるという問題を解消させることができる。
(モードの選択方法の変形例)
図1においては、CM21a及び21bはそれぞれ、一つのRAID32の担当CMとして説明されたが、CM21a及び21bはそれぞれ、複数のRAID32の担当CMとして機能してもよい。
図17は、複数のCM21がそれぞれ、複数のRAID32の担当CMとして機能するストレージシステムを示す図である。図17においてCM21aは、RAID32A及び32Cの担当CMであり、CM21bは、RAID32B及び32Dの担当CMである。
このようなストレージシステムにおいて、CM21aは、サンプルデータをストレージ装置30へ送信してから格納完了通知を受信するまでの時間(第2時間)の測定を、RAID32A及びRAID32Cの両方に対して実行する。同様にCM21bは、第2時間の測定を、RAID32B及びRAID32Dの両方に対して実行する。
図18は、変形例における管理テーブル229の登録内容の例を示す図である。図10にて説明されたように、測定部228によって測定された第1時間及び第2時間が、管理テーブル229に登録される。図18においては、CM21aが、自身の担当するRAID32A及びRAID32Cのそれぞれに対して測定した第2時間が管理テーブル229に登録される。
モード選択部221は、管理テーブル229に基づいて、モードの選択を行う。例えば、3回目及び4回目の測定においてRAID32Aについての第2時間が、連続して第1時間よりも短くなっている。このことに基づいて、モード選択部221はRAID32Aについてはライトスルーモードを選択してもよい。尚、RAID32Cについての第2時間は、3回目の測定において第1時間よりも長い。そのため、4回目の測定においては、2回連続して第1時間が第2時間よりも長くなったとは言えない。そのため、モード選択部221は、RAID32Aについてはライトスルーモードを選択する一方で、RAID32Cについてはライトバックモードを維持してもよい。
他のモード選択方法としては、モード選択部221は、RAID32毎にモードを選択せず、複数のRAID32に対して共通のモードを選択してもよい。例えば4回目の測定においてRAID32Aの第2時間が第1時間よりも短いことに基づき、RAID32A及び32Cともにライトスルーモードが選択されてもよい。更に他のモード選択方法として、複数のRAID32についての直近の例えば5回の連続する測定結果の平均の傾向に基づいて、モードの選択が実行されてもよい。
(停電時処理)
ここで、ストレージ制御装置20に対する電力供給が停止し、その後、ストレージ制御装置20に対する電力供給が回復した場合の、ストレージ制御装置20が実行する処理について説明する。
まず選択されたモードがライトバックモードである場合について説明する。ライトバックモードが選択された状態のストレージ制御装置20の担当CM21によって受信されたデータは、担当CM21のキャッシュメモリに保持される。またデータは、非担当CM21のキャッシュメモリにも保持され、情報処理装置10に対して処理完了通知がなされる。その後、データがストレージ装置30へ格納される前に、ストレージ制御装置20への電力供給が停止したとする。この場合、バッテリ260からの代替的な電力供給により、キャッシュメモリに保持されているデータが不揮発性メモリ230に書き込まれる。これにより、バッテリ260による電力供給が終了しても、データが消失することを防ぐことができる。その後、外部からの電力供給が回復した後に、不揮発性メモリ240に書き込まれていたデータが再度キャッシュメモリに書き出され、キャッシュメモリからストレージ装置30への格納処理が実行される。
次に、選択されたモードがライトスルーモードである場合について説明する。ライトスルーモードが選択された状態のストレージ制御装置20の担当CM21によって受信されたデータは、担当CM21のキャッシュメモリに保持される。その後、データがストレージ装置30へ格納される前に、ストレージ制御装置20への電力供給が停止したとする。この場合、キャッシュメモリに保持されているデータを不揮発性メモリ240に書き込む処理は実行されない。よって、外部からの電力供給が回復するまでにバッテリ260からの代替的な電力供給が終了した場合には、データはCM21から消去される。その後、外部からの電力供給が回復したとする。この場合、情報処理装置10は、先に送信したライトコマンドに対する処理完了通知を一定期間中に受信しなかったことに基づき、ライトコマンドを再度送信する。そして、再送されたライトコマンドが、ライトスルーモードが選択された状態のストレージ制御装置20の担当CM21により受信された場合は、ライトスルーモードによりデータがストレージ装置20に格納される。その後、処理完了通知が情報処理装置10に対して送信される。再送されたライトコマンドが、ライトバックモードが選択された状態のストレージ制御装置20の担当CM21により受信された場合は、ライトバックモードによりデータが非担当CMに格納され、処理完了通知が情報処理装置10に対して送信される。その後、データはストレージ装置30に格納される。
最後に、ライトバックモードからライトスルーモードへの切り替えが行われた場合について説明する。キャッシュメモリに、ライトバックモードにて担当CM21に入力されたデータと、ライトスルーモードにて担当CM21に入力されたデータとが混在する状態を想定する。尚、ライトバックモードにて受信されたデータについては、処理完了通知が既に情報処理装置10に対して送信されているものとする。その後、データがストレージ装置30へ格納される前に、ストレージ制御装置20への電力供給が停止したとする。この場合、バッテリ260による代替的な電力供給により、キャッシュメモリに保持されているデータのうち、ライトバックモードにより受信されたデータは、不揮発性メモリ230に書き込まれる。一方、ライトスルーモードにより受信されたデータは不揮発性メモリ230に書き込まれない。その後、外部からの電力供給が回復した後に、不揮発性メモリ230に書き込まれていたデータがキャッシュメモリに書き出され、キャッシュメモリからストレージ装置30への格納処理が実行される。不揮発性メモリ230に書き込まれなかったデータについては、情報処理装置10からライトコマンドが再送された場合に、データのストレージ装置30へのデータの格納処理が実行される。
このように、ライトバックモードからライトスルーモードへ切り替わった場合であって、外部からの電力供給が停止した場合であっても、外部からの電力供給が回復した後にデータをストレージ装置30に格納することができる。ライトスルーモードで受信されたデータについては、情報処理装置10からのライトコマンドの再送信に基づいて、ストレージ装置30へのデータ格納処理が行われる。
ここで、上記の処理が実行されるために、CM21は、ライトバックモードで受信されたデータと、ライトスルーモードで受信されたデータを識別するための機能を有している。例えば、CM21は、データをキャッシュメモリに保持する際に、ライトバックモード又はライトスルーモードで当該データが受信されたことを示すフラグを生成して保持する。そして当該フラグに基づいて、バッテリ260による電力供給によって不揮発性メモリ230へのデータの書き込みを行うか否かを判定する。
開示の実施形態に基づき、更に以下の付記を開示する。
(付記1)
第1制御装置と第2制御装置とを含み、情報処理装置から受信した第1データのストレージ装置への格納を制御するストレージ制御装置において、
前記第1制御装置は、
第2データを前記第2制御装置へ送信し、前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を前記第2制御装置から受信する第1送受信部と、
前記第2データを前記ストレージ装置へ送信し、前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第2送受信部と、
前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が受信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第2時間を測定する測定部と、
前記第1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択するモード選択部と、
を有し、
前記第1制御装置は、前記第1モードが選択された場合、前記情報処理装置から送信された前記第1データを前記第2制御装置及び前記ストレージ装置へ送信し、前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第1制御装置は、前記第2モードが選択された場合、前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御装置。
(付記2)
前記第2モードにおいて、前記第1制御装置は、前記第1データを前記第2制御装置へ送信しないことを特徴とする付記1に記載のストレージ制御装置。
(付記3)
前記第1制御装置は、第1キャッシュメモリを有し、
前記第2制御装置は、第2キャッシュメモリを有し、
前記第1モード及び前記第2モードにおいて、前記第1データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第1データを保持し、
前記第1モードにおいて、前記第1データが前記第2制御装置に送信された場合、前記第2キャッシュメモリが前記第1データを保持することを特徴とする付記1又は2に記載のストレージ制御装置。
(付記4)
前記第1制御装置にエラーが発生し、前記第1制御装置から前記第1データが前記ストレージ装置に送信されない場合は、前記第2制御装置が前記第2キャッシュメモリに保持された前記第1データを前記ストレージ装置に送信することを特徴とする付記3に記載のストレージ制御装置。
(付記5)
前記ストレージ装置はSolid State Drive(SSD)又はHard Disk Drive(HDD)であることを特徴とする付記1乃至4何れか一つに記載のストレージ制御装置。
(付記6)
前記モード選択部は、前記第1時間が前記第2時間よりも短い場合に、前記第1モードを選択し、前記第2時間が前記第1時間よりも短い場合に、前記第2モードを選択することを特徴とする付記1乃至5何れか一つに記載のストレージ制御装置。
(付記7)
前記第2データはサンプルデータであり、
前記第1送受信部及び前記第2送受信部は、前記サンプルデータを複数回、前記第2制御装置及び前記ストレージ装置に送信することにより、前記第1時間及び前記第2時間の測定を複数回実行し、
前記モード選択部は、複数回の前記測定において連続して前記第1時間が前記第2時間よりも短い場合に、前記第1モードを選択し、複数回の前記測定において連続して前記第2時間が前記第1時間よりも短い場合に、前記第2モードを選択することを特徴とする付記1乃至5何れか一つに記載のストレージ制御装置。
(付記8)
前記第1モードにおいて前記第1制御装置は、前記第2データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第1制御装置によって受信される前に、第3データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第3データを保持し、前記格納完了通知が前記第1制御装置によって受信された後に、前記第2送受信部が前記第3データを前記ストレージ装置へ送信することを特徴とする付記1乃至7何れか一つに記載のストレージ制御装置。
(付記9)
前記ストレージ装置は、Redundant Arrays OF Inexpensive Disks(RAID)を含み、
前記第2データは前記RAIDに冗長的に格納されることを特徴とする付記1乃至8何れか一つに記載のストレージ制御装置。
(付記10)
第1制御装置と第2制御装置とを用いて、情報処理装置から受信した第1データのストレージ装置への格納を制御するストレージ制御方法であって、
前記第1制御装置から前記第2制御装置へ第2データを送信し、
前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を、前記第2制御装置から前記第1制御装置へ送信し、
前記第1制御装置から前記ストレージ装置へ前記第2データを送信し、
前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から前記第1制御装置へ送信し、
前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が前記第1制御装置へ送信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が前記第1制御装置へ送信されるまでの第2時間を測定し、
前記1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択する処理を実行し、
前記第1モードが選択された場合、前記第1制御装置が、
前記情報処理装置から送信された前記第1データを、前記第2制御装置及び前記ストレージ装置へ送信し、
前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、
前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第2モードが選択された場合、前記第1制御装置が、
前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、
前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御方法。
(付記11)
前記第2モードにおいて、前記第1制御装置は、前記第1データを前記第2制御装置へ送信しないことを特徴とする付記10に記載のストレージ制御方法。
(付記12)
前記第1制御装置は、第1キャッシュメモリを有し、
前記第2制御装置は、第2キャッシュメモリを有し、
前記第1モード及び前記第2モードにおいて、前記第1データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第1データを保持し、
前記第1モードにおいて、前記第1データが前記第2制御装置に送信された場合、前記第2キャッシュメモリが前記第1データを保持することを特徴とする付記10又は11に記載のストレージ制御方法。
(付記13)
前記第1制御装置にエラーが発生し、前記第1制御装置から前記第1データが前記ストレージ装置に送信されない場合は、前記第2制御装置が前記第2キャッシュメモリに保持された前記第1データを前記ストレージ装置に送信することを特徴とする付記12に記載のストレージ制御方法。
(付記14)
前記ストレージ装置はSolid State Drive(SSD)又はHard Disk Drive(HDD)であることを特徴とする付記10乃至13何れか一つに記載のストレージ制御方法。
(付記15)
前記選択する処理において、前記第1時間が前記第2時間よりも短い場合に、前記第1モードが選択され、前記第2時間が前記第1時間よりも短い場合に、前記第2モードが選択されることを特徴とする付記10乃至14何れか一つに記載のストレージ制御方法。
(付記16)
前記第2データはサンプルデータであり、
前記第1制御装置が、前記サンプルデータを複数回、前記第2制御装置及び前記ストレージ装置に送信することにより、前記第1時間及び前記第2時間の測定を複数回実行し、
前記選択する処理において、複数回の前記測定において連続して前記第1時間が前記第2時間よりも短い場合に、前記第1モードが選択され、複数回の前記測定において連続して前記第2時間が前記第1時間よりも短い場合に、前記第2モードが選択されることを特徴とする付記10乃至14何れか一つに記載のストレージ制御方法。
(付記17)
前記第1モードにおいて前記第1制御装置は、前記第2データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第1制御装置によって受信される前に、第3データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第3データを保持し、前記格納完了通知が前記第1制御装置によって受信された後に、前記第2送受信部が前記第3データを前記ストレージ装置へ送信することを特徴とする付記10乃至16何れか一つに記載のストレージ制御方法。
(付記18)
前記ストレージ装置は、Redundant Arrays of Inexpensive Disks(RAID)を含み、
前記第2データは前記RAIDに冗長的に格納されることを特徴とする付記10乃至17何れか一つに記載のストレージ制御方法。
(付記19)
ストレージ装置と、
第1制御装置と第2制御装置とを含み、情報処理装置から受信した第1データの前記ストレージ装置への格納を制御するストレージ制御装置とを含み、
前記第1制御装置は、
第2データを前記第2制御装置へ送信し、前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を前記第2制御装置から受信する第1送受信部と、
前記第2データを前記ストレージ装置へ送信し、前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第2送受信部と、
前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が受信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第2時間を測定する測定部と、
前記第1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択するモード選択部と、
を有し、
前記第1制御装置は、前記第1モードが選択された場合、前記情報処理装置から送信された前記第1データを前記第2制御装置及び前記ストレージ装置へ送信し、前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第1制御装置は、前記第2モードが選択された場合、前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージシステム。
(付記20)
前記第2モードにおいて、前記第1制御装置は、前記第1データを前記第2制御装置へ送信しないことを特徴とする付記19に記載のストレージシステム。
10 情報処理装置
20 ストレージ制御装置
21、21a、21b 制御装置(CM)
30 ストレージ装置
31、31a、31b、31c、31d 記憶領域
32、32A、32B、32C、32D RAID
210 CA
220、320 プロセッサ
230、330 不揮発性メモリ
240、340 揮発性メモリ
250 スイッチ
260 バッテリ
270 IOC
280 EXP
310 インターフェースカード
390 フラッシュメモリ
221 モード選択部
222 モード制御部
223 コマンド受信部
224 キャッシュメモリ制御部
225 CM間通信制御部
226 ストレージ制御部
227 通知部
228 測定部
229 管理テーブル
322 データ受信部
325 RAID制御部
326 通知部

Claims (10)

  1. 第1制御装置と第2制御装置とを含み、情報処理装置から受信した第1データのストレージ装置への格納を制御するストレージ制御装置において、
    前記第1制御装置は、
    第2データを前記第2制御装置へ送信し、前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を前記第2制御装置から受信する第1送受信部と、
    前記第2データを前記ストレージ装置へ送信し、前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第2送受信部と、
    前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が受信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第2時間を測定する測定部と、
    前記第1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択するモード選択部と、
    を有し、
    前記第1制御装置は、前記第1モードが選択された場合、前記情報処理装置から送信された前記第1データを前記第2制御装置及び前記ストレージ装置へ送信し、前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
    前記第1制御装置は、前記第2モードが選択された場合、前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
    ことを特徴とするストレージ制御装置。
  2. 前記第2モードにおいて、前記第1制御装置は、前記第1データを前記第2制御装置へ送信しないことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記第1制御装置は、第1キャッシュメモリを有し、
    前記第2制御装置は、第2キャッシュメモリを有し、
    前記第1モード及び前記第2モードにおいて、前記第1データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第1データを保持し、
    前記第1モードにおいて、前記第1データが前記第2制御装置に送信された場合、前記第2キャッシュメモリが前記第1データを保持することを特徴とする請求項1又は2に記載のストレージ制御装置。
  4. 前記第1制御装置にエラーが発生し、前記第1制御装置から前記第1データが前記ストレージ装置に送信されない場合は、前記第2制御装置が前記第2キャッシュメモリに保持された前記第1データを前記ストレージ装置に送信することを特徴とする請求項3に記載のストレージ制御装置。
  5. 前記ストレージ装置はSolid State Drive(SSD)又はHard Disk Drive(HDD)であることを特徴とする請求項1乃至4何れか一項に記載のストレージ制御装置。
  6. 前記モード選択部は、前記第1時間が前記第2時間よりも短い場合に、前記第1モードを選択し、前記第2時間が前記第1時間よりも短い場合に、前記第2モードを選択することを特徴とする請求項1乃至5何れか一項に記載のストレージ制御装置。
  7. 前記第2データはサンプルデータであり、
    前記第1送受信部及び前記第2送受信部は、前記サンプルデータを複数回、前記第2制御装置及び前記ストレージ装置に送信することにより、前記第1時間及び前記第2時間の測定を複数回実行し、
    前記モード選択部は、複数回の前記測定において連続して前記第1時間が前記第2時間よりも短い場合に、前記第1モードを選択し、複数回の前記測定において連続して前記第2時間が前記第1時間よりも短い場合に、前記第2モードを選択することを特徴とする請求項1乃至5何れか一項に記載のストレージ制御装置。
  8. 前記第1モードにおいて前記第1制御装置は、前記第2データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
    前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第1制御装置によって受信される前に、第3データが前記第1制御装置によって受信された場合、前記第1キャッシュメモリが前記第3データを保持し、前記格納完了通知が前記第1制御装置によって受信された後に、前記第2送受信部が前記第3データを前記ストレージ装置へ送信することを特徴とする請求項1乃至7何れか一項に記載のストレージ制御装置。
  9. 第1制御装置と第2制御装置とを用いて、情報処理装置から受信した第1データのストレージ装置への格納を制御するストレージ制御方法であって、
    前記第1制御装置から前記第2制御装置へ第2データを送信し、
    前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を、前記第2制御装置から前記第1制御装置へ送信し、
    前記第1制御装置から前記ストレージ装置へ前記第2データを送信し、
    前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から前記第1制御装置へ送信し、
    前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が前記第1制御装置へ送信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が前記第1制御装置へ送信されるまでの第2時間を測定し、
    前記1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択する処理を実行し、
    前記第1モードが選択された場合、前記第1制御装置が、
    前記情報処理装置から送信された前記第1データを、前記第2制御装置及び前記ストレージ装置へ送信し、
    前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、
    前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
    前記第2モードが選択された場合、前記第1制御装置が、
    前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、
    前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
    前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
    ことを特徴とするストレージ制御方法。
  10. ストレージ装置と、
    第1制御装置と第2制御装置とを含み、情報処理装置から受信した第1データの前記ストレージ装置への格納を制御するストレージ制御装置とを含み、
    前記第1制御装置は、
    第2データを前記第2制御装置へ送信し、前記第2データが前記第2制御装置に保持された旨を示す保持完了通知を前記第2制御装置から受信する第1送受信部と、
    前記第2データを前記ストレージ装置へ送信し、前記第2データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第2送受信部と、
    前記第2データが前記第2制御装置へ送信されてから前記保持完了通知が受信されるまでの第1時間と、前記第2データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第2時間を測定する測定部と、
    前記第1時間と前記第2時間の比較に基づき、第1モードと第2モードの何れかを選択するモード選択部と、
    を有し、
    前記第1制御装置は、前記第1モードが選択された場合、前記情報処理装置から送信された前記第1データを前記第2制御装置及び前記ストレージ装置へ送信し、前記第1データが前記第2制御装置に保持された旨を示す前記保持完了通知を前記第2制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
    前記第1制御装置は、前記第2モードが選択された場合、前記情報処理装置から送信された前記第1データを前記ストレージ装置へ送信し、前記第1データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
    ことを特徴とするストレージシステム。
JP2017026521A 2017-02-16 2017-02-16 ストレージ制御装置、ストレージ制御方法及びストレージシステム Withdrawn JP2018132964A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017026521A JP2018132964A (ja) 2017-02-16 2017-02-16 ストレージ制御装置、ストレージ制御方法及びストレージシステム
US15/885,882 US20180232312A1 (en) 2017-02-16 2018-02-01 Storage control device, method of storing data, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017026521A JP2018132964A (ja) 2017-02-16 2017-02-16 ストレージ制御装置、ストレージ制御方法及びストレージシステム

Publications (1)

Publication Number Publication Date
JP2018132964A true JP2018132964A (ja) 2018-08-23

Family

ID=63105889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017026521A Withdrawn JP2018132964A (ja) 2017-02-16 2017-02-16 ストレージ制御装置、ストレージ制御方法及びストレージシステム

Country Status (2)

Country Link
US (1) US20180232312A1 (ja)
JP (1) JP2018132964A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022191854A (ja) * 2021-06-16 2022-12-28 株式会社日立製作所 記憶システムおよびデータ処理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
US11861175B2 (en) * 2022-03-10 2024-01-02 International Business Machines Corporation Latency in data storage systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022191854A (ja) * 2021-06-16 2022-12-28 株式会社日立製作所 記憶システムおよびデータ処理方法
US11789613B2 (en) 2021-06-16 2023-10-17 Hitachi, Ltd. Storage system and data processing method

Also Published As

Publication number Publication date
US20180232312A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
US11960749B2 (en) Data migration method, host, and solid state disk
US10101926B2 (en) System and apparatus for controlling data backup using an update prevention instruction
US9383928B2 (en) Replication techniques with content addressable storage
KR101410596B1 (ko) 정보 처리 장치, 카피 제어 프로그램 및 카피 제어 방법
US8825968B2 (en) Information processing apparatus and storage control method
EP2711841A1 (en) Data processing method, device and system based on block storage
US9262344B2 (en) Local locking in a bi-directional synchronous mirroring environment
JP2018132964A (ja) ストレージ制御装置、ストレージ制御方法及びストレージシステム
US20100185793A1 (en) Storage device and data transfer method for the same
JP2008158800A (ja) 情報処理装置、履歴管理方法、履歴管理プログラム
US10108360B2 (en) Apparatus and method to reduce a response time for writing data to redundant storage devices by detecting completion of data-writing to at least one driver before elapse of a retry-over time
WO2023103704A1 (zh) 数据处理方法、存储介质和处理器
US10234929B2 (en) Storage system and control apparatus
US8892832B2 (en) Storage apparatus, storage management method, and storage medium storing storage management program
US20150193311A1 (en) Managing production data
US10007467B2 (en) Storage system
US20140068213A1 (en) Information processing apparatus and area release control method
US20160011791A1 (en) Storage control apparatus, storage system, and program
WO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
US20140310458A1 (en) Data transferring method and apparatus and storage system
US20150135004A1 (en) Data allocation method and information processing system
US10061667B2 (en) Storage system for a memory control method
CN114327248A (zh) 存储节点、存储设备及网络芯片
CN108027710B (zh) 在软件定义的存储系统中进行高速缓存的方法和装置
US10733062B2 (en) Software storage unit, backup method, and recording medium storing backup control program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20200219