JP2006285809A - ストリーミング向け性能保証を行うストレージ装置 - Google Patents
ストリーミング向け性能保証を行うストレージ装置 Download PDFInfo
- Publication number
- JP2006285809A JP2006285809A JP2005107013A JP2005107013A JP2006285809A JP 2006285809 A JP2006285809 A JP 2006285809A JP 2005107013 A JP2005107013 A JP 2005107013A JP 2005107013 A JP2005107013 A JP 2005107013A JP 2006285809 A JP2006285809 A JP 2006285809A
- Authority
- JP
- Japan
- Prior art keywords
- access request
- transfer rate
- data transfer
- data
- time interval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】
複数ストリーム混在時も各ストリームの転送レートを保証する。
【解決手段】
ホスト計算機から多重ストリームの処理を要求されるディスクアレイ装置が、転送レートを認識する転送レート認識処理と、ドライブ性能及び障害処理時間認識処理と、各ストリームを格納するシーケンシャルバッファのサイズ決定処理と、ドライブI/Oサイズ決定処理を行い、かつ、各処理において決定した転送レートとバッファサイズを用いて先読みやデステージ処理を終了すべき終了要求時刻を求め、この時刻に基づいてI/Oの優先順位を決める。
【選択図】 図10
複数ストリーム混在時も各ストリームの転送レートを保証する。
【解決手段】
ホスト計算機から多重ストリームの処理を要求されるディスクアレイ装置が、転送レートを認識する転送レート認識処理と、ドライブ性能及び障害処理時間認識処理と、各ストリームを格納するシーケンシャルバッファのサイズ決定処理と、ドライブI/Oサイズ決定処理を行い、かつ、各処理において決定した転送レートとバッファサイズを用いて先読みやデステージ処理を終了すべき終了要求時刻を求め、この時刻に基づいてI/Oの優先順位を決める。
【選択図】 図10
Description
本発明は、ストレージ装置において転送レートや応答時間といった品質を保証する技術に関する。
近年、広帯域通信サービスの普及に伴い、デジタル化された映画やニュース等のリッチコンテンツのストリーミング配信が盛んになってきている。ストリーミング配信のためのシステムに含まれる記憶装置(以下「ストレージ装置」あるいは「記憶装置システム」とも言う)には、顧客への安定したデータ配信の保証のために、限界スループット性能だけでなく、転送レートや応答時間といったデータ転送の品質(以下「QoS」:Quality of Service)の保証が要求される。このような品質保証に関する従来技術として、特許文献1から3がある。
特許文献1では、記憶装置内の構成要素及びその構成要素各々の性能値を考慮して、計算機から記憶装置の記憶領域までの通信品質を保証することを目的とした技術が開示されている。具体的には、特許文献1には記憶装置と計算機との間の通信品質を保証する通信品質設定装置が開示されている。この通信品質設定装置は、通信品質保証に関する要求情報、記憶装置のインターフェースの保証可能な性能値及び記憶装置の記憶領域の保証可能な性能値に基づいて、記憶領域各々で保証すべき性能値を決定する保証性能値生成部と、保証すべき性能値に従って記憶領域インターフェースとの間でデータの配置を制御するように記憶制御装置に対して指示することにより計算機と記憶装置内の記憶領域との間の通信を保証する保証性能値設定部を有する。
特許文献2では、データ転送速度を保証する記憶装置が開示されている。具体的には、特許文献2では、期待データ転送レートとトラック毎の転送レートを用いる技術が開示されている。記憶装置には、要求する期待データ転送レートが通知され、これが管理テーブルに登録される。記憶装置はフォーマット時などに、トラック毎にデータの書き込みおよび読み出しを行うことで不良セクタを認識し、不良セクタを除いた書き込み時間を管理テーブルに登録する。このデータ転送レートが、既に登録されている期待データ転送レートよりも小さければ、この記憶装置にはデータは格納できないことを認識し、転送レートを保証できる領域のみを用いてデータを格納する。
特許文献3では、記録部に記録されたデータへのアクセスを終了させるべき時間を記録したタイムアウトテーブルと、タイムアウトテーブルに記憶された時間を経過してもアクセスが終了しない場合に、上記記録部に記録された冗長データをアクセスし、データを生成するデータ生成手段を備える記憶装置が開示されている。
上述したストリーミング配信のシステムでは、顧客にサービスを提供する計算機は、複数の顧客に対してコンテンツ配信を同時に行うために、コンテンツを格納したストレージ装置に対して複数のアクセスを同時に(以下「多重ストリームアクセス」)行う。ここで「ストリーム」とはある一単位のデータ転送を指し、例えば一つのストリームは一つのコンテンツのデータ転送に該当する。多重ストリームアクセスを処理するストレージ装置は、各ストリームに対してQoSを保証する必要がある。
前述の各文献では、一つのストリームに関してQoSを保証することについては言及されているが、多重ストリームについてどのように個々のストリームのQoSを保証するかについてはまったく言及されていない。
本発明の課題は、多重ストリームを処理する記憶装置において、各ストリームに対してQoSを保証することである。
本発明の実施形態として、計算機からストリームアクセスを受信する記憶装置システムにおいて、記憶装置システム自身が、ストリームアクセスのデータ転送レートを検出する構成が考えられる。
又、上述の構成において、記憶装置システムは、検出したデータ転送レートに基づいて、データ読み出し等の内部処理の実行に要求される時間を計算し、その結果に基づいてデータ処理を行う構成も考えられる。
より具体的には、記憶装置システムは、自身が有する資源や性能等と検出されたデータ転送レートとから実行に要求される時間を計算する。ここで、その時点での資源で検出されたデータ転送レートを維持できない場合、記憶装置システムは、資源の構成を変更しても良い。ここで資源とは、例えばバッファメモリサイズ等が考えられる。性能とは、ドライブ性能や障害時の処理時間等が考えられる。
また、記憶装置システムにおいて、複数のストリームを処理する際に、要求される処理時間に応じてI/Oを内部でスケジューリングする構成も考えられる。
更に、記憶装置システムにおいて、ストリームアクセスをシーケンシャルアクセスかどうかで判定する構成も考えられる。又、ストリームアクセスをアクセス先に基づいて判断する構成も考えられる。
本発明の他の構成等については実施形態の記載から明らかにされる。ただし、本発明の概念が実施形態の記載に限定されることが無いのは言うまでも無い。
多重ストリームを受信する記憶装置システムにおいて、各ストリームのビットレートや応答時間を安定させることができる。
図1は、第一の実施形態のコンピュータシステムの一例を示す図である。本実施形態のコンピュータシステムは、ユーザが使用する端末(以下単に「ユーザ」)101〜104、インターネット105を介してユーザからの配信要求を受け付ける計算機(以下「ホスト計算機」とも言う)109、110、ホスト計算機からのアクセス要求を処理するストレージ装置(以下「ディスクアレイ装置」とも言う)113を有する。ユーザとホスト計算機はインターネット105を介して相互に接続される。又、ホスト計算機とディスクアレイ装置113とは、通信線を介して接続される。尚、この通信線はインターネット105と置き換えられても良い。
ディスクアレイ装置113は、ディスクアクセス等を制御するディスクアレイ制御装置114及びデータを格納するドライブ118〜121を有する。ディスクアレイ制御装置114は、制御プログラムを実行するMPU115とデータを格納するキャッシュメモリ116を有する。
本実施形態においてはディスクアレイ装置113は複数のホスト計算機に共有され、更にホスト計算機は複数のユーザからコンテンツ要求のアクセスを受信する。したがってディスクアレイ装置113は多くのユーザから共有されることになり、ディスクアレイ装置113は多重ストリームアクセスを処理する必要がある。
ホスト計算機は一般的な計算機であり、プロセッサ、ネットワークとのインターフェース、メモリ等を有する。上述したように、ホスト計算機はユーザからのコンテンツ配信要求などを受信し、その内容に応じてディスクアレイ装置113にコンテンツの読み出し(又は書き込み)(以下「ストリームアクセス」とも言う)を要求する。
ユーザはコンテンツを表示できる装置であればよく、例えば携帯電話、パソコン、テレビ等が考えられる。ユーザとして使用される装置には、ネットワークへ接続するためのインターフェース、ホスト計算機と通信を行うための装置及び表示装置が備わっている。
以下、本実施形態における多重ストリームの処理概要について説明する。
本実施形態のディスクアレイ装置113は、まず多重ストリームを受信する際に、個々のストリームで要求されるデータ転送レート(以下単に「転送レート」とも言う)を検出する。その後、ディスクアレイ装置113は、個々のストリームのデータ転送レートを維持するために必要なディスクアレイ装置113の資源(ここではストリーム毎のバッファサイズやディスクI/Oサイズ)割当を決定する。その後、その資源割当に基づいて、ディスクアレイ装置113は、多重ストリームの処理を行う。
本実施形態のディスクアレイ装置113は、まず多重ストリームを受信する際に、個々のストリームで要求されるデータ転送レート(以下単に「転送レート」とも言う)を検出する。その後、ディスクアレイ装置113は、個々のストリームのデータ転送レートを維持するために必要なディスクアレイ装置113の資源(ここではストリーム毎のバッファサイズやディスクI/Oサイズ)割当を決定する。その後、その資源割当に基づいて、ディスクアレイ装置113は、多重ストリームの処理を行う。
又、実際に多重ストリームの処理を行う場合、ディスクアレイ装置113は、受信したI/Oの処理が、検出されたデータ転送レートを維持できる時間で完了できるよう、他のストリームのI/O処理を考慮しながら、処理順番を決定する。
図10は、上述した処理概要における各処理間の関係の一例を示す図である。ディスクアレイ装置113は、上述した処理を、図10に示す各処理を実行することによって実現する。
上述した処理概要は、具体的には、パラメータ設定処理1003、バッファサイズ決定処理及びドライブI/Oサイズ決定処理1005並びにI/Oスケジューリング処理1006とを含む。即ち、ディスクアレイ装置113は、これらの処理を実行する。パラメータ設定処理1003は、更に、転送レート認識処理1000及びドライブ性能、障害時の処理時間認識処理1004を有する。
バッファサイズ決定処理及びドライブI/Oサイズ決定処理1005では、ディスクアレイ装置113は、設定されたパラメータからバッファサイズやディスクI/Oサイズを決定する。I/Oスケジューリング処理1006では、ディスクアレイ装置113は、設定されたパラメータ及びバッファサイズを用いて、多重ストリームで発生するI/Oをスケジューリングする。
これらの処理に基づいて、ディスクアレイ装置113は、多重ストリームに含まれる個々のストリームの転送レートを認識し、その転送レートに見合う資源を各ストリームに割り当て、更に、その資源に基づいて多重ストリームのI/Oをスケジューリングして処理する。以下、各処理の詳細について説明する。
転送レート認識処理1000では、ディスクアレイ装置113は、ホスト計算機からディスクアレイ装置113に対して発行される各ストリームの転送レートを認識する。この処理によって認識される転送レートを用いて、各ストリームに必要な転送レートを維持するための処理をディスクアレイ制御装置114で実施する。具体的には、ディスクアレイ装置113は、自動認識1001又はユーザ指定1002のいずれかの方法を用いて転送レートを認識する。
自動認識1001の場合、ホスト計算機からディスクアレイ装置113に対してストリームアクセスが発生したとき、ディスクアレイ装置113は、まず受け取ったアクセスがストリームアクセスであるかどうかを判定する。
以下、ディスクアレイ装置113がストリームアクセスを見分ける方法について説明する。一般的に、ストリームアクセスはシーケンシャルアクセス(連続領域に対するアクセス)となることが多い。したがって、本実施形態では、ディスクアレイ装置113が、ホスト計算機からのアクセス要求をシーケンシャルアクセスであると判断した場合にストリームアクセスと判断する。
シーケンシャルアクセスの判定法は、例えばホスト計算機から受信するI/Oで指定されるデータのアドレスの連続性で確認する方法がある。より具体的には、ディスクアレイ装置113は、ホスト計算機からI/Oを受信した際、キャッシュメモリに要求されたデータが存在するかどうかのチェックを行う。このときディスクアレイ装置113は、要求されたデータが格納される領域の直前のアドレス(例えば論理ブロックアドレス(LBA))で示される領域のデータがキャッシュメモリ上に存在するかも併せてチェックする。そして、そのデータが存在する場合、受信したI/Oを一つのストリームアクセスと判断する。
ストリームアクセスと判断した場合、ディスクアレイ装置113は、ビットレートの計算を行う。まず、ディスクアレイ装置113は、ディスクアレイ装置113の最大転送レートをパラメータとして設定し、ホスト計算機との間で一定期間、ストリームアクセスに関するI/Oを最大転送レートで実行する。その後、ディスクアレイ装置113は、この一定期間で実際にホスト計算機との間で該当ストリームアクセスに関して転送されたデータ量を測定する。そして、ディスクアレイ装置113は、測定された値から該当ストリームに関する転送レートを求め、求めた転送レートを該当ストリームの転送レートとする。その後、ディスクアレイ装置は、割り出したデータ転送速度を維持するように自身を制御しながら、ストリームアクセスに基づくデータ転送を行う。
ストリーム配信においては、ユーザからホスト計算機に対する配信要求で要求されるデータ転送レートは、ストリーム毎に一定であることが多い。この場合、ホスト計算機からディスクアレイ装置113への転送要求で要求される転送レートもストリーム毎に一定となる。したがってディスクアレイ装置において一定期間各ストリームに関して転送レートを記録することにより各ストリームの転送レートを認識することができる。
尚、「一定時間」とは、データ送信の状態が落ち着くまでの任意の時間間隔を指す。これは管理者が指定してもよいし、ストレージ装置が一定の時間間隔(例えば30秒)でビットレートの計算を繰り返し、計算結果の変動幅がある値を下回った時点までの時間としても良い。
又、他の実施形態として、シーケンシャルアクセスかどうかではなく、ある特定のアドレス(あるいはアドレス領域)へのアクセス要求であるかどうかに基づいて、ディスクアレイ装置装置113がストリームアクセスかどうかを判定しても良い。単純には、ディスクアレイ装置113に格納されるコンテンツの先頭アドレス(又はアドレス領域)をディスクアレイ装置113が把握し、その先頭アドレス(又はアドレス領域)へのアクセスがあったときに、ディスクアレイ装置113がストリームアクセスと判断する。
ただし、全てのコンテンツの先頭アドレス等をディスクアレイ装置113が把握するのは現実的ではないため、例えば、ディスクアレイ装置113における記憶領域の管理単位(論理ユニット(LU)等)へのアクセス要求の有無をストリームアクセスの判定に用いても良い。例えば、ある特定のLUにアクセスがあった場合、ディスクアレイ装置113は、このアクセスをストリームアクセスと認識し、データ転送レートの計算を開始する。この場合、管理者は、同じようなデータ転送レートが要求されるコンテンツを同じLUに格納するようにディスクアレイ装置113を管理すると良い。
又、ディスクアレイ装置113は、一度計算したデータ転送レートの情報を保存し、再度同じコンテンツへのアクセスがあった場合に、保存した情報を用いてデータ転送レートを設定(すなわちデータ転送レートの計算を省く)しても良い。この場合、ディスクアレイ装置113は、コンテンツとデータ転送レートとの関係を情報として記録しなければならない。これは例えばコンテンツの先頭アドレス(あるいはLUの先頭アドレス)とデータ転送レートとを関連付けて記録すればよい。
尚、複数のストリームアクセスを受信した場合にも同様の処理を行う。シーケンシャルアクセスでストリームアクセスを判別する場合、ディスクアレイ装置113は、異なるシーケンシャルアクセスを異なるストリームアクセス(同じコンテンツに対する複数アクセスでも異なるコンテンツに対する異なるアクセスも含む)と判断する。
一方、アドレス(コンテンツ又はLU)でストリームアクセスを判断する場合、ディスクアレイ装置113は、異なるアドレスへのアクセスを異なるストリームアクセスと判断する。この場合、同じアドレスへの複数のアクセスと判断すると、ディスクアレイ装置113は、複数のうちのどれか一つのストリームアクセスのデータ転送レートのみを計算し、その結果を複数のストリームアクセスに適用することもできる。
0 ・ ・ ・ 0 ・ 0 0 ・ 尚、ディスクアレイ装置113は、認識した各ストリームの転送レートの情報を、ストリーム毎にディスクアレイ制御装置114に格納する。
次にユーザ指定方法1002について、図4を用いて説明する。ディスクアレイ装置113の管理者または、ホスト計算機がエージェントプログラムを実行することで、要求する転送レートをディスクアレイ装置113に対して設定する。ディスクアレイ装置113の管理者が設定する場合、管理者が管理端末122を通してディスクアレイ装置113に指示し、ディスクアレイ装置113内のディスクアレイ制御装置114がディスクアレイ制御装置114内に存在する図4に示すテーブルに値を設定する。ホスト計算機がエージェントプログラムを実行することによって設定する場合、ホスト計算機は、配信サーバー等の配信を制御するプログラムからの転送レート情報を受けて、ディスクアレイ装置113に対してInbandで転送レート情報の設定の指示を出す。具体的にはホスト計算機から特殊コマンドを送信し、ディスクアレイ装置113はそれを受信して図4に示すテーブルに指定された値を設定する。
転送レートは、401に示すようなLU毎、または402、403に示すような領域毎に指定される。404の転送レートは、10Mbps、1.5Mbpsといったビットレートが直接設定されるか、またはMPEG1、MPEG2、MPEG4、高精細(以下「HD」)といった圧縮レートの規格の情報が設定される。後者の場合、ディスクアレイ装置113は、これらの規格から転送レートを判断する。更に、転送レート以外に、各ストリームに対応する各I/Oの要求応答時間405をLU毎または領域毎に設定することができる。
転送レートは、401に示すようなLU毎、または402、403に示すような領域毎に指定される。404の転送レートは、10Mbps、1.5Mbpsといったビットレートが直接設定されるか、またはMPEG1、MPEG2、MPEG4、高精細(以下「HD」)といった圧縮レートの規格の情報が設定される。後者の場合、ディスクアレイ装置113は、これらの規格から転送レートを判断する。更に、転送レート以外に、各ストリームに対応する各I/Oの要求応答時間405をLU毎または領域毎に設定することができる。
ドライブ性能および障害処理時間認識処理1004では、ディスクアレイ制御装置114が、ドライブ性能情報や障害情報処理時間情報を認識する。ディスクアレイ装置113におけるドライブの種類はあらかじめ決められており、ドライブのシーク時間や、データ転送時間といったドライブの性能情報もドライブによって固定の値がある。これらの値はディスクアレイ制御装置114にあらかじめ設定されており、ディスクアレイ制御装置114は、実際に使用されているドライブの情報を、これらあらかじめ設定されている値から求めて、ディスクアレイ制御装置114内のテーブルに設定する。障害時処理時間情報もあらかじめ決まっている情報であり、これらの情報はディスクアレイ制御装置114内のテーブルに設定されている。ディスクアレイ制御装置114はI/Oを処理する際にこれらドライブの性能情報や障害処理時間を考慮して処理を行う。
これらの情報はドライブに発行したコマンドの予測終了時刻を求めるために使用される。又予測終了時刻は、I/Oスケジューリング処理1006で使用される。
ディスクアレイ装置113は、パラメータ設定処理1003で設定されたパラメータを用いて、バッファサイズおよびディスクI/Oサイズの決定処理1005を行う。図2及び図3は、リードおよびライト時のバッファサイズの決定およびバッファの使用方法例の概要を説明する図である。
図2を用いて、ホスト計算機からのデータ読み出し(リード)に関する多重ストリームアクセス受領時のバッファの使用方法とバッファサイズの決定方法例について説明する。ここで、ディスクアレイ装置113には多重ストリームアクセスが発生し、各ストリームはリードアクセスであるとする。一般的にデータを読み出すストリームアクセスは連続読み出し(以下「シーケンシャルリード」と称する)アクセスである。このため、データを読み出すストリームに対しては、ディスクアレイ装置113は、図2に示すようにシーケンシャルバッファをキャッシュ116内に設ける。シーケンシャルバッファはN個設けられ、それぞれが1ストリームに対応する。
また、ディスクアレイ装置113は、シーケンシャルバッファを2面以上の複数の面で構成する。ここで「面」とは、キャッシュメモリ116を構成するメモリの物理的な単位を指す。例えば、一枚の基板の表裏に記憶素子が実装されているメモリが使用される場合、表裏それぞれが「面」に相当する。図2では各シーケンシャルバッファは、面0(227:例えば表)と面1(228:例えば裏)から構成される。シーケンシャルバッファの各面には1ストライプ列分のデータが格納される。ここで「ストライプ列」とは、記憶装置においてアレイ構成を使用する際のデータ格納の単位を指す。
図2は、ディスクアレイ装置113がRAID4又はRAID5のアレイ構成で4D1P(データディスク4つ、パリティディスク1つ)の場合を表している。一つのシーケンシャルバッファの面0は、データを格納する領域207〜210とパリティデータを格納する領域211を有する。面1も同様にデータを格納する領域212〜215及びパリティデータを格納する領域216を有する。
シーケンシャルリードでは、ディスクアレイ装置113が有する記憶領域の連続領域に対するリード処理が発生する。この場合、ディスクアレイ装置113は先読み処理を行う。「先読み処理」とは、データの読み出し場所が予測できる場合、ホスト計算機からのリード要求が発生する前に、ディスクアレイ制御装置114があらかじめドライブからキャッシュメモリ116にデータを読み込んでおくことにより、ディスクアレイ装置113におけるドライブへのアクセス時間を隠蔽する方法である。シーケンシャルリードの場合、データの読み出し場所が予測可能なので、データの読み出し処理はこの先読み処理が行われると考えて良い。本実施形態でも、先読み処理を採用する。
本実施形態では、ディスクアレイ装置113は、面0または面1のストライプ列単位に先読み処理を行う。したがって、ディスクアレイ制御装置114は、ホスト計算機からの要求毎にドライブへのリード要求を発行するのではなく、ストライプ列単位にドライブ221〜224に対してリード要求を発行する。ホスト計算機からのリード要求が実際に発生すると、ディスクアレイ制御装置114は、シーケンシャルバッファにリード要求に該当するデータが存在すればそのデータをホスト計算機に転送する。リード要求に該当するデータがシーケンシャルバッファに存在しない場合、ディスクアレイ制御装置114は先読み処理を実行し、該当するストライプ列分のデータをドライブから読み出してホスト計算機へ転送する。
尚、ディスクアレイ制御装置114は、一つの面に格納されたデータのホスト計算機へのデータ転送が完了すると、該当バッファに対して次の先読み処理を行う。又、ディスクアレイ制御装置114は、一つの面について先読み処理によって格納されたデータをホスト計算機へ転送している間、他の面にデータを格納するために、この面に対する先読み処理を行う。これにより、ディスクアレイ装置113は、間断なくデータをホスト計算機に送信することができる。逆に言うと、ある面に関するホスト計算機へのデータ転送が終了した時点で他の面へのデータ先読み処理が終了していないと、ホスト計算機へのデータ転送は、他の面へのデータ先読み処理が終了するまで待たされることになる。この場合、ディスクアレイ装置113は、データ転送レートを保証できなくなる恐れがある。
ここでディスクアレイ装置113は、先に説明したパラメータ設定処理1003で得られた情報に基づいて、個々のリードストリームに割り当てるシーケンシャルバッファのサイズを決定する。より具体的に言えば、ディスクアレイ装置113は、検出(あるいは設定)されたリードストリームの転送レートを保証できるように、シーケンシャルバッファのサイズを決定する。
図2の下部(226)は、パラメータ設定処理にて設定されたストリームの転送レートと先読み処理終了時刻の関係を表している。一般的に、先読み処理が、(バッファ1面のサイズ)/(要求転送レート)以内に終わらなければ、ホスト計算機への要求転送レートを守れない(転送すべきデータがキャッシュに存在しなくなる)。226では、ストライプサイズ128KB,4D1P、ストライプ列サイズが512KB、シーケンシャルバッファ1面のデータ領域のサイズが512KB場合に、転送レートがそれぞれ(1)192KB/s、(2)6.25MB/sの場合の先読み終了時刻(以下「先読み終了要求時刻」とも称する)の例を示している。
ここで、要求転送レートが192KB/sの場合、前記計算式から2.6s以内に先読み処理が終わればホスト計算機が要求する転送レートを保証できる。また要求転送レートが6.25MB/sの場合、1ストライプ列分の先読み処理は80ms以内に終了しなければならない。
ディスクアレイ装置113は、まずこの計算式を用いて、現時点でリードストリームに割り当てられているシーケンシャルバッファのサイズに基づいて先読み終了要求時刻を算出する。そして、ディスクアレイ装置113は、パラメータ設定処理1003で設定されたドライブ性能、障害処理時間パラメータを参照し、計算で求めた先読み終了要求時間内で、ディスクアレイ制御装置114が先読み処理を完了できるかどうか確認する。
例えば図3の例では、転送レートが・ 6.25MB/s、・ 4D1P、ストライプサイズ128KB、・ バッファ1面が1ストライプ列(128KB*4=512KB)の場合、バッファ1面512KBのデータをホスト計算機がリードするのに、512KB/6.25MB=80msかかる。したがって80ms以内にバッファ1面に対して先読みが終了すれば、ホスト計算機が要求する転送レートを守ることができる。先読みはストライプ列単位に行われるため、各ドライブに対する128KBのリード要求が、80ms以内に終了すれば上記転送レートを守ることができる。
ここで、ディスクアレイ制御装置114は、ドライブ性能情報により、一つのリード要求に対するドライブのリード時間を求めることができる。
例えば、コマンド時間:0.5ms、・ 回転待ち時間:2ms、・ シーク時間:3.8ms、・ 内部転送時間:0.24ms、・ ディスクアレイ制御装置へのデータ転送時間:0.15msのドライブだったとすると、1回のドライブI/O時間(一つのリード要求を処理する時間)が7ms程度になる。したがって、ドライブにコマンドが複数発行されていたり、障害が発生していなければ、このドライブは80ms以内で128KBのリード要求を処理することができる。
しかしドライブに複数のコマンドが発行されている場合、例えば10個コマンドが発行されている場合、最後(つまり11番目)にコマンドが発行され、そのコマンドに対応するデータが送信されるまでには11×7ms=77msかかる。このような場合、このドライブが80ms以内で128KBのリード要求を処理することは厳しくなる。障害処理時間も同様に考え、例えばドライブ障害が発生していることがわかり、データ回復のために、パリティデータなどを再度読む必要がある場合、その分ドライブアクセスが発生し、先読みの終了時刻が遅延することになる。
ここで、上述したようにディスクアレイ制御装置114が、ドライブ性能及び障害処理時間を考慮した結果、計算で求めた先読み終了要求時間以内に先読み処理を行えるならば、ディスクアレイ装置113は、既に割り当てられているシーケンシャルバッファを、バッファサイズを変更せずに使用する。
一方、ディスクアレイ制御装置114が計算で求めた先読み終了要求時間内に先読み処理を行うことが不可能な場合、ディスクアレイ装置113は、ドライブ性能、障害処理時間を考慮し、ディスクアレイ制御装置114が処理可能な時間内に先読み終了要求時間が収まるように、ストリームに割り当てられたシーケンシャルバッファのサイズを増加させる。例えば226においてバッファ1面のサイズを2ストライプ列分の1MBに増加させると、(1)の先読み終了要求時間は5.2s、(2)の先読み終了要求時間は160msに増加する。
上述した例では、例えばコマンドが10個送信されているドライブについては、転送レートを維持するために、例えばバッファサイズを1MBとすれば、先読み処理終了要求時間が160msになるので、転送レートが維持できるようになる。
図3は、ホスト計算機からの多重ストリームアクセス要求がライトの場合について説明する図である。ライト要求(以下「ライトストリーム」とも言う)の場合もリードストリーム同様に各ストリームはシーケンシャルアクセスとなる。従って、ディスクアレイ装置113は、図2と同様に各ライトストリームに対してシーケンシャルバッファを割り付ける。又、図2と同様に、一つのシーケンシャルバッファは2面(又はそれ以上)に割り付けられる。
ライトストリームの場合、ディスクアレイ装置113は、1面分のデータをホスト計算機から受領した後、ホスト計算機から受信したデータのみでパリティを生成し、1ストライプ列分のデータとパリティをドライブに書き込む。又、ディスクアレイ装置113は、1面のデータ格納後、その面についてパリティ生成とドライブへの書き込み処理(デステージ処理)を起動する。一方、一方の面でパリティ生成とドライブへのデステージ処理が開始されると、ディスクアレイ装置113は、もう一方の面を用いてホスト計算機からの書き込みデータの受信を行う。
したがって、一方の面のパリティ生成及びデステージ処理が、他方の面でのホスト計算機から受信したデータの格納が終了するまでに終了すれば、ディスクアレイ装置113は、ホスト計算機からのライト要求を待たせることなくデータを受領することができる。
したがって、ディスクアレイ装置113は、図2と同様の計算式を用いて、現時点でライトストリームに与えられたシーケンシャルバッファのサイズに基づいたパリティ生成及びデステージ処理に与えられる時間を計算する。そして、ディスクアレイ装置113は、計算された時間内にディスクアレイ制御装置114がデータを書き込むことができるかを、ドライブ性能および障害処理時間の情報を用いて確認する。
計算された時間内にディスクアレイ制御装置114がデータを書き込むことが出来ない場合、ディスクアレイ装置113は、シーケンシャルバッファのサイズを、ディスクアレイ制御装置114がデータ書き込みにかかる時間を満たす程度にまで増加させる。
図3の下部(330)は、パリティ生成およびデステージ処理時間とバッファサイズ、転送レートの関係例を表している。ストライプサイズが128KB、4D1P、バッファ1面のサイズが512KBの場合、ホスト計算機からの転送レートがそれぞれ(1)192KB/s、(2)6.25MB/sの例を示している。転送レートが192KB/sの場合、パリティ生成およびデステージ処理の終了要求時間は、リードの場合と同様に計算して、2.6s、転送レートが6.25MB/sの場合、80msとなる。図2に示したリードの場合と同様に、ドライブ性能および障害処理時間との関係から、計算により求めた終了要求時刻内にディスクアレイ制御装置114がデステージ処理等を完了させることが可能かどうかを検査し、不可能ならばバッファサイズを増加させる。
尚、ドライブ性能及び障害処理時間認識処理1004では、ドライブ単体のシーク時間、転送時間といった性能に加え、ドライブ毎の許容キューイングタグ数の設定も行われる。図11は、ドライブ毎の許容キューイングタグ数の設定例を示す図である。このテーブルは、ディスクアレイ制御装置114に格納される。「キューイングタグ数」とは、ディスクアレイ制御装置114がドライブに発行したコマンドのうち、ドライブからディスクアレイ制御装置114に完了通知が戻ってきていない、すなわちドライブ内で処理中のコマンドの数を指す。また図11に示す許容キューイングタグ数は、キューイングタグ数の制限値を表している。
ディスクアレイ制御装置114は、ドライブへのI/O発行時に図11のテーブルを参照し、現在のキューイングタグ数がテーブルに記載の制限数に達しているかどうかを確認する。そして、キューイングタグ数が制限値に達していれば、ディスクアレイ制御装置114は、ドライブへのI/Oの発行を抑止する。この制御は、緊急度の高いストリームの転送レート保証や応答時間保証のために使用される。
一般的に、ドライブからのI/Oの応答時間(以下「ドライブI/O応答時間」とも言う)は、キューイングタグ数にほぼ比例して増加する。したがって、キューイングタグ数を無制限に許可すると、ドライブI/O応答時間が、図2及び図3で示した先読み及びデステージ処理の終了要求時間を越える可能性が高くなる。このような状況を回避するため、図11に示す値によってドライブへのキューイングタグ数を制限し、全てのI/Oの最大ドライブ応答時間を保証する。
尚、最大ドライブ応答時間とは、ホスト計算機への転送レートを守るために必要なドライブの応答時間、すなわちリードコマンドをドライブに発行してから、データが戻ってくる時間の許容可能な最大値を表す。ここで、上述の、I/Oを発行するとき既に10個のコマンドがドライブにキューイングされている場合、1I/Oのドライブ処理時間はほぼ固定(上述では7ms程度)なで、該当コマンドのデータが帰ってくるのに70ms程度(これがキューイングタグ数10の場合の最大ドライブ応答時間)かかる。一方、キューイングタグ数が0だと、データは7ms程度で送信される。
つまり、キューイングタグ数を制限してやれば、一つのコマンド処理にドライブが必要とする処理時間の最大値が予測できる。そして、ディスクアレイ制御装置114でコマンド発行の優先制御(例えばキューイング制限でドライブへの発行をディスクアレイ制御装置内で待たされているコマンドよりも、優先度の高いコマンド(ビットレートの高いストリームに起因するコマンド)が発生した場合、その優先度の高いコマンドを待たされている複数のコマンドより優先してドライブに発行すること)をすると、優先度の高いコマンドのドライブからの応答時間を、最大でキューイングコマンド数*1コマンドのドライブ処理時間(最大ドライブ応答時間)に保証することができる。
なおドライブへの発行を抑止されたI/Oはドライブキューにおいて待たされるが、高転送レートストリームに伴う先読みなど終了要求時間の短いジョブが発生した場合は、ドライブキューの先頭に登録する等により、終了要求時間内に処理を終了させる制御が行われる。
ドライブI/Oサイズの決定処理1005では、ディスクアレイ装置113は、バッファサイズ決定処理によって決定されたシーケンシャルバッファのサイズに基づいてドライブI/Oサイズを決定する。ここで「ドライブI/Oサイズ」とは、ディスクアレイ制御装置114からドライブに対して発行するデータ読み出し(又は書き込み)コマンドで設定される一回のデータ読み出し(又は書き込み)の量を指す。したがって、ドライブI/Oサイズを増加させると、ドライブへのリード、ライトのスループット性能は向上する。
このため、高い転送レートが要求されるストリームを多重に受ける場合は、ドライブI/Oサイズを増加させることでドライブ効率を上げ、性能を向上することができる。尚、ディスクアレイ制御装置114は、リードに対してはバッファ1面分の先読み処理の要求コマンドをドライブに発行し、ライトに関してはバッファ1面分のデステージ処理の要求コマンドをドライブに対して発行する。したがって、シーケンシャルバッファのサイズを増加させることで、ドライブへのI/Oサイズを増加させる。
次にI/Oスケジューリング処理1006について説明する。本実施形態におけるI/Oスケジューリング処理1006では、1007に示す方法を用いる。ディスクアレイ制御装置114は、1007を用いて、多重ストリーム処理に関わる各処理(例えばドライブに対する先読み要求等。以下「ジョブ」とも言う)の実行順番を、各ジョブの終了要求時間に基づいて並べ替えて実行する。これにより、各ストリームの転送レートを保証しながら多重ストリームを処理することが出来る。以下、図6〜図9を用いて具体的処理について説明する。
図6は、ディスクアレイ制御装置114における処理と処理時間の関係の説明する図である。図6では、上述したように、ディスクアレイ制御装置における処理単位をジョブとして表している。前述したリードの先読み処理は、先読みジョブによって実施し、ライトのパリティ生成およびデステージ処理は、デステージジョブによって実施されるものとする。
ここで時刻Tg(601)は、あるストリームの処理に対応して、ディスクアレイ制御装置114でジョブが生成された時刻を表している。これは例えばリードストリームに基づいてシーケンシャルリードが発生したときに、バッファ1面分のデータをドライブから読み出す先読みジョブをディスクアレイ制御装置114が生成した時刻を表す。ライトストリームの場合は、バッファ1面のデータを格納した後で、ディスクアレイ制御装置114がデステージジョブを生成した時刻に対応する。
時刻Te(603)は、Tgで生成されたジョブの終了要求時刻を表す。上述したように、ジョブの終了要求時刻Teは、シーケンシャルバッファサイズとストリームの要求転送レートから求められる。この時間までに各ジョブを終了できなければ、シーケンシャルバッファが枯渇してホスト計算機へのデータ転送が遅延したり、ホスト計算機からのデータを受け付けられなくなったりする。
時間Tr(605)は、Tgで生成されたジョブ処理に要する所要時間を表す。Trは、上述したように、ドライブへのキューイングコマンド数、ドライブ性能及び障害処理時間の情報に基づいて求められる。
時刻Ts(602)は、Te―Trより求められるジョブを開始しなければならない時刻を表す。より具体的に言えば、ディスクアレイ装置113は、遅くともジョブの処理を時刻Tsまでに開始しなければ、該当するストリームの転送レートを保証できない。
ディスクアレイ装置113は、上述の時刻Tsを多重ストリームに含まれる全てのストリームについて随時計算する。そして、ディスクアレイ装置113は、その結果に従って、その時点でもっとも早い時刻のTsに対応するストリームのジョブから、ジョブを実行する。したがって、ジョブの生成順と実行順は異なることがある。つまり、ジョブのTsが早い順に対応して、各ジョブに優先度が与えられる。
尚、本実施形態では、一つのジョブの実行時間が他のジョブとほぼ同じであることを前提にして、Teからジョブ開始要求時間(Ts)を求め、Tsの前後関係に基づいてジョブの実行順を決定している。つまり、時間的に早いTeを有するジョブは、Tsも早いと仮定している。しかし一つのジョブの実行時間が他のジョブと異なる場合も有りうるので、この場合には、単純にTeの時間の前後関係を比較し、その順番に応じてジョブを実行しても良い。
このように、ジョブの属性としてその開始時刻や終了時刻、処理時間といった時間の概念を導入する。このような時間の概念を導入することで、要求転送レートが異なる多数のストリームの処理の各々に優先度を付けることができ、より時間的に優先度の高いストリームを優先して処理することが可能になる。
尚、前述のジョブ生成時刻、ジョブ開始時刻、ジョブ終了要求時刻、所要処理時間は図5に示すジョブ管理テーブルに格納される。ジョブ管理テーブルは、ディスクアレイ制御装置114に格納される。図5の504欄に登録されるジョブ開始要求時刻Tsを基に、ディスクアレイ制御装置114は、#1、#2、#3、#4の順で優先付けを行う。
以下、ディスクアレイ制御装置114における、I/Oスケジューリング処理1006の手順例を説明する。
図7は、ディスクアレイ制御装置114におけるジョブのスケジューリング処理の概要を説明する図である。ディスクアレイ制御装置114は、ストリームの処理要求を受信すると、ストリームに対応するジョブ(例えばドライブへの処理要求コマンド)を作成する。ディスクアレイ制御装置114は、キャッシュメモリ116中にキュー領域をあらかじめ設定する。ディスクアレイ制御装置114は、作成したジョブをキュー領域に一つのキューとして登録する。
尚、図7では、ディスクアレイ制御装置114は、キュー領域に優先キュー702と非優先キュー708の二つの領域を設けている。優先キュー702には、例えばストリーミングで使用される場合の先読みジョブやデステージジョブに関するキューが登録される。これに対して非優先キューには、ストリーミングにおけるシーケンシャルアクセスではない、ランダムI/Oに対するジョブに関するキューが格納される。尚、他の実施形態として、優先キューと非優先キューを設けない構成も考えられる。
また、ディスクアレイ装置113においてリード処理を優先とすることが設定されている場合、リードに関わるジョブを優先キューに登録し、ライト等のリード以外のジョブを非優先キューに格納することもできる。
ディスクアレイ制御装置114は、上述した条件に基づいて、作成したジョブ(図の700)を優先キュー又は非優先キューのどちらに登録するかを決定し(キュー登録処理714)、各キューにジョブを登録する(704〜710)。又、ディスクアレイ制御装置114は、各ジョブを実行するために、各キューからジョブを選択し(実行ジョブ選択処理711)、選択したジョブを実行する(712)。
以下、キュー登録処理714と実行ジョブ選択処理711の手順の詳細例を説明する。
図8は、ディスクアレイ制御装置114におけるキュー登録処理714の処理手順例を示す図である。ディスクアレイ制御装置114は、まず登録の対象となるジョブ(以下「登録要求ジョブ」)をJOBと定義する。この際、ディスクアレイ制御装置114は、登録要求ジョブについて、図5に示すテーブルに登録された情報に基づいて、JOBにTg(ジョブ生成時刻)、Ts(開始要求時刻)、Te(終了要求時刻)の情報を設定する(ステップ802)。
次にディスクアレイ制御装置114は、JOBが優先キューに登録されるジョブ(以下「優先ジョブ」)か、非優先キューに登録されるジョブ(以下「非優先ジョブ」)かどうかを判定する(ステップ803)。
ディスクアレイ制御装置114は、ステップ803の判定結果に従って、JOBが非優先ジョブであれば登録対象キューを非優先キューとし(ステップ804)、JOBが優先ジョブであれば、登録対象キューを優先キューとする(ステップ805)。ステップ804又はステップ805の処理後、ディスクアレイ制御装置114は、JOBのキュー内の登録位置を決定する。具体的には、ディスクアレイ制御装置114は、登録対象キューに既に登録されている各ジョブの開始要求時刻とJOBに設定されたTsを比較し、Tsよりも開始要求時刻が早い各ジョブのうち、最も開始要求時刻が遅いジョブの直後をJOBの登録位置とする(ステップ806)。最後にディスクアレイ制御装置114は、JOBをステップ806で決定した位置に登録する(ステップ807)。
図9は、実行ジョブの選択処理711の処理手順例を示す図である。実行ジョブ選択処理711では、ディスクアレイ制御装置114は、優先キューおよび非優先キューから最も優先度の高いジョブを選択する。優先キューと非優先キューに登録されているジョブは、登録時にTsを用いて登録されているため、各キュー内では優先度順に並べられている。よって実行ジョブの選択では、優先キューと非優先キューの先頭のジョブが選択対象であり、選択対象の2つのジョブのうち、優先度の高いジョブが選択される。非優先キューに登録するランダムアクセス等の処理については、コマンドがタイムアウトにならない範囲のデフォルト値をTsとして設定する。
まずディスクアレイ制御装置114は、優先キューの先頭のジョブを優先キューの選択対象ジョブJOBpとし、非優先キューの先頭ジョブを非優先キューの選択対象ジョブJOBnpとし、Tp_sをJOBpの開始要求時刻とし、Tnp_sをJOBnpの開始要求時刻とし、Tcを現在の時刻とする(ステップ901)。
次に、ディスクアレイ制御装置114は、現在時刻TcとTp_s、現在時刻TcとTnp_sを比較する(ステップ902)。Tp_sとTnp_sが共にTcよりも遅ければ、双方のキューに登録されたジョブの両方ともに開始要求時刻に達していないので、ディスクアレイ制御装置114は、Tp_sとTnp_sを比較して早い方をステップ905、907において実行ジョブとする(ステップ904)。
少なくともいずれか一方のキューに登録されたジョブの開始要求時刻が現在時刻Tcよりも早い場合、ディスクアレイ制御装置114は、Tp_sとTnp_sが共にTcを超えているかどうか検査する(ステップ903)。共に現在時刻が開始要求時刻を超えている場合は、ディスクアレイ制御装置114は、優先キューのジョブを優先して実行する(ステップ906)。
いずれか一方のキューに登録されたジョブの開始要求時刻が現在時刻Tcよりも早い場合、ディスクアレイ制御装置114は、双方の開始要求時刻を比較し(ステップ904)、ステップ905、907において開始要求時刻の早いほうを選択する。これは、結果的には開始要求時刻が現在時刻Tcよりも早いジョブを選択することと同義である。
上述した処理により、開始要求時刻以内ならばどちらの優先ジョブ、非優先ジョブのどちらの実行も可能なので開始要求時刻が小さいほうを選択し、双方の開始要求時刻が現在時刻を越えている場合は、優先ジョブの処理遅れを最小限とするために、優先ジョブを選択する。
図7に示すI/Oスケジュール処理は、ディスクアレイ制御装置内の複数の箇所で使用可能である。例えば待ち状態であったジョブが実行可能となったためにキューイングされるレディーキューや、ドライブへのコマンド発行時にキューイングされるドライブキューに適用可能である。
他の実施形態としては、ディスクアレイ装置であって、特にディスクアレイ制御装置が、転送レートの認識部と、ドライブ性能および障害処理時間認識部と、転送レート認識部において認識した転送レートと、バッファサイズ決定部とドライブI/Oサイズ決定部と、I/O処理スケジューリング部を有し、転送レート認識部において認識された転送レートと、ドライブ性能および障害処理時間認識部において認識されたドライブ性能と障害処理時間を用いてバッファサイズおよびドライブI/Oサイズ決定部がバッファサイズおよびドライブI/Oサイズを決定し、さらに認識された転送レートと、ドライブ性能および障害処理時間と、決定されたバッファサイズと、ドライブI/Oサイズを用いて、I/O処理スケジューリング部においてI/Oの処理に優先順位付けを行なうことで、転送レートを保証するディスクアレイ装置が考えられる。
101‥ユーザ、105‥ネットワーク、109‥ホスト計算機、113‥ディスクアレイ装置、114‥ディスクアレイ制御装置、115‥プロセッサ、116‥キャッシュメモリ
Claims (20)
- 計算機と接続される制御部と、
前記制御部と接続されるディスク装置とを有し、
前記ディスク装置は複数のコンテンツを格納し、
前記制御部は、前記計算機から前記複数のコンテンツのうちの第一のコンテンツに対する第一のアクセス要求を受信し、前記第一のアクセス要求に関する第一のデータ転送レートを計算し、前記計算結果に基づいて前記第一のアクセス要求に基づく処理を行うことを特徴とする記憶装置システム。 - 前記制御部は、前記第一のアクセス要求に基づく処理を前記第一のデータ転送レートを維持するための第一の時間間隔内で実行し、
前記第一の時間間隔は、該記憶装置システムが有する資源、処理能力及び前記第一のデータ転送レートによって決定されることを特徴とする請求項1記載の記憶装置システム。 - 前記制御部は、前記第一のアクセス要求を処理中に、前記計算機から前記複数のコンテンツのうちの第二のコンテンツに対する第二のアクセス要求を受信し、前記第二のアクセス要求に関する第二のデータ転送レートを計算し、前記計算結果に基づいて前記第二のアクセス要求に基づく処理を行うことを特徴とする、請求項2記載の記憶装置システム。
- 前記制御部は、前記第二のアクセス要求に基づく処理を前記第二のデータ転送レートを維持するための第二の時間間隔内で実行し、
前記第二の時間間隔は、該記憶装置システムが有する資源、処理能力及び前記第二のデータ転送レートによって決定されることを特徴とする請求項3記載の記憶装置システム。 - 前記制御部は、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較し、前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して行うことを特徴とする請求項4記載の記憶装置システム。
- 更にメモリを有し、
前記制御部は、前記第一のデータ転送レートに基づいて、前記第一のアクセス要求に基づく処理に対して前記メモリが有する記憶領域を割り当てることを特徴とする請求項5記載の記憶装置システム。 - 前記第一のアクセス要求を受信した場合、前記制御部は、該記憶装置システムにおける最大データ転送レートに基づいて前記計算機に前記第一のアクセス要求で要求されるデータを転送し、前記計算機に送信されたデータ量を計算し、前記データ量を用いて前記第一のデータ転送レートを計算することを特徴とする請求項6記載の記憶装置システム。
- 前記制御部は、前記ディスク装置が有する記憶領域に基づいて複数の論理ユニットを構成し、
前記複数の論理ユニットのうち、第一の論理ユニットには前記第一のコンテンツが格納され、第二の論理ユニットには前記第二のコンテンツが格納され、
前記制御部は、前記第一の論理ユニットに対するアクセス要求を前記第一のアクセス要求として、前記第一のデータ転送レートを計算し、前記第二の論理ユニットに対するアクセス要求を前記第二のアクセス要求として、前記第二のデータ転送レートを計算することを特徴とする請求項7記載の記憶装置システム。 - 前記制御部は、前記第一のアクセス要求がシーケンシャルアクセスであるかどうかを判定し、シーケンシャルアクセスである場合に前記第一のアクセス要求に対応する前記第一のデータ転送レートを計算することを特徴とする請求項7記載の記憶装置システム。
- 前記制御部は、前記第一のデータ転送レートの情報を記憶し、前記第一のアクセス要求を再度受信した際に、前記記憶された前記第一のデータ転送レートを使用することを特徴とする請求項7記載の記憶装置システム。
- 複数のコンテンツを格納する記憶装置システムにおけるデータ転送方法であって、
前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第一のコンテンツへの第一のアクセス要求を受信し、
前記第一のアクセス要求に対応する第一のデータ転送レートを計算し、
計算された前記第一のデータ転送レートに基づいて前記第一のアクセス要求で要求されるデータを前記計算機に送信することを特徴とするデータ転送方法。 - 更に、前記第一のアクセス要求で要求されるデータを転送するための第一の処理を、前記第一のデータ転送レートを維持するために要求される第一の時間間隔で実行し、
前記第一の時間間隔は、前記記憶装置システムの資源、性能及び前記第一のデータ転送レートに基づいて決定されることを特徴とする請求項11記載のデータ転送方法。 - 更に、前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第二のコンテンツへの第二のアクセス要求を受信し、
前記第二のアクセス要求に対応する第二のデータ転送レートを計算し、
計算された前記第二のデータ転送レートに基づいて前記第二のアクセス要求で要求されるデータを前記計算機に送信することを特徴とする、請求項12記載のデータ転送方法。 - 更に、前記第二のアクセス要求で要求されるデータを転送するための第二の処理を、前記第二のデータ転送レートを維持するために要求される第二の時間間隔で実行し、
前記第二の時間間隔は、前記記憶装置システムの資源、性能及び前記第二のデータ転送レートに基づいて決定されることを特徴とする請求項13記載のデータ転送方法。 - 更に、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較し、
前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して行うことを特徴とする請求項14記載のデータ転送方法。 - 更に、前記第一のデータ転送レートを計算するステップは、
前記第一のアクセス要求を受信した場合、該記憶装置システムにおける最大データ転送レートに基づいて前記計算機に前記第一のアクセス要求で要求されるデータを転送し、
前記計算機に送信されたデータ量を計算し、
前記データ量を用いて前記第一のデータ転送レートを計算するステップを含むことを特徴とする請求項15記載のデータ転送方法。 - 更に、前記第一のデータ転送レートを計算するステップは、
前記計算機から受信する前記第一のアクセス要求がシーケンシャルアクセスであるかどうかを判定し、
シーケンシャルアクセスである場合に前記第一のアクセス要求に対応する前記第一のデータ転送レートを計算するステップを含むことを特徴とする請求項16記載のデータ転送方法。 - 複数のコンテンツを格納する記憶手段と、
前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第一のコンテンツへの第一のアクセス要求及び前記計算機から前記複数のコンテンツのうちの第二のコンテンツへの第二のアクセス要求を受信する手段と、
前記第一のアクセス要求に対応する第一のデータ転送レート及び前記第二のアクセス要求に対応する第二のデータ転送レートを計算する手段と、
計算された前記第一のデータ転送レートに基づいて前記第一のアクセス要求で要求されるデータを送信し、計算された前記第二のデータ転送レートに基づいて前記第二のアクセス要求で要求されるデータを送信する手段を有することを特徴とする記憶装置システム。 - 更に、前記第一のアクセス要求で要求されるデータを転送するための第一の処理を、前記第一のデータ転送レートを維持するために要求される第一の時間間隔で実行し、かつ前記第二のアクセス要求で要求されるデータを転送するための第二の処理を、前記第二のデータ転送レートを維持するために要求される第二の時間間隔で実行する手段を有し、
前記第一の時間間隔は、前記記憶装置システムの資源、性能及び前記第一のデータ転送レートに基づいて決定され、前記第二の時間間隔は、前記記憶装置システムの資源、性能及び前記第二のデータ転送レートに基づいて決定されることを特徴とする請求項18記載の記憶装置システム。 - 更に、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較する手段と、
前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して実行する手段とを有することを特徴とする請求項19記載の記憶装置システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005107013A JP2006285809A (ja) | 2005-04-04 | 2005-04-04 | ストリーミング向け性能保証を行うストレージ装置 |
US11/144,796 US20060224784A1 (en) | 2005-04-04 | 2005-06-06 | Storage system providing stream-oriented performance assurance |
US12/207,091 US7752362B2 (en) | 2005-04-04 | 2008-09-09 | Storage system providing stream-oriented performance assurance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005107013A JP2006285809A (ja) | 2005-04-04 | 2005-04-04 | ストリーミング向け性能保証を行うストレージ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006285809A true JP2006285809A (ja) | 2006-10-19 |
Family
ID=37071950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005107013A Pending JP2006285809A (ja) | 2005-04-04 | 2005-04-04 | ストリーミング向け性能保証を行うストレージ装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20060224784A1 (ja) |
JP (1) | JP2006285809A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234629A (ja) * | 2007-01-12 | 2008-10-02 | Broadbus Technologies Inc | データ配信およびバッファリング |
JP2010009442A (ja) * | 2008-06-30 | 2010-01-14 | Fujitsu Ltd | ディスクアレイシステム、ディスク制御装置及びその再構築処理方法 |
JP2010282422A (ja) * | 2009-06-04 | 2010-12-16 | Toshiba Corp | データ記憶装置及びデータ転送制御方法 |
JP2011138321A (ja) * | 2009-12-28 | 2011-07-14 | Hitachi Ltd | ストレージ管理システム、ストレージ階層管理方法及び管理サーバ |
JP2011159132A (ja) * | 2010-02-01 | 2011-08-18 | Fujitsu Ltd | スイッチ装置、スイッチ制御方法、及びストレージシステム |
JP2015072643A (ja) * | 2013-10-04 | 2015-04-16 | 株式会社 日立産業制御ソリューションズ | コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 |
JP2015111334A (ja) * | 2013-12-06 | 2015-06-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 |
US9454006B2 (en) | 2012-02-28 | 2016-09-27 | Seiko Epson Corporation | Head mounted display and image display system |
JP7468272B2 (ja) | 2020-09-23 | 2024-04-16 | 富士通株式会社 | ストレージ装置及びストレージ制御方法 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301851B1 (en) * | 2005-06-16 | 2012-10-30 | Emc Corporation | Consecutive scheduling of jobs for a device using run count values |
US8990396B2 (en) * | 2006-07-07 | 2015-03-24 | Avaya Communication Israel Ltd. | Cache memory storage |
JP4702480B2 (ja) * | 2007-03-27 | 2011-06-15 | 富士通株式会社 | パケット中継装置、パケット中継装置におけるキュースケジュールの方法、およびそのプログラム |
US7694079B2 (en) * | 2007-04-04 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Tagged sequential read operations |
JP2009288988A (ja) * | 2008-05-28 | 2009-12-10 | Fujitsu Ltd | バッファ制御方法及び記憶装置 |
JP5147584B2 (ja) | 2008-07-23 | 2013-02-20 | 株式会社日立製作所 | ストレージサブシステム及びコントローラによるコマンド実行方法 |
US8874526B2 (en) | 2010-03-31 | 2014-10-28 | Cloudera, Inc. | Dynamically processing an event using an extensible data model |
US9082127B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating datasets for analysis |
US9081888B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating log data with fault tolerance |
US9317572B2 (en) | 2010-03-31 | 2016-04-19 | Cloudera, Inc. | Configuring a system to collect and aggregate datasets |
US10353774B2 (en) * | 2015-10-30 | 2019-07-16 | International Business Machines Corporation | Utilizing storage unit latency data in a dispersed storage network |
US8590001B2 (en) * | 2010-08-20 | 2013-11-19 | Promise Technology, Inc. | Network storage system with data prefetch and method of operation thereof |
US8631111B2 (en) * | 2011-01-12 | 2014-01-14 | Hitachi, Ltd. | Method and apparatus of selection interface by queue and workload for storage operation |
US8880592B2 (en) | 2011-03-31 | 2014-11-04 | Cloudera, Inc. | User interface implementation for partial display update |
US9172608B2 (en) | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
US9405692B2 (en) * | 2012-03-21 | 2016-08-02 | Cloudera, Inc. | Data processing performance enhancement in a distributed file system |
US9338008B1 (en) | 2012-04-02 | 2016-05-10 | Cloudera, Inc. | System and method for secure release of secret information over a network |
US9842126B2 (en) | 2012-04-20 | 2017-12-12 | Cloudera, Inc. | Automatic repair of corrupt HBases |
US9753954B2 (en) | 2012-09-14 | 2017-09-05 | Cloudera, Inc. | Data node fencing in a distributed file system |
CN102883143B (zh) * | 2012-09-21 | 2016-06-08 | 浙江宇视科技有限公司 | 一种调整raid阵列缓存的方法 |
US9654527B1 (en) * | 2012-12-21 | 2017-05-16 | Juniper Networks, Inc. | Failure detection manager |
US8959263B2 (en) | 2013-01-08 | 2015-02-17 | Apple Inc. | Maintaining I/O priority and I/O sorting |
JP6114569B2 (ja) | 2013-02-07 | 2017-04-12 | キヤノン株式会社 | システムおよびその制御方法、ジョブ管理サーバおよびその制御方法、ジョブ処理装置およびその制御方法、及びプログラム |
US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
US9069819B1 (en) * | 2013-04-26 | 2015-06-30 | Symantec Corporation | Method and apparatus for reliable I/O performance anomaly detection in datacenter |
US9477731B2 (en) | 2013-10-01 | 2016-10-25 | Cloudera, Inc. | Background format optimization for enhanced SQL-like queries in Hadoop |
US9934382B2 (en) | 2013-10-28 | 2018-04-03 | Cloudera, Inc. | Virtual machine image encryption |
US9690671B2 (en) | 2013-11-01 | 2017-06-27 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
CN104133691B (zh) * | 2014-05-05 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 加速启动的方法及装置 |
US9772959B2 (en) | 2014-05-30 | 2017-09-26 | Apple Inc. | I/O scheduling |
US9760574B1 (en) * | 2014-06-30 | 2017-09-12 | EMC IP Holding Company LLC | Managing I/O requests in file systems |
US9747333B2 (en) | 2014-10-08 | 2017-08-29 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
KR102387935B1 (ko) | 2017-10-23 | 2022-04-15 | 삼성전자주식회사 | 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치 |
CN113287173B (zh) * | 2018-12-28 | 2022-08-19 | 美光科技公司 | 基于存储器使用模式降低系统有功功率 |
JP2020154759A (ja) | 2019-03-20 | 2020-09-24 | キオクシア株式会社 | メモリシステム |
KR20230040057A (ko) * | 2021-09-15 | 2023-03-22 | 에스케이하이닉스 주식회사 | 시스템의 읽기 성능을 개선하기 위한 장치 및 방법 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0380584A (ja) | 1989-08-24 | 1991-04-05 | Mitsubishi Heavy Ind Ltd | 炭酸ガスレーザの発振装置 |
US6728832B2 (en) * | 1990-02-26 | 2004-04-27 | Hitachi, Ltd. | Distribution of I/O requests across multiple disk units |
US5758057A (en) * | 1995-06-21 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Multi-media storage system |
US5659799A (en) * | 1995-10-11 | 1997-08-19 | Creative Technology, Ltd. | System for controlling disk drive by varying disk rotation speed when buffered data is above high or below low threshold for predetermined damping period |
JP3735980B2 (ja) | 1996-11-26 | 2006-01-18 | 富士ゼロックス株式会社 | データ処理装置およびデータ書込方法 |
US6297887B1 (en) * | 1997-07-09 | 2001-10-02 | Canon Kabushiki Kaisha | Printing apparatus, method for controlling the same, and memory medium |
US6681285B1 (en) * | 1999-07-22 | 2004-01-20 | Index Systems, Inc. | Memory controller and interface |
US7054790B1 (en) * | 2000-05-18 | 2006-05-30 | Maxtor Corporation | Method and apparatus for storage device performance measurement |
JP4206707B2 (ja) * | 2002-08-27 | 2009-01-14 | 株式会社日立製作所 | 通信品質設定装置、方法及びプログラム |
US20050271355A1 (en) * | 2004-06-03 | 2005-12-08 | Avraham Gilor | Device, system and method of digitally recording audio/video |
-
2005
- 2005-04-04 JP JP2005107013A patent/JP2006285809A/ja active Pending
- 2005-06-06 US US11/144,796 patent/US20060224784A1/en not_active Abandoned
-
2008
- 2008-09-09 US US12/207,091 patent/US7752362B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234629A (ja) * | 2007-01-12 | 2008-10-02 | Broadbus Technologies Inc | データ配信およびバッファリング |
JP2010009442A (ja) * | 2008-06-30 | 2010-01-14 | Fujitsu Ltd | ディスクアレイシステム、ディスク制御装置及びその再構築処理方法 |
JP2010282422A (ja) * | 2009-06-04 | 2010-12-16 | Toshiba Corp | データ記憶装置及びデータ転送制御方法 |
JP2011138321A (ja) * | 2009-12-28 | 2011-07-14 | Hitachi Ltd | ストレージ管理システム、ストレージ階層管理方法及び管理サーバ |
JP2011159132A (ja) * | 2010-02-01 | 2011-08-18 | Fujitsu Ltd | スイッチ装置、スイッチ制御方法、及びストレージシステム |
US8713219B2 (en) | 2010-02-01 | 2014-04-29 | Fujitsu Limited | Switching device, switch control method, and storage system |
US9454006B2 (en) | 2012-02-28 | 2016-09-27 | Seiko Epson Corporation | Head mounted display and image display system |
JP2015072643A (ja) * | 2013-10-04 | 2015-04-16 | 株式会社 日立産業制御ソリューションズ | コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 |
JP2015111334A (ja) * | 2013-12-06 | 2015-06-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 |
JP7468272B2 (ja) | 2020-09-23 | 2024-04-16 | 富士通株式会社 | ストレージ装置及びストレージ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090013104A1 (en) | 2009-01-08 |
US20060224784A1 (en) | 2006-10-05 |
US7752362B2 (en) | 2010-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006285809A (ja) | ストリーミング向け性能保証を行うストレージ装置 | |
US8271749B2 (en) | Storage subsystem and method of executing commands by controller | |
US9575664B2 (en) | Workload-aware I/O scheduler in software-defined hybrid storage system | |
JP2742390B2 (ja) | ビデオ・システムにおけるポーズ・レジュームをサポートする方法およびシステム | |
US7996623B2 (en) | Read ahead storage control | |
US6986019B1 (en) | Method and apparatus for detection and management of data streams | |
US6496899B1 (en) | Disk scheduling system with bounded request reordering | |
US7739421B1 (en) | Buffer management method and system with data displayed directly from buffers | |
US8806070B2 (en) | Storage device, and storage device control method | |
US8590001B2 (en) | Network storage system with data prefetch and method of operation thereof | |
US20040230742A1 (en) | Storage system and disk load balance control method thereof | |
US8386704B2 (en) | Techniques for improving hard disk drive efficiency | |
JPH0950667A (ja) | ディスク・ドライブを制御する方法 | |
US7640381B1 (en) | Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers | |
US8539176B2 (en) | Data storage devices accepting queued commands having deadlines | |
US20110179109A1 (en) | Communication method and apparatus | |
JP2005149276A (ja) | 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム | |
JP2008226040A (ja) | 情報処理装置及びコマンド多重度制御方法 | |
US9069721B2 (en) | Storage control device, computer-readable recording medium, and method thereof | |
JP5172594B2 (ja) | 情報処理システム及び情報処理システムの運用方法 | |
TWI509411B (zh) | 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 | |
JP4675290B2 (ja) | マルチメディア蓄積配信サーバ、および、マルチメディアデータ多重読出し書込み方法 | |
Staelin et al. | CSched: Real-time disk scheduling with concurrent I/O requests | |
Le Moal et al. | A real-time file system for constrained quality of service applications | |
Dimitrijevic et al. | Preemptive RAID scheduling |