JP2015200930A - Storage device, data reading method, and program - Google Patents
Storage device, data reading method, and program Download PDFInfo
- Publication number
- JP2015200930A JP2015200930A JP2014077544A JP2014077544A JP2015200930A JP 2015200930 A JP2015200930 A JP 2015200930A JP 2014077544 A JP2014077544 A JP 2014077544A JP 2014077544 A JP2014077544 A JP 2014077544A JP 2015200930 A JP2015200930 A JP 2015200930A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- data
- unit
- load
- reading
- 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
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、記憶装置、データ読出方法、およびプログラムに関する。 The present invention relates to a storage device, a data reading method, and a program.
近年、各種のセンサが生成したデータ、監視カメラの映像データ、テレビ放送の映像データ、ラジオ放送の音声データなどの時系列データを扱う機会が増大している。このような時系列データをリアルタイムで分析することにより、現在起きている事象をリアルタイムで知ることができたり、過去のデータに基づいて、これから発生する事象の予測を行うことが可能になる。 In recent years, opportunities to handle time-series data such as data generated by various sensors, video data of surveillance cameras, video data of television broadcasting, audio data of radio broadcasting, and the like are increasing. By analyzing such time-series data in real time, it is possible to know the current event in real time, or to predict an event that will occur in the future based on past data.
例えば、時系列データをリアルタイムで分析したり、映像データまたは音声データを遅延なく再生したりするためには、記憶されたデータを一定のスループットを保って読み出すことが必要となる。記憶されたデータを一定のスループットを保って読み出すためには、データ読出処理の処理負荷が特定のリソースに集中することを抑制するために、処理負荷を分散させることが重要である。 For example, in order to analyze time-series data in real time or to reproduce video data or audio data without delay, it is necessary to read out stored data with a constant throughput. In order to read the stored data with a constant throughput, it is important to distribute the processing load in order to prevent the processing load of the data reading process from being concentrated on a specific resource.
特許文献1には、負荷分散に関する技術として、アクセスの多い複数のデータを記憶した特定のストレージに処理負荷が集中することを抑制するために、データをストレージ間で移動させる分散データ管理システムが記載されている。この分散データ管理システムでは、移動元サーバの負荷状況に基づいて、データを移動させるタイミングを決定している。
特許文献2には、負荷分散に関する技術として、ジョブを複数の計算機に分散して実行させる負荷分散システムが記載されている。この負荷分散システムでは、ジョブの実行に必要なデータが、高速にデータを読み出すことが可能な高速ストレージ、または大容量ディスクドライブを備える大容量ストレージに記憶されている。そして指定されたジョブの実行に必要なデータが大容量ストレージに記憶されている場合、データを大容量ストレージから高速ストレージに移動させて、高速ストレージからデータを読み出している。
しかしながら、特許文献1に記載の分散データ管理システムおよび特許文献2に記載の負荷分散システムでは、同じデータに対して複数のクライアントが同時にアクセスする場合、同じストレージに処理負荷が集中することを抑制することはできなかった。例えば、時系列データをリアルタイムで分析して複数の分析結果を取得する場合、同じデータに対して複数の分析処理が同時に行われるため、同じデータに対して複数のクライアントが同時にアクセスされる場合がある。このため、記憶されたデータを読み出す際に、スループットが低下してしまう場合があった。
However, in the distributed data management system described in
本発明の目的は、同じデータに対して複数のクライアントが同時にアクセスする場合であっても、スループットの低下を抑制することが可能な記憶装置、データ読出方法、およびプログラムを提供することである。 An object of the present invention is to provide a storage device, a data reading method, and a program capable of suppressing a decrease in throughput even when a plurality of clients simultaneously access the same data.
本発明による記憶装置は、
それぞれが同一のデータを記憶する複数の記憶部と、
各記憶部の負荷状況を示す第1負荷情報に基づいて、前記複数の記憶部のいずれかを選択する管理部と、
選択された前記記憶部から前記データを読み出す読出部とを有する。
The storage device according to the present invention comprises:
A plurality of storage units each storing the same data;
A management unit that selects one of the plurality of storage units based on first load information indicating a load status of each storage unit;
And a reading unit that reads the data from the selected storage unit.
また、本発明によるデータ読出方法は、
それぞれが同一のデータを記憶する複数の記憶部のそれぞれの負荷状況を示す第1負荷情報に基づいて、前記複数の記憶部のいずれかを選択し、
選択された前記記憶部から前記データを読み出す。
The data reading method according to the present invention includes:
Based on the first load information indicating the load status of each of a plurality of storage units each storing the same data, select one of the plurality of storage units,
The data is read from the selected storage unit.
また、本発明によるプログラムは、
コンピュータを、
それぞれが同一のデータを記憶する複数の記憶部と、
各記憶部の負荷状況を示す第1負荷情報に基づいて、前記複数の記憶部のいずれかを選択する管理部と、
選択された前記記憶部から前記データを読み出す読出部と、を備える記憶装置として機能させるためのプログラムである。
The program according to the present invention is
Computer
A plurality of storage units each storing the same data;
A management unit that selects one of the plurality of storage units based on first load information indicating a load status of each storage unit;
A program for causing a storage device to include a reading unit that reads the data from the selected storage unit.
本発明によれば、同じデータに対して複数のクライアントが同時にアクセスする場合であっても、スループットの低下を抑制することが可能である。 According to the present invention, it is possible to suppress a decrease in throughput even when a plurality of clients simultaneously access the same data.
以下、本発明の実施形態について添付の図面を参照して説明する。なお、本明細書および図面において、同一の機能を有する構成要素については同じ符号を付することにより重複説明を省略する場合がある。 Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In addition, in this specification and drawing, the description which overlaps may be abbreviate | omitted by attaching | subjecting the same code | symbol about the component which has the same function.
(第1の実施形態)
図1は、本発明の第1の実施形態に係るリアルタイムデータ記録装置1の構成を示すブロック図である。リアルタイムデータ記録装置1は、複数のストレージ2と、複数の読出サーバ3と、管理サーバ4と、内部ネットワーク5とを有する。なお、図1ではリアルタイムデータ記録装置1は、複数の読出サーバ3を有することとしたが、1つの読出サーバ3を有するものであってもよい。
(First embodiment)
FIG. 1 is a block diagram showing a configuration of a real-time
ストレージ2は、データ格納用の装置であり、例えばフラッシュメモリなどの不揮発性メモリや、HDD(Hard Disk Drive)などの磁気記録媒体と、制御装置であるCPU(Central Processing Unit)とを含む。ストレージ2は、内部ネットワーク5を介して読出サーバ3および管理サーバ4と接続されている。また、ストレージ2は、読出サーバ3からの指示に従って、記憶しているデータを読出サーバ3に出力する。
The
読出サーバ3は、ストレージ2からデータを読み出す装置である。読出サーバ3は、制御装置であるCPUを含む。読出サーバ3は、内部ネットワーク5を介して管理サーバ4およびストレージ2と接続されており、ネットワーク62を介してクライアント72と接続されている。読出サーバ3は、管理サーバ4の指示に従ってデータを読み出すと、データの読み出しを要求したクライアント72にデータを送信する。
The
なお、ストレージ2および読出サーバ3は、SNMP(Simple Network Management Protocol)に従って監視および制御されており、CPU使用率やアクセス数などをMIB(Management Information Base)に記録して保持している。
The
管理サーバ4は、リアルタイムデータ記録装置1の全体を管理する管理部である。管理サーバ4は、ネットワーク61を介してリアルタイムデータ入力装置71と接続され、内部ネットワーク5を介してストレージ2および読出サーバ3と接続され、ネットワーク62を介してクライアント72と接続される。
The
管理サーバ4は、図示しないマイクロプロセッサやメモリ等を備え、メモリ等に記憶されたプログラムを読み取って実行することによって、リアルタイムデータ記録装置1の動作を制御する。具体的には、管理サーバ4は、リアルタイムデータ入力装置71がリアルタイムデータを取得して、管理サーバ4に入力すると、入力されたリアルタイムデータを受け付けて、当該リアルタイムデータを複数のストレージ2にマルチキャストすることにより、リアルタイムデータを複数のストレージ2に記録させる。これにより、複数のストレージ2は、それぞれが同一のデータを記憶することになる。
The
また、管理サーバ4は、クライアント72から、ストレージ2に記憶されたデータの読み出しを要求する読出要求を受け付けると、リアルタイムデータ記録装置1の負荷状況に基づいて、読出要求に応じたデータ読出処理を行うか否かを判断する。また、管理サーバ4は、データ読出処理を行う場合、リアルタイムデータ記録装置1の負荷状況に基づいて、複数のストレージ2および複数の読出サーバ3の負荷を分散させる。リアルタイムデータ記録装置1の負荷状況を示す情報は、例えば、ストレージ2の負荷状況を示す第1負荷情報、および読出サーバ3の負荷状況を示す第2負荷情報である。また、第1負荷情報は、ストレージ2内の各リソースの負荷状況をそれぞれ示す複数の種類の情報を含んでいてもよい。第1負荷情報は、例えば、ストレージ2が備える制御装置であるCPU(Central Processing Unit)の使用率と、各ストレージ2に対するアクセス数であるストレージアクセス数とを含む。また読出サーバ3についても同様に、第2負荷情報は、例えば、読出サーバ3が備える制御装置であるCPUの使用率と、各読出サーバ3に対するアクセス数である読出サーバアクセス数とを含む。
In addition, when the
管理サーバ4は、リアルタイムデータ記録装置1の負荷状況を示す情報として、第1負荷情報および第2負荷情報を用いて、データ読出処理を行うか否かを判断する。管理サーバ4は、例えば、各ストレージ2に対するストレージアクセス数の合計が上限値以下であり、且つ、各読出サーバ3に対する読出サーバアクセス数の合計が上限値以下である場合、データ読出処理を行う。このとき、管理サーバ4は、各ストレージ2に対するストレージアクセス数の上限値を取得して、その合計をストレージアクセス数の合計に対する上限値とする。また読出サーバ3に関しても同様であり、管理サーバ4は、各読出サーバ3に対する読出サーバアクセス数の上限値を取得して、その合計を読出サーバアクセス数の合計に対する上限値とする。
The
また管理サーバ4は、データ読出処理を行う場合、第1負荷情報に基づいて、データ読出処理に用いるストレージ2を選択することで、複数のストレージ2間で負荷を分散させる。また、管理サーバ4は、第2負荷情報に基づいて、データ読出処理に用いる読出サーバ3を選択することで、複数の読出サーバ3間で負荷を分散させる。管理サーバ4は、例えば、ストレージアクセス数に基づいて、ストレージ2を選択することができる。具体的には、管理サーバ4は、各ストレージ2のストレージアクセス数と、各ストレージ2に対して設定された上限値との差異を算出し、当該算出結果に基づいて、複数のストレージ2のいずれかを選択する。より具体的には、管理サーバ4は、算出結果が最も大きいストレージ2を選択する。
Further, when performing the data read process, the
図2は、各ストレージ2の第1負荷情報とストレージ2の選択方法について説明するための図である。図2の例では、リアルタイムデータ記録装置1は、ストレージA〜Cの3つのストレージ2を有している。ストレージA〜Cのそれぞれに対して設けられた上限値は、全て5であるとする。ここで、ストレージアクセス数が、ストレージA〜Cのそれぞれに対して、順に2、3、4であるとする。この場合、各ストレージA〜Cについて、上限値とストレージアクセス数との差異は、順に3、2、1となる。したがって、この場合、管理サーバ4は、この差異が最も大きいストレージAを選択する。
FIG. 2 is a diagram for explaining the first load information of each
しかしながら、ストレージ2において、データの書き込みや、読み出しを行うデータアクセス処理以外の要因で、ストレージ2の処理負荷が増大することがある。例えば、図2のストレージAに障害が発生した場合、バックグラウンドプロセスとして、リビルド処理が発生することがある。この場合、ストレージアクセス数と上限値との差異は必ずしもストレージAの処理負荷を反映した値とならず、処理負荷が増大しているにも関わらず、この差異が大きい値となる。このため、管理サーバ4は、ストレージアクセス数の上限値を、各ストレージ2のCPU使用率に基づいて調整する。
However, in the
管理サーバ4は、各ストレージ2のCPU使用率が所定の閾値以上である場合、ストレージアクセス数の上限値を制限することで、上限値とストレージアクセス数との差異に、当該ストレージ2のCPU使用率に基づいた負荷状況を反映させる。また、管理サーバ4は、各ストレージ2のCPU使用率が連続して所定の閾値以上となった回数をカウントし、この回数が規定回数以上となった場合に、ストレージ2のCPUに定常的に高い負荷がかかっている状態であると判断し、ストレージアクセス数の上限値を制限してもよい。図2の「カウント」は、この連続してCPU使用率が閾値以上となった回数を示している。CPU使用率が連続して所定の閾値以上となった回数を用いることで、瞬時的にCPU使用率が上昇してすぐにCPU使用率が下がった場合には上限値が制限されない。このため、実際にはストレージ2が高負荷な状態ではないにも関わらず、クライアント72からの読出要求に対してアクセスエラーが発生してしまうことを抑制することができる。
When the CPU usage rate of each
図3は、上限値の調整を行った場合の各ストレージ2の第1負荷情報とストレージ2の選択方法について説明するための図である。上限値の調整において、この例では、CPU使用率に対する閾値を70%とし、CPU使用率が連続して3回以上70%以上となった場合に、上限値を制限することとする。図2には、ストレージAのCPU使用率が「90%」であり、カウントが「2」となっていることが示されている。この場合、管理サーバ4は、ストレージAのCPU使用率が70%以上であることから、カウントをインクリメントして「3」とする。そして、カウントが3以上となったため、管理サーバ4は、このストレージAについて、ストレージアクセス数の上限値を制限する。ここでは、制限した上限値を「2」とした。また管理サーバ4は、ストレージBおよびCについても同様に、CPU使用率が70%以上であるか否かを判断する。ストレージCのCPU使用率は70%以上であるため、管理サーバ4は、カウントをインクリメントして「1」とする。そして、カウントはまだ3以上とはなっていないため、管理サーバ4は、ストレージCについては上限値を制限しない。
FIG. 3 is a diagram for explaining the first load information of each
上限値を制限すると、図3に示されるように、ストレージAについて、上限値とストレージアクセス数との差異は「0」となる。これにより、ストレージA〜Cのうち、最も上限値とストレージアクセス数との差異が大きいストレージ2は、ストレージBとなる。
When the upper limit value is limited, as shown in FIG. 3, the difference between the upper limit value and the number of storage accesses for storage A is “0”. Thereby, among the storages A to C, the
また、管理サーバ4が第2負荷情報を用いて読出サーバ3を選択する場合も、ストレージ2を選択する場合と同様である。上記の説明中において、ストレージ2を読出サーバ、第1負荷情報を第2負荷情報、ストレージアクセス数を読出サーバアクセス数と置き換えることで、読出サーバ3の選択についての説明となる。管理サーバ4は、データ読出処理を行うストレージ2および読出サーバ3を選択すると、選択した読出サーバ3に、選択したストレージ2を通知して、選択したストレージ2からデータを読み出させる。これにより、複数の読出サーバ3のうち、選択された読出サーバ3だけがデータの読出しを実行することになる。
Further, when the
次に、図4〜図8を用いて、リアルタイムデータ記録装置1が各種の処理を行う際の動作例について説明する。リアルタイムデータ記録装置1の行う処理は、主に、リアルタイムデータを記録するデータ記録処理と、リアルタイムデータ記録装置1の負荷状況を確認する負荷状況確認処理と、クライアント72からの読出要求に応答する読出要求応答処理とを含む。読出要求応答処理には、データ読出処理が含まれる。
Next, an operation example when the real-time
図4は、リアルタイムデータ記録装置1がデータ記録処理を行う際の動作例を説明するためのフローチャートである。データ記録処理は、リアルタイムデータ入力装置71がリアルタイムデータ記録装置1にリアルタイムデータを入力することで開始される。
FIG. 4 is a flowchart for explaining an operation example when the real-time
リアルタイムデータ入力装置71がリアルタイムデータ記録装置1にリアルタイムデータを入力すると、リアルタイムデータ記録装置1の管理サーバ4は、入力されたリアルタイムデータを受け付ける(ステップS100)。
When the real time
管理サーバ4は、受け付けたリアルタイムデータのデータ形式を変換してファイル化する(ステップS101)。
The
続いて管理サーバ4は、ファイル化されたリアルタイムデータを、全ストレージ2にマルチキャストして記録させる(ステップS102)。これにより、全てのストレージ2に同一のデータが記憶されることになる。
Subsequently, the
図5は、リアルタイムデータ記録装置1が負荷状況確認処理を行う際の動作例を説明するためのフローチャートである。負荷状況確認処理は、リアルタイムデータ記録装置1の管理サーバ4によって、定期的に実行される。
FIG. 5 is a flowchart for explaining an operation example when the real-time
管理サーバ4は、ストレージ負荷確認処理が終わっていないストレージ2から1つのストレージ2を選択する(ステップS200)。そして、管理サーバ4は、選択されたストレージ2について、負荷状況を確認するストレージ負荷確認処理を行う(ステップS201)。なお、ストレージ負荷確認処理の詳細な内容については、図8を用いて後述する。管理サーバ4は、ストレージ負荷確認処理が終わっていないストレージ2が有るか否かを判断する(ステップS202)。
The
ストレージ負荷確認処理が終わっていないストレージ2が有る場合、管理サーバ4は、ステップS200〜ステップS202の処理を再び行う。これにより、全てのストレージ2についてストレージ負荷確認処理が行われるまで、ステップS200〜ステップS202の処理が繰り返される。
When there is a
ストレージ負荷確認処理が終わっていないストレージ2がなくなると、管理サーバ4は、続いて、サーバ負荷確認処理が終わっていない読出サーバ3を選択する(ステップS203)。そして、管理サーバ4は、選択された読出サーバ3について、サーバ負荷確認処理を行う(ステップS204)。なお、サーバ負荷確認処理の詳細な内容については、図7を用いて後述する。管理サーバ4は、サーバ負荷確認処理が終わっていない読出サーバ3があるか否かを判断する(ステップS205)。
When there is no
サーバ負荷確認処理が終わっていない読出サーバ3がある場合、管理サーバ4は、ステップS203〜ステップS205の処理を再び行う。これにより、全ての読出サーバ3についてサーバ負荷確認処理が行われるまで、ステップS203〜ステップS205の処理が繰り返される。これにより、全てのストレージ2と全ての読出サーバ3について、定期的に負荷状況が確認されることになる。
When there is a read
図6は、図5のステップS201のサブフローチャートであり、管理サーバ4がストレージ負荷確認処理を行う際の動作例を説明するための図である。ストレージ負荷確認処理は、各ストレージ2について、負荷状況を確認して第1負荷情報を生成し、管理テーブルに記録する処理と、第1負荷情報に含まれるストレージアクセス数の上限値を制限するか否かを決定し、現在の上限値を管理テーブルに記録する処理とを主に含む。
FIG. 6 is a sub-flowchart of step S201 in FIG. 5, and is a diagram for explaining an operation example when the
管理サーバ4は、選択されたストレージ2に関して、現在のCPU使用率、現在のストレージアクセス数、およびストレージアクセス数の上限値を取得する(ステップS300)。管理サーバ4は、例えば現在のCPU使用率および現在のストレージアクセス数を、ストレージ2のMIBから取得することができる。また、管理サーバ4は、選択されたストレージ2のアクセス数の上限値を管理テーブルから取得することができる。
The
管理サーバ4は、取得したCPU使用率が所定の閾値以上であるか否かを判断する(ステップS301)。CPU使用率が閾値以上である場合、管理サーバ4は、CPU使用率が連続して閾値以上となった回数が規定回数以上であるか否かを判断する(ステップS302)。連続して閾値以上となった回数が規定回数以上である場合、管理サーバ4は、ストレージアクセス数の上限値を制限する(ステップS303)。
The
CPU使用率が連続して閾値以上となった回数が規定回数未満である場合、管理サーバ4は、連続して閾値以上となった回数をカウントアップする(ステップS304)。また、CPU使用率が閾値未満である場合、管理サーバ4は、ストレージアクセス数の上限値に対する制限を解除する(ステップS305)。ストレージアクセス数の上限値に対する制限を解除すると、管理サーバ4は、連続して閾値以上となった回数を初期化して「0」とする(ステップS306)。
When the number of times the CPU usage rate has continuously exceeded the threshold is less than the specified number, the
ステップS303の処理、ステップS304の処理、またはステップS306の処理が終わると、管理サーバ4は、管理テーブルを書き換えて、現在のCPU使用率、およびストレージアクセス数を更新する。また、管理サーバ4は、ストレージアクセス数の上限値が変化している場合、ストレージアクセス数の上限値についても、管理テーブルを書き換えて更新する(ステップS307)。
When the process of step S303, the process of step S304, or the process of step S306 ends, the
図7は、図5のステップS204のサブフローチャートであり、管理サーバ4がサーバ負荷確認処理を行う際の動作例を説明するための図である。サーバ負荷確認処理は、各読出サーバ3について、負荷状況を確認して第2負荷情報を生成し、管理テーブルに記録する処理と、第2負荷情報に含まれる読出サーバアクセス数の上限値を制限するか否かを決定し、現在の上限値を管理テーブルに記録する処理とを主に含む。
FIG. 7 is a sub-flowchart of step S204 in FIG. 5 and is a diagram for explaining an operation example when the
管理サーバ4は、選択された読出サーバ3に関して、現在のCPU使用率、現在の読出サーバアクセス数、および読出サーバアクセス数の上限値を取得する(ステップS400)。管理サーバ4は、例えば現在のCPU使用率および現在の読出サーバアクセス数を、読出サーバ3のMIBから取得することができる。また、管理サーバ4は、選択された読出サーバ3のアクセス数の上限値を管理テーブルから取得することができる。
The
管理サーバ4は、取得したCPU使用率が所定の閾値以上であるか否かを判断する(ステップS401)。CPU使用率が閾値以上である場合、管理サーバ4は、CPU使用率が連続して閾値以上となった回数が規定回数以上であるか否かを判断する(ステップS402)。連続して閾値以上となった回数が規定回数以上である場合、管理サーバ4は、読出サーバアクセス数の上限値を制限する(ステップS403)。
The
CPU使用率が連続して閾値以上となった回数が規定回数未満である場合、管理サーバ4は、連続して閾値以上となった回数をカウントアップする(ステップS404)。また、CPU使用率が閾値未満である場合、管理サーバ4は、読出サーバアクセス数の上限値に対する制限を解除する(ステップS405)。読出サーバアクセス数の上限値に対する制限を解除すると、管理サーバ4は、連続して閾値以上となった回数を初期化して「0」とする(ステップS406)。
When the number of times the CPU usage rate has continuously exceeded the threshold is less than the specified number, the
ステップS403の処理、ステップS404の処理、またはステップS406の処理が終わると、管理サーバ4は、管理テーブルを書き換えて、現在のCPU使用率、および読出サーバアクセス数を更新する。また、管理サーバ4は、読出サーバアクセス数の上限値が変化している場合、読出サーバアクセス数の上限値についても、管理テーブルを書き換えて更新する(ステップS407)。
When the process of step S403, the process of step S404, or the process of step S406 ends, the
図8は、クライアント72がリアルタイムデータ記録装置1に記憶されたデータの読み出しを要求する読出要求を管理サーバ4に入力したときに、管理サーバ4が読出要求応答処理を行う際の動作例を説明するためのフローチャートである。
FIG. 8 illustrates an operation example when the
管理サーバ4は、クライアント72が入力した読出要求を受け付ける(ステップS500)。管理サーバ4は、ストレージアクセス数の合計は、上限以下であるか否かを判断する。例えば、管理サーバ4は、管理テーブルから各ストレージ2のストレージアクセス数と上限値とをそれぞれ取得して、ストレージアクセス数の合計が上限値の合計以下であるか否かを判断する(ステップS501)。
The
ストレージアクセス数の合計が上限以下である場合、管理サーバ4は、第1負荷情報に基づいて、複数のストレージ2のいずれかを、データ読出処理に用いるストレージ2として選択する。管理サーバ4は、例えば、図2を用いて説明したように、各ストレージ2の上限値とストレージアクセス数との差異が最も大きいストレージ2を選択する(ステップS502)。
When the total number of storage accesses is equal to or less than the upper limit, the
管理サーバ4は、読出サーバアクセス数の合計が上限以下であるか否かを判断する。例えば、管理サーバ4は、管理テーブルから各読出サーバ3の読出サーバアクセス数と上限値とをそれぞれ取得して、読出サーバアクセス数の合計が上限値の合計以下であるか否かを判断する(ステップS503)。
The
読出サーバアクセス数の合計が上限以下である場合、管理サーバ4は、第2負荷情報に基づいて、複数の読出サーバ3のいずれかを、データ読出処理に用いる読出サーバ3として選択する。管理サーバ4は、例えば読出サーバ3についても、各読出サーバ3の上限値と読出サーバアクセス数との差異が最も大きい読出サーバ3を選択する(ステップS504)。
When the total number of read server accesses is equal to or less than the upper limit, the
そして管理サーバ4は、選択した読出サーバ3に、選択したストレージ2を通知することで、データを選択されたストレージ2から読み出させる(ステップS505)。
Then, the
また、読出サーバアクセス数の合計が上限未満である場合、管理サーバ4は、ステップS502で選択したストレージ2の選択を解除する(ステップS506)。そして管理サーバ4は、エラー応答をクライアント72に返す。またステップS501でストレージアクセス数の合計が上限未満である場合にも、管理サーバ4は、エラー応答をクライアント72に返す(ステップS507)。
If the total number of read server accesses is less than the upper limit, the
(変形例)
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
(Modification)
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
例えば、上記実施形態では、リアルタイムデータ記録装置1は、複数の読出サーバ3を備えることとしたが、本発明はかかる例に限定されない。例えば、リアルタイムデータ記録装置1は、1つの読出サーバ3を有してもよい。ストレージ2や読出サーバ3は、各リソースの処理能力に応じて、様々な構成をとることができる。
For example, in the above embodiment, the real-time
また、上記実施形態では、図8の読出要求応答処理は、クライアント72からの読出要求に応じて実行されることとしたが、本発明はかかる例に限定されない。例えば管理サーバ4は、既に読出処理が開始された状態であっても定期的に第1負荷情報に基づいたストレージ2の選択を行うことができる。例えば、管理サーバ4は、複数のストレージ2のいずれかを選択した後、選択されたストレージ2の第1負荷情報が所定の条件を満たした場合、他のストレージ2を選択することで、データを読み出すために用いられるストレージ2を切り替える。これにより、既に読出処理が開始された後であっても、読出処理に用いられているストレージ2の負荷が高まった場合、読出処理に用いるストレージ2を切り替えることができる。この場合、読出要求を受け付けた際には、所定の順番で複数のストレージ2のいずれかを選択してもよいし、第1負荷情報に基づいて複数のストレージ2のいずれかを選択してもよい。また、管理サーバ4は、第1負荷情報を繰り返し取得し、第1負荷情報が所定の条件を連続して満たした回数をカウントし、当該回数が規定数を超えた場合、他のストレージ2を選択してもよい。これにより、データを読み出すために用いれらるストレージ2が頻繁に切り替わることを抑制することが可能になる。
In the above embodiment, the read request response process in FIG. 8 is executed in response to a read request from the
また、上記実施形態では、リアルタイムデータ記録装置1の構成と、動作例について主に説明したが、リアルタイムデータ記録装置1の各機能を実現するためのコンピュータプログラムを作成することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。また、コンピュータプログラムは、記録媒体を用いずに、例えば有線または無線の通信によりネットワークを介して配信されてよい。
In the above embodiment, the configuration and operation example of the real-time
以上説明したように、本発明の第1の実施形態によれば、記憶装置の一例であるリアルタイムデータ記録装置1は、記憶部であるストレージ2と、管理部である管理サーバ4と、読出部である読出サーバ3とを有する。ストレージ2は、それぞれが同一のデータを記憶し、管理サーバ4は、各ストレージ2の負荷状況を示す第1負荷情報に基づいて、複数のストレージ2のいずれかを選択する。読出サーバ3は、選択されたストレージ2からデータを読み出す。これにより、複数のストレージ2には、同一のデータが記憶されているため、リアルタイムデータ記録装置1に記憶されているデータを、データを移動させることなく、どのストレージ2からでも取り出すことができる。そして、各ストレージ2の負荷状況に基づいて選択されたストレージ2からデータを取り出すことができるため、同じストレージ2にアクセスが集中することを抑制して、負荷の低いストレージ2からデータを取り出すことができる。したがって、同じデータに対して複数のクライアントが同時にアクセスする場合であっても、スループットの低下を抑制することが可能になる。
As described above, according to the first embodiment of the present invention, the real-time
また、上記実施形態の変形例によれば、管理サーバ4は、複数のストレージ2のいずれかを選択した後、選択されたストレージ2の第1負荷情報が所定の条件を満たした場合、他のストレージ2を選択することで、データを読み出すために用いられるストレージ2を切り替える。これにより、読出処理が開始された後であっても、ストレージ2の負荷状況に応じて、読出処理に用いられるストレージ2を切り替えることができる。したがって、より確実に、スループットの低下を抑制することが可能になる。
Further, according to the modification of the above embodiment, when the
また、上記実施形態によれば、管理サーバ4は、第1負荷情報を繰り返し取得し、第1負荷情報が所定の条件を連続して満たした回数をカウントし、当該回数が規定数を超えた場合、他のストレージ2を選択する。これにより、第1負荷情報が所定の条件を満たしている期間が短い場合には、ストレージ2が切り替えられないため、頻繁にストレージ2が切り替わって信頼性が低下することを抑制することが可能になる。
In addition, according to the above embodiment, the
また、上記実施形態によれば、管理サーバ4は、データの読み出しを要求する読出要求を受け付けると、第1負荷情報に基づいて複数のストレージ2のいずれかを選択する。これにより、読み出し開始時に各ストレージ2の負荷状況に応じて読出処理に用いるストレージ2が選択されるため、より確実に、スループットの低下を抑制することが可能になる。
Further, according to the embodiment, the
また、上記実施形態によれば、複数のストレージ2のそれぞれは制御装置であるCPUを有し、管理サーバ4は、第1負荷情報として、各CPUの使用率および各ストレージ2に対するアクセス数の少なくともいずれかを用いる。これにより、CPU使用率またはアクセス数に基づいて、負荷が低いストレージ2を選択することが可能になる。したがって、より確実に、スループットの低下を抑制することが可能になる。
Further, according to the above embodiment, each of the plurality of
また、上記実施形態によれば、管理サーバ4は、使用率およびアクセス数を第1負荷情報として用いるものであって、各ストレージ2について、当該ストレージ2のアクセス数と当該ストレージ2に対して設定された上限値との差異を算出し、当該算出結果に基づいて、複数のストレージ2のいずれかを選択し、CPU使用率に基づいて、上限値をストレージ2ごとに調整する。これにより、使用率およびアクセス数に基づいてより正確にストレージ2の負荷状況を把握することができる。また、外部からのアクセスを伴わない内部処理によって処理負荷が増大しており、アクセス数は増大しないがCPU使用率が増大している場合であっても、処理負荷の増大に応じた値となる差異に基づいてストレージ2を選択することができる。したがって、より確実に、スループットの低下を抑制することが可能になる。
Further, according to the embodiment, the
また、上記実施形態によれば、管理サーバ4は、CPU使用率を繰り返し取得し、CPU使用率が連続して所定の閾値を超えた回数をカウントし、当該回数が規定値を超えた場合、上限値を下げる。これにより、CPU使用率に基づいて処理負荷が高いと判断される状態が所定時間以上続いた場合、アクセス数が制限され、瞬時的に処理負荷が上昇した場合、アクセス数は制限されない。したがって、不要にアクセス数が制限されることを抑制することが可能であり、より確実に、スループットの低下を抑制することが可能になる。
Further, according to the above embodiment, the
また、上記実施形態によれば、リアルタイムデータ記録装置1は、複数の読出サーバ3を備え、管理サーバ4は、各読出サーバ3の負荷状況を示す第2負荷情報に基づいて、複数の読出サーバ3のいずれかを選択する。そして選択された読出サーバ3は、選択されたストレージ2からデータを読み出す。これにより、読出サーバ3についても処理負荷が分散され、より確実に、スループットの低下を抑制することが可能になる。
In addition, according to the above embodiment, the real-time
(第2の実施形態)
図9は、本発明の第2の実施形態にかかる記憶装置100の構成を示すブロック図である。
(Second Embodiment)
FIG. 9 is a block diagram showing a configuration of the
記憶装置100は、複数の記憶部120と、管理部130と、読出部140とを有する。記憶部120は、それぞれが同一のデータを記憶する。管理部130は、各記憶部120の負荷状況を示す第1負荷情報に基づいて、複数の記憶部120のいずれかを選択する。読出部140は、選択された記憶部120からデータを読み出す。
The
図10は、記憶装置100の動作を説明するためのフローチャートである。記憶装置100の管理部130は、第1負荷情報に基づいて、複数の記憶部120のいずれかを選択する(ステップS600)。読出部140は、選択された記憶部120からデータを読み出す(ステップS601)。
FIG. 10 is a flowchart for explaining the operation of the
以上説明したように、本発明の第2の実施形態によれば、複数の記憶部120には、同一のデータが記憶されているため、どのデータを取り出す場合であっても、記憶部120間でデータを移動させることなくどの記憶部120からでもデータを取り出すことができる。また、各記憶部120の負荷状況に基づいて選択された記憶部120からデータを取り出すことができるため、同じ記憶部120にアクセスが集中することを抑制して、負荷の低い記憶部120からデータを取り出すことができる。したがって、同じデータに対して複数のクライアントが同時にアクセスする場合であっても、スループットの低下を抑制することが可能になる。
As described above, according to the second embodiment of the present invention, the same data is stored in the plurality of
1 リアルタイムデータ記録装置
2 ストレージ
3 読出サーバ
4 管理サーバ
71 リアルタイムデータ入力装置
72 クライアント
DESCRIPTION OF
Claims (10)
各記憶部の負荷状況を示す第1負荷情報に基づいて、前記複数の記憶部のいずれかを選択する管理部と、
選択された前記記憶部から前記データを読み出す読出部と、を備える記憶装置。 A plurality of storage units each storing the same data;
A management unit that selects one of the plurality of storage units based on first load information indicating a load status of each storage unit;
And a reading unit that reads the data from the selected storage unit.
前記管理部は、前記第1負荷情報として、各制御装置の使用率および各記憶部に対するアクセス数の少なくとも一方を用いる、請求項1ないし4のいずれか1項に記載の記憶装置。 Each of the plurality of storage units has a control device,
5. The storage device according to claim 1, wherein the management unit uses at least one of a usage rate of each control device and the number of accesses to each storage unit as the first load information. 6.
前記管理部は、各読出部の負荷状況を示す第2負荷情報に基づいて、前記複数の読出部のいずれかを選択し、
選択された前記読出部は、前記選択された記憶部から前記データを読み出す、請求項1ないし7のいずれか1項に記載の記憶装置。 A plurality of the reading unit,
The management unit selects one of the plurality of reading units based on second load information indicating a load status of each reading unit,
The storage device according to claim 1, wherein the selected reading unit reads the data from the selected storage unit.
選択された前記記憶部から前記データを読み出す、データ読出方法。 Based on the first load information indicating the load status of each of a plurality of storage units each storing the same data, select one of the plurality of storage units,
A data reading method for reading the data from the selected storage unit.
それぞれが同一のデータを記憶する複数の記憶部と、
各記憶部の負荷状況を示す第1負荷情報に基づいて、前記複数の記憶部のいずれかを選択する管理部と、
選択された前記記憶部から前記データを読み出す読出部と、を備える記憶装置として機能させるためのプログラム。 Computer
A plurality of storage units each storing the same data;
A management unit that selects one of the plurality of storage units based on first load information indicating a load status of each storage unit;
A program for functioning as a storage device comprising: a reading unit that reads out the data from the selected storage unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014077544A JP2015200930A (en) | 2014-04-04 | 2014-04-04 | Storage device, data reading method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014077544A JP2015200930A (en) | 2014-04-04 | 2014-04-04 | Storage device, data reading method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015200930A true JP2015200930A (en) | 2015-11-12 |
Family
ID=54552165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014077544A Pending JP2015200930A (en) | 2014-04-04 | 2014-04-04 | Storage device, data reading method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015200930A (en) |
-
2014
- 2014-04-04 JP JP2014077544A patent/JP2015200930A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3419247B1 (en) | Method and device for storage resource allocation for video cloud storage | |
US9916275B2 (en) | Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system | |
CN105487814B (en) | The performance aware power cap of data storage device controls | |
US9063912B2 (en) | Multimedia content preview rendering in a cloud content management system | |
CN102541460B (en) | Multiple disc management method and equipment | |
CN105446456B (en) | Data storage device with performance aware power cap | |
CN104580439B (en) | Method for uniformly distributing data in cloud storage system | |
JP2018073412A (en) | Solid-state drive capable of multiple stream, driver therefor, and method for integrating data stream | |
US20170353537A1 (en) | Predictive load balancing for a digital environment | |
US20120044532A1 (en) | Management device, file server system, execution method and management program | |
US9460399B1 (en) | Dynamic event driven storage system optimization | |
US8914517B1 (en) | Method and system for predictive load balancing | |
US9177274B2 (en) | Queue with segments for task management | |
US20120066470A1 (en) | Method and system for allocating memory to a pipeline | |
CN108228323B (en) | Hadoop task scheduling method and device based on data locality | |
US10289312B2 (en) | Method of reordering a queue of write requests | |
JP2015200930A (en) | Storage device, data reading method, and program | |
US9933966B2 (en) | Storage control device and computer system | |
CN111405313B (en) | Method and system for storing streaming media data | |
JP6039345B2 (en) | Image management apparatus, image management method, and program | |
JP5528713B2 (en) | Video distribution system | |
KR101325605B1 (en) | A method for distributing traffic on storage by migrating contents between storages | |
JP6786835B2 (en) | Management equipment, servers, thin client systems, management methods and programs | |
CN116405491B (en) | File batch uploading method and system, electronic equipment and computer readable storage medium | |
WO2023157304A1 (en) | Data processing device, method, and program |