JP2015111334A - ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 - Google Patents

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

Info

Publication number
JP2015111334A
JP2015111334A JP2013252971A JP2013252971A JP2015111334A JP 2015111334 A JP2015111334 A JP 2015111334A JP 2013252971 A JP2013252971 A JP 2013252971A JP 2013252971 A JP2013252971 A JP 2013252971A JP 2015111334 A JP2015111334 A JP 2015111334A
Authority
JP
Japan
Prior art keywords
write
solid state
storage control
statistical information
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013252971A
Other languages
English (en)
Inventor
由嘉莉 土山
Yukari Tsuchiyama
由嘉莉 土山
和彦 池内
Kazuhiko Ikeuchi
和彦 池内
康太郎 仁村
Kotaro Nimura
康太郎 仁村
明人 小林
Akito Kobayashi
明人 小林
親志 前田
Chikashi Maeda
親志 前田
一宏 浦田
Kazuhiro Urata
一宏 浦田
岳志 渡辺
Takashi Watanabe
岳志 渡辺
广宇 周
Guangyu Zhou
广宇 周
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 JP2013252971A priority Critical patent/JP2015111334A/ja
Priority to US14/551,181 priority patent/US9501406B2/en
Priority to EP14194678.0A priority patent/EP2884396A1/en
Publication of JP2015111334A publication Critical patent/JP2015111334A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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/3452Performance evaluation by statistical analysis
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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
    • G06F3/0688Non-volatile semiconductor memory 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ソリッドステートドライブの過負荷によるストレージ装置の性能低下を抑制できる。【解決手段】ストレージ制御装置1は、ストレージ装置4と通信可能に接続する。ストレージ装置4は、複数のSSD6を備える。ストレージ制御装置1は、処理要求制御部2aと、デバイス負荷検出部2bとを備える。デバイス負荷検出部2bは、SSD6の処理遅延の検出によりSSD6の過負荷を検出する。処理要求制御部2aは、デバイス負荷検出部2bがSSD6dの過負荷を検出した場合、ライトバック8aの発行にウエイトをかけてグループ5に対するライトバック8aの処理要求の発行を抑制する。【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法に関する。
ハードディスクドライブ(HDD:Hard Disk Drive)を代替可能な記憶装置の1つとしてソリッドステートドライブ(SSD:Solid State Drive)がある。ソリッドステートドライブは、不要となったデータを削除するガベージコレクション機能を備える。ソリッドステートドライブは、ガベージコレクション機能が起動するとI/O(Input/Output)処理速度が低下する。
特開2012−141944号公報 特開2012−8651号公報 特開2011−192240号公報
ガベージコレクション機能の起動タイミングは、ソリッドステートドライブ内に搭載されたファームウェアに依存し、ソリッドステートドライブを搭載するディスクアレイ装置(ストレージ装置)のファームウェアから制御することができない。
たとえば、ディスクアレイ装置は、RAID(Redundant Array of Independent Disk)グループに対するI/O要求をホストから受け付けて、ライトバックをスケジュールする制御をおこなう。RAIDグループを構成するソリッドステートドライブの1つのI/O処理速度の低下、すなわち過負荷の状態は、RAIDグループの処理遅延となる。
このようなRAIDグループの処理遅延は、ライトバックのスケジュールに支障をきたし、ストレージ装置の性能を低下させる。
1つの側面では、本発明は、ソリッドステートドライブの過負荷によるストレージ装置の性能低下を抑制できるストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなう。ストレージ制御装置は、処理要求制御部と、デバイス負荷検出部とを備える。処理要求制御部は、グループおよび複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する。デバイス負荷検出部は、複数のソリッドステートドライブのそれぞれの負荷を検出する。処理要求制御部は、所定の負荷を検出したソリッドステートドライブが属するグループ内の1または複数のソリッドステートドライブに対するライトバックの処理要求の発行を抑制する。
1態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法において、ソリッドステートドライブの過負荷によるストレージ装置の性能低下を抑制できる。
第1の実施形態のストレージ制御装置の構成の一例を示す図である。 第2の実施形態のストレージシステムの構成例と、ディスクアレイ装置のハードウェア構成例を示す図である。 第2の実施形態のディスクエンクロージャの一例を示す図である。 第2の実施形態のコントローラモジュールの機能構成の一例を示す図である。 第2の実施形態のライトバックスケジュールの一例を示す図である。 第2の実施形態のSCSIコマンド発行プロセスの一例を示す図である。 第2の実施形態のライトバックスケジュール処理のフローチャートを示す図である。 第2の実施形態のフロントエンド負荷検出処理のフローチャートを示す図である。 第2の実施形態の過負荷ディスク検出処理のフローチャートを示す図である。 第2の実施形態のライトバックデキュー処理のフローチャートを示す図である。 第2の実施形態の流量制御処理のフローチャートを示す図である。 第3の実施形態のRAID毎統計情報生成処理のフローチャートを示す図である。 第3の実施形態のRAID毎統計情報テーブルの一例を示す図である。 第3の実施形態の同時実行数閾値更新処理のフローチャートを示す図である。 第3の実施形態の統計情報閾値対応テーブルの一例を示す図である。 第4の実施形態のCM毎統計情報生成処理のフローチャートを示す図である。 第4の実施形態のCM毎統計情報テーブルの一例を示す図である。 第4の実施形態のCM毎同時実行数閾値更新処理のフローチャートを示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ制御装置について図1を用いて説明する。図1は、第1の実施形態のストレージ制御装置の構成の一例を示す図である。
ストレージ制御装置1は、ストレージ装置4と通信可能に接続する。ストレージ装置4は、ストレージ制御装置1の制御対象である。図示するストレージ装置4は、ストレージ制御装置1と別体であるが一体であっても構わない。
ストレージ装置4は、複数のSSD6を備える。ストレージ装置4は、たとえば、ディスクアレイ装置である。グループ5は、ホスト3からのアクセス単位であり、複数のSSD6を含んで構成される。たとえば、グループ5は、SSD6a、SSD6b、SSD6c、およびSSD6dから構成されるRAIDグループである。なお、図示するストレージ装置4は、4つのSSD6を備えるが、2以上のSSD6を備えるものであればよい。また、図示するグループ5は、4つのSSD6から構成されるが、2以上のSSD6で構成されるものであればよく、ストレージ装置4が備えるSSD6のすべてを構成要素とするものに限らない。
ストレージ制御装置1は、ホスト3と通信可能に接続する。ストレージ制御装置1は、ホスト3が発行するコマンド9を受けて、ストレージ装置4を制御する。コマンド9は、グループ5に対するI/O要求であり、たとえば、ライトコマンド、リードコマンドがある。
ストレージ制御装置1は、ホスト3からライトコマンドを受け付けるとライトデータをライトバックキャッシュ7に保存し、ホスト3に対して直ちに確認応答をおこなう。ストレージ制御装置1は、ライトバックキャッシュ7に保存したライトデータに対応するライトバック8を順次に発行する。すなわち、ストレージ制御装置1は、複数のSSD6を含むグループ5に対してライトバックキャッシュ7に記憶されたデータのライトバック制御をおこなう。
ストレージ制御装置1は、処理要求制御部2aと、デバイス負荷検出部2bとを備える。処理要求制御部2aは、グループ5および複数のSSD6に対するライトバック8の処理要求の発行を制御(ライトバック制御)する。
デバイス負荷検出部2bは、複数のSSD6のそれぞれの負荷を検出する。すなわち、複数のSSD6のそれぞれは、デバイス負荷検出部2bが負荷の検出対象とするデバイスに相当する。たとえば、デバイス負荷検出部2bは、SSD6の処理遅延の検出によりSSD6の所定の負荷(たとえば、過負荷)を検出することができる。より具体的には、デバイス負荷検出部2bは、SSD6のコマンドキューにあるコマンド数と過負荷閾値との比較によりSSD6の過負荷を検出することができる。
SSD6dが過負荷である状態は、グループ5がライトバック8aの処理要求の発行を受け付けても、SSD6dのI/O処理の遅延によりライトバック8aの完了が遅延するおそれのある状態である。このような状態は、SSD6a、SSD6b、およびSSD6cにI/O処理の余裕があるにもかかわらず、SSD6a、SSD6b、およびSSD6cがアイドル状態であり、ストレージ装置4の性能が十分に発揮されない状態である。
処理要求制御部2aは、デバイス負荷検出部2bが所定の負荷を検出したSSD6が属するグループ5内の1または複数のSSD6に対するライトバック8の処理要求の発行を抑制する。
処理要求制御部2aは、デバイス負荷検出部2bにより所定の負荷を検出したSSD6が属するグループ5に対してライトバック8の処理要求の発行を抑制する。たとえば、デバイス負荷検出部2bがSSD6dの過負荷を検出した場合、処理要求制御部2aは、ライトバック8aの処理要求の発行にウエイトをかけてグループ5に対するライトバック8aの処理要求の発行を抑制する。
これにより、処理要求制御部2aは、たとえば、ライトバック8aの処理要求の発行に優先してライトバック8bの処理要求の発行をおこなうことができる。したがって、ストレージ制御装置1は、過負荷状態にあるSSD6dを原因とするストレージ装置4の性能低下を抑制することができる。
なお、処理要求制御部2aは、デバイス負荷検出部2bにより過負荷を検出したSSD6dについてライトバック8の処理要求の発行を抑制し、SSD6a、SSD6b、およびSSD6cについてライトバック8の処理要求の発行をおこなうものであってもよい。たとえば、処理要求制御部2aは、SSD6dについてのライトバック8の処理要求の発行の抑制対象をSSD6dにかかるページ(データ領域)に限ることで、ライトバック8の範囲すべてを抑制対象としなくてもよい。
このように、ライトバック8の範囲の一部を抑制対象としても、ストレージ制御装置1は、抑制対象のデータがキャッシュメモリ上にあるため、グループ5に対する読出し等があっても応答可能である。
[第2の実施形態]
次に、第2の実施形態のストレージシステムと、ディスクアレイ装置のハードウェア構成について図2を用いて説明する。図2は、第2の実施形態のストレージシステムの構成例と、ディスクアレイ装置のハードウェア構成例を示す図である。
ストレージシステム10は、ディスクアレイ装置12とホスト11とを含んで構成される。ディスクアレイ装置12は、コントローラエンクロージャ(以下、CE)20と、1以上のディスクエンクロージャ(以下、DE)30を含んで構成される。DE30は、複数のSSDを収容するストレージ装置である。CE20は、DE30を制御対象とするストレージ制御装置である。なお、DE30は、ディスクアレイ装置12が内蔵するものであってもよいし、ディスクアレイ装置12に外付けされるものであってもよい。また、図示するディスクアレイ装置12は、2つのDE30a,30bと接続するが、1または3以上のDE30と接続してもよい。
CE20は、1以上のコントローラモジュール(以下、CM)21を含む。図示するCE20は、2つのCM21a,21bを備える。ディスクアレイ装置12は、CM21aとCM21bとにより冗長構成を有する。2つ以上のCM21は、ライトバックの発行を分担する分担制御装置として機能する。
CM21は、ディスクアレイ装置12を統括的に制御する制御モジュールである。CM21は、ストレージ制御装置の一形態であり、ホスト11からのI/O要求(たとえば、ライトコマンド、リードコマンドなど)を受け付けて、SSDを制御する。CM21aは、プロセッサ22、メモリ23、DA(Disk Adaptor:ディスクアダプタ)24と、CA(Channel Adaptor:チャネルアダプタ)25とを備え、図示しないバスを介して接続されている。CM21aは、DA24を介してDE30が収容するSSDと接続し、CA25を介してホスト11と接続する。
プロセッサ22は、CM21a全体を制御する。プロセッサ22は、マルチプロセッサであってもよい。プロセッサ22は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ22は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組合せであってもよい。
メモリ23は、たとえば、RAM(Random Access Memory)や不揮発性メモリを含む。メモリ23は、ワークメモリおよびキャッシュメモリとしての機能を有する。メモリ23は、SSDからデータを読み出したときにデータを保持するほか、I/O要求を一時的に蓄積するキューやSSDにデータを書き込むときのバッファとなる。また、メモリ23は、ユーザデータや制御情報を格納する。たとえば、RAMは、CM21aの主記憶装置として使用される。RAMには、プロセッサ22に実行させるオペレーティングシステム(Operating System)のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAMには、プロセッサ22による処理に必要な各種データが格納される。また、RAMは、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
不揮発性メモリは、ディスクアレイ装置12の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、EEPROM(Electrically Erasable and Programmable ROM)やフラッシュメモリなどの半導体記憶装置や、HDDなどである。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
DA24は、SSDとのインタフェース制御(アクセス制御)をおこなう。CM21aは、DE30aとのインタフェース制御をおこなうDA24aと、DE30bとのインタフェース制御をおこなうDA24bとを備える。なお、図示するDA24は、DA24aとDA24bの2つであるが、1つであってもよいし3つ以上であってもよい。
CA25は、ホスト11とのインタフェース制御をおこなう。CM21aは、ホスト11aとのインタフェース制御をおこなうCA25aと、ホスト11bとのインタフェース制御をおこなうCA25bとを備える。なお、図示するCA25は、CA25aとCA25bの2つであるが、1つであってもよいし3つ以上であってもよい。
なお、CM21bについては、CM21aと同様のため説明を省略する。
以上のようなハードウェア構成によって、第2の実施形態のCM21(ディスクアレイ装置12)の処理機能を実現することができる。なお、第1の実施形態に示したストレージ制御装置1も、図示したCM21と同様のハードウェア構成により実現することができる。
CM21(ディスクアレイ装置12)は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。CM21に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、CM21に実行させるプログラムを不揮発性メモリに格納しておくことができる。プロセッサ22は、不揮発性メモリ内のプログラムの少なくとも一部をメモリ23にロードし、プログラムを実行する。またCM21に実行させるプログラムを、図示しない光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。メモリ装置は、図示しない入出力インタフェースあるいは機器接続インタフェースとの通信機能を搭載した記録媒体である。たとえば、メモリ装置は、メモリリーダライタによりメモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなうことができる。メモリカードは、カード型の記録媒体である。
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ22からの制御により、不揮発性メモリにインストールされた後、実行可能となる。またプロセッサ22が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、第2の実施形態のディスクエンクロージャについて図3を用いて説明する。図3は、第2の実施形態のディスクエンクロージャの一例を示す図である。
DE30は、複数のSSD31を含む。たとえば、図示するDE30は、SSD311,312,313,・・・,319,・・・を含む。複数のSSD31は、グループを構成する。たとえば、グループ50,51,52は、それぞれRAID5を構成する。グループ50は、SSD311,312,315,316を含む。グループ51は、SSD313,314,317,318を含む。グループ52は、SSD315,316,317,318を含む。SSD31は、SSD311,312,313,314のようにただ1つのグループに属するものであってもよいし、SSD315,316,317,318のように2以上のグループに属するものであってもよい。また、SSD31は、SSD319のようにいずれのグループに属さないものがあってもよい。
次に、第2の実施形態のコントローラモジュールの機能構成について図4を用いて説明する。図4は、第2の実施形態のコントローラモジュールの機能構成の一例を示す図である。
CM21は、キャッシュ制御部60と、RAID制御部70と、デバイス制御部80を含む。キャッシュ制御部60は、キャッシュ制御をおこなう。RAID制御部70は、RAID制御をおこなう。デバイス制御部80は、SSD31のアクセス制御をおこなう。
なお、キャッシュ制御部60とRAID制御部70は、ホスト11とディスクアレイ装置12との橋渡しをおこなうインタフェースとして機能し、フロントエンドに相当する。また、デバイス制御部80は、キャッシュメモリとSSD31との橋渡しをおこなうインタフェースとして機能し、バックエンドに相当する。
次に、第2の実施形態のキャッシュ制御部60がおこなうライトバックスケジュールの概要について図5を用いて説明する。図5は、第2の実施形態のライトバックスケジュールの一例を示す図である。
キャッシュ制御部60は、ホスト11からのライトコマンドを受け付けてキャッシュメモリ上にデータを書き込み、ホスト11に対して完了応答をおこなう。キャッシュ制御部60は、キャッシュメモリ上のダーティデータを所定単位(たとえば、ブロック単位)でまとめたライトバックを、RAIDグループを構成するSSD31に対して発行する。たとえば、キャッシュ制御部60は、ライトバックC11から順に、ライトバックC12、・・・、ライトバックC21、ライトバックC22、ライトバックC23を発行する。
キャッシュ制御部60は、原則として、発行したライトバックをライトバックキュー61にエンキューする。ただし、RAIDグループを構成するSSD31のうちに過負荷状態のSSD31がある場合において、キャッシュ制御部60は、発行したライトバックをウエイトキュー62にエンキューする。たとえば、キャッシュ制御部60は、ライトバックC11から順に、ライトバックC12、・・・、ライトバックC21、ライトバックC22をライトバックキュー61にエンキューする。ここで、キャッシュ制御部60は、ライトバックC23に対応するRAIDグループを構成するSSD31のうちの少なくとも1つの過負荷状態の検出にしたがい、ライトバックC23をウエイトキュー62にエンキューする。
キャッシュ制御部60は、ウエイトキュー62に優先してライトバックキュー61からデキューをおこなう。したがって、ウエイトキュー62にエンキューされたライトバックは、ライトバックキュー61にエンキューされたライトバックより発行優先順位が低くなる。すなわち、キャッシュ制御部60は、過負荷状態が検出されたSSD31が属するRAIDグループに対してライトバックの発行を抑制する抑制制御をおこなう。
なお、キャッシュ制御部60がおこなう抑制制御の一例として、ライトバックキュー61またはウエイトキュー62への振分制御を開示するものである。たとえば、キャッシュ制御部60は、抑制対象のライトバックにフラグを付したり、発行時間を管理するなどしたりしても、抑制制御をおこなうことができる。
次に、第2の実施形態のスケジュールされたライトバックにもとづくSCSI(Small Computer System Interface)コマンド発行プロセスについて図6を用いて説明する。図6は、第2の実施形態のSCSIコマンド発行プロセスの一例を示す図である。
キャッシュ制御部60がライトバックキュー61またはウエイトキュー62からデキューしたライトバックは、RAID制御部70が管理するRAIDキュー71にエンキューされる。RAID制御部70は、RAIDキュー71からライトバックをデキューして、RAIDグループを構成するSSD31毎にSCSIコマンドを発行する。たとえば、キャッシュ制御部60は、グループ50(図3)に対するライトバックから、グループ50を構成するSSD311、SSD312、SSD315、およびSSD316にSCSIコマンドを発行する。
RAID制御部70は、SCSIコマンドを発行したすべてのSSD31からの処理完了通知を受けて、発行したライトバックの完了とみなす。RAID制御部70は、RAIDキュー71にデータがある場合、先に発行したライトバックの完了を待たずに、順次にライトバックをデキューしてSCSIコマンドを発行する。RAID制御部70は、SCSIコマンドを発行してから処理完了通知を受けるまでのライトバックを実行中として、その数を同時実行数として管理する。RAID制御部70は、同時実行数が別に定める同時実行数閾値の範囲内にあるように、RAIDキュー71からのライトバックの発行制御をおこなう。
デバイス制御部80は、SSD31毎のSCSIコマンドキュー81を管理する。デバイス制御部80は、SSD31にSCSIコマンドが発行された場合、対応するSCSIコマンドキュー81(81a,81b,81c,81d)にSCSIコマンドをエンキューする。SSD31は、対応するSCSIコマンドキュー81から順次にSCSIコマンドをデキューして処理する。
このとき、SSD31においてガベージコレクションが実行中である場合など、SSD31が過負荷状態であるとき、対応するSCSIコマンドキュー81にキューイングされているSCSIコマンド数が増大する。すなわち、SCSIコマンドキュー81にキューイングされているSCSIコマンド数は、SSD31の負荷状態を表すとみなすことができる。したがって、SCSIコマンドキュー81にキューイングされているSCSIコマンド数が所定の閾値を超える場合に、対応するSSD31は、過負荷状態であるとすることができる。
SSD31の過負荷状態は、SCSIコマンドの完了の通知を遅延させる。SCSIコマンドの完了の通知の遅延は、ライトバックの完了の遅延となり、同時実行数が大きくなる原因となる。同時実行数が同時実行数閾値を超えると、RAID制御部70は、新たなライトバックの実行ができなくなる。したがって、ディスクアレイ装置12は、過負荷状態のSSD31に対してSCSIコマンドを発行すると、ディスクアレイ装置12の性能低下を惹起することが起こり得る。そのため、ディスクアレイ装置12は、過負荷状態のSSD31を検出して、過負荷状態のSSD31が属するRAIDグループへのライトバックを抑制する。これにより、ディスクアレイ装置12は、SSD31の過負荷によるディスクアレイ装置12の性能低下を抑制している。
次に、第2の実施形態のライトバックスケジュール処理について図7を用いて説明する。図7は、第2の実施形態のライトバックスケジュール処理のフローチャートを示す図である。
ライトバックスケジュール処理は、ライトバックのスケジューリングをおこなう処理である。ライトバックスケジュール処理は、キャッシュメモリ(ライトバックキャッシュ)上のダーティデータにもとづいて発行するライトバックを、ライトバックキュー61またはウエイトキュー62にエンキューする処理である。すなわち、ライトバックスケジュール処理は、キャッシュメモリ上にライトバックを発行可能なダーティデータがある場合に、CM21(キャッシュ制御部60、およびRAID制御部70)によって実行される。
[ステップS11]キャッシュ制御部60は、フロントエンド負荷検出処理を実行する。フロントエンド負荷検出処理は、フロントエンドの過負荷を検出する処理である。フロントエンド負荷検出処理の詳細は、図8を用いて後で説明する。フロントエンド負荷検出処理を実行するキャッシュ制御部60は、フロントエンド負荷検出部(制御部負荷検出部)として機能する。
[ステップS12]キャッシュ制御部60は、フロントエンドの過負荷を検出したか否かを判定する。キャッシュ制御部60は、フロントエンドの過負荷を検出した場合にステップS13にすすみ、フロントエンドの過負荷を検出しない場合にステップS16にすすむ。
[ステップS13]RAID制御部70は、過負荷ディスク検出処理を実行する。過負荷ディスク検出処理は、ライトバックに対応するRAIDグループを構成するSSD31の過負荷状態を検出する処理である。過負荷ディスク検出処理の詳細は、図9を用いて後で説明する。
[ステップS14]キャッシュ制御部60は、過負荷ディスク(過負荷状態のSSD31)を検出したか否かを判定する。キャッシュ制御部60は、過負荷ディスクを検出した場合にステップS15にすすみ、過負荷ディスクを検出しない場合にステップS16にすすむ。
[ステップS15]キャッシュ制御部60は、キャッシュメモリ上のダーティデータにもとづいて発行するライトバックをウエイトキュー62にエンキューする。すなわち、ウエイトキュー62にエンキューされるライトバックの発行は、ライトバックキュー61にエンキューされた場合と比較して抑制される。キャッシュ制御部60は、ライトバックをウエイトキュー62にエンキューした後、ライトバックスケジュール処理を終了する。
[ステップS16]キャッシュ制御部60は、キャッシュメモリ上のダーティデータにもとづいて発行するライトバックをライトバックキュー61にエンキューする。すなわち、ライトバックキュー61にエンキューされるライトバックの発行は、ウエイトキュー62にエンキューされた場合と比較して優先される。キャッシュ制御部60は、ライトバックをライトバックキュー61にエンキューした後、ライトバックスケジュール処理を終了する。
このように、キャッシュ制御部60は、フロントエンドの過負荷を検出していない場合には、ライトバックをウエイトキュー62にエンキューすることなく、ライトバックキュー61にエンキューする。これは、フロントエンドの負荷が軽い状態において、ライトバックの発行を抑制して得られる性能低下の抑制効果が、ライトバックの発行の抑制にかかるオーバヘッドと比較して十分でないことによる。言い換えれば、フロントエンドの負荷が過大な状態において、ディスクアレイ装置12は、ライトバックの発行の抑制にかかるオーバヘッドがあっても、ライトバックの発行を抑制することにより十分な性能低下の抑制効果を得ることができる。なお、ディスクアレイ装置12は、ライトバックの発行の抑制にかかるオーバヘッドを無視してもよい。その場合、キャッシュ制御部60は、フロントエンドの負荷状態にかかわらず、過負荷ディスクの検出状態によって、ライトバックキュー61またはウエイトキュー62にライトバックをエンキューすればよい。
また、キャッシュ制御部60は、過負荷ディスクの検出状態によって、ライトバックキュー61またはウエイトキュー62にライトバックをエンキューするので、過負荷状態のSSD31が属するRAIDグループに対してライトバックの発行を抑制できる。したがって、ディスクアレイ装置12は、過負荷状態のSSD31が属するRAIDグループのライトバック完了通知が遅延する状態を抑制することができる。これにより、ディスクアレイ装置12は、ライトバックの同時実行数が過負荷ディスクによって制限される状態を抑制できる。すなわち、ディスクアレイ装置12は、過負荷ディスクによるディスクアレイ装置12の性能低下を抑制することができる。
次に、第2の実施形態のフロントエンド負荷検出処理について図8を用いて説明する。図8は、第2の実施形態のフロントエンド負荷検出処理のフローチャートを示す図である。
フロントエンド負荷検出処理は、フロントエンドの過負荷を検出する処理である。フロントエンド負荷検出処理は、ライトバックスケジュール処理のステップS11でキャッシュ制御部60およびRAID制御部70により実行される。
[ステップS21]キャッシュ制御部60は、対象CMのライトバックの同時実行数を取得する。対象CMは、キャッシュ制御部60が動作するCM21である。
[ステップS22]キャッシュ制御部60は、取得した対象CMのライトバックの同時実行数とCM閾値とを比較し、同時実行数がCM閾値を超えるか否かを判定する。CM閾値は、CM単位の過負荷をフロントエンドの過負荷として検出するための閾値である。CM閾値は、あらかじめ設定されるものであってもよいし、システム環境に応じて、あるいは運用や時間に応じて設定変更されるものであってもよい。キャッシュ制御部60は、同時実行数がCM閾値を超えない場合にステップS23にすすむ。一方、キャッシュ制御部60は、同時実行数がCM閾値を超える場合に、フロントエンドの過負荷を検出したとしてステップS25にすすむ。
[ステップS23]RAID制御部70は、対象RAIDのライトバックの同時実行数を取得する。対象RAIDは、ライトバックの対象となるRAIDグループである。対象RAIDは、複数のCM21において同時に実行されている場合があるので、取得する同時実行数は、複数のCM21における対象RAIDの同時実行数が合算された値である。
[ステップS24]RAID制御部70は、取得した対象RAIDのライトバックの同時実行数とRAID閾値とを比較し、同時実行数がRAID閾値を超えるか否かを判定する。RAID閾値は、RAIDグループ単位の過負荷をフロントエンドの過負荷として検出するための閾値である。RAID閾値は、あらかじめ設定されるものであってもよいし、システム環境に応じて、あるいは運用や時間に応じて設定変更されるものであってもよい。キャッシュ制御部60は、RAID制御部70の判定結果を受けて、同時実行数がRAID閾値を超える場合に、フロントエンドの過負荷を検出したとしてステップS25にすすむ。一方、キャッシュ制御部60は、RAID制御部70の判定結果を受けて、同時実行数がRAID閾値を超えない場合にステップS26にすすむ。
[ステップS25]キャッシュ制御部60は、フロントエンドの負荷状態を過負荷状態に設定して、フロントエンド負荷検出処理を終了する。
[ステップS26]キャッシュ制御部60は、フロントエンドの負荷状態を通常状態に設定して、フロントエンド負荷検出処理を終了する。
これにより、ディスクアレイ装置12は、RAIDグループ内部で、処理可能なSSD31の資源を有効に活用することができ、SSD31にかかる負荷の均等化を図ることができる。したがって、ディスクアレイ装置12は、RAIDグループに対するスループット性能の低下を緩和することができる。
また、ディスクアレイ装置12は、フロントエンドのCM21が過負荷の状態で、RAIDグループに対するスループット性能の低下を緩和することができる。すなわち、ディスクアレイ装置12は、過負荷状態のSSD31があるRAIDグループに対するライトバックの発行の抑制により、CM21毎のライトバックの同時発行数に余裕を持たせることができる。
なお、ディスクアレイ装置12は、フロントエンドの負荷検出を、CM単位とRAIDグループ単位でおこなうようにしたが、これに限らない。たとえば、ディスクアレイ装置12は、キャッシュメモリの使用状況、ホスト11からのコマンド受信状況、SSD31の動作状況などを用いてフロントエンドの負荷検出をおこなうようにしてもよい。また、ディスクアレイ装置12は、1つのパラメータ毎の閾値判定(OR条件)に限らず、2以上のパラメータの閾値判定(AND条件)によってフロントエンドの過負荷を検出するようにしてもよい。
次に、第2の実施形態の過負荷ディスク検出処理について図9を用いて説明する。図9は、第2の実施形態の過負荷ディスク検出処理のフローチャートを示す図である。
過負荷ディスク検出処理は、ライトバックに対応するRAIDグループを構成するSSD31の過負荷状態を検出する処理である。過負荷ディスク検出処理は、ライトバックスケジュール処理のステップS13でRAID制御部70により実行される。
[ステップS31]RAID制御部70は、ライトバックに対応するRAIDグループを構成するSSD31を対象SSDとして特定する。
[ステップS32]RAID制御部70は、ビジー判定閾値を取得する。ビジー判定閾値は、対象SSDがビジーであるか否かの判定に用いる閾値である。
[ステップS33]RAID制御部70は、対象SSDのキューイング状況、すなわち、SCSIコマンドキュー81にキューイングされているSCSIコマンド数を取得する。
[ステップS34]RAID制御部70は、対象SSDのSCSIコマンドキュー81にキューイングされているSCSIコマンド数とビジー判定閾値とを比較し、SCSIコマンド数がビジー判定閾値を超える場合に対象SSDがビジーであると判定する。キャッシュ制御部60は、対象SSDがビジーでない場合にステップS36にすすむ。一方、RAID制御部70は、対象SSDがビジーである場合に、すなわち対象SSDのうちの1つについて過負荷状態を検出した場合にステップS35にすすむ。
[ステップS35]RAID制御部70は、ライトバックに対応するRAIDグループを構成するSSDの負荷状態を過負荷状態に設定し、過負荷ディスク検出処理を終了する。
[ステップS36]RAID制御部70は、すべての対象SSDについてビジー判定をおこなったか否かを判定する。RAID制御部70は、すべての対象SSDについてビジー判定をおこなっていない場合にステップS33にすすみ、RAIDグループを構成する他のSSD31についてのキューイング状況の取得をおこなう。一方、RAID制御部70は、すべての対象SSDについてビジー判定をおこなっている場合、すなわちすべての対象SSDについて過負荷状態を検出できなかった場合にステップS37にすすむ。
[ステップS37]RAID制御部70は、ライトバックに対応するRAIDグループを構成するSSDの負荷状態を通常状態に設定し、過負荷ディスク検出処理を終了する。
このようにして、ディスクアレイ装置12は、ライトバックに対応するRAIDグループを構成するSSD31の過負荷状態を検出することができる。
次に、第2の実施形態のライトバックデキュー処理について図10を用いて説明する。図10は、第2の実施形態のライトバックデキュー処理のフローチャートを示す図である。
ライトバックデキュー処理は、ライトバックキュー61またはウエイトキュー62にライトバックをデキューして、RAIDキュー71にエンキューする処理である。ライトバックデキュー処理は、RAID制御部70により実行される。
[ステップS41]RAID制御部70は、ライトバックキュー61にデータ(ライトバック)があるか否かを判定する。RAID制御部70は、ライトバックキュー61にデータがある場合にステップS42にすすみ、ライトバックキュー61にデータがない場合にステップS43にすすむ。
[ステップS42]RAID制御部70は、ライトバックキュー61からデータをデキューする。したがって、RAID制御部70は、ライトバックキュー61にデータがある場合に、ウエイトキュー62に優先してデータをデキューする。
[ステップS43]RAID制御部70は、ウエイトキュー62にデータ(ライトバック)があるか否かを判定する。RAID制御部70は、ウエイトキュー62にデータがある場合にステップS44にすすみ、ウエイトキュー62にデータがない場合にライトバックデキュー処理を終了する。
[ステップS44]RAID制御部70は、ウエイトキュー62からデータをデキューする。
[ステップS45]RAID制御部70は、ライトバックキュー61またはウエイトキュー62からデキューしたデータをRAIDキュー71にエンキューして、ライトバックデキュー処理を終了する。
次に、第2の実施形態の流量制御処理について図11を用いて説明する。図11は、第2の実施形態の流量制御処理のフローチャートを示す図である。
流量制御処理は、ライトバックの同時実行数(流量)を制御する処理である。流量制御処理は、RAID制御部70により実行される。
[ステップS51]RAID制御部70は、RAIDキュー71にデータ(ライトバック)があるか否かを判定する。RAID制御部70は、RAIDキュー71にデータがある場合にステップS52にすすみ、RAIDキュー71にデータがない場合にステップS62にすすむ。
[ステップS52]RAID制御部70は、同時実行数閾値を取得する。同時実行数閾値は、ライトバックの同時実行数の制御に用いる閾値である。
[ステップS53]RAID制御部70は、ライトバックの同時実行数と、同時実行数閾値とを比較し、同時実行数が同時実行数閾値より小さい場合にステップS54にすすみ、同時実行数が同時実行数閾値より小さくない場合にステップS62にすすむ。
[ステップS54]RAID制御部70は、対象SSDのキューイング状況、すなわち、SCSIコマンドキュー81にキューイングされているSCSIコマンド数を取得する。
[ステップS55]RAID制御部70は、対象SSDのSCSIコマンドキュー81にキューイングされているSCSIコマンド数とSSD同時実行数閾値とを比較する。RAID制御部70は、SCSIコマンド数がSSD同時実行数閾値を超える対象SSDがある場合にステップS62にすすみ、SCSIコマンド数がSSD同時実行数閾値を超える対象SSDがない場合にステップS56にすすむ。なお、SSD同時実行数閾値は、対象SSDのキューイング状況に応じてライトバックの同時実行数を抑制するための閾値である。SSD同時実行数閾値は、あらかじめ設定されるものであってもよいし、システム環境に応じて、あるいは運用や時間に応じて設定変更されるものであってもよい。
[ステップS56]RAID制御部70は、RAIDキュー71からデータ(ライトバック)をデキューする。
[ステップS57]RAID制御部70は、ライトバックの同時実行数をインクリメントする。
[ステップS58]RAID制御部70は、ライトバックに対応するRAIDグループを構成するディスク(SSD31)を指定する。
[ステップS59]RAID制御部70は、ライトバックに対応する書込データのパリティデータを生成する。
[ステップS60]RAID制御部70は、ライトバックに対応する書込データのSCSIコマンドを生成する。
[ステップS61]RAID制御部70は、RAIDグループを構成するディスクのそれぞれに対して、書込データまたはパリティデータの書き込みを指示するSCSIコマンドを発行する。発行されたSCSIコマンドは、デバイス制御部80によって対応するSCSIコマンドキュー81にキューイングされる。
[ステップS62]RAID制御部70は、ライトバックの処理完了通知を受信したか否かを判定する。RAID制御部70は、ライトバックの処理完了通知を受信した場合にステップS63にすすみ、ライトバックの処理完了通知を受信しない場合にステップS51にすすむ。
[ステップS63]RAID制御部70は、ライトバックの同時実行数をデクリメントしてステップS51にすすむ。
このように、RAID制御部70は、ライトバックの発行により同時実行数をインクリメントし、ライトバックの処理完了通知の受信により同時実行数をデクリメントすることでライトバックの同時実行数を管理する。
また、RAID制御部70は、対象SSDのキューイング状況に応じてライトバックの同時実行数を抑制することで、SCSIコマンドキュー81にデータ(SCSIコマンド)が溜まりやすい状況を生成できる。対象SSDのキューイング状況に応じたライトバックの同時実行数の抑制は、同時実行数閾値よりもSSD同時実行数閾値を小さくすればよい。ディスクアレイ装置12は、SCSIコマンドキュー81にデータを溜まりやすくすることで、対象SSDの早期の過負荷(たとえば、ガベージコレクションの実行による処理遅延)を検出することができる。これにより、ディスクアレイ装置12は、過負荷ディスクによるディスクアレイ装置12の性能低下を抑制することができる。
[第3の実施形態]
次に、同時実行数閾値の更新をおこなう第3の実施形態について説明する。第3の実施形態のディスクアレイ装置12は、RAID毎の統計情報にもとづいて同時実行数閾値の更新をおこなう。
まず、第3の実施形態のRAID毎統計情報生成処理について図12および図13を用いて説明する。図12は、第3の実施形態のRAID毎統計情報生成処理のフローチャートを示す図である。RAID毎統計情報生成処理は、RAID毎の統計情報を生成する処理である。RAID毎統計情報生成処理は、CM21が実行する処理である。CM21は、統計情報を生成する統計情報生成部として機能する。
[ステップS71]CM21は、単位時間の経過を判定する。CM21は、単位時間が経過している場合にステップS72にすすみ、単位時間が経過していない場合に単位時間の経過を待つ。単位時間は、統計情報の集計単位となる時間(たとえば、10分)であり、あらかじめ任意の時間が設定される。
[ステップS72]CM21は、統計情報の生成対象となるRAIDグループ(対象RAID)を特定する。
ここで、RAID毎統計情報テーブルについて図13を用いて説明する。図13は、第3の実施形態のRAID毎統計情報テーブルの一例を示す図である。
統計情報テーブルは、統計情報の生成対象となるRAIDグループ毎に用意される。RAID毎統計情報テーブル200は、RAIDグループ毎に用意される統計情報テーブルの1つである。RAID毎統計情報テーブル200は、RAIDグループ「#1」の単位時間毎の統計情報を記録する。なお、「#1」は、RAIDグループを一意に識別可能な識別情報である。
RAID毎統計情報テーブル200は、単位時間毎の統計情報として、ライトバック数、時間積算値、平均値を記録する。ライトバック数は、対象RAIDに対して単位時間に発行したライトバック数である。時間積算値は、単位時間から所定時間の範囲におけるライトバック数の積算値(合計値)である。所定時間は、単位時間に積算数(積算に用いる単位時間数)を乗じた時間であり、たとえば、単位時間の10倍である。平均値は、時間積算値を積算数で除した値である。
たとえば、単位時間「tn1」は、ライトバック数「nn1」であり、時間積算値「sn1」であり、平均値「an1」である。時間積算値「sn1」は、単位時間「tn1」のライトバック数「nn1」を含む過去10単位時間分のライトバック数の積算値である。平均値「an1」は、単位時間「tn1」のライトバック数「nn1」を含む過去10単位時間分のライトバック数の平均値である。
なお、統計情報は、これに限らない。あらかじめ設定した時間帯毎の統計情報を収集するようにしてもよい。ディスクアレイ装置12にかかる負荷は、日中に高く夜間に下がるなど、用途によって負荷が高くなる時間帯が異なる場合があり、ディスクアレイ装置12にかかる負荷の内容や性質を把握可能な項目の収集、および収集方法を採用することができる。たとえば、ディスクアレイ装置12は、1日を3つの時間帯(0時から8時、8時から16時、16時から24時など)に分割し、時間帯毎の統計情報を取得してもよい。また、統計情報の取得単位は、1日の時間帯に限らず、曜日、月、季節などの区分帯とすることもできる。
再び、RAID毎統計情報生成処理の説明に戻る。
[ステップS73]CM21は、対象RAIDの統計情報テーブルに単位時間毎のライトバック数を記録する。たとえば、CM21は、単位時間「tn1」においてRAIDグループ「#1」のライトバック数「nn1」をRAID毎統計情報テーブル200に記録する。
[ステップS74]CM21は、対象RAIDの統計情報を算出する。たとえば、CM21は、単位時間「tn1」においてRAIDグループ「#1」の統計情報として、単位時間「tn1」時点の時間積算値「sn1」および平均値「an1」を算出する。
[ステップS75]CM21は、対象RAIDの統計情報テーブルに統計情報を記録する。たとえば、CM21は、単位時間「tn1」におけるRAIDグループ「#1」の統計情報として、時間積算値「sn1」および平均値「an1」を記録する。
[ステップS76]CM21は、対象RAIDのすべてを特定したか否かを判定する。CM21は、対象RAIDのすべてを特定していない場合にステップS72にすすむ。一方、CM21は、対象RAIDのすべてを特定している場合、すなわち、統計情報の生成対象となっているすべてのRAIDグループについて統計情報テーブルの更新(統計情報の生成と記録)をおこなっている場合に、RAID毎統計情報生成処理を終了する。
次に、第3の実施形態の同時実行数閾値更新処理について図14を用いて説明する。図14は、第3の実施形態の同時実行数閾値更新処理のフローチャートを示す図である。
同時実行数閾値更新処理は、RAID毎統計情報生成処理が生成した統計情報にもとづいて、同時実行数閾値およびSSD同時実行数閾値を更新する処理である。同時実行数閾値更新処理は、CM21が実行する処理である。CM21は、同時実行数閾値およびSSD同時実行数閾値を更新する閾値更新部として機能する。
[ステップS81]CM21は、同時実行数閾値およびSSD同時実行数閾値の更新条件の成立を判定する。CM21は、同時実行数閾値およびSSD同時実行数閾値の更新条件が成立している場合にステップS82にすすみ、更新条件が不成立の場合に更新条件の成立を待つ。更新条件は、任意の条件を設定可能である。たとえば、更新条件は、所定の時間、あるいは所定時間の経過、統計情報の変動などとすることができる。
[ステップS82]CM21は、同時実行数閾値およびSSD同時実行数閾値の更新対象となるRAIDグループ(対象RAID)を特定する。
[ステップS83]CM21は、対象RAIDの統計情報テーブルから統計情報を取得する。
[ステップS84]CM21は、統計情報閾値対応テーブルを参照して、対象RAIDの統計情報テーブルから同時実行数閾値を取得し、取得した同時実行数閾値で同時実行数閾値を更新する。ここで、統計情報閾値対応テーブルについて図15を用いて説明する。図15は、第3の実施形態の統計情報閾値対応テーブルの一例を示す図である。
統計情報閾値対応テーブル210は、対象RAIDの統計情報に対応する同時実行数閾値およびSSD同時実行数閾値を定義するテーブルデータである。
統計情報閾値対応テーブル210は、統計情報として時間積算値と平均値を見出しにして、統計情報にもとづいて適切とされる同時実行数閾値およびSSD同時実行数閾値を定義する。たとえば、時間積算値「VS1」以下、あるいは平均値「VA1」以下のとき、同時実行数閾値「ET1」、およびSSD同時実行数閾値「SET11」であることを示す。したがって、CM21は、統計情報にもとづいて、同時実行数閾値およびSSD同時実行数閾値を適切とされる値に更新することができる。
なお、統計情報閾値対応テーブル210は、共通のものを用いてもよいし、RAIDグループ毎に異なるものを用いてもよい。RAIDグループ毎に異なる統計情報閾値対応テーブル210を用いることにより、ディスクアレイ装置12は、RAIDグループのSSD31の構成や利用環境に応じた同時実行数閾値およびSSD同時実行数閾値を用いることができる。これにより、ディスクアレイ装置12は、過負荷状態にあるSSD31を原因とするディスクアレイ装置12の性能低下をより好適に抑制することができる。
再び、RAID毎統計情報生成処理の説明に戻る。
[ステップS85]CM21は、統計情報閾値対応テーブル210を参照して、対象RAIDの統計情報テーブルから同時実行数閾値を取得し、取得したSSD同時実行数閾値でSSD同時実行数閾値を更新する。
[ステップS86]CM21は、対象RAIDのすべてを特定したか否かを判定する。CM21は、対象RAIDのすべてを特定していない場合にステップS82にすすむ。一方、CM21は、対象RAIDのすべてを特定している場合、すなわち、同時実行数閾値で同時実行数閾値の更新対象となっているすべてのRAIDグループについて同時実行数閾値およびSSD同時実行数閾値の更新をおこなっている場合に、同時実行数閾値更新処理を終了する。
なお、CM21は、RAIDグループについて同時実行数閾値およびSSD同時実行数閾値の更新をおこなうようにしたが、いずれか一方について更新をおこなうようにしてもよい。
[第4の実施形態]
次に、同時実行数閾値およびSSD同時実行数閾値の更新をおこなう第4の実施形態について説明する。第4の実施形態のディスクアレイ装置12は、CM毎の統計情報にもとづいて同時実行数閾値の更新をおこなう。
まず、第4の実施形態のCM毎統計情報生成処理について図16および図17を用いて説明する。図16は、第4の実施形態のCM毎統計情報生成処理のフローチャートを示す図である。CM毎統計情報生成処理は、CM毎の統計情報を生成する処理である。CM毎統計情報生成処理は、CM21が実行する処理である。CM21は、統計情報を生成する統計情報生成部として機能する。
[ステップS91]CM21は、単位時間の経過を判定する。CM21は、単位時間が経過している場合にステップS92にすすみ、単位時間が経過していない場合に単位時間の経過を待つ。単位時間は、統計情報の集計単位となる時間(たとえば、10分)であり、あらかじめ任意の時間が設定される。
ここで、CM毎統計情報テーブルについて図17を用いて説明する。図17は、第4の実施形態のCM毎統計情報テーブルの一例を示す図である。
統計情報テーブルは、統計情報の生成対象となるCM毎に用意される。CM毎統計情報テーブル230は、CM毎に用意される統計情報テーブルの1つである。CM毎統計情報テーブル230は、CM「#1」の単位時間毎の統計情報を記録する。なお、「#1」は、CMを一意に識別可能な識別情報である。
CM毎統計情報テーブル230は、単位時間毎の統計情報として、ライトバック数、時間積算値、平均値を記録する。ライトバック数は、対象RAIDに対して単位時間に発行したライトバック数である。時間積算値は、単位時間から所定時間の範囲におけるライトバック数の積算値(合計値)である。所定時間は、単位時間に積算数(積算に用いる単位時間数)を乗じた時間であり、たとえば、単位時間の10倍である。平均値は、時間積算値を積算数で除した値である。
たとえば、単位時間「tn1」は、ライトバック数「nn1」であり、時間積算値「sn1」であり、平均値「an1」である。時間積算値「sn1」は、単位時間「tn1」のライトバック数「nn1」を含む過去10単位時間分のライトバック数の積算値である。平均値「an1」は、単位時間「tn1」のライトバック数「nn1」を含む過去10単位時間分のライトバック数の平均値である。
なお、統計情報はこれに限らない。あらかじめ設定した時間帯毎の統計情報を収集するようにしてもよい。ディスクアレイ装置12にかかる負荷は、日中に高く夜間に下がるなど、用途によって負荷が高くなる時間帯が異なる場合があり、ディスクアレイ装置12にかかる負荷の内容や性質を把握可能な項目の収集、および収集方法を採用することができる。たとえば、ディスクアレイ装置12は、1日を3つの時間帯(0時から8時、8時から16時、16時から24時など)に分割し、時間帯毎の統計情報を取得してもよい。また、統計情報の取得単位は、1日の時間帯に限らず、曜日、月、季節などの区分帯とすることもできる。
再び、CM毎統計情報生成処理の説明に戻る。
[ステップS92]CM21は、対象CMの統計情報テーブルに単位時間毎のライトバック数を記録する。たとえば、CM21は、単位時間「tn1」においてCM「#1」のライトバック数「nn1」をCM毎統計情報テーブル230に記録する。
[ステップS93]CM21は、対象CMの統計情報を算出する。たとえば、CM21は、単位時間「tn1」においてCM「#1」の統計情報として、単位時間「tn1」時点の時間積算値「sn1」および平均値「an1」を算出する。
[ステップS94]CM21は、対象CMの統計情報テーブルに統計情報を記録する。たとえば、CM21は、単位時間「tn1」におけるCM「#1」の統計情報として、時間積算値「sn1」および平均値「an1」を記録してCM毎統計情報生成処理を終了する。
次に、第4の実施形態のCM毎同時実行数閾値更新処理について図18を用いて説明する。図18は、第4の実施形態のCM毎同時実行数閾値更新処理のフローチャートを示す図である。
CM毎同時実行数閾値更新処理は、CM毎統計情報生成処理が生成した統計情報にもとづいて、同時実行数閾値およびSSD同時実行数閾値を更新する処理である。CM毎同時実行数閾値更新処理は、CM21が実行する処理である。CM21は、同時実行数閾値およびSSD同時実行数閾値を更新する閾値更新部として機能する。
[ステップS101]CM21は、同時実行数閾値およびSSD同時実行数閾値の更新条件の成立を判定する。CM21は、同時実行数閾値およびSSD同時実行数閾値の更新条件が成立している場合にステップS102にすすみ、更新条件が不成立の場合に更新条件の成立を待つ。更新条件は、任意の条件を設定可能である。たとえば、更新条件は、所定の時間、あるいは所定時間の経過、統計情報の変動などとすることができる。
[ステップS102]CM21は、対象CMの統計情報テーブルから統計情報を取得する。
[ステップS103]CM21は、統計情報閾値対応テーブルを参照して、対象CMの統計情報テーブルから同時実行数閾値を取得して、取得した同時実行数閾値で同時実行数閾値を更新する。なお、第4の実施形態の統計情報閾値対応テーブルは、図15を用いて説明した第3の実施形態の統計情報閾値対応テーブル210と同様である。
[ステップS104]CM21は、統計情報閾値対応テーブルを参照して、対象CMの統計情報テーブルからSSD同時実行数閾値を取得する。CM21は、取得したSSD同時実行数閾値でSSD同時実行数閾値を更新し、CM毎同時実行数閾値更新処理を終了する。
なお、CM21は、RAIDグループについて同時実行数閾値およびSSD同時実行数閾値の更新をおこなうようにしたが、いずれか一方について更新をおこなうようにしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置1、ディスクアレイ装置12(CM21)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置において、
前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する処理要求制御部と、
前記複数のソリッドステートドライブのそれぞれの負荷を検出するデバイス負荷検出部と、を備え、
前記処理要求制御部は、所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制する、
ことを特徴とするストレージ制御装置。
(付記2) 前記処理要求制御部の所定の負荷を検出する制御部負荷検出部を備え、
前記処理要求制御部は、前記所定の負荷を検出した場合に、前記ライトバックの処理要求の発行を抑制することを特徴とする付記1記載のストレージ制御装置。
(付記3) 前記制御部負荷検出部は、前記グループ毎の前記ライトバックの処理要求の同時発行数が第1の閾値を超えた場合に、前記所定の負荷を検出したとすることを特徴とする付記2記載のストレージ制御装置。
(付記4) 前記グループは、RAIDグループであることを特徴とする付記3記載のストレージ制御装置。
(付記5) 前記デバイス負荷検出部は、前記ライトバックの処理要求の発行にもとづいて前記ソリッドステートドライブ毎に発行したコマンドの処理遅延の検出にもとづいて、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする付記1記載のストレージ制御装置。
(付記6) 前記デバイス負荷検出部は、前記ソリッドステートドライブ毎に発行した前記コマンドのうち未だ実行されていないコマンドの数が第2の閾値を超えた場合に、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする付記3記載のストレージ制御装置。
(付記7) 前記第2の閾値は、前記第1の閾値より小さいことを特徴とする付記6記載のストレージ制御装置。
(付記8) 前記ライトバックの処理要求の発行に関する統計情報を生成する統計情報生成部と、
前記統計情報にもとづいて前記第1の閾値または前記第2の閾値を更新する閾値更新部と、を備えることを特徴とする付記6記載のストレージ制御装置。
(付記9) 前記ストレージ制御装置は、前記ライトバックの処理要求の発行を分担する2以上の分担制御装置を備え、
前記制御部負荷検出部は、前記分担制御装置毎の前記ライトバックの処理要求の同時発行数が第3の閾値を超えた場合に、前記所定の負荷を検出したとすることを特徴とする付記2記載のストレージ制御装置。
(付記10) 前記デバイス負荷検出部は、前記ライトバックの処理要求の発行にもとづいて前記ソリッドステートドライブ毎に発行したコマンドの処理遅延の検出にもとづいて、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする付記9記載のストレージ制御装置。
(付記11) 前記デバイス負荷検出部は、前記ソリッドステートドライブ毎に発行した前記コマンドのうち未だ実行されていないコマンドの数が第2の閾値を超えた場合に、前記ソリッドステートドライブの過負荷を検出することを特徴とする付記10記載のストレージ制御装置。
(付記12) 前記ライトバックの処理要求の発行に関する統計情報を生成する統計情報生成部と、
前記統計情報にもとづいて前記第1の閾値または前記第2の閾値を更新する閾値更新部と、を備えることを特徴とする付記11記載のストレージ制御装置。
(付記13) 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置のストレージ制御プログラムにおいて、
コンピュータに、
前記複数のソリッドステートドライブのそれぞれの負荷を検出し、
所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制して、前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する、
処理を実行させることを特徴とするストレージ制御プログラム。
(付記14) 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置のストレージ制御方法において、
コンピュータが、
前記複数のソリッドステートドライブのそれぞれの負荷を検出し、
所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制して、前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する、
処理を実行することを特徴とするストレージ制御方法。
1 ストレージ制御装置
2a 処理要求制御部
2b デバイス負荷検出部
3 ホスト
4 ストレージ装置
5,50,51,52 グループ
6,31,311,312,313,314,315,316,317,318,319 SSD
7 ライトバックキャッシュ
8,8a,8b ライトバック
9 コマンド
10 ストレージシステム
11,11a,11b ホスト
12 ディスクアレイ装置
20 コントローラエンクロージャ(CE)
21,21a,21b コントローラモジュール(CM)
22 プロセッサ
23 メモリ
24,24a,24b ディスクアダプタ(DA)
25,25a,25b チャネルアダプタ(CA)
30,30a,30b ディスクエンクロージャ(DE)
60 キャッシュ制御部
61 ライトバックキュー
62 ウエイトキュー
70 RAID制御部
71 RAIDキュー
80 デバイス制御部
81,81a,81b,81c,81d SCSIコマンドキュー
200 RAID毎統計情報テーブル
210 統計情報閾値対応テーブル
230 CM毎統計情報テーブル

Claims (12)

  1. 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置において、
    前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する処理要求制御部と、
    前記複数のソリッドステートドライブのそれぞれの負荷を検出するデバイス負荷検出部と、を備え、
    前記処理要求制御部は、所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制する、
    ことを特徴とするストレージ制御装置。
  2. 前記処理要求制御部の所定の負荷を検出する制御部負荷検出部を備え、
    前記処理要求制御部は、前記所定の負荷を検出した場合に、前記ライトバックの処理要求の発行を抑制することを特徴とする請求項1記載のストレージ制御装置。
  3. 前記制御部負荷検出部は、前記グループ毎の前記ライトバックの処理要求の同時発行数が第1の閾値を超えた場合に、前記所定の負荷を検出したとすることを特徴とする請求項2記載のストレージ制御装置。
  4. 前記デバイス負荷検出部は、前記ライトバックの処理要求の発行にもとづいて前記ソリッドステートドライブ毎に発行したコマンドの処理遅延の検出にもとづいて、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする請求項1記載のストレージ制御装置。
  5. 前記デバイス負荷検出部は、前記ソリッドステートドライブ毎に発行した前記コマンドのうち未だ実行されていないコマンドの数が第2の閾値を超えた場合に、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする請求項3記載のストレージ制御装置。
  6. 前記ライトバックの処理要求の発行に関する統計情報を生成する統計情報生成部と、
    前記統計情報にもとづいて前記第1の閾値または前記第2の閾値を更新する閾値更新部と、を備えることを特徴とする請求項5記載のストレージ制御装置。
  7. 前記ストレージ制御装置は、前記ライトバックの処理要求の発行を分担する2以上の分担制御装置を備え、
    前記制御部負荷検出部は、前記分担制御装置毎の前記ライトバックの処理要求の同時発行数が第3の閾値を超えた場合に、前記所定の負荷を検出したとすることを特徴とする請求項2記載のストレージ制御装置。
  8. 前記デバイス負荷検出部は、前記ライトバックの処理要求の発行にもとづいて前記ソリッドステートドライブ毎に発行したコマンドの処理遅延の検出にもとづいて、前記ソリッドステートドライブの前記所定の負荷を検出することを特徴とする請求項7記載のストレージ制御装置。
  9. 前記デバイス負荷検出部は、前記ソリッドステートドライブ毎に発行した前記コマンドのうち未だ実行されていないコマンドの数が第2の閾値を超えた場合に、前記ソリッドステートドライブの過負荷を検出することを特徴とする請求項8記載のストレージ制御装置。
  10. 前記ライトバックの処理要求の発行に関する統計情報を生成する統計情報生成部と、
    前記統計情報にもとづいて前記第1の閾値または前記第2の閾値を更新する閾値更新部と、を備えることを特徴とする請求項9記載のストレージ制御装置。
  11. 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置のストレージ制御プログラムにおいて、
    コンピュータに、
    前記複数のソリッドステートドライブのそれぞれの負荷を検出し、
    所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制して、前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する、
    処理を実行させることを特徴とするストレージ制御プログラム。
  12. 複数のソリッドステートドライブを含むグループに対してライトバックキャッシュに記憶されたデータのライトバック制御をおこなうストレージ制御装置のストレージ制御方法において、
    コンピュータが、
    前記複数のソリッドステートドライブのそれぞれの負荷を検出し、
    所定の負荷を検出したソリッドステートドライブが属する前記グループ内の1または複数のソリッドステートドライブに対する前記ライトバックの処理要求の発行を抑制して、前記グループおよび前記複数のソリッドステートドライブに対するライトバックの処理要求の発行を制御する、
    処理を実行することを特徴とするストレージ制御方法。
JP2013252971A 2013-12-06 2013-12-06 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 Pending JP2015111334A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013252971A JP2015111334A (ja) 2013-12-06 2013-12-06 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US14/551,181 US9501406B2 (en) 2013-12-06 2014-11-24 Storage control apparatus and storage control method
EP14194678.0A EP2884396A1 (en) 2013-12-06 2014-11-25 Storage control apparatus, storage control program, and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013252971A JP2015111334A (ja) 2013-12-06 2013-12-06 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Publications (1)

Publication Number Publication Date
JP2015111334A true JP2015111334A (ja) 2015-06-18

Family

ID=51951714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013252971A Pending JP2015111334A (ja) 2013-12-06 2013-12-06 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Country Status (3)

Country Link
US (1) US9501406B2 (ja)
EP (1) EP2884396A1 (ja)
JP (1) JP2015111334A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049872A (ja) * 2015-09-03 2017-03-09 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
JP2018185584A (ja) * 2017-04-24 2018-11-22 富士通株式会社 ストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法
US10514849B2 (en) 2016-09-05 2019-12-24 Toshiba Memory Corporation Storage system including a plurality of networked storage nodes
WO2023162465A1 (ja) * 2022-02-24 2023-08-31 ソニーセミコンダクタソリューションズ株式会社 ライトバッファ制御回路

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445749B (zh) * 2015-05-12 2021-04-23 爱思开海力士有限公司 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
TWI611405B (zh) * 2015-11-25 2018-01-11 旺宏電子股份有限公司 將資料自記憶體寫回儲存裝置的方法及應用其的資料存取系統
JP2019074897A (ja) * 2017-10-16 2019-05-16 富士通株式会社 ストレージ制御装置、及びプログラム
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
US10418053B1 (en) * 2018-03-07 2019-09-17 Kabushiki Kaisha Toshiba Disk-drive with efficient command-reordering
CN108710686A (zh) * 2018-05-21 2018-10-26 北京五八信息技术有限公司 一种数据存储方法、装置、存储介质及终端
CN111124253B (zh) * 2018-10-30 2023-10-27 伊姆西Ip控股有限责任公司 管理存储设备的方法、装置和计算机程序产品
KR20210123555A (ko) * 2020-04-03 2021-10-14 에스케이하이닉스 주식회사 메모리 시스템
CN115016740B (zh) * 2022-07-14 2022-11-18 杭州优云科技有限公司 一种数据恢复方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121447A (ja) * 1993-09-27 1995-05-12 Toshiba Corp 負荷分散ページングシステム
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
JP2007004270A (ja) * 2005-06-21 2007-01-11 Fuji Xerox Co Ltd 情報処理装置及び情報処理方法
JP2009054050A (ja) * 2007-08-28 2009-03-12 Fujitsu Ltd Raid装置、raid装置の制御部およびraid装置のライトバック制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322068B2 (ja) 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
US8478945B2 (en) 2010-02-01 2013-07-02 International Business Machines Corporation Dynamic management of destage tasks in a storage controller
JP2011192240A (ja) 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
US8402226B1 (en) 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
JP5535128B2 (ja) 2010-12-16 2014-07-02 株式会社東芝 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121447A (ja) * 1993-09-27 1995-05-12 Toshiba Corp 負荷分散ページングシステム
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
JP2007004270A (ja) * 2005-06-21 2007-01-11 Fuji Xerox Co Ltd 情報処理装置及び情報処理方法
JP2009054050A (ja) * 2007-08-28 2009-03-12 Fujitsu Ltd Raid装置、raid装置の制御部およびraid装置のライトバック制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049872A (ja) * 2015-09-03 2017-03-09 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US10528468B2 (en) 2015-09-03 2020-01-07 Fujitsu Limited Storage controlling apparatus, computer-readable recording medium having storage controlling program stored therein, and storage controlling method
US10514849B2 (en) 2016-09-05 2019-12-24 Toshiba Memory Corporation Storage system including a plurality of networked storage nodes
JP2018185584A (ja) * 2017-04-24 2018-11-22 富士通株式会社 ストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法
WO2023162465A1 (ja) * 2022-02-24 2023-08-31 ソニーセミコンダクタソリューションズ株式会社 ライトバッファ制御回路

Also Published As

Publication number Publication date
US20150161043A1 (en) 2015-06-11
US9501406B2 (en) 2016-11-22
EP2884396A1 (en) 2015-06-17

Similar Documents

Publication Publication Date Title
US9501406B2 (en) Storage control apparatus and storage control method
US7293136B1 (en) Management of two-queue request structure for quality of service in disk storage systems
JP5958020B2 (ja) ストレージシステム
US11030107B2 (en) Storage class memory queue depth threshold adjustment
US7743216B2 (en) Predicting accesses to non-requested data
US20200174938A1 (en) Bypass storage class memory read cache based on a queue depth threshold
US9081686B2 (en) Coordinated hypervisor staging of I/O data for storage devices on external cache devices
CN105117180B (zh) 一种数据存储方法和装置以及固态硬盘
US20100274933A1 (en) Method and apparatus for reducing memory size and bandwidth
US20160210060A1 (en) Dynamic resource allocation within storage devices
US7281086B1 (en) Disk queue management for quality of service
JP6111575B2 (ja) ストレージ装置、内部処理制御方法および内部処理制御プログラム
JP2013511081A (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
US9658959B2 (en) Cache resource manager
JP2013257801A (ja) サーバコンピュータおよびドライブ制御装置
US7596670B2 (en) Restricting access to improve data availability
KR20170002866A (ko) 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법
Wang et al. Exploration and exploitation for buffer-controlled HDD-Writes for SSD-HDD hybrid storage server
CN104679589A (zh) 系统资源均衡调整方法及装置
JP5949224B2 (ja) ストレージ制御装置、該プログラム及び該方法
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
JP2017027301A (ja) ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法
US9727279B2 (en) Storage control apparatus controlling issuable number of requests and storage control method thereof
JP2017097466A (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US8364893B2 (en) RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170814

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171212