JP3431581B2 - Disk control system and data relocation method - Google Patents

Disk control system and data relocation method

Info

Publication number
JP3431581B2
JP3431581B2 JP2000195895A JP2000195895A JP3431581B2 JP 3431581 B2 JP3431581 B2 JP 3431581B2 JP 2000195895 A JP2000195895 A JP 2000195895A JP 2000195895 A JP2000195895 A JP 2000195895A JP 3431581 B2 JP3431581 B2 JP 3431581B2
Authority
JP
Japan
Prior art keywords
logical
data
stripe
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.)
Expired - Fee Related
Application number
JP2000195895A
Other languages
Japanese (ja)
Other versions
JP2002014776A (en
Inventor
聡 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はディスク制御システ
ムおよびデータ再配置方法に関し、特にログ構造化書き
込み方式を用いたディスク制御システムおよび同システ
ムに適用されるデータ再配置方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention 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 used from the viewpoint of speeding up a disk and improving reliability.
Computer systems equipped with of Independent Disks) technology have become mainstream. RAID
There are 0, 1, 10, and 5 types of technology.

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

【0004】[0004]

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

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

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

【0007】[0007]

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

【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, the ratio of the number of valid logical blocks in a plurality of logical blocks constituting the logical stripe and / or the ratio of consecutive physical block numbers of adjacent logical blocks is calculated, and the rearrangement is performed based on the calculated ratio. The target logical stripe is determined. A logical stripe having a small ratio of the number of effective logical blocks cannot be expected to have a sufficient effect even if it is rearranged, and therefore such a logical stripe is preferably excluded from the rearrangement target. It also contains some valid logic blocks, and
Logical stripes with low physical block number continuity are inefficient when performing sequential reads, but the efficiency of sequential reads can be improved by making the data blocks in such logical stripes reallocation targets. .

【0009】また、本発明は、ログ構造化書き込み方式
のディスク制御システムであって、複数のディスク装置
で構成されるディスクアレイと、書き込み要求された複
数のデータブロックを蓄積するデータバッファと、前記
データバッファに蓄積された複数のデータブロックから
前記ディスクアレイの1物理ストライプ分の書き込みデ
ータを生成して、前記ディスクアレイの所定の物理スト
ライプに一括して書き込むデータ書き込み手段と、前記
ディスクアレイの論理アドレス空間を構成する複数の論
理ブロック番号とその論理ブロック番号で指定されるデ
ータブロックが存在する前記ディスクアレイ上の物理位
置を示す物理ブロック番号との対応関係を記憶するアド
レス変換テーブルと、前記ディスクアレイの論理アドレ
ス空間を1物理ストライプ分のデータブロックの個数分
のアドレス範囲毎に区切った各論理ストライプ毎に、そ
の論理ストライプ内に含まれる複数の論理ブロックに対
するデータリードの回数を計数するカウンタ手段と、
記カウンタ手段を参照して、前記データリードの回数が
所定値以上の論理ストライプを再配置対象の論理ストラ
イプとして決定する再配置対象決定手段と、前記再配置
対象決定手段により再配置が決定された前記論理ストラ
イプのデータブロックを前記ディスクアレイから前記デ
ータバッファに読み出し、前記データ書き込み手段によ
って前記ディスクアレイの空き物理ストライプ領域に書
き込むデータ再配置手段と、前記アドレス変換テーブル
の前記物理ブロック番号を前記空き物理ストライプの物
理ブロック番号に書き替えるアドレス変換テーブル書き
換え手段とを具備することを特徴とする。
The present invention is also a log-structured write type disk control system, comprising a disk array comprising a plurality of disk devices, a data buffer for accumulating a plurality of write-requested data blocks, and a plurality of data blocks stored in the data buffer to generate a physical stripe write data of the disk array, and a data writing means for writing collectively a predetermined physical stripe of the disk array, the
Multiple Theories Constituting Logical Address Space of Disk Array
Logical block number and the logical block number
Physical location on the disk array where the data block resides
Address that stores the correspondence with the physical block number
Address conversion table and the logical address of the disk array.
Space for one physical stripe worth of data blocks
For each logical stripe separated by
For multiple logical blocks contained within
Counter means for counting the number of data reads performed, relocation target determining means for determining a logical stripe having the number of data reads of a predetermined value or more as a logical stripe to be relocated, by referring to the counter means, A data relocation unit that reads the data block of the logical stripe whose relocation is determined by the relocation target determination unit from the disk array to the data buffer, and writes the data block in an empty physical stripe area of the disk array by the data writing unit; An address conversion table rewriting unit for rewriting the physical block number of the address conversion table to the physical block number of the empty physical stripe.

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

【0011】また、本発明は、ログ構造化書き込み方式
のディスク制御システムであって、複数のディスク装置
で構成されるディスクアレイと、書き込み要求された複
数のデータブロックを蓄積するデータバッファと、前記
データバッファに蓄積された複数のデータブロックから
前記ディスクアレイの1物理ストライプ分の書き込みデ
ータを生成して、前記ディスクアレイの所定の物理スト
ライプに一括して書き込むデータ書き込み手段と、前記
ディスクアレイの論理アドレス空間を構成する複数の論
理ブロック番号とその論理ブロック番号で指定されるデ
ータブロックが存在する前記ディスクアレイ上の物理位
置を示す物理ブロック番号との対応関係を記憶するアド
レス変換テーブルと、前記ディスクアレイの論理アドレ
ス空間を1物理ストライプ分のデータブロックの個数分
のアドレス範囲毎に区切った各論理ストライプ毎に、そ
の論理ストライプ内に含まれる複数の論理ブロックに対
するデータ書き込み回数を計数するカウンタ手段と、
記カウンタ手段を参照して、前記データ書き込み回数が
所定値以上の論理ストライプを再配置対象の論理ストラ
イプとして決定する再配置対象決定手段と、前記再配置
対象決定手段により再配置が決定された前記論理ストラ
イプのデータブロックを前記ディスクアレイから前記デ
ータバッファに読み出し、前記データ書き込み手段によ
って前記ディスクアレイの空き物理ストライプ領域に書
き込むデータ再配置手段と、前記アドレス変換テーブル
の前記物理ブロック番号を前記空き物理ストライプの物
理ブロック番号に書き替えるアドレス変換テーブル書き
換え手段とを具備することを特徴とする。
The present invention is also a log structured write type disk control system, comprising a disk array composed of a plurality of disk devices, a data buffer for accumulating a plurality of write-requested data blocks, and a plurality of data blocks stored in the data buffer to generate a physical stripe write data of the disk array, and a data writing means for writing collectively a predetermined physical stripe of the disk array, the
Multiple Theories Constituting Logical Address Space of Disk Array
Logical block number and the logical block number
Physical location on the disk array where the data block resides
Address that stores the correspondence with the physical block number
Address conversion table and the logical address of the disk array.
Space for one physical stripe worth of data blocks
For each logical stripe separated by
For multiple logical blocks contained within
Counter means for counting the number of times of data writing, relocation target determining means for determining a logical stripe having the data writing frequency of a predetermined value or more as a logical stripe to be relocated by referring to the counter means, and the relocation Data relocation means for reading the data block of the logical stripe whose relocation is decided by the object deciding means from the disk array to the data buffer, and writing it to an empty physical stripe area of the disk array by the data writing means, and the address. And an address conversion table rewriting unit for rewriting the physical block number of the conversion table to the physical block number of the empty physical stripe.

【0012】論理ストライプは、それを構成する論理ブ
ロックに対して書き込みが行われると、物理的に不連続
になる可能性が生じる。よって、再配置対象の論理スト
ライプを決定するための処理を、データ書き込み回数が
所定値以上の論理ストライプに対して行うことにより、
効率よくシーケンシャルアクセスの性能を高めることが
可能となる。
A logical stripe may become physically discontinuous when a logical block forming the logical stripe is written. Therefore, by performing the process for determining the logical stripe to be relocated to the logical stripes for which the number of data writes is equal to or greater than the 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)、実行対象のアプリケーシ
ョンプログラム、およびドライバなどがロードされる。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows the 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
It is used as a server) and has 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 processor bus 1 and PCI
It is a bridge LSI for connecting the bus 2 bidirectionally, and a memory controller for controlling the main memory 13 is also incorporated therein. An operating system (OS), application programs to be executed, drivers, and the like are loaded in the main memory 13.

【0014】PCIバス2には、図示のように、RAI
Dコントローラ16、および不揮発性メモリ17が接続
されている。RAIDコントローラ16によって制御さ
れるディスクアレイ18は、各種ユーザデータ等の記録
等に用いられる。
The PCI bus 2 is connected to the RAI as shown in the figure.
The D controller 16 and the non-volatile 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台のディスク装置はグループ化
され、単一の論理ディスクドライブとして使用される。
Under the control of the RAID controller 16, the disk array 18 functions as a disk array having a RAID5 configuration, for example. In this case, the disk array 18
Is N + 1 units (here, one disk unit for parity storage is added to N disk units for data storage).
It is composed of five disk devices (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 in the figure, the grouped disk devices have data (DATA) and its parity (PAR).
PHY) and a physical stripe (parity group) each composed of TY), 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
The parity (PA) of the data (DATA) group on the stripe unit allocated to the same position of each ISK3
RITY) is recorded on the corresponding stripe unit of DISK4. In the next physical stripe S1, the parity (PARTY) corresponding to the data of the stripe S1 is recorded on the corresponding stripe unit of DISK3. By thus distributing the parity in N + 1 disk devices in units of physical stripes, it is possible to prevent the concentration of access 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 implementing a log structured file system (LSFS), and is a battery backed up DRA.
It is composed of M or flash EEPROM. Log Structured File System (LSFS) is R
It is used to improve the writing performance for the disk array 18 having the AID5 configuration. In the present embodiment, the file system of the OS is not improved, and the log structured file system (LS) is configured by the driver program and the non-volatile memory 17 incorporated in the OS.
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 write method using the technology, the write data position is not sequentially determined according to the logical address write requested by the host (OS file system in this embodiment), but the write data is sequentially accumulated in the order in which the write request is made by the host. By doing so, a large data block composed of a plurality of blocks of write data is configured, and the large data block is collectively "written" in order from the top in the empty area of the disk array 18. The unit of "bulk writing" is a physical stripe. That is, one empty physical stripe is generated every "bulk writing", 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)を実現するためのドライバプログラムであ
る。
In FIG. 2, the block data size of the write data sent via the OS file system is 2 KB, and the data size of one stripe unit is 64 K.
In this example, 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 acceleration driver 100 used by being incorporated in the OS and is stored in the non-volatile memory 17. RAID
The speed-up 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, at the time when a data block of 256 KB (2 KB × 128 data blocks) is accumulated in the non-volatile memory 17, one physical unit of the disk array 18 is controlled under the control of the RAID acceleration driver 100. Writing to stripes is performed at once. In this case, since the RAID controller 16 can generate the parity from only the write data block of 256 KB, it is not necessary to perform processing such as reading old data for the parity calculation, and the well-known write penalty of RAID 5 can be reduced. it can.

【0021】不揮発性メモリ17には、図1に示されて
いるように、ログメモリ(まとめ書きバッファ)17
1、アドレス変換テーブル172、論理ストライプ管理
テーブル173などが搭載されており、メモリ制御部
(図示せず)によってアクセス制御される。
The non-volatile memory 17 includes a log memory (collective writing buffer) 17 as shown in FIG.
1, an address conversion table 172, a logical stripe management table 173, etc. are mounted, and access control is performed 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 accumulating write data blocks. When the write data blocks for one physical stripe are accumulated in the log memory 171, batch writing to the disk array 18 is started. It That is, the physical stripe is a unit of “collective writing”, and is composed of a continuous continuous area on the partition created 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 is the LSFS.
Correspondence between each of a plurality of logical block numbers forming a logical address space of a partition used as a partition and a physical block number indicating a physical position on the disk array 18 in which a data block designated by these logical block numbers exists. Is stored.
Here, the logical block number is the number of the logical block on the disk partition as viewed from the OS file system. The block number when the OS file system requests access is a logical block number, which is a virtual logical address. This logical block number is associated with the physical block number (physical block number on the disk partition) by the address conversion table 172. The byte offset value from the head position of the disk partition is obtained by the physical block number × block size (bytes).

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

【0025】論理ストライプ管理テーブル173は、各
論理ストライプに関する情報を管理するためのものであ
り、それら各論理ストライプの情報はデータ再配置のた
めの処理などに利用される。ここで、論理ストライプと
は、ディスクパーティションの論理アドレス空間を先頭
から1物理ストライプ分のデータブロック個数ごとに区
切った場合の論理ブロックの集合である。例えば、1物
理ストライプが10個の物理ブロックを含む場合には、
1論理ストライプも10個の論理ブロックを含むことに
なる。
The logical stripe management table 173 is for managing information about 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 in which the logical address space of the disk partition is divided into data blocks of one physical stripe from the beginning. For example, when one physical stripe includes 10 physical blocks,
One logical stripe will also include 10 logical blocks.

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

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

【0028】図3のアドレス変換テーブル172は物理
ストライプ(論理ストライプも)が10個のデータブロ
ックから成る場合を想定している。アドレス変換テーブ
ル172は論理ブロック番号をインデックスとする多数
のエントリを含んでおり、各エントリには物理ブロック
番号が登録されている。「−」は、無効なブロック(ま
だデータが1度も書き込まれていないブロック)である
ことを示す。
The address conversion table 172 of FIG. 3 assumes that the physical stripe (also the logical stripe) consists of 10 data blocks. The address conversion table 172 includes a large number of entries with the logical block number as an index, and the physical block number is registered in each entry. "-" Indicates an invalid block (a block in which data has not 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 10 logical blocks from the top. For example, logical stripe 0 consists of 10 logical blocks with logical block numbers 0 to 9,
Logical stripe 1 is 1 of logical block numbers 10 to 19
It consists of 0 logical blocks. That is, when one physical stripe and one logical stripe each consist of 10 data blocks, the following relationship holds: logical stripe number = logical block number / 10 physical stripe number = physical block number / 10. However, in the above, “/” indicates division of an integer (rounding down after 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 the logical stripe 0, the data block having the logical block number 0 is the physical block number 30.
Similarly, the data block with the logical block number 1 is stored in (the first data block of the physical stripe 3), and the data block with the logical block number 2 is the physical block with the physical block number 31 (the second data block of the physical stripe 3). It can be seen that the data block with the number 32 (the third data block of the physical stripe 3) and the data block with the logical block number 3 are stored with the physical block number 33 (the fourth data block of the physical stripe 3). Further, the 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,
Reference numerals 5 and 9 are invalid blocks.

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

【0032】(α、βの計算例)ここで、α、βの計算
例について説明する。図3において、論理ストライプ0
に着目すると、有効ブロック数は7であるので、論理ス
トライプ0のαは、 α=7/10×100=70% で算出される。このαの値は対象の論理ストライプの容
量使用率を示す。値が小さいほど書き込まれていないブ
ロックが多く、リパック対象から除外すべき(リパック
しても並べ変えるべきブロックが少なく効果が期待でき
ない)と判断できる。
(Calculation Example of α and β) Here, a calculation example of α and β will be described. In FIG. 3, logical stripe 0
With respect to, 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. It can be judged that the smaller the value is, the more blocks are not written, and that the blocks should be excluded from the repacking target (there are few blocks to be rearranged even if 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 consecutive,
The physical block numbers of the logical blocks 6 and 7 are consecutive. Therefore, among the nine block boundaries, four boundaries 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 repacking should be performed for each logical stripe by using "repack target when α is larger than a fixed value A and β is a fixed value B or less" (condition 1) To determine. Where A = 50%,
B = 50%.

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

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

【0038】(リパック制御処理の手順)以下、図4の
フローチャートを参照して、リパック制御処理の手順に
ついて説明する。このリパック制御処理は、RAID高
速化ドライバ100によって行われる。
(Procedure of Repack Control Processing) The procedure of the repack control processing will be described below with reference to the flowchart of FIG. This repack 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 the order of indexes to check the value of the corresponding physical block number (step S11). Then, the logical stripes with smaller values are selected in order (step S12), and the following "repack target stripe selection processing & repack processing (* 1)" is executed for the selected logical stripes.

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

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

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

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

【0044】図6および図7には、図3の論理ストライ
プ3をリパック処理した結果の一例が示されている。図
6は論理ストライプ3に関するリパック前及びリパック
後のアドレス変換テーブル172の内容を示しており、
また図7は論理ストライプ3に関するリパック前及びリ
パック後の物理ストライプ上のデータブロックの並びの
様子を示している。
6 and 7 show an example of the result of repacking the logical stripe 3 shown in FIG. FIG. 6 shows the contents of the address conversion table 172 before and after repacking regarding the logical stripe 3.
Further, FIG. 7 shows how data blocks are arranged on the physical stripe before and after repacking regarding 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 valid blocks (logical block numbers 30, 3
, ... 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 continuously read in this state, the three physical stripes 6, 11, 15 which are distant from each other are actually accessed, which is inefficient. Repacking is performed on this logical stripe 3. Now, an empty physical stripe 1 on the disk array 18
Assuming that 0 is selected, the data of all valid blocks of the logical stripe 3 will have three physical stripes 6,1.
1, 15 are read to the log memory 171 and are collectively written in the physical stripe 10. in this case,
In the physical stripe 10, all nine effective blocks are arranged in order of logical block number (30, 31, ... 38). In accordance with this, in the address conversion table 172, the physical block numbers of the nine effective blocks (logical block numbers 30, 31, ... 38) in the logical stripe 3 are updated (100, 10).
1, ... 108). By this repacking process, when the logical blocks 30 to 38 are continuously read, only the access within the physical stripe 10 is made and efficient access is realized. As a result, the sequential read performance can be improved.

【0046】また、このようにリパック対象の論理スト
ライプ毎に新しい物理ストライプを生成し、そこにリパ
ック対象の論理ストライプに含まれるデータブロックを
論理ブロック番号順に並べて配置する事により、リパッ
ク処理を繰り返すことにより、物理的なデータの並びが
論理的なデータの並びに近づくようになる。さらに、論
理ストライプ単位でも物理的に連続するように配置すれ
ば、物理ストライプ境界においてもデータブロックの連
続性を実現することが可能となる。なお、リパック処理
において、論理ブロック番号順に並べることが最も好ま
しいが、リパック対象の論理ストライプに属するデータ
ブロック全てを同一の物理ストライプに収容するだけで
も、リード性能を高めることができることはもちろんで
ある。
In this way, 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 in the logical block number order to repeat the repacking process. As a result, the physical data arrangement comes closer to the logical data arrangement. Further, if the logical stripe units are arranged so as to be physically continuous, the continuity of the data blocks can be realized even at the physical stripe boundary. In the repacking process, it is most preferable to arrange the blocks in the order of the logical block numbers, but it goes without saying that the read performance can be improved by accommodating all the data blocks belonging to the logical stripe to be repacked in the same physical stripe.

【0047】また、「βが一定値以下の場合に、リパッ
ク対象とする」という条件を追加し、βのみから、リパ
ック対象の論理ストライプを選択しても良い。
It is also possible to add a condition that "if β is equal to or less than a predetermined value, subject to repacking", and select a logical stripe subject to repacking only from β.

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

【0049】図8はデータブロックリード時にRAID
高速化ドライバ100によって実行される処理手順を示
すフローチャートである。ここでは、論理ストライプ毎
にリード参照カウンタを用意し、そのリード参照カウン
タを用いて各論理ストライプのリード参照回数を管理す
る場合を想定する。Referenced_Strip
e_Table[ ]が「リード参照カウンタ」のテー
ブルであり、論理ストライプ番号をインデックスとし
て、「リード参照カウンタ値」を値として持つ。パーテ
ィション生成時には0で初期化する。
FIG. 8 shows a RAID when reading a data block.
7 is a flowchart showing a processing procedure executed by the speed-up driver 100. Here, it is assumed that a read reference counter is prepared for each logical stripe, and that the read reference counter is used to manage the read reference count of each logical stripe. 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. Initialized with 0 when a partition is created.

【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 it belongs is obtained from the logical block number requested to be read by the file system of the OS (step S21). If the logical block number of the read target 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_Str
“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 by referring to the address conversion table 172 (step S23), and the physical position on the disk partition designated by the disk address given by Pn × block size. Then, the corresponding data block is read out through the RAID controller 16 (step S24).

【0052】図9はリパック処理時にRAID高速ドラ
イバ100によって実行される処理のフローチャートで
ある。図4ではアドレス変換テーブル172の内容をイ
ンデックスの順番に参照していたが、ここでは、Ref
erenced_Stripe_Table[ ]を使
い、リード参照回数が多い論理ストライプに対して前述
のα,βを用いた「リパック対象ストライプ選択処理」
が行われる。
FIG. 9 is a flowchart of the processing executed by the RAID high speed driver 100 during the repack processing. 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 β described above for a logical stripe having a large number of read references, using erased_Stripe_Table [].
Is done.

【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 process of selecting the stripes to be repacked from the logical stripe with the largest read reference counter value is performed (step S31). . In step S31, the new array A
[] Is created. Each entry in the array A [] has two members, Logical_Stripe_ID, and R.
It consists of the Efence_Count and is written in C language as 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 [] index), and A []. Reference
_Count indicates the number of read references. Referen
By sorting the values registered in ced_Stripe_Table [], "read reference counter"
The value and the number of the logical stripe are set in the two members of the array A in descending order of the value of.

【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 of registration in the array A [], and the read reference counter "A [] .R.
As long as there is a logical stripe in which the "reference_Count" is equal to or more than the constant value C, the "repack target stripe selection process & repack process (process of * 1 in FIG. 4)" is performed. That is, first, with n = 0, the logical stripe (L0 = A [0].
Pay attention to _Stripe_ID (steps S32, S
33), the read reference count (A [0] .Refe
It is determined whether or not (rence_Count) is less than or equal to a constant value C (step S34). If the read reference count is larger than the fixed value C, the above-mentioned repack target stripe selection processing and repack processing based on α and β is executed (step S35). The read reference counter of the relevant logical stripe is cleared to 0 during the repacking target stripe selection processing regardless of whether it is selected as the repacking processing target (step S36).

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

【0056】リード参照カウンタ「A[n].Refe
rence_Count」が一定値C以下の論理ストラ
イプが出現した時点で(ステップS34のYES)、処
理が終了される。よって、リード参照回数の多い論理ス
トライプを優先してリパック対象にする事ができる。ま
たリード参照カウンタ「A[ ].Reference
_Count」が一定値C以上の論理ストライプに対し
てのみリパック対象ストライプ選択処理」を行えばよい
ので、その処理に要する負荷を低減することが可能とな
る。
Read reference counter "A [n] .Refe"
When a logical stripe whose “rance_Count” is equal to or smaller than the constant value C appears (YES in step S34), the process ends. Therefore, it is possible to give priority to the repacking target by giving priority to a logical stripe having a large number of read references. In addition, 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 constant value C, it is possible to reduce the load required for the process.

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

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

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

【0060】図10に示すように、ログメモリ171に
1物理ストライプ分のデータブロックが蓄積されると、
その1物理ストライプ分のデータブロックが書き込み対
象の物理ストライプに一括して書き込まれる(ステップ
S41)。次いで、ライトしたデータブロック毎にそれ
が属する論理ストライプ番号Lが求められる(ステップ
S42)。各データブロックの論理ブロック番号をV
n、論理ストライプ内のブロック総数をNbとすると、
論理ストライプ番号Lは、 L=Vn/Nb で与えられる。
As shown in FIG. 10, when one physical stripe worth of data blocks are accumulated in the log memory 171,
The data blocks for one physical stripe are collectively written to the physical stripe to be written (step S41). Next, for each written data block, the logical stripe number L to which it 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は物
理ストライプ中の全ブロックに対して実行される。
After this, Modified_Stripe
As _Table [L] ++, the “write number counter” of the logical stripe to which the target logical block belongs is incremented (step S43). After that, as a part of the normal write processing, the physical block number Pn actually written is set to the entry of the address conversion table 172 corresponding to the logical block number Vn for each written data block ( Step S44). Note that 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 the processing executed by the RAID high speed driver 100 during the repack processing. In FIG. 4, the contents of the address conversion table 172 are referred to in the order of the index.
The "repack target stripe selection process" using α and β described above is performed for a logical stripe that has been written many times using defined_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 with the largest write count counter value (step S51). In step S51, the new array A
[] Is created. Each entry in array A [] has two members, Logical_Stripe_ID, and M.
composed of modified_Count, and written in C language, A []. Logical_Stripe_ID A []. It is represented as Modified_Count. A []. Logical_Str
ipe_ID is a logical stripe number (Modified
_Stripe_Table [] index), and A []. Modified_Co
unt indicates the number of times of writing. Modified_St
By sorting the values registered in the ripe_Table [], the value and the number of the logical stripe are set in the two members of the array A in descending order of the value of the "write number counter".

【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 of registration in the array A [], and the write count counter "A [].
As long as there is a logical stripe whose Modified_Count is equal to or larger than the constant value D, the “repack target stripe selection process & repack process (process * 1 in FIG. 4)” is performed. That is, first, with n = 0, the logical stripe (L0 = A [0] .Logical_
Pay attention to the Stripe_ID (steps S52 and S5)
3), the write counter (A [0] .Modi
It is determined whether (fied_Count) is equal to or less than the constant value D (step S54). When the number of times of writing is larger than the constant value D, the above-mentioned repacking target stripe selection processing & repacking processing based on α and β is executed (step S55). Regardless of whether it is selected as the repack processing target, the write count counter of the corresponding logical stripe is cleared to 0 during the repack 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, the logical stripe with the second largest number of writes (L1 = A [1] .Logic)
Pay attention to al_Stripe_ID) (step S5)
7, S58, S53), and the write count (A
[1]. It is determined whether Modified_Count) is equal to or less than the constant value D (step S54).

【0066】書き込み回数カウンタ「A[n].Mod
ified_Count」が一定値D以下の論理ストラ
イプが出現した時点で(ステップS54のYES)、処
理が終了される。よって、書き込み回数の多い論理スト
ライプを優先してリパック対象にする事ができる。また
書き込みカウンタ「A[ ].Modified_Co
unt」が一定値D以上の論理ストライプに対してのみ
リパック対象ストライプ選択処理」を行えばよいので、
その処理に要する負荷を低減することが可能となる。
Write counter "A [n] .Mod
The process ends when a logical stripe in which "if_Count" is equal to or smaller than the constant value D appears (YES in step S54). Therefore, it is possible to give priority to a repacking target by giving priority to a logical stripe that has been written many times. In addition, the write counter “A []. Modified_Co
Since the "repack target stripe selection processing" is performed only for the logical stripes whose "unt" is equal to or greater than the constant value D,
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 preferentially performed in consideration of the read reference count value and the write count value. Although the logical stripe is determined, the logical stripe to be repacked is determined only by controlling the read reference count value and the write count value, or both the read reference count value and the write count value are used. Even when the logical stripe to be repacked is determined by the above method, a sufficient effect can be obtained.

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

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

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

【0071】[0071]

【発明の効果】以上説明したように、本発明によれば、
効率よくデータの並べ替え処理を行えるようになり、少
ない負荷で、読み出し性能の向上を図ることが可能とな
る。特に、有効ブロック数の割合と、論理ブロック番号
が隣り合うブロックの物理ブロック番号が連続している
割合とを使用することにより、並べ替えが必要な論理ス
トライプを効率よく選定することができる。
As described above, according to the present invention,
The data rearrangement process can be efficiently performed, and the 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 consecutive physical block numbers of blocks having adjacent logical block numbers, it is possible to efficiently select a logical stripe that needs rearrangement.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Claims (14)

(57)【特許請求の範囲】(57) [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 write-requested data blocks; and a storage in the data buffer. A data writing unit that generates write data for one physical stripe of the disk array from the plurality of created data blocks and collectively writes the write data to a predetermined physical stripe of the disk array, and a logical stripe of the disk array. An address conversion table that stores, for each logical stripe, the correspondence between a plurality of logical block numbers and a physical block number that indicates the 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 adjacent physical block numbers is calculated, and if the result satisfies a predetermined condition, it is determined as the logical stripe to be relocated. Relocation target determining means, the data block of the logical stripe whose relocation is determined by the relocation target determining means is read from the disk array into the data buffer, and the data writing means reads an empty physical stripe area of the disk array. A disk control system, comprising: a data rearrangement unit for writing the data into the disk; and an address conversion table rewriting unit for rewriting the physical block number of the address conversion table to the physical block number of the free physical stripe.
【請求項2】 前記再配置対象決定手段は、前記有効な
論理ブロックの割合が所定値よりも大きく、且つ前記隣
り合う物理ブロック番号が連続している割合が所定値以
下の論理ストライプを、再配置対象として条件決定する
ことを特徴とする請求項1記載のディスク制御システ
ム。
2. The relocation target determining unit relocates a logical stripe in which a ratio of the valid logical blocks is larger than a predetermined value and a ratio of the adjacent physical block numbers is a predetermined value or less. The disk control system according to claim 1, wherein conditions are determined as an arrangement target.
【請求項3】 ログ構造化書き込み方式のディスク制御
システムであって、 複数のディスク装置で構成されるディスクアレイと、 書き込み要求された複数のデータブロックを蓄積するデ
ータバッファと、 前記データバッファに蓄積された複数のデータブロック
から前記ディスクアレイの1物理ストライプ分の書き込
みデータを生成して、前記ディスクアレイの所定の物理
ストライプに一括して書き込むデータ書き込み手段と、前記ディスクアレイの論理アドレス空間を構成する複数
の論理ブロック番号とその論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を記憶する
アドレス変換テーブルと、 前記ディスクアレイの論理アドレス空間を1物理ストラ
イプ分のデータブロックの個数分のアドレス範囲毎に区
切った各論理ストライプ毎に、その論理ストライプ内に
含まれる複数の論理ブロックに対するデータリードの回
数を計数するカウンタ手段と、 前記カウンタ手段を参照して、前記データリードの回数
が所定値以上の論理ストライプを再配置対象の論理スト
ライプとして決定する再配置対象決定手段と、 前記再配置対象決定手段により再配置が決定された前記
論理ストライプのデータブロックを前記ディスクアレイ
から前記データバッファに読み出し、前記データ書き込
み手段によって前記ディスクアレイの空き物理ストライ
プ領域に書き込むデータ再配置手段と、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き替える
アドレス変換テーブル書き換え手段と、 を具備することを特徴とするディスク制御システム。
3. A log-structured write-type disk control system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of write-requested data blocks; and a storage in the data buffer. A data writing unit that generates write data for one physical stripe of the disk array from the plurality of data blocks that are written and collectively writes the write data to a predetermined physical stripe of the disk array, and a logical address space of the disk array. Multiple
Specified by the logical block number of
Object on the disk array where there is a data block
Store the correspondence with the physical block number that indicates the physical location
The address conversion table and the logical address space of the disk array are stored in one physical strut.
Type for each address range of the number of data blocks
For each logical stripe you cut, within that logical stripe
Data read times for multiple contained logical blocks
A counter unit for counting the number, a rearrangement target determining unit for determining, with reference to the counter unit, a logical stripe in which the number of times of data reading is a predetermined value or more as a logical stripe to be rearranged; Data relocation means for reading the data block of the logical stripe whose relocation is determined by the means from the disk array to the data buffer, and writing the data block in the free physical stripe area of the disk array by the data writing means; and the address translation table. And an address conversion table rewriting means for rewriting the physical block number of the physical block number of the free physical stripe.
【請求項4】 ログ構造化書き込み方式のディスク制御
システムであって、 複数のディスク装置で構成されるディスクアレイと、 書き込み要求された複数のデータブロックを蓄積するデ
ータバッファと、 前記データバッファに蓄積された複数のデータブロック
から前記ディスクアレイの1物理ストライプ分の書き込
みデータを生成して、前記ディスクアレイの所定の物理
ストライプに一括して書き込むデータ書き込み手段と、前記ディスクアレイの論理アドレス空間を構成する複数
の論理ブロック番号とその論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を記憶する
アドレス変換テ ーブルと、 前記ディスクアレイの論理アドレス空間を1物理ストラ
イプ分のデータブロックの個数分のアドレス範囲毎に区
切った各論理ストライプ毎に、その論理ストライプ内に
含まれる複数の論理ブロックに対するデータ書き込み回
数を計数するカウンタ手段と、 前記カウンタ手段を参照して、前記データ書き込み回数
が所定値以上の論理ストライプを再配置対象の論理スト
ライプとして決定する再配置対象決定手段と、 前記再配置対象決定手段により再配置が決定された前記
論理ストライプのデータブロックを前記ディスクアレイ
から前記データバッファに読み出し、前記データ書き込
み手段によって前記ディスクアレイの空き物理ストライ
プ領域に書き込むデータ再配置手段と、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き替える
アドレス変換テーブル書き換え手段と、 を具備することを特徴とするディスク制御システム。
4. A log-structured write-type disk control system, comprising: a disk array composed of a plurality of disk devices; a data buffer for storing a plurality of write-requested data blocks; and a storage in the data buffer. A data writing unit that generates write data for one physical stripe of the disk array from the plurality of data blocks that are written and collectively writes the write data to a predetermined physical stripe of the disk array, and a logical address space of the disk array. Multiple
Specified by the logical block number of
Object on the disk array where there is a data block
Store the correspondence with the physical block number that indicates the physical location
Address translation tables, one physical Stora logical address space of the disk array
Type for each address range of the number of data blocks
For each logical stripe you cut, within that logical stripe
Data write times for multiple contained logical blocks
A counter unit that counts the number, a relocation target determination unit that refers to the counter unit, and determines a logical stripe whose data write count is a predetermined value or more as a logical stripe that is a relocation target; and the relocation target determination unit. The data block of the logical stripe whose relocation has been determined by the data array is read from the disk array to the data buffer, and written in the free physical stripe area of the disk array by the data writing means; A disk control system comprising: an address conversion table rewriting unit that rewrites the physical block number to the physical block number of the free physical stripe.
【請求項5】 前記再配置対象決定手段は、前記アドレ
ス変換テーブルを参照して、前記論理ストライプ内にお
ける有効論理ブロック数の割合および/または隣り合う
物理ブロック番号が連続している割合を算出して、その
結果が所定の条件を満たす場合に、再配置対象の論理ス
トライプとして決定する手段を併せ持つことを特徴とす
る請求項3または請求項4記載のディスク制御システ
ム。
5. The relocation target determining means refers to the address conversion table to calculate a ratio of the number of valid logical blocks in the logical stripe and / or a ratio of consecutive adjacent physical block numbers. 5. The disk control system according to claim 3, further comprising means for determining a logical stripe to be relocated if the result satisfies a predetermined condition.
【請求項6】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、 前記ディスクアレイの論理ストライプを構成する複数の
論理ブロック番号と、その論理ブロック番号のデータブ
ロックが書き込まれる前記ディスクアレイ上の物理位置
を示す物理ブロック番号との対応関係を示すアドレス変
換テーブルを各論理ストライプ毎に生成するステップ
と、 前記アドレス変換テーブルを参照して、前記論理ストラ
イプ内における有効論理ブロック数の割合および/また
は隣り合う物理ブロック番号が連続している割合を算出
して、その結果が所定の条件を満たす場合に、再配置対
象の論理ストライプとして決定するステップと、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記データ再配置に伴って、前記アドレス変換テーブル
の前記物理ブロック番号を前記空き物理ストライプの物
理ブロック番号に書き換えるステップと、 を具備することを特徴とするデータ再配置方法。
6. A data rearrangement method for rearranging a data block stored in a disk array composed of a plurality of disk devices, wherein a plurality of write-requested data blocks are stored in a data buffer. Generating write data for one physical stripe of the disk array from the plurality of data blocks accumulated in the data buffer and writing the write data to a predetermined physical stripe of the disk array at once; For each logical stripe, an address conversion table showing a correspondence relationship between a plurality of logical block numbers forming a logical stripe of the array and a physical block number indicating a physical position on the disk array in which the data block of the logical block number is written is provided. And the step of generating By referring to the replacement table, the ratio of the number of valid logical blocks in the logical stripe and / or the ratio of consecutive adjacent physical block numbers is calculated, and when the result satisfies a predetermined condition, relocation is performed. The step of determining the target logical stripe, the data block of the logical stripe determined to be relocated is read from the disk array to the data buffer, and is written to the free physical stripe area of the disk array by the batch writing step to write data. A data relocation method comprising: a relocation step; and a step of rewriting the physical block number of the address conversion table to a physical block number of the empty physical stripe in association with the data relocation. .
【請求項7】 前記有効な論理ブロックの割合が所定値
よりも大きく、且つ前記隣り合う物理ブロック番号が連
続している割合が所定値以下の論理ストライプを、再配
置対象として条件決定することを特徴とする請求項
載のデータ再配置方法。
7. A logical stripe in which the ratio of the valid logical blocks is larger than a predetermined value and the ratio in which the adjacent physical block numbers are continuous is a predetermined value or less is conditionally determined as a relocation target. The data rearrangement method according to claim 6, characterized in that
【請求項8】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、前記ディスクアレイの論理アドレス空間を構成する複数
の論理ブロック番号とその論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を記憶する
アドレス変換テーブルを 生成するステップと、前記ディスクアレイの論理アドレス空間を1物理ストラ
イプ分のデータブロックの個数分のアドレス範囲毎に区
切った各論理ストライプ毎に、その論理ストラ イプ内に
含まれる複数の論理ブロックに対するデータリードの回
数を計数する ステップと、 前記データリードの回数が所定値以上の論理ストライプ
を再配置対象の論理ストライプとして決定するステップ
と、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き換える
ステップと、 を具備することを特徴とするデータ再配置方法。
8. A data rearrangement method for rearranging a data block stored in a disk array configured by a plurality of disk devices, wherein a plurality of write-requested data blocks are stored in a data buffer. step a, from said stored plurality of data blocks in the data buffer to generate a physical stripe write data of the disk array, and writing collectively a predetermined physical stripe of the disk array, said disk Multiples that make up the logical address space of the array
Specified by the logical block number of
Object on the disk array where there is a data block
Store the correspondence with the physical block number that indicates the physical location
The step of generating an address conversion table and the logical address space of the disk array are stored in one physical stream.
Type for each address range of the number of data blocks
For each logical stripes cut, to its logical Stra in the type
Data read times for multiple contained logical blocks
Counting the number, determining a logical stripe in which the number of times of data read is a predetermined value or more as a logical stripe to be relocated, and relocating the data block of the logical stripe determined to be relocated from the disk array. Reading to a data buffer, writing to a free physical stripe area of the disk array by the batch writing step to relocate data, and rewriting the physical block number of the address conversion table to a physical block number of the free physical stripe And a data rearrangement method comprising:
【請求項9】 複数のディスク装置で構成されるディス
クアレイに記憶されたデータブロックの再配置を行うた
めのデータ再配置方法であって、 データバッファに書き込み要求された複数のデータブロ
ックを蓄積するステップと、 前記データバッファに蓄積された前記複数のデータブロ
ックから前記ディスクアレイの1物理ストライプ分の書
き込みデータを生成して、前記ディスクアレイの所定の
物理ストライプに一括して書き込むステップと、前記ディスクアレイの論理アドレス空間を構成する複数
の論理ブロック番号とその論理ブロック番号で指定され
るデータブロックが存在する前記ディスクアレイ上の物
理位置を示す物理ブロック番号との対応関係を記憶する
アドレス変換テーブルを 生成するステップと、前記ディスクアレイの論理アドレス空間を1物理ストラ
イプ分のデータブロックの個数分のアドレス範囲毎に区
切った各論理ストライプ毎に、その論理ストライプ内に
含まれる複数の論理ブロックに対するデータ書き込み回
数を計数する ステップと、 前記データ書き込み回数が所定値以上の論理ストライプ
を再配置対象の論理ストライプとして決定するステップ
と、 再配置が決定された前記論理ストライプのデータブロッ
クを前記ディスクアレイから前記データバッファに読み
出し、前記一括書き込みステップによって前記ディスク
アレイの空き物理ストライプ領域に書き込んでデータ再
配置を行うステップと、 前記アドレス変換テーブルの前記物理ブロック番号を前
記空き物理ストライプの物理ブロック番号に書き換える
ステップと、 を具備することを特徴とするデータ再配置方法。
9. A data relocation method for relocating a data block stored in a disk array composed of a plurality of disk devices, wherein a plurality of write-requested data blocks are stored in a data buffer. step a, from said stored plurality of data blocks in the data buffer to generate a physical stripe write data of the disk array, and writing collectively a predetermined physical stripe of the disk array, said disk Multiples that make up the logical address space of the array
Specified by the logical block number of
Object on the disk array where there is a data block
Store the correspondence with the physical block number that indicates the physical location
The step of generating an address conversion table and the logical address space of the disk array are stored in one physical stream.
Type for each address range of the number of data blocks
For each logical stripe you cut, within that logical stripe
Data write times for multiple contained logical blocks
Counting the number of data, the step of determining a logical stripe whose data write count is a predetermined value or more as a logical stripe to be relocated, and the data block of the logical stripe whose relocation is determined from the disk array. Reading to a buffer, writing to a free physical stripe area of the disk array by the batch writing step to relocate data, and rewriting the physical block number of the address translation table to the physical block number of the free physical stripe. A data rearrangement method comprising:
【請求項10】 再配置対象の論理ストライプを決定す
るステップに、前記アドレス変換テーブルを参照して、
前記論理ストライプ内における有効論理ブロック数の割
合および/または隣り合う物理ブロック番号が連続して
いる割合を算出して、その結果が所定の条件を満たす場
合に、再配置対象の論理ストライプとして決定するステ
ップを併せ持つことを特徴とする請求項8または請求項
9記載のデータ再配置方法。
10. In the step of determining a logical stripe to be relocated, the address translation table is referred to,
The ratio of the number of valid logical blocks in the logical stripe and / or the ratio of consecutive adjacent physical block numbers is calculated, and if the result satisfies a predetermined condition, the logical stripe to be relocated is determined. The data rearrangement method according to claim 8 or 9, further comprising steps.
【請求項11】 前記各論理ストライプ毎に、そこに含
まれる論理ブロックに対するデータリードの回数を計数
するカウンタ手段をさらに具備し、 前記再配置対象決定手段は、前記データリードの回数が
所定値以上の論理ストライプに対して優先的に前記再配
置対象の論理ストライプを決定するための処理を実行す
ることを特徴とする請求項1記載のディスク制御システ
ム。
11. For each logical stripe, a logical stripe is included therein.
Counts the number of data reads for each logical block
Further comprising counter means for controlling the rearrangement target determining means for determining the number of data reads.
The redistribute is given priority to the logical stripes with a predetermined value or more.
Performs processing to determine the logical stripe to be placed
The disk control system according to claim 1, characterized in that
Mu.
【請求項12】 前記各論理ストライプ毎に、そこに含
まれる論理ブロックに対するデータ書き込み回数を計数
するカウンタ手段をさらに具備し、 前記再配置対象決定手段は、前記データ書き込み回数が
所定値以上の論理ストライプに対して優先的に前記再配
置対象の論理ストライプを決定するための処理を実行す
ることを特徴とする請求項1記載のディスク制御システ
ム。
12. The logical stripes are included in each logical stripe.
Count the number of data writes to the logic block
Further comprising counter means for controlling the rearrangement target determining means,
The redistribute is given priority to the logical stripes with a predetermined value or more.
Performs processing to determine the logical stripe to be placed
The disk control system according to claim 1, characterized in that
Mu.
【請求項13】 前記各論理ストライプ毎に、そこに含
まれる論理ブロックに対するデータリードの回数を計数
するステップをさらに具備し、 前記有効論理ブロック数の割合および/または隣り合う
物理ブロック番号が連続している割合が所定の条件を満
たすかどうかを判定する処理を、前記データリードの回
数が所定値以上の論理ストライプに対して優先的に実行
することを特徴とする請求項6記載のデータ再配置方
法。
13. A logical stripe is included in each logical stripe.
Counts the number of data reads for each logical block
The number of valid logical blocks and / or adjacent to each other.
The ratio of consecutive physical block numbers satisfies the specified condition.
The process of determining whether or not to perform
Priority is given to the logical stripes whose number is equal to or greater than the specified value
7. The data rearrangement method according to claim 6, wherein
Law.
【請求項14】 前記各論理ストライプ毎に、そこに含
まれる論理ブロック に対するデータ書き込み回数を計数
するステップをさらに具備し、 前記有効論理ブロック数の割合および/または隣り合う
物理ブロック番号が連続している割合が所定の条件を満
たすかどうかを判定する処理を、前記データリードの回
数が所定値以上の論理ストライプに対して優先的に実行
することを特徴とする請求項6記載のデータ再配置方
法。
14. The logical stripes are included in each logical stripe.
Count the number of data writes to the logic block
The number of valid logical blocks and / or adjacent to each other.
The ratio of consecutive physical block numbers satisfies the specified condition.
The process of determining whether or not to perform
Priority is given to the logical stripes whose number is equal to or greater than the specified value
7. The data rearrangement method according to claim 6, wherein
Law.
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 JP2002014776A (en) 2002-01-18
JP3431581B2 true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3785127B2 (en) * 2002-09-11 2006-06-14 株式会社東芝 Disk array control device and data writing method in disk array control device
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
JP5141402B2 (en) * 2008-06-26 2013-02-13 富士通株式会社 Storage system, copy control method, and copy control apparatus
US9588886B2 (en) * 2013-03-15 2017-03-07 Seagate Technology Llc Staging sorted data in intermediate storage
WO2016051492A1 (en) * 2014-09-30 2016-04-07 株式会社日立製作所 Database management system, database management method, and storage medium
US10579680B2 (en) 2016-05-13 2020-03-03 Tibco Software Inc. Using a B-tree to store graph information in a database
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
CN113625959B (en) * 2021-06-30 2023-12-29 济南浪潮数据技术有限公司 Data processing method and device

Also Published As

Publication number Publication date
JP2002014776A (en) 2002-01-18

Similar Documents

Publication Publication Date Title
US6609176B1 (en) Disk control system and data rearrangement method
US9244622B2 (en) Storage system having a plurality of flash packages
US9152332B2 (en) Storage system and method for reducing energy consumption
US9081690B2 (en) Storage system and management method of control information therein
US8838887B1 (en) Drive partitioning for automated storage tiering
JP3862274B2 (en) File allocation method of file system integrated with RAID disk subsystem
US20220137849A1 (en) Fragment Management Method and Fragment Management Apparatus
JP3245001B2 (en) Data processing system and operation method thereof
US6941420B2 (en) Log-structure array
US6675176B1 (en) File management system
US7584229B2 (en) Method and system for priority-based allocation in a storage pool
US8131969B2 (en) Updating system configuration information
US9323655B1 (en) Location of data among storage tiers
US20130232297A1 (en) Storage System Comprising Flash Memory Modules Subject to Two Wear - Leveling Process
US20110179219A1 (en) Hybrid storage device
US20120254513A1 (en) Storage system and data control method therefor
US7603337B2 (en) Storage system operation management method and storage system
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US20150143021A1 (en) Equalizing wear on storage devices through file system controls
US20180253252A1 (en) Storage system
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
JP3431581B2 (en) Disk control system and data relocation method
US20070106868A1 (en) Method and system for latency-directed block allocation
US9189407B2 (en) Pre-fetching in a storage system
WO2011135622A1 (en) Storage device and method of controlling storage system

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