JP2004038922A - 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術 - Google Patents

1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術 Download PDF

Info

Publication number
JP2004038922A
JP2004038922A JP2002379361A JP2002379361A JP2004038922A JP 2004038922 A JP2004038922 A JP 2004038922A JP 2002379361 A JP2002379361 A JP 2002379361A JP 2002379361 A JP2002379361 A JP 2002379361A JP 2004038922 A JP2004038922 A JP 2004038922A
Authority
JP
Japan
Prior art keywords
vfiler
network
interface
filer
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002379361A
Other languages
English (en)
Other versions
JP2004038922A5 (ja
Inventor
Gaurav Banga
ガウラヴ・バンガ
Smith Mark
マーク・スミス
Mark Muhlstein
マーク・マーレステイン
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.)
NetApp Inc
Original Assignee
Network Appliance Inc
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 Network Appliance Inc filed Critical Network Appliance Inc
Publication of JP2004038922A publication Critical patent/JP2004038922A/ja
Publication of JP2004038922A5 publication Critical patent/JP2004038922A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数の仮想ファイラー(vfiler)等の仮想サーバを有するように構成されたファイラー等のサーバが、ネットワークアドレスの重複する可能性のある複数のプライベートネットワークアドレス空間に参加することを可能にする技術。
【解決手段】あるプライベートアドレス空間内でのサービス要求がファイラーでサポートされる他のプライベートアドレス空間に対して機密性が保たれ且つそれらの空間から区別できるような方法で、適当なvfilerを選択することも可能にする。IP空間は、ファイラーおよびそのストレージオペレーティングシステムが参加する各々の個別のアドレス空間を指している。変換手順にIP空間識別子を適用することにより、入ってきた要求を処理するための正しいvfilerの選択と、出てゆく要求を処理するための適当なルーティングテーブルの選択とが可能になる。
【選択図】図4

Description

【0001】
【発明の属する技術分野】
本発明はファイラー等のストレージシステムに関し、詳しくはネットワークアドレスの重複する可能性がある複数のプライベートアドレス空間に参加するように構成された複数の仮想ファイラーを有するファイラーに関する。
【0002】
【従来の技術】
ファイルサーバとは、メモリ、テープ、ディスク等の書き込み可能な持続性記憶装置上での情報の編成に関するファイルサービスを提供するコンピュータである。ファイルサーバまたはファイラーは、情報をディレクトリ及びファイルの階層構造として例えばディスク上に論理的に編成するためのファイルシステムを実施するストレージオペレーティングシステムを含むストレージシステムとして実現される。「ディスク上」の各ファイルは、ファイルの実際のデータ等の情報を記憶するように構成された例えばディスクブロック等のデータ構造の集まりとして実施される。一方、ディレクトリは、他のファイルまたはディレクトリに関する情報を記憶する特別なフォーマットのファイルとして実施される。
【0003】
更に、ストレージシステムはクライアント/サーバ形態の情報配送に従って動作するように構成され、これにより多数のクライアントがファイルサーバ等のサーバによって実行されているアプリケーションサービスにアクセスできる。この形態の場合、クライアントは、インターネット等の公衆網を介して実施されるポイント・ツー・ポイント接続、共有ローカルエリア・ネットワーク、ワイドエリアネットワーク、または、仮想私設網(VPN)等のコンピュータネットワークを介してファイルサーバに「接続」するためのアプリケーションをコンピュータ上で実行している場合がある。各クライアントは、これらのネットワークを介してファイルシステムプロトコルメッセージを(パケットの形で)サーバへ発行することにより、ファイルサーバに対してファイルシステムのサービスを要求することができる。しかしながら、ファイルサーバは(例えばクライアントまたは「ホスト」)コンピュータに直接取り付けられた複数の記憶装置の集まりとして動作するように構成される場合もある。この場合、ユーザはそれらの記憶装置に対してアクセス(すなわち、読み出しまたは書き込み)するためのファイルシステムのサービスを要求する場合もある。
【0004】
ディスク上でデータを上書きしないファイルシステムの1種は、write−anywhereファイルシステムである。ディスク上のあるデータブロックがディスクからメモリに取得され、新たなデータで「汚される」場合、そのデータブロックはディスク上の新たな位置に記憶され(書き込まれ)、これによって書き込み性能を最適化している。write−anywhereファイルシステムは、データがディスク上に実質的に連続的に配置された最適なレイアウトを最初に仮定する。この最適なディスクレイアウトによって効率的なアクセス動作になり、特にディスクに対するシーケンシャルリード動作について効率的なアクセス動作になる。ファイラー等のストレージシステム上で動作するように構成されたwrite−anywhereファイルシステムの一例は、カリフォルニア州サニーベールにあるネットワークアプライアンス社から入手できるWrite Anywhere File Layout(WAFL(登録商標))である。WAFLファイルシステムは、ファイラー及び関連ディスクストレージのプロトコルスタック全体の中で、マイクロカーネルとして実施される。
【0005】
通常、ディスクストレージは一群の物理的な記憶装置(ディスク)を含む1以上の「ボリューム」として実施され、ディスク空間の全体的な論理的配置を定義している。通常、各ボリュームはそのボリューム独自のファイルシステムに関連している。ファイラーは通常、多数(数千)のユーザを支える大量の記憶装置(例えば6テラバイト等)を有している。この種のストレージシステムは、多くの用途即ち「目的」について一般的に大きすぎ、高価すぎることが多い。1ボリューム(または1ファイルシステム)の典型的な最小記憶容量でさえ約150ギガバイト(GB)もの大きさがあり、ほとんどの目的について一般的に大きすぎるものである。
【0006】
ユーザは、1つのファイラーを利用するのではなく、特定の目的に適合した複数の小型サーバを購入することも可能である。しかしながら、多数の小型サーバの入手及び維持(通常こちらの方が重要)は1つのファイラーの購入よりもコストがかかる。そのため、多数のサーバを1つのサーバプラットフォーム内に統合し、それらのサーバを論理的に実現することが望まれている。従って、サーバ統合とは、多数の論理サーバあるいは仮想サーバを1つの物理プラットフォーム内に設ける能力として定義される。従来のサーバ統合ソリューションの中には、アプリケーションサービスのようにプロセスの複数のインスタンスを動作させるものがある。他のサーバ統合ソリューションには、実質的に「まとめてラックに収められた」多数の独立したサーバを1つのプラットフォーム内に設けるものがある。1つのプラットフォーム内に実現される仮想サーバの例としては、ウェブサーバ、データベースサーバ、及び、ネームサーバがある。
【0007】
サーバ統合は、ストレージサービスプロバイダ(SSP)の場合に特に有用である。SSPは、1つの物理的プラットフォーム、即ち「データセンター」内で複数のユーザまたはクライアントに対してデータストレージアプリケーションを「ホスティング」するサービスを提供している。このデータセンターは主としてSSPによって保守され、安全で信頼性の高いストレージサービスをクライアントに提供する。典型的な構成の場合、データセンターは、独立した私設の内部ネットワーク(「イントラネット」)を有する複数の異なるクライアント環境に接続される。各イントラネットは異なるクライアント又はクライアントの部署に関連している場合があるので、物理プラットフォーム内でデータトラフィックを個別に保持しなければならない。
【0008】
Request for Comments(RFC)1918は、32バイトのインターネットプロトコルバージョン4(IPv4)アドレス空間の一部を、インターネットアドレス管理機構(IANA)等の第三者による許可なしに任意のイントラネットに使用することができるものとして規定している。インターネット等を介してプライベートイントラネットの「外側」にある外部ホストコンピュータと通信するためには、プライベートイントラネット上の内部ホストコンピュータは外部ホストの宛先IPアドレスを有するパケット(要求)を送信する。この要求には、更に内部ホストの私設イントラネットのIPアドレスを表す発信元IPアドレスも含まれる。このプライベートIPアドレスは、ネットワークアドレストランスレーション(NAT)デバイスを用いて世界的に認められたIPアドレスに変換される。
【0009】
具体的には、NATデバイスは、私設イントラネットから出てゆくあるいは入ってきたすべてのパケットについて、私設イントラネットのIPアドレス(及びトランスポート番号)をプライベートではない世界的に一意なIPアドレス(及びポート番号)に変換する。NATデバイスは、IANAによって適切に割り当てられた世界的に一意なIPアドレスのプールを使用する。ほとんどのデータパケットトラフィックがイントラネット内で行なわれることを想定しているため、こうした「グローバル」アドレスの小さなプールでも多数の外部ホストとの接続性を十分に提供することができる。まだ割り当てられていない世界的に一意なIPアドレスは不足していて、巨大なネットワークのすべてのホストに使用することはできないので、大多数の現在のネットワークではこの構成が一般的に必要になっている。現在インターネットに接続されている大多数のコンピュータは、NAT技術を用いてインターネットサーバと通信している。
【0010】
SSPによりサービスの提供を受ける各クライアント環境は、データセンターの異なる仮想サーバ(または仮想サーバの集合)に対応している場合があり、データセンターは、クライアントの統一見解、またはRFC1918準拠のプライベートIPアドレス空間等のネットワークリソースの「名前空間」を用いてストレージ処理を実施している。各環境の私設イントラネットは通常、「ファイアウォール」等の中間ネットワークデバイスを通してインターネットに接続される。クライアントは、自分達のストレージリソース(データセンターによってサービスの提供を受ける)をファイアウォールを通して自分達の内部ネットワークに接続することを一般的に好まない。その主な理由は、それらのデバイスが性能に悪影響を及ぼし、機能を制限するからである。そのため、イントラネットはファイアウォールをバイパスしてデータセンターに直接接続されるのが一般的である。このようなSSP構成の一般的な構成により、RFC1918に準拠したクライアントのイントラネット(全てのIPアドレスがプライベートIPアドレスである)から始まりデータセンターで終わる専用ネットワークパスが設けられる。これにより、各クライアントはデータセンター上のストレージリソースにアクセスするときに、プライベートアドレス空間のIPアドレスを利用できるようになる。
【0011】
私設イントラネットの各々は、自分のプライベートIPアドレスの名前空間内では一意のIPアドレスを保証しているが、プライベート名前空間同士の間にこのような保証は存在しない。各クライアント環境がその私設イントラネットを介してSSPに直接接続されるので、「ホスティング」しているデータセンターは、重複するIPアドレスを有する複数の個別のクライアントIPアドレス空間に参加してしまい、競合する場合がある。依然としてデータセンターは、各クライアントのイントラネット及び内部アドレス空間内の全てのデータ要求トラフィックについて完全性および機密性を維持しつつ、これらの競合したIPアドレスへ宛てた要求に対してもサービスを提供することが望まれている。
【0012】
さらに、SSPは自分のサービスを宣伝する必要があり、従ってブロードキャストパケットを発行する必要がある。ブロードキャストパケットは、実際にサービスを提供する過程で発せられる場合もあり、特に名前解決の処理の際に発行される。この場合データセンターは、ある仮想サーバのコンテクストで生成されたブロードキャストパケットがその仮想サーバに関連するクライアントの私設イントラネットを介してのみ転送されることを保証しなければならない。さらに、イントラネットを介してデータセンターで受信されるブロードキャストパケットは、データセンタープラットフォーム内に実現された様々な仮想サーバの間で、そのパケットの発信元と宛先との両方を識別できるものでなければならない。
【0013】
発明の概要
本発明は、仮想ファイラー(vfiler)等の複数の仮想サーバを用いて構成されたファイラー等のサーバが、ネットワークアドレスの重複する可能性がある複数のプライベートネットワークアドレス空間に参加することを可能にする技術を含む。そのため、本発明によると、あるプライベートアドレス空間内のサービス要求がファイラーでサポートされる他のプライベートアドレス空間に対して機密性が保たれ且つそれらの空間から区別できるような方法で、適当なvfilerを選択することも更に可能になる。vfilerは、マルチプロトコルサーバのインスタンスを確立するための、ファイラーのネットワークリソースおよびストレージリソースの論理的分割である。このネットワークリソースには、ネットワークインタフェースに割り当てられたインターネットプロトコル(IP)アドレス等のネットワークアドレスが含まれる。
【0014】
本明細書で説明するように、IP空間とはファイラーおよびそのストレージオペレーティングシステムが参加する各々の個別のIPアドレス空間を意味している。各vfilerは1つのIPアドレス空間に関連しており、従って1つのIP空間に属している。好ましくは、IP空間はファイラーの「フロントエンド」即ちネットワークインタフェースに対して提供される。このコンテクストにおいて、ネットワークインタフェースという用語は、IPアドレスを割り当て可能なインタフェースを意味している。各ネットワークインタフェースには、そのインタフェースをIP空間にバインドするIP空間識別子(ID)がタグ付けされる。各インタフェースは、そのインタフェースのIP空間内で一意の1以上のIPアドレスを有する。また、IP空間は更に、ルーティングドメインおよび1以上のルーティングテーブルの使用にも関連している。各vfilerにはそのIP空間の中からルーティングテーブルが設けられ、ルーティングテーブルがそのvfilerで処理されるあらゆる要求についてのルーティング処理を制御する。
【0015】
本発明の一態様によると、ある要求に対してサービスを提供するための適当なvfilerを選択するために用いられる設定情報は様々なデータ構造に記憶され、これらが協働して静的に割り当てられたアレイ即ちIP空間データ構造の「データベース」を提供する。これらのデータベースには、特に、ネットワークインタフェースに関するインタフェースネットワーク(ifnet)構造、インタフェースのIPアドレスを表すインタフェースアドレス(ifaddr)構造、vfilerコンテクストデータ構造、および、プロセスブロック(proc)データ構造が含まれる。ifnetデータ構造には、そのインタフェースに割り当てられたIPアドレスのリスト、それらのアドレスについてのifaddr構造を参照するポインタ、および、そのインタフェースのIP空間IDなどの設定情報が含まれる。ifaddrデータ構造にはそのIPアドレスに関するvfilerコンテクストを参照するバックリンクポインタが含まれ、一方、vfilerコンテクスト構造にはマルチプロトコルサーバのインスタンスを確立するために必要な設定情報が含まれる。各vfilerコンテクストには、IP空間ID、および、そのvfilerのIP空間のルーティングテーブルのうちの1つを指すポインタがタグ付けされる。procデータ構造は、そのファイラー上で実行されているプロセススレッドのコンテクストを表すものであり、カレントvfilerコンテクストを参照するポインタを保持している。
【0016】
本発明の他の態様では、IP空間IDは、入ってきた要求を処理するためのカレントvfiler、および、出てゆく要求を処理するための適当なルーティングテーブルの選択を可能にする変換手順に適用される。入ってきた要求を受信するネットワークインタフェースのロジックは、その要求の宛先IPアドレスと共に、そのインタフェースのIP空間ID及びその他の設定情報を用いて、その要求を処理するためのカレントvfilerコンテクストを選択する。出てゆく要求についてルーティング処理が必要な場合、カレントvfilerコンテクストに関連するIP空間IDを含む設定情報を用いて適当なルーティングテーブルを選択する。この変換手順は、vfilerの2つのクリティカルパス、即ちvfilerで受信する要求が入ってきたパスとvfilerで発行された要求が出てゆくパスに対して使用されることが好ましい。
【0017】
大まかに説明すると、ファイラーのネットワークインタフェースで受信された入ってきた要求は、その要求の宛先IPアドレスとそのインタフェースのIP空間IDとに基いて適当なvfilerへ送信される。入力パス上では、そのネットワークインタフェースに関するifnet構造を検査し、宛先IPアドレスと一致するIPアドレスに関するIPアドレスのリストを探す。一致が見つかると、一致したifaddr構造へのポインタをたどり、その要求のvfilerコンテクストデータ構造を探すのに必要なバックリンクポインタを得る。次いで、このifnet構造に格納されたIP空間IDとそのvfilerコンテクストのIP空間IDとを比較した後、正しいvfilerコンテクストを選択する。
【0018】
その後、vfilerコンテクストは、カレントvfilerコンテクストを参照するprocデータ構造のポインタを設定することによって設定される。正しいvfilerコンテクストは、ファイラーでの後続の処理の要求、例えばそのvfilerが要求されたストレージリソースに対するアクセスを許可されていることを検証する検査または境界チェック等を制限するように設定される。注意して欲しいのは、各vfilerコンテクストに含まれる認証情報により、その要求が他のvfilerのユーザによって処理されることが防止されている点である。
【0019】
vfilerがルート計算を必要としない出てゆく要求を発行する場合、本明細書で説明する高速パス技術が実施され、性能が向上される。しかしながら、ルート計算が必要な場合、ルーティングテーブルに対してルックアップ処理が実施され、その要求が発行されるべき出力インタフェースが判定される。出力パス上では、カレントvfilerコンテクストを用いて正しいルーティングテーブルが選択され、これによってvfilerのIP空間のルーティングテーブルが保証される。次いでこの要求が出力インタフェースへ転送される。
【0020】
【発明の実施の形態】
図1は、複数のクライアント110と、ネットワークストレージアプライアンス等のファイルサーバとを含む本発明に有利に用いられるコンピュータネットワーク100の略ブロック図である。ファイルサーバまたはファイラー200は、ディスク等のストレージデバイス上の情報の編成に関するファイルサービスを提供するコンピュータである。クライアント100は、従来のCIFS(Common Internet File System)プロトコル等のファイルシステムプロトコルを有するアプリケーションを実行するように構成された汎用コンピュータでよい。さらにクライアント110は、クライアント/サーバモデルの情報配送に従ってファイラー200と対話することができる。即ち、ネットワーク100上で例えばCIFSプロトコルフォーマットにカプセル化されたパケット120を交換することにより、各クライアントはファイラーのサービスを要求することができ、また、ファイラーはクライアントから要求されたサービスの結果を返すことができる。当業者であれば、本明細書で説明する新しい技術は、クライアント上で実行されている様々なアプリケーションに従って任意のクライアントにサービスを提供する任意のサーバに適用することが可能であることが分かるであろう。
【0021】
ファイラー200は、複数の物理リンク180を介してルータやスイッチなどの中間ネットワークノード150に接続される。この物理リンクには、例えばギガビットイーサネットリンク、100BASE−Tイーサネットリンク、10BASE−Tイーサネットリンクまたはその他同様のリンク等が含まれる。スイッチ150は更に、例えばローカルエリアネットワーク(LAN)や仮想LAN(VLAN)として構成されたネットワーククラウド130を介してクライアント110に接続される。あるいは、ファイラーはポイント・ツー・ポイント接続やLAN等の共有媒体からなる通信リンク140を介して1以上のクライアントに直接接続することもできる。
【0022】
図2は、好ましくは従来のPCI(Peripheral Computer Inter Connect)バスであるシステムバス210によって相互接続されたプロセッサ202、メモリ204、ストレージアダプタ206及び1以上のネットワークアダプタ208を含むファイラー200を示す略ブロック図である。このファイラーは、ストレージアダプタ206に接続されたディスク216上で情報をディレクトリ及びファイルの階層構造として論理的に編成するためのファイルシステムを実行するストレージオペレーティングシステム300をさらに含む。本明細書で説明する例示的実施形態の場合、ストレージオペレーティングシステム300は、好ましくはネットワークアプライアンス社から入手できるNetApp Data ONTAP(登録商標)であり、FAFL(Write Anywhere FileLayout)ファイルシステムを実施する。
【0023】
メモリ204は様々なセクションに分配することができ、そのうちの1つは、ストレージオペレーティングシステム300のネットワークドライバで使用するための複数のデータバッファ222として編成されたバッファプール220である。本明細書で説明するように、各ネットワークドライバにはバッファ222のリストが割り当てられ、このリストがネットワークアダプタ208のインタフェース218で受信された入ってきたデータ要求をロードするのに用いられる。メモリの他のセクションは記憶場所として編成され、プロセッサ及びアダプタによって、本発明に関するルーティングテーブルを含むソフトウェアプログラムコード及びデータ構造を記憶するためにアドレス指定することができる。さらにプロセッサ及びアダプタは、ソフトウェアコードを実行してデータ構造にアクセスするように構成された処理要素及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム300は通常、その一部がメモリ内に存在し、処理要素によって実行され、特にファイラー200によって実施されるサービスを支えるストレージ処理及びネットワーク処理を実施することにより、ファイラーを機能的に編成する。当業者であれば、本明細書で説明する本発明の技術に関するプログラム命令の記憶及び実行に様々なコンピュータ読取可能媒体を含む他の処理手段及び記憶手段も利用できることは明らかであろう。
【0024】
ネットワークアダプタ208は、ファイラー200を通信リンク140に直接接続したり、ファイラー200を物理リンク180を介してスイッチ150に接続したりするのに必要な、機械的回路、電気回路及び信号回路を有するネットワークインタフェースカード(NIC)を含む場合がある。一実施形態では、この物理リンク及びインタフェースは、集合インタフェースまたは仮想インタフェース(VIF)190として編成される場合がある。各NICは1つのインタフェース218を有し、4リンクのVIFの場合、ファイラーは4個のNIC208を有する。あるいは、各NIC208が4個の「4分の1ポート」インタフェース218を有し、4分の1ポートインタフェースの各々がVIF190のリンク180に接続される場合もある。他の実施形態では、物理リンク及びインタフェースを集合インタフェースまたはVLANではないように構成する場合もある。各インタフェース218には、1つのMAC(Media Access Control)アドレスと共に1以上のIP(Internet Protocol)アドレスを割り当てることができる。しかしながら、物理インタフェース218及びそれらに関連するリンク180を1つの仮想インタフェース190に一体化した場合、全ての物理インタフェースがただ1つのMACアドレスに応答してしまう。即ち、物理インタフェース218は、共通のMACアドレスが割り当てられた1つの論理インタフェースを有する1つの仮想的な「パイプ」に編成される。
【0025】
ストレージアダプタ206はファイラー上で実行されているストレージオペレーティングシステム300と協働してクライアントから要求された情報にアクセスすることができ、この情報はディスク216等の何らかの書込可能媒体上に記憶されている。ストレージアダプタは、従来の高性能ファイバーチャネルシリアルリンクトポロジー等のI/O相互接続構成を介してディスクに接続された入出力(I/O)インタフェース回路を含む。情報はストレージアダプタによって取得され、システムバス210を介してネットワークアダプタ208へ転送する前に必要であればプロセッサ202(又はアダプタ206自体)によって処理を施し、その情報をパケット120にフォーマットしてクライアント110へ返す。
【0026】
ファイラーに対する情報の記憶は、物理的ストレージディスク216の集まりを含む1以上のストレージ「ボリューム」として実施し、ディスク空間の全体的な論理的構成を定義することが好ましい。各ボリュームは通常、そのボリューム独自のファイルシステムに関連している。ディスク216に対するアクセスを容易にするため、ストレージオペレーティングシステム300は、ディスク上で情報をファイル及びディレクトリの階層構造として論理的に編成するファイルシステムを実施する。「ディスク上」の各ファイルはデータ等の情報を記憶するように構成されたディスクブロックの集合として実施されるのに対し、ディレクトリは他のファイル及びディレクトリに関する情報を格納した特別なフォーマットのファイルとして実施される。前述のように、ストレージオペレーティングシステムは、WAFLファイルシステムを実施するData ONTAPオペレーティングシステムであることが好ましい。しかしながら、任意の適当なファイルシステムを用いることが可能であることは明らかであるから、「WAFL」という用語を使用した場合でも、この用語は本発明の教示に適合可能な任意のファイルシステムを広く意味するものと解釈すべきである。
【0027】
図3は、本発明に有利に用いられるData ONTAPオペレーティングシステム300を示す略ブロック図である。このストレージオペレーティングシステムは、ネットワークドライバ(例えばギガビットイーサネットドライバ等)のメディアアクセス層310を含む一連のソフトウェア層から構成される。このオペレーティングシステムは更に、IP層312等のネットワークプロトコル層と、その補助的なトランスポート機構であるトランスポートコントロールプロトコル(TCP)層314及びユーザデータグラムプロトコル(UDP)層316を含む。ファイルシステムプロトコル層はマルチプロトコルデータアクセスを提供するため、CIFSプロトコル318、NFSプロトコル320及びハイパーテキストトランスファープロトコル(HTTP)322をサポートする。また、ストレージオペレーティングシステム300は更に、RAID(Redundant Array of Independent Disks)プロトコル等のディスクストレージプロトコルを実施するディスクストレージ層324と、SCSI(Small Computer Systems Interface)プロトコル等のディスクアクセスプロトコルを実施するディスクドライバ層326とを含む。
【0028】
これらのディスクソフトウェア層とネットワーク及びファイルシステムプロトコル層との橋渡しをするのはWAFL層330であり、好ましくはWAFLファイルシステムを実施する。WAFLファイルシステムのディスク上のフォーマットは、例えば4キロバイト(kB)のブロックを用いたブロックベースのフォーマットであり、ファイルを表すのにinodeを使用している。inodeとはファイルに関するメタデータ等の情報を記憶するために使用されるデータ構造であり、例えば128バイトのデータ構造である。inodeに保持されるメタデータには、例えばそのファイルの所有者、ファイルのパーミッション、ファイルのサイズ、ファイルの種類、および、ファイルのディスク上の位置等が含まれる。WAFLファイルシステムは、ファイルハンドル、すなわちinode番号を含む識別子を用いてディスクからinodeを検索する。また、WAFL層330は、そのファイルシステムのレイアウトを記述するメタデータを記憶するためにファイルも使用する。これらのメタファイルには、特にinodeファイルが含まれる。
【0029】
動作時には、クライアント110からの要求は、例えばコンピュータネットワーク100を介して、従来のCIFSプロトコルのパケット120としてファイラー200のネットワークアダプタ208に転送される。メディアアクセス層310のネットワークドライバは、ネットワークアダプタと協働してその要求パケットをデータバッファ222にロードし、その入ってきた要求パケットを受信したファイラーの物理インタフェース218の名前を用いてそのバッファにマークを付ける。各バッファ222はヘッダ部分224及びデータ部分226からなり、入ってきたパケットはデータ部分にロードされる。ヘッダの内容には(1)バッファの種類、(2)様々なフラグ、及び(3)ファイラーによってマークが付けられた着信インタフェースが含まれ、これらがファイラーによって維持される。入ってきたパケットがロードされた後、バッファ222はネットワークプロトコルスタックが実質的に繰り上げられ、例えばファイラーのディスク上に記憶されたデータをフェッチすることによりその要求に対してサービスを提供する、適当なアプリケーションへ配送される。
【0030】
具体的には、ネットワークドライバ310は、そのバッファをWAFL層330へ転送する前にさらなる処理を行なうため、ネットワークプロトコル層312〜314またはCIFS層318上へ渡す。WAFLファイルシステムは、要求されたデータ(及びinode)が「コア」内、即ちメモリ204内に存在しなければ、要求されたデータ(及びinode)をディスク216からロード(検索)するための処理を行なう。その情報がメモリ内に存在しない場合、WFAL層330は、inode番号を用いてinodeファイル内に索引付けして適当なエントリにアクセスし、論理ボリュームブロック番号(VBN)を取得する。次いでWAFL層はその論理VBNをディスクストレージ(RAID)層324に渡し、ディスクストレージ(RAID)層324がその論理番号をディスクブロック番号にマッピングし、ディスクブロック番号をディスクドライバ層326の適当なドライバ(例えばSCSIドライバ等)へ送信する。ディスクドライバは、ディスク216のそのディスクブロック番号にアクセスし、要求されたデータブロックをファイラーで処理するためメモリ204にロードする。要求をサービスする際、CIFS層318は、フェッチされたデータに対してバッファプールの中から別の(応答)バッファ222を割り当て、更にその応答を最初の要求に関連付ける。即ち、CIFS層318は、入ってきた要求に関連する物理インタフェースを用いてその応答バッファにマークを付ける。
【0031】
前述のように、ファイラー200は複数のクライアント110に対してファイルサービスを提供するように構成されているため、通常、クライアントから発行された要求に応答してデータを返す。この応答性を向上させるため、本ファイラーは、クライアントから要求を受信するのに使用された物理インタフェース218と同じ物理インタフェースを介して実質的に応答を返すという「高速パス」技術を実施する。高速パス技術を実施するためには、CIFS層318でバッファヘッダー224内に高速パスフラグをアサートし、次いでそのバッファをプロトコルスタック「下方」のIP層312へ渡し、IP層でそのフラグの状態を検査する。高速パスフラグのアサートにより、その特定の応答についてはルート計算を実施する必要のないことがIP層に通知される。従って、その応答バッファを受信する宛先となるファイラー内のインタフェースは、その要求を受信した着信インタフェース218である。応答バッファがそのインタフェースへ転送され、要求されたデータがネットワーク100を介してクライアント110へ返される。
【0032】
ファイラーで受信されたクライアント要求についてデータストレージアクセスを実施するのに必要な上記ストレージオペレーティングシステム層中を通るソフトウェア「パス」は、代替としてハードウェアで実施することも可能である。即ち、本発明の代替の実施形態では、ストレージアクセス要求データパス350は、FPGA(Field Programmable Gate Array)またはACIC(Application Specific integrated circuit)内に論理回路として実施することもできる。この種のハードウェアによる実施は、クライアント110から発行されたファイルシステム要求パケット120に応答してファイラー200によって提供されるファイルサービスの性能を向上させることができる。さらに本発明の他の実施形態では、プロセッサ202からパケット処理及びストレージアクセス処理の負荷のいくらかまたはすべてを軽減させるようにアダプタ206、206の処理要素を構成し、これによってファイラーによって提供されるファイルサービスの性能を向上させることもできる。本明細書で説明する様々な処理、アーキテクチャ、及び手順は、ハードウェアでもファームウェアでも、あるいはソフトウェアでも実施することができるということは明らかである。
【0033】
本明細書で使用する場合、「ストレージオペレーティングシステム」という用語は、ストレージシステムにおいてストレージ機能を実施することが可能なコンピュータ実行可能コードを一般的に意味し、例えばファイルシステムセマンティック及びデータアクセス管理を実施するコンピュータ実行可能コードを意味している。この意味において、ONTAPソフトウェアは、マイクロカーネルとして実施され、WAFLファイルシステムセマンティックを実施してデータアクセスを管理するためのWAFL層を含むこのようなストレージオペレーティングシステムの一例である。このストレージオペレーティングシステムは、UNIX、Windows NT等の汎用オペレーティングシステム上で動作するアプリケーションプログラムとして実施することもできるし、本明細書で説明するストレージアプリケーションあるいは本明細書で説明するような設定可能な機能を有する汎用オペレーティングシステムとして実施することもできる。
【0034】
さらに当業者であれば、本明細書で説明する本発明の技術は、ストレージシステムとして実施されるスタンドアロンのコンピュータあるいはその一部、または、ストレージシステムを含むスタンドアロンのコンピュータあるいはその一部を含めて、任意の種類の特別な用途(例えばサーバ等)のコンピュータにも汎用コンピュータにも適用可能であることが分かるであろう。サーバは1以上のクライアントにアプリケーションサービスを提供するコンピュータとして定義され、このコンテクストにおいて、仮想サーバはクライアントに提供されるアプリケーションサービスのインスタンスである。また、本発明の教示は、これらに限定はしないが、ネットワークに取り付けられたストレージ環境、ストレージエリアネットワーク、及び、クライアントやホストコンピュータに直接取り付けられたディスクアセンブリ等を含む様々なストレージシステムアーキテクチャに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成された任意のサブシステム及びその他の装置またはシステムに関連する任意のサブシステムだけでなく、それらの構成も含むように広い意味で解釈すべきである。
【0035】
本発明は、ファイラー等の1つのサーバ内に、仮想ファイラー(vfiler)等の仮想サーバの複数のインスタンスを作成および維持する能力を提供するアーキテクチャに関するものである。vfilerは、マルチプロトコルサーバのインスタンスを確立するための、ファイラーのネットワークリソースおよびストレージリソースの論理的分割である。各vfilerは、ファイラープラットフォーム上の他のvfilerとは完全に独立して維持および実行される。そのため、ストレージの記憶単位及びネットワークインタフェースのネットワークアドレス等の専用ファイラーリソースを自由にグループ分けして「ハード」パーティションに分割することにより、ファイラー内にセキュリティドメインを確立することができる。さらに、ストレージオペレーティングシステム及びファイルシステム等の共通ファイラーリソースは、vfiler間で共有することができる。vfilerアーキテクチャは、「Architecture for Creating and Maintaining Virtual Filers on a Filer」と題した米国特許出願第(112056−0022)号に開示されており、これを参照することにより援用する。
【0036】
図4は、本発明に有利に用いることができるファイラー400の一実施形態を示す概略図である。ここで、ファイラーはストレージサービスプロバイダー(SSP)として機能し、ファイラープラットフォーム即ち「データセンター」内の複数のユーザまたはクライアントに対してデータストレージアプリケーションのサービスを提供する(「ホスティング」)する。データセンター400は複数の異なるクライアント環境410a,bに接続されており、クライアント環境の各々は独立した私設内部ネットワーク(「イントラネット」420a,b)を有している。各クライアント環境410はデータセンターの異なるvfilerに対応しており、データセンターは、クライアントの統一見解、またはRFC1918準拠のプライベートIPアドレス空間等のネットワークリソースの「名前空間」を用いてストレージ処理を実施している。
【0037】
具体的には、SSPデータセンターは2つの論理vfiler VF1およびVF2に編成され、VF1が第1のクライアント環境410aに関連し、VF2が第2のクライアント環境401bに関連している。各クライアントの私設イントラネット420a,bは、ネットワークアドレストランスレーション(NAT)デバイス422a,bおよび「ファイアウォール」424a,b等の中間ネットワークデバイスを通してインターネットに接続され、中間ネットワークデバイスがセキュアなイントラネットと「セキュアでない」インターネットとの間のトラフィックを制御している。しかしながら、ファイアウォール(およびNAT)の利用は一般的に性能を低下させるため、各イントラネット420a,bはクライアントのRFC1918準拠のイントラネットで始まりデータセンター400で終わる専用ネットワークパス426a,bを介してSSPに直接接続される。これにより、データセンター上のストレージリソースにアクセスするときに、各クライアントはプライベートアドレス空間のIPアドレスを利用できるようになる。
【0038】
各私設イントラネットが自分のプライベートIPアドレス名前空間内で一意のIPアドレスを保証していても、プライベート名前空間同士の間にこのような保証は存在しない。従って、「ホスティング」しているデータセンター400は重複するIPアドレスを有する複数の個別のクライアントIPアドレス空間に参加してしまい、競合する場合がある。依然としてデータセンターは、クライアントのイントラネットおよび内部アドレス空間内ですべてのデータ要求トラフィックの完全性および機密性を維持しつつ、これらの競合するIPアドレスに宛てられた要求に対してサービスを提供することが期待されている。
【0039】
IP空間
本発明は、複数のvfilerを有するように構成されたファイラーが、ネットワークアドレスの重複する可能性がある複数のプライベートネットワークアドレス空間に参加することを可能にする技術に関する。本発明によると、あるプライベートアドレス空間内のサービス要求がファイラーでサポートされる他のプライベートアドレス空間に対して機密性が保たれ且つそれらの空間から区別できるような方法で、適当なvfilerを選択することも更に可能になる。本発明では、IP空間は、ファイラーおよびそのストレージオペレーティングシステムが参加する各々の個別のIPアドレス空間を意味している。各vfilerは1つのIPアドレス空間に関連しており、従って1つのIP空間に属している。ファイラーの各インタフェースには、そのインタフェースをIP空間に実質的に「バインド」するIP空間識別子(ID)が「タグ付け」される(割り当てられる)。各vfilerの(および各IP空間内の)IPアドレスは一意なものでなければならない。
【0040】
ファイラーは複数のIP空間をサポートすることが好ましく、個々のIP空間はファイラーの「フロントエンド」即ちネットワークインタフェースに実装される。このコンテクストにおいて、ネットワークインタフェースという用語はIPアドレスを割り当て可能なインタフェースを意味しており、1以上のIPアドレスを割り当てることが可能な「物理的」NICと、VIF、VLANおよびエミュレーテッドLAN(ELAN)等の「ソフト」NICとが含まれる。デフォルトでは、1つのIP空間、即ちデフォルトIP名前空間しか存在しない。IPアドレスを割り当て可能なあらゆるネットワークインタフェースは、このデフォルトIP空間にまず属する。あるvfilerについて指定されたすべてのアドレスは、そのvfilerに関するIP空間にバインドされる。IP空間が指定されない場合には、デフォルトIP空間であるものと仮定される。
【0041】
図4を参照すると、各vfiler VF1、VF2は、1以上のIPアドレスが割り当てられた1以上のネットワークインタフェース408a,bを有するように構成されている。vfilerの各インタフェースには、IP空間識別子(ID)406a,bが割り当てられている。あるインタフェースに割り当てられるIP空間IDは、そのインタフェースに関するIP空間データベース構造に保持される。各vfiler VF1、VF2は、そのvfilerで処理されるすべての要求トラフィックについてルーティング処理を制御する1つのルーティングテーブル(即ち、そのIP空間のルーティングテーブルのうちの1つ)も保持している。IP空間は更に、ルーティングドメインおよび1以上のルーティングテーブルの使用にも関連している。IP空間ごとに1つのルーティングテーブルが存在し、複数のvfilerで1つのルーティングテーブルを共有することが可能である。任意のルーティングテーブルは、単にそのルーティングテーブルのIP空間に属する(従ってパケットをルーティングすべき)インタフェースを示すことしかできない。
【0042】
IP空間データベース
本発明の一態様によると、ある要求に対してサービスを提供するため適当なvfilerを選択するのに用いられる設定情報は様々なデータベース構造に格納されており、これらが協働してIP空間データ構造の静的に割り当てられたアレイ即ち「データベース」をメモリ204内に提供する。図5は、ネットワークインタフェースに関するインタフェースネットワーク(ifnet)データ構造510、ネットワークインタフェースのIPアドレスを表すインタフェースアドレス(ifaddr)データ構造540、ネットワークインタフェースの能力の「動的調節可能」な部分を表す仮想ファイラーネットワーク(vfnet)データ構造560、vfilerコンテクストデータ構造570、および、プロセスブロック(proc)データ構造590を含むIP空間データベース500を示す略ブロック図である。
【0043】
各ネットワークインタフェースは、そのインタフェースを記述する設定情報を保持するifnetデータ構造510に関連している。例えば、ifnetデータ構造510には、そのインタフェースのMACアドレスを保持するMACフィールド512、および、インタフェースの種類を示すタイプフィールド514が含まれる。IPリストフィールド516はそのインタフェースに割り当てられたIPアドレスのリストを保持する。このリストには、それらのIPアドレスに関する適当なifaddrデータ構造540を参照するポインタ518が含まれる。ifnet構造は、そのインタフェースに割り当てられたIP空間ID520を保持するフィールドも含む。他のフィールドには、他のifnet構造を参照するifnetポインタ522が保持される。ifnetデータ構造510は、ファンクションコールを介してメディアアクセス層310のドライバへのエントリポイントを提供する。
【0044】
ifnet構造は、(1)1つの物理インタフェース、(2)VIF等の物理インタフェースの集合、または(3)VLAN等の集合でない複数の物理インタフェースに関連する場合がある。1以上のNIC上の複数の物理インタフェースは、1つのIPアドレスにまとめて関連付けることもできる。物理インタフェースの1つのVIFへの統合は、IEEE802.3に規定されている。ただ1つのifnetデータ構造510だけがVIFに関連付けられる。これに対して、1つの物理リンクを介したデータトラフィックの、複数の独立したネットワークに対する複数の異なる要求への分離は、VLAN技術の基礎を提供する。ここで、1つの物理インタフェースは、複数のifnetデータ構造に対応している。入ってきたパケットの各々には、その入ってきた要求パケットをifnetデータ構造に関連付けるために用いられるVLAN IDが「タグ付け」される。1つのifnetデータ構造は、1つのIP空間IDしか有することができない。即ち、ifnet構造は異なるIP空間の間で共有することができない。従って、1つのifnet構造(または論理インタフェース)は1つのIP空間にしか属することができない。
【0045】
各ifaddr構造540は、ネットワークインタフェースに関連する論理ネットワークアドレスに関する情報を格納する。ifaddr構造には、IPアドレス等のネットワークアドレスのアドレスファミリーまたは種類を識別するafフィールド542と、そのifaddr構造に関する実際のIPアドレスを格納するアドレスフィールド544とが含まれる。フィールド546は、そのネットワークインタフェースに関する全ての他のifaddr構造のリストを保持する。各ifaddrデータ構造には、そのIPアドレスに関するvfilerコンテクストを参照するバックリンクポインタ550(例えばコアアドレスの)を保持するフィールドも含まれ、これによって、各ifaddrデータ構造が確実にただ1つのvfilerコンテクストに関連付けられる。バックリンクポインタ550は、vfiler設定時にifaddr構造にロードされる。
【0046】
vfilerは、オペレーティングシステムに関するユーザインタフェースの次のコマンドラインインタフェース(CLI)コマンドを用いて作成される。
vfiler create [name] [−s IPspace−name] [−i IP address(s)] [path to strage]
このvfiler作成コマンドは、インスタンス、即ちマルチプロトコルサーバのカレントvfilerを確立するために必要な設定情報を保持するvfilerコンテクストデータ構造570を作成するものである。各vfilerコンテクスト570の設定情報には、特に、IP空間ID572と、そのvfilerのIP空間についてのルーティングテーブルへのポインタ574とが含まれる。
【0047】
vfnetリスト576は、そのvfilerに割り当てられたvfnet構造(オブジェクト)のリストを保持するものである。このリストには適当なvfnetオブジェクト560を参照するポインタ578が含まれ、vfnetオブジェクト560の各々が1つのIPアドレスに対応している。各vfnetオブジェクト560には、リストの中からそのvfnet構造を探すために用いられるvfnet ID562を保持するフィールドと、他のvfnetオブジェクトを参照するvfnetポインタ566を保持するフィールドとが含まれる。ifaddrポインタフィールド564は、ifaddr構造540に対応するIPアドレスが設定されていればその構造540を参照するポインタを保持し、そうでなければフィールド564のポインタはヌルである。
【0048】
具体的には、各vfnetオブジェクトは、任意のネットワークインタフェース(例えばIPアドレスをNICに割り当てる場合はNIC)に割り当てることができる「流動的」能力を表している。複数のIPアドレスをNICに割り当てる場合、NICのこの能力は複数のvfnetオブジェクト間(即ち異なる場合もあるvfiler間)で有効に共有される。1つのifnet構造に1つのIPアドレスしか関連していない場合、1つのvfnetオブジェクト560だけが、即ち1つのvfilerだけがそのNICの能力を使用する。
【0049】
さらに、vfilerコンテクスト570は、特定のプロトコルまたはサブシステムのインスタンスについて必要な全ての情報(グローバル変数等)を含む、複数の「モジュール」データ構造を有する。例えば、CIFSモジュールデータ構造580は、ドメインコントローラ、CIFSプロトコルのアクティブなセッション、及び、CIFSプロトコルに関する様々なコントロールブロックに関する情報を含む、CIFSプロトコルのインスタンスについて必要な全ての情報を保持する。NFSプロトコル582、ネットワークインフォメーションシステム(NIS)サブシステム584およびドメインネームサービス(DNS)サブシステム等、vfilerに関するプロトコルおよびサブシステムの各々について、同様のモジュールごとのデータ構造が存在する。
【0050】
ストレージオペレーティングシステムの内部は、ファイラー上で実行されている制御のプロセスまたはスレッドの概念である。procデータ構造590は、ファイラー上で実行されているそのプロセススレッドのコンテクストを表している。本発明の一態様によると、このプロセスブロック構造は、ファイラー上で実行されているカレントvfilerコンテクストで動作しているスレッドの概念を含むように拡張される。そのため、procデータ構造590はカレントvfilerコンテクスト570を参照するポインタ592を含む。
【0051】
更に、IP空間データベース500のデータ構造内への索引として用いられるキーは、宛先IPアドレスとIP空間との組み合わせである。データベース500の出力は、(1)例えば入ってきた要求が正当なものである結果としてvfilerコンテクスト570、または(2)入ってきた要求が不適当なものである結果として失敗を提供する。本技術のこの態様により、インタフェースが異なるIP空間に関連している限り、ファイラーは2つの異なるインタフェース上で同じIPアドレスをサポートすることが可能になる。
【0052】
変換手順
本発明の他の態様では、IP空間IDは、入ってきた要求を処理するための正しいvfiler、および、出てゆく要求を処理するための適当なルーティングテーブルの選択を可能にする変換手順に適用される。入ってきた要求を受信するネットワークインタフェースのロジック(即ちネットワークコード)は、そのインタフェースのIP空間IDおよびその他の設定情報と共にその要求の宛先IPアドレスを用いて、その要求を処理するための正しいvfilerを選択する。出てゆく要求についてルーティング処理が必要な場合、カレントvfilerコンテクストに関するIP空間IDを含む設定情報を用いて適当なルーティングテーブルを選択する。この変換手順は、vfilerの2つのクリティカルパス、即ちvfilerで受信される要求が入ってきたパスとvfilerで発行された要求が出て行くパスとに用いられる。
【0053】
入力パス
図6は、本発明により入ってきた要求に対して正しいvfilerの選択を可能にする入力パス変換手順に必要なステップのシーケンスを示すフロー図である。このシーケンスはステップ600で開始してステップ602へ進み、ここで入ってきた要求(NFS、CIFS、HTTP、TelNetパケット等)を物理ファイラーのネットワークインタフェースで受信し、その要求をその要求の宛先IPアドレスとそのインタフェースのIP空間IDとに基いて適当なvfilerへ送信する。具体的には、ステップ604でメディアアクセス層310内の初期化プロセス等のネットワークコードがその要求が適正なIPパケット(即ち発信元IPアドレスおよび宛先IPアドレスが正しい)であるか否かを判定する。注意して欲しいのは、各インタフェースおよびその関連ドライバについてプロセス(スレッド)が存在する点である。例えば、ギガビットイーサネット(GBE)ドライバに関するプロセスはGBEスレッドである。要求が適正なものでない場合、その要求(パケット)はステップ606で破棄され、シーケンスはステップ632で終了する。要求が適正なものであれば、その要求に対し、そのパケットを受信しているGBEインタフェースドライバがIP空間「コンテクスト」を定義し、即ちそのインタフェースに関するIP空間IDを記録し、その要求をIP層312へ渡す(ステップ608)。
【0054】
次に、ネットワークコードは、その要求が属する上位レベルのプロトコル(UDP、TCP)を判定する。ここで、このネットワークコードはストレージオペレーティングシステム300のIP層の内部に存在するipinputコード部分を含み、ネットワークインタフェースドライバがその要求を適正なIPパケットであると判定すると、ネットワークインタフェースドライバによってそれが「呼び出される」。特に、要求をその高レベルプロトコルへ転送しなければならないvfilerコンテクスト内部に関して、判定が行なわれる。この判定の間に、その要求に関する適当なvfilerを判定しなければならない。
【0055】
要求に対して正しいvfilerを判定するため、ネットワークコードは入力ネットワークインタフェースに関するifnet構造510にアクセスし、そのIPリスト516を検査する(ステップ610)。ステップ612で、リスト上のIPアドレスと要求の宛先IPアドレスとの間に一致するものがあるか否かについて判定を行なう。一致するものがなければ、他のifnet構造510を参照するポインタ522をたどり、そのIPリストを宛先IPアドレスに一致するものが見つかるまでサーチする(ステップ614)。一致するものが見つかると、ステップ616で一致したifaddr構造540へのポインタ518をたどり、要求に対する正しいvfilerコンテクストデータ構造570を探すのに必要なバックリンクポインタ550を得る。しかしながら、場合によっては、入ってきた要求の宛先IPアドレスに一致するIPアドレスを有する複数のifaddr構造540が存在する場合もある。これは、SSPとして機能するファイラーにとって特別な場合であり、この場合、vfilerに関するプライベートアドレス空間は競合/重複するIPアドレスを有する場合がある。そのため、以下で説明するように、入力パスに関する変換手順にはパケットを受信したインタフェースのIP空間IDを用いて更に制限を加え、要求に対する適当なvfilerを識別しなければならない。
【0056】
適当なifnetおよびiaddr構造を見つけた後、ネットワークコードは、宛先IPアドレスに関するvfilerコンテクストデータ構造を見つけるのに必要なだけの十分な情報を有する。次いでIP空間IDを用いて比較処理を実施し、正しいvfilerを判定する。具体的には、適当なifnetデータ構造510に格納されたIP空間ID520とvfilerコンテクスト570に格納されたIP空間ID572とを比較する(ステップ620)。そのIP空間データ構造の中から選択された宛先IPアドレスおよびIP空間IDが、入ってきた要求の宛先IPアドレスおよび受信したインタフェースのIP空間IDと一致しなかった場合、ステップ624でその要求は破棄され、ステップ632でこのシーケンスは終了する。そうでなければ、その要求はそのvfilerによって処理される。これによって、ファイラーでの後続の要求の処理についてvfilerコンテクストが有効に「設定」される。
【0057】
詳しくは、IP層のネットワークコードは、システムコールを発行してprocデータ構造590のポインタ592をGBEスレッドに設定し、カレントvfilerコンテクスト570を参照することにより、そのvfilerコンテクストを設定する(呼び出す)(ステップ626)。次いでIP層はその要求をトランスポート層(例えばTCP)へ渡し、さらにそれをストレージオペレーティングシステムの多層プロトコルアクセス層(例えばCIFS)へ渡す。要求がプロトコルスタック層の「上方」へ渡されるのに従って(ステップ628)、vfilerコンテクストもその要求と共に「移動」される。ステップ630で正しいvfilerコンテクストが呼び出され、例えばそのvfilerが要求されたストレージリソースに対するアクセスを許可されているかを検証するのに必要な検査または境界チェック等の後続の処理の要求に制限を与える。
【0058】
例えば、IP層コードはTCP層コードを呼び出し、TCP層コードがそのプロトコルコントロールブロック(PCB)テーブルを検査して、要求に含まれるポート番号に対してオープンな「ソケット」が存在するか否かを判定する。このポート番号は、例えばCIFS層プロトコルなどの特定のプロトコルサーバを識別するために使用される。このPCBテーブルはvfilerおよびIP空間IDによって制限が加えられ、これによってカレントvfilerがオープンソケットを有しているか否かをTCP層314が判定できるようにしている。オープンソケットを有している場合、TCP層はTCP(NBT)層(図3に符号315で示す)を介してNetBIOSを呼び出し、CIFSプロトコルの組み立てを実施する。NBT層315は、完全に要求を受け取った後、CIFSプロトコル層318(これもGBEスレッドで動作している)を呼び出す。GBEプロセスで動作している全てのプロトコルおよびソフトウェアコードは、カレントvfilerのコンテクストを用いてvfilerごとのデータ構造を見つける。従って、CIFSコードを実行する場合、CIFSコードはカレントvfilerコンテクスト570のコンテクストで動作し、特に、カレントvfilerのCIFSモジュール580内で動作する。変数を参照する場合、カレントvfilerコンテクストのこのCIFSモジュールの中から検索される。
【0059】
詳しくは、vfilerコンテクストの呼び出しは、すべての「vfilerごとの」データ構造および関連プロセスを含む。これらのプロセスには、ネットワークから入ってくた要求に基いて、あるいはvfilerコンテクストIDを含むWAFLメッセージに基いて、カレントvfilerコンテクストを判定するプロセスが含まれる。CIFS認証プロセス等、vfilerの各インスタンスについて作成されるプロセスも、カレントvfilerのコンテクストで実行される。例えばCIFS認証プロセスは、入ってきた要求の正当性を確認するためにドメインコントローラに接続するとき、vfilerのそのコンテクストで動作する。各vfilerコンテクストに保持された認証情報(例えばNIS、DNS)によって、その要求が他のvfilerのユーザによって処理されることが防止される。
【0060】
他の例としては、vfilerがサーバとして機能し、特定のサーバポートに到着した要求を「listen」することにより、ソケット接続を確立/割り当てする場合を仮定する。割り当てられたソケットはvfilerコンテクストを有する。さらに、入ってきた後続の要求が単にそのファイラーに関係しているだけのサーバプロトコル、例えばバックアップ処理を実施するのに使用されるプロトコルにアクセスするものと仮定する。そのプロトコルに関連するポート番号を探してみると(PCBテーブルを用いて)、そのプロトコルについてのサービスは存在しないという判定になる。この理由は、vfilerコンテクスト内にその特定ポートをlistenするネットワークコードが存在しないからである。要求についてそのvfilerコンテクスト内に割り当てられたソケットが存在しないので、その要求は失敗する。入力パス変換手順についてのシーケンスはステップ632で終了する。
【0061】
出力パス
図7は、本発明による出力パス変換手順に必要なステップのシーケンスを示すフロー図であり、この変換手順によって出てゆく要求について適当なルーティングテーブル404の選択が可能になる。このシーケンスはステップ700で開始してステップ702へ進み、ここでvfilerが出てゆく要求を発行する。ステップ704でネットワークコードがその要求にルート計算が必要であるか否かを判定する。ルート計算が必要なければ、ステップ706で前述の高速パス技術を実施して性能を向上させる。しかしながら、ルーティング処理が必要である場合は、IP層のネットワークコードがルーティングテーブルに対してルックアップ処理を実施して、その要求を発行すべきインタフェースを判定する。ステップ708で、vfilerコンテクスト570のIP空間ID572を用いて正しいルーティングテーブルを選択する。即ち、IP空間IDを用いていったん正しいvfilerが選択された後は、そのvfilerコンテクスト570のルーティングテーブルポインタ574を用いて正しいルーティングテーブル404が選択される。
【0062】
次いでvfilerはそのルーティングテーブル404内にルックアップ処理を実施して(転送判定に従って)、ファイラー上の出力インタフェースを判定する(ステップ710)。上記のように、各ルーティングテーブル404にはIP空間が割り当てられているので、ルーティングテーブル更新パケットは適当なルーティングテーブルへ送信しなければならない。1つのIP空間は、複数のルーティングテーブル、即ち「ルーティングドメイン」を有する場合がある。各vfilerがルーティングテーブルを有するので、1つのIP空間が複数のvfilerを有する場合がある。1つのIP空間のすべてのルーティングテーブル(vfiler)は、複数のインタフェースを共有することが可能である。ステップ712で、要求をその出力インタフェースに転送し、ネットワーク上へ転送する。そしてこのシーケンスはステップ714で終了する。
【0063】
ブロードキャストパケット
ファイラーがSSPとして機能する場合、そのファイラーは自分のサービスを公表する能力およびブロードキャストパケットを発行する能力を有する必要がある。この場合、データセンター400は、あるvfilerのコンテクストで生成されたブロードキャストパケットを、確実にそのvfilerに関連するクライアントの私設イントラネット上だけに転送するようにしなければならない。さらに、あるイントラネットを介してデータセンターで受信されたブロードキャストパケットは、データセンター内に実現された様々なvfiler間で、そのパケットの発信元アドレスと宛先アドレスとの両方を識別する能力を有しなければならない。本発明によると、あるIP空間に宛てたブロードキャストパケットは、そのIP空間内の全てのネットワークインタフェースに「ブロードキャスト」される。これらのブロードキャストパケットは、適当なIP空間内のシステムにのみ制限される。
【0064】
具体的には、undirected broadcastパケットは、そのIP空間に属するすべてのインタフェースを介して転送される。このとき、IP空間IDが分かるように、vfilerコンテクストが設定される。そのIP空間IDを用いてifnetデータ構造510のリストを走査(「移動」)し、一致するIP空間IDを探す。次いで、それらの一致するIP空間IDを有するifnet構造に対応するインタフェースを介してそのブロードキャストパケットが転送(送出)される。一方、directed boradcastの場合、ifnet構造のリストを走査して一致するIPアドレスプレフィックスを探し、それらの一致したインタフェースだけを介して複製したブロードキャストパケットを送信する。
【0065】
前述のように、SSPデータセンターの各インタフェースには、1つのIP空間が割り当てられる。IP空間当たり1つのインタフェースを使用することに関する問題点は、vfilerアーキテクチャが、ファイラー上の物理インタフェースの数と同程度の数の異なるプライベートクライアントネットワークに制限されることである。この制限は、VLANタグを付けることによってなくすことも可能である。このVLANタグの付加は、データセンターで、異なるクライアントネットワークに対する個別のトラフィックに対して行なわれる。
【0066】
例えば図1および図4を参照すると、専用ネットワークパス426は、クライアントのRFC1918準拠のイントラネット420からデータセンター400に接続されたVLAN認識型共用L2スイッチ(スイッチ150に類似したもの)までを接続するように構成される。このVLAN認識型共用L2スイッチは、異なるクライアントパスを介して運ばれてきたトラフィックを異なるVLAN上へ転送し、そのトラフィックをVLANタグを付けたパケットとして1以上の共用リンク(リンク180等)を介してファイラーへ転送する。このトラフィックは、例えば1つの物理インタフェース408を介して、ファイラー/データセンターに到着する。
【0067】
層310のVLANドライバは、このデータトラフィックパケットの分離して、それらのパケットに付けられたVLAN IDに基いてそれらのパケットを異なるソフトウェアインタフェース(inet構造510)へ送信する。これらのソフトウェアインタフェース(「VLAN仮想インタフェース」は、異なるIP空間に属している場合がある。これらの仮想インタフェースは、異なるIP空間に割り当てられたIPアドレスを有する異なるVLANに対応している(および異なるクライアントネットワークに対応している)。vfilerの上位層ソフトウェアがデータトラフィックパケットを生成する場合、それらのパケットには適当なVLAN IDが「タグ付け」され、L2スイッチによってそのVLAN
IDで指定されたVLAN上のそれらの宛先のみに制限される。
【0068】
場合によっては、vfilerは、ルーティングテーブルで指定されていないデフォルトルートを介してパケットを送信することが望ましい場合もある。ルーティングテーブルの特徴は、ファイラーのインタフェースのうちの1つに対応したデフォルトルートである。通常、すべてのVLANトラフィックは、強制的に同じデフォルトルートを共用させられる。しかしながら、特に、異なるクライアントおよびそれらの異なる私設イントラネットが同じファイラーを共用するSSPの実装では、すべてのVLANが同じデフォルトルートを共用することはできない。本発明の一態様によると、ルーティングテーブル404は、1つのIP空間によってサポートされた各VLANに対応するデフォルトルートを用いて変更が施される。これによってvfilerは、ルーティングドメインコンテクストともvfilerコンテクストとも異なる個別のIP空間コンテクストが可能になる。
【0069】
ここまで、複数のvfilerを有するように構成されたファイラーが、ネットワークアドレスの重複する可能性がある複数のプライベートネットワークアドレス空間に参加することを可能にするための例示的実施形態を図示および説明してきたが、本発明の思想および範囲の中で様々な他の適応および変更が可能であると考えられる。例えば本発明の代替の実施形態として、vfilerは、要求の発信元IPアドレスに基いて、ファイラーのIPアドレスで正しく受信された要求を「フィルタ」することも考えられる。この場合、発信元IPアドレスのチェックは、例えばファイラーのNISドメインまたはDNSドメインレベルで実施される。従って、要求の宛先アドレスを用いて適当なvfilerが選択されても、そのvfilerは適切な権利またはパーミッションを有していなければ、その要求を受け入れない(処理しない)ことになる。
【0070】
上記の説明は、本発明の特定の実施形態に関して行なっている。しかしながら、説明した実施形態について、それらの利点のうちのいくらかまたは全部を達成しつつ、様々な変更および修正を施すことが可能であることは明らかである。従って、こうした変更および修正が本発明の真の思想および範囲に含まれるようにすることが付記した特許請求の範囲の目的である。
【図面の簡単な説明】
本発明の上記の利点及び更なる利点は添付の図面とともに下記の説明を参照することによってさらによく理解することができ、図面中で似たような符合は全く同じ要素あるいは機能的に類似した要素を指している。
【図1】本発明に有利に用いられる複数のクライアントおよび1つのサーバを含むコンピュータネットワークを示す略ブロック図である。
【図2】本発明に有利に用いられるネットワークストレージアプライアンスまたはファイラー等のサーバを示す略ブロック図である。
【図3】本発明に有利に用いられるストレージオペレーティングシステムを示す略ブロック図である。
【図4】本発明に有利に用いられるファイラーの一実施形態を示す略図である。
【図5】本発明に有利に用いられるIP空間データベースを示す略ブロック図である。
【図6】本発明による入力パス変換手順に必要なステップのシーケンスを示すフロー図である。
【図7】本発明による出力パス変換手順に必要なステップのシーケンスを示すフロー図である。

Claims (21)

  1. 複数の仮想サーバを有するように構成されたサーバが複数のプライベートネットワークアドレス空間に参加し、それらのアドレス空間内の要求に対してサービスの提供を可能にするための方法であって、
    仮想サーバの各々に、該仮想サーバの1以上のネットワークインタフェースに割り当てられた1以上のアドレスを有するIP空間を関連付けるステップと、前記仮想サーバに、該仮想サーバによって処理される要求についてのルーティング処理を制御する1以上のルーティングテーブルを設けるステップと、
    前記第1のIP空間IDを、入ってきた要求を処理するために用いられるカレント仮想サーバコンテクストおよび出てゆく要求を処理するために用いられる適当なルーティングテーブルの選択を可能にする変換手順に適用するステップと、
    からなる方法。
  2. 前記サーバがファイラーであり、前記仮想サーバが仮想ファイラー(vfiler)である、請求項1の方法。
  3. 前記適用するステップが、入力パス変換手順を使用するステップを含む、請求項2の方法。
  4. 前記使用するステップが、
    宛先アドレスを有する入ってきた要求を前記ネットワークインタフェースで受信するステップと、
    前記第1のIP空間IPを格納しているインタフェースネットワーク構造に保持されたアドレスのリストの中から、前記入ってきた要求の宛先アドレスに一致するものを探すステップと、
    一致が見つかったとき、第2のIP空間IDを格納しているvfilerコンテクスト構造を参照するバックリンクポインタを有するインタフェースアドレス構造への前記インタフェースネットワーク構造の第1のポインタをたどるステップと、
    からなる、請求項3の方法。
  5. 前記使用するステップが、
    前記第1のIP空間IDと前記第2のIP空間IDとを比較するステップと、
    前記第1のIP空間IDと前記第2のIP空間IDが一致した場合、前記入ってきた要求を処理するためのカレントvfilerコンテクストを選択するステップと、
    をさらに含む、請求項4の方法。
  6. 前記使用するステップが、前記カレントvfilerコンテクストを参照するためのプロセスブロックデータ構造の第2のポインタを設定するステップをさらに含み、これによって前記ファイラーでの後続の処理の要求に制限を加える、請求項5の方法。
  7. 前記後続の処理が、vfilerが要求されたストレージリソースへのアクセスを許可されていることを検証するために必要な検査または境界チェックのうちの1つを含む、請求項6の方法。
  8. 前記適用するステップが、出力パス変換手順を使用するステップを含む、請求項3の方法。
  9. 前記使用するステップが、
    vfilerから出てゆく要求を発行するステップと、
    前記要求にルート計算が必要であるか否かを判定するステップと、
    ルート計算が必要である場合、前記カレントvfilerコンテクストのルーティングテーブルポインタを用いて前記vfilerの適当なルーティングテーブルを選択して、前記出てゆく要求を処理するステップと、
    を含む、請求項8の方法。
  10. 前記選択するステップが、
    前記ルーティングテーブルに対するルックアップ処理を実施するステップと、
    前記出てゆく要求が転送されるべき出力インタフェースを判定するステップと、
    前記要求を前記出力インタフェースへ転送するステップと、
    を含む、請求項9の方法。
  11. 複数の仮想サーバを有するように構成されたファイルサーバが複数のプライベートネットワークアドレス空間に参加し、それらのアドレス空間内の要求に対してサービスの提供を可能にするシステムであって、
    ネットワークから入ってきた要求を受信するように構成されるとともに、ネットワークを介して出てゆく要求を転送するように構成された少なくとも1つのネットワークインタフェースを含むネットワークアダプタであって、該ネットワークインタフェースがアドレス及び該インタフェースをIP空間にバインドする第1のIP空間識別子(ID)を有する、ネットワークアダプタと、
    仮想サーバによって維持され、該仮想サーバによって処理される要求についてのルーティング処理を制御する複数のルーティングテーブルと、
    前記入ってきた要求の宛先アドレスおよび前記第1のIP空間IDを用いて該入ってきた要求を処理するためのカレント仮想サーバを選択するネットワークコードを含むオペレーティングシステムであって、前記出てゆく要求についてルーティング処理が必要である場合、前記ネットワークコードが更に前記カレント仮想サーバのルーティングテーブルポインタを用いて適当なルーティングテーブルを選択するようになっている、オペレーティングシステムと、
    前記ネットワークアダプタに接続され、前記オペレーティングシステムを実行するように構成され、これによって、入ってきた要求および出てゆく要求に関する変換手順に従ってネットワークおよびストレージアクセス処理を実施するプロセッサと、
    からなるシステム。
  12. 前記前記ファイルサーバがファイラーであり、前記仮想サーバが仮想ファイラー(vfiler)である、請求項11のシステム。
  13. 前記オペレーティングシステムがストレージオペレーティングシステムである、請求項12のシステム。
  14. 協働して前記カレントvfilerを選択するために用いられる設定情報を格納するIP空間データベースを提供する様々なデータ構造を維持するメモリをさらに含む、請求項13のシステム。
  15. 前記様々なデータ構造が、
    前記ネットワークインタフェースに関するインタフェースネットワーク(ifnet)構造と、
    前記ifnet構造に接続され、前記インタフェースのアドレスを表すインタフェースアドレス(ifaddr)構造と、
    前記ifaddr構造に接続されたvfilerコンテクスト構造と、
    前記vfilerコンテクスト構造に接続されたプロセスブロック(proc)構造と、
    を含む、請求項14のシステム。
  16. 前記ifnet構造が、前記ネットワークインタフェースに割り当てられたアドレスについてのifaddr構造を参照する第1のポインタ、および、前記インタフェースの第1のIP空間ID等の設定情報を含む、請求項15のシステム。
  17. 前記ifaddrデータ構造が、前記アドレスに関するvfilerコンテクスト構造を参照するバックリンクポインタを含む、請求項16のシステム。
  18. 前記vfilerコンテクスト構造が、第2のIP空間IDおよび前記ルーティングテーブルポインタを含む前記カレントvfilerを確立するために必要な設定情報を保持している、請求項17のシステム。
  19. 前記procデータ構造が前記ファイラー上で実行されているプロセススレッドのコンテクストを表わし、前記カレントvfilerを参照する第2のポインタを保持している、請求項18のシステム。
  20. 複数の仮想ファイラー(vfiler)を有するように構成されたファイラーが複数のプライベートネットワークアドレス空間に参加し、それらのアドレス空間内の要求に対してサービスを提供できるようにする装置であって、
    各vfilerに、該vfilerの1以上のネットワークインタフェースに割り当てられた1以上のアドレスを有するIP空間を関連付けるための手段と、
    各ネットワークインタフェースに、第1のIP空間識別子(ID)をタグ付けするための手段と、
    前記vfilerに、該vfilerによって処理される要求についてのルーティング処理を制御する1以上のルーティングテーブルを設けるための手段と、
    前記第1のIP空間IDを、入ってきた要求を処理するために用いられるカレントvfilerコンテクストおよび出てゆく要求を処理するために用いられる適当なルーティングテーブルの選択を可能にする変換手順に適用するための手段と、
    からなる装置。
  21. 複数の仮想ファイラー(vfiler)を有するように構成されたファイラーが複数のプライベートネットワークアドレス空間に参加し、それらのアドレス空間内の要求に対してサービスを提供できるようにするための実行可能プログラム命令を保持するコンピュータ読取可能媒体であって、該実行可能プログラム命令が、
    各vfilerに、該vfilerの1以上のインタフェースに割り当てられた1以上のアドレスを有するIP空間を関連付けるためのプログラム命令と、
    各ネットワークインタフェースに第1のIP空間識別子(ID)をタグ付けするためのプログラム命令と、
    前記vfilerに、該vfilerで処理される要求についてのルーティング処理を制御する1以上のルーティングテーブルを設けるためのプログラム命令と、
    前記第1のIP空間IDを、入ってきた要求を処理するために用いられるカレントvfilerコンテクストおよび出てゆく要求を処理するために用いられる適当なルーティングテーブルの選択を可能にする変換手順に適用するためのプログラム命令と、
    からなる、コンピュータ読取可能媒体。
JP2002379361A 2001-12-28 2002-12-27 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術 Pending JP2004038922A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/035,666 US6895429B2 (en) 2001-12-28 2001-12-28 Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009229470A Division JP5167225B2 (ja) 2001-12-28 2009-10-01 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術

Publications (2)

Publication Number Publication Date
JP2004038922A true JP2004038922A (ja) 2004-02-05
JP2004038922A5 JP2004038922A5 (ja) 2006-02-23

Family

ID=21884052

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002379361A Pending JP2004038922A (ja) 2001-12-28 2002-12-27 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術
JP2009229470A Expired - Fee Related JP5167225B2 (ja) 2001-12-28 2009-10-01 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009229470A Expired - Fee Related JP5167225B2 (ja) 2001-12-28 2009-10-01 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術

Country Status (4)

Country Link
US (2) US6895429B2 (ja)
EP (1) EP1326408B1 (ja)
JP (2) JP2004038922A (ja)
DE (1) DE60238104D1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072647A (ja) * 2004-09-01 2006-03-16 Canon Inc ファイル管理装置
JP2007533030A (ja) * 2004-04-12 2007-11-15 ネットワーク・アプライアンス・インコーポレイテッド 物理的ストレージアプライアンス内で実行される仮想ストレージアプライアンスにおいてブロックベースのプロトコルを利用することが可能なシステム及び方法
JP2014501995A (ja) * 2011-01-05 2014-01-23 アリババ・グループ・ホールディング・リミテッド エラスティックコンピューティングクラウドシステムのアップグレード

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US8112545B1 (en) * 2000-12-19 2012-02-07 Rockstar Bidco, LP Distributed network address translation control
JP4632574B2 (ja) * 2001-05-25 2011-02-16 株式会社日立製作所 記憶装置およびファイルデータのバックアップ方法およびファイルデータのコピー方法
US8417788B1 (en) * 2001-09-28 2013-04-09 Emc Corporation File system for virtual local area network
US6895429B2 (en) * 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US7360034B1 (en) * 2001-12-28 2008-04-15 Network Appliance, Inc. Architecture for creating and maintaining virtual filers on a filer
US7099319B2 (en) * 2002-01-23 2006-08-29 International Business Machines Corporation Virtual private network and tunnel gateway with multiple overlapping, remote subnets
US7143307B1 (en) 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
US7194519B1 (en) 2002-03-15 2007-03-20 Network Appliance, Inc. System and method for administering a filer having a plurality of virtual filers
US20030188002A1 (en) * 2002-03-29 2003-10-02 Alan Deikman Network controller with VLAN device drivers for interfacing with VLANS
US7447778B2 (en) * 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7404012B2 (en) * 2002-05-06 2008-07-22 Qlogic, Corporation System and method for dynamic link aggregation in a shared I/O subsystem
US7356608B2 (en) * 2002-05-06 2008-04-08 Qlogic, Corporation System and method for implementing LAN within shared I/O subsystem
US7171495B2 (en) * 2002-05-06 2007-01-30 Silverstorm Technologies, Inc. System and method for implementing virtual adapters and virtual interfaces in a network system
US7328284B2 (en) * 2002-05-06 2008-02-05 Qlogic, Corporation Dynamic configuration of network data flow using a shared I/O subsystem
JP4382328B2 (ja) * 2002-06-11 2009-12-09 株式会社日立製作所 セキュアストレージシステム
US7711539B1 (en) * 2002-08-12 2010-05-04 Netapp, Inc. System and method for emulating SCSI reservations using network file access protocols
US7606156B2 (en) * 2003-10-14 2009-10-20 Delangis Eric M Residential communications gateway (RCG) for broadband communications over a plurality of standard POTS lines, with dynamic allocation of said bandwidth, that requires no additional equipment or modifications to the associated class 5 offices or the PSTN at large
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7185106B1 (en) * 2002-11-15 2007-02-27 Juniper Networks, Inc. Providing services for multiple virtual private networks
US20040098510A1 (en) * 2002-11-15 2004-05-20 Ewert Peter M. Communicating between network processors
JP4567293B2 (ja) * 2003-01-21 2010-10-20 株式会社日立製作所 ファイルサーバ
US7426189B2 (en) * 2003-07-15 2008-09-16 Hewlett-Packard Development Company, L.P. Network controller
US7127505B2 (en) 2003-08-15 2006-10-24 Internet Associates, Llc Methods, computer systems, and computer readable media for generating displays of sets of network addresses with status indicators
US7330907B2 (en) 2003-10-02 2008-02-12 Internet Associates, Llc Methods, computer systems, and computer readable media for controlling the status of network address space
JP4053967B2 (ja) * 2003-11-20 2008-02-27 株式会社日立コミュニケーションテクノロジー Vlanサーバ
EP1545059B1 (en) * 2003-12-16 2007-03-07 Alcatel System comprising a terminal system, an access multiplexer and a network
US7451203B2 (en) * 2003-12-22 2008-11-11 Hewlett-Packard Development Company, L.P. Method and system for communicating between a management station and at least two networks having duplicate internet protocol addresses
JP4448719B2 (ja) 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
JP4343760B2 (ja) * 2004-04-28 2009-10-14 株式会社日立製作所 ネットワークプロトコル処理装置
JP4500118B2 (ja) * 2004-07-06 2010-07-14 株式会社日立製作所 ストレージ装置
US7711780B1 (en) * 2004-07-20 2010-05-04 Oracle America, Inc. Method for distributed end-to-end dynamic horizontal scalability
US7519813B1 (en) * 2004-08-02 2009-04-14 Network Appliance, Inc. System and method for a sidecar authentication mechanism
JP4437432B2 (ja) * 2004-09-30 2010-03-24 株式会社日立製作所 計算機システム
KR100646858B1 (ko) * 2004-12-08 2006-11-23 한국전자통신연구원 Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법
US8984140B2 (en) * 2004-12-14 2015-03-17 Hewlett-Packard Development Company, L.P. Managing connections through an aggregation of network resources providing offloaded connections between applications over a network
US7496037B2 (en) * 2005-06-14 2009-02-24 International Business Machines Corporation Apparatus, system, and method for facilitating delivery of asynchronous response messages
US20090125958A1 (en) * 2005-11-23 2009-05-14 Pak Siripunkaw Method of upgrading a platform in a subscriber gateway device
US7865612B2 (en) * 2006-01-31 2011-01-04 Genband Us Llc Method and apparatus for partitioning resources within a session-over-internet-protocol (SoIP) session controller
US7861003B2 (en) * 2006-01-31 2010-12-28 Genband Us Llc Adaptive feedback for session over internet protocol
US7860990B2 (en) * 2006-01-31 2010-12-28 Genband Us Llc Session data records and related alarming within a session over internet protocol (SOIP) network
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8924524B2 (en) 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US7814541B1 (en) * 2006-05-19 2010-10-12 Array Networks, Inc. Virtual routing for virtual local area networks having overlapping IP addresses
US7522595B2 (en) * 2006-06-16 2009-04-21 Cisco Technology, Inc. Communicating packets between forwarding contexts using virtual interfaces
US7730197B2 (en) * 2006-06-30 2010-06-01 International Business Machines Corporation Server-based acquisition and usage of dynamic MAC addresses in a virtualized ethernet environment
US7970851B2 (en) * 2006-10-31 2011-06-28 Netapp, Inc. Method and system for managing and monitoring virtual storage servers of a hosting storage server
US8190641B2 (en) 2007-02-13 2012-05-29 Netapp, Inc. System and method for administration of virtual servers
US8607046B1 (en) 2007-04-23 2013-12-10 Netapp, Inc. System and method for signing a message to provide one-time approval to a plurality of parties
US7925749B1 (en) 2007-04-24 2011-04-12 Netapp, Inc. System and method for transparent data replication over migrating virtual servers
US8205218B1 (en) * 2007-06-29 2012-06-19 Emc Corporation Data storage system having common software environment
US7958246B2 (en) * 2007-08-09 2011-06-07 Kount Inc. Establishing unique sessions for DNS subscribers
US7912062B2 (en) * 2007-09-28 2011-03-22 Genband Us Llc Methods and apparatus for managing addresses related to virtual partitions of a session exchange device
US8412809B2 (en) * 2007-10-24 2013-04-02 International Business Machines Corporation Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
US8108911B2 (en) 2007-11-01 2012-01-31 Comcast Cable Holdings, Llc Method and system for directing user between captive and open domains
US8028062B1 (en) * 2007-12-26 2011-09-27 Emc Corporation Non-disruptive data mobility using virtual storage area networks with split-path virtualization
JP2009176033A (ja) 2008-01-24 2009-08-06 Hitachi Ltd ストレージシステム及びその消費電力削減方法
JP5410025B2 (ja) * 2008-03-07 2014-02-05 株式会社日立製作所 ストレージシステム及びその管理方法
US7908353B2 (en) * 2008-04-11 2011-03-15 International Business Machines Corporation Managing overlapping address spaces
US8170123B1 (en) 2008-04-15 2012-05-01 Desktone, Inc. Media acceleration for virtual computing services
US8238238B2 (en) * 2008-05-16 2012-08-07 Microsoft Corporation Performing networking tasks based on destination networks
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8171111B1 (en) * 2008-08-07 2012-05-01 United Services Automobile Association (Usaa) Systems and methods for non-specific address routing
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
JP5199000B2 (ja) * 2008-09-25 2013-05-15 株式会社日立製作所 ファイルサーバリソース分割方法、システム、装置及びプログラム
CA2756289C (en) 2009-04-01 2016-02-02 Nicira Networks, Inc. Method and apparatus for implementing and managing virtual switches
KR101337559B1 (ko) * 2009-10-27 2013-12-06 한국전자통신연구원 가상화 지원 프로그래머블 플랫폼 장치 및 패킷 전달 방법
US8654659B2 (en) * 2009-12-23 2014-02-18 Citrix Systems, Inc. Systems and methods for listening policies for virtual servers of appliance
US8958292B2 (en) 2010-07-06 2015-02-17 Nicira, Inc. Network control apparatus and method with port security controls
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
JP4721082B1 (ja) * 2010-09-28 2011-07-13 株式会社Csk Vpn接続システム
US8447894B2 (en) 2011-01-05 2013-05-21 Alibaba Group Holding Limited Upgrading an elastic computing cloud system
US8745266B2 (en) * 2011-06-30 2014-06-03 Citrix Systems, Inc. Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request
US8745102B2 (en) * 2011-07-12 2014-06-03 PLAiR Media, Inc. Distributed storage method and system
US10091028B2 (en) 2011-08-17 2018-10-02 Nicira, Inc. Hierarchical controller clusters for interconnecting two or more logical datapath sets
EP3605969B1 (en) 2011-08-17 2021-05-26 Nicira Inc. Distributed logical l3 routing
US9288104B2 (en) 2011-10-25 2016-03-15 Nicira, Inc. Chassis controllers for converting universal flows
US9178833B2 (en) 2011-10-25 2015-11-03 Nicira, Inc. Chassis controller
US9137107B2 (en) 2011-10-25 2015-09-15 Nicira, Inc. Physical controllers for converting universal flows
US9203701B2 (en) 2011-10-25 2015-12-01 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
EP2748714B1 (en) 2011-11-15 2021-01-13 Nicira, Inc. Connection identifier assignment and source network address translation
US10560283B2 (en) 2012-01-23 2020-02-11 The Faction Group Llc System and method for a multi-tenant datacenter with layer 2 interconnection and cloud storage
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
EP2748706B1 (en) 2012-04-18 2020-01-22 Nicira Inc. Exchange of network state information between forwarding elements
US9450859B2 (en) * 2012-06-15 2016-09-20 Citrix Systems, Inc. Systems and methods for deriving unique MAC address for a cluster
US9210079B2 (en) 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
US8769105B2 (en) 2012-09-14 2014-07-01 Peaxy, Inc. Software-defined network attachable storage system and method
US9253158B2 (en) 2013-08-23 2016-02-02 Vmware, Inc. Remote access manager for virtual computing services
US9794186B2 (en) 2014-03-27 2017-10-17 Nicira, Inc. Distributed network address translation for efficient cloud service access
US9825854B2 (en) 2014-03-27 2017-11-21 Nicira, Inc. Host architecture for efficient cloud service access
US9338091B2 (en) 2014-03-27 2016-05-10 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks
US20150347402A1 (en) * 2014-05-29 2015-12-03 Netapp, Inc. System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
US9763518B2 (en) 2014-08-29 2017-09-19 Cisco Technology, Inc. Systems and methods for damping a storage system
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) * 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10136359B2 (en) * 2015-06-30 2018-11-20 Qualcomm Incorporated Traffic flow migration in backhaul networks
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US9806984B1 (en) * 2015-12-31 2017-10-31 EMC IP Holding Company LLC Separating network traffic among virtual servers
KR102538895B1 (ko) 2016-04-19 2023-06-01 삼성전기주식회사 적층 세라믹 전자부품의 제조방법 및 적층 세라믹 전자부품
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
KR102059441B1 (ko) 2017-01-02 2019-12-27 삼성전기주식회사 커패시터 부품
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10681000B2 (en) 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10637800B2 (en) 2017-06-30 2020-04-28 Nicira, Inc Replacement of logical network addresses with physical network addresses
US10454930B2 (en) * 2017-07-14 2019-10-22 EMC IP Holding Company LLC System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
KR101992450B1 (ko) 2017-08-23 2019-06-25 삼성전기주식회사 커패시터 부품 및 그 제조 방법
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
EP0490980B1 (en) 1989-09-08 1999-05-06 Auspex Systems, Inc. Multiple facility operating system architecture
US5432907A (en) * 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
JP3751018B2 (ja) 1993-06-03 2006-03-01 ネットワーク・アプライアンス・インコーポレイテッド ライトエニウエアファイルシステムレイアウト
EP0701716B1 (en) 1993-06-03 2002-08-14 Network Appliance, Inc. Method and file system for allocating blocks of files to storage space in a RAID disk system
US6064671A (en) * 1995-12-08 2000-05-16 Killian; Michael G. Multi-homed end system for increasing computers network bandwidth
US5870550A (en) 1996-02-26 1999-02-09 Network Engineering Software Web server employing multi-homed, moldular framework
US5835720A (en) * 1996-05-17 1998-11-10 Sun Microsystems, Inc. IP discovery apparatus and method
WO1999023571A1 (en) * 1997-11-03 1999-05-14 Inca Technology, Inc. Automatically configuring network-name-services
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
IE20000203A1 (en) * 1999-03-25 2001-02-21 Converge Net Technologies Inc Storage domain management system
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US7865596B2 (en) * 2000-11-02 2011-01-04 Oracle America, Inc. Switching system for managing storage in digital networks
US7260648B2 (en) * 2001-01-25 2007-08-21 Ericsson, Inc. Extension of address resolution protocol (ARP) for internet protocol (IP) virtual networks
US6895429B2 (en) * 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007533030A (ja) * 2004-04-12 2007-11-15 ネットワーク・アプライアンス・インコーポレイテッド 物理的ストレージアプライアンス内で実行される仮想ストレージアプライアンスにおいてブロックベースのプロトコルを利用することが可能なシステム及び方法
JP4758424B2 (ja) * 2004-04-12 2011-08-31 ネットアップ,インコーポレイテッド 物理的ストレージアプライアンス内で実行される仮想ストレージアプライアンスにおいてブロックベースのプロトコルを利用することが可能なシステム及び方法
JP2006072647A (ja) * 2004-09-01 2006-03-16 Canon Inc ファイル管理装置
JP4574287B2 (ja) * 2004-09-01 2010-11-04 キヤノン株式会社 ファイル管理装置
JP2014501995A (ja) * 2011-01-05 2014-01-23 アリババ・グループ・ホールディング・リミテッド エラスティックコンピューティングクラウドシステムのアップグレード

Also Published As

Publication number Publication date
US6895429B2 (en) 2005-05-17
DE60238104D1 (de) 2010-12-09
JP5167225B2 (ja) 2013-03-21
EP1326408B1 (en) 2010-10-27
US20030135578A1 (en) 2003-07-17
EP1326408A3 (en) 2003-12-17
EP1326408A2 (en) 2003-07-09
US20050144292A1 (en) 2005-06-30
JP2010050988A (ja) 2010-03-04
US7512744B2 (en) 2009-03-31

Similar Documents

Publication Publication Date Title
JP5167225B2 (ja) 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術
JP4726982B2 (ja) ファイラー上に仮想ファイラーを作成及び維持するアーキテクチャ
US7917598B1 (en) System and method for administering a filer having a plurality of virtual filers
JP4343760B2 (ja) ネットワークプロトコル処理装置
US8819211B2 (en) Distributed policy service
US7840699B2 (en) Name resolution server and packet transfer device
US7222150B1 (en) Network server card and method for handling requests received via a network interface
US6151331A (en) System and method for providing a proxy FARP for legacy storage devices
US20060230148A1 (en) TCP forwarding of client requests of high-level file and storage access protocols in a network file server system
WO2017105906A1 (en) Shared multi-tenant domain name system (dns) server for virtual networks
US20050163123A1 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
JP2004192305A (ja) iSCSIストレージ管理方法及び管理システム
US8359379B1 (en) Method of implementing IP-based proxy server for ISCSI services
WO2017096888A1 (zh) 域名解析系统的实现方法及装置
US8458176B2 (en) Method and system for providing a directory overlay
CN109450768B (zh) 容器互联的方法及用于容器互联的系统
US7418507B2 (en) Virtual resource serving of consolidated server shares
JP4485875B2 (ja) ストレージ接続変更方法、ストレージ管理システム及びプログラム
US7698424B1 (en) Techniques for presenting multiple data storage arrays to iSCSI clients as a single aggregated network array
JP2005318653A (ja) 名前解決サーバおよびパケット転送装置
CN116132542A (zh) 容器网络管理方法、容器网络插件以及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602