ネットワークファイルシステム

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ネットワークファイルシステムNFS)は、1984年にSunMicrosystems (Sun)によって最初に開発された分散ファイルシステムプロトコルであり[2] 、クライアントコンピュータ のユーザーがローカルストレージにアクセスするのと同じようにコンピュータネットワーク経由でファイルにアクセスできるようにします。NFSは、他の多くのプロトコルと同様に、Open Network Computing Remote Procedure Call(ONC RPC)システム上に構築されています。NFSは、 Request for Comments (RFC)で定義されたオープンIETF標準であり、誰でもプロトコルを実装できます。

バージョンとバリエーション

Sunは、社内の実験目的でのみバージョン1を使用しました。開発チームがNFSバージョン1に大幅な変更を加え、Sunの外部にリリースしたとき、バージョンの相互運用とRPCバージョンのフォールバックをテストできるように、新しいバージョンをv2としてリリースすることにしました。[3] [4]

NFSv2

プロトコルのバージョン2(RFC 1094、1989年3月に定義)は、もともとユーザーデータグラムプロトコル(UDP)上でのみ動作していました。その設計者は、コアプロトコルの外部で実装されたロック(たとえば)を使用して、サーバー側をステートレスに保つことを意図していました。NFSバージョン2の作成に携わった人々には、Russel SandbergBob LyonBill JoySteveKleimanなどが含まれます。[2] [5]

仮想ファイルシステムインターフェイスにより、モジュール式の実装が可能になり、単純なプロトコルに反映されます。1986年2月までに、Euniceを使用したSystem Vリリース2、DOS、VAX / VMSなどのオペレーティングシステムの実装が実証されました。[5] NFSv2では、 32ビットの制限 により、ファイルの最初の2GBのみを読み取ることができます。

NFSv3

バージョン3(RFC 1813、1995年6月)が追加されました:

  • 2ギガバイト(GB)を超えるファイルを処理するための64ビットファイルサイズとオフセットのサポート。
  • 書き込みパフォーマンスを向上させるための、サーバーでの非同期書き込みのサポート。
  • 再フェッチの必要性を回避するための、多くの応答での追加のファイル属性。
  • READDIRPLUS操作。ディレクトリをスキャンするときに、ファイルハンドル[6]と属性をファイル名とともに取得します。
  • その他のさまざまな改善。

SunMicrosystems内の最初のNFSバージョン3の提案は、NFSバージョン2のリリースから間もなく作成されました。主な動機は、NFSバージョン2での同期書き込み操作のパフォーマンスの問題を軽減する試みでした。[7] 1992年7月までに、実装実践により、NFSバージョン2の多くの欠点が解決され、ラージファイルサポート(64ビットファイルサイズとオフセット)の欠如だけが差し迫った問題になりました。これは、新しくリリースされた64ビットRISCプロセッサであるAlpha 21064をサポートするために64ビットバージョンのUltrixが導入されたことで、 Digital EquipmentCorporationにとって深刻な問題となったバージョン3の導入時点で、TCPのベンダーサポートはトランスポート層プロトコルが増加し始めました。いくつかのベンダーは、トランスポートとしてTCPを使用するNFSバージョン2のサポートをすでに追加していましたが、Sun Microsystemsは、バージョン3のサポートを追加すると同時に、NFSのトランスポートとしてTCPのサポートを追加しました。WAN経由でNFSを使用して作成されたトランスポートとしてTCPを使用するより実現可能であり、ユーザーデータグラムプロトコルによって課せられた8KBの制限を超えるより大きな読み取りおよび書き込み転送サイズの使用を許可しました

NFSv4

Andrew File System(AFS)とServer Message Block (SMB、CIFSとも呼ばれる)の影響を受けたバージョン4(RFC 3010、2000年12月、RFC 3530、2003年4月、RFC 7530、2015年3月に改訂)には、パフォーマンスの向上が含まれています。強力なセキュリティを義務付け、ステートフルプロトコルを導入します。[8]バージョン4は、Sun MicrosystemsがNFSプロトコルの開発を引き渡した 後、インターネット技術特別調査委員会(IETF)で開発された最初のバージョンになりました。

NFSバージョン4.1(RFC 5661、2010年1月、RFC 8881、2020年8月に改訂)は、複数のサーバーに分散されたファイルへのスケーラブルな並列アクセス(pNFS拡張)を提供する機能など、クラスター化されたサーバー展開を活用するプロトコルサポートを提供することを目的としています。バージョン4.1には、セッショントランキングメカニズム(NFSマルチパスとも呼ばれます)が含まれており、一部のエンタープライズソリューションではVMwareESXiとして利用できます。

NFSバージョン4.2(RFC 7862)は2016年11月に公開され[9]、サーバー側のクローンとコピー、アプリケーションI / Oアドバイス、スパースファイル、スペース予約、アプリケーションデータブロック(ADB)、sec_l​​abelでNFSとラベル付けされた新機能が含まれていますこれは、任意のMACセキュリティシステムと、pNFSの2つの新しい操作(LAYOUTERRORおよびLAYOUTSTATS)に対応します。

以前のバージョンに対するNFSv4の大きな利点の1つは、サービスの実行に使用されるUDPまたはTCPポートが1つだけである2049です。これにより、ファイアウォール間でのプロトコルの使用が簡素化されます。

その他の拡張機能

バージョン2およびバージョン3の拡張機能であるWebNFSを使用すると、NFSをWebブラウザーに簡単に統合し、ファイアウォールを介した操作を可能にします。2007年、SunMicrosystemsはクライアント側のWebNFS実装をオープンソース化しました。[10]

さまざまなサイドバンドプロトコルがNFSに関連付けられるようになりました。ノート:

  • トラステッドNFS(TNFS)[14]

プラットフォーム

NFSは、Unixオペレーティングシステム(SolarisAIXHP-UXなど)、AppleのmacOS、およびUnixライクなオペレーティングシステム(LinuxFreeBSDなど)でよく使用されます。また、Acorn RISC OS[15] AmigaOSクラシックMac OSOpenVMS[4] MS-DOS[16] Microsoft Windows[17] OS / 2[18] ArcaOSなどのオペレーティングシステムでも利用できます。 [19] Novell NetWare[20]およびIBMi[21]代替のリモートファイルアクセスプロトコルには、サーバーメッセージブロック(SMB、CIFSとも呼ばれる)、Apple Filing Protocol(AFP)、NetWare Core Protocol(NCP)、およびOS / 400ファイルサーバーファイルシステム(QFileSvr.400)が含まれます。

SMBおよびNetWareコアプロトコル(NCP)は、MicrosoftWindowsを実行しているシステムでNFSよりも頻繁に発生します。Apple Macintoshシステムでは、AFPはNFSよりも頻繁に発生します。QFileSvr.400は、IBMiシステムでより頻繁に発生します。2012年のHaikuは、Google Summer ofCodeプロジェクトの一部としてNFSv4サポートを追加しました。

2013年11月22日現在のNFSSPECsfs2008のパフォーマンス比較

典型的な実装

あるマシン(クライアント)が別のマシン(NFSサーバーに保存されているデータにアクセスする必要があるUnixスタイルのシナリオを想定すると、次のようになります。

  1. サーバーは、デフォルトでとして実行されるNFSデーモンnfsdプロセスを実装して、そのデータをクライアントが一般的に利用できるようにします。
  2. サーバー管理者は、通常は構成ファイルとコマンドを使用して、ディレクトリの名前とパラメーターをエクスポートし、何を使用可能にするかを決定します。/etc/exportsexportfs
  3. サーバーのセキュリティ管理により、検証済みのクライアントを認識して承認できるようになります。
  4. サーバーネットワーク構成により、適切なクライアントが任意のファイアウォールシステムを介してサーバーとネゴシエートできるようになります。
  5. クライアントマシンは、通常、コマンドを発行することにより、エクスポートされたデータへのアクセスを要求しますmount(クライアントはサーバー(rpcbind)にNFSサーバーが使用しているポートを要求し、クライアントはNFSサーバー(nfsd)に接続し、nfsdは要求をmountdに渡します)
  6. すべてがうまくいけば、クライアントマシンのユーザーは、許可されたパラメーター内でサーバーにマウントされたファイルシステムを表示して操作できます。

NFSマウントプロセスの自動化が行われる可能性があることに注意してください—おそらく使用/etc/fstab および/または自動マウント機能。

プロトコル開発

ONCプロトコル(当時はSunRPCと呼ばれていました)の開発中、同等の機能を提供したのはApolloのネットワークコンピューティングシステム(NCS)のみでした。2つの競合するグループは、2つのリモートプロシージャコールシステムの根本的な違いをめぐって開発されました。データエンコーディングの方法に焦点を当てた議論—接続の両方のピアがリトルエンディアンのマシンアーキテクチャを持っていたとしても、ONCの外部データ表現(XDR)は常に整数をビッグエンディアンの順序でレンダリングしましたが、NCSの方法はバイトスワップを回避しようとしました2つのピアがマシンアーキテクチャで共通のエンディアンを共有するときはいつでも。ネットワークコンピューティングフォーラムと呼ばれる業界グループ2つのネットワークコンピューティング環境を調整する(最終的に失敗した)試みで形成された(1987年3月)。

1987年、SunとAT&Tは、AT&TのUNIX System Vリリース4を共同開発すると発表しました。[22]これにより、AT&Tの他のUNIXシステムのライセンシーの多くは、Sunが有利な立場に置かれることを懸念し、最終的にデジタル機器につながりました。 、HP、IBM、および1988年にOpen Software Foundation(OSF)を形成したその他の企業。皮肉なことに、SunとAT&Tは、以前はSunのNFSとAT&Tのリモートファイルシステム(RFS)をめぐって競合し、デジタル機器によるRFSを介したNFSの迅速な採用はHP、IBM、および他の多くのコンピューターベンダーは、大多数のユーザーにNFSを支持するように勧めました。NFSの相互運用性は、「Connectathons」と呼ばれるイベントによって支援されました[23] OSFは、Sun / ONC RPCおよびNFSを介して分散コンピューティング環境(DCE)およびDCE分散ファイルシステム(DFS)を採用しました。DFSはRPCとしてDCEを使用し、DFSはAndrew File System(AFS)から派生しました。DCE自体は、ApolloのNCSやKerberosなどの一連のテクノロジから派生しています。[要出典]

1990年代

サンマイクロシステムズとインターネットソサエティ(ISOC)は、ISOCのエンジニアリング標準機関であるインターネットエンジニアリングタスクフォース(IETF)がONC RPCに関連する標準ドキュメント(RFC)を公開できるように、ONCRPCの「変更管理」を譲渡することに合意しました。プロトコルとONCRPCを拡張できます。OSFはDCERPCをIETF標準にしようとしましたが、最終的には変更管理をあきらめたくないことがわかりました。その後、IETFは、プロトコル標準に十分なセキュリティがあるというIETF要件を満たすために 、 Generic Security Services Application Program Interface(GSSAPI)、RPCSECGSSに基づく新しい認証フレーバーを追加することによってONCRPCを拡張することを選択しました。

その後、SunとISOCは、NFSに対するISOCの変更管理を与えるという同様の合意に達しましたが、NFSバージョン2とバージョン3を除外する契約を慎重に作成しました。代わりに、ISOCはNFSプロトコルに新しいバージョンを追加する権利を取得し、IETFになりました。 2003年にNFSバージョン4を指定します。

2000年代

21世紀までに、DFSもAFSも、SMB-CIFSやNFSと比較して大きな商業的成功を収めていませんでした。以前にDFSとAFSの主要な商用ベンダーであるTransarcを買収したIBMは、2000年にほとんどのAFSソースコードをフリーソフトウェアコミュニティに寄付しました。OpenAFSプロジェクトは存続しています。2005年の初めに、IBMはAFSとDFSの販売終了を発表しました。

2010年1月、Panasasは、データアクセスの並列処理[24]機能を改善すると主張するParallel NFS(pNFS)テクノロジに基づくNFSv4.1を提案しましたNFSv4.1プロトコルは、ファイルシステムのメタデータをファイルデータの場所から分離する方法を定義します。データサーバーのセット間でデータをストライピングすることにより、単純な名前/データの分離を超えています。これは、サーバーの単一の傘下にファイルとそのデータの名前を保持する従来のNFSサーバーとは異なります。一部の製品はマルチノードNFSサーバーですが、メタデータとデータの分離へのクライアントの参加は制限されています。

NFSv4.1 pNFSサーバーは、サーバーリソースまたはコンポーネントのセットです。これらは、メタデータサーバーによって制御されると想定されています。

pNFSクライアントは、名前空間とのトラバーサルまたは対話のために1つのメタデータサーバーにアクセスします。クライアントがサーバーとの間でデータを移動するとき、pNFSサーバーコレクションに属するデータサーバーのセットと直接対話する場合があります。NFSv4.1クライアントを有効にして、ファイルデータの正確な場所に直接参加し、データを移動するときに1台のNFSサーバーとの単独の対話を回避できます。

pNFSに加えて、NFSv4.1は以下を提供します。

も参照してください

参考文献

  1. ^ W. Richard Stevens、 TCP / IP Illustrated、Volume 1:The Protocols、Addison Wesley、1994、ISBN0-201-63346-9。
  2. ^ ab ラッセル サンドバーグ; デビッドゴールドバーグ; スティーブ・クレイマン; ダンウォルシュ; ボブ・ライオン(1985)。「Sunネットワークファイルシステムの設計と実装」。USENIXCiteSeerX10.1.1.14.473 _ {{cite journal}}Cite journal requires |journal= (help)
  3. ^ Brent CallaghanによるNFSイラスト(2000) -ISBN 0-201-32570-5 
  4. ^ a b "OpenVMSManagement用のHPTCP / IPサービス"h41379.www4.hpe.comHP 2016年9月24日取得
  5. ^ ab ラッセルサンドバーグ「SunNetworkファイルシステム:設計、実装、および経験」(PDF)テクニカルレポートサンマイクロシステムズ。
  6. ^ Arpaci-Dusseau、Remzi; Arpaci-Dusseau、Andrea(2015年3月)。オペレーティングシステム:3つの簡単な部分(PDF)(。9 ed。)Arpaci-DusseauBooks。p。5 2017年11月8日取得
  7. ^ ブライアン・ポロウスキー; Chet Juszczak; ピーター・ストーバック; カール・スミス; ダイアン・レーベル; デイヴィッド・ヒッツ(1994)。「NFSバージョン3の設計と実装」USENIX
  8. ^ 「NFSバージョン4」USENIX2005-04-14。
  9. ^ ヘインズ、トーマス(2016-11-01)。「NFSバージョン4マイナーバージョン2」
  10. ^ yanfs.dev.java.net [永続的なデッドリンク]
  11. ^ トムタルペイ(2006年2月28日)。「NFS / RDMA実装の更新」(PDF)Network Appliance、Inc。2011年5月12日のオリジナル(PDF)からアーカイブ。
  12. ^ ブレントキャラハン(2002年1月28日)。「NFSoverRDMA」(PDF)サンマイクロシステムズ。
  13. ^ シン、カラン(2016)。「4:Cephファイルシステムの操作」。Cephクックブックバーミンガム:Packt PublishingLtd.p。110. ISBN  97817843973642017年3月21日取得NFS-Ganeshaは、ユーザースペースで実行され、libcephfsを使用してCephFS FSAL(ファイルシステム抽象化レイヤー)をサポートするNFSサーバーです。
  14. ^ グローバー<[email protected]>、フレッド。「TrustedNFS(TNFS)プロトコル拡張の仕様」tools.ietf.org
  15. ^ [1]
  16. ^ 「SUNMicrosystemsによるその他のソフトウェア」www.computinghistory.org.ukコンピューティングヒストリーセンター2016年9月24日取得
  17. ^ 「UNIX3.5用のMicrosoftWindowsサービスの概要」technet.microsoft.comMicrosoft 2016年9月24日取得
  18. ^ 「NetDrive用のNTFSプラグイン」ecsoft2.org 2020年9月22日取得
  19. ^ 「NetDriveforOS / 2」arcanoae.com 2020年9月22日取得
  20. ^ 「NetWare6.5用のNFSゲートウェイ」www.novell.comノベル2016年9月24日取得
  21. ^ 「OS / 400ネットワークファイルシステムのサポート」(PDF)publib.boulder.ibm.comIBM 2016年9月24日取得 [永久リンク切れ]
  22. ^ キャロルパットン(1987-10-26)。「AT&TがSunMicrosystemsのSPARCチップのライセンスを取得」InfoWorldp。37 2019年7月16日取得
  23. ^ 「Connectathonとは何ですか?」オリジナルのConnectathon.OrgWebサイト1999年1月28日にオリジナルからアーカイブされました。
  24. ^ 「pNFS」パナサス2013年8月4日取得

外部リンク