JP2012014450A - Data storage device and slice assignment method - Google Patents
Data storage device and slice assignment method Download PDFInfo
- Publication number
- JP2012014450A JP2012014450A JP2010150410A JP2010150410A JP2012014450A JP 2012014450 A JP2012014450 A JP 2012014450A JP 2010150410 A JP2010150410 A JP 2010150410A JP 2010150410 A JP2010150410 A JP 2010150410A JP 2012014450 A JP2012014450 A JP 2012014450A
- Authority
- JP
- Japan
- Prior art keywords
- slice
- logical
- physical
- disk
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、複数のディスクアレイのそれぞれの記憶領域が一定サイズの物理スライスに分割して管理され、これらの物理スライスのうちの一部の物理スライスの群が論理ディスクの論理スライスの群に割り当てられるデータ記憶装置に係り、特に、当該論理ディスクに対する複数のシーケンシャルライトの実行時に、当該論理ディスク内のライト先となる論理スライスに物理スライスを再割り当てするまたは新規に割り当てるデータ記憶装置及びスライス割り当て方法に関する。 In the present invention, each storage area of a plurality of disk arrays is managed by dividing it into physical slices of a certain size, and some of these physical slices are assigned to logical slice groups of logical disks. In particular, when executing a plurality of sequential writes to the logical disk, a data storage device and a slice allocation method for reallocating or newly allocating a physical slice to a logical slice as a write destination in the logical disk About.
従来から1つまたは複数のディスクアレイを備えたデータ記憶装置が知られている。一般にディスクアレイは、複数のハードディスクドライブ(HDD)を用いて構成される。また、データ記憶装置を利用するホスト装置から認識可能な論理ディスクは、単一または少数のディスクアレイから構築されるのが一般的である。 Conventionally, a data storage device including one or a plurality of disk arrays is known. Generally, a disk array is configured using a plurality of hard disk drives (HDDs). In general, a logical disk that can be recognized from a host device using a data storage device is constructed from a single or a small number of disk arrays.
特許文献1は、ディスクアレイに対するシーケンシャルライトの実行時に、並列動作するドライブの数をできるだけ多くすることができる、ドライブ内の領域割り当て技術(以下、従来技術と称する)を開示している。 Japanese Patent Application Laid-Open No. 2004-228561 discloses a drive area allocation technique (hereinafter referred to as a conventional technique) in which the number of drives operating in parallel can be increased as much as possible when a sequential write is performed on a disk array.
しかし従来技術では、単一または少数のディスクアレイから構築される論理ディスクに対して複数のシーケンシャルライトが実行される場合、ディスクアレイ内の同一のドライブに対する複数のライトが発生する。ドライブの物理的性質上、当該ドライブへの複数のライトを同時に実行することはできず、当該ドライブへのライトアクセスがランダムになる。このように従来技術では、論理ディスクに対して複数のシーケンシャルライトが実行される場合、当該複数のシーケンシャルライト相互の影響で、当該複数のシーケンシャルライトの各々はシーケンシャル性が失われ、性能を低下させる要因となっていた。 However, in the related art, when a plurality of sequential writes are performed on a logical disk constructed from a single or a small number of disk arrays, a plurality of writes to the same drive in the disk array are generated. Due to the physical nature of the drive, multiple writes to the drive cannot be performed simultaneously, and write access to the drive is random. As described above, in the conventional technique, when a plurality of sequential writes are performed on the logical disk, each of the plurality of sequential writes loses its sequentiality due to the mutual influence of the plurality of sequential writes, thereby reducing the performance. It was a factor.
本発明は上記事情を考慮してなされたものでその目的は、単一の論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、当該論理ディスク内の書き込み先となる論理スライスに対し、異なるディスクアレイ内の物理スライスを再割り当てするまたは新規に割り当てることにより、単一の論理ディスクに対する複数のシーケンシャルライトの性能の低下を防止できるデータ記憶装置及スライス割り当て方法を提供することにある。 The present invention has been made in consideration of the above circumstances, and its purpose is to execute a logical write as a write destination in the logical disk for each of the sequential writes when executing a plurality of sequential writes to a single logical disk. To provide a data storage device and a slice allocation method capable of preventing deterioration of performance of a plurality of sequential writes to a single logical disk by reassigning or newly allocating a physical slice in a different disk array to the slice It is in.
本発明の1つの観点によれば、複数のディスクアレイを備えたデータ記憶装置が提供される。このデータ記憶装置は、前記複数のディスクアレイのそれぞれの記憶領域を一定サイズの物理スライスに分割して管理すると共に、これらの物理スライスのうちの一部の物理スライスの群を論理ディスクの論理スライスの群に割り当てる構成管理手段と、前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記構成管理手段に要求する割り当て要求手段とを具備することを特徴とする。 According to one aspect of the present invention, a data storage device including a plurality of disk arrays is provided. This data storage device manages each of the storage areas of the plurality of disk arrays by dividing them into physical slices of a certain size, and also manages a group of some physical slices of these physical slices as logical slices of logical disks. A plurality of disk arrays for a logical slice that is a write destination in the logical disk for each of the sequential writes when executing a plurality of sequential writes to the logical disk; And allocation request means for requesting the configuration management means to reallocate or newly allocate physical slices in different disk arrays.
本発明によれば、論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、当該論理ディスク内のライト先となる論理スライスに対し、異なるディスクアレイ内の物理スライスを再割り当てするまたは新規に割り当てる構成とすることにより、同一論理ディスクに対する複数のシーケンシャルライトの性能の低下を防止できる According to the present invention, when executing a plurality of sequential writes to a logical disk, a physical slice in a different disk array is reassigned to a logical slice that is a write destination in the logical disk for each of the plurality of sequential writes. Or a newly assigned configuration can prevent a decrease in the performance of multiple sequential writes to the same logical disk.
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るデータ記憶装置10の概略構成を示すブロック図である。
図1に示されるデータ記憶装置10は、制御装置11と、複数の記憶媒体12とから構成される。制御装置11はデータ通信路20を介して接続されるホスト装置と記憶媒体12との間に介在して設けられる。記憶媒体12は、例えばハードディスクドライブのディスクである。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a schematic configuration of a
A
制御装置11は、ホストインタフェース部(HOST I/F)111、CPU112、プログラムメモリ113、キャッシュメモリ114及びHDDインタフェース部(HDD I/F)115を有している。なお、データ通信路20を介してデータ記憶装置10に接続されるものとしては、ホスト装置となるコンピュータまたはその集合体の他、他のデータ記憶装置も想定される。
The
ホストインタフェース部111及びHDDインタフェース部115は、それぞれ外部接続される装置との間の通信を制御する。ホストインタフェース部111はデータ通信路20側の通信を司る。HDDインタフェース部115は記憶媒体12側の通信を司る。
The
CPU112は、制御装置11における必要処理を実行するものであり、プログラムメモリ113には、そのための各種プログラムが格納されている。本実施形態で適用される、後述するスライス割り当てのための手法(より詳細には、論理ディスク内のライト先となる論理スライスに物理スライスを再割り当てするまたは新規に割り当てるための手法)は、このプログラムメモリ113(コンピュータ読み取り可能な記憶媒体)に格納されているプログラムをCPU112が読み取って実行することによって実現されるものとする。プログラムメモリ113には、上述のプログラムを格納するための領域に加えて、CPU112が利用するデータ等を格納するための領域、更には後述する構成管理用記憶部270及びシーケンシャル判定データ記憶部274(図2参照)のための領域も確保されている。
The
キャッシュメモリ114は、データ通信路20を介して接続されるホスト装置(或いは他のデータ記憶装置)からデータ記憶装置10内の記憶媒体12に対して発行される入出力要求に対するバッファの役目を提供する。キャッシュメモリ114は、ある論理的な単位に分割されて管理されている。この分割された単位で自由にキャッシュメモリ114内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ114に格納することができる。この分割された1つの単位をキャッシュブロックと呼ぶ。
The
ここで、キャッシュメモリ114は、例えば16KB(キロバイト)単位のキャッシュブロックに分割されている。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理される。キャッシュメモリ114上では、リードキャッシュ(RDC)とライトバックキャッシュ(WBC)の2種類のデータが管理される。ホスト装置からのリード/ライトアクセスに応じて各エントリがサーチされ、対象となるキャッシュブロックとホスト装置または記憶媒体12との間でデータ転送が行われる。
Here, the
例えば、ホスト装置から記憶媒体12へのデータ書き込み処理は、キャッシュメモリ114を用いて次のように行われる。まず、入出力要求で指定されたデータがキャッシュメモリ114にエントリされた時点で、要求元のホスト装置に対して書き込み処理完了が通知される。その後に、キャッシュメモリ114から記憶媒体12に対する実際のデータ書き込みが実行される。
For example, data write processing from the host device to the
一方、記憶媒体12からのデータ読み込み処理は、次のように行われる。まず、該当するデータがキャッシュメモリ114にエントリ(キャッシュ)されているか否かが判定され、エントリされていれば、そのデータがキャッシュメモリ114からデータ通信路20を介してホスト装置に返される。これに対し、該当するデータがキャッシュメモリ114にエントリされていないならば、データが記憶媒体12からキャッシュメモリ114に読み出されて、しかる後に、要求元のホスト装置に対して読み出されたデータがデータ通信路20を介して返される。
On the other hand, data reading processing from the
図2は、図1に示される制御装置11のプログラムメモリ113に格納されるプログラムをCPU112が読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。
FIG. 2 is a block diagram mainly showing a module configuration realized by the
ホストインタフェース制御部(HOST I/F制御部)210は、ホスト装置(または他のデータ記憶装置)との間のインタフェース処理を担当する。IO(入出力)管理部220は、IOアクセス管理及びIOアクセス領域制御を実行する。
The host interface control unit (HOST I / F control unit) 210 is responsible for interface processing with the host device (or other data storage device). The IO (input / output)
キャッシュ管理部230は、キャッシュメモリ114におけるIOアクセス管理を実行する。IO特性判定部240は、シーケンシャル性検出部241及び割り当て要求部242を含む。シーケンシャル性検出部241は、ホスト装置からのIO要求を監視することによりIOアクセスの統計情報を取得し、当該統計情報に基づいてIOアクセスのシーケンシャル性を検出する。シーケンシャル性検出部241はIOアクセスのシーケンシャル性を検出した場合、シーケンシャルライトであれば後追い吐き出し要求を、シーケンシャルリードであればデータ先読み要求を、IO管理部220に領域を指定して発行する。割り当て要求部242は、同一論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、論理ディスク内の書き込み先となる論理スライスに対する、異なるディスクアレイ内の物理スライスの再割り当てを構成管理部260に要求する。論理スライス及び物理スライスについては後述する。
The
論理/物理アドレス管理部250は論理アドレスから物理アドレスへの変換及び物理アドレスから論理アドレスへの変換を行う。構成管理部260は論理アドレスと物理アドレスとのマッピングを管理する。構成管理用記憶部270は、論理ディスク管理テーブル271、スライス管理テーブル272及びプール管理テーブル273を格納する。これらテーブル271〜273の詳細については後述する。
The logical / physical address management unit 250 performs conversion from a logical address to a physical address and conversion from a physical address to a logical address. The
シーケンシャル判定データ記憶部274は、論理ディスク毎にシーケンシャル判定テーブル275を格納する。シーケンシャル判定テーブル275の各エントリはシーケンシャル判定データを保持するのに用いられる。シーケンシャル判定データはホスト装置から要求されたIOアクセスの統計情報であり、対応する論理ディスクに対するライトのシーケンシャル性の、IO特性判定部240内のシーケンシャル性検出部241による判定に用いられる。
The sequential determination
本実施形態において、複数の記憶媒体12は、例えばディスクアレイ120-0〜120-5を構成する。ディスクアレイ120-0〜120-5の各々は、RAID(Redundant Arrays of Independent Disks,Redundant Arrays of Inexpensive Disks)構成の記憶媒体12の集合である。そこで、ディスクアレイ120-0〜120-5をRAIDアレイ120-0〜120-5と称する。RAIDアレイ120-0〜120-5は、例えば固有のRAIDアレイ番号0〜5によって識別される。ここで、RAIDアレイ120-0〜120-5の集合をプール121と称する。RAIDアレイ120-i(i=0,1…5)の記憶領域は、一定のサイズDの部分領域(以下、物理スライスと称する)に分割して管理される。1つ以上のRAIDアレイ120-i内の任意の物理スライスの集合は、ホスト装置から認識可能な論理ディスクを構成する。
In the present embodiment, the plurality of
RAID制御部280はRAIDアレイ120-iを記憶媒体12の集合として管理する。RAID制御部280は、IO特性判定部240内のシーケンシャル性検出部241からの要求に応じて、RAIDアレイ120-iとの間のディスクデータの転送を制御する。HDDインタフェース制御部(HDD I/F制御部)290は、RAID制御部280からの要求に応じて、RAIDアレイ120-i内のディスクデータ転送の対象となる、1つ以上の記憶媒体12へのアクセスを制御する。
The
上述したように、シーケンシャル性検出部241はホスト装置からのIO要求を監視する。ホスト装置からのIO要求の列がライト要求の列であるものとする。シーケンシャル性検出部241は、ライト要求の列に基づいてライト要求アドレスに関する統計情報を取得し、当該統計情報に基づいてIOアクセスのシーケンシャル性を検出する。従来技術ではシーケンシャル性検出部241は、シーケンシャル性を検出した場合に、ホスト装置からのIO要求で指定されたライト要求アドレスの後を追うように、RAIDアレイ120-iに対してキャッシュメモリ114上の未保存データの書き込みを要求する。ところが従来技術では、ホスト装置からのシーケンシャルライトが複数存在する場合、RAIDアレイ120-iを構成する個々の記憶媒体12にとって、シーケンシャル性検出部241から要求される書き込みのための論理アドレスが、シーケンシャルライト相互間でシーケンシャルではなくなり、性能が低下するおそれがあった。
As described above, the
図3は、RAIDアレイ内のスライスと論理ディスクとの関係の一例を示す。 FIG. 3 shows an example of the relationship between slices in the RAID array and logical disks.
図3において、論理ディスク300の論理的な記憶領域は、RAIDアレイ120-iと同様に、一定サイズDの部分領域(以下、論理スライスと称する)310に分割して管理される。論理ディスク300内の各論理スライス310には、当該論理ディスク300上の論理アドレス(LBA)の順にシーケンス番号(以下、論理スライス番号と称する)が割り当てられる。
In FIG. 3, the logical storage area of the
図3の例では、論理ディスク300内の論理スライス310の集合の一部には、RAIDアレイ120-0内の物理スライス320の集合の一部がスライス単位で割り当てられ、論理ディスク300内の論理スライス310の集合の残りには、RAIDアレイ120-1内の物理スライス320の集合の一部がスライス単位で割り当てられている。この論理ディスク300の状態を、論理ディスク300がRAIDアレイ120-0及び120-1内の一部の物理スライス320の集合から構成されていると称する。論理ディスク300を識別するための論理ディスク番号は0であり、RAIDアレイ120-0,120-1を識別するためのRAIDアレイ番号は、それぞれ0,1であるものとする。
In the example of FIG. 3, a part of the set of
図3において、RAIDアレイ120-0の記憶領域はN+1個の物理スライス320に分割して管理され、RAIDアレイ120-1の記憶領域はM+1個の物理スライス320に分割して管理されている。RAIDアレイ120-0内のN+1個の物理スライス320には、当該RAIDアレイ120-0上の物理アドレスの順に物理スライス番号0〜Nが割り当てられ、RAIDアレイ120-1内のM+1個の物理スライス320には、当該RAIDアレイ120-1上の物理アドレスの順に物理スライス番号0〜Mが割り当てられている。
In FIG. 3, the storage area of the RAID array 120-0 is divided into N + 1
図3の例では、論理ディスク300内の論理スライス番号が0の論理スライス310には、RAIDアレイ120-0内の物理スライス番号が0の物理スライス320が割り当てられ、論理ディスク300内の論理スライス番号が1の論理スライス310には、RAIDアレイ120-1内の物理スライス番号が0の物理スライス320が割り当てられている。
In the example of FIG. 3, the
図4は論理ディスク管理テーブル271の各エントリに保持される論理ディスク管理データのデータ構造例を示す。論理ディスク管理テーブル271は、図1に示すデータ記憶装置10が有する全ての論理ディスク内の全論理スライスの数に一致するエントリを有する。
FIG. 4 shows an example of the data structure of logical disk management data held in each entry of the logical disk management table 271. The logical disk management table 271 has entries that match the number of all logical slices in all logical disks of the
図4に示すように、論理ディスク管理データ(第1の管理データ)は、論理ディスク内の論理スライスについて、論理ディスク番号、論理スライス番号、物理リストポインタ(第1のポインタ)及び物理ミラーリストポインタ(第2のポインタ)から構成される。論理ディスク番号は、対応する論理スライスが属する論理ディスクを識別するための番号であり、論理スライス番号は当該論理ディスク内で当該論理スライスを識別するための番号である。 As shown in FIG. 4, the logical disk management data (first management data) is the logical disk number, logical slice number, physical list pointer (first pointer), and physical mirror list pointer for the logical slice in the logical disk. (Second pointer). The logical disk number is a number for identifying the logical disk to which the corresponding logical slice belongs, and the logical slice number is a number for identifying the logical slice in the logical disk.
物理リストポインタは、対応する論理スライスに割り当てられている物理スライスを指し示す。より詳細には物理リストポインタは、対応する論理スライスに割り当てられている物理スライスに関する、スライス管理テーブル272内のスライス管理データを指し示す。つまり、物理リストポインタには、対応する論理スライスに割り当てられている物理スライスに関するスライス管理データが繋がれる。 The physical list pointer indicates the physical slice assigned to the corresponding logical slice. More specifically, the physical list pointer points to slice management data in the slice management table 272 regarding the physical slice assigned to the corresponding logical slice. That is, slice management data related to physical slices assigned to the corresponding logical slice is connected to the physical list pointer.
物理ミラーリストポインタは、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスを指し示す。より詳細には物理ミラーリストポインタは、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスに関する、スライス管理テーブル272内のスライス管理データを指し示す。つまり、物理ミラーリストポインタには、対応する物理リストポインタで指し示される物理スライスのミラーとして用いられる物理スライスに関するスライス管理データが繋がれる。このミラーとして用いられる物理スライスは、対応する物理リストポインタによって指し示される物理スライス(つまり対応する論理スライスに割り当てられている物理スライス)に代えて再割り当てされた物理スライスである。 The physical mirror list pointer points to a physical slice that is used as a mirror of the physical slice pointed to by the corresponding physical list pointer. More specifically, the physical mirror list pointer indicates slice management data in the slice management table 272 regarding a physical slice used as a mirror of the physical slice indicated by the corresponding physical list pointer. That is, slice management data relating to a physical slice used as a mirror of the physical slice pointed to by the corresponding physical list pointer is connected to the physical mirror list pointer. The physical slice used as the mirror is a physical slice that is reassigned instead of the physical slice indicated by the corresponding physical list pointer (that is, the physical slice assigned to the corresponding logical slice).
図5はスライス管理テーブル272の各エントリに保持されるスライス管理データのデータ構造例を示す。スライス管理テーブル272は、図1に示すデータ記憶装置10が有する全てのRAIDアレイ120-0〜120-5内の全物理スライスの数に一致するエントリを有する。
FIG. 5 shows an example data structure of slice management data held in each entry of the slice management table 272. The slice management table 272 has entries that match the number of all physical slices in all the RAID arrays 120-0 to 120-5 that the
図5に示すように、スライス管理データ(第2の管理データ)は、RAIDアレイ番号、物理スライス番号及び論理リストポインタ(第3のポインタ)から構成される。RAIDアレイ番号は、対応する物理スライスが属するRAIDアレイを識別するための番号であり、物理スライス番号は当該RAIDアレイ内で当該物理スライスを識別するための番号である。 As shown in FIG. 5, the slice management data (second management data) is composed of a RAID array number, a physical slice number, and a logical list pointer (third pointer). The RAID array number is a number for identifying the RAID array to which the corresponding physical slice belongs, and the physical slice number is a number for identifying the physical slice in the RAID array.
論理リストポインタは、対応する物理スライスが割り当てられている論理スライスに関する、論理ディスク管理テーブル271内の論理ディスク管理データを指し示す。つまり、論理リストポインタには、対応する物理スライスが割り当てられている論理スライスに関する論理ディスク管理データが繋がれる。 The logical list pointer indicates logical disk management data in the logical disk management table 271 related to the logical slice to which the corresponding physical slice is assigned. That is, the logical list pointer is connected with logical disk management data related to the logical slice to which the corresponding physical slice is assigned.
図6はプール管理テーブル273の各エントリに保持されるプール管理データのデータ構造例を示す。データ記憶装置10が1つのプール121を有する本実施形態では、プール管理テーブル273は1つのエントリを有する。
FIG. 6 shows an example of the data structure of pool management data held in each entry of the pool management table 273. In the present embodiment in which the
図6に示すように、プール管理データ(第3の管理データ)は、プール番号、所属RAIDアレイ番号配列、所属論理ディスク番号配列及びフリーリストから構成される。プール番号は、対応するプールを識別するための番号である。所属RAIDアレイ番号配列は、対応するプールに属する全てのRAIDアレイを識別するためのRAIDアレイ番号のリストであり、所属論理ディスク番号配列は、対応するプールに属するRAIDアレイ群により構成される全ての論理ディスクを識別するための論理ディスク番号のリストである。フリーリストは、所属RAIDアレイ番号配列で示されるRAIDアレイの群に属する全ての物理スライスのうち、未使用の物理スライスに関するスライス管理データを保持する。 As shown in FIG. 6, the pool management data (third management data) includes a pool number, an assigned RAID array number array, an assigned logical disk number array, and a free list. The pool number is a number for identifying the corresponding pool. The assigned RAID array number array is a list of RAID array numbers for identifying all RAID arrays belonging to the corresponding pool, and the assigned logical disk number array is all the RAID arrays that belong to the corresponding pool. It is a list of logical disk numbers for identifying logical disks. The free list holds slice management data related to unused physical slices among all physical slices belonging to the group of RAID arrays indicated by the assigned RAID array number array.
図7は、論理ディスク300が図3に示すようにRAIDアレイ120-0及び120-1内の一部のスライス310の集合から構成されている場合における、論理ディスク管理データ及びスライス管理データの一例を示す。
FIG. 7 shows an example of logical disk management data and slice management data when the
次に、データ記憶装置10における動作について説明する。
Next, the operation in the
構成管理部260は、複数の記憶媒体12を用いてRAIDアレイ120-iを構築する際、当該RAIDアレイ120-iの記憶領域を、予め定められたサイズDの物理スライスに分割して、その物理スライスに当該RAIDアレイ120-i上の物理アドレスの順に物理スライス番号を割り当てることにより、サイズDの物理スライスの集合を定義する。構成管理部260は、定義した物理スライスの集合における物理スライス毎にスライス管理データを生成し、プール管理テーブル273のフリーリストに繋ぐ。このフリーリストに繋がれたスライス管理データは、未使用の物理スライスのスライス管理データとして管理される。
When constructing a RAID array 120-i using a plurality of
構成管理部260は、例えばホスト装置から図3に示されるような論理ディスク番号が0の論理ディスク300の作成が指定された場合、当該ホスト装置によって指定された容量分の物理スライスを、プール管理データのフリーリストに繋がれている未使用の物理スライスのスライス管理データに基づいて確保する。構成管理部260は、確保した物理スライス毎に、その物理スライスのスライス管理データをスライス管理テーブル272に登録すると共に、指定された論理ディスク300の論理ディスク管理データを生成して論理ディスク管理テーブル271に登録する。このとき構成管理部260は、論理ディスク管理データの物理リストポインタに、確保した物理スライスのスライス管理データを繋ぐと共に、当該スライス管理データの論理リストポインタに当該論理ディスク管理データを繋ぐ。これにより、指定された容量分の物理スライスの各々が、当該物理スライスと同一サイズの論理ディスク300内の論理スライスに割り当てられる。
For example, when the creation of the
なお、構成管理部260が指定された容量分の物理スライスを確保するのに、何らポリシーに従うことなく任意の物理スライスを選別してもよい。また、RAIDアレイ120-iが適用するRAIDレベル等の信頼性や、RAIDアレイ120-iを構成する記憶媒体12の種別、当該記憶媒体12(ここではディスク)の内周側領域または外周側領域等の性能に関する要素を用いて、特定のポリシーに従ってスライスを選別してもよい。論理ディスク管理データにスライス管理データを繋ぐ方法は、論理ディスクの論理アドレスから当該論理アドレスが割り当てられているRAIDアレイ120-iの物理アドレスに変換できるならば、どのような方法でもよい。例えば、ハッシュやツリー形式にするなど、線形リストより高速に変換可能な別の手段で実現してもよい。
Note that the
論理/物理アドレス管理部250は、ホストインタフェース制御部210がホスト装置からのIO要求を受信した際には、論理ディスク管理テーブル271内の論理ディスク管理データ及びスライス管理テーブル272内のスライス管理データを用いて、当該IO要求で指定された論理ディスク300の論理アドレスに対応する物理スライスを判定する。論理/物理アドレス管理部250は、判定した物理スライスのスライス管理データ内のRAIDアレイ番号と物理スライス番号とから、指定された論理ディスク300の論理アドレスをRAIDアレイ120-iの物理アドレスに変換し、当該物理アドレスの物理スライスを対象とするIO処理を、RAID制御部280に対して要求する。
When the host interface control unit 210 receives an IO request from the host device, the logical / physical address management unit 250 receives the logical disk management data in the logical disk management table 271 and the slice management data in the slice management table 272. The physical slice corresponding to the logical address of the
一般に、シーケンシャルライトには、パターンP0〜P2の3つのパターンがある。この3つのパターンP0〜P2について、図8を参照して説明する。
パターンP0の特徴は、ホスト装置からのデータライトを指定するIO要求が、wt0〜wt2であるものとすると、先行するIO要求wtj(j=0,1)の終了論理アドレスLBAejに対して、後続するIO要求wtj+1の開始論理アドレスLBAsj+1が連続している点にある。一般に、IO要求wtjは、開始論理アドレスLBAsjとアクセスサイズの情報とを含む。終了論理アドレスLBAejは、“開始論理アドレスLBAsj+アクセスサイズ”の演算によって算出できる。
In general, there are three patterns of sequential write, patterns P0 to P2. The three patterns P0 to P2 will be described with reference to FIG.
The feature of the pattern P0 is that if the IO request designating data write from the host device is wt0 to wt2, the subsequent logical address LBAej of the preceding IO request wtj (j = 0, 1) The start logical address LBAsj + 1 of the IO request wtj + 1 to be performed is continuous. In general, the IO request wtj includes a start logical address LBAsj and access size information. The end logical address LBAej can be calculated by calculating “start logical address LBAsj + access size”.
パターンP1の特徴は、ホスト装置からのデータライトを指定するIO要求が、wt3〜wt5であるものとすると、先行するIO要求wtj(j=3,4)の終了論理アドレスLBAejに対して、後続するIO要求wtj+1の開始論理アドレスLBAsj+1が連続していないものの、開始論理アドレスLBAsj+1の方が終了論理アドレスLBAejよりも大きく、且つその論理アドレスの差分Δの絶対値|Δ|が許容差分を示す閾値未満である点にある。パターンP2の特徴は、ホスト装置からのデータライトを指定するIO要求が、wt6〜wt8であるものとすると、先行するIO要求wtj(j=6,7)の終了論理アドレスLBAejに対して、後続するIO要求wtj+1の開始論理アドレスLBAsj+1が連続していないものの、開始論理アドレスLBAsj+1の方が終了論理アドレスLBAejよりも小さく、且つその論理アドレスの差分の絶対値|Δ|が閾値未満である点にある。 The feature of the pattern P1 is that if the IO request designating data write from the host device is wt3 to wt5, the subsequent logical address LBAej of the preceding IO request wtj (j = 3, 4) The start logical address LBAsj + 1 of the IO request wtj + 1 to be executed is not continuous, but the start logical address LBAsj + 1 is larger than the end logical address LBAej and the absolute value | Δ | It is in the point which is less than the threshold value which shows a difference. The feature of the pattern P2 is that if the IO request designating data write from the host device is wt6 to wt8, the subsequent logical address LBAej of the preceding IO request wtj (j = 6, 7) The start logical address LBAsj + 1 of the IO request wtj + 1 to be executed is not continuous, but the start logical address LBAsj + 1 is smaller than the end logical address LBAej, and the absolute value | Δ | of the difference between the logical addresses is less than the threshold value In that point.
つまり本実施形態では、先行するIO要求の終了論理アドレス(開始論理アドレス+アクセスサイズ)と、後続するIO要求の開始論理アドレスとの差分Δの絶対値|Δ|が閾値未満である場合に、シーケンシャルであると判定される。 That is, in this embodiment, when the absolute value | Δ | of the difference Δ between the end logical address (start logical address + access size) of the preceding IO request and the start logical address of the subsequent IO request is less than the threshold value, Determined to be sequential.
RAIDアレイ120-iは、前述したように複数の記憶媒体12から構成される。RAIDアレイ120-i内の複数の記憶媒体12のそれぞれの記憶領域は、ストライプと称する一定サイズのデータ区分を単位に分割して管理される。RAIDアレイ120-i内の複数の記憶媒体12の物理アドレスが同一のストライプをまとめたものをストライプグループと称する。スライスのサイズとストライプグループのサイズとの間には、
スライスのサイズ≫ストライプグループのサイズ
のような関係がある。
図9は、RAIDアレイ120-iにおける、複数の記憶媒体12、ストライプ及びストライプグループの関係を示す。
The RAID array 120-i is composed of a plurality of
There is a relationship such as the size of the slice >> the size of the stripe group.
FIG. 9 shows the relationship among the plurality of
さて本実施形態では、シーケンシャル性検出部241によってIOアクセスのシーケンシャル性が検出された場合、シーケンシャルライトであれば、シーケンシャル性検出部241からIO管理部220に、後追い吐き出し要求が発行される。すると、IO管理部220の管理の下で、後追い吐き出し処理が行われる。
In the present embodiment, when the
シーケンシャルライトにおける後追い吐き出し処理とは、ホスト装置からのシーケンシャルライトでキャッシュメモリ114に書き込まれたデータの当該キャッシュメモリ114からRAIDアレイ120-iへの書き出しを、当該シーケンシャルライトの後を追うようにストライプグループサイズ毎に行うことで、効率良くキャッシュメモリ114の空きブロックを確保する手法である。例えばRAIDアレイ120-iがRAID5を適用する場合、当該RAIDアレイ120-iにデータをライトするためには、パリティデータを格納しているストライプへのリードアクセス及びライトアクセスを含めて、2回のリードアクセスと2回のライトアクセスが必要となる。このような非効率なディスクI/O(記憶媒体がディスクの場合)を、上述の後追い吐き出し処理によって抑止することにより、記憶媒体12への書き出しを高速に行うことができる。
The post-ejecting process in the sequential write means that the data written in the
図10は、ホスト装置からのライトがシーケンシャルライトであると判定された場合における、当該シーケンシャルライトと、当該シーケンシャルライトにおける後追い吐き出し処理とを示す。図10から明らかなように、後追い吐き出し処理は、ストライプグループSTRGRP0,STRGRP1,…のようにストライプグループサイズ毎に行われる。 FIG. 10 shows the sequential write and the post-ejecting process in the sequential write when it is determined that the write from the host device is a sequential write. As is clear from FIG. 10, the post-ejecting process is performed for each stripe group size, such as stripe groups STRGRP0, STRGRP1,.
次に、IO特性判定部240によるIO特性判定処理について、図11のフローチャートを参照して説明する。
IO特性判定部240内のシーケンシャル性検出部241は、以下に述べるように、ホスト装置から要求されたライトの履歴をシーケンシャル判定データとして取得して、当該シーケンシャル判定データに基づいてシーケンシャル性を判定する。シーケンシャル性にはシーケンシャルリードとシーケンシャルライトの2種類がある。ここでは、本発明に関係するシーケンシャルライト、つまりライトのシーケンシャル性の判定についてのみ説明する。
Next, IO characteristic determination processing by the IO
As described below, the
まず、ホストインタフェース制御部210がホスト装置からIO要求としてライト要求を受信したものとする(ステップ1101)。このライト要求は、ライト先の論理ディスクを指定する論理ディスク番号、ライト先の開始論理アドレス(以下、LBAまたは開始LBAと称する)及びアクセスサイズの情報を含む。シーケンシャル性検出部241は、ホストインタフェース制御部210によって受信されたライト要求(以下、最新のライト要求と称する)の指定する論理ディスク番号及びLBAに対応するシーケンシャル判定テーブル275内のエントリが存在するかを判定する(ステップ1102)。
First, it is assumed that the host interface control unit 210 receives a write request as an IO request from the host device (step 1101). This write request includes information on a logical disk number designating a write destination logical disk, a write destination start logical address (hereinafter referred to as LBA or start LBA), and an access size. Whether the
図12は、シーケンシャル判定データ記憶部274に格納されるシーケンシャル判定テーブル275のデータ構造の一例を示す。図12に示すように、シーケンシャル判定テーブル275は、論理ディスク番号フィールドと複数のエントリとを有する。論理ディスク番号フィールドは論理ディスクの論理ディスク番号を保持し、複数のエントリの各々はシーケンシャル判定データを保持するのに用いられる。シーケンシャル判定データは、開始LBA、最新LBA、書き込みLBA、アクセスサイズ、ヒット回数、最適化フラグ、RAIDアレイ番号、入れ替え済みスライス番号の各情報から構成される。
FIG. 12 shows an example of the data structure of the sequential determination table 275 stored in the sequential determination
シーケンシャル判定データ中の開始LBAは、最初にシーケンシャルライトが判定されるまでは、対応するライト要求の開始LBAを示し、最初にシーケンシャルライトが判定された後は当該判定されたシーケンシャルライトの先頭のLBAを示す。最新LBAは、シーケンシャルライトに対応する受信済みのライト要求の列における最後尾のライト要求のLBAを示し、書き込みLBAは、対応するシーケンシャルライトにおける後追い吐き出し処理で吐き出しの対象となっている最新のストライプグループのLBAを示す。アクセスサイズは、シーケンシャルライトに対応する受信済みのライト要求の列における最後尾のライト要求の指定するアクセスサイズを示す。ヒット回数、最適化フラグ、RAIDアレイ番号、入れ替え済みスライス番号については後述する。 The start LBA in the sequential determination data indicates the start LBA of the corresponding write request until the first sequential write is determined. After the first sequential write is determined, the first LBA of the determined sequential write is determined. Indicates. The latest LBA indicates the LBA of the last write request in the received write request sequence corresponding to the sequential write, and the write LBA is the latest stripe that is the target of ejection in the subsequent ejection process in the corresponding sequential write. Indicates the LBA of the group. The access size indicates the access size specified by the last write request in the sequence of received write requests corresponding to the sequential write. The number of hits, optimization flag, RAID array number, and replaced slice number will be described later.
本実施形態では、指定の論理ディスク番号を含むシーケンシャル判定テーブル275のエントリ群の中に、シーケンシャル判定データ中の最新LBA及びアクセスサイズから算出される終了論理アドレス“最新LBA+アクセスサイズ”と最新のライト要求の指定するLBAとの差分Δの絶対値|Δ|が閾値未満となるエントリが存在する場合に、最新のライト要求の指定する論理ディスク番号及びLBAに対応するエントリが存在すると判定される(ステップ1102のYes)。ステップ1102の判定がYesの場合、シーケンシャル性検出部241は、最新のライト要求の指定するライトが、該当するシーケンシャル判定テーブル275のエントリの情報(シーケンシャル判定データ)で示されるライトに対してシーケンシャル性を有する後続ライトであると判定する。
In this embodiment, the end logical address “latest LBA + access size” calculated from the latest LBA and access size in the sequential judgment data and the latest write are included in the entry group of the sequential judgment table 275 including the designated logical disk number. If there is an entry whose absolute value | Δ | of the difference Δ with the LBA specified by the request is less than the threshold, it is determined that there is an entry corresponding to the logical disk number and LBA specified by the latest write request (
もし、最新のライト要求の指定する論理ディスク番号及びLBAに対応するシーケンシャル判定テーブル275のエントリが存在しないならば(ステップ1102のNo)、シーケンシャル性検出部241は、シーケンシャル判定テーブル275の空きエントリが存在しないかを判定する(ステップ1103)。もし、シーケンシャル判定テーブル275の空きエントリが存在するならば(ステップ1103のNo)、シーケンシャル性検出部241はステップ1104に進む。このステップ1104においてシーケンシャル性検出部241は、シーケンシャル判定テーブル275の空きエントリにシーケンシャル判定データを設定する。この空きエントリに設定されるシーケンシャル判定データは、開始LBA及び最新LBAとして最新のライト要求の指定するLBAを含み、アクセスサイズとして当該最新のライト要求の指定するアクセスサイズを含む。また空きエントリに設定されるシーケンシャル判定データの最適化フラグは“0”に、ヒット回数は1にそれぞれ設定される。ステップ1104が実行されると、IO特性判定部240によるIO特性判定処理は終了する。
If there is no entry in the sequential determination table 275 corresponding to the logical disk number and LBA specified by the latest write request (No in step 1102), the
一方、最新のライト要求の指定する論理ディスク番号及びLBAに対応するシーケンシャル判定テーブル275のエントリが存在するならば(ステップ1102のYes)、シーケンシャル性検出部241は、当該テーブル275のエントリに設定されているシーケンシャル判定データの最新LBA及びアクセスサイズを、それぞれ当該最新のライト要求の指定するLBA及びアクセスサイズに更新すると共に、ヒット回数を1インクリメントする(ステップ1105)。ヒット回数は、当該ヒット回数を含むシーケンシャル判定テーブル275のエントリで示されるライトに対してシーケンシャル性を有する後続ライトであると判定された回数を示す。このようにヒット回数は、シーケンシャル判定テーブル275のエントリを参照することによってシーケンシャルライトが判定された回数を示しており、当該シーケンシャルライトの進捗の度合いを示す。
On the other hand, if there is an entry in the sequential determination table 275 corresponding to the logical disk number and LBA specified by the latest write request (Yes in step 1102), the
次にシーケンシャル性検出部241は、インクリメント後のヒット回数が閾値を越えたかを判定する(ステップ1106)。もし、インクリメント後のヒット回数が閾値を越えていないならば(ステップ1106のNo)、IO特性判定部240によるIO特性判定処理は終了する。
Next, the
これに対し、インクリメント後のヒット回数が閾値を越えているならば(ステップ1106のYes)、シーケンシャル性検出部241は、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えているかを、当該最新のライト要求の指定するLBAに対応する物理アドレスに基づいて判定する(ステップ1107)。そこでシーケンシャル性検出部241はステップ1107を実行する際に、最新のライト要求の指定するLBAに対応するRAIDアレイ120-iの物理アドレスを論理/物理アドレス管理部250に問い合わせる。
On the other hand, if the number of hits after the increment exceeds the threshold (Yes in step 1106), the
すると論理/物理アドレス管理部250は、LBAからRAIDアレイ120-iの物理アドレスへの変換を実行して、当該物理アドレスをシーケンシャル性検出部241に応答する。この論理/物理アドレス管理部250によるLBAから物理アドレスへの変換の詳細は後述する。シーケンシャル性検出部241は、論理/物理アドレス管理部250によって変換された物理アドレスに基づいて、ステップ1107の判定を行う。もし、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えていないならば(ステップ1107のNo)、IO特性判定部240によるIO特性判定処理は終了する。
Then, the logical / physical address management unit 250 performs conversion from the LBA to the physical address of the RAID array 120-i and returns the physical address to the
これに対し、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えているならば(ステップ1107のYes)、シーケンシャル性検出部241は、上述のシーケンシャル判定テーブル275のエントリに設定されているシーケンシャル判定データ中の最適化フラグが“1”にセットされているかを判定する(ステップ1108)。もし、最適化フラグが“1”にセットされていないならば(ステップ1108のNo)、つまり最適化フラグが最適化未実行を示す初期値“0”にリセットされているならば、当該IO特性判定部240における後述する性能最適化処理を起動する(ステップ1109)。
On the other hand, if the access specified by the latest write request exceeds the stripe group size boundary (Yes in step 1107), the
これに対し、最適化フラグが“1”にセットされているならば(ステップ1108のYes)、IO特性判定部240内では、シーケンシャル性検出部241から割り当て要求部242に制御が渡される。すると割り当て要求部242は、スライス入れ替え処理を行う必要があるかを判定する(ステップ1110)。このステップ1110の判定は、先のステップ1105で更新された最新LBAが入れ替え済みスライス番号の示す論理スライスの位置に到達したかをチェックすることによって行われる。入れ替え済みスライス番号は、既に物理スライスが入れ替え済みの論理スライスの列の最後尾の論理スライスを示す。最新LBAが、この最後尾の論理スライスの位置に到達すると、当該最後尾の論理スライスに後続する論理スライスに割り当てられている物理スライスを入れ替える必要が生じる(ステップ1110のYes)。この場合、割り当て要求部242は、構成管理部260による後述するスライス入れ替え処理を起動する(ステップ1111)。
On the other hand, if the optimization flag is set to “1” (Yes in step 1108), control is transferred from the
ステップ111が実行されると、割り当て要求部242からシーケンシャル性検出部241に制御が戻される。するとシーケンシャル性検出部241は、後追い吐き出しの実行をIO管理部220に要求する(ステップ1112)。この要求では、後追い吐き出しの対象となるストライプグループが、対応するシーケンシャル判定テーブル275のエントリに設定されているシーケンシャル判定データ中の書き込みLBAによって指定される。これによりIO管理部220は、シーケンシャルライトが通り過ぎたストライプグループのデータのうち、キャッシュメモリ114上の未だRAIDアレイ120-iに書き出されていない、いわゆるライトバックデータを、当該RAIDアレイ120-iに書き出すための処理を実行する。シーケンシャルライトが通り過ぎたストライプグループとは、当該シーケンシャルライトにおける開始LBAから最新LBAまでの範囲に対応するストライプグループを指す。シーケンシャル判定データ中の書き込みLBAは、後追い吐き出しの実行の都度更新される。
When
また、シーケンシャル性検出部241は、性能最適化処理を起動した場合(ステップ1109)と、最新LBAが既に物理スライスが入れ替え済みの論理スライスの列の最後尾の論理スライスの位置に到達していない場合(ステップ1110のNo)にも、後追い吐き出しの実行をIO管理部220に要求する(ステップ1112)。
ステップ1112が実行されると、IO特性判定部240によるIO特性判定処理は終了する。
Further, when the performance optimization process is started (step 1109), the
When
さてシーケンシャル性検出部241は、上記ステップ1103で、シーケンシャル判定テーブル275の空きエントリが存在していないと判定した場合、ライト要求の指定する論理ディスク番号に対応付けられているシーケンシャル判定テーブル275のエントリの群のうち、最低優先度のシーケンシャル判定テーブル275のエントリを空きエントリとするための置換対象として決定する。本実施形態では、シーケンシャル判定データ記憶部274に格納されているシーケンシャル判定テーブル275のエントリの群の優先度は、LRU(Least Recently Used)ルールに従って管理される。このため最も以前に使用されたシーケンシャル判定テーブル275のエントリが置換対象となる。なお、シーケンシャル判定テーブル275のエントリの群の優先度を、LRUルール以外のアルゴリズムで管理することも可能である。
When the
シーケンシャル性検出部241は、最低優先度のシーケンシャル判定テーブル275のエントリに設定されているシーケンシャル判定データ中の最適化フラグが“1”にセットされているかを判定する(ステップ1113)。もし、最適化フラグが“1”にセットされていないならば(ステップ1113のNo)、シーケンシャル性検出部241は最低優先度のシーケンシャル判定テーブル275のエントリを空きのエントリとして、上記ステップ1104を実行する。これに対し、最適化フラグが“1”にセットされているならば(ステップ1113のYes)、シーケンシャル性検出部241は、構成管理部260による後述するリカバリ処理を起動して(ステップ1114)、上記ステップ1104を実行する。
The
次に、ステップ1109で起動される性能最適化処理について、図13のフローチャートを参照して説明する。
シーケンシャル性検出部241は、ステップ1108で判定された最適化フラグを含むシーケンシャル判定テーブル275のエントリの示す書き込みLBAの位置から後追い吐き出し実行中のシーケンシャルライトの数(以下、値Aと称する)を、シーケンシャル判定データ記憶部274に格納されているシーケンシャル判定テーブル275のエントリの群に基づいて算出する。シーケンシャル性検出部241は、この値Aが2以上であるかを判定する。即ちシーケンシャル性検出部241は、書き込みLBAの位置から複数の後追い吐き出しが実行中であるかを判定する(ステップ1301)。
Next, the performance optimization process started in
The
もし、書き込みLBAの位置から複数の後追い吐き出しが実行中である場合(ステップ1301のYes)、シーケンシャル性検出部241は、対応する複数のシーケンシャルライトを示すシーケンシャル判定テーブル275のエントリの群の中に、最適化フラグが“1”にセットされていないシーケンシャルライト、つまり最適化が実行されていないシーケンシャルライトを示すエントリが存在するかを判定する(ステップ1302)。もし、このようなエントリが存在するならば(ステップ1302のYes)、シーケンシャル性検出部241は、構成管理部260に問い合わせることにより、当該構成管理部260から、プール121に属する全てのRAIDアレイ120-iのRAIDアレイ番号の配列を取得する(ステップ1303)。つまり構成管理部260は、シーケンシャル性検出部241からの問い合わせに従い、プール管理テーブル273を参照することにより、所属RAIDアレイ番号配列を取得して、シーケンシャル性検出部241に通知する。
If a plurality of subsequent ejections are being executed from the position of the write LBA (Yes in step 1301), the
シーケンシャル性検出部241は、取得した所属RAIDアレイ番号配列で示されるRAIDアレイ120-iの群の中に、最適化で未選択のRAIDアレイが存在するかを判定する(ステップ1304)。もし、未選択のRAIDアレイが存在するならば(ステップ1304のYes)、シーケンシャル性検出部241はそのRAIDアレイを選択する(ステップ1305)。シーケンシャル性検出部241は、選択したRAIDアレイのRAIDアレイ番号を、ステップ1113で判定された最適化フラグを含むシーケンシャル判定テーブル275のエントリに保持すると共に、当該最適化フラグを“1”にセットして(ステップ1306)、性能最適化処理を終了する。この最適化フラグが“1”にセットされたシーケンシャル判定テーブル275のエントリのデータ(つまりシーケンシャル判定データ)は、対応するシーケンシャルライトにおける書き込み先となる論理スライスに既に割り当てられている物理スライスが当該データ中のRAIDアレイ番号のRAIDアレイに属していない場合、当該RAIDアレイ番号のRAIDアレイに属する物理スライスに再割り当てすべきことを示す。
The
次に、ステップ1111で起動されるスライス入れ替え処理について、図14のフローチャートを参照して説明する。
割り当て要求部242は構成管理部260によるスライス入れ替え処理を起動する際に、物理スライスの入れ替えの対象となる論理ディスク及び当該論理ディスク内の論理スライスの、それぞれ論理ディスク番号及び論理スライス番号と、入れ替え先のRAIDアレイのRAIDアレイ番号とを構成管理部260に渡す。入れ替えの対象となる論理スライスの論理スライス番号は、ステップ1110で判定された入れ替え済みスライス番号に1を加算することによって取得される。つまり割り当て要求部242は、スライス入れ替え処理のための論理ディスク番号、論理スライス番号及びRAIDアレイ番号を構成管理部260に対して指定して、当該構成管理部260によるスライス入れ替え処理を起動する。
Next, the slice replacement process started in step 1111 will be described with reference to the flowchart of FIG.
When the
すると構成管理部260は、指定された論理ディスク番号から、当該論理ディスク番号の論理ディスクを構成するRAIDアレイ120-iの群が含まれるプール121のプール番号を特定する(ステップ1401)。このステップ1401は、プール管理テーブル273を参照して、指定された論理ディスク番号を所属論理ディスク番号配列内に含むプール管理データを検索することにより、実現される。
Then, the
次に構成管理部260は、指定された論理スライス番号の論理スライスに、現在何れのRAIDアレイの物理スライスが割り当てられているかを特定し、その物理スライスを含むRAIDアレイが、指定されたRAIDアレイ番号のRAIDアレイと同一でないかを判定する(ステップ1402)。もし、同一であるならば(ステップ1402のNo)、構成管理部260は、物理スライスの入れ替えは不要であるとして、スライス入れ替え処理を終了する。
Next, the
これに対して同一でないならば(ステップ1402のYes)、構成管理部260はステップ1401で特定したプール番号のプール121に関するプール管理データのフリーリスト内に、指定されたRAIDアレイの物理スライスのスライス管理データが存在するかを判定する(ステップ1403)。もし、存在するならば(ステップ1403のYes)、構成管理部260は、該当する物理スライスのスライス管理データを上記フリーリストから取り外して、論理ディスク管理テーブル271に保持されている、指定された論理ディスク番号、論理スライス番号を含む論理ディスク管理データの物理ミラーリストポインタに、当該スライス管理データを繋ぐ(ステップ1404)。この時点でシーケンシャルライトは、指定された論理スライスの1つ前に到達している。したがって、指定された論理スライスの2つ前の論理スライスは、既にシーケンシャルライト済みの状態にある。この状態を、シーケンシャルライトが論理スライス(より詳細には、指定された論理スライスの2つ前の論理スライス)を通り過ぎていると表現する。
If they are not the same (Yes in step 1402), the
そこで構成管理部260は、シーケンシャルライトが通り過ぎている論理スライスの論理ディスクデータ内の物理ミラーリストポインタに、物理スライスのスライス管理データが繋がっているかを判定する(ステップ1405)。もし、繋がっているならば(ステップ1405のYes)、つまり物理ミラーリストポインタがNULLでないならば、構成管理部260は当該物理ミラーリストポインタと対をなす物理リストポインタに繋がっている物理スライスのスライス管理データを、プール管理データ構造のフリーリストに繋ぎ直す(ステップ1406)。これにより、物理リストポインタに繋がっていたスライス管理データによって管理される物理スライスは、未使用の物理スライスとしてプール121に返却されたことになる。ステップ1406において構成管理部260は、上記物理ミラーリストポインタに繋がっている物理スライスのスライス管理データを、当該物理ミラーリストポインタと対をなす物理リストポインタに移す。構成管理部260はステップ1406を実行すると、スライス入れ替え処理を終了する。
Therefore, the
次に論理/物理アドレス管理部250によるLBAから物理アドレスへの変換について説明する。
論理/物理アドレス管理部250は、LBAから物理アドレスへの変換に際し、当該LBA(以下、対象LBAと称する)の指す領域を含む論理スライスに対応する論理ディスク管理テーブル271内の論理ディスク管理データを参照する。そして論理/物理アドレス管理部250は、この論理スライスに対応する論理ディスク管理データ内の物理ミラーリストポインタがNULLでない場合、当該論理スライスのシーケンシャルライトがどこまで進捗しているかを、シーケンシャル性検出部241に問い合わせる。もし対象LBAの指す領域が、シーケンシャルライトが通り過ぎている領域であった場合、論理/物理アドレス管理部250は対象LBAを、物理ミラーリストポインタに繋がっているスライス管理データに基づいて、当該スライス管理データによって管理される物理スライスの物理アドレスに変換する。これに対し、対象LBAの指す領域が、シーケンシャルライトが通り過ぎている領域でない場合、構成管理部260は、物理リストポインタに繋がっているスライス管理データに基づいて、当該スライス管理データによって管理される物理スライスの物理アドレスに変換する。
Next, the conversion from the LBA to the physical address by the logical / physical address management unit 250 will be described.
The logical / physical address management unit 250 converts the logical disk management data in the logical disk management table 271 corresponding to the logical slice including the area pointed to by the LBA (hereinafter referred to as the target LBA) during the conversion from the LBA to the physical address. refer. Then, when the physical mirror list pointer in the logical disk management data corresponding to this logical slice is not NULL, the logical / physical address management unit 250 determines how far the sequential write of the logical slice has progressed. Contact If the area pointed to by the target LBA is an area where the sequential write has passed, the logical / physical address management unit 250 executes the slice management based on the slice management data linked to the physical mirror list pointer. Convert to physical address of physical slice managed by data. On the other hand, when the area indicated by the target LBA is not an area where the sequential write passes, the
次に構成管理部260によるリカバリ処理について説明する。
シーケンシャル性検出部241は構成管理部260によるリカバリ処理を起動する際に、リカバリの対象となる論理ディスク及び当該論理ディスク内の論理スライスの、それぞれ論理ディスク番号及び論理スライス番号と、どこまでライトが進んだかを示すライト進捗情報とを構成管理部260に対して指定して、当該構成管理部260によるリカバリ処理を起動する。
Next, recovery processing by the
When the
すると構成管理部260は、指定された論理ディスク番号及び論理スライス番号に対応する論理ディスク管理データを参照する。そして構成管理部260は、この論理ディスク管理データの物理リストポインタに繋がれているスライス管理データからコピー元の物理スライスを特定し、当該論理ディスク管理データの物理ミラーリストポインタに繋がれているスライス管理データからコピー先の物理スライスを特定する。次に構成管理部260は、ライト進捗情報に基づき、指定された論理スライスの最後尾まで、コピー元物理スライスからコピー先物理スライスへのデータのコピーを行う。コピー元とコピー先は逆でも良い。従って、コピー量が少ない方向等の特定のポリシを用いてコピー方向を決定しても当然良い。コピー機能自体は、レプリケーションや、スライスの移動で使われる既に知られた機能であるため、詳細は省略する。構成管理部260はコピーを完了すると、コピー先の物理スライスのスライス管理データを物理リストポインタに移し、物理ミラーリストポインタをNULLに設定する。これによりリカバリ処理は終了する。
Then, the
以上に述べた論理スライスへの物理スライスの再割り当ての動作の流れについて、図15及び図16を参照して説明する。
ホスト装置からのライト要求で指定されるアクセスサイズは、一般にスライスサイズよりも極めて小さい。本実施形態では、スライスサイズは512MB(メガバイト)である。これに対し、アクセスサイズは最大でも高々1MBである。このため、例えばスライスサイズを越えるストリームデータを論理ディスク300にライトする場合、ホスト装置からデータ記憶装置10の制御装置11に対して複数のライト要求が順次送られる。
The flow of reassignment of physical slices to logical slices described above will be described with reference to FIGS.
The access size specified by the write request from the host device is generally much smaller than the slice size. In this embodiment, the slice size is 512 MB (megabytes). On the other hand, the access size is 1 MB at most. Therefore, for example, when writing stream data exceeding the slice size to the
図15及び図16の例では、論理スライス番号が0の論理スライス310から始まる論理アドレスが連続する複数の論理スライス310へのストリームデータのライトのための複数の第1のライト要求がホスト装置から制御装置11に1要求ずつ順に送られると共に、論理スライス番号がpの論理スライス310から始まる論理アドレスが連続する複数の論理スライス310へのストリームデータのライトのための複数の第2のライト要求が当該ホスト装置(または他のホスト装置)から制御装置11に1要求ずつ順に送られるものとする。以下の説明では、論理スライス番号がq(q=0,1,…)の論理スライス310を、論理スライス310(q)と表現する。
In the example of FIGS. 15 and 16, a plurality of first write requests for writing stream data to a plurality of
上述の複数の第1のライト要求(つまり第1のライト要求の列)における先頭の第1のライト要求が制御装置11に送られた段階では、この先頭の第1のライト要求に対応するシーケンシャル判定データ(以下、第1のシーケンシャル判定データと称する)が、シーケンシャル判定テーブル275の空きエントリに保持される。この第1のシーケンシャル判定データの開始LBA及び最新LBAには、先頭の第1のライト要求の開始LBAが設定される。
At the stage where the first write request at the head in the plurality of first write requests (that is, the first write request string) is sent to the
同様に、複数の第2のライト要求(つまり第2のライト要求の列)における先頭の第2のライト要求が制御装置11に送られた段階では、この先頭第2のライト要求に対応するシーケンシャル判定データ(以下、第2のシーケンシャル判定データと称する)が、シーケンシャル判定テーブル275の空きエントリに保持される。この第2のシーケンシャル判定データの開始LBA及び最新LBAには、先頭の第2のライト要求の開始LBAが設定される。
Similarly, at the stage where the first second write request in the plurality of second write requests (that is, the second write request sequence) is sent to the
シーケンシャル性検出部241は、第1のライト要求の列における2番目以降の第1のライト要求が制御装置11に送られる都度、当該2番目以降の第1のライト要求と第1のシーケンシャル判定データとに基づきシーケンシャル性(以下、第1のシーケンシャルライトと称する)を判定する。同様にシーケンシャル性検出部241は、第2のライト要求の列における2番目以降の第2のライト要求が制御装置11に送られる都度、当該2番目以降の第2のライト要求と第2のシーケンシャル判定データとに基づきシーケンシャル性(以下、第2のシーケンシャルライトと称する)を判定する。
Each time the second and subsequent first write requests in the first write request sequence are sent to the
図15(a)は、図3と同様に、論理ディスク300内の論理スライス310の集合に、RAIDアレイ120-0及び120-1内のそれぞれ一部の物理スライス320の集合が割り当てられている状態を示す。論理ディスク300内の白抜きの矩形で示される各論理スライス310は、当該論理スライス310にRAIDアレイ120-0内の物理スライス320が割り当てられていることを示し、論理ディスク300内のハッチングが施された矩形で示される各論理スライス310は、当該論理スライス310にRAIDアレイ120-1内の物理スライス320が割り当てられていることを示す。
In FIG. 15A, as in FIG. 3, a set of some
複数の第1のライト要求及び複数の第2のライト要求がそれぞれ指定するライトデータは、キャッシュ管理部230によって所定サイズのブロック単位でキャッシュメモリ114に一時格納される。また、第1のシーケンシャルライトにおける後追い吐き出し処理と第2のシーケンシャルライトにおける追い吐き出し処理とが、それぞれ第1及び第2のシーケンシャルライトを追いかけるように、ストライプグループサイズを単位に並行して実行される。これら2つの後追い吐き出し処理は、論理的には論理ディスク300内の論理スライス310(0)から始まる論理アドレスが連続する複数の論理スライス310及び論理スライス310(p)から始まる論理アドレスが連続する複数の論理スライス310に対して行われるが、物理的には同一または異なるRAIDアレイ内の対応する物理スライスに対して行われる。
Write data respectively designated by the plurality of first write requests and the plurality of second write requests are temporarily stored in the
ここで、第1及び第2のシーケンシャルライトにおける後追い吐き出し処理が同一のRAIDアレイ内の物理スライスに対してなされるものとする。この場合、たとえ対象となるストライプグループが異なっていても、当該RAIDアレイを構成する記憶媒体12の物理的性質から、当該RAIDアレイに対する第1及び第2のシーケンシャルライトにおける後追い吐き出し処理を同時に行うことはできない。
Here, it is assumed that the post-ejecting process in the first and second sequential writes is performed on the physical slices in the same RAID array. In this case, even if the target stripe group is different, the post-ejection process in the first and second sequential writes to the RAID array is performed simultaneously due to the physical properties of the
まず説明の簡略化のために、第1及び第2のシーケンシャルライトが、ストライプグループサイズを単位に交互に行われる場合を想定する。また、論理スライス310(0)及び310(p)に、それぞれ同一のRAIDアレイ内の第1及び第2の物理スライスが割り当てられているものとする。この場合、第1の物理スライス内と第2の物理スライス内では、見かけ上シーケンシャルライトとなるものの、アクセス先が第1の物理スライスと第2の物理スライスとの間で頻繁に切り替えられる。このため、実際にはシーケンシャルではなくなる。 First, for simplification of description, it is assumed that the first and second sequential writes are alternately performed in units of stripe group sizes. Further, it is assumed that the first and second physical slices in the same RAID array are assigned to the logical slices 310 (0) and 310 (p), respectively. In this case, in the first physical slice and the second physical slice, although seemingly sequential write, the access destination is frequently switched between the first physical slice and the second physical slice. For this reason, it is actually not sequential.
そこで本実施形態では、後追い吐き出し処理の高速化のために、論理スライスへの物理スライスの再割り当てを行う。
まず図15(a)の状態で、第1及び第2のシーケンシャルライトが判定され、図15(b)に示すように論理スライス310(0),310(p)へのライトが進捗したものとする。ここでは、論理スライス310(p)へのライトの方がより進捗しているものとする。
Therefore, in this embodiment, physical slices are reassigned to logical slices in order to increase the speed of post-discharge processing.
First, in the state of FIG. 15A, the first and second sequential writes are determined, and writing to the logical slices 310 (0) and 310 (p) has progressed as shown in FIG. 15B. To do. Here, it is assumed that the write to the logical slice 310 (p) is more advanced.
第1のシーケンシャルライトにおける次のライト先は論理スライス310(1)であり、第2のシーケンシャルライトにおける次のライト先は論理スライス310(p+1)である。論理スライス310(1)及び310(p+1)には、それぞれ同一RAIDアレイ120-1内の異なる物理スライス320が割り当てられている。
The next write destination in the first sequential write is the logical slice 310 (1), and the next write destination in the second sequential write is the logical slice 310 (p + 1). Different
割り当て要求部242は、第1のシーケンシャルライト及び第2のシーケンシャルライトの各々について、論理ディスク300内で現在ライト処理中の論理スライス310(0),310(p)に後続する論理スライス310(1),310(p+1)に割り当てられている物理スライス320が属するRAIDアレイのRAIDアレイ番号(以下、RAIDアレイ番号A,Bと称する)を、構成管理部260への問い合わせによって取得する。割り当て要求部242は、取得したRAIDアレイ番号A,Bを比較する。図15(b)の例では、RAIDアレイ番号A,Bは、いずれもRAIDアレイ120-1を示す“1”である。
The
この例のように、RAIDアレイ番号A,Bが同一(A=B=1)であるならば、割り当て要求部242は、現在ライト処理中の論理スライス310(0),310(p)のいずれか一方、例えばライトがより進捗している論理スライス310(p)に後続する論理スライス310(p+1)に対する物理スライス320の再割り当てを、構成管理部260に対して要求する。このとき割り当て要求部242は、RAIDアレイ番号A(=B=1)以外の、未選択のRAIDアレイ120-iのRAIDアレイ番号Cを、構成管理部260に対して指定する。ここでは、RAIDアレイ番号Cが、RAIDアレイ120-0を示す“0”であるものとする。
As in this example, if the RAID array numbers A and B are the same (A = B = 1), the
このため図15(b)の例では、構成管理部260は論理スライス310(p+1)に対し、現在RAIDアレイ120-1内の物理スライス320(以下、旧物理スライス320(old)と称する)が割り当てられている状態で、矢印151で示すように、RAIDアレイ120-0内の未使用の物理スライス320(以下、新物理スライス320(new)と称する)を割り当てる。これらの新旧2つの物理スライスによって、相互の差分が管理される。つまり、新物理スライス320(new)が割り当てられた段階では、旧物理スライス320(old)のみに有効なデータが格納されている。その後、ライトデータの書き込みが新物理スライス320(new)の開始位置から開始されると、新物理スライス320(new)の開始位置から最新のライトデータの書き込みが完了した位置までの領域のデータと、当該書き込みが完了した位置に対応する旧物理スライス320(old)内の位置から当該旧物理スライス320(old)の終端までの領域のデータとにより、論理スライス310(p+1)のデータが表される。このように、1つの論理スライスに対して、異なる2つのRAIDアレイ内の物理スライスが同時に割り当てられている状態をミラー状態と呼ぶ。
Therefore, in the example of FIG. 15B, the
以後、割り当て要求部242は、シーケンシャルライトが各論理スライス310の開始位置に達した時点で次の論理スライス310への物理スライス320の割り当てを構成管理部260に要求する。つまり割り当て要求部242は、第1のシーケンシャルライトの場合、上記次の論理スライス310に割り当てられている物理スライス320が属するRAIDアレイのRAIDアレイ番号がRAIDアレイ番号A(=1)以外であるならば、未選択のRAIDアレイのRAIDアレイ番号A(=1)、つまりRAIDアレイ120-1のRAIDアレイ番号“1”を構成管理部260に対して指定することにより、当該次の論理スライス310に対する物理スライス320の再割り当てを当該構成管理部260に要求する。同様に第2のシーケンシャルライトの場合、割り当て要求部242は、上記次の論理スライス310に割り当てられている物理スライス320が属するRAIDアレイのRAIDアレイ番号がRAIDアレイ番号C(=0)以外であるならば、未選択のRAIDアレイのRAIDアレイ番号C(=0)、つまりRAIDアレイ120-0のRAIDアレイ番号“0”を構成管理部260に対して指定することにより、当該次の論理スライス310に対する物理スライス320の再割り当てを当該構成管理部260に要求する。
Thereafter, the
図16(a)は、論理スライス310(0)へのライトが進捗した結果、当該論理スライス310(0)へのライトが完了し、最新LBA(つまり第1のシーケンシャルライト)が次の論理スライス310(1)の開始位置に達した状態を示す。第1のシーケンシャルライトにおける論理スライス310(1)の次のライト先は論理スライス310(2)である。この論理スライス310(2)には、RAIDアレイ番号がA(=1)以外のRAIDアレイ120-0内の物理スライス320が割り当てられている。この場合、割り当て要求部242は、RAIDアレイ120-0以外のRAIDアレイのRAIDアレイ番号、例えばRAIDアレイ120-1のRAIDアレイ番号を構成管理部260に対して指定することにより、論理スライス310(2)に対する物理スライス320の再割り当てを当該構成管理部260に要求する。
In FIG. 16A, as a result of the progress of the write to the logical slice 310 (0), the write to the logical slice 310 (0) is completed, and the latest LBA (that is, the first sequential write) is the next logical slice. A state where the starting position of 310 (1) has been reached is shown. The next write destination of the logical slice 310 (1) in the first sequential write is the logical slice 310 (2). A
すると構成管理部260は論理スライス310(2)に対し、現在RAIDアレイ120-0内の物理スライス320が割り当てられている状態で、図16(a)において矢印161で示すように、RAIDアレイ120-1内の未使用の物理スライス320を割り当てる。
Then, the
図16(a)はまた、論理スライス310(p+1)へのライトが進捗した結果、当該論理スライス310(p+1)へのライトが完了し、最新LBA(つまり第2のシーケンシャルライト)が次の論理スライス310(p+2)の開始位置に達した状態をも示す。論理スライス310(p+2)の次の論理スライス310(p+3)には、RAIDアレイ番号がC(=0)以外のRAIDアレイ120-1内の物理スライス320が割り当てられている。この場合、割り当て要求部242は、RAIDアレイ120-1以外のRAIDアレイのRAIDアレイ番号、例えばRAIDアレイ120-0のRAIDアレイ番号を構成管理部260に対して指定することにより、論理スライス310(p+3)に対する物理スライス320の再割り当てを当該構成管理部260に要求する。
FIG. 16A also shows that as a result of the progress of the write to the logical slice 310 (p + 1), the write to the logical slice 310 (p + 1) is completed, and the latest LBA (that is, the second sequential write) is the next logical The state where the start position of the slice 310 (p + 2) has been reached is also shown. The
すると構成管理部260は、論理スライス310(p+3)に対し、現在RAIDアレイ120-1内の物理スライス320が割り当てられている状態で、図16(a)において矢印162で示すように、RAIDアレイ120-0内の未使用の物理スライス320を割り当てる。また構成管理部260は、論理スライス310(p+1)に割り当てられていた旧物理スライス320(old)を、図16(a)において矢印163で示すように、RAIDアレイ120-1内の未使用の物理スライス320として(プール121に)返却する。
Then, the
図16(b)は、論理スライス310(2)へのライトが進捗した結果、当該論理スライス310(2)へのライトが完了し、最新LBAが次の論理スライス310(3)の開始位置に達した状態を示す。論理スライス310(3)の次の論理スライス310(4)には、RAIDアレイ番号がA(=1)以外のRAIDアレイ120-0内の物理スライス320が割り当てられている。この場合、割り当て要求部242は、RAIDアレイ120-0以外のRAIDアレイのRAIDアレイ番号、例えばRAIDアレイ120-1のRAIDアレイ番号を構成管理部260に対して指定することにより、論理スライス310(4)に対する物理スライス320の再割り当てを当該構成管理部260に要求する。
In FIG. 16B, as a result of the progress of the write to the logical slice 310 (2), the write to the logical slice 310 (2) is completed, and the latest LBA is at the start position of the next logical slice 310 (3). Indicates the reached state. The
すると構成管理部260は論理スライス310(4)に対し、現在RAIDアレイ120-0内の物理スライス320が割り当てられている状態で、図16(b)において矢印164で示すように、RAIDアレイ120-1内の未使用の物理スライス320を割り当てる。また構成管理部260は、論理スライス310(2)に割り当てられていた旧物理スライス320を、図16(b)において矢印165で示すように、RAIDアレイ120-0内の未使用の物理スライス320として(プール121に)返却する。
The
本実施形態によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なるRAIDアレイに格納していくことが可能になる。これにより、複数のシーケンシャルライトの処理時に、相互の後追い吐き出しが干渉して記憶媒体12へのアクセスがランダムになることによる性能低下を防止することができる。
According to the present embodiment, it is possible to autonomously store mutual write data in different RAID arrays as a plurality of sequential writes progress. Thereby, at the time of processing of a plurality of sequential writes, it is possible to prevent performance degradation due to mutual post-discharge being interfered and random access to the
[変形例]
次に上記実施形態の変形例について説明する。
上記実施形態では、論理ディスク300の作成時に、当該論理ディスク300内の全ての論理スライスに対して物理スライスが割り当てられる。これに対し、本変形例では、論理ディスク300は仮想的に構成されており、当該論理ディスク300内の論理スライスへのライトが最初に要求された時点で、当該論理スライスに物理スライスが新規に割り当てられる。このため本変形例では、論理ディスク300の作成時には、当該論理ディスク300に対応する論理ディスク管理テーブル271内の論理ディスク管理データの物理リストポインタは、物理ミラーリストポインタと同様にNULLに設定される。
[Modification]
Next, a modification of the above embodiment will be described.
In the above embodiment, physical slices are assigned to all logical slices in the
本変形例では、論理ディスク300内の論理スライスに対する物理スライスの割り当てに際し、シーケンシャル判定テーブル275内エントリの最適化フラグが“1”にセットされているかが判定される(図11のステップ1108参照)。もし、最適化フラグが“1”にセットされているならば、構成管理部260は、割り当て要求部242によって指定されたRAIDアレイ番号のRAIDアレイ内の未使用の物理スライスを、プール管理テーブル273に保持されるプール管理データ内のフリーリストに基づいて確保して、該当する論理スライスに割り当てる。これにより、図11のステップ1110及びステップ1111(つまりスライス入れ替え処理)を不要とすることができる。
In this modification, it is determined whether the optimization flag of the entry in the sequential determination table 275 is set to “1” when assigning a physical slice to a logical slice in the logical disk 300 (see
本変形例において割り当て要求部242は、シーケンシャル性検出部241が複数のシーケンシャルライト、例えば第1及び第2のシーケンシャルライトを検出した場合、構成管理部260に対して、第1のシーケンシャルライト及び第2のシーケンシャルライトのそれぞれについて、論理ディスク300内で現在ライト処理中の論理スライスに後続する論理スライスに、それぞれ異なるRAIDアレイ内の第1の物理スライス及び第2の物理スライスを新規に割り当てることを要求する。この要求に際し、割り当て要求部242は構成管理部260に対して、異なるRAIDアレイ番号(以下、RAIDアレイ番号A,Bと称する)を指定する。
In the present modification, the
構成管理部260は、割り当て要求部242からの要求に従い、指定されたRAIDアレイ番号A,BのRAIDアレイからそれぞれ新たに未使用の物理スライスを取得して、その物理スライスを現在ライト処理中の論理スライスに後続する論理スライスに割り当てる。
In response to a request from the
以後、割り当て要求部242は、各論理スライスの開始位置に達した時点で次の論理スライスに割り当てられている物理スライスの割り当てを構成管理部260に要求する。つまり割り当て要求部242は、第1のシーケンシャルライトの場合、RAIDアレイ番号AのRAIDアレイ内の物理スライスの割り当てを、当該RAIDアレイ番号Aを指定することにより、構成管理部260に対して要求する。また割り当て要求部242は、第2のシーケンシャルライトの場合、RAIDアレイ番号BのRAIDアレイ内の物理スライスの割り当てを、当該RAIDアレイ番号Bを指定することにより、構成管理部260に対して要求する。
Thereafter, the
次に本変形例における論理スライスへの物理スライスの割り当ての動作の流れについて、図17及び図18を参照して説明する。
図17及び図18の例においても、図15及び図16の例と同様に、論理スライス310(0)から始まる論理アドレスが連続する複数の論理スライス310へのストリームデータのライトのための複数の第1のライト要求がホスト装置から制御装置11に1要求ずつ順に送られると共に、論理スライス310(p)から始まる論理アドレスが連続する複数の論理スライス310へのストリームデータのライトのための複数の第2のライト要求が当該ホスト装置(または他のホスト装置)から制御装置11に1要求ずつ順に送られるものとする。
Next, the flow of operations for assigning physical slices to logical slices in this modification will be described with reference to FIGS. 17 and 18.
In the example of FIGS. 17 and 18, as in the examples of FIGS. 15 and 16, a plurality of streams for writing stream data to a plurality of
図17(a)は、上記複数の第1及び第2のライト要求のうちのそれぞれ先頭の第1及び第2のライト要求がホスト装置から制御装置11に送られた状態を示す。このとき論理ディスク300内の少なくとも論理スライス310(0)及び310(p)は、当該論理ディスク300が作成されたときと同一の状態にあるものとする。つまり図17(a)の状態では、論理スライス310(0)及び310(p)には、物理スライス320は割り当てられていない。そこで本変形例では、論理ディスク300内の論理スライス310に最初にライトが要求された時点で、当該論理スライス310に物理スライス320が割り当てられる。
FIG. 17A shows a state in which the first and second write requests at the head of the plurality of first and second write requests are respectively sent from the host device to the
上記複数の第1及び第2のライト要求のうちの先頭の第1及び第2のライト要求がホスト装置から制御装置11に送られた状態では、シーケンシャル性検出部241はシーケンシャル性を判定できない。このような場合、割り当て要求部242は論理スライス310(0)及び310(p)に対する任意の物理スライス320の割り当てを、構成管理部260に対して要求する。
In the state where the first and second write requests at the head of the plurality of first and second write requests are sent from the host device to the
すると構成管理部260は、論理スライス310(0)及び310(p)にそれぞれ割り当てるべき物理スライス320を、プール管理テーブル273に保持されるプール管理データ内のフリーリストに繋がれている未使用の物理スライス320のスライス管理データに基づいて確保する。ここでは、RAIDアレイ120-0内の2つの物理スライス320が確保されたものとする。
Then, the
このとき構成管理部260は、該当する2つの物理スライス320のスライス管理データを上記フリーリストから取り外して、論理ディスク管理テーブル271に保持されている、論理ディスク300の論理ディスク番号及び論理スライス310(0)の論理スライス番号を含む論理ディスク管理データ、並びに論理ディスク300の論理ディスク番号及び論理スライス310(p)の論理スライス番号を含む論理ディスク管理データのそれぞれの物理リストポインタに、当該スライス管理データを繋ぐ。つまり構成管理部260は、確保した物理スライス320毎に、その物理スライス320のスライス管理データを上記フリーリストから取り外してスライス管理テーブル272に登録すると共に、論理ディスク管理テーブル271に登録されている論理スライス310(0)及び310(p)に関する論理ディスク管理データの物理リストポインタに、確保した物理スライス320のスライス管理データを繋ぐ。これにより図17(a)の例では、矢印171及び172で示されるように、論理スライス310(0)及び310(p)に、RAIDアレイ120-0内の物理スライス320がそれぞれ割り当てられる。
At this time, the
このような状態で、シーケンシャル性検出部241が、論理スライス310(0)内の領域へのデータのライトのための少なくとも2つの第1のライト要求に基づいて第1のシーケンシャルライトを判定する一方、論理スライス310(p)内の領域へのデータのライトのための少なくとも2つの第2のライト要求に基づいて第2のシーケンシャルライトを判定したものとする。また、論理スライス310(0)及び310(p)に対するライトがそれぞれ進捗したものとする。
In this state, the
すると、割り当て要求部242は構成管理部260に対して、第1のシーケンシャルライト及び第2のシーケンシャルライトのそれぞれについて、論理ディスク300内で現在ライト処理中の論理スライス310(0)及び310(p)に後続する論理スライス310(1)及び310(p+1)に、それぞれRAIDアレイ番号がA及びBのRAIDアレイ内の物理スライス320を割り当てることを要求する。
Then, the
構成管理部260は、割り当て要求部242からの要求に従い、指定されたRAIDアレイ番号A,BのRAIDアレイからそれぞれ新たに未使用の物理スライス320を取得して、その物理スライス320を論理スライス310(1)及び310(p+1)に割り当てる。ここでは、RAIDアレイ番号がA,BのRAIDアレイはRAIDアレイ120-0及び120-1であるものとする。この場合、RAIDアレイ120-0及び120-1から取得された未使用の物理スライス320が、図17(b)において矢印173及び174で示されるように、それぞれ論理スライス310(1)及び310(p+1)に割り当てられる。
In response to a request from the
その後、論理スライス310(0)及び310(p)に対するライトがそれぞれ進捗して、第1及び第2のシーケンシャルライトが次の論理スライス310(1)及び310(p+1)の開始位置に達すると、構成管理部260は割り当て要求部242からの要求に応じて、RAIDアレイ120-0及び120-1から未使用の物理スライス320を取得する。構成管理部260は取得した物理スライス320を、図18(a)において矢印181及び182で示されるように、それぞれ論理スライス310(1)及び310(p+1)に後続する論理スライス310(2)及び310(p+2)に割り当てる。
Thereafter, when the write to logical slices 310 (0) and 310 (p) progresses respectively, and the first and second sequential writes reach the start positions of the next logical slices 310 (1) and 310 (p + 1), The
その後、論理スライス310(1)及び310(p+1)に対するライトがそれぞれ進捗して、第1及び第2のシーケンシャルライトが次の論理スライス310(2)及び310(p+2)の開始位置に達すると、構成管理部260は割り当て要求部242からの要求に応じて、RAIDアレイ120-0及び120-1から未使用の物理スライス320を取得する。構成管理部260は取得した物理スライス320を、図18(b)において矢印183及び184で示されるように、それぞれ論理スライス310(2)及び310(p+2)に後続する論理スライス310(3)及び310(p+3)に割り当てる。
Thereafter, when the write to logical slices 310 (1) and 310 (p + 1) progresses respectively, and the first and second sequential writes reach the start positions of the next logical slices 310 (2) and 310 (p + 2), The
本変形例によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なるRAIDアレイに格納していくことが可能になる。これにより、複数のシーケンシャルライトの処理時に、記憶媒体12へのアクセスがランダムになることによる性能低下をすることができる。また上記実施形態と異なり、スライス入れ替え処理を不要とすることができる。
According to this modification, it is possible to autonomously store mutual write data in different RAID arrays as a plurality of sequential writes progress. As a result, it is possible to reduce performance due to random access to the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
10…データ記憶装置、11…制御装置、12…記憶媒体、20…データ通信路、112…CPU、113…プログラムメモリ、114…キャッシュメモリ、120-0〜120-5…RAIDアレイ(ディスクアレイ)、121…プール、210…ホストインタフェース制御部、220…IO管理部、230…キャッシュ管理部、240…IO特性判定部、241…シーケンシャル性検出部、242…割り当て要求部、250…論理/物理アドレス管理部、260…構成管理部、270…構成管理用記憶部、271…論理ディスク管理テーブル、272…スライス管理テーブル、273…プール管理テーブル、274…シーケンシャル判定データ記憶部、275…シーケンシャル判定テーブル、280…RAID制御部、290…HDDインタフェース制御部、300…論理ディスク、310…論理スライス、320…物理スライス。
DESCRIPTION OF
Claims (6)
前記複数のディスクアレイのそれぞれの記憶領域を一定サイズの物理スライスに分割して管理すると共に、これらの物理スライスのうちの一部の物理スライスの群を論理ディスクの論理スライスの群に割り当てる構成管理手段と、
前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記構成管理手段に要求する割り当て要求手段と
を具備することを特徴とするデータ記憶装置。 In a data storage device having a plurality of disk arrays,
Configuration management in which the storage areas of each of the plurality of disk arrays are divided into physical slices of a certain size and managed, and a group of some physical slices of these physical slices is allocated to the logical slice group of the logical disk Means,
When executing a plurality of sequential writes to the logical disk, for each of the plurality of sequential writes, a physical slice in a different disk array of the plurality of disk arrays with respect to a logical slice that is a write destination in the logical disk. A data storage device comprising: allocation requesting means for requesting the configuration management means for reassignment or new assignment.
前記割り当て要求手段は、前記複数のシーケンシャルライトのそれぞれについて書き込み先となる論理スライスに既に割り当てられている物理スライスが同一のディスクアレイに属する場合、当該書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てを、前記書き込み先となる論理スライスと再割り当てに用いられるべき物理スライスが属するディスクアレイとを指定することによって前記構成管理手段に要求し、
前記構成管理手段は、前記指定された論理スライスに既に割り当てられている物理スライスが属するディスクアレイが前記指定されたディスクアレイと異なる場合、前記指定されたディスクアレイ内の未使用の物理スライスを再割り当てする
ことを特徴とする請求項1記載のデータ記憶装置。 A group of physical slices of the physical slices of the plurality of disk arrays is allocated to the logical slice group of the logical disk by the configuration management unit when the logical disk is created.
When the physical slices already assigned to the logical slice that is the write destination for each of the plurality of sequential writes belong to the same disk array, the assignment requesting unit is configured to apply the plurality of disks to the logical slice that is the write destination. Requesting the configuration management means to reassign physical slices in different disk arrays of the array by designating the logical slice as the write destination and the disk array to which the physical slice to be used for reassignment belongs,
If the disk array to which the physical slice already assigned to the specified logical slice belongs is different from the specified disk array, the configuration management unit re-uses an unused physical slice in the specified disk array. The data storage device according to claim 1, wherein the data storage device is assigned.
前記論理ディスクに対する複数のシーケンシャルライトの実行によって前記キャッシュメモリに格納されたデータを、シーケンシャルライト別に、前記一定サイズよりも小さいサイズのストライプグループを単位に、前記複数のディスクアレイのうちの対応する論理スライスに割り当てられているディスクアレイ内の物理スライスに書き込むための後追い吐き出し処理を行う入出力管理手段とを更に具備し、
前記構成管理手段は、第1の論理スライスに第1の物理スライスが割り当てられている状態で、前記第1の論理スライスに第2の物理スライスが再割り当てされ、しかる後に前記キャッシュメモリに格納されたデータが前記第2の物理スライスに書き込まれた場合、前記第2の物理スライスへのデータの書き込みが完了した後に、前記第1の物理スライスを任意の論理スライスに割り当て可能な未使用状態に設定する
ことを特徴とする請求項2記載のデータ記憶装置。 A cache memory for temporarily storing data specified by a write request from the host device;
The data stored in the cache memory by executing a plurality of sequential writes to the logical disk is converted into a corresponding logical group of the plurality of disk arrays for each sequential write in units of stripe groups having a size smaller than the predetermined size. I / O management means for performing post-ejecting processing for writing to the physical slice in the disk array assigned to the slice,
The configuration management means reassigns the second physical slice to the first logical slice in a state where the first physical slice is assigned to the first logical slice, and then stores it in the cache memory. When the data is written to the second physical slice, after the writing of the data to the second physical slice is completed, the first physical slice is put into an unused state that can be assigned to an arbitrary logical slice. The data storage device according to claim 2, wherein the data storage device is set.
前記複数のディスクアレイを構成する物理スライス毎に、当該物理スライスを管理するための第2の管理データであって、当該物理スライスが属するディスクアレイを示すディスクアレイ情報及び当該物理スライスが割り当てられている論理スライスを指し示す第3のポインタを含む第2の管理データを保持するスライス管理テーブルと、
前記複数のディスクアレイを構成する物理スライスのうち、未使用状態にある物理スライスを管理するための第3の管理データであって、当該物理スライスが属するディスクアレイを示すディスクアレイ情報を含む第3の管理データを保持するプール管理テーブルとを更に具備し、
前記構成管理手段は、前記指定された論理スライスに再割り当てすべき前記未使用の物理スライスの前記第3の管理データを前記プール管理テーブルから選択して前記第2の管理データとして前記スライス管理テーブルに登録し直すと共に、前記指定された論理スライスを指し示すように当該登録し直された第2の管理データの前記第3のポインタを設定し、且つ前記指定された論理スライスの前記第1の管理データの前記第2のポインタを前記再割り当てすべき物理スライスを指し示すように設定する
ことを特徴とする請求項3記載のデータ記憶装置。 For each logical slice that constitutes the logical disk, the first management data for managing the logical slice includes a first pointer that points to the physical slice assigned to the logical slice and the logical slice. A logical disk management table holding first management data including a second pointer pointing to the allocated physical slice;
Second management data for managing the physical slice is assigned to each physical slice constituting the plurality of disk arrays, and the disk array information indicating the disk array to which the physical slice belongs and the physical slice are allocated. A slice management table that holds second management data including a third pointer that points to the logical slice being
Third management data for managing a physical slice in an unused state among the physical slices constituting the plurality of disk arrays, the third management data including disk array information indicating a disk array to which the physical slice belongs. A pool management table that holds management data of
The configuration management means selects the third management data of the unused physical slice to be reassigned to the designated logical slice from the pool management table, and uses the slice management table as the second management data. The third pointer of the re-registered second management data to point to the designated logical slice, and the first management of the designated logical slice 4. The data storage device according to claim 3, wherein the second pointer of data is set so as to point to the physical slice to be reassigned.
前記割り当て要求手段は、前記複数のシーケンシャルライトのそれぞれについて書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの新規割り当てを、前記書き込み先となる論理スライスと割り当てに用いられるべき物理スライスが属するディスクアレイとを指定することによって前記構成管理手段に要求し、
前記構成管理手段は、前記指定された論理スライスに前記指定されたディスクアレイ内の未使用の物理スライスを新規に割り当てる
ことを特徴とする請求項1記載のデータ記憶装置。 When creating the logical disk, a group of physical slices is not allocated to the group of logical slices of the logical disk,
The allocation requesting means assigns a new allocation of a physical slice in a different disk array of the plurality of disk arrays to a logical slice that is a write destination for each of the plurality of sequential writes, and a logical slice that is the write destination Requesting the configuration management means by specifying the disk array to which the physical slice to be used for allocation belongs,
The data storage device according to claim 1, wherein the configuration management unit newly allocates an unused physical slice in the designated disk array to the designated logical slice.
前記論理ディスクに対する複数のシーケンシャルライトの実行時に、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対する、前記複数のディスクアレイのうちの異なるディスクアレイ内の物理スライスの再割り当てまたは新規割り当てを前記割り当て要求手段が前記構成管理手段に要求するステップと、
前記割り当て要求手段による要求に応じて、前記構成管理手段が、前記複数のシーケンシャルライトのそれぞれについて、前記論理ディスク内の書き込み先となる論理スライスに対し、前記複数のディスクアレイのうちの異なるディスクアレイ内の未使用の物理スライスを再割り当てするまたは新規に割り当てるステップと
を具備することを特徴とするスライス割り当て方法。 A slice allocation method in a data storage device comprising a plurality of disk arrays that are managed by being divided into physical slices of a certain size, an allocation request unit, and a configuration management unit,
When executing a plurality of sequential writes to the logical disk, for each of the plurality of sequential writes, a physical slice in a different disk array of the plurality of disk arrays with respect to a logical slice that is a write destination in the logical disk. The assignment requesting means requesting the configuration management means for reassignment or new assignment;
In response to a request from the allocation requesting unit, the configuration management unit is configured so that, for each of the plurality of sequential writes, a different disk array of the plurality of disk arrays for a logical slice serving as a write destination in the logical disk. A method of allocating slices, comprising: reallocating or newly allocating unused physical slices.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150410A JP2012014450A (en) | 2010-06-30 | 2010-06-30 | Data storage device and slice assignment method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150410A JP2012014450A (en) | 2010-06-30 | 2010-06-30 | Data storage device and slice assignment method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012014450A true JP2012014450A (en) | 2012-01-19 |
Family
ID=45600797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010150410A Pending JP2012014450A (en) | 2010-06-30 | 2010-06-30 | Data storage device and slice assignment method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012014450A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095829A (en) * | 2014-11-14 | 2016-05-26 | ドット ヒル システムズ コーポレイションDot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
JP2016095828A (en) * | 2014-11-14 | 2016-05-26 | ドット ヒル システムズ コーポレイションDot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
JP2016162407A (en) * | 2015-03-05 | 2016-09-05 | 富士通株式会社 | Control device, control method, and control program |
CN112748849A (en) * | 2019-10-29 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer program product for storing data |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08185275A (en) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | Area allocating method for disk array and disk array access method |
JPH1027069A (en) * | 1996-07-09 | 1998-01-27 | Hitachi Ltd | Storage device |
-
2010
- 2010-06-30 JP JP2010150410A patent/JP2012014450A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08185275A (en) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | Area allocating method for disk array and disk array access method |
JPH1027069A (en) * | 1996-07-09 | 1998-01-27 | Hitachi Ltd | Storage device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095829A (en) * | 2014-11-14 | 2016-05-26 | ドット ヒル システムズ コーポレイションDot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
JP2016095828A (en) * | 2014-11-14 | 2016-05-26 | ドット ヒル システムズ コーポレイションDot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
JP2016162407A (en) * | 2015-03-05 | 2016-09-05 | 富士通株式会社 | Control device, control method, and control program |
CN112748849A (en) * | 2019-10-29 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer program product for storing data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5437373B2 (en) | Storage system having multiple flash packages | |
US10956063B2 (en) | Virtual storage system | |
JP6007329B2 (en) | Storage controller, storage device, storage system | |
US8127076B2 (en) | Method and system for placement of data on a storage device | |
US9244618B1 (en) | Techniques for storing data on disk drives partitioned into two regions | |
JP4331220B2 (en) | Storage device with autonomous management function of unused physical area | |
JP6677740B2 (en) | Storage system | |
JP6678230B2 (en) | Storage device | |
WO2015076354A1 (en) | Storage device, method, and program | |
WO2015162758A1 (en) | Storage system | |
JP6459644B2 (en) | Storage control device, control system, and control program | |
KR20150105323A (en) | Method and system for data storage | |
JP2012014450A (en) | Data storage device and slice assignment method | |
JP5730446B1 (en) | Hierarchical storage system with trial area, storage controller and program | |
US11079956B2 (en) | Storage system and storage control method | |
JP5768118B2 (en) | Storage system having multiple flash packages | |
JP2013089225A (en) | Hierarchy changing method and device | |
JP5215434B2 (en) | Storage device having a plurality of nonvolatile memories, storage controller, and logical disk generation method | |
JP7140807B2 (en) | virtual storage system | |
JP6138318B2 (en) | Storage system having multiple flash packages | |
JP5945040B2 (en) | Storage system having multiple flash packages | |
JP5638022B2 (en) | Disk array device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120626 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121211 |