JP2009163499A - Storage device, method, and program - Google Patents

Storage device, method, and program Download PDF

Info

Publication number
JP2009163499A
JP2009163499A JP2008000517A JP2008000517A JP2009163499A JP 2009163499 A JP2009163499 A JP 2009163499A JP 2008000517 A JP2008000517 A JP 2008000517A JP 2008000517 A JP2008000517 A JP 2008000517A JP 2009163499 A JP2009163499 A JP 2009163499A
Authority
JP
Japan
Prior art keywords
access
command
storage medium
storage
time
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
JP2008000517A
Other languages
Japanese (ja)
Other versions
JP5292813B2 (en
Inventor
Shugo Ogawa
周吾 小川
Yoshihiro Hasebe
賀洋 長谷部
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008000517A priority Critical patent/JP5292813B2/en
Publication of JP2009163499A publication Critical patent/JP2009163499A/en
Application granted granted Critical
Publication of JP5292813B2 publication Critical patent/JP5292813B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a storage device composed of a plurality of storage media, a method, and a program for reducing access time for commands as a whole. <P>SOLUTION: The storage device includes the plurality of storage media 221 for storing data in a redundant fashion, and a command processing part 21 for analyzing a plurality of access commands that are put in a command queue 222 corresponding to each of the plurality of the storage media and are in an issuance standby state, performing scheduling of issuance order of the access commands so that access time as a single storage medium is reduced, and selecting a combination of the storage media at the access command issuance destination from the plurality of the storage media for which the scheduling has been performed as a single storage medium, so as to accelerate the completion of access for the plurality of the storage media as a whole. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明はストレージ装置に関し、特に、複数の記憶媒体を有する装置、プログラムに関する。   The present invention relates to a storage apparatus, and more particularly to an apparatus and a program having a plurality of storage media.

情報通信技術の進化とその適用分野の拡大に伴い、情報処理システムが扱うデータ量、及びその重要性が増大している。このため、データを格納するストレージシステムには高信頼性が求められている。また同時に大容量のデータを短時間で処理するためにアクセスの高速性が求められている。   With the evolution of information communication technology and the expansion of its application fields, the amount of data handled by information processing systems and their importance are increasing. For this reason, a storage system for storing data is required to have high reliability. At the same time, high-speed access is required to process a large amount of data in a short time.

これらの要求に対して記憶媒体を持つストレージが信頼性、性能を同時に向上させる方法として非特許文献1に挙げたRAID(Redundancy Array Of Inexpensive Disks)が用いられる。RAIDはストレージが持つ複数の記憶媒体間で冗長性を持たせることによって信頼性とアクセス性能を向上させる技術である。RAIDの種類は記憶媒体間の冗長性の取り方によって複数存在する。   RAID (Redundancy Array Of Inexpensive Disks) listed in Non-Patent Document 1 is used as a method for simultaneously improving the reliability and performance of a storage having a storage medium in response to these requirements. RAID is a technique for improving reliability and access performance by providing redundancy among a plurality of storage media in a storage. There are a plurality of types of RAID depending on how to take redundancy between storage media.

<RAID1>
複数の記憶媒体にデータのミラーリングを行う方式としてRAID1が挙げられる。RAID1では、同一データが複数の記憶媒体に記憶されるため、データを記憶した全ての記憶媒体が故障しない限り、データは失われない。このため、記憶媒体の故障に対する信頼性が向上する。
<RAID1>
RAID1 is a method for mirroring data on a plurality of storage media. In RAID1, since the same data is stored in a plurality of storage media, data is not lost unless all the storage media storing the data fail. For this reason, the reliability with respect to the failure of a storage medium improves.

またRAID1では、複数の記憶媒体にデータが記憶されているため、複数のReadアクセスを別々の記憶媒体に対して行うことで、並列処理が可能である。このため、RAID1は、単一の記憶媒体と比較して、Readアクセスに関して、並列アクセス性能が向上する。   In RAID1, since data is stored in a plurality of storage media, parallel processing is possible by performing a plurality of Read accesses to different storage media. For this reason, RAID 1 improves parallel access performance with respect to Read access compared to a single storage medium.

さらに、RAID1では、並列にReadアクセスを連続したデータに対して行うことで、Readアクセスに関して、連続アクセス時のスループット性能が向上する。   Furthermore, in RAID1, by performing read access on data that is continuous in parallel, throughput performance during continuous access is improved with respect to read access.

<RAID5>
次に、複数の記憶媒体間でデータと共にそのパリティを持つ方式としてRAID5が挙げられる。RAID5では、複数の記憶媒体のうち1台が、他の全ての記憶媒体上のデータのパリティを格納する。このため、RAID5では、任意の1台の記憶媒体が故障した場合に、パリティを使用して、データを復元することが可能である。よって、RAID5は、記憶媒体の故障に対する信頼性を向上する。
<RAID5>
Next, RAID5 can be cited as a method of having a parity with data among a plurality of storage media. In RAID5, one of the plurality of storage media stores the parity of data on all other storage media. Therefore, in RAID5, when any one storage medium fails, data can be restored using parity. Thus, RAID 5 improves the reliability against storage medium failures.

また、RAID5では、同時に複数のReadアクセスが発生した場合に、データが格納された記憶媒体が互いに異なっている場合、並列にアクセスを処理できる。   In RAID5, when a plurality of read accesses occur simultaneously, if the storage media storing the data are different from each other, the access can be processed in parallel.

よって、RAID5を用いた場合、単一の記憶媒体と比較して、Readアクセスに関して並列アクセス性能が向上する。   Therefore, when RAID 5 is used, parallel access performance is improved with respect to Read access compared to a single storage medium.

さらに、RAID5は、RAID1の場合と同様に、並列にReadアクセスを連続したデータに対して行うことで、Readアクセスに関して連続アクセス時のスループット性能が向上する。   Further, as in RAID 1, RAID 5 performs read access on continuous data in parallel, thereby improving throughput performance during continuous access with respect to Read access.

また、RAID5では、各記憶媒体を一定サイズの領域に区切り、領域を単位として、パリティを計算、格納する。更に、領域毎に、パリティを格納する役割を果たす記憶媒体が異なる。   In RAID 5, each storage medium is divided into areas of a certain size, and the parity is calculated and stored in units of areas. Furthermore, the storage medium that plays the role of storing the parity differs for each area.

<RAID6>
RAID5と同様に、複数の記憶媒体間のパリティを持つ方式としてRAID6が挙げられる。RAID6は、RAID5と比較して、2種類の異なる方式で計算したパリティをそれぞれ別の記憶媒体に格納している点が異なる。このため、RAID6においては、記憶媒体が2台故障した場合までについてデータの復元が可能である。
<RAID 6>
Similar to RAID 5, RAID 6 can be cited as a method having parity between a plurality of storage media. RAID 6 differs from RAID 5 in that the parity calculated by two different methods is stored in different storage media. For this reason, in RAID 6, it is possible to restore data until two storage media fail.

RAID6において、データの格納先の記憶媒体が異なる場合に、Readアクセスを並列に行える点は、RAID5と同様である。   In RAID 6, the read access can be performed in parallel when the data storage destination storage medium is different, as in RAID 5.

近時、ストレージのみならず記憶媒体自身のアクセスの高速化が図られている。記憶媒体が磁気ディスクである場合、アクセスを行うディスクヘッドがデータを格納している位置まで移動するシークに要する時間が応答時間の多くを占める。   Recently, not only storage but also storage media themselves are being accessed at higher speeds. When the storage medium is a magnetic disk, the time required for seeking to move the disk head to be accessed to the position where data is stored occupies much of the response time.

そこで、磁気ディスク上に分散して格納される複数のデータに対して効率的にアクセスを行うため、ディスクヘッドの動きを最適化している。   Therefore, in order to efficiently access a plurality of data distributed and stored on the magnetic disk, the movement of the disk head is optimized.

<エレベータアルゴリズム>
非特許文献2に挙げた、一般的に「エレベータアルゴリズム」または「SCAN」と呼ばれるアルゴリズムは、複数のアクセス要求を処理する際にヘッドが1往復で処理できるようにディスクアクセスの順序を最適化するアルゴリズムである。これによって、複数のアクセスの合計応答時間の短縮を図っている。
<Elevator algorithm>
The algorithm generally called “elevator algorithm” or “SCAN” listed in Non-Patent Document 2 optimizes the order of disk access so that the head can process in one round trip when processing a plurality of access requests. Algorithm. As a result, the total response time of a plurality of accesses is shortened.

<データ配置による応答時間の短縮>
また、磁気ディスクからなる記憶媒体では、ディスク上の近い位置に格納されたデータにアクセスする場合と、遠い位置に格納されたデータにアクセスする場合とでは、前者が後者より応答時間が短いという性質を持つ。
<Reduction of response time by data arrangement>
In the case of a storage medium comprising a magnetic disk, the former has a shorter response time than the latter when accessing data stored at a close position on the disk and when accessing data stored at a distant position. have.

このため、ディスク上の物理的に近い位置に連続して使用するデータを格納することで、アクセス時の応答時間の短縮が可能である。   For this reason, it is possible to shorten the response time at the time of access by storing data to be used continuously at a physically close position on the disk.

関連技術として、例えば特許文献1には、データを多重化して格納する各ディスク装置に、ディスク媒体の回転角を検出する回転角検出手段と、ヘッドが位置しているトラックのトラック番号を検出するトラック番号検出手段と、待ち時間の算出が指示されたとき、前記回転角とトラック番号検出手段が検出したトラック番号を用い待ち時間の算出対象である記憶領域上にヘッドが移動するまでに必要とされる待ち時間である待ち時間を算出して出力する出力手段を備え、コントローラは外部装置から読み出し要求を受信したとき、算出された待ち時間が最も短いディスク装置を用いて読み出し要求に応答する構成が開示されている。   As a related technique, for example, Patent Document 1 discloses a rotation angle detection unit that detects a rotation angle of a disk medium and a track number of a track on which a head is located in each disk device that multiplexes and stores data. When the track number detection means and the calculation of the waiting time are instructed, it is necessary until the head moves to the storage area for which the waiting time is calculated using the rotation angle and the track number detected by the track number detection means. Output means for calculating and outputting a waiting time that is a waiting time, and when the controller receives a read request from an external device, the controller responds to the read request using the disk device with the shortest calculated wait time Is disclosed.

特許文献2には、現在または一番近い過去に処理した時のヘッドの位置に対応する各ヘッド毎の物理または論理アドレスから近い順に各ヘッド毎の処理待ち行列を並び替え、処理要求に対応するアドレスに最も近いヘッドに処理をさせるようにした構成が開示されている。   In Patent Document 2, the processing queue for each head is rearranged in order from the physical or logical address for each head corresponding to the position of the head when processing at the present or the nearest past, and the processing request is handled. A configuration is disclosed in which the head closest to the address is processed.

特開平7−141770号公報JP-A-7-141770 特開平10−27321号公報JP-A-10-27321 Patterson et al., “A Case for Redundant Arrays of Inexpensive Disks (RAID)”,Proceedings of the 1988 ACM SIGMOD international conference on Management of data, pp. 109−116Patterson et al. , “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, Proceedings of the 1988 ACM SIGMOD international conference on management data. 109-116 Silberschatz et al.,“Operating System Concepts Fifth Edition”, Addison−Wesley, pp. 435−437Silberschatz et al. "Operating System Concepts Fifth Edition", Addison-Wesley, pp. 435-437

上記特許文献1、2、非特許文献1、2の各開示は、引用によって本明細書に組み込まれる。以下の分析は本発明によって与えられる。   The disclosures of Patent Documents 1 and 2 and Non-Patent Documents 1 and 2 are incorporated herein by reference. The following analysis is given by the present invention.

RAIDにより複数記憶媒体間での冗長性を利用することでストレージの信頼性の向上と共に、アクセスの高速化を実現することが可能である。これらのうち、RAIDにより実現される高速化は、各RAIDの説明の通り、スループットの向上、及び、並列アクセス性能の向上によって実現される。   By utilizing the redundancy among a plurality of storage media by RAID, it is possible to improve storage reliability and speed up access. Among these, the high speed realized by RAID is realized by improving throughput and improving parallel access performance as described in each RAID.

しかしながら、アクセス性能の指標としては、スループット及び並列アクセス性能の他に、アクセスに対する応答時間が挙げられる。   However, as an index of access performance, in addition to throughput and parallel access performance, response time to access can be cited.

記憶媒体が磁気ディスク等である場合、アクセス先のデータ、及び磁気ディスク自身の状態によってアクセスに対する応答時間が異なる。   When the storage medium is a magnetic disk or the like, the response time for access differs depending on the access destination data and the state of the magnetic disk itself.

そして、RAIDの利用のみで、この応答時間を短縮することは困難である。すなわち、複数の記憶媒体から構成されるストレージにおいて、RAID等により冗長性を確保した場合に、応答時間が短縮されない、という課題がある。   And it is difficult to shorten this response time only by using RAID. That is, there is a problem that the response time is not shortened when redundancy is secured by RAID or the like in a storage constituted by a plurality of storage media.

例えばRAID1(ミラー)を適用したストレージにおいて、データを取得可能なアクセス先の記憶媒体は複数存在する。記憶媒体のそれぞれのアクセス時間が異なる場合、応答時間を短縮するには、アクセス時間が短くなる記憶媒体を選択することが必要である。   For example, in a storage to which RAID 1 (mirror) is applied, there are a plurality of access destination storage media from which data can be acquired. When the access times of the storage media are different, in order to shorten the response time, it is necessary to select a storage medium that shortens the access time.

しかしながら、RAIDでは、アクセス時間が短くなるようなアクセス先の記憶媒体の選択は行われていない。   However, RAID does not select an access destination storage medium that shortens the access time.

つまり、RAIDによって、記憶媒体単体の場合と比べて、応答時間を短縮することはできない。   That is, the response time cannot be shortened by RAID as compared with the case of a single storage medium.

一方、記憶媒体そのものについて応答時間を短縮する技術として、前記したエレベータシーク、ディスク上のデータ配置が挙げられる。   On the other hand, techniques for shortening the response time for the storage medium itself include the above-described elevator seek and data arrangement on a disk.

しかし、これらの技術は、ディスク単体、つまり、記憶媒体単体についてのローカルな最適化を行うものである。複数の記憶媒体間に亘る最適化は対象としていない(範囲外である)。このため、これらの公知技術を用いて、複数の記憶媒体を含むストレージ全体に対して応答時間の短縮を行うことは困難である。   However, these techniques perform local optimization for a single disk, that is, a single storage medium. Optimization across multiple storage media is not targeted (out of range). For this reason, it is difficult to shorten the response time for the entire storage including a plurality of storage media using these known techniques.

したがって、本発明の目的は、データを冗長形態に格納する複数の記憶媒体を含むストレージにおいてアクセス要求に対する複数の記憶媒体全体でのアクセス時間を短縮可能とする装置、方法、プログラムを提供することにある。   Therefore, an object of the present invention is to provide an apparatus, a method, and a program that can shorten the access time in the entire plurality of storage media in response to an access request in a storage including a plurality of storage media that store data in a redundant form. is there.

本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。   In order to solve the above-described problems, the invention disclosed in the present application is generally configured as follows.

本発明の1つの側面(アスペクト)に係るストレージ装置においては、データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、少なくとも前記記憶媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う手段(記憶媒体内スケジュール手段)と、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段(記憶媒体間スケジュール手段)と、を備えている。
In the storage device according to one aspect of the present invention, for each of a plurality of storage media that store data in a redundant form, at least a plurality of access commands that are waiting to be executed with respect to the storage medium are analyzed. Means for scheduling the execution order of access commands in a single storage medium so as to shorten the access time (scheduling means in the storage medium);
Means for selecting a combination of storage media for issuing an access command so as to expedite access completion of the entire storage media from a plurality of the storage media on which the scheduling of a single storage medium is performed (between storage media) Scheduling means).

本発明において、前記記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う手段は、複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、記憶媒体単体でのアクセス時間が短縮するようにアクセスコマンドの発行順序をスケジュールする。   In the present invention, the means for scheduling the execution order of the access commands in the single storage medium is based on the access destination address, the access length, and the access time characteristics of the storage medium for each of the plurality of access commands. The access command issuance order is scheduled so as to shorten the access time.

本発明において、前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、前記アクセスコマンドの実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する。   In the present invention, the means for selecting a combination of storage media issuing the access command predicts an access time when a read access is made to the storage media based on the execution order of the access commands.

本発明において、前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、アクセスの完了が早くなるように、読み出しコマンド発行先の記憶媒体として、データの実体を格納した記憶媒体又は冗長データを格納した記憶媒体の一方を選択するようにしてもよい。   In the present invention, the means for selecting a combination of storage media for issuing the access command may be a storage medium storing the substance of data or redundant data as a storage medium to which the read command is issued so that the access is completed quickly. One of the stored storage media may be selected.

本発明において、前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体に対して、読み出し対象のデータの実体全体を格納した記憶媒体を読み出した場合のアクセス時間と、複数の記憶媒体からそれぞれ読み出した部分データと冗長データとを用いて読み出し対象のデータの実体全体を復元した場合のアクセス時間を求め、
前記アクセス時間の算出結果から、アクセスの完了が早くなるように、、アクセスコマンド発行先の記憶媒体を選択するようにしてもよい。
In the present invention, the means for selecting a combination of storage media for issuing the access command stores the entire entity of the data to be read for the plurality of storage media that have undergone the scheduling as a single storage medium. Obtain the access time when the storage medium is read, and the access time when the entire entity of the data to be read is restored using partial data and redundant data read from each of the storage media,
From the access time calculation result, the access command issue destination storage medium may be selected so that the access is completed earlier.

本発明において、前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出した場合、アクセスコマンドを前記記憶媒体への発行対象から外すことで、アクセス完了を早める。   In the present invention, the means for selecting a combination of storage media to issue the access command does not need to be executed from among access commands whose issue order is scheduled for each storage medium, and the processing time is relatively long. When the access command is detected, the access command is removed from the issuance target to the storage medium, thereby speeding up the access completion.

本発明の別の側面において、データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、前記少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行うコマンド処理手段を備えている。
In another aspect of the present invention, for each of a plurality of storage media for storing data in a redundant form, an access command input to the storage medium is analyzed prior to issuance to the storage medium,
It is an access command that does not need to be executed due to the relationship with the access command executed on another storage medium among the access commands for at least one storage medium, and the processing time is relative among the access commands for the at least one storage medium A command processing unit that performs scheduling to remove an access command that is large in size from being issued to the storage medium and to speed up access completion.

本発明において、前記コマンド処理手段は、複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、アクセスコマンドの発行順序を記憶媒体単位にスケジュールし、
記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から、実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出する。
In the present invention, the command processing means schedules an access command issuance order for each of the plurality of access commands based on an access destination address, an access length, and an access time characteristic of the storage medium.
An access command that does not need to be executed and has a relatively long processing time is detected from the access commands whose issue order is scheduled for each storage medium.

本発明において、前記コマンド処理手段は、前記アクセス発行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測するようにしてもよい。   In the present invention, the command processing means may predict an access time when a read access is made to the storage medium based on the access issue order.

本発明において、前記コマンド処理手段は、前記複数の記憶媒体の各々について、前記記憶媒体に対して前記複数のアクセスコマンドの発行順序がスケジュールされた場合、
前記複数の記憶媒体間でのアクセス時間の合計の大小を比較し、アクセス時間の合計が相対的に長い記憶媒体への複数のアクセスコマンドのうち少なくとも1つのアクセスコマンドを非活性化させるようにしてもよい。
In the present invention, the command processing means, for each of the plurality of storage media, when the issuing order of the plurality of access commands to the storage medium is scheduled,
The total access time between the plurality of storage media is compared, and at least one access command among a plurality of access commands to the storage medium having a relatively long total access time is deactivated. Also good.

本発明において、前記コマンド処理手段は、新たなアクセス要求が到来時、前記非活性化されたアクセスコマンドを活性化させて再スケジュール対象とし、複数のアクセスコマンドの実行順序の再スケジュールを行うようにしてもよい。   In the present invention, when a new access request arrives, the command processing means activates the deactivated access command to be rescheduled, and reschedules the execution order of a plurality of access commands. May be.

本発明において、前記コマンド処理手段は、前記記憶媒体の内部状態とアクセス先の位置情報とから、アクセス時間を算出するようにしてもよい。   In the present invention, the command processing means may calculate an access time from an internal state of the storage medium and access destination position information.

本発明において、前記記憶媒体へのアクセスに関して、前記記憶媒体において先行するアクセスでのアクセス先アドレス、又は、該アドレスとアクセス対象データから、前記記憶媒体の内部状態を算出するようにしてもよい。   In the present invention, regarding the access to the storage medium, the internal state of the storage medium may be calculated from the access destination address in the preceding access in the storage medium or from the address and the access target data.

本発明において、前記記憶媒体の内部状態はヘッドの位置情報を含む。   In the present invention, the internal state of the storage medium includes head position information.

本発明において、前記コマンド処理手段は、前記記憶媒体で実行中のコマンドの実行状況、実行中のコマンドの終了時間、終了時の記憶媒体の内部状態を参酌して、前記記憶媒体へのアクセスコマンドに基づきアクセス完了までに要するアクセス時間を算出するようにしてもよい。   In the present invention, the command processing means accesses the storage medium in consideration of the execution status of the command being executed on the storage medium, the end time of the command being executed, and the internal state of the storage medium at the end. The access time required to complete access may be calculated based on the above.

本発明において、前記複数の記憶媒体に対応して前記記憶媒体に投入するアクセスコマンドを格納する複数のコマンドキューを備えている。   In the present invention, a plurality of command queues for storing access commands to be input to the storage medium corresponding to the plurality of storage media are provided.

本発明において、前記コマンド処理手段は、前記コマンドキューに蓄積されたアクセスコマンドの個数が予め定められた数以下の場合、あるいは、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果が予め定められた時間以下の場合のいずれかが成り立つ場合、アクセスコマンドを前記記憶媒体に発行する。なお、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果は、当該先行アクセスコマンドを記憶媒体に対して発行する前のスケジュール時点で計算されたアクセス時間の合計に基づき、コマンド処理手段で算出してもよいし、あるいは、記憶媒体側が、コマンド処理手段から該記憶媒体に対して発行したアクセスコマンドの実行順序をスケジュールする機能を具備している場合、コマンド処理部手段は、記憶媒体側から当該先行アクセスコマンドの合計時間の予測結果を取得するようにしてもよい。   In the present invention, the command processing means may estimate the total time of the preceding access commands issued to the storage medium when the number of access commands stored in the command queue is equal to or smaller than a predetermined number. If any of the following is satisfied, the access command is issued to the storage medium. Note that the prediction result of the total time of the preceding access command issued to the storage medium is based on the total access time calculated at the scheduled time before issuing the preceding access command to the storage medium. If the storage medium side has a function of scheduling the execution order of access commands issued to the storage medium from the command processing means, the command processing means means A prediction result of the total time of the preceding access command may be acquired from the medium side.

本発明においては、複数の記憶媒体を備え、記憶媒体に対して発行したアクセスを管理し、前記記憶媒体への発行済アクセスの、記憶媒体内での処理順序を予測するか、前記記憶媒体内でのアクセス処理順序、記憶媒体に対するアクセスコマンド処理順序を決定(スケジュール)する手段を備えている。   In the present invention, a plurality of storage media are provided, the access issued to the storage media is managed, and the processing order of the issued access to the storage media within the storage media is predicted, or the storage media Means for determining (scheduling) the access processing order and the access command processing order for the storage medium.

また、本発明においては、予測または決定されたアクセス処理順序をもとに、各記憶媒体に対して、Read(読み出し)アクセスを行った場合のアクセス所要時間を予測する手段を備えている。   The present invention further includes means for predicting an access required time when a read (read) access is made to each storage medium based on the predicted or determined access processing order.

さらに、本発明においては、Readに要するアクセス時間の情報から、データの実体(直接データ)を格納した記憶媒体をReadした場合のアクセス時間と、Read対象のデータの一部または全てについて、Read対象のデータに対するパリティを格納した記憶媒体から読み出したパリティを用いてRead対象のデータを復元した場合のアクセス時間を求め、コマンドの処理に要する時間の算出結果から、コマンド処理の完了時間が早くなるように、前記コマンドについて、コマンド発行先の記憶媒体を選択する。本発明においては、要求されたデータをReadする際に、アクセス時間が短くなるように処理を行うことで、Readアクセス時の応答時間の短縮を実現する。   Furthermore, in the present invention, from the information of the access time required for Read, the access time when the storage medium storing the substance of the data (direct data) is read, and some or all of the data to be read are read targets. The access time when the data to be read is restored using the parity read from the storage medium storing the parity for the data is obtained, and the command processing completion time is accelerated from the calculation result of the time required for command processing. For the command, a command issue destination storage medium is selected. In the present invention, when the requested data is read, processing is performed so as to shorten the access time, thereby realizing a reduction in response time during Read access.

本発明に係る方法は、媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行い、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する、上記各工程を含む。
The method according to the present invention analyzes a plurality of access commands waiting to be executed on a medium, schedules the execution order of access commands in a single storage medium so as to shorten the access time,
Selecting each combination of storage media to issue an access command from a plurality of the storage media that have been scheduled in a single storage medium so as to expedite access completion across the plurality of storage media. Including.

本発明に係る方法は、データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行う、上記各工程を含む。
The method according to the present invention, for each of a plurality of storage media that store data in a redundant form, analyze an access command input to the storage medium prior to issuance to the storage medium,
It is an access command that does not need to be executed due to a relationship with an access command executed on another storage medium among access commands for at least one storage medium, and processing time is relative among access commands for at least one storage medium The above-described steps are included in which an access command that is too large is excluded from the issuance target to the storage medium, and the access completion is scheduled.

本発明に係るプログラムは、データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、少なくとも前記記憶媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う処理と、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する処理と、
をストレージ装置のコンピュータに実行させるプログラムよりなる。
The program according to the present invention analyzes, for each of a plurality of storage media that store data in a redundant form, at least a plurality of access commands that are waiting to be executed with respect to the storage medium, and stores the access commands so as to shorten the access time. A process for scheduling the execution order of access commands for a single medium;
A process of selecting a combination of storage media to issue an access command from a plurality of the storage media subjected to the scheduling in a single storage medium so as to expedite access completion in the plurality of storage media as a whole;
Is made up of a program that causes a computer of the storage apparatus to execute.

本発明に係るプログラムは、データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、前記少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行う処理をストレージ装置のコンピュータに実行させるプログラムよりなる。
The program according to the present invention, for each of a plurality of storage media that store data in a redundant form, analyzes an access command input to the storage medium prior to issuance to the storage medium,
It is an access command that does not need to be executed due to the relationship with the access command executed on another storage medium among the access commands for at least one storage medium, and the processing time is relative among the access commands for the at least one storage medium This is a program that causes a computer of a storage apparatus to execute a process for removing an access command that is large in size from being issued to the storage medium and performing a schedule for quick access completion.

本発明によれば、データを冗長形態に格納する複数の記憶媒体を含むストレージにおいてアクセス要求に対する複数の記憶媒体全体でのアクセス時間を削減することを可能としている。   According to the present invention, in a storage including a plurality of storage media that store data in a redundant form, it is possible to reduce the access time in the entire plurality of storage media in response to an access request.

上記した本発明についてさらに詳細に説述すべく添付図面を参照して以下に説明する。本発明において、ストレージ内の各記憶媒体に対して発行したアクセスを管理して、記憶媒体への発行済アクセスの記憶媒体内での処理順序を予測する機能(「記憶媒体処理順序予測機能」という)は、記憶媒体に対して発行するコマンドに関する
・アクセス先のアドレスと、
・アクセス長と、
・記憶媒体についてのアクセス時間特性、
・記憶媒体の物理的、論理的構成情報、または、
・記憶媒体内部で使用されているスケジューリングアルゴリズム、
に関する情報に基づき、記憶媒体内でアクセス時間短縮のために最適化されたアクセスコマンドの実行順序を予測する。
The above-described present invention will be described below with reference to the accompanying drawings in order to explain in more detail. In the present invention, a function for managing the issued access to each storage medium in the storage and predicting the processing order in the storage medium for issued access to the storage medium (referred to as “storage medium processing order prediction function”). ) Is related to the command issued to the storage medium.
・ Access length,
・ Access time characteristics for storage media,
-Physical and logical configuration information of the storage medium, or
A scheduling algorithm used inside the storage medium,
The execution order of the access commands optimized for shortening the access time in the storage medium is predicted based on the information regarding.

本発明において、記憶媒体処理順序予測機能によって予測されたコマンド実行順序をもとに、記憶媒体に対してアクセスを行った場合のアクセス所要時間を予測する機能(「コマンド処理完了時間予測機能」という)は、記憶媒体に対して、アクセス時間算出対象のコマンドと、先行するコマンドが記憶媒体のアクセス時間に影響する場合には、先行するコマンドについても、アクセス先のアドレスを渡してアクセス所要時間を結果として得る。あるいは、アクセス先のアドレスに基づき、アクセス先のデータが格納された記憶媒体内の物理的または論理的状態に関する情報を取得し、記憶媒体へのアクセス所要時間を算出するようにしてもよい。あるいは、データが格納された記憶媒体に対して、過去にアクセスした際のアクセス先アドレス、もしくは、アクセスに要した実時間の履歴から、データが格納された記憶媒体内の物理的または論理的状態を推定し、記憶媒体へのアクセス所要時間を算出するようにしてもよい。   In the present invention, based on the command execution order predicted by the storage medium processing order prediction function, a function for predicting the required access time when the storage medium is accessed (referred to as “command processing completion time prediction function”). ) If the access time calculation command and the preceding command affect the access time of the storage medium for the storage medium, the access destination address is also passed to the access command for the preceding command. As a result. Alternatively, information on the physical or logical state in the storage medium storing the access destination data may be acquired based on the access destination address, and the time required for accessing the storage medium may be calculated. Alternatively, the physical or logical state in the storage medium storing the data from the access destination address when accessing the storage medium storing the data in the past or the history of the real time required for the access. And the time required for access to the storage medium may be calculated.

本発明において、Readに要するアクセス時間の情報から、直接、データの実体を格納した記憶媒体をReadした場合のアクセス時間と、Read対象のデータの一部または全てについて、Read対象のデータに対するパリティを格納した記憶媒体から読み出したパリティを用いてRead対象のデータを復元した場合のアクセス時間を求める機能(「冗長性利用アクセス方法列挙・アクセス時間算出機能」という)は、コマンド処理完了時間予測機能を用いて、ストレージを構成する各記憶媒体に対して、アクセス対象のデータ、もしくはアクセス対象のデータに対する冗長データへのアクセス所要時間を算出し、直接アクセス対象のデータにアクセスした場合、または直接アクセス対象のデータを格納していない記憶媒体に格納されている冗長データを利用して、アクセス対象のデータを復元した場合の、ストレージ全体での記憶媒体へのアクセス所要時間をそれぞれ算出する。   In the present invention, from the access time information required for Read, the access time when the storage medium storing the data entity is directly read and the parity for the Read target data for some or all of the Read target data are calculated. The function for obtaining the access time when the data to be read is restored using the parity read from the stored storage medium (referred to as “redundancy utilization access method enumeration / access time calculation function”) is a command processing completion time prediction function. To calculate the time required to access the data to be accessed or the redundant data for the data to be accessed for each storage medium constituting the storage, and when the data to be directly accessed is accessed or the data to be directly accessed Stored in a storage medium that does not store By using the redundant data is, in the case of restoring the access target data is calculated respectively access duration to the storage medium in the entire storage.

アクセス完了のために必要とされる全コマンドの処理に要する時間の算出結果から、コマンド処理の完了時間が早くなるように、各コマンドについて、コマンド発行先の記憶媒体を選択する機能(「アクセス先記憶媒体選択機能」)は、冗長性利用アクセス方法列挙・アクセス時間算出機能を用いて算出したアクセス先記憶媒体の選択方法毎のストレージ全体での記憶媒体へのアクセス所要時間から、コマンド処理の完了時間が早くなるように、ストレージに対するアクセス要求毎に処理するために、実際にアクセスする記憶媒体、及びコマンドキューの処理順序を決定する。   A function for selecting a command issue destination storage medium for each command (“access destination” so that the command processing completion time is shortened from the calculation result of the time required for processing all commands required for access completion. The storage medium selection function ”) completes command processing from the time required to access the storage medium in the entire storage for each access destination storage medium selection method calculated using the redundancy use access method enumeration / access time calculation function. In order to process each access request to the storage so as to shorten the time, the processing order of the storage medium to be actually accessed and the command queue is determined.

複数の記憶媒体にデータの冗長性を持たせたストレージでは、記憶媒体に対する障害の発生時にパリティ等の冗長データを使用し、障害が発生していない状態では直接アクセス対象のデータが格納された記憶媒体に対してアクセスする。そのため、例えばアクセス処理を早く完了したい場合に、パリティ等の冗長データからデータを復元すればより早く処理が完了できる場合であっても、冗長データを使用しない。   In storage with redundancy of data in a plurality of storage media, redundant data such as parity is used when a failure occurs in the storage medium, and the data to be directly accessed is stored when no failure occurs Access to. Therefore, for example, when it is desired to complete the access process early, even if the process can be completed earlier if the data is restored from the redundant data such as parity, the redundant data is not used.

一方、本発明によれば、ストレージへのアクセス処理時に、
・直接データ(データの実体)を格納した記憶媒体と、
・冗長データを格納した記憶媒体と、
を選択的に使用する。このため、例えばアクセス処理を早く完了したい場合には、直接データを格納した記憶媒体にアクセスするか、もしくは冗長データからアクセス対象のデータを復元するか選択して、最もアクセス処理が早く完了する記憶媒体の組み合わせを選択してアクセス処理を行うことを実現し、平均アクセス所要時間を短縮する。以下、本発明を実施例について図面を参照して説明する。
On the other hand, according to the present invention, during storage access processing,
-A storage medium that stores direct data (data entity);
A storage medium storing redundant data;
Is used selectively. For this reason, for example, when it is desired to complete the access process early, it is possible to select whether to directly access the storage medium storing the data or to restore the data to be accessed from the redundant data. The access processing is performed by selecting a combination of media, and the average access time is shortened. Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明の一実施例の構成を示す図である。図1を参照すると、本実施例において、システム全体の構成はデータにアクセスする1台以上のホスト1、複数の記憶媒体から構成されるストレージ2、及び前記1、2を接続するネットワーク3を含む。   FIG. 1 is a diagram showing the configuration of an embodiment of the present invention. Referring to FIG. 1, in the present embodiment, the configuration of the entire system includes one or more hosts 1 that access data, a storage 2 that is composed of a plurality of storage media, and a network 3 that connects the aforementioned 1 and 2. .

ネットワーク3は、ストレージ2に対して複数のホスト1が接続可能な形態のみならず、ホスト1とストレージ2が直接接続される形態であってもよい。   The network 3 may have a form in which the host 1 and the storage 2 are directly connected as well as a form in which a plurality of hosts 1 can be connected to the storage 2.

図2は、図1のストレージ2の構成例を示す図である。図2を参照すると、ストレージ2は、コマンド処理部21と、データ記憶部22と、コマンド処理作業メモリ23と、ストレージ構成情報格納部24と、記憶媒体アクセス履歴格納部25と、を備えている。   FIG. 2 is a diagram illustrating a configuration example of the storage 2 in FIG. Referring to FIG. 2, the storage 2 includes a command processing unit 21, a data storage unit 22, a command processing work memory 23, a storage configuration information storage unit 24, and a storage medium access history storage unit 25. .

データ記憶部22は、複数の記憶媒体221と、複数の記憶媒体221にそれぞれ対応する複数のコマンドキュー222を備えている。   The data storage unit 22 includes a plurality of storage media 221 and a plurality of command queues 222 respectively corresponding to the plurality of storage media 221.

コマンド処理作業メモリ23は、ホストからのアクセス要求を管理するためのアクセス要求管理テーブル231、及び、各記憶媒体221に対して発行予定であるコマンドを管理するためのコマンド管理テーブル232を備えている。   The command processing work memory 23 includes an access request management table 231 for managing access requests from the host and a command management table 232 for managing commands scheduled to be issued to each storage medium 221. .

コマンド処理部21は、ホスト(図1の1)から受け取ったアクセス要求を解釈し、データ記憶部22の記憶媒体221に対するコマンドを発行し、ストレージ2全体の実際のアクセス処理を行う。コマンド処理部21は概略以下のように動作する。   The command processing unit 21 interprets the access request received from the host (1 in FIG. 1), issues a command to the storage medium 221 of the data storage unit 22, and performs actual access processing for the entire storage 2. The command processing unit 21 generally operates as follows.

コマンド処理部21は、アクセス要求を処理するために必要な各記憶媒体221に対するコマンドを生成する。   The command processing unit 21 generates a command for each storage medium 221 necessary for processing the access request.

次に、コマンド処理部21は、複数のアクセス要求から生成されたコマンドに対して、アクセス要求を処理するために、記憶媒体221へのアクセス処理の完了時間が早くなるように、スケジューリングを行い、アクセス要求毎にコマンド発行先の記憶媒体221の選択を行う。   Next, the command processing unit 21 performs scheduling so that the access processing for the storage medium 221 is completed earlier in order to process the access request for the commands generated from the plurality of access requests, For each access request, the command issue destination storage medium 221 is selected.

そして、コマンド処理部21は、スケジューリングされた実行順序にしたがって記憶媒体221に対するコマンドを発行し、及び、コマンド完了時にReadアクセス要求に対する結果の送信処理を行う。   Then, the command processing unit 21 issues a command to the storage medium 221 in accordance with the scheduled execution order, and performs processing for transmitting a result for the Read access request when the command is completed.

コマンド処理部21は、コマンドがReadであり、アクセス先の記憶媒体221が格納しているアクセス対象のデータが冗長データを含む場合、冗長データからアクセス対象のデータを復元する処理を行う。   When the command is Read and the access target data stored in the access destination storage medium 221 includes redundant data, the command processing unit 21 performs a process of restoring the access target data from the redundant data.

コマンド処理部21は、アクセス対象のデータが得られた後は、アクセス要求元のホスト1に対して結果を返す。   After the access target data is obtained, the command processing unit 21 returns the result to the access request source host 1.

データ記憶部22は、ストレージ2に格納されるデータ全てを保持し、コマンド処理部21からの指示に従って、データのRead、更新(Write)を行う。   The data storage unit 22 holds all data stored in the storage 2 and performs data read and update (write) in accordance with an instruction from the command processing unit 21.

コマンド処理作業メモリ23は、記憶媒体221から読み込んだデータ、及び、ホストから書き込みを要求されたデータを、コマンド処理部21からの指示により格納する。   The command processing work memory 23 stores data read from the storage medium 221 and data requested to be written by the host in accordance with instructions from the command processing unit 21.

図2に示す例では、コマンド処理作業メモリ23は、アクセス要求管理テーブル231、及びコマンド管理テーブル232を備えているが、。データ記憶部22に含まれるコマンドキュー222を、コマンド処理作業メモリ23に格納する構成としてもよい。   In the example illustrated in FIG. 2, the command processing work memory 23 includes an access request management table 231 and a command management table 232. The command queue 222 included in the data storage unit 22 may be stored in the command processing work memory 23.

ストレージ構成情報格納部24は、
ストレージ2全体の記憶領域と、記憶領域の実体であるデータ記憶部22を構成する複数の記憶媒体221と、の対応関係を格納する。
The storage configuration information storage unit 24
The correspondence relationship between the storage area of the entire storage 2 and the plurality of storage media 221 constituting the data storage unit 22 that is the substance of the storage area is stored.

また、ストレージ構成情報格納部24は、
各記憶媒体221のアクセス時間の算出に影響する物理的、論理的な構成情報などアクセス位置に対するアクセスへの応答時間特性に関する情報を格納する。記憶媒体のアクセス応答時間特性情報として、例えば記憶媒体221がハードディスクである場合、
・ディスクプラッタ上のブロックの分布状況、
・ディスクプラッタ数、
・ディスクヘッドのシーク距離とシーク時間との対応関係、
の情報を格納する。
The storage configuration information storage unit 24
Information relating to response time characteristics for access to an access position, such as physical and logical configuration information affecting the calculation of the access time of each storage medium 221 is stored. As the access response time characteristic information of the storage medium, for example, when the storage medium 221 is a hard disk,
・ The distribution of blocks on the disk platter,
・ Number of disk platters
-Correspondence between seek distance of disk head and seek time,
Stores the information.

なお、図2に示す例では、ストレージ構成情報格納部24は、ストレージ2内に独立して存在しているが、前記コマンド処理作業メモリ23内に格納される形態であってもよい。   In the example shown in FIG. 2, the storage configuration information storage unit 24 exists independently in the storage 2, but may be stored in the command processing work memory 23.

記憶媒体アクセス履歴格納部25は、データ記憶部22に含まれる記憶媒体221に対して発行され、実行を完了したコマンドのアドレスとアクセス長を履歴として格納する。   The storage medium access history storage unit 25 stores the address and access length of a command issued and completed for the storage medium 221 included in the data storage unit 22 as a history.

コマンド処理部21は、記憶媒体221がコマンド処理を完了する毎に、記憶媒体アクセス履歴格納部25における履歴を更新する。   The command processing unit 21 updates the history in the storage medium access history storage unit 25 every time the storage medium 221 completes command processing.

図3は、図2のアクセス要求管理テーブル231を構成情報の一例を示す図である。アクセス要求管理テーブル231は、ホスト1(図1参照)からの各アクセス要求に付随する情報を保持する。   FIG. 3 is a diagram showing an example of the configuration information of the access request management table 231 shown in FIG. The access request management table 231 holds information associated with each access request from the host 1 (see FIG. 1).

アクセス要求に付随する情報として、
・ホストからコマンド処理部21がアクセス要求を受けた際に付与するアクセス要求毎に固有なIDと、
・アクセス要求がReadであるかWriteであるかのアクセス種別(R/W)と、
・アクセス先のストレージ2全体におけるアドレス空間内での先頭ブロックのアドレスと、
・アクセス長と、
・コマンド処理作業メモリ23上のデータ格納先アドレスと、
・アクセス要求の要求元ホストと、
・アクセス要求を処理するために記憶媒体221に対して発行するコマンドを指し示すIDである対応コマンドIDと、
を記録する。
As information accompanying the access request,
A unique ID for each access request given when the command processing unit 21 receives an access request from the host;
An access type (R / W) indicating whether the access request is Read or Write;
The address of the first block in the address space of the entire storage 2 to be accessed;
・ Access length,
A data storage destination address on the command processing work memory 23;
The requesting host of the access request;
A corresponding command ID that is an ID indicating a command issued to the storage medium 221 in order to process an access request;
Record.

1つのアクセス要求を処理するために記憶媒体221に対して発行する複数のコマンドが発行される場合、1つのアクセス要求IDに対して、複数の対応コマンドIDが登録される。   When a plurality of commands issued to the storage medium 221 to process one access request are issued, a plurality of corresponding command IDs are registered for one access request ID.

図3のデータ格納先アドレスは、アクセス要求が、
・Readの場合、ホスト1(図1参照)に結果として送信するデータをコマンド処理部21で格納するために一時的に確保された領域(バッファ領域)のアドレスを指し示し、
・Writeの場合、ホスト1(図1参照)から書き込みが要求されたデータをコマンド処理部21で保持するための領域(バッファ領域)のアドレスを指し示す。
The data storage destination address in FIG.
In the case of Read, the address of the area (buffer area) temporarily reserved for storing data to be transmitted as a result to the host 1 (see FIG. 1) by the command processing unit 21 is indicated.
In the case of Write, the address of the area (buffer area) for holding the data requested to be written from the host 1 (see FIG. 1) in the command processing unit 21 is indicated.

アクセス要求管理テーブル231は、ホスト1(図1参照)からの各アクセス要求に付随する情報が必要になる際に、コマンド処理部21によって参照される。   The access request management table 231 is referred to by the command processing unit 21 when information accompanying each access request from the host 1 (see FIG. 1) is necessary.

図4は、図2のコマンド管理テーブル232を構成情報の一例を示す図である。コマンド管理テーブル232は、ホスト1からの各アクセス要求を処理するために各記憶媒体221に対して発行されるコマンドに付随する情報を保持する。コマンド管理テーブル232は、各記憶媒体221に対して個別に確保する。   FIG. 4 is a diagram showing an example of configuration information of the command management table 232 of FIG. The command management table 232 holds information associated with a command issued to each storage medium 221 in order to process each access request from the host 1. The command management table 232 is individually reserved for each storage medium 221.

記憶媒体221に対するコマンドに付随する情報として、
・コマンド毎に固有なIDと、
・コマンドがReadであるかWriteであるかのアクセス種別(図4ではR/Wと表現)と、
・アクセス先の記憶媒体221内での先頭ブロックのアドレスと、
・アクセス長と、
・コマンド処理作業メモリ23上のデータ格納先アドレスと、
・コマンド発行の原因となっているアクセス要求管理テーブル231上のアクセス要求に付与された対応アクセス要求IDと、
・記憶媒体内コマンドIDと、
・コマンドを記憶媒体221に対して発行した時間を表す発行時間と、
・コマンドの実行状態
を記録する。
As information accompanying the command for the storage medium 221,
-A unique ID for each command,
An access type (represented as R / W in FIG. 4) indicating whether the command is Read or Write;
The address of the first block in the storage medium 221 to be accessed;
・ Access length,
A data storage destination address on the command processing work memory 23;
A corresponding access request ID assigned to the access request on the access request management table 231 that is the cause of command issuance,
-Command ID in the storage medium,
An issue time indicating the time when the command is issued to the storage medium 221;
• Record the command execution status.

前記情報のうち、データ格納先アドレスは、アクセス要求が、
・Readの場合、記憶媒体221から読み出したデータを格納するために確保された領域のアドレスを指し示し、
・Writeの場合、記憶媒体221に対して書き込むデータを保持する領域のアドレスを指し示す。
Among the information, the data storage destination address is an access request,
In the case of Read, it indicates the address of the area reserved for storing the data read from the storage medium 221.
In the case of Write, it indicates the address of an area that holds data to be written to the storage medium 221.

対応アクセス要求IDは、コマンド発行の原因となっているアクセス要求管理テーブル231上のアクセス要求に付与されたアクセス要求毎に固有なID(図3参照)である。   The corresponding access request ID is a unique ID (see FIG. 3) for each access request given to the access request on the access request management table 231 that causes the command issuance.

記憶媒体内コマンドIDは、コマンド処理部21が、コマンドを記憶媒体221に対して発行した際に、記憶媒体側からコマンド実行管理用のタグ情報として付与されるIDである。   The in-storage medium command ID is an ID given as tag information for command execution management from the storage medium side when the command processing unit 21 issues a command to the storage medium 221.

実行状態は、コマンドの状態を管理する情報であり、待機、削除、発行、完了の状態をとる。   The execution state is information for managing the state of the command, and takes the states of standby, deletion, issue, and completion.

待機は、コマンドが現在コマンドキュー222内で発行に備えて待機している状態である。   Waiting is a state in which a command is currently waiting in the command queue 222 for issuance.

削除は、コマンドが現在コマンドキュー222内に存在するものの実際には発行しない状態である。   Deletion is a state in which a command currently exists in the command queue 222 but is not actually issued.

発行は、コマンドが記憶媒体221で発行済であることを表す。   The issue indicates that the command has already been issued in the storage medium 221.

完了はコマンドの完了通知を受け取って処理が完了した状態を表す。   Completion indicates a state in which processing is completed upon receipt of a command completion notification.

コマンド管理テーブル232は、各記憶媒体221に対して、発行予定または発行済のコマンドに付随する前記情報が必要になる際に、コマンド処理部21から参照される。   The command management table 232 is referred to by the command processing unit 21 when the information accompanying the command scheduled to be issued or issued for each storage medium 221 is required.

図5は、図2のコマンドキュー222を構成する情報を表す図である。コマンドキュー222は、記憶媒体221に対して発行されるコマンドの発行順序を保持する。すなわち、記憶媒体221に対して発行されるコマンドの順にコマンドID(図3の記憶媒体内コマンドID)を保持する。コマンドキュー222は、各記憶媒体221に対して個別に確保する。なお、記憶媒体へのアクセス実行時(コマンドの実行状態が発行)にコマンドキュー222からコマンドを取り出してもよい。   FIG. 5 is a diagram showing information constituting the command queue 222 of FIG. The command queue 222 holds the issue order of commands issued to the storage medium 221. That is, the command IDs (command IDs in the storage medium in FIG. 3) are held in the order of commands issued to the storage medium 221. The command queue 222 is secured for each storage medium 221 individually. Note that the command may be fetched from the command queue 222 when the access to the storage medium is executed (command execution status is issued).

図6乃至図11は、図1乃至図5を参照して説明した本実施例の動作を説明する流れ図である。特に制限されないが、以下では、複数の記憶媒体として、複数の記憶媒体のある領域のデータ(データの実体)に対して、残りの少なくとも1つの記憶媒体の対応領域にパリティが格納され、複数の記憶媒体の1つに障害発生時にも、残りの記憶媒体からデータを復旧可能な冗長構成の記憶媒体、あるいは、複数の記憶媒体間でデータを重複して記憶する冗長構成を例に説明する。なお、図6乃至図11に示した処理手順を実行するコマンド処理部21の機能・処理は、ストレージ2のコンピュータ上で実行されるプログラムで実現するようにしてもよいことは勿論である。   6 to 11 are flowcharts for explaining the operation of the present embodiment described with reference to FIGS. Although not particularly limited, in the following, as a plurality of storage media, parity is stored in a corresponding region of at least one other storage medium with respect to data (an entity of data) in a region of the plurality of storage media, and a plurality of storage media A redundant storage medium that can recover data from the remaining storage medium even when a failure occurs in one of the storage media, or a redundant configuration that stores data redundantly among a plurality of storage media will be described as an example. It should be noted that the function / processing of the command processing unit 21 that executes the processing procedure shown in FIGS. 6 to 11 may be realized by a program executed on the computer of the storage 2.

まず、図6の流れ図を参照して、本実施例において、ホスト1からストレージ2へアクセス要求が行われた際の動作について説明する。ホスト1からストレージ2へアクセス要求が行われる毎に、図1、図2のシステム全体が以下の動作を実行する。   First, with reference to the flowchart of FIG. 6, an operation when an access request is made from the host 1 to the storage 2 in this embodiment will be described. Each time an access request is made from the host 1 to the storage 2, the entire system shown in FIGS. 1 and 2 executes the following operation.

コマンド処理部21は、受け取ったホスト1からのストレージ2へのアクセス要求を解釈して、アクセス要求管理テーブル231にアクセス要求を登録する(図6のS11)。   The command processing unit 21 interprets the received access request from the host 1 to the storage 2 and registers the access request in the access request management table 231 (S11 in FIG. 6).

ホスト1から受け取ったアクセス要求がWriteである場合(図6のS12のYes分岐)、コマンド処理部21は、アクセス要求に続いてホスト1から送られてくる書き込み対象のデータを受け取り、コマンド処理作業メモリ23上の空き領域に記憶し、アクセス要求管理テーブル231上の、該アクセス要求のデータ格納アドレスを更新する。   When the access request received from the host 1 is Write (Yes branch of S12 in FIG. 6), the command processing unit 21 receives the data to be written sent from the host 1 following the access request, and executes the command processing work. The data is stored in an empty area on the memory 23, and the data storage address of the access request on the access request management table 231 is updated.

コマンド処理部21は、ホスト1からの書き込みデータの受け取り、コマンド処理作業メモリ23上の空き領域への記憶が完了すると、ホスト1に対してアクセス要求の処理が完了したことを通知する(図6のS13)。   When the command processing unit 21 receives the write data from the host 1 and completes storage in the free area on the command processing work memory 23, the command processing unit 21 notifies the host 1 that the processing of the access request is completed (FIG. 6). S13).

ホスト1から受け取ったアクセス要求がReadである場合(図6のS12のNo分岐)、コマンド処理部21は、ステップS13を実行せずに、ステップS14を実行する。   When the access request received from the host 1 is Read (No branch of S12 in FIG. 6), the command processing unit 21 executes Step S14 without executing Step S13.

コマンド処理部21は、ホスト1からの該アクセス要求を処理するために必要な各記憶媒体221に対するコマンドを生成する。より詳細には、ホスト1が指定するストレージ2のアクセス先アドレスのデータ格納先の実体となる領域、及び、冗長データを格納する領域に対してデータのRead/Writeを行うためのコマンドを、各記憶媒体221に対して生成する。   The command processing unit 21 generates a command for each storage medium 221 necessary for processing the access request from the host 1. More specifically, a command for performing read / write of data to an area that is an actual data storage destination of an access destination address of a storage 2 designated by the host 1 and an area that stores redundant data It is generated for the storage medium 221.

アクセス要求がReadである場合、ホスト1が要求するデータの実体を格納する記憶媒体221に対して、データの実体を読み出すためのReadコマンドを生成する。併せて、ホスト1が要求するデータの実体に対するパリティデータを持つ記憶媒体221に対しても、パリティデータを読み出すためのReadコマンドを生成する。   When the access request is Read, a Read command for reading the data entity is generated for the storage medium 221 storing the data entity requested by the host 1. At the same time, a Read command for reading the parity data is also generated for the storage medium 221 having the parity data corresponding to the actual data requested by the host 1.

アクセス要求がWriteである場合、データの格納先の実体となる領域を持つ全ての記憶媒体221に対して、データを格納するためのWriteコマンドを生成する。   When the access request is “Write”, a Write command for storing data is generated for all the storage media 221 having an area serving as a data storage destination entity.

またWriteアクセス要求の処理に伴い、パリティデータが更新される場合は、記憶媒体221に格納されたパリティデータを再生成するために不足しているデータを読み出すためのReadコマンド、及び、記憶媒体221に格納されたパリティデータを更新するWriteコマンドを併せて生成する。   When the parity data is updated in accordance with the write access request process, a Read command for reading out data that is insufficient to regenerate the parity data stored in the storage medium 221, and the storage medium 221. A Write command for updating the parity data stored in is also generated.

なお、パリティデータを更新するためのWriteコマンドで書き込むデータはこの時点では存在しない。   Note that there is no data to be written by the Write command for updating the parity data at this time.

コマンド処理部21は、ストレージ2全体のアドレス空間と、各記憶媒体221の記憶領域との対応関係の情報を、ストレージ構成情報格納部24に格納された、ストレージ2の構成情報から取得する。   The command processing unit 21 acquires information on the correspondence between the address space of the entire storage 2 and the storage area of each storage medium 221 from the configuration information of the storage 2 stored in the storage configuration information storage unit 24.

コマンド処理部21は、記憶媒体221に対して生成したコマンドを、コマンド管理テーブル232に登録される。コマンド処理部21は、コマンドキュー222の末尾に、記憶媒体に対して発行予定のコマンドとして追加する(図6のS14)。   The command processing unit 21 registers the command generated for the storage medium 221 in the command management table 232. The command processing unit 21 adds the command scheduled to be issued to the storage medium to the end of the command queue 222 (S14 in FIG. 6).

コマンド処理部21は、コマンドキュー222上に登録され記憶媒体221に対して発行予定のコマンド発行順序のスケジューリング、及び、実際に発行するコマンドの選択を行う。   The command processing unit 21 schedules a command issuance order that is registered on the command queue 222 and is scheduled to be issued to the storage medium 221, and selects a command to be actually issued.

コマンド処理部21は、コマンドキュー222に投入されたコマンドのスケジューリング、及び実際に発行するコマンドの選択を行う(図6のS15)。   The command processing unit 21 performs scheduling of commands input to the command queue 222 and selection of commands to be actually issued (S15 in FIG. 6).

より詳細には、コマンド処理部21は、
アクセス要求管理テーブル231に登録された全てのアクセス要求に対する処理の完了が早くなるように、コマンド発行順序の変更を行う。
More specifically, the command processing unit 21
The command issue order is changed so that processing for all access requests registered in the access request management table 231 is completed earlier.

また、コマンド処理部21は、コマンドキュー222に投入されたコマンドのうち、不要なコマンドを検出した場合、コマンド管理テーブル232上の実行状態を「削除」に変更する。   Further, when the command processing unit 21 detects an unnecessary command among the commands input to the command queue 222, the command processing unit 21 changes the execution state on the command management table 232 to “deleted”.

コマンド処理部21は、記憶媒体221に発行され、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数(閾値)以下である場合、コマンド処理部21は、コマンドキュー222の先頭から記憶媒体221に対して発行中のコマンド数が予め所定数になるまで、コマンドの発行処理を行い、コマンド管理テーブル232上の実行状態を「発行」に変更し、コマンド管理テーブル232の対応するコマンドIDの発行時間の欄を、コマンド発行時の時間に設定する。   When the command processing unit 21 is issued to the storage medium 221 and the actual access processing to the storage medium 221 is not completed (waiting for execution) is equal to or less than a predetermined number (threshold), The command processing unit 21 performs command issuance processing from the head of the command queue 222 until the number of commands being issued to the storage medium 221 reaches a predetermined number in advance, and the execution status on the command management table 232 is “issued”. The command issuance time column of the corresponding command ID in the command management table 232 is set to the time when the command is issued.

あるいは、コマンド処理部21は、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数(閾値)以下であるか、又は、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果が予め定められた時間以下のいずれかが成り立つ場合、アクセスコマンドを前記記憶媒体に発行するようにしてもよい。なお、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果は、当該先行アクセスコマンドを記憶媒体に対して発行する前のスケジュール時点で計算されたアクセス時間の合計に基づき、コマンド処理部21で算出してもよいし、あるいは、記憶媒体がコマンド処理部21から発行されたアクセスコマンドの実行順序をスケジュールする機能(例えば記憶媒体が前述したエレベータ・アルゴリスムを実装)を具備している場合において、コマンド処理部21が、記憶媒体側から当該先行アクセスコマンドの合計時間の予測結果を取得するようにしてもよい。   Alternatively, the command processing unit 21 determines that the number of commands for which the actual access processing to the storage medium 221 has not been completed (waiting for execution) is equal to or smaller than a predetermined number (threshold), or On the other hand, when the predicted result of the total time of the preceding access commands that have been issued satisfies any of the predetermined time or less, the access command may be issued to the storage medium. Note that the prediction result of the total time of the preceding access command issued to the storage medium is based on the total access time calculated at the scheduled time before issuing the preceding access command to the storage medium. It may be calculated by the unit 21, or the storage medium has a function of scheduling the execution order of access commands issued from the command processing unit 21 (for example, the storage medium implements the above-described elevator algorithm). In some cases, the command processing unit 21 may acquire the prediction result of the total time of the preceding access command from the storage medium side.

コマンド処理部21は、実行状態が「削除」であるコマンドについては、コマンド管理テーブル232上の対応するコマンドIDの実行状態の欄を「完了」に変更し、発行処理を行わない(図6のS16)。   The command processing unit 21 changes the execution state column of the corresponding command ID on the command management table 232 to “completed” for the command whose execution state is “deleted”, and does not perform the issue process (FIG. 6). S16).

以上のステップS11からS16までの処理を行い、ホスト1からストレージ2へアクセス要求が行われた際の処理が終了する。   The processes from the above steps S11 to S16 are performed, and the process when an access request is made from the host 1 to the storage 2 is completed.

次に図7を参照して、本実施例において、コマンド処理部21が、記憶媒体221で発行中のコマンドについて完了通知を受け取った際の処理手順について説明する。   Next, with reference to FIG. 7, a processing procedure when the command processing unit 21 receives a completion notification for a command being issued in the storage medium 221 in the present embodiment will be described.

コマンド処理部21は、記憶媒体221からコマンド完了通知(記憶媒体内コマンドIDを含む)を受け取ると、コマンド管理テーブル232を参照して、記憶媒体内コマンドIDから、R/W欄を参照し、完了したコマンドの種類を判別する(図7のS21)。   Upon receiving the command completion notification (including the storage medium command ID) from the storage medium 221, the command processing unit 21 refers to the command management table 232, refers to the R / W column from the storage medium command ID, The type of the completed command is determined (S21 in FIG. 7).

完了したコマンドがReadであった場合(図7のS22のYes分岐)、コマンド処理部21は、Readコマンドの完了時の処理を行う(図7のS23)。ステップS23の詳細は図8を参照して後述される。   If the completed command is Read (Yes branch of S22 in FIG. 7), the command processing unit 21 performs processing when the Read command is completed (S23 in FIG. 7). Details of step S23 will be described later with reference to FIG.

完了したコマンドがWriteであった場合(図7のS22のNo分岐)、コマンド処理部21は、Writeコマンドの完了時の処理を行う(図7のS24)。ステップS24の詳細は図9を用いて後述される。   If the completed command is Write (No branch in S22 of FIG. 7), the command processing unit 21 performs processing upon completion of the Write command (S24 of FIG. 7). Details of step S24 will be described later with reference to FIG.

コマンド処理部21は、コマンド管理テーブル232の該当するコマンドの発行時間の欄を参照して、完了したコマンドが発行中のコマンド内で最も早く発行されたものであるかを判定する。すなわち、コマンド処理部21は、コマンド発行の順序と、コマンド完了順序が異なっているかを判定する。   The command processing unit 21 refers to the command issuance time column of the command management table 232 and determines whether the completed command is the earliest issued command being issued. That is, the command processing unit 21 determines whether the command issue order is different from the command completion order.

コマンド発行の順序とコマンド完了順序が異なっていた場合に、コマンド処理部21は、例えば図6のステップS15と同様の処理を行う(図7のS25)。すなわち、コマンド処理部21は、コマンドキュー222に投入されたコマンドの再スケジューリングを行う。   If the command issuance order is different from the command completion order, the command processing unit 21 performs, for example, the same processing as step S15 in FIG. 6 (S25 in FIG. 7). That is, the command processing unit 21 reschedules the command input to the command queue 222.

ステップS25の実行後、コマンド処理部21は、図6のステップS16と同様の処理を実行する(図7のS26)。すなわち、コマンド処理部21は、記憶媒体221に発行され、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数以下である場合、コマンド処理部21は、コマンドキュー222の先頭から記憶媒体221に対して発行中のコマンド数が予め所定数になるまで、コマンドの発行処理を行い、コマンド管理テーブル232上の実行状態を「発行」に変更し、コマンド管理テーブル232の対応するコマンドIDの発行時間の欄を、コマンド発行時の時間に設定する。   After execution of step S25, the command processing unit 21 executes the same processing as step S16 in FIG. 6 (S26 in FIG. 7). That is, the command processing unit 21 issues a command when the number of commands that are issued to the storage medium 221 and the actual access processing to the storage medium 221 is not completed (waiting for execution) is equal to or less than a predetermined number. The processing unit 21 performs command issuance processing from the head of the command queue 222 until the number of commands being issued to the storage medium 221 reaches a predetermined number in advance, and sets the execution state on the command management table 232 to “issue”. The command issuance time column of the corresponding command ID in the command management table 232 is set to the time when the command is issued.

以上のステップS21からS26までの処理を行い、コマンド処理部21が、記憶媒体221で発行中のコマンドについて完了通知を受け取った際の処理が終了する。   The processes from step S21 to S26 are performed, and the process when the command processing unit 21 receives a completion notification for the command being issued in the storage medium 221 ends.

図8は、図7のステップS23の詳細フロー図である。次にコマンド処理部21における図7のステップS23における更に詳細な処理手順について説明する。   FIG. 8 is a detailed flowchart of step S23 in FIG. Next, a more detailed processing procedure in step S23 of FIG. 7 in the command processing unit 21 will be described.

コマンド処理部21は、コマンド管理テーブル232における完了したコマンドの実行状態の欄を「完了」に変更する。また記憶媒体アクセス履歴格納部25にアクセスし、記憶媒体221が実行した命令の履歴情報を更新する(図8のS2301)。   The command processing unit 21 changes the execution status column of the completed command in the command management table 232 to “completed”. Further, the storage medium access history storage unit 25 is accessed to update the history information of the command executed by the storage medium 221 (S2301 in FIG. 8).

コマンド処理部21は、記憶媒体221から読み出されたデータを、コマンド管理テーブル232で指示されたデータ格納先アドレスの指し示すコマンド処理作業メモリ23上の領域に格納する(図8のS2302)。   The command processing unit 21 stores the data read from the storage medium 221 in an area on the command processing work memory 23 indicated by the data storage destination address specified by the command management table 232 (S2302 in FIG. 8).

コマンド処理部21は、アクセス要求管理テーブル231、及び、コマンド管理テーブル232を参照して、コマンドの発生源となったアクセス要求を処理するために必要なコマンドが全て完了しているかを確認する。例えばホスト1からの元のアクセス要求がReadであり、記憶媒体221がRAID1の構成である場合には、少なくとも1つの記憶媒体221からデータの読み出しが完了しさえすれば、アクセス要求の処理が可能である。完了したコマンドの読み出し結果のみでアクセス要求を処理可能であり、必要なコマンドは全て完了していること実質的に等価となる。   The command processing unit 21 refers to the access request management table 231 and the command management table 232, and confirms whether all the commands necessary for processing the access request that is the source of the command have been completed. For example, if the original access request from the host 1 is Read and the storage medium 221 has a RAID 1 configuration, the access request can be processed as long as data reading from at least one storage medium 221 is completed. It is. The access request can be processed only by the read result of the completed command, and it is substantially equivalent that all necessary commands are completed.

一方、ホスト1からの元のアクセス要求が同じくReadであり、記憶媒体221が4個の記憶媒体からなるRAID5の構成である場合には、読み出し対象のデータの実体が格納された全ての記憶媒体221に対するアクセスが完了するか、または任意の3個分のパリティデータを利用して要求されたデータを復元するかいずれかにより処理が可能である。   On the other hand, if the original access request from the host 1 is also Read and the storage medium 221 has a RAID 5 configuration consisting of four storage media, all storage media storing the substance of the data to be read are stored. The processing can be performed by either completing the access to 221 or restoring the requested data using any three parity data.

そのため、この場合は、データの実体が全て読み出されているか、または任意の3個の記憶媒体からデータが読み出されているか確認することで、必要なコマンドが全て完了しているか確認が可能である。コマンド処理部21は、記憶媒体221の構成情報をストレージ構成情報格納部24から取得する(図8のS2303)。   Therefore, in this case, it is possible to check whether all necessary commands have been completed by checking whether all data has been read or whether data has been read from any three storage media. It is. The command processing unit 21 acquires the configuration information of the storage medium 221 from the storage configuration information storage unit 24 (S2303 in FIG. 8).

コマンド処理部21は、ステップS2303における確認の結果、アクセス要求に必要なコマンドが全て完了していない場合(図8のS2304のNo分岐)、ステップS23の処理を終了する。   As a result of the confirmation in step S2303, if all the commands necessary for the access request are not completed (No branch in S2304 in FIG. 8), the command processing unit 21 ends the process in step S23.

ステップS2303の結果、アクセス要求に必要なコマンドが全て完了している場合(図8のS2304のYes分岐)、コマンド処理部21は、次ステップS2305の判定を実行する。   As a result of step S2303, when all the commands necessary for the access request have been completed (Yes branch of S2304 in FIG. 8), the command processing unit 21 executes the determination of next step S2305.

コマンド発行の元となったアクセス要求がWriteである場合(図8のS2305のYes分岐)、コマンド処理部21は、コマンド処理作業メモリ23上のRead結果と、ホスト1からWriteが要求された書き込みデータからパリティデータを再計算する(S2311)。すなわち、コマンド処理部21は、コマンドの発生の元となったアクセス要求を処理するために実行したReadコマンドの結果を、コマンド管理テーブル232のデータ格納先アドレスを参照してコマンド処理作業メモリ23から読み出す。読み出したデータとホスト1から書き込みを指示されたデータから、コマンドの発生源となったWriteアクセス要求に伴って発生する更新後のパリティデータの再計算処理を行い、結果をコマンド処理作業メモリ23の空き領域に格納する。   When the access request from which the command is issued is Write (Yes branch in S2305 in FIG. 8), the command processing unit 21 reads the Read result on the command processing work memory 23 and the write for which Write is requested from the host 1. Parity data is recalculated from the data (S2311). That is, the command processing unit 21 refers to the data storage destination address of the command management table 232 from the command processing work memory 23 with respect to the result of the Read command executed to process the access request that has caused the generation of the command. read out. From the read data and the data instructed to be written by the host 1, recalculation processing of the updated parity data generated in response to the write access request that is the command generation source is performed, and the result is stored in the command processing work memory 23. Store in free space.

そして、コマンド処理部21は、再計算したパリティデータをWrite対象のデータとするように、コマンド管理テーブル232を更新し、パリティを格納する記憶媒体221に対するWriteコマンドをコマンドキュー222に投入し、パリティデータの書き込みを行う(S2312)。すなわち、コマンド処理部21は、ステップS2311で計算されたデータがパリティデータ更新用に生成されたコマンドで使用されるように、コマンド管理テーブル232のパリティデータ更新用コマンドに対するデータ格納先アドレスを更新して、ステップS23の処理を終了する。   Then, the command processing unit 21 updates the command management table 232 so that the recalculated parity data is the write target data, and inputs the write command for the storage medium 221 storing the parity to the command queue 222, Data is written (S2312). That is, the command processing unit 21 updates the data storage destination address for the parity data update command in the command management table 232 so that the data calculated in step S2311 is used in the command generated for parity data update. Then, the process of step S23 is completed.

コマンド発行の元となったアクセス要求がReadである場合(図8のS2305のNo分岐)、コマンド処理部21は、ステップS2306の判定を実行する。コマンドの発生の元となったアクセス要求を処理するために必要なコマンドにおいて、パリティの読み出しを行っていない、つまり、コマンド全てが要求されたデータの実体に対するReadである場合(図8のS2306のNo分岐)、コマンド処理部21は、ステップS2308を実行する。   When the access request from which the command is issued is Read (No branch in S2305 in FIG. 8), the command processing unit 21 executes the determination in step S2306. In the command necessary for processing the access request that caused the generation of the command, the parity is not read, that is, the command is a Read for the requested data entity (in S2306 of FIG. 8). No branch), the command processing unit 21 executes Step S2308.

コマンドの発生源となったアクセス要求を処理するために必要なコマンドにおいて、パリティの読み出しを行っている場合(図8のS2306のYes分岐)、コマンド処理部21は、コマンドの発生元のアクセス要求を処理するために実行したコマンドのRead結果を、コマンド管理テーブル232のデータ格納先アドレスを参照してコマンド処理作業メモリ23から読み出す。読み出したパリティデータを用いてホスト1から要求されたデータを計算する(図8のS2307)。パリティからのデータの復元方法は、例えば記憶媒体221の構成がRAID5である場合は冗長関係にあるデータ間でのXOR演算で復元可能である等、記憶媒体221の構成方法によって異なる。そのため記憶媒体221の構成情報をストレージ構成情報格納部24から取得する。   In the command necessary for processing the access request that is the source of the command, when the parity is read (Yes branch of S2306 in FIG. 8), the command processing unit 21 determines the access request of the command generation source. The result of reading the command executed to process the command is read from the command processing work memory 23 with reference to the data storage destination address of the command management table 232. Data requested from the host 1 is calculated using the read parity data (S2307 in FIG. 8). The method of restoring data from parity differs depending on the method of configuring the storage medium 221, for example, when the configuration of the storage medium 221 is RAID 5, it can be restored by an XOR operation between data in a redundant relationship. Therefore, the configuration information of the storage medium 221 is acquired from the storage configuration information storage unit 24.

コマンド処理部21は、生成または読み出された、ホスト1からRead要求されたデータを、ホストにそのまま送信可能な形に変換、構成する(図8のS2308)。   The command processing unit 21 converts and configures the data requested or read-read from the host 1 into a form that can be transmitted to the host as it is (S2308 in FIG. 8).

コマンド処理部21は、アクセス要求元のホスト1に対してステップS2308で得られた結果を送信する(図8のS2309)。   The command processing unit 21 transmits the result obtained in step S2308 to the access request source host 1 (S2309 in FIG. 8).

コマンド処理部21は、コマンド管理テーブル232から、処理が完了した着目中の同一アクセス要求に由来する登録された全コマンドのデータを削除する。また、コマンド処理部21は、アクセス要求管理テーブル231から、処理が完了した着目中のアクセス要求に関するデータを削除する。   The command processing unit 21 deletes from the command management table 232 the data of all registered commands that are derived from the same access request that is being processed and that has been processed. In addition, the command processing unit 21 deletes the data related to the access request under attention whose processing has been completed from the access request management table 231.

コマンド処理部21は、マンド管理テーブル232から削除したコマンド、アクセス要求管理テーブル231から削除したアクセス要求が使用していたコマンド処理作業メモリ上の領域を解放し、ステップS23の処理を終了する(図8のS2310)。   The command processing unit 21 releases an area on the command processing work memory used by the command deleted from the command management table 232 and the access request deleted from the access request management table 231, and ends the process of step S23 (FIG. 8 S2310).

以上のステップS2301からS2312までの処理を行い、コマンド処理部21の、前記ステップS23における処理が終了する。   The processes from step S2301 to S2312 are performed, and the command processing unit 21 ends the process in step S23.

次に図9を参照してコマンド処理部21の、図7のステップS24における更に詳細な処理手順について説明する。   Next, a more detailed processing procedure in step S24 of FIG. 7 of the command processing unit 21 will be described with reference to FIG.

コマンド処理部21は、ステップS2301と同様の処理を実行する(図9のS241)。   The command processing unit 21 executes the same process as in step S2301 (S241 in FIG. 9).

続いてコマンド処理部21は、ステップS2303と同様の処理を実行する(図9のS242)。   Subsequently, the command processing unit 21 executes the same processing as step S2303 (S242 in FIG. 9).

ステップS242における確認の結果、アクセス要求に必要なコマンドが全て完了していない場合(図9のS243のNo分岐)、ステップS24の処理を終了する。   As a result of the confirmation in step S242, if all the commands necessary for the access request are not completed (No branch in S243 in FIG. 9), the process in step S24 is terminated.

ステップS242における確認の結果、アクセス要求に必要なコマンドが全て完了している場合(S243のYes分岐)、コマンド処理部21はステップS2310と同様の処理を実行して、ステップS24の処理を終了する(図9のS244)。   As a result of the confirmation in step S242, if all the commands necessary for the access request have been completed (Yes branch in S243), the command processing unit 21 executes the same process as in step S2310 and ends the process in step S24. (S244 in FIG. 9).

以上のステップS241からS244までの処理を行い、コマンド処理部21の、前記ステップS24における処理が終了する。   The processes from step S241 to S244 are performed, and the process in step S24 of the command processing unit 21 is completed.

次に図10を参照して、図6、図7のステップS15、S25における、コマンド処理部21のコマンド発行順序のスケジューリング、及び実際に発行するコマンドの選択の、更に詳細な処理手順について説明する。   Next, with reference to FIG. 10, a more detailed processing procedure of command issue order scheduling and command selection to be actually issued by the command processing unit 21 in steps S15 and S25 of FIGS. 6 and 7 will be described. .

コマンド処理部21は、コマンドキュー222に存在するコマンドの発行順序を、対応する記憶媒体221の特性に合わせて整列させる。   The command processing unit 21 arranges the issue order of commands existing in the command queue 222 according to the characteristics of the corresponding storage medium 221.

例えば記憶媒体221がハードディスクで構成される場合、前記非特許文献2で述べられたSCANまたはエレベータアルゴリズムと呼ばれる方法でコマンドの発行順序を整列することが可能である。コマンドを整列することによって、ハードディスクのヘッドの移動距離が短縮されることで、記憶媒体221であるハードディスクについて複数コマンドを発行した場合の全体のアクセス時間の短縮が可能である。   For example, when the storage medium 221 is composed of a hard disk, it is possible to arrange the command issuing order by a method called SCAN or elevator algorithm described in Non-Patent Document 2. By arranging the commands, the moving distance of the head of the hard disk is shortened, so that the entire access time when a plurality of commands are issued for the hard disk as the storage medium 221 can be shortened.

但し、コマンドキュー222がWriteコマンドを含む場合、コマンド処理部21は、後に生成されたコマンドがWriteコマンドと同一領域をアクセスするか判定を行う。後に生成されたコマンドとWriteコマンドがアクセスする領域が重なる場合、コマンドの順序が入れ替わると、アクセス要求の処理に矛盾が生じる。このため、コマンド処理部21は、これらのコマンドの順序が入れ替わることを禁止する。   However, when the command queue 222 includes a Write command, the command processing unit 21 determines whether a command generated later accesses the same area as the Write command. When the command generated later and the area accessed by the Write command overlap, if the order of the commands is changed, the processing of the access request becomes inconsistent. For this reason, the command processing unit 21 prohibits the order of these commands from being changed.

また、コマンド処理部21は、記憶媒体221のアクセス特性、物理的特性に応じたコマンドの整列処理を行うためには記憶媒体221の種類、アクセス特性に関する情報が必要である。コマンド処理部21は、これらの情報をストレージ構成情報格納部24から取得する(図10のS31)。   Further, the command processing unit 21 needs information on the type and access characteristics of the storage medium 221 in order to perform command alignment processing according to the access characteristics and physical characteristics of the storage medium 221. The command processing unit 21 acquires these pieces of information from the storage configuration information storage unit 24 (S31 in FIG. 10).

コマンドキュー222に対するコマンドの整列処理の後、コマンド処理部21は、各記憶媒体221に対してコマンドキュー222に属するコマンドを順序通りに実行した場合に全ての処理が完了するまでの予測時間を算出する。   After the command alignment process for the command queue 222, the command processing unit 21 calculates an estimated time until all the processes are completed when the commands belonging to the command queue 222 are executed in order for each storage medium 221. To do.

例えば記憶媒体221がハードディスクで構成される場合、各コマンドの処理に要する時間はヘッドのシーク時間、コマンドがアクセスを行うブロックがヘッドの位置まで到着するために要するディスクの回転待ち時間、実際にアクセス対象のブロックに対してアクセスを行う時間の3種類の処理時間の合計から計算可能である。また、全コマンドの処理に要する時間は各コマンドの処理時間の合計で表される。   For example, when the storage medium 221 is composed of a hard disk, the time required for processing each command is the head seek time, the disk rotation waiting time required for the block accessed by the command to reach the head position, and the actual access It can be calculated from the total of the three types of processing times for accessing the target block. The time required for processing all commands is represented by the total processing time of each command.

コマンド処理部21で記憶媒体221の処理完了時間を算出するためには、アクセス特性、アクセス時間の情報が必要とされるが、コマンド処理部21は、これらの情報をストレージ構成情報格納部24から取得する(図10のS32)。   In order for the command processing unit 21 to calculate the processing completion time of the storage medium 221, information on access characteristics and access time is required. The command processing unit 21 receives these information from the storage configuration information storage unit 24. Obtain (S32 in FIG. 10).

コマンド処理部21は、ステップS32におけるアクセス完了時間予測の結果を用いて、例えば記憶媒体221から最も処理完了時間が遅いと予測された記憶媒体に着目する。   The command processing unit 21 pays attention to, for example, a storage medium predicted to be the latest processing completion time from the storage medium 221 using the result of the access completion time prediction in step S32.

コマンド処理部21は、最も処理完了時間が遅いと予測された記憶媒体に対して、
コマンドキュー222に含まれる発行予定のコマンドのうち、
・コマンドを発行しなくてもホスト1からのアクセス要求を処理することが可能であり、且つ、
・記憶媒体へのアクセス処理時間の遅延の原因となるコマンドについて削除状態への変更を試みる(図10のS33)。
The command processing unit 21 performs the processing for the storage medium predicted to have the latest processing completion time.
Of the commands to be issued included in the command queue 222,
It is possible to process an access request from the host 1 without issuing a command, and
A command that causes a delay in access processing time to the storage medium is attempted to be changed to a deleted state (S33 in FIG. 10).

コマンド処理部21は、ステップS33の処理の結果、記憶媒体221に対して発行するコマンドの削除状態への変更に成功した場合(S34のNo分岐)、ステップS31に戻って処理を続ける。   If the command processing unit 21 succeeds in changing the command issued to the storage medium 221 to the deleted state as a result of the processing in step S33 (No branch in S34), the command processing unit 21 returns to step S31 and continues the processing.

ステップS33の処理の結果、記憶媒体221に対して発行するコマンドの削除状態への変更に失敗した場合(S34のYes分岐)、コマンド処理部21は、前記ステップS33では処理完了時間が最も遅いと予測される記憶媒体221に限定していたコマンドの削除処理を、他の記憶媒体221についても行う。   As a result of the processing in step S33, if the command issued to the storage medium 221 has failed to be changed to the deletion state (Yes branch in S34), the command processing unit 21 determines that the processing completion time is the latest in step S33. The command deletion processing that is limited to the predicted storage medium 221 is also performed for the other storage medium 221.

コマンド処理部21は、コマンドキュー222に含まれる発行予定のコマンドのうち、コマンドを発行しなくてもホスト1からのアクセス要求を処理することが可能であるコマンドの削除状態への変更を試みる。   The command processing unit 21 attempts to change a command that can process an access request from the host 1 to a deletion state without issuing a command among commands to be issued included in the command queue 222.

削除可能であるかの判断基準は、記憶媒体221の構成、冗長データの格納形態により異なるため、コマンド処理部21は、記憶媒体221の構成情報をストレージ構成情報格納部24から取得する。   Since the criterion for determining whether or not deletion is possible differs depending on the configuration of the storage medium 221 and the storage form of the redundant data, the command processing unit 21 acquires the configuration information of the storage medium 221 from the storage configuration information storage unit 24.

削除対象となるコマンドの例を次に示す。   The following are examples of commands to be deleted.

ホスト1からの元のアクセス要求がReadであり、記憶媒体221がRAID1の構成である場合は、1つ以上の記憶媒体221からデータが読み出すことができれば、アクセス要求を処理可能である。そのため、このアクセス要求に対するコマンドが複数の記憶媒体221に対して存在する場合、1つのコマンドを除いて、他のコマンドを削除状態にすることが可能である。   If the original access request from the host 1 is Read and the storage medium 221 has a RAID 1 configuration, the access request can be processed if data can be read from one or more storage media 221. Therefore, when a command for this access request exists for a plurality of storage media 221, it is possible to delete other commands except for one command.

一方、ホスト1からの元のアクセス要求が同じくReadであり、記憶媒体221が4個の記憶媒体221からなるRAID5の構成である場合、読み出し対象のデータの実体が格納された全ての記憶媒体221に対するアクセスが完了するか、または、任意の3個分のパリティデータを利用して要求されたデータを復元するか、いずれかにより処理が可能である。このため、このアクセス要求に対するコマンドが4個の記憶媒体221に対して全てに発行予定である場合、1個のコマンドは削除状態にしても読み出し対象のデータをパリティから生成することが可能である。よって4個の記憶媒体に対する4個のコマンドキュー222のうち任意の1つに含まれるコマンドを削除状態にすることが可能である(図10のS35)。   On the other hand, when the original access request from the host 1 is also Read and the storage medium 221 has a RAID 5 configuration including four storage media 221, all the storage media 221 storing the substance of the data to be read are stored. Can be processed by either completing the access to or restoring the requested data using any three parity data. For this reason, when a command for this access request is scheduled to be issued to all four storage media 221, even if one command is in a deleted state, data to be read can be generated from parity. . Therefore, it is possible to delete a command included in any one of the four command queues 222 for the four storage media (S35 in FIG. 10).

以上のステップS31からS35までの処理を行い、コマンド処理部21の、前記ステップS15、S25におけるコマンド発行順序のスケジューリング、及び実際に発行するコマンドの選択の処理が終了する。   The processes from step S31 to S35 described above are performed, and the command processing unit 21 performs the scheduling of command issue order and the process of selecting a command to be actually issued in steps S15 and S25.

次に図11、図12を参照してコマンド処理部21による、図10のステップS33における更に詳細な処理手順について説明する。図12(b)は、コマンドとアーム位置の対応一覧、図12(a)は、図12(b)のコマンドをエレベータアルゴリズムによって整列した場合のシーク動作を説明するための模式図である。   Next, a more detailed processing procedure in step S33 of FIG. 10 by the command processing unit 21 will be described with reference to FIGS. FIG. 12B is a correspondence list between commands and arm positions, and FIG. 12A is a schematic diagram for explaining a seek operation when the commands in FIG. 12B are arranged by an elevator algorithm.

コマンド処理部21は、コマンドキュー222に含まれる記憶媒体221に発行予定のコマンドから最も大きな処理時間をもたらす原因となるコマンドに着目して、後続のステップでコマンドが削除可能であるか判定するために、判定対象のコマンドを選択する。   The command processing unit 21 pays attention to a command that causes the longest processing time from a command scheduled to be issued to the storage medium 221 included in the command queue 222, and determines whether the command can be deleted in a subsequent step. Next, the command to be judged is selected.

最も大きな処理時間をもたらすコマンドは、例えば記憶媒体221がハードディスクで構成される場合、非特許文献2で述べられたエレベータアルゴリズムによってコマンドの実行順序が決定される限り、アクセス時のディスクのヘッド位置が初期のヘッドの位置から最も遠くなるコマンドである。   For example, when the storage medium 221 is configured by a hard disk, the command that causes the longest processing time is that the head position of the disk at the time of access is determined as long as the command execution order is determined by the elevator algorithm described in Non-Patent Document 2. This command is farthest from the initial head position.

図12の例では、コマンドA、B、Cのうち、コマンドCを削除した場合に最もシーク距離が削減されるため、コマンドCが削除可能であるかの判定対象として選択される。   In the example of FIG. 12, since the seek distance is most reduced when the command C is deleted from the commands A, B, and C, the command C is selected as a determination target whether the command C can be deleted.

このように、ヘッドの初期位置から最も離れたブロックにアクセスするコマンドを削除することによって、コマンドキュー222に含まれる全てのコマンドを実行するために必要なシーク距離、シーク時間の削減が可能である。   In this way, by deleting the command that accesses the block farthest from the initial position of the head, it is possible to reduce the seek distance and seek time required to execute all the commands included in the command queue 222. .

また、コマンド処理部21において、判定対象のコマンド選択処理が繰り返し実行される場合、一度判定対象となったコマンドは選択せず、その次に大きな処理時間をもたらす原因となるコマンドを選択する。例えば、記憶媒体221がハードディスクで構成される場合、既に判定対象となったコマンド以外でヘッドの初期位置から最も離れたコマンドを選択する。   Further, when the command selection process for the determination target is repeatedly executed in the command processing unit 21, the command that has been the determination target is not selected, but the command that causes the next largest processing time is selected. For example, when the storage medium 221 is composed of a hard disk, a command that is farthest from the initial position of the head other than the command already determined is selected.

加えて記憶媒体221がハードディスクである場合は、ヘッドの初期位置から最も離れたブロックにアクセスするコマンド、及び2番目に離れたブロックにアクセスするコマンドが削除できなかった場合、全コマンドを処理するために必要なシーク距離の削減は不可能である。   In addition, when the storage medium 221 is a hard disk, in order to process all commands when the command for accessing the block farthest from the initial position of the head and the command for accessing the block farthest from the head cannot be deleted. It is impossible to reduce the seek distance required for the operation.

このため、これらの2つのコマンドが削除できなかった場合、その時点でステップS33を終了してもよい(図11のS331)。   For this reason, when these two commands cannot be deleted, step S33 may be terminated at that time (S331 in FIG. 11).

ステップS331において判定対象のコマンドが存在しなかった場合(図11のS332のYes分岐)、コマンド処理部21はステップS33の処理を終了する。   If there is no command to be determined in step S331 (Yes branch in S332 in FIG. 11), the command processing unit 21 ends the process in step S33.

ステップS331において判定対象のコマンドが存在した場合(図11のS332のNo分岐)、コマンド処理部21は、ステップS331で着目したコマンドが削除可能であるかどうかの判定を行う。   If there is a command to be determined in step S331 (No branch in S332 in FIG. 11), the command processing unit 21 determines whether or not the command focused in step S331 can be deleted.

コマンドが削除可能であるかは、着目したコマンドを実行しなかった場合に、着目したコマンドの発生元であるホスト1からのアクセス要求に対する処理が可能であるかどうかを調べることで判定可能である。削除可能であるかの判断基準は、記憶媒体221の構成、冗長データの格納形態により異なるため、コマンド処理部21は、記憶媒体221の構成情報をストレージ構成情報格納部24から取得する。   Whether or not the command can be deleted can be determined by examining whether or not processing for an access request from the host 1 that is the source of the focused command is possible when the focused command is not executed. . Since the criterion for determining whether or not deletion is possible differs depending on the configuration of the storage medium 221 and the storage form of the redundant data, the command processing unit 21 acquires the configuration information of the storage medium 221 from the storage configuration information storage unit 24.

コマンドが削除可能であるかの具体的な判定の一例は以下に示す通りである。例えば、判定対象のコマンドの発生源である、ホスト1からの元のアクセス要求がReadであり、記憶媒体221がRAID1の構成である場合は、1つ以上の記憶媒体221からデータが読み出せればアクセス要求を処理可能である。   An example of specific determination as to whether a command can be deleted is as follows. For example, if the original access request from the host 1 that is the generation source of the command to be determined is Read and the storage medium 221 has a RAID 1 configuration, if data can be read from one or more storage media 221 The access request can be processed.

コマンド処理部21が判定を行う時点で、コマンド管理テーブル232を参照して、元のアクセス要求に対して削除判定対象以外のコマンドが既に削除状態となっている場合、判定対象のコマンドは削除が不可能である。   When the command processing unit 21 makes a determination, the command management table 232 is referred to. If a command other than the deletion determination target is already in the deletion state with respect to the original access request, the determination target command is deleted. Impossible.

逆に、削除判定対象以外のコマンドが1つ以上削除状態以外でコマンドキュー222に存在する場合、判定対象のコマンドによらずアクセス要求に対する処理を実行可能であり、コマンドの削除が可能である(図11のS333)。   Conversely, when one or more commands other than the deletion determination target exist in the command queue 222 other than in the deletion state, the processing for the access request can be executed regardless of the determination target command, and the command can be deleted ( S333 in FIG. 11).

ステップS333において、コマンドの削除が不可能と判定された場合(図11のS334のNo分岐)、コマンド処理部21は、ステップS331に戻って処理を行う。   If it is determined in step S333 that the command cannot be deleted (No branch in S334 of FIG. 11), the command processing unit 21 returns to step S331 to perform processing.

ステップS333において、コマンドの削除が可能と判定された場合(図11のS334のYes分岐)、コマンド処理部21は、ステップS33の処理を終了する。   If it is determined in step S333 that the command can be deleted (Yes branch in S334 of FIG. 11), the command processing unit 21 ends the process of step S33.

上記ステップS11からS16、ステップS21からS26、及びステップS31からS35までの第1の動作例として、ストレージ2のデータ記憶部22に含まれる記憶媒体221がハードディスク2台から構成され、これらのディスクがRAID1構成を採る場合の、ホスト1からストレージ2に対してReadアクセス要求が行われた場合の動作について、図2乃至図11、及び、図13、図14を参照して説明する。   As a first operation example from steps S11 to S16, steps S21 to S26, and steps S31 to S35, the storage medium 221 included in the data storage unit 22 of the storage 2 is composed of two hard disks. An operation when a read access request is made from the host 1 to the storage 2 in the case of adopting the RAID 1 configuration will be described with reference to FIGS. 2 to 11, 13, and 14.

データ記憶部22の記憶媒体221を構成するハードディスクは、図13に示したブロック配置と以下の特徴を持つディスクを例として用いる。図13(a)にはプラッタ上のトラック配置(トラック#0〜#1001)、図13(b)にはトラック上のブロック配置(ブロック#0〜#999)が模式的に示されている。   As a hard disk constituting the storage medium 221 of the data storage unit 22, a disk having the block arrangement shown in FIG. 13 and the following characteristics is used as an example. FIG. 13A schematically shows the track arrangement on the platter (tracks # 0 to # 1001), and FIG. 13B schematically shows the block arrangement on the track (blocks # 0 to # 999).

まず、アクセス先アドレスに対する応答時間の問い合わせに対応する機能を持たない。ハードディスクのプラッタ、ヘッドの数は共に1である。   First, it does not have a function to respond to an inquiry about the response time for the access destination address. The number of platters and heads on the hard disk is one.

アクセスへの応答時間はハードディスクのシーク時間、ハードディスクの回転待ち時間、アクセス時間の合計に等しく、ハードディスクのシーク距離とシーク時間は比例する。   The response time to access is equal to the sum of the seek time of the hard disk, the rotation waiting time of the hard disk, and the access time, and the seek distance of the hard disk is proportional to the seek time.

ハードディスクの最外周から最内周までのシーク時間は10msとする。   The seek time from the outermost periphery to the innermost periphery of the hard disk is 10 ms.

またハードディスクの回転待ち時間とアクセス時間の合計を4msとする。   The total of the hard disk rotation waiting time and access time is 4 ms.

ブロックを円周上に並べたトラックあたりのブロック数を全てのトラックで1000とする。   The number of blocks per track in which the blocks are arranged on the circumference is 1000 for all tracks.

また、トラックのプラッタ上の配置間隔は等間隔であり、プラッタ上の総トラック数を10001とする。   Also, the arrangement interval of the tracks on the platter is equal, and the total number of tracks on the platter is 10001.

プラッタ上のトラックに対して最外周から順に0番を起点に番号を割り当てるものとする。   Assume that numbers are assigned to the tracks on the platter starting from number 0 in order from the outermost periphery.

ハードディスク上のブロックに対して最外周のトラックから順番にアドレス番号が割り当てられる。   Address numbers are assigned to the blocks on the hard disk in order from the outermost track.

例えば最外周のトラックには、アドレス0から999までのブロックが含まれ、最外周から2番目のトラックにはアドレス1000から1999までのブロックが含まれる。   For example, the outermost track includes blocks from addresses 0 to 999, and the second track from the outermost track includes blocks from addresses 1000 to 1999.

また、記憶媒体221を構成する2台のハードディスクをそれぞれディスクA、ディスクBとする。   Further, the two hard disks constituting the storage medium 221 are referred to as a disk A and a disk B, respectively.

ストレージ2全体のアドレス空間と2台のハードディスクのアドレス空間との対応関係は図7に示した通りである。2台のハードディスクはRAID1構成であることから共通のデータを保持し、ストレージ2全体のアドレス空間と2台の各ディスクの記憶領域は一致する。つまりストレージ2全体のアドレス空間のあるアドレス上のブロックのデータは、各ディスクの同一アドレスに存在するブロックのデータと一致する。   The correspondence between the address space of the entire storage 2 and the address space of the two hard disks is as shown in FIG. Since the two hard disks have a RAID 1 configuration, they hold common data, and the address space of the entire storage 2 matches the storage area of each of the two disks. That is, the data of the block on an address in the address space of the entire storage 2 matches the data of the block existing at the same address of each disk.

記憶媒体221を構成する2台のハードディスクA、Bについて、各ディスクのヘッドの初期位置、つまり直前のアクセス位置は、ディスクAが最外周のトラック(0番のトラック)、ディスクBが最内周のトラック(10000番のトラック)上であるとする。   With respect to the two hard disks A and B constituting the storage medium 221, the initial position of the head of each disk, that is, the immediately preceding access position, is that the disk A is the outermost track (0th track) and the disk B is the innermost track. Suppose that the track is on the track No. 10000 (track no.

また、各ディスクに対して同時に投入する命令は1個とする。   Further, it is assumed that one instruction is simultaneously input to each disk.

この状態でホスト1がストレージ2のアドレス1000000、8000000、4000000のブロックのデータに対して1ms間隔で1ブロック分のアクセス長のRead要求を出すものとする。ホスト1からのReadアクセス要求を順番に(A)、(B)、(C)とする。   In this state, it is assumed that the host 1 issues a read request for an access length of one block at an interval of 1 ms for the data of the blocks having the addresses 1000000, 8000000, and 4000000 in the storage 2. Read access requests from the host 1 are (A), (B), and (C) in order.

まずストレージ2がアクセス要求(A)を受け取る際の動作について説明する。
コマンドはストレージ2のコマンド処理部21によって解釈される。
First, the operation when the storage 2 receives the access request (A) will be described.
The command is interpreted by the command processing unit 21 of the storage 2.

アクセス要求(A)のアクセスの種類、アクセス先頭ブロック、アクセス長、要求元ホストの情報がアクセス要求管理テーブル231に登録される。   Information of the access type, access head block, access length, and request source host of the access request (A) is registered in the access request management table 231.

コマンド処理部21が受け取ったアクセス要求はReadであるため、次に、コマンド処理部21はアクセス要求を処理するための記憶媒体221に対するコマンドを生成する。   Since the access request received by the command processing unit 21 is Read, the command processing unit 21 next generates a command for the storage medium 221 for processing the access request.

ストレージ2のアドレス空間と、記憶媒体221を構成するディスクA、Bの記憶領域との対応関係は、図14に示した通りである。   The correspondence between the address space of the storage 2 and the storage areas of the disks A and B constituting the storage medium 221 is as shown in FIG.

よって、ストレージ2のアドレス1000000に対するアクセスは、ディスクA、Bのアドレス1000000のブロックに対するReadコマンドによって実現される。   Therefore, access to the address 1000000 of the storage 2 is realized by the Read command for the block of the address 1000000 on the disks A and B.

コマンド処理部21は、ディスクA、Bに対する前記Readコマンドについて、アクセスの種類、アクセス先頭ブロック、アクセス長、コマンド処理作業メモリ23上に確保された領域であるデータの格納先アドレス、コマンドの生成元であるアクセス要求を表すID、そして実行状態(「待機」状態)をディスクA、Bそれぞれに対応したコマンド管理テーブル232に登録する。同時にディスクA、Bそれぞれに対応したコマンドキュー222の末尾に前記Readコマンドを投入する。   The command processing unit 21 relates to the Read command for the disks A and B, the access type, the access head block, the access length, the storage destination address of the data that is an area secured on the command processing work memory 23, the command generation source Are registered in the command management table 232 corresponding to the disks A and B, respectively, and the ID indicating the access request and the execution state (“standby” state). At the same time, the Read command is input to the end of the command queue 222 corresponding to each of the disks A and B.

コマンド処理部21は、コマンドの生成が完了した後に、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリングを行う。ディスクA、Bそれぞれについて非特許文献2に開示されたエレベータアルゴリズムを用いてシーク時間が最適化されるようにコマンドの整列を行う。   The command processing unit 21 schedules commands included in the command queue 222 corresponding to each of the disks A and B after the command generation is completed. Using the elevator algorithm disclosed in Non-Patent Document 2 for each of the disks A and B, the commands are aligned so that the seek time is optimized.

各コマンドキュー222には、コマンドが1個のみ存在する状態であるため、それぞれのコマンドキュー222において、アクセス要求(A)に由来するコマンドが実行順序の先頭に来る。   Since each command queue 222 has only one command, in each command queue 222, the command derived from the access request (A) comes first in the execution order.

コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。すなわち、コマンド処理部21は、ディスクA、Bそれぞれがアクセス要求(A)に由来するReadコマンドを完了するまでの時間を算出する。   The command processing unit 21 calculates a time until processing of commands belonging to each command queue 222 is completed. That is, the command processing unit 21 calculates the time until each of the disks A and B completes the Read command derived from the access request (A).

前記アクセス先に対するアクセス時間の特性を示す、ハードディスクの物理的、論理的構成情報によると、アクセス先であるアドレス1000000のブロックは最外周から1001番目、つまり1000番のトラック上に存在する。このとき、ディスクA、Bのヘッド位置は最終アクセス時のヘッド位置からディスクAでは最外周、ディスクBでは最内周のトラック上に存在する。ディスクディスクのヘッドがアクセス先のブロックの存在するトラック上にシークするためには、ディスクAで1000個分のトラック、ディスクBで10000−1000=9000個分のトラックについてのシークが必要である。   According to the physical and logical configuration information of the hard disk indicating the access time characteristics with respect to the access destination, the block with the address 1000000 as the access destination exists on the 1001st track, that is, the 1000th track from the outermost periphery. At this time, the head positions of the disks A and B exist on the outermost track of the disk A and the innermost track of the disk B from the head position at the time of the last access. In order for the head of the disk disk to seek on the track where the access destination block exists, seeking for 1000 tracks on the disk A and 10,000-1000 = 9000 tracks on the disk B is necessary.

つまり、2台のディスクA、Bのうち、ヘッドのシーク時間とシーク距離は比例するため、アクセス対象のデータへのシーク時間は、
ディスクAで、10ms×1000/10000=1ms、
ディスクBで、10ms×9000/10000=9ms
である。回転待ち時間とアクセス時間の合計が4msであるため、アクセス完了時間は、
ディスクAで、1+4=5ms、
ディスクBで、9+4=13ms、
となる。
In other words, of the two disks A and B, the seek time of the head and the seek distance are proportional, so the seek time to the data to be accessed is
With disk A, 10 ms × 1000/10000 = 1 ms,
With disk B, 10 ms x 9000/10000 = 9 ms
It is. Since the total of the rotation waiting time and the access time is 4 ms, the access completion time is
With disk A, 1 + 4 = 5 ms,
With disk B, 9 + 4 = 13 ms,
It becomes.

よって、ディスクAからアクセス対象のブロックをReadする方が、アクセス処理時間が短くなる。   Therefore, reading the access target block from the disk A shortens the access processing time.

ここで、コマンド処理部21は、アクセス処理時間の長いディスクB側のコマンドキュー222に着目して、
・実行が不要であり、且つ、
・大きな処理時間をもたらす、
コマンドを削除する。
Here, the command processing unit 21 pays attention to the command queue 222 on the disk B side having a long access processing time,
-Execution is unnecessary and
・ Large processing time,
Delete the command.

ディスクB側のコマンドキュー222には、アクセス要求(A)に由来するコマンドのみが格納されている。   The command queue 222 on the disk B side stores only commands derived from the access request (A).

コマンド処理部21は、ディスクA、Bはストレージ構成情報格納部24の情報から、互いにミラーの関係にあることを認識し、アクセス要求(A)の処理を完了するにはディスクA、Bいずれか片方へのアクセスのみが必要である。   The command processing unit 21 recognizes from the information in the storage configuration information storage unit 24 that the disks A and B are in a mirror relationship with each other, and either of the disks A and B is required to complete the processing of the access request (A). Only access to one is required.

よって、ディスクBに対するコマンドキュー222からアクセス要求(A)に由来するコマンドを削除可能であると分かる。   Therefore, it can be seen that the command derived from the access request (A) can be deleted from the command queue 222 for the disk B.

コマンド処理部21は、コマンドを削除状態とするため、コマンド管理テーブル232の実行状態の情報を更新する。   The command processing unit 21 updates the execution state information in the command management table 232 in order to place the command in the deletion state.

コマンド処理部21は、コマンドの削除に成功したため、更に他のコマンドの削除を試みるが、アクセス要求(A)に由来するコマンドのみが発行された状態で、既にディスクB側のコマンドが削除されているため、これ以上のコマンド削除は不可能である。   Since the command processing unit 21 succeeded in deleting the command, the command processing unit 21 tries to delete another command. However, the command on the disk B side is already deleted in a state where only the command derived from the access request (A) is issued. Therefore, no more commands can be deleted.

そのため、コマンド処理部21は、ディスクB側のコマンドを削除してコマンド処理部21によるスケジューリング処理は完了する。   Therefore, the command processing unit 21 deletes the command on the disk B side, and the scheduling processing by the command processing unit 21 is completed.

コマンド処理部21は、スケジューリングが完了した時点で各ディスクA、Bに発行されたコマンドは存在しないため、ディスクA、Bに対して新たにコマンド発行処理を行う。   Since there is no command issued to each of the disks A and B when the scheduling is completed, the command processing unit 21 newly performs a command issuing process for the disks A and B.

発行するコマンドはコマンドキュー222に登録されたコマンドのうち、先頭のコマンドである。ディスクAに対しては、アクセス要求(A)に由来するコマンドが「待機」状態であるためそのまま発行される。このとき、コマンド処理部21は、コマンド管理テーブル232の発行時間の欄に現在の時間、及び、ディスクAから通知された記憶媒体内コマンドIDを記録し、実行状態の欄を「発行」に変更する。   The command to be issued is the first command among the commands registered in the command queue 222. A command derived from the access request (A) is issued to the disk A as it is because it is in a “standby” state. At this time, the command processing unit 21 records the current time and the command ID in the storage medium notified from the disk A in the issue time column of the command management table 232, and changes the execution status column to “issue”. To do.

しかし、ディスクBに対しては、アクセス要求(A)に由来するコマンドが「削除」状態であるため、コマンドは発行されず、コマンド処理部21は、コマンド管理テーブル232の実行状態の欄を「完了」状態に変更する。   However, since the command derived from the access request (A) is in the “deleted” state for the disk B, the command is not issued, and the command processing unit 21 sets the execution status column of the command management table 232 to “ Change to Completed state.

前記処理から時間が1ms経過すると、ホスト1からストレージ2に対してアクセス要求(B)、つまりアドレス8000000に対するRead要求が投入される。   When 1 ms elapses from the processing, the host 1 issues an access request (B) to the storage 2, that is, a Read request for the address 8000000.

コマンド処理部21において、アクセス要求(B)を受け取ってからスケジューリングまでの手順は前記アクセス要求(A)を受け取った際の処理と同様である。以下では、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理から説明する。   In the command processing unit 21, the procedure from receiving the access request (B) to scheduling is the same as the processing when the access request (A) is received. In the following, the process of scheduling commands included in the command queue 222 corresponding to each of the disks A and B will be described.

コマンド処理部21は、ディスクA、Bそれぞれについて、同様にエレベータアルゴリズムを用いてコマンドの整列を行う。   The command processing unit 21 arranges commands for the disks A and B in the same manner using an elevator algorithm.

既にアクセス要求(A)に由来するコマンドは、コマンドキュー222上に存在しないため、各コマンドキュー222にはコマンドが1個のみ存在する状態である。そのため、それぞれのコマンドキュー222においてアクセス要求(B)に由来するコマンドが実行順序の先頭に来る。   Since a command already derived from the access request (A) does not exist on the command queue 222, only one command exists in each command queue 222. Therefore, in each command queue 222, the command derived from the access request (B) comes to the top of the execution order.

コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。すなわち、コマンド処理部21は、ディスクA、Bそれぞれがアクセス要求(B)に由来するReadコマンドを完了するまでの時間を算出する。   The command processing unit 21 calculates a time until processing of commands belonging to each command queue 222 is completed. That is, the command processing unit 21 calculates the time until each of the disks A and B completes the Read command derived from the access request (B).

ディスクAでは、アクセス要求(A)に由来するコマンドを処理中であり、処理の完了時間は、発行時点から1+4=5msである。   In the disk A, a command derived from the access request (A) is being processed, and the processing completion time is 1 + 4 = 5 ms from the time of issue.

発行後1ms経過しているためディスクAでは先行コマンドの完了まで、5−1=4msを余分に要する。   Since 1 ms has passed since issuance, disk A requires an extra 5-1 = 4 ms until the completion of the preceding command.

ディスクAでは先行するコマンドの完了後、ヘッドが1000番のトラックの位置に移動する。   In the disk A, after the preceding command is completed, the head moves to the position of the 1000th track.

一方、ディスクBは未だコマンドを実行していないため、ヘッドは10000番の位置に存在する。よって、シークに要する時間は、
ディスクAで、10ms×(8000−1000)/10000=7ms、
ディスクBで、10ms×(10000−8000)/10000=2ms
である。
On the other hand, since the disk B has not yet executed the command, the head exists at the position of 10000th. Therefore, the time required for seeking is
With disk A, 10 ms × (8000−1000) / 10000 = 7 ms,
With disk B, 10 ms x (10000-8000) / 10000 = 2 ms
It is.

回転待ち時間とアクセス時間の合計が4msであり、アクセス完了時間は、
ディスクAで、4+7+4=15ms、
ディスクBで、2+4=6ms
となる。
The total of the rotation waiting time and the access time is 4 ms, and the access completion time is
With disk A, 4 + 7 + 4 = 15 ms,
With disk B, 2 + 4 = 6ms
It becomes.

よってディスクBからアクセス対象のブロックをReadする方が、アクセス処理時間が短くなる。   Therefore, reading the access target block from the disk B shortens the access processing time.

コマンド処理部21は、アクセス処理時間の長いディスクA側のコマンドキュー222に着目し、
・実行が不要、且つ、
・大きな処理時間をもたらす
コマンドを削除する。
The command processing unit 21 pays attention to the command queue 222 on the disk A side having a long access processing time,
・ Execution is unnecessary, and
• Delete commands that cause significant processing time.

以降、アクセス要求(A)を受け取った際の処理と同様に、ディスクAに対するコマンドが削除可能であるため、コマンド処理部21は、コマンド管理テーブル232の実行状態の欄を「削除」に変更する。   Thereafter, similarly to the processing when the access request (A) is received, since the command for the disk A can be deleted, the command processing unit 21 changes the execution status column of the command management table 232 to “deleted”. .

コマンド処理部21は、スケジューリング処理を完了し、この時点でディスクBが実行中のコマンドは存在せず、ディスクBに対するコマンドは「待機」状態であるため、コマンド処理部21は、ディスクBに対してアクセス要求(B)に由来するコマンドを発行する。このとき、コマンド処理部21は、コマンド管理テーブル232の発行時間に現在の時間、及びディスクBから通知された記憶媒体内コマンドIDを記録し、実行状態の欄を「発行」に変更する。   The command processing unit 21 completes the scheduling process. At this time, there is no command being executed by the disk B, and the command for the disk B is in the “standby” state. A command derived from the access request (B) is issued. At this time, the command processing unit 21 records the current time and the command ID in the storage medium notified from the disk B as the issue time of the command management table 232, and changes the execution status column to “issue”.

しかし、ディスクAに対しては、アクセス要求(A)に由来するコマンドが実行中の状態であるためコマンドは発行されない。   However, no command is issued to the disk A because the command derived from the access request (A) is being executed.

前記処理から更に時間が1ms経過すると、ホスト1からストレージ2に対してアクセス要求(C)、つまりアドレス4000000に対するRead要求が投入される。   When a further 1 ms elapses from the above processing, the host 1 issues an access request (C) to the storage 2, that is, a Read request for the address 4000000.

コマンド処理部21が、アクセス要求(C)を受け取ってからスケジューリングまでの手順は前記アクセス要求(A)、(B)を受け取った際の処理と同様である。   The procedure from when the command processing unit 21 receives the access request (C) to the scheduling is the same as the processing when the access requests (A) and (B) are received.

以下では、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理から説明する。   In the following, the process of scheduling commands included in the command queue 222 corresponding to each of the disks A and B will be described.

ディスクA、Bそれぞれについて同様にエレベータアルゴリズムを用いてコマンドの整列を行う。   Similarly, commands are arranged for each of the disks A and B using an elevator algorithm.

ディスクBについては、既にアクセス要求(A)、(B)に由来するコマンドは、コマンドキュー222上に存在しないため、コマンドキュー222にはコマンドが1個のみ存在する状態である。そのため、ディスクBに対するコマンドキュー222では、アクセス要求(C)に由来するコマンドが実行順序の先頭に来る。   As for the disk B, since the command derived from the access requests (A) and (B) does not exist on the command queue 222, there is only one command in the command queue 222. Therefore, in the command queue 222 for the disk B, the command derived from the access request (C) comes to the top of the execution order.

一方、ディスクAについては、アクセス要求(A)に由来するアドレス1000000に対するReadアクセスコマンドを実行中である。   On the other hand, for the disk A, the Read access command for the address 1000000 derived from the access request (A) is being executed.

コマンド処理の完了時間は、発行時点から、1+4=5msである。   The completion time of the command processing is 1 + 4 = 5 ms from the time of issue.

発行後2ms経過しているためディスクAでは、先行コマンドの完了まで、5−2=3msを要する。   Since 2 ms has passed since the issue, Disk A requires 5-2 = 3 ms to complete the preceding command.

そのためディスクAに対するコマンドキュー222には後続のアクセス要求(B)に由来するアドレス8000000に対するReadアクセスコマンドが実行されずに残された状態である。   Therefore, the Read access command for the address 8000000 derived from the subsequent access request (B) is left in the command queue 222 for the disk A without being executed.

これに対して、アクセス要求(C)に由来するアドレス4000000に対するReadコマンドが追加される。ディスクAに対するコマンドキュー222についてエレベータアルゴリズムによるコマンド整列を実行すると、コマンドキュー222の先頭のコマンドが実行される時点でのディスクAのヘッドの位置は、現在実行中のコマンドのアクセス位置、つまりアドレス1000000の位置であることから、実行順序はアドレス4000000に対するReadコマンドが先になる。   On the other hand, a Read command for the address 4000000 derived from the access request (C) is added. When command alignment by the elevator algorithm is executed for the command queue 222 for the disk A, the position of the head of the disk A at the time when the head command of the command queue 222 is executed is the access position of the command currently being executed, that is, the address 1000000. As a result, the Read command for the address 4000000 comes first in the execution order.

つまり、後発であるアクセス要求(C)に由来するコマンドが、先行するアクセス要求(B)に由来するコマンドより前にスケジューリングされる。   That is, the command derived from the later access request (C) is scheduled before the command derived from the preceding access request (B).

コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。   The command processing unit 21 calculates a time until processing of commands belonging to each command queue 222 is completed.

ディスクAではアクセス要求(A)に由来するコマンドを処理中であり、処理の完了時間は発行時点から、1+4=5msである。   The disk A is processing a command derived from the access request (A), and the processing completion time is 1 + 4 = 5 ms from the time of issue.

発行後2ms経過しているため、ディスクAでは先行コマンドの完了まで5−2=3msを余分に要する。   Since 2 ms has passed since the issuance, the disk A requires an extra 5-2 = 3 ms until the preceding command is completed.

ディスクAでは先行するコマンドの完了後、ヘッドが1000000/100=1000番のトラックの位置に移動する。   In the disk A, after the preceding command is completed, the head moves to the position of the track of 1000000/100 = 1000.

ディスクBではアクセス要求(B)に由来するコマンドを処理中であり、処理の完了時間は発行時点から、2+4=6msである。   The disk B is processing a command derived from the access request (B), and the processing completion time is 2 + 4 = 6 ms from the time of issue.

発行後2ms経過しているため、ディスクAでは先行コマンドの完了まで6−1=5msを余分に要する。   Since 2 ms has passed since the issuance, Disk 6-1 requires an extra 6-1 = 5 ms until the preceding command is completed.

ディスクAでは先行するコマンドの完了後、ヘッドが8000000/100=8000番のトラックの位置に移動する。   In the disk A, after the preceding command is completed, the head moves to the track position of 8000000/100 = 8000.

シークに要する時間はディスクAでは、アクセス要求(B)、(C)に由来する2コマンド分の10ms×((4000−1000)+(8000−4000))/10000=7ms、
ディスクBでは、10ms×(8000−4000)/10000=4msである。
The time required for seeking is 10 ms × ((4000−1000) + (8000−4000)) / 10000 = 7 ms for two commands derived from the access requests (B) and (C) in the disk A.
In the disk B, 10 ms × (8000−4000) / 10000 = 4 ms.

回転待ち時間とアクセス時間の合計が4msであり、コマンド処理完了時間にこの時間がコマンドキュー222に存在するコマンド数分加算される。   The total of the rotation waiting time and the access time is 4 ms, and this time is added to the command processing completion time by the number of commands existing in the command queue 222.

コマンド処理完了時間は、
ディスクAで、3+7+4×2=18ms、
ディスクBで、5+4+4=13ms
となる。
Command processing completion time is
With disk A, 3 + 7 + 4 × 2 = 18 ms,
With disk B, 5 + 4 + 4 = 13ms
It becomes.

よってディスクBからアクセス対象のブロックをReadする方が、アクセス要求の処理時間が短くなる。   Therefore, the processing time of the access request is shortened when the access target block is read from the disk B.

ここで、アクセス処理時間の長いディスクA側のコマンドキュー222に着目して、
・実行が不要、且つ、
・大きな処理時間をもたらす
コマンドを削除する。
Here, paying attention to the command queue 222 on the disk A side having a long access processing time,
・ Execution is unnecessary, and
• Delete commands that cause significant processing time.

コマンドキュー222に含まれるコマンドをエレベータアルゴリズムにより整列させると、アクセス要求(C)に由来するコマンドの次にアクセス要求(B)に由来するコマンドが実行される。   When the commands included in the command queue 222 are arranged by the elevator algorithm, the command derived from the access request (B) is executed next to the command derived from the access request (C).

このとき、コマンドキュー222に属する全コマンドのシーク距離の合計の増大の原因となるのは、アクセス要求(B)に由来するアドレス8000000に対するReadコマンドである。   At this time, the read command for the address 8000000 derived from the access request (B) causes the increase in the total seek distance of all commands belonging to the command queue 222.

コマンド処理部21は、このコマンドに関して削除可能であるかを確認する。   The command processing unit 21 confirms whether or not the command can be deleted.

まず、既にディスクBに対してアクセス要求(B)に由来するコマンドが発行済みである。ここで、ディスクA、Bは互いにミラーであるため、ディスクA側でアクセス要求(B)に由来するアドレス8000000に対するReadコマンドは削除可能であると分かる。コマンドを削除状態とするため、コマンド処理部21は、コマンド管理テーブル232の実行状態の情報を更新する。   First, a command derived from the access request (B) has already been issued to the disk B. Here, since the disks A and B are mirrors of each other, it is understood that the Read command for the address 8000000 derived from the access request (B) can be deleted on the disk A side. The command processing unit 21 updates the execution state information in the command management table 232 in order to place the command in the deletion state.

ディスクA側でアクセス要求(B)に由来するアドレス8000000に対するReadコマンドを削除した状態で、ディスクAの全コマンド完了時間を再計算すると、
3+3+4=10ms
となる。
In the state where the Read command for the address 8000000 derived from the access request (B) is deleted on the disk A side, the total command completion time of the disk A is recalculated.
3 + 3 + 4 = 10ms
It becomes.

よって、今度は、ディスクB側のコマンドキューに着目して、
・実行が不要、且つ
・大きな処理時間をもたらす、
コマンドを削除する。
Therefore, this time, paying attention to the command queue on the disk B side,
・ No need to execute, and ・ Large processing time
Delete the command.

このとき、ディスクBのコマンドキュー222にはアクセス要求(C)に由来するアドレス4000000に対するReadコマンドのみが存在する。   At this time, only the Read command for the address 4000000 derived from the access request (C) exists in the command queue 222 of the disk B.

以降は、アクセス要求(A)を受け取った際の処理と同様に、ディスクBに対するアクセス要求(C)に由来するコマンドを削除可能であるため、ディスクB側のコマンドは削除され、コマンド処理部21は、コマンド管理テーブル232の実行状態の欄を「削除」に変更する。   Thereafter, the command derived from the access request (C) for the disk B can be deleted similarly to the processing when the access request (A) is received, so the command on the disk B side is deleted, and the command processing unit 21 Changes the execution status column of the command management table 232 to “deleted”.

この時点で、コマンドキュー222に残ったコマンドは、ディスクAのアクセス要求(C)に由来するアドレス4000000に対するReadコマンドのみである。   At this time, the command remaining in the command queue 222 is only the Read command for the address 4000000 derived from the access request (C) of the disk A.

アクセス要求(C)に由来するコマンドは既にディスクBのコマンドキュー222で削除してしまったため、アクセス要求(C)の実行に不可欠である。そのため、コマンド処理部21はスケジューリング処理を完了する。   Since the command derived from the access request (C) has already been deleted in the command queue 222 of the disk B, it is indispensable for executing the access request (C). Therefore, the command processing unit 21 completes the scheduling process.

スケジューリング後、ディスクが実行中のコマンドが存在しない場合、コマンド処理部21は新たなコマンドを発行する。しかし、ディスクAについては、アクセス要求(A)に由来するコマンドが実行中の状態、ディスクBについては、アクセス要求(B)に由来するコマンドが実行中の状態であるため、コマンド処理部21は新たにコマンドは発行されない。   If there is no command being executed by the disk after scheduling, the command processing unit 21 issues a new command. However, since the command derived from the access request (A) is being executed for the disk A, and the command derived from the access request (B) is being executed for the disk B, the command processing unit 21 No new command is issued.

前記処理から更に時間が3ms経過するとディスクAで実行されていた、アクセス要求(A)に由来するコマンドの実行が完了する。ディスクAは、コマンド処理部21にコマンドの完了を記憶媒体内コマンドIDで通知する。   When a further 3 ms elapses from the above process, the execution of the command derived from the access request (A) executed on the disk A is completed. The disk A notifies the command processing unit 21 of the completion of the command with the command ID in the storage medium.

コマンド処理部21は、記憶媒体内コマンドIDに該当するコマンドをコマンド管理テーブル232から探し、コマンドがReadであると判別する。   The command processing unit 21 searches the command management table 232 for a command corresponding to the command ID in the storage medium, and determines that the command is Read.

コマンド処理部21は、コマンド管理テーブル232を更新して完了したコマンドの実行状態の欄を「完了」に変更する。また、コマンド処理部21は、記憶媒体アクセス履歴格納部25にアクセスし、ディスクAに対する直前のアクセスの情報について、先頭アドレスをアドレス1000000、アクセス長を1ブロックとして更新する。   The command processing unit 21 updates the command management table 232 and changes the execution status column of the completed command to “completed”. In addition, the command processing unit 21 accesses the storage medium access history storage unit 25 and updates the information on the previous access to the disk A with the start address being 1000000 and the access length being 1 block.

続いて、コマンド処理部21は、コマンド完了に伴って読み出された結果をコマンド処理作業メモリ23上の、コマンド管理テーブル232で指示されたデータ格納先アドレスに格納する。   Subsequently, the command processing unit 21 stores the result read upon completion of the command at the data storage destination address designated by the command management table 232 on the command processing work memory 23.

コマンド処理部21は、完了したコマンドの発生源であるアクセス要求(A)の処理に必要な命令が全て完了しているかを確認する。   The command processing unit 21 confirms whether all the instructions necessary for processing the access request (A) that is the generation source of the completed command are completed.

ディスクA、Bはミラー構成であるため、Readアクセスは片方のディスクから結果が得られた時点でアクセス要求(A)の処理が完了する。更に完了したコマンドの発生源であるアクセス要求(A)はReadアクセスであり、アクセス先の情報はパリティではなくホスト1から要求されたデータの実体である。   Since the disks A and B have a mirror configuration, the processing of the access request (A) is completed when the result of Read access is obtained from one of the disks. Further, the access request (A) that is the generation source of the completed command is Read access, and the access destination information is not the parity but the substance of the data requested from the host 1.

ディスクAとストレージ2全体のアドレス空間との対応関係は1対1であるため、 コマンド処理部21は、完了したコマンドによるRead結果を、無加工でそのままホスト1に対してアクセス要求(A)の結果として返す。   Since the correspondence between the disk A and the address space of the entire storage 2 is one-to-one, the command processing unit 21 sends the read result of the completed command to the host 1 as it is without processing the access request (A). Returns as a result.

最後に、コマンド処理部21は、コマンド処理作業メモリ23上に完了したコマンド処理用に確保したメモリを解放し、アクセス要求管理テーブル231からアクセス要求(A)のエントリ、コマンド管理テーブルからアクセス要求(A)に由来するコマンドのエントリを全て削除する。   Finally, the command processing unit 21 releases the memory reserved for the completed command processing on the command processing work memory 23, the entry of the access request (A) from the access request management table 231, and the access request ( Delete all command entries originating from A).

以降、コマンド処理部21は、アクセス要求(B)、(C)に由来するコマンド完了時も同様の手順で処理を行う。   Thereafter, the command processing unit 21 performs processing in the same procedure when the command derived from the access requests (B) and (C) is completed.

最終的に、
ディスクAではアクセス要求(A)に由来するコマンド、その次にアクセス要求(C)に由来するコマンド、
ディスクBではアクセス要求(B)に由来するコマンドが実行される。
Finally,
In the disk A, a command derived from the access request (A), followed by a command derived from the access request (C),
In the disk B, a command derived from the access request (B) is executed.

前記処理手順の説明では、ホスト1からストレージ2に対するReadアクセスについて説明を行ったが、WriteアクセスについてはWrite専用の処理以外は同様の処理を行う。   In the description of the processing procedure, the read access from the host 1 to the storage 2 has been described. However, the write access is performed in the same manner except for the write-only processing.

続いて上記ステップS11からS16、ステップS21からS26、及びステップS31からS35までの第2の動作例として、ストレージ2のデータ記憶部22がハードディスク4台から構成され、これらのディスクがRAID5構成を採る場合の、ホスト1からストレージ2に対してReadアクセスが行われた場合の動作について、図2乃至図13及び図15を用いて説明する。図15は、本発明をRAID5に適用した例を説明するための図である。   Subsequently, as a second operation example from steps S11 to S16, steps S21 to S26, and steps S31 to S35, the data storage unit 22 of the storage 2 is composed of four hard disks, and these disks adopt a RAID 5 configuration. The operation when the host 1 performs a read access to the storage 2 will be described with reference to FIGS. 2 to 13 and FIG. FIG. 15 is a diagram for explaining an example in which the present invention is applied to RAID5.

データ記憶部22に含まれる記憶媒体221を構成するハードディスクは、前記実施例と同一である。また、記憶媒体221を構成する4台のハードディスクをそれぞれディスクA、B、C、Dとする。   The hard disk constituting the storage medium 221 included in the data storage unit 22 is the same as that in the above embodiment. Further, the four hard disks constituting the storage medium 221 are referred to as disks A, B, C, and D, respectively.

ストレージ2全体のアドレス空間と4台のハードディスクのアドレス空間との対応関係は図15に示した通りである。   The correspondence between the address space of the entire storage 2 and the address space of the four hard disks is as shown in FIG.

各ディスクには連続して1000ブロックにデータが記録される。4台のディスクをそれぞれアドレスの先頭から1000ブロック単位の領域に区切った場合、各ディスクの同一アドレスに存在する領域が互いに冗長関係を持つ組として表される。4台のディスクはRAID5構成であるため、前記組のうち3台分の領域にはデータの実体が格納される。残りの1台分の領域には前記3台分の領域のデータのパリティ情報が記録される。   Data is continuously recorded in 1000 blocks on each disk. When four disks are divided into areas of 1000 blocks from the beginning of the address, areas existing at the same address of each disk are represented as a set having a redundant relationship with each other. Since the four disks have a RAID 5 configuration, the data entity is stored in an area for three of the set. Parity information of the data of the three areas is recorded in the remaining area.

例えばストレージ2全体のアドレス空間について、
・アドレス0から999のブロックがディスクAのアドレス0から999に記録され、
・アドレス1000から1999のブロックがディスクBのアドレス0から999に記録され、
・アドレス2000から2999のブロックがディスクCのアドレス0から999に記録され、
・アドレス0から2999のブロックのパリティがディスクDのアドレス0から999に記録される。
For example, regarding the address space of the entire storage 2,
-Blocks with addresses 0 to 999 are recorded at addresses 0 to 999 of disk A,
-Blocks with addresses 1000 to 1999 are recorded at addresses 0 to 999 on disk B,
-Blocks with addresses 2000 to 2999 are recorded at addresses 0 to 999 on disk C,
The parity of the block at addresses 0 to 2999 is recorded at addresses 0 to 999 on disk D.

また、RAID5ではパリティを格納するディスクは一定ではないため、
例えば、
・アドレス3000から5999のブロックのパリティはディスクCのアドレス1000から1999のブロックに格納され、
・アドレス6000から8999のブロックのパリティはディスクBのアドレス2000から2999のブロックに格納され、
・アドレス9000から11999のブロックのパリティはディスクAのアドレス3000から3999のブロックに格納される。
In RAID5, the disk for storing parity is not constant.
For example,
-The parity of the block of addresses 3000 to 5999 is stored in the block of addresses 1000 to 1999 on disk C,
The parity of the block at addresses 6000 to 8999 is stored in the block at addresses 2000 to 2999 on disk B,
The parity of the block with addresses 9000 to 11999 is stored in the block with addresses 3000 to 3999 on disk A.

記憶媒体221を構成する4台のハードディスクについて各ディスクの初期状態は次の通りであるとする。   Assume that the initial state of each disk for the four hard disks constituting the storage medium 221 is as follows.

ディスクA、B、C、Dはコマンドを処理中の状態であり、各ディスクのコマンド処理は5ms後に完了するものとする。   Disks A, B, C, and D are in a command processing state, and command processing for each disk is completed after 5 ms.

コマンド処理完了後のヘッドの位置は、外周を0として順にトラック番号を振った場合、
ディスクAが1000番のトラック上、
ディスクBが2000番のトラック上、
ディスクCが3000番のトラック上、
ディスクDが4000番のトラック上、
であるものとする。
The position of the head after command processing is completed is as follows:
Disc A is on track number 1000
Disc B is on track number 2000,
Disc C is on track number 3000,
Disc D is on track No. 4000,
Suppose that

また、各ディスクに対して同時に投入する命令は1個とする。   Further, it is assumed that one instruction is simultaneously input to each disk.

この状態で、ホスト1がストレージ2のアドレス0、15000000のブロックのデータに対して順番に1ブロック分のアクセス長のRead要求を出す。ホスト1からのReadアクセス要求を順番に(A)、(B)とする。   In this state, the host 1 issues a read request for an access length of one block in order to the data of the block with the address 0, 15000000 in the storage 2. Read access requests from the host 1 are (A) and (B) in order.

まず、ストレージ2がアクセス要求(A)を受け取る際の動作について説明する。   First, the operation when the storage 2 receives the access request (A) will be described.

コマンド処理部21が、アクセス要求(A)を受け取ってからスケジューリングまでの手順は、前記RAID1の場合の動作例における処理と同様である。   The procedure from when the command processing unit 21 receives the access request (A) to scheduling is the same as the processing in the operation example in the case of RAID1.

しかしながら、RAID1では、各ディスクがデータのコピーを格納しているのに対して、RAID5の場合、アクセス先のデータの実体を持つディスクと、アクセス先のデータに対するパリティを持つディスクが存在する。   However, in RAID1, each disk stores a copy of data, whereas in RAID5, there are disks having the data of the access destination and disks having the parity for the data of the access destination.

アクセス要求(A)は、ストレージ2全体のアドレス空間のアドレス0に対するRead、つまり、図15に示す例では、ディスクAのアドレス0のブロックに格納されているデータに対するReadアクセスであることが分かる。   It can be seen that the access request (A) is Read for address 0 in the address space of the entire storage 2, that is, Read access for data stored in the block of address 0 of disk A in the example shown in FIG.

これに対して、ディスクAのアドレス0のブロックに対応するパリティデータは、ディスクB、C、Dのアドレス0のブロックである。   On the other hand, the parity data corresponding to the block at address 0 on disk A is the block at address 0 on disks B, C, and D.

よって、ディスクA、B、C、Dに対して、アドレス0のブロックのReadコマンドが生成され、各ディスクに対するコマンドキュー222に投入される。   Therefore, the Read command of the block with the address 0 is generated for the disks A, B, C, and D, and is input to the command queue 222 for each disk.

また、ディスクAに対するRead以外は、アクセス対象のデータに対するパリティデータへのReadである。   In addition to the read for the disk A, the read is the parity data for the data to be accessed.

以下では、ディスクA、B、C、Dそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理から説明する。   In the following, the process of scheduling commands included in the command queue 222 corresponding to each of the disks A, B, C, and D will be described.

ディスクA、B、C、Dそれぞれについて、エレベータアルゴリズムを用いてコマンドの整列を行う。   For each of disks A, B, C, and D, commands are aligned using an elevator algorithm.

ディスクA、B、C、Dについて、コマンド処理部21がアクセス要求(A)を受け取った段階では、コマンドキュー222上にコマンドは存在しない。このため、各ディスクについて、コマンドキュー222には、アクセス要求(A)に由来するコマンドのみが存在し、アクセス要求(A)に由来するコマンドが実行順序の先頭に来る。   For the disks A, B, C, and D, no command exists on the command queue 222 when the command processing unit 21 receives the access request (A). For this reason, for each disk, only the command derived from the access request (A) exists in the command queue 222, and the command derived from the access request (A) comes first in the execution order.

コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。   The command processing unit 21 calculates a time until processing of commands belonging to each command queue 222 is completed.

ディスクA、B、C、Dは、共にコマンドを処理中であり、処理の完了時間は、アクセス要求(A)の発行時点から5ms後である。   The disks A, B, C, and D are both processing commands, and the processing completion time is 5 ms after the time when the access request (A) is issued.

コマンド処理部21は、アクセス要求(A)に由来するコマンドの処理において、各ディスクがシークに要する時間を算出する。   The command processing unit 21 calculates the time required for each disk to seek in the processing of the command derived from the access request (A).

アクセス要求(A)に由来する各ディスクに対するコマンドは、全て、アドレス0のブロックに対するReadコマンドである。   The commands for each disk derived from the access request (A) are all Read commands for the block of address 0.

よって、
ディスクAのシーク時間は、10ms×(1000−0)/10000=1msである。
Therefore,
The seek time of the disk A is 10 ms × (1000-0) / 10000 = 1 ms.

同様に、
ディスクBでは、10ms×(2000−0)/10000=2ms、
ディスクCでは、10ms×(3000−0)/10000=3ms、
ディスクDでは、10ms×(4000−0)/10000=4ms
である。
Similarly,
For disk B, 10 ms × (2000-0) / 10000 = 2 ms,
In the disk C, 10 ms × (3000-0) / 10000 = 3 ms,
For disk D, 10 ms × (4000−0) / 10000 = 4 ms
It is.

回転待ち時間とアクセス時間の合計が4msであり、コマンド処理完了時間にこの時間がコマンドキュー222に存在するコマンド数分加算される。   The total of the rotation waiting time and the access time is 4 ms, and this time is added to the command processing completion time by the number of commands existing in the command queue 222.

よって、コマンド処理完了時間は、
ディスクAで、5+1+4=10ms、
ディスクBで、5+2+4=11ms、
ディスクCで、5+3+4=12ms、
ディスクDで、5+4+4=13ms
である。
Therefore, the command processing completion time is
With disk A, 5 + 1 + 4 = 10 ms,
With disk B, 5 + 2 + 4 = 11 ms,
With disk C, 5 + 3 + 4 = 12 ms,
With disk D, 5 + 4 + 4 = 13 ms
It is.

ディスクA、B、C、Dのそれぞれのコマンドキュー222には、アクセス要求(A)に由来するコマンドのみが投入されているため、コマンドキュー222に存在する全てのコマンドの処理完了時間は、前記コマンドの処理完了時間に等しい。   Since only the commands derived from the access request (A) are input to the command queues 222 of the disks A, B, C, and D, the processing completion time of all commands existing in the command queue 222 is It is equal to the command processing completion time.

ここで、アクセス処理完了時間の最も長いディスクDのコマンドキュー222に着目して、
・実行が不要、且つ
・大きな処理時間をもたらす
コマンドを削除する。
Here, paying attention to the command queue 222 of the disk D having the longest access processing completion time,
• Delete commands that do not need to be executed and that cause large processing time.

ディスクDのコマンドキュー222には、アクセス要求(A)に由来するコマンドのみが格納されている。   In the command queue 222 of the disk D, only commands derived from the access request (A) are stored.

ここで、記憶媒体221である各ディスクは、ストレージ構成情報格納部24の情報から、図15に示した通り、互いにパリティ情報を持ち合う関係にあることが分かる。   Here, it can be seen from the information in the storage configuration information storage unit 24 that each disk as the storage medium 221 has a relationship of having parity information with each other as shown in FIG.

ディスクDに投入されたコマンドは、ホスト1からReadアクセス要求されたデータに対するパリティデータに対するReadコマンドである。   The command input to the disk D is a Read command for parity data with respect to data for which the host 1 has requested read access.

よって、コマンド処理部21では、ディスクDに対するコマンドキュー222からアクセス要求(A)に由来するコマンドが削除可能であると分かる。そこで、コマンドを削除状態とするため、コマンド処理部21は、コマンド管理テーブル232の実行状態の情報を更新する。   Therefore, the command processing unit 21 knows that the command derived from the access request (A) can be deleted from the command queue 222 for the disk D. Therefore, the command processing unit 21 updates the execution state information in the command management table 232 in order to place the command in the deletion state.

コマンド処理部21は、再び、コマンドキュー222内のコマンドを整列し、各ディスクのコマンド処理完了時間を算出する。   The command processing unit 21 again arranges the commands in the command queue 222 and calculates the command processing completion time for each disk.

先程、処理完了時間が最も遅かったディスクDは、アクセス要求(A)由来のコマンドのみが投入されており、そのコマンドが削除状態となったため、ディスクCのアクセス処理完了時間が最も長くなる。   As described above, only the command derived from the access request (A) is input to the disk D having the latest processing completion time, and the access processing completion time of the disk C becomes the longest because the command is in a deleted state.

ディスクDに対して行った処理同様に、コマンド処理部21は、ディスクCのコマンドキュー222に着目して、
・実行が不要、且つ、
・大きな処理時間
をもたらすコマンドを削除する。
Similar to the processing performed on the disk D, the command processing unit 21 pays attention to the command queue 222 of the disk C, and
・ Execution is unnecessary, and
• Delete commands that cause significant processing time.

ディスクCに投入されたアクセス要求(A)由来のコマンドも、ホスト1からReadアクセス要求されたデータに対するパリティデータに対するReadコマンドであるため、コマンド処理部21は、ディスクDと同様にコマンドの削除処理を行う。   Since the command derived from the access request (A) input to the disk C is also a Read command for the parity data for the data requested for read access from the host 1, the command processing unit 21 deletes the command in the same manner as the disk D. I do.

コマンド処理部21は、再び、各ディスクのコマンド処理完了時間を算出する。そして、ディスクBに投入されたアクセス要求(A)由来のコマンドも、ディスクC、Dと同様の理由で削除処理を行う。   The command processing unit 21 again calculates the command processing completion time for each disk. The command derived from the access request (A) input to the disk B is also deleted for the same reason as the disks C and D.

しかし、ディスクA、B、C、Dのうち、コマンドキュー222にコマンドが残された唯一のディスクであるディスクAに投入されたコマンドは、ホスト1からアクセス要求(A)でRead要求されたデータの実体に対するアクセスである。   However, among the disks A, B, C, and D, the command input to the disk A, which is the only disk that remains in the command queue 222, is the data requested to be read from the host 1 by the access request (A). Access to the entity.

既に他のディスクに対して存在しているパリティデータに対するReadコマンドは、削除状態とされていることから、ディスクAのコマンドキュー222からReadコマンドを削除することは不可能である。そのため、コマンド処理部21はスケジューリング処理を完了する。   Since the Read command for parity data that already exists for another disk is in a deleted state, it is impossible to delete the Read command from the command queue 222 of disk A. Therefore, the command processing unit 21 completes the scheduling process.

コマンド処理部21は、スケジューリング後、ディスクが実行中のコマンドが存在しない場合、新たなコマンドを発行するが、この場合、ディスクA、B、C、Dでコマンドが実行中の状態であるため、新たにコマンドは発行されない。   The command processing unit 21 issues a new command when there is no command being executed by the disk after scheduling. In this case, the command is being executed by the disks A, B, C, and D. No new command is issued.

続いて、ホスト1からストレージ2に対してアクセス要求(B)、つまりアドレス15000000に対するRead要求が投入される。   Subsequently, an access request (B) is sent from the host 1 to the storage 2, that is, a Read request for the address 15000000.

まず、ストレージ2がアクセス要求(B)を受け取る際の動作について説明する。   First, the operation when the storage 2 receives the access request (B) will be described.

コマンド処理部21が、アクセス要求(B)を受け取ってからスケジューリングまでの手順は、前記アクセス要求(A)に対する処理と同様である。   The procedure from when the command processing unit 21 receives the access request (B) to scheduling is the same as the processing for the access request (A).

以下では、ディスクA、B、C、Dそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理について説明する。   In the following, scheduling processing of commands included in the command queue 222 corresponding to each of the disks A, B, C, and D will be described.

コマンド処理部21は、ディスクA、B、C、Dそれぞれについて、エレベータアルゴリズムを用いてコマンドの整列を行う。   The command processing unit 21 arranges commands for each of the disks A, B, C, and D using an elevator algorithm.

ディスクB、C、D全てについて、コマンド処理部21がアクセス要求(B)を受け取った段階で、コマンドキュー222上にコマンドは存在しない。そのため、ディスクB、C、Dについて、コマンドキュー222には、アクセス要求(B)に由来するコマンドのみが存在し、アクセス要求(B)に由来するコマンドが実行順序の先頭に来る。   For all of the disks B, C, and D, there is no command on the command queue 222 when the command processing unit 21 receives the access request (B). Therefore, for the disks B, C, and D, only the command derived from the access request (B) exists in the command queue 222, and the command derived from the access request (B) comes first in the execution order.

一方、ディスクAには、アクセス要求(A)に由来するコマンドがコマンドキュー222に投入されている。このコマンドは、アドレス0のブロックに対するReadコマンドである。   On the other hand, a command derived from the access request (A) is input to the command queue 222 in the disk A. This command is a Read command for the block of address 0.

一方、アクセス要求(B)に由来するコマンドは、ストレージ2全体のアドレス空間と各ディスクのアドレス空間が、図15に示す対応関係であることから、ディスクAのアドレス5000000、つまり5000番のトラック上のブロックに対するReadコマンドである。   On the other hand, the command derived from the access request (B) is that the address space of the entire storage 2 and the address space of each disk have the correspondence shown in FIG. This is a Read command for this block.

ディスクAで現在処理を行っているコマンドは、1000番のトラックに対するものである。よって、ディスクAのコマンドキュー222上でエレベータアルゴリズムを用いてコマンドを整列すると、アクセス要求(A)、アクセス要求(B)のコマンドの順に並ぶ。   The command currently being processed on disk A is for the 1000th track. Therefore, when the commands are arranged on the command queue 222 of the disk A using the elevator algorithm, the commands of the access request (A) and the access request (B) are arranged in this order.

コマンド処理部21は、それぞれのコマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。   The command processing unit 21 calculates a time until processing of commands belonging to each command queue 222 is completed.

ディスクA、B、C、D共にコマンドを処理中であり、処理の完了時間はアクセス要求(A)の発行時点から5ms後である。   Commands are being processed for all of the disks A, B, C, and D, and the processing completion time is 5 ms after the time when the access request (A) is issued.

次にコマンド処理部21は、各ディスクがシークに要する時間を算出する。   Next, the command processing unit 21 calculates the time required for each disk to seek.

アクセス要求(A)、アクセス要求(B)に由来する各ディスクに対するコマンドは、それぞれ、アドレス0(0番のトラック)、アドレス5000000(5000番のトラック)のブロックに対するReadコマンドである。   The commands for each disk derived from the access request (A) and the access request (B) are Read commands for the block at address 0 (0th track) and address 5000000 (5000th track), respectively.

コマンド処理部21は、まず、ディスクAのシーク時間を算出する。   The command processing unit 21 first calculates the seek time for the disk A.

ディスクAは、アクセス要求(A)由来のコマンド、アクセス要求(B)由来のコマンドの順に処理を行うため、シーク時間は、
10ms×((1000−0)+(5000−0))/10000=6ms
である。
Since the disk A processes in the order of the command derived from the access request (A) and the command derived from the access request (B), the seek time is
10 ms × ((1000-0) + (5000-0)) / 10000 = 6 ms
It is.

一方、ディスクB、C、Dでは、アクセス要求(A)由来のコマンドは削除状態となっているため、アクセス要求(B)由来のコマンドのみを処理する。   On the other hand, in the disks B, C, and D, since the command derived from the access request (A) is in a deleted state, only the command derived from the access request (B) is processed.

よって、シーク時間は、
ディスクBでは、10ms×(5000−2000)/10000=3ms、
ディスクCでは、10ms×(5000−3000)/10000=2ms、
ディスクDでは、10ms×(5000−4000)/10000=1ms
である。
So seek time is
In disk B, 10 ms × (5000−2000) / 10000 = 3 ms,
For disk C, 10 ms × (5000-3000) / 10000 = 2 ms,
For disk D, 10 ms × (5000-4000) / 10000 = 1 ms
It is.

1コマンドあたりの回転待ち時間と、アクセス時間の合計が4msであり、コマンド処理完了時間に、この時間がコマンドキュー222に存在するコマンド数分が加算される。   The total of the rotation waiting time per command and the access time is 4 ms, and the command processing completion time is added to the number of commands existing in the command queue 222.

よって、コマンドキュー222に存在する全てのコマンド処理完了時間は、
ディスクAで、5+6+4×2=19ms、
ディスクBで、5+3+4=12ms、
ディスクCで、5+2+4=11ms、
ディスクDで、5+1+4=10ms
である。
Therefore, all command processing completion times existing in the command queue 222 are
With disk A, 5 + 6 + 4 × 2 = 19 ms,
With disk B, 5 + 3 + 4 = 12 ms,
With disk C, 5 + 2 + 4 = 11 ms,
With disk D, 5 + 1 + 4 = 10 ms
It is.

ここで、コマンド処理部21は、アクセス処理完了時間の最も長いディスクAのコマンドキュー222に着目して、
・実行が不要、且つ、
・大きな処理時間をもたらす
コマンドを削除する。
Here, the command processing unit 21 pays attention to the command queue 222 of the disk A having the longest access processing completion time.
・ Execution is unnecessary, and
Remove commands that cause significant processing time.

ディスクAのコマンドキュー222には、アクセス要求(A)、アクセス要求(B)に由来するコマンドが格納されている。   The command queue 222 of the disk A stores commands derived from the access request (A) and the access request (B).

コマンド処理部21がコマンドキュー222に含まれるコマンドをエレベータアルゴリズムにより整列させると、アクセス要求(A)に由来するコマンドの次にアクセス要求(B)に由来するコマンドが実行される。   When the command processing unit 21 arranges the commands included in the command queue 222 by the elevator algorithm, the command derived from the access request (B) is executed next to the command derived from the access request (A).

このとき、コマンドキュー222に属する全コマンドのシーク距離の合計の増大の原因となるのは、アクセス要求(B)に由来するアドレス5000000に対するReadコマンドである。   At this time, the read command for the address 5000000 derived from the access request (B) causes the increase in the total seek distance of all commands belonging to the command queue 222.

コマンド処理部21は、このコマンドを削除可能であるかを確認する。   The command processing unit 21 confirms whether this command can be deleted.

記憶媒体221を構成する各ディスクはRAID5の関係にあり、ディスクを1台アクセスせずに、パリティからの復元によって、Read結果を得ることが可能である。   Each disk constituting the storage medium 221 has a RAID 5 relationship, and it is possible to obtain a Read result by restoring from the parity without accessing one disk.

ディスクA以外のアクセス要求(B)由来のコマンドは削除されていないため、ディスクAのアクセス要求(B)由来のコマンドは削除可能である。コマンド処理部21は、このコマンドを削除状態とするため、コマンド管理テーブル232の実行状態の欄の情報を更新する。   Since the command derived from the access request (B) other than the disk A is not deleted, the command derived from the access request (B) of the disk A can be deleted. The command processing unit 21 updates the information in the execution state column of the command management table 232 in order to place this command in the deletion state.

コマンド処理部21は、再びコマンドキュー222内のコマンドを整列し、各ディスクのコマンド処理完了時間を算出する。   The command processing unit 21 arranges the commands in the command queue 222 again, and calculates the command processing completion time for each disk.

先程処理完了時間が最も遅かったディスクAは、アクセス要求(B)由来のコマンドが削除状態となったことにより、コマンド処理完了時間がアクセス要求(A)の際の計算結果から5+1+4=10msとなる。よってディスクBのアクセス処理完了時間の12msが最も長くなる。   As for the disk A that has the latest processing completion time, the command processing completion time is 5 + 1 + 4 = 10 ms from the calculation result at the time of the access request (A) because the command derived from the access request (B) is in the deleted state. . Therefore, 12 ms of the access completion time of the disk B is the longest.

コマンド処理部21は、ディスクAに対して行った処理同様に、ディスクBのコマンドキュー222に着目して、
・実行が不要、且つ、
・大きな処理時間をもたらす
コマンドを削除する。
The command processing unit 21 pays attention to the command queue 222 of the disk B in the same manner as the process performed on the disk A.
・ Execution is unnecessary, and
• Delete commands that cause significant processing time.

ディスクBに投入されたコマンドはアクセス要求(B)由来のコマンドのみである。ここで、アクセス要求(B)によってRead要求されているデータの実体は、図15に示したストレージ2全体のアドレス空間と各ディスクのアドレス空間との関係から、ディスクAに存在することが分かる。   Only commands derived from the access request (B) are input to the disk B. Here, it can be seen that the substance of the data requested to be read by the access request (B) exists in the disk A from the relationship between the address space of the entire storage 2 and the address space of each disk shown in FIG.

ディスクAにおけるアクセス要求(B)由来のコマンドは既に削除状態となっており、更に、各ディスクはRAID5の関係にあるため、データの実体を用いずに目的とするデータを得るためには全てのパリティ、つまりディスクB、C、D全てのReadコマンドの結果が必要である。よって、ディスクBのコマンドキュー222からReadコマンドを削除することは不可能である。コマンド処理部21は、ディスクBにおいてコマンドを削除することに失敗したため、スケジューリング処理を完了する。   Since the command derived from the access request (B) in the disk A has already been deleted, and since each disk has a RAID 5 relationship, all the data to obtain the target data without using the actual data is obtained. Parity, that is, the result of the Read command for all disks B, C, and D is required. Therefore, it is impossible to delete the Read command from the command queue 222 of the disk B. Since the command processing unit 21 has failed to delete the command from the disk B, the scheduling processing is completed.

コマンド処理部21は、スケジューリング後、ディスクが実行中のコマンドが存在しない場合、新たなコマンドを発行する。しかし、現在、全ディスクA、B、C、Dでコマンドが実行中の状態であるため、新たにコマンドは発行されない。   The command processing unit 21 issues a new command when there is no command being executed by the disk after scheduling. However, since the command is currently being executed in all the disks A, B, C, and D, no new command is issued.

最終的に、
ディスクAでは、アクセス要求(A)に由来するコマンドが実行され、
ディスクB、C、Dでは、アクセス要求(B)に由来するコマンドが実行される。
Finally,
In disk A, a command derived from the access request (A) is executed,
In the disks B, C, and D, a command derived from the access request (B) is executed.

以降のディスクにおけるコマンド完了処理時の手順については、前記した記憶媒体221がRAID1構成のディスクからなる場合と同様である。   The procedure for subsequent command completion processing in the disk is the same as that in the case where the storage medium 221 is composed of a RAID 1 disk.

上記処理手順の説明では、ホスト1からストレージ2に対するReadアクセスを中心に説明を行ったが、WriteアクセスについてはWrite専用の処理以外は同様の処理を行う。   In the above description of the processing procedure, the description has focused on the Read access from the host 1 to the storage 2, but the same processing is performed for Write access except for Write-only processing.

本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施例ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   Within the scope of the entire disclosure (including claims) of the present invention, the examples and the examples can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.

本発明の一実施例における全体のシステム構成を示す図である。It is a figure which shows the whole system configuration | structure in one Example of this invention. 本発明の一実施例におけるストレージの構成を示す図である。It is a figure which shows the structure of the storage in one Example of this invention. 本発明の一実施例におけるホストからストレージに対するアクセス要求に付随する情報を管理するためのアクセス要求管理テーブルを示す図である。It is a figure which shows the access request management table for managing the information accompanying the access request with respect to the storage from the host in one Example of this invention. 本発明の一実施例における各記憶媒体に対して発行を予定、または発行中のコマンドに付随する情報を管理するためのコマンド管理テーブルを示す図である。It is a figure which shows the command management table for managing the information accompanying the command which is issuing with respect to each storage medium in one Example of this invention, or is issuing. 本発明の一実施例における各記憶媒体に対して発行を予定しているコマンドの実行順序を示すコマンドキューを示す図である。It is a figure which shows the command queue which shows the execution order of the command which is scheduled to issue with respect to each storage medium in one Example of this invention. 本発明の一実施例におけるストレージがホストからアクセス要求を受理した際の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence at the time of the storage in one Example of this invention receiving the access request from the host. 本発明の一実施例におけるコマンド処理部がストレージ内の記憶媒体からコマンドの処理完了を通知された際の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence when the command processing part in one Example of this invention is notified of the completion of command processing from the storage medium in a storage. 本発明の一実施例におけるストレージ内の記憶媒体がReadコマンドの処理を完了した際のコマンド処理部の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence of the command processing part when the storage medium in the storage in one Example of this invention completed the process of Read command. 本発明の一実施例におけるストレージ内の記憶媒体がWriteコマンドの処理を完了した際のコマンド処理部の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence of the command processing part when the storage medium in the storage in one Example of this invention completed the process of Write command. 本発明の一実施例におけるコマンド処理部のストレージ内の各記憶媒体に発行予定のコマンドに対するスケジューリング及び発行コマンド選択の処理手順を示したフローチャートである。It is the flowchart which showed the processing procedure of the scheduling with respect to the command which is due to issue to each storage medium in the storage of the command processing part in one Example of this invention, and issuing command selection. 本発明の一実施例におけるコマンド処理部のストレージ内の各記憶媒体に発行予定のコマンドから処理時間増大の原因となるコマンドを選択して削除する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence which selects and deletes the command which causes increase in processing time from the command which is due to issue to each storage medium in the storage of the command processing part in one Example of this invention. 本発明の一実施例におけるストレージ内の各記憶媒体に発行予定のコマンドから削除判定を行う対象のコマンドを選択する例を示した図である。It is the figure which showed the example which selects the command of the object which performs deletion determination from the command which is due to issue to each storage medium in the storage in one Example of this invention. 本発明の実施例におけるハードディスクのプラッタ上におけるトラック、ブロックの配置を示す図である。It is a figure which shows arrangement | positioning of the track | truck and block on the platter of the hard disk in the Example of this invention. 本発明の第1の実施例におけるRAID1構成の各ハードディスクのブロックアドレスとストレージ2のアドレス空間との対応関係を示す図である。It is a figure which shows the correspondence of the block address of each hard disk of RAID1 structure and the address space of the storage 2 in 1st Example of this invention. 本発明の第2の実施例におけるRAID5構成の各ハードディスクのブロックアドレスとストレージ2のアドレス空間との対応関係を示す図である。It is a figure which shows the correspondence of the block address of each hard disk of RAID5 structure and the address space of the storage 2 in 2nd Example of this invention.

符号の説明Explanation of symbols

1 ホスト
2 ストレージ
3 ネットワーク
21 コマンド処理部
22 データ記憶部
221 記憶媒体
222 コマンドキュー
23 コマンド処理作業メモリ
231 アクセス要求管理テーブル
232 コマンド管理テーブル
24 ストレージ構成情報格納部
25 記憶媒体アクセス履歴格納部
31 ハードディスク内のプラッタ
32 プラッタ上の最外周トラック
33 プラッタ上の最内周トラック
34 プラッタ上のトラック
35 トラック上のブロック
1 Host 2 Storage 3 Network 21 Command processing unit 22 Data storage unit 221 Storage medium 222 Command queue 23 Command processing work memory 231 Access request management table 232 Command management table 24 Storage configuration information storage unit 25 Storage medium access history storage unit 31 In the hard disk Platter 32 outermost track 33 on platter innermost track 34 on platter track 35 on platter block on track

Claims (42)

データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、少なくとも前記記憶媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う手段と、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段と、
を備えている、ことを特徴とするストレージ装置。
For each of a plurality of storage media that store data in a redundant form, analyze at least a plurality of access commands waiting to be executed with respect to the storage medium, and change the access command of the storage medium alone so as to shorten the access time. Means for scheduling execution order;
Means for selecting a combination of storage media to issue an access command so as to expedite access completion of the entire storage media from the plurality of storage media subjected to the scheduling in a single storage medium;
A storage apparatus comprising:
前記記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う手段は、
複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、記憶媒体単体でのアクセス時間が短縮するようにアクセスコマンドの実行順序をスケジュールする、ことを特徴とする請求項1記載のストレージ装置。
Means for scheduling the execution order of access commands in the single storage medium,
For each of a plurality of access commands, the execution order of the access commands is scheduled so as to shorten the access time of the single storage medium based on the access destination address, the access length, and the access time characteristics of the storage medium. The storage device according to claim 1.
前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、
前記記憶媒体単位でスケジュールされたアクセスコマンドの実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する、ことを特徴とする請求項1又は2記載のストレージ装置。
Means for selecting a combination of storage media for issuing the access command,
3. The storage according to claim 1, wherein an access time when a read access is made to the storage medium is predicted based on an execution order of access commands scheduled in units of the storage medium. apparatus.
前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、
アクセスの完了が早くなるように、読み出しアクセスコマンド発行先の記憶媒体として、データの実体を格納した記憶媒体又は冗長データを格納した記憶媒体を選択する、ことを特徴とする請求項1乃至3のいずれか一に記載のストレージ装置。
Means for selecting a combination of storage media for issuing the access command,
4. The storage medium storing the substance of data or the storage medium storing redundant data is selected as the storage medium to which the read access command is issued so that the access is completed earlier. The storage device according to any one of the above.
前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体に対して、読み出し対象のデータの実体全体を格納した記憶媒体を読み出した場合のアクセス時間と、複数の記憶媒体からそれぞれ読み出した部分データと冗長データとを用いて読み出し対象のデータの実体全体を復元した場合のアクセス時間とを求め、
前記アクセス時間の算出結果から、アクセスの完了が早くなるように、アクセスコマンド発行先の記憶媒体を選択する、ことを特徴とする請求項1乃至3のいずれか一に記載のストレージ装置。
Means for selecting a combination of storage media for issuing the access command,
The access time when reading the storage medium storing the entire entity of the data to be read out from the plurality of storage media subjected to the scheduling in a single storage medium, and portions read from the plurality of storage media, respectively Obtain the access time when restoring the entire data to be read using data and redundant data,
The storage apparatus according to any one of claims 1 to 3, wherein a storage medium to which an access command is issued is selected so that an access is completed earlier from a calculation result of the access time.
前記アクセスコマンドを発行する記憶媒体の組み合わせを選択する手段は、
記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から、実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出した場合、アクセスコマンドを前記記憶媒体への発行対象から外すことで、アクセス完了を早める、ことを特徴とする請求項1乃至5のいずれか一に記載のストレージ装置。
Means for selecting a combination of storage media for issuing the access command,
When an access command that does not need to be executed and has a relatively long processing time is detected from access commands that are scheduled to be issued in units of storage media, the access command is issued from the subject to be issued to the storage medium. The storage apparatus according to any one of claims 1 to 5, wherein the access completion is accelerated by removing the storage device.
データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、前記少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行うコマンド処理手段を備えている、ことを特徴とするストレージ装置。
For each of a plurality of storage media that store data in a redundant form, an access command input to the storage medium is analyzed prior to issuance to the storage medium,
It is an access command that does not need to be executed due to the relationship with the access command executed on another storage medium among the access commands for at least one storage medium, and the processing time is relative among the access commands for the at least one storage medium A storage apparatus comprising: command processing means for performing scheduling to remove an access command that is large in size from being issued to the storage medium and to speed up access completion.
前記コマンド処理手段は、複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、アクセスコマンドの実行順序を、記憶媒体単位でスケジュールし、
記憶媒体単位でスケジュールされたアクセスコマンドの中から、実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出する、ことを特徴とする請求項7記載のストレージ装置。
The command processing means schedules the execution order of the access commands for each of the plurality of access commands based on the access destination address, the access length, and the access time characteristics of the storage medium, in units of storage media,
8. The storage apparatus according to claim 7, wherein an access command that does not need to be executed and has a relatively long processing time is detected from access commands scheduled in units of storage media.
前記コマンド処理手段は、前記アクセスコマンド実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する、ことを特徴とする請求項7又は8記載のストレージ装置。   The storage apparatus according to claim 7 or 8, wherein the command processing means predicts an access time when a read access is made to the storage medium based on the access command execution order. 前記コマンド処理手段は、前記複数の記憶媒体の各々について、前記記憶媒体に対して前記複数のアクセスコマンドの実行順序がスケジュールされた場合、
前記複数の記憶媒体間でのアクセス時間の合計の大小を比較し、アクセス時間の合計が相対的に長い記憶媒体への複数のアクセスコマンドのうち少なくとも1つのアクセスコマンドを非活性化させ前記記憶媒体への発行対象から外す、ことを特徴とする請求項7記載のストレージ装置。
The command processing means, for each of the plurality of storage media, when the execution order of the plurality of access commands is scheduled for the storage medium,
Comparing the total access time between the plurality of storage media and deactivating at least one access command among the plurality of access commands to the storage medium having a relatively long total access time The storage apparatus according to claim 7, wherein the storage apparatus is excluded from the issue target.
前記コマンド処理手段は、新たなアクセス要求が到来時、前記非活性化されたアクセスコマンドを活性化させて再スケジュール対象とし、複数のアクセスコマンドの実行順序の再スケジュールを行う、ことを特徴とする請求項10記載のストレージ装置。   The command processing means activates the deactivated access command to be rescheduled when a new access request arrives, and reschedules the execution order of a plurality of access commands. The storage device according to claim 10. 前記コマンド処理手段は、前記記憶媒体の内部状態とアクセス先の位置情報とから、アクセス時間を算出する、ことを特徴とする請求項9記載のストレージ装置。   The storage apparatus according to claim 9, wherein the command processing means calculates an access time from an internal state of the storage medium and location information of an access destination. 前記コマンド処理手段は、前記記憶媒体へのアクセスに関して、前記記憶媒体において先行するアクセスでのアクセス先アドレス、又は、該アドレスとアクセス対象データから、前記記憶媒体の内部状態を算出する、ことを特徴とする請求項9記載のストレージ装置。   The command processing means calculates the internal state of the storage medium from the access destination address in the preceding access in the storage medium or the address and the access target data with respect to the access to the storage medium. The storage device according to claim 9. 前記記憶媒体の内部状態はヘッドの位置情報を含む、ことを特徴とする請求項12又は13記載のストレージ装置。   14. The storage apparatus according to claim 12, wherein the internal state of the storage medium includes head position information. 前記コマンド処理手段は、前記記憶媒体で実行中のコマンドの実行状況、実行中のコマンドの終了時間、終了時の記憶媒体の内部状態を参酌して、前記記憶媒体へのアクセスコマンドに基づきアクセス完了までに要するアクセス時間を算出する、ことを特徴とする請求項9に記載のストレージ装置。   The command processing means considers the execution status of the command being executed on the storage medium, the end time of the command being executed, and the internal state of the storage medium at the end, and completes the access based on the access command to the storage medium The storage apparatus according to claim 9, wherein an access time required until the time is calculated. 前記複数の記憶媒体に対応して前記記憶媒体に対するアクセスコマンドを一時的に格納する複数のコマンドキューを備えている、ことを特徴とする請求項1乃至15のいずれか一に記載のストレージ装置。   The storage apparatus according to any one of claims 1 to 15, further comprising a plurality of command queues that temporarily store access commands to the storage medium corresponding to the plurality of storage media. 前記コマンド処理手段は、前記コマンドキューに蓄積されたアクセスコマンドの個数が予め定められた数以下の場合、あるいは、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果が予め定められた時間以下の場合、アクセスコマンドを前記記憶媒体に発行する、ことを特徴とする請求項16記載のストレージ装置。   The command processing means determines in advance whether the number of access commands stored in the command queue is equal to or less than a predetermined number, or a prediction result of the total time of preceding access commands issued to a storage medium. The storage apparatus according to claim 16, wherein an access command is issued to the storage medium if it is less than or equal to a predetermined time. 前記記憶媒体へのアクセスコマンドの発行順序と、前記記憶媒体に発行されたアクセスコマンドの前記記憶媒体での完了順序が異なっていた場合に、前記コマンド処理手段は前記コマンドキュー内のアクセスコマンドの再スケジューリングを行う、ことを特徴とする請求項16記載のストレージ装置。   When the issuing order of the access commands to the storage medium and the completion order of the access commands issued to the storage medium in the storage medium are different, the command processing means retransmits the access commands in the command queue. The storage apparatus according to claim 16, wherein scheduling is performed. 前記アクセスコマンドは、ホストから投入されたアクセス要求を前記ストレージ装置が解析し、前記複数の記憶媒体に対するアクセスコマンドとして生成したものである、ことを特徴とする請求項1乃至18のいずれか一に記載のストレージ装置。   19. The access command according to claim 1, wherein the storage device analyzes an access request input from a host and is generated as an access command for the plurality of storage media. The storage device described. データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、少なくとも前記記憶媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行い、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する、ことを特徴とするストレージアクセス方法。
For each of a plurality of storage media that store data in a redundant form, analyze at least a plurality of access commands waiting to be executed with respect to the storage medium, and change the access command of the storage medium alone so as to shorten the access time. Schedule execution order,
Selecting a combination of storage media to issue an access command from a plurality of the storage media subjected to the scheduling in a single storage medium so as to expedite access completion in the plurality of storage media as a whole. Storage access method.
複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、記憶媒体単体でのアクセス時間が短縮するようにアクセスコマンドの実行順序をスケジュールする、ことを特徴とする請求項20記載のストレージアクセス方法。   For each of a plurality of access commands, the execution order of the access commands is scheduled so as to shorten the access time of the single storage medium based on the access destination address, the access length, and the access time characteristics of the storage medium. The storage access method according to claim 20. 前記アクセスコマンド実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する、ことを特徴とする請求項20又は21記載のストレージアクセス方法。   The storage access method according to claim 20 or 21, wherein an access time when a read access is made to the storage medium is predicted based on the access command execution order. アクセスの完了が早くなるように、読み出しコマンド発行先の記憶媒体として、データの実体を格納した記憶媒体又は冗長データを格納した記憶媒体を選択する、ことを特徴とする請求項20乃至22のいずれか一に記載のストレージアクセス方法。   23. The storage medium storing the substance of data or the storage medium storing redundant data is selected as the storage medium to which the read command is issued so that the access is completed earlier. The storage access method according to claim 1. 記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体に対して、
読み出し対象のデータの実体全体を格納した記憶媒体を読み出した場合のアクセス時間と、複数の記憶媒体からそれぞれ読み出した部分データと冗長データとを用いて読み出し対象のデータの実体全体を復元した場合のアクセス時間とを求め、
前記アクセス時間の算出結果から、アクセスの完了が早くなるように、アクセスコマンド発行先の記憶媒体を選択する、ことを特徴とする請求項20乃至22のいずれか一に記載のストレージアクセス方法。
For a plurality of the storage media subjected to the scheduling in a single storage medium,
When the entire data of the data to be read is restored using the access time when the storage medium storing the entire data of the data to be read is read, and partial data and redundant data respectively read from the plurality of storage media Seeking access time,
The storage access method according to any one of claims 20 to 22, wherein a storage medium to which an access command is issued is selected so that access is completed earlier from a calculation result of the access time.
記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出した場合、アクセスコマンドを、前記記憶媒体への発行対象から外すことで、アクセス完了を早めることを特徴とする請求項20乃至24のいずれか一に記載のストレージアクセス方法。   When an access command that does not need to be executed from access commands scheduled to be issued in units of storage media and has a relatively long processing time is detected, the access command is detected from the issue target to the storage medium. The storage access method according to any one of claims 20 to 24, wherein the access completion is accelerated by removing the access. データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、前記少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行う、ことを特徴とするストレージアクセス方法。
For each of a plurality of storage media that store data in a redundant form, an access command input to the storage medium is analyzed prior to issuance to the storage medium,
It is an access command that does not need to be executed due to the relationship with the access command executed on another storage medium among the access commands for at least one storage medium, and the processing time is relative among the access commands for the at least one storage medium A storage access method characterized in that an access command that is large is excluded from being issued to the storage medium, and scheduling is performed to accelerate access completion.
複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、アクセスコマンドの実行順序を記憶媒体単位にスケジュールし、
記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から、実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出する、ことを特徴とする請求項26記載のストレージアクセス方法。
For each of a plurality of access commands, the access command execution order is scheduled for each storage medium based on the access destination address, access length, and access time characteristics of the storage medium.
27. The storage access according to claim 26, wherein an access command that does not need to be executed and has a relatively long processing time is detected from among access commands whose issue order is scheduled for each storage medium. Method.
前記アクセスコマンド実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する、ことを特徴とする請求項26又は27記載のストレージアクセス方法。   28. The storage access method according to claim 26, wherein an access time when a read access is made to the storage medium is predicted based on the access command execution order. 前記複数の記憶媒体の各々について、前記記憶媒体に対して前記複数のアクセスコマンドの発行順序がスケジュールされた場合、
前記複数の記憶媒体間でのアクセス時間の合計の大小を比較し、アクセス時間の合計が相対的に長い記憶媒体への複数のアクセスコマンドのうち少なくとも1つのアクセスコマンドを非活性化させる、ことを特徴とする請求項20又は26記載のストレージアクセス方法。
For each of the plurality of storage media, when the order of issuing the plurality of access commands to the storage medium is scheduled,
Comparing the total access time between the plurality of storage media, and deactivating at least one access command among the plurality of access commands to the storage medium having a relatively long total access time. 27. A storage access method according to claim 20 or 26.
前記コマンド処理手段は、新たなアクセス要求が到来時、前記非活性化されたアクセスコマンドを活性化させて再スケジュール対象とし、複数のアクセスコマンドの実行順序の再スケジュールを行う、ことを特徴とする請求項29記載のストレージアクセス方法。   The command processing means activates the deactivated access command to be rescheduled when a new access request arrives, and reschedules the execution order of a plurality of access commands. 30. The storage access method according to claim 29. 前記記憶媒体の内部状態とアクセス先の位置情報とから、アクセス時間を算出する、ことを特徴とする請求項22又は28記載のストレージアクセス方法。   The storage access method according to claim 22 or 28, wherein an access time is calculated from an internal state of the storage medium and location information of an access destination. 前記記憶媒体へのアクセスに関して、前記記憶媒体において先行するアクセスでのアクセス先アドレス、又は、該アドレスとアクセス対象データから、前記記憶媒体の内部状態を算出する、ことを特徴とする請求項22又は28記載のストレージアクセス方法。   23. The access to the storage medium, wherein the internal state of the storage medium is calculated from the access destination address in the preceding access in the storage medium or from the address and the access target data. 28. The storage access method according to 28. 前記記憶媒体の内部状態はヘッドの位置情報を含む、ことを特徴とする請求項31又は32記載のストレージアクセス方法。   The storage access method according to claim 31 or 32, wherein the internal state of the storage medium includes head position information. 前記記憶媒体で実行中のコマンドの実行状況、実行中のコマンドの終了時間、終了時の記憶媒体の内部状態を参酌して、前記記憶媒体へのアクセスコマンドに基づきアクセス完了までに要するアクセス時間を算出する、ことを特徴とする請求項22又は28に記載のストレージアクセス方法。   In consideration of the execution status of the command being executed on the storage medium, the end time of the command being executed, and the internal state of the storage medium at the end, the access time required to complete access based on the access command to the storage medium is calculated. The storage access method according to claim 22 or 28, wherein the storage access method is calculated. 前記アクセスコマンドは、ホストから投入されたアクセス要求を前記ストレージ装置が解析し、前記複数の記憶媒体に対するアクセスコマンドとして生成したものである、ことを特徴とする請求項20乃至34のいずれか一に記載のストレージアクセス方法。   35. The access command according to claim 20, wherein the storage device analyzes an access request input from a host, and is generated as an access command for the plurality of storage media. The storage access method described. データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、少なくとも前記記憶媒体に対して実行待ち状態にある複数のアクセスコマンドを解析し、アクセス時間が短縮するように記憶媒体単体でのアクセスコマンドの実行順序のスケジューリングを行う処理と、
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する処理と、
をストレージ装置のコンピュータに実行させるプログラム。
For each of a plurality of storage media that store data in a redundant form, analyze at least a plurality of access commands waiting to be executed with respect to the storage medium, and change the access command of the storage medium alone so as to shorten the access time. A process for scheduling the execution order;
A process of selecting a combination of storage media to issue an access command from a plurality of the storage media subjected to the scheduling in a single storage medium so as to expedite access completion in the plurality of storage media as a whole;
For causing a computer of the storage device to execute the program.
複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、記憶媒体単体でのアクセス時間が短縮するようにアクセスコマンドの実行順序をスケジュールする処理を前記コンピュータに実行させる請求項36記載のプログラム。   For each of a plurality of access commands, a process for scheduling the execution order of the access commands so as to shorten the access time of the single storage medium based on the access destination address, the access length, and the access time characteristics of the storage medium. 37. The program according to claim 36, which is executed. 前記アクセスコマンド実行順序をもとに、前記記憶媒体に対して読み出しアクセスを行った場合のアクセス時間を予測する処理を前記コンピュータに実行させる請求項36記載のプログラム。   37. The program according to claim 36, which causes the computer to execute a process of predicting an access time when a read access is made to the storage medium based on the access command execution order. アクセスの完了が早くなるように、読み出しコマンド発行先の記憶媒体として、データの実体を格納した記憶媒体又は冗長データを格納した記憶媒体を選択する処理を前記コンピュータに実行させる請求項36記載のプログラム。   37. The program according to claim 36, which causes the computer to execute a process of selecting a storage medium storing the substance of data or a storage medium storing redundant data as a storage medium to which a read command is issued so that access is completed earlier. . データを冗長形態に記憶する複数の記憶媒体のそれぞれについて、前記記憶媒体に投入されるアクセスコマンドを前記記憶媒体への発行に先立って解析し、
少なくとも1つの記憶媒体に対するアクセスコマンドのうち他の記憶媒体で実行されるアクセスコマンドとの関係から実行が不要なアクセスコマンドであり、且つ、前記少なくとも1つの記憶媒体に対するアクセスコマンドのうち処理時間が相対的に大であるアクセスコマンドを、前記記憶媒体への発行対象から外し、アクセス完了を早めるスケジューリングを行う処理をストレージ装置のコンピュータに実行させるプログラム。
For each of a plurality of storage media that store data in a redundant form, an access command input to the storage medium is analyzed prior to issuance to the storage medium,
It is an access command that does not need to be executed due to the relationship with the access command executed on another storage medium among the access commands for at least one storage medium, and the processing time is relative among the access commands for the at least one storage medium A program that causes a computer of a storage apparatus to execute a process for performing scheduling to remove an access command that is large in size from being issued to the storage medium and to speed up access completion.
複数のアクセスコマンドのそれぞれについて、アクセス先のアドレス、アクセス長、記憶媒体のアクセス時間特性に基づき、アクセスコマンドの発行順序を記憶媒体単位にスケジュールし、
記憶媒体単位に発行順序がスケジュールされたアクセスコマンドの中から、実行が不要であり、且つ、処理時間が相対的に大のアクセスコマンドを検出する処理を前記コンピュータに実行させる請求項40記載のプログラム。
For each of a plurality of access commands, the access command issuance order is scheduled for each storage medium based on the access destination address, access length, and access time characteristics of the storage medium.
41. The program according to claim 40, wherein the computer executes a process of detecting an access command that does not need to be executed and has a relatively long processing time from among access commands whose issue order is scheduled for each storage medium. .
前記アクセスコマンドは、ホストから投入されたアクセス要求を前記ストレージ装置が解析し、前記複数の記憶媒体に対するアクセスコマンドとして生成したものである、ことを特徴とする請求項36乃至41のいずれか一に記載のプログラム。   42. The access command according to claim 36, wherein the storage device analyzes an access request input from a host and is generated as an access command for the plurality of storage media. The listed program.
JP2008000517A 2008-01-07 2008-01-07 Storage apparatus, method and program Expired - Fee Related JP5292813B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008000517A JP5292813B2 (en) 2008-01-07 2008-01-07 Storage apparatus, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008000517A JP5292813B2 (en) 2008-01-07 2008-01-07 Storage apparatus, method and program

Publications (2)

Publication Number Publication Date
JP2009163499A true JP2009163499A (en) 2009-07-23
JP5292813B2 JP5292813B2 (en) 2013-09-18

Family

ID=40966051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008000517A Expired - Fee Related JP5292813B2 (en) 2008-01-07 2008-01-07 Storage apparatus, method and program

Country Status (1)

Country Link
JP (1) JP5292813B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011074591A1 (en) * 2009-12-17 2011-06-23 日本電気株式会社 Storage device, storage control device, storage control method and program
JP2013542494A (en) * 2010-09-15 2013-11-21 ピュア・ストレージ・インコーポレイテッド I / O scheduling in a solid state drive (SSD) environment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7013294B2 (en) 2018-03-19 2022-01-31 キオクシア株式会社 Memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177358A (en) * 1987-01-19 1988-07-21 Hitachi Ltd Read control system for multiplex volume
JPH08179892A (en) * 1994-12-27 1996-07-12 Hokkaido Nippon Denki Software Kk Sequential seek processing system for mzr system magnetic disk device
JPH09258907A (en) * 1996-03-25 1997-10-03 Mitsubishi Electric Corp Highly available external storage device having plural storage disk parts
JP2001100944A (en) * 1999-07-26 2001-04-13 Matsushita Electric Ind Co Ltd Raid device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177358A (en) * 1987-01-19 1988-07-21 Hitachi Ltd Read control system for multiplex volume
JPH08179892A (en) * 1994-12-27 1996-07-12 Hokkaido Nippon Denki Software Kk Sequential seek processing system for mzr system magnetic disk device
JPH09258907A (en) * 1996-03-25 1997-10-03 Mitsubishi Electric Corp Highly available external storage device having plural storage disk parts
JP2001100944A (en) * 1999-07-26 2001-04-13 Matsushita Electric Ind Co Ltd Raid device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011074591A1 (en) * 2009-12-17 2011-06-23 日本電気株式会社 Storage device, storage control device, storage control method and program
JP2013542494A (en) * 2010-09-15 2013-11-21 ピュア・ストレージ・インコーポレイテッド I / O scheduling in a solid state drive (SSD) environment

Also Published As

Publication number Publication date
JP5292813B2 (en) 2013-09-18

Similar Documents

Publication Publication Date Title
EP1503378A2 (en) System and method for autonomous data scrubbing in a hard disk drive
US6845405B1 (en) Disk drive executing part of a linked disk command
JP5942511B2 (en) Backup device, backup method, and backup program
US6789163B2 (en) Optimizing data transfer performance through partial write command purging in a disc drive
US9471240B2 (en) Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
US20080082744A1 (en) Storage system having data comparison function
US6895468B2 (en) Log-structured block system and method
US6925539B2 (en) Data transfer performance through resource allocation
US9319067B2 (en) Storage control apparatus, storage system, and storage control method
EP1134648A2 (en) Host-based virtual disk drive for improving the performance of a hard disk drive&#39;s input/output
US8327041B2 (en) Storage device and data transfer method for the same
US20180024741A1 (en) Storage media performance management
JP5292813B2 (en) Storage apparatus, method and program
US6567886B1 (en) Disk drive apparatus and control method thereof
US7073029B2 (en) Storage system using fast storage and log-structured storage
US20070038593A1 (en) Data Storage Control Apparatus And Method
CN106610788B (en) Hard disk array control method and device
US20110252205A1 (en) Managing Access Commands By Multiple Level Caching
JP2006004078A (en) Disk control device, disk patrol method, and disk patrol program
US7526605B2 (en) System and method for optimizing random XOR command performance
US10459658B2 (en) Hybrid data storage device with embedded command queuing
WO2011074591A1 (en) Storage device, storage control device, storage control method and program
US6957300B2 (en) Reducing delay of command completion due to overlap condition
JP2009169475A (en) Storage device, data storage method, data readout method, and data storage location-data readout location determining program
JP2009223355A (en) Disk control system for performing mirroring of hard disk and silicon disk

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120717

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130415

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Ref document number: 5292813

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees