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

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

Info

Publication number
JP6476969B2
JP6476969B2 JP2015028397A JP2015028397A JP6476969B2 JP 6476969 B2 JP6476969 B2 JP 6476969B2 JP 2015028397 A JP2015028397 A JP 2015028397A JP 2015028397 A JP2015028397 A JP 2015028397A JP 6476969 B2 JP6476969 B2 JP 6476969B2
Authority
JP
Japan
Prior art keywords
write
command
rmw
storage
storage device
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.)
Expired - Fee Related
Application number
JP2015028397A
Other languages
English (en)
Other versions
JP2016151850A (ja
Inventor
経道 原田
経道 原田
政智 中村
政智 中村
惇 猪頭
惇 猪頭
秀夫 ▲高▼橋
秀夫 ▲高▼橋
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 JP2015028397A priority Critical patent/JP6476969B2/ja
Priority to US14/961,390 priority patent/US9910599B2/en
Publication of JP2016151850A publication Critical patent/JP2016151850A/ja
Application granted granted Critical
Publication of JP6476969B2 publication Critical patent/JP6476969B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

本発明はストレージ制御装置、制御プログラムおよび制御方法に関する。
現在、データの保存にストレージ装置が利用されている。ストレージ装置は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置を複数搭載して大容量の記憶領域を利用可能とする。ストレージ装置は、記憶装置に対するデータの書き込みや読み出しのアクセス制御を行うストレージ制御装置に接続される。ストレージ装置は、ストレージ制御装置を内蔵することもある。
ところで、記憶装置が内部の記憶媒体に対して実行する書き込み操作は、所定単位(例えば、物理セクタ単位)毎に行われる。所定単位に満たないデータを書き込む場合、記憶装置は、リードモディファイライト(Read Modify Write)と呼ばれる処理を実行する。記憶装置は、リードモディファイライトの処理に利用されるキャッシュを有する。
例えば、物理セクタ内の一部にデータを書き込むとき次の手順となる。記憶装置は、該当の物理セクタ内の全情報を、記憶装置が備えるキャッシュに読み出す(Read)。記憶装置は、キャッシュに読み出した情報のうち更新対象部分を更新する(Modify)。記憶装置は、キャッシュ内の更新後の情報を同物理セクタに書き戻す(Write)。
ここで、情報処理装置において、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と同実行主体をメディア制御部とした場合の処理速度とを計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする提案がある。
また、ホストコンピュータからのI/O(Input / Output)要求情報から選択条件を検出し、選択条件に基づき複数のリードモディファイライト処理方式の中から最適な処理方式を選択・実行する提案もある。
特開2010−33396号公報 特開平6−75709号公報
記憶装置によるリードモディファイライト用のキャッシュの空き容量が不足すると、書き込み処理に対する記憶装置の応答時間が悪化するおそれがある。そこで、記憶装置の応答性能が悪化する前に、記憶装置により実行されるリードモディファイライトを、ストレージ制御装置により代行する仕組みが問題となる。
例えば、記憶装置内部のキャッシュの使用量を記憶装置から取得して監視し、キャッシュの空き容量不足により応答性能が悪化する兆候を得ることが考えられる。ところが、キャッシュ機構の実装方法はベンダによって異なる上、ブラックボックス化されていることが多く、キャッシュの使用量を外部から直接参照することは難しい。
1つの側面では、本発明は、適切なタイミングでリードモディファイライトを代行できるストレージ制御装置、制御プログラムおよび制御方法を提供することを目的とする。
1つの態様では、ストレージ制御装置が提供される。ストレージ制御装置は、記憶部と受信部と制御部とを有する。記憶部は、記憶装置へのデータの書き込みのコマンドの書き込みサイズおよび頻度の組ごとに、記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでのコマンドの数を示す性能情報を記憶する。受信部は、記憶装置に対するデータの書き込みのコマンドを受信する。制御部は、受信部により所定時間内に受信されたコマンドの書き込みサイズと受信頻度とを判定し、判定した書き込みサイズと受信頻度と性能情報とに基づいて、コマンドの受信数の上限値を決定し、受信部によるコマンドの受信数が上限値に達すると、記憶装置によるリードモディファイライトによってキャッシュの空き容量が不足すると判定し、リードモディファイライトを自装置により実行する決定する。
また、1つの態様では、制御プログラムが提供される。この制御プログラムは、コンピュータに、記憶装置に対するデータの書き込みのコマンドを受信し、所定時間内に受信されたコマンドの書き込みサイズと受信頻度とを判定し、記憶装置へのデータの書き込みのコマンドの書き込みサイズおよび頻度の組ごとに、記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでのコマンドの数を示す性能情報と、判定した書き込みサイズと受信頻度とに基づいて、コマンドの受信数の上限値を決定し、コマンドの受信数が上限値に達すると、記憶装置によるリードモディファイライトによってキャッシュの空き容量が不足すると判定し、リードモディファイライトを当該コンピュータにより実行する決定する、処理を実行させる。
また、1つの態様では、制御方法が提供される。この制御方法では、コンピュータが、記憶装置に対するデータの書き込みのコマンドを受信し、所定時間内に受信されたコマンドの書き込みサイズと受信頻度とを判定し、記憶装置へのデータの書き込みのコマンドの書き込みサイズおよび頻度の組ごとに、記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでのコマンドの数を示す性能情報と、判定した書き込みサイズと受信頻度とに基づいて、コマンドの受信数の上限値を決定し、コマンドの受信数が上限値に達すると、記憶装置によるリードモディファイライトによってキャッシュの空き容量が不足すると判定し、リードモディファイライトを当該コンピュータにより実行する決定する。
1つの側面では、適切なタイミングでリードモディファイライトを代行できる。
第1の実施の形態のストレージ制御装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 ストレージ装置のハードウェア例を示す図である。 管理装置のハードウェア例を示す図である。 HDDの例を示す図である。 書き込みの例を示す図である。 RMWの例を示す図である。 書き込みの応答時間とIOPSとの関係の例を示す図である。 CMの機能例を示す図である。 RMW性能テーブルの例を示す図である。 RMW管理テーブルの例を示す図である。 測定処理の例を示すフローチャートである。 データ吐き出し時間の例を示す図である。 RMW切替処理(その1)の例を示すフローチャートである。 RMW切替処理(その2)の例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ制御装置を示す図である。ストレージ制御装置1は、記憶装置2および情報処理装置3に接続されている。記憶装置2は、例えばHDDである。情報処理装置3は、例えばクライアントコンピュータやサーバコンピュータである。ストレージ制御装置1と情報処理装置3とは、所定のケーブル(例えば、ファイバチャネルケーブル)により直接接続されてもよいし、SAN(Storage Area Network)やLAN(Local Area Network)などのネットワークを介して接続されてもよい。
ストレージ制御装置1は、記憶装置2に対するデータの書き込みや読み出しのコマンドを受信する。ストレージ制御装置1は、受信したコマンドに応じて、記憶装置2に対するデータの書き込みや読み出しを制御する。ストレージ制御装置1は、コントローラモジュールまたはコントローラと呼ばれることもある。
ストレージ制御装置1は、記憶装置2を含む複数の記憶装置を内蔵したストレージ装置と接続されてもよい。その場合も、ストレージ制御装置1は、ストレージ装置に内蔵された複数の記憶装置それぞれに対するデータの書き込みや読み出しを制御する。ストレージ制御装置1は、ストレージ装置に内蔵されてもよい。
記憶装置2は、記憶装置2内部の記憶媒体(例えば、HDDの磁気ディスク)にデータを書き込む際、リードモディファイライト処理を実行することがある。ここで、「リードモディファイライト」をRMW(Read Modify Write)と略記することがある。記憶装置2は、RMWに用いられるRMW用キャッシュ2a(例えば、記憶装置2内部の記憶媒体の一部領域など)およびRMWを実行する制御部2b(例えば、特定用途の電子回路など)を有する。制御部2bによるRMW用キャッシュ2aの使用状況はブラックボックス化されており、RMW用キャッシュ2aの最大容量や使用量を外部から直接参照することはできない。
ストレージ制御装置1は、受信部1a、制御部1bおよび記憶部1cを有する。受信部1aは、例えば通信用のインタフェースである。制御部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。制御部1bはプログラムを実行するプロセッサであってもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。記憶部1cは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDDやフラッシュメモリなどの不揮発性記憶装置でもよい。
受信部1aは、記憶装置2に対するデータの書き込みのコマンドや読み出しのコマンドを情報処理装置3から受信する。書き込みのコマンド(書き込みコマンドと称する)は、書き込み対象のデータや書き込み先のアドレスを示す情報を含む。書き込み対象のデータのサイズは、書き込みコマンドの書き込みサイズである。情報処理装置3がある期間に発行する書き込みコマンドには、特定の書き込みサイズ、頻度になるという傾向(アクセス傾向)がみられることが多い。例えば、情報処理装置3はデータ書き込みの際、そのときに情報処理装置3が実行しているソフトウェアの処理状況などに応じて、ある書き込みサイズの書き込みコマンドW1,W2,W3をある頻度で発行する。
制御部1bは、書き込みコマンドの書き込みサイズと受信頻度と受信数とに基づいて、記憶装置2のRMWに用いられるキャッシュ(RMW用キャッシュ2a)の使用状況を判定する。制御部1bは、判定結果に応じてRMWを自装置(ストレージ制御装置1)により実行するか否かを決定する。
例えば、制御部1bは、情報処理装置3から受信される書き込みコマンドW1,W2,W3の受信状況により、ある書き込みサイズの書き込みコマンドが所定の頻度で発行されているというアクセス傾向を得る。制御部1bは、当該アクセス傾向における書き込みコマンドを所定回数受信すると、RMW用キャッシュ2aに格納されているデータが増えており、RMW用キャッシュ2aの空き容量が今後不足する可能性が高いと判定する。
制御部1bは、例えば書き込みのアクセス傾向(書き込みサイズおよび頻度)に対する記憶装置2の性能情報を予め作成し、記憶部1cに格納しておいてもよい。より具体的には、制御部1bは、運用開始前の準備段階において、テーブルT1を事前に作成し、記憶部1cに格納しておいてもよい。テーブルT1は、書き込みサイズと頻度と応答時間が悪化する(例えば、応答時間を所定の閾値よりも増大させる)までのコマンド発行の回数との対応関係を示す性能情報である。応答時間が悪化するまでのコマンド発行の回数を、記憶装置2の性能として取得する理由は、書き込みの際の応答時間が悪化する場合、RMW用キャッシュ2aの空き容量不足が要因である可能性が高いからである。
なお、記憶装置2では、RMW用キャッシュ2aの空き容量に比較的余裕がある場合、応答時間はほぼ一定か、あるいは、データの書き込みサイズおよび書き込み頻度の増加に対して、比較的緩やかに増大する。RMW用キャッシュ2aが空き容量不足に陥ると、空き容量に比較的余裕がある場合の応答時間の増分(書き込みサイズおよび書き込み頻度に対する応答時間の増分)よりも大きな増分で、応答時間が増大することもある。このため、制御部1bは、記憶装置2の書き込みの応答時間の増分の変化に基づいて、応答時間が悪化したことを検出してもよい。
テーブルT1には、例えば書き込みサイズx1,頻度a1,回数b1という情報が登録されている。これは、書き込みサイズx1の書き込みコマンドを頻度a1で発行する場合、回数b1だけ発行したときに記憶装置2の応答時間が悪化することを示す。テーブルT1には、同じ書き込みサイズx1に対して異なる頻度(例えば、頻度a2)に対する回数(例えば、b2)が登録される。テーブルT1には、他の書き込みサイズ(例えば、書き込みサイズx2)に対しても、同様に頻度と回数との対応関係が登録される。
その場合、制御部1bは、テーブルT1を参照することで、運用時における情報処理装置3の書き込みのアクセス傾向(運用時のアクセス傾向)と書き込みコマンドの受信回数とに基づき、RMW用キャッシュ2aの使用状況を判定する。
具体的には、制御部1bは、運用時のアクセス傾向に応じた回数(記憶装置2の応答時間が悪化するまでのコマンド発行の回数)をテーブルT1から取得する。例えば、運用時のアクセス傾向が書き込みサイズx1,頻度a1であれば、制御部1bは、テーブルT1から回数b1を取得する。そして、制御部1bは、例えば回数b1に1よりも小さい所定割合(例えば、0.9など)を乗じた値を監視閾値として取得する。1よりも小さい所定割合を回数b1に乗じる理由は、空き容量不足に陥る前のタイミングを計るためである。すなわち、回数b1に達するとRMW用キャッシュ2aが空き容量不足に陥っている可能性が高くなるので、制御部1bは回数b1に達する前のタイミングを決定する。制御部1bは、情報処理装置3から受信する書き込みコマンドの受信回数が監視閾値に達した場合に、RMW用キャッシュ2aの空き容量が今後不足する可能性が高い(すなわち、記憶装置2の応答時間が悪化する可能性が高い)と判定する。
制御部1bは、RMW用キャッシュ2aの空き容量が今後不足する可能性が高いと判定した場合、ストレージ制御装置1によりRMWを実行すると決定する。ストレージ制御装置1は、RMWの実行を開始する。制御部1bが、ストレージ制御装置1によるRMWを実行してもよい。制御部1bは、記憶部1cの記憶領域をRMW用のキャッシュとして利用してもよい。記憶部1cには、RMW用キャッシュ2aよりも大きな記憶領域をRMW用のキャッシュとして確保できる。ストレージ制御装置1がRMWの実行を開始すると、記憶装置2ではRMWを実行しなくてよくなるため、RMWを実行する装置が、記憶装置2からストレージ制御装置1へ切り替わることになる。
ところで、通常時(RMW用キャッシュ2aが空き容量不足になっていないとき)は、ストレージ制御装置1よりも、記憶装置2によってRMWを行う方が、書き込みの応答時間は小さくて済むことが多い。理由は次の通りである。ストレージ制御装置1でRMWを実行する場合、ストレージ制御装置1は(1)記憶装置2からデータを読み出してストレージ制御装置1内のキャッシュに格納し、(2)同キャッシュ内のデータを更新し、(3)同キャッシュから記憶装置2にデータを書き戻す。このため、記憶装置2内だけでRMWを行うよりも、ストレージ制御装置1と記憶装置2との間のデータ伝送などに伴うオーバヘッドが生じる。したがって、通常時は記憶装置2でRMWを行う方が効率的である。
このとき、例えば、ストレージ制御装置1および記憶装置2におけるRMWの処理速度を比較することで、処理速度の速い方の装置でRMWを実行すると決定することも考えられる。しかし、記憶装置2によるRMWの処理速度が、ストレージ制御装置1によるRMWの処理速度を下回るとき、記憶装置2側で既にRMW用キャッシュ2aが空き容量不足に陥っている可能性が高い。このように、RMWの処理速度の比較に応じてRMWの実行主体を決定していたのでは遅く、RMW用キャッシュ2aのキャッシュ使用状況に追随した切替を行えない。記憶装置2の応答時間の悪化は、情報処理装置3の処理遅延の要因となる。例えば、記憶装置2のデータにアクセスするユーザの業務処理に悪影響を及ぼすおそれがある。
これに対し、ストレージ制御装置1は、書き込みコマンドの、あるアクセス傾向(書き込みサイズおよび受信頻度)における連続の受信数に基づいて、RMW用キャッシュ2aの使用状況を判定し、記憶装置2の代わりにRMWを実行するか否かを決定する。これにより、ストレージ制御装置1は、RMW用キャッシュ2aが空き容量不足に陥るよりも前の適切なタイミングでRMWを代行できる。
ストレージ制御装置1によるRMWの実行を開始すると、記憶装置2はRMWを実行しなくなる。よって、記憶装置2のRMW用キャッシュ2aの空き容量不足の発生を抑えられる。その結果、記憶装置2の応答時間が悪化することを未然に防げる。ユーザの業務処理への悪影響も抑えられる。
なお、ストレージ制御装置1は、情報処理装置3による書き込みのアクセスが比較的低下してきた場合(例えば、一定時間以上書き込みがなかった場合)、ストレージ制御装置1によるRMWの実行を停止し、記憶装置2によるRMWの実行を再開させてもよい。ある程度書き込みコマンドが低減すれば、RMW用キャッシュ2aの空き容量に余裕ができ、空き容量不足になる可能性が低減するからである。また、前述のように、通常時は、記憶装置2でRMWを実行する方が、RMWの処理効率を向上できるからである。こうして、記憶装置2に対するデータの書き込み性能を向上できる。
また、ストレージ制御装置1は、テーブルT1(性能情報)を記憶装置2のベンダや機種毎に予め作成し、ライブラリ化しておいてもよい。そうすれば、1度取得した性能情報を、同ベンダ、同機種の複数の記憶装置に対して流用できる。
更に、前述のように、ストレージ制御装置1は、記憶装置2を含む複数の記憶装置を内蔵したストレージ装置と接続されることもある。その場合、ストレージ制御装置1は、複数の記憶装置を用いてRAID(Redundant Array of Independent Disks)を組んでいてもよい。RAIDを組む場合にも第1の実施の形態の方法により、ストレージ制御装置1は、記憶装置毎にRMWを代行するか否かを決定する。そして、ストレージ制御装置1は、記憶装置毎にRMWを代行する。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ストレージ装置100、管理装置200およびサーバ300を含む。ストレージ装置100およびサーバ300は、SAN10に接続されている。ストレージ装置100、管理装置200およびサーバ300は、ネットワーク20に接続されている。ネットワーク20は、例えばLANである。
ストレージ装置100は、複数のHDDを内蔵し、サーバ300の処理に用いられるデータを記憶する。ストレージ装置100は、データの書き込みコマンドをサーバ300から受信すると、内蔵のHDDにデータを書き込む。ストレージ装置100は、書き込み結果をサーバ300に送信する。ストレージ装置100は、データの読み出しコマンドをサーバ300から受信すると、内蔵のHDDからデータを読み出し、読み出したデータをサーバ300に送信する。ストレージ装置100は、HDDと併せてSSDを内蔵してもよい。
管理装置200は、ストレージ装置100の運用管理を行うサーバコンピュータである。管理装置200は、例えば、ネットワーク20を介してストレージ装置100に動作制御の設定を行う。管理装置200は、ストレージ装置100により実行されるプログラム(例えば、ファームウェアのプログラム)を、ネットワーク20を介してストレージ装置100に送信することもある。
サーバ300は、ストレージ装置100に格納されたデータにアクセスするサーバコンピュータである。サーバ300は、業務用のアプリケーションのプログラムを実行し、業務処理サービスをユーザに提供する。
図3は、ストレージ装置のハードウェア例を示す図である。ストレージ装置100は、コントローラモジュール(CM:Controller Module)110,120およびDE(Drive Enclosure)130を有する。
CM110,120は、DE130が備えるHDDの記憶領域の管理や記憶領域に対するデータアクセスを制御する。CM110,120はストレージ装置100内で冗長化され、データへのアクセス性能や耐故障性の向上が図られている。CM110,120は、第1の実施の形態のストレージ制御装置1の一例である。
CM110は、プロセッサ111、RAM112、フラッシュメモリ113、CA(Channel Adaptor)114、NA(Network Adaptor)115およびDI(Drive Interface)116を有する。各ユニットは、CM110のバスに接続されている。CM120もCM110と同様のユニットを有する。
プロセッサ111は、CM110の情報処理を制御するプロセッサである。プロセッサ111は、マルチプロセッサであってもよい。プロセッサ111は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ111は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM112は、CM110の主記憶装置である。RAM112は、プロセッサ111に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。
フラッシュメモリ113は、CM110の補助記憶装置である。フラッシュメモリ113は、不揮発性の半導体メモリである。フラッシュメモリ113は、ファームウェアのプログラムなどを記憶する。
CA114は、SAN10を介してサーバ300と通信する通信インタフェースである。CA114の通信インタフェースの種別は、例えばファイバチャネルやSCSI(Small Computer System Interface)などである。CM110は、複数個のCAを備えて、CAを冗長構成としてもよい。
NA115は、ネットワーク20を介して他のコンピュータと通信する通信インタフェースである。NA115の通信インタフェースの種別は、例えばLAN接続用のNIC(Network Interface Card)である。CM110は、複数個のNAを備えて、NAを冗長構成としてもよい。
DI116は、DE130と通信する通信インタフェースである。DI116の通信インタフェースの種別は、例えばファイバチャネルやSCSIなどである。CM110は、複数個のDIを備えて、DIを冗長構成としてもよい。
DE130は、HDD131,132,133,134を含む複数のHDD(他のHDDの図示を省略している)を収容する。例えば、CM110,120は、HDD131,132,133,134を用いてRAIDと呼ばれる技術により、データへのアクセス性能や各HDDの耐障害性を向上した論理的な記憶領域を実現する。
図4は、管理装置のハードウェア例を示す図である。管理装置200は、プロセッサ201、RAM202、HDD203、画像信号処理部204、入力信号処理部205、読み取り装置206および通信インタフェース207を有する。各ユニットは管理装置200のバスに接続されている。
プロセッサ201は、管理装置200の情報処理を制御する。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ201は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM202は、管理装置200の主記憶装置である。RAM202は、プロセッサ201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、プロセッサ201による処理に用いる各種データを記憶する。
HDD203は、管理装置200の補助記憶装置である。HDD203は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD203は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。管理装置200は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部204は、プロセッサ201からの命令に従って、管理装置200に接続されたディスプレイ21に画像を出力する。ディスプレイ21としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部205は、管理装置200に接続された入力デバイス22から入力信号を取得し、プロセッサ201に出力する。入力デバイス22としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
読み取り装置206は、記録媒体23に記録されたプログラムやデータを読み取る装置である。記録媒体23として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体23として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置206は、例えば、プロセッサ201からの命令に従って、記録媒体23から読み取ったプログラムやデータをRAM202またはHDD203に格納する。プロセッサ201は、記録媒体23から読み取ったプログラムやデータ(例えば、ストレージ装置100のファームウェアのプログラムやデータ)をストレージ装置100に送信することもできる。
通信インタフェース207は、ネットワーク20を介して他の装置と通信を行う。通信インタフェース207は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図5は、HDDの例を示す図である。図5(A)は、HDD131においてRMW(リードモディファイライト)を実行するハードウェアを例示している。HDD131は、プロセッサ131aおよびキャッシュ131bを有する。プロセッサ131aは、HDD131におけるRMWを実行する。プロセッサ131aは、RMW用途のASICやFPGAなどでもよいし、RMW用のプログラムを実行する汎用プロセッサでもよい。
キャッシュ131bは、プロセッサ131aによるRMW処理に用いられる記憶領域である。キャッシュ131bは、HDD131が備える磁気ディスク(単にディスクということがある)の記憶領域の一部分でもよいし、磁気ディスクとは別個に設けられた半導体メモリでもよい。RMW用のプロセッサ131aおよびキャッシュ131bの実装方法は、ベンダによって異なり、また、ブラックボックス化されている。このため、キャッシュ131bの最大容量や使用量などを外部から直接参照することはできない。
図5(B)は、HDD131が備える磁気ディスクを例示している。HDD131は、複数の磁気ディスクを備える。ディスクDは複数の磁気ディスクのうちの1つである。ディスクD上の同心円の縁に形成される領域はトラックと呼ばれる。トラックTrは、ディスクD上における複数のトラックのうちの1つである。トラックTr上を所定サイズ単位に物理的に区切った領域は、物理セクタと呼ばれる。物理セクタScは、トラックTr上における複数の物理セクタのうちの1つである。
以下の説明では、1つの物理セクタのサイズを、一例として4096バイト(Bytes)=4キロバイト(KB:Kilo-Bytes)とする。ディスクD上に4KBの物理セクタが配置された構造を4KBのアライメント(Alignment)ということもある。ただし、1つの物理セクタのサイズは、8KB,16KBなど、他のサイズでもよい。この場合、HDD131のディスクDに対するデータ書き込みの操作は、4KBの物理セクタ単位に行われる。すなわち、当該物理セクタがHDD131におけるデータの書き込み単位となる。
近年、HDDの大容量化および1度に処理されるデータ量の増大に伴い、物理セクタのサイズ(セクタサイズ)を、これまで用いられてきた512バイトから4KBに増やしたHDD(例えば、HDD131,132,133,134)が利用されている。一方で、サーバ300で動作するOSなどのソフトウェアによっては、セクタサイズを512バイト(4KBよりも小さいサイズ)としてデータ書き込みを行うものもある。このようなソフトウェアからの書き込みコマンドでは、512バイト×n(nは1以上の整数)倍のサイズの書き込みが要求される。すると、HDD131における物理セクタの4KBアライメントと整合しない書き込みが生じ得る。
図6は、書き込みの例を示す図である。図6において、太い黒枠の矩形で囲われた部分は1つの物理セクタを示す。物理セクタは、8つ(=4096バイト÷512バイト)の論理セクタを含む。図6では、物理セクタ内を8つに分割した矩形により論理セクタを表している。論理セクタは、LBA(Logical Block Address)と呼ばれる番号により識別される。各論理セクタ上の番号は、各物理セクタの先頭を示すLBAに対する相対アドレス(オフセット)を示す。相対アドレス“1”は、物理セクタの先頭に対応するLBAである。相対アドレス“8”は、物理セクタの終端に対応するLBAである。図6では、書き込みコマンドにより書き込み対象となる箇所(論理セクタ)を、論理セクタに該当する枠内にアスタリスク記号“*”を付して表す。
書き込みサイズが4KBの整数倍で、かつ、書き込み先の先頭LBA(書き込みを開始するLBA)が物理セクタの先頭に対応する場合、当該書き込みは、物理セクタのアライメントと整合する。一方、書き込みサイズが4KBの整数倍でない場合、または、書き込み先の先頭LBAが物理セクタの先頭に対応しない場合、当該書き込みは、物理セクタのアライメントと整合しない。
ここで、以下の説明では、物理セクタのアライメントと整合しない書き込みを、「アンアラインwrite」と称することがある。また、アンアラインwriteを要求する書き込みコマンドを、「アンアラインwriteコマンド」と称することがある。
例えば、図6(A)の書き込みは、物理セクタのアライメントと整合している。書き込みサイズが4KBの整数倍で、かつ、書き込み先の先頭LBAが物理セクタの先頭に対応するからである。
図6(B)の書き込みは、アンアラインwriteである。書き込みサイズが4KBの整数倍ではないからである。また、図6(B)の例では、書き込み先の先頭LBAが物理セクタの先頭に対応してもいない。
図6(C)の書き込みは、アンアラインwriteである。書き込み先の先頭LBAが物理セクタの先頭に対応してはいるが、書き込みサイズが4KBの整数倍ではないからである。
図6(D)の書き込みは、アンアラインwriteである。書き込みサイズが4KBの整数倍ではあるが、書き込み先の先頭LBAが物理セクタの先頭に対応していないからである。
HDD131は、RMWを実行することで、アンアラインwriteを4KBアライメント単位の書き込み操作によりエミュレートする。
図7は、RMWの例を示す図である。図7は、物理セクタScにおける相対アドレス6,7,8を対象としたアンアラインwriteをRMWにより実行する例を示している。
プロセッサ131aは、物理セクタScのうち、相対アドレス6,7,8に相当する論理セクタに対するアンアラインwriteの要求を受け付ける(ステップS1)。プロセッサ131aは、物理セクタSc内の全論理セクタのデータをキャッシュ131bに読み出す(READ)(ステップS2)。
プロセッサ131aは、キャッシュ131bに読み出したデータのうち、相対アドレス6,7,8に対応する部分を更新する(MODIFY)(ステップS3)。プロセッサ131aは、キャッシュ131bにおける全論理セクタのデータ(相対アドレス6,7,8の部分が更新されたデータ)を物理セクタScに書き込む(WRITE)(ステップS4)。このように、プロセッサ131aは、アンアラインwriteを4KBアライメント単位の書き込み操作により実行する。RMWは、HDD131における書き込みのオーバヘッドとなり得る。
図8は、書き込みの応答時間とIOPSとの関係の例を示す図である。図8では、横軸をHDDに対する書き込みコマンドのIOPS(Input / Output Per Second)とし、縦軸を当該HDDの書き込みの応答時間としている。
系列K1は、第1の種類のHDDによりRMWを行う場合のIOPSと応答時間との関係を示す。HDDの種類は、HDDを製造するベンダやHDDの機種によって識別される。系列K2は、第2の種類のHDDによりRMWを行う場合のIOPSと応答時間との関係を示す。系列K3は、HDDではなく、CM(例えば、CM110,120)によってRMWを行う場合のIOPSと応答時間との関係を示す。系列K1,K2,K3は何れも、所定の書き込みサイズの書き込みコマンド(アンアラインwrite)を所定数発行した場合である。
系列K1,K2,K3によれば、通常(HDDによるRMWの応答時間の方が、CMによるRMWの応答時間よりも短い期間)では、CMによってRMWを実行するよりも、HDDによってRMWを実行する方が効率的である。CMでRMWを実行する場合、HDDのみでRMWを行うよりも、CMとHDDとの間のデータ伝送のオーバヘッドが余計に生じるからである。しかし、HDDに対する書き込みの負荷がある程度まで達すると、HDDによる書き込みの応答時間は悪化する(応答時間が極度に増大する)。HDDにおいて、RMW用のキャッシュの空き容量不足が発生するからである。このため、書き込みの負荷がある程度高い状態では、HDDによってRMWを実行するよりも、CMによってRMWを実行した方が効率的となる。CMでは、RMW用のキャッシュとしてHDDよりも大きな記憶領域を割り当て可能だからである。
そこで、ストレージ装置100は、HDD131,132,133,134のRMW用のキャッシュの空き容量が枯渇する前に、CM110,120によりRMWを代行する機能を提供する。
図9は、CMの機能例を示す図である。CM110は、記憶部140、コマンド受信部150、アクセス処理部160、測定部170およびRMW制御部180を有する。記憶部140は、RAM112やフラッシュメモリ113に確保された記憶領域として実現される。コマンド受信部150、アクセス処理部160、測定部170およびRMW制御部180は、RAM112に記憶されたプログラムをプロセッサ111が実行することで実現される。
記憶部140は、測定部170により測定されたHDDの性能情報を記憶する。記憶部140は、何れのHDDに対するRMWを代行するかを管理するための管理情報を記憶する。
コマンド受信部150は、サーバ300により発行されたデータの書き込みや読み出しのコマンドを受信する。ここで、データの書き込みコマンドには、書き込み対象のデータを示す情報および書き込みを開始する先頭LBAを示す情報が含まれる。書き込み対象のデータのサイズが当該書き込みコマンドによる書き込みサイズである。
アクセス処理部160は、コマンド受信部150が受信したコマンドに応じて、データの書き込みや読み出しをDE130に指示する。例えば、アクセス処理部160は、サーバ300により発行されたコマンドに含まれる書き込み対象または読み出し対象の論理的なアドレスを物理的なアドレスに変換する。物理的なアドレスは、各HDDに対応しており、アクセス処理部160は、何れのHDDに対する書き込み/読み出しの要求であるかを当該アドレスに基づいて識別する。アクセス処理部160は、識別したHDDに対する書き込みや読み出しをDE130に指示する。アクセス処理部160は、書き込みの結果(書き込み成功/失敗など)をDE130から取得し、サーバ300に送信する。アクセス処理部160は、読み出されたデータをDE130から取得し、サーバ300に送信する。アクセス処理部160は、測定部170により生成された性能測定用の書き込みコマンドに応じて、データの書き込みをDE130に指示することもある。
測定部170は、DE130に収容されたHDD131,132,133,134のベンダおよび機種別の性能情報を予め取得する。具体的には、測定部170は、システムの運用準備段階において、複数の種類のアンアラインwriteコマンドをHDD131に対して発行することで、HDD131の応答時間を測定する。測定部170は、書き込みサイズおよび発行頻度に対応付けて、HDD131の応答時間が悪化するまでの発行回数を性能情報として記録する。測定部170は、性能情報を記憶部140に格納する。
また、測定部170は、システムの運用開始後は、コマンド受信部150により受信される複数の書き込みコマンドから書き込みのアクセス傾向を判定し、RMW制御部180に通知する。更に、測定部170は、書き込みコマンドの受信数をRMW制御部180に通知する。
RMW制御部180は、システムの運用時における、測定部170による書き込みコマンドの測定結果と、記憶部140に記憶された性能情報とに基づいて、RMWを代行するか否かを、HDD毎に決定する。RMW制御部180は、RMWを代行するHDDを管理するための管理情報を生成して、記憶部140に格納する。RMW制御部180は、管理情報に基づいて、HDD毎のRMWを代行する。
具体的には、アクセス処理部160が該当のHDDから読み出した物理セクタの情報を記憶部140に確保されたキャッシュに格納し、図7で例示した処理と同様の処理を実行する。すなわち、図7において物理セクタの情報の読み出し先が、キャッシュ131bではなく、記憶部140内のキャッシュになる(READ)。RMW制御部180は、同キャッシュの情報を更新後(MODIFY)、アクセス処理部160を介して同キャッシュの更新後の情報を同物理セクタに書き込む(WRITE)。
ここで、CM120もCM110と同様の機能を有する。例えば、CM110,120でアクセス対象とするHDDを分担する。CM110,120は、自身が担当するHDDに対して、RMWを代行するか否かの処理を行う。
図10は、RMW性能テーブルの例を示す図である。RMW性能テーブル141は、HDD131,132,133,134のベンダおよび機種に対する性能情報である。RMW性能テーブル141は、記憶部140に格納される。RMW性能テーブル141は、頻度および書き込みサイズ毎の性能測定結果の項目を含む。
頻度の項目には、書き込みコマンドの発行頻度が登録される。書き込みサイズ毎の性能測定結果の項目には、書き込みサイズ毎の性能測定結果が登録される。ここで、性能測定結果は、カウントおよび時間の項目を更に含む。カウントの項目には、応答時間が悪化するまでの書き込みコマンドの発行数が登録される。応答時間の悪化が観測されたタイミングでは、HDD側のRMW用のキャッシュが空き容量不足に陥っている(空き容量が枯渇している)と考えることができる。時間の項目には、キャッシュの空き容量が枯渇し、新たな書き込みコマンドがなくなった後、キャッシュ内のデータのRMWが全て完了するまでの時間(データ吐き出し時間と称する)が登録される。データ吐き出し時間は、CM110,120によるRMWの実行を停止し、HDDによるRMWを再開させる際に利用される情報である。
例えば、RMW性能テーブル141には、頻度が“10多重”、書き込みサイズ8KBに対するカウントが“c11”、時間が“t11”、書き込みサイズ64KBに対するカウントが“c12”、時間が“t12”、書き込みサイズ128KBに対するカウントが“C13”、時間が“t13”、・・・という情報が登録される。
これは、所定周期(例えば、100ms(ミリ秒))毎に10個の書き込みコマンドを発行するという条件下でのHDD131の性能測定の結果を示す。具体的には、書き込みサイズが8KBの場合、発行回数が“c11”に達した時にキャッシュ131bが空き容量不足になり、応答時間が悪化したことを示す。また、その後のデータ吐き出し時間が“t11”であったことを示す。書き込みサイズが64KBの場合、発行回数が“c12”に達した時にキャッシュ131bが空き容量不足になり、応答時間が悪化したことを示す。また、その後のデータ吐き出し時間が“t12”であったことを示す。書き込みサイズが128KBの場合、発行回数が“c13”に達した時にキャッシュ131bが空き容量不足になり、応答時間が悪化したことを示す。また、その後のデータ吐き出し時間が“t13”であったことを示す。
同様に、例えば、RMW性能テーブル141には、頻度が“100msに1コマンド”、書き込みサイズ8KBに対するカウントが“c21”、時間が“t21”、書き込みサイズ64KBに対するカウントが“c22”、時間が“t22”、書き込みサイズ128KBに対するカウントが“c23”、時間が“t23”という情報が登録される。これは、100msに1回のコマンドを発行するという条件下でのHDD131の性能測定の結果を示す。
このように、RMW性能テーブル141には、HDD131に様々な条件で負荷をかけたときのキャッシュ枯渇までの書き込みコマンド数が予め登録される。RMW性能テーブル141は、CM110(またはCM120)により、HDDのベンダおよび機種毎に予め作成され、記憶部140に格納される。例えば、HDD131,132,133,134が同じベンダの同じ機種であれば、HDD131を用いて作成したRMW性能テーブル141を、HDD132,133,134に対しても利用できる。CM120もRMW性能テーブル141と同様の情報を記憶する。
図11は、RMW管理テーブルの例を示す図である。RMW管理テーブル142は、CM110によりRMWを代行するHDDを管理するための管理情報である。RMW管理テーブル142は、記憶部140に格納される。RMW管理テーブル142は、RAID ID(IDentifier)、HDD ID、RMW実行フラグおよびアクセス傾向の項目が含まれる。
RAID IDの項目には、RAIDグループを識別するための識別情報(RAID ID)が登録される。HDD IDの項目には、HDDを識別するための識別情報(HDD ID)が登録される。RMW実行フラグの項目には、該当のHDDに対して、CM110がRMWを実行するか否かを示すフラグ情報が登録される。CM110がRMWを実行する場合、RMW実行フラグは“true”が登録される。CM110がRMWを実行しない場合、RMW実行フラグは“false”が登録される。アクセス傾向の項目には、CM110がRMWを代行する際におけるHDDに対する書き込みのアクセス傾向の情報が登録される。アクセス傾向の項目には、RMW実行フラグが“true”の場合にアクセス傾向の内容を示す情報が登録される。RMW実行フラグが“false”の場合には、設定なし(図11ではハイフン“−”を表記している)となる。
例えば、RMW管理テーブル142には、RAID IDが“R1”、HDD IDが“D1”、RMW実行フラグが“true”、アクセス傾向が“1コマンド/100ms,8KB”という情報が登録される。これは、RAID ID“R1”で示されるRAIDグループに属するHDD ID“D1”のHDDに対して、CM110がRMWを実行する(すなわち、当該HDDではRMWを実行しない)ことを示す。また、当該HDDに対する書き込みのアクセス傾向が、100msに1コマンドの頻度であり、書き込みサイズが8KBであることを示す。
また、例えば、RMW管理テーブル142には、RAID IDが“R2”、HDD IDが“D4”、RMW実行フラグが“false”、アクセス傾向が“−”(設定なし)という情報が登録される。これは、RAID ID“R2”で示されるRAIDグループに属するHDD ID“D4”のHDDに対して、CM110がRMWを実行しない(すなわち、当該HDDによりRMWを実行する)ことを示す。
上記の例では、HDD ID“D1”、“D2”、“D3”で識別される3つのHDDが同一RAIDグループに属している。例えば、当該RAIDグループのRAIDレベルを、RAID5とする。その場合、当該RAIDグループに対して、データ書き込みが行われるとき、3つのHDDに対してデータ書き込みが行われることになる(書き込みサイズは、データを分割格納する度合いに応じて計算できる。例えば、ストライプディスク2+パリティディスク1なら書き込み対象データの半分のサイズが1台のHDD当たりの書き込みサイズとなる)。3つのHDDのベンダおよび機種が同じである場合、ほぼ同じ条件下で各HDDのRMW用のキャッシュ容量不足が生じると考えられる。このため、同RAIDグループに属する3つのHDDに対して、CM110は、同じタイミングでRMWの実行を開始することになる。
次に、ストレージ装置100による処理手順を説明する。まず、システムの運用準備段階における、HDDの性能の測定処理の手順を説明する。その次に、システムの運用時におけるRMWの切替処理の手順を説明する。
図12は、測定処理の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(S11)測定部170は、以下に示すステップS12〜S25の処理を、書き込みサイズ毎に繰り返し実行する。測定を行う書き込みサイズは、記憶部140に予め登録される。例えば、システムの開発者や管理者などは、運用中に想定される書き込みサイズのリストの情報を作成し、記憶部140に予め登録する。測定部170は、書き込みサイズのリストから測定を行う書き込みサイズを1つずつ順番に選択し、選択した書き込みサイズ毎にステップS12〜S25の処理を実行する。
(S12)測定部170は、以下に示すステップS13〜S24の処理を、書き込みコマンドの発行頻度毎に繰り返し実行する。測定を行う頻度は、記憶部140に予め登録される。例えば、システムの開発者や管理者などは、運用中に想定される書き込み頻度のリストの情報を作成し、記憶部140に予め登録する。測定部170は、発行頻度のリストから測定を行う発行頻度を1つずつ順番に選択し、選択した発行頻度毎にステップS13〜S24の処理を実行する。
(S13)測定部170は、HDD131に対するアンアラインwriteコマンドを発行する。書き込みサイズは、ステップS11で選択されているサイズである。発行頻度は、ステップS12で選択されている頻度である。書き込み対象データとして、テスト用のデータを指定する。アンアラインwriteコマンドは、アクセス処理部160を介して、DE130に送信される。測定部170は、現在の条件(書き込みサイズおよび発行頻度)で、ステップS13によりアンアラインwriteコマンドを発行開始したタイミングでタイマによる時間計測をスタートさせる。また、測定部170は、タイマのスタートとともにアンアラインwriteコマンドの発行数のカウントも開始する。
(S14)測定部170は、アンアラインwriteコマンド毎にHDD131の書き込み結果の応答を受信する。測定部170は、アンアラインwriteコマンド毎に応答時間を計測する。応答時間は、例えばアンアラインwriteコマンドを発行してから、当該アンアラインwriteコマンドに対する応答がHDD131から返ってくるまでの時間である。測定部170は、応答時間の時系列を記憶部140に記録する。
(S15)測定部170は、応答時間が悪化したか否かを判定する。悪化した場合、測定部170は、アンアラインwriteコマンドの発行を停止し、処理をステップS16に進める。悪化していない場合、測定部170は、処理をステップS13に進めて、アンアラインwriteコマンドの発行を継続する。例えば、測定部170は、HDD131の書き込みの応答時間が所定の閾値よりも大きい場合に応答時間が悪化したと判定し、応答時間が所定の閾値以下の場合に応答時間が悪化していないと判定する。あるいは、測定部170は、応答時間の増分の変化が所定割合(例えば、150%増や200%増など)よりも大きい場合に応答時間が悪化したと判定し、応答時間の増分の変化が所定割合以下である場合に応答時間が悪化していないと判定してもよい。判定に用いる閾値または増分の変化の割合の情報は、記憶部140に予め登録される。
(S16)測定部170は、ステップS13でスタートさせたタイマにより計測された時間a(経過時間a)を記憶部140に記録する。測定部170は、応答時間が悪化するまでのアンアラインwriteコマンドの発行数を、RMW性能テーブル141の現頻度および現書き込みサイズに対応するカウントの項目に登録する。測定部170は、タイマと書き込みサイズのカウントをリセットする。
(S17)測定部170は、時間Tが経過するまで待機する。時間Tの初期値は、記憶部140に予め登録される。時間Tの初期値は比較的短い時間(例えば、時間aよりも短い時間)とする。時間Tを徐々に大きくしながら、データ吐き出し時間を決定できるようにするためである。
(S18)測定部170は、HDD131に対するアンアラインwriteコマンドを発行する。書き込みサイズおよび発行頻度は、ステップS13と同じである。測定部170は、現在の条件(書き込みサイズおよび発行頻度)でステップS18によりアンアラインwriteコマンドを発行開始したタイミングでタイマによる時間計測をスタートさせる。
(S19)測定部170は、アンアラインwriteコマンド毎にHDD131の書き込み結果の応答を受信する。測定部170は、アンアラインwriteコマンド毎に応答時間を計測する。測定部170は、応答時間の時系列を記憶部140に記録する。
(S20)測定部170は、応答時間が悪化したか否かを判定する。判定方法は、ステップS15と同様である。悪化した場合、測定部170は、アンアラインwriteコマンドの発行を停止し、処理をステップS21に進める。悪化していない場合、測定部170は、処理をステップS18に進めてアンアラインwriteコマンドの発行を継続する。
(S21)測定部170は、ステップS18でスタートさせたタイマにより計測された時間b(経過時間b)を記憶部140に記録する。測定部170は、タイマをリセットする。
(S22)測定部170は、記録された経過時間aおよび経過時間bについて、aはb以下(a≦b)であるか否かを判定する。aがb以下である場合、処理をステップS24に進める。aがb以下でない(すなわち、aがbよりも大きい)場合、処理をステップS23に進める。
(S23)測定部170は、時間Tに時間αを加算する。時間αを加算する理由は、ステップS17における待機時間を増やすためである。時間αは記憶部140に予め登録される。時間αは、例えば時間Tの初期値の5%または10%程度の時間としてもよい。そして、処理をステップS13に進める。測定部170は、ステップS13へ処理を進めた後、ステップS15でYesの場合に、再度ステップS16に進むことになる。この場合、測定部170は、ステップS16をスキップして、ステップS17を実行する。
(S24)測定部170は、データ吐き出し時間として時間Tを記録する。具体的には、測定部170は、RMW性能テーブル141の現頻度および現書き込みサイズ(経過時間aを登録したときのアクセス傾向)に対応する時間の項目に、時間Tを登録する。
(S25)測定部170は、全ての発行頻度について測定を終えると繰り返しを終了する。
(S26)測定部170は、全ての書き込みサイズについて測定を終えると繰り返しを終了する。
このようにして、測定部170は、RMW性能テーブル141を作成する。なお、測定部170は、ステップS13において、前回の条件で測定を行った後、今回の条件での測定を開始する前に、キャッシュ131b内のデータが全て処理されるのに十分と考えられる時間だけ待機してから、今回の条件での測定を開始する。前回の条件での測定時におけるアンアラインwriteコマンドのキャッシュ131bに対する影響を除去するためである。なお、今回の条件での測定を開始する際、測定部170は時間Tを初期値にリセットする。
図13は、データ吐き出し時間の例を示す図である。図13(A)(B)では時間とキャッシュデータ量(キャッシュ131bに格納されたデータ量)との関係を示している。何れも横軸は時間であり、縦軸はキャッシュデータ量である。図13(A)は、データ吐き出し時間を決定できない場合を例示している。図13(B)は、データ吐き出し時間を決定できる場合を例示している。ここで、あるタイミングにおける時間Tの値をT0とする。
図13(A)において、アンアラインwriteコマンドの発行により、時間aが経過した時点において、キャッシュ131bはキャッシュフルとなり、空き容量が不足する。すると、測定部170は、HDD131の応答時間が悪化したことを検出し、経過時間aを得る(ステップS16に相当)。ただし、測定部170は、このタイミングにおいて現条件(アクセス傾向)での経過時間aを取得済の場合、経過時間aを改めて取得しなくてよい。
その後、測定部170は、アンアラインwriteコマンドの発行を停止し、時間T0だけ待機する(ステップS17に相当)。待機している間、キャッシュ131bのデータは処理されて、キャッシュ131bのキャッシュデータ量が減る(空き容量が増える)。測定部170は、アンアラインwriteコマンドの発行を再開する(ステップS18に相当)。時間b1が経過した時点において、キャッシュ131bはキャッシュフルとなりHDD131の応答時間が悪化するので、測定部170は経過時間b1を得る(ステップS21に相当)。この場合、a>b1である。よって、測定部170は、T=T0+αとする。
図13(B)において、アンアラインwriteコマンドの発行により、時間aが経過した時点において、キャッシュ131bはキャッシュフルとなり、空き容量が不足する。その後、測定部170は、アンアラインwriteコマンドの発行を停止し、時間T0+αだけ待機する(ステップS17に相当)。待機している間、キャッシュ131bのデータは処理されて、キャッシュ131bのキャッシュデータ量が減る(空き容量が増える)。測定部170は、アンアラインwriteコマンドの発行を再開する(ステップS18に相当)。時間b2が経過した時点において、キャッシュ131bはキャッシュフルとなりHDD131の応答時間が悪化するので、測定部170は経過時間b2を得る(ステップS21に相当)。この場合、a≦b2である。よって、測定部170は、時間T=T0+αをデータ吐き出し時間と決定する。
次に、システムの運用時におけるRMWの切替処理の手順を説明する。まず、RMWを実行する装置を、HDD131からCM110に切り替える例を説明する。次に、RMWを実行する装置を、CM110からHDD131に切り替える例を説明する。CM110の手順を主に説明するが、CM120も同様の手順で、CM120が担当するHDDに対するRMWの切替処理を行う。また、HDD131に対するRMWの切替の処理を例示するが、CM110は他のHDDに対しても同様にしてRMWの切替を行う。
図14は、RMW切替処理(その1)の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。ステップS31の前において、CM110はHDD131のRMWを代行していない。
(S31)コマンド受信部150は、サーバ300から書き込みコマンドを受信する。書き込みコマンドは、HDD131(または、HDD131が属するRAIDグループ)に対する書き込みコマンドである。測定部170は、受信した書き込みコマンドの現在のアクセス傾向(書き込みサイズおよび受信頻度)からアンアラインwriteコマンドの上限値Mを決定する。例えば、測定部170は、サーバ300から受信した書き込みコマンドの所定時間当たりの受信数から、当該コマンドの受信頻度(すなわち、サーバ300による書き込みコマンドの発行頻度)を取得する。また、測定部170は、ディスクドライバによる書き込みコマンドの解析結果から、HDD131に対する書き込みサイズを取得する。測定部170は、取得した受信頻度および書き込みサイズに対応するカウント値Cを、RMW性能テーブル141から取得する。例えば、測定部170は、M=β×C(0<β<1)とする。一例として、β=0.9とすることが考えられる。
(S32)コマンド受信部150は、HDD131(または、HDD131が属するRAIDグループ)に対する書き込みコマンドをサーバ300から受信する。なお、書き込みコマンドは、アクセス処理部160を介してDE130に送られ、書き込みコマンドに応じてDE130により各HDDへの書き込みが行われる。なお、測定部170は、書き込みの応答時間の時系列をHDD毎に記録する(後述のステップS35の判定のため)。
(S33)測定部170は、受信した書き込みコマンドがアンアラインwriteであるか否かを判定する。アンアラインwriteである場合、処理をステップS34に進める。アンアラインwriteでない場合、処理をステップS32に進める。アンアラインwriteであるか否かの判定方法は、図6で例示した通りである。具体的には、書き込みサイズが4KBの整数倍で、かつ、書き込み先の先頭LBA(書き込みを開始するLBA)が物理セクタの先頭に対応する場合、当該書き込みは、アンアラインwriteではない。一方、書き込みサイズが4KBの整数倍でない場合、または、書き込み先の先頭LBAが物理セクタの先頭に対応しない場合、当該書き込みは、アンアラインwriteである。
(S34)測定部170は、アンアラインwriteコマンドのコマンド受信数をカウントアップする(コマンド受信数に1を加算する)。
(S35)測定部170は、HDD131の応答時間が悪化したか否かを判定する。判定方法は、ステップS15と同様である。悪化した場合、処理をステップS36に進める。悪化していない場合、処理をステップS37に進める。
(S36)測定部170は、コマンド受信数のカウントをクリアする(カウントクリア)。そして、処理をステップS41に進める。
(S37)測定部170は、コマンド受信数が上限値Mよりも大きいか否かを判定する。コマンド受信数がMよりも大きい場合、処理をステップS38に進める。コマンド受信数がM以下の場合、処理をステップS32に進める。
(S38)測定部170は、サーバ300によるHDD131(または、HDD131が属するRAIDグループ)に対する書き込みコマンドの現在のアクセス傾向(書き込みサイズおよび受信頻度)からアンアラインwriteコマンドの上限値Nを決定する。Nの決定方法は、ステップS31のMの決定方法と同様である(βの値として同じ値を用いる)。
(S39)測定部170は、上限値MがN以上(M≧N)であるか否かを判定する。MがN以上である場合、処理をステップS41に進める。MがN以上でない(すなわち、MがNより小さい)場合、処理をステップS40に進める。
(S40)測定部170は、上限値Mを、Nに置換する。そして、処理をステップS32に進める。
(S41)RMW制御部180は、HDD131によるRMWから、CM110によるRMWに切り替えると決定する。RMW制御部180は、RMW管理テーブル142において、HDD131に対応するRMW実行フラグを“false”から“true”に設定変更する。RMW制御部180は、HDD131についてステップS38で判定した現在のアクセス傾向の情報を、RMW管理テーブル142に登録する。RMW制御部180は、HDD131のアンアラインwriteに対して、RMWを開始する。
このようにして、CM110は、HDD131によるRMWを、CM110によるRMWに切り替える。上限値Mは、前述のようにRMW性能テーブル141に登録されたカウント値に1よりも小さい値を乗じて得た値である。このため、ステップS37の判定により、HDD131におけるキャッシュ131bの空き容量不足が発生する前に、CM110によるRMWに切り替えることができる。このとき、例えば、同じベンダの同じ機種の複数のHDDでRAIDを組む場合、HDD131と同じRAIDグループに属する他のHDDも、HDD131と同じタイミングで、CM110によるRMWに切り替わることになる。
なお、ステップS33において、アンアラインwriteコマンドであるか否かを判定する理由は、アンアラインwrite以外の書き込みコマンドも含めてコマンド受信数を計数してしまうと、キャッシュ131bの使用状況の判定を適切に行えないからである。ステップS33において、計数対象のコマンドをアンアラインwriteコマンドに絞り込むことにより、キャッシュ131bの使用状況の判定を適切に行える。
また、ステップS35で、応答時間が悪化した場合に直ちにCMによるRMWに切り替える理由は、応答時間が悪化してしまった場合に迅速に対応し、応答時間を改善するためである。
更に、ステップS39の時点でアクセス傾向に対する上限値Nを取得し直す理由は、ステップS31の時点でのアクセス傾向と、ステップS39の時点でのアクセス傾向とが異なっている可能性があるからである。上限値MがNよりも小さい場合は、ステップS31の時点よりもステップS39の時点の方が、HDD131が低負荷になっていると考えられるので、上限値MをNの値に置換して、計測を継続する。一方、上限値MがN以上である場合は、ステップS31,S39の両時点でのHDD131に対する書き込み負荷が同等か、あるいは、ステップS39の時点の方が高負荷になっていると考えられるので、CM110によるRMWに切り替える。こうして、なるべくHDD131によるRMWを維持しながら、CM110でRMWを代行するか否かを決定できる。
図15は、RMW切替処理(その2)の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。ステップS51の前において、CM110はHDD131のRMWを代行している。
(S51)測定部170は、HDD131に対する(あるいは、HDD131が属するRAIDグループに対する)I/Oがあるか否かを判定する。I/Oがある場合、処理をステップS52に進める。I/Oがない場合、処理をステップS53に進める。
(S52)測定部170は、監視タイマの計測時間をクリアする(0にする)。そして、処理をステップS51に進める。監視タイマによる計測を開始済でない場合、ステップS52をスキップして、処理をステップS51に進める。
(S53)測定部170は、HDD131に対し監視タイマによる計測を開始済であるか否かを判定する。開始済の場合、処理をステップS55に進める。開始済でない場合、処理をステップS54に進める。
(S54)測定部170は、監視タイマによる計測を開始する。測定部170は、HDD毎に監視タイマを設ける。そして、処理をステップS55に進める。
(S55)測定部170は、RMW管理テーブル142を参照して、HDD131に対応するRMW切替時のアクセス傾向の情報を取得する。測定部170は、取得したアクセス傾向の情報に対応するデータ吐き出し時間をRMW性能テーブル141から取得する。例えば、HDD131に対し、アクセス傾向“1コマンド/100ms,8KB”という情報がRMW管理テーブル142に登録されている場合、RMW性能テーブル141によればデータ吐き出し時間は“t21”である。測定部170は、監視タイマの計測時間が当該データ吐き出し時間よりも大きいか否かを判定する。大きい場合、処理をステップS56に進める。小さい場合、処理をステップS51に進める。
(S56)RMW制御部180は、CM110によるRMWから、HDD131によるRMWに切り替えると決定する。RMW制御部180は、RMW管理テーブル142において、HDD131に対応するRMW実行フラグを“true”から“false”に設定変更し、アクセス傾向の情報を削除する。そして、RMW制御部180は、HDD131に対するRMWの実行を停止する。
このようにして、CM110は、HDD131に対するI/Oがなくなった状態が、データ吐き出し時間分経過したタイミングで、CM110によるRMWの代行を停止する。HDD131に対するI/Oがないまま、データ吐き出し時間が経過したのであれば、RMWのためにキャッシュ131b内に格納されたデータは全て処理済となっており、キャッシュ131bの空き容量に十分な余裕ができたと考えられるからである。
なお、例えば、同じベンダの同じ機種の複数のHDDでRAIDを組む場合、HDD131と同じRAIDグループに属する他のHDDも、HDD131と同じタイミングで、HDDによるRMWに切り替わることになる。HDD131にI/Oがなければ、同RAIDグループに属する他のHDDに対するI/Oもなくなるからである。
また、測定部170は、図15に示す処理において、HDD131にI/Oがある場合に、RMW管理テーブル142に登録されたアクセス傾向の情報に変更があれば、当該情報を最新の情報に更新してもよい。そして、ステップS55において、測定部170は、最新のアクセス傾向に対応するデータ吐き出し時間をRMW性能テーブル141から取得して計測時間との判定を行ってもよい。
以上のように、CM110は、書き込みコマンドの、あるアクセス傾向(書き込みサイズおよび受信頻度)における連続の受信数に基づいて、キャッシュ131bの使用状況を判定し、HDD131の代わりにRMWを実行するか否かを決定する。これにより、CM110は、キャッシュ131bが空き容量不足に陥るよりも前の適切なタイミングでRMWを代行できる。なお、CM110は、あるアクセス傾向が連続して継続した期間(頻度×期間=受信数)に基づいて、キャッシュ131bの使用状況を判定しているということもできる。また、キャッシュ131bに余裕ができた場合には、HDD131によるRMWを再開させることができる。これにより、ストレージ装置100における書き込み性能の向上を図れる。また、ストレージ装置100におけるデータへのアクセス性能の向上を図れる。
ところで、第1の実施の形態の情報処理は、制御部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ111にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体23に記録できる。
例えば、プログラムを記録した記録媒体23を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。ストレージ装置100またはCM110は、プロセッサ111およびRAM112を有するコンピュータを含むと考えてよい。コンピュータは、例えば、記録媒体23に記録されたプログラムまたは他のコンピュータ(例えば、管理装置200)から受信したプログラムを、RAM112やフラッシュメモリ113などの記憶装置に格納(インストール)してもよい。コンピュータは、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 記憶装置に対するデータの書き込みのコマンドを受信する受信部と、
前記コマンドの書き込みサイズと受信頻度と受信数とに基づいて、前記記憶装置によるリードモディファイライトに用いられるキャッシュの使用状況を判定し、判定結果に応じて前記リードモディファイライトを自装置により実行するか否かを決定する制御部と、
を有するストレージ制御装置。
(付記2) 前記制御部は、前記記憶装置への前記コマンドの書き込みサイズおよび頻度の組に対して前記記憶装置の応答時間を閾値よりも増大させる前記コマンドの数を示す情報と、前記コマンドの現状の書き込みサイズ、受信頻度および受信数とに基づいて前記キャッシュの使用状況を判定する、付記1記載のストレージ制御装置。
(付記3) 前記制御部は、前記コマンドを複数発行して前記記憶装置に送信し、書き込みサイズおよび書き込み頻度の組と発行数とに対する前記記憶装置の応答時間を計測することで前記情報を生成する、付記2記載のストレージ制御装置。
(付記4) 前記制御部は、前記記憶装置のベンダおよび機種毎に前記情報を生成する、付記3記載のストレージ制御装置。
(付記5) 前記制御部は、前記コマンドの受信数が、前記情報に登録された前記コマンドの数よりも小さい所定数に達すると前記キャッシュの空き容量が不足すると判定し、前記リードモディファイライトを前記自装置により実行すると決定する、付記2乃至4の何れか1つに記載のストレージ制御装置。
(付記6) 前記制御部は、前記リードモディファイライトの前記自装置での実行を開始した後、前記記憶装置に対する書き込みのコマンドを所定時間以上受信しない場合、前記リードモディファイライトの前記自装置による実行を停止する、付記1乃至5の何れか1つに記載のストレージ制御装置。
(付記7) 前記制御部は、書き込みのコマンドを複数発行して前記記憶装置に送信し、前記コマンドに対する前記記憶装置の応答時間を計測し、応答時間が閾値よりも増大するまでの経過時間に基づいて前記所定時間を決定する、付記6記載のストレージ制御装置。
(付記8) 前記制御部は、受信した前記コマンドのうち、前記記憶装置におけるデータの書き込み単位に整合しない前記コマンドを選択し、選択した前記コマンドに基づいて前記キャッシュの使用状況を判定する、付記1乃至7の何れか1つに記載のストレージ制御装置。
(付記9) 前記制御部は、複数の記憶装置それぞれに対し、前記リードモディファイライトを前記自装置により実行するか否かを決定する、付記1乃至8の何れか1つに記載のストレージ制御装置。
(付記10) 前記制御部は、RAIDグループ毎に、前記RAIDグループに属する前記複数の記憶装置に対する前記リードモディファイライトを前記自装置により実行するか否かを決定する、付記1乃至8の何れか1つに記載のストレージ制御装置。
(付記11) コンピュータに、
記憶装置に対するデータの書き込みのコマンドを受信し、
前記コマンドの書き込みサイズと受信頻度と受信数とに基づいて、前記記憶装置によるリードモディファイライトに用いられるキャッシュの使用状況を判定し、
判定結果に応じて前記リードモディファイライトを前記コンピュータにより実行するか否かを決定する、
処理を実行させる制御プログラム。
(付記12) コンピュータが、
記憶装置に対するデータの書き込みのコマンドを受信し、
前記コマンドの書き込みサイズと受信頻度と受信数とに基づいて、前記記憶装置によるリードモディファイライトに用いられるキャッシュの使用状況を判定し、
判定結果に応じて前記リードモディファイライトを前記コンピュータにより実行するか否かを決定する、
制御方法。
1 ストレージ制御装置
1a 受信部
1b 制御部
1c 記憶部
2 記憶装置
2a RMW用キャッシュ
2b 制御部
3 情報処理装置
T1 テーブル
W1,W2,W3 書き込みコマンド

Claims (7)

  1. 記憶装置へのデータの書き込みのコマンドの書き込みサイズおよび頻度の組ごとに、前記記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでの前記コマンドの数を示す性能情報を記憶する記憶部と、
    前記記憶装置に対するデータの書き込みの前記コマンドを受信する受信部と、
    前記受信部により所定時間内に受信された前記コマンドの書き込みサイズと受信頻度とを判定し、判定した書き込みサイズと受信頻度と前記性能情報とに基づいて、前記コマンドの受信数の上限値を決定し、前記受信部による前記コマンドの受信数が前記上限値に達すると、前記記憶装置によるリードモディファイライトによって前記キャッシュの空き容量が不足すると判定し、前記リードモディファイライトを自装置により実行する決定する制御部と、
    を有するストレージ制御装置。
  2. 前記制御部は、前記コマンドを複数発行して前記記憶装置に送信し、書き込みサイズおよび書き込み頻度の組と発行数とに対する前記記憶装置の応答時間を計測することで前記性能情報を生成する、請求項記載のストレージ制御装置。
  3. 前記制御部は、前記上限値を、前記性能情報に登録された前記コマンドの数よりも小さい数とする、請求項または記載のストレージ制御装置。
  4. 前記制御部は、前記リードモディファイライトの前記自装置での実行を開始した後、前記記憶装置に対する書き込みの前記コマンドを所定時間以上受信しない場合、前記リードモディファイライトの前記自装置による実行を停止する、請求項1乃至の何れか1項に記載のストレージ制御装置。
  5. 前記制御部は、受信した前記コマンドのうち、前記記憶装置におけるデータの書き込み単位に整合しない前記コマンドを選択し、選択した前記コマンドに基づいて前記キャッシュの使用状況を判定する、請求項1乃至の何れか1項に記載のストレージ制御装置。
  6. コンピュータに、
    記憶装置に対するデータの書き込みのコマンドを受信し、
    所定時間内に受信された前記コマンドの書き込みサイズと受信頻度とを判定し、
    前記記憶装置へのデータの書き込みの前記コマンドの書き込みサイズおよび頻度の組ごとに、前記記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでの前記コマンドの数を示す性能情報と、判定した書き込みサイズと受信頻度とに基づいて、前記コマンドの受信数の上限値を決定し、
    前記コマンドの受信数が前記上限値に達すると、前記記憶装置によるリードモディファイライトによって前記キャッシュの空き容量が不足すると判定し、前記リードモディファイライトを前記コンピュータにより実行する決定する、
    処理を実行させる制御プログラム。
  7. コンピュータが、
    記憶装置に対するデータの書き込みのコマンドを受信し、
    所定時間内に受信された前記コマンドの書き込みサイズと受信頻度とを判定し、
    前記記憶装置へのデータの書き込みの前記コマンドの書き込みサイズおよび頻度の組ごとに、前記記憶装置が備えるリードモディファイライト用のキャッシュが空き容量不足になるまでの前記コマンドの数を示す性能情報と、判定した書き込みサイズと受信頻度とに基づいて、前記コマンドの受信数の上限値を決定し、
    前記コマンドの受信数が前記上限値に達すると、前記記憶装置によるリードモディファイライトによって前記キャッシュの空き容量が不足すると判定し、前記リードモディファイライトを前記コンピュータにより実行する決定する、
    制御方法。
JP2015028397A 2015-02-17 2015-02-17 ストレージ制御装置、制御プログラムおよび制御方法 Expired - Fee Related JP6476969B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015028397A JP6476969B2 (ja) 2015-02-17 2015-02-17 ストレージ制御装置、制御プログラムおよび制御方法
US14/961,390 US9910599B2 (en) 2015-02-17 2015-12-07 Cache read-modify-write process control based on monitored criteria

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015028397A JP6476969B2 (ja) 2015-02-17 2015-02-17 ストレージ制御装置、制御プログラムおよび制御方法

Publications (2)

Publication Number Publication Date
JP2016151850A JP2016151850A (ja) 2016-08-22
JP6476969B2 true JP6476969B2 (ja) 2019-03-06

Family

ID=56621220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015028397A Expired - Fee Related JP6476969B2 (ja) 2015-02-17 2015-02-17 ストレージ制御装置、制御プログラムおよび制御方法

Country Status (2)

Country Link
US (1) US9910599B2 (ja)
JP (1) JP6476969B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6540363B2 (ja) * 2015-08-19 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
US10768823B2 (en) * 2016-04-12 2020-09-08 Hewlett Packard Enterprise Development Lp Flow control for unaligned writes in network storage device
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
US11294824B2 (en) 2020-01-03 2022-04-05 Western Digital Technologies, Inc. System and method for reduced latency of read-modify-write operations
JP2022093083A (ja) * 2020-12-11 2022-06-23 富士通株式会社 情報処理装置及び制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2917188B2 (ja) 1992-08-26 1999-07-12 株式会社日立製作所 アレイ型ディスクシステムにおける書き込み制御方式
US5740465A (en) 1992-04-08 1998-04-14 Hitachi, Ltd. Array disk controller for grouping host commands into a single virtual host command
US5592432A (en) * 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US6516380B2 (en) * 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
JP2010033396A (ja) * 2008-07-30 2010-02-12 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US20120221809A1 (en) * 2011-02-28 2012-08-30 Hitachi, Ltd. Storage apparatus and data processing method of the same
WO2012137252A1 (en) * 2011-04-06 2012-10-11 Hitachi, Ltd. Storage apparatus and its data processing method

Also Published As

Publication number Publication date
US9910599B2 (en) 2018-03-06
JP2016151850A (ja) 2016-08-22
US20160239204A1 (en) 2016-08-18

Similar Documents

Publication Publication Date Title
JP6476969B2 (ja) ストレージ制御装置、制御プログラムおよび制御方法
JP4372134B2 (ja) データ比較機能を有するストレージシステム
US8271612B2 (en) On-demand virtual storage capacity
US8590001B2 (en) Network storage system with data prefetch and method of operation thereof
US20170185520A1 (en) Information processing apparatus and cache control method
US20090300283A1 (en) Method and apparatus for dissolving hot spots in storage systems
US20140013068A1 (en) Information processing apparatus, storage system, and write control method
US8332586B2 (en) Information processing system for measuring the cache effect in a virtual capacity
US9342456B2 (en) Storage control program for hierarchy relocation control, storage system with hierarchy relocation control and hierarchy control apparatus thereof
JP2013210847A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP6540363B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US10346051B2 (en) Storage media performance management
US20160196085A1 (en) Storage control apparatus and storage apparatus
JP2016118821A (ja) ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP5998764B2 (ja) 情報処理装置、ログ出力方法およびログ出力プログラム
US20130080725A1 (en) Control apparatus, control method, and storage apparatus
US11429431B2 (en) Information processing system and management device
JP2014041471A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10133517B2 (en) Storage control device
JP2013196319A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9734055B2 (en) Information processing apparatus and access control method
US7657704B2 (en) Method and related apparatus for verifying array of disks
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム
JP6993579B2 (ja) ストレージ制御装置およびストレージ制御プログラム
WO2014010016A1 (ja) プログラム、データ管理方法、および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6476969

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees