JP2002014776A - Disk control system and data rearranging method - Google Patents

Disk control system and data rearranging method

Info

Publication number
JP2002014776A
JP2002014776A JP2000195895A JP2000195895A JP2002014776A JP 2002014776 A JP2002014776 A JP 2002014776A JP 2000195895 A JP2000195895 A JP 2000195895A JP 2000195895 A JP2000195895 A JP 2000195895A JP 2002014776 A JP2002014776 A JP 2002014776A
Authority
JP
Japan
Prior art keywords
logical
stripe
data
physical
disk array
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.)
Granted
Application number
JP2000195895A
Other languages
Japanese (ja)
Other versions
JP3431581B2 (en
Inventor
Satoshi Mizuno
聡 水野
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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP2000195895A priority Critical patent/JP3431581B2/en
Priority to US09/662,220 priority patent/US6609176B1/en
Publication of JP2002014776A publication Critical patent/JP2002014776A/en
Application granted granted Critical
Publication of JP3431581B2 publication Critical patent/JP3431581B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To make data rearrangement processing for increasing read performance efficient as to a log structured writing type disk control system. SOLUTION: It is decided whether or each logical stripe should be an object of repacking (rearrangement) by referring to an address conversion table. In this decision processing, α showing the rate of the number of effective blocks and β showing how much physical block numbers having adjacent logical block numbers succeed are computed. The repacking processing is carried out for corresponding stripes on condition that 'α is larger than a certain value A and β is less than a certain value B'. At this time, the repacking processing can be carried out preferentially for a logical stripe where many effective blocks are physically dispersed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はディスク制御システ
ムおよびデータ再配置方法に関し、特にログ構造化書き
込み方式を用いたディスク制御システムおよび同システ
ムに適用されるデータ再配置方法に関する。
The present invention relates to a disk control system and a data relocation method, and more particularly to a disk control system using a log structured writing method and a data relocation method applied to the system.

【0002】[0002]

【従来の技術】近年、ディスクの高速化と信頼性向上の
観点から、RAID(Redundant Array
of Independent Disks)技術を
搭載した計算機システムが主流となっている。RAID
技術には0,1,10,5などの種類がある。
2. Description of the Related Art In recent years, RAID (Redundant Array) has been developed from the viewpoint of speeding up disks and improving reliability.
2. Description of the Related Art A computer system equipped with a technology of Independent Disks is mainly used. RAID
There are 0, 1, 10, and 5 types of technologies.

【0003】最近では、このようなRAIDの書き込み
性能を大幅に向上するための技術として、ログ構造化フ
ァイルシステム(LSFS:Log−Structur
edFile System)技術が考えられている。
ログ構造化ファイルシステムとは、「シーケンシャルア
クセスは、ランダムアクセスに比較して非常に高速であ
る」というディスク装置の特性を利用した性能向上の手
法である。ランダムアクセス時の性能低下はディスクの
シークおよび回転待ちによるもので出来れば無くしたい
部分である。そこで、ログ構造化ファイルシステム技術
では、書き込みデータを蓄積するためのバッファを使用
し、複数の小さなブロックの書き込みデータを、一つの
大きな塊りのデータに変換して「まとめ書き」するとい
う手法が用いられる。これにより、ランダムな書き込み
をシーケンシャルな書き込みに変更することができ、書
き込み性能の向上を図ることが可能となる。
Recently, as a technique for greatly improving such RAID write performance, a log-structured file system (LSFS: Log-Structure) has been proposed.
edFile System) technology is being considered.
The log-structured file system is a technique for improving performance utilizing the characteristics of a disk device that "sequential access is much faster than random access". The performance degradation at the time of random access is caused by the seek and rotation wait of the disk, and is a part that should be eliminated if possible. Therefore, in the log-structured file system technology, a method of using a buffer for storing write data, converting the write data of a plurality of small blocks into one large chunk of data, and performing "collective writing". Used. Thus, random writing can be changed to sequential writing, and writing performance can be improved.

【0004】[0004]

【発明が解決しようとする課題】しかし、ログ構造化フ
ァイルシステム技術を使用した場合には、ライト要求順
にデータが並べられて書き込まれる。このため、ランダ
ムライトが発生すると、互いに論理アドレスが離れたデ
ータ同士が一つの物理ストライプ領域に連続して書き込
まれる。これにより、ファイルシステム上では論理アド
レスが連続するデータブロックが物理的には離れた別々
の物理ストライプ領域に書き込まれる結果となる。この
ように物理的に分散して記憶されたデータに対するシー
ケンシャルリードは物理的にはランダムリードとなり効
率が悪い。
However, when the log structured file system technique is used, data is arranged and written in the order of write requests. Therefore, when a random write occurs, data whose logical addresses are separated from each other are continuously written in one physical stripe area. This results in data blocks with consecutive logical addresses being written to separate physically separated physical stripe areas on the file system. Sequential read for data stored in such a physically dispersed manner is physically random read and is inefficient.

【0005】このような状態を直すためには物理的にも
連続にデータが並ぶように定期的にデータを並べ替える
必要がある。しかしながら、データを並べ替える処理自
体、多くのI/O処理を伴いシステムに対する大きな負
荷になる。
In order to correct such a state, it is necessary to periodically rearrange the data so that the data is physically continuously arranged. However, the process of rearranging the data itself involves a lot of I / O processing and imposes a heavy load on the system.

【0006】本発明は上述の事情に鑑みてなされたもの
であり、効率よくデータ再配置処理を行えるようにし、
少ない負荷で、読み出し性能の大幅な向上を図ることが
可能なディスク制御システムおよびデータ再配置方法を
提供することを目的とする。
The present invention has been made in view of the above circumstances, and has been made to enable efficient data relocation processing.
An object of the present invention is to provide a disk control system and a data rearrangement method capable of greatly improving read performance with a small load.

【0007】[0007]

【課題を解決するための手段】上述の課題を解決するた
め、本発明は、ログ構造化書き込み方式のディスク制御
システムであって、複数のディスク装置で構成されるデ
ィスクアレイと、書き込み要求された複数のデータブロ
ックを蓄積するデータバッファと、前記データバッファ
に蓄積された複数のデータブロックから前記ディスクア
レイの1物理ストライプ分の書き込みデータを生成し
て、前記ディスクアレイの所定の物理ストライプに一括
して書き込むデータ書き込み手段と、前記ディスクアレ
イの論理ストライプを構成する複数の論理ブロック番号
と、その論理ブロック番号で指定されるデータブロック
が存在する前記ディスクアレイ上の物理位置を示す物理
ブロック番号との対応関係を、各論理ストライプ毎に記
憶するアドレス変換テーブルと、前記アドレス変換テー
ブルを参照して、前記論理ストライプ内における有効論
理ブロック数の割合および/または隣り合う物理ブロッ
ク番号が連続している割合を算出して、その結果が所定
の条件を満たす場合に、再配置対象の論理ストライプと
して決定する再配置対象決定手段と、前記再配置対象決
定手段により再配置が決定された前記論理ストライプの
データブロックを前記ディスクアレイから前記データバ
ッファに読み出し、前記データ書き込み手段によって前
記ディスクアレイの空き物理ストライプ領域に書き込む
データ再配置手段と、前記アドレス変換テーブルの前記
物理ブロック番号を前記空き物理ストライプの物理ブロ
ック番号に書き替えるアドレス変換テーブル書き換え手
段とを具備することを特徴とする。
SUMMARY OF THE INVENTION In order to solve the above-mentioned problems, the present invention relates to a disk control system of a log-structured writing system, comprising: a disk array comprising a plurality of disk devices; A data buffer for storing a plurality of data blocks, and write data for one physical stripe of the disk array are generated from the plurality of data blocks stored in the data buffer, and are collectively written to a predetermined physical stripe of the disk array. Data write means for writing data, a plurality of logical block numbers constituting a logical stripe of the disk array, and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists. Address translation that stores correspondences for each logical stripe And the address conversion table, and calculates the ratio of the number of valid logical blocks in the logical stripe and / or the ratio of consecutive physical block numbers, and the result satisfies a predetermined condition. In the case, a relocation target determination unit that determines a logical stripe to be relocated, and a data block of the logical stripe whose relocation is determined by the relocation target determination unit is read from the disk array to the data buffer, Data relocation means for writing data to a free physical stripe area of the disk array by data writing means, and address conversion table rewriting means for rewriting the physical block number of the address conversion table to the physical block number of the free physical stripe. It is characterized by the following.

【0008】このディスク制御システムにおいては、ア
ドレス変換テーブルを参照することにより、論理ブロッ
クの物理的な分散の度合いが論理ストライプ毎に調べら
れる。すなわち、各論理ストライプ毎に、それを構成す
る複数の論理ブロック内における有効論理ブロック数の
割合および/または隣り合う論理ブロックの物理ブロッ
ク番号が連続している割合が算出され、それに基づいて
再配置対象の論理ストライプが決定される。有効論理ブ
ロック数の割合が少ない論理ストライプは再配置しても
十分な効果が期待できないので、このような論理ストラ
イプについては再配置対象から除外することが好まし
い。また、有効論理ブロックがある程度含まれ、かつ、
物理ブロック番号の連続性の低い論理ストライプは、シ
ーケンシャルリードを行う際に効率が悪いが、このよう
な論理ストライプ内のデータブロックを再配置対象にす
ることによりシーケンシャルリードの効率を向上させる
ことが出来る。
In this disk control system, the degree of physical distribution of logical blocks is checked for each logical stripe by referring to the address conversion table. That is, for each logical stripe, a ratio of the number of valid logical blocks in a plurality of logical blocks constituting the logical stripe and / or a ratio of consecutive physical block numbers of adjacent logical blocks are calculated, and rearrangement is performed based on the calculated ratio. The target logical stripe is determined. Since a logical stripe having a small percentage of the number of valid logical blocks cannot be expected to have a sufficient effect even if rearranged, such a logical stripe is preferably excluded from the rearrangement targets. In addition, some valid logical blocks are included, and
A logical stripe with low continuity of physical block numbers is inefficient at the time of performing sequential read, but the efficiency of sequential read can be improved by making data blocks in such a logical stripe a relocation target. .

【0009】また、本発明は、ログ構造化書き込み方式
のディスク制御システムであって、複数のディスク装置
で構成されるディスクアレイと、書き込み要求された複
数のデータブロックを蓄積するデータバッファと、前記
データバッファに蓄積された複数のデータブロックから
前記ディスクアレイの1物理ストライプ分の書き込みデ
ータを生成して、前記ディスクアレイの所定の物理スト
ライプに一括して書き込むデータ書き込み手段と、前記
ディスクアレイの論理ストライプを構成する複数の論理
ブロック番号と、その論理ブロック番号で指定されるデ
ータブロックが存在する前記ディスクアレイ上の物理位
置を示す物理ブロック番号との対応関係を、各論理スト
ライプ毎に記憶するアドレス変換テーブルと、前記アド
レス変換テーブルの各論理ストライプ毎に設けられ、そ
の論理ストライプ内に含まれる前記論理ブロックに対す
るデータリードの回数を計数するカウンタ手段と、前記
カウンタ手段を参照して、前記データリードの回数が所
定値以上の論理ストライプを再配置対象の論理ストライ
プとして決定する再配置対象決定手段と、前記再配置対
象決定手段により再配置が決定された前記論理ストライ
プのデータブロックを前記ディスクアレイから前記デー
タバッファに読み出し、前記データ書き込み手段によっ
て前記ディスクアレイの空き物理ストライプ領域に書き
込むデータ再配置手段と、前記アドレス変換テーブルの
前記物理ブロック番号を前記空き物理ストライプの物理
ブロック番号に書き替えるアドレス変換テーブル書き換
え手段とを具備することを特徴とする。
The present invention also relates to a disk control system of a log-structured writing system, comprising: a disk array comprising a plurality of disk devices; a data buffer for storing a plurality of data blocks requested to be written; Data write means for generating write data for one physical stripe of the disk array from a plurality of data blocks accumulated in a data buffer and writing the write data to a predetermined physical stripe of the disk array at a time; An address for storing, for each logical stripe, a correspondence relationship between a plurality of logical block numbers constituting a stripe and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists. Translation table and the address translation table A counter provided for each logical stripe and counting the number of data reads for the logical block included in the logical stripe; and a logical stripe in which the number of data reads is equal to or more than a predetermined value with reference to the counter. And a data block of the logical stripe for which relocation is determined by the relocation target determining means from the disk array to the data buffer, Data relocation means for writing data to a free physical stripe area of the disk array by means, and an address conversion table rewriting means for rewriting the physical block number of the address conversion table to a physical block number of the free physical stripe. Features .

【0010】このように、データリード回数が多い論理
ストライプに対してデータ再配置を行うことにより、リ
ードされる頻度が高い論理ストライプ内のデータブロッ
クを物理的にも連続させることが可能となり、シーケン
シャルリード性能を効率よく高めることが可能となる。
As described above, by performing data rearrangement on a logical stripe having a large number of data read operations, data blocks in the logical stripe having a high read frequency can be physically contiguous. It is possible to efficiently improve the read performance.

【0011】また、本発明は、ログ構造化書き込み方式
のディスク制御システムであって、複数のディスク装置
で構成されるディスクアレイと、書き込み要求された複
数のデータブロックを蓄積するデータバッファと、前記
データバッファに蓄積された複数のデータブロックから
前記ディスクアレイの1物理ストライプ分の書き込みデ
ータを生成して、前記ディスクアレイの所定の物理スト
ライプに一括して書き込むデータ書き込み手段と、前記
ディスクアレイの論理ストライプを構成する複数の論理
ブロック番号と、その論理ブロック番号で指定されるデ
ータブロックが存在する前記ディスクアレイ上の物理位
置を示す物理ブロック番号との対応関係を、各論理スト
ライプ毎に記憶するアドレス変換テーブルと、前記アド
レス変換テーブルの各論理ストライプ毎に設けられ、そ
の論理ストライプ内に含まれる前記論理ブロックに対す
るデータ書き込み回数を計数するカウンタ手段と、前記
カウンタ手段を参照して、前記データ書き込み回数が所
定値以上の論理ストライプを再配置対象の論理ストライ
プとして決定する再配置対象決定手段と、前記再配置対
象決定手段により再配置が決定された前記論理ストライ
プのデータブロックを前記ディスクアレイから前記デー
タバッファに読み出し、前記データ書き込み手段によっ
て前記ディスクアレイの空き物理ストライプ領域に書き
込むデータ再配置手段と、前記アドレス変換テーブルの
前記物理ブロック番号を前記空き物理ストライプの物理
ブロック番号に書き替えるアドレス変換テーブル書き換
え手段とを具備することを特徴とする。
The present invention also relates to a disk control system of a log structured writing system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of data blocks requested to be written; Data write means for generating write data for one physical stripe of the disk array from a plurality of data blocks accumulated in a data buffer and writing the write data to a predetermined physical stripe of the disk array at a time; An address for storing, for each logical stripe, a correspondence relationship between a plurality of logical block numbers constituting a stripe and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists. Translation table and the address translation table A counter provided for each logical stripe and counting the number of times of data writing to the logical block included in the logical stripe; A relocation target determining unit that determines a logical stripe to be allocated; and a data block of the logical stripe whose relocation is determined by the relocation target determining unit is read from the disk array to the data buffer, and the data writing unit Data relocation means for writing to a free physical stripe area of the disk array, and address translation table rewriting means for rewriting the physical block number of the address translation table to a physical block number of the free physical stripe. You .

【0012】論理ストライプは、それを構成する論理ブ
ロックに対して書き込みが行われると、物理的に不連続
になる可能性が生じる。よって、再配置対象の論理スト
ライプを決定するための処理を、データ書き込み回数が
所定値以上の論理ストライプに対して行うことにより、
効率よくシーケンシャルアクセスの性能を高めることが
可能となる。
When a logical stripe is written to a logical block constituting the logical stripe, the logical stripe may be physically discontinuous. Therefore, by performing a process for determining a logical stripe to be relocated to a logical stripe whose data write count is equal to or greater than a predetermined value,
It is possible to efficiently improve the performance of sequential access.

【0013】[0013]

【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。図1には、本発明の一実施形態に係
るディスク制御システムを適用した計算機システムの構
成が示されている。この計算機システムはサーバ(PC
サーバ)として利用されるものであり、複数のCPU1
1を搭載することが出来る。これら各CPU11は図示
のようにプロセッサバス1を介してブリッジ12に接続
されている。ブリッジ12はプロセッサバス1とPCI
バス2を双方向で接続するためのブリッジLSIであ
り、ここには主メモリ13を制御するためのメモリコン
トローラも内蔵されている。主メモリ13には、オペレ
ーティングシステム(OS)、実行対象のアプリケーシ
ョンプログラム、およびドライバなどがロードされる。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows a configuration of a computer system to which a disk control system according to an embodiment of the present invention is applied. This computer system is a server (PC
Server 1) and a plurality of CPUs 1
1 can be mounted. Each of these CPUs 11 is connected to the bridge 12 via the processor bus 1 as shown. Bridge 12 is connected to processor bus 1 and PCI.
This is a bridge LSI for connecting the bus 2 bidirectionally, and also has a built-in memory controller for controlling the main memory 13. The main memory 13 is loaded with an operating system (OS), an application program to be executed, a driver, and the like.

【0014】PCIバス2には、図示のように、RAI
Dコントローラ16、および不揮発性メモリ17が接続
されている。RAIDコントローラ16によって制御さ
れるディスクアレイ18は、各種ユーザデータ等の記録
等に用いられる。
As shown, the PCI bus 2 has an RAI
The D controller 16 and the nonvolatile memory 17 are connected. The disk array 18 controlled by the RAID controller 16 is used for recording various user data and the like.

【0015】ディスクアレイ18はRAIDコントロー
ラ16の制御により、例えばRAID5構成のディスク
アレイとして機能する。この場合、ディスクアレイ18
は、データ記憶用のN台のディスク装置にパリティ記憶
用のディスク装置を1台付加したN+1台(ここでは、
DISK0〜DISK4の5台)のディスク装置から構
成される。これらN+1台のディスク装置はグループ化
され、単一の論理ディスクドライブとして使用される。
The disk array 18 functions as, for example, a disk array having a RAID 5 configuration under the control of the RAID controller 16. In this case, the disk array 18
Is N + 1 disks (here, N + 1 disks for parity storage added to N disks for data storage)
(Disks DISK0 to DISK4). These N + 1 disk devices are grouped and used as a single logical disk drive.

【0016】グループ化されたディスク装置には、図示
のように、データ(DATA)とそのパリティ(PAR
ITY)とから構成される物理ストライプ(パリティグ
ループ)が割り当てられ、かつパリティ位置は物理スト
ライプ毎にN+1台のディスク装置間で順に移動され
る。例えば、物理ストライプS0では、DISK0〜D
ISK3それぞれの同一位置に割り当てられたストライ
プユニット上のデータ(DATA)群のパリティ(PA
RITY)は、DISK4の対応するストライプユニッ
ト上に記録される。次の物理ストライプS1において
は、そのストライプS1のデータに対応するパリティ
(PARITY)はDISK3の対応するストライプユ
ニット上に記録される。このようにパリティを物理スト
ライプ単位でN+1台のディスク装置に分散させること
によって、パリティディスクへのアクセスの集中を防止
することができる。
As shown, data (DATA) and its parity (PAR) are stored in the grouped disk devices.
Physical stripes (parity groups) are allocated, and the parity position is sequentially moved between N + 1 disk devices for each physical stripe. For example, in the physical stripe S0, DISK0-D
Parity (PA) of a data (DATA) group on a stripe unit assigned to the same position of each of ISK3
RITY) is recorded on the corresponding stripe unit of DISK4. In the next physical stripe S1, the parity (PARITY) corresponding to the data of the stripe S1 is recorded on the corresponding stripe unit of DISK3. By distributing the parity in N + 1 disk units in units of physical stripes, it is possible to prevent concentration of accesses to the parity disk.

【0017】不揮発性メモリ17はログ構造化ファイル
システム(LSFS)の実現のために使用される作業用
の記憶装置であり、バッテリバックアップされたDRA
MあるいはフラッシュEEPROMなどから構成されて
いる。ログ構造化ファイルシステム(LSFS)は、R
AID5構成のディスクアレイ18に対する書き込み性
能を向上させるために用いられる。本実施形態において
は、OSのファイルシステムには改良を加えず、OSに
組み込んで用いられるドライバプログラムと不揮発性メ
モリ17とによってログ構造化ファイルシステム(LS
FS)が実現されている。ここで、図2を参照して、ロ
グ構造化ファイルシステム(LSFS)によるディスク
アレイ18の書き込み制御の原理について説明する。
The non-volatile memory 17 is a working storage device used for realizing a log structured file system (LSFS), and includes a battery-backed DRA.
M or a flash EEPROM. The Log Structured File System (LSFS)
It is used to improve the write performance on the disk array 18 having the AID5 configuration. In the present embodiment, the OS file system is not improved, and the log structured file system (LS) is provided by the driver program incorporated in the OS and the nonvolatile memory 17.
FS) has been realized. Here, the principle of write control of the disk array 18 by the log structured file system (LSFS) will be described with reference to FIG.

【0018】ログ構造化ファイルシステム(LSFS)
技術を使用した書き込み方式では、ホスト(本実施形態
ではOSのファイルシステム)から書き込み要求された
論理アドレスに従ってデータ書き込み位置を決定するの
ではなく、ホストから書き込み要求された順番で書き込
みデータを順次蓄積することによって複数の書き込みデ
ータのブロックから構成される大きなデータブロックを
構成し、その大きなデータブロックを一括してディスク
アレイ18の空き領域に上から順番に「まとめ書き」す
る。「まとめ書き」の単位は物理ストライプである。つ
まり、「まとめ書き」の度に1つの空き物理ストライプ
を生成し、そこに1物理ストライプ分のデータブロック
がシーケンシャルに書き込まれる。これにより、ランダ
ムなアクセスをシーケンシャルなアクセスに変換するこ
とが出来、書き込み性能を大幅に向上させることができ
る。
Log Structured File System (LSFS)
In the writing method using the technology, the data write position is not determined according to the logical address requested by the host (the file system of the OS in the present embodiment), but the write data is sequentially accumulated in the order of the write request from the host. By doing so, a large data block composed of a plurality of write data blocks is formed, and the large data blocks are collectively written to the empty area of the disk array 18 in order from the top. The unit of “collective writing” is a physical stripe. That is, one free physical stripe is generated each time “collective writing” is performed, and data blocks for one physical stripe are sequentially written therein. As a result, random access can be converted into sequential access, and the write performance can be greatly improved.

【0019】図2は、OSのファイルシステムを介して
送られて来る書き込みデータのブロックデータサイズが
2KB、1ストライプユニットのデータサイズが64K
B、1物理ストライプ(パリティグループ)分のデータ
サイズが256KB(=64KB×4)の場合の例であ
る。2KBの書き込みデータブロックは、OSに組み込
んで用いられるRAID高速化ドライバ100によって
取得され、不揮発性メモリ17に蓄積される。RAID
高速化ドライバ100はログ構造化ファイルシステム
(LSFS)を実現するためのドライバプログラムであ
る。
FIG. 2 shows that the block data size of the write data sent via the OS file system is 2 KB and the data size of the stripe unit is 64 K.
B is an example where the data size of one physical stripe (parity group) is 256 KB (= 64 KB × 4). The 2 KB write data block is acquired by the RAID speed-up driver 100 incorporated in the OS and stored in the nonvolatile memory 17. RAID
The high-speed driver 100 is a driver program for realizing a log structured file system (LSFS).

【0020】基本的には、256KB分のデータブロッ
ク(2KB×128個のデータブロック)が不揮発性メ
モリ17に蓄積された時点で、RAID高速化ドライバ
100の制御の下、ディスクアレイ18の1物理ストラ
イプに対する書き込みが一度にまとめて行われる。この
場合、RAIDコントローラ16は、256KB分の書
き込みデータブロックのみからパリティを生成できるの
で、パリティ計算のために旧データを読み出す等の処理
が不要となり、良く知られたRAID5の書き込みペナ
ルティーを減らすことができる。
Basically, when 256 KB data blocks (2 KB × 128 data blocks) are stored in the nonvolatile memory 17, one physical block of the disk array 18 is controlled under the control of the RAID acceleration driver 100. Writing to the stripe is performed at once. In this case, the RAID controller 16 can generate parity only from the 256 KB write data block, so that processing such as reading old data for parity calculation becomes unnecessary, and the well-known RAID5 write penalty can be reduced. it can.

【0021】不揮発性メモリ17には、図1に示されて
いるように、ログメモリ(まとめ書きバッファ)17
1、アドレス変換テーブル172、論理ストライプ管理
テーブル173などが搭載されており、メモリ制御部
(図示せず)によってアクセス制御される。
As shown in FIG. 1, the nonvolatile memory 17 has a log memory (batch writing buffer) 17.
1, an address conversion table 172, a logical stripe management table 173, and the like are mounted, and access is controlled by a memory control unit (not shown).

【0022】ログメモリ171は、書き込みデータブロ
ックを蓄積するためのデータバッファであり、このログ
メモリ171に1物理ストライプ分の書き込みデータブ
ロックが蓄積された時点でディスクアレイ18への一括
書き込みが開始される。すなわち、物理ストライプは
「まとめ書き」の単位であり、ディスクアレイ18の全
記憶領域の内、LSFS用として生成されたパーティシ
ョン上で一続きの連続した領域から構成される。各物理
ストライプは、RAIDコントローラ16が管理するス
トライプユニットの整数倍のサイズである。
The log memory 171 is a data buffer for storing write data blocks. When one physical stripe of write data blocks is stored in the log memory 171, batch write to the disk array 18 is started. You. That is, the physical stripe is a unit of “collective writing”, and is made up of a continuous area on a partition generated for LSFS in the entire storage area of the disk array 18. Each physical stripe has a size that is an integral multiple of the stripe unit managed by the RAID controller 16.

【0023】アドレス変換テーブル172は、LSFS
用として使用されるパーティションの論理アドレス空間
を構成する複数の論理ブロック番号それぞれと、それら
論理ブロック番号で指定されるデータブロックが存在す
るディスクアレイ18上の物理位置を示す物理ブロック
番号との対応関係を示すアドレス変換情報を記憶する。
ここで、論理ブロック番号とは、OSのファイルシステ
ムから見たときのディスクパーティション上の論理ブロ
ックの番号である。OSのファイルシステムがアクセス
を要求するときのブロック番号は論理ブロック番号であ
り、これは仮想的な論理アドレスである。この論理ブロ
ック番号はアドレス変換テーブル172によって物理ブ
ロック番号(ディスクパーティション上の物理的なブロ
ック番号)と対応づけられる。物理ブロック番号×ブロ
ックサイズ(バイト)によって、ディスクパーティショ
ンの先頭位置からのバイトオフセット値が求められる。
The address conversion table 172 has the LSFS
Relationship between each of a plurality of logical block numbers constituting a logical address space of a partition used for use and a physical block number indicating a physical position on the disk array 18 where the data block specified by the logical block number exists. Is stored.
Here, the logical block number is the number of the logical block on the disk partition as viewed from the file system of the OS. The block number when the file system of the OS requests access is a logical block number, which is a virtual logical address. This logical block number is associated with a physical block number (a physical block number on a disk partition) by the address conversion table 172. The byte offset value from the head position of the disk partition is obtained from the physical block number × block size (byte).

【0024】アドレス変換テーブル172は、論理ブロ
ック番号それぞれに対応する複数のエントリを有してい
る。新たにデータブロックを書き込むときには、書き込
み要求された論理ブロック番号に対応するエントリに
は、そのデータブロックを実際に書き込む物理ブロック
番号(物理アドレス)が登録される。データブロックの
読み出し時には、読み出し要求された論理ブロック番号
に対応するエントリから物理ブロック番号が調べられ、
その物理ブロック番号(物理ブロック番号×ブロックサ
イズ)で指定される、ディスクパーティション上の物理
位置からデータブロックが読み出される。
The address conversion table 172 has a plurality of entries corresponding to the respective logical block numbers. When writing a new data block, the physical block number (physical address) where the data block is actually written is registered in the entry corresponding to the logical block number for which the write request was made. When reading a data block, the physical block number is checked from the entry corresponding to the logical block number requested to be read,
A data block is read from a physical position on the disk partition specified by the physical block number (physical block number × block size).

【0025】論理ストライプ管理テーブル173は、各
論理ストライプに関する情報を管理するためのものであ
り、それら各論理ストライプの情報はデータ再配置のた
めの処理などに利用される。ここで、論理ストライプと
は、ディスクパーティションの論理アドレス空間を先頭
から1物理ストライプ分のデータブロック個数ごとに区
切った場合の論理ブロックの集合である。例えば、1物
理ストライプが10個の物理ブロックを含む場合には、
1論理ストライプも10個の論理ブロックを含むことに
なる。
The logical stripe management table 173 is for managing information on each logical stripe, and the information of each logical stripe is used for processing for data relocation. Here, the logical stripe is a set of logical blocks when the logical address space of the disk partition is divided from the head by the number of data blocks of one physical stripe. For example, if one physical stripe includes 10 physical blocks,
One logical stripe also includes ten logical blocks.

【0026】前述したように、本実施形態の書き込み方
式では、ランダムライトをまとめて1つの連続した領域
としての物理ストライプに書き込む。この結果、ランダ
ムライトした領域についてはOSのファイルシステム上
の論理アドレス空間では連続するデータであったとして
も、物理的に離れた別々の物理ストライプに含まれる結
果となる。このように別々な物理ストライプに書き込ま
れたデータに対するシーケンシャルリードは、物理的に
はランダムリードになり効率が悪い。このような状態を
直すためには物理的にも連続にデータが並ぶように定期
的にデータブロックを再配置する必要がある。このデー
タ再配置処理、つまり「シーケンシャルリードを効率よ
く行えることを目的としたデータ並び替え」をここでは
リパック処理と呼ぶことにする。
As described above, in the writing method of this embodiment, random writes are collectively written into a physical stripe as one continuous area. As a result, even if the randomly written area is continuous data in the logical address space on the OS file system, the data is included in separate physically separated physical stripes. Sequential reading for data written in different physical stripes in this manner is physically random reading and is inefficient. In order to correct such a state, it is necessary to periodically rearrange the data blocks so that the data is physically continuously arranged. This data rearrangement process, that is, "data rearrangement for the purpose of efficiently performing sequential read" is herein referred to as repacking process.

【0027】以下、図3および図4を用いて、第1の実
施形態におけるリパック処理の制御方法について具体的
に説明する。図3はアドレス変換テーブル172の一例
を示しており、また図4はリパック制御処理のフローチ
ャートである。
Hereinafter, the control method of the repacking process in the first embodiment will be specifically described with reference to FIGS. FIG. 3 shows an example of the address conversion table 172, and FIG. 4 is a flowchart of the repacking control process.

【0028】図3のアドレス変換テーブル172は物理
ストライプ(論理ストライプも)が10個のデータブロ
ックから成る場合を想定している。アドレス変換テーブ
ル172は論理ブロック番号をインデックスとする多数
のエントリを含んでおり、各エントリには物理ブロック
番号が登録されている。「−」は、無効なブロック(ま
だデータが1度も書き込まれていないブロック)である
ことを示す。
The address conversion table 172 in FIG. 3 assumes a case where a physical stripe (also a logical stripe) is composed of ten data blocks. The address conversion table 172 includes a large number of entries each having a logical block number as an index, and a physical block number is registered in each entry. "-" Indicates an invalid block (a block in which data has never been written yet).

【0029】このアドレス変換テーブル172の例で
は、上から10個の論理ブロック毎に1つの論理ストラ
イプが構成される。例えば、論理ストライプ0は論理ブ
ロック番号0から9の10個の論理ブロックからなり、
論理ストライプ1は論理ブロック番号10から19の1
0個の論理ブロックからなる。即ち、1つの物理ストラ
イプ及び1つの論理ストライプがそれぞれ10のデータ
ブロックで構成される場合には、 論理ストライプ番号=論理ブロック番号/10 物理ストライプ番号=物理ブロック番号/10 の関係が成り立つ。ただし、上記で「/」は整数の割り
算(小数点以下切り捨て)を示す。
In the example of the address conversion table 172, one logical stripe is formed for every ten logical blocks from the top. For example, a logical stripe 0 is composed of ten logical blocks having logical block numbers 0 to 9,
Logical stripe 1 is logical block number 10 to 19
It consists of zero logical blocks. That is, when one physical stripe and one logical stripe are each composed of ten data blocks, the relationship of logical stripe number = logical block number / 10 physical stripe number = physical block number / 10 is established. Here, “/” indicates integer division (rounded down to the decimal point).

【0030】論理ストライプ0に着目すると、論理ブロ
ック番号0のデータブロックは物理ブロック番号30
(物理ストライプ3の先頭データブロック)に記憶さ
れ、同様に論理ブロック番号1のデータブロックは物理
ブロック番号31(物理ストライプ3の2番目のデータ
ブロック)に、論理ブロック番号2のデータブロックは
物理ブロック番号32(物理ストライプ3の3番目のデ
ータブロック)に、論理ブロック番号3のデータブロッ
クは物理ブロック番号33(物理ストライプ3の4番目
のデータブロック)に記憶されていることが分かる。さ
らに、論理ブロック番号6,7,8それぞれに対応する
データブロックは物理ブロック番号133,134,2
37にそれぞれ記憶されている。論理ブロック番号4,
5,9は無効ブロックである。
Focusing on logical stripe 0, the data block of logical block number 0 is the physical block number 30.
(The first data block of the physical stripe 3). Similarly, the data block of the logical block number 1 is the physical block number 31 (the second data block of the physical stripe 3), and the data block of the logical block number 2 is the physical block. It can be seen that the data block of the logical block number 3 is stored in the physical block number 33 (the fourth data block of the physical stripe 3), while the data block of the logical block number 3 is stored in the physical block number 33 (the third data block of the physical stripe 3). Further, data blocks corresponding to the logical block numbers 6, 7, and 8 are physical block numbers 133, 134, and 2, respectively.
37 respectively. Logical block number 4,
5 and 9 are invalid blocks.

【0031】このように、アドレス変換テーブル172
を参照することにより、各論理ストライプ毎にそれを構
成する論理ブロックの物理的な分散の度合いを検出する
ことができる。よって、本実施形態においては、アドレ
ス変換テーブル172を参照し、各論理ストライプ毎に
それを構成する論理ブロックの物理ブロック番号をチェ
ックしていくことにより、有効ブロック数の割合(=
α)、隣あう論理ブロックの物理ブロック番号が連続し
ている割合(=β)を論理ストライプ毎に算出する。こ
のα、βの値によってその論理ストライプをリパック対
象にするか否かが決定される。
As described above, the address conversion table 172
, It is possible to detect the degree of physical distribution of logical blocks constituting each logical stripe for each logical stripe. Therefore, in the present embodiment, by referring to the address conversion table 172 and checking the physical block numbers of the logical blocks constituting each logical stripe, the ratio of the effective block number (=
α), the ratio (= β) of consecutive physical block numbers of adjacent logical blocks is calculated for each logical stripe. The values of α and β determine whether or not the logical stripe is to be repacked.

【0032】(α、βの計算例)ここで、α、βの計算
例について説明する。図3において、論理ストライプ0
に着目すると、有効ブロック数は7であるので、論理ス
トライプ0のαは、 α=7/10×100=70% で算出される。このαの値は対象の論理ストライプの容
量使用率を示す。値が小さいほど書き込まれていないブ
ロックが多く、リパック対象から除外すべき(リパック
しても並べ変えるべきブロックが少なく効果が期待でき
ない)と判断できる。
(Example of Calculation of α and β) Here, an example of calculation of α and β will be described. In FIG. 3, logical stripe 0
Focusing on, since the number of effective blocks is 7, α of the logical stripe 0 is calculated by α = 7/10 × 100 = 70%. The value of α indicates the capacity usage rate of the target logical stripe. The smaller the value, the more blocks that have not been written, and it can be determined that the blocks should be excluded from the repacking target (there are few blocks to be rearranged even after repacking and the effect cannot be expected).

【0033】論理ストライプ0においては、論理ブロッ
ク0,1,2,3の物理ブロック番号が連続しており、
また論理ブロック6,7の物理ブロック番号が連続して
いる。このため、計9個のブロック境界の中で4つの境
界が物理的に連続していることになる。したがって、論
理ストライプ0のβは、 β=4/9×100≒44% で算出される。
In the logical stripe 0, the physical block numbers of the logical blocks 0, 1, 2, 3 are continuous,
The physical block numbers of the logical blocks 6 and 7 are continuous. For this reason, four boundaries among nine block boundaries in total are physically continuous. Therefore, β of the logical stripe 0 is calculated by β = 4/9 × 100 ≒ 44%.

【0034】同様にして、論理ストライプ1については
α=80%,β=22%、論理ストライプ2については
α=20%、β=0%、論理ストライプ3についてはα
=90%、β=44%と算出される。
Similarly, α = 80% and β = 22% for the logical stripe 1, α = 20% and β = 0% for the logical stripe 2, and α for the logical stripe 3.
= 90% and β = 44%.

【0035】(リパックの判断)「αが一定値Aより大
きくて、βが一定値B以下の場合にリパック対象とす
る」(条件1)を用いて、論理ストライプ毎にリパック
対象とすべきか否かを判定する。ここで、A=50%、
B=50%とする。
(Judgment of repacking) Whether or not to be repacked for each logical stripe is determined by using “condition to be repacked when α is greater than constant value A and β is less than or equal to constant value B” (condition 1). Is determined. Where A = 50%,
B = 50%.

【0036】この場合、論理ストライプ2はαの値が小
さいので上記条件に合わず、リパック不要と判断され
る。「有効ブロックが少なく、並べ替えの効果が期待で
きない」ためである。論理ストライプ0,1,3は上記
条件に合致し、リパック対象と判断される。「有効ブロ
ック数が十分で、かつ連続性が低い」ためにリパック対
象となる。
In this case, since the value of α of the logical stripe 2 is small, it does not meet the above condition, and it is determined that repacking is unnecessary. This is because "there are few effective blocks and the effect of rearrangement cannot be expected." The logical stripes 0, 1, and 3 meet the above conditions and are determined to be repacked. Because of "the number of effective blocks is sufficient and the continuity is low", it is subject to repacking.

【0037】なお、実際には、リパック処理が行われる
に従って各論理ストライプのα、βは変化して行くこと
になる。したがって、本実施形態では、リパック対象と
判断された論理ストライプ毎に逐次リパック処理を行
い、次の論理ストライプに関するα、βの算出は、リパ
ック処理終了後に行われる。
In practice, α and β of each logical stripe change as the repacking process is performed. Therefore, in the present embodiment, the repacking process is sequentially performed for each logical stripe determined to be a repacking target, and the calculation of α and β for the next logical stripe is performed after the repacking process is completed.

【0038】(リパック制御処理の手順)以下、図4の
フローチャートを参照して、リパック制御処理の手順に
ついて説明する。このリパック制御処理は、RAID高
速化ドライバ100によって行われる。
(Procedure of Repack Control Process) The procedure of the repack control process will be described below with reference to the flowchart of FIG. This repacking control process is performed by the RAID acceleration driver 100.

【0039】まず、アドレス変換テーブル172がイン
デックス順に参照され、該当する物理ブロック番号の値
が調べられる(ステップS11)。そして、値の小さい
論理ストライプから順に選択し(ステップS12)、そ
の選択した論理ストライプに対して以下の「リパック対
象ストライプ選択処理&リパック処理(※1)」が実行
される。
First, the address conversion table 172 is referred to in index order, and the value of the corresponding physical block number is checked (step S11). Then, the logical stripes having smaller values are selected in order (step S12), and the following “repacking target stripe selection processing & repacking processing (* 1)” is executed on the selected logical stripes.

【0040】リパック対象ストライプ選択処理&リパッ
ク処理では、まず、選択された最初の論理ストライプに
関するα,βが算出される(ステップS13)。各論理
ストライプの有効ブロック数の値は、リード参照回数、
ライト回数などの情報と共に論理ストライプ管理テーブ
ル173にて論理ストライプ毎に管理されている。論理
ストライプ管理テーブル173は、アドレス変換テーブ
ル172と一緒に、本計算機システムのシャットダウン
時にはLSFS用のディスクパーティション内における
データ領域とは別の領域にセーブされ、本計算機システ
ムのブート時にはそのディスクパーティションから不揮
発性メモリ17にロードされて使用される。αの値は、
論理ストライプ管理テーブル173の有効ブロック数を
基に算出することができる。もちろん、前述したように
アドレス変換テーブル172に無効ブロックを示す情報
「−」を登録しておくことにより、アドレス変換テーブ
ル172のエントリをサーチするだけでも容易にαを求
めることができる。
In the repacking target stripe selecting process & repacking process, first, α and β for the selected first logical stripe are calculated (step S13). The value of the number of effective blocks for each logical stripe is the number of read references,
The information is managed for each logical stripe in the logical stripe management table 173 together with information such as the number of times of writing. The logical stripe management table 173 is saved together with the address translation table 172 in a separate area from the data area in the LSFS disk partition when the computer system is shut down, and is stored in a non-volatile area from the disk partition when the computer system is booted. The memory is used by being loaded into the memory 17. The value of α is
It can be calculated based on the number of valid blocks in the logical stripe management table 173. Of course, as described above, by registering the information “−” indicating the invalid block in the address conversion table 172, α can be easily obtained only by searching for an entry in the address conversion table 172.

【0041】「αが一定値A以下」である場合には(ス
テップS14のYES)、現在の論理ストライプはリパ
ック対象から除外される。一方、「αが一定値Aより大
きい」場合は(ステップS14のNO)、βが一定値B
以下であるか否かが判定される(ステップS15)。
「αが一定値Aより大きくて、βが一定値B以下」であ
る場合には(ステップS15のYES)、現在の論理ス
トライプはリパック対象として決定され、その論理スト
ライプに対してリパック処理が実行される(ステップS
16)。リパック処理は、論理ブロック番号が連続する
データブロックが物理的にも連続するように並べ替える
処理である。このリパック処理では、リパック対象の論
理ストライプのデータブロックがディスクアレイ18か
らログメモリ171に読み出される一方、ディスクアレ
イ18のパーティション上に空き物理ストライプが用意
され、そこに、ログメモリ171に読み出されたデータ
ブロックが論理ブロック番号順に一括して書き込まれ
る。
If "α is equal to or less than the fixed value A" (YES in step S14), the current logical stripe is excluded from the repacking target. On the other hand, if “α is larger than the fixed value A” (NO in step S14),
It is determined whether or not the following is true (step S15).
If “α is larger than the fixed value A and β is equal to or smaller than the fixed value B” (YES in step S15), the current logical stripe is determined as a repacking target, and repacking processing is performed on the logical stripe. (Step S
16). The repacking process is a process of rearranging data blocks having consecutive logical block numbers so that they are also physically continuous. In this repacking process, while data blocks of a logical stripe to be repacked are read from the disk array 18 to the log memory 171, a free physical stripe is prepared on a partition of the disk array 18, and read out to the log memory 171 there. The written data blocks are collectively written in the order of the logical block numbers.

【0042】次いで全ての論理ストライプについての処
理が完了したかどうかの判定が行われ(ステップS1
7)、未処理の論理ストライプがなくなるまで、インデ
ックス順にリパック対象ストライプ選択処理&リパック
処理が順次行われる。
Next, it is determined whether or not the processing has been completed for all the logical stripes (step S1).
7) Until there are no unprocessed logical stripes, the repacking target stripe selection processing and the repacking processing are sequentially performed in index order.

【0043】以上のリパック制御処理は例えば一定期間
毎に自動的に実行してもよいし、システム管理者による
明示的な操作指示に応答して実行するようにしてもよ
い。
The repacking control process described above may be executed automatically, for example, at regular intervals, or may be executed in response to an explicit operation instruction from a system administrator.

【0044】図6および図7には、図3の論理ストライ
プ3をリパック処理した結果の一例が示されている。図
6は論理ストライプ3に関するリパック前及びリパック
後のアドレス変換テーブル172の内容を示しており、
また図7は論理ストライプ3に関するリパック前及びリ
パック後の物理ストライプ上のデータブロックの並びの
様子を示している。
FIGS. 6 and 7 show an example of the result of repacking the logical stripe 3 of FIG. FIG. 6 shows the contents of the address conversion table 172 before and after repacking for the logical stripe 3,
FIG. 7 shows the arrangement of data blocks on the physical stripe before and after repacking for the logical stripe 3.

【0045】リパック前においては、論理ストライプ3
内の9個の有効ブロック(論理ブロック番号30,3
1,…38)は3つの物理ストライプ(物理ストライプ
6,11,15)に分散して記憶されている。なお、図
7の符号30〜38は当該論理ブロック番号のデータを
意味している。この状態で論理ブロック30〜38を連
続してリードすると、実際には離れた3つの物理ストラ
イプ6,11,15にアクセスする事になり効率が悪
い。この論理ストライプ3に対してリパックを実施す
る。今、ディスクアレイ18上の空の物理ストライプ1
0を選択したと想定すると、論理ストライプ3の全ての
有効ブロックのデータが3つの物理ストライプ6,1
1,15からログメモリ171に読み出され、これが一
括して物理ストライプ10に書き込まれる。この場合、
物理ストライプ10には、9個の有効ブロック全てが論
理ブロック番号順(30,31,…38)に並べて配置
される。そして、これに合わせて、アドレス変換テーブ
ル172においては、論理ストライプ3内の9個の有効
ブロック(論理ブロック番号30,31,…38)それ
ぞれの物理ブロック番号が更新される(100,10
1,…108)。このリパック処理により、論理ブロッ
ク30〜38を連続してリードした場合には、物理スト
ライプ10内のアクセスのみになり効率よいアクセスが
実現される。結果的にシーケンシャルリード性能の向上
が実現できる。
Before repacking, logical stripe 3
9 effective blocks (logical block numbers 30, 3)
1,... 38) are distributed and stored in three physical stripes (physical stripes 6, 11, 15). Note that reference numerals 30 to 38 in FIG. 7 mean data of the logical block number. If the logical blocks 30 to 38 are successively read in this state, three physical stripes 6, 11, and 15 that are apart from each other are actually accessed, which is inefficient. The repacking is performed on the logical stripe 3. Now, the empty physical stripe 1 on the disk array 18
Assuming that 0 is selected, the data of all the valid blocks of the logical stripe 3 is
The data is read out from the log memories 171 and 15 to the log memory 171, and is collectively written to the physical stripe 10. in this case,
In the physical stripe 10, all nine effective blocks are arranged in the order of logical block numbers (30, 31,... 38). In accordance with this, in the address translation table 172, the physical block numbers of the nine valid blocks (logical block numbers 30, 31,... 38) in the logical stripe 3 are updated (100, 10).
1, ... 108). By the repacking process, when the logical blocks 30 to 38 are continuously read, only the access within the physical stripe 10 is performed, and efficient access is realized. As a result, the sequential read performance can be improved.

【0046】また、このようにリパック対象の論理スト
ライプ毎に新しい物理ストライプを生成し、そこにリパ
ック対象の論理ストライプに含まれるデータブロックを
論理ブロック番号順に並べて配置する事により、リパッ
ク処理を繰り返すことにより、物理的なデータの並びが
論理的なデータの並びに近づくようになる。さらに、論
理ストライプ単位でも物理的に連続するように配置すれ
ば、物理ストライプ境界においてもデータブロックの連
続性を実現することが可能となる。なお、リパック処理
において、論理ブロック番号順に並べることが最も好ま
しいが、リパック対象の論理ストライプに属するデータ
ブロック全てを同一の物理ストライプに収容するだけで
も、リード性能を高めることができることはもちろんで
ある。
Further, a new physical stripe is generated for each logical stripe to be repacked, and the data blocks included in the logical stripe to be repacked are arranged and arranged in the order of the logical block numbers, thereby repeating the repacking process. Thus, the physical data arrangement comes closer to the logical data arrangement. Furthermore, by arranging them so that they are physically continuous even in units of logical stripes, it is possible to achieve continuity of data blocks even at physical stripe boundaries. In the repacking process, it is most preferable to arrange the data blocks in the order of the logical block numbers. However, it is a matter of course that the read performance can be improved only by accommodating all the data blocks belonging to the logical stripe to be repacked in the same physical stripe.

【0047】また、「βが一定値以下の場合に、リパッ
ク対象とする」という条件を追加し、βのみから、リパ
ック対象の論理ストライプを選択しても良い。
Further, a condition that “if β is equal to or less than a fixed value, the repacking target” may be added, and a logical stripe to be repacked may be selected from β alone.

【0048】(リード参照回数に基づくリパック選択処
理)次に、図8および図9を参照して、リパック処理の
第2の実施形態について説明する。ここでは、論理スト
ライプ毎にリード参照回数を管理し、リード参照回数が
一定値以上になった論理ストライプに対して優先的に
「リパック対象ストライプ選択処理」が実行される。各
論理ストライプのリード参照回数の値とは、その論理ス
トライプに関する最後のリパック対象ストライプ選択処
理が行われた後のリード参照回数を意味する。このた
め、各論理ストライプのリード参照回数の値は、その論
理ストライプのリパック対象ストライプ選択処理が行わ
れる度に0クリアされる。なお、一度もリパック選択処
理の対象になっていない論理ストライプの場合には「パ
ーティション生成時点以降のリード参照回数」となる。
(Repacking Selection Process Based on Read Reference Count) Next, a second embodiment of the repacking process will be described with reference to FIGS. Here, the number of read references is managed for each logical stripe, and the “repacking target stripe selection process” is executed preferentially for logical stripes in which the number of read references exceeds a certain value. The value of the read reference count of each logical stripe means the read reference count after the last repacking stripe selection process for the logical stripe is performed. For this reason, the value of the read reference count of each logical stripe is cleared to 0 each time the repacking target stripe selection processing of the logical stripe is performed. In the case of a logical stripe that has never been the target of the repack selection process, the number of times is "the number of read references since the partition generation time".

【0049】図8はデータブロックリード時にRAID
高速化ドライバ100によって実行される処理手順を示
すフローチャートである。ここでは、論理ストライプ毎
にリード参照カウンタを用意し、そのリード参照カウン
タを用いて各論理ストライプのリード参照回数を管理す
る場合を想定する。Referenced_Strip
e_Table[ ]が「リード参照カウンタ」のテー
ブルであり、論理ストライプ番号をインデックスとし
て、「リード参照カウンタ値」を値として持つ。パーテ
ィション生成時には0で初期化する。
FIG. 8 shows a case where RAID is read when reading a data block.
5 is a flowchart illustrating a processing procedure executed by a speed-up driver. Here, a case is assumed in which a read reference counter is prepared for each logical stripe, and the read reference count of each logical stripe is managed using the read reference counter. Referenced_Strip
e_Table [] is a table of “read reference counter”, which has a logical stripe number as an index and a “read reference counter value” as a value. Initialize with 0 at the time of partition generation.

【0050】図8に示すように、データブロックリード
時には、まず、OSのファイルシステムからリード要求
された論理ブロック番号から、それが属する論理ストラ
イプ番号Lが求められる(ステップS21)。リード対
象の論理ブロック番号をVn、各論理ストライプ内のブ
ロック総数をNbとすると、Lは、 L=Vn/Nb で与えられる。
As shown in FIG. 8, at the time of reading a data block, first, the logical stripe number L to which the logical block number is read from the file system of the OS is obtained (step S21). Assuming that the logical block number to be read is Vn and the total number of blocks in each logical stripe is Nb, L is given by L = Vn / Nb.

【0051】次いで、Referenced_Stri
pe_Table[L]++として、対象の論理ブロッ
クが属する論理ストライプLの「リード参照カウンタ」
をインクリメントする(ステップS22)。その後は、
通常のリード処理が行われる(ステップS23,S2
4)。すなわち、アドレス変換テーブル172を参照し
て、論理ブロック番号Vnに対応する物理ブロック番号
Pnが求められ(ステップS23)、そしてPn×ブロ
ックサイズで与えられるディスクアドレスにより指定さ
れるディスクパーティション上の物理位置から、該当す
るデータブロックがRAIDコントローラ16を通じて
読み出される(ステップS24)。
Next, Referenced_Stri
“read reference counter” of the logical stripe L to which the target logical block belongs as pe_Table [L] ++
Is incremented (step S22). After that,
Normal read processing is performed (steps S23 and S2).
4). That is, the physical block number Pn corresponding to the logical block number Vn is obtained with reference to the address conversion table 172 (step S23), and the physical position on the disk partition specified by the disk address given by Pn × block size , The corresponding data block is read through the RAID controller 16 (step S24).

【0052】図9はリパック処理時にRAID高速ドラ
イバ100によって実行される処理のフローチャートで
ある。図4ではアドレス変換テーブル172の内容をイ
ンデックスの順番に参照していたが、ここでは、Ref
erenced_Stripe_Table[ ]を使
い、リード参照回数が多い論理ストライプに対して前述
のα,βを用いた「リパック対象ストライプ選択処理」
が行われる。
FIG. 9 is a flowchart of a process executed by the RAID high-speed driver 100 during the repacking process. In FIG. 4, the contents of the address conversion table 172 are referred to in the order of the index.
“Repacking target stripe selection process” using α and β for a logical stripe having a large number of read references using enhanced_Stripe_Table [].
Is performed.

【0053】すなわち、まず、論理ストライプ番号を
「リード参照カウンタ」の値で降順にソートして、リー
ド参照カウンタの値が大きな論理ストライプからリパッ
ク対象ストライプの選択処理を行うようにする(ステッ
プS31)。またステップS31では、新たな配列A
[ ]が作られる。配列A[ ]の各エントリは2つの
メンバLogical_Stripe_ID、およびR
eference_Countから成り、C言語で表記
すると、 A[ ].Logical_Stripe_ID A[ ].Reference_Count のように表される。A[ ].Logical_Str
ipe_IDは論理ストライプ番号(Referenc
ed_Stripe_Table[ ]のインデックス
に相当する値)を示し、A[ ].Reference
_Countはリード参照回数を示す。Referen
ced_Stripe_Table[ ]に登録されて
いる値をソートする事により、「リード参照カウンタ」
の値が大きい順にその値と、その論理ストライプの番号
とが上記配列Aの上記2つのメンバにそれぞれセットさ
れる。
That is, first, the logical stripe numbers are sorted in descending order by the value of the “read reference counter”, and the repacking target stripe is selected from the logical stripe having the larger value of the read reference counter (step S 31). . In step S31, a new array A
[] Is made. Each entry of array A [] has two members, Logical_Stripe_ID, and R
E_reference_Count, expressed in C language, A []. Logical_Stripe_ID A []. It is represented as Reference_Count. A []. Logical_Str
IPe_ID is a logical stripe number (Reference)
ed_Stripe_Table []), and A []. Reference
_Count indicates the number of read references. Referen
By sorting the values registered in ced_Stripe_Table [], the "read reference counter"
Are set in the two members of the array A, respectively, in ascending order of their values and the number of the logical stripe.

【0054】その後、配列A[ ]に登録された順番に
エントリを参照し、リード参照カウンタ「A[ ].R
eference_Count」が一定値C以上の論理
ストライプがある限り「リパック対象ストライプ選択処
理&リパック処理(図4の※1の処理)」を行う。すな
わち、まず最初に、n=0として、最もリード参照回数
の多い論理ストライプ(L0=A[0].Logical
_Stripe_ID)に着目し(ステップS32,S
33)、そのリード参照カウント(A[0].Refe
rence_Count)が一定値C以下であるか否か
を判断する(ステップS34)。一定値Cよりもリード
参照回数が多い場合には、α,βに基づく前述のリパッ
ク対象ストライプ選択処理&リパック処理が実行される
(ステップS35)。リパック処理対象として選択され
たか否かにかかわらず、該当する論理ストライプのリー
ド参照カウンタは、リパック対象ストライプ選別処理の
際に0クリアされる(ステップS36)。
Thereafter, the entries are referred to in the order registered in the array A [], and the read reference counter “A [] .R” is read.
As long as there is a logical stripe for which “reference_Count” is equal to or more than the fixed value C, “repacking target stripe selection processing & repacking processing (processing of * 1 in FIG. 4)” is performed. That is, first, assuming that n = 0, the logical stripe having the largest number of read references (L0 = A [0] .Logical).
_Strip_ID) (steps S32 and S32).
33), and its read reference count (A [0] .Ref)
It is determined whether or not (rence_Count) is equal to or smaller than a fixed value C (step S34). If the number of read references is greater than the fixed value C, the above-described repacking target stripe selection processing & repacking processing based on α and β is executed (step S35). Regardless of whether or not the logical stripe is selected as a repacking target, the read reference counter of the corresponding logical stripe is cleared to 0 at the time of the repacking target stripe selection processing (step S36).

【0055】この後、n+1として、2番目にリード参
照回数の多い論理ストライプ(L1=A[1].Logi
cal_Stripe_ID)に着目し(ステップS3
7,S38,S33)、そのリード参照カウンタ(A
[1].Reference_Count)が一定値C
以下であるか否かを判断する(ステップS34)。
Thereafter, as n + 1, the logical stripe having the second largest number of read references (L1 = A [1] .Logi).
cal_Strip_ID) (step S3
7, S38, S33) and its read reference counter (A
[1]. Reference_Count) is a constant value C
It is determined whether or not it is below (step S34).

【0056】リード参照カウンタ「A[n].Refe
rence_Count」が一定値C以下の論理ストラ
イプが出現した時点で(ステップS34のYES)、処
理が終了される。よって、リード参照回数の多い論理ス
トライプを優先してリパック対象にする事ができる。ま
たリード参照カウンタ「A[ ].Reference
_Count」が一定値C以上の論理ストライプに対し
てのみリパック対象ストライプ選択処理」を行えばよい
ので、その処理に要する負荷を低減することが可能とな
る。
The read reference counter "A [n] .Ref"
When a logical stripe whose “rence_Count” is equal to or smaller than the fixed value C appears (YES in step S34), the processing is ended. Therefore, a logical stripe having a large number of read references can be preferentially targeted for repacking. Also, the read reference counter “A [] .Reference”
Since it is sufficient to perform the repacking target stripe selection process only for the logical stripes whose _Count is equal to or greater than the fixed value C, the load required for the process can be reduced.

【0057】(書き込み回数に基づくリパック選択処
理)次に、図10および図11を参照して、リパック処
理の第3の実施形態について説明する。ここでは、論理
ストライプ毎にそれに属する論理ブロックの書き込み回
数を管理し、書き込み回数が一定値以上になった論理ス
トライプに対して優先的に「リパック対象ストライプ選
択処理」が実行される。各論理ストライプの書き込み回
数の値とは、その論理ストライプに関する最後のリパッ
ク対象ストライプ選択処理が行われた後の書き込み回数
を意味する。このため、各論理ストライプの書き込み回
数の値は、その論理ストライプのリパック対象ストライ
プ選択処理が行われる度に0クリアされる。なお、一度
もリパック選択処理の対象になっていない論理ストライ
プの場合には「パーティション生成時点以降の書き込み
回数」となる。
(Repack Selection Process Based on Number of Writes) Next, a third embodiment of the repack process will be described with reference to FIGS. Here, the number of times of writing of the logical block belonging to each logical stripe is managed, and the “repacking target stripe selection process” is preferentially executed for a logical stripe whose number of times of writing has exceeded a certain value. The value of the number of times of writing of each logical stripe means the number of times of writing after the last repacking stripe selection process for the logical stripe is performed. For this reason, the value of the number of times of writing of each logical stripe is cleared to 0 every time the repacking target stripe selection processing of the logical stripe is performed. In the case of a logical stripe that has never been subjected to the repack selection process, the number of times of writing is “the number of times of writing since the partition was created”.

【0058】論理ストライプは、それを構成する論理ブ
ロックに対して書き込みが行われると、物理的に不連続
になる可能性が生じる。これは、LSFSでは、物理ス
トライプ単位で追記処理が行われ、新たに書き込まれた
物理ストライプに含まれるデータブロックに対応する別
の物理ストライプ上の旧データブロックは無効化される
からである。したがって、書き込み回数の多い論理スト
ライプほど、その論理ブロックが存在する物理位置が分
散されている可能性が高くなると考えられる。よって、
書き込み回数の多い論理ストライプを優先的にリパック
処理の候補にする事により、効率のよいリパック処理を
実現できる。
When a logical stripe is written to a logical block constituting the logical stripe, there is a possibility that the logical stripe becomes physically discontinuous. This is because, in LSFS, additional writing processing is performed in units of physical stripes, and old data blocks on another physical stripe corresponding to data blocks included in a newly written physical stripe are invalidated. Therefore, it is considered that the possibility that the physical position where the logical block exists is dispersed is higher in the logical stripe having the larger number of times of writing. Therefore,
Efficient repacking processing can be realized by preferentially setting a logical stripe having a large number of writing times as a candidate for repacking processing.

【0059】図10はデータ書き込み時にRAID高速
化ドライバ100によって実行される処理手順を示すフ
ローチャートである。ここでは、論理ストライプ毎に書
き込み回数カウンタを用意し、その書き込み回数カウン
タを用いて各論理ストライプの書き込み回数を管理する
場合を想定する。Modified_Stripe_T
able[ ]が「書き込み回数カウンタ」のテーブル
であり、論理ストライプ番号をインデックスとして、
「書き込み回数カウンタ値」を値として持つ。パーティ
ション生成時には0で初期化する。
FIG. 10 is a flowchart showing a processing procedure executed by the RAID acceleration driver 100 when writing data. Here, it is assumed that a write frequency counter is prepared for each logical stripe and the write frequency counter is used to manage the write frequency of each logical stripe. Modified_Stripe_T
able [] is a table of a “write count counter”, and uses a logical stripe number as an index.
It has a “write counter value” as a value. Initialize with 0 at the time of partition generation.

【0060】図10に示すように、ログメモリ171に
1物理ストライプ分のデータブロックが蓄積されると、
その1物理ストライプ分のデータブロックが書き込み対
象の物理ストライプに一括して書き込まれる(ステップ
S41)。次いで、ライトしたデータブロック毎にそれ
が属する論理ストライプ番号Lが求められる(ステップ
S42)。各データブロックの論理ブロック番号をV
n、論理ストライプ内のブロック総数をNbとすると、
論理ストライプ番号Lは、 L=Vn/Nb で与えられる。
As shown in FIG. 10, when data blocks for one physical stripe are accumulated in the log memory 171,
The data blocks for the one physical stripe are collectively written to the physical stripe to be written (step S41). Next, the logical stripe number L to which the written data block belongs is obtained (step S42). The logical block number of each data block is V
n, and the total number of blocks in the logical stripe is Nb.
The logical stripe number L is given by L = Vn / Nb.

【0061】この後、Modified_Stripe
_Table[L]++として、対象の論理ブロックが
属する論理ストライプの「書き込み回数カウンタ」をイ
ンクリメントする(ステップS43)。その後は、通常
のライト処理の一環として、ライトしたデータブロック
毎にその論理ブロック番号Vnに対応するアドレス変換
テーブル172のエントリに対して、実際に書き込みを
行った物理ブロック番号Pnがセットされる(ステップ
S44)。なお、上述したステップS41〜S44は物
理ストライプ中の全ブロックに対して実行される。
Thereafter, the Modified_Stripe
As “_Table [L] ++”, the “write number counter” of the logical stripe to which the target logical block belongs is incremented (step S43). Thereafter, as part of the normal write processing, the physical block number Pn actually written is set in the entry of the address conversion table 172 corresponding to the logical block number Vn for each written data block ( Step S44). Steps S41 to S44 described above are executed for all blocks in the physical stripe.

【0062】図11はリパック処理時にRAID高速ド
ライバ100によって実行される処理のフローチャート
である。図4ではアドレス変換テーブル172の内容を
インデックスの順番に参照していたが、ここでは、Mo
dified_Stripe_Table[ ]を使
い、書き込み回数が多い論理ストライプに対して前述の
α,βを用いた「リパック対象ストライプ選択処理」が
行われる。
FIG. 11 is a flowchart of a process executed by the RAID high-speed driver 100 during the repacking process. In FIG. 4, the contents of the address conversion table 172 are referred to in the order of the index.
The “repacking target stripe selection process” using α and β described above is performed on a logical stripe having a large number of write operations using the modified_Stripe_Table [].

【0063】すなわち、まず、論理ストライプ番号を
「書き込み回数カウンタ」の値で降順にソートして、書
き込み回数カウンタの値が大きな論理ストライプからリ
パック対象ストライプ選択処理を行うようにする(ステ
ップS51)。またステップS51では、新たな配列A
[ ]が作られる。配列A[ ]の各エントリは2つの
メンバLogical_Stripe_ID、およびM
odified_Countから成り、C言語で表記す
ると、 A[ ].Logical_Stripe_ID A[ ].Modified_Count のように表される。A[ ].Logical_Str
ipe_IDは論理ストライプ番号(Modified
_Stripe_Table[ ]のインデックスに相
当する値)を示し、A[ ].Modified_Co
untは書き込み回数を示す。Modified_St
ripe_Table[ ]に登録されている値をソー
トする事により、「書き込み回数カウンタ」の値が大き
い順にその値と、その論理ストライプの番号とが上記配
列Aの上記2つのメンバにそれぞれセットされる。
That is, first, the logical stripe numbers are sorted in descending order by the value of the "write count counter", and the repacking target stripe selection process is performed from the logical stripe having the largest write count counter (step S51). In step S51, a new array A
[] Is made. Each entry in array A [] has two members, Logical_Stripe_ID, and M
modified_Count, expressed in C language, A []. Logical_Stripe_ID A []. Expressed as Modified_Count. A []. Logical_Str
The type_ID is a logical stripe number (Modified)
_Strip_Table []), and A []. Modified_Co
unt indicates the number of times of writing. Modified_St
By sorting the values registered in “ripe_Table []”, the values of the “write count counter” and the number of the logical stripe are set in the two members of the array A in ascending order.

【0064】その後、配列A[ ]に登録された順番に
エントリを参照し、書き込み回数カウンタ「A[ ].
Modified_Count」が一定値D以上の論理
ストライプがある限り「リパック対象ストライプ選択処
理&リパック処理(図4の※1の処理)」を行う。すな
わち、まず最初に、n=0として、最も書き込み回数の
多い論理ストライプ(L0=A[0].Logical_
Stripe_ID)に着目し(ステップS52,S5
3)、その書き込み回数カウンタ(A[0].Modi
fied_Count)が一定値D以下であるか否かを
判断する(ステップS54)。一定値Dよりも書き込み
回数が多い場合には、α,βに基づく前述のリパック対
象ストライプ選択処理&リパック処理が実行される(ス
テップS55)。リパック処理対象として選択されたか
否かにかかわらず、該当する論理ストライプの書き込み
回数カウンタは、リパック対象ストライプ選別処理の際
に0クリアされる(ステップS55)。
Thereafter, the entries are referred to in the order registered in the array A [], and the write counter “A [].
As long as there is a logical stripe whose “Modified_Count” is equal to or greater than the fixed value D, “repacking target stripe selection processing & repacking processing (processing of * 1 in FIG. 4)” is performed. That is, first, assuming that n = 0, the logical stripe having the largest number of write operations (L0 = A [0] .Logical_
Focusing on (Strip_ID) (Steps S52 and S5)
3), the write counter (A [0] .Modi)
It is determined whether or not (feed_Count) is equal to or smaller than a fixed value D (step S54). If the number of times of writing is larger than the fixed value D, the aforementioned repacking target stripe selection processing and repacking processing based on α and β are executed (step S55). Regardless of whether or not the logical stripe is selected as a repacking target, the write count counter of the corresponding logical stripe is cleared to 0 during the repacking target stripe selection processing (step S55).

【0065】この後、n+1として、2番目に書き込み
回数の多い論理ストライプ(L1=A[1].Logic
al_Stripe_ID)に着目し(ステップS5
7,S58,S53)、その書き込み回数カウント(A
[1].Modified_Count)が一定値D以
下であるか否かを判断する(ステップS54)。
Thereafter, as n + 1, a logical stripe having the second largest number of write operations (L1 = A [1] .Logic)
al_Stripe_ID) (step S5).
7, S58, S53), the number of times of writing (A
[1]. It is determined whether or not (Modified_Count) is equal to or smaller than a fixed value D (step S54).

【0066】書き込み回数カウンタ「A[n].Mod
ified_Count」が一定値D以下の論理ストラ
イプが出現した時点で(ステップS54のYES)、処
理が終了される。よって、書き込み回数の多い論理スト
ライプを優先してリパック対象にする事ができる。また
書き込みカウンタ「A[ ].Modified_Co
unt」が一定値D以上の論理ストライプに対してのみ
リパック対象ストライプ選択処理」を行えばよいので、
その処理に要する負荷を低減することが可能となる。
The number-of-writes counter “A [n] .Mod
When a logical stripe whose “ifed_Count” is equal to or smaller than the fixed value D appears (YES in step S54), the process ends. Therefore, it is possible to prioritize a logical stripe having a large number of write operations as a repacking target. Also, the write counter “A [] .Modified_Co
"unpack" may be performed only on logical stripes having a predetermined value D or more.
The load required for the processing can be reduced.

【0067】なお、上記第2、第3の実施形態ではリー
ド参照回数の値、書き込み回数の値をそれぞれ考慮して
第1実施形態のα、βに基づくリパック対象選択処理を
優先して行うべき論理ストライプを決定するようにした
が、リード参照回数の値、書き込み回数の値の制御のみ
で、リパック対象の論理ストライプを決定したり、ある
いはリード参照回数の値と書き込み回数の値の双方を用
いてリパック対象の論理ストライプを決定する場合であ
っても十分な効果を得ることができる。
In the second and third embodiments, the repacking target selection process based on α and β in the first embodiment should be performed with priority given the values of the number of read references and the number of writes. Although the logical stripe is determined, the logical stripe to be repacked is determined only by controlling the value of the read reference count and the value of the write count, or both the read reference count value and the write count value are used. Thus, a sufficient effect can be obtained even when the logical stripe to be repacked is determined.

【0068】以上、本実施形態はRAID構成のディス
クアレイに対する適用が最も効果的であるが、ログ構造
化書き込み方式を利用したディスク制御システムであれ
ば、一つのディスクドライブから構成されるディスク装
置の制御に対しても同様にして適用することができる。
As described above, the present embodiment is most effective when applied to a disk array having a RAID configuration. However, in a disk control system using a log structured writing method, a disk drive composed of one disk drive can be used. The same can be applied to control.

【0069】また、RAID高速化ドライバ100の処
理手順を含むコンピュータプログラムをコンピュータ読
み取り可能な記録媒体に記録しておくことにより、その
コンピュータプログラムを記録媒体を通じて通常の計算
機システムに導入するだけで本実施形態と同様の効果を
得ることができる。
Further, by recording a computer program including the processing procedure of the RAID acceleration driver 100 on a computer-readable recording medium, the present invention can be implemented simply by introducing the computer program to a normal computer system through the recording medium. The same effect as in the embodiment can be obtained.

【0070】また、本発明は、上記実施形態に限定され
るものではなく、実施段階ではその要旨を逸脱しない範
囲で種々に変形することが可能である。更に、上記実施
形態には種々の段階の発明が含まれており、開示される
複数の構成要件における適宜な組み合わせにより種々の
発明が抽出され得る。例えば、実施形態に示される全構
成要件から幾つかの構成要件が削除されても、発明が解
決しようとする課題の欄で述べた課題が解決でき、発明
の効果の欄で述べられている効果が得られる場合には、
この構成要件が削除された構成が発明として抽出され得
る。
Further, the present invention is not limited to the above-described embodiment, and can be variously modified in an implementation stage without departing from the gist thereof. Further, the embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some components are deleted from all the components shown in the embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effects described in the column of the effect of the invention can be solved. If you get
A configuration from which this configuration requirement is deleted can be extracted as an invention.

【0071】[0071]

【発明の効果】以上説明したように、本発明によれば、
効率よくデータの並べ替え処理を行えるようになり、少
ない負荷で、読み出し性能の向上を図ることが可能とな
る。特に、有効ブロック数の割合と、論理ブロック番号
が隣り合うブロックの物理ブロック番号が連続している
割合とを使用することにより、並べ替えが必要な論理ス
トライプを効率よく選定することができる。
As described above, according to the present invention,
Data can be rearranged efficiently, and read performance can be improved with a small load. In particular, by using the ratio of the number of valid blocks and the ratio of continuous physical block numbers of blocks having adjacent logical block numbers, it is possible to efficiently select logical stripes that need to be rearranged.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施形態に係る計算機システムの構
成を示すブロック図。
FIG. 1 is a block diagram showing a configuration of a computer system according to an embodiment of the present invention.

【図2】同実施形態の計算機システムに設けられたディ
スク装置に対する書き込み処理の原理を説明するための
図。
FIG. 2 is an exemplary view for explaining the principle of a writing process to a disk device provided in the computer system of the embodiment.

【図3】同実施形態の計算機システムに設けられたアド
レス変換テーブルの内容の一例を示す図。
FIG. 3 is an exemplary view showing an example of the contents of an address conversion table provided in the computer system of the embodiment.

【図4】同実施形態の計算機システムで実行されるリパ
ック制御処理の手順を示すフローチャート。
FIG. 4 is an exemplary flowchart illustrating a procedure of a repacking control process executed by the computer system of the embodiment.

【図5】同実施形態の計算機システムに設けられた論理
ストライプ管理テーブルの構成を示す図。
FIG. 5 is an exemplary view showing the configuration of a logical stripe management table provided in the computer system of the embodiment.

【図6】同実施形態の計算機システムにおけるリパック
処理前とリパック処理後のアドレス変換テーブルの内容
の変化の様子を示す図。
FIG. 6 is an exemplary view showing how the contents of the address conversion table change before and after the repacking process in the computer system of the embodiment.

【図7】同実施形態の計算機システムにおけるリパック
処理前とリパック処理後の物理的なデータの並びの変化
の様子を示す図。
FIG. 7 is an exemplary view showing how the arrangement of physical data changes before and after the repacking process in the computer system of the embodiment.

【図8】同実施形態の計算機システムにおけるデータリ
ード時の処理手順を示すフローチャート。
FIG. 8 is an exemplary flowchart showing the processing procedure at the time of data reading in the computer system of the embodiment.

【図9】同実施形態の計算機システムで実行されるリパ
ック制御処理の第2の手順を示すフローチャート。
FIG. 9 is an exemplary flowchart showing a second procedure of the repacking control process executed by the computer system of the embodiment.

【図10】同実施形態の計算機システムにおけるデータ
ライト時の処理手順を示すフローチャート。
FIG. 10 is an exemplary flowchart showing the processing procedure at the time of data writing in the computer system of the embodiment.

【図11】同実施形態の計算機システムで実行されるリ
パック制御処理の第3の手順を示すフローチャート。
FIG. 11 is an exemplary flowchart illustrating a third procedure of the repacking control process executed by the computer system of the embodiment.

【符号の説明】[Explanation of symbols]

11…CPU 12…ブリッジ 13…主メモリ 16…RAIDコントローラ 17…不揮発性メモリ 18…ディスクアレイ 171…ログメモリ 172…アドレス変換テーブル 173…論理ストライプ管理テーブル DESCRIPTION OF SYMBOLS 11 ... CPU 12 ... Bridge 13 ... Main memory 16 ... RAID controller 17 ... Non-volatile memory 18 ... Disk array 171 ... Log memory 172 ... Address conversion table 173 ... Logical stripe management table

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 ログ構造化書き込み方式のディスク制御
システムであって、 複数のディスク装置で構成されるディスクアレイと、 書き込み要求された複数のデータブロックを蓄積するデ
ータバッファと、 前記データバッファに蓄積された複数のデータブロック
から前記ディスクアレイの1物理ストライプ分の書き込
みデータを生成して、前記ディスクアレイの所定の物理
ストライプに一括して書き込むデータ書き込み手段と、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を、各論理
ストライプ毎に記憶するアドレス変換テーブルと、 前記アドレス変換テーブルを参照して、前記論理ストラ
イプ内における有効論理ブロック数の割合および/また
は隣り合う物理ブロック番号が連続している割合を算出
して、その結果が所定の条件を満たす場合に、再配置対
象の論理ストライプとして決定する再配置対象決定手段
と、 前記再配置対象決定手段により再配置が決定された前記
論理ストライプのデータブロックを前記ディスクアレイ
から前記データバッファに読み出し、前記データ書き込
み手段によって前記ディスクアレイの空き物理ストライ
プ領域に書き込むデータ再配置手段と、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き替える
アドレス変換テーブル書き換え手段と、 を具備することを特徴とするディスク制御システム。
1. A disk control system of a log structured write system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of data blocks requested to be written; Data write means for generating write data for one physical stripe of the disk array from the plurality of data blocks thus written, and writing the write data collectively to a predetermined physical stripe of the disk array; and forming a logical stripe of the disk array An address conversion table that stores, for each logical stripe, a correspondence relationship between a plurality of logical block numbers and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists; Referring to the address conversion table, The ratio of the number of valid logical blocks in the logical stripe and / or the ratio of consecutive physical block numbers are calculated, and if the result satisfies a predetermined condition, the logical stripe is determined as a logical stripe to be relocated. A relocation target determination unit; and a data block of the logical stripe, the relocation of which is determined by the relocation target determination unit, being read from the disk array to the data buffer, and a free physical stripe area of the disk array being read by the data writing unit. And a data relocation unit for rewriting the physical block number of the address translation table with a physical block number of the empty physical stripe.
【請求項2】 前記再配置対象決定手段は、前記有効な
論理ブロックの割合が所定値よりも大きく、且つ前記隣
り合う物理ブロック番号が連続している割合が所定値以
下の論理ストライプを、再配置対象として条件決定する
ことを特徴とする請求項1記載のディスク制御システ
ム。
2. The relocation target determining unit re-creates a logical stripe in which the ratio of the valid logical blocks is larger than a predetermined value and the ratio of consecutive adjacent physical block numbers is equal to or smaller than a predetermined value. 2. The disk control system according to claim 1, wherein a condition is determined as an arrangement target.
【請求項3】 ログ構造化書き込み方式のディスク制御
システムであって、 複数のディスク装置で構成されるディスクアレイと、 書き込み要求された複数のデータブロックを蓄積するデ
ータバッファと、 前記データバッファに蓄積された複数のデータブロック
から前記ディスクアレイの1物理ストライプ分の書き込
みデータを生成して、前記ディスクアレイの所定の物理
ストライプに一括して書き込むデータ書き込み手段と、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を、各論理
ストライプ毎に記憶するアドレス変換テーブルと、 前記アドレス変換テーブルの各論理ストライプ毎に設け
られ、その論理ストライプ内に含まれる前記論理ブロッ
クに対するデータリードの回数を計数するカウンタ手段
と、 前記カウンタ手段を参照して、前記データリードの回数
が所定値以上の論理ストライプを再配置対象の論理スト
ライプとして決定する再配置対象決定手段と、 前記再配置対象決定手段により再配置が決定された前記
論理ストライプのデータブロックを前記ディスクアレイ
から前記データバッファに読み出し、前記データ書き込
み手段によって前記ディスクアレイの空き物理ストライ
プ領域に書き込むデータ再配置手段と、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き替える
アドレス変換テーブル書き換え手段と、 を具備することを特徴とするディスク制御システム。
3. A disk control system of a log-structured writing system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of data blocks requested to be written; Data write means for generating write data for one physical stripe of the disk array from the plurality of data blocks thus written, and writing the write data collectively to a predetermined physical stripe of the disk array; and forming a logical stripe of the disk array An address conversion table that stores, for each logical stripe, a correspondence relationship between a plurality of logical block numbers and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists; Each logical list in the address translation table A counter for counting the number of data reads for the logical block included in the logical stripe provided for each type, and referring to the counter for re-reading the logical stripe having the number of data reads equal to or more than a predetermined value. A relocation target determining unit that determines a logical stripe to be relocated; a data block of the logical stripe for which relocation is determined by the relocation target determining unit is read from the disk array to the data buffer; Data relocation means for writing to a free physical stripe area of the disk array; and address translation table rewriting means for rewriting the physical block number of the address translation table to the physical block number of the free physical stripe. Diss Control system.
【請求項4】 ログ構造化書き込み方式のディスク制御
システムであって、 複数のディスク装置で構成されるディスクアレイと、 書き込み要求された複数のデータブロックを蓄積するデ
ータバッファと、 前記データバッファに蓄積された複数のデータブロック
から前記ディスクアレイの1物理ストライプ分の書き込
みデータを生成して、前記ディスクアレイの所定の物理
ストライプに一括して書き込むデータ書き込み手段と、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を、各論理
ストライプ毎に記憶するアドレス変換テーブルと、 前記アドレス変換テーブルの各論理ストライプ毎に設け
られ、その論理ストライプ内に含まれる前記論理ブロッ
クに対するデータ書き込み回数を計数するカウンタ手段
と、 前記カウンタ手段を参照して、前記データ書き込み回数
が所定値以上の論理ストライプを再配置対象の論理スト
ライプとして決定する再配置対象決定手段と、 前記再配置対象決定手段により再配置が決定された前記
論理ストライプのデータブロックを前記ディスクアレイ
から前記データバッファに読み出し、前記データ書き込
み手段によって前記ディスクアレイの空き物理ストライ
プ領域に書き込むデータ再配置手段と、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き替える
アドレス変換テーブル書き換え手段と、 を具備することを特徴とするディスク制御システム。
4. A disk control system of a log structured write system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of data blocks requested to be written; Data write means for generating write data for one physical stripe of the disk array from the plurality of data blocks thus written, and writing the write data collectively to a predetermined physical stripe of the disk array; and forming a logical stripe of the disk array An address conversion table that stores, for each logical stripe, a correspondence relationship between a plurality of logical block numbers and a physical block number indicating a physical position on the disk array where the data block specified by the logical block number exists; Each logical list in the address translation table Counter means for counting the number of times of data writing to the logical block included in the logical stripe, provided for each type, and referring to the counter means, the logical stripe whose data writing number is equal to or more than a predetermined value is to be relocated. A relocation target determining unit that determines the logical stripe of the logical stripe; a data block of the logical stripe whose relocation is determined by the relocation target determining unit is read from the disk array to the data buffer; Data relocation means for writing to a free physical stripe area of an array; and address conversion table rewriting means for rewriting the physical block number of the address conversion table to the physical block number of the free physical stripe. This Control system.
【請求項5】 前記再配置対象決定手段は、前記アドレ
ス変換テーブルを参照して、前記論理ストライプ内にお
ける有効論理ブロック数の割合および/または隣り合う
物理ブロック番号が連続している割合を算出して、その
結果が所定の条件を満たす場合に、再配置対象の論理ス
トライプとして決定する手段を併せ持つことを特徴とす
る請求項3または請求項4記載のディスク制御システ
ム。
5. The reallocation target determining means calculates a ratio of the number of valid logical blocks in the logical stripe and / or a ratio of consecutive physical block numbers in the logical stripe with reference to the address conversion table. 5. The disk control system according to claim 3, further comprising means for determining a logical stripe to be relocated when the result satisfies a predetermined condition.
【請求項6】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号のデータブ
ロックが書き込まれる前記ディスクアレイ上の物理位置
を示す物理ブロック番号との対応関係を示すアドレス変
換テーブルを各論理ストライプ毎に生成するステップ
と、 前記アドレス変換テーブルを参照して、前記論理ストラ
イプ内における有効論理ブロック数の割合および/また
は隣り合う物理ブロック番号が連続している割合を算出
して、その結果が所定の条件を満たす場合に、再配置対
象の論理ストライプとして決定するステップと、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記データ再配置に伴って、前記アドレス変換テーブル
の前記物理ブロック番号を前記空き物理ストライプの物
理ブロック番号に書き換えるステップと、 を具備することを特徴とするデータ再配置方法。
6. A data relocation method for relocating data blocks stored in a disk array composed of a plurality of disk devices, wherein a plurality of data blocks requested to be written are stored in a data buffer. Generating write data for one physical stripe of the disk array from the plurality of data blocks stored in the data buffer, and writing the data in a predetermined physical stripe of the disk array at once; An address conversion table indicating a correspondence relationship between a plurality of logical block numbers constituting a logical stripe of the array and a physical block number indicating a physical position on the disk array to which a data block of the logical block number is written is provided for each logical stripe. Generating the address, and the address With reference to the conversion table, the ratio of the number of valid logical blocks in the logical stripe and / or the ratio of consecutive physical block numbers are calculated, and if the result satisfies a predetermined condition, the reallocation is performed. Deciding as a target logical stripe; reading data blocks of the logical stripe for which relocation has been decided from the disk array to the data buffer, and writing the data to a free physical stripe area of the disk array by the batch write step Performing a reallocation, and rewriting the physical block number of the address translation table with a physical block number of the empty physical stripe in accordance with the data reallocation. .
【請求項7】 前記有効な論理ブロックの割合が所定値
よりも大きく、且つ前記隣り合う物理ブロック番号が連
続している割合が所定値以下の論理ストライプを、再配
置対象として条件決定することを特徴とする請求項5記
載のデータ再配置方法。
7. A condition that a logical stripe whose effective logical block ratio is larger than a predetermined value and whose adjacent physical block number is continuous is equal to or lower than a predetermined value is conditionally determined as a relocation target. 6. The data rearrangement method according to claim 5, wherein:
【請求項8】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号のデータブ
ロックが書き込まれる前記ディスクアレイ上の物理位置
を示す物理ブロック番号との対応関係を示すアドレス変
換テーブルを各論理ストライプ毎に生成するステップ
と、 前記論理ストライプ毎に、その論理ストライプ内に含ま
れる前記論理ブロックに対するデータリードの回数を計
数するステップと、 前記データリードの回数が所定値以上の論理ストライプ
を再配置対象の論理ストライプとして決定するステップ
と、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き換える
ステップと、 を具備することを特徴とするデータ再配置方法。
8. A data relocation method for relocating data blocks stored in a disk array composed of a plurality of disk devices, wherein a plurality of data blocks requested to be written are stored in a data buffer. Generating write data for one physical stripe of the disk array from the plurality of data blocks stored in the data buffer, and writing the data in a predetermined physical stripe of the disk array at once; An address conversion table indicating a correspondence relationship between a plurality of logical block numbers constituting a logical stripe of the array and a physical block number indicating a physical position on the disk array to which a data block of the logical block number is written is provided for each logical stripe. Generating the logical list; For each type, a step of counting the number of data reads for the logical block included in the logical stripe, and a step of determining a logical stripe whose number of data reads is equal to or greater than a predetermined value as a logical stripe to be relocated, Reading a data block of the logical stripe for which relocation is determined from the disk array to the data buffer, writing the data block to a free physical stripe area of the disk array by the batch write step, and relocating the data; Rewriting the physical block number of the table to the physical block number of the empty physical stripe.
【請求項9】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号のデータブ
ロックが書き込まれる前記ディスクアレイ上の物理位置
を示す物理ブロック番号との対応関係を示すアドレス変
換テーブルを各論理ストライプ毎に生成するステップ
と、 前記論理ストライプ毎に、その論理ストライプ内に含ま
れる前記論理ブロックに対するデータ書き込み回数を計
数するステップと、 前記データ書き込み回数が所定値以上の論理ストライプ
を再配置対象の論理ストライプとして決定するステップ
と、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き換える
ステップと、 を具備することを特徴とするデータ再配置方法。
9. A data relocation method for relocating data blocks stored in a disk array constituted by a plurality of disk devices, wherein a plurality of data blocks requested to be written are stored in a data buffer. Generating write data for one physical stripe of the disk array from the plurality of data blocks stored in the data buffer, and writing the data in a predetermined physical stripe of the disk array at once; An address conversion table indicating a correspondence relationship between a plurality of logical block numbers constituting a logical stripe of the array and a physical block number indicating a physical position on the disk array to which a data block of the logical block number is written is provided for each logical stripe. Generating the logical list; Counting the number of times data is written to the logical block included in the logical stripe for each type; determining a logical stripe whose data write number is equal to or greater than a predetermined value as a logical stripe to be relocated; Reading the data blocks of the logical stripe determined from the disk array into the data buffer, writing the data blocks to the free physical stripe area of the disk array by the batch write step, and relocating the data, Rewriting the physical block number to the physical block number of the empty physical stripe.
【請求項10】 再配置対象の論理ストライプを決定す
るステップに、前記アドレス変換テーブルを参照して、
前記論理ストライプ内における有効論理ブロック数の割
合および/または隣り合う物理ブロック番号が連続して
いる割合を算出して、その結果が所定の条件を満たす場
合に、再配置対象の論理ストライプとして決定するステ
ップを併せ持つことを特徴とする請求項8または請求項
9記載のデータ再配置方法。
10. The method of determining a logical stripe to be relocated, comprising the steps of:
A ratio of the number of valid logical blocks in the logical stripe and / or a ratio of consecutive physical block numbers are calculated, and if the result satisfies a predetermined condition, the logical stripe is determined as a logical stripe to be relocated. 10. The data relocation method according to claim 8, further comprising steps.
JP2000195895A 1999-12-27 2000-06-29 Disk control system and data relocation method Expired - Fee Related JP3431581B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000195895A JP3431581B2 (en) 2000-06-29 2000-06-29 Disk control system and data relocation method
US09/662,220 US6609176B1 (en) 1999-12-27 2000-09-14 Disk control system and data rearrangement method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000195895A JP3431581B2 (en) 2000-06-29 2000-06-29 Disk control system and data relocation method

Publications (2)

Publication Number Publication Date
JP2002014776A true JP2002014776A (en) 2002-01-18
JP3431581B2 JP3431581B2 (en) 2003-07-28

Family

ID=18694483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000195895A Expired - Fee Related JP3431581B2 (en) 1999-12-27 2000-06-29 Disk control system and data relocation method

Country Status (1)

Country Link
JP (1) JP3431581B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102822A (en) * 2002-09-11 2004-04-02 Toshiba Corp Disk array controller and data writing method in disk array controller
CN1306381C (en) * 2004-08-18 2007-03-21 华为技术有限公司 Read-write method for disc array data and parallel read-write method
US7216207B1 (en) 2004-03-08 2007-05-08 International Business Machines Corporation System and method for fast, secure removal of objects from disk storage
JP2010009290A (en) * 2008-06-26 2010-01-14 Fujitsu Ltd Storage system, copy control method and copy control unit
KR20140113346A (en) * 2013-03-15 2014-09-24 시게이트 테크놀로지 엘엘씨 Staging sorted data in intermediate storage
WO2016051492A1 (en) * 2014-09-30 2016-04-07 株式会社日立製作所 Database management system, database management method, and storage medium
JP2019520627A (en) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク Use of B-trees to store graph information in a database
CN111338559A (en) * 2018-12-19 2020-06-26 深圳市茁壮网络股份有限公司 Data processing method, user module, information management module and system
CN113625959A (en) * 2021-06-30 2021-11-09 济南浪潮数据技术有限公司 Data processing method and device
JP7440167B2 (en) 2020-02-19 2024-02-28 Necソリューションイノベータ株式会社 Information storage method

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102822A (en) * 2002-09-11 2004-04-02 Toshiba Corp Disk array controller and data writing method in disk array controller
US7216207B1 (en) 2004-03-08 2007-05-08 International Business Machines Corporation System and method for fast, secure removal of objects from disk storage
CN1306381C (en) * 2004-08-18 2007-03-21 华为技术有限公司 Read-write method for disc array data and parallel read-write method
JP2010009290A (en) * 2008-06-26 2010-01-14 Fujitsu Ltd Storage system, copy control method and copy control unit
KR101984782B1 (en) 2013-03-15 2019-09-03 시게이트 테크놀로지 엘엘씨 Staging sorted data in intermediate storage
KR20140113346A (en) * 2013-03-15 2014-09-24 시게이트 테크놀로지 엘엘씨 Staging sorted data in intermediate storage
WO2016051492A1 (en) * 2014-09-30 2016-04-07 株式会社日立製作所 Database management system, database management method, and storage medium
JP2019520627A (en) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク Use of B-trees to store graph information in a database
JP7153420B2 (en) 2016-05-13 2022-10-14 ティブコ ソフトウェア インク Using B-Trees to Store Graph Information in a Database
US11567999B2 (en) 2016-05-13 2023-01-31 Tibco Software Inc. Using a B-tree to store graph information in a database
CN111338559A (en) * 2018-12-19 2020-06-26 深圳市茁壮网络股份有限公司 Data processing method, user module, information management module and system
CN111338559B (en) * 2018-12-19 2023-11-10 深圳市茁壮网络股份有限公司 Data processing method, user module, information management module and system
JP7440167B2 (en) 2020-02-19 2024-02-28 Necソリューションイノベータ株式会社 Information storage method
CN113625959A (en) * 2021-06-30 2021-11-09 济南浪潮数据技术有限公司 Data processing method and device
CN113625959B (en) * 2021-06-30 2023-12-29 济南浪潮数据技术有限公司 Data processing method and device

Also Published As

Publication number Publication date
JP3431581B2 (en) 2003-07-28

Similar Documents

Publication Publication Date Title
US20220137849A1 (en) Fragment Management Method and Fragment Management Apparatus
US10140041B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
CN104246721B (en) Storage system, storage controller, and storage method
US7281089B2 (en) System and method for reorganizing data in a raid storage system
CN102436353B (en) Semiconductor memory controlling device
US6941420B2 (en) Log-structure array
US6609176B1 (en) Disk control system and data rearrangement method
US8131969B2 (en) Updating system configuration information
US20110179219A1 (en) Hybrid storage device
US10621057B2 (en) Intelligent redundant array of independent disks with resilvering beyond bandwidth of a single drive
JP2004213647A (en) Writing cache of log structure for data storage device and system
JP2009211232A (en) Memory system
US10564865B2 (en) Lockless parity management in a distributed data storage system
CN107250975A (en) Data-storage system and date storage method
WO2017149592A1 (en) Storage device
CN114610232A (en) Storage system, memory management method and management node
JP3431581B2 (en) Disk control system and data relocation method
US10474572B2 (en) Intelligent redundant array of independent disks with high performance recompaction
JP2001188658A (en) Disk control system and data rearranging method
JPH09288547A (en) Array-type storage device
JP4510107B2 (en) Memory system
US10853257B1 (en) Zero detection within sub-track compression domains
JP3785127B2 (en) Disk array control device and data writing method in disk array control device
JP3730609B2 (en) Write-through processing method, write-through processing program and disk controller for redundant logical disk
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140523

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees