JP3617879B2 - 実時間ストリームサーバのディスク修復方法及びディスク修復装置 - Google Patents
実時間ストリームサーバのディスク修復方法及びディスク修復装置 Download PDFInfo
- Publication number
- JP3617879B2 JP3617879B2 JP20864896A JP20864896A JP3617879B2 JP 3617879 B2 JP3617879 B2 JP 3617879B2 JP 20864896 A JP20864896 A JP 20864896A JP 20864896 A JP20864896 A JP 20864896A JP 3617879 B2 JP3617879 B2 JP 3617879B2
- Authority
- JP
- Japan
- Prior art keywords
- stream
- repair
- data
- disk
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000008439 repair process Effects 0.000 title claims description 201
- 238000000034 method Methods 0.000 title claims description 29
- 238000012546 transfer Methods 0.000 claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 58
- 238000013500 data storage Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000004904 shortening Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2404—Monitoring of server processing errors or hardware failure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/2312—Data placement on disk arrays
- H04N21/2318—Data placement on disk arrays using striping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、実時間ストリームサーバからクライアントへのストリームデータの供給に影響を与えずにディスク装置の故障により失われたデータを修復する実時間ストリームサーバのディスク修復方法及びディスク修復装置に関する。
【0002】
【従来の技術】
動画像や音声に代表される、実時間で順次転送されるデータを「実時間ストリームデータ」と呼ぶ。これらのデータを扱う「実時間ストリームサーバ」においては、ディスク装置に蓄積された実時間ストリームデータを、実時間での連続性を保証して各クライアントに送出できることが必要条件である。その条件を満たすために、従来技術では実時間ストリームデータをある一定時間に転送すべき大きさのブロックに分割してデータ蓄積部に格納しておき、各ストリーム毎にサーバが周期的にデータ蓄積部にアクセスする。読み出されたブロックは一旦バッファメモリ上に置かれ、対応するクライアントに通信網を介して周期的に送出される。制御装置では、この動作のタイミングの管理を行ない、また、クライアントからの接続要求を受け付けて、新しいストリームチャネルを確立する。
【0003】
データ蓄積部には大量のデータを格納し、かつ高速にデータを転送する必要があるので、複数のディスク装置を組み合わせたディスクアレイ装置を用意して、データを小さなブロックに分割して全てのディスク装置に順に格納するストライピング技術が一般に用いられる。
【0004】
ディスクアレイにおけるデータ修復を可能にする技術としては、RAID(Redundant Arrays of Inexpensive disks)がよく知られている。例えば、ある数のデータディスク毎に1台のパリティディスクを設けて論理的なディスクグループを作り、格納するデータを何らかの基準で小さなブロックに分割し、さらにそのブロックをデータディスクの数のデータセグメントに分割して格納する。各ブロックについて、データセグメントの排他的論理和を持つパリティデータを計算してパリティディスクに格納しておく。すると、ディスクグループ内のどれか1台のディスク装置が故障した場合でも、他のデータディスクとパリティディスクからデータの修復が可能となる。
【0005】
さらに実時間ストリームサーバにおいては、ディスク装置が故障した場合でも接続されているストリームによるクライアントへのデータ供給を継続し、かつサーバの運用を停止せずにデータの修復を行なうことが求められる。そこで、実時間ストリームサーバのデータ蓄積部にはディスク装置の故障検出手段とサーバの動作中にディスク装置を交換する手段が用意されている。
【0006】
ところで、実際にデータの修復を行なう場合には、クライアントへのデータ供給を行うストリーム以外にも、修復のためのディスクアクセス、バッファメモリ等のストリーム資源が必要となる。
【0007】
従来は、あるストリーム資源を修復ストリーム専用に確保しておき、データの修復の際に、確保しておいたストリーム資源を修復ストリームに割り当てデータの修復を実行させていた。このため、修復中の最大ストリーム供給数が低く制限される不具合があった。また、どのストリーム資源を確保するかは固定的に設定されるので、実際のストリーム供給数が少ない場合、割り当てられずに余っているストリーム資源が多く存在しても、これら資源を有効に利用して修復時間を短縮することができなかった。
【0008】
【発明が解決しようとする課題】
従来は、故障ディスク装置のデータの修復を行なう場合、あるストリーム資源を修復ストリーム専用に割り当てていたので、その後の最大ストリーム供給数が低く制限されるという不具合があった。また、ストリーム資源を有効に利用して修復時間を短縮することができなかった。
【0009】
本発明は、上記事情を考慮してなされたものであり、実時間ストリームサーバにおけるディスク装置の故障によって失われたデータをスペアディスク上に修復中であっても、新しいストリームの接続要求には制限を付けずに通常時と全く同様のサービスを提供しつつ、余ったストリーム資源を最大限に利用して修復時間を短縮することを可能とする実時間ストリームサーバ並びに実時間ストリームサーバのディスク修復装置及びディスク修復方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明は、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を接続し、クライアントからの要求に応じて要求されたデータをブロック単位に格納したディスク装置から読み出して要求元につながる通信路に送り出す実時間ストリームサーバの動作中に該ディスク装置の故障が検出された場合、故障したディスク装置に格納されていたセグメントを代替ディスク装置上に修復するディスク修復方法において、修復すべきセグメントを含むブロックの情報を作成し、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当て、修復ストリームでは、前記情報により特定される未修復のブロックを逐次選択し、代替ディスク装置上にセグメントの修復を行ない、修復ストリームの実行中に新たにストリームの接続要求が到着した場合、全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームに割り当て、前記ストリームによるデータの供給にあたっては、各ブロックの転送に先だって、次に転送すべきブロックがまだ修復されておらず、かつ、ストリーム資源が確保可能であるか否か調べ、両条件が成立する場合は、修復したセグメントを代替ディスク装置に書き込むことを特徴とする実時間ストリームサーバのディスク修復方法。
好ましくは、前記修復ストリームでは、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくようにしてもよい。
好ましくは、クライアントへのデータ転送に用いるストリームが終了した場合、終了した該ストリームのストリーム資源を修復のために用いるストリームに割り当てるようにしてもよい。
また、本発明は、クライアントから要求されたデータを、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を持つデータ蓄積部からブロック単位に読み出してバッファメモリ上に一時的に保持し、ネットワークを介してクライアントに転送する手段と、この手段による読み出しおよび転送の動作タイミングをスケジューリングする制御手段とを備えた実時間ストリームサーバにおける、故障が検出されたディスク装置の内容を修復するディスク修復装置において、修復すべきセグメントの属するブロックの情報を管理する手段と、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当てる手段と、前記修復ストリームにより、前記情報により特定されるブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを代替ディスク装置へ転送する修復手段と、新ストリームの接続要求時に全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームで利用可能にする手段と、前記修復ストリーム以外のストリームにより、修復すべき前記ブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを含むブロックをネットワークへ転送する転送手段とを備え、前記ストリームによるデータの供給にあたっては、各ブロックの転送に先だって、次に転送すべきブロックがまだ修復されておらず、かつ、ストリーム資源が確保可能であるか否か調べ、両条件が成立する場合は、修復したセグメントを代替ディスク装置に書き込むことを特徴とする。
好ましくは、前記修復手段は、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくようにしてもよい。
また、本発明は、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を接続し、クライアントからの要求に応じて要求されたデータをブロック単位に格納したディスク装置から読み出して要求元につながる通信路に送り出す実時間ストリームサーバの動作中に該ディスク装置の故障が検出された場合、故障したディスク装置に格納されていたセグメントを代替ディスク装置上に修復するディスク修復方法において、修復すべきセグメントを含むブロックの情報を作成し、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当て、修復ストリームでは、前記情報により特定される未修復のブロックを逐次選択し、代替ディスク装置上にセグメントの修復を行ない、修復ストリームの実行中に新たにストリームの接続要求が到着した場合、全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームに割り当て、前記修復ストリームでは、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度を低くしておくことを特徴とする。
また、本発明は、クライアントから要求されたデータを、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を持つデータ蓄積部からブロック単位に読み出してバッファメモリ上に一時的に保持し、ネットワークを介してクライアントに転送する手段と、この手段による読み出しおよび転送の動作タイミングをスケジューリングする制御手段とを備えた実時間ストリームサーバにおける、故障が検出されたディスク装置の内容を修復するディスク修復装置において、修復すべきセグメントの属するブロックの情報を管理する手段と、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当てる手段と、前記修復ストリームにより、前記情報により特定されるブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを代替ディスク装置へ転送する修復手段と、新ストリームの接続要求時に全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームで利用可能にする手段と、前記修復ストリーム以外のストリームにより、修復すべき前記ブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを含むブロックをネットワークへ転送する転送手段とを備え、前記修復手段は、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくことを特徴とする。
【0019】
本発明(請求項1,2,4,5)では、ディスク装置の故障が検出され通知されると、修復すべきデータセグメントが属するブロックを調べ管理する。例えばそのブロックを表す識別子のリストを作成すれば、このリストを参照することにより、各ブロックが未修復であるか修復中であるかを知ることができる。そして、使用されていないストリーム資源の全部あるいは一部を、そのストリーム資源に対応する数の修復ストリームに割り当てる。ここで、ストリーム資源とは、例えば、ディスクアクセスを割り付けるタイムスロット、ディスクから読み出したデータを一時保持しておくためのバッファメモリ、制御装置内でストリームを管理・スケジュールするために必要となる情報を格納しておく領域である。
【0020】
修復ストリームでは、リストを参照するなどして次に修復すべきブロックの識別子を得る。そして、通常のストリームと同様のスケジューリング方法で、そのブロックのディスクアクセス、バッファメモリ上でのデータセグメントの修復が行なわれ、スペアディスクに修復されたデータセグメントが書き込まれる。
【0021】
新しいストリームの接続要求が到着したときには、優先的に新ストリームにストリーム資源を割り当てるのが好ましい。そこで、新ストリームで必要となるストリーム資源を確保するために、一部の修復ストリームによる修復を中断させてそのストリーム資源を解放するのが好ましい。
【0022】
一方、クライアントへのデータ供給を行う通常のストリームが終了し、そのストリーム資源が解放された場合には、解放されたストリーム資源を修復ストリームに割り当てることができる。
【0023】
以上により、通常のストリームで使用されていない余ったストリーム資源をディスクの修復のために最大限に利用しつつ、かつ新しいストリームの接続要求に対応して通常のストリームと修復ストリームの割合を変化させることが可能になる。
【0024】
従って、本発明によれば、修復ストリームによるデータ上の修復中であっても、既接続のストリームによるクライアントへのデータ供給に影響を及ぼさず、かつ新しいストリームの接続に制限を設けずに、ストリーム資源を無駄なく有効に利用してディスク装置の故障により失われたデータの修復時間を短縮することが可能である。
【0025】
また、本発明では、修復ストリームだけでなく、通常のストリームによるクライアントへのデータ供給の際に修復されたデータをスペアディスクに書き込むようにする。まず、ディスクアクセスの前にそのブロックが未修復かどうかリストを参照するなどして調べる。そのブロックが未修復の場合には、バッファメモリ上に修復されたデータセグメントをスペアディスクに書き込む。なお、同時に複数の書き込みが同一スペアディスクに集中しないようにスケジュールしておけば良い。
これにより、修復完了時間をさらに短縮することができる。
【0026】
また、本発明では、現在クライアントへ供給中のストリームデータに関しては、その後引き続いてそのストリームで供給と修復が同時に行なわれると予想されるので(あるいは同時に行なわれるとみなし)、現在クライアントへ供給中のストリームデータを格納しているブロック番号の選択優先度を低く設定して、現在供給されていないストリームデータを格納しているブロック識別子を優先的に選択するようにするとより効果的である。
【0027】
これにより、現在供給されていないデータを修復ストリームで修復し、通常ストリームで供給しているデータをそのまま修復に利用できる確率が上がり、修復完了時間をさらに短縮することができる。
【0028】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
本発明の第1の実施形態では、ディスク装置の故障が検出され制御装置に通知されると、ブロック修復リスト管理部は、修復すべきデータセグメントが属するブロックを調べて、ブロック修復予約リストを作成する。このリストは各ブロックが未修復であるか修復中であるかを示す情報を持つ。また、ブロック修復リスト管理部では、スケジューリング部の問い合わせに対して次に修復すべきブロックを選択する機能と、指定されたブロックが未修復であるかどうかを判断する機能を持つ。その後、使用されていないストリーム資源の全てあるいは一部を、そのストリーム資源に対応する数の修復ストリームに割り当てる。
【0029】
ここで、ストリーム資源とは、ディスクアクセスを割り付けるタイムスロットと、ディスクから読み出したデータを一時保持しておくためのバッファメモリと、制御装置内でストリームを管理、スケジュールするために必要となる情報を格納しておく領域である。
【0030】
修復ストリームでは、次にアクセスすべきディスクグループに対応するブロック修復予約リストからブロック識別子を得る。そして、通常のストリームと同様のスケジューリング方法で、そのブロックのディスクアクセス、バッファメモリ上でのデータセグメントの修復が行なわれ、その後スペアディスクにそのデータセグメントが書き込まれる。
【0031】
新しいストリームの接続要求が到着したときには、新ストリームで必要となるストリーム資源を確保するために、一部の修復ストリームによる修復を中断させてそのストリーム資源を解放する。
【0032】
また、クライアントへのデータ供給を行う通常のストリームが終了し、そのストリーム資源が解放された場合には、解放されたストリーム資源を修復ストリームに割り当てる。以上により、通常のストリームによるクライアントへのデータの供給で使用されていない余ったストリーム資源をディスクの修復のために最大限に利用しつつ、かつ新しいストリームの接続要求に対応して通常のストリームと修復ストリームの割合を変化させることが可能になる。
【0033】
さらに、第2の実施形態では、修復ストリームだけでなく、通常のストリームによるクライアントへのデータ供給の際に修復されたデータをスペアディスクに書き込む。スケジューリング部は、ディスクアクセスの前にそのブロックが未修復がどうかをブロック修復リスト管理部に問い合わせる。ブロック修復リスト管理部は、そのブロックが格納されているディスクグループのブロック修復予約リストを調べて、未修復かどうかを返す。スケジューリング部は、そのブロックが未修復の場合に、バッファメモリ上に修復されたデータセグメントをスペアディスクに書き込む。このとき、バッファメモリ上にそのデータが残っている間、すなわちブロックのクライアントへの転送が終了するまでにスペアディスクへの書き込みが実行されなければならない。また、同時に複数の書き込みが同一スペアディスクに集中しないようにスケジュールしなければならない。
【0034】
なお、現在クライアントへ供給中のストリームデータに関しては、その後引き続いてそのストリームで供給と修復が同時に行なわれると予想されるので、修復ストリームで次に修復されるブロックをブロック修復リスト管理部が選択する際に、現在クライアントへ供給中のストリームデータを格納しているブロック番号の選択優先度を低くして、現在供給されていないストリームデータを格納しているブロック識別子を優先的に選択するようにするとより効果的である。
【0035】
以上により、通常ストリームで供給しているデータをそのまま修復に利用できる確率が上がり、修復完了時間をさらに短縮することができる。
また、第3の実施形態では、バッファメモリ上での修復を行うハードウェアの制限により、クライアントへのデータ供給とバッファメモリ上でのデータ修復が同時に行われるために、データ転送が終了するまでの時間内には修復データをスペアディスクに書き込めない場合であっても、第2の実施形態と同様に、通常ストリームによるクライアントへのデータ供給の際にバッファメモリ上で修復されたセグメントをスペアディスクに書き込む。
【0036】
この場合には、通常ストリームと修復を行うストリームとでデータのバッファ滞在時間が異なり、その結果バッファメモリの使用量が異なる。そこで、新ストリームの接続時には、そのストリームに必要となるストリーム資源を確保できるように、必要ならば複数の修復ストリームを中断して資源を解放し、新ストリームに割り当てる。
【0037】
逆に通常ストリームによるデータ供給の終了時には、終了した通常ストリームのストリーム資源を解放する。その後で未使用のストリーム資源量が修復ストリームで必要なストリーム資源量に達している場合には、新しい修復ストリームにストリーム資源を割り当てる。
【0038】
以下では、クライアントへのストリームデータの供給のみを行う通常ストリームをSストリームと呼ぶ。すなわち、Sストリームでは、転送対象のブロックを格納したディスクが故障している場合は、該ブロックを修復しながらクライアントへストリームデータ供給を行うが、修復した故障ディスクの内容を代替ディスクに書き込むことはしない。
【0039】
一方、ストリームデータの供給/故障ディスクの修復を併せて行う通常ストリームをRSストリームと呼ぶ。すなわち、RSストリームでは、転送対象のブロックを格納したディスクが故障している場合は、該ブロックを修復しながらストリームデータの供給を行うとともに、修復した故障ディスクの内容を代替ディスクに書き込む。
【0040】
また、故障ディスクの修復のみを行うストリームをRストリームと呼ぶ。
以下、各実施形態をさらに詳しく説明する。
(第1の実施形態)
まず、第1の実施形態について説明する。
【0041】
本実施形態は、故障ディスクのデータを修復しながら送出するSストリームと、故障ディスクのデータを修復して代替ディスクに書き込むRストリームを用いる実施形態である。
【0042】
図1に本実施形態に係る実時間ストリームサーバの構成を、図2に本実施形態の動作のフローチャートを示す。
なお、図1のバッファメモリ4内のストリームstream iに対する矢印は、故障ディスクのデータを修復して該故障ディスクに書き込む様子(Rストリームに対応)を示しており、ストリームstream jに対する矢印は、故障ディスクのデータを修復しながらクライアントに送出する様子(Sストリームに対応)を示している。
【0043】
図1のように本実施形態の実時間ストリームサーバは、実時間ストリームデータを格納するための複数台のディスク装置32を有するデータ蓄積部3、ディスク装置32から読み出したデータを一時保持しておくためのバッファメモリ4、バッファメモリ4から読み出したデータをネットワーク(図示せず)を介して要求元のクライアントへ転送するデータ転送部5、ディスク装置32の故障を検出する故障検出部6、故障したディスク装置のデータを修復するデータ修復部7、データ蓄積部3やデータ転送部5に対して必要な動作の指示を行なうなどシステム全体を制御する制御装置2を備えている。
【0044】
制御装置2は、要求元クライアントからネットワークを介して送られてくるストリーム接続要求を受け付ける接続要求処理部21、各ストリームの連続性を保証するのに必要な動作のスケジュールを管理するスケジューリング部22、修復ストリームにストリーム資源を割り当てる修復ストリーム割り付け部23、修復ストリームによる修復を中断させてそのストリーム資源を解放する修復ストリーム解放部24、修復状況・順序等を管理するブロック修復リスト管理部25を備えている。
【0045】
データ蓄積部3は、N組のディスクグループ31からなる。1組のディスクグループには、m+1台のディスク装置32が含まれる。m+1台のディスク装置32のうち、m台はデータ格納用として使われ、1台はパリティ格納用に使われる。1つのディスクグループに格納されるブロックは、等長のm個のデータセグメントに分割されて、それぞれ異なるデータ格納用ディスクに格納される。パリティディスクには、m個のデータセグメントのパリティデータが格納される。
【0046】
以下、本実施形態の動作について図2を参照しながら説明する。ディスク装置の故障の通知のない通常動作では、接続要求処理部21によりネットワークを介して転送されてきた要求元クライアントのストリーム接続要求が受理されると、制御装置2は、通常ストリームにストリーム資源、すなわちスケジューリング部22のストリーム管理表221のエントリ、ディスクアクセスを割り付けるタイムスロットとディスクから読み出したデータを一時保持しておくためのバッファメモリ4の領域を割り当てる。
【0047】
そして、制御装置2は、要求元クライアントに要求されたストリームデータを供給するために、割り当てたストリーム資源を使用して、該当するディスクグループ内のm個のデータセグメントとそれらに対応する1個のパリティデータを同時にバッファメモリ4に呼び出させ、その後、バッファメモリ4から転送装置5によりネットワーク(図示せず)を介してクライアントへ順次転送させる。制御装置2は、データセグメントを周期的に転送し、要求されたストリームデータの供給が完了したら、割り当てたストリーム資源を解放する。
【0048】
以上が、通常動作である(ステップS11)。
さて、通常動作中において、ディスク装置32に故障が生じたものとする。すると、故障検出部6によりディスク装置32の故障が検出され、制御装置2に故障発生通知と故障したディスク装置のディスク番号が送られてくる(ステップS12)。
【0049】
通知を受けた制御装置2は、データ修復装置7に命令を送り、故障したディスク装置(図中の33)が属するディスクグループ(例えば図1中のGroup N−1)からバッファメモリ4に読み出されたデータをクライアントへ転送する前に、故障したディスク装置33から読み出されるべきデータセグメントを他のデータセグメントとパリティデータから修復させ(ステップS19)、その後に転送させる(ステップS20)。
【0050】
一方、故障したディスク装置33は新しいディスク装置と交換する(ステップS12)。なお、通常動作中にスペアディスク装置を接続しておいて、故障発生時に故障したディスク装置33とスペアディスク装置のディスク番号を論理的に交換してもよい。
【0051】
さて、故障が検出されるとブロック修復リスト管理部25は、各ディスクグループ毎にブロック修復予約リスト251を作成する(ステップS13)。ブロック修復予約リスト251には、そのディスクグループ31に格納されているブロックを表すブロック識別子を登録する。故障ディスク33が存在しないディスクグループ31のブロック修復予約リスト251は空とする。ブロック識別子には、そのブロックがディスク装置32に格納されるときの位置情報が含まれる。その位置情報は、論理ブロック番号でもよいし、あるいは物理的なトラック番号やセグメント番号でもよい。あるブロックのm個のデータセグメントが各ディスク装置で同一の論理ブロック番号で表されるならば、ブロック識別子はその論理ブロック番号の情報を保持すればよい。そうでない場合には、ブロック識別子はm個のデータセグメントの各ディスク装置上での位置情報を全て保持する必要がある。
【0052】
修復ストリーム割り付け部23は、現在クライアントへのデータの供給に使用されていないストリーム資源の一部または全部を修復ストリームに割り当てる(ステップS14)。具体的には、通常のストリームと同様にバッファメモリ4の領域(図中のstream iの部分)、スケジューリング部22のストリーム管理表221の領域(図中のstream iの部分)、ディスクアクセスを割り付けるタイムスロットを確保して、ストリーム管理表221にその修復ストリームの管理情報書き込み、タイムスロットにディスクアクセスを割り付ける。
【0053】
修復ストリームでは、次にアクセスするディスクグループ(例えば図1中のGroup N−1)のブロック修復予約リスト251からブロック識別子を取り出す(ステップS21)。通常のストリームと同様にそのブロック識別子に対応するデータセグメントとパリティデータを同時にバッファメモリ4に読み出して、データ修復装置7により故障したディスク33から読み出されるべきデータセグメントを修復する(ステップS22〜S24)。修復されたデータセグメントは、バッファメモリ4から交換されたスペアディスク32に書き込まれる。
【0054】
ここで、書き込みを通常のストリームのブロック転送終了までのタイムスロットで行なうようにすれば、1ブロックがバッファメモリ4の1領域を占有する期間が通常のストリームと同じになるので、1本の修復ストリームで全てのディスクグループの修復を1ブロックづつ順番に行なうことが可能となる。
【0055】
ブロック修復予約リストが空である場合には(ステップS22)、ディスク装置32が故障していないか、あるいは修復が終了したものとみなして、そのディスクグループに対するディスクアクセスの順番がまわってきても読み出し、修復、書き込みを行なわなければよい。
【0056】
ここで、修復中に新しいストリームの接続要求があった場合、修復タイムスロットが存在しないものとみなして新ストリームのディスクアクセスを割り付けるタイムスロットを選択する。選択したタイムスロットに修復ストリームのディスクアクセスが既に割り付けられていた場合には、その修復ストリームによる修復を中断して、そのストリーム資源を解放する(ステップS15)。このとき、その修復ストリームにおいて書き込みが終了していないブロックを表す識別子全てを、それぞれが対応するディスクグループのブロック修復予約リスト251に登録し直す。その後、解放されたストリーム資源を新ストリームに割り当てる。空いたタイムスロットに新ストリームのディスクアクセスを割り付ける(ステップS16)。
【0057】
一方、既に接続されている通常ストリームによるデータ供給が終了した場合、解放されたストリーム資源を修復ストリームに割り当てて、修復ストリームを増加させる(ステップS17,S18)。
【0058】
ここで、ディスク装置1台分のデータの修復に必要となる時間は、
(修復時間)=(ディスク1台分の修復ブロック数)×(ブロック転送周期)×(ディスクグループ数)/(修復ストリーム数)となる。
【0059】
全てのブロックにおいて、(ブロック転送時間)=(ブロック転送周期)であるならば、
(修復時間)=(全データの転送時間)/(修復ストリーム数)となる。修復ストリームは全てのディスクグループの修復で共用できるので、故障ディスクを含むディスクグループ数が増加しても修復時間は変化しない。
【0060】
以上のようにして、全ての修復ストリームで修復が完了したら(ステップS24)、全ての修復ストリームを解放し(ステップS25)、通常動作へ戻る(ステップS26)。
【0061】
以上のように本実施形態によれば、通常のストリームによるクライアントへのデータの供給で使用されていない余ったストリーム資源をディスクの修復のために最大限に利用しつつ、かつ新しいストリームの接続要求に対応して通常のストリームと修復ストリームの割合を変化させることが可能になる。
【0062】
従って、修復ストリームによるデータの修復中であっても、既接続の通常ストリームによるクライアントへのデータ供給に影響を及ぼさず、かつ新しいストリームの接続に制限を設けずに、故障ディスク装置を含むディスクグループの転送能力を無駄なく有効に利用してディスク装置の故障により失われたデータの修復時間を短縮することが可能である。
【0063】
(第2の実施形態)
次に、第2の実施形態について説明する。本実施形態では、第1の実施形態のように修復ストリームにより故障ディスクのデータを修復して故障ディスクに書き込むだけでなく、通常のストリームによりクライアントへのデータの供給とデータの修復を同時に行う。すなわち、RSストリームとRストリームを用いる実施形態である。
【0064】
本実施形態に係る実時間ストリームサーバの構成は図1と同様であり、詳細な説明は省略する。ただし、制御装置2に上記のようなRSストリームによる新たな修復操作の制御機能が加わっている点が異なる。また、図3に本実施形態の動作のフローチャートを示す。なお、図3中、第1の実施形態の動作を示す図2のフローチャートと同様の部分は同一の符号を付した。以下では、第1の実施形態と相違する点を中心に説明する。
【0065】
第1の実施形態では、通常ストリームにおいて、クライアントへのデータの供給のためにバッファメモリ4上でのデータの修復が行なわれ(ステップS19)、そして、データを修復されたブロックはクライアントへ転送された(ステップS20)。
【0066】
ここで、データを修復されたブロックは、そのブロックが全てクライアントへ転送されるまではバッファメモリ4上に保持されており、本実施形態では、その転送が終了するまでにスペアディスクに書き込むようにする。
【0067】
本実施形態では、通常ストリームにおいて、既にスペアディスク上に修復されているデータセグメントをスペアディスクに書き込む必要はないので、ディスクアクセスの前にそのブロックが未修復かどうかをブロック修復リスト管理部25に問い合わせる。その結果、未修復であればブロック修復リストからそのデータのブロック識別子を除いておく(ステップS103)。
【0068】
次に、ステップS19のデータの修復が行なわれ、S20の転送が行なわれる。
ここで、先の問い合わせの結果、修復済みであればスペアディスクに書き込まず、未修復であれば転送が終了するまでにスペアディスクに書き込む(ステップS104,S105)。
【0069】
スペアディスクに書き込むタイミングは、バッファメモリ4上にデータが保持されている間であり、且つ、1台のスペアディスクへ複数の書き込みが重ならないようにスケジュールしなければならない。これは、図4のようにディスクアクセス、データセグメントの修復、書き込み、クライアントへの転送をスケジュールすることで可能となる。すなわち、ディスクアクセスの直後のタイムスロットから一定時間内にデータセグメントの修復を完了し、さらにその直後にスペアディスクに書き込みを行なう。データセグメントの修復とクライアントへの転送が重なることは許されないが、スペアディスクへの書き込みとクライアントへの転送が重なることは許される。図4は、1ストリーム当り4個のバッファメモリを割り付けて、クライアントへの転送時間が4スロット、データ修復時間が2スロットの場合を示している。この場合、ディスクアクセスを割り付けることが可能なタイムスロットの範囲である許容ジッター範囲は、クライアントへの転送開始より12スロット前から2スロット前までの10スロット分である。この例では、全てのブロックについて対応するディスクグループのスペアディスクに書き込みを行なっているが、そのディスクグループに故障ディスクが存在しない場合には、バッファメモリ上での修復とスペアディスクへの書き込みの必要はない。
【0070】
ところで、上記のように通常ストリームを供給と修復の両方に使用する場合、修復されるブロックは供給しているストリームデータを格納しているブロックに限られる。そのブロックが修復ストリームで既に修復されている場合であっても、その通常のストリームでは他のブロックを修復することはできない。そこで、本実施形態では、修復ストリームで次に修復するブロックを選択するときに、通常のストリームで供給中のストリームデータを格納しているブロックの優先度を低くし(ステップS101)、供給していないストリームデータを格納しているブロックを優先してブロック識別子を選択する。
【0071】
より具体的には、ブロック修復予約リスト作成時にディスクグループ毎に二種類のブロック修復予約リストを作る。一方のリストには、供給中のストリームデータを格納するブロックを表すブロック識別子を登録する(ステップS101)。もう一方には、それ以外のブロックを表すブロック識別子を登録する(ステップS102)。
【0072】
スケジューリング部22は、ある修復ストリームで次にアクセスするディスクグループの番号をブロック修復リスト管理部25に渡して、次に修復すべきブロックを問い合わせる。それに対してブロック修復リスト管理部25は、そのディスクグループの供給中でないブロックのブロック修復予約リストの先頭に登録されているブロック識別子を取り出してスケジューリング部22に返す。このリストが空の場合には、供給中のブロックのブロック修復予約リストの最後に登録されているブロック識別子を選択する(ステップS106)。両方のリストが空の場合には、空を表すブロック識別子を返す。この場合には、修復ストリームはディスクアクセス、修復、書き込みの動作を行なわない。
【0073】
通常のストリームでの供給が終了した場合、そのストリームデータの中で実際に修復の行なわれなかったブロックを表すブロック識別子が供給中のブロックのブロック修復予約リストに登録されているので、そのブロック識別子を全て供給中でないブロックのブロック修復予約リストに移動する(ステップS102)。逆に、新しいストリームの供給が開始された場合には、そのストリームデータのブロックを表すブロック識別子を供給中でないブロックのブロック修復予約リストから供給中のブロック修復予約リストに移動する(ステップS101)。
【0074】
なお、ブロック修復予約リストの形態としては、各ブロック識別子の選択優先度が判別できる形態であれば良い。例えば、各ブロック識別子自体に優先度の情報を記録し、ブロック修復リスト管理部25がその優先度情報を参照できるのであれば、ディスクグループ毎に二種類のリストを持たずに済ませることも可能である。
【0075】
以上のように本実施形態によれば、通常のストリームで使用されていない余ったストリーム資源をディスクの修復のために最大限に利用しつつ、かつ新しいストリームの接続要求に対応して通常のストリームと修復ストリームの割合を変化させることが可能になる。
【0076】
従って、修復ストリームによるデータの修復中であっても、既接続のストリームによるクライアントへのデータ供給に影響を及ぼさず、かつ新しいストリームの接続に制限を設けずに、故障ディスク装置を含むディスクグループの転送能力を無駄なく有効に利用してディスク装置の故障により失われたデータの修復時間を短縮することが可能である。
【0077】
また、本実施形態によれば、現在供給されていないデータを修復ストリームで修復し、通常ストリームで供給しているデータをそのまま修復に利用することにより、修復完了時間をより短縮することができる。
【0078】
(第3の実施形態)
次に、第3の実施形態について説明する。
前述した第1、第2の実施形態では、バッファメモリ上での修復とスペアディスクへの書き込みのタイミングについては、図4に示すように、クライアントへの転送時間が開始されるまでにデータを修復し、転送時間が終了するまでにスペアディスクへの書き込みを行うものとして説明した。
【0079】
このタイミングで上記の修復処理を実行することにより、Rストリーム、RSストリームにおいて、バッファメモリ上にデータが滞在する時間が、Sストリームにおけるデータ滞在時間と同じまたはそれ以下になる。つまり、ストリーム1本当たりのバッファメモリの使用量に関しては、Sストリーム、Rストリーム、RSストリームの3種類のストリームで等しいと考えて良い。
【0080】
しかし、ハードウェアの構成によっては、この修復と書き込みのタイミングが異なる場合がある。例えば、データの格納方式としてRAID3を用いて、データの先頭からバッファメモリへの転送を行うようなハードウェア構成を採用した場合には、クライアントへの転送時間が終了した後でスペアディスクへの書き込みを実行する。
【0081】
以下では、上記のような場合に本発明を適用した実施形態について説明する。
図5に、本実施形態におけるタイミングチャートの例を示す。
図5(a)はSストリームのバッファメモリ利用に関するタイムチャートであり、図5(b)はRSストリームのバッファメモリ利用に関するタイムチャートである。ここでは、Sストリーム1本当たりブロック2個分のバッファメモリを割り当てる例を示している。
【0082】
図5(b)のようなタイミングで修復が行われる場合、SストリームよりもRSストリームおよびRストリームの方がスペアディスクへの書き込みを行う時間だけデータのバッファメモリ滞在期間が長くなる。つまり、ストリーム1本当たりのバッファメモリの使用量に関しては、Sストリームよりも、RSストリームおよびRストリームの方が、より多くの資源を必要とするということになる。
【0083】
図5(b)の例では、RSストリーム1本当たりブロック3個分のバッファメモリを使用する例を示している。
Sストリーム、RSストリーム、Rストリームの使用資源量に
Br=Brs=n×Bs
(BsはSストリーム1本で使用する資源量、BrはRストリーム1本で使用する資源量、BrsはRSストリーム1本で使用する資源量)
の関係があるとすると、各ストリームの本数の構成を動的に変化させる際には、各ストリームの数は、次式で示す条件を満たす必要がある。
【0084】
Nmax≧Ns+n×(Nrs+Nr)
(Nmaxは最大ストリーム数、NsはSストリームの本数、NrはRストリームの本数、NrsはRSストリームの本数)
第1、第2の実施形態において、例えば図4で示したタイミングで動作する場合、n=1であるので、SストリームまたはRSストリーム1本が終了すれば、解放された資源でRストリーム1本を実行できる。逆に、新ストリームの接続要求が到着した場合には、Rストリーム1本を解放することにより、SストリームまたはRSストリームを1本供給できる。
【0085】
これに対して、この第3の実施形態において、例えば図5で示したタイミングで動作するでは、バッファメモリ領域をブロック2個分から3個分に増やせば修復が可能となるので、n=1.5として、Ns+Nrsがデータを供給するストリームの本数となり、かつ、上記の条件を満たす範囲内でNs,Nrs,Nrを動的に決定すれば良い。
【0086】
本実施形態に係る実時間ストリームサーバの構成は図1と同様であり、詳細な説明は省略する。また、図6に本実施形態の動作のフローチャートの一例を示す。なお、図6中、第1、第2の実施形態の動作を示す図2、図3のフローチャートと同様の部分は同一の符号を付した。以下では、第1、第2の実施形態と相違する点を中心に説明する。
【0087】
本実施形態は、Sストリームを用いる点は、第1の実施形態と同様であり、RSストリームを用いる点は、第2の実施形態と同様であるが、RSストリームにおいて、ステップS210で、データ修復とクライアントへの転送を行った後に、ステップS105で、スペアディスクへの書き込みを実行する点が、第2の実施形態におけるRSストリームと相違する。
【0088】
また、本実施形態では、1つの通常ストリームを、動的にSストリームとRSストリームの間で遷移させる制御を行う点が、第1、第2の実施形態と相違する。
【0089】
より具体的には、以下で説明するステップS201〜S202の処理(1)〜処理(4)の部分が、第1、第2の実施形態と異なる。
(ステップS201の処理(1))
新しいストリームの接続要求があった場合、まず、各ストリームの本数に応じて、新ストリームをSストリームとして供給を行うか、RSストリームとして供給/(故障ディスクの)修復を同時に行うかを選択する。
【0090】
もし、要求されたストリームデータの最初に転送すべきブロックの修復が完了しておらず、かつ、未使用のストリーム資源からBrsの資源が確保できる場合または幾つかのRストリームを中断すればBrsの資源が確保できる場合には、新ストリームをRSストリームとし、(後者の場合、幾つかのRストリームを中断した後、)新ストリームに資源を割り当てる。
【0091】
一方、上記以外の場合には、新ストリームは、Sストリームとする。ただし、他のRSストリームが存在し、幾つかのRストリームを中断するだけではBrの資源が確保できない場合には、さらに、既存のRSストリームをSストリームに変更して、不要になったストリーム資源(Brs−Bs)を解放する。
【0092】
なお、既存のRストリームとRSストリームを全て中断してもBrの資源が確保できない場合には、新ストリームの接続要求を受理することはできない。
(ステップS202の処理(2))
SストリームまたはRSストリームによるデータの供給が終了した場合、割り当てられていたストリーム資源を解放する。そして、解放されたストリーム資源を含めて、未使用の資源を新Rストリームに割り当てる。
【0093】
(ステップS203の処理(3))
Sストリームでのデータの供給中において、次のブロックが未修復であり、かつ、幾つかのRストリームを中断することによってBrsの資源が確保できる場合には、幾つかのRストリームを中断して、そのSストリームをRSストリームに変更する。
【0094】
(ステップS204の処理(4))
RSストリームでのデータ供給中において、そのRSストリームでスペアディスクへ書き込むべきブロックがバッファメモリ上になく、かつ、次のブロックが修復済みである場合には、そのRSストリームをSストリームに変更して、不要になったストリーム資源(Brs−Bs)を解放する。そして、解放されたストリーム資源を含めて、未使用の資源を新Rストリームに割り当てる。
【0095】
以上のように本実施形態によれば、通常のストリームで使用されていない余ったストリーム資源をディスクの修復のために最大限に利用しつつ、かつ新しいストリームの接続要求に対応して通常のストリームと修復ストリームの割合を変化させることが可能になる。
【0096】
従って、修復ストリームによるデータの修復中であっても、既接続のストリームによるクライアントへのデータ供給に影響を及ぼさず、かつ新しいストリームの接続に制限を設けずに、故障ディスク装置を含むディスクグループの転送能力を無駄なく有効に利用してディスク装置の故障により失われたデータの修復時間を短縮することが可能である。
【0097】
また、本実施形態によれば、現在供給されていないデータを修復ストリームで修復し、可能な限り通常ストリームで供給しているデータをそのまま修復に利用することにより、修復完了時間をより短縮することができる。
【0098】
なお、ストリーム資源が必要になり、Rストリームを中断すると、中断のタイミングによっては、そのRストリームにおいて読み出したデータをバッファメモリ上で修復する以前あるいは修復したデータをスペアディスクへ書き込む以前に資源を解放することになる場合がある。そこで、Rストリームを解放する必要がある場合には、バッファメモリへのデータの読み出しは完了したが未だ修復/書き込みを行っていないブロックが少ないRストリームから順に中断して資源を解放すると良い。
【0099】
ところで、未修復のブロックと修復済みのブロックが複雑に入り混じったストリームデータが生じる可能性がある。このようなストリームデータをRSストリームで修復する場合には、RSストリームとSストリームの切替が頻繁に生じる。すると、切替えの度に中断されるRストリームが生じて、修復途中のブロックが無駄になるばかりか、RS/Sストリームの切替のオーバーヘッドが大きくなる可能性がある。
【0100】
このような問題が生じるときには、上記のステップS204の処理(4)におけるRSストリームをSストリームに変更する条件を、例えば次のように変更すると良い。
【0101】
(ステップS204の処理(4))
RSストリームでのデータ供給中において、そのRSストリームで、L個連続して既に修復済みのブロックをクライアントに供給した場合には、そのRSストリームをSストリームに変更する。
不要になったストリーム資源(Brs−Bs)は解放し、解放されたストリーム資源を含めて、未使用の資源を新Rストリームに割り当てる。
【0102】
これにより、RSストリームとSストリームの間の切替の回数を抑えることができる。
なお、図6は、修復すべきブロックの選択優先度を用いない場合の手順であるが、第2の実施形態と同様に修復すべきブロックの選択優先度を用いても良い。本実施形態では、通常ストリームとしてスペアディスクへの書き込みを行わないSストリームとスペアディスクへの書き込みを行うRSストリームが存在するが、ここでは、各々の通常ストリームで供給されているストリームデータの選択優先度を画一的に下げる。この場合の手順の一例を図7に示す。
【0103】
また、本実施形態において、第2の実施形態のように、Sストリームは用いず、RSストリームを固定的に用いるようにしても良い。この場合、図6や図7で説明した手順から、Sストリームに関する部分を削除すれば良い。
【0104】
また、前述したようにクライアントへの転送時間が開始されるまでにデータを修復し、転送時間が終了するまでにスペアディスクへの書き込みを行う第2の実施形態において、RSストリームに必要な資源が、Sストリームに必要な資源を上回るような場合には、第3の実施形態のように、SストリームとRSストリームを動的に変更するようにしても良い。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0105】
【発明の効果】
本発明によれば、修復すべきブロックについてリストを作成するなどして管理し、通常ストリームには必要に応じて修復ストリームを中断してストリーム資源を優先的に割り当て、修復ストリームには未使用のストリーム資源をできるかぎり割り当てられるようにし、修復ストリームは上記リストを参照するなどして修復を行なうようにしたので、修復ストリームによるデータの修復中であっても、既接続のストリームによるクライアントへのデータ供給に影響を及ぼさず、かつ新しいストリームの接続に制限を設けずに、ストリーム資源を無駄なく有効に利用することができ、ディスク装置の故障により失われたデータの修復時間を短縮することが可能である。
【0106】
また、現在供給されていないデータを修復ストリームで修復し、通常ストリームで供給しているデータをそのまま修復に利用すれば、修復完了時間をさらに短縮することができる。
【図面の簡単な説明】
【図1】本発明の第1、第2および第3の実施形態に係る実時間ストリームサーバのディスク修復装置を示す図
【図2】本発明の第1の実施形態の動作を示すフローチャート
【図3】本発明の第2の実施形態の動作を示すフローチャート
【図4】スケジューリングされた通常ストリームのバッファメモリ利用状況と動作のタイミングを説明するための図
【図5】本発明の第3の実施形態において、スケジューリングされた通常ストリームのバッファメモリ利用状況と動作のタイミングを説明するための図
【図6】本発明の第3の実施形態の動作を示すフローチャート
【図7】本発明の第3の実施形態の他の動作を示すフローチャート
【符号の説明】
2…制御装置
21…接続要求処理部
22…スケジューリング部
23…修復ストリーム割り付け部
24…修復ストリーム解放部
25…ブロック修復リスト管理部
3…データ蓄積部
32…ディスク装置
4…バッファメモリ
5…データ転送部
6…故障検出部
Claims (7)
- 所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を接続し、クライアントからの要求に応じて要求されたデータをブロック単位に格納したディスク装置から読み出して要求元につながる通信路に送り出す実時間ストリームサーバの動作中に該ディスク装置の故障が検出された場合、故障したディスク装置に格納されていたセグメントを代替ディスク装置上に修復するディスク修復方法において、
修復すべきセグメントを含むブロックの情報を作成し、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当て、修復ストリームでは、前記情報により特定される未修復のブロックを逐次選択し、代替ディスク装置上にセグメントの修復を行ない、修復ストリームの実行中に新たにストリームの接続要求が到着した場合、全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームに割り当て、
前記ストリームによるデータの供給にあたっては、各ブロックの転送に先だって、次に転送すべきブロックがまだ修復されておらず、かつ、ストリーム資源が確保可能であるか否か調べ、両条件が成立する場合は、修復したセグメントを代替ディスク装置に書き込むことを特徴とする実時間ストリームサーバのディスク修復方法。 - 前記修復ストリームでは、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくことを特徴とする請求項1に記載の実時間ストリームサーバのディスク修復方法。
- クライアントへのデータ転送に用いるストリームが終了した場合、終了した該ストリームのストリーム資源を修復のために用いるストリームに割り当てることを特徴とする請求項1または2に記載の実時間ストリームサーバのディスク修復方法。
- クライアントから要求されたデータを、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を持つデータ蓄積部からブロック単位に読み出してバッファメモリ上に一時的に保持し、ネットワークを介してクライアントに転送する手段と、この手段による読み出しおよび転送の動作タイミングをスケジューリングする制御手段とを備えた実時間ストリームサーバにおける、故障が検出されたディスク装置の内容を修復するディスク修復装置において、
修復すべきセグメントの属するブロックの情報を管理する手段と、
ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当てる手段と、
前記修復ストリームにより、前記情報により特定されるブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを代替ディスク装置へ転送する修復手段と、
新ストリームの接続要求時に全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームで利用可能にする手段と、
前記修復ストリーム以外のストリームにより、修復すべき前記ブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを含むブロックをネットワークへ転送する転送手段とを備え、
前記ストリームによるデータの供給にあたっては、各ブロックの転送に先だって、次に転送すべきブロックがまだ修復されておらず、かつ、ストリーム資源が確保可能であるか否か調べ、両条件が成立する場合は、修復したセグメントを代替ディスク装置に書き込むことを特徴とする実時間ストリームサーバのディスク修復装置。 - 前記修復手段は、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくことを特徴とする請求項4に記載の実時間ストリームサーバのディスク修復装置。
- 所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を接続し、クライアントからの要求に応じて要求されたデータをブロック単位に格納したディスク装置から読み出して要求元につながる通信路に送り出す実時間ストリームサーバの動作中に該ディスク装置の故障が検出された場合、故障したディスク装置に格納されていたセグメントを代替ディスク装置上に修復するディスク修復方法において、
修復すべきセグメントを含むブロックの情報を作成し、ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当て、修復ストリームでは、前記情報により特定される未修復のブロックを逐次選択し、代替ディスク装置上にセグメントの修復を行ない、修復ストリームの実行中に新たにストリームの接続要求が到着した場合、全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームに割り当て、
前記修復ストリームでは、前記情報から参照した選択優先度に基づいて次に修復すべきブロックを選択するとともに、
クライアントに供給中のデータに対応する全ブロックの前記選択優先度を低くしておくことを特徴とする実時間ストリームサーバのディスク修復方法。 - クライアントから要求されたデータを、所定個数のデータセグメントとパリティセグメントからなるブロックを分散して格納するための複数のディスク装置を持つデータ蓄積部からブロック単位に読み出してバッファメモリ上に一時的に保持し、ネットワークを介してクライアントに転送する手段と、この手段による読み出しおよび転送の動作タイミングをスケジューリングする制御手段とを備えた実時間ストリームサーバにおける、故障が検出されたディスク装置の内容を修復するディスク修復装置において、
修復すべきセグメントの属するブロックの情報を管理する手段と、
ストリームに用いる計算機資源であるストリーム資源のうち、未使用のストリーム資源の全部または一部を、データを修復し代替ディスク装置へ書き戻す修復ストリームに割り当てる手段と、
前記修復ストリームにより、前記情報により特定されるブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを代替ディスク装置へ転送する修復手段と、
新ストリームの接続要求時に全部または一部の修復ストリームによる修復を中断して解放されたストリーム資源を新ストリームで利用可能にする手段と、
前記修復ストリーム以外のストリームにより、修復すべき前記ブロックに属するセグメントをディスク装置から読み出し、故障が検出されたディスク装置に格納されていたセグメントを前記バッファメモリ上で修復し、修復したセグメントを含むブロックをネットワークへ転送する転送手段とを備え、
前記修復手段は、前記情報から参照した選択優先度に基づいて次に修復すべきブロック を選択するとともに、クライアントに供給中のデータに対応する全ブロックの前記選択優先度をクライアントに供給中でないデータに対応するブロックの前記選択優先度より低くしておくことを特徴とする請求項4に記載の実時間ストリームサーバのディスク修復装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20864896A JP3617879B2 (ja) | 1995-09-12 | 1996-08-07 | 実時間ストリームサーバのディスク修復方法及びディスク修復装置 |
US08/712,966 US6067636A (en) | 1995-09-12 | 1996-09-12 | Real time stream server using disk device data restoration scheme |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7-234403 | 1995-09-12 | ||
JP23440395 | 1995-09-12 | ||
JP20864896A JP3617879B2 (ja) | 1995-09-12 | 1996-08-07 | 実時間ストリームサーバのディスク修復方法及びディスク修復装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004242739A Division JP3967739B2 (ja) | 1995-09-12 | 2004-08-23 | 実時間ストリームサーバ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09138734A JPH09138734A (ja) | 1997-05-27 |
JP3617879B2 true JP3617879B2 (ja) | 2005-02-09 |
Family
ID=26516962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20864896A Expired - Fee Related JP3617879B2 (ja) | 1995-09-12 | 1996-08-07 | 実時間ストリームサーバのディスク修復方法及びディスク修復装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6067636A (ja) |
JP (1) | JP3617879B2 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594953B1 (ko) * | 1997-08-20 | 2006-07-03 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 다중레벨의 하우스키핑을 위해 적합한 소프트웨어 관리 기능을 갖는 임시 데이터스트림 신호처리 버퍼 메모리 구조 |
US6311297B1 (en) | 1997-10-23 | 2001-10-30 | Sony Corporation | Apparatus and method for mapping an image to blocks to provide for robust error recovery in a lossy transmission environment |
US6581170B1 (en) | 1997-10-23 | 2003-06-17 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US6282684B1 (en) | 1997-10-23 | 2001-08-28 | Sony Corporation | Apparatus and method for recovery of data in a lossy transmission environment |
JPH11234627A (ja) * | 1998-02-17 | 1999-08-27 | Sony Corp | データ再生装置及び方法 |
US6307979B1 (en) | 1999-02-12 | 2001-10-23 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6418548B1 (en) * | 1999-02-12 | 2002-07-09 | Sony Corporation | Method and apparatus for preprocessing for peripheral erroneous data |
US6621936B1 (en) | 1999-02-12 | 2003-09-16 | Sony Corporation | Method and apparatus for spatial class reduction |
US6519369B1 (en) | 1999-02-12 | 2003-02-11 | Sony Corporation | Method and apparatus for filter tap expansion |
US7010737B2 (en) * | 1999-02-12 | 2006-03-07 | Sony Corporation | Method and apparatus for error data recovery |
US6170074B1 (en) | 1999-02-12 | 2001-01-02 | Sony Corporation | Source coding to provide for robust error recovery |
US6535148B1 (en) | 1999-02-12 | 2003-03-18 | Sony Corporation | Method and apparatus for truncated decoding |
US6307560B1 (en) | 1999-02-12 | 2001-10-23 | Sony Corporation | Classified adaptive spatio-temporal format conversion method and apparatus |
US6591398B1 (en) | 1999-02-12 | 2003-07-08 | Sony Corporation | Multiple processing system |
US6363118B1 (en) | 1999-02-12 | 2002-03-26 | Sony Corporation | Apparatus and method for the recovery of compression constants in the encoded domain |
US6473876B1 (en) | 1999-06-29 | 2002-10-29 | Sony Corporation | Method and apparatus for encoding of bitstreams using rotation |
US6493842B1 (en) | 1999-06-29 | 2002-12-10 | Sony Corporation | Time-varying randomization for data synchronization and implicit information transmission |
US6549672B1 (en) * | 1999-06-29 | 2003-04-15 | Sony Corporation | Method and apparatus for recovery of encoded data using central value |
US6389562B1 (en) | 1999-06-29 | 2002-05-14 | Sony Corporation | Source code shuffling to provide for robust error recovery |
US6351494B1 (en) | 1999-09-24 | 2002-02-26 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6522785B1 (en) | 1999-09-24 | 2003-02-18 | Sony Corporation | Classified adaptive error recovery method and apparatus |
US6539517B1 (en) | 1999-11-09 | 2003-03-25 | Sony Corporation | Data transformation for explicit transmission of control information |
US6754371B1 (en) | 1999-12-07 | 2004-06-22 | Sony Corporation | Method and apparatus for past and future motion classification |
US7539735B2 (en) * | 2002-03-06 | 2009-05-26 | International Business Machines Corporation | Multi-session no query restore |
US6971042B2 (en) * | 2002-04-18 | 2005-11-29 | Huge Systems, Inc. | Media server with single chip storage controller |
AU2004281833B2 (en) * | 2003-10-17 | 2010-07-01 | Covidien Lp | Surgical stapling device |
JP2008228243A (ja) * | 2007-03-16 | 2008-09-25 | Nippon Telegr & Teleph Corp <Ntt> | 映像再生装置およびリビルド処理方法 |
US8204863B2 (en) * | 2009-12-21 | 2012-06-19 | International Business Machines Corporation | Multi-phase file system restore with selective on-demand data availability |
US8341457B2 (en) * | 2010-03-11 | 2012-12-25 | Lsi Corporation | System and method for optimizing redundancy restoration in distributed data layout environments |
JP2012221340A (ja) * | 2011-04-12 | 2012-11-12 | Fujitsu Ltd | 制御方法及びプログラム、並びにコンピュータ |
US10381073B1 (en) | 2018-03-20 | 2019-08-13 | Micron Technology, Inc. | Converged structure supporting buffering of recent writes and overwrite disturb remediation |
US10802907B2 (en) * | 2018-03-20 | 2020-10-13 | Micron Technology, Inc. | Hierarchical buffering scheme to normalize non-volatile media raw bit error rate transients |
US11329813B2 (en) * | 2019-11-11 | 2022-05-10 | At&T Intellectual Property I, L.P. | Secure data storing and retrieval system and method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537566A (en) * | 1991-12-17 | 1996-07-16 | Fujitsu Limited | Apparatus and method for controlling background processing in disk array device |
US5398253A (en) * | 1992-03-11 | 1995-03-14 | Emc Corporation | Storage unit generation of redundancy information in a redundant storage array system |
JP3575811B2 (ja) * | 1992-05-07 | 2004-10-13 | 株式会社日立製作所 | 記憶装置 |
US5418925A (en) * | 1992-10-23 | 1995-05-23 | At&T Global Information Solutions Company | Fast write I/O handling in a disk array using spare drive for buffering |
US5522031A (en) * | 1993-06-29 | 1996-05-28 | Digital Equipment Corporation | Method and apparatus for the on-line restoration of a disk in a RAID-4 or RAID-5 array with concurrent access by applications |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
JPH08147234A (ja) * | 1994-11-17 | 1996-06-07 | Fujitsu Ltd | ストリーム処理装置及び方法 |
US5592612A (en) * | 1995-04-28 | 1997-01-07 | Birk; Yitzhak | Method and apparatus for supplying data streams |
-
1996
- 1996-08-07 JP JP20864896A patent/JP3617879B2/ja not_active Expired - Fee Related
- 1996-09-12 US US08/712,966 patent/US6067636A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09138734A (ja) | 1997-05-27 |
US6067636A (en) | 2000-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3617879B2 (ja) | 実時間ストリームサーバのディスク修復方法及びディスク修復装置 | |
JP3563541B2 (ja) | データ格納装置及びデータ格納方法 | |
US5991804A (en) | Continuous media file server for cold restriping following capacity change by repositioning data blocks in the multiple data servers | |
US7644136B2 (en) | Virtual file system | |
US5938734A (en) | Real time stream server for handling a plurality of real time stream data with different data rates | |
US9432460B2 (en) | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner | |
US6718404B2 (en) | Data migration using parallel, distributed table driven I/O mapping | |
US5956321A (en) | Stream scheduling system for real time stream server | |
US6912669B2 (en) | Method and apparatus for maintaining cache coherency in a storage system | |
EP0727745A1 (en) | Memory control apparatus and its control method | |
US20060129778A1 (en) | Apparatus, system, and method for managing storage space allocation | |
JPH09128163A (ja) | アーカイブ装置及びデータファイルサーバ | |
CN101753936B (zh) | 一种视频监控系统的存储空间的配置方法和视频服务器 | |
WO1999034291A1 (en) | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner | |
JP2017134817A (ja) | 分散キャッシュメモリにおける適応分割用のシステム及び方法 | |
JP5549243B2 (ja) | ストレージ装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム | |
EP0737929B1 (en) | Stream scheduling system for real time stream server | |
JP3967739B2 (ja) | 実時間ストリームサーバ | |
JP5313980B2 (ja) | ディスク管理システム、ディスク管理装置、ディスク管理方法 | |
JPH0981491A (ja) | ネットワークビデオサーバ、クライアント装置及びマルチメディア情報提供方法 | |
CN109831391A (zh) | 分布式存储系统中流控的方法、存储设备和系统 | |
JP2016071768A (ja) | ストレージ制御装置およびストレージシステム | |
CN105335101A (zh) | 一种数据处理方法和系统 | |
US10983710B1 (en) | Uneven distributed storage across a mesh fabric storage system | |
JP4537724B2 (ja) | ソフトウェア更新方法及びソフトウェア更新プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040823 |
|
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: 20041102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041105 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071119 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111119 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121119 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |