JP2009163499A - Storage device, method, and program - Google Patents
Storage device, method, and program Download PDFInfo
- 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
Links
Images
Abstract
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
<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,
さらに、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
また、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
<データ配置による応答時間の短縮>
また、磁気ディスクからなる記憶媒体では、ディスク上の近い位置に格納されたデータにアクセスする場合と、遠い位置に格納されたデータにアクセスする場合とでは、前者が後者より応答時間が短いという性質を持つ。
<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,
特許文献2には、現在または一番近い過去に処理した時のヘッドの位置に対応する各ヘッド毎の物理または論理アドレスから近い順に各ヘッド毎の処理待ち行列を並び替え、処理要求に対応するアドレスに最も近いヘッドに処理をさせるようにした構成が開示されている。
In
上記特許文献1、2、非特許文献1、2の各開示は、引用によって本明細書に組み込まれる。以下の分析は本発明によって与えられる。
The disclosures of
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
ネットワーク3は、ストレージ2に対して複数のホスト1が接続可能な形態のみならず、ホスト1とストレージ2が直接接続される形態であってもよい。
The
図2は、図1のストレージ2の構成例を示す図である。図2を参照すると、ストレージ2は、コマンド処理部21と、データ記憶部22と、コマンド処理作業メモリ23と、ストレージ構成情報格納部24と、記憶媒体アクセス履歴格納部25と、を備えている。
FIG. 2 is a diagram illustrating a configuration example of the
データ記憶部22は、複数の記憶媒体221と、複数の記憶媒体221にそれぞれ対応する複数のコマンドキュー222を備えている。
The
コマンド処理作業メモリ23は、ホストからのアクセス要求を管理するためのアクセス要求管理テーブル231、及び、各記憶媒体221に対して発行予定であるコマンドを管理するためのコマンド管理テーブル232を備えている。
The command
コマンド処理部21は、ホスト(図1の1)から受け取ったアクセス要求を解釈し、データ記憶部22の記憶媒体221に対するコマンドを発行し、ストレージ2全体の実際のアクセス処理を行う。コマンド処理部21は概略以下のように動作する。
The
コマンド処理部21は、アクセス要求を処理するために必要な各記憶媒体221に対するコマンドを生成する。
The
次に、コマンド処理部21は、複数のアクセス要求から生成されたコマンドに対して、アクセス要求を処理するために、記憶媒体221へのアクセス処理の完了時間が早くなるように、スケジューリングを行い、アクセス要求毎にコマンド発行先の記憶媒体221の選択を行う。
Next, the
そして、コマンド処理部21は、スケジューリングされた実行順序にしたがって記憶媒体221に対するコマンドを発行し、及び、コマンド完了時にReadアクセス要求に対する結果の送信処理を行う。
Then, the
コマンド処理部21は、コマンドがReadであり、アクセス先の記憶媒体221が格納しているアクセス対象のデータが冗長データを含む場合、冗長データからアクセス対象のデータを復元する処理を行う。
When the command is Read and the access target data stored in the access
コマンド処理部21は、アクセス対象のデータが得られた後は、アクセス要求元のホスト1に対して結果を返す。
After the access target data is obtained, the
データ記憶部22は、ストレージ2に格納されるデータ全てを保持し、コマンド処理部21からの指示に従って、データのRead、更新(Write)を行う。
The
コマンド処理作業メモリ23は、記憶媒体221から読み込んだデータ、及び、ホストから書き込みを要求されたデータを、コマンド処理部21からの指示により格納する。
The command
図2に示す例では、コマンド処理作業メモリ23は、アクセス要求管理テーブル231、及びコマンド管理テーブル232を備えているが、。データ記憶部22に含まれるコマンドキュー222を、コマンド処理作業メモリ23に格納する構成としてもよい。
In the example illustrated in FIG. 2, the command
ストレージ構成情報格納部24は、
ストレージ2全体の記憶領域と、記憶領域の実体であるデータ記憶部22を構成する複数の記憶媒体221と、の対応関係を格納する。
The storage configuration
The correspondence relationship between the storage area of the
また、ストレージ構成情報格納部24は、
各記憶媒体221のアクセス時間の算出に影響する物理的、論理的な構成情報などアクセス位置に対するアクセスへの応答時間特性に関する情報を格納する。記憶媒体のアクセス応答時間特性情報として、例えば記憶媒体221がハードディスクである場合、
・ディスクプラッタ上のブロックの分布状況、
・ディスクプラッタ数、
・ディスクヘッドのシーク距離とシーク時間との対応関係、
の情報を格納する。
The storage configuration
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
・ 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
記憶媒体アクセス履歴格納部25は、データ記憶部22に含まれる記憶媒体221に対して発行され、実行を完了したコマンドのアドレスとアクセス長を履歴として格納する。
The storage medium access
コマンド処理部21は、記憶媒体221がコマンド処理を完了する毎に、記憶媒体アクセス履歴格納部25における履歴を更新する。
The
図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
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
・ Access length,
A data storage destination address on the command
The requesting host of the access request;
A corresponding command ID that is an ID indicating a command issued to the
Record.
1つのアクセス要求を処理するために記憶媒体221に対して発行する複数のコマンドが発行される場合、1つのアクセス要求IDに対して、複数の対応コマンドIDが登録される。
When a plurality of commands issued to the
図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
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
アクセス要求管理テーブル231は、ホスト1(図1参照)からの各アクセス要求に付随する情報が必要になる際に、コマンド処理部21によって参照される。
The access request management table 231 is referred to by the
図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
記憶媒体221に対するコマンドに付随する情報として、
・コマンド毎に固有なIDと、
・コマンドがReadであるかWriteであるかのアクセス種別(図4ではR/Wと表現)と、
・アクセス先の記憶媒体221内での先頭ブロックのアドレスと、
・アクセス長と、
・コマンド処理作業メモリ23上のデータ格納先アドレスと、
・コマンド発行の原因となっているアクセス要求管理テーブル231上のアクセス要求に付与された対応アクセス要求IDと、
・記憶媒体内コマンドIDと、
・コマンドを記憶媒体221に対して発行した時間を表す発行時間と、
・コマンドの実行状態
を記録する。
As information accompanying the command for the
-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
・ Access length,
A data storage destination address on the command
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
• 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
In the case of Write, it indicates the address of an area that holds data to be written to the
対応アクセス要求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
実行状態は、コマンドの状態を管理する情報であり、待機、削除、発行、完了の状態をとる。 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
削除は、コマンドが現在コマンドキュー222内に存在するものの実際には発行しない状態である。
Deletion is a state in which a command currently exists in the
発行は、コマンドが記憶媒体221で発行済であることを表す。
The issue indicates that the command has already been issued in the
完了はコマンドの完了通知を受け取って処理が完了した状態を表す。 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
図5は、図2のコマンドキュー222を構成する情報を表す図である。コマンドキュー222は、記憶媒体221に対して発行されるコマンドの発行順序を保持する。すなわち、記憶媒体221に対して発行されるコマンドの順にコマンドID(図3の記憶媒体内コマンドID)を保持する。コマンドキュー222は、各記憶媒体221に対して個別に確保する。なお、記憶媒体へのアクセス実行時(コマンドの実行状態が発行)にコマンドキュー222からコマンドを取り出してもよい。
FIG. 5 is a diagram showing information constituting the
図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
まず、図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
コマンド処理部21は、受け取ったホスト1からのストレージ2へのアクセス要求を解釈して、アクセス要求管理テーブル231にアクセス要求を登録する(図6のS11)。
The
ホスト1から受け取ったアクセス要求がWriteである場合(図6のS12のYes分岐)、コマンド処理部21は、アクセス要求に続いてホスト1から送られてくる書き込み対象のデータを受け取り、コマンド処理作業メモリ23上の空き領域に記憶し、アクセス要求管理テーブル231上の、該アクセス要求のデータ格納アドレスを更新する。
When the access request received from the
コマンド処理部21は、ホスト1からの書き込みデータの受け取り、コマンド処理作業メモリ23上の空き領域への記憶が完了すると、ホスト1に対してアクセス要求の処理が完了したことを通知する(図6のS13)。
When the
ホスト1から受け取ったアクセス要求がReadである場合(図6のS12のNo分岐)、コマンド処理部21は、ステップS13を実行せずに、ステップS14を実行する。
When the access request received from the
コマンド処理部21は、ホスト1からの該アクセス要求を処理するために必要な各記憶媒体221に対するコマンドを生成する。より詳細には、ホスト1が指定するストレージ2のアクセス先アドレスのデータ格納先の実体となる領域、及び、冗長データを格納する領域に対してデータのRead/Writeを行うためのコマンドを、各記憶媒体221に対して生成する。
The
アクセス要求が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
アクセス要求がWriteである場合、データの格納先の実体となる領域を持つ全ての記憶媒体221に対して、データを格納するためのWriteコマンドを生成する。
When the access request is “Write”, a Write command for storing data is generated for all the
また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
なお、パリティデータを更新するための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
コマンド処理部21は、記憶媒体221に対して生成したコマンドを、コマンド管理テーブル232に登録される。コマンド処理部21は、コマンドキュー222の末尾に、記憶媒体に対して発行予定のコマンドとして追加する(図6のS14)。
The
コマンド処理部21は、コマンドキュー222上に登録され記憶媒体221に対して発行予定のコマンド発行順序のスケジューリング、及び、実際に発行するコマンドの選択を行う。
The
コマンド処理部21は、コマンドキュー222に投入されたコマンドのスケジューリング、及び実際に発行するコマンドの選択を行う(図6のS15)。
The
より詳細には、コマンド処理部21は、
アクセス要求管理テーブル231に登録された全てのアクセス要求に対する処理の完了が早くなるように、コマンド発行順序の変更を行う。
More specifically, the
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
コマンド処理部21は、記憶媒体221に発行され、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数(閾値)以下である場合、コマンド処理部21は、コマンドキュー222の先頭から記憶媒体221に対して発行中のコマンド数が予め所定数になるまで、コマンドの発行処理を行い、コマンド管理テーブル232上の実行状態を「発行」に変更し、コマンド管理テーブル232の対応するコマンドIDの発行時間の欄を、コマンド発行時の時間に設定する。
When the
あるいは、コマンド処理部21は、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数(閾値)以下であるか、又は、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果が予め定められた時間以下のいずれかが成り立つ場合、アクセスコマンドを前記記憶媒体に発行するようにしてもよい。なお、記憶媒体に対して発行済みの先行アクセスコマンドの合計時間の予測結果は、当該先行アクセスコマンドを記憶媒体に対して発行する前のスケジュール時点で計算されたアクセス時間の合計に基づき、コマンド処理部21で算出してもよいし、あるいは、記憶媒体がコマンド処理部21から発行されたアクセスコマンドの実行順序をスケジュールする機能(例えば記憶媒体が前述したエレベータ・アルゴリスムを実装)を具備している場合において、コマンド処理部21が、記憶媒体側から当該先行アクセスコマンドの合計時間の予測結果を取得するようにしてもよい。
Alternatively, the
コマンド処理部21は、実行状態が「削除」であるコマンドについては、コマンド管理テーブル232上の対応するコマンドIDの実行状態の欄を「完了」に変更し、発行処理を行わない(図6のS16)。
The
以上のステップ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
次に図7を参照して、本実施例において、コマンド処理部21が、記憶媒体221で発行中のコマンドについて完了通知を受け取った際の処理手順について説明する。
Next, with reference to FIG. 7, a processing procedure when the
コマンド処理部21は、記憶媒体221からコマンド完了通知(記憶媒体内コマンドIDを含む)を受け取ると、コマンド管理テーブル232を参照して、記憶媒体内コマンドIDから、R/W欄を参照し、完了したコマンドの種類を判別する(図7のS21)。
Upon receiving the command completion notification (including the storage medium command ID) from the
完了したコマンドがReadであった場合(図7のS22のYes分岐)、コマンド処理部21は、Readコマンドの完了時の処理を行う(図7のS23)。ステップS23の詳細は図8を参照して後述される。
If the completed command is Read (Yes branch of S22 in FIG. 7), the
完了したコマンドがWriteであった場合(図7のS22のNo分岐)、コマンド処理部21は、Writeコマンドの完了時の処理を行う(図7のS24)。ステップS24の詳細は図9を用いて後述される。
If the completed command is Write (No branch in S22 of FIG. 7), the
コマンド処理部21は、コマンド管理テーブル232の該当するコマンドの発行時間の欄を参照して、完了したコマンドが発行中のコマンド内で最も早く発行されたものであるかを判定する。すなわち、コマンド処理部21は、コマンド発行の順序と、コマンド完了順序が異なっているかを判定する。
The
コマンド発行の順序とコマンド完了順序が異なっていた場合に、コマンド処理部21は、例えば図6のステップS15と同様の処理を行う(図7のS25)。すなわち、コマンド処理部21は、コマンドキュー222に投入されたコマンドの再スケジューリングを行う。
If the command issuance order is different from the command completion order, the
ステップS25の実行後、コマンド処理部21は、図6のステップS16と同様の処理を実行する(図7のS26)。すなわち、コマンド処理部21は、記憶媒体221に発行され、記憶媒体221への実際のアクセス処理が完了していない(実行待ちの)コマンドの数が予め定められた所定数以下である場合、コマンド処理部21は、コマンドキュー222の先頭から記憶媒体221に対して発行中のコマンド数が予め所定数になるまで、コマンドの発行処理を行い、コマンド管理テーブル232上の実行状態を「発行」に変更し、コマンド管理テーブル232の対応するコマンドIDの発行時間の欄を、コマンド発行時の時間に設定する。
After execution of step S25, the
以上のステップS21からS26までの処理を行い、コマンド処理部21が、記憶媒体221で発行中のコマンドについて完了通知を受け取った際の処理が終了する。
The processes from step S21 to S26 are performed, and the process when the
図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
コマンド処理部21は、コマンド管理テーブル232における完了したコマンドの実行状態の欄を「完了」に変更する。また記憶媒体アクセス履歴格納部25にアクセスし、記憶媒体221が実行した命令の履歴情報を更新する(図8のS2301)。
The
コマンド処理部21は、記憶媒体221から読み出されたデータを、コマンド管理テーブル232で指示されたデータ格納先アドレスの指し示すコマンド処理作業メモリ23上の領域に格納する(図8のS2302)。
The
コマンド処理部21は、アクセス要求管理テーブル231、及び、コマンド管理テーブル232を参照して、コマンドの発生源となったアクセス要求を処理するために必要なコマンドが全て完了しているかを確認する。例えばホスト1からの元のアクセス要求がReadであり、記憶媒体221がRAID1の構成である場合には、少なくとも1つの記憶媒体221からデータの読み出しが完了しさえすれば、アクセス要求の処理が可能である。完了したコマンドの読み出し結果のみでアクセス要求を処理可能であり、必要なコマンドは全て完了していること実質的に等価となる。
The
一方、ホスト1からの元のアクセス要求が同じくReadであり、記憶媒体221が4個の記憶媒体からなるRAID5の構成である場合には、読み出し対象のデータの実体が格納された全ての記憶媒体221に対するアクセスが完了するか、または任意の3個分のパリティデータを利用して要求されたデータを復元するかいずれかにより処理が可能である。
On the other hand, if the original access request from the
そのため、この場合は、データの実体が全て読み出されているか、または任意の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
コマンド処理部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
ステップ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
コマンド発行の元となったアクセス要求が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
そして、コマンド処理部21は、再計算したパリティデータをWrite対象のデータとするように、コマンド管理テーブル232を更新し、パリティを格納する記憶媒体221に対するWriteコマンドをコマンドキュー222に投入し、パリティデータの書き込みを行う(S2312)。すなわち、コマンド処理部21は、ステップS2311で計算されたデータがパリティデータ更新用に生成されたコマンドで使用されるように、コマンド管理テーブル232のパリティデータ更新用コマンドに対するデータ格納先アドレスを更新して、ステップS23の処理を終了する。
Then, the
コマンド発行の元となったアクセス要求が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
コマンドの発生源となったアクセス要求を処理するために必要なコマンドにおいて、パリティの読み出しを行っている場合(図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
コマンド処理部21は、生成または読み出された、ホスト1からRead要求されたデータを、ホストにそのまま送信可能な形に変換、構成する(図8のS2308)。
The
コマンド処理部21は、アクセス要求元のホスト1に対してステップS2308で得られた結果を送信する(図8のS2309)。
The
コマンド処理部21は、コマンド管理テーブル232から、処理が完了した着目中の同一アクセス要求に由来する登録された全コマンドのデータを削除する。また、コマンド処理部21は、アクセス要求管理テーブル231から、処理が完了した着目中のアクセス要求に関するデータを削除する。
The
コマンド処理部21は、マンド管理テーブル232から削除したコマンド、アクセス要求管理テーブル231から削除したアクセス要求が使用していたコマンド処理作業メモリ上の領域を解放し、ステップS23の処理を終了する(図8のS2310)。
The
以上のステップS2301からS2312までの処理を行い、コマンド処理部21の、前記ステップS23における処理が終了する。
The processes from step S2301 to S2312 are performed, and the
次に図9を参照してコマンド処理部21の、図7のステップS24における更に詳細な処理手順について説明する。
Next, a more detailed processing procedure in step S24 of FIG. 7 of the
コマンド処理部21は、ステップS2301と同様の処理を実行する(図9のS241)。
The
続いてコマンド処理部21は、ステップS2303と同様の処理を実行する(図9のS242)。
Subsequently, the
ステップ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
以上のステップS241からS244までの処理を行い、コマンド処理部21の、前記ステップS24における処理が終了する。
The processes from step S241 to S244 are performed, and the process in step S24 of the
次に図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
コマンド処理部21は、コマンドキュー222に存在するコマンドの発行順序を、対応する記憶媒体221の特性に合わせて整列させる。
The
例えば記憶媒体221がハードディスクで構成される場合、前記非特許文献2で述べられたSCANまたはエレベータアルゴリズムと呼ばれる方法でコマンドの発行順序を整列することが可能である。コマンドを整列することによって、ハードディスクのヘッドの移動距離が短縮されることで、記憶媒体221であるハードディスクについて複数コマンドを発行した場合の全体のアクセス時間の短縮が可能である。
For example, when the
但し、コマンドキュー222がWriteコマンドを含む場合、コマンド処理部21は、後に生成されたコマンドがWriteコマンドと同一領域をアクセスするか判定を行う。後に生成されたコマンドとWriteコマンドがアクセスする領域が重なる場合、コマンドの順序が入れ替わると、アクセス要求の処理に矛盾が生じる。このため、コマンド処理部21は、これらのコマンドの順序が入れ替わることを禁止する。
However, when the
また、コマンド処理部21は、記憶媒体221のアクセス特性、物理的特性に応じたコマンドの整列処理を行うためには記憶媒体221の種類、アクセス特性に関する情報が必要である。コマンド処理部21は、これらの情報をストレージ構成情報格納部24から取得する(図10のS31)。
Further, the
コマンドキュー222に対するコマンドの整列処理の後、コマンド処理部21は、各記憶媒体221に対してコマンドキュー222に属するコマンドを順序通りに実行した場合に全ての処理が完了するまでの予測時間を算出する。
After the command alignment process for the
例えば記憶媒体221がハードディスクで構成される場合、各コマンドの処理に要する時間はヘッドのシーク時間、コマンドがアクセスを行うブロックがヘッドの位置まで到着するために要するディスクの回転待ち時間、実際にアクセス対象のブロックに対してアクセスを行う時間の3種類の処理時間の合計から計算可能である。また、全コマンドの処理に要する時間は各コマンドの処理時間の合計で表される。
For example, when the
コマンド処理部21で記憶媒体221の処理完了時間を算出するためには、アクセス特性、アクセス時間の情報が必要とされるが、コマンド処理部21は、これらの情報をストレージ構成情報格納部24から取得する(図10のS32)。
In order for the
コマンド処理部21は、ステップS32におけるアクセス完了時間予測の結果を用いて、例えば記憶媒体221から最も処理完了時間が遅いと予測された記憶媒体に着目する。
The
コマンド処理部21は、最も処理完了時間が遅いと予測された記憶媒体に対して、
コマンドキュー222に含まれる発行予定のコマンドのうち、
・コマンドを発行しなくてもホスト1からのアクセス要求を処理することが可能であり、且つ、
・記憶媒体へのアクセス処理時間の遅延の原因となるコマンドについて削除状態への変更を試みる(図10のS33)。
The
Of the commands to be issued included in the
It is possible to process an access request from the
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
ステップS33の処理の結果、記憶媒体221に対して発行するコマンドの削除状態への変更に失敗した場合(S34のYes分岐)、コマンド処理部21は、前記ステップS33では処理完了時間が最も遅いと予測される記憶媒体221に限定していたコマンドの削除処理を、他の記憶媒体221についても行う。
As a result of the processing in step S33, if the command issued to the
コマンド処理部21は、コマンドキュー222に含まれる発行予定のコマンドのうち、コマンドを発行しなくてもホスト1からのアクセス要求を処理することが可能であるコマンドの削除状態への変更を試みる。
The
削除可能であるかの判断基準は、記憶媒体221の構成、冗長データの格納形態により異なるため、コマンド処理部21は、記憶媒体221の構成情報をストレージ構成情報格納部24から取得する。
Since the criterion for determining whether or not deletion is possible differs depending on the configuration of the
削除対象となるコマンドの例を次に示す。 The following are examples of commands to be deleted.
ホスト1からの元のアクセス要求がReadであり、記憶媒体221がRAID1の構成である場合は、1つ以上の記憶媒体221からデータが読み出すことができれば、アクセス要求を処理可能である。そのため、このアクセス要求に対するコマンドが複数の記憶媒体221に対して存在する場合、1つのコマンドを除いて、他のコマンドを削除状態にすることが可能である。
If the original access request from the
一方、ホスト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
以上のステップS31からS35までの処理を行い、コマンド処理部21の、前記ステップS15、S25におけるコマンド発行順序のスケジューリング、及び実際に発行するコマンドの選択の処理が終了する。
The processes from step S31 to S35 described above are performed, and the
次に図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
コマンド処理部21は、コマンドキュー222に含まれる記憶媒体221に発行予定のコマンドから最も大きな処理時間をもたらす原因となるコマンドに着目して、後続のステップでコマンドが削除可能であるか判定するために、判定対象のコマンドを選択する。
The
最も大きな処理時間をもたらすコマンドは、例えば記憶媒体221がハードディスクで構成される場合、非特許文献2で述べられたエレベータアルゴリズムによってコマンドの実行順序が決定される限り、アクセス時のディスクのヘッド位置が初期のヘッドの位置から最も遠くなるコマンドである。
For example, when the
図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
また、コマンド処理部21において、判定対象のコマンド選択処理が繰り返し実行される場合、一度判定対象となったコマンドは選択せず、その次に大きな処理時間をもたらす原因となるコマンドを選択する。例えば、記憶媒体221がハードディスクで構成される場合、既に判定対象となったコマンド以外でヘッドの初期位置から最も離れたコマンドを選択する。
Further, when the command selection process for the determination target is repeatedly executed in the
加えて記憶媒体221がハードディスクである場合は、ヘッドの初期位置から最も離れたブロックにアクセスするコマンド、及び2番目に離れたブロックにアクセスするコマンドが削除できなかった場合、全コマンドを処理するために必要なシーク距離の削減は不可能である。
In addition, when the
このため、これらの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
ステップ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
コマンドが削除可能であるかは、着目したコマンドを実行しなかった場合に、着目したコマンドの発生元であるホスト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
コマンドが削除可能であるかの具体的な判定の一例は以下に示す通りである。例えば、判定対象のコマンドの発生源である、ホスト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
コマンド処理部21が判定を行う時点で、コマンド管理テーブル232を参照して、元のアクセス要求に対して削除判定対象以外のコマンドが既に削除状態となっている場合、判定対象のコマンドは削除が不可能である。
When the
逆に、削除判定対象以外のコマンドが1つ以上削除状態以外でコマンドキュー222に存在する場合、判定対象のコマンドによらずアクセス要求に対する処理を実行可能であり、コマンドの削除が可能である(図11のS333)。
Conversely, when one or more commands other than the deletion determination target exist in the
ステップ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
ステップ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
上記ステップ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
データ記憶部22の記憶媒体221を構成するハードディスクは、図13に示したブロック配置と以下の特徴を持つディスクを例として用いる。図13(a)にはプラッタ上のトラック配置(トラック#0〜#1001)、図13(b)にはトラック上のブロック配置(ブロック#0〜#999)が模式的に示されている。
As a hard disk constituting the
まず、アクセス先アドレスに対する応答時間の問い合わせに対応する機能を持たない。ハードディスクのプラッタ、ヘッドの数は共に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
ハードディスク上のブロックに対して最外周のトラックから順番にアドレス番号が割り当てられる。 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
また、記憶媒体221を構成する2台のハードディスクをそれぞれディスクA、ディスクBとする。
Further, the two hard disks constituting the
ストレージ2全体のアドレス空間と2台のハードディスクのアドレス空間との対応関係は図7に示した通りである。2台のハードディスクはRAID1構成であることから共通のデータを保持し、ストレージ2全体のアドレス空間と2台の各ディスクの記憶領域は一致する。つまりストレージ2全体のアドレス空間のあるアドレス上のブロックのデータは、各ディスクの同一アドレスに存在するブロックのデータと一致する。
The correspondence between the address space of the
記憶媒体221を構成する2台のハードディスクA、Bについて、各ディスクのヘッドの初期位置、つまり直前のアクセス位置は、ディスクAが最外周のトラック(0番のトラック)、ディスクBが最内周のトラック(10000番のトラック)上であるとする。
With respect to the two hard disks A and B constituting the
また、各ディスクに対して同時に投入する命令は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
まずストレージ2がアクセス要求(A)を受け取る際の動作について説明する。
コマンドはストレージ2のコマンド処理部21によって解釈される。
First, the operation when the
The command is interpreted by the
アクセス要求(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
ストレージ2のアドレス空間と、記憶媒体221を構成するディスクA、Bの記憶領域との対応関係は、図14に示した通りである。
The correspondence between the address space of the
よって、ストレージ2のアドレス1000000に対するアクセスは、ディスクA、Bのアドレス1000000のブロックに対するReadコマンドによって実現される。
Therefore, access to the address 1000000 of the
コマンド処理部21は、ディスクA、Bに対する前記Readコマンドについて、アクセスの種類、アクセス先頭ブロック、アクセス長、コマンド処理作業メモリ23上に確保された領域であるデータの格納先アドレス、コマンドの生成元であるアクセス要求を表すID、そして実行状態(「待機」状態)をディスクA、Bそれぞれに対応したコマンド管理テーブル232に登録する。同時にディスクA、Bそれぞれに対応したコマンドキュー222の末尾に前記Readコマンドを投入する。
The
コマンド処理部21は、コマンドの生成が完了した後に、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリングを行う。ディスクA、Bそれぞれについて非特許文献2に開示されたエレベータアルゴリズムを用いてシーク時間が最適化されるようにコマンドの整列を行う。
The
各コマンドキュー222には、コマンドが1個のみ存在する状態であるため、それぞれのコマンドキュー222において、アクセス要求(A)に由来するコマンドが実行順序の先頭に来る。
Since each
コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。すなわち、コマンド処理部21は、ディスクA、Bそれぞれがアクセス要求(A)に由来するReadコマンドを完了するまでの時間を算出する。
The
前記アクセス先に対するアクセス時間の特性を示す、ハードディスクの物理的、論理的構成情報によると、アクセス先であるアドレス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
-Execution is unnecessary and
・ Large processing time,
Delete the command.
ディスクB側のコマンドキュー222には、アクセス要求(A)に由来するコマンドのみが格納されている。
The
コマンド処理部21は、ディスクA、Bはストレージ構成情報格納部24の情報から、互いにミラーの関係にあることを認識し、アクセス要求(A)の処理を完了するにはディスクA、Bいずれか片方へのアクセスのみが必要である。
The
よって、ディスクBに対するコマンドキュー222からアクセス要求(A)に由来するコマンドを削除可能であると分かる。
Therefore, it can be seen that the command derived from the access request (A) can be deleted from the
コマンド処理部21は、コマンドを削除状態とするため、コマンド管理テーブル232の実行状態の情報を更新する。
The
コマンド処理部21は、コマンドの削除に成功したため、更に他のコマンドの削除を試みるが、アクセス要求(A)に由来するコマンドのみが発行された状態で、既にディスクB側のコマンドが削除されているため、これ以上のコマンド削除は不可能である。
Since the
そのため、コマンド処理部21は、ディスクB側のコマンドを削除してコマンド処理部21によるスケジューリング処理は完了する。
Therefore, the
コマンド処理部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
発行するコマンドはコマンドキュー222に登録されたコマンドのうち、先頭のコマンドである。ディスクAに対しては、アクセス要求(A)に由来するコマンドが「待機」状態であるためそのまま発行される。このとき、コマンド処理部21は、コマンド管理テーブル232の発行時間の欄に現在の時間、及び、ディスクAから通知された記憶媒体内コマンドIDを記録し、実行状態の欄を「発行」に変更する。
The command to be issued is the first command among the commands registered in the
しかし、ディスク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
前記処理から時間が1ms経過すると、ホスト1からストレージ2に対してアクセス要求(B)、つまりアドレス8000000に対するRead要求が投入される。
When 1 ms elapses from the processing, the
コマンド処理部21において、アクセス要求(B)を受け取ってからスケジューリングまでの手順は前記アクセス要求(A)を受け取った際の処理と同様である。以下では、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理から説明する。
In the
コマンド処理部21は、ディスクA、Bそれぞれについて、同様にエレベータアルゴリズムを用いてコマンドの整列を行う。
The
既にアクセス要求(A)に由来するコマンドは、コマンドキュー222上に存在しないため、各コマンドキュー222にはコマンドが1個のみ存在する状態である。そのため、それぞれのコマンドキュー222においてアクセス要求(B)に由来するコマンドが実行順序の先頭に来る。
Since a command already derived from the access request (A) does not exist on the
コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。すなわち、コマンド処理部21は、ディスクA、Bそれぞれがアクセス要求(B)に由来するReadコマンドを完了するまでの時間を算出する。
The
ディスク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
・ 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
コマンド処理部21は、スケジューリング処理を完了し、この時点でディスクBが実行中のコマンドは存在せず、ディスクBに対するコマンドは「待機」状態であるため、コマンド処理部21は、ディスクBに対してアクセス要求(B)に由来するコマンドを発行する。このとき、コマンド処理部21は、コマンド管理テーブル232の発行時間に現在の時間、及びディスクBから通知された記憶媒体内コマンドIDを記録し、実行状態の欄を「発行」に変更する。
The
しかし、ディスク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
コマンド処理部21が、アクセス要求(C)を受け取ってからスケジューリングまでの手順は前記アクセス要求(A)、(B)を受け取った際の処理と同様である。
The procedure from when the
以下では、ディスクA、Bそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理から説明する。
In the following, the process of scheduling commands included in the
ディスク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
一方、ディスク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
これに対して、アクセス要求(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
つまり、後発であるアクセス要求(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
ディスク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
コマンド処理完了時間は、
ディスク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
・ Execution is unnecessary, and
• Delete commands that cause significant processing time.
コマンドキュー222に含まれるコマンドをエレベータアルゴリズムにより整列させると、アクセス要求(C)に由来するコマンドの次にアクセス要求(B)に由来するコマンドが実行される。
When the commands included in the
このとき、コマンドキュー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
コマンド処理部21は、このコマンドに関して削除可能であるかを確認する。
The
まず、既にディスク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
ディスク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
以降は、アクセス要求(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
この時点で、コマンドキュー222に残ったコマンドは、ディスクAのアクセス要求(C)に由来するアドレス4000000に対するReadコマンドのみである。
At this time, the command remaining in the
アクセス要求(C)に由来するコマンドは既にディスクBのコマンドキュー222で削除してしまったため、アクセス要求(C)の実行に不可欠である。そのため、コマンド処理部21はスケジューリング処理を完了する。
Since the command derived from the access request (C) has already been deleted in the
スケジューリング後、ディスクが実行中のコマンドが存在しない場合、コマンド処理部21は新たなコマンドを発行する。しかし、ディスクAについては、アクセス要求(A)に由来するコマンドが実行中の状態、ディスクBについては、アクセス要求(B)に由来するコマンドが実行中の状態であるため、コマンド処理部21は新たにコマンドは発行されない。
If there is no command being executed by the disk after scheduling, the
前記処理から更に時間が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
コマンド処理部21は、記憶媒体内コマンドIDに該当するコマンドをコマンド管理テーブル232から探し、コマンドがReadであると判別する。
The
コマンド処理部21は、コマンド管理テーブル232を更新して完了したコマンドの実行状態の欄を「完了」に変更する。また、コマンド処理部21は、記憶媒体アクセス履歴格納部25にアクセスし、ディスクAに対する直前のアクセスの情報について、先頭アドレスをアドレス1000000、アクセス長を1ブロックとして更新する。
The
続いて、コマンド処理部21は、コマンド完了に伴って読み出された結果をコマンド処理作業メモリ23上の、コマンド管理テーブル232で指示されたデータ格納先アドレスに格納する。
Subsequently, the
コマンド処理部21は、完了したコマンドの発生源であるアクセス要求(A)の処理に必要な命令が全て完了しているかを確認する。
The
ディスク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
ディスクAとストレージ2全体のアドレス空間との対応関係は1対1であるため、 コマンド処理部21は、完了したコマンドによるRead結果を、無加工でそのままホスト1に対してアクセス要求(A)の結果として返す。
Since the correspondence between the disk A and the address space of the
最後に、コマンド処理部21は、コマンド処理作業メモリ23上に完了したコマンド処理用に確保したメモリを解放し、アクセス要求管理テーブル231からアクセス要求(A)のエントリ、コマンド管理テーブルからアクセス要求(A)に由来するコマンドのエントリを全て削除する。
Finally, the
以降、コマンド処理部21は、アクセス要求(B)、(C)に由来するコマンド完了時も同様の手順で処理を行う。
Thereafter, the
最終的に、
ディスク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
続いて上記ステップ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
データ記憶部22に含まれる記憶媒体221を構成するハードディスクは、前記実施例と同一である。また、記憶媒体221を構成する4台のハードディスクをそれぞれディスクA、B、C、Dとする。
The hard disk constituting the
ストレージ2全体のアドレス空間と4台のハードディスクのアドレス空間との対応関係は図15に示した通りである。
The correspondence between the address space of the
各ディスクには連続して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
-Blocks with
-Blocks with addresses 1000 to 1999 are recorded at
-Blocks with addresses 2000 to 2999 are recorded at
The parity of the block at
また、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
ディスク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
まず、ストレージ2がアクセス要求(A)を受け取る際の動作について説明する。
First, the operation when the
コマンド処理部21が、アクセス要求(A)を受け取ってからスケジューリングまでの手順は、前記RAID1の場合の動作例における処理と同様である。
The procedure from when the
しかしながら、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
これに対して、ディスクAのアドレス0のブロックに対応するパリティデータは、ディスクB、C、Dのアドレス0のブロックである。
On the other hand, the parity data corresponding to the block at
よって、ディスクA、B、C、Dに対して、アドレス0のブロックのReadコマンドが生成され、各ディスクに対するコマンドキュー222に投入される。
Therefore, the Read command of the block with the
また、ディスク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
ディスク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
コマンド処理部21は、各コマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。
The
ディスク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
アクセス要求(A)に由来する各ディスクに対するコマンドは、全て、アドレス0のブロックに対するReadコマンドである。
The commands for each disk derived from the access request (A) are all Read commands for the block of
よって、
ディスク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
よって、コマンド処理完了時間は、
ディスク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
ここで、アクセス処理完了時間の最も長いディスクDのコマンドキュー222に着目して、
・実行が不要、且つ
・大きな処理時間をもたらす
コマンドを削除する。
Here, paying attention to the
• Delete commands that do not need to be executed and that cause large processing time.
ディスクDのコマンドキュー222には、アクセス要求(A)に由来するコマンドのみが格納されている。
In the
ここで、記憶媒体221である各ディスクは、ストレージ構成情報格納部24の情報から、図15に示した通り、互いにパリティ情報を持ち合う関係にあることが分かる。
Here, it can be seen from the information in the storage configuration
ディスク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
よって、コマンド処理部21では、ディスクDに対するコマンドキュー222からアクセス要求(A)に由来するコマンドが削除可能であると分かる。そこで、コマンドを削除状態とするため、コマンド処理部21は、コマンド管理テーブル232の実行状態の情報を更新する。
Therefore, the
コマンド処理部21は、再び、コマンドキュー222内のコマンドを整列し、各ディスクのコマンド処理完了時間を算出する。
The
先程、処理完了時間が最も遅かったディスク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
・ 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
コマンド処理部21は、再び、各ディスクのコマンド処理完了時間を算出する。そして、ディスクBに投入されたアクセス要求(A)由来のコマンドも、ディスクC、Dと同様の理由で削除処理を行う。
The
しかし、ディスク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
既に他のディスクに対して存在しているパリティデータに対する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
コマンド処理部21は、スケジューリング後、ディスクが実行中のコマンドが存在しない場合、新たなコマンドを発行するが、この場合、ディスクA、B、C、Dでコマンドが実行中の状態であるため、新たにコマンドは発行されない。
The
続いて、ホスト1からストレージ2に対してアクセス要求(B)、つまりアドレス15000000に対するRead要求が投入される。
Subsequently, an access request (B) is sent from the
まず、ストレージ2がアクセス要求(B)を受け取る際の動作について説明する。
First, the operation when the
コマンド処理部21が、アクセス要求(B)を受け取ってからスケジューリングまでの手順は、前記アクセス要求(A)に対する処理と同様である。
The procedure from when the
以下では、ディスクA、B、C、Dそれぞれに対応したコマンドキュー222に含まれるコマンドのスケジューリング処理について説明する。
In the following, scheduling processing of commands included in the
コマンド処理部21は、ディスクA、B、C、Dそれぞれについて、エレベータアルゴリズムを用いてコマンドの整列を行う。
The
ディスク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
一方、ディスクAには、アクセス要求(A)に由来するコマンドがコマンドキュー222に投入されている。このコマンドは、アドレス0のブロックに対するReadコマンドである。
On the other hand, a command derived from the access request (A) is input to the
一方、アクセス要求(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
ディスク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
コマンド処理部21は、それぞれのコマンドキュー222に属するコマンドの処理が完了するまでの時間を算出する。
The
ディスク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
アクセス要求(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
ディスク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
よって、コマンドキュー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
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
・ Execution is unnecessary, and
Remove commands that cause significant processing time.
ディスクAのコマンドキュー222には、アクセス要求(A)、アクセス要求(B)に由来するコマンドが格納されている。
The
コマンド処理部21がコマンドキュー222に含まれるコマンドをエレベータアルゴリズムにより整列させると、アクセス要求(A)に由来するコマンドの次にアクセス要求(B)に由来するコマンドが実行される。
When the
このとき、コマンドキュー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
コマンド処理部21は、このコマンドを削除可能であるかを確認する。
The
記憶媒体221を構成する各ディスクはRAID5の関係にあり、ディスクを1台アクセスせずに、パリティからの復元によって、Read結果を得ることが可能である。
Each disk constituting the
ディスク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
コマンド処理部21は、再びコマンドキュー222内のコマンドを整列し、各ディスクのコマンド処理完了時間を算出する。
The
先程処理完了時間が最も遅かったディスク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
・ 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
ディスク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
コマンド処理部21は、スケジューリング後、ディスクが実行中のコマンドが存在しない場合、新たなコマンドを発行する。しかし、現在、全ディスクA、B、C、Dでコマンドが実行中の状態であるため、新たにコマンドは発行されない。
The
最終的に、
ディスク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
上記処理手順の説明では、ホスト1からストレージ2に対するReadアクセスを中心に説明を行ったが、WriteアクセスについてはWrite専用の処理以外は同様の処理を行う。
In the above description of the processing procedure, the description has focused on the Read access from the
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施例ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 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.
1 ホスト
2 ストレージ
3 ネットワーク
21 コマンド処理部
22 データ記憶部
221 記憶媒体
222 コマンドキュー
23 コマンド処理作業メモリ
231 アクセス要求管理テーブル
232 コマンド管理テーブル
24 ストレージ構成情報格納部
25 記憶媒体アクセス履歴格納部
31 ハードディスク内のプラッタ
32 プラッタ上の最外周トラック
33 プラッタ上の最内周トラック
34 プラッタ上のトラック
35 トラック上のブロック
1
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.
前記複数の記憶媒体間でのアクセス時間の合計の大小を比較し、アクセス時間の合計が相対的に長い記憶媒体への複数のアクセスコマンドのうち少なくとも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.
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する、ことを特徴とするストレージアクセス方法。 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乃至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.
少なくとも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.
前記複数の記憶媒体間でのアクセス時間の合計の大小を比較し、アクセス時間の合計が相対的に長い記憶媒体への複数のアクセスコマンドのうち少なくとも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.
記憶媒体単体での前記スケジューリングが行われた複数の前記記憶媒体から、複数の前記記憶媒体全体でのアクセス完了を早めるように、アクセスコマンドを発行する記憶媒体の組み合わせを選択する処理と、
をストレージ装置のコンピュータに実行させるプログラム。 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.
少なくとも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. .
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7013294B2 (en) | 2018-03-19 | 2022-01-31 | キオクシア株式会社 | Memory system |
Citations (4)
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 |
-
2008
- 2008-01-07 JP JP2008000517A patent/JP5292813B2/en not_active Expired - Fee Related
Patent Citations (4)
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)
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'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 |