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

ネットワークファイルシステムNFS)は、 1984年にサン・マイクロシステムズ(サン)によって開発された分散ファイルシステムプロトコルです[ 1 ] 。クライアントコンピュータ のユーザーは、ローカルストレージにアクセスするのと同様に、コンピュータネットワークを介してファイルにアクセスすることができます。NFSは、他の多くのプロトコルと同様に、 Open Network Computing Remote Procedure Call (ONC RPC)システムを基盤としています。NFSはIETFのオープン標準です。サン・マイクロシステムズ社内で開発された最初の実験バージョン以降、プロトコルのすべてのバージョンはRFC( Request for Comments )シリーズで定義されており、誰でもプロトコルを実装できます。

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

Sunはバージョン1を社内実験のみに使用していました。開発チームがNFSバージョン1に大幅な変更を加え、Sunの社外にリリースした際、バージョン間の相互運用性とRPCバージョンフォールバックをテストするため、新しいバージョンをバージョン2としてリリースすることを決定しました。[ 2 ] [ 3 ]

NFSv2

プロトコルのバージョン2( 1989年3月にRFC  1094で定義)は、当初はユーザーデータグラムプロトコル(UDP)上でのみ動作していました。設計者は、サーバー側をステートレスに保ち、例えばロック機能をコアプロトコルの外部で実装することを意図していました。NFSバージョン2の開発には、ラッセル・サンドバーグボブ・ライオンビル・ジョイスティーブ・クライマンなどが関わっています。[ 1 ] [ 4 ]

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

NFSv3

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

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

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

YANFS/WebNFS

YANFS(Yet Another NFS)は、以前はWebNFSと呼ばれていましたが、NFSv2およびNFSv3の拡張であり、PortmapやMOUNTプロトコルの複雑さを伴わずに、制限の厳しいファイアウォールの背後でも動作することを可能にします。YANFS/WebNFSは固定のTCP/UDPポート番号(2049)を持ち、クライアントが各ファイルシステムの初期ファイルハンドルを決定するためにMOUNT RPCサービスにアクセスする代わりに、開始点として使用できるパブリックファイルハンドル(NFSv2ではnull、NFSv3では長さ0)の概念を導入しました。これらの変更は両方とも、後にNFSv4に組み込まれました。WebNFS以降のYANFSの開発には、サーバーサイドの統合も含まれています。

NFSv4

バージョン4(RFC  3010、2000年12月、RFC  3530、2003年4月、RFC  7530、2015年3月で改訂)は、Andrew File System(AFS)とServer Message Block(SMB)の影響を受けており、パフォーマンスの改善、強力なセキュリティの義務付け、ステートフルプロトコルの導入などが行われている。[ 7 ] [ 8 ]バージョン4は、Sun MicrosystemsがNFSプロトコルの開発を引き継いだ後、インターネット技術タスクフォース(IETF)で開発された最初のバージョンとなった。

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

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

NFSv4が従来のものに比べて大きな利点の一つは、サービスの実行にUDPまたはTCPポート2049のみを使用する点です。これにより、ファイアウォール越しにプロトコルを使用することが簡単になります。[ 9 ]

その他の拡張機能

WebNFSは、NFSバージョン2およびバージョン3の拡張版であり、NFSをWebブラウザに容易に統合し、ファイアウォール越しの操作を可能にします。2007年、サン・マイクロシステムズはクライアント側のWebNFS実装をオープンソース化しました。[ 10 ]

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

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

プラットフォーム

NFS は次の場所で利用可能です:

NFS SPECsfs2008 パフォーマンス比較(2013年11月22日時点)

プロトコル開発

ONCプロトコル(当時はSunRPCと呼ばれていました)の開発当時、同等の機能を提供していたのはApolloのNetwork Computing System(NCS)だけでした。2つの競合するグループは、2つのリモートプロシージャコールシステムの根本的な違いをめぐって開発を進めました。議論の中心はデータエンコード方式でした。ONCの外部データ表現(XDR)は、接続する両方のピアがリトルエンディアンのマシンアーキテクチャであっても、常にビッグエンディアンで整数をレンダリングしました。一方、NCSの方式は、2つのピアがマシンアーキテクチャで共通のエンディアンを使用している場合、バイトスワップを回避しようとしました。1987年3月、 Network Computing Forumと呼ばれる業界団体が設立され、2つのネットワークコンピューティング環境の調和を目指しましたが、最終的には失敗に終わりました。

1987年、サンとAT&TはAT&TのUNIX System V Release 4を共同開発すると発表した。[ 25 ]これにより、AT&Tの他のUNIX Systemライセンス契約者の多くが、サンが有利な立場に立つことを懸念し、最終的に1988年にデジタル・イクイップメント、HP、IBMなどがOpen Software Foundation(OSF)を設立するに至った。皮肉なことに、サンとAT&TはかつてサンのNFSとAT&Tのリモート・ファイルシステム(RFS)をめぐって競合しており、デジタル・イクイップメント、HP、IBM、その他多くのコンピュータベンダーがRFSよりもNFSを迅速に採用したことで、ユーザーの大多数がNFSを支持することになった。NFSの相互運用性は、1986年に始まった「Connectathons」と呼ばれるイベントによって促進され、ベンダー中立的な立場で相互の実装をテストすることができた。[ 26 ] OSFは、 Sun/ONC RPCとNFSに代えて、分散コンピューティング環境(DCE)とDCE分散ファイルシステム(DFS)を採用しました。DFSはDCEをRPCとして使用し、DFSはAndrewファイルシステム(AFS)から派生しました。DCE自体は、ApolloのNCSやKerberosなどの一連の技術から派生しました。

1990年代

サン・マイクロシステムズとインターネット協会(ISOC)は、ONC RPCの「変更管理」をISOCの技術標準化団体であるインターネット技術タスクフォース(IETF)に委譲することで合意しました。これにより、ISOCの技術標準化団体であるインターネット技術タスクフォース(IETF)は、ONC RPCプロトコルに関する標準化文書(RFC)の発行とONC RPCの拡張が可能となりました。OSFはDCE RPCをIETF標準にしようと試みましたが、最終的には変更管理を放棄する意思を示しませんでした。その後、IETFは、プロトコル標準が十分なセキュリティを備えているというIETFの要件を満たすため、 Generic Security Services Application Program Interface(GSSAPI)に基づく新しい認証方式であるRPCSEC GSSを追加することでONC RPCを拡張することを決定しました。

その後、Sun と ISOC は、NFS の変更管理を ISOC に与えるという同様の契約を締結しましたが、契約書では NFS バージョン 2 とバージョン 3 を除外するよう慎重に記述しました。代わりに、ISOC は NFS プロトコルに新しいバージョンを追加する権利を獲得し、その結果、2003 年に IETF は NFS バージョン 4 を規定しました。

2000年代

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

2010年1月、パナサスは自社のParallel NFS (pNFS)技術をベースにしたNFSv4.1を提案し、データアクセスの並列性を向上させると主張している[ 27 ] 。NFSv4.1プロトコルは、ファイルシステムのメタデータをファイルデータの場所から分離する方法を定義している。これは、複数のデータサーバー間でデータをストライプ化することで、単純な名前とデータの分離を超えたものである。これは、ファイル名とそのデータを単一のサーバー傘下に保持する従来のNFSサーバーとは異なる。一部の製品はマルチノードNFSサーバーであるが、メタデータとデータの分離におけるクライアントの関与は限られている。

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

pNFSクライアントは、名前空間のトラバーサルや操作のために、依然として1つのメタデータサーバーにアクセスします。クライアントがサーバーとの間でデータを移動する際に、pNFSサーバーコレクションに属するデータサーバー群と直接やり取りする場合があります。NFSv4.1クライアントは、ファイルデータの正確な位置を直接把握できるようにすることで、データ移動時に1つのNFSサーバーとの単独のやり取りを回避することができます。

pNFS に加えて、NFSv4.1 では以下が提供されます。

参照

参考文献

  1. ^ a b Russel Sandberg、David Goldberg、Steve Kleiman、Dan Walsh、Bob Lyon (1985年6月11日~14日). Sunネットワークファイルシステムの設計と実装(PDF) . Usenix Association Summer Conference. オレゴン州ポートランド. CiteSeerX 10.1.1.14.473 . 
  2. ^ NFSイラストレイテッド(2000年)ブレント・キャラハン著 – ISBN 0-201-32570-5
  3. ^ a b「HP TCP/IP Services for OpenVMS Management」 . h41379.www4.hpe.com . HP. 2016年9月24日時点のオリジナルよりアーカイブ2016年9月24日閲覧。
  4. ^ a b Russel Sandberg. 「Sunネットワークファイルシステム:設計、実装、そしてエクスペリエンス」(PDF) .技術レポート. Sun Microsystems. 2013年11月26日時点のオリジナルよりアーカイブ(PDF) . 2013年8月4日閲覧
  5. ^ Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (2015年3月). 『オペレーティングシステム: 3つの簡単なピース』 (PDF) (第9版). Arpaci-Dusseau Books. p. 5. 2019年4月3日時点のオリジナルよりアーカイブ(PDF) 。 2017年11月8日閲覧
  6. ^ Brian Pawlowski、Chet Juszczak、Peter Staubach、Carl Smith、Diane Lebel、David Hitz (1994). 「NFS Version 3 の設計と実装」USENIX . 2015年11月24日時点のオリジナルよりアーカイブ2015年11月23日閲覧
  7. ^ 「NFS バージョン 4」 . USENIX . 2005年4月14日. 2011年7月28日時点のオリジナルよりアーカイブ2008年12月19日閲覧。
  8. ^ Brian Pawlowski、Spencer Shepler、Carl Beame、Brent Callaghan、Michael Eisler、David Noveck、David Robinson、Robert Thurlow (2000). 「NFSバージョン4プロトコル」(PDF) . SANE . 2025年2月2日時点のオリジナル(PDF)からのアーカイブ。
  9. ^ Justin Parisi、Elliott Ecton(2023年6月)。NetApp ONTAPにおけるNFS、ベストプラクティスおよび実装ガイド(PDF)(技術レポート)。NetApp。
  10. ^ "yanfs" . Github.com .
  11. ^ Tom Talpey (2006年2月28日). 「NFS/RDMA実装のアップデート」(PDF) . Network Appliance, Inc. 2011年5月12日時点のオリジナル(PDF)からアーカイブ。
  12. ^ Brent Callaghan (2002年1月28日). 「NFS over RDMA」(PDF) . Sun Microsystems. 2011年5月12日時点のオリジナルよりアーカイブ(PDF) . 2010年9月6日閲覧
  13. ^ Singh, Karan (2016). 「4: Cephファイルシステムの操作」. Ceph Cookbook . バーミンガム: Packt Publishing Ltd. p. 110. ISBN 978-1-78439-736-4. 2017年3月21日取得。NFS -Ganeshaは、ユーザー空間で実行され、libcephfsを使用してCephFS FSAL(ファイルシステム抽象化レイヤー)をサポートするNFSサーバーです。
  14. ^ Glover, Fred (1994年5月28日). 「Trusted NFS (TNFS) プロトコル拡張の仕様」 . datatracker.ietf.org .
  15. ^ 「Macで接続できるサーバーと共有コンピューター」Appleサポート2025年8月7日閲覧
  16. ^ 「Macでファイル共有を設定する」 Appleサポート。 2025年8月7日閲覧
  17. ^ 「NetDrive for OS/2」 . arcanoae.com . 2015年11月3日時点のオリジナルよりアーカイブ2020年9月22日閲覧。
  18. ^ジェパック、パヴェウ (2013-03-15)。「NFSv4 クライアントがついにマージされました」Paweł Dziepak のブログ。株式会社ハイク
  19. ^ 「OS/400 ネットワーク・ファイルシステムのサポート」(PDF) . IBM . 2024年5月23日閲覧
  20. ^ 「Microsoft Windows Services for UNIX 3.5 の概要」technet.microsoft.comMicrosoft、2007年12月5日。 2018年6月18日時点のオリジナルよりアーカイブ。 2016年9月24日閲覧
  21. ^ 「SUN Microsystemsのその他のソフトウェア」 www.computinghistory.org.ukコンピューティング歴史センター2016年9月24日閲覧
  22. ^ 「NFS Gateway for NetWare 6.5」 . www.novell.com . Novell . 2016年9月24日閲覧
  23. ^ 「NetDrive用NTFSプラグイン」ecsoft2.org . 2016年2月22時点のオリジナルよりアーカイブ2020年9月22日閲覧。
  24. ^ 「ネットワーク関連プログラム」 . cp15.org .
  25. ^ Carole Patton (1987年10月26日). 「AT&T、Sun MicrosystemsのSPARCチップのライセンスを取得」 InfoWorld 37ページ. 2019年7月16日閲覧
  26. ^ 「What is Connectathon?」オリジナルのConnectathon.Orgウェブサイト。1999年1月28日時点のオリジナルからアーカイブ
  27. ^ "pNFS" . Panasas . 2013年8月7日時点のオリジナルよりアーカイブ2013年8月4日閲覧。