(57)【特許請求の範囲】
【請求項１】
N台のディスクから構成される外部記憶装置を備えたファイルサーバであって、
仮想的に１つのディスクとみなされて並列にアクセスされるディスク群で構成されるグループと、前記各グループを逐次に巡回アクセスする順番と、巡回時の遷移速度とで定義される、階層構造のグループレベルを有し、何れかの前記グループレベルを選択してN台全てのディスクに順にアクセスするアクセス手段を有し、
前記階層構造における、より下位のグループレベルは、より上位のグループレベルを構成するグループを細分化したグループにより構成され、
下位のグループレベルの前記遷移速度、前記順番は上位のグループレベルの定義内容と同じであり、
前記アクセス手段は異なるグループレベルを用いたアクセスを特定のディスクに集中しないようにすることを特徴とするファイルサーバ。
【請求項２】
前記各階層のグループが有するディスク数および前記Nは、それぞれ２の自然数乗であることを特徴とする請求項１記載のファイルサーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータの正当性に加えて、再生時の時間的な正当性を要求する連続メディアデータを扱うためのファイルサーバに関する。
【０００２】
【従来の技術】
従来のＵＮＩＸにおけるファイルシステムでは、ディスクの記憶空間は物理的に連続したセクタの集合で、固定長の物理ブロック単位で管理され、この物理ブロックがディスクからのｒｅａｄ／ｗｒｉｔｅ、ならびにファイルへの割当ての単位となっている。
【０００３】
データは物理ブロックと同一長の論理ブロックに分割され、この論理ブロックが適当な物理ブロックに割り当てられて記憶される。このとき、論理ブロックから物理ブロックへの変換はｉノードと呼ばれるテーブルによって行われる。テーブル中には物理ブロックの直接アドレスと間接アドレスが書き込まれている。直接アドレスの場合、ｉノードへの１回のアクセスによって物理ブロックのアドレスを得ることが可能である。一方、間接アドレスの場合は、そのワードが指し示す物理ブロックをフェッチしてくることによって、実際のデータが書き込まれた物理ブロックのアドレスを得ることができる。さらに、間接アドレスが３次，４次，．．．となると、先の操作を繰り返す必要があり、その都度ディスクアクセスが発生する。
【０００４】
ｉノードを利用したディスクアクセスの場合、ファイルサイズが小さい場合は直接アドレスで変換可能であるが、ファイルサイズが大きくなると間接アドレスを多用することになる。一般に、従来のＵＮＩＸで扱ってきたデータはテキストデータに代表されるデータであり、そのサイズも大半が１０Ｋバイトを越えないといった研究もなされている。このため、先述したようなメカニズムによるファイルへのアクセス方式でもそのオーバーヘッドは問題にならなかった。
【０００５】
また、ＵＮＩＸではディスクアクセスのオーバーヘッドを削減するために、バッファキャッシュが実装されている。これはデータアクセスに対する空間的、時間的な局所性を生かしたもので、一旦ディスクからフェッチした物理ブロックはメモリ上にキープしておき、これを再利用するためのメカニズムであり、これによってディスクへのアクセス頻度を削減してデータアクセスのオーバーヘッドを削減できる。
【０００６】
さらに、テキストデータはデータの正当性のみを要求し、時間的な正当性を要求しない。したがって、特定のディスクにアクセスが集中して、読み出し要求に対する応答速度が遅くなっても特に大きな問題ではなかった。
【０００７】
【発明が解決しようとする課題】
しかしながら、連続メディアデータは従来のテキストデータと違って、データの正当性に加えて、再生時の時間的な正当性を要求するデータであり、その特徴として、
・データのサイズが桁違いに大きい。
【０００８】
・データのアクセスに対する時間的・空間的な局所性がない。
・データのアクセスに対する連続性、あるいは予測可能性がある
といった点を挙げることができ、従来のテキストデータのようなデータをターゲットとしたファイルサーバで扱うには問題が大きい。
【０００９】
例えば、データのサイズが桁違いに大きいので、従来のｉノードによるアドレス変換では最終的な物理ブロックへのポインタを得るまでに数回間接アドレスを手繰る必要があり、その度にディスクアクセスが必要である。
【００１０】
また、データのアクセスに対しては、時間的・空間的な局所性がないということは、つまり、先のサイクルで読みだした物理ブロックは次のサイクルにおいては必要でない可能性が非常に高いということである。逆にアクセスに対する連続性・予測可能性が高いので、これを生かすためにバッファキャッシュのようなメカニズムよりもデータをプリフェッチするメカニズムの方が有効であることになる。データをプリフェッチするためにはディスク上でリニアに配置された方が都合が良いが、ｉノードによる変換方式では、あるファイルに割り当てられる物理ブロックはディスク上の記憶空間上で離散的に置かれることになり、先述したデータのアクセスに対する連続性、予測可能性を生かせない。
【００１１】
本発明は上記のような問題を鑑みてなされたものであり、連続メディアデータの特徴を生かしたファイルサーバを提供することを目的としている。
【００１２】
【課題を解決するための手段】
この目的を達成するため、本願発明はN台のディスクから構成される外部記憶装置を備えたファイルサーバであって、仮想的に１つのディスクとみなされて並列にアクセスされるディスク群で構成されるグループと、前記各グループを逐次に巡回アクセスする順番と、巡回時の遷移速度とで定義される、階層構造のグループレベルを有し、何れかの前記グループレベルを選択してN台全てのディスクに順にアクセスするアクセス手段を有し、前記階層構造における、より下位のグループレベルは、より上位のグループレベルを構成するグループを細分化したグループにより構成され、下位のグループレベルの前記遷移速度、前記順番は上位のグループレベルの定義内容と同じであり、前記アクセス手段は異なるグループレベルを用いたアクセスを特定のディスクに集中しないようにすることを特徴とする。
【００２４】
【発明の実施の形態】
本発明の一実施の形態のファイルサーバについて、図面を参照しながら説明する。
【００２５】
（実施の形態１）
図１は本発明の第１の実施の形態のファイルサーバのシステム構成を示すブロック図である。ＣＰＵ１とメモリ３とこれらと拡張バス４を接続するバスブリッジ２から構成される一般的なパーソナルコンピュータ（ＰＣ）の構成であって、拡張バス４にはｎ個のディスクインターフェース（５〜８）が接続され、そして、それぞれのディスクインターフェースにｍ台のディスクが接続されて、合計Ｎ＝ｎ×ｍ台のディスクによって外部記憶装置１０が構成されている。また、ユーザーへのデータの配信と外部記憶装置１０へのデータの格納のために拡張バス４に入出力装置９を接続している。
【００２６】
外部記憶装置１０に格納された連続メディアデータはＣＰＵ１の制御によって読み出されて、一時的にメモリ上に置かれ、あるいは直接に、入出力装置９に送り込まれ、その後ユーザーに配信される。
【００２７】
図２は本実施の形態のファイルサーバにおけるにおけるディスクグループの編成を示すブロック図である。外部記憶装置はＮ台のディスクから構成されるが、ここでは説明のためにｎ＝ｍ＝４とし、合計１６台のディスクによって構成されているものとしている。また、Ｌ→Ｄの対応は（数１）に示す関数によって定義しているが、必ずしもこの数式に拘る必要はない。図２中で一つのマスが１個のディスクを表し、太線枠で囲まれたものが一つのディスクグループである。
【００２８】
【数１】
0003570050.tif 000002
【００２９】
グループ化レベル：Ｌと各々のグループ化レベルにおけるグループ化ディスク数：Ｄを（表１）に示す。
【００３０】
【表１】
0003570050.tif 000003
【００３１】
（表１）ではグループ化レベルが２の場合、１６個のディスクを２個づつグループ化し、合計８個のグループができることを示している。
【００３２】
グループ化されたディスクは仮想的に一個のディスクとみなし、データのアクセス単位によってグループ化レベルを変化させて、様々なアクセス単位のデータに対応可能とする。
【００３３】
（実施の形態２）
図３は本発明の第２の実施の形態を示すブロック図である。図３は４×４個のディスクに対して、グループ化レベル３でグループ化する場合について書いている。グループを構成するディスクは並列にアクセスする。これによって、（一つのディスクからの読みだしレート）×（ディスク数）の読みだしレートを確保することが可能となる。また、グループを逐次的に、かつ全体として周期的にアクセスすることにより特定のディスクへのアクセスの偏りを避けることができる。
【００３４】
（実施の形態３）
図４は本発明の第３の実施の形態を示すブロック図であって、連続メディアデータを分割し、これをディスクグループへ割当てる方法を示したものである。
まず、連続メディアデータはブロック単位に分割し、先頭から順にブロック番号を振る。
次に、連続メディアデータのビットレートによって割り当て先のディスクのグループ化レベルを決定する。（表２）はその対応についての一例を示したものである。
【００３５】
【表２】
0003570050.tif 000004
【００３６】
対応するグループ化レベルが決定したら、そのグループ化レベルにおけるグループ数：ＧＮで、ブロック番号を割り、その剰余によってブロックをクラス分けして割り当て先のグループを決定する。
【００３７】
ブロックの割り当て先をビットレートによって決まるグループとすることによるメリットの一つにディスクを拡張した場合のデータの互換性が挙げられる。４×４のディスク構成から１行分のディスクを増設して、５×４のディスク構成とした場合、グループの編成が変わるだけであって、データのフォーマットそのものには何ら影響がない。したがって、ディスクの拡張が行なわれた場合には、編成の変更に合わせてデータブロックを移動させてやれば良いのであって、データそのものを作り直す必要がない。
【００３８】
（実施の形態４）
図５は本発明の第４の実施の形態を示すブロック図であって、ディスクの記憶空間をパッケージ単位に分割し、このパッケージを連続メディアデータへの割り当ての単位とすることを示したものである。
【００３９】
図５に示すように、Ｎ台のディスクから構成される外部記憶装置において、それぞれのディスクの記憶容量をＭバイト、ディスク上で物理的に連続した領域をセグメント、そのサイズをＳバイトとするとき、それぞれのディスク上の記憶空間をＭ／Ｓ個のセグメントに分割する。さらにディスク間で同一のアドレスにあるセグメントを横断的に一くくりにしたＳ×Ｎバイトの領域をパッケージとする。連続メディアデータを外部記憶装置に書き込む際にはこのパッケージをファイルに対するディスク空間の割当ての単位とし、ｒｅａｄ／ｗｒｉｔｅの単位である物理ブロックとは切り離す。
【００４０】
ディスク空間の管理単位をパッケージとすることは、連続メディアデータの記憶媒体の容量がギガオーダーになることが通常でありがちなファイルサーバにとって、管理テーブルを小さくでき、システム領域として必要なメモリの節約に継る。また、様々なビットレートの連続メディアデータをターゲットとするファイルサーバにとって、一定時間にアクセスされるデータのアクセス単位はビットレートによって定義する方が都合が良いが、ディスク空間の割り当ての単位もデータによって変化するとディスク空間のフラグメンテーションの問題が残る。したがって、ｒｅａｄ／ｗｒｉｔｅの単位とディスク空間の割当ての単位を分離することはフラグメンテーションの問題を解決し、かつ、様々なビットレートのデータを扱う上で最も都合の良い選択子であるといえる。
【００４１】
（実施の形態５）
図６は本発明の第５の実施の形態を示すフローチャート図であって、連続メディアデータを記憶するために割り当てられたパッケージに対して、ブロックを書き込む際のアルゴリズムを示している。
【００４２】
パッケージには各々のディスク内で一元的に付与されたセグメント番号：ｓｎと、ディスクに一元的に付与されたディスク番号：ｄｎとセグメントの先頭アドレスからのオフセット値：ｏｆｆｓｅｔによってアドレス（ｐｎ，ｏｆｆｓｅｔ，ｄｎ）が振られていて、このアドレスが指し示すポイントからデータのｒｅａｄ／ｗｒｉｔｅを行なう。
【００４３】
まず、最初のブロックはアドレス（ｓｎ，ｏｆｆｓｅｔ，ｄｎ）の示す領域に書き込む。次にブロック番号を＋１する。アドレスはｄｎを＋１し、ｄｎがＮを越えない場合はディスク番号だけが違う領域にブロックを書き込む。このとき、ｄｎがＮを越えた場合は、一旦ｄｎをクリアし、ｏｆｆｓｅｔにブロックサイズを加算する。
【００４４】
そして、ｏｆｆｓｅｔがセグメントサイズを越えない場合は、（ｓｎ，ｏｆｆｓｅｔ，ｄｎ）の示す領域にブロックを書き込む。また、このとき、ｏｆｆｓｅｔがセグメントサイズを越えた場合は、パッケージがフルの状態であり、新しいパッケージを獲得してブロックの書き込みを続ける。
【００４５】
本方法によって、ブロックはパッケージ上で論理的に連続して配置されることになる。したがって、次のサイクルで必要なブロックのアドレスを得ることが比較的容易に可能であるので、連続メディアデータのアクセスの連続性・予測可能性を生かしやすい。
【００４６】
（実施の形態７）
図７は各々のグループ化レベルのディスクグループ群中でのグループの読み出し順序を定義したものである。図中の数字はそのグループ化レベルにおけるグループの読み出し順序を表し、サービスサイクル：ｔにおいて、１のグループを読みだした場合は、ｔ＋１においては２のグループを読み出すことを示している。数字は周期的に使用する。レベル５においては、毎サイクル全てのディスクが並列アクセスされることになる。
【００４７】
図８は図７で定義された順序にしたがって、２つの異なるグループ化レベルに対応するデータを読み出す場合のディスクアクセスの順序を示すブロック図である。図７から明らかなようにグループ化レベルの異なる連続メディアデータを読み出す場合でも、ディスク間の遷移速度が等価である。これは、つまり、ｔ＝０で２つのデータを読み出し可能であるならば、あらゆるサイクルでデータの読み出しが可能であることを意味している。図７の示すルールに従わない場合、最悪の場合、グループ化レベルの異なる２つ以上のデータを読み出すと、グループ化レベル毎のディスクアクセス周期の最小公倍数毎にアクセスが特定のディスクに集中する。しかしながら、図７に示した順序によって、外部記憶装置をアクセスする場合、あるディスクグループのあるディスクからのデータ読み出し量は次のサイクルに於て隣のディスクグループ内のディスクに継承される。したがって、あるディスクから複数のデータを読み出し可能であるならば、サービスサイクルが変わっても常に読み出し可能となる。
【００４８】
本発明の有利な点は、ディスクアクセスに関して特定の周期で特定のディスクに対するアクセスの集中を回避できるため、ある時間においてすべてのディスクから要求されたデータを一定時間内に読みだし可能であるならば、それ以後いかなる時間においてもすべてのディスクから要求されたデータが読みだし可能であるということである。
【００４９】
連続メディアデータを扱うファイルサーバにおいては、一定時間内に要求されたデータを外部記憶装置から読み出すことが重要であり、それが不可能であるということは、データの再生時に映像が乱れるなどのエラーを引き起こすことに継り、致命的である。
【００５０】
【発明の効果】
本願によって開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
【００５１】
すなわち、グループ化レベル毎にディスクグループ単位でブロックの読み出しを行うことで、異なるビットレートのデータであっても、ディスクの遷移速度が等価となり、特定のディスクへのアクセスの集中が回避できる。
【図面の簡単な説明】
【図１】本発明のファイルサーバのシステム構成を示すブロック図
【図２】本発明の第１の実施の形態を示すブロック図
【図３】本発明の第２の実施の形態を示すブロック図
【図４】本発明の第３の実施の形態を示すブロック図
【図５】本発明の第４の実施の形態を示すブロック図
【図６】本発明の第５の実施の形態を示すブロック図
【図７】本発明の第６の実施の形態を示すブロック図
【図８】同実施の形態における動作を示す遷移図
【符号の説明】
１  ＣＰＵ
２  メモリ
３  バスブリッジ
４  拡張バス
５  ディスクインターフェース
６  ディスクインターフェース
７  ディスクインターフェース
８  ディスクインターフェース
９  入出力装置
１０  外部記憶装置
【図１】
0003570050.tif 000005
【図２】
0003570050.tif 000006
【図３】
0003570050.tif 000007
【図４】
0003570050.tif 000008
【図５】
0003570050.tif 000009
【図６】
0003570050.tif 000010
【図７】
0003570050.tif 000011
【図８】
0003570050.tif 000012