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

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

Info

Publication number
JP6874348B2
JP6874348B2 JP2016234304A JP2016234304A JP6874348B2 JP 6874348 B2 JP6874348 B2 JP 6874348B2 JP 2016234304 A JP2016234304 A JP 2016234304A JP 2016234304 A JP2016234304 A JP 2016234304A JP 6874348 B2 JP6874348 B2 JP 6874348B2
Authority
JP
Japan
Prior art keywords
write
storage
control unit
format
chunk
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.)
Active
Application number
JP2016234304A
Other languages
English (en)
Other versions
JP2018092321A (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 JP2016234304A priority Critical patent/JP6874348B2/ja
Priority to US15/792,874 priority patent/US9990141B1/en
Publication of JP2018092321A publication Critical patent/JP2018092321A/ja
Application granted granted Critical
Publication of JP6874348B2 publication Critical patent/JP6874348B2/ja
Active 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage 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/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/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
    • 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/0638Organizing or formatting or addressing of data
    • 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/0656Data buffering arrangements

Description

本発明は、ストレージ制御装置、およびストレージ制御プログラムに関する。
従来、物理的な記憶装置のボリューム構成や記憶容量に縛られることなく、自由なボリューム構成、記憶容量の記憶装置を実現することができるストレージシステムとして、仮想化環境向けストレージ、いわゆる仮想化ストレージ装置がある。仮想化ストレージ装置がサーバにボリュームを提供する場合、ボリュームのフォーマット処理が実施される。フォーマット処理では、例えば、ストレージ内の対応する物理記憶領域上にゼロデータが書き込まれる。
関連する先行技術としては、ストレージユニットの性能情報に応じて、ストレージユニットの記憶領域の割当状況を含む割当情報により特定されるストレージユニット内のゼロ初期化対象となる記憶領域に対するゼロ初期化処理の実行を制御するものがある。また、メインストレージ内のコントローラが、外部接続ボリュームについてフォーマット等が指示された場合、それらのコマンドを外部ストレージ内のAOU(Allocation On Use)ボリュームに対するフォーマット指示または領域解放指示に変換する技術がある。また、データトラック上のバージンクラスタにデータを記録するとき、1クラスタ分の書き込みバッファにNULLデータを書き込んだ後、書き込みデータを記録するアロケーションブロックに対応する位置に書き込みデータを書き込み、書き込みバッファに書き込んだ1クラスタ分のデータをデータトラック上のクラスタに記録する技術がある。
特開2015−143945号公報 特開2010−55557号公報 特開平8−147110号公報
しかしながら、従来技術では、ボリュームのフォーマット処理によりストレージへのアクセス負荷が増大して、I/O(Input/Output)性能が低下するおそれがある。
一つの側面では、本発明は、フォーマット処理を効率的に行うことを目的とする。
1つの実施態様では、ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、アクセス先アドレスの連続性に基づいて、前記物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定し、前記ストレージへの入出力要求量に基づいて、シーケンシャルフォーマット要が設定された物理記憶領域に対するフォーマット処理の実行タイミングを制御するストレージ制御装置が提供される。
本発明の一側面によれば、フォーマット処理を効率的に行うことができる。
図1は、実施の形態にかかるストレージ制御装置101の一実施例を示す説明図である。 図2は、ストレージシステム200のシステム構成例を示す説明図である。 図3は、ストレージ制御装置101のハードウェア構成例を示すブロック図である。 図4は、シーケンシャル管理テーブル400の記憶内容の一例を示す説明図である。 図5は、チャンク情報テーブル500の記憶内容の一例を示す説明図である。 図6は、ストレージ制御装置101の機能的構成例を示すブロック図である。 図7は、アクセス先アドレスの連続性の判断例を示す説明図である。 図8は、ワンポイントフォーマットを含むライトバック処理の具体例を示す説明図である。 図9は、ストレージ制御装置101のライト要求処理手順の一例を示すフローチャートである。 図10は、連続性判断処理の具体的処理手順の一例を示すフローチャートである。 図11は、ストレージ制御装置101の要求処理手順の一例を示すフローチャートである。 図12は、ストレージ制御装置101のライトバック処理手順の一例を示すフローチャートである。 図13は、ストレージ制御装置101のシーケンシャルフォーマット処理手順の一例を示すフローチャート(その1)である。 図14は、ストレージ制御装置101のシーケンシャルフォーマット処理手順の一例を示すフローチャート(その2)である。 図15は、I/O要求パターンに応じたフォーマット動作例を示す説明図である。
以下に図面を参照して、本発明にかかるストレージ制御装置、およびストレージ制御プログラムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかるストレージ制御装置101の一実施例を示す説明図である。図1において、ストレージ制御装置101は、ストレージ102に対するアクセスを制御するコンピュータである。ストレージ102は、1以上の記憶装置を含む。記憶装置は、例えば、ハードディスク、光ディスク、フラッシュメモリ、磁気テープなどである。
ストレージ制御装置101は、例えば、RAID(Redundant Arrays of Inexpensive Disks)構成の仮想化ストレージ装置に適用されるRAIDコントローラである。仮想化ストレージ装置は、シン・プロビジョニング(Thin Provisioning)が適用されたストレージ装置である。
シン・プロビジョニングとは、ストレージリソースを仮想化して割り当てることで、ストレージの物理容量を削減するための技術である。シン・プロビジョニングが導入された環境では、ユーザの要求に応じた容量を物理ディスクに割り当てず、「論理ボリューム(仮想ボリューム)」として割り当てる。物理ディスクは共有のディスクプールとして管理され、論理ボリュームに書き込まれたデータ量に応じて物理ディスク等に容量が割り当てられる。
ここで、仮想化ストレージ装置がサーバにボリュームを提供する場合、ボリュームのフォーマット処理が実施される。フォーマット処理では、例えば、ストレージ内の対応する物理記憶領域上にゼロデータやチェックコードが書き込まれる。ただし、物理ディスクへの実際のゼロデータの書き込みには時間を要するため、ボリュームのフォーマット処理はバックグラウンドで実行される。
バックグラウンドで実行されるフォーマット処理としては、例えば、シーケンシャルフォーマットとワンポイントフォーマットとがある。シーケンシャルフォーマットは、フォーマット対象の物理記憶領域の先頭から順次ゼロデータの書き込みを行うものである。ワンポイントフォーマットは、未フォーマット状態の物理記憶領域へI/Oが要求された場合に、先行して当該物理記憶領域にゼロデータの書き込みを行い、その後に要求されたI/Oを処理するものである。
ところが、バックグラウンドで実行されるボリュームのフォーマット処理によりストレージへのアクセス負荷が増大すると、I/O性能が低下してしまう。また、ワンポイントフォーマットが動作する場合には、要求されたI/Oはゼロデータの書き込み後に実行されるため、I/Oレスポンスが悪化するおそれがある。
そこで、本実施の形態では、ストレージ制御装置101は、ストレージ102への入出力要求量に基づいて、ストレージ102内の物理記憶領域に対するフォーマット処理の実行タイミングを制御することで、フォーマット処理を効率的に行う。以下、ストレージ制御装置101の処理例について説明する。
(1)ストレージ制御装置101は、ライト要求に伴うストレージ102内の物理記憶領域の割り当て時に、アクセス先アドレスの連続性に基づいて、物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定する。ここで、物理記憶領域の割り当てとは、ボリューム(例えば、論理ボリュームV)に対して、ストレージ102内の物理記憶領域を割り当てることである。物理記憶領域の割り当て単位は、あらかじめ決められている。
以下の説明では、物理記憶領域の割り当て単位を「チャンク」と表記する場合がある。
ここで、ライト要求がシーケンシャルなアドレスへの要求であれば、チャンク内のすべての領域に対してライトデータが揃う可能性が高い。したがって、シーケンシャルなアドレスへの要求であれば、フォーマット処理による書き込み時のオーバーヘッドはない可能性が高く、ライトバック時に書き込みを実施すればよいといえる。
一方、ライト要求がランダムなアドレスへの要求であれば、チャンク内のすべての領域に対してライトデータが揃う可能性は低い。したがって、ランダムなアドレスへの要求であれば、フォーマット処理によるオーバーヘッドが発生する。ストレージ制御装置101は、ランダムなアドレスへのライト要求により割り当てられたチャンクに対して、シーケンシャルフォーマット要を設定する。
(2)ストレージ制御装置101は、ストレージ102への入出力要求量に基づいて、シーケンシャルフォーマット要が設定されたチャンクに対するフォーマット処理の実行タイミングを制御する。ここで、ストレージ102への入出力要求量は、ストレージ102の負荷を表す指標であり、例えば、ストレージ102に発行中のコマンド(ライトコマンド、リードコマンド等)の数によって表される。
具体的には、例えば、ストレージ制御装置101は、ストレージ102への入出力要求量が規定値を下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態のチャンクに対するフォーマット処理を実行する。規定値は、任意に設定可能であり、例えば、入出力要求量が規定値を下回っていれば、ストレージ102への負荷が高くないといえる値に設定される。これにより、ストレージ102への負荷が高い状態でシーケンシャルフォーマットが実施されて、I/O性能が低下してしまうのを防ぐことができる。
また、ストレージ制御装置101は、単位時間当たりの入出力要求量の増加分が閾値を超えた場合には、たとえ入出力要求量が規定値を下回っていても、チャンクに対するフォーマット処理を実行しないようにしてもよい。閾値は、任意に設定可能であり、例えば、入出力要求量の増加分が閾値を超えると、ストレージ102の負荷の急激な増大が見込まれる値に設定される。これにより、この先I/O量の急な増加が見込まれるタイミングでのシーケンシャルフォーマットの実施を抑制することができる。
このように、ストレージ制御装置101によれば、ストレージ102への入出力要求量に基づいて、シーケンシャルフォーマット要のチャンクに対するフォーマット処理の実行タイミングを制御することができる。シーケンシャルフォーマット要のチャンクは、ランダムなアドレスへのライト要求により割り当てられたチャンクである。
これにより、例えば、バックグラウンド処理が実施されてもI/O性能が低下しない程度にストレージ102への負荷が低い状態のときに、オーバーヘッドが発生しうるチャンクに対するフォーマット処理を実施することができる。また、ストレージ102への負荷が低い状態でチャンクに対するフォーマット処理を進めることで、ワンポイントフォーマットの動作頻度を低減させることができる。
(ストレージシステム200のシステム構成例)
つぎに、図1に示したストレージ制御装置101をストレージシステム200に適用した場合について説明する。ストレージシステム200は、例えば、RAID5の冗長化されたシステムである。
図2は、ストレージシステム200のシステム構成例を示す説明図である。図2において、ストレージシステム200は、ストレージ装置201と、ホスト装置202と、を含む。ストレージシステム200において、ストレージ装置201およびホスト装置202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、ストレージ装置201は、ストレージ制御装置101とストレージSTを含む。ストレージSTは、複数のHDD(Hard Disk Drive)を含む。ただし、HDDの代わりに、SSD(Solid State Drive)を用いることにしてもよい。ストレージSTにおいて、例えば、1以上のHDDからRAIDグループが作成され、1以上のRAIDグループからプール(物理的な容量プール)が作成される。図1に示したストレージ102は、例えば、ストレージSTに対応する。
ストレージ制御装置101は、不図示の構成テーブルおよび割当テーブルを有する。構成テーブルには、例えば、装置内に作成された論理ボリュームや、RAIDを構成するディスクについての種々の管理情報が格納される。割当テーブルには、例えば、シン・プロビジョニング構成における割り当て単位(チャンク)ごとの情報や、割り当て済みのチャンクに対する論理アドレスと物理アドレスの対応情報が格納される。割当テーブルには、例えば、後述の図5に示すチャンク情報テーブル500が含まれる。
ホスト装置202は、ストレージシステム200により提供される論理ボリューム(仮想ボリューム)に対するデータのリード/ライトを要求するコンピュータである。例えば、ホスト装置202は、ストレージシステム200を利用する業務サーバや、ストレージシステム200を管理する管理サーバなどである。
なお、図2の例では、ストレージ制御装置101およびホスト装置202をそれぞれ1台のみ表記したが、ストレージシステム200に複数のストレージ制御装置101やホスト装置202が含まれることにしてもよい。
(ストレージ制御装置101のハードウェア構成例)
図3は、ストレージ制御装置101のハードウェア構成例を示すブロック図である。図3において、ストレージ制御装置101は、CPU(Central Processing Unit)301と、メモリ302と、通信I/F(Interface)303と、I/Oコントローラ304と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、ストレージ制御装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
RAMには、キャッシュメモリ305やワークバッファ306が含まれる。キャッシュメモリ305には、例えば、ホスト装置202から要求されるI/Oのデータが一時的に格納される。ワークバッファ306は、ホスト装置202から要求されるI/O以外のデータ処理に使用される。
通信I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部装置(例えば、図2に示したホスト装置202)に接続される。そして、通信I/F303は、ネットワーク210と装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F303は、例えば、CA(Channel Adapter)を含む。I/Oコントローラ304は、CPU301の制御にしたがって、ストレージST(図2参照)に対するアクセスを行う。
(シーケンシャル管理テーブル400の記憶内容)
つぎに、ストレージ制御装置101が有するシーケンシャル管理テーブル400の記憶内容について説明する。シーケンシャル管理テーブル400は、例えば、図3に示したメモリ302に記憶される。
図4は、シーケンシャル管理テーブル400の記憶内容の一例を示す説明図である。図4において、シーケンシャル管理テーブル400は、論理ボリューム番号、論理アドレスおよび更新時刻のフィールドを有する。各フィールドに情報を設定することで、シーケンシャル管理情報(例えば、シーケンシャル管理情報400−1,400−2)がレコードとして記憶される。
ここで、論理ボリューム番号は、ストレージシステム200により提供される論理ボリュームを識別する識別子である。論理アドレスは、論理ボリューム番号の論理ボリュームにアクセスした際の終端論理アドレスに「1」を加算したものである。したがって、例えば、次回のアクセスがこの論理アドレスへのアクセスであれば、アクセス先アドレスに連続性があると判断することができる。更新時刻は、論理ボリューム番号の論理ボリュームにアクセスした時刻である。更新時刻には、日付が含まれることにしてもよい。
なお、シーケンシャル管理テーブル400では、1つの論理ボリュームに対して複数のエントリ(例えば、4エントリ)が用意される。
(チャンク情報テーブル500の記憶内容)
つぎに、ストレージ制御装置101が有するチャンク情報テーブル500の記憶内容について説明する。チャンク情報テーブル500は、例えば、メモリ302に記憶される。
図5は、チャンク情報テーブル500の記憶内容の一例を示す説明図である。図5において、チャンク情報テーブル500は、チャンク番号、フォーマット状況、シーケンシャルフォーマット要否、論理ボリューム番号および論理アドレスのフィールドを有する。各フィールドに情報を設定することで、チャンク情報500−1〜500−nがレコードとして記憶される(n:2以上の自然数)。
ここで、チャンク番号は、ストレージST内のチャンクを識別する識別子である。チャンクとは、論理ボリュームに割り当てられる物理記憶領域の割り当て単位である。フォーマット状況は、チャンク番号のチャンクがフォーマット済みであるか否かを示す。ここでは、フォーマット状況が「0」の場合に、フォーマット済みであることを示す。一方、フォーマット状況が「1」の場合は、未フォーマット状態であることを示す。
シーケンシャルフォーマット要否は、チャンク番号のチャンクに対してシーケンシャルフォーマットが必要であるか否かを示す。ここでは、シーケンシャルフォーマット要否が「1」の場合に、シーケンシャルフォーマットが必要であることを示す。一方、シーケンシャルフォーマット要否が「0」の場合は、シーケンシャルフォーマットが不要であることを示す。
論理ボリューム番号は、チャンク番号のチャンクが割り当てられた論理ボリューム(ユーザボリューム)を識別する識別子である。なお、論理ボリューム番号「0xFFFF」は、未割り当てであることを示す。論理アドレスは、チャンク番号のチャンクが割り当てられた論理ボリュームのアドレスを示す。
(ストレージ制御装置101の機能的構成例)
図6は、ストレージ制御装置101の機能的構成例を示すブロック図である。図6において、ストレージ制御装置101は、I/O制御部601と、シン・プロビジョニング制御部602(以下、単に「シンプロ制御部602」という)と、キャッシュ制御部603と、RAID制御部604と、を含む構成である。I/O制御部601〜RAID制御部604は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F303やI/Oコントローラ304により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302やストレージSTに記憶される。
I/O制御部601は、ホスト装置202からのI/O要求および応答を処理する。I/O要求は、ライト要求またはリード要求である。ライト要求は、論理ボリュームに対してデータの書き込みを要求するものである。リード要求は、論理ボリュームに対してデータの読み込みを要求するものである。
ライト要求には、例えば、ライトデータ(書込対象データ)や、ライト要求範囲(書込要求範囲)を特定する情報が含まれる。ライト要求範囲を特定する情報は、例えば、論理ボリューム番号、ライト要求範囲の開始論理アドレスや、ライトデータのブロック数などである。
具体的には、例えば、I/O制御部601は、ホスト装置202からのI/O要求を受け付けて、シンプロ制御部602に通知する。また、I/O制御部601は、例えば、ライト要求に対するライト完了応答や、リード要求に対するリードデータをホスト装置202に通知する。
シンプロ制御部602は、ホスト装置202に提供する論理ボリュームの論理アドレスと物理アドレスとの管理を行う。論理アドレスは、論理ボリュームにおけるアドレスである。物理アドレスは、例えば、ストレージST内のHDDにおけるアドレス(LBA:Logical Block Addressing)である。
シンプロ制御部602は、ライト要求を受け付けたことに応じて、アクセス先アドレスの連続性を判断する。ここでは、ライト要求がシーケンシャルなアドレスへの要求であれば連続性があると判断される。ライト要求がランダムなアドレスへの要求であれば連続性がないと判断される。
具体的には、例えば、シンプロ制御部602は、図4に示したシーケンシャル管理テーブル400を参照して、受け付けたライト要求のアクセス先アドレスの連続性を判断する。なお、アクセス先アドレスの連続性の判断例については、図7を用いて後述する。
また、シンプロ制御部602は、ライト要求を受け付けたことに応じて、ライト要求範囲がチャンクを割り当て済みの範囲であるか否かを判断する。ここで、チャンクを未割り当ての場合は、シンプロ制御部602は、論理ボリューム(ライト要求範囲)に未使用のチャンクを割り当てる。
チャンクが割り当てられた場合、例えば、図5に示したチャンク情報テーブル500内の対応するチャンク情報が更新される。更新対象のチャンク情報は、割り当てられたチャンクのチャンク番号に対応するチャンク情報である。具体的には、例えば、チャンク情報の論理ボリューム番号および論理アドレスに、ライト要求に含まれる論理ボリューム番号およびライト要求範囲の開始論理アドレスが設定される。この時点では、チャンク情報のフォーマット状況は初期値(例えば、1)である。また、チャンク情報のシーケンシャルフォーマット要否は初期値(例えば、0)である。
また、シンプロ制御部602は、判断したアクセス先アドレスの連続性に基づいて、割り当てたチャンクにシーケンシャルフォーマット要否を設定する。具体的には、例えば、シンプロ制御部602は、アクセス先アドレスの連続性があると判断した場合、割り当てたチャンクにシーケンシャルフォーマット不要を設定する。
一方、シンプロ制御部602は、アクセス先アドレスの連続性がないと判断した場合、割り当てたチャンクにシーケンシャルフォーマット要を設定する。設定されたシーケンシャルフォーマット要否は、例えば、チャンク情報テーブル500内の対応するチャンク情報に設定される。
なお、チャンクが割り当てられた時点で、ライト要求のアクセス先アドレスの連続性を判断できない場合には、シンプロ制御部602は、割り当てたチャンクにシーケンシャルフォーマット要を設定することにしてもよい。
また、チャンクに対するチェックコードの値は、例えば、ライト要求に伴って当該チャンクが論理ボリュームに割り当てられた時点で決定される。具体的には、例えば、チェックコードの値は、ストレージ制御装置101のCAにおいて、アクセス先の論理ボリュームの論理アドレスに基づき決定される。そして、ストレージ制御装置101は、決定されたチェックコードの値を用いて、割り当てられたチャンクへのライト処理を行う。チャンクへのライト処理としては、例えば、シーケンシャルフォーマットに伴うライト処理や、ライトバック要求に伴うライト処理がある。
なお、受け付けられたライト要求(ライトデータを含む)は、例えば、キャッシュ制御部603によって、図3に示したキャッシュメモリ305に格納される。この結果、I/O制御部601は、ホスト装置202に対してライト完了応答を送信する。
キャッシュ制御部603は、受け付けたI/Oデータ(例えば、ライト要求)のキャッシュメモリ305上への配置を行う。また、キャッシュ制御部603は、ストレージST内のHDDへのライトバック(Writeback)や、ストレージST内のHDDからのステイジング(Staging)のタイミングの管理を行う。
RAID制御部604は、ストレージST内のHDDへのコマンド発行を行う。また、RAID制御部604は、RAIDの負荷管理を行う。具体的には、例えば、RAID制御部604は、キャッシュ制御部603からディスク(HDD)のリード/ライトを伴う処理要求を受け付けた場合、当該処理要求に応じてプール内のHDDにコマンドを発行する。ディスクのリード/ライトを伴う処理要求には、例えば、ライトバック要求が含まれる。
この際、RAID制御部604は、処理要求に応じてプール内のHDDに発行したコマンド数を、当該プールに対する発行コマンド数に加算する。また、RAID制御部604は、ディスクのリード/ライトを伴う処理が完了した場合、その処理要求に対応するコマンド数を、プールに対する発行コマンド数から減算する。
これにより、プールに発行中のコマンド数、すなわち、ストレージST内のプール単位I/O要求量を管理することができる。なお、ここでは、ストレージST内のプール単位で発行コマンド数を管理することにしたが、これに限らない。例えば、ストレージST内のHDD単位やRAIDグループ単位で発行コマンド数を管理することにしてもよい。
また、RAID制御部604は、ストレージSTへのI/O要求量に基づいて、シーケンシャルフォーマット要が設定されたチャンクに対するフォーマット処理の実行タイミングを制御する。具体的には、例えば、RAID制御部604は、ストレージSTへのI/O要求量が規定値Xを下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態のチャンクに対するフォーマット処理を実行する。
ストレージSTへのI/O要求量は、例えば、上述したプール単位の発行コマンド数である。規定値Xは、RAID構成やディスク種などに応じて任意に設定可能である。例えば、規定値Xは、I/O要求量が規定値Xを下回っていれば、ディスク負荷が高くないといえる値(数個〜数十個程度)に設定される。
より具体的には、例えば、RAID制御部604は、シーケンシャルフォーマット要が設定された未フォーマット状態のチャンクにゼロデータおよびチェックコードを書き込む。ここで、チェックコードは、データの整合性確認を行うためにブロック単位(例えば、512バイト単位)に付加される情報である。
チャンクに対するチェックコードの値は、ライト要求に伴って当該チャンクが論理ボリュームに割り当てられた時点で決定される。具体的には、例えば、チェックコードの値は、ストレージ制御装置101のCAにおいて、チャンクに対応する論理ボリュームの論理アドレスに基づき決定される。
そして、RAID制御部604は、シーケンシャルフォーマットを実施したチャンクをフォーマット済みにする。より詳細に説明すると、例えば、RAID制御部604は、シーケンシャルフォーマットを実施したチャンクに対応するチャンク情報テーブル500内のチャンク情報のフォーマット状況に「0」を設定する。
また、RAID制御部604は、未フォーマット状態のチャンクへのライト処理時に、ライトデータ以外の部分をフォーマットパターンでパディングしたデータを用いて書き込みを行う。ここで、パディングとは、固定長のデータを扱うときに、ライトデータ以外の部分をフォーマットパターンで補うことである。フォーマットパターンは、例えば、ゼロデータである。
具体的には、例えば、RAID制御部604は、キャッシュ制御部603から未フォーマット状態のチャンクへのライトバック要求を受け付けたことに応じて、チャンク全体に対するライトバック要求であるか否かを判断する。ライトバック要求には、例えば、ライトデータやライト要求範囲を特定する情報が含まれる。より詳細に説明すると、例えば、RAID制御部604は、ライト要求範囲がチャンク全体の場合に、チャンク全体に対するライトバック要求であると判断する。
ここで、チャンク全体に対するライトバック要求の場合、RAID制御部604は、当該チャンクへのフォーマット処理をスキップしてライト処理を実行する。具体的には、例えば、RAID制御部604は、キャッシュメモリ305上のライトデータと、チェックコードとを用いて、ライトバック要求されたチャンクに対して、既存のライトバック処理を実行する。
なお、フォーマット済みのチャンクに対するライトバック要求を受け付けた場合も、RAID制御部604は、キャッシュメモリ305上のライトデータと、チェックコードとを用いて、当該チャンクに対して既存のライトバック処理を実行する。
一方、チャンク全体に対するライトバック要求ではない場合、RAID制御部604は、図3に示したワークバッファ306を獲得する。つぎに、RAID制御部604は、ワークバッファ306上に、ライトバック要求されたチャンク内の未要求範囲(ライト要求範囲外の部分)に対してチェックコード付きのゼロデータを作成する。そして、RAID制御部604は、ワークバッファ306上のデータと、キャッシュメモリ305上のライトデータとを用いて、ストレージST内のプールに対するライトコマンドを発行する。
これにより、未フォーマット状態のチャンクへのライト処理時に、当該チャンクに対するワンポイントフォーマットを実施することができる。ライトバック処理が完了した場合には、RAID制御部604は、キャッシュ制御部603に対してライトバック完了応答を通知する。
なお、未フォーマット状態のチャンクに対するワンポイントフォーマットを含むライトバック処理の具体例については、図8を用いて後述する。
(アクセス先アドレスの連続性の判断例)
ここで、アクセス先アドレスの連続性の判断例について説明する。
図7は、アクセス先アドレスの連続性の判断例を示す説明図である。図7において、シーケンシャル管理情報400−1〜400−4は、ライト要求された論理ボリューム番号「0」の論理ボリュームの情報である。
ここで、ライト要求範囲の開始論理アドレスが「0x11442230」であるとする。図7の例では、シーケンシャル管理情報400−1〜400−4の中に、開始論理アドレス「0x11442230」が論理アドレスに設定されたシーケンシャル管理情報400−2が存在する。
この場合、今回のライト要求がシーケンシャルなアドレスへの要求であるといえる。したがって、シンプロ制御部602は、今回のライト要求をシーケンシャル属性とする。シーケンシャル属性とは、アクセス先アドレスに連続性があることを示す。
また、ライト要求範囲の開始論理アドレスが「0x11442850」であるとする。図7の例では、シーケンシャル管理情報400−1〜400−4の中に、開始論理アドレス「0x11442850」が論理アドレスに設定されたシーケンシャル管理情報は存在しない。
この場合、今回のライト要求がランダムなアドレスへの要求であるといえる。したがって、シンプロ制御部602は、今回のライト要求をランダム属性とする。ランダム属性とは、アクセス先アドレスに連続性がないことを示す。
(ワンポイントフォーマットを含むライトバック処理の具体例)
つぎに、未フォーマット状態のチャンクに対するワンポイントフォーマットを含むライトバック処理の具体例について説明する。
図8は、ワンポイントフォーマットを含むライトバック処理の具体例を示す説明図である。図8において、(8−1)は、ストレージST内のディスク(HDD)上での各データ(Data#0,Data#1,Data#2,Parity)の初期状態を示している。
この状態で、ライト要求範囲がチャンク全体ではないライトバック要求を受け付けた場合を想定する。この場合、(8−2)に示すように、RAID制御部604は、ワークバッファ306上で、ユーザデータ(ライトデータ)にゼロデータをパディングして、新しいパリティデータを生成する。この際、ディスクアクセスは発生しない。
そして、(8−3)に示すように、RAID制御部604は、ユーザデータ、ゼロデータおよび新しいパリティデータをストレージST内のディスク上に書き込む。なお、図示は省略するが、各種データには、チェックコードが付与される。
これにより、従来のように、I/O処理に先立ってフォーマット処理を実施して、その後に要求されたI/O処理を実施する場合に比べて、ワンポイントフォーマットを実施する際のオーバーヘッドを低減することができる。
例えば、RAID5で構成されたプールに対して、4KBのライトバックが単発で要求されたとする。この場合、従来方式では、チャンクサイズ全体に対してフォーマット処理を実施した後に、ライトバックのためのディスクリードを実施し、パリティ生成を行ってディスクライトを行うことになる。したがって、ライトペナルティを含めると、同一領域に対して3回のディスクアクセスが発生する。
これに対して、図8に示した本方式では、未フォーマット状態のチャンクに対してライトバック要求された場合に、RAID制御部604は、同一チャンク内のI/Oを要求されていない範囲について、ワークバッファ306を用いて「ゼロデータ+チェックコード」を用意する。その上で、RAID制御部604は、チャンク全体に対して一度にライト処理を実行する。このため、従来方式のワンポイントフォーマットに比べて、レスポンスタイムの軽減が期待できる。
(ストレージ制御装置101の各種処理手順)
つぎに、図9〜図14を用いて、ストレージ制御装置101の各種処理手順について説明する。まず、ストレージ制御装置101のライト要求処理手順について説明する。
・ライト要求処理手順
図9は、ストレージ制御装置101のライト要求処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、ストレージ制御装置101のI/O制御部601は、ライト要求を受け付けたか否かを判断する(ステップS901)。ここで、I/O制御部601は、ライト要求を受け付けるのを待つ(ステップS901:No)。
ライト要求を受け付けた場合(ステップS901:Yes)、ストレージ制御装置101のシンプロ制御部602は、連続性判断処理を実行する(ステップS902)。連続性判断処理は、ライト要求のアクセス先アドレスの連続性(シーケンシャル属性またはランダム属性)を判断する処理である。連続性判断処理の具体的な処理手順については、図10を用いて後述する。
つぎに、シンプロ制御部602は、論理ボリュームの論理アドレスと物理アドレスとの対応関係から、ライト要求のライト要求範囲がチャンクを割り当て済みの範囲であるか否かを判断する(ステップS903)。ここで、チャンクを割り当て済みの場合(ステップS903:Yes)、シンプロ制御部602は、ステップS906に移行する。
一方、チャンクを未割り当ての場合(ステップS903:No)、シンプロ制御部602は、論理ボリューム(ライト要求範囲を含む部分)に未使用のチャンクを割り当てる(ステップS904)。そして、シンプロ制御部602は、チャンク情報テーブル500内の対応するチャンク情報を更新する(ステップS905)。
つぎに、シンプロ制御部602は、ライト要求がシーケンシャル属性であるか否かを判断する(ステップS906)。ここで、シーケンシャル属性の場合(ステップS906:Yes)、シンプロ制御部602は、対象チャンクのチャンク情報のシーケンシャルフォーマット要否に「0(否)」を設定して(ステップS907)、ステップS911に移行する。
なお、対象チャンクとは、ライト要求範囲に割り当てられたチャンクである。対象チャンクのチャンク情報とは、チャンク情報テーブル500内のチャンク情報のうち、対象チャンクのチャンク番号が設定されたチャンク情報である。
また、ステップS906において、シーケンシャル属性ではない場合(ステップS906:No)、シンプロ制御部602は、対象チャンクのチャンク情報のシーケンシャルフォーマット要否に「1(要)」を設定する(ステップS908)。
そして、シンプロ制御部602は、シーケンシャルフォーマット開始位置が設定されているか否かを判断する(ステップS909)。なお、シーケンシャルフォーマット開始位置とは、シーケンシャルフォーマットを開始するストレージST内のチャンクを示す情報である。
ここで、シーケンシャルフォーマット開始位置が設定されている場合(ステップS909:Yes)、ストレージ制御装置101は、ステップS911に移行する。一方、シーケンシャルフォーマット開始位置が未設定の場合(ステップS909:No)、シンプロ制御部602は、シーケンシャルフォーマット開始位置を対象チャンクに設定する(ステップS910)。
つぎに、ストレージ制御装置101のキャッシュ制御部603は、キャッシュメモリ305にライト要求にかかるデータ(ライト要求、ライトデータ等)を転送する(ステップS911)。そして、I/O制御部601は、ホスト装置202に対してライト完了応答を通知して(ステップS912)、本フローチャートによる一連の処理を終了する。
これにより、ライト要求に伴うストレージST内のチャンクの論理ボリュームへの割り当て時に、アクセス先アドレスの連続性に基づいて、当該チャンクにシーケンシャルフォーマットの要否を設定することができる。
・連続性判断処理の具体的処理手順
つぎに、図10を用いて、図9に示したステップS902の連続性判断処理の具体的な処理手順について説明する。
図10は、連続性判断処理の具体的処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、ストレージ制御装置101のシンプロ制御部602は、シーケンシャル管理テーブル400に、ライト要求に含まれる論理ボリューム番号およびライト要求範囲の開始論理アドレスに対応するエントリがあるか否かを判断する(ステップS1001)。
ここで、エントリがない場合(ステップS1001:No)、シンプロ制御部602は、今回のライト要求をランダム属性とする(ステップS1002)。つぎに、シンプロ制御部602は、シーケンシャル管理テーブル400に、ライト要求に含まれる論理ボリューム番号に対応する未使用のエントリがあるか否かを判断する(ステップS1003)。
なお、ライト要求に含まれる論理ボリューム番号に対応するエントリとは、その論理ボリューム番号の論理ボリューム用にあらかじめ用意された複数のエントリである。
ここで、未使用のエントリがある場合(ステップS1003:Yes)、シンプロ制御部602は、未使用のエントリを更新対象エントリとして(ステップS1004)、ステップS1008に移行する。
一方、未使用エントリがない場合(ステップS1003:No)、シンプロ制御部602は、ライト要求に含まれる論理ボリューム番号に対応する複数のエントリのうち、更新時刻が最も古いエントリを更新対象エントリとして(ステップS1005)、ステップS1008に移行する。
また、ステップS1001において、エントリがある場合(ステップS1001:Yes)、シンプロ制御部602は、今回のライト要求をシーケンシャル属性とする(ステップS1006)。つぎに、シンプロ制御部602は、該当エントリを更新対象エントリとする(ステップS1007)。
そして、シンプロ制御部602は、更新対象エントリを更新して(ステップS1008)、連続性判断処理を呼び出したステップに戻る。具体的には、例えば、シンプロ制御部602は、更新対象エントリの論理アドレスに「ライト要求範囲の開始論理アドレス+ブロック数」を設定するとともに、更新対象エントリの更新時刻に現在時刻を設定する。
これにより、ライト要求のアクセス先アドレスの連続性を判断することができる。
・要求処理手順
つぎに、図11を用いて、ストレージ制御装置101の要求処理手順について説明する。要求処理は、キャッシュ制御部603からRAID制御部604へのディスク(HDD)のリード/ライトを伴う処理要求(Staging/Writeback)に応じて実行される。
図11は、ストレージ制御装置101の要求処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、ストレージ制御装置101のRAID制御部604は、ディスク(HDD)のリード/ライトを伴う処理要求を受け付けたか否かを判断する(ステップS1101)。
ここで、RAID制御部604は、処理要求を受け付けるのを待つ(ステップS1101:No)。処理要求を受け付けた場合(ステップS1101:Yes)、RAID制御部604は、処理要求に応じてプール内のHDDに発行するコマンド数を、当該プールに対する発行コマンド数に加算する(ステップS1102)。
そして、RAID制御部604は、ディスクのリード/ライトを伴う処理を実行して(ステップS1103)、本フローチャートによる一連の処理を終了する。これにより、ディスクのリード/ライトを伴う処理要求に応じて、プールに対する発行コマンド数を更新することができる。
・ライトバック処理手順
つぎに、図12を用いて、ストレージ制御装置101のライトバック処理手順について説明する。ライトバック処理は、図11に示したステップS1103において実行されるディスクのリード/ライトを伴う処理の一例であり、ライトバック要求に応じて実行される。
図12は、ストレージ制御装置101のライトバック処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、ストレージ制御装置101のRAID制御部604は、チャンク情報テーブル500を参照して、ライトバック要求から特定されるライトバック要求範囲を含むチャンクがフォーマット済みか否かを判断する(ステップS1201)。
ここで、未フォーマット状態の場合(ステップS1201:No)、RAID制御部604は、チャンク全体に対するライトバック要求であるか否かを判断する(ステップS1202)。ここで、チャンク全体に対するライトバック要求ではない場合(ステップS1202:No)、RAID制御部604は、ワークバッファ306を獲得する(ステップS1203)。
そして、RAID制御部604は、ワークバッファ306上に、ライトバック要求されたチャンク内の未要求範囲に対してチェックコード付きのゼロデータを作成する(ステップS1204)。つぎに、RAID制御部604は、ワークバッファ306上のデータと、キャッシュメモリ305上のデータ(ライトデータ、チェックコード)とを用いて、ストレージST内のプールに対するライトコマンドを発行する(ステップS1205)。
そして、RAID制御部604は、キャッシュ制御部603に対してライトバック完了応答を通知して(ステップS1206)、本フローチャートによる一連の処理を終了する。これにより、未フォーマット状態のチャンクに対するワンポイントフォーマットを含むライトバック処理を実施することができる。
また、ステップS1201において、フォーマット済みの場合(ステップS1201:Yes)、RAID制御部604は、キャッシュメモリ305上のデータ(ライトデータ、チェックコード)を用いて、既存のライトバック処理を実行して(ステップS1207)、ステップS1206に移行する。
また、ステップS1202において、チャンク全体に対するライトバック要求である場合(ステップS1202:Yes)、RAID制御部604は、ステップS1207に移行する。これにより、フォーマット処理をスキップしてライトバック処理を実行することができる。
・シーケンシャルフォーマット処理手順
つぎに、図13および図14を用いて、ストレージ制御装置101のシーケンシャルフォーマット処理手順について説明する。
図13および図14は、ストレージ制御装置101のシーケンシャルフォーマット処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、ストレージ制御装置101のRAID制御部604は、ディスクのリード/ライトを伴う処理の完了に応じて、その処理要求に対応するコマンド数を、プールに対する発行コマンド数から減算する(ステップS1301)。
つぎに、RAID制御部604は、シーケンシャルフォーマット開始位置が設定されているか否かを判断する(ステップS1302)。ここで、シーケンシャルフォーマット開始位置が未設定の場合(ステップS1302:No)、RAID制御部604は、本フローチャートによる一連の処理を終了する。
一方、シーケンシャルフォーマット開始位置が設定されている場合(ステップS1302:Yes)、RAID制御部604は、ストレージST内のプールに対する発行コマンド数が規定値Xを下回っているか否かを判断する(ステップS1303)。ここで、発行コマンド数が規定値Xを下回っていない場合(ステップS1303:No)、RAID制御部604は、本フローチャートによる一連の処理を終了する。
一方、発行コマンド数が規定値Xを下回っている場合(ステップS1303:Yes)、RAID制御部604は、チャンク情報テーブル500を参照して、シーケンシャルフォーマット開始位置のチャンクがシーケンシャルフォーマット要であるか否かを判断する(ステップS1304)。
ここで、シーケンシャルフォーマット不要の場合(ステップS1304:No)、RAID制御部604は、ステップS1306に移行する。一方、シーケンシャルフォーマット要の場合(ステップS1304:Yes)、RAID制御部604は、チャンク情報テーブル500を参照して、シーケンシャルフォーマット開始位置のチャンクが未フォーマット状態であるか否かを判断する(ステップS1305)。
ここで、未フォーマット状態の場合(ステップS1305:Yes)、RAID制御部604は、図14に示すステップS1401に移行する。一方、フォーマット済みの場合(ステップS1305:No)、RAID制御部604は、チャンク情報テーブル500を参照して、全チャンクの検索が完了したか否かを判断する(ステップS1306)。
ここで、全チャンクの検索が完了していない場合(ステップS1306:No)、RAID制御部604は、シーケンシャルフォーマット開始位置を次チャンクに設定して(ステップS1307)、ステップS1304に戻る。一方、全チャンクの検索が完了した場合(ステップS1306:Yes)、RAID制御部604は、図14に示すステップS1405に移行する。
図14のフローチャートにおいて、まず、RAID制御部604は、シーケンシャルフォーマット開始位置のチャンクのシーケンシャルフォーマットを実行する(ステップS1401)。そして、RAID制御部604は、シーケンシャルフォーマット開始位置のチャンクをフォーマット済みにする(ステップS1402)。
つぎに、RAID制御部604は、チャンク情報テーブル500を参照して、全チャンクの検索が完了したか否かを判断する(ステップS1403)。ここで、全チャンクの検索が完了していない場合(ステップS1403:No)、RAID制御部604は、シーケンシャルフォーマット開始位置を次チャンクに設定して(ステップS1404)、図13に示したステップS1303に戻る。
一方、全チャンクの検索が完了した場合(ステップS1403:Yes)、RAID制御部604は、シーケンシャルフォーマット開始位置をクリアして(ステップS1405)、本フローチャートによる一連の処理を終了する。これにより、ストレージSTへのI/O要求量に応じて、シーケンシャルフォーマット要が設定されたチャンクに対するフォーマット処理の実行タイミングを制御することができる。
以上説明したように、実施の形態にかかるストレージ制御装置101によれば、ライト要求に伴うストレージST内のチャンクの割り当て時に、アクセス先アドレスの連続性に基づいて、チャンクごとにシーケンシャルフォーマットの要否を設定することができる。そして、ストレージ制御装置101によれば、ストレージSTへのI/O要求量に基づいて、シーケンシャルフォーマット要が設定されたチャンクに対するフォーマット処理の実行タイミングを制御することができる。
これにより、バックグラウンド処理が実施されてもI/O性能が低下しない程度にストレージSTへの負荷が低い状態のときに、シーケンシャルフォーマット要が設定されたチャンクに対するフォーマット処理を実施することができる。また、ストレージSTへの負荷が低い状態でチャンクに対するフォーマット処理を進めることで、ワンポイントフォーマットの動作頻度を低減させることができる。
また、ストレージ制御装置101によれば、ストレージSTへのI/O要求量が規定値Xを下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態のチャンクに対するフォーマット処理を実行することができる。これにより、ストレージSTへの負荷が高い状態でシーケンシャルフォーマットが実施されて、I/O性能が低下してしまうのを防ぐことができる。
また、ストレージ制御装置101によれば、未フォーマット状態のチャンクへのライト処理時に、ライトデータ以外の部分をフォーマットパターンでパディングしたデータを用いて書き込みを行うことができる。これにより、未フォーマット状態のチャンクへのライト処理時に、当該チャンクに対するワンポイントフォーマットを実施することができる。また、従来方式のワンポイントフォーマットに比べて、ディスクアクセス回数を減らしてレスポンスタイムの短縮化を図ることができる。
また、ストレージ制御装置101によれば、ライト処理時に、ライト要求範囲がチャンク全体の場合は、当該チャンクへのフォーマット処理をスキップしてライト処理を実行することができる。これにより、チャンク全体へのライトバック要求時は、フォーマット処理を省略して負荷を削減することができる。
また、ストレージ制御装置101によれば、ライト要求に伴うストレージST内のチャンクの割り当て時に、当該チャンクに対するチェックコードの値を決定することができる。そして、ストレージ制御装置101によれば、決定したチェックコードの値を用いて、当該チャンクへのライト処理を行うことができる。具体的には、例えば、ストレージ制御装置101は、アクセス先の論理ボリュームの論理アドレスに基づいて、チャンクに対するチェックコードの値を決定することができる。これにより、外部サーバ(例えば、ホスト装置202)からチェックコードを保証しなければならないような規約のストレージシステムにも適用可能である。
これらのことから、実施の形態にかかるストレージ制御装置101によれば、I/O要求パターンに応じたフォーマット動作を行うことで、論理ボリュームのフォーマット処理を効率的に行うことができる。また、物理的な容量プールの新規作成やディスク増設による容量追加をした場合に、従来方式のように、ユーザボリュームへの割り当て状況に関わらず、新たに加えられた全容量に対するフォーマット処理を実施しなくてもよい。
また、ストレージST内のディスク故障に伴うリビルド処理の際に、従来方式のように、ユーザボリュームへの割り当て状況に関わらず、ディスクの全容量に対するデータ再構築処理を実施しなくてもよい。具体的には、実際にユーザボリュームに割り当てられてデータが載っているチャンクに対してデータ再構築処理を行えばよくなるため、リビルド処理を効率的に行うことができる。
ここで、I/O要求パターンに応じたフォーマット動作例について説明する。
図15は、I/O要求パターンに応じたフォーマット動作例を示す説明図である。図15において、ボリューム#A,#Bは、ストレージシステム200により提供されるユーザボリューム(論理ボリューム)である。ここでは、ボリューム#Aに対して、シーケンシャル属性のライト要求を受け付けた場合を想定する。また、ボリューム#Bに対して、ランダム属性のライト要求を受け付けた場合を想定する。
図15に示すように、ホスト装置202からのライト要求は、キャッシュメモリ305に格納され、処理の空き時間ができた際に、キャッシュメモリ305からストレージST内のディスク(HDD)にデータが書き込まれる(いわゆる、ライトバック)。
例えば、シーケンシャル属性のライト要求を受け付けたチャンクについては、チャンク全体のデータが揃っているため、フォーマット処理を省略して、ライトバックのタイミングでライト処理を行えばよい。また、ランダム属性のライト要求を受け付けたチャンクについては、チャンク全体のデータが揃わないため、未要求範囲をゼロデータで埋めてライトバック処理を実施することでワンポイントフォーマットとなる。また、シーケンシャルフォーマット要が設定された未フォーマット状態のチャンクについては、ディスク負荷に応じて、ライトバック要求前にシーケンシャルフォーマットを実施可能となる。
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、アクセス先アドレスの連続性に基づいて、前記物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定し、
前記ストレージへの入出力要求量に基づいて、シーケンシャルフォーマット要が設定された物理記憶領域に対するフォーマット処理の実行タイミングを制御する、
制御部を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記ストレージへの入出力要求量が規定値を下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態の物理記憶領域に対するフォーマット処理を実行する、ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
未フォーマット状態の物理記憶領域へのライト処理時に、ライトデータ以外の部分をフォーマットパターンでパディングしたデータを用いて書き込みを行う、ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記ライト処理時に、ライト要求範囲が前記物理記憶領域全体の場合は、当該物理記憶領域へのフォーマット処理をスキップして前記ライト処理を実行する、ことを特徴とする付記3に記載のストレージ制御装置。
(付記5)前記ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、当該物理記憶領域に対するチェックコードの値が決定され、
決定された前記チェックコードの値を用いて、前記物理記憶領域へのライト処理が行われる、ことを特徴とする付記1〜4のいずれか一つに記載のストレージ制御装置。
(付記6)ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、アクセス先アドレスの連続性に基づいて、前記物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定し、
前記ストレージへの入出力要求量に基づいて、シーケンシャルフォーマット要が設定された物理記憶領域に対するフォーマット処理の実行タイミングを制御する、
処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
(付記7)前記制御する処理は、
前記ストレージへの入出力要求量が規定値を下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態の物理記憶領域に対するフォーマット処理を実行する、ことを特徴とする付記6に記載のストレージ制御プログラム。
(付記8)未フォーマット状態の物理記憶領域へのライト処理時に、ライトデータ以外の部分をフォーマットパターンでパディングしたデータを用いて書き込みを行う、処理を前記コンピュータに実行させることを特徴とする付記6または7に記載のストレージ制御プログラム。
101 ストレージ制御装置
102,ST ストレージ
200 ストレージシステム
201 ストレージ装置
202 ホスト装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 通信I/F
304 I/Oコントローラ
305 キャッシュメモリ
306 ワークバッファ
400 シーケンシャル管理テーブル
500 チャンク情報テーブル
601 I/O制御部
602 シン・プロビジョニング制御部
603 キャッシュ制御部
604 RAID制御部

Claims (6)

  1. ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、前記ライト要求のライト要求範囲と他のライト要求のライト要求範囲との論理アドレスの連続性に基づいて、前記物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定し、
    前記ストレージへ発行中のコマンド数を示す入出力要求量に基づいて、シーケンシャルフォーマット要が設定された物理記憶領域に対するフォーマット処理の実行タイミングを制御する、
    制御部を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    前記入出力要求量が規定値を下回った場合に、シーケンシャルフォーマット要が設定された未フォーマット状態の物理記憶領域に対するフォーマット処理を実行する、ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    未フォーマット状態の物理記憶領域へのライト処理時に、ライトデータ以外の部分をフォーマットパターンでパディングしたデータを用いて書き込みを行う、ことを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記制御部は、
    前記ライト処理時に、ライト要求範囲が前記物理記憶領域全体の場合は、当該物理記憶領域へのフォーマット処理をスキップして前記ライト処理を実行する、ことを特徴とする請求項3に記載のストレージ制御装置。
  5. 前記ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、当該物理記憶領域に対するチェックコードの値が決定され、
    決定された前記チェックコードの値を用いて、前記物理記憶領域へのライト処理が行われる、ことを特徴とする請求項1〜4のいずれか一つに記載のストレージ制御装置。
  6. ライト要求に伴うストレージ内の物理記憶領域の割り当て時に、前記ライト要求のライト要求範囲と他のライト要求のライト要求範囲との論理アドレスの連続性に基づいて、前記物理記憶領域の割り当て単位ごとにシーケンシャルフォーマットの要否を設定し、
    前記ストレージへ発行中のコマンド数を示す入出力要求量に基づいて、シーケンシャルフォーマット要が設定された物理記憶領域に対するフォーマット処理の実行タイミングを制御する、
    処理をコンピュータに実行させることを特徴とするストレージ制御プログラム。
JP2016234304A 2016-12-01 2016-12-01 ストレージ制御装置、およびストレージ制御プログラム Active JP6874348B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016234304A JP6874348B2 (ja) 2016-12-01 2016-12-01 ストレージ制御装置、およびストレージ制御プログラム
US15/792,874 US9990141B1 (en) 2016-12-01 2017-10-25 Storage control device, storage system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234304A JP6874348B2 (ja) 2016-12-01 2016-12-01 ストレージ制御装置、およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2018092321A JP2018092321A (ja) 2018-06-14
JP6874348B2 true JP6874348B2 (ja) 2021-05-19

Family

ID=62235422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234304A Active JP6874348B2 (ja) 2016-12-01 2016-12-01 ストレージ制御装置、およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US9990141B1 (ja)
JP (1) JP6874348B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10249351B2 (en) 2016-11-06 2019-04-02 Intel Corporation Memory device with flexible internal data write control circuitry
KR20200076946A (ko) * 2018-12-20 2020-06-30 삼성전자주식회사 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147110A (ja) 1994-11-18 1996-06-07 Sony Corp データ記録媒体管理方法、データ記録媒体管理装置およびデータ記録媒体
US7904644B1 (en) * 2006-11-01 2011-03-08 Marvell International Ltd. Disk channel system with sector request queue
JP5107833B2 (ja) 2008-08-29 2012-12-26 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP2015143945A (ja) 2014-01-31 2015-08-06 富士通株式会社 ストレージ制御装置、ストレージ装置および制御プログラム

Also Published As

Publication number Publication date
JP2018092321A (ja) 2018-06-14
US9990141B1 (en) 2018-06-05
US20180157416A1 (en) 2018-06-07

Similar Documents

Publication Publication Date Title
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
JP5792313B2 (ja) ストレージシステム
US9916248B2 (en) Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
JP5818207B2 (ja) フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ)
US9317436B2 (en) Cache node processing
US8291189B2 (en) Storage system and storage control method that compress and store data elements
JP5090941B2 (ja) ストレージサブシステム及びストレージシステム
US8103847B2 (en) Storage virtual containers
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
WO2015015611A1 (ja) ストレージシステム及びデータライト方法
JP2013143124A (ja) メタデータの永続化のための方法
JP2014514622A (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP2018116329A (ja) ストレージ制御装置、およびストレージ制御プログラム
JP6089844B2 (ja) 制御装置,ストレージ装置,及び制御プログラム
JP5962140B2 (ja) プログラム、制御方法、制御装置およびシステム
US20190243758A1 (en) Storage control device and storage control method
KR20110005817A (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
US9213486B2 (en) Writing new data of a first block size to a second block size using a write-write mode
JP2014041471A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP6874348B2 (ja) ストレージ制御装置、およびストレージ制御プログラム
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法
CN111124746A (zh) 管理独立盘冗余阵列的方法、设备和计算机可读介质
JP7337872B2 (ja) 複合型ストレージシステム及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210405

R150 Certificate of patent or registration of utility model

Ref document number: 6874348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150