[go: up one dir, main page]

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

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

Info

Publication number
JP6540363B2
JP6540363B2 JP2015162115A JP2015162115A JP6540363B2 JP 6540363 B2 JP6540363 B2 JP 6540363B2 JP 2015162115 A JP2015162115 A JP 2015162115A JP 2015162115 A JP2015162115 A JP 2015162115A JP 6540363 B2 JP6540363 B2 JP 6540363B2
Authority
JP
Japan
Prior art keywords
write
storage
hdd
write data
unaligned
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
JP2015162115A
Other languages
English (en)
Other versions
JP2017041076A (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 JP2015162115A priority Critical patent/JP6540363B2/ja
Priority to US15/202,003 priority patent/US10191660B2/en
Publication of JP2017041076A publication Critical patent/JP2017041076A/ja
Application granted granted Critical
Publication of JP6540363B2 publication Critical patent/JP6540363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

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

Description

本発明は、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムに関する。
従来、所定値で割り切れるアドレス範囲へのアクセスだけが行えるストレージに対して、所定値で割り切れないアドレス範囲の書き込みデータであるアンアラインドとなる書き込みデータを書き込む際に、リードモディファイライト処理を行う技術がある。また、リードモディファイライト処理に用いる記憶領域を有するストレージがある。
関連する先行技術として、例えば、データ記憶装置において、リードモディファイライト処理の前にバッファメモリに格納されているサブセクタの各データを結合して、ロングセクタのフォーマットに変換するものがある。また、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする技術がある。
特開2013−157068号公報 特開2010−33396号公報
しかしながら、従来技術によれば、ハードディスクドライブ(HDD:Hard Disk Drive)等のストレージの上位となる装置が、ストレージにリードモディファイライト処理を行わせると、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能が低下する場合がある。例えば、リードモディファイライト処理に用いる記憶領域に空き領域がない際に、ストレージにリードモディファイライト処理を行わせると、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能が低下する。
1つの側面では、本発明は、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能の低下を抑制できるストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムを提供することを目的とする。
本発明の一側面によれば、アンアラインドとなる書き込みデータの書き込み要求に応じて書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶し、ストレージへのアンアラインドとなる書き込みデータが発生した際に、使用情報に基づいて、書き込みデータの書き込み要求をストレージに送信する処理、または、自装置による書き込みデータに対するリードモディファイライト処理のいずれか一方を実行するストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムが提案される。
本発明の一態様によれば、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能の低下を抑制できるという効果を奏する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。 図2は、情報処理システム200の一例を示す説明図である。 図3は、ディスクアレイ装置202のハードウェア構成例を示す説明図である。 図4は、管理装置201のハードウェア構成例を示す説明図である。 図5は、HDD102#0の例を示す説明図である。 図6は、CM301の機能構成例を示す説明図である。 図7は、ライトコマンド以外のコマンド発行時処理手順の一例を示すフローチャートである。 図8は、ライトコマンド発行時処理手順の一例を示すフローチャート(その1)である。 図9は、ライトコマンド発行時処理手順の一例を示すフローチャート(その2)である。 図10は、ライトコマンド発行時処理手順の一例を示すフローチャート(その3)である。 図11は、メディアキャッシュ状態管理テーブル611の記憶内容の一例を示す説明図である。
以下に図面を参照して、開示のストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。ストレージ制御装置101は、1つ以上のストレージを制御するコンピュータである。ストレージは、データを保存する装置である。例えば、ストレージは、例えば、HDDやSSD(Solid State Drive)等である。以下の例では、ストレージがHDDであるとする。例えば、ストレージ制御装置101は、上位となるサーバ等に、ストレージの記憶領域を提供する。
また、ストレージ制御装置101は、RAID(Redundant Arrays of Inexpensive Disks)技術により、複数のHDDを組み合わせて仮想的なディスクを提供する。RAID技術には、仮想的なディスクの形成の仕方を表すRAIDレベルが存在する。ここで、本実施の形態では、RAID0〜6のうちのいずれのRAIDレベルであってもよく、また、RAID1+5というように、RAIDレベルを組み合わせたレベルを対象としてもよい。
また、近年、HDDの大容量化および1度に処理されるデータ量の増大化に伴い、物理セクタのサイズを、512バイト(Bytes)から4キロバイト(KB:Kilo−Bytes)に拡張し、HDD内のトラック上のギャップを減らすAdvanced Formatという方法がある。Advanced Formatに対応したHDDは、512バイトアクセスだけを行うホストに対応するために、HDDの内部は4KBの物理セクタでありながら、外部からは512バイトの論理セクタとしてアクセスが可能なエミュレート機能を有する。
Advanced Formatに対応したHDDは、エミュレート機能により、512バイト単位でのアクセスが可能である。以下の説明では、単にHDDと記載した場合、Advanced Formatに対応したHDDであるとする。HDDは、物理セクタのサイズである4KBのバウンダリアクセスとならない書き込みにおいては、HDDの物理セクタへの書き込みは4KB単位でしか実施できない。ここで、バウンダリアクセスとは、所定値で割り切れるアドレス範囲へのアクセスである。また、所定値で割り切れるアドレス範囲のことを、「所定値+境界(バウンダリ)」と呼ぶことがある。例えば、4KBで割り切れるアドレス範囲のことを「4KB境界」と呼ぶことがある。所定値は、4KB、8KB、16KB等どのような値でもよく、本実施の形態では、所定値は、4KBとなる。
また、所定値で割り切れるアドレス範囲となる条件は、アドレス範囲の先頭のアドレスと末尾のアドレスとが所定値で割り切れるアドレスとなることである。例えば、アドレス範囲の先頭のアドレスが所定値で割り切れるアドレスであり、かつ、アクセス範囲となるデータ長が、所定値で割り切れる値となるアクセスは、バウンダリアクセスとなる。
以下の記載では、バウンダリアクセスとなるアクセス先のデータを、アラインド(Aligned)となるデータと称する。すなわち、アラインドとなるデータは、データの先頭アドレスと末尾のアドレスとが所定値で割り切れるアドレスとなるデータである。これに対し、バウンダリアクセスとならないアクセス先のデータを、アンアラインド(UnAligned)となるデータと称する。すなわち、アンアラインドとなるデータは、データの先頭アドレスまたは末尾のアドレスの少なくともいずれか一方のアドレスが所定値で割り切れないアドレスとなるデータである。
アンアラインドとなる書き込みデータの書き込み要求を受け付けると、HDDは、以下に示すリードモディファイライト(RMW:Read Modify Write)処理を行う。まず、HDDは、アンアラインドとなる書き込みデータをメディアキャッシュ(Media Cache)と呼ばれる領域に書き込む。メディアキャッシュを含めたHDDのハードウェア構成を図5で示す。次に、HDDは、4KB境界の物理セクタのデータをHDD内のDRAM(Dynamic Random Access Memory)に読み出す(Read)。HDD内のDRAMは、任意のアドレスにアクセスすることができる記憶領域である。そして、HDDは、メディアキャッシュ上のデータについて、サーバ等の上位からの書き込み要求のあった論理セクタの書き込みデータを更新する(Modify)。ここで、更新する際に、HDDは、HDD内のDRAMに書き込まれた4KB境界の物理セクタのデータに、アンアラインドとなる書き込みデータを上書きすることにより、更新を行う。
次に、HDDは、更新されたメディアキャッシュ上のデータを物理セクタに書き戻す(Write)。なお、アラインドとなる書き込みデータの書き込み要求については、HDDは、RMW処理を行わず、直接磁気ディスクに書き込みデータを書き込む。
また、RMW処理を、HDDの上位となる装置で行うこともできる。一般的に、メディアキャッシュの利用により、HDDの上位となる装置がRMW処理を行うよりもHDDがRMW処理を行う方が、HDDとHDDの上位となる装置とのインタフェースを介さない分、高い書き込み性能が得られる。
しかしながら、HDDの上位となる装置が、HDDにRMW処理を行わせると、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能が低下する場合がある。例えば、メディアキャッシュの空き領域がない際に、HDDにRMW処理を行わせようとすると、メディアキャッシュに空き領域が発生するまで待機することになるため、アンアラインドとなる書き込みデータの書き込み要求に対する応答性能が低下する。ここで、メディアキャッシュの空き領域がなくなる場合は、例えば、アンアラインドとなる書き込みデータの書き込み要求がHDDに連続して送信されて、RMW処理が完了しメディアキャッシュ上の書き込みデータを解放する処理が間に合わなくなった場合である。
また、HDDの上位の装置により、HDDの性能テストを行い、HDDの性能テストのデータを基に、メディアキャッシュの枯渇を予測し、HDDと、HDDの上位の装置とによるRMW処理を動的に切り替えることが考えられる。しかしながら、この場合、故障したHDDを交換する運用を前提としていると、故障したHDDを交換するたびに性能テストを行うことになり、性能テスト中は交換したHDDにデータを格納できない時間が発生する。また、性能テストで書き込みを行う場合、性能テストで書き込みを行った場合は通常の書き込みと性能テストによる書き込みとなり、Write素子への負荷が性能テストによる書き込みの分大きくなるため、HDDの寿命を縮めることになる。
そこで、本実施の形態では、HDDからのメディアキャッシュの使用状況に基づいて、RMW処理の主体をストレージ制御装置101とHDDとで切り替える方法について説明する。
図1を用いて、ストレージ制御装置101の動作を説明する。ストレージ制御装置101は、HDD102#0〜#Nを制御する。そして、ストレージ制御装置101は、RAID技術によるHDD102#0〜#Nを組み合わせることにより得られた仮想的なディスクを、ストレージ制御装置101を利用する装置に提供する。ここで、ストレージ制御装置101は、HDD102#0〜#Nにより、1つの仮想的なディスクを形成してもよいし、複数の仮想的なディスクを形成してもよい。例えば、HDD102#0〜#Nにより1つの仮想的なディスクを形成する際には、HDD102#0〜#Nが1つのRAIDグループに属することになる。また、HDD102#0〜#Nは、Advanced Formatに対応しており、それぞれ、メディアキャッシュ103#0〜#Nを有する。なお、ストレージ制御装置101は、Advanced Formatに対応するHDDと、Advanced Formatに対応していないHDDとを混在して制御してもよい。
図1の(1)で示すように、ストレージ制御装置101は、HDD102#0〜#Nから使用情報111を受信する。ストレージ制御装置101は、受信した使用情報111をストレージ制御装置101がアクセス可能な記憶部に記憶する。使用情報111は、HDD102のメディアキャッシュ103の使用状況を示す情報である。例えば、使用情報111は、メディアキャッシュ103が使用されている状況を示す識別子か、メディアキャッシュ103が使用されていない状況を示す識別子かのいずれかの識別子となる。ここで、メディアキャッシュ103が使用されている状況は、メディアキャッシュ103の空き容量が所定の閾値以下である状況である。同様に、メディアキャッシュ103が使用されていない状況は、メディアキャッシュ103の空き容量が所定の閾値以上である状況である。
以下、メディアキャッシュ103が使用されている状況を示す識別子を「Busy」とする。同様に、メディアキャッシュ103が使用されていない状況を示す識別子を「Free」とする。
また、使用情報111を受信するタイミングは、いつでもよい。例えば、ストレージ制御装置101は、HDD102に対してコマンドを送信したことに応じて、HDD102からコマンドの実行結果を受信するとともに使用情報111を受信してもよい。ここで、コマンドは、特定の機能の実行を指示する命令である。例えば、HDD102に送信するコマンドには、あるアドレスへの書き込みデータの書き込み要求を指示する命令であるライトコマンドや、あるアドレスの読み出し要求を指示する命令であるリードコマンドや、テストユニットレディコマンド等がある。
また、HDD102は、コマンドの実行結果をストレージ制御装置101に送信する際に、メディアキャッシュ103の使用状況が変化したときに限り使用情報111を送信してもよいし、常に使用情報111を送信してもよい。また、ストレージ制御装置101が使用情報111の送信要求をHDD102に送信し、送信要求を受け付けたHDD102が使用情報111をストレージ制御装置101に送信してもよい。また、ストレージ制御装置101は、メディアキャッシュ103の使用状況が変化した際にHDD102が自発的に送信した使用情報111を受信してもよい。以下の例では、ストレージ制御装置101は、HDD102に対してコマンドを送信したことに応じて、コマンドの実行結果を受信するとともに、メディアキャッシュ103の使用状況が変化したときに限り使用情報111を受信するものとする。
図1の例では、ストレージ制御装置101は、HDD102#0から使用情報111#0を受信し、HDD102#1から使用情報111#1を受信し、…、HDD102#Nから使用情報111#Nを受信する。また、図1に示す使用情報111#0は、「Free」を示し、図1に示す使用情報111#1は、「Busy」を示すものとする。
そして、HDD102へのアンアラインドとなる書き込みデータが発生したとする。この際、図1の(2)で示すように、ストレージ制御装置101は、使用情報111に基づいて、書き込みデータの書き込み要求をHDD102に送信する処理、または、自装置による書き込みデータに対するRMW処理のいずれか一方を実行する。ここで、書き込みデータが発生する場合とは、例えば、ストレージ制御装置101が、ストレージ制御装置101の上位となるサーバから書き込み要求を受け付けた場合である。また、HDD#0〜#Nのうち、いずれかのHDDのデータを、他のHDDに移動する場合にも、書き込みデータが発生することになる。
図1の例では、ストレージ制御装置101の上位となるサーバから仮想的なディスクへの書き込み要求があったとする。そして、ストレージ制御装置101が書き込み先を判断した結果、HDD#0への書き込みデータwd#0_uとHDD#1への書き込みデータwd#1_uとが発生したとする。ここで、書き込みデータwd#0_u、wd#1_uは、ともに、アンアラインドであるとする。
書き込みデータwd#0_uについて、使用情報111#0が「Free」であるので、ストレージ制御装置101は、書き込みデータwd#0_uの書き込み要求となるライトコマンドを、HDD102#0に送信する。ライトコマンドを受け付けたHDD102#0は、書き込みデータwd#0_uに対するRMW処理を実行し、アラインドとなる書き込みデータwd#0_aを得る。そして、HDD102#0は、書き込みデータwd#0_aを磁気ディスクに書き込む。
また、書き込みデータwd#1_uについて、使用情報111#1が「Busy」であるので、ストレージ制御装置101は、書き込みデータwd#1_uに対するRMW処理を実行し、アラインドとなる書き込みデータwd#1_aを得る。そして、ストレージ制御装置101は、書き込みデータwd#1_aの書き込み要求となるライトコマンドをHDD102#1に送信する。ライトコマンドを受け付けたHDD102#1は、書き込みデータwd#1_aを磁気ディスクに書き込む。
なお、図1における書き込みデータwd#0_a、wd#1_aについて、塗りつぶした領域が、それぞれ、書き込みデータwd#0_u、wd#1_uと同一のデータであるところを示し、白抜きの領域が、磁気ディスクから読み出したデータであることを示す。
このように、ストレージ制御装置101は、2種類のRMW処理を最適化することにより、HDD102への書き込み時の性能を向上させることができる。また、ストレージ制御装置101は、HDD102に対して性能テストを行わないため、HDD102にデータを格納できない時間を発生させないようにすることができる。また、ストレージ制御装置101は、HDD102に対して性能テストを行わないため、性能テストにより発生したHDD102の寿命を縮めることを抑止することができる。次に、ストレージ制御装置101を、ディスクアレイ装置に適用した例を、図2を用いて説明する。
図2は、情報処理システム200の一例を示す説明図である。情報処理システム200は、管理装置201と、ディスクアレイ装置202と、サーバ203とを含む。ディスクアレイ装置202およびサーバ203は、SAN(Storage Area Network)204に接続される。ディスクアレイ装置202、管理装置201およびサーバ203は、ネットワーク205に接続される。ネットワーク205は、例えばLAN(Local Area Network)である。
ディスクアレイ装置202は、複数のHDDを内蔵し、サーバ203の処理に用いられるデータを記憶する。ディスクアレイ装置202は、データのライトコマンドをサーバ203から受信すると、内蔵のHDDにデータを書き込む。ディスクアレイ装置202は、書き込み結果をサーバ203に送信する。また、ディスクアレイ装置202は、データのリードコマンドをサーバ203から受信すると、内蔵のHDDからデータを読み出し、読み出したデータをサーバ203に送信する。ディスクアレイ装置202は、HDDと併せてSSDを内蔵してもよい。
管理装置201は、ディスクアレイ装置202の運用管理を行うサーバコンピュータである。管理装置201は、例えば、ネットワーク205を介してディスクアレイ装置202に動作制御の設定を行う。管理装置201は、ディスクアレイ装置202により実行されるプログラム、例えば、ファームウェアのプログラムを、ネットワーク205を介してディスクアレイ装置202に送信することがある。
サーバ203は、ディスクアレイ装置202に格納されたデータにアクセスするサーバコンピュータである。サーバ203は、業務用のアプリケーションのプログラムを実行し、業務処理サービスをユーザに提供する。
図3は、ディスクアレイ装置202のハードウェア構成例を示す説明図である。ディスクアレイ装置202は、コントローラモジュール(CM:Controller Module)301、302とDE(Drive Enclosure)303とを有する。
CM301、302は、DE303が有するHDD102の記憶領域の管理や記憶領域に対するデータアクセスを制御する。CM301、302はディスクアレイ装置202内で冗長化され、データへのアクセス性能や耐故障性の向上が図られる。CM301、302は、図1に示したストレージ制御装置101の一例である。以下の例では、CM301について説明する。
CM301は、プロセッサ311、RAM312、フラッシュメモリ313、CA(Channel Adaptor)314、NA(Network Adaptor)315およびDI(Drive Interface)316を有する。プロセッサ311〜DI316は、バス317に接続される。CM302もCM301と同様のハードウェアを有する。
プロセッサ311は、CM301の情報処理を制御するプロセッサである。プロセッサ311は、マルチプロセッサであってもよい。プロセッサ311は、例えばCPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などである。プロセッサ311は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM312は、CM301の主記憶装置である。RAM312は、プロセッサ311に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。フラッシュメモリ313は、CM301の補助記憶装置である。フラッシュメモリ313は、不揮発性の半導体メモリである。フラッシュメモリ313は、ファームウェアのプログラムなどを記憶する。
CA314は、SAN204を介してサーバ203と通信する通信インタフェースである。CA314の通信インタフェースの種別は、例えばファイバチャネルやSCSI(Small Computer System Interface)などである。CM301は、複数個のCAを有して、CAを冗長構成としてもよい。
NA315は、ネットワーク205を介して他のコンピュータと通信する通信インタフェースである。NA315の通信インタフェースの種別は、例えばLAN接続用のNIC(Network Interface Card)である。CM301は、複数個のNAを有して、NAを冗長構成としてもよい。
DI316は、DE303と通信する通信インタフェースである。DI316の通信インタフェースの種別は、例えばファイバチャネルやSCSIなどである。CM301は、複数個のDIを有して、DIを冗長構成としてもよい。
DE303は、HDD102#0〜#Nを含む複数のHDDを収容する筐体である。Nは、1以上の整数である。そして、CM301、302は、HDD102#0〜#Nを用いてRAID技術により、データへのアクセス性能や各HDDの耐障害性を向上した論理的な記憶領域を実現する。
図4は、管理装置201のハードウェア構成例を示す説明図である。管理装置201は、プロセッサ401と、RAM402と、HDD403と、画像信号処理部404と、入力信号処理部405と、読み取り装置406と、通信インタフェース407とを有する。プロセッサ401〜通信インタフェース407は管理装置201のバス408に接続される。
プロセッサ401は、管理装置201の情報処理を制御する。プロセッサ401は、マルチプロセッサであってもよい。プロセッサ401は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ401は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM402は、管理装置201の主記憶装置である。RAM402は、プロセッサ401に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM402は、プロセッサ401による処理に用いる各種データを記憶する。
HDD403は、管理装置201の補助記憶装置である。HDD403は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD403は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。管理装置201は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を有してもよく、複数の補助記憶装置を有してもよい。
画像信号処理部404は、プロセッサ401からの命令に従って、管理装置201に接続されたディスプレイ411に画像を出力する。ディスプレイ411としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部405は、管理装置201に接続された入力デバイス412から入力信号を取得し、プロセッサ401に出力する。入力デバイス412としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
読み取り装置406は、記録媒体413に記録されたプログラムやデータを読み取る装置である。記録媒体413として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto−Optical disk)を使用することができる。また、記録媒体413として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置406は、例えば、プロセッサ401からの命令に従って、記録媒体413から読み取ったプログラムやデータをRAM402またはHDD403に格納する。プロセッサ401は、記録媒体413から読み取ったプログラムやデータ、例えば、ディスクアレイ装置202のファームウェアのプログラムやデータをディスクアレイ装置202に送信することもできる。
通信インタフェース407は、ネットワーク205を介して他の装置と通信を行う。通信インタフェース407は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図5は、HDD102#0の例を示す説明図である。HDD102#0は、プロセッサ501と、メディアキャッシュ103と、磁気ディスク502_0〜Mとを有する。Mは0以上の整数である。HDD102#1〜#NもHDD102#0と同様のハードウェアを有する。
プロセッサ501は、HDD102#0におけるRMWを実行する。プロセッサ501は、RMW用途のASICやFPGAなどでもよいし、RMW用のプログラムを実行する汎用プロセッサでもよい。
メディアキャッシュ103は、プロセッサ501によるRMW処理に用いられる記憶領域である。メディアキャッシュは、RMW処理において、データを一時的に記憶するキャッシュとして利用される。メディアキャッシュ103は、HDD102#0が有する磁気ディスク502_0〜Mの記憶領域の一部分でもよいし、磁気ディスク502とは別個に設けられた半導体メモリでもよい。RMW用のプロセッサ501およびメディアキャッシュ103の実装方法は、HDD102のベンダによって異なるものとなる。例えば、メディアキャッシュ103が、磁気ディスク502_0〜Mの記憶領域の一部分であり、複数の領域に分割して存在してもよい。また、メディアキャッシュ103のデータサイズは、HDD102のベンダによって様々なものとなる。また、メディアキャッシュ103が存在しないHDD102も有り得る。
図5では、磁気ディスク502_0を例として、磁気ディスク502_0の内部の例を示す。磁気ディスク502_1〜Mも磁気ディスク502_0と同様である。磁気ディスク502_1上の同心円の縁に形成される領域はトラックと呼ばれる。図5で示すトラックTrは、磁気ディスク502_0上における複数のトラックのうちの1つである。トラックTr上を所定サイズ単位に物理的に区切った領域は、物理セクタと呼ばれる。物理セクタScは、トラックTr上における複数の物理セクタのうちの1つである。
HDD102#1は、Advanced Formatに対応しているため、1つの物理セクタのサイズが、4096バイト=4KBとなる。ここで、磁気ディスク502上に4KBの物理セクタが配置された構造を4KBのアライメント(Alignment)と呼称することもある。また、1つの物理セクタのサイズは、8KB、16KBなど、他のサイズでもよい。この場合、HDD102#0の磁気ディスク502に対するデータ書き込みの操作は、4KBの物理セクタ単位に行われる。すなわち、当該物理セクタがHDD102#0におけるデータの書き込み単位となる。
ここで、サーバ203で動作するOSなどのソフトウェアによっては、セクタサイズを512バイトとしてデータ書き込みを行うものもある。このようなソフトウェアからのライトコマンドでは、512バイトの整数倍の書き込みが要求される。すると、HDD102#0における物理セクタの4KBアライメントと整合しない書き込みが生じ得る。このような、4KBアライメントと整合しない書き込みが要求された場合に、プロセッサ501は、RMW処理を実行する。
(CM301の機能構成例)
図6は、CM301の機能構成例を示す説明図である。CM301は、制御部600を有する。制御部600は、応答結果受信部601と、判定部602と、RMW実行部603と、送信部604と、を含む。制御部600は、記憶装置に記憶されたプログラムをプロセッサ311が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したRAM312、フラッシュメモリ313などである。また、各部の処理結果は、プロセッサ311のレジスタや、プロセッサ311のキャッシュメモリ、RAM312等に格納される。また、CM302も、CM301と同等な機能を有する。
また、CM301は、メディアキャッシュ状態管理テーブル611にアクセス可能である。メディアキャッシュ状態管理テーブル611の情報は、RAM312といった記憶装置に格納されている。メディアキャッシュ状態管理テーブル611は、HDD102#0〜#Nの使用情報111を記憶するテーブルである。メディアキャッシュ状態管理テーブル611の設定内容の一例は、図11で示す。
応答結果受信部601は、HDD102#0〜#Nから使用情報111を受信する。また、受信した使用情報111は、メディアキャッシュ状態管理テーブル611に設定される。
判定部602は、HDD102#0〜#Nのいずれかへの書き込みデータが発生した際に、書き込みデータがアラインドかアンアラインドかを判定する。例えば、判定部602は、書き込みデータの先頭のアドレスと、書き込みデータのデータ長とが、ともに所定値で割り切れれば、書き込みデータがアンアラインドであると判定する。
制御部600は、判定部602がHDD102#0〜#Nのいずれかへのアンアラインドとなる書き込みデータが発生したと判定した場合に、使用情報111に基づいて、送信部604による処理、または、RMW実行部603による処理のいずれか一方を実行する。
例えば、HDD102#0〜#Nのいずれかへのアンアラインドとなる書き込みデータが発生した際に、書き込み先のHDD102の使用情報111が「Busy」であれば、RMW実行部603は、書き込みデータに対するRMW処理を実行する。RMW処理によって得られたアラインドとなる書き込みデータは、書き込み先のHDD102に送信される。
また、HDD102#0〜#Nのいずれかへのアンアラインドとなる書き込みデータが発生した際に、書き込み先のHDD102の使用情報111が「Free」であれば、送信部604は、書き込みデータの書き込み要求を書き込み先のHDD102に送信する。これにより、書き込み先となるHDD102は、書き込みデータに対するRMW処理を実行する。
次に、CM301によるHDD102へのコマンド発行時の処理を示したフローチャートを、図7〜図10を用いて説明する。
図7は、ライトコマンド以外のコマンド発行時処理手順の一例を示すフローチャートである。ライトコマンド以外のコマンド発行時処理は、ライトコマンド以外のコマンドをCM301が発行する際に、CM301とHDD102とが行う処理である。
CM301が、コマンド対象のHDD102へライトコマンド以外のコマンドを発行する(ステップS701)。ここで、ライトコマンド以外のコマンドとは、例えば、リードコマンドや、テストユニットレディコマンド等がある。
コマンドを受け付けたコマンド対象のHDDが、CM301へコマンドの実行結果とメディアキャッシュ103の使用状況を示す識別子とを送信する(ステップS702)。実行結果と識別子とを受け付けたCMが、コマンド対象のHDDから受信した識別子を基にメディアキャッシュ状態管理テーブル611を更新する(ステップS703)。メディアキャッシュ状態管理テーブル611の更新例は、図11で示す。ステップS703の処理終了後、CM301とHDD102とは、ライトコマンド以外のコマンド発行時処理を終了する。
図8は、ライトコマンド発行時処理手順の一例を示すフローチャート(その1)である。また、図9は、ライトコマンド発行時処理手順の一例を示すフローチャート(その2)である。また、図10は、ライトコマンド発行時処理手順の一例を示すフローチャート(その3)である。ライトコマンド発行時処理は、CM301がライトコマンドをHDD102に発行する際に、CM301とHDD102とが行う処理である。なお、図9で示す各ステップは、ライトデータがアラインドである際の処理を示す。また、図10で示す各ステップは、ライトデータがアンアラインドであり、かつ、メディアキャッシュ103が枯渇していない場合の処理を示す。
CM301が、HDD102にこれから発行しようとしているライトコマンドのライトデータがアラインドかアンアラインドかを判定する(ステップS801)。そして、CM301が、ライトコマンドのライトデータがアンアラインドか否かを判断する(ステップS802)。ライトコマンドのライトデータがアンアラインドである場合(ステップS802:Yes)、CM301が、メディアキャッシュ状態管理テーブル611のうちのアクセス対象のHDD102のフィールドを参照する(ステップS803)。そして、参照結果に基づいて、CM301は、アクセス対象のHDD102のメディアキャッシュ103の状態がBusyか否かを判断する(ステップS804)。アクセス対象のHDD102のメディアキャッシュ103の状態がBusyである場合(ステップS804:Yes)、CM301が、ライトコマンドのライトデータに対するRMW処理を実行する(ステップS805)。
そして、アクセス対象のHDD102が、CM301へライトコマンドの実行結果とメディアキャッシュ103の使用状況を示す識別子とを送信する(ステップS806)。なお、ステップS806の処理において、CM301は、RMW処理により、リードコマンドとライトコマンドとをHDD102に送信することになる。従って、CM301は、RMW処理におけるリードコマンドの実行結果を受け付けた際に識別子を併せて受け付ける場合もあるし、RMW処理におけるライトコマンドの実行結果を受け付けた際に識別子を併せて受け付ける場合もある。
実行結果と識別子とを受け付けたCM301が、アクセス対象のHDD102から受信した識別子を基にメディアキャッシュ状態管理テーブル611を更新する(ステップS807)。ステップS807の処理終了後、CM301とHDD102とは、ライトコマンド発行時処理を終了する。
ライトコマンドのライトデータがアンアラインドでない場合(ステップS802:No)、CM301が、アラインドデータを含むライトコマンドをアクセス対象のHDD102に送信する(ステップS901)。ライトコマンドを受け付けたアクセス対象のHDD102が、アラインドデータを磁気ディスク502に書き込む(ステップS902)。そして、アクセス対象のHDD102が、CM301へライトコマンドの実行結果とメディアキャッシュの使用状況を示す識別子とを送信する(ステップS903)。実行結果と識別子とを受け付けたCM301が、アクセス対象のHDD102から受信した識別子を基にメディアキャッシュ状態管理テーブル611を更新する(ステップS904)。ステップS904の処理終了後、CM301とHDD102とは、ライトコマンド発行時処理を終了する。
アクセス対象のHDDのメディアキャッシュ103の状態がFreeである場合(ステップS804:No)、CM301が、アンアラインドデータを含むライトコマンドをアクセス対象のHDD102に送信する(ステップS1001)。ライトコマンドを受け付けたアクセス対象のHDD102が、RMW処理を実行する(ステップS1002)。そして、アクセス対象のHDDが、RMW処理によって得られたアラインドデータを磁気ディスク502に書き込む(ステップS1003)。次に、アクセス対象のHDDが、CM301へライトコマンドの実行結果とメディアキャッシュ103の使用状況を示す識別子とを送信する(ステップS1004)。
実行結果と識別子とを受け付けたCM301が、アクセス対象のHDD102から受信した識別子を基にメディアキャッシュ状態管理テーブル611を更新する(ステップS1005)。ステップS1005の処理終了後、CM301とHDD102とは、ライトコマンド発行時処理を終了する。
図11は、メディアキャッシュ状態管理テーブル611の記憶内容の一例を示す説明図である。図11では、メディアキャッシュ状態管理テーブル611の初期状態を示すメディアキャッシュ状態管理テーブル611aと、メディアキャッシュ状態管理テーブル611が初期状態から更新された状態を示すメディアキャッシュ状態管理テーブル611bとを示す。
初期状態を示すメディアキャッシュ状態管理テーブル611aは、HDD102#0〜#Nのそれぞれのメディアキャッシュ103がFreeであることを示す。そして、HDD102#1がアンアラインドデータのライトコマンドを受け付けたことによりBusyを応答した結果、メディアキャッシュ状態管理テーブル611が更新された状態が、メディアキャッシュ状態管理テーブル611bが示す状態である。メディアキャッシュ状態管理テーブル611bは、HDD102#1のメディアキャッシュ103がBusyであり、HDD102#0、#2〜#Nのそれぞれのメディアキャッシュ103がFreeであることを示す。
以上説明したように、CM301は、HDD102#0〜#Nから受け付けた使用情報111#0〜#Nに基づいて、RMW処理の主体をCM301と、書き込み先のHDD102とで切り替える。これにより、CM301は、メディアキャッシュ103の枯渇中にHDD102にRMW処理を行わせることを避けることができ、書き込み要求に対する応答性能の低下を抑えることができる。
また、CM301は、CM301がコマンドをHDD102#0〜#Nのいずれかに送信したことに応じて、コマンドを送信したHDD102からコマンドの実行結果を受け付けるとともに、使用情報111を受け付けてもよい。これにより、HDD102は、使用情報111の送信先を予め設定しなくてよい。例えば、図3で示したように、ディスクアレイ装置202内にはCMが複数ある。従って、HDD102が自発的に使用情報111を送信する場合には、ディスクアレイ装置202の管理者は、複数のCMのうちのいずれに使用情報111を送信するかを設定することになる。または、HDD102が、全てのCMに使用情報111を送信するようにすると、ディスクアレイ装置202の負荷が増えることになる。
また、HDD102は、CM301にコマンドの実行結果を送信する際にメディアキャッシュ103の使用状況が変化したときに限り使用情報111を送信しつつ、メディアキャッシュ103の使用状況が変化した際に使用情報111を自発的に送信してもよい。これにより、CM301が、メディアキャッシュ103の使用状況をより正確に把握することができて、書き込み要求に対する応答性能を向上することができる。
例えば、CM301が、あるHDD102にライトコマンドを送信し、あるHDD102から、ライトコマンドの実行結果とともに、使用情報111として「Busy」を受け付けたとする。この後、あるHDD102は、RMW処理を完了させてメディアキャッシュ103が使用されていない状況となる。この状況となった後、あるHDD102は、使用情報111として「Free」をCM301に自発的に送信する。この後、CM301があるHDD102にいかなるコマンドも送信しないまま、あるHDD102に対してアンアラインドとなる書き込みデータが発生したとする。この場合、CM301は、メディアキャッシュ状態管理テーブル611内の使用情報111が「Free」であるため、あるHDD102にアンアラインドとなる書き込みデータを送信し、あるHDD102にRMW処理を行わせることができる。
これに対し、RMW処理を完了させてメディアキャッシュ103が使用されていない状況となった後、あるHDD102が、使用情報111として「Free」をCM301に送信しなかったとする。そして、CM301があるHDD102にいかなるコマンドも送信しないまま、あるHDD102に対してアンアラインドとなる書き込みデータが発生したとする。この場合、CM301は、メディアキャッシュ状態管理テーブル611内の使用情報111が「Busy」であるため、CM301は、あるHDD102にRMW処理を行わせることが可能であるにも関わらず、自装置でRMW処理を行うことになる。
また、CM301は、あるHDD102へのアンアラインドとなる書き込みデータが発生した際に、あるHDD102の使用情報111が「Busy」であれば、自装置によるRMW処理を実行してもよい。これにより、CM301は、メディアキャッシュ103の枯渇中にHDD102にRMW処理を行わせることを避けることができ、書き込み要求に対する応答性能の低下を抑えることができる。
また、CM301は、あるHDD102へのアンアラインドとなる書き込みデータが発生した際に、あるHDD102の使用情報111が「Free」であれば、あるHDDにアンアラインドとなる書き込みデータの書き込み要求を送信してもよい。これにより、CM301は、HDD102にRMW処理を行わせることができ、CM301がRMW処理を実行する場合に比べて書き込み要求に対する応答性能を向上することができる。
また、CM301は、あるHDD102への書き込みデータが発生した際に書き込みデータがアンアラインドであると判断した場合、使用情報111に基づいて、RMW処理の主体をCM301と、書き込み先のHDD102とで切り替えてもよい。このように、CM301は、書き込みデータがアンアラインドであるときに限り使用情報111を参照し、書き込みデータがアラインドであれば使用情報111を参照するといった無駄な処理を行わずにHDD102への書き込みを行うことができる。
また、本実施の形態では、ストレージがHDDであることが好ましい。Advanced Formatは、HDDの大容量化および1度に処理されるデータ量の増大化に伴うものであるためである。また、物理セクタのサイズが8KBや16KB等に拡張されたFormatが出現した場合に、本実施の形態を適用することができる。また、ストレージがSSDであっても、SSDの物理セクタのサイズが8KBや16KB等に拡張されたFormatが出現した場合等に、本実施の形態を適用することができる。
また、本実施の形態は、HDD#0〜#Nが、アクセス性能が異なるものであって、HDD#0〜#Nに対してストレージ階層化が適用されたシステムに対しても適用することができる。例えば、ストレージ階層化を管理する装置が、本実施の形態を適用して、ある階層を実現するHDDの状態情報に基づいて、HDDによるRMW処理、または、ストレージ階層化を管理する装置によるRMW処理を動的に切り替えてもよい。
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶する記憶部と、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報に基づいて、当該書き込みデータの書き込み要求を前記ストレージに送信する処理、または、自装置による当該書き込みデータに対するリードモディファイライト処理のいずれか一方を実行する制御部と、
を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
自装置がコマンドを前記ストレージに送信したことに応じた前記コマンドの実行結果とともに前記使用情報を受信する、
ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されている状況が示される場合、自装置による当該書き込みデータに対するリードモディファイライト処理を実行する、
ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されていない状況が示される場合、当該書き込みデータの書き込み要求を前記ストレージに送信する処理を実行する、
ことを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。
(付記5)前記制御部は、
前記ストレージへの書き込みデータが発生した際に、前記書き込みデータがアラインドかアンアラインドかを判定し、
前記書き込みデータがアンアラインドであると判定した場合、前記使用情報に基づいて、当該書き込みデータの書き込み要求を前記ストレージに送信する処理、または、自装置による当該書き込みデータに対するリードモディファイライト処理のいずれか一方を実行する、
ことを特徴とする付記1〜4のいずれか一つに記載のストレージ制御装置。
(付記6)前記ストレージは、ハードディスクドライブである、
ことを特徴とする付記1〜5のいずれか一つに記載のストレージ制御装置。
(付記7)アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージと、前記ストレージに接続されたストレージ制御装置とを含むシステムであって、
前記ストレージは、
前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を前記ストレージ制御装置に送信し、
前記ストレージ制御装置は、
前記ストレージから受信した、前記使用情報を記憶部に記憶させ、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報に基づいて、当該書き込みデータの書き込み要求を前記ストレージに送信する処理、または、自装置による当該書き込みデータに対するリードモディファイライト処理のいずれか一方を実行する、
ことを特徴とするシステム。
(付記8)コンピュータが、
アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶部に記憶させ、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報に基づいて、当該書き込みデータの書き込み要求を前記ストレージに送信する処理、または、自装置による当該書き込みデータに対するリードモディファイライト処理のいずれか一方を実行する、
処理を実行することを特徴とするストレージ制御方法。
(付記9)コンピュータに、
アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶部に記憶させ、
前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報に基づいて、当該書き込みデータの書き込み要求を前記ストレージに送信する処理、または、自装置による当該書き込みデータに対するリードモディファイライト処理のいずれか一方を実行する、
処理を実行させることを特徴とするストレージ制御プログラム。
101 ストレージ制御装置
102 HDD
103 メディアキャッシュ
301、302 CM
600 制御部
601 応答結果受信部
602 判定部
603 RMW実行部
604 送信部
611 メディアキャッシュ状態管理テーブル

Claims (7)

  1. アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶する記憶部と、
    前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されている状況が示される場合、自装置による当該書き込みデータに対するリードモディファイライト処理実行する制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    自装置がコマンドを前記ストレージに送信したことに応じた前記コマンドの実行結果とともに前記使用情報を受信する、
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されていない状況が示される場合、当該書き込みデータの書き込み要求を前記ストレージに送信する処理を実行する、
    ことを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記制御部は、
    前記ストレージへの書き込みデータが発生した際に、前記書き込みデータがアラインドかアンアラインドかを判定し、
    前記書き込みデータがアンアラインドであると判定した場合、前記使用情報によって前記記憶領域が使用されている状況が示される場合に、自装置による当該書き込みデータに対するリードモディファイライト処理を実行する、
    ことを特徴とする請求項1〜3のいずれか一つに記載のストレージ制御装置。
  5. 前記制御部は、
    前記書き込みデータがアンアラインドであると判定した場合、前記使用情報によって前記記憶領域が使用されていない状況が示される場合には、当該書き込みデータの書き込み要求を前記ストレージに送信する処理を実行する、
    ことを特徴とする請求項4に記載のストレージ制御装置。
  6. コンピュータが、
    アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶部に記憶させ、
    前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されている状況が示される場合、自装置による当該書き込みデータに対するリードモディファイライト処理実行する、
    処理を実行することを特徴とするストレージ制御方法。
  7. コンピュータに、
    アンアラインドとなる書き込みデータの書き込み要求に応じて前記書き込みデータに対するリードモディファイライト処理を行うストレージから受信した、前記リードモディファイライト処理に用いる記憶領域の使用状況を示す使用情報を記憶部に記憶させ、
    前記ストレージへのアンアラインドとなる書き込みデータが発生した際に、前記使用情報によって前記記憶領域が使用されている状況が示される場合、自装置による当該書き込みデータに対するリードモディファイライト処理実行する、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2015162115A 2015-08-19 2015-08-19 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Expired - Fee Related JP6540363B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015162115A JP6540363B2 (ja) 2015-08-19 2015-08-19 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US15/202,003 US10191660B2 (en) 2015-08-19 2016-07-05 Storage control method, storage control device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015162115A JP6540363B2 (ja) 2015-08-19 2015-08-19 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2017041076A JP2017041076A (ja) 2017-02-23
JP6540363B2 true JP6540363B2 (ja) 2019-07-10

Family

ID=58158200

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US10191660B2 (ja)
JP (1) JP6540363B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6540363B2 (ja) * 2015-08-19 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US10768823B2 (en) * 2016-04-12 2020-09-08 Hewlett Packard Enterprise Development Lp Flow control for unaligned writes in network storage device
US10013178B2 (en) * 2016-04-30 2018-07-03 Sandisk Technologies Llc Methods, systems and computer readable media for optimizing storage device bus and resource utilization by host realignment
US10802717B2 (en) * 2018-08-20 2020-10-13 Dell Products L.P. Systems and methods for efficient firmware inventory of storage devices in an information handling system
US11188239B2 (en) 2019-03-28 2021-11-30 Western Digital Technologies, Inc. Host-trusted module in data storage device
US11194729B2 (en) 2019-05-24 2021-12-07 Texas Instruments Incorporated Victim cache that supports draining write-miss entries
CN111857580B (zh) * 2020-07-06 2022-07-26 苏州浪潮智能科技有限公司 一种分布式存储系统的相同写方法和装置
CN112882658B (zh) * 2021-02-10 2023-04-21 深圳市云网万店科技有限公司 数据缓存的扩容方法、装置、计算机设备和存储介质
US11853213B2 (en) * 2021-04-28 2023-12-26 Seagate Technology Llc Intelligent management of ferroelectric memory in a data storage device

Family Cites Families (17)

* 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
US7328317B2 (en) * 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
JP4332126B2 (ja) * 2005-03-24 2009-09-16 富士通株式会社 キャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法
JP4992515B2 (ja) * 2007-03-30 2012-08-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
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
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
JP2013157068A (ja) * 2012-01-31 2013-08-15 Toshiba Corp データ記憶制御装置、データ記憶装置、及びデータ記憶方法
JP6004463B2 (ja) * 2012-03-01 2016-10-05 Necプラットフォームズ株式会社 記憶装置及びその制御方法
JP2014137749A (ja) * 2013-01-17 2014-07-28 Fujitsu Ltd ストレージ装置、書込制御方法、および書込制御プログラム
JP6255893B2 (ja) * 2013-10-24 2018-01-10 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
JP6476969B2 (ja) * 2015-02-17 2019-03-06 富士通株式会社 ストレージ制御装置、制御プログラムおよび制御方法
JP6540363B2 (ja) * 2015-08-19 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US9922039B1 (en) * 2016-03-31 2018-03-20 EMC IP Holding Company LLC Techniques for mitigating effects of small unaligned writes

Also Published As

Publication number Publication date
US10191660B2 (en) 2019-01-29
US20170052721A1 (en) 2017-02-23
JP2017041076A (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6540363B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US11960749B2 (en) Data migration method, host, and solid state disk
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
JP5937697B2 (ja) ストレージシステム
US10521345B2 (en) Managing input/output operations for shingled magnetic recording in a storage system
US9304710B2 (en) Storage system and data transfer method of storage system
JP2013531283A (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
US9836223B2 (en) Changing storage volume ownership using cache memory
US9158478B2 (en) Storage system and storage control method
CN100405304C (zh) 基于存储区域网络的高速固态存储设备的实现方法
US10579540B2 (en) Raid data migration through stripe swapping
WO2018051505A1 (ja) ストレージシステム
US20200225981A1 (en) Information processing system and management device
JP5802283B2 (ja) ストレージシステム及びその論理ユニット管理方法
JP6451770B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
US20230130893A1 (en) Methods and systems for seamlessly configuring client nodes in a distributed system
JP5594647B2 (ja) ストレージ装置及びその制御方法
US20210224002A1 (en) Storage control apparatus and storage medium
JP7067256B2 (ja) データ転送装置およびデータ転送方法
JP4714720B2 (ja) ストレージ装置及びその制御方法、並びにディスク装置
JP2007249728A (ja) ディスクアレイ装置
US20160357479A1 (en) Storage control apparatus
JP7251056B2 (ja) コントローラ、計算機システム、データ転送方法および転送制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190418

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: 20190514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190527

R150 Certificate of patent or registration of utility model

Ref document number: 6540363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees