JP4154893B2 - ネットワークストレージ仮想化方法 - Google Patents

ネットワークストレージ仮想化方法 Download PDF

Info

Publication number
JP4154893B2
JP4154893B2 JP2002013652A JP2002013652A JP4154893B2 JP 4154893 B2 JP4154893 B2 JP 4154893B2 JP 2002013652 A JP2002013652 A JP 2002013652A JP 2002013652 A JP2002013652 A JP 2002013652A JP 4154893 B2 JP4154893 B2 JP 4154893B2
Authority
JP
Japan
Prior art keywords
network storage
network
directory
file
client
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
Application number
JP2002013652A
Other languages
English (en)
Other versions
JP2003216474A (ja
Inventor
真二 藤原
暢俊 佐川
上村  哲也
宏明 小田原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002013652A priority Critical patent/JP4154893B2/ja
Priority to US10/219,770 priority patent/US7587426B2/en
Publication of JP2003216474A publication Critical patent/JP2003216474A/ja
Application granted granted Critical
Publication of JP4154893B2 publication Critical patent/JP4154893B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークストレージの仮想化方法に関し、特に複数のファイルシステムをひとつに見せるための方法に関する。
【0002】
【従来の技術】
従来の情報処理システムでは、情報は計算機システムに直接接続されたストレージに格納されていた。ストレージに格納されている情報は直接接続されている計算機を介してのみアクセスすることが許されていたため、他の計算機システムからは前記直接接続されている計算機を経由してデータをアクセスする必要があった。しかしながら、近年のネットワーク技術の発達と格納すべき情報量の飛躍的な増大は情報を処理する計算機システムと情報を格納するストレージシステムの分離を促し、ストレージがネットワークに接続され、複数の計算機システムで共有できるようになってきた。このようなネットワークに接続されるストレージのことをネットワークストレージと呼ぶ。
このようなネットワークストレージの例としては、SAN(Storage Area Network)で接続されてブロックアクセスを提供するSANストレージ、IPネットワークやInfiniband等で接続されてファイルアクセスを提供するNAS(Network Attached Storage)、WebアクセスのインタフェースHTTPプロトコルやそれを拡張したプロトコルでのアクセス形態を提供するWebストレージなど、種々のネットワークストレージがある。
ネットワークストレージが普及するにつれ、システム管理者はネットワークに接続された複数のネットワークストレージを管理する必要がでてきた。例えば、格納すべきデータの量が既存のネットワークストレージの最大値を超えてしまうような場合には新たなネットワークストレージを追加し、データの再分配などのシステム再構築を行なう必要がある。ストレージ容量に対する需要の急激な伸びは度重なるシステム再構築を強いることとなり、システム管理コストを膨張させてきた。
システム管理コストを抑制するためには複数のネットワークストレージを計算機システムからは仮想的にひとつに見せ、新たな装置の追加を行なってもシステム全体に影響が及ばないようにするストレージの仮想化技術が必須となっている。このようなストレージの仮想化技術に関しては種々の方式が開発され、提案されている。
例えば、The Zebra Striped Network File System, Hartman et. al., ACM Transactions on Computer System, vol. 13, No. 3, 1995, pp. 274-310.には、ひとつのファイルを複数のネットワークストレージに分散格納する方式が記載される。ファイルは一定の長さ毎に分割され、ネットワークストレージにラウンド・ロビン方式で順次格納されている。ファイルがどのストレージにどのような順で分散格納されているか集中管理するサーバがあり、ファイルアクセス処理時にはこの管理サーバにファイルの格納位置に関する情報を問い合わせてからデータをアクセスするという特長を有する。すなわち、ファイルを複数のサーバに分散格納させて一つのサーバで集中管理することにより複数のネットワークストレージを仮想的に一つの大きいネットワークストレージに見せる効果を得ている。
また、米国特許第6,029,168号には上記の集中管理サーバ方式と異なる非集中管理サーバ方式によりファイルのストライピングを行なう方法が記載されている。この方式では、ファイル識別子にファイルのストライピング情報が格納されているスタータノード情報を埋め込むことによって、ストライピング情報を複数のネットワークストレージで分散管理している。ファイル識別子にスタータノードが格納されているため、ファイルアクセスの際にはまずスタータノードへアクセスを行ない、そこで、ファイルの格納位置を決定し必要があればアクセスすべきファイルの断片(ブロック)を格納しているサーバへアクセス要求を転送して処理することが特徴となっている。このため、クライアントは当該ファイルについてのアクセスはスタータノードへ要求を発行するだけで良く、ファイルのストライピングによる格納位置を考慮する必要がないという効果を得ている。
【0003】
【発明が解決しようとする課題】
前記The Zebra Striped Network File Systemに記載のシステムでは、アクセスするファイルの断片を格納するネットワークストレージを決定する際に集中管理サーバに問い合わせる必要があった。従って、ネットワークストレージの台数が増加すると集中管理サーバが隘路となり、システムのスケーラビリティの阻害要因となっていた。
また、米国特許第6,029,168号に記載の非集中管理サーバ方式では、管理サーバが複数のサーバに分散されている点では集中管理サーバの問題点を解決している。しかしながら、該システムではファイルアクセスする際にファイルを一意に特定するファイル名あるいはディレクトリ名とスタータノードが埋め込まれているファイル識別子との変換を分散ディレクトリ等のサーバが行なうことが前提となっており、ファイルの格納場所を管理するサーバ(スタータノード)とファイル名との対応を管理する情報が別途必要となっている。なお、米国特許第6,029,168号にはそのような情報を格納する手段としてとして a "well-known" distributed Directory fileを利用するとの記載がある。また、ファイル識別子にスタータノードの位置が直接埋め込まれるため、新しいネットワークストレージを追加して既存のファイルのスタータノードを新しいネットワークストレージに移動する際には前記分散ディレクトリに格納されているファイル名とファイル識別子との対応情報を書きかえる必要があった。
本発明の一つの目的は、アクセス対象のオブジェクトの論理識別子からそのアクセス対象を格納するネットワークストレージを一意に決定できる複数ネットワークストレージの仮想一元化方法を提供することにある。
本発明の他の目的は、ネットワークストレージの拡張性が高い複数ネットワークストレージの仮想一元化方法を提供することにある。
【0004】
【課題を解決するための手段】
本発明の特徴は、ファイルシステムではファイルのフルパス名、WebストレージではURLなど、ネットワークストレージに格納するオブジェクトを論理的に識別するオブジェクト識別子のハッシュ値に基づき格納するネットワークストレージを決定する点にある。これにより、オブジェクト識別子と格納するネットワークストレージの対応の管理が排除される。
一つの代表的な例では、クライアントのアクセス要求は仮想化対象のネットワークストレージ群の任意のひとつに通知され、このアクセス要求を受け取ったネットワークストレージがオブジェクト識別子のハッシュ値に基づきその要求のアクセス対象のオブジェクトを格納するネットワークストレージを特定し、アクセス要求を特定したネットワークストレージへと転送して処理を行なう。別の例では、クライアントからのアクセス要求を仮想化対象のネットワークストレージ群の全てに通知し、各ネットワークストレージがオブジェクト識別子のハッシュ値に基づき該アクセス要求を処理すべきネットワークストレージが自装置か否かを判定して自装置が該当する場合に処理を行なう、という方法でクライアントからのアクセス要求を処理する。
サン・マイクロシステムズ社(Sun Microsystems, Inc.)によって開発されたNFS(Network File System)など、ファイルアクセスプロトコルでファイルやディレクトリをアクセスするためのハンドルにファイル名やディレクトリ名などのオブジェクトを論理的に識別する情報が含まれないプロトコルを用いたネットワークストレージの場合には、ハンドルの生成時にファイルの論理的識別子(フルパス名)のハッシュ値を埋め込むことで、ファイルのフルパス名がアクセスハンドルに含まれる場合と同様の方法でアクセス要求を処理するネットワークストレージを決定することができる。
本発明により、アクセス対象のオブジェクトの論理的識別子、例えばファイル名、と該オブジェクトを物理的に格納しているネットワークストレージとの対応表を管理する必要がなくなり、管理サーバを必要としない複数ネットワークストレージの仮想化方法が可能となる。
また、管理サーバが不要なため、ファイルの物理的格納位置の変更が容易になり、動的なネットワークストレージの追加などが容易となる。
更に、管理サーバが不要なため、システムの隘路がなくなりネットワークストレージの拡張性が高くなる。
更に、ファイルの論理的識別子からハッシュ関数により格納位置を算出できるため、アクセス要求を適切なサーバへ転送する処理が高速化される。
【0005】
【発明の実施の形態】
図1は本発明の実施例を示す図である。クライアント1はネットワークルータ2を介して複数のネットワークストレージ(3,4,5)に接続されている。各ネットワークストレージはクライアント1からのファイルアクセス要求を処理するためのファイルシステム7と該ファイルシステムによってアクセスされるストレージシステム8を有する。また、複数のファイルシステムを仮想的に一つのファイルシステムに見せるための仮想一元化ファイルシステム6を有する。ネットワークルータ2および複数のネットワークストレージ(3,4,5)はクライアントからは仮想的にひとつのネットワークストレージ9として認識される。すなわち、クライアントからはネットワークルータが提供するひとつのネットワークアドレスまたはネットワーク識別名で仮想的に一元化されたネットワークストレージ9を識別する。このような機能を持つネットワークルータとしてクライアント側のネットワークにはひとつのネットワークアドレスを、複数のネットワークストレージ側にはプライベートアドレスをそれぞれ提供し、プライベートアドレスと外部アドレスの変換を行なうルータが適用可能であるが、ひとつの外部アドレスと、複数の内部アドレスを管理できる機能を有するネットワークルータ、負荷分散機、サーバやPCなどの汎用の計算機、ネットワークスイッチなどネットワークルータ以外の装置ももちろん適用可能である。また、ネットワークストレージのひとつがネットワークルータ2の機能を備える構成も可能である。さらに、複数のネットワークストレージが物理的にひとつの装置内に配置されていても良いことは明白である。また、サーバやPCなどの汎用の計算機とネットワークスイッチなどの組み合わせでネットワークルータを構成しても良い。さらに、ネットワークルータ2と各装置の間のネットワークは有線・無線のいかなる形態であっても良い。また、ネットワークルータ2を複数接続して外部との通信の負荷を分散させるたりシステムに冗長度を持たせる構成を取ることも可能である。
図2はクライアント1から見える仮想化一元化されたファイルシステムのイメージである。本実施例では説明を簡単にするため、クライアントから見えるディレクトリツリーとネットワークストレージのディレクトリツリーが同一である場合を示しているが、ネットワークストレージのディレクトリツリーをクライアントのローカルファイルシステムのディレクトリツリーの一部にマウントしてもよい。その場合にはマウントポイント以下の部分がネットワークストレージのディレクトリツリーとなる。なお、本発明ではファイルシステムがファイルを識別する記号としてファイルの階層構造を持つパス名を例として説明しているが、ファイルの識別子が階層構造を持つパス名以外であっても構わない。例えば、ファイル自身に内在するキーワードを識別子としてファイルをアクセスするようなファイルシステムにおいては、識別子として扱うキーワードをパス名と同等に扱うことにより本発明と同等の複数のファイルシステムの仮想化が実現できることは明白である。
本実施例ではネットワークファイルシステムを例として説明しているが、オブジェクトを格納するネットワークストレージであればオブジェクト自身はファイルでなくても良く、Webにおけるページなど、オブジェクトの論理的な識別子を有する全てのオブジェクトを格納するシステムが対象となる。論理的な識別子とはファイルシステムではファイルのパス名、WebストレージではURLなど、ストレージの構成に依存しない上位ソフトウェアから見たオブジェクトの識別子のことを意味する。また、オブジェクトの識別子は必ずしも一意にオブジェクトを特定する必要はなく、複数のオブジェクトをさしていても良い。その場合には同一識別子を持つオブジェクトは同じネットワークストレージに格納される。
本発明では図2で示す仮想的に一元化されたファイルシステムを複数のネットワークストレージ(3,4,5)に分散格納する方法とそのアクセス方法を提供する。各ファイルはファイルのパス名のハッシュ値と分散格納するネットワークストレージの台数を引数とする格納位置決定関数によって一意に決定されるネットワークストレージに格納される。たとえば、本実施例では、ハッシュ関数をパス名を構成する各コンポーネントの文字列の和を2の16乗で割った余りをハッシュ関数とし、格納位置決定関数fを
f=mod(ハッシュ値、ネットワークストレージ台数)
とした場合の例を示している。すなわち、図2の/usr/local/aのファイルのハッシュ値は"usr" "local" "a"の各コンポーネントの文字コードの和
('u'+'s'+'r')+('l'+'o'+'c'+'a'+'l')+('a') = 0x03c6
であり、格納位置決定関数の値は
mod(0x03c6, 3) = 0
となるので、最初のネットワークストレージ3に格納されている。同様に/usr/loca/b, /usr/home/c, /use/d, /usr/bin/eのそれぞれのハッシュ値はそれぞれ0x03c7, 0x0366, 0x01be, 0x258となり、格納位置決定関数fの値は1, 0, 2, 1となり、図1に示されるように対応するネットワークストレージにそれぞれ格納される。
本実施例ではハッシュ関数を各コンポーネントの文字列の和としたが、引数の値に対して一意に決定される値を返す他のいかなる関数を用いても同様の実装ができることは明らかである。ここで、一意に決定されるとは、引数の値が同じ時に同じ値を返すということを意味しており、異なる引数に対して異なる値(ユニークな値)を返すという意味ではない。すなわち,異なる2つの引数が同じ値を返しても構わない。また、格納位置決定関数として乗余関数を用いたが、これに関しても、他のいかなる関数を用いても同様の実装ができることは明らかである。本発明ではファイルの格納の冗長化を行なわない場合について述べているが、ファイルの冗長格納を行なう場合には、上記のハッシュ関数あるいは格納関数を複数種類用意して、それぞれの値に応じた格納場所へ対象となるファイルを格納する。従って、引数の値に対して一意に決定される値を返す関数が複数提供される場合や、ひとつの関数が、冗長化を行なう目的で複数の値を返す場合も含まれる。
本発明の最大の特徴は、ファイルのパス名あるいは識別子のみからハッシュ値が計算でき、また、ハッシュ値と分散格納するネットワークストレージの台数のみから格納すべきネットワークストレージの番号が一意に決定できることである。従来の分散ファイルシステムではファイルのパス名あるいは識別子から格納位置を求める際にディレクトリサーバなどに問い合わせを行ない、格納位置情報を求めていたが、本発明ではこの問い合わせが全く不要となる。また、ファイルのパス名あるいは識別子と格納位置のマッピングを示す情報をテーブルとして格納する必要があるため、該テーブルをメンテナンスする必要があったが、本発明では該テーブルは不要であり、一貫性の維持や排他処理、構成変更時のメンテナンスなどのオーバヘッドは発生しない。
また、本実施例では簡単のためファイルのストライピングを行なわない場合について説明を行なっているが、ファイルのストライピングを行なう場合も格納位置決定関数の引数としてファイルのパス名とアクセス位置(あるいはファイルの断片番号)を追加するだけで、同様のシステムが容易に実現可能であることは明らかである。
図3はクライアントからのアクセス要求の処理の流れを示す図である。クライアント1が発行したアクセス要求はネットワークルータ2に送信される(15)。ネットワークルータは仮想化で一元化すべきストレージに受け取ったアクセス要求をフォワードする(16)。各ネットワークストレージは受け取った要求の内容とハッシュ関数および格納位置決定関数の値の基づき処理を行ない(17)、結果をクライアント1にリターンする(18)。
ネットワークをアクセスするプロトコルの一例としてNetwork File System(NFS)プロトコルがある。NFSプロトコルではファイルやディレクトリをアクセスするためにフルパス名を用いず、LOOKUPコマンド要求で取得するハンドル情報でファイルやディレクトリをアクセスする。本発明では、フルパス名のハッシュ値で格納位置を決定しているため、このハンドルにファイルのフルパス名もしくはハッシュ値を格納する必要が有る。NFSプロトコルではハンドルの実装はネットワークストレージが自由に決定して良いことになっているが、ファイルハンドルの長さに制限がある。そのため、ファイルやディレクトリのフルパス名を格納することが一般にできない。そこで、ハンドルの一部にフルパス名のハッシュ値を格納しておくことによりハンドルがフルパス名を格納できない場合でもハッシュ値による格納位置決定処理を実行できるようにする。なお、NFS以外のプロコルで、ファイルやディレクトリをアクセスする際に用いる識別情報がフルパス名を含む場合にはパス名のハッシュ値を識別情報に含めなくても良い。ファイルやディレクトリをアクセスする際にはアクセス対象を識別できる識別情報が必要である。識別情報にフルパス名が含まれる場合には該フルパス名からハッシュ値を導出することができるのでハッシュ値そのものの保持は任意である。識別情報にフルパス名が含まれないアクセスプロトコルの場合にはアクセスの識別情報がハッシュ値を保持するように改変を行ない、もってファイルの格納位置がアクセスの識別情報から一意に決定できるようにする。いずれにしても、任意のファイルアクセスプロトコルに対して本発明は適用可能である。以下では簡単のためにアクセスプロトコルとしてNFSを例に取りアクセス処理の流れについて説明する。
図4はアクセスに用いるディレクトリハンドル20およびファイルハンドル25の構成を示す例である。ディレクトリハンドル20はディレクトリ識別子21およびディレクトリパスハッシュ値22から構成される。ファイルハンドル25はファイル識別子22とファイルパスハッシュ値27から構成される。ディレクトリ識別子およびファイル識別子は従来のハンドルと同様の方法で生成することができるが、ハンドラの長さが固定長の場合には、パスハッシュ値を格納するサイズ分だけ短くする必要がある。図4では、ファイル/usr/local/aをオープンしてオフセット1024から4096バイトのデータを読み込む場合を例に取り説明する。まず、最初にLOOKUPコマンド30を発行して実行結果31を得る。実行結果31には/usrのディレクトリハンドラが含まれており、/usrのディレクトリハンドラにはパスハッシュ値0x015a(='u'+'s'+'r')が埋め込まれている。次にこのディレクトリハンドラを用いて/usr/localのディレクトリをLOOKUPし(32)、実行結果33を得る。実行結果33には/usr/localのディレクトリハンドラが含まれており、/usr/localのディレクトリハンドラにはパスハッシュ値0x0365(='u'+'s'+'r'+'l'+'o'+'c'+'a'+'l')が埋め込まれている。次に/usr/local/aのLOOKUPを行ない(34)、そのファイルハンドルを得る(35)。最後に、取得したファイルハンドルを用いてREADコマンドを発行し(36)、データを読み込む。
NFSプロトコルなどではハンドルとファイルやディレクトリを1対1に対応付けるためにinodeへのポインタなどを用いている。本発明では複数のネットワークストレージにファイルを格納するため、ハンドルにファイルのフルパス名を含まないNFSのようなプロトコルの場合には、ディレクトリの実体とハンドルを1対1に対応付ける為のローカルなマッピングテーブル等が必要となる場合がある。これらに関しては適用するネットワークプロトコルの仕様に応じて適切な手法を実装することができる。
図5はファイルやディレクトリ情報を取得するLOOKUPコマンドの処理の流れを示す図である。LOOKUPコマンドを仮想一元化ファイルシステムが受け付けると(50)、ディレクトリハンドルの指定の有無をチェックし(51)、ディレクトリハンドルの指定がある場合には53の処理に進む。そうでない場合には、ディレクトリハンドルを初期化し、ディレクトリパスハッシュ値を0に初期化する(52)。次に、ディレクトリハンドルに格納されているディレクトリパスハッシュ値とアクセスするファイル名(またはディレクトリ名)を引数としてハッシュ関数を呼び出し、ハッシュ値を求める(53)。求めたハッシュ値が自装置が処理すべき値かどうかを格納位置決定関数を用いて判定を行ない(54)、自装置が処理すべき値でない場合には、要求を破棄する(55)。自装置が処理すべき値である場合には、当該ファイルをLOOKUPして(56)、その結果得られたハンドル情報に53で求めたハッシュ値を埋め込み、(57)、要求元に結果をリターンする。なお、LOOKUPに失敗した場合にはエラー情報をクライアントにリターンするなどの適切な処理を行なう。エラー処理に関しては適用するファイルアクセスプロトコルの規格に合せて実装する。また、上記ではハンドルにファイルのパス名が含まれない場合を想定してパス名の代わりにハッシュ値をハンドルに埋め込む場合のフローを提示したが、ハンドルにファイルのパス名が含まれている場合には、53のハッシュ値を求める処理でディレクトリのパス名とファイル名を用いてハッシュ値を計算する。その場合、ハッシュ値をLOOKUPの結果得られたファイルハンドルに埋め込む処理57は不要となる。
LOOKUPと同様の処理フローとなるコマンドにはCREATE、SYMLINK、MKNOD、REMOVE等が有る。なお,REMOVE処理の場合にはリターン値にファイルハンドルを含まないので、ハッシュ値のハンドラへの埋め込み(57)に相当する処理は不要である。
図6はファイルを読み込むREADコマンドの処理の流れを示す図である。READコマンドを受け取ると(60)、ファイルハンドルに格納されているファイルパスハッシュ値を取りだし(61)、格納位置決定関数を用いてハッシュ値が自サーバの処理すべき値かどうかをチェックし(62)、該当しない場合には要求を破棄する(63)。該当する場合には、当該ファイルをREADし(64)、結果を要求元にリターンする(65)。本処理においても適用するアクセスプロトコルの規格に合せてエラー発生時の処理を適宜追加する。
READと同様の処理フローとなるコマンドにはWRITE、GETATTR、SETATTR、READLINK、STATFS等が有る。
図7はディレクトリを作成するコマンドMKDIRの処理の流れを示す図である。MKDIRのコマンドを受け取ると(66)、ディレクトリハンドルの指定の有無をチェックし(67)、ディレクトリハンドルの指定がある場合には69の処理に進み、そうでない場合にはディレクトリハンドルの初期化を行ないディレクトリパスハッシュ値を0にセットする(68)。次にディレクトリハンドルに格納されているディレクトリパスハッシュ値と作成するディレクトリ名を引数としてハッシュ関数を呼び出し、ハッシュ値を求める(69)。求めたハッシュ値が自装置で処理すべきことを示す値かどうかを格納位置決定関数を用いて判定する(70)。自装置で処理すべき値でない場合には、MKDIRを実行して指定されたディレクトリを作成し(71)、その結果をMKDIRを処理すべきネットワークストレージ装置に送信する(72)。自装置が処理すべきハッシュ値である場合には、MKDIRを実行して指定されたディレクトリを作成し(74)、他の全てのネットワークストレージ装置からのMKDIR実行結果通知(73)を受信するまで待つ(75)。全てのネットワークストレージ装置からの結果を受け取ったら、それが全て成功かどうかをチェックし(76)、全て成功である場合にはリターンするディレクトリハンドルにハッシュ値を埋め込み(77)、要求元のクライアントに結果をリターンする(78)。そうでない場合には、MKDIRに成功した全てのサーバに対して作成したディレクトリを削除するコマンドRMDIRを発行して要求元にエラーをリターンする。RMDIRが失敗したときやその他の個所(例えば73の通信の送受信)でエラーが発生した場合には、適用するプロトコルの規格に従ったエラー処理を行なう。
RMDIRもMKDIRと同様の処理フローとなる。すなわち、全てのサーバから指定されたディレクトリをREMOVEする。また、一部のサーバがRMDIRに失敗したば場合にはRMDIRに成功したサーバでMKDIRを実行して現状を回復し、エラーリターンさせるなどプロトコルに応じたエラー処理を実装する。
図8はファイル名の変更を行なうRNAMEコマンドの処理の流れを示す図である。REMANEコマンドを受け取ると(81)、リネーム元のファイルのハッシュ値とリネーム先ファイルのハッシュ値をそれぞれ求め(82)、リネーム元およびリネーム先のハッシュ値が自ネットネットワークストレージ装置で処理すべき値かどうかを格納位置決定関数に基づき判断する(83)。リネーム元およびリネーム先が共に自ネットネットワークストレージ装置で処理すべき場合には、自ネットネットワークストレージ装置内でRENAMEコマンドを実行する(85)。リネーム元が自ネットネットワークストレージ装置、リネーム先が他ネットネットワークストレージ装置である場合には、リネーム先サーバにファイルをコピーし(86)、コピーが成功したかどうか判定し(87)、コピーが失敗した場合には要求元にエラーをリターンする(88)。コピーが成功した場合にはファイルハンドルリダイレクト情報を登録し(89)、リネーム元ファイルを削除する(90)。ファイルハンドルリダイレクト情報はリネーム元のファイルハンドルと、リネーム先のファイルハンドラの対を格納しているテーブルで、リネーム前のハンドラを一定時間有効にするためにリネーム前のファイルを格納すべきサーバが一定時間保持する。ハンドラとファイルの実体のマッピングを取る際に、該リダイレクト情報を参照することで、リネームにより格納位置が変更されたファイルに対するアクセスを可能にする事を目的とする。該テーブルに登録されているファイルハンドラはリネーム後のファイルハンドラに自動的に変更されて、当該サーバへのアクセスとして転送される。なお、83の判定でリネーム元が自サーバの場合には上記処理を行なった後、要求元に結果をリターンする(91)。それ以外の場合には要求を破棄する(84)。
図8はRENAMEの対象がファイルである場合の処理フローを示している。RENAMEの対象がディレクトリの場合には、種々の実装方法が実現可能である。例えば、リネーム先のディレクトリをリカーシブに最下層までMKDIRしてから、リネーム元の当該ディレクトリに有るファイルを順次RENAMEする。最後に、リネーム元のディレクトリを最下層までリカーシブにRMDIRする。これ以外にも本発明が適用可能な種々のディレクトリのRENAMEコマンドが実装可能であることは明らかである。
図9はディレクトリ情報を取得するREADDIRコマンドの処理の流れを示す。READDIRコマンドを受け取ると、ディレクトリハンドラのハッシュ値を取りだし(92)、格納位置決定関数を用いてハッシュ値が自サーバの処理すべき値かどうかをチェックし(93)、該当しない場合にはREADDIRコマンドを実行して(95)結果を該READDIRコマンドを実行すべきネットワーックストレージ装置に送信する(96)。自装置が処理すべきネットワーックストレージ装置に該当する場合には、READDIRコマンドを実行し(94)、他の全てのネットワーックストレージ装置からREADDIRコマンドの実行結果(97)を受信するまで待つ(98)。全てのREADDIRコマンドの結果を受信するとそれらの結果をマージし(99)、要求元に結果をリターンする(100)。
本実施例では全てのネットワークストレージが同一のディレクトリツリー構造を有するため、全てのサーバでMKDIRおよびRMDIRは実行され、格納位置決定関数で指定されたひとつのサーバがそれらの実行結果を取りまとめてクライアントに応答する。しかしながら、格納位置決定関数で指定されたひとつのサーバのみでMKDIRやRMDIRを行なう別の実施例も可能である。その場合には、ディレクトリの作成時やファイルの作成時に指定された親ディレクトリが格納位置決定関数で指定される実行サーバに存在しない場合、当該親ディレクトリまでのディレクトリを生成コマンド実行時と同様の方法で生成する必要がある。また、READDIRコマンドなどではディレクトリが存在しないサーバが存在するため、それらに対する処理フローの修正も必要となるが、いずれも容易に実装可能であるのは明らかである。
図10は、本発明の他の実施例を示す図である。本実施例では各ネットワークストレージ(3,4,5)はクライアントとネットワーク101を介して接続されている。クライアントからは全てのネットワークストレージのIPアドレスが見える。また、ネットワークストレージ間はネットワークスイッチ102を介して接続しており、ネットワーク101に負荷をかけずにコマンドやデータの送受信を行なう。この場合、クライアントはネットワークストレージの任意のひとつに対してアクセス要求を発行する(103)。アクセス要求を受け取ったネットワークストレージ4がパス名のハッシュ値に基づき実行すべきネットワークストレージを決定し、この実行すべきネットワークストレージが他のネットワークストレージの場合には、その実行すべきネットワークストレージに対してアクセス要求を転送する(104)。転送を受けたネットワークストレージがアクセス要求を処理し(105)、その結果をアクセス要求を受け付けたネットワークストレージ4経由でクライアント1にリターンする(105、106)。なお、アクセス要求のリターンが別サーバから戻ってきても良いのであれば、アクセス要求を実行したネットワークストレージから直接結果を要求元クライアントに送信しても良い(108)。インターネットの発行元IPアドレスを書きかえることでアクセス要求受付サーバ経由で結果をリターンするのと同等のことを実現することも容易に可能である。また、ネットワーク101の負荷が問題とならないのであれば、ネットワークスイッチ102を省略して、サーバ間の通信をネットワーク101経由で行なうことも当然可能である。
図11は、本発明の更に他の実施例を示す図である。本実施例は、図3に示す実施例と同様のハードウェア構成を取る。クライアントから発行されたアクセス要求110をネットワークルータ2がグループ内の1台のネットワークストレージ(図11ではネットワークストレージ4)に転送する。ネットワークルータ2にていずれのネットワークストレージに転送するかを決定する方法は、例えばラウンドロビン等を採用できる。アクセス要求の転送を受けたネットワークストレージは、図1の実施例の各ネットワークストレージと同様な方法で、つまりアクセス対象の論理的な識別子(ファイルのパス名)のハッシュ値に基づき要求を処理すべきネットワークストレージを決定する。処理すべきネットワークストレージが自分であれば要求を処理する。処理すべきネットワークストレージが自分以外であれば(図示のケース)、その処理すべきネットワークストレージに要求を転送する(111)。要求を受け取ったネットワークストレージは転送された要求を処理し(112)、その結果をクライアントにリターンする(111)。なお、リターンする経路は、要求を最初に受け取ったネットワークストレージ経由であっても構わない。
図12は、ネットワークストレージ149のソフトウェア構成の一実施例を示す。図12では、ネットワークファイルシステム142に仮想一元化制御部143を組み込み、ハンドラ生成部144でシステム全体のグローバルなハンドル140を生成する。ハンドルの内部にファイルやディレクトリのフルパスが存在しない場合にはハンドル140にパスのハッシュ値141を埋め込む。また、仮想一元化制御部143は必要に応じてクライアントから受け取ったアクセス要求147を他のネットワークストレージに送受信する(146)。
図13は、ネットワークストレージ149のソフトウェア構成の他の実施例を示す。図13では、ネットワークファイルシステム156の上位に仮想化ネットワークファイルシステム151を置く。仮想化ネットワークファイルシステム151は仮想一元化制御部152とローカルハンドラ・グローバルハンドラ変換部153を有する。本ソフトウェア構成ではネットワークファイルシステム156がローカルに生成するローカルハンドラ154と他のネットワークストレージと共通に利用するグローバルハンドラ150とのマッピングをローカルハンドル・グローバルハンドル変換部153で行なう。ローカルハンドル・グローバルハンドル変換部153はハンドル変換表155を参照してクライアントから指定されたグローバルハンドルをネットワークファイルシステム156が利用するローカルハンドルに変換する。仮想一元化制御部152は必要に応じて他のネットワークファイルシステムとアクセス要求を送受信する(159)。
【0006】
【発明の効果】
本発明のネットワークストレージの仮想化方式では、オブジェクトの格納位置を該オブジェクトをアクセスする時に用いる論理的な識別子のハッシュ値に基づき格納すべきネットワークストレージを決定することで、オブジェクトの格納位置に関する情報を管理サーバに保持する必要をなくした。これにより、オブジェクトの格納位置に関する情報を管理サーバに問い合わせるための処理コストが削減され、システムのスケーラビリティが向上した。また、ネットワークストレージを追加・削除する際にも管理サーバに対する情報の更新処理が不要となるため、サーバの構成変更が容易となり、運用管理が簡素化される。
【図面の簡単な説明】
【図1】本発明のネットワークストレージの仮想化方式のシステム構成を示す図である。
【図2】クライアントから見たファイルシステムイメージを示す図である。
【図3】本発明のネットワークストレージ仮想化方式の処理の概略を示す図である。
【図4】ハンドラの構成の一実施例およびファイルアクセス処理の例を示す図である。
【図5】 LOOKUP処理の流れを示すフローチャートである。
【図6】 READ処理の流れを示すフローチャートである。
【図7】 MKDIR処理の流れを示すフローチャートである。
【図8】ファイルのRENAME処理の流れを示すフローチャートである。
【図9】 READDIR処理の流れを示すフローチャートである。
【図10】本発明のネットワークストレージの仮想化方式の他のシステム構成例と処理の流れを示す図である。
【図11】本発明のネットワークストレージの仮想化方式の更に他のシステム構成例と処理の流れを示す図である。
【図12】ネットワークストレージのソフトウェア構成の実装例を示す図である。
【図13】ネットワークストレージのソフトウェア構成の他の実装例を示す図である。
【符号の説明】
1 クライアント
2 ネットワーク装置
3、4、5 ネットワークストレージ
6 仮想一元化ファイルシステム
7 ローカルファイルシステム
8 記憶装置
9 仮想化されたネットワークストレージ
10 ネットワーク
11 クライアントから見た仮想化されたファイルシステムイメージ
20 ディレクトリハンドラ
25 ファイルハンドラ
101 ネットワーク
102 ネットワーク装置
142 ネットワークファイルシステム
143 仮想一元化制御部
144 ハンドラ性西部
145 ローカルファイルシステム
150 グローバルハンドラ
151 仮想化ネットワークファイルシステム
152 仮想一元化制御部
153 ローカルハンドラ・グローバルハンドラ変換部
154 ローカルハンドラ
155 ハンドラ変換表
156 ネットワークファイルシステム
157 ハンドラ生成部。

Claims (6)

  1. 階層構造を持つ複数のディレクトリによって構成され、データを管理するファイルシステムを備えた複数のネットワークストレージ装置を仮想的な一つのネットワークストレージシステムとしてネットワーク経由で接続されるクライアントからアクセスさせるためのネットワークストレージ仮想化方法において、
    前記クライアントから要求されたデータの前記ネットワークストレージにおける格納位置を前記ファイルシステム内で特定する際に、前記クライアント側から指定されるディレクトリの情報を元に lookup コマンドを順次実行して当該ディレクトリのディレクトリハンドラを取得することを繰り返すことにより、前記複数のディレクトリの階層構造を上位から下位に辿るネットワークストレージ仮想化方法であって、
    前記 lookup コマンドを実行して得られるディレクトリハンドラに現在のディレクトリのパス名のハッシュ値を埋め込んで前記クライアント側に return を返し、
    当該 return に対してクライアント側から返される更に下位のディレクトリの情報と現在のディレクトリのパス名のハッシュ値を用いて当該下位ディレクトリの lookup コマンドを実行し、もって前記データの格納位置を特定することを特徴とするネットワークストレージ仮想化方法。
  2. 請求項1に記載のネットワークストレージ仮想化方法において、
    前記データが前記複数のネットワークストレージ装置にストライピングされて格納されることを特徴とするネットワークストレージ仮想化方法。
  3. 請求項1に記載のネットワークストレージ仮想化方法において、
    前記複数のネットワークストレージ装置は、所定のネットワーク装置を介して前記ネットワークに接続され、
    当該ネットワーク装置は、前記仮想的な一つのネットワークストレージシステムに対する前記クライアントからのアクセス要求を前記複数のネットワークストレージ装置に転送し、
    前記複数のネットワークストレージ装置の各々は、前記転送されたアクセス要求のアクセス対象であるデータパス名を引数とするハッシュ関数を用いて当該アクセス対象であるデータの格納先が自己のネットワークストレージ装置と一致するか否か判定し、
    一致する場合には、前記アクセス要求を処理することを特徴とするネットワークストレージ仮想化方法。
  4. 請求項1に記載のネットワークストレージ仮想化方法において、
    前記複数のネットワークストレージ装置は、所定のネットワーク装置を介して前記ネットワークに接続され、
    当該ネットワーク装置は、前記仮想的な一つのネットワークストレージシステムに対する前記クライアントからのアクセス要求を前記複数のネットワークストレージ装置のいずれか1つに転送し、
    当該アクセス要求を受信したネットワークストレージ装置は、当該転送されたアクセス要求のアクセス対象であるデータパス名を引数とするハッシュ関数を用いて当該アクセス対象であるデータの格納先が自己のネットワークストレージ装置と一致するか否か判定し、
    一致する場合には、前記アクセス要求を処理し、
    一致しない場合には、前記ハッシュ関数で特定されるネットワークストレージ装置に、前記アクセス要求を転送することを特徴とするネットワークストレージ仮想化方法。
  5. 複数のネットワークストレージ装置により構成され、ネットワークを介して接続されるクライアントからのアクセス要求を処理するネットワークストレージシステムにおいて、
    前記ネットワークストレージ装置は、
    データを格納するためのストレージシステムと
    階層構造を持つ複数のディレクトリによって構成され、当該格納するデータを管理するファイルシステムと、
    複数のファイルシステムを仮想的に一つに見せるための仮想一元化ファイルシステムとを有し、
    前記ファイルシステムは、以下の動作を繰り返して実行することにより前記複数のディレクトリの階層構造を上位から下位に辿り、もってクライアントから要求されたデータの前記ネットワークストレージにおける格納位置を前記ファイルシステム内で特定することを特徴とするネットワークストレージシステム。
    (1)前記クライアント側から指定されるディレクトリの情報を元に lookup コマンドを実行して当該ディレクトリのディレクトリハンドラを取得する、
    (2)当該取得したディレクトリハンドラに現在のディレクトリのパス名のハッシュ値を埋め込んで前記クライアント側に return を返す、
    (3)当該 return に対してクライアント側から返される更に下位のディレクトリの情報と前記現在のディレクトリのパス名のハッシュ値を用いて、該更に下位のディレクトリに対する lookup コマンドを実行する。
  6. 複数のネットワークストレージ装置を備え、ネットワークを介して接続されるクライアントから仮想的にひとつのネットワークストレージとしてアクセスさせる機能を提供するネットワークストレージシステムにおけるオブジェクトのハンドル情報生成方法において、
    前記クライアント側から指定されるディレクトリの情報を元に lookup コマンドを実行することにより当該ディレクトリのディレクトリハンドラを生成し、
    当該ディレクトリのパス名のハッシュ値を生成し、前記ディレクトリハンドラに埋め込み、
    当該ハッシュ値を埋め込んだディレクトリハンドラを、前記オブジェクトのハンドル情報として前記クライアント側に返送することを特徴とするオブジェクトのハンドル情報生成方法。
JP2002013652A 2002-01-23 2002-01-23 ネットワークストレージ仮想化方法 Expired - Fee Related JP4154893B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002013652A JP4154893B2 (ja) 2002-01-23 2002-01-23 ネットワークストレージ仮想化方法
US10/219,770 US7587426B2 (en) 2002-01-23 2002-08-16 System and method for virtualizing a distributed network storage as a single-view file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002013652A JP4154893B2 (ja) 2002-01-23 2002-01-23 ネットワークストレージ仮想化方法

Publications (2)

Publication Number Publication Date
JP2003216474A JP2003216474A (ja) 2003-07-31
JP4154893B2 true JP4154893B2 (ja) 2008-09-24

Family

ID=19191823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002013652A Expired - Fee Related JP4154893B2 (ja) 2002-01-23 2002-01-23 ネットワークストレージ仮想化方法

Country Status (2)

Country Link
US (1) US7587426B2 (ja)
JP (1) JP4154893B2 (ja)

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7171434B2 (en) * 2001-09-07 2007-01-30 Network Appliance, Inc. Detecting unavailability of primary central processing element, each backup central processing element associated with a group of virtual logic units and quiescing I/O operations of the primary central processing element in a storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US8010961B1 (en) * 2003-06-11 2011-08-30 Symantec Corporation Data layer prioritization in an application layered system
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP4237515B2 (ja) * 2003-02-07 2009-03-11 株式会社日立グローバルストレージテクノロジーズ ネットワークストレージ仮想化方法およびネットワークストレージシステム
JP4068473B2 (ja) * 2003-02-19 2008-03-26 株式会社東芝 ストレージ装置、分担範囲決定方法及びプログラム
US7346664B2 (en) * 2003-04-24 2008-03-18 Neopath Networks, Inc. Transparent file migration using namespace replication
US7831641B2 (en) * 2003-04-24 2010-11-09 Neopath Networks, Inc. Large file support for a network file server
US7181439B1 (en) * 2003-04-25 2007-02-20 Network Appliance, Inc. System and method for transparently accessing a virtual disk using a file-based protocol
US6973654B1 (en) 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7653699B1 (en) * 2003-06-12 2010-01-26 Symantec Operating Corporation System and method for partitioning a file system for enhanced availability and scalability
US7676551B1 (en) * 2003-06-25 2010-03-09 Microsoft Corporation Lookup partitioning storage system and method
EP1513152A1 (en) * 2003-09-02 2005-03-09 Deutsche Thomson-Brandt Gmbh Method for retrieving data from first and second storage medium
US7849112B2 (en) * 2003-09-03 2010-12-07 Emc Corporation Using a file handle for associating the file with a tree quota in a file server
WO2005029251A2 (en) * 2003-09-15 2005-03-31 Neopath Networks, Inc. Enabling proxy services using referral mechanisms
JP4257783B2 (ja) 2003-10-23 2009-04-22 株式会社日立製作所 論理分割可能な記憶装置及び記憶装置システム
JP4703959B2 (ja) 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
US7536377B1 (en) * 2003-12-18 2009-05-19 Xilinx, Inc. Component naming
US7133988B2 (en) * 2004-02-25 2006-11-07 Hitachi, Ltd. Method and apparatus for managing direct I/O to storage systems in virtualization
US7272654B1 (en) * 2004-03-04 2007-09-18 Sandbox Networks, Inc. Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names
JP2005266933A (ja) 2004-03-16 2005-09-29 Fujitsu Ltd ストレージ管理システム及びストレージ管理方法
JP2005301590A (ja) 2004-04-09 2005-10-27 Hitachi Ltd ストレージシステム及びデータ複製方法
US8195627B2 (en) * 2004-04-23 2012-06-05 Neopath Networks, Inc. Storage policy monitoring for a storage network
US8190741B2 (en) * 2004-04-23 2012-05-29 Neopath Networks, Inc. Customizing a namespace in a decentralized storage environment
US7720796B2 (en) * 2004-04-23 2010-05-18 Neopath Networks, Inc. Directory and file mirroring for migration, snapshot, and replication
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7774326B2 (en) 2004-06-25 2010-08-10 Apple Inc. Methods and systems for managing data
US7437358B2 (en) * 2004-06-25 2008-10-14 Apple Inc. Methods and systems for managing data
US8335807B1 (en) * 2004-08-30 2012-12-18 Sprint Communications Company, L.P. File distribution system and method
US7844691B2 (en) * 2004-12-30 2010-11-30 Xstor Systems, Inc. Scalable distributed storage and delivery
US20060206524A1 (en) * 2005-03-14 2006-09-14 Microsoft Corporation Intelligent collection management
US20060277334A1 (en) * 2005-06-01 2006-12-07 Creative Technology Ltd. Portable data storage device
US7467158B2 (en) * 2005-06-10 2008-12-16 Microsoft Corporation Object virtualization
US20060294215A1 (en) * 2005-06-24 2006-12-28 Finisar Corporation Using a network portal to store diagnostic data
WO2007002855A2 (en) * 2005-06-29 2007-01-04 Neopath Networks, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
US7647335B1 (en) 2005-08-30 2010-01-12 ATA SpA - Advanced Technology Assessment Computing system and methods for distributed generation and storage of complex relational data
US8209363B2 (en) * 2007-10-09 2012-06-26 Cleversafe, Inc. File system adapted for use with a dispersed data storage network
US8131689B2 (en) 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US7596659B2 (en) * 2005-12-08 2009-09-29 Electronics And Telecommunications Research Institute Method and system for balanced striping of objects
JP4877921B2 (ja) * 2006-01-25 2012-02-15 株式会社日立製作所 ストレージシステム、記憶制御装置及び記憶制御装置のリカバリポイント検出方法
US20070198540A1 (en) * 2006-02-01 2007-08-23 Kohl John T Non-bindable mount in a shared mount tree
JP2007206931A (ja) * 2006-02-01 2007-08-16 Hitachi Ltd 記憶システム、データ処理方法並びにストレージ装置
JP2007272357A (ja) * 2006-03-30 2007-10-18 Toshiba Corp ストレージクラスタシステム、データ処理方法、及びプログラム
US8543782B2 (en) * 2006-04-25 2013-09-24 Hewlett-Packard Development Company, L.P. Content-based, compression-enhancing routing in distributed, differential electronic-data storage systems
US8190742B2 (en) 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
JP4912026B2 (ja) * 2006-04-27 2012-04-04 キヤノン株式会社 情報処理装置、情報処理方法
KR101381551B1 (ko) 2006-05-05 2014-04-11 하이버 인크 그룹 기반의 완료 및 증분 컴퓨터 파일 백업 시스템, 프로세스 및 장치
EP1858228A1 (en) * 2006-05-16 2007-11-21 THOMSON Licensing Network data storage system with distributed file management
EP1858229A1 (en) * 2006-05-16 2007-11-21 Thomson Licensing Network data storage system with distributed file management
US8429242B1 (en) * 2006-06-26 2013-04-23 Emc Corporation Methods and apparatus for providing content
US8935302B2 (en) * 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
FR2912520B1 (fr) * 2007-02-13 2009-05-15 Stg Interactive Sa Procede de gestion de fichiers.
US9110920B1 (en) 2007-05-03 2015-08-18 Emc Corporation CIFS access to NFS files and directories by translating NFS file handles into pseudo-pathnames
US7779175B2 (en) 2007-05-04 2010-08-17 Blackwave, Inc. System and method for rendezvous in a communications network
US20080288563A1 (en) * 2007-05-14 2008-11-20 Hinshaw Foster D Allocation and redistribution of data among storage devices
US8209365B2 (en) * 2007-07-23 2012-06-26 Hewlett-Packard Development Company, L.P. Technique for virtualizing storage using stateless servers
US8332404B2 (en) * 2007-10-25 2012-12-11 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
WO2009054827A1 (en) * 2007-10-25 2009-04-30 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
GB2466581B (en) * 2007-10-25 2013-01-09 Hewlett Packard Development Co Data processing apparatus and method of deduplicating data
US8099573B2 (en) * 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8782368B2 (en) * 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US9372941B2 (en) * 2007-10-25 2016-06-21 Hewlett Packard Enterprise Development Lp Data processing apparatus and method of processing data
US8150851B2 (en) * 2007-10-25 2012-04-03 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8140637B2 (en) 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
CN102016789B (zh) * 2008-04-25 2014-03-19 惠普开发有限公司 数据处理装置和处理数据的方法
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US9176779B2 (en) * 2008-07-10 2015-11-03 Juniper Networks, Inc. Data access in distributed systems
US8706900B2 (en) * 2008-07-10 2014-04-22 Juniper Networks, Inc. Dynamic storage resources
US20100011091A1 (en) * 2008-07-10 2010-01-14 Blackwave Inc. Network Storage
US8954976B2 (en) * 2008-07-10 2015-02-10 Juniper Networks, Inc. Data storage in distributed resources of a network based on provisioning attributes
US8650270B2 (en) * 2008-07-10 2014-02-11 Juniper Networks, Inc. Distributed computing with multiple coordinated component collections
US8099402B2 (en) * 2008-07-10 2012-01-17 Juniper Networks, Inc. Distributed data storage and access systems
US8364710B2 (en) * 2008-07-10 2013-01-29 Juniper Networks, Inc. Model-based resource allocation
US8191070B2 (en) * 2008-07-10 2012-05-29 Juniper Networks, Inc. Dynamic resource allocation
US8887166B2 (en) * 2008-07-10 2014-11-11 Juniper Networks, Inc. Resource allocation and modification using access patterns
US8307044B2 (en) * 2008-08-28 2012-11-06 Netapp, Inc. Circuits, systems, and methods to integrate storage virtualization in a storage controller
US8117343B2 (en) * 2008-10-28 2012-02-14 Hewlett-Packard Development Company, L.P. Landmark chunking of landmarkless regions
US9066141B2 (en) * 2009-01-21 2015-06-23 Juniper Networks, Inc. Resource allocation and modification using statistical analysis
US8375182B2 (en) * 2009-02-10 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for segmenting a data stream
US8001273B2 (en) * 2009-03-16 2011-08-16 Hewlett-Packard Development Company, L.P. Parallel processing of input data to locate landmarks for chunks
US7979491B2 (en) * 2009-03-27 2011-07-12 Hewlett-Packard Development Company, L.P. Producing chunks from input data using a plurality of processing elements
US8200723B1 (en) * 2009-04-21 2012-06-12 Network Appliance, Inc. Metadata file system backed by database
US9141621B2 (en) * 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
US20100281077A1 (en) * 2009-04-30 2010-11-04 Mark David Lillibridge Batching requests for accessing differential data stores
JP5367470B2 (ja) * 2009-06-11 2013-12-11 日本放送協会 ストレージサーバー装置及びコンピュータプログラム
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
EP2476079A4 (en) 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US7716179B1 (en) * 2009-10-29 2010-05-11 Wowd, Inc. DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
US8660994B2 (en) * 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8281182B2 (en) 2010-03-12 2012-10-02 Cleversafe, Inc. Dispersed storage unit selection
US8086638B1 (en) 2010-03-31 2011-12-27 Emc Corporation File handle banking to provide non-disruptive migration of files
JP2011242826A (ja) * 2010-05-14 2011-12-01 Fujitsu Ltd ファイル管理システム及びファイル管理プログラム
US8943550B2 (en) 2010-05-28 2015-01-27 Apple Inc. File system access for one or more sandboxed applications
US8473961B2 (en) 2011-01-14 2013-06-25 Apple Inc. Methods to generate security profile for restricting resources used by a program based on entitlements of the program
US8365192B2 (en) 2011-01-14 2013-01-29 Apple Inc. Methods for managing authority designation of graphical user interfaces
US20120047504A1 (en) * 2010-08-17 2012-02-23 Robert Paul Morris Methods, systems, and computer program products for maintaining a resource based on a cost of energy
WO2012023384A1 (ja) 2010-08-19 2012-02-23 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータプログラム
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US9037618B2 (en) 2011-03-31 2015-05-19 Novell, Inc. Distributed, unified file system operations
US8627104B2 (en) * 2011-04-28 2014-01-07 Absio Corporation Secure data storage
US8554809B1 (en) 2011-05-26 2013-10-08 Emc Corporation Calculating quota usage without impacting file system services
US8904128B2 (en) 2011-06-08 2014-12-02 Hewlett-Packard Development Company, L.P. Processing a request to restore deduplicated data
US9553817B1 (en) 2011-07-14 2017-01-24 Sprint Communications Company L.P. Diverse transmission of packet content
US9552367B2 (en) 2011-09-16 2017-01-24 Ca, Inc. System and method for network file system server replication using reverse path lookup
US8301597B1 (en) 2011-09-16 2012-10-30 Ca, Inc. System and method for network file system server replication using reverse path lookup
US8667569B2 (en) * 2011-09-29 2014-03-04 Target Brands, Inc. Credentials management
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9305004B2 (en) 2012-06-05 2016-04-05 International Business Machines Corporation Replica identification and collision avoidance in file system replication
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9971787B2 (en) 2012-07-23 2018-05-15 Red Hat, Inc. Unified file and object data storage
US10169348B2 (en) * 2012-08-23 2019-01-01 Red Hat, Inc. Using a file path to determine file locality for applications
US8769105B2 (en) 2012-09-14 2014-07-01 Peaxy, Inc. Software-defined network attachable storage system and method
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US8589659B1 (en) * 2012-11-08 2013-11-19 DSSD, Inc. Method and system for global namespace with consistent hashing
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
CN103535014B (zh) * 2013-04-23 2016-09-28 华为技术有限公司 一种网络存储系统、数据处理方法和客户端
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US20150039645A1 (en) * 2013-08-02 2015-02-05 Formation Data Systems, Inc. High-Performance Distributed Data Storage System with Implicit Content Routing and Data Deduplication
US10754825B2 (en) * 2013-08-28 2020-08-25 Red Hat, Inc. Path resolver for client access to distributed file systems
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
EP2878348B1 (en) * 2013-11-01 2020-04-29 Sony Interactive Entertainment Inc. Information processing device, data structure of game data, program, and recording medium
JP2015088143A (ja) 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびゲームデータのデータ構造
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US20170286195A1 (en) * 2014-09-11 2017-10-05 Systemic Management Science Corporation Information object system
US9767118B2 (en) * 2014-12-01 2017-09-19 Dell Products, Lp Optimized UEFI file system with network file system compound statements
JP6378847B2 (ja) * 2015-02-03 2018-08-22 華為技術有限公司Huawei Technologies Co.,Ltd. ネットワーク・ファイル・システムにおいてi/o要求を処理するための方法及び装置
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
RU2634223C2 (ru) * 2015-06-30 2017-10-24 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) управления данными, связанными с иерархической структурой
US10397029B2 (en) 2015-07-08 2019-08-27 Toshiba Memory Corporation Relay apparatus
US10515016B2 (en) * 2015-12-03 2019-12-24 Hitachi, Ltd. Method and apparatus for caching in software-defined storage systems
CN106874320A (zh) 2016-06-20 2017-06-20 阿里巴巴集团控股有限公司 分布式流式数据处理的方法和装置
US10509921B2 (en) * 2017-05-31 2019-12-17 Intuit Inc. System for managing transactional data
US10318191B1 (en) * 2017-07-18 2019-06-11 EMC IP Holding Company LLC Migration and transformation of data storage in a replicated environment
WO2019122971A1 (en) * 2017-12-20 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data
US10931756B2 (en) * 2019-06-28 2021-02-23 International Business Machines Corporation Direct file send from storage to end client by transferring socket information to the storage
US20210336796A1 (en) * 2019-09-03 2021-10-28 Christopher A. Wiklof System and computer method including a blockchain-mediated agreement engine
JP7361384B2 (ja) 2020-02-04 2023-10-16 株式会社エムケイシステム 電子申請の補助方法、電子申請補助システム、電子申請補助システムのプログラム及びその記録媒体

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5864854A (en) * 1996-01-05 1999-01-26 Lsi Logic Corporation System and method for maintaining a shared cache look-up table
US5944789A (en) * 1996-08-14 1999-08-31 Emc Corporation Network file server maintaining local caches of file directory information in data mover computers
US6081807A (en) * 1997-06-13 2000-06-27 Compaq Computer Corporation Method and apparatus for interfacing with a stateless network file system server
US5987477A (en) * 1997-07-11 1999-11-16 International Business Machines Corporation Parallel file system and method for parallel write sharing
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6311216B1 (en) * 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6421711B1 (en) * 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6370620B1 (en) * 1998-12-10 2002-04-09 International Business Machines Corporation Web object caching and apparatus for performing the same
US6308320B1 (en) * 1999-01-15 2001-10-23 Hewlett-Packard Company Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking
US6542964B1 (en) * 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6915302B1 (en) * 1999-10-01 2005-07-05 International Business Machines Corporation Method, system, and program for accessing files in a file system
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6704730B2 (en) * 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7418439B2 (en) * 2000-03-17 2008-08-26 Twin Peaks Software, Inc. Mirror file system
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US6842784B1 (en) * 2000-06-27 2005-01-11 Emc Corporation Use of global logical volume identifiers to access logical volumes stored among a plurality of storage elements in a computer storage system
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US6907414B1 (en) * 2000-12-22 2005-06-14 Trilogy Development Group, Inc. Hierarchical interface to attribute based database
AU2002249939A1 (en) * 2001-01-11 2002-07-24 Z-Force Communications, Inc. File switch and switched file system
US7043637B2 (en) * 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US20030037061A1 (en) * 2001-05-08 2003-02-20 Gautham Sastri Data storage system for a multi-client network and method of managing such system
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7313694B2 (en) * 2001-10-05 2007-12-25 Hewlett-Packard Development Company, L.P. Secure file access control via directory encryption
US6754800B2 (en) * 2001-11-14 2004-06-22 Sun Microsystems, Inc. Methods and apparatus for implementing host-based object storage schemes
US7373406B2 (en) * 2001-12-12 2008-05-13 Valve Corporation Method and system for effectively communicating file properties and directory structures in a distributed file system
US6772161B2 (en) * 2001-12-19 2004-08-03 Hewlett-Packard Development Company, L.P. Object-level migration in a partition-based distributed file system
US7360034B1 (en) * 2001-12-28 2008-04-15 Network Appliance, Inc. Architecture for creating and maintaining virtual filers on a filer

Also Published As

Publication number Publication date
JP2003216474A (ja) 2003-07-31
US7587426B2 (en) 2009-09-08
US20030140051A1 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
JP4154893B2 (ja) ネットワークストレージ仮想化方法
US7647461B2 (en) Method and apparatus for allocating resources among virtual filers on a filer
US10467188B2 (en) In-line policy management with multi-level object handle
JP4547264B2 (ja) プロキシ・キャッシュに関する装置および方法
JP4547263B2 (ja) データをネットワーク中で処理する装置および方法
US8312046B1 (en) System and method for enabling a data container to appear in a plurality of locations in a super-namespace
CA2512312C (en) Metadata based file switch and switched file system
US8190741B2 (en) Customizing a namespace in a decentralized storage environment
USRE43346E1 (en) Transaction aggregation in a switched file system
US7512673B2 (en) Rule based aggregation of files and transactions in a switched file system
US9015123B1 (en) Methods and systems for identifying changed data in an expandable storage volume
US7383288B2 (en) Metadata based file switch and switched file system
US20070038697A1 (en) Multi-protocol namespace server
US8832154B1 (en) Object location service for network-based content repository
US6530036B1 (en) Self-healing computer system storage
US8990270B2 (en) Protocol virtualization for a network file system
US20070055703A1 (en) Namespace server using referral protocols
US20070088702A1 (en) Intelligent network client for multi-protocol namespace redirection
EP2557514A1 (en) Cloud Storage System with Distributed Metadata
US20190258604A1 (en) System and method for implementing a quota system in a distributed file system
US20140259123A1 (en) Aliasing of exported paths in a storage system
US8627446B1 (en) Federating data between groups of servers
US8868970B2 (en) Object based storage system and method of operating thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041125

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080514

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: 20080617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080630

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees