JP2012014450A - Data storage device and slice assignment method - Google Patents

Data storage device and slice assignment method Download PDF

Info

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
Application number
JP2010150410A
Other languages
Japanese (ja)
Inventor
Masaki Kobayashi
正樹 小林
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2010150410A priority Critical patent/JP2012014450A/en
Publication of JP2012014450A publication Critical patent/JP2012014450A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To prevent deterioration of performance of a plurality of sequential writes relative to a single logical disk.SOLUTION: A configuration controlling section 260 divides a storage area of each of the RAID arrays 120-0 to 120-5 into physical slices of a fixed size to manage them, and allocates some groups of the physical slices to groups of logical slices of a logical disk. When a plurality of sequential writes are executed on the logical disk, an allocation requesting section 242, for each of the plurality of sequential writes, requests the configuration controlling section 260 to reallocate, to a logical slice in the logical disk which is the destination of a sequential write, a physical slice in a different disk array among the RAID arrays 120-0 to 120-5.

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.

特開平8−185275号公報JP-A-8-185275

しかし従来技術では、単一または少数のディスクアレイから構築される論理ディスクに対して複数のシーケンシャルライトが実行される場合、ディスクアレイ内の同一のドライブに対する複数のライトが発生する。ドライブの物理的性質上、当該ドライブへの複数のライトを同時に実行することはできず、当該ドライブへのライトアクセスがランダムになる。このように従来技術では、論理ディスクに対して複数のシーケンシャルライトが実行される場合、当該複数のシーケンシャルライト相互の影響で、当該複数のシーケンシャルライトの各々はシーケンシャル性が失われ、性能を低下させる要因となっていた。   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 is a block diagram showing a schematic configuration of a data storage device according to an embodiment of the present invention. 図1に示される制御装置のモジュール構成を主として示すブロック図。The block diagram which mainly shows the module structure of the control apparatus shown by FIG. RAIDアレイ内の物理スライスと論理ディスク内の論理スライスとの関係の一例を示す図。The figure which shows an example of the relationship between the physical slice in a RAID array, and the logical slice in a logical disk. 図2に示される論理ディスク管理テーブルの各エントリに保持される論理ディスク管理データのデータ構造例を示す図。FIG. 3 is a diagram showing an example of the data structure of logical disk management data held in each entry of the logical disk management table shown in FIG. 2. 図2に示されるスライス管理テーブルの各エントリに保持されるスライス管理データのデータ構造例を示す図。The figure which shows the data structural example of the slice management data hold | maintained at each entry of the slice management table shown by FIG. 図2に示されるプール管理テーブルの各エントリに保持されるプール管理データのデータ構造例を示す図。The figure which shows the data structure example of the pool management data hold | maintained at each entry of the pool management table shown by FIG. 論理ディスクが2つのRAIDアレイ内の一部のスライスの集合から構成されている場合における、論理ディスク管理データ及びスライス管理データの一例を示す図。The figure which shows an example of a logical disk management data and slice management data in case a logical disk is comprised from the collection of the one part slice in two RAID arrays. シーケンシャルライトの3つのパターンを説明するための図。The figure for demonstrating three patterns of a sequential write. RAIDアレイにおける、複数の記憶媒体、ストライプ及びストライプグループの関係を示す図。The figure which shows the relationship of several storage media, stripes, and stripe groups in a RAID array. シーケンシャルライトと、当該シーケンシャルライトにおける後追い吐き出し処理とを説明するための図。The figure for demonstrating a sequential write and the subsequent discharge process in the said sequential write. 同実施形態で適用されるIO特性判定処理の手順を示すフローチャート。The flowchart which shows the procedure of the IO characteristic determination process applied in the embodiment. シーケンシャル判定テーブルのデータ構造の一例を示す図。The figure which shows an example of the data structure of a sequential determination table. 同実施形態で適用される性能最適化処理の手順を示すフローチャート。The flowchart which shows the procedure of the performance optimization process applied in the embodiment. 同実施形態で適用されるスライス入れ替え処理の手順を示すフローチャート。The flowchart which shows the procedure of the slice replacement process applied in the embodiment. 同実施形態における論理スライスへの物理スライスの再割り当ての動作の流れを説明するための図。The figure for demonstrating the flow of operation | movement of reallocation of the physical slice to the logical slice in the embodiment. 同実施形態における論理スライスへの物理スライスの再割り当ての動作の流れを説明するための図。The figure for demonstrating the flow of operation | movement of reallocation of the physical slice to the logical slice in the embodiment. 同実施形態の変形例における論理スライスへの物理スライスの新規割り当ての動作の流れを説明するための図。The figure for demonstrating the flow of operation | movement of the new allocation of the physical slice to the logical slice in the modification of the embodiment. 同実施形態の変形例における論理スライスへの物理スライスの新規割り当ての動作の流れを説明するための図。The figure for demonstrating the flow of operation | movement of the new allocation of the physical slice to the logical slice in the modification of the embodiment.

以下、本発明の実施の形態につき図面を参照して説明する。
図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 data storage device 10 according to an embodiment of the present invention.
A data storage device 10 shown in FIG. 1 includes a control device 11 and a plurality of storage media 12. The control device 11 is provided between the storage device 12 and the host device connected via the data communication path 20. The storage medium 12 is, for example, a hard disk drive disk.

制御装置11は、ホストインタフェース部(HOST I/F)111、CPU112、プログラムメモリ113、キャッシュメモリ114及びHDDインタフェース部(HDD I/F)115を有している。なお、データ通信路20を介してデータ記憶装置10に接続されるものとしては、ホスト装置となるコンピュータまたはその集合体の他、他のデータ記憶装置も想定される。   The control device 11 includes a host interface unit (HOST I / F) 111, a CPU 112, a program memory 113, a cache memory 114, and an HDD interface unit (HDD I / F) 115. In addition, what is connected to the data storage device 10 via the data communication path 20 is assumed to be another data storage device in addition to a computer serving as a host device or an aggregate thereof.

ホストインタフェース部111及びHDDインタフェース部115は、それぞれ外部接続される装置との間の通信を制御する。ホストインタフェース部111はデータ通信路20側の通信を司る。HDDインタフェース部115は記憶媒体12側の通信を司る。   The host interface unit 111 and the HDD interface unit 115 each control communication with an externally connected device. The host interface unit 111 manages communication on the data communication path 20 side. The HDD interface unit 115 manages communication on the storage medium 12 side.

CPU112は、制御装置11における必要処理を実行するものであり、プログラムメモリ113には、そのための各種プログラムが格納されている。本実施形態で適用される、後述するスライス割り当てのための手法(より詳細には、論理ディスク内のライト先となる論理スライスに物理スライスを再割り当てするまたは新規に割り当てるための手法)は、このプログラムメモリ113(コンピュータ読み取り可能な記憶媒体)に格納されているプログラムをCPU112が読み取って実行することによって実現されるものとする。プログラムメモリ113には、上述のプログラムを格納するための領域に加えて、CPU112が利用するデータ等を格納するための領域、更には後述する構成管理用記憶部270及びシーケンシャル判定データ記憶部274(図2参照)のための領域も確保されている。   The CPU 112 executes necessary processing in the control device 11, and various programs are stored in the program memory 113. A method for slice allocation (to be described in detail, a method for reallocating a physical slice to a logical slice serving as a write destination in a logical disk or newly allocating) applied in the present embodiment is described in this section. It is realized by the CPU 112 reading and executing a program stored in the program memory 113 (computer-readable storage medium). The program memory 113 has an area for storing data used by the CPU 112 in addition to an area for storing the above-described program, and a configuration management storage unit 270 and a sequential determination data storage unit 274 (to be described later). An area is also reserved for (see FIG. 2).

キャッシュメモリ114は、データ通信路20を介して接続されるホスト装置(或いは他のデータ記憶装置)からデータ記憶装置10内の記憶媒体12に対して発行される入出力要求に対するバッファの役目を提供する。キャッシュメモリ114は、ある論理的な単位に分割されて管理されている。この分割された単位で自由にキャッシュメモリ114内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ114に格納することができる。この分割された1つの単位をキャッシュブロックと呼ぶ。   The cache memory 114 serves as a buffer for input / output requests issued to the storage medium 12 in the data storage device 10 from a host device (or other data storage device) connected via the data communication path 20. To do. The cache memory 114 is managed by being divided into certain logical units. The data at the storage location can be stored in the cache memory 114 in correspondence with the storage location in the cache memory 114 freely in this divided unit. This divided unit is called a cache block.

ここで、キャッシュメモリ114は、例えば16KB(キロバイト)単位のキャッシュブロックに分割されている。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理される。キャッシュメモリ114上では、リードキャッシュ(RDC)とライトバックキャッシュ(WBC)の2種類のデータが管理される。ホスト装置からのリード/ライトアクセスに応じて各エントリがサーチされ、対象となるキャッシュブロックとホスト装置または記憶媒体12との間でデータ転送が行われる。   Here, the cache memory 114 is divided into, for example, cache blocks in units of 16 KB (kilobytes). Each cache block is managed by memory mapping using, for example, a set associative method. On the cache memory 114, two types of data are managed: a read cache (RDC) and a write back cache (WBC). Each entry is searched according to the read / write access from the host device, and data transfer is performed between the target cache block and the host device or the storage medium 12.

例えば、ホスト装置から記憶媒体12へのデータ書き込み処理は、キャッシュメモリ114を用いて次のように行われる。まず、入出力要求で指定されたデータがキャッシュメモリ114にエントリされた時点で、要求元のホスト装置に対して書き込み処理完了が通知される。その後に、キャッシュメモリ114から記憶媒体12に対する実際のデータ書き込みが実行される。   For example, data write processing from the host device to the storage medium 12 is performed using the cache memory 114 as follows. First, when the data designated by the input / output request is entered into the cache memory 114, the completion of the writing process is notified to the requesting host device. Thereafter, actual data writing from the cache memory 114 to the storage medium 12 is executed.

一方、記憶媒体12からのデータ読み込み処理は、次のように行われる。まず、該当するデータがキャッシュメモリ114にエントリ(キャッシュ)されているか否かが判定され、エントリされていれば、そのデータがキャッシュメモリ114からデータ通信路20を介してホスト装置に返される。これに対し、該当するデータがキャッシュメモリ114にエントリされていないならば、データが記憶媒体12からキャッシュメモリ114に読み出されて、しかる後に、要求元のホスト装置に対して読み出されたデータがデータ通信路20を介して返される。   On the other hand, data reading processing from the storage medium 12 is performed as follows. First, it is determined whether or not the corresponding data has been entered (cached) in the cache memory 114. If it has been entered, the data is returned from the cache memory 114 to the host device via the data communication path 20. On the other hand, if the corresponding data is not entered in the cache memory 114, the data is read from the storage medium 12 to the cache memory 114, and then the data read to the requesting host device. Is returned via the data communication path 20.

図2は、図1に示される制御装置11のプログラムメモリ113に格納されるプログラムをCPU112が読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。   FIG. 2 is a block diagram mainly showing a module configuration realized by the CPU 112 reading and executing a program stored in the program memory 113 of the control device 11 shown in FIG.

ホストインタフェース制御部(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) management unit 220 executes IO access management and IO access area control.

キャッシュ管理部230は、キャッシュメモリ114におけるIOアクセス管理を実行する。IO特性判定部240は、シーケンシャル性検出部241及び割り当て要求部242を含む。シーケンシャル性検出部241は、ホスト装置からのIO要求を監視することによりIOアクセスの統計情報を取得し、当該統計情報に基づいてIOアクセスのシーケンシャル性を検出する。シーケンシャル性検出部241はIOアクセスのシーケンシャル性を検出した場合、シーケンシャルライトであれば後追い吐き出し要求を、シーケンシャルリードであればデータ先読み要求を、IO管理部220に領域を指定して発行する。割り当て要求部242は、同一論理ディスクに対する複数のシーケンシャルライトの実行時に、当該複数のシーケンシャルライトのそれぞれについて、論理ディスク内の書き込み先となる論理スライスに対する、異なるディスクアレイ内の物理スライスの再割り当てを構成管理部260に要求する。論理スライス及び物理スライスについては後述する。   The cache management unit 230 executes IO access management in the cache memory 114. The IO characteristic determination unit 240 includes a sequentiality detection unit 241 and an allocation request unit 242. The sequentiality detection unit 241 acquires IO access statistical information by monitoring IO requests from the host device, and detects IO access sequentiality based on the statistical information. When detecting the sequentiality of the IO access, the sequentiality detecting unit 241 issues a post-ejecting request for sequential writing, and issues a data prefetching request to the IO managing unit 220 by designating an area for sequential reading. The allocation request unit 242 reallocates physical slices in different disk arrays with respect to 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 same logical disk. Requests to the configuration management unit 260. The logical slice and physical slice will be described later.

論理/物理アドレス管理部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 configuration management unit 260 manages the mapping between logical addresses and physical addresses. The configuration management storage unit 270 stores a logical disk management table 271, a slice management table 272, and a pool management table 273. Details of these tables 271 to 273 will be described later.

シーケンシャル判定データ記憶部274は、論理ディスク毎にシーケンシャル判定テーブル275を格納する。シーケンシャル判定テーブル275の各エントリはシーケンシャル判定データを保持するのに用いられる。シーケンシャル判定データはホスト装置から要求されたIOアクセスの統計情報であり、対応する論理ディスクに対するライトのシーケンシャル性の、IO特性判定部240内のシーケンシャル性検出部241による判定に用いられる。   The sequential determination data storage unit 274 stores a sequential determination table 275 for each logical disk. Each entry in the sequential determination table 275 is used to hold sequential determination data. The sequential determination data is IO access statistical information requested from the host device, and is used for determination by the sequentiality detection unit 241 in the IO characteristic determination unit 240 of the write sequentiality with respect to the corresponding logical disk.

本実施形態において、複数の記憶媒体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 storage media 12 configure disk arrays 120-0 to 120-5, for example. Each of the disk arrays 120-0 to 120-5 is a set of storage media 12 having a RAID (Redundant Arrays of Independent Disks) configuration. Therefore, the disk arrays 120-0 to 120-5 are referred to as RAID arrays 120-0 to 120-5. The RAID arrays 120-0 to 120-5 are identified by, for example, unique RAID array numbers 0 to 5. Here, a set of the RAID arrays 120-0 to 120-5 is referred to as a pool 121. The storage area of the RAID array 120-i (i = 0, 1,... 5) is managed by being divided into partial areas of a certain size D (hereinafter referred to as physical slices). A set of arbitrary physical slices in one or more RAID arrays 120-i constitutes a logical disk that can be recognized by the host device.

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 RAID control unit 280 manages the RAID array 120-i as a set of storage media 12. The RAID control unit 280 controls the transfer of disk data to and from the RAID array 120-i in response to a request from the sequentiality detection unit 241 in the IO characteristic determination unit 240. In response to a request from the RAID control unit 280, the HDD interface control unit (HDD I / F control unit) 290 transfers data to one or more storage media 12 that are targets of disk data transfer in the RAID array 120-i. Control access.

上述したように、シーケンシャル性検出部241はホスト装置からのIO要求を監視する。ホスト装置からのIO要求の列がライト要求の列であるものとする。シーケンシャル性検出部241は、ライト要求の列に基づいてライト要求アドレスに関する統計情報を取得し、当該統計情報に基づいてIOアクセスのシーケンシャル性を検出する。従来技術ではシーケンシャル性検出部241は、シーケンシャル性を検出した場合に、ホスト装置からのIO要求で指定されたライト要求アドレスの後を追うように、RAIDアレイ120-iに対してキャッシュメモリ114上の未保存データの書き込みを要求する。ところが従来技術では、ホスト装置からのシーケンシャルライトが複数存在する場合、RAIDアレイ120-iを構成する個々の記憶媒体12にとって、シーケンシャル性検出部241から要求される書き込みのための論理アドレスが、シーケンシャルライト相互間でシーケンシャルではなくなり、性能が低下するおそれがあった。   As described above, the sequentiality detection unit 241 monitors IO requests from the host device. It is assumed that the IO request string from the host device is a write request string. The sequentiality detection unit 241 acquires statistical information related to the write request address based on the write request column, and detects the sequentiality of the IO access based on the statistical information. In the prior art, when the sequentiality detection unit 241 detects sequentiality, the sequentiality detection unit 241 keeps track of the RAID array 120-i on the cache memory 114 so as to follow the write request address specified by the IO request from the host device. Request writing of unsaved data. However, in the prior art, when there are a plurality of sequential writes from the host device, the logical address for writing requested from the sequentiality detecting unit 241 is sequential for each storage medium 12 constituting the RAID array 120-i. There was a risk that the performance was degraded because the lights were not sequential.

図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 logical disk 300 is managed by being divided into partial areas (hereinafter referred to as logical slices) 310 of a certain size D, like the RAID array 120-i. A sequence number (hereinafter referred to as a logical slice number) is assigned to each logical slice 310 in the logical disk 300 in the order of logical addresses (LBA) on the logical disk 300.

図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 physical slices 320 in the RAID array 120-0 is allocated to a part of the set of logical slices 310 in the logical disk 300 in units of slices. A part of the set of physical slices 320 in the RAID array 120-1 is assigned to the rest of the set of slices 310 in units of slices. This state of the logical disk 300 is referred to as that the logical disk 300 is composed of a set of some physical slices 320 in the RAID arrays 120-0 and 120-1. It is assumed that the logical disk number for identifying the logical disk 300 is 0, and the RAID array numbers for identifying the RAID arrays 120-0 and 120-1 are 0 and 1, respectively.

図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 physical slices 320 and managed, and the storage area of the RAID array 120-1 is divided into M + 1 physical slices 320 and managed. The physical slice numbers 0 to N are assigned to the N + 1 physical slices 320 in the RAID array 120-0 in the order of physical addresses on the RAID array 120-0, and M + 1 physical slices in the RAID array 120-1 are assigned. 320, physical slice numbers 0 to M are assigned in the order of physical addresses on the RAID array 120-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 physical slice 320 with the physical slice number 0 in the RAID array 120-0 is assigned to the logical slice 310 with the logical slice number 0 in the logical disk 300, and the logical slice in the logical disk 300 is allocated. The physical slice 320 with the physical slice number 0 in the RAID array 120-1 is assigned to the logical slice 310 with the number 1.

図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 data storage device 10 shown in FIG.

図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 data storage device 10 shown in FIG. 1 has.

図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 data storage device 10 has one pool 121, the pool management table 273 has one entry.

図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 logical disk 300 is composed of a set of some slices 310 in the RAID arrays 120-0 and 120-1 as shown in FIG. Indicates.

次に、データ記憶装置10における動作について説明する。   Next, the operation in the data storage device 10 will be described.

構成管理部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 storage media 12, the configuration management unit 260 divides the storage area of the RAID array 120-i into physical slices of a predetermined size D, A set of physical slices of size D is defined by assigning physical slice numbers to the physical slices in the order of physical addresses on the RAID array 120-i. The configuration management unit 260 generates slice management data for each physical slice in the defined set of physical slices, and connects it to the free list of the pool management table 273. The slice management data linked to this free list is managed as slice management data for unused physical slices.

構成管理部260は、例えばホスト装置から図3に示されるような論理ディスク番号が0の論理ディスク300の作成が指定された場合、当該ホスト装置によって指定された容量分の物理スライスを、プール管理データのフリーリストに繋がれている未使用の物理スライスのスライス管理データに基づいて確保する。構成管理部260は、確保した物理スライス毎に、その物理スライスのスライス管理データをスライス管理テーブル272に登録すると共に、指定された論理ディスク300の論理ディスク管理データを生成して論理ディスク管理テーブル271に登録する。このとき構成管理部260は、論理ディスク管理データの物理リストポインタに、確保した物理スライスのスライス管理データを繋ぐと共に、当該スライス管理データの論理リストポインタに当該論理ディスク管理データを繋ぐ。これにより、指定された容量分の物理スライスの各々が、当該物理スライスと同一サイズの論理ディスク300内の論理スライスに割り当てられる。   For example, when the creation of the logical disk 300 with the logical disk number 0 as shown in FIG. 3 is designated from the host device, the configuration management unit 260 manages the physical slice of the capacity designated by the host device by pool management. Secure based on slice management data of unused physical slices linked to the free list of data. For each reserved physical slice, the configuration management unit 260 registers the slice management data of the physical slice in the slice management table 272 and generates logical disk management data of the specified logical disk 300 to create the logical disk management table 271. Register with. At this time, the configuration management unit 260 connects the slice management data of the secured physical slice to the physical list pointer of the logical disk management data, and connects the logical disk management data to the logical list pointer of the slice management data. As a result, each physical slice of the designated capacity is allocated to a logical slice in the logical disk 300 having the same size as the physical slice.

なお、構成管理部260が指定された容量分の物理スライスを確保するのに、何らポリシーに従うことなく任意の物理スライスを選別してもよい。また、RAIDアレイ120-iが適用するRAIDレベル等の信頼性や、RAIDアレイ120-iを構成する記憶媒体12の種別、当該記憶媒体12(ここではディスク)の内周側領域または外周側領域等の性能に関する要素を用いて、特定のポリシーに従ってスライスを選別してもよい。論理ディスク管理データにスライス管理データを繋ぐ方法は、論理ディスクの論理アドレスから当該論理アドレスが割り当てられているRAIDアレイ120-iの物理アドレスに変換できるならば、どのような方法でもよい。例えば、ハッシュやツリー形式にするなど、線形リストより高速に変換可能な別の手段で実現してもよい。   Note that the configuration management unit 260 may select any physical slice without observing any policy in order to secure physical slices for the designated capacity. Further, the reliability of the RAID level applied by the RAID array 120-i, the type of the storage medium 12 constituting the RAID array 120-i, the inner peripheral area or the outer peripheral area of the storage medium 12 (disk in this case) Performance factors such as may be used to screen slices according to a specific policy. Any method may be used for linking slice management data to logical disk management data as long as the logical address of the logical disk can be converted into a physical address of the RAID array 120-i to which the logical address is assigned. For example, it may be realized by another means capable of converting at a higher speed than a linear list, such as a hash or tree format.

論理/物理アドレス管理部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 logical disk 300 specified by the IO request is determined. The logical / physical address management unit 250 converts the logical address of the specified logical disk 300 into the physical address of the RAID array 120-i from the RAID array number and physical slice number in the slice management data of the determined physical slice. The RAID control unit 280 is requested to perform IO processing for the physical slice at the physical address.

一般に、シーケンシャルライトには、パターン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 storage media 12 as described above. Each storage area of the plurality of storage media 12 in the RAID array 120-i is managed by dividing a data section of a certain size called a stripe. A group of stripes having the same physical address of a plurality of storage media 12 in the RAID array 120-i is referred to as a stripe group. Between the slice size and the stripe group size,
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 storage media 12, stripes, and stripe groups in the RAID array 120-i.

さて本実施形態では、シーケンシャル性検出部241によってIOアクセスのシーケンシャル性が検出された場合、シーケンシャルライトであれば、シーケンシャル性検出部241からIO管理部220に、後追い吐き出し要求が発行される。すると、IO管理部220の管理の下で、後追い吐き出し処理が行われる。   In the present embodiment, when the sequentiality detection unit 241 detects the sequentiality of the IO access, if it is a sequential write, a sequential ejection request is issued from the sequentiality detection unit 241 to the IO management unit 220. Then, the post-ejecting process is performed under the management of the IO management unit 220.

シーケンシャルライトにおける後追い吐き出し処理とは、ホスト装置からのシーケンシャルライトでキャッシュメモリ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 cache memory 114 by the sequential write from the host device is written to the RAID array 120-i from the cache memory 114 so as to follow the sequential write. This is a technique for efficiently securing empty blocks in the cache memory 114 by performing each group size. For example, when the RAID array 120-i applies RAID5, in order to write data to the RAID array 120-i, two times including read access and write access to the stripe storing the parity data are performed. Read access and two write accesses are required. By suppressing such inefficient disk I / O (when the storage medium is a disk) by the above-described post-discharge process, writing to the storage medium 12 can be performed at high speed.

図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 characteristic determination unit 240 will be described with reference to the flowchart of FIG.
As described below, the sequentiality detection unit 241 in the IO characteristic determination unit 240 acquires the write history requested from the host device as sequential determination data, and determines the sequentiality based on the sequential determination data. . There are two types of sequentiality: sequential read and sequential write. Here, only the sequential write related to the present invention, that is, the determination of the sequential property of the write will be described.

まず、ホストインタフェース制御部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 sequentiality detection unit 241 has an entry in the sequential determination table 275 corresponding to the logical disk number and LBA specified by the write request (hereinafter referred to as the latest write request) received by the host interface control unit 210. Is determined (step 1102).

図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 data storage unit 274. As shown in FIG. 12, the sequential determination table 275 has a logical disk number field and a plurality of entries. The logical disk number field holds the logical disk number of the logical disk, and each of the plurality of entries is used to hold sequential determination data. Sequential determination data includes information on a start LBA, latest LBA, write LBA, access size, number of hits, optimization flag, RAID array number, and replaced slice number.

シーケンシャル判定データ中の開始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 ( Step 1102 Yes). When the determination in step 1102 is Yes, the sequentiality detection unit 241 determines that the write specified by the latest write request is sequential with respect to the write indicated by the entry information (sequential determination data) in the corresponding sequential determination table 275. Is determined to be a subsequent light having

もし、最新のライト要求の指定する論理ディスク番号及び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 sequentiality detection unit 241 has an empty entry in the sequential determination table 275. It is determined whether it exists (step 1103). If there is an empty entry in the sequential determination table 275 (No in Step 1103), the sequentiality detection unit 241 proceeds to Step 1104. In step 1104, the sequentiality detection unit 241 sets sequential determination data in the empty entry of the sequential determination table 275. The sequential determination data set in this empty entry includes the LBA specified by the latest write request as the start LBA and the latest LBA, and the access size specified by the latest write request as the access size. Further, the optimization flag of the sequential judgment data set in the empty entry is set to “0”, and the hit count is set to 1. When step 1104 is executed, the IO characteristic determination process by the IO characteristic determination unit 240 ends.

一方、最新のライト要求の指定する論理ディスク番号及び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 sequentiality detection unit 241 is set to the entry in the table 275. The latest LBA and access size of the sequential determination data being updated are updated to the LBA and access size specified by the latest write request, respectively, and the number of hits is incremented by 1 (step 1105). The number of hits indicates the number of times that the write indicated by the entry of the sequential determination table 275 including the hit count is determined to be a subsequent write having sequentiality. Thus, the number of hits indicates the number of times that sequential write has been determined by referring to the entry of the sequential determination table 275, and indicates the degree of progress of the sequential write.

次にシーケンシャル性検出部241は、インクリメント後のヒット回数が閾値を越えたかを判定する(ステップ1106)。もし、インクリメント後のヒット回数が閾値を越えていないならば(ステップ1106のNo)、IO特性判定部240によるIO特性判定処理は終了する。   Next, the sequentiality detection unit 241 determines whether or not the number of hits after the increment exceeds a threshold value (step 1106). If the number of hits after the increment does not exceed the threshold (No in step 1106), the IO characteristic determination process by the IO characteristic determination unit 240 ends.

これに対し、インクリメント後のヒット回数が閾値を越えているならば(ステップ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 sequentiality detection unit 241 determines whether the access specified by the latest write request exceeds the stripe group size boundary. A determination is made based on the physical address corresponding to the LBA specified by the latest write request (step 1107). Therefore, when executing the step 1107, the sequentiality detecting unit 241 inquires the logical / physical address management unit 250 about the physical address of the RAID array 120-i corresponding to the LBA designated by the latest write request.

すると論理/物理アドレス管理部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 sequentiality detection unit 241. Details of the conversion from the LBA to the physical address by the logical / physical address management unit 250 will be described later. The sequentiality detection unit 241 performs the determination in step 1107 based on the physical address converted by the logical / physical address management unit 250. If the access specified by the latest write request does not exceed the stripe group size boundary (No in step 1107), the IO characteristic determination process by the IO characteristic determination unit 240 ends.

これに対し、最新のライト要求の指定するアクセスがストライプグループサイズ境界を越えているならば(ステップ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 sequentiality detection unit 241 is set in the entry of the above-described sequential determination table 275. It is determined whether the optimization flag in the sequential determination data is set to “1” (step 1108). If the optimization flag is not set to “1” (No in step 1108), that is, if the optimization flag is reset to the initial value “0” indicating that the optimization has not been executed, the IO characteristic is concerned. A performance optimization process described later in the determination unit 240 is started (step 1109).

これに対し、最適化フラグが“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 sequentiality detection unit 241 to the allocation request unit 242 in the IO characteristic determination unit 240. Then, the allocation request unit 242 determines whether it is necessary to perform slice replacement processing (step 1110). The determination in step 1110 is performed by checking whether the latest LBA updated in the previous step 1105 has reached the position of the logical slice indicated by the replaced slice number. The replaced slice number indicates the last logical slice in the row of logical slices whose physical slices have already been replaced. When the latest LBA reaches the position of the last logical slice, it is necessary to replace the physical slice allocated to the logical slice subsequent to the last logical slice (Yes in step 1110). In this case, the allocation request unit 242 activates a slice replacement process described later by the configuration management unit 260 (step 1111).

ステップ111が実行されると、割り当て要求部242からシーケンシャル性検出部241に制御が戻される。するとシーケンシャル性検出部241は、後追い吐き出しの実行をIO管理部220に要求する(ステップ1112)。この要求では、後追い吐き出しの対象となるストライプグループが、対応するシーケンシャル判定テーブル275のエントリに設定されているシーケンシャル判定データ中の書き込みLBAによって指定される。これによりIO管理部220は、シーケンシャルライトが通り過ぎたストライプグループのデータのうち、キャッシュメモリ114上の未だRAIDアレイ120-iに書き出されていない、いわゆるライトバックデータを、当該RAIDアレイ120-iに書き出すための処理を実行する。シーケンシャルライトが通り過ぎたストライプグループとは、当該シーケンシャルライトにおける開始LBAから最新LBAまでの範囲に対応するストライプグループを指す。シーケンシャル判定データ中の書き込みLBAは、後追い吐き出しの実行の都度更新される。   When step 111 is executed, control is returned from the allocation request unit 242 to the sequentiality detection unit 241. Then, the sequentiality detection unit 241 requests the IO management unit 220 to execute the subsequent discharge (step 1112). In this request, the stripe group that is the target of subsequent discharge is specified by the write LBA in the sequential determination data set in the corresponding sequential determination table 275 entry. As a result, the IO management unit 220 converts so-called write-back data, which has not yet been written to the RAID array 120-i on the cache memory 114, among the data of the stripe group that has passed the sequential write, to the RAID array 120-i. Execute the process to write to. The stripe group that has passed the sequential write refers to a stripe group corresponding to the range from the start LBA to the latest LBA in the sequential write. The write LBA in the sequential determination data is updated each time the subsequent discharge is executed.

また、シーケンシャル性検出部241は、性能最適化処理を起動した場合(ステップ1109)と、最新LBAが既に物理スライスが入れ替え済みの論理スライスの列の最後尾の論理スライスの位置に到達していない場合(ステップ1110のNo)にも、後追い吐き出しの実行をIO管理部220に要求する(ステップ1112)。
ステップ1112が実行されると、IO特性判定部240によるIO特性判定処理は終了する。
Further, when the performance optimization process is started (step 1109), the sequentiality detection unit 241 has not reached the position of the last logical slice in the column of the logical slice in which the physical slice has already been replaced. Even in the case (No in step 1110), the IO management unit 220 is requested to execute the subsequent discharge (step 1112).
When step 1112 is executed, the IO characteristic determination process by the IO characteristic determination unit 240 ends.

さてシーケンシャル性検出部241は、上記ステップ1103で、シーケンシャル判定テーブル275の空きエントリが存在していないと判定した場合、ライト要求の指定する論理ディスク番号に対応付けられているシーケンシャル判定テーブル275のエントリの群のうち、最低優先度のシーケンシャル判定テーブル275のエントリを空きエントリとするための置換対象として決定する。本実施形態では、シーケンシャル判定データ記憶部274に格納されているシーケンシャル判定テーブル275のエントリの群の優先度は、LRU(Least Recently Used)ルールに従って管理される。このため最も以前に使用されたシーケンシャル判定テーブル275のエントリが置換対象となる。なお、シーケンシャル判定テーブル275のエントリの群の優先度を、LRUルール以外のアルゴリズムで管理することも可能である。   When the sequentiality detection unit 241 determines in step 1103 that there is no empty entry in the sequential determination table 275, the entry in the sequential determination table 275 associated with the logical disk number specified by the write request. In the group, the entry in the sequential determination table 275 with the lowest priority is determined as a replacement target for making it an empty entry. In this embodiment, the priority of the group of entries in the sequential determination table 275 stored in the sequential determination data storage unit 274 is managed according to an LRU (Least Recently Used) rule. For this reason, the entry of the sequential determination table 275 that was used most recently becomes the replacement target. Note that the priority of the group of entries in the sequential determination table 275 can be managed by an algorithm other than the LRU rule.

シーケンシャル性検出部241は、最低優先度のシーケンシャル判定テーブル275のエントリに設定されているシーケンシャル判定データ中の最適化フラグが“1”にセットされているかを判定する(ステップ1113)。もし、最適化フラグが“1”にセットされていないならば(ステップ1113のNo)、シーケンシャル性検出部241は最低優先度のシーケンシャル判定テーブル275のエントリを空きのエントリとして、上記ステップ1104を実行する。これに対し、最適化フラグが“1”にセットされているならば(ステップ1113のYes)、シーケンシャル性検出部241は、構成管理部260による後述するリカバリ処理を起動して(ステップ1114)、上記ステップ1104を実行する。   The sequentiality detection unit 241 determines whether or not the optimization flag in the sequential determination data set in the entry of the lowest priority sequential determination table 275 is set to “1” (step 1113). If the optimization flag is not set to “1” (No in step 1113), the sequentiality detecting unit 241 executes the above step 1104 with the entry of the lowest priority sequential determination table 275 as an empty entry. To do. On the other hand, if the optimization flag is set to “1” (Yes in step 1113), the sequentiality detection unit 241 activates a recovery process described later by the configuration management unit 260 (step 1114). Step 1104 above is executed.

次に、ステップ1109で起動される性能最適化処理について、図13のフローチャートを参照して説明する。
シーケンシャル性検出部241は、ステップ1108で判定された最適化フラグを含むシーケンシャル判定テーブル275のエントリの示す書き込みLBAの位置から後追い吐き出し実行中のシーケンシャルライトの数(以下、値Aと称する)を、シーケンシャル判定データ記憶部274に格納されているシーケンシャル判定テーブル275のエントリの群に基づいて算出する。シーケンシャル性検出部241は、この値Aが2以上であるかを判定する。即ちシーケンシャル性検出部241は、書き込みLBAの位置から複数の後追い吐き出しが実行中であるかを判定する(ステップ1301)。
Next, the performance optimization process started in step 1109 will be described with reference to the flowchart of FIG.
The sequentiality detection unit 241 determines the number of sequential writes (hereinafter referred to as a value A) that are being subsequently ejected from the position of the write LBA indicated by the entry of the sequential determination table 275 including the optimization flag determined in step 1108. The calculation is performed based on the group of entries in the sequential determination table 275 stored in the sequential determination data storage unit 274. The sequentiality detection unit 241 determines whether the value A is 2 or more. That is, the sequentiality detection unit 241 determines whether a plurality of subsequent ejections are being executed from the position of the write LBA (step 1301).

もし、書き込み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 sequentiality detection unit 241 includes a group of entries in the sequential determination table 275 indicating a plurality of corresponding sequential writes. Then, it is determined whether there is an entry indicating a sequential write in which the optimization flag is not set to “1”, that is, a sequential write in which the optimization is not executed (step 1302). If such an entry exists (Yes in step 1302), the sequentiality detection unit 241 makes an inquiry to the configuration management unit 260 to send all the RAID arrays 120 belonging to the pool 121 from the configuration management unit 260. An array of RAID array numbers of -i is acquired (step 1303). That is, the configuration management unit 260 refers to the pool management table 273 in accordance with the inquiry from the sequentiality detection unit 241, acquires the belonging RAID array number array, and notifies the sequentiality detection unit 241 of it.

シーケンシャル性検出部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 sequentiality detection unit 241 determines whether there is an unselected RAID array by optimization in the group of the RAID array 120-i indicated by the acquired assigned RAID array number array (step 1304). If there is an unselected RAID array (Yes in Step 1304), the sequentiality detecting unit 241 selects the RAID array (Step 1305). The sequentiality detecting unit 241 holds the RAID array number of the selected RAID array in the entry of the sequential determination table 275 including the optimization flag determined in Step 1113, and sets the optimization flag to “1”. (Step 1306), the performance optimization process is terminated. The data of the entry in the sequential determination table 275 in which the optimization flag is set to “1” (that is, the sequential determination data) is the data that is already assigned to the logical slice that is the write destination in the corresponding sequential write. If it does not belong to the RAID array with the middle RAID array number, it indicates that it should be reassigned to the physical slice belonging to the RAID array with the RAID array number.

次に、ステップ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 allocation request unit 242 starts the slice replacement process by the configuration management unit 260, the allocation request unit 242 replaces the logical disk number and the logical slice number of the logical disk that is the target of physical slice replacement and the logical slice in the logical disk, respectively. The RAID array number of the previous RAID array is passed to the configuration management unit 260. The logical slice number of the logical slice to be replaced is acquired by adding 1 to the replaced slice number determined in step 1110. That is, the allocation request unit 242 designates the logical disk number, logical slice number, and RAID array number for slice replacement processing to the configuration management unit 260 and starts slice replacement processing by the configuration management unit 260.

すると構成管理部260は、指定された論理ディスク番号から、当該論理ディスク番号の論理ディスクを構成するRAIDアレイ120-iの群が含まれるプール121のプール番号を特定する(ステップ1401)。このステップ1401は、プール管理テーブル273を参照して、指定された論理ディスク番号を所属論理ディスク番号配列内に含むプール管理データを検索することにより、実現される。   Then, the configuration management unit 260 identifies the pool number of the pool 121 that includes the group of the RAID array 120-i that configures the logical disk of the logical disk number from the designated logical disk number (step 1401). This step 1401 is realized by referring to the pool management table 273 and searching for pool management data that includes the specified logical disk number in the assigned logical disk number array.

次に構成管理部260は、指定された論理スライス番号の論理スライスに、現在何れのRAIDアレイの物理スライスが割り当てられているかを特定し、その物理スライスを含むRAIDアレイが、指定されたRAIDアレイ番号のRAIDアレイと同一でないかを判定する(ステップ1402)。もし、同一であるならば(ステップ1402のNo)、構成管理部260は、物理スライスの入れ替えは不要であるとして、スライス入れ替え処理を終了する。   Next, the configuration management unit 260 identifies which RAID array physical slice is currently assigned to the logical slice of the designated logical slice number, and the RAID array including the physical slice is designated as the designated RAID array. It is determined whether the number is not identical to the RAID array (step 1402). If they are the same (No in step 1402), the configuration management unit 260 terminates the slice replacement process on the assumption that physical slice replacement is unnecessary.

これに対して同一でないならば(ステップ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 configuration management unit 260 has a slice of the physical slice of the designated RAID array in the free list of pool management data related to the pool 121 of the pool number specified in step 1401. It is determined whether or not management data exists (step 1403). If it exists (Yes in Step 1403), the configuration management unit 260 removes the slice management data of the corresponding physical slice from the free list, and designates the specified logical stored in the logical disk management table 271. The slice management data is linked to the physical mirror list pointer of the logical disk management data including the disk number and logical slice number (step 1404). At this point, the sequential write has reached the one before the designated logical slice. Therefore, the logical slice two prior to the specified logical slice is already in the state of being sequentially written. This state is expressed as a sequential write passing through a logical slice (more specifically, the logical slice two previous to the specified logical slice).

そこで構成管理部260は、シーケンシャルライトが通り過ぎている論理スライスの論理ディスクデータ内の物理ミラーリストポインタに、物理スライスのスライス管理データが繋がっているかを判定する(ステップ1405)。もし、繋がっているならば(ステップ1405のYes)、つまり物理ミラーリストポインタがNULLでないならば、構成管理部260は当該物理ミラーリストポインタと対をなす物理リストポインタに繋がっている物理スライスのスライス管理データを、プール管理データ構造のフリーリストに繋ぎ直す(ステップ1406)。これにより、物理リストポインタに繋がっていたスライス管理データによって管理される物理スライスは、未使用の物理スライスとしてプール121に返却されたことになる。ステップ1406において構成管理部260は、上記物理ミラーリストポインタに繋がっている物理スライスのスライス管理データを、当該物理ミラーリストポインタと対をなす物理リストポインタに移す。構成管理部260はステップ1406を実行すると、スライス入れ替え処理を終了する。   Therefore, the configuration management unit 260 determines whether the slice management data of the physical slice is connected to the physical mirror list pointer in the logical disk data of the logical slice that has passed the sequential write (step 1405). If it is connected (Yes in step 1405), that is, if the physical mirror list pointer is not NULL, the configuration management unit 260 slices the physical slice connected to the physical list pointer that is paired with the physical mirror list pointer. The management data is reconnected to the free list of the pool management data structure (step 1406). As a result, the physical slice managed by the slice management data linked to the physical list pointer is returned to the pool 121 as an unused physical slice. In step 1406, the configuration management unit 260 moves the slice management data of the physical slice connected to the physical mirror list pointer to the physical list pointer that is paired with the physical mirror list pointer. When executing step 1406, the configuration management unit 260 ends the slice replacement process.

次に論理/物理アドレス管理部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 configuration management unit 260 uses the physical management managed by the slice management data based on the slice management data connected to the physical list pointer. Convert to the physical address of the slice.

次に構成管理部260によるリカバリ処理について説明する。
シーケンシャル性検出部241は構成管理部260によるリカバリ処理を起動する際に、リカバリの対象となる論理ディスク及び当該論理ディスク内の論理スライスの、それぞれ論理ディスク番号及び論理スライス番号と、どこまでライトが進んだかを示すライト進捗情報とを構成管理部260に対して指定して、当該構成管理部260によるリカバリ処理を起動する。
Next, recovery processing by the configuration management unit 260 will be described.
When the sequentiality detection unit 241 starts the recovery process by the configuration management unit 260, the write progresses to the logical disk number and the logical slice number of the logical disk to be recovered and the logical slice in the logical disk. The write progress information indicating that is specified to the configuration management unit 260, and the recovery processing by the configuration management unit 260 is started.

すると構成管理部260は、指定された論理ディスク番号及び論理スライス番号に対応する論理ディスク管理データを参照する。そして構成管理部260は、この論理ディスク管理データの物理リストポインタに繋がれているスライス管理データからコピー元の物理スライスを特定し、当該論理ディスク管理データの物理ミラーリストポインタに繋がれているスライス管理データからコピー先の物理スライスを特定する。次に構成管理部260は、ライト進捗情報に基づき、指定された論理スライスの最後尾まで、コピー元物理スライスからコピー先物理スライスへのデータのコピーを行う。コピー元とコピー先は逆でも良い。従って、コピー量が少ない方向等の特定のポリシを用いてコピー方向を決定しても当然良い。コピー機能自体は、レプリケーションや、スライスの移動で使われる既に知られた機能であるため、詳細は省略する。構成管理部260はコピーを完了すると、コピー先の物理スライスのスライス管理データを物理リストポインタに移し、物理ミラーリストポインタをNULLに設定する。これによりリカバリ処理は終了する。   Then, the configuration management unit 260 refers to the logical disk management data corresponding to the designated logical disk number and logical slice number. Then, the configuration management unit 260 identifies the copy source physical slice from the slice management data linked to the physical list pointer of the logical disk management data, and the slice linked to the physical mirror list pointer of the logical disk management data. Identify the copy destination physical slice from the management data. Next, the configuration management unit 260 copies data from the copy source physical slice to the copy destination physical slice up to the end of the specified logical slice based on the write progress information. The copy source and the copy destination may be reversed. Therefore, it is natural that the copy direction may be determined using a specific policy such as a direction in which the copy amount is small. The copy function itself is an already known function that is used for replication and slice movement, so the details are omitted. When the copy is completed, the configuration management unit 260 moves the slice management data of the copy destination physical slice to the physical list pointer, and sets the physical mirror list pointer to NULL. This completes the recovery process.

以上に述べた論理スライスへの物理スライスの再割り当ての動作の流れについて、図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 logical disk 300, a plurality of write requests are sequentially sent from the host device to the control device 11 of the data storage device 10.

図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 logical slices 310 having consecutive logical addresses starting from a logical slice 310 having a logical slice number of 0 are sent from the host device. A plurality of second write requests for writing stream data to a plurality of logical slices 310 having consecutive logical addresses starting from the logical slice 310 having the logical slice number p are sent to the control device 11 one by one in order. Assume that the request is sequentially sent from the host device (or another host device) to the control device 11 one by one. In the following description, a logical slice 310 having a logical slice number q (q = 0, 1,...) Is expressed as a logical slice 310 (q).

上述の複数の第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 control device 11, the sequential corresponding to the first write request at the head. Determination data (hereinafter referred to as first sequential determination data) is held in an empty entry of the sequential determination table 275. The start LBA of the first first write request is set in the start LBA and the latest LBA of the first sequential determination data.

同様に、複数の第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 control device 11, the sequential corresponding to the first second write request is sent. Determination data (hereinafter referred to as second sequential determination data) is held in an empty entry of the sequential determination table 275. The start LBA of the first second write request is set in the start LBA and the latest LBA of the second sequential determination data.

シーケンシャル性検出部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 control device 11, the sequentiality detecting unit 241 includes the second and subsequent first write requests and the first sequential determination data. Based on the above, the sequentiality (hereinafter referred to as first sequential write) is determined. Similarly, each time the second and subsequent second write requests in the second write request sequence are sent to the control device 11, the sequentiality detecting unit 241 and the second and subsequent second write requests and the second sequential request are sent. Sequentiality (hereinafter referred to as second sequential write) is determined based on the determination data.

図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 physical slices 320 in the RAID arrays 120-0 and 120-1 is assigned to a set of logical slices 310 in the logical disk 300. Indicates the state. Each logical slice 310 indicated by a white rectangle in the logical disk 300 indicates that the physical slice 320 in the RAID array 120-0 is assigned to the logical slice 310, and hatching in the logical disk 300 is performed. Each logical slice 310 indicated by a rectangular shape indicates that the physical slice 320 in the RAID array 120-1 is assigned to the logical slice 310.

複数の第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 cache memory 114 by the cache management unit 230 in units of blocks of a predetermined size. Further, the post-ejecting process in the first sequential write and the ejecting process in the second sequential write are executed in parallel in units of stripe groups so as to follow the first and second sequential writes, respectively. . These two post-ejection processes logically have a plurality of logical slices 310 starting from the logical slice 310 (0) in the logical disk 300 and a plurality of logical addresses starting from the logical slice 310 (p). Is performed for the corresponding physical slices in the same or different RAID arrays.

ここで、第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 storage medium 12 constituting the RAID array. I can't.

まず説明の簡略化のために、第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 physical slices 320 in the same RAID array 120-1 are allocated to the logical slices 310 (1) and 310 (p + 1), respectively.

割り当て要求部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 allocation request unit 242 for each of the first sequential write and the second sequential write, the logical slice 310 (1) subsequent to the logical slices 310 (0) and 310 (p) currently being written in the logical disk 300. ), 310 (p + 1), the RAID array number of the RAID array to which the physical slice 320 assigned (hereinafter referred to as RAID array numbers A and B) belongs is obtained by an inquiry to the configuration management unit 260. The allocation request unit 242 compares the acquired RAID array numbers A and B. In the example of FIG. 15B, the RAID array numbers A and B are both “1” indicating the RAID array 120-1.

この例のように、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 allocation request unit 242 determines which of the logical slices 310 (0) and 310 (p) currently being written. On the other hand, for example, the configuration management unit 260 is requested to reassign the physical slice 320 to the logical slice 310 (p + 1) subsequent to the logical slice 310 (p) in which the writing is progressing more. At this time, the allocation request unit 242 designates the RAID array number C of the unselected RAID array 120-i other than the RAID array number A (= B = 1) to the configuration management unit 260. Here, it is assumed that the RAID array number C is “0” indicating the RAID array 120-0.

このため図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 configuration management unit 260 has a physical slice 320 (hereinafter referred to as an old physical slice 320 (old)) in the current RAID array 120-1 for the logical slice 310 (p + 1). In the allocated state, as shown by an arrow 151, an unused physical slice 320 (hereinafter referred to as a new physical slice 320 (new)) in the RAID array 120-0 is allocated. The difference between these two old and new physical slices is managed. That is, valid data is stored only in the old physical slice 320 (old) when the new physical slice 320 (new) is allocated. Thereafter, when writing of the write data is started from the start position of the new physical slice 320 (new), the data of the area from the start position of the new physical slice 320 (new) to the position where the writing of the latest write data is completed The data of the logical slice 310 (p + 1) is represented by the data in the area from the position in the old physical slice 320 (old) corresponding to the position where the writing is completed to the end of the old physical slice 320 (old). The As described above, a state in which physical slices in two different RAID arrays are simultaneously assigned to one logical slice is called a mirror state.

以後、割り当て要求部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 allocation request unit 242 requests the configuration management unit 260 to allocate the physical slice 320 to the next logical slice 310 when the sequential write reaches the start position of each logical slice 310. That is, in the case of the first sequential write, the assignment request unit 242 determines that the RAID array number of the RAID array to which the physical slice 320 assigned to the next logical slice 310 belongs is other than the RAID array number A (= 1). For example, the RAID array number A (= 1) of the unselected RAID array, that is, the RAID array number “1” of the RAID array 120-1 is designated to the configuration management unit 260, so that the The configuration management unit 260 is requested to reassign the physical slice 320. Similarly, in the case of the second sequential write, the allocation request unit 242 has the RAID array number of the RAID array to which the physical slice 320 allocated to the next logical slice 310 belongs is other than the RAID array number C (= 0). Then, by specifying the RAID array number C (= 0) of the unselected RAID array, that is, the RAID array number “0” of the RAID array 120-0 to the configuration management unit 260, the next logical slice 310 The configuration management unit 260 is requested to reassign the physical slice 320 to the above.

図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 physical slice 320 in the RAID array 120-0 other than the RAID array number A (= 1) is assigned to the logical slice 310 (2). In this case, the allocation request unit 242 designates the RAID array number of the RAID array other than the RAID array 120-0, for example, the RAID array number of the RAID array 120-1 to the configuration management unit 260, whereby the logical slice 310 ( The configuration management unit 260 is requested to reassign the physical slice 320 to 2).

すると構成管理部260は論理スライス310(2)に対し、現在RAIDアレイ120-0内の物理スライス320が割り当てられている状態で、図16(a)において矢印161で示すように、RAIDアレイ120-1内の未使用の物理スライス320を割り当てる。   Then, the configuration management unit 260 assigns the physical slice 320 in the RAID array 120-0 to the logical slice 310 (2), as shown by an arrow 161 in FIG. Allocate unused physical slices 320 within -1.

図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 physical slice 320 in the RAID array 120-1 other than the RAID array number C (= 0) is allocated to the logical slice 310 (p + 3) next to the logical slice 310 (p + 2). In this case, the allocation request unit 242 designates the RAID array number of the RAID array other than the RAID array 120-1, for example, the RAID array number of the RAID array 120-0, to the configuration management unit 260, whereby the logical slice 310 ( The configuration management unit 260 is requested to reassign the physical slice 320 to p + 3).

すると構成管理部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 configuration management unit 260, with the physical slice 320 in the RAID array 120-1 currently assigned to the logical slice 310 (p + 3), as shown by the arrow 162 in FIG. An unused physical slice 320 in 120-0 is allocated. Further, the configuration management unit 260 replaces the old physical slice 320 (old) allocated to the logical slice 310 (p + 1) with an unused one in the RAID array 120-1 as indicated by an arrow 163 in FIG. The physical slice 320 is returned (to the pool 121).

図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 physical slice 320 in the RAID array 120-0 other than the RAID array number A (= 1) is assigned to the logical slice 310 (4) next to the logical slice 310 (3). In this case, the allocation request unit 242 designates the RAID array number of the RAID array other than the RAID array 120-0, for example, the RAID array number of the RAID array 120-1 to the configuration management unit 260, whereby the logical slice 310 ( The configuration management unit 260 is requested to reassign the physical slice 320 to 4).

すると構成管理部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 configuration management unit 260 then assigns the physical slice 320 in the RAID array 120-0 to the logical slice 310 (4), as shown by the arrow 164 in FIG. Allocate unused physical slices 320 within -1. Further, the configuration management unit 260 replaces the old physical slice 320 assigned to the logical slice 310 (2) with an unused physical slice 320 in the RAID array 120-0 as indicated by an arrow 165 in FIG. As (to the pool 121).

本実施形態によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なる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 storage medium 12.

[変形例]
次に上記実施形態の変形例について説明する。
上記実施形態では、論理ディスク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 logical disk 300 when the logical disk 300 is created. In contrast, in this modification, the logical disk 300 is virtually configured, and when a write to the logical slice in the logical disk 300 is first requested, a new physical slice is added to the logical slice. Assigned. Therefore, in this modification, when the logical disk 300 is created, the physical list pointer of the logical disk management data in the logical disk management table 271 corresponding to the logical disk 300 is set to NULL in the same manner as the physical mirror list pointer. .

本変形例では、論理ディスク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 step 1108 in FIG. 11). . If the optimization flag is set to “1”, the configuration management unit 260 sets an unused physical slice in the RAID array with the RAID array number designated by the allocation request unit 242 to the pool management table 273. Are allocated based on the free list in the pool management data held in the database and assigned to the corresponding logical slice. Thereby, step 1110 and step 1111 (that is, slice replacement processing) in FIG. 11 can be made unnecessary.

本変形例において割り当て要求部242は、シーケンシャル性検出部241が複数のシーケンシャルライト、例えば第1及び第2のシーケンシャルライトを検出した場合、構成管理部260に対して、第1のシーケンシャルライト及び第2のシーケンシャルライトのそれぞれについて、論理ディスク300内で現在ライト処理中の論理スライスに後続する論理スライスに、それぞれ異なるRAIDアレイ内の第1の物理スライス及び第2の物理スライスを新規に割り当てることを要求する。この要求に際し、割り当て要求部242は構成管理部260に対して、異なるRAIDアレイ番号(以下、RAIDアレイ番号A,Bと称する)を指定する。   In the present modification, the assignment request unit 242 determines that the sequential management unit 241 detects the first sequential write and the second sequential write when the sequentiality detection unit 241 detects a plurality of sequential writes, for example, the first and second sequential writes. For each of the two sequential writes, the first physical slice and the second physical slice in different RAID arrays are newly allocated to the logical slice subsequent to the logical slice currently being written in the logical disk 300. Request. In response to this request, the allocation request unit 242 designates different RAID array numbers (hereinafter referred to as RAID array numbers A and B) to the configuration management unit 260.

構成管理部260は、割り当て要求部242からの要求に従い、指定されたRAIDアレイ番号A,BのRAIDアレイからそれぞれ新たに未使用の物理スライスを取得して、その物理スライスを現在ライト処理中の論理スライスに後続する論理スライスに割り当てる。   In response to a request from the allocation request unit 242, the configuration management unit 260 obtains a new unused physical slice from the RAID arrays with the specified RAID array numbers A and B, and is currently writing the physical slice. Assign to the logical slice that follows the logical slice.

以後、割り当て要求部242は、各論理スライスの開始位置に達した時点で次の論理スライスに割り当てられている物理スライスの割り当てを構成管理部260に要求する。つまり割り当て要求部242は、第1のシーケンシャルライトの場合、RAIDアレイ番号AのRAIDアレイ内の物理スライスの割り当てを、当該RAIDアレイ番号Aを指定することにより、構成管理部260に対して要求する。また割り当て要求部242は、第2のシーケンシャルライトの場合、RAIDアレイ番号BのRAIDアレイ内の物理スライスの割り当てを、当該RAIDアレイ番号Bを指定することにより、構成管理部260に対して要求する。   Thereafter, the allocation request unit 242 requests the configuration management unit 260 to allocate a physical slice that is allocated to the next logical slice when the start position of each logical slice is reached. That is, in the case of the first sequential write, the allocation request unit 242 requests the configuration management unit 260 to allocate a physical slice in the RAID array with the RAID array number A by specifying the RAID array number A. . In the case of the second sequential write, the allocation request unit 242 requests the configuration management unit 260 to allocate a physical slice in the RAID array with the RAID array number B by designating the RAID array number B. .

次に本変形例における論理スライスへの物理スライスの割り当ての動作の流れについて、図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 logical slices 310 having consecutive logical addresses starting from the logical slice 310 (0). The first write request is sequentially sent from the host device to the control device 11 one by one, and a plurality of data for writing stream data to a plurality of logical slices 310 having consecutive logical addresses starting from the logical slice 310 (p). It is assumed that the second write request is sequentially sent from the host device (or another host device) to the control device 11 one request at a time.

図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 control device 11. At this time, it is assumed that at least the logical slices 310 (0) and 310 (p) in the logical disk 300 are in the same state as when the logical disk 300 was created. That is, in the state of FIG. 17A, the physical slice 320 is not assigned to the logical slices 310 (0) and 310 (p). Therefore, in this modification, when a write is first requested to the logical slice 310 in the logical disk 300, the physical slice 320 is allocated to the logical slice 310.

上記複数の第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 control device 11, the sequentiality detecting unit 241 cannot determine the sequentiality. In such a case, the allocation request unit 242 requests the configuration management unit 260 to allocate an arbitrary physical slice 320 to the logical slices 310 (0) and 310 (p).

すると構成管理部260は、論理スライス310(0)及び310(p)にそれぞれ割り当てるべき物理スライス320を、プール管理テーブル273に保持されるプール管理データ内のフリーリストに繋がれている未使用の物理スライス320のスライス管理データに基づいて確保する。ここでは、RAIDアレイ120-0内の2つの物理スライス320が確保されたものとする。   Then, the configuration management unit 260 connects the physical slices 320 to be assigned to the logical slices 310 (0) and 310 (p) to the free list in the pool management data held in the pool management table 273, respectively. Secured based on the slice management data of the physical slice 320. Here, it is assumed that two physical slices 320 in the RAID array 120-0 are secured.

このとき構成管理部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 configuration management unit 260 removes the slice management data of the corresponding two physical slices 320 from the free list, and holds the logical disk number and logical slice 310 ( 0), the logical disk management data including the logical slice number, and the physical list pointers of the logical disk management data including the logical disk number of the logical disk 300 and the logical slice number of the logical slice 310 (p). Connect. In other words, the configuration management unit 260 removes the slice management data of the physical slice 320 from the free list and registers it in the slice management table 272 for each reserved physical slice 320, and also registers the logical slices registered in the logical disk management table 271. The slice management data of the reserved physical slice 320 is connected to the physical list pointer of the logical disk management data relating to the slices 310 (0) and 310 (p). Accordingly, in the example of FIG. 17A, as indicated by arrows 171 and 172, the physical slices 320 in the RAID array 120-0 are allocated to the logical slices 310 (0) and 310 (p), respectively.

このような状態で、シーケンシャル性検出部241が、論理スライス310(0)内の領域へのデータのライトのための少なくとも2つの第1のライト要求に基づいて第1のシーケンシャルライトを判定する一方、論理スライス310(p)内の領域へのデータのライトのための少なくとも2つの第2のライト要求に基づいて第2のシーケンシャルライトを判定したものとする。また、論理スライス310(0)及び310(p)に対するライトがそれぞれ進捗したものとする。   In this state, the sequentiality detection unit 241 determines the first sequential write based on at least two first write requests for writing data to the area in the logical slice 310 (0). Assume that the second sequential write is determined based on at least two second write requests for writing data to the area in the logical slice 310 (p). Further, it is assumed that writing to the logical slices 310 (0) and 310 (p) has progressed.

すると、割り当て要求部242は構成管理部260に対して、第1のシーケンシャルライト及び第2のシーケンシャルライトのそれぞれについて、論理ディスク300内で現在ライト処理中の論理スライス310(0)及び310(p)に後続する論理スライス310(1)及び310(p+1)に、それぞれRAIDアレイ番号がA及びBのRAIDアレイ内の物理スライス320を割り当てることを要求する。   Then, the allocation request unit 242 instructs the configuration management unit 260 to perform logical slices 310 (0) and 310 (p) that are currently being written in the logical disk 300 for the first sequential write and the second sequential write. ) Subsequent to the logical slices 310 (1) and 310 (p + 1) are requested to allocate the physical slices 320 in the RAID arrays with the RAID array numbers A and B, respectively.

構成管理部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 allocation request unit 242, the configuration management unit 260 acquires a new unused physical slice 320 from the RAID arrays with the specified RAID array numbers A and B, and acquires the physical slice 320 as a logical slice 310. Assign to (1) and 310 (p + 1). Here, the RAID arrays with RAID array numbers A and B are RAID arrays 120-0 and 120-1. In this case, the unused physical slices 320 acquired from the RAID arrays 120-0 and 120-1 are logical slices 310 (1) and 310 (310 (3), respectively, as indicated by arrows 173 and 174 in FIG. p + 1).

その後、論理スライス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 configuration management unit 260 acquires an unused physical slice 320 from the RAID arrays 120-0 and 120-1 in response to a request from the allocation request unit 242. The configuration management unit 260 converts the acquired physical slice 320 into logical slices 310 (2) and 310 (1) and 310 (p + 1), respectively, as indicated by arrows 181 and 182 in FIG. 310 (p + 2).

その後、論理スライス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 configuration management unit 260 acquires an unused physical slice 320 from the RAID arrays 120-0 and 120-1 in response to a request from the allocation request unit 242. The configuration management unit 260 converts the acquired physical slice 320 into logical slices 310 (3) and 310 (p + 2) following logical slices 310 (2) and 310 (p + 2), respectively, as indicated by arrows 183 and 184 in FIG. 310 (p + 3).

本変形例によれば、複数のシーケンシャルライトの進行に伴い、自律的に相互のライトデータを異なる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 storage medium 12 during processing of a plurality of sequential writes. Further, unlike the above embodiment, the slice replacement process can be made unnecessary.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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 SYMBOLS 10 ... Data storage device, 11 ... Control apparatus, 12 ... Storage medium, 20 ... Data communication path, 112 ... CPU, 113 ... Program memory, 114 ... Cache memory, 120-0-120-5 ... RAID array (disk array) , 121 ... Pool, 210 ... Host interface control unit, 220 ... IO management unit, 230 ... Cache management unit, 240 ... IO characteristic determination unit, 241 ... Sequentiality detection unit, 242 ... Allocation request unit, 250 ... Logical / physical address Management unit, 260 ... Configuration management unit, 270 ... Configuration management storage unit, 271 ... Logical disk management table, 272 ... Slice management table, 273 ... Pool management table, 274 ... Sequential determination data storage unit, 275 ... Sequential determination table, 280: RAID controller, 290: HDD interface Ace control unit, 300 ... logical disk, 310 ... logical slice, 320 ... physical slice.

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.
前記論理ディスクを構成する論理スライス毎に、当該論理スライスを管理するための第1の管理データであって、当該論理スライスに割り当てられている物理スライスを指し示す第1のポインタ及び当該論理スライスに再割り当てされた物理スライスを指し示す第2のポインタとを含む第1の管理データを保持する論理ディスク管理テーブルと、
前記複数のディスクアレイを構成する物理スライス毎に、当該物理スライスを管理するための第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.
JP2010150410A 2010-06-30 2010-06-30 Data storage device and slice assignment method Pending JP2012014450A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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