RFC1813 日本語訳
1813 NFS Version 3 Protocol Specification. B. Callaghan, B. Pawlowski,P. Staubach. June 1995. (Format: TXT=229793 bytes) (Also RFC1094) (Status: INFORMATIONAL)
プログラムでの自動翻訳です。
RFC一覧
英語原文
Network Working Group B. Callaghan Request for Comments: 1813 B. Pawlowski Category: Informational P. Staubach Sun Microsystems, Inc. June 1995
コメントを求めるワーキンググループB.キャラハン要求をネットワークでつないでください: 1813年のB.ポロウスキーカテゴリ: 情報のP.ストーバックサン・マイクロシステムズ・インク1995年6月
NFS Version 3 Protocol Specification
NFSバージョン3プロトコル仕様
Status of this Memo
このMemoの状態
This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
このメモはインターネットコミュニティのための情報を提供します。 このメモはどんな種類のインターネット標準も指定しません。 このメモの分配は無制限です。
IESG Note
IESG注意
Internet Engineering Steering Group comment: please note that the IETF is not involved in creating or maintaining this specification. This is the significance of the specification not being on the standards track.
インターネットEngineering Steering Groupはコメントします: IETFはこの仕様を作成するか、または維持するのにかかわりません。 これは標準化過程の上にない仕様の意味です。
Abstract
要約
This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations.
この論文はNFSバージョン3プロトコルについて説明します。 人々がコンパチブル実装を書くことができるように、この紙を供給します。
Table of Contents
目次
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Scope of the NFS version 3 protocol . . . . . . . . . . 4 1.2 Useful terms . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Remote Procedure Call . . . . . . . . . . . . . . . . . 5 1.4 External Data Representation . . . . . . . . . . . . . . 5 1.5 Authentication and Permission Checking . . . . . . . . . 7 1.6 Philosophy . . . . . . . . . . . . . . . . . . . . . . . 8 1.7 Changes from the NFS version 2 protocol . . . . . . . . 11 2. RPC Information . . . . . . . . . . . . . . . . . . . . . 14 2.1 Authentication . . . . . . . . . . . . . . . . . . . . . 14 2.2 Constants . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Transport address . . . . . . . . . . . . . . . . . . . 14 2.4 Sizes . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Basic Data Types . . . . . . . . . . . . . . . . . . . . 15 2.6 Defined Error Numbers . . . . . . . . . . . . . . . . . 17 3. Server Procedures . . . . . . . . . . . . . . . . . . . . 27 3.1 General comments on attributes . . . . . . . . . . . . . 29 3.2 General comments on filenames . . . . . . . . . . . . . 30 3.3.0 NULL: Do nothing . . . . . . . . . . . . . . . . . . . . 31
1. NFSバージョン3プロトコル. . . . . . . . . . 4 1.2Usefulの.31.1ScopeがNFSバージョン2プロトコル. . . . . . . . 11 2から.51.3Remote Procedure Call. . . . . . . . . . . . . . . . . 5 1.4External Data Representation. . . . . . . . . . . . . . 5 1.5AuthenticationとPermission Checking. . . . . . . . . 7 1.6Philosophy.81.7Changesと呼ぶ序論。 RPC情報. . . . . . . . . . . . . . . . . . . . . 14 2.1Authentication. . . . . . . . . . . . . . . . . . . . . 14 2.2Constants. . . . . . . . . . . . . . . . . . . . . . . 14 2.3Transportは、.142.4Sizes. . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5のBasic Data Types. . . . . . . . . . . . . . . . . . . . 15 2.6がDefined Error民数記. . . . . . . . . . . . . . . . . 17 3であると扱います。 Procedures. . . . . . . . . . . . . . . . . . . . 27 3.1一般が属性. . . . . . . . . . . . . 29 3.2一般に関してコメントするサーバはファイル名. . . . . . . . . . . . . 30 3.3.0NULLを批評します: 何にも.31をしないでください。
Callaghan, el al Informational [Page 1] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[1ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.1 GETATTR: Get file attributes . . . . . . . . . . . . . . 32 3.3.2 SETATTR: Set file attributes . . . . . . . . . . . . . . 33 3.3.3 LOOKUP: Lookup filename . . . . . . . . . . . . . . . . 37 3.3.4 ACCESS: Check access permission . . . . . . . . . . . . 40 3.3.5 READLINK: Read from symbolic link . . . . . . . . . . . 44 3.3.6 READ: Read from file . . . . . . . . . . . . . . . . . . 46 3.3.7 WRITE: Write to file . . . . . . . . . . . . . . . . . . 49 3.3.8 CREATE: Create a file . . . . . . . . . . . . . . . . . 54 3.3.9 MKDIR: Create a directory . . . . . . . . . . . . . . . 58 3.3.10 SYMLINK: Create a symbolic link . . . . . . . . . . . . 61 3.3.11 MKNOD: Create a special device . . . . . . . . . . . . . 63 3.3.12 REMOVE: Remove a file . . . . . . . . . . . . . . . . . 67 3.3.13 RMDIR: Remove a directory . . . . . . . . . . . . . . . 69 3.3.14 RENAME: Rename a file or directory . . . . . . . . . . . 71 3.3.15 LINK: Create link to an object . . . . . . . . . . . . . 74 3.3.16 READDIR: Read From directory . . . . . . . . . . . . . . 76 3.3.17 READDIRPLUS: Extended read from directory . . . . . . . 80 3.3.18 FSSTAT: Get dynamic file system information . . . . . . 84 3.3.19 FSINFO: Get static file system information . . . . . . . 86 3.3.20 PATHCONF: Retrieve POSIX information . . . . . . . . . . 90 3.3.21 COMMIT: Commit cached data on a server to stable storage 92 4. Implementation issues . . . . . . . . . . . . . . . . . . 96 4.1 Multiple version support . . . . . . . . . . . . . . . . 96 4.2 Server/client relationship . . . . . . . . . . . . . . . 96 4.3 Path name interpretation . . . . . . . . . . . . . . . . 97 4.4 Permission issues . . . . . . . . . . . . . . . . . . . 98 4.5 Duplicate request cache . . . . . . . . . . . . . . . . 99 4.6 File name component handling . . . . . . . . . . . . . . 101 4.7 Synchronous modifying operations . . . . . . . . . . . . 101 4.8 Stable storage . . . . . . . . . . . . . . . . . . . . . 101 4.9 Lookups and name resolution . . . . . . . . . . . . . . 102 4.10 Adaptive retransmission . . . . . . . . . . . . . . . . 102 4.11 Caching policies . . . . . . . . . . . . . . . . . . . . 102 4.12 Stable versus unstable writes. . . . . . . . . . . . . . 103 4.13 32 bit clients/servers and 64 bit clients/servers. . . . 104 5. Appendix I: Mount protocol . . . . . . . . . . . . . . . . 106 5.1 RPC Information . . . . . . . . . . . . . . . . . . . . 106 5.1.1 Authentication . . . . . . . . . . . . . . . . . . . . 106 5.1.2 Constants . . . . . . . . . . . . . . . . . . . . . . 106 5.1.3 Transport address . . . . . . . . . . . . . . . . . . 106 5.1.4 Sizes . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.5 Basic Data Types . . . . . . . . . . . . . . . . . . . 106 5.2 Server Procedures . . . . . . . . . . . . . . . . . . . 107 5.2.0 NULL: Do nothing . . . . . . . . . . . . . . . . . . . 108 5.2.1 MNT: Add mount entry . . . . . . . . . . . . . . . . . 109 5.2.2 DUMP: Return mount entries . . . . . . . . . . . . . . 110 5.2.3 UMNT: Remove mount entry . . . . . . . . . . . . . . . 111 5.2.4 UMNTALL: Remove all mount entries . . . . . . . . . . 112
3.3.1 GETATTR: ファイル属性. . . . . . . . . . . . . . 32 3.3.2SETATTRを手に入れてください: ファイル属性. . . . . . . . . . . . . . 33 3.3.3LOOKUPを設定してください: ルックアップファイル名. . . . . . . . . . . . . . . . 37 3.3.4ACCESS: 参照許可. . . . . . . . . . . . 40 3.3.5READLINKをチェックしてください: シンボリックリンク. . . . . . . . . . . 44 3.3.6READから、読んでください: ファイル. . . . . . . . . . . . . . . . . . 46 3.3.7WRITEから、読んでください: .493.3をファイルするために、.8CREATEは書きます: ファイル. . . . . . . . . . . . . . . . . 54 3.3.9MKDIRを作成してください: ディレクトリ. . . . . . . . . . . . . . . 58 3.3.10SYMLINKを作成してください: シンボリックリンク. . . . . . . . . . . . 61 3.3.11MKNODを作成してください: 特別なデバイス. . . . . . . . . . . . . 63 3.3.12を作成してください、削除: ファイル. . . . . . . . . . . . . . . . . 67 3.3.13RMDIRを取り外してください: ディレクトリ. . . . . . . . . . . . . . . 69 3.3.14RENAMEを取り外してください: ファイルかディレクトリ. . . . . . . . . . . 71 3.3.15LINKを改名してください: オブジェクト. . . . . . . . . . . . . 74 3.3.16READDIRへのリンクを作成してください: Fromディレクトリ. . . . . . . . . . . . . . 76 3.3.17READDIRPLUSを読んでください: 広げられて、ディレクトリ. . . . . . . 80 3.3.18FSSTATから読んでください: ダイナミックなファイルシステム情報. . . . . . 84 3.3.19FSINFOを手に入れてください: 静的なファイルシステム情報. . . . . . . 86 3.3.20PATHCONFを手に入れてください: POSIX情報. . . . . . . . . . 90 3.3.21COMMITを検索してください: 安定貯蔵92 4にサーバに関するキャッシュされたデータを遂行してください。 導入問題. . . . . . . . . . . . . . . . . . 96 4.1Multipleバージョンサポート.964.2Server/クライアント関係.964.3Path名前解釈. . . . . . . . . . . . . . . . 97 4.4Permissionは.984.5Duplicate要求キャッシュ. . . . . . . . . . . . . . . . 99 4.6にFile名前コンポーネント取り扱いを発行します; .101 4.7 .1024.12Stable対不安定であるのが書く同期変更作業. . . . . . . . . . . . 101 4.8Stableストレージ. . . . . . . . . . . . . . . . . . . . . 101 4.9Lookupsと名前解決. . . . . . . . . . . . . . 102 4.10Adaptive retransmission. . . . . . . . . . . . . . . . 102 4.11Caching方針。 . . . . . . . . . . . . . 103 4.13 32はクライアント/サーバと64ビットのクライアント/サーバに噛み付きました。 . . . 104 5. 付録I: プロトコル.106 5.1RPC情報. . . . . . . . . . . . . . . . . . . . 106 5.1.1Authentication. . . . . . . . . . . . . . . . . . . . 106 5.1.2Constants. . . . . . . . . . . . . . . . . . . . . . 106 5.1.3Transportアドレス. . . . . . . . . . . . . . . . . . 106 5.1.4Sizes. . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.5Basic Data Types. . . . . . . . . . . . . . . . . . . 106 5.2のServer Proceduresを取り付けてください、.107 5.2、.0NULL、: 何もしないでください、.108 5.2 .1MNT: マウントエントリー. . . . . . . . . . . . . . . . . 109 5.2.2DUMPを加えてください: マウントエントリー. . . . . . . . . . . . . . 110 5.2.3UMNTを返してください: マウントエントリー. . . . . . . . . . . . . . . 111 5.2.4UMNTALLを取り外してください: すべてのマウントエントリー. . . . . . . . . . 112を取り除いてください。
Callaghan, el al Informational [Page 2] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[2ページ]RFC1813NFSバージョン3プロトコル1995年6月
5.2.5 EXPORT: Return export list . . . . . . . . . . . . . . 113 6. Appendix II: Lock manager protocol . . . . . . . . . . . . 114 6.1 RPC Information . . . . . . . . . . . . . . . . . . . . 114 6.1.1 Authentication . . . . . . . . . . . . . . . . . . . . 114 6.1.2 Constants . . . . . . . . . . . . . . . . . . . . . . 114 6.1.3 Transport Address . . . . . . . . . . . . . . . . . . 115 6.1.4 Basic Data Types . . . . . . . . . . . . . . . . . . . 115 6.2 NLM Procedures . . . . . . . . . . . . . . . . . . . . . 118 6.2.0 NULL: Do nothing . . . . . . . . . . . . . . . . . . . 120 6.3 Implementation issues . . . . . . . . . . . . . . . . . 120 6.3.1 64-bit offsets and lengths . . . . . . . . . . . . . . 120 6.3.2 File handles . . . . . . . . . . . . . . . . . . . . . 120 7. Appendix III: Bibliography . . . . . . . . . . . . . . . . 122 8. Security Considerations . . . . . . . . . . . . . . . . . 125 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 125 10. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 126
5.2.5 エクスポートしてください: 輸出品目録. . . . . . . . . . . . . . 113 6を返してください。 付録II: マネージャプロトコル.114 6.1RPC情報. . . . . . . . . . . . . . . . . . . . 114 6.1.1Authentication. . . . . . . . . . . . . . . . . . . . 114 6.1.2Constants. . . . . . . . . . . . . . . . . . . . . . 114 6.1.3Transport Address. . . . . . . . . . . . . . . . . . 115 6.1.4Basic Data Types. . . . . . . . . . . . . . . . . . . 115 6.2のNLM Proceduresをロックしてください、.118 6.2、.0NULL、: .120 6.3Implementationが発行するものは何にも. . . . . . . . . . . . . . . . . 120 6.3.1 64ビットオフセットをしないでください。そうすれば、長さ. . . . . . . . . . . . . . 120 6.3の.2Fileは.1207を扱います。 付録III: 図書目録. . . . . . . . . . . . . . . . 122 8。 セキュリティ問題. . . . . . . . . . . . . . . . . 125 9。 承認. . . . . . . . . . . . . . . . . . . . . 125 10。 作者のアドレス. . . . . . . . . . . . . . . . . . . . 126
1. Introduction
1. 序論
Sun's NFS protocol provides transparent remote access to shared file systems across networks. The NFS protocol is designed to be machine, operating system, network architecture, and transport protocol independent. This independence is achieved through the use of Remote Procedure Call (RPC) primitives built on top of an eXternal Data Representation (XDR). Implementations of the NFS version 2 protocol exist for a variety of machines, from personal computers to supercomputers. The initial version of the NFS protocol is specified in the Network File System Protocol Specification [RFC1094]. A description of the initial implementation can be found in [Sandberg].
SunのNFSプロトコルはネットワークの向こう側に見え透いた遠隔アクセスを共有ファイルシステムに供給します。 NFSプロトコルは、マシン、オペレーティングシステム、ネットワークアーキテクチャ、およびトランスポート・プロトコルから独立しているように設計されています。 この独立はeXternal Data Representation(XDR)の上で築き上げられたRemote Procedure Call(RPC)基関数の使用で達成されます。 NFSバージョン2プロトコルの実装はさまざまなパーソナルコンピュータからスーパーコンピュータまでのマシンのために存在しています。 NFSプロトコルの初期のバージョンはネットワークファイルシステムプロトコルSpecification[RFC1094]で指定されます。 [サンドベルイ]で初期の実装の記述を見つけることができます。
The supporting MOUNT protocol performs the operating system-specific functions that allow clients to attach remote directory trees to a point within the local file system. The mount process also allows the server to grant remote access privileges to a restricted set of clients via export control.
サポートしている山のプロトコルはクライアントがローカルファイルシステムの中でリモートディレクトリツリーをポイントに付けることができるオペレーティングシステム具体的な機能を実行します。 また、マウントプロセスで、サーバは輸出管理で制限されたセットのクライアントにリモートアクセス権を与えることができます。
The Lock Manager provides support for file locking when used in the NFS environment. The Network Lock Manager (NLM) protocol isolates the inherently stateful aspects of file locking into a separate protocol.
NFS環境で使用されると、Lockマネージャはファイルのロックのサポートを提供します。 Network Lockマネージャ(NLM)プロトコルはファイルのロックの本来statefulな局面を別々のプロトコルに隔離します。
A complete description of the above protocols and their implementation is to be found in [X/OpenNFS].
上のプロトコルとそれらの実装の完全な記述は[X/OpenNFS]で見つけられることです。
The purpose of this document is to:
このドキュメントの目的は以下のことのためのことです。
Callaghan, el al Informational [Page 3] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[3ページ]RFC1813NFSバージョン3プロトコル1995年6月
o Specify the NFS version 3 protocol.
o NFSバージョン3プロトコルを指定してください。
o Describe semantics of the protocol through annotation and description of intended implementation.
o 注釈によるプロトコルの意味論と意図している実装の記述について説明してください。
o Specify the MOUNT version 3 protocol.
o 山のバージョン3プロトコルを指定してください。
o Briefly describe the changes between the NLM version 3 protocol and the NLM version 4 protocol.
o 簡潔にNLMバージョン3プロトコルとNLMバージョン4プロトコルの間の変化について説明してください。
The normative text is the description of the RPC procedures and arguments and results, which defines the over-the-wire protocol, and the semantics of those procedures. The material describing implementation practice aids the understanding of the protocol specification and describes some possible implementation issues and solutions. It is not possible to describe all implementations and the UNIX operating system implementation of the NFS version 3 protocol is most often used to provide examples. Given that, the implementation discussion does not bear the authority of the description of the over-the-wire protocol itself.
標準のテキストがRPC手順、議論、および結果の記述である、どれ、定義、過剰、ワイヤ、プロトコル、およびそれらの手順の意味論。 実装習慣について説明する材料は、プロトコル仕様の理解を支援して、いくつかの可能な導入問題とソリューションについて説明します。 すべての実装について説明するのが可能でなく、NFSバージョン3プロトコルのUnixオペレーティングシステム実装は、例を提供するのにたいてい使用されます。 それを考えて、実装議論が記述の権威を持っていない、過剰、ワイヤ、それ自体について議定書の中で述べてください。
1.1 Scope of the NFS version 3 protocol
1.1 NFSバージョン3プロトコルの範囲
This revision of the NFS protocol addresses new requirements. The need to support larger files and file systems has prompted extensions to allow 64 bit file sizes and offsets. The revision enhances security by adding support for an access check to be done on the server. Performance modifications are of three types:
NFSプロトコルのこの改正は新しい要件を扱います。 より大きいファイルとファイルシステムをサポートする必要性は、拡大が64ビットのファイルサイズとオフセットを許すようにうながしました。 改正は、アクセスチェックがサーバで行われるサポートを加えることによって、セキュリティを高めます。3つのタイプにはパフォーマンス変更があります:
1. The number of over-the-wire packets for a given set of file operations is reduced by returning file attributes on every operation, thus decreasing the number of calls to get modified attributes.
1. 数、過剰、ワイヤ、与えられたセットのファイル操作が戻ることによって抑えられるので、パケットはあらゆる操作のときに属性をファイルします、その結果、変更された属性を得るという要求の数を減少させます。
2. The write throughput bottleneck caused by the synchronous definition of write in the NFS version 2 protocol has been addressed by adding support so that the NFS server can do unsafe writes. Unsafe writes are writes which have not been committed to stable storage before the operation returns. This specification defines a method for committing these unsafe writes to stable storage in a reliable way.
2. 同期定義で引き起こされたスループットボトルネックを書く、バージョン2プロトコルが扱われたサポートを加えるNFSに書いてくださいので、NFSサーバが危険な状態でできるのは書きます。 危険である、書く、操作が戻る前に安定貯蔵に心がけていないものを書きます。 危険な状態でこれらを遂行するのが信頼できる方法で安定貯蔵まで書くので、この仕様はメソッドを定義します。
3. Limitations on transfer sizes have been relaxed.
3. 転送サイズにおける制限は緩和されました。
The ability to support multiple versions of a protocol in RPC will allow implementors of the NFS version 3 protocol to define
RPCのプロトコルの複数のバージョンをサポートする能力は定義するNFSバージョン3プロトコルの作成者を許容するでしょう。
Callaghan, el al Informational [Page 4] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[4ページ]RFC1813NFSバージョン3プロトコル1995年6月
clients and servers that provide backwards compatibility with the existing installed base of NFS version 2 protocol implementations.
存在との互換性を後方に提供するクライアントとサーバがNFSバージョン2プロトコル実装のベースをインストールしました。
The extensions described here represent an evolution of the existing NFS protocol and most of the design features of the NFS protocol described in [Sandberg] persist. See Changes from the NFS version 2 protocol on page 11 for a more detailed summary of the changes introduced by this revision.
ここで説明された拡大は既存のNFSプロトコルの発展を表します、そして、[サンドベルイ]で説明されたNFSプロトコルに関する設計上の特徴の大部分は持続しています。 変化の、より詳細な概要のための11ページのNFSバージョン2プロトコルからのChangesがこの改正で導入されるのを見てください。
1.2 Useful terms
1.2 役に立つ用語
In this specification, a "server" is a machine that provides resources to the network; a "client" is a machine that accesses resources over the network; a "user" is a person logged in on a client; an "application" is a program that executes on a client.
この仕様では、「サーバ」はリソースをネットワークに提供するマシンです。 「クライアント」はネットワークの上でリソースにアクセスするマシンです。 「ユーザ」はクライアントの上でログインされた人です。 「アプリケーション」はそれがクライアントの上で実行するプログラムです。
1.3 Remote Procedure Call
1.3遠隔手続き呼び出し
The Sun Remote Procedure Call specification provides a procedure-oriented interface to remote services. Each server supplies a program, which is a set of procedures. The NFS service is one such program. The combination of host address, program number, version number, and procedure number specify one remote service procedure. Servers can support multiple versions of a program by using different protocol version numbers.
Sun Remote Procedure Call仕様は手順指向のインタフェースをリモートサービスに提供します。 各サーバはプログラムを提供します。(それは、手順のセットです)。 NFSサービスはそのようなプログラムの1つです。 ホスト・アドレスの組み合わせ、プログラム番号、バージョン番号、および手順番号は1つのリモートサービス手順を指定します。 サーバは、異なったプロトコルバージョン番号を使用することによって、プログラムの複数のバージョンをサポートすることができます。
The NFS protocol was designed to not require any specific level of reliability from its lower levels so it could potentially be used on many underlying transport protocols. The NFS service is based on RPC which provides the abstraction above lower level network and transport protocols.
NFSプロトコルは、多くの基本的なトランスポート・プロトコルで潜在的にそれを使用できたように下のレベルからどんな特定のレベルの信頼性も必要としないように設計されました。 NFSサービスは下のレベルネットワークの上に抽象化を提供するRPCとトランスポート・プロトコルに基づいています。
The rest of this document assumes the NFS environment is implemented on top of Sun RPC, which is specified in [RFC1057]. A complete discussion is found in [Corbin].
このドキュメントの残りは、NFS環境がSun RPCの上で実装されると仮定します。RPCは[RFC1057]で指定されます。 完全な議論は[コービン]で見つけられます。
1.4 External Data Representation
1.4 外部データ表現
The eXternal Data Representation (XDR) specification provides a standard way of representing a set of data types on a network. This solves the problem of different byte orders, structure alignment, and data type representation on different, communicating machines.
eXternal Data Representation(XDR)仕様はネットワークの1セットのデータ型を表す標準の方法を提供します。 これは異なって、交信しているマシンにおける異なったバイトオーダー、構造整列、およびデータ型表現の問題を解決します。
In this document, the RPC Data Description Language is used to specify the XDR format parameters and results to each of the RPC service procedures that an NFS server provides. The RPC Data
本書では、RPC Data記述Languageは、NFSサーバが提供するそれぞれのRPCサービス手順にXDR形式パラメタと結果を指定するのに使用されます。 RPCデータ
Callaghan, el al Informational [Page 5] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[5ページ]RFC1813NFSバージョン3プロトコル1995年6月
Description Language is similar to declarations in the C programming language. A few new constructs have been added. The notation:
記述Languageは、言語をプログラムしながら、Cで宣言と同様です。 いくつかの新しい構造物が加えられます。 記法:
string name[SIZE]; string data<DSIZE>;
名前[SIZE]を結んでください。 列データ<DSIZE>。
defines name, which is a fixed size block of SIZE bytes, and data, which is a variable sized block of up to DSIZE bytes. This notation indicates fixed-length arrays and arrays with a variable number of elements up to a fixed maximum. A variable-length definition with no size specified means there is no maximum size for the field.
名前、およびデータをDSIZEバイトまで定義します。(名前はSIZEバイトの固定サイズブロックです)。(データは可変大きさで分けられたブロックです)。 この記法は可変数の要素で固定長配列と配列を固定最大まで示します。 サイズが全く指定されていない可変長の定義は、分野への最大サイズが全くないことを意味します。
The discriminated union definition:
差別された組合定義:
union example switch (enum status) { case OK: struct { filename file1; filename file2; integer count; } case ERROR: struct { errstat error; integer errno; } default: void; }
組合例のスイッチ(enum状態)OKをケースに入れてください: structファイル名file1; ファイル名file2; 整数カウント;ケースERROR: struct errstat誤り; 整数errno;デフォルト: 空間
defines a structure where the first thing over the network is an enumeration type called status. If the value of status is OK, the next thing on the network will be the structure containing file1, file2, and count. Else, if the value of status is ERROR, the next thing on the network will be a structure containing error and errno. If the value of status is neither OK nor ERROR, then there is no more data in the structure.
ネットワークの上の最初のものが状態と呼ばれる列挙タイプである構造を定義します。 状態の値がOKであるなら、ネットワークの次のものは、file1、file2を含む構造であり、重要でしょう。 ほかに、状態の値がERRORであるなら、ネットワークの次のものは誤りとerrnoを含む構造になるでしょう。 ERROR、または、そして、状態の値がOKにどちらもでない、それ以上のデータが全く構造にありません。
The XDR type, hyper, is an 8 byte (64 bit) quantity. It is used in the same way as the integer type. For example:
XDRがタイプする、超-、8バイト(64ビット)の量はそうです。 整数型と同様に、それは使用されます。 例えば:
hyper foo; unsigned hyper bar;
超-foo。 未署名の超-バー。
foo is an 8 byte signed value, while bar is an 8 byte unsigned value.
fooは値であると署名される8バイトですが、バーは8バイトの未署名の値です。
Callaghan, el al Informational [Page 6] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[6ページ]RFC1813NFSバージョン3プロトコル1995年6月
Although RPC/XDR compilers exist to generate client and server stubs from RPC Data Description Language input, NFS implementations do not require their use. Any software that provides equivalent encoding and decoding to the canonical network order of data defined by XDR can be used to interoperate with other NFS implementations.
RPC/XDRコンパイラはLanguageが入力したRPC Data記述からクライアントとサーバがスタッブであると生成するために存在していますが、NFS実装は彼らの使用を必要としません。 他のNFS実装で共同利用するのに同等なコード化を提供するどんなソフトウェアともXDRによって定義されたデータの正準なネットワーク注文に解読するのを使用できます。
XDR is described in [RFC1014].
XDRは[RFC1014]で説明されます。
1.5 Authentication and Permission Checking
1.5 認証と許可の照合
The RPC protocol includes a slot for authentication parameters on every call. The contents of the authentication parameters are determined by the type of authentication used by the server and client. A server may support several different flavors of authentication at once. The AUTH_NONE flavor provides null authentication, that is, no authentication information is passed. The AUTH_UNIX flavor provides UNIX-style user ID, group ID, and groups with each call. The AUTH_DES flavor provides DES-encrypted authentication parameters based on a network-wide name, with session keys exchanged via a public key scheme. The AUTH_KERB flavor provides DES encrypted authentication parameters based on a network-wide name with session keys exchanged via Kerberos secret keys.
RPCプロトコルは認証パラメタのためのあらゆる呼び出しのスロットを含んでいます。 認証パラメタの内容はサーバとクライアントによって使用された認証のタイプによって決定されます。 サーバはすぐに、認証のいくつかの異なった風味をサポートするかもしれません。 AUTH_NONE風味はヌル認証を提供します、すなわち、認証情報が全く通過されません。 AUTH_UNIX風味はUNIX-スタイルユーザID、グループID、およびグループを各呼び出しに提供します。 AUTH_DES風味はネットワーク全体の名前に基づくDES-暗号化認証パラメタを提供します、公開鍵体系でセッションキーを交換している状態で。 AUTH_KERB風味はケルベロス秘密鍵を通して交換するセッションキーのネットワーク全体の名前に基づく暗号化認証パラメタをDESに供給します。
The NFS server checks permissions by taking the credentials from the RPC authentication information in each remote request. For example, using the AUTH_UNIX flavor of authentication, the server gets the user's effective user ID, effective group ID and groups on each call, and uses them to check access. Using user ids and group ids implies that the client and server either share the same ID list or do local user and group ID mapping. Servers and clients must agree on the mapping from user to uid and from group to gid, for those sites that do not implement a consistent user ID and group ID space. In practice, such mapping is typically performed on the server, following a static mapping scheme or a mapping established by the user from a client at mount time.
NFSサーバは、それぞれのリモート要求でRPC認証情報から資格証明書を取ることによって、許容をチェックします。 例えば、認証のAUTH_UNIX風味を使用して、サーバは、各呼び出しに関するユーザの実効ユーザーID、有効なグループID、およびグループを得て、アクセサリーをチェックするのにそれらを使用します。 ユーザイドとグループイドを使用するのは、クライアントとサーバが同じIDリストを共有するか、または地元のユーザとグループIDマッピングをするのを含意します。 サーバとクライアントはユーザからuidまでグループからヒツジ暈倒病までマッピングに同意しなければなりません、一貫したユーザがIDであると実装しないそれらのサイトとグループIDスペースに。 実際には、そのようなマッピングはサーバに通常実行されます、マウント時にユーザによってクライアントから確立された静的なマッピング体系かマッピングに従って。
The AUTH_DES and AUTH_KERB style of authentication is based on a network-wide name. It provides greater security through the use of DES encryption and public keys in the case of AUTH_DES, and DES encryption and Kerberos secret keys (and tickets) in the AUTH_KERB case. Again, the server and client must agree on the identity of a particular name on the network, but the name to identity mapping is more operating system independent than the uid and gid mapping in AUTH_UNIX. Also, because the authentication parameters are encrypted, a malicious user must
認証のAUTH_DESとAUTH_KERBスタイルはネットワーク全体の名前に基づいています。 それはDES暗号化の使用とAUTH_DESに関するケース、DES暗号化、およびケルベロス秘密鍵(そして、チケット)の公開鍵を通してAUTH_KERBケースによりすばらしいセキュリティを供給します。 一方、サーバとクライアントがネットワークで特定の名前のアイデンティティに同意しなければなりませんが、アイデンティティマッピングへの名前はAUTHで_UNIXを写像するuidとヒツジ暈倒病よりオペレーティングシステム独立者です。 また、認証パラメタが暗号化されているので、悪意あるユーザーは暗号化されなければなりません。
Callaghan, el al Informational [Page 7] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[7ページ]RFC1813NFSバージョン3プロトコル1995年6月
know another users network password or private key to masquerade as that user. Similarly, the server returns a verifier that is also encrypted so that masquerading as a server requires knowing a network password.
別のユーザネットワークパスワードか秘密鍵を知って、そのユーザのふりをしてください。 同様に、サーバはまた、サーバのふりをするのが、ネットワークパスワードを知るのを必要とするように暗号化される検証を返します。
The NULL procedure typically requires no authentication.
NULL手順は認証を全く通常必要としません。
1.6 Philosophy
1.6 哲学
This specification defines the NFS version 3 protocol, that is the over-the-wire protocol by which a client accesses a server. The protocol provides a well-defined interface to a server's file resources. A client or server implements the protocol and provides a mapping of the local file system semantics and actions into those defined in the NFS version 3 protocol. Implementations may differ to varying degrees, depending on the extent to which a given environment can support all the operations and semantics defined in the NFS version 3 protocol. Although implementations exist and are used to illustrate various aspects of the NFS version 3 protocol, the protocol specification itself is the final description of how clients access server resources.
この仕様はNFSバージョン3プロトコルを定義します、すなわち過剰、ワイヤ、クライアントが. プロトコルが明確なインタフェースを提供するサーバにサーバのファイルリソースにアクセスするプロトコル。 クライアントかサーバが、プロトコルを実装して、NFSバージョン3プロトコルで定義されたものにローカルファイルシステム意味論と動作に関するマッピングを提供します。 実装はいろいろな度合いで異なるかもしれません、与えられた環境がすべての操作をサポートすることができる範囲とNFSバージョン3プロトコルで定義された意味論によって。 実装は、存在していて、NFSバージョン3プロトコルの種々相を例証するのに使用されますが、プロトコル仕様自体はクライアントがどうサーバリソースにアクセスするかに関する最終的な記述です。
Because the NFS version 3 protocol is designed to be operating-system independent, it does not necessarily match the semantics of any existing system. Server implementations are expected to make a best effort at supporting the protocol. If a server cannot support a particular protocol procedure, it may return the error, NFS3ERR_NOTSUP, that indicates that the operation is not supported. For example, many operating systems do not support the notion of a hard link. A server that cannot support hard links should return NFS3ERR_NOTSUP in response to a LINK request. FSINFO describes the most commonly unsupported procedures in the properties bit map. Alternatively, a server may not natively support a given operation, but can emulate it in the NFS version 3 protocol implementation to provide greater functionality.
NFSバージョン3プロトコルがオペレーティングシステム独立者になるように設計されているので、それは必ずどんな既存のシステムの意味論にも合っているというわけではありません。 サーバ実装でaがプロトコルをサポートするところでベストエフォート型になると予想されます。 サーバが特定のプロトコル手順をサポートすることができないなら、それは誤り、操作がサポートされないのを示すNFS3ERR_NOTSUPを返すかもしれません。 例えば、多くのオペレーティングシステムはハードリンクの概念をサポートしません。 ハードリンクをサポートすることができないサーバはLINK要求に対応してNFS3ERR_NOTSUPを返すべきです。 FSINFOは特性のビットマップで最も一般的にサポートされない手順について説明します。 あるいはまた、サーバは、ネイティブに与えられた操作をサポートしないかもしれませんが、より大きい機能性を提供するためにNFSバージョン3プロトコル実装でそれをエミュレートできます。
In some cases, a server can support most of the semantics described by the protocol but not all. For example, the ctime field in the fattr structure gives the time that a file's attributes were last modified. Many systems do not keep this information. In this case, rather than not support the GETATTR operation, a server could simulate it by returning the last modified time in place of ctime. Servers must be careful when simulating attribute information because of possible side effects on clients. For example, many clients use file modification times as a basis for their cache consistency
いくつかの場合、サーバは、プロトコルによって説明された意味論の大部分をサポートしますが、すべてサポートすることができません。 例えば、fattr構造のctime分野はファイルの属性が最後に変更された時間を与えます。 多くのシステムはこの情報を保ちません。 この場合、むしろ、サーバは、GETATTR操作をサポートしないよりctimeに代わって最後に変更された時間を返すことによって、それをシミュレートするかもしれません。 可能な副作用のためにクライアントの上で属性情報をシミュレートするとき、サーバは慎重であるに違いありません。 例えば、多くのクライアントがそれらのキャッシュの一貫性の基礎としてファイル変更回数を使用します。
Callaghan, el al Informational [Page 8] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[8ページ]RFC1813NFSバージョン3プロトコル1995年6月
scheme.
計画してください。
NFS servers are dumb and NFS clients are smart. It is the clients that do the work required to convert the generalized file access that servers provide into a file access method that is useful to applications and users. In the LINK example given above, a UNIX client that received an NFS3ERR_NOTSUP error from a server would do the recovery necessary to either make it look to the application like the link request had succeeded or return a reasonable error. In general, it is the burden of the client to recover.
NFSサーバは馬鹿です、そして、NFSクライアントは賢いです。 アプリケーションとユーザの役に立つのは、サーバがファイル・アクセス・メソッドに提供する一般化されたファイルアクセスを変換するのに必要である仕事をするクライアントです。 上に出されたLINKの例では、サーバからNFS3ERR_NOTSUP誤りを受けたUNIXクライアントはリンク要求が成功したようにアプリケーションを当てにさせるか、または合理的な誤りを返すのに必要な回復をするでしょう。 一般に、それは回復するクライアントの負担です。
The NFS version 3 protocol assumes a stateless server implementation. Statelessness means that the server does not need to maintain state about any of its clients in order to function correctly. Stateless servers have a distinct advantage over stateful servers in the event of a crash. With stateless servers, a client need only retry a request until the server responds; the client does not even need to know that the server has crashed. See additional comments in Duplicate request cache on page 99.
NFSバージョン3プロトコルは状態がないサーバ実装を仮定します。 国がないことは、サーバが正しく機能するようにクライアントのどれかに関して状態を維持する必要はないことを意味します。 状態がないサーバには、statefulサーバより異なった利点がクラッシュの場合、あります。 状態がないサーバで、サーバが反応するまで、クライアントは要求を再試行するだけでよいです。 クライアントは、サーバがダウンしたのを知る必要さえありません。 Duplicateの追加コメントが99ページのキャッシュを要求するのを見てください。
For a server to be useful, it holds nonvolatile state: data stored in the file system. Design assumptions in the NFS version 3 protocol regarding flushing of modified data to stable storage reduce the number of failure modes in which data loss can occur. In this way, NFS version 3 protocol implementations can tolerate transient failures, including transient failures of the network. In general, server implementations of the NFS version 3 protocol cannot tolerate a non-transient failure of the stable storage itself. However, there exist fault tolerant implementations which attempt to address such problems.
サーバが役に立つように、不揮発性の状態を保持します: ファイルシステムに保存されたデータ。 変更されたデータを安定貯蔵に洗い流すことに関するNFSバージョン3プロトコルにおけるデザイン仮定はデータの損失が発生できる故障モードの数を減少させます。 このように、NFSバージョン3プロトコル実装はネットワークの一時障害を含む一時障害を許容できます。 一般に、NFSバージョン3プロトコルのサーバ実装は安定貯蔵自体の非一時障害を許容できません。 しかしながら、そのようなその問題を訴えるのを試みるフォルト・トレラントの実装が存在しています。
That is not to say that an NFS version 3 protocol server can't maintain noncritical state. In many cases, servers will maintain state (cache) about previous operations to increase performance. For example, a client READ request might trigger a read-ahead of the next block of the file into the server's data cache in the anticipation that the client is doing a sequential read and the next client READ request will be satisfied from the server's data cache instead of from the disk. Read-ahead on the server increases performance by overlapping server disk I/O with client requests. The important point here is that the read-ahead block is not necessary for correct server behavior. If the server crashes and loses its memory cache of read buffers, recovery is simple on reboot - clients will continue read operations retrieving data from the server disk.
それは、NFSバージョン3プロトコルサーバが非臨界状態を維持できないと言うというわけではありません。 多くの場合、サーバは、性能を増強するために古い手術痕に関して状態(キャッシュ)を維持するでしょう。 例えば、クライアントは予期におけるサーバのデータキャッシュへのファイルの次のブロックですが、READが要求するクライアントは連続した読書をしながら、読まれる前でaの引き金となるかもしれません、そして、READが要求する次のクライアントはディスクの代わりにサーバのデータキャッシュから満足するでしょう。 -先では、サーバ増加のときに、サーバディスク入出力をクライアント要求に重ね合わせるのによる性能を読みます。 -先で読んでいるブロックは正しいサーバの振舞いに必要でないという重要なポイントがここにあります。 サーバが読書バッファのメモリーキャッシュを墜落して、失うなら、回復はリブートのときに簡単です--クライアントはサーバディスクからデータを検索する読書操作を続けるでしょう。
Callaghan, el al Informational [Page 9] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[9ページ]RFC1813NFSバージョン3プロトコル1995年6月
Most data-modifying operations in the NFS protocol are synchronous. That is, when a data modifying procedure returns to the client, the client can assume that the operation has completed and any modified data associated with the request is now on stable storage. For example, a synchronous client WRITE request may cause the server to update data blocks, file system information blocks, and file attribute information - the latter information is usually referred to as metadata. When the WRITE operation completes, the client can assume that the write data is safe and discard it. This is a very important part of the stateless nature of the server. If the server did not flush dirty data to stable storage before returning to the client, the client would have no way of knowing when it was safe to discard modified data. The following data modifying procedures are synchronous: WRITE (with stable flag set to FILE_SYNC), CREATE, MKDIR, SYMLINK, MKNOD, REMOVE, RMDIR, RENAME, LINK, and COMMIT.
NFSプロトコルにおけるほとんどのデータを変更する操作が同時です。 手順を変更するaデータがクライアントに戻るとき、それは缶が仮定する操作が完成したクライアントです、そして、現在、安定貯蔵には要求に関連しているどんな変更されたデータもあります。 例えば、WRITEが要求する同期クライアントはサーバにデータ・ブロック、ファイルシステム情報ブロック、およびファイル属性情報をアップデートさせるかもしれません--通常、後者の情報はメタデータと呼ばれます。 書いてください。操作が完成するWRITEでありクライアントがそれを仮定できる、データは、安全であり、それを捨てます。 これはサーバの状態がない本質の非常に重要な部分です。サーバがクライアントに戻る前に汚いデータを安定貯蔵に洗い流さないなら、クライアントには、変更されたデータを捨てるのがいつ安全であったかを知る方法が全くないでしょうに。 手順を変更する以下のデータは同時です: 削除、WRITE(FILE_SYNCに設定された安定した旗がある)、CREATE、MKDIR、SYMLINK、MKNOD、RMDIR、RENAME、LINK、およびCOMMIT。
The NFS version 3 protocol introduces safe asynchronous writes on the server, when the WRITE procedure is used in conjunction with the COMMIT procedure. The COMMIT procedure provides a way for the client to flush data from previous asynchronous WRITE requests on the server to stable storage and to detect whether it is necessary to retransmit the data. See the procedure descriptions of WRITE on page 49 and COMMIT on page 92.
NFSバージョン3プロトコルが金庫を紹介する、非同期である、WRITE手順がCOMMIT手順に関連して用いられるとき、サーバを書き続けます。 COMMIT手順はクライアントがサーバに関する前の非同期なWRITE要求から安定貯蔵までデータを洗い流して、データを再送するのが必要であるかどうか検出する方法を提供します。 92ページの49ページとCOMMITにおけるWRITEの手順記述を見てください。
The LOOKUP procedure is used by the client to traverse multicomponent file names (pathnames). Each call to LOOKUP is used to resolve one segment of a pathname. There are two reasons for restricting LOOKUP to a single segment: it is hard to standardize a common format for hierarchical file names and the client and server may have different mappings of pathnames to file systems. This would imply that either the client must break the path name at file system attachment points, or the server must know about the client's file system attachment points. In NFS version 3 protocol implementations, it is the client that constructs the hierarchical file name space using mounts to build a hierarchy. Support utilities, such as the Automounter, provide a way to manage a shared, consistent image of the file name space while still being driven by the client mount process.
LOOKUP手順は、多重元素ファイル名(パス名)を横断するのにクライアントによって用いられます。 LOOKUPへの各呼び出しは、パス名の1つのセグメントを決議するのに使用されます。 LOOKUPをただ一つのセグメントに制限する2つの理由があります: クライアントとサーバは、階層ファイル名のための一般的な形式を標準化しにくくて、システムをファイルするパス名の異なったマッピングを持っているかもしれません。これは、クライアントがファイルシステム付着点でパス名を破らなければならないか、またはサーバがクライアントのファイルシステム付着点に関して知らなければならないのを含意するでしょう。 NFSバージョン3プロトコル実装では、それは階層構造を築き上げるのにマウントを使用することでスペースという階層ファイル名を構成するクライアントです。 Automounterなどのサポートユーティリティはクライアントマウントプロセスによってまだ運転されている間にファイル名スペースの共有されて、一貫したイメージを管理する方法を提供します。
Clients can perform caching in varied manner. The general practice with the NFS version 2 protocol was to implement a time-based client-server cache consistency mechanism. It is expected NFS version 3 protocol implementations will use a similar mechanism. The NFS version 3 protocol has some explicit support, in the form of additional attribute information to eliminate explicit attribute checks. However, caching is not
クライアントは様々な方法におけるキャッシュを実行できます。 NFSバージョン2プロトコルがある一般診療は時間ベースのクライアント/サーバキャッシュ一貫性メカニズムを実装することになっていました。 NFSバージョン3プロトコル実装が同様のメカニズムを使用すると予想されます。 NFSバージョン3プロトコルには、何らかの明白なサポートがあります、明白な属性チェックを排除する追加属性情報の形で。 しかしながら、キャッシュはそうではありません。
Callaghan, el al Informational [Page 10] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[10ページ]RFC1813NFSバージョン3プロトコル1995年6月
required, nor is any caching policy defined by the protocol. Neither the NFS version 2 protocol nor the NFS version 3 protocol provide a means of maintaining strict client-server consistency (and, by implication, consistency across client caches).
必要であることで、または、少しのキャッシング方針もプロトコルによって定義されません。 NFSバージョン2プロトコルもNFSバージョン3プロトコルも厳しいクライアント/サーバの一貫性(そして、クライアントキャッシュの向こう側の含意による一貫性)を維持する手段を提供しません。
1.7 Changes from the NFS Version 2 Protocol
NFSバージョン2からの1.7回の変化が議定書を作ります。
The ROOT and WRITECACHE procedures have been removed. A MKNOD procedure has been defined to allow the creation of special files, eliminating the overloading of CREATE. Caching on the client is not defined nor dictated by the NFS version 3 protocol, but additional information and hints have been added to the protocol to allow clients that implement caching to manage their caches more effectively. Procedures that affect the attributes of a file or directory may now return the new attributes after the operation has completed to optimize out a subsequent GETATTR used in validating attribute caches. In addition, operations that modify the directory in which the target object resides return the old and new attributes of the directory to allow clients to implement more intelligent cache invalidation procedures. The ACCESS procedure provides access permission checking on the server, the FSSTAT procedure returns dynamic information about a file system, the FSINFO procedure returns static information about a file system and server, the READDIRPLUS procedure returns file handles and attributes in addition to directory entries, and the PATHCONF procedure returns POSIX pathconf information about a file.
ROOTとWRITECACHE手順を取り外してあります。 CREATEの積みすぎを排除して、MKNOD手順は、特別なファイルの作成を許容するために定義されました。 クライアントの上のキャッシュは、NFSバージョン3プロトコルによって定義されて、書き取られませんが、キャッシュを実装するクライアントが、より効果的に彼らのキャッシュを管理するのを許容するために追加情報とヒントをプロトコルに追加してあります。 ファイルかディレクトリの属性に影響する手順はもう、戻るかもしれません。操作の後の新しい属性は、属性キャッシュを有効にする際に使用されるその後のGETATTRから最適化するために完了しました。 さらに、目標オブジェクトが住んでいるディレクトリを変更する操作は、クライアントが、より知的なキャッシュ無効にするのが手順であると実装するのを許容するためにディレクトリの古くて新しい属性を返します。 サーバについて検査して、ACCESS手順は参照許可を供給します、そして、FSSTAT手順はファイルシステムに関する動的情報を返します、そして、FSINFO手順はファイルシステムとサーバの静的な情報を返します、そして、READDIRPLUS手順はディレクトリエントリーに加えてファイルハンドルと属性を返します、そして、PATHCONF手順はファイルの情報をPOSIX pathconfに返します。
Below is a list of the important changes between the NFS version 2 protocol and the NFS version 3 protocol.
以下に、NFSバージョン2プロトコルとNFSバージョン3プロトコルの間には、重要な変化のリストがあります。
File handle size The file handle has been increased to a variable-length array of 64 bytes maximum from a fixed array of 32 bytes. This addresses some known requirements for a slightly larger file handle size. The file handle was converted from fixed length to variable length to reduce local storage and network bandwidth requirements for systems which do not utilize the full 64 bytes of length.
32バイトの固定勢ぞろいから最大の64バイトの可変長の勢ぞろいにファイルが処理するファイルハンドルサイズを増強してあります。 これはわずかに大きいファイルハンドルサイズのためのいくつかの知られている要件を扱います。 ファイルハンドルは、完全な64バイトの長さを利用しないシステムのための地方のストレージとネットワーク帯域幅要件を減らすために固定長から可変長まで変換されました。
Maximum data sizes The maximum size of a data transfer used in the READ and WRITE procedures is now set by values in the FSINFO return structure. In addition, preferred transfer sizes are returned by FSINFO. The protocol does not place any artificial limits on the maximum transfer sizes.
データ転送の最大サイズがREADで使用した最大のデータサイズとWRITE手順は現在、FSINFOリターン構造の値によって設定されます。 さらに、都合のよい転送サイズはFSINFOによって返されます。 プロトコルは最大の転送サイズにどんな人工の限界も置きません。
Callaghan, el al Informational [Page 11] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[11ページ]RFC1813NFSバージョン3プロトコル1995年6月
Filenames and pathnames are now specified as strings of variable length. The actual length restrictions are determined by the client and server implementations as appropriate. The protocol does not place any artificial limits on the length. The error, NFS3ERR_NAMETOOLONG, is provided to allow the server to return an indication to the client that it received a pathname that was too long for it to handle.
ファイル名とパス名は現在、可変長のストリングとして指定されます。 実際の長さの制限はクライアントとサーバ実装で適宜決定します。 プロトコルはどんな人工の限界も長さに置きません。 サーバが扱うことができないくらい長かったパス名を受け取ったというクライアントへの指示を返すのを許容するために、誤り(NFS3ERR_NAMETOOLONG)を提供します。
Error return Error returns in some instances now return data (for example, attributes). nfsstat3 now defines the full set of errors that can be returned by a server. No other values are allowed.
誤りリターンErrorはある場合に現在、リターンデータ(例えば、属性)を返します。nfsstat3は現在、サーバで返すことができる誤りのフルセットを定義します。他の値は全く許容されていません。
File type The file type now includes NF3CHR and NF3BLK for special files. Attributes for these types include subfields for UNIX major and minor devices numbers. NF3SOCK and NF3FIFO are now defined for sockets and fifos in the file system.
ファイルが現在タイプするファイルの種類は特別なファイルのためのNF3CHRとNF3BLKを含んでいます。 これらのタイプのための属性はUNIXの主要で小さい方のデバイス番号のための部分体を含んでいます。 NF3SOCKとNF3FIFOは現在、ファイルシステムのソケットとfifosのために定義されます。
File attributes The blocksize (the size in bytes of a block in the file) field has been removed. The mode field no longer contains file type information. The size and fileid fields have been widened to eight-byte unsigned integers from four-byte integers. Major and minor device information is now presented in a distinct structure. The blocks field name has been changed to used and now contains the total number of bytes used by the file. It is also an eight-byte unsigned integer.
ファイル属性、blocksizeする、(ファイルの1ブロックのバイトで表現されるサイズ) 野原を取り除きました。 モード分野はもうファイルの種類情報を含んでいません。 サイズとfileid分野は4バイトの整数から8バイトの符号のない整数に広くされました。 主要で小さい方のデバイス情報は現在、異なった構造に提示されます。 フィールド名が変わったブロックは、ファイルによって使用されるバイトの総数を使用して、現在、含みます。 また、それは8バイトの符号のない整数です。
Set file attributes In the NFS version 2 protocol, the settable attributes were represented by a subset of the file attributes structure; the client indicated those attributes which were not to be modified by setting the corresponding field to -1, overloading some unsigned fields. The set file attributes structure now uses a discriminated union for each field to tell whether or how to set that field. The atime and mtime fields can be set to either the server's current time or a time supplied by the client.
NFSバージョン2が議定書の中で述べるセットファイル属性In、「舗装用敷石-可能」属性はファイル属性構造の部分集合によって表されました。 クライアントは対応する分野を-1に設定することによって変更してはいけなかったそれらの属性を示しました、いくつかの未署名の野原を積みすぎて。 各分野が設定するか、またはその分野を設定する方法を教えるのにセットファイル属性構造は現在、差別された組合を使用します。 atimeとmtime分野はクライアントによって供給されたサーバの現在の時間か1時間のどちらかまでセットであるかもしれません。
LOOKUP The LOOKUP return structure now includes the attributes for the directory searched.
LOOKUPが現在構造を返すLOOKUPは捜されたディレクトリのための属性を含んでいます。
Callaghan, el al Informational [Page 12] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[12ページ]RFC1813NFSバージョン3プロトコル1995年6月
ACCESS An ACCESS procedure has been added to allow an explicit over-the-wire permissions check. This addresses known problems with the superuser ID mapping feature in many server implementations (where, due to mapping of root user, unexpected permission denied errors could occur while reading from or writing to a file). This also removes the assumption which was made in the NFS version 2 protocol that access to files was based solely on UNIX style mode bits.
ACCESS An ACCESS手順が許容するために加えられる、明白である、過剰、ワイヤ、許容はチェックします。 これは多くのサーバ実装(根のユーザのマッピングのため、予期していなかった許可はそこで誤りがファイルに読み込むか、または書いている間発生できることを否定した)における「スーパー-ユーザ」IDマッピング機能の既知の問題を扱います。 また、これはファイルへのアクセスが唯一UNIXスタイルモードビットに基づいたというNFSバージョン2プロトコルでされた仮定を取り除きます。
READ The reply structure includes a Boolean that is TRUE if the end-of-file was encountered during the READ. This allows the client to correctly detect end-of-file.
READ、回答構造はブールであることでaを含んで、すなわち、TRUEはファイルの終りであるならREADの間、遭遇しました。 これで、クライアントは正しくファイルの終りを検出できます。
WRITE The beginoffset and totalcount fields were removed from the WRITE arguments. The reply now includes a count so that the server can write less than the requested amount of data, if required. An indicator was added to the arguments to instruct the server as to the level of cache synchronization that is required by the client.
WRITE、beginoffsetとtotalcount野原はWRITE議論から取り外されました。 回答は、現在、必要なら、サーバが要求されたデータ量以下を書くことができるように、カウントを含んでいます。 インディケータは、クライアントによって必要とされるキャッシュ同期のレベルに関してサーバを命令するために議論に加えられました。
CREATE An exclusive flag and a create verifier was added for the exclusive creation of regular files.
CREATE An排他的な旗とaは検証を作成します。通常のファイルの排他的な作成のために、加えられました。
MKNOD This procedure was added to support the creation of special files. This avoids overloading fields of CREATE as was done in some NFS version 2 protocol implementations.
MKNOD This手順は、特別なファイルの作成をサポートするために加えられました。 これは、いくつかのNFSバージョン2プロトコル実装でしたようにCREATEの野原を積みすぎるのを避けます。
READDIR The READDIR arguments now include a verifier to allow the server to validate the cookie. The cookie is now a 64 bit unsigned integer instead of the 4 byte array which was used in the NFS version 2 protocol. This will help to reduce interoperability problems.
議論が現在クッキーを有効にするのをサーバを許容するために検証を含むREADDIR READDIR。 現在、クッキーはNFSバージョン2プロトコルに使用された4バイトの配列の代わりに64の噛み付いている符号のない整数です。 これは、相互運用性問題を減少させるのを助けるでしょう。
READDIRPLUS This procedure was added to return file handles and attributes in an extended directory list.
READDIRPLUS This手順は、拡張ディレクトリリストのファイルハンドルと属性を返すために加えられました。
FSINFO FSINFO was added to provide nonvolatile information about a file system. The reply includes preferred and
FSINFO FSINFOは、ファイルシステムの不揮発性の情報を提供するために加えられました。 そして好まれて、回答が含んでいる。
Callaghan, el al Informational [Page 13] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[13ページ]RFC1813NFSバージョン3プロトコル1995年6月
maximum read transfer size, preferred and maximum write transfer size, and flags stating whether links or symbolic links are supported. Also returned are preferred transfer size for READDIR procedure replies, server time granularity, and whether times can be set in a SETATTR request.
都合のよくて最大の転送サイズが読まれた最大は転送サイズ、およびリンクかシンボリックリンクが支えられるかどうかと述べる旗を書きます。 また、返しているのが、READDIR手順回答、サーバ時間粒状のための都合のよい転送サイズであり、回があることができるかどうかがSETATTR要求にセットしました。
FSSTAT FSSTAT was added to provide volatile information about a file system, for use by utilities such as the Unix system df command. The reply includes the total size and free space in the file system specified in bytes, the total number of files and number of free file slots in the file system, and an estimate of time between file system modifications (for use in cache consistency checking algorithms).
FSSTAT FSSTATはファイルシステムの揮発性の情報を提供するために加えられました、Unixシステムdfコマンドなどのユーティリティによる使用のために。 回答はバイトで指定されたファイルシステム、ファイルの総数、ファイルシステムの自由なファイル・スロットの数、およびファイルシステム改変(アルゴリズムをチェックするキャッシュの一貫性における使用のための)の間の時間の見積りに総サイズと空きスペースを含んでいます。
COMMIT The COMMIT procedure provides the synchronization mechanism to be used with asynchronous WRITE operations.
COMMIT手順が非同期なWRITE操作と共に使用されるために同期メカニズムを供給するCOMMIT。
2. RPC Information
2. RPC情報
2.1 Authentication
2.1 認証
The NFS service uses AUTH_NONE in the NULL procedure. AUTH_UNIX, AUTH_DES, or AUTH_KERB are used for all other procedures. Other authentication types may be supported in the future.
NFSサービスはNULL手順でAUTH_NONEを使用します。 AUTH_UNIX、AUTH_DES、またはAUTH_KERBが他のすべての手順に使用されます。 他の認証タイプは将来、サポートされるかもしれません。
2.2 Constants
2.2 定数
These are the RPC constants needed to call the NFS Version 3 service. They are given in decimal.
これらは定数がNFSをバージョン3サービスと呼ぶ必要があったRPCです。 小数でそれらを与えます。
PROGRAM 100003 VERSION 3
プログラム100003バージョン3
2.3 Transport address
2.3 輸送アドレス
The NFS protocol is normally supported over the TCP and UDP protocols. It uses port 2049, the same as the NFS version 2 protocol.
通常、NFSプロトコルはTCPとUDPプロトコルの上でサポートされます。 それはポート2049、NFSバージョン2プロトコルと同じくらい使用します。
2.4 Sizes
2.4 サイズ
These are the sizes, given in decimal bytes, of various XDR structures used in the NFS version 3 protocol:
これらは10進バイトで与えられたNFSバージョン3プロトコルに使用される様々なXDR構造のサイズです:
Callaghan, el al Informational [Page 14] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[14ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3_FHSIZE 64 The maximum size in bytes of the opaque file handle.
不透明なもののバイトで表現される最大のサイズのNFS3_FHSIZE64はハンドルをファイルします。
NFS3_COOKIEVERFSIZE 8 The size in bytes of the opaque cookie verifier passed by READDIR and READDIRPLUS.
不透明なクッキー検証のバイトで表現されるサイズがREADDIRとREADDIRPLUSから渡したNFS3_COOKIEVERFSIZE8。
NFS3_CREATEVERFSIZE 8 The size in bytes of the opaque verifier used for exclusive CREATE.
不透明な検証のバイトで表現されるサイズが排他的なCREATEに使用したNFS3_CREATEVERFSIZE8。
NFS3_WRITEVERFSIZE 8 The size in bytes of the opaque verifier used for asynchronous WRITE.
不透明な検証のバイトで表現されるサイズが非同期なWRITEに使用したNFS3_WRITEVERFSIZE8。
2.5 Basic Data Types
2.5 基本のデータ型
The following XDR definitions are basic definitions that are used in other structures.
以下のXDR定義は非重要構造で使用される基本的な定義です。
uint64 typedef unsigned hyper uint64;
uint64 typedefの未署名の超-uint64。
int64 typedef hyper int64;
int64 typedef超-int64。
uint32 typedef unsigned long uint32;
uint32 typedefの未署名の長いuint32。
int32 typedef long int32;
int32 typedefの長いint32。
filename3 typedef string filename3<>;
filename3 typedefストリングfilename3<>。
nfspath3 typedef string nfspath3<>;
nfspath3 typedefストリングnfspath3<>。
fileid3 typedef uint64 fileid3;
fileid3 typedef uint64 fileid3。
cookie3 typedef uint64 cookie3;
cookie3 typedef uint64 cookie3。
cookieverf3 typedef opaque cookieverf3[NFS3_COOKIEVERFSIZE];
cookieverf3 typedefの不透明なcookieverf3[NFS3_COOKIEVERFSIZE]。
Callaghan, el al Informational [Page 15] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[15ページ]RFC1813NFSバージョン3プロトコル1995年6月
createverf3 typedef opaque createverf3[NFS3_CREATEVERFSIZE];
createverf3 typedefの不透明なcreateverf3[NFS3_CREATEVERFSIZE]。
writeverf3 typedef opaque writeverf3[NFS3_WRITEVERFSIZE];
writeverf3 typedefの不透明なwriteverf3[NFS3_WRITEVERFSIZE]。
uid3 typedef uint32 uid3;
uid3 typedef uint32 uid3。
gid3 typedef uint32 gid3;
gid3 typedef uint32 gid3。
size3 typedef uint64 size3;
size3 typedef uint64 size3。
offset3 typedef uint64 offset3;
offset3 typedef uint64 offset3。
mode3 typedef uint32 mode3;
mode3 typedef uint32 mode3。
count3 typedef uint32 count3;
count3 typedef uint32 count3。
nfsstat3 enum nfsstat3 { NFS3_OK = 0, NFS3ERR_PERM = 1, NFS3ERR_NOENT = 2, NFS3ERR_IO = 5, NFS3ERR_NXIO = 6, NFS3ERR_ACCES = 13, NFS3ERR_EXIST = 17, NFS3ERR_XDEV = 18, NFS3ERR_NODEV = 19, NFS3ERR_NOTDIR = 20, NFS3ERR_ISDIR = 21, NFS3ERR_INVAL = 22, NFS3ERR_FBIG = 27, NFS3ERR_NOSPC = 28, NFS3ERR_ROFS = 30, NFS3ERR_MLINK = 31, NFS3ERR_NAMETOOLONG = 63, NFS3ERR_NOTEMPTY = 66, NFS3ERR_DQUOT = 69, NFS3ERR_STALE = 70, NFS3ERR_REMOTE = 71, NFS3ERR_BADHANDLE = 10001,
nfsstat3 enum nfsstat3、NFS3_OKは0、NFS3ERR_PERM=1、NFS3ERR_NOENT=2、NFS3ERR_イーオー=5、NFS3ERR_NXIO=6、NFS3ERR_ACCES=13、NFS3ERR_EXIST=17、NFS3ERR_XDEV=18、NFS3ERR_NODEV=19、NFS3ERR_NOTDIR=20、NFS3ERR_ISDIR=21、NFS3ERR_INVAL=22、NFS3ERR_FBIG=27、NFS3ERR_NOSPC=28、NFS3ERR_ROFS=30、NFS3ERR_MLINK=31、NFS3ERR_NAMETOOLONG=63、NFS3ERR_NOTEMPTY=66、NFS3ERR_DQUOT=69、NFS3ERR_STALE=70、NFS3ERR_REMOTE=71と等しいです、NFS3ERR_BADHANDLE=10001
Callaghan, el al Informational [Page 16] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[16ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_NOT_SYNC = 10002, NFS3ERR_BAD_COOKIE = 10003, NFS3ERR_NOTSUPP = 10004, NFS3ERR_TOOSMALL = 10005, NFS3ERR_SERVERFAULT = 10006, NFS3ERR_BADTYPE = 10007, NFS3ERR_JUKEBOX = 10008 };
_の同時性ではなく、NFS3ERR_=10002、NFS3ERRの_の腐っている_クッキー=10003、NFS3ERR_NOTSUPP=10004、NFS3ERR_TOOSMALL=10005、NFS3ERR_SERVERFAULT=10006、NFS3ERR_BADTYPE=10007、NFS3ERR_ジュークボックス=10008、。
The nfsstat3 type is returned with every procedure's results except for the NULL procedure. A value of NFS3_OK indicates that the call completed successfully. Any other value indicates that some error occurred on the call, as identified by the error code. Note that the precise numeric encoding must be followed. No other values may be returned by a server. Servers are expected to make a best effort mapping of error conditions to the set of error codes defined. In addition, no error precedences are specified by this specification. Error precedences determine the error value that should be returned when more than one error applies in a given situation. The error precedence will be determined by the individual server implementation. If the client requires specific error precedences, it should check for the specific errors for itself.
nfsstat3タイプがともに帰られる、あらゆる、NULL手順以外のプロシージャの結果。 呼び出しが首尾よく完成したOKが示すNFS3_の値。 いかなる他の値も、エラーコードによって特定されるように何らかの誤りが呼び出しのときに発生したのを示します。 正確な数値コード化に続かなければならないことに注意してください。 サーバは他の値を全く返さないかもしれません。エラーコードのセットへのエラー条件のベストエフォート型マッピングを定義させるとサーバを予想します。 さらに、誤り先行は全くこの仕様で指定されません。 誤り先行は1つ以上の誤りが与えられた状況で適用されるとき返されるべきである誤り値を決定します。 誤り先行は個々のサーバ実装で決定するでしょう。 クライアントが特定の誤り先行を必要とするなら、それはそれ自体のための特定の誤りがないかどうかチェックするべきです。
2.6 Defined Error Numbers
2.6 定義されたエラー番号
A description of each defined error follows:
それぞれの定義された誤りの記述は続きます:
NFS3_OK Indicates the call completed successfully.
呼び出しが首尾よく完成したNFS3_OK Indicates。
NFS3ERR_PERM Not owner. The operation was not allowed because the caller is either not a privileged user (root) or not the owner of the target of the operation.
NFS3ERR_PERM Not所有者。 訪問者が特権ユーザ(根)でない操作の目標の所有者のどちらかでないので、操作は許されませんでした。
NFS3ERR_NOENT No such file or directory. The file or directory name specified does not exist.
そのようなものがファイルするNFS3ERR_NOENTノーかディレクトリ。 指定されたファイルかディレクトリ名が存在していません。
NFS3ERR_IO I/O error. A hard error (for example, a disk error) occurred while processing the requested operation.
NFS3ERR_IO入出力エラー。 困難な誤り(例えば、ディスク誤り)は要求された操作を処理している間、発生しました。
NFS3ERR_NXIO I/O error. No such device or address.
NFS3ERR_NXIO入出力エラー。 そのようなデバイスかアドレスでない。
Callaghan, el al Informational [Page 17] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[17ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_ACCES Permission denied. The caller does not have the correct permission to perform the requested operation. Contrast this with NFS3ERR_PERM, which restricts itself to owner or privileged user permission failures.
ACCES Permissionが否定したNFS3ERR_。 訪問者には、要求された操作を実行する正しい許可がありません。 NFS3ERR_PERMに対してこれを対照してください。(PERMはそれ自体を所有者か特権ユーザ許可失敗に制限します)。
NFS3ERR_EXIST File exists. The file specified already exists.
NFS3ERR_EXIST Fileは存在しています。 指定されたファイルは既に存在しています。
NFS3ERR_XDEV Attempt to do a cross-device hard link.
交差しているデバイスハードリンクをするNFS3ERR_XDEV Attempt。
NFS3ERR_NODEV No such device.
NFS3ERR_NODEVのいいえのそのようなデバイス。
NFS3ERR_NOTDIR Not a directory. The caller specified a non-directory in a directory operation.
NFS3ERR_NOTDIR Not aディレクトリ。 訪問者はディレクトリ操作で非ディレクトリを指定しました。
NFS3ERR_ISDIR Is a directory. The caller specified a directory in a non-directory operation.
NFS3ERR_ISDIR Is aディレクトリ。 訪問者は非ディレクトリ操作でディレクトリを指定しました。
NFS3ERR_INVAL Invalid argument or unsupported argument for an operation. Two examples are attempting a READLINK on an object other than a symbolic link or attempting to SETATTR a time field on a server that does not support this operation.
操作のためのNFS3ERR_INVAL Invalid議論かサポートされない議論。 2つの例が、シンボリックリンク以外のオブジェクトの上にREADLINKを試みるか、またはこの操作をサポートしないサーバで時間分野をSETATTRに試みています。
NFS3ERR_FBIG File too large. The operation would have caused a file to grow beyond the server's limit.
NFS3ERR_FBIG File、も大きいです。 操作で、ファイルはサーバの限界を超えたところまで成長したでしょう。
NFS3ERR_NOSPC No space left on device. The operation would have caused the server's file system to exceed its limit.
NFS3ERR_NOSPCいいえスペースはデバイスでいなくなりました。 操作で、サーバのファイルシステムは限界を超えていたでしょう。
NFS3ERR_ROFS Read-only file system. A modifying operation was attempted on a read-only file system.
NFS3ERR_ROFS Readだけがシステムをファイルします。 変更作業は読取専用ファイルシステムの上で試みられました。
NFS3ERR_MLINK Too many hard links.
NFS3ERR_MLINK Too多くのハードリンク。
NFS3ERR_NAMETOOLONG The filename in an operation was too long.
NFS3ERR_NAMETOOLONG、稼働中であるファイル名は長過ぎました。
Callaghan, el al Informational [Page 18] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[18ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_NOTEMPTY
NFS3ERR_NOTEMPTY
An attempt was made to remove a directory that was not empty.
空でなかったディレクトリを取り外すのを試みをしました。
NFS3ERR_DQUOT Resource (quota) hard limit exceeded. The user's resource limit on the server has been exceeded.
DQUOT Resourceの(割当て)困難な限界が超えていたNFS3ERR_。 サーバにおけるユーザのリソース限界は超えられています。
NFS3ERR_STALE Invalid file handle. The file handle given in the arguments was invalid. The file referred to by that file handle no longer exists or access to it has been revoked.
NFS3ERR_STALE Invalidはハンドルをファイルします。 議論で与えられたファイルハンドルは無効でした。 そのファイルハンドルによって示されたファイルがもう存在していないか、またはそれへのアクセスは取り消されました。
NFS3ERR_REMOTE Too many levels of remote in path. The file handle given in the arguments referred to a file on a non-local file system on the server.
経路でリモートのNFS3ERR_REMOTE Too多くのレベル。 議論で与えられたファイルハンドルはサーバに非ローカルファイルシステムのファイルを示しました。
NFS3ERR_BADHANDLE Illegal NFS file handle. The file handle failed internal consistency checks.
NFS3ERR_BADHANDLE Illegal NFSはハンドルをファイルします。 ファイルハンドルは内的整合性チェックに失敗しました。
NFS3ERR_NOT_SYNC Update synchronization mismatch was detected during a SETATTR operation.
_SYNC Update同期ミスマッチではなく、NFS3ERR_がSETATTR操作の間、検出されました。
NFS3ERR_BAD_COOKIE READDIR or READDIRPLUS cookie is stale.
NFS3ERR_BAD_COOKIE READDIRかREADDIRPLUSクッキーが新鮮ではありません。
NFS3ERR_NOTSUPP Operation is not supported.
NFS3ERR_NOTSUPP Operationはサポートされません。
NFS3ERR_TOOSMALL Buffer or request is too small.
NFS3ERR_TOOSMALL Bufferか要求が小さ過ぎます。
NFS3ERR_SERVERFAULT An error occurred on the server which does not map to any of the legal NFS version 3 protocol error values. The client should translate this into an appropriate error. UNIX clients may choose to translate this to EIO.
NFS3ERR_SERVERFAULT An誤りはバージョン3プロトコル誤り値を法的なNFSのいずれにも写像しないサーバに発生しました。 クライアントは適切な誤りにこれを翻訳するべきです。 UNIXクライアントは、これをEIOに翻訳するのを選ぶかもしれません。
NFS3ERR_BADTYPE An attempt was made to create an object of a type not supported by the server.
BADTYPE Anが試みるNFS3ERR_はサーバによってサポートされなかったタイプのオブジェクトを作成させられました。
Callaghan, el al Informational [Page 19] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[19ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_JUKEBOX The server initiated the request, but was not able to complete it in a timely fashion. The client should wait and then try the request with a new RPC transaction ID. For example, this error should be returned from a server that supports hierarchical storage and receives a request to process a file that has been migrated. In this case, the server should start the immigration process and respond to client with this error.
NFS3ERR_JUKEBOX、サーバは、要求を開始しましたが、直ちにそれを完成できませんでした。 クライアントは、新しいRPCトランザクションIDとの要求を待っていて、次に、試みるべきです。 例えば、この誤りは、階層的なストレージをサポートするサーバから返されるべきであり、それがファイルであったのを処理するのが移行したという要求を受け取ります。 この場合、サーバは、移住プロセスを始めて、この誤りでクライアントに反応するべきです。
ftype3
ftype3
enum ftype3 { NF3REG = 1, NF3DIR = 2, NF3BLK = 3, NF3CHR = 4, NF3LNK = 5, NF3SOCK = 6, NF3FIFO = 7 };
enum ftype3、NF3REG=1、NF3DIR=2、NF3BLK=3、NF3CHR=4、NF3LNKは5、NF3SOCK=6と等しいです、NF3FIFO=7。
The enumeration, ftype3, gives the type of a file. The type, NF3REG, is a regular file, NF3DIR is a directory, NF3BLK is a block special device file, NF3CHR is a character special device file, NF3LNK is a symbolic link, NF3SOCK is a socket, and NF3FIFO is a named pipe. Note that the precise enum encoding must be followed.
列挙(ftype3)はファイルのタイプに与えます。 タイプ(NF3REG)は通常のファイルです、そして、NF3DIRはディレクトリです、そして、NF3BLKはブロックの特別なデバイスファイルです、そして、NF3CHRはキャラクタの特別なデバイスファイルです、そして、NF3LNKはシンボリックリンクです、そして、NF3SOCKはソケットです、そして、NF3FIFOは名前付きパイプです。 正確なenumコード化に続かなければならないことに注意してください。
specdata3
specdata3
struct specdata3 { uint32 specdata1; uint32 specdata2; };
struct specdata3、uint32 specdata1(uint32 specdata2)。
The interpretation of the two words depends on the type of file system object. For a block special (NF3BLK) or character special (NF3CHR) file, specdata1 and specdata2 are the major and minor device numbers, respectively. (This is obviously a UNIX-specific interpretation.) For all other file types, these two elements should either be set to 0 or the values should be agreed upon by the client and server. If the client and server do not agree upon the values, the client should treat these fields as if they are set to 0. This data field is returned as part of the fattr3 structure and so is available from all replies returning attributes. Since these fields are otherwise unused for objects which are not devices, out of band
2つの単語の解釈はファイル形式システム対象物によります。 ブロックのスペシャル(NF3BLK)かキャラクタの特別な(NF3CHR)ファイルに関しては、specdata1とspecdata2はそれぞれ主要で小さい方の装置番号です。 (これは明らかにUNIX特有の解釈です。) 他のすべてのファイルの種類において、これらの2つの要素が0に設定されるべきですか、または値はクライアントとサーバによって同意されるべきです。クライアントとサーバが値に同意しないなら、まるでそれらが0に設定されるかのようにクライアントはこれらの分野を扱うべきです。 このデータ・フィールドは、fattr3構造の一部として返すので、属性を返すすべての回答によって利用可能です。 そうでなければ、デバイスでないオブジェクトにおいて、これらの分野がバンドから未使用であるので
Callaghan, el al Informational [Page 20] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[20ページ]RFC1813NFSバージョン3プロトコル1995年6月
information can be passed from the server to the client. However, once again, both the server and the client must agree on the values passed.
サーバからクライアントまで情報を通過できます。 しかしながら、もう一度、サーバとクライアントが値で同意しなければならない両方が通りました。
nfs_fh3
nfs_fh3
struct nfs_fh3 { opaque data<NFS3_FHSIZE>; };
struct nfs_fh3、不透明なデータ<NFS3_FHSIZE>;、。
The nfs_fh3 is the variable-length opaque object returned by the server on LOOKUP, CREATE, SYMLINK, MKNOD, LINK, or READDIRPLUS operations, which is used by the client on subsequent operations to reference the file. The file handle contains all the information the server needs to distinguish an individual file. To the client, the file handle is opaque. The client stores file handles for use in a later request and can compare two file handles from the same server for equality by doing a byte-by-byte comparison, but cannot otherwise interpret the contents of file handles. If two file handles from the same server are equal, they must refer to the same file, but if they are not equal, no conclusions can be drawn. Servers should try to maintain a one-to-one correspondence between file handles and files, but this is not required. Clients should use file handle comparisons only to improve performance, not for correct behavior.
nfs_fh3はその後の操作のときにファイルに参照をつけるのにクライアントによって使用されるLOOKUP、CREATE、SYMLINK、MKNOD、LINK、またはREADDIRPLUS操作のときにサーバによって返された可変長の不透明なオブジェクトです。 ファイルハンドルはサーバが個々のファイルを区別するために必要とするすべての情報を含んでいます。 クライアントにとって、ファイルハンドルは不透明です。 クライアントは、後の要求における使用のためにファイルハンドルを保存して、平等のために同じサーバからバイトごとに比較することによって2本のファイルハンドルを比較できますが、そうでなければ、ファイルハンドルのコンテンツを解釈できません。 同じサーバからの2本のファイルハンドルが等しいなら、彼らは同じファイルを示さなければなりませんが、それらが等しくないなら、どんな結論にも達せられることができません。 サーバはファイルハンドルとファイルとの1〜1つの通信を維持しようとするべきですが、これは必要ではありません。 クライアントはファイルハンドル比較を使用するべきですが、どんな正しい振舞いによっても性能を向上させません。
Servers can revoke the access provided by a file handle at any time. If the file handle passed in a call refers to a file system object that no longer exists on the server or access for that file handle has been revoked, the error, NFS3ERR_STALE, should be returned.
サーバはいつでもファイルハンドルによって提供されたアクセスを取り消すことができます。 呼び出しで渡されたファイルハンドルがもうサーバに存在しないファイルシステム対象物について言及するか、またはそのファイルハンドルのためのアクセスが取り消されたなら、誤り(NFS3ERR_STALE)は返されるべきです。
nfstime3
nfstime3
struct nfstime3 { uint32 seconds; uint32 nseconds; };
uint32が後援する; uint32 nseconds;struct nfstime3。
The nfstime3 structure gives the number of seconds and nanoseconds since midnight January 1, 1970 Greenwich Mean Time. It is used to pass time and date information. The times associated with files are all server times except in the case of a SETATTR operation where the client can explicitly set the file time. A server converts to and from local time when processing time values, preserving as much accuracy as possible. If the precision of timestamps stored for a file is less than that
nfstime3構造は真夜中の1970年1月1日グリニッジ標準時以来の秒数と数ナノ秒を与えます。 それは、日時の情報を通過するのに使用されます。 ファイルに関連している回はクライアントが明らかにファイル時間を設定できるSETATTR操作に関するケース中以外のすべてサーバ回です。 処理時間値であるときに、できるだけ多くの精度を保存して、サーバは現地時間、現地時間から変換されます。 ファイルのために保存されたタイムスタンプの精度がそれ以下であるなら
Callaghan, el al Informational [Page 21] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[21ページ]RFC1813NFSバージョン3プロトコル1995年6月
defined by NFS version 3 protocol, loss of precision can occur. An adjunct time maintenance protocol is recommended to reduce client and server time skew.
NFSバージョン3プロトコルによって定義されて、精度の損失は起こることができます。 付属物時間メインテナンスプロトコルがクライアントとサーバ時間斜行を抑えることが勧められます。
fattr3
fattr3
struct fattr3 { ftype3 type; mode3 mode; uint32 nlink; uid3 uid; gid3 gid; size3 size; size3 used; specdata3 rdev; uint64 fsid; fileid3 fileid; nfstime3 atime; nfstime3 mtime; nfstime3 ctime; };
ftype3タイプ; mode3モード; uint32 nlink; uid3 uid; gid3ヒツジ暈倒病; size3サイズ; size3が使用した; specdata3 rdev; uint64 fsid;fileid3 fileid; nfstime3 atime; nfstime3 mtime;nfstime3 ctime;struct fattr3。
This structure defines the attributes of a file system object. It is returned by most operations on an object; in the case of operations that affect two objects (for example, a MKDIR that modifies the target directory attributes and defines new attributes for the newly created directory), the attributes for both may be returned. In some cases, the attributes are returned in the structure, wcc_data, which is defined below; in other cases the attributes are returned alone. The main changes from the NFS version 2 protocol are that many of the fields have been widened and the major/minor device information is now presented in a distinct structure rather than being packed into a word.
この構造はファイルシステム対象物の属性を定義します。 オブジェクトの上にほとんどの操作でそれを返します。 2個のオブジェクト(例えば、目標ディレクトリ属性を変更して、新たに作成されたディレクトリのために新しい属性を定義するMKDIR)に影響する操作の場合では、両方のための属性は返されるかもしれません。 いくつかの場合、属性は構造、wcc_データで返されます。(データは以下で定義されます)。 他の場合では、属性は単独で返されます。 NFSバージョン2プロトコルからの主な変化は分野の多くが広くされて、主要であるか小さい方のデバイス情報が現在単語に詰め込まれるより異なった構造にむしろ提示されるということです。
The fattr3 structure contains the basic attributes of a file. All servers should support this set of attributes even if they have to simulate some of the fields. Type is the type of the file. Mode is the protection mode bits. Nlink is the number of hard links to the file - that is, the number of different names for the same file. Uid is the user ID of the owner of the file. Gid is the group ID of the group of the file. Size is the size of the file in bytes. Used is the number of bytes of disk space that the file actually uses (which can be smaller than the size because the file may have holes or it may be larger due to fragmentation). Rdev describes the device file if the file type is NF3CHR or NF3BLK - see specdata3 on page 20. Fsid is the file system identifier for the file system. Fileid is a number which uniquely identifies the file within its file system (on UNIX
fattr3構造はファイルの基本的な属性を含んでいます。 分野のいくつかをシミュレートしなければならなくても、すべてのサーバがこのセットの属性をサポートするべきです。 タイプはファイルのタイプです。 モードは保護モードビットです。 Nlinkはファイルへのハードリンクの数です--すなわち、同じファイルのための異なった名前の数。 Uidはファイルの所有者のユーザIDです。 ヒツジ暈倒病はファイルのグループのグループIDです。 サイズはバイトで表現されるファイルのサイズです。 使用されているのは、ファイルが実際に使用する椎間腔(ファイルには穴かそれがあるかもしれなくて、サイズが断片化のために、より大きいかもしれないというよりも小さい場合がある)のバイト数です。 Rdevはファイルの種類がNF3CHRかNF3BLKであるならデバイスファイルについて説明します--20ページのspecdata3を見てください。 Fsidはファイルシステムのためのファイルシステム識別子です。 Fileidがファイルシステムの中で唯一ファイルを特定する数である、(UNIX
Callaghan, el al Informational [Page 22] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[22ページ]RFC1813NFSバージョン3プロトコル1995年6月
this would be the inumber). Atime is the time when the file data was last accessed. Mtime is the time when the file data was last modified. Ctime is the time when the attributes of the file were last changed. Writing to the file changes the ctime in addition to the mtime.
これが「不-アンバー」であるだろう、) Atimeはファイルデータが最後にアクセスされた時です。 Mtimeはファイルデータが最後に変更された時です。 Ctimeはファイルの属性が最後に変えられた時です。 ファイルに書くのはmtimeに加えてctimeを変えます。
The mode bits are defined as follows:
モードビットは以下の通り定義されます:
0x00800 Set user ID on execution. 0x00400 Set group ID on execution. 0x00200 Save swapped text (not defined in POSIX). 0x00100 Read permission for owner. 0x00080 Write permission for owner. 0x00040 Execute permission for owner on a file. Or lookup (search) permission for owner in directory. 0x00020 Read permission for group. 0x00010 Write permission for group. 0x00008 Execute permission for group on a file. Or lookup (search) permission for group in directory. 0x00004 Read permission for others. 0x00002 Write permission for others. 0x00001 Execute permission for others on a file. Or lookup (search) permission for others in directory.
0×00800はユーザIDを実行にけしかけます。 0×00400はグループIDを実行に設定します。 0×00200は交換されたテキスト(POSIXでは、定義されない)を保存します。 0×00100は所有者のために許可を読みます。 0×00080は所有者のために許可を書きます。 0×00040は所有者のためにファイルの上で許可を実行します。 ディレクトリの所有者のためのルックアップ(検索)許可。 0×00020はグループのために許可を読みます。 0×00010はグループのために許可を書きます。 0×00008はファイルに関するグループのために許可を実行します。 ディレクトリのグループのためのルックアップ(検索)許可。 0×00004は他のもののために許可を読みます。 0×00002は他のもののために許可を書きます。 0×00001は他のもののためにファイルの上で許可を実行します。 ディレクトリの他のもののためのルックアップ(検索)許可。
post_op_attr
_ポストオプアート_attr
union post_op_attr switch (bool attributes_follow) { case TRUE: fattr3 attributes; case FALSE: void; };
組合ポスト_オプアート_attrスイッチ(bool属性_は続く)はTRUE: fattr3属性ケースFALSE: (空間)をケースに入れます。
This structure is used for returning attributes in those operations that are not directly involved with manipulating attributes. One of the principles of this revision of the NFS protocol is to return the real value from the indicated operation and not an error from an incidental operation. The post_op_attr structure was designed to allow the server to recover from errors encountered while getting attributes.
この構造は直接属性を操るのにかかわらないそれらの操作における戻っている属性に使用されます。 NFSプロトコルのこの改正の原則の1つは誤りではなく、示された操作から付帯的な操作から実価を返すことです。 ポスト_オプアート_attr構造は、サーバが属性を得ている間に遭遇する誤りから克服されるのを許容するように設計されました。
This appears to make returning attributes optional. However, server implementors are strongly encouraged to make best effort to return attributes whenever possible, even when returning an error.
これは戻っている属性を任意にするように見えます。 しかしながら、サーバ作成者は、可能であるときはいつも、属性を返すためにベストエフォート型に作るために強く奨励されていて、誤りを返すと、同等です。
Callaghan, el al Informational [Page 23] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[23ページ]RFC1813NFSバージョン3プロトコル1995年6月
wcc_attr
wcc_attr
struct wcc_attr { size3 size; nfstime3 mtime; nfstime3 ctime; };
struct wcc_attr、size3サイズ; nfstime3 mtime;nfstime3 ctime;、。
This is the subset of pre-operation attributes needed to better support the weak cache consistency semantics. Size is the file size in bytes of the object before the operation. Mtime is the time of last modification of the object before the operation. Ctime is the time of last change to the attributes of the object before the operation. See discussion in wcc_attr on page 24.
これは弱いキャッシュが一貫性意味論であると、よりよくサポートするのに必要であるプレ操作属性の部分集合です。 サイズは操作の前のオブジェクトのバイトで表現されるファイルサイズです。 Mtimeは操作の前のオブジェクトの最後の変更の時間です。 Ctimeは操作の前のオブジェクトの属性への最後の変化の時間です。 24ページのwcc_attrの議論を見てください。
The use of mtime by clients to detect changes to file system objects residing on a server is dependent on the granularity of the time base on the server.
サーバに住んでいるシステム対象物をファイルするために変化を検出するクライアントによるmtimeの使用はサーバの時間ベースの粒状に依存しています。
pre_op_attr
前_のオプアート_attr
union pre_op_attr switch (bool attributes_follow) { case TRUE: wcc_attr attributes; case FALSE: void; };
組合の前_のオプアート_attrはケースTRUE: wcc_attr属性ケースFALSE: (空間)を切り換えます(bool属性_は続きます)。
wcc_data
wcc_データ
struct wcc_data { pre_op_attr before; post_op_attr after; };
以前; _後のポストオプアート_attr;前_のオプアート_attrなstruct wcc_データ。
When a client performs an operation that modifies the state of a file or directory on the server, it cannot immediately determine from the post-operation attributes whether the operation just performed was the only operation on the object since the last time the client received the attributes for the object. This is important, since if an intervening operation has changed the object, the client will need to invalidate any cached data for the object (except for the data that it just wrote).
クライアントがすぐにファイルかディレクトリの状態を変更する操作をサーバに実行するとき、クライアントがオブジェクトのために最後の時間属性を受けたので、それは、ポスト操作属性からただ実行された操作がオブジェクトにおける唯一の操作であったかどうか決定できません。 これは重要です、介入している操作がオブジェクトを変えたなら、クライアントが、オブジェクト(それがただ書いたデータを除いた)のためのどんなキャッシュされたデータも無効にする必要があるので。
To deal with this, the notion of weak cache consistency data or wcc_data is introduced. A wcc_data structure consists of certain key fields from the object attributes before the operation, together with the object attributes after the operation. This
これに対処するために、弱いキャッシュ一貫性データかwcc_データの概念は紹介されます。 wcc_データ構造は操作の前にオブジェクト属性からのあるキーフィールドから成ります、操作の後のオブジェクト属性と共に。 これ
Callaghan, el al Informational [Page 24] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[24ページ]RFC1813NFSバージョン3プロトコル1995年6月
information allows the client to manage its cache more accurately than in NFS version 2 protocol implementations. The term, weak cache consistency, emphasizes the fact that this mechanism does not provide the strict server-client consistency that a cache consistency protocol would provide.
情報で、クライアントはNFSバージョン2プロトコル実装より正確にキャッシュを管理できます。 用語(弱いキャッシュの一貫性)はこのメカニズムがキャッシュ一貫性プロトコルが提供する厳しいサーバクライアントの一貫性を提供しないという事実を強調します。
In order to support the weak cache consistency model, the server will need to be able to get the pre-operation attributes of the object, perform the intended modify operation, and then get the post-operation attributes atomically. If there is a window for the object to get modified between the operation and either of the get attributes operations, then the client will not be able to determine whether it was the only entity to modify the object. Some information will have been lost, thus weakening the weak cache consistency guarantees.
一貫性モデル、サーバが得ることができる必要がある弱いキャッシュにオブジェクトのプレ操作属性をサポートして、意図を実行するには、操作を変更してください、そして、次に、原子論的にポスト操作属性を得てください。 オブジェクトが操作とどちらかの間で変更されるために窓がある、属性操作(クライアントがそれが唯一の実体であったか否かに関係なく、オブジェクトを変更するために決定できないその時)を得てください。 何らかの情報が失われていて、その結果、弱いキャッシュ一貫性保証を弱めてしまうでしょう。
post_op_fh3
_ポストオプアート_fh3
union post_op_fh3 switch (bool handle_follows) { case TRUE: nfs_fh3 handle; case FALSE: void; };
組合ポスト_オプアート_fh3スイッチ(boolハンドル_は続く)はTRUE: nfs_fh3ハンドルケースFALSE: (空間)をケースに入れます。
One of the principles of this revision of the NFS protocol is to return the real value from the indicated operation and not an error from an incidental operation. The post_op_fh3 structure was designed to allow the server to recover from errors encountered while constructing a file handle.
NFSプロトコルのこの改正の原則の1つは誤りではなく、示された操作から付帯的な操作から実価を返すことです。 ポスト_オプアート_fh3構造は、サーバがファイルハンドルを組み立てている間に遭遇する誤りから克服されるのを許容するように設計されました。
This is the structure used to return a file handle from the CREATE, MKDIR, SYMLINK, MKNOD, and READDIRPLUS requests. In each case, the client can get the file handle by issuing a LOOKUP request after a successful return from one of the listed operations. Returning the file handle is an optimization so that the client is not forced to immediately issue a LOOKUP request to get the file handle.
これはCREATE、MKDIR、SYMLINK、MKNOD、およびREADDIRPLUS要求からファイルハンドルを返すのに使用される構造です。 その都度、クライアントは、うまくいっているリターンの後に記載された操作の1つからLOOKUP要求を出すことによって、ファイルハンドルを手に入れることができます。 ファイルハンドルを返すのが、最適化であるので、クライアントはすぐに、やむを得ず、ファイルハンドルを手に入れるというLOOKUP要求を出しません。
sattr3
sattr3
enum time_how { DONT_CHANGE = 0, SET_TO_SERVER_TIME = 1, SET_TO_CLIENT_TIME = 2 };
ドント_CHANGEが0、SET_TO_SERVER_タイム誌=1、SET_TO_CLIENT_タイム誌=2と等しいenum時間_。
union set_mode3 switch (bool set_it) {
組合セット_mode3スイッチ(boolは_それを設定しました)
Callaghan, el al Informational [Page 25] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[25ページ]RFC1813NFSバージョン3プロトコル1995年6月
case TRUE: mode3 mode; default: void; };
TRUEをケースに入れてください: mode3モード。 デフォルト: 空間。 };
union set_uid3 switch (bool set_it) { case TRUE: uid3 uid; default: void; };
組合はケースTRUE: _uid3スイッチ(boolは_それを設定した)uid3 uidデフォルト: (空間)を設定しました。
union set_gid3 switch (bool set_it) { case TRUE: gid3 gid; default: void; };
組合セット_gid3スイッチ(boolは_それを設定した)はTRUE: gid3ヒツジ暈倒病デフォルト: (空間)をケースに入れます。
union set_size3 switch (bool set_it) { case TRUE: size3 size; default: void; };
組合セット_size3スイッチ(boolは_それを設定した)はTRUE: size3サイズデフォルト: (空間)をケースに入れます。
union set_atime switch (time_how set_it) { case SET_TO_CLIENT_TIME: nfstime3 atime; default: void; };
組合はケースSET_TO_CLIENT_タイム誌: _atimeスイッチ(_どのようにが_それを設定した時)nfstime3 atimeデフォルト: (空間)を設定しました。
union set_mtime switch (time_how set_it) { case SET_TO_CLIENT_TIME: nfstime3 mtime; default: void; };
組合はケースSET_TO_CLIENT_タイム誌: _mtimeスイッチ(_どのようにが_それを設定した時)nfstime3 mtimeデフォルト: (空間)を設定しました。
struct sattr3 { set_mode3 mode; set_uid3 uid; set_gid3 gid; set_size3 size; set_atime atime; set_mtime mtime;
struct sattr3、_mode3モードを設定してください; _uid3 uidを設定してください; _gid3ヒツジ暈倒病を設定してください; _size3サイズを設定してください; _atime atimeを設定してください; _mtime mtimeを設定してください。
Callaghan, el al Informational [Page 26] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[26ページ]RFC1813NFSバージョン3プロトコル1995年6月
};
};
The sattr3 structure contains the file attributes that can be set from the client. The fields are the same as the similarly named fields in the fattr3 structure. In the NFS version 3 protocol, the settable attributes are described by a structure containing a set of discriminated unions. Each union indicates whether the corresponding attribute is to be updated, and if so, how.
sattr3構造はクライアントから設定できるファイル属性を含んでいます。 分野はfattr3構造で同様に命名された分野と同じです。 NFSバージョン3プロトコルで、「舗装用敷石-可能」属性は1セットの差別された組合を含む構造によって説明されます。 各組合は、対応する属性がアップデートするかどうかことであることを示します、そして、そうだとすれば、どのようにですか?
There are two forms of discriminated unions used. In setting the mode, uid, gid, or size, the discriminated union is switched on a boolean, set_it; if it is TRUE, a value of the appropriate type is then encoded.
2つのフォームの差別された使用された組合があります。 モード、uid、ヒツジ暈倒病、またはサイズを設定する際に、差別された組合は論理演算子で切り換えられて、セット_はそれです。 そして、それがTRUEであるなら、適切なタイプの値はコード化されます。
In setting the atime or mtime, the union is switched on an enumeration type, set_it. If set_it has the value DONT_CHANGE, the corresponding attribute is unchanged. If it has the value, SET_TO_SERVER_TIME, the corresponding attribute is set by the server to its local time; no data is provided by the client. Finally, if set_it has the value, SET_TO_CLIENT_TIME, the attribute is set to the time passed by the client in an nfstime3 structure. (See FSINFO on page 86, which addresses the issue of time granularity).
atimeかmtimeを設定するのにおいて、組合は列挙タイプで切り換えられて、セット_はそれです。 _設定されて、値のドント_CHANGEを持っているなら、対応する属性は変わりがありません。 SET_TO_SERVER_タイム誌、それに値があるなら、対応する属性は現地時間までのサーバによるセットです。 データは全くクライアントによって提供されません。 最終的にSET_TO_CLIENT_タイム誌_設定されて、それに値があるなら、属性はnfstime3構造で時間までクライアントによって渡されたセットです。 (時間粒状の問題を扱う86ページのFSINFOを見ます。)
diropargs3
diropargs3
struct diropargs3 { nfs_fh3 dir; filename3 name; };
struct diropargs3は_fh3 dir(filename3名)をnfsします。
The diropargs3 structure is used in directory operations. The file handle, dir, identifies the directory in which to manipulate or access the file, name. See additional comments in File name component handling on page 101.
diropargs3構造はディレクトリ操作に使用されます。 ファイルハンドル(dir)はファイル、名前に操るか、またはアクセスするディレクトリを特定します。 101ページにおけるFile名前コンポーネント取り扱いにおける追加コメントを見てください。
3. Server Procedures
3. サーバ手順
The following sections define the RPC procedures that are supplied by an NFS version 3 protocol server. The RPC procedure number is given at the top of the page with the name. The SYNOPSIS provides the name of the procedure, the list of the names of the arguments, the list of the names of the results, followed by the XDR argument declarations and results declarations. The information in the SYNOPSIS is specified in RPC Data Description Language as defined in [RFC1014]. The DESCRIPTION section tells what the procedure
以下のセクションはNFSバージョン3プロトコルサーバによって供給されるRPC手順を定義します。ページの上部に名前と共にRPC手順番号を与えます。 SYNOPSISは手順の名前を提供します、と議論の名前のリスト(結果の名前のリスト)はXDR議論宣言と結果宣言で続きました。 SYNOPSISの情報は[RFC1014]で定義されるようにRPC Data記述Languageで指定されます。 記述部がなにかを言うか、手順
Callaghan, el al Informational [Page 27] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[27ページ]RFC1813NFSバージョン3プロトコル1995年6月
is expected to do and how its arguments and results are used. The ERRORS section lists the errors returned for specific types of failures. These lists are not intended to be the definitive statement of all of the errors which can be returned by any specific procedure, but as a guide for the more common errors which may be returned. Client implementations should be prepared to deal with unexpected errors coming from a server. The IMPLEMENTATION field gives information about how the procedure is expected to work and how it should be used by clients.
してください。予想される、そして、その議論と結果はどう使用されているか。 ERRORS部は特定のタイプの失敗によって返された誤りを記載します。 どんな特定の手順でも返すことができる誤りについてすべての決定的な声明であることを意図するのではなく、これらのリストは返されるかもしれないより一般的な誤りのためのガイドとして意図します。 クライアント実装はサーバから来る予期せぬエラーに対処するように準備されるべきです。手順が働くとどのように予想されるか、そして、それがクライアントによってどのように使用されるべきであるかに関してIMPLEMENTATION野原は知らせます。
program NFS_PROGRAM { version NFS_V3 {
NFS_PROGRAMをプログラムしてください、バージョンNFS_V3
void NFSPROC3_NULL(void) = 0;
NFSPROC3_NULL(空の)=0を欠如させてください。
GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1;
GETATTR3res NFSPROC3_GETATTR(GETATTR3args)=1。
SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2;
SETATTR3res NFSPROC3_SETATTR(SETATTR3args)=2。
LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3;
LOOKUP3res NFSPROC3_ルックアップ(LOOKUP3args)=3。
ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4;
ACCESS3res NFSPROC3_アクセス(ACCESS3args)=4。
READLINK3res NFSPROC3_READLINK(READLINK3args) = 5;
READLINK3res NFSPROC3_READLINK(READLINK3args)=5。
READ3res NFSPROC3_READ(READ3args) = 6;
READ3res NFSPROC3_は(READ3args)=6を読みました。
WRITE3res NFSPROC3_WRITE(WRITE3args) = 7;
WRITE3res NFSPROC3_は(WRITE3args)=7を書きます。
CREATE3res NFSPROC3_CREATE(CREATE3args) = 8;
CREATE3res NFSPROC3_は(CREATE3args)=8を作成します。
MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9;
MKDIR3res NFSPROC3_MKDIR(MKDIR3args)=9。
SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10;
SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args)=10。
Callaghan, el al Informational [Page 28] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[28ページ]RFC1813NFSバージョン3プロトコル1995年6月
MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;
MKNOD3res NFSPROC3_MKNOD(MKNOD3args)=11。
REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12;
REMOVE3res NFSPROC3_は(REMOVE3args)=12を取り除きます。
RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13;
RMDIR3res NFSPROC3_RMDIR(RMDIR3args)=13。
RENAME3res NFSPROC3_RENAME(RENAME3args) = 14;
RENAME3res NFSPROC3_は(RENAME3args)を=14に改名します。
LINK3res NFSPROC3_LINK(LINK3args) = 15;
LINK3res NFSPROC3_リンク(LINK3args)=15。
READDIR3res NFSPROC3_READDIR(READDIR3args) = 16;
READDIR3res NFSPROC3_READDIR(READDIR3args)=16。
READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17;
READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args)=17。
FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18;
FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args)=18。
FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19;
FSINFO3res NFSPROC3_FSINFO(FSINFO3args)=19。
PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20;
PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args)=20。
COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21;
COMMIT3res NFSPROC3_は(COMMIT3args)=21を遂行します。
} = 3; } = 100003;
} = 3; } = 100003;
Out of range (undefined) procedure numbers result in RPC errors. Refer to [RFC1057] for more detail.
範囲から、(未定義)の手順番号はRPC誤りをもたらします。 その他の詳細について[RFC1057]を参照してください。
3.1 General comments on attributes and consistency data on failure
3.1 属性の一般コメントと失敗に関する一貫性データ
For those procedures that return either post_op_attr or wcc_data structures on failure, the discriminated union may contain the pre-operation attributes of the object or object parent directory. This depends on the error encountered and may also depend on the particular server implementation. Implementors are strongly encouraged to return as much attribute data as possible upon failure, but client implementors need to be aware that
失敗で_オプアート_attrをポストに返すか、または_データ構造をwccに返すそれらの手順のために、差別された組合はオブジェクトかオブジェクト親ディレクトリのプレ操作属性を含むかもしれません。 これは、遭遇する誤りによって、また、特定のサーバ実装によるかもしれません。 作成者がしかし、失敗、クライアント作成者で可能なデータが意識しているために必要とする同じくらい多くの属性にそれを返すよう強く奨励されます。
Callaghan, el al Informational [Page 29] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[29ページ]RFC1813NFSバージョン3プロトコル1995年6月
their implementation must correctly handle the variant return instance where no attributes or consistency data is returned.
どんな属性も一貫性データも返されないところでそれらの実装は正しく異形リターンインスタンスを扱わなければなりません。
3.2 General comments on filenames
3.2 ファイル名の一般コメント
The following comments apply to all NFS version 3 protocol procedures in which the client provides one or more filenames in the arguments: LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD, REMOVE, RMDIR, RENAME, and LINK.
以下のコメントはクライアントが1つ以上のファイル名を議論に提供するすべてのNFSバージョン3プロトコル手順に適用されます: ルックアップ、作成、MKDIR(削除、SYMLINK、MKNOD、RMDIR)は改名して、リンクします。
1. The filename must not be null nor may it be the null string. The server should return the error, NFS3ERR_ACCES, if it receives such a filename. On some clients, the filename, ``'' or a null string, is assumed to be an alias for the current directory. Clients which require this functionality should implement it for themselves and not depend upon the server to support such semantics.
1. ファイル名はヌルであるはずがありません、そして、それはヌルストリングでありませんように。 そのようなファイル名を受け取るなら、サーバは誤り、NFS3ERR_ACCESを返すべきです。 何人かのクライアント、ファイル名に関して「「または、ヌルストリング、カレントディレクトリのための別名であると思われる、」 この機能性を必要とするクライアントは、自分たちのためにそれを実装して、そのような意味論をサポートするためにサーバを当てにするべきではありません。
2. A filename having the value of "." is assumed to be an alias for the current directory. Clients which require this functionality should implement it for themselves and not depend upon the server to support such semantics. However, the server should be able to handle such a filename correctly.
2. 「値を持っているファイル名、」 . 」 カレントディレクトリのための別名であると思われます。 この機能性を必要とするクライアントは、自分たちのためにそれを実装して、そのような意味論をサポートするためにサーバを当てにするべきではありません。 しかしながら、サーバは正しくそのようなファイル名を扱うことができるべきです。
3. A filename having the value of ".." is assumed to be an alias for the parent of the current directory, i.e. the directory which contains the current directory. The server should be prepared to handle this semantic, if it supports directories, even if those directories do not contain UNIX-style "." or ".." entries.
3. 「値を持っているファイル名、」 . . 」 すなわち、カレントディレクトリの親、カレントディレクトリを含むディレクトリのために別名であると思われます。 「サーバはハンドルにこれほど意味的に準備されるべきです、ディレクトリを支えるなら、それらのディレクトリがUNIX-スタイルを含まないでも」」、」、」 エントリー。
4. If the filename is longer than the maximum for the file system (see PATHCONF on page 90, specifically name_max), the result depends on the value of the PATHCONF flag, no_trunc. If no_trunc is FALSE, the filename will be silently truncated to name_max bytes. If no_trunc is TRUE and the filename exceeds the server's file system maximum filename length, the operation will fail with the error, NFS3ERR_NAMETOOLONG.
4. 最大より長い間ファイル名がファイルシステムのためのもの(90ページのPATHCONFを見てください、明確に名前_最大)であるなら、結果はPATHCONF旗(いいえ_trunc)の値に依存します。 いいえ_truncがFALSEであるなら、ファイル名は、_最大バイトを命名するために静かに先端を切られるでしょう。 いいえ_truncがTRUEであり、ファイル名がサーバのファイルシステム最大ファイル名の長さを超えていると、誤り(NFS3ERR_NAMETOOLONG)に応じて、操作は失敗するでしょう。
5. In general, there will be characters that a server will not be able to handle as part of a filename. This set of characters will vary from server to server and from implementation to implementation. In most cases, it is the server which will control the client's view of the file system. If the server receives a filename containing characters that it can not handle, the error, NFS3ERR_EACCES, should be returned. Client implementations should be prepared to handle this side affect of heterogeneity.
5. 一般に、サーバがファイル名の一部として扱うことができないキャラクタがあるでしょう。 サーバからサーバまで実装によってに従って、このセットのキャラクタは異なるでしょう。 多くの場合、それはクライアントのファイルシステムの視点を制御するサーバです。 サーバがそれが扱うことができないキャラクタを含むファイル名を受け取るなら、誤り(NFS3ERR_EACCES)は返されるべきです。 クライアント実装はこの側が影響する異種性のハンドルに準備されるべきです。
Callaghan, el al Informational [Page 30] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[30ページ]RFC1813NFSバージョン3プロトコル1995年6月
See also comments in File name component handling on page 101.
また、101ページにおけるFile名前コンポーネント取り扱いにおけるコメントを見てください。
3.3.0 Procedure 0: NULL - Do nothing
3.3.0 手順0: NULL--何もしないでください。
SYNOPSIS
構文
void NFSPROC3_NULL(void) = 0;
NFSPROC3_NULL(空の)=0を欠如させてください。
DESCRIPTION
記述
Procedure NULL does not do any work. It is made available to allow server response testing and timing.
手順NULLは少しの仕事もしません。 それをサーバ応答にテストとタイミングを許容するために利用可能にします。
IMPLEMENTATION
実装
It is important that this procedure do no work at all so that it can be used to measure the overhead of processing a service request. By convention, the NULL procedure should never require any authentication. A server may choose to ignore this convention, in a more secure implementation, where responding to the NULL procedure call acknowledges the existence of a resource to an unauthenticated client.
この手順がサービスのリクエストを処理するオーバーヘッドを測定するのにそれを使用できるように全く仕事をしないのは、重要です。 コンベンションで、NULL手順は認証を決して必要とするべきではありません。 サーバは、より安全な実装におけるこのコンベンションを無視するのを選ぶかもしれません。(そこでは、NULL手順呼び出しに応じるのがリソースの存在を非認証されたクライアントに承認します)。
ERRORS
誤り
Since the NULL procedure takes no NFS version 3 protocol arguments and returns no NFS version 3 protocol response, it can not return an NFS version 3 protocol error. However, it is possible that some server implementations may return RPC errors based on security and authentication requirements.
NULL手順がバージョン3プロトコル議論をどんなNFSにも取らないで、またバージョン3プロトコル応答をどんなNFSにも返さないので、それはNFSバージョン3プロトコル誤りを返すことができません。 しかしながら、いくつかのサーバ実装がセキュリティに基づく誤りと認証要件をRPCに返すのは、可能です。
Callaghan, el al Informational [Page 31] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[31ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.1 Procedure 1: GETATTR - Get file attributes
3.3.1 手順1: GETATTR--ファイル属性を得てください。
SYNOPSIS
構文
GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1;
GETATTR3res NFSPROC3_GETATTR(GETATTR3args)=1。
struct GETATTR3args { nfs_fh3 object; };
struct GETATTR3args、nfs_fh3オブジェクト;、。
struct GETATTR3resok { fattr3 obj_attributes; };
struct GETATTR3resok、fattr3 obj_属性;、。
union GETATTR3res switch (nfsstat3 status) { case NFS3_OK: GETATTR3resok resok; default: void; };
組合GETATTR3resはNFS3_OK: ケースGETATTR3resok resokデフォルト: (空間)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure GETATTR retrieves the attributes for a specified file system object. The object is identified by the file handle that the server returned as part of the response from a LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD, or READDIRPLUS procedure (or from the MOUNT service, described elsewhere). On entry, the arguments in GETATTR3args are:
手順GETATTRは指定されたファイルシステム対象物のために属性を検索します。 サーバが応答の一部としてLOOKUP、CREATE、MKDIR、SYMLINK、MKNOD、またはREADDIRPLUS手順から返したファイルハンドル(またはほかの場所で説明された山のサービスから)によってオブジェクトは特定されます。 エントリーでは、GETATTR3argsの議論は以下の通りです。
object The file handle of an object whose attributes are to be retrieved.
ファイルが処理する検索される属性がことであるオブジェクトのオブジェクト。
On successful return, GETATTR3res.status is NFS3_OK and GETATTR3res.resok contains:
うまくいっているリターンのときに、GETATTR3res.statusは_OKにNFS3です、そして、GETATTR3res.resokは以下を含んでいます。
obj_attributes The attributes for the object.
obj_はオブジェクトのために属性を結果と考えます。
Otherwise, GETATTR3res.status contains the error on failure and no other results are returned.
さもなければ、GETATTR3res.statusは失敗に誤りを含んでいます、そして、他の結果は全く返されません。
IMPLEMENTATION
実装
The attributes of file system objects is a point of major disagreement between different operating systems. Servers
ファイルの属性はシステムが、反対する異なったオペレーティングシステムサーバの主要な不一致のポイントです。
Callaghan, el al Informational [Page 32] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[32ページ]RFC1813NFSバージョン3プロトコル1995年6月
should make a best attempt to support all of the attributes in the fattr3 structure so that clients can count on this as a common ground. Some mapping may be required to map local attributes to those in the fattr3 structure.
クライアントが共通基盤としてこれを頼りにすることができるようにfattr3構造で属性のすべてをサポートする最も良い試みをするべきです。 何らかのマッピングが、fattr3構造のそれらに地方の属性を写像するのに必要であるかもしれません。
Today, most client NFS version 3 protocol implementations implement a time-bounded attribute caching scheme to reduce over-the-wire attribute checks.
今日ほとんどのクライアントNFSバージョン3プロトコル実装が減少するために体系をキャッシュする時間で境界がある属性を実装する、過剰、ワイヤ、チェックを結果と考えてください。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
ACCESS.
アクセサリー
3.3.2 Procedure 2: SETATTR - Set file attributes
3.3.2 手順2: SETATTR--ファイル属性を設定してください。
SYNOPSIS
構文
SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2;
SETATTR3res NFSPROC3_SETATTR(SETATTR3args)=2。
union sattrguard3 switch (bool check) { case TRUE: nfstime3 obj_ctime; case FALSE: void; };
ケースTRUE: 組合sattrguard3スイッチ(boolチェック)nfstime3 obj_ctimeケースFALSE: (空間)。
struct SETATTR3args { nfs_fh3 object; sattr3 new_attributes; sattrguard3 guard; };
struct SETATTR3argsは_fh3オブジェクト; sattr3の新しい_属性(sattrguard3警備)をnfsします。
struct SETATTR3resok { wcc_data obj_wcc; };
struct SETATTR3resok、wcc_データobj_wcc;、。
struct SETATTR3resfail { wcc_data obj_wcc; };
struct SETATTR3resfail、wcc_データobj_wcc;、。
Callaghan, el al Informational [Page 33] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[33ページ]RFC1813NFSバージョン3プロトコル1995年6月
union SETATTR3res switch (nfsstat3 status) { case NFS3_OK: SETATTR3resok resok; default: SETATTR3resfail resfail; };
組合SETATTR3resはNFS3_OK: ケースSETATTR3resok resokデフォルト: (SETATTR3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure SETATTR changes one or more of the attributes of a file system object on the server. The new attributes are specified by a sattr3 structure. On entry, the arguments in SETATTR3args are:
手順SETATTRはサーバでファイルシステム対象物の属性の1つ以上を変えます。新しい属性はsattr3構造によって指定されます。 エントリーでは、SETATTR3argsの議論は以下の通りです。
object The file handle for the object.
ファイルがオブジェクトのために処理するオブジェクト。
new_attributes A sattr3 structure containing booleans and enumerations describing the attributes to be set and the new values for those attributes.
論理演算子を含む新しい_属性A sattr3構造、設定されるために属性について説明する列挙、およびそれらの属性のための新しい値。
guard A sattrguard3 union:
A sattrguard3組合を警備してください:
check TRUE if the server is to verify that guard.obj_ctime matches the ctime for the object; FALSE otherwise.
サーバがguard.obj_ctimeがオブジェクトのためのctimeに合っていることを確かめることであるならTRUEをチェックしてください。 FALSE、そうでなければ。
A client may request that the server check that the object is in an expected state before performing the SETATTR operation. To do this, it sets the argument guard.check to TRUE and the client passes a time value in guard.obj_ctime. If guard.check is TRUE, the server must compare the value of guard.obj_ctime to the current ctime of the object. If the values are different, the server must preserve the object attributes and must return a status of NFS3ERR_NOT_SYNC. If guard.check is FALSE, the server will not perform this check.
クライアントは、サーバが、SETATTR操作を実行する前に、オブジェクトが予想された状態にあるのをチェックするよう要求するかもしれません。 これをするために、議論guard.checkをTRUEに設定します、そして、クライアントはguard.obj_ctimeで時間的価値を通過します。 guard.checkがTRUEであるなら、サーバはguard.obj_ctimeの値をオブジェクトの現在のctimeと比較しなければなりません。 値が異なるなら、サーバは、オブジェクト属性を保存しなければならなくて、__どんなSYNCもNFS3ERRの状態に返してはいけません。 guard.checkがFALSEであるなら、サーバはこのチェックを実行しないでしょう。
On successful return, SETATTR3res.status is NFS3_OK and SETATTR3res.resok contains:
うまくいっているリターンのときに、SETATTR3res.statusは_OKにNFS3です、そして、SETATTR3res.resokは以下を含んでいます。
obj_wcc A wcc_data structure containing the old and new attributes for the object.
オブジェクトのための古くて新しい属性を含むobj_wcc A wcc_データ構造。
Callaghan, el al Informational [Page 34] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[34ページ]RFC1813NFSバージョン3プロトコル1995年6月
Otherwise, SETATTR3res.status contains the error on failure and SETATTR3res.resfail contains the following:
さもなければ、SETATTR3res.statusは失敗に誤りを含んでいます、そして、SETATTR3res.resfailは以下を含んでいます:
obj_wcc A wcc_data structure containing the old and new attributes for the object.
オブジェクトのための古くて新しい属性を含むobj_wcc A wcc_データ構造。
IMPLEMENTATION
実装
The guard.check mechanism allows the client to avoid changing the attributes of an object on the basis of stale attributes. It does not guarantee exactly-once semantics. In particular, if a reply is lost and the server does not detect the retransmission of the request, the procedure can fail with the error, NFS3ERR_NOT_SYNC, even though the attribute setting was previously performed successfully. The client can attempt to recover from this error by getting fresh attributes from the server and sending a new SETATTR request using the new ctime. The client can optionally check the attributes to avoid the second SETATTR request if the new attributes show that the attributes have already been set as desired (though it may not have been the issuing client that set the attributes).
guard.checkメカニズムで、クライアントは、聞き古した属性に基づいてオブジェクトの属性を変えるのを避けることができます。 保証しない、ちょうど、-一度、意味論。 回答が無くなって、サーバが要求の「再-トランスミッション」を検出しないなら、誤りに応じて、特に、手順は失敗できて、_ではなく、NFS3ERR_がSYNCです、属性設定は以前に、首尾よく実行されましたが。 クライアントは、この誤りからサーバから新鮮な属性を得て、新しいctimeを使用することで新しいSETATTR要求を送ることによって克服するのを試みることができます。 新しい属性が、属性が望まれているように(それは属性を設定した発行しているクライアントでないかもしれませんが)既に設定されたのを示すなら、クライアントは、SETATTRが要求する2番目を避けるために任意に属性をチェックできます。
The new_attributes.size field is used to request changes to the size of a file. A value of 0 causes the file to be truncated, a value less than the current size of the file causes data from new size to the end of the file to be discarded, and a size greater than the current size of the file causes logically zeroed data bytes to be added to the end of the file. Servers are free to implement this using holes or actual zero data bytes. Clients should not make any assumptions regarding a server's implementation of this feature, beyond that the bytes returned will be zeroed. Servers must support extending the file size via SETATTR.
新しい_attributes.size分野は、ファイルのサイズへの変化を要求するのに使用されます。 0の値でファイルに先端を切らせて、ファイルの現在のサイズより少ない値で、新しいサイズからファイルの端までのデータが捨てられるのを加えて、ファイル原因の現在のサイズがデータ・バイトのゼロに論理的に合っていたより大きいサイズをファイルの端に加えます。 サーバは、この使用が穴であるか実際のゼロがデータ・バイトであると無料で実装することができます。 クライアントはサーバのこの特徴の実装に関する少しの仮定もするべきでなくて、向こうでは、バイトが戻ったゼロは合わせられるでしょう。 サーバは、SETATTRを通して広がりがファイルサイズであるとサポートしなければなりません。
SETATTR is not guaranteed atomic. A failed SETATTR may partially change a file's attributes.
SETATTRは原子で保証されません。 失敗したSETATTRはファイルの属性を部分的に変えるかもしれません。
Changing the size of a file with SETATTR indirectly changes the mtime. A client must account for this as size changes can result in data deletion.
SETATTRと共にファイルのサイズを変えると、mtimeは間接的に変化します。 サイズ変化がデータ削除をもたらすことができるようにクライアントはこれを説明しなければなりません。
If server and client times differ, programs that compare client time to file times can break. A time maintenance protocol should be used to limit client/server time skew.
サーバとクライアント回が異なるなら、回をファイルするクライアント時間を比較するプログラムが知れ渡ることができます。 時間メインテナンスプロトコルは、クライアント/サーバ時間斜行を制限するのに使用されるべきです。
Callaghan, el al Informational [Page 35] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[35ページ]RFC1813NFSバージョン3プロトコル1995年6月
In a heterogeneous environment, it is quite possible that the server will not be able to support the full range of SETATTR requests. The error, NFS3ERR_INVAL, may be returned if the server can not store a uid or gid in its own representation of uids or gids, respectively. If the server can only support 32 bit offsets and sizes, a SETATTR request to set the size of a file to larger than can be represented in 32 bits will be rejected with this same error.
異機種混在環境では、サーバが最大限の範囲のSETATTR要求をサポートすることができないのは、かなり可能です。 サーバがそれぞれそれ自身のuidsかヒツジ暈倒病の表現におけるuidかヒツジ暈倒病を保存できないなら、誤り(NFS3ERR_INVAL)は返されるかもしれません。 サーバが、32ビットがオフセットとサイズであるとサポートすることができるだけであると、32で表すことができるより大きいビットにファイルのサイズを設定するというSETATTR要求はこの同じ誤りで拒絶されるでしょう。
ERRORS
誤り
NFS3ERR_PERM NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_DQUOT NFS3ERR_NOT_SYNC NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
_同時性NFS3ERR_ではなく、NFS3ERR_パーマNFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_DQUOT NFS3ERR_がNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
CREATE, MKDIR, SYMLINK, and MKNOD.
作成、MKDIR、SYMLINK、およびMKNOD。
Callaghan, el al Informational [Page 36] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[36ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.3 Procedure 3: LOOKUP - Lookup filename
3.3.3 手順3: LOOKUP--ルックアップファイル名
SYNOPSIS
構文
LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3;
LOOKUP3res NFSPROC3_ルックアップ(LOOKUP3args)=3。
struct LOOKUP3args { diropargs3 what; };
struct LOOKUP3args、diropargs3、何であるか、。
struct LOOKUP3resok { nfs_fh3 object; post_op_attr obj_attributes; post_op_attr dir_attributes; };
struct LOOKUP3resokは、_fh3オブジェクト; _オプアート_attr obj_属性(ポスト_オプアート_attr dir_属性)を掲示するのをnfsします。
struct LOOKUP3resfail { post_op_attr dir_attributes; };
struct LOOKUP3resfail、ポスト_オプアート_attr dir_属性;、。
union LOOKUP3res switch (nfsstat3 status) { case NFS3_OK: LOOKUP3resok resok; default: LOOKUP3resfail resfail; };
組合LOOKUP3resはNFS3_OK: ケースLOOKUP3resok resokデフォルト: (LOOKUP3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure LOOKUP searches a directory for a specific name and returns the file handle for the corresponding file system object. On entry, the arguments in LOOKUP3args are:
手順LOOKUPは種名のためにディレクトリを捜して、対応するファイルシステム対象物のためにファイルハンドルを返します。 エントリーでは、LOOKUP3argsの議論は以下の通りです。
what Object to look up:
見上げる何というObject:
dir The file handle for the directory to search.
ファイルがディレクトリが探されるために処理するdir。
name The filename to be searched for. Refer to General comments on filenames on page 30.
ファイル名を命名して、捜し求められてください。 30ページのファイル名の一般コメントを参照してください。
On successful return, LOOKUP3res.status is NFS3_OK and LOOKUP3res.resok contains:
うまくいっているリターンのときに、LOOKUP3res.statusは_OKにNFS3です、そして、LOOKUP3res.resokは以下を含んでいます。
Callaghan, el al Informational [Page 37] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[37ページ]RFC1813NFSバージョン3プロトコル1995年6月
object The file handle of the object corresponding to what.name.
ファイルが処理するwhat.nameに対応するオブジェクトのオブジェクト。
obj_attributes The attributes of the object corresponding to what.name.
obj_はwhat.nameに対応するオブジェクトの属性を結果と考えます。
dir_attributes The post-operation attributes of the directory, what.dir.
dir_はディレクトリ、what.dirのポスト操作属性を結果と考えます。
Otherwise, LOOKUP3res.status contains the error on failure and LOOKUP3res.resfail contains the following:
さもなければ、LOOKUP3res.statusは失敗に誤りを含んでいます、そして、LOOKUP3res.resfailは以下を含んでいます:
dir_attributes The post-operation attributes for the directory, what.dir.
dir_はディレクトリ、what.dirのためにポスト操作属性を結果と考えます。
IMPLEMENTATION
実装
At first glance, in the case where what.name refers to a mount point on the server, two different replies seem possible. The server can return either the file handle for the underlying directory that is mounted on or the file handle of the root of the mounted directory. This ambiguity is simply resolved. A server will not allow a LOOKUP operation to cross a mountpoint to the root of a different filesystem, even if the filesystem is exported. This does not prevent a client from accessing a hierarchy of filesystems exported by a server, but the client must mount each of the filesystems individually so that the mountpoint crossing takes place on the client. A given server implementation may refine these rules given capabilities or limitations particular to that implementation. Refer to [X/OpenNFS] for a discussion on exporting file systems.
一見したところでは、what.nameがサーバのマウントポイントを示す場合では、2つの異なった回答が可能に思えます。 サーバはそれが取り付けられる基本的なディレクトリのためのファイルハンドルか取り付けられたディレクトリの根のファイルハンドルのどちらかを返すことができます。 このあいまいさは単に取り除かれています。 LOOKUP操作はサーバで異なったファイルシステムの根と取付け位置に交差できないでしょう、ファイルシステムがエクスポートされても。 これは、クライアントがサーバによってエクスポートされたファイルシステムの階層構造にアクセスするのを防ぎませんが、クライアントは、取付け位置交差点がクライアントの上で行われるように、個別にそれぞれのファイルシステムを取り付けなければなりません。 その実装に特定の能力か制限を考えて、与えられたサーバ実装はこれらの規則を洗練するかもしれません。 輸出ファイルシステムについての議論について[X/OpenNFS]を参照してください。
Two filenames are distinguished, as in the NFS version 2 protocol. The name, ".", is an alias for the current directory and the name, "..", is an alias for the parent directory; that is, the directory that includes the specified directory as a member. There is no facility for dealing with a multiparented directory and the NFS protocol assumes a hierarchical organization, organized as a single-rooted tree.
2つのファイル名がNFSバージョン2プロトコルのように顕著です。 「名前」、」、別名がカレントディレクトリと名前のためのものである、」、」, 親ディレクトリのために、別名です。 すなわち、メンバーとして指定されたディレクトリを含んでいるディレクトリ。 マルチ子育てディレクトリに対処するための施設が全くありません、そして、NFSプロトコルは階層的な組織を仮定します、単一に根づいている木として、組織化されています。
Callaghan, el al Informational [Page 38] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[38ページ]RFC1813NFSバージョン3プロトコル1995年6月
Note that this procedure does not follow symbolic links. The client is responsible for all parsing of filenames including filenames that are modified by symbolic links encountered during the lookup process.
この手順がシンボリックリンクに従わないことに注意してください。 クライアントはルックアッププロセスの間に遭遇するシンボリックリンクで変更されるファイル名を含むファイル名のすべての構文解析に責任があります。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_NOENT NFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_NOENT NFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG NFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
CREATE, MKDIR, SYMLINK, MKNOD, READDIRPLUS, and PATHCONF.
作成、MKDIR、SYMLINK、MKNOD、READDIRPLUS、およびPATHCONF。
Callaghan, el al Informational [Page 39] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[39ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.4 Procedure 4: ACCESS - Check Access Permission
3.3.4 手順4: アクセス--参照許可をチェックしてください。
SYNOPSIS
構文
ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4;
ACCESS3res NFSPROC3_アクセス(ACCESS3args)=4。
const ACCESS3_READ = 0x0001; const ACCESS3_LOOKUP = 0x0002; const ACCESS3_MODIFY = 0x0004; const ACCESS3_EXTEND = 0x0008; const ACCESS3_DELETE = 0x0010; const ACCESS3_EXECUTE = 0x0020;
const ACCESS3_READ=0x0001。 const ACCESS3_LOOKUP=0x0002。 const ACCESS3_MODIFY=0x0004。 const ACCESS3_EXTEND=0x0008。 const ACCESS3_DELETE=0x0010。 const ACCESS3_EXECUTE=0x0020。
struct ACCESS3args { nfs_fh3 object; uint32 access; };
struct ACCESS3argsは_fh3オブジェクト(uint32アクセス)をnfsします。
struct ACCESS3resok { post_op_attr obj_attributes; uint32 access; };
struct ACCESS3resokは_オプアート_attr obj_属性(uint32アクセス)を掲示します。
struct ACCESS3resfail { post_op_attr obj_attributes; };
struct ACCESS3resfail、ポスト_オプアート_attr obj_属性;、。
union ACCESS3res switch (nfsstat3 status) { case NFS3_OK: ACCESS3resok resok; default: ACCESS3resfail resfail; };
組合ACCESS3resはNFS3_OK: ケースACCESS3resok resokデフォルト: (ACCESS3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure ACCESS determines the access rights that a user, as identified by the credentials in the request, has with respect to a file system object. The client encodes the set of permissions that are to be checked in a bit mask. The server checks the permissions encoded in the bit mask. A status of NFS3_OK is returned along with a bit mask encoded with the permissions that the client is allowed.
手順ACCESSはアクセス権を決定します。要求における資格証明書によって特定されるユーザはファイルシステム対象物に関してそうしました。 クライアントはしばらくマスクでチェックされることになっている許容のセットをコード化します。 サーバは噛み付いているマスクでコード化された許容をチェックします。 クライアントが許容でコード化されたマスクですが、許容されて、_OKが少し返されるNFS3の状態。
The results of this procedure are necessarily advisory in nature. That is, a return status of NFS3_OK and the appropriate bit set in the bit mask does not imply that such access will be allowed to the file system object in
この手順の結果は必ず現実に顧問です。 すなわち、OKと適切なビットが噛み付いているマスクに設定するNFS3_のリターン状態は、そのようなアクセスがシステムが反対するファイルに許されるのを含意しません。
Callaghan, el al Informational [Page 40] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[40ページ]RFC1813NFSバージョン3プロトコル1995年6月
the future, as access rights can be revoked by the server at any time.
いつでもサーバでアクセス権を取り消すことができるので未来。
On entry, the arguments in ACCESS3args are:
エントリーでは、ACCESS3argsの議論は以下の通りです。
object The file handle for the file system object to which access is to be checked.
ファイルがファイルシステム対象物のためにどのアクセスに処理するオブジェクトはチェックされることになっています。
access A bit mask of access permissions to check.
アクセスAは、チェックするためにアクセス許容のマスクに噛み付きました。
The following access permissions may be requested:
以下のアクセス許容は要求されているかもしれません:
ACCESS3_READ Read data from file or read a directory.
ファイルからのACCESS3_READ Readデータか読書aディレクトリ。
ACCESS3_LOOKUP Look up a name in a directory (no meaning for non-directory objects).
ACCESS3_LOOKUP、ディレクトリ(非ディレクトリオブジェクトのための意味しない)の名前にほら。
ACCESS3_MODIFY Rewrite existing file data or modify existing directory entries.
ACCESS3_MODIFY Rewrite存在は、データをファイルするか、または既存のディレクトリエントリーを変更します。
ACCESS3_EXTEND Write new data or add directory entries.
または、ACCESS3_EXTEND Writeの新しいデータ、ディレクトリエントリーを加えてください。
ACCESS3_DELETE Delete an existing directory entry.
ACCESS3_DELETE Delete、既存のディレクトリエントリ。
ACCESS3_EXECUTE Execute file (no meaning for a directory).
ACCESS3_EXECUTE Executeは(ディレクトリのための意味しないこと)をファイルします。
On successful return, ACCESS3res.status is NFS3_OK. The server should return a status of NFS3_OK if no errors occurred that prevented the server from making the required access checks. The results in ACCESS3res.resok are:
うまくいっているリターンのときに、ACCESS3res.statusは_OKにNFS3です。 サーバが必要なアクセスチェックをするのを防いだ誤りが全く発生しないなら、サーバはNFS3_OK状態を返すでしょうに。 ACCESS3res.resokの結果は以下の通りです。
obj_attributes The post-operation attributes of object.
obj_はオブジェクトのポスト操作属性を結果と考えます。
access A bit mask of access permissions indicating access rights for the authentication credentials provided with the request.
アクセスAは要求が提供された認証資格証明書のためにアクセス権を示すアクセス許容のマスクに噛み付きました。
Callaghan, el al Informational [Page 41] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[41ページ]RFC1813NFSバージョン3プロトコル1995年6月
Otherwise, ACCESS3res.status contains the error on failure and ACCESS3res.resfail contains the following:
さもなければ、ACCESS3res.statusは失敗に誤りを含んでいます、そして、ACCESS3res.resfailは以下を含んでいます:
obj_attributes The attributes of object - if access to attributes is permitted.
属性へのアクセスが受入れられるなら、obj_はオブジェクトの属性を結果と考えます。
IMPLEMENTATION
実装
In general, it is not sufficient for the client to attempt to deduce access permissions by inspecting the uid, gid, and mode fields in the file attributes, since the server may perform uid or gid mapping or enforce additional access control restrictions. It is also possible that the NFS version 3 protocol server may not be in the same ID space as the NFS version 3 protocol client. In these cases (and perhaps others), the NFS version 3 protocol client can not reliably perform an access check with only current file attributes.
一般に、クライアントが、ファイル属性のuid、ヒツジ暈倒病、およびモード分野を点検することによってアクセス許容を推論するのを試みるのは、十分ではありません、サーバがuidかヒツジ暈倒病マッピングを実行するか、または追加アクセス制御制限を実施するかもしれないので。 また、NFSバージョン3プロトコルサーバがNFSバージョン3プロトコルクライアントと同じIDスペースにないのも、可能です。 これらの場合(そして、恐らく他のもの)では、NFSバージョン3プロトコルクライアントは現在のファイル属性だけでアクセスチェックを確かに実行できません。
In the NFS version 2 protocol, the only reliable way to determine whether an operation was allowed was to try it and see if it succeeded or failed. Using the ACCESS procedure in the NFS version 3 protocol, the client can ask the server to indicate whether or not one or more classes of operations are permitted. The ACCESS operation is provided to allow clients to check before doing a series of operations. This is useful in operating systems (such as UNIX) where permission checking is done only when a file or directory is opened. This procedure is also invoked by NFS client access procedure (called possibly through access(2)). The intent is to make the behavior of opening a remote file more consistent with the behavior of opening a local file.
NFSバージョン2プロトコルでは、操作が許されたかどうか決定する唯一の信頼できる方法は、それを試みて、それが成功したか、または失敗したかを見ることでした。 NFSバージョン3プロトコルでACCESS手順を用いて、クライアントは、1つ以上のクラスの操作が受入れられるかどうかを示すようにサーバに頼むことができます。 一連の操作をする前にクライアントがチェックするのを許容するためにACCESS操作を提供します。 ファイルかディレクトリが開かれるときだけ、オペレーティングシステム(UNIXなどの)でこれは許可の照合が行われるところで役に立ちます。 また、NFSクライアントアクセス手順で呼び出されて、この手順はそうです。(ことによるとアクセス(2))で呼ばれます。 意図はリモートファイルを開く振舞いをローカルファイルを開く振舞いと、より一致するようにすることです。
The information returned by the server in response to an ACCESS call is not permanent. It was correct at the exact time that the server performed the checks, but not necessarily afterwards. The server can revoke access permission at any time.
サーバによってACCESS呼び出しに対応して返された情報は永久的ではありません。 サーバがその後チェックを実行しましたが、必ず実行したというわけではないのは正確な時に正しかったです。 サーバはいつでも、参照許可を取り消すことができます。
The NFS version 3 protocol client should use the effective credentials of the user to build the authentication information in the ACCESS request used to determine access rights. It is the effective user and group credentials that are used in subsequent read and write operations. See the comments in Permission issues on page 98 for more information on this topic.
NFSバージョン3プロトコルクライアントは、アクセス権を決定するのに使用されるACCESS要求における認証情報を築き上げるのにユーザの有効な資格証明書を使用するべきです。 それは実効ユーザーです、そして、その後で使用されるグループ資格証明書は操作を読み書きします。 詳しい情報のための98ページのこの話題に関するPermission問題におけるコメントを見てください。
Callaghan, el al Informational [Page 42] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[42ページ]RFC1813NFSバージョン3プロトコル1995年6月
Many implementations do not directly support the ACCESS3_DELETE permission. Operating systems like UNIX will ignore the ACCESS3_DELETE bit if set on an access request on a non-directory object. In these systems, delete permission on a file is determined by the access permissions on the directory in which the file resides, instead of being determined by the permissions of the file itself. Thus, the bit mask returned for such a request will have the ACCESS3_DELETE bit set to 0, indicating that the client does not have this permission.
多くの実装は、ACCESS3_DELETEが許可であると直接サポートしません。 非ディレクトリオブジェクトに関するアクセス要求に設定されると、UNIXのようなオペレーティングシステムはACCESS3_DELETEビットを無視するでしょう。 これらのシステムで、それ自体でファイルの上でファイルがあるディレクトリにおけるアクセス許容で決定して、存在の代わりにファイルの許容で決定する許可を削除してください。 したがって、そのような要求のために返された噛み付いているマスクでACCESS3_DELETEビットを0に設定するでしょう、クライアントにはこの許可がないのを示して。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
GETATTR.
GETATTR。
Callaghan, el al Informational [Page 43] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[43ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.5 Procedure 5: READLINK - Read from symbolic link
3.3.5 手順5: READLINK--シンボリックリンクから、読んでください。
SYNOPSIS
構文
READLINK3res NFSPROC3_READLINK(READLINK3args) = 5;
READLINK3res NFSPROC3_READLINK(READLINK3args)=5。
struct READLINK3args { nfs_fh3 symlink; };
struct READLINK3args、nfs_fh3 symlink;、。
struct READLINK3resok { post_op_attr symlink_attributes; nfspath3 data; };
struct READLINK3resokは_オプアート_attr symlink_属性(nfspath3データ)を掲示します。
struct READLINK3resfail { post_op_attr symlink_attributes; };
struct READLINK3resfail、ポスト_オプアート_attr symlink_属性;、。
union READLINK3res switch (nfsstat3 status) { case NFS3_OK: READLINK3resok resok; default: READLINK3resfail resfail; };
組合READLINK3resはNFS3_OK: ケースREADLINK3resok resokデフォルト: (READLINK3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure READLINK reads the data associated with a symbolic link. The data is an ASCII string that is opaque to the server. That is, whether created by the NFS version 3 protocol software from a client or created locally on the server, the data in a symbolic link is not interpreted when created, but is simply stored. On entry, the arguments in READLINK3args are:
手順READLINKはシンボリックリンクに関連しているデータを読みます。 データはサーバに不透明なASCIIストリングです。すなわち、NFSバージョン3プロトコル・ソフトウエアによってクライアントから作成されるか、またはサーバで局所的に作成されることにかかわらず、シンボリックリンクによるデータは、作成される場合解釈されませんが、単に保存されます。 エントリーでは、READLINK3argsの議論は以下の通りです。
symlink The file handle for a symbolic link (file system object of type NF3LNK).
ファイルがシンボリックリンク(タイプNF3LNKのファイルシステム対象物)のために処理するsymlink。
On successful return, READLINK3res.status is NFS3_OK and READLINK3res.resok contains:
うまくいっているリターンのときに、READLINK3res.statusは_OKにNFS3です、そして、READLINK3res.resokは以下を含んでいます。
data The data associated with the symbolic link.
データがシンボリックリンクに関連づけたデータ。
symlink_attributes The post-operation attributes for the symbolic link.
symlink_はシンボリックリンクのためにポスト操作属性を結果と考えます。
Callaghan, el al Informational [Page 44] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[44ページ]RFC1813NFSバージョン3プロトコル1995年6月
Otherwise, READLINK3res.status contains the error on failure and READLINK3res.resfail contains the following:
さもなければ、READLINK3res.statusは失敗に誤りを含んでいます、そして、READLINK3res.resfailは以下を含んでいます:
symlink_attributes The post-operation attributes for the symbolic link.
symlink_はシンボリックリンクのためにポスト操作属性を結果と考えます。
IMPLEMENTATION
実装
A symbolic link is nominally a pointer to another file. The data is not necessarily interpreted by the server, just stored in the file. It is possible for a client implementation to store a path name that is not meaningful to the server operating system in a symbolic link. A READLINK operation returns the data to the client for interpretation. If different implementations want to share access to symbolic links, then they must agree on the interpretation of the data in the symbolic link.
シンボリックリンクは名目上は、別のものへの指針にファイルされるということです。 データは、必ずサーバによって解釈されているというわけではなくて、ファイルにただ保存されています。 クライアント実装がシンボリックリンクでサーバオペレーティングシステムに重要でないパス名を保存するのは、可能です。 READLINK操作は解釈のためにデータをクライアントに返します。 異なった実装がシンボリックリンクへのアクセスを共有したいなら、彼らはシンボリックリンクにおける、データの解釈に同意しなければなりません。
The READLINK operation is only allowed on objects of type, NF3LNK. The server should return the error, NFS3ERR_INVAL, if the object is not of type, NF3LNK. (Note: The X/Open XNFS Specification for the NFS version 2 protocol defined the error status in this case as NFSERR_NXIO. This is inconsistent with existing server practice.)
READLINK操作はタイプ、NF3LNKのオブジェクトの上に許されているだけです。 サーバはオブジェクトがタイプ、NF3LNKのものでないなら誤り、NFS3ERR_INVALを返すべきです。 (以下に注意してください。 NFSバージョン2プロトコルのためのX/Open XNFS Specificationはこの場合NFSERR_NXIOとエラー状況を定義しました。 これは既存のサーバ習慣に矛盾しています。)
ERRORS
誤り
NFS3ERR_IO NFS3ERR_INVAL NFS3ERR_ACCES NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_INVAL NFS3ERR_ACCES NFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
READLINK, SYMLINK.
READLINK、SYMLINK。
Callaghan, el al Informational [Page 45] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[45ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.6 Procedure 6: READ - Read From file
3.3.6 手順6: READ--Fromファイルを読んでください。
SYNOPSIS
構文
READ3res NFSPROC3_READ(READ3args) = 6;
READ3res NFSPROC3_は(READ3args)=6を読みました。
struct READ3args { nfs_fh3 file; offset3 offset; count3 count; };
nfs_fh3がファイルする; offset3オフセット; count3カウント;struct READ3args。
struct READ3resok { post_op_attr file_attributes; count3 count; bool eof; opaque data<>; };
struct READ3resokは_オプアート_attrファイル_属性; count3カウント; bool eof(不透明なデータ<>)を掲示します。
struct READ3resfail { post_op_attr file_attributes; };
struct READ3resfail、ポスト_オプアート_attrファイル_属性;、。
union READ3res switch (nfsstat3 status) { case NFS3_OK: READ3resok resok; default: READ3resfail resfail; };
組合READ3resはNFS3_OK: ケースREAD3resok resokデフォルト: (READ3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure READ reads data from a file. On entry, the arguments in READ3args are:
手順READはファイルからデータを読みます。 エントリーでは、READ3argsの議論は以下の通りです。
file The file handle of the file from which data is to be read. This must identify a file system object of type, NF3REG.
読まれるデータがことであるファイルのファイルハンドルをファイルしてください。 これはタイプ、NF3REGのファイルシステム対象物を特定しなければなりません。
offset The position within the file at which the read is to begin. An offset of 0 means to read data starting at the beginning of the file. If offset is greater than or equal to the size of the file, the status, NFS3_OK, is returned with count set to 0 and eof set to TRUE, subject to access permissions checking.
示度が始まることになっているファイルの中で位置を相殺してください。 0のオフセットは、ファイルの始めからデータを読むことを意味します。 オフセットがファイルのサイズ以上であるなら、カウントセットで状態、NFS3_OKを0に返しました、そして、eofはアクセス許容の照合を条件としてTRUEにセットしました。
Callaghan, el al Informational [Page 46] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[46ページ]RFC1813NFSバージョン3プロトコル1995年6月
count The number of bytes of data that are to be read. If count is 0, the READ will succeed and return 0 bytes of data, subject to access permissions checking. count must be less than or equal to the value of the rtmax field in the FSINFO reply structure for the file system that contains file. If greater, the server may return only rtmax bytes, resulting in a short read.
読まれることになっているデータのバイト数を数えてください。 カウントが0であるなら、READはアクセス許容の照合を条件として0バイトのデータを引き継いで、返すでしょう。カウントはファイルを含むファイルシステムのためのFSINFO回答構造のrtmax分野の、より値以下であるに違いありません。 より大きいなら、短い読書をもたらして、サーバはバイトをrtmaxだけに返すかもしれません。
On successful return, READ3res.status is NFS3_OK and READ3res.resok contains:
うまくいっているリターンのときに、READ3res.statusは_OKにNFS3です、そして、READ3res.resokは以下を含んでいます。
file_attributes The attributes of the file on completion of the read.
ファイル_は読書の完成のファイルの属性を結果と考えます。
count The number of bytes of data returned by the read.
読みによって返されたデータのバイト数を数えてください。
eof If the read ended at the end-of-file (formally, in a correctly formed READ request, if READ3args.offset plus READ3resok.count is equal to the size of the file), eof is returned as TRUE; otherwise it is FALSE. A successful READ of an empty file will always return eof as TRUE.
読みがファイルの終り(正しく形成されたREAD要求において正式に、READ3resok.countはREAD3args.offsetプラスであるならファイルのサイズと等しい)で終わらせたeof If、TRUEとしてeofを返します。 さもなければ、それはFALSEです。 空のファイルのうまくいっているREADはTRUEとしていつもeofを返すでしょう。
data The counted data read from the file.
数えられたデータがファイルから読むデータ。
Otherwise, READ3res.status contains the error on failure and READ3res.resfail contains the following:
さもなければ、READ3res.statusは失敗に誤りを含んでいます、そして、READ3res.resfailは以下を含んでいます:
file_attributes The post-operation attributes of the file.
ファイル_はファイルのポスト操作属性を結果と考えます。
IMPLEMENTATION
実装
The nfsdata type used for the READ and WRITE operations in the NFS version 2 protocol defining the data portion of a request or reply has been changed to a variable-length opaque byte array. The maximum size allowed by the protocol is now limited by what XDR and underlying transports will allow. There are no artificial limits imposed by the NFS version 3 protocol. Consult the FSINFO procedure description for details.
タイプがREADとWRITE操作に要求か回答のデータ部を定義するNFSバージョン2プロトコルに使用したnfsdataは可変長の不透明なバイト配列に変わりました。 プロトコルによって許容された最大サイズは現在、XDRと基本的な輸送が許容することによって制限されます。 NFSバージョン3プロトコルによって課されたどんな人工の限界もありません。 詳細のためのFSINFO手順記述に相談してください。
Callaghan, el al Informational [Page 47] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[47ページ]RFC1813NFSバージョン3プロトコル1995年6月
It is possible for the server to return fewer than count bytes of data. If the server returns less than the count requested and eof set to FALSE, the client should issue another READ to get the remaining data. A server may return less data than requested under several circumstances. The file may have been truncated by another client or perhaps on the server itself, changing the file size from what the requesting client believes to be the case. This would reduce the actual amount of data available to the client. It is possible that the server may back off the transfer size and reduce the read request return. Server resource exhaustion may also occur necessitating a smaller read return.
サーバがカウントバイトのデータほど戻らないのは、可能です。 カウントよりリターンで要求されなかったサーバとeofがFALSEにセットするなら、クライアントは、残っているデータを得るために別のREADを発行するでしょうに。 サーバはいくつかの状況で要求されているより少ないデータを返すかもしれません。 ファイルは別のクライアントの近く、または、恐らくサーバ自体の上で先端を切られたかもしれません、要求しているクライアントがケースであると信じていることからファイルサイズを変えて。 これはクライアントにとって、有効な実際のデータ量を減少させるでしょう。 サーバが転送サイズを戻して、読み出し要求リターンを抑えるのは、可能です。 また、サーバリソース疲労困憊は、より小さい読書収益を必要としながら、起こるかもしれません。
Some NFS version 2 protocol client implementations chose to interpret a short read response as indicating EOF. The addition of the eof flag in the NFS version 3 protocol provides a correct way of handling EOF.
いくつかのNFSバージョン2プロトコルクライアント実装が、EOFを示すと短い読書応答を解釈するのを選びました。 NFSバージョン3プロトコルのeof旗の追加は取り扱いEOFの適度の道を提供します。
Some NFS version 2 protocol server implementations incorrectly returned NFSERR_ISDIR if the file system object type was not a regular file. The correct return value for the NFS version 3 protocol is NFS3ERR_INVAL.
バージョン2プロトコルサーバ実装がファイルシステムオブジェクト・タイプであるなら不当にNFSERR_ISDIRを返したいくつかのNFSは通常のファイルではありませんでした。 NFSバージョン3プロトコルのための正しいリターン値はNFS3ERR_INVALです。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_NXIO NFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_NXIO NFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
READLINK.
READLINK。
Callaghan, el al Informational [Page 48] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[48ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.7 Procedure 7: WRITE - Write to file
3.3.7 手順7: WRITE--ファイルするには、書いてください。
SYNOPSIS
構文
WRITE3res NFSPROC3_WRITE(WRITE3args) = 7;
WRITE3res NFSPROC3_は(WRITE3args)=7を書きます。
enum stable_how { UNSTABLE = 0, DATA_SYNC = 1, FILE_SYNC = 2 };
UNSTABLEが0、DATA_SYNC=1、FILE_SYNC=2と等しいenumの安定した_。
struct WRITE3args { nfs_fh3 file; offset3 offset; count3 count; stable_how stable; opaque data<>; };
nfs_fh3ファイル; offset3オフセット; count3が数える; どれくらい安定した安定した_; データ<>について不透明にするか;struct WRITE3args。
struct WRITE3resok { wcc_data file_wcc; count3 count; stable_how committed; writeverf3 verf; };
struct WRITE3resokはどれくらい遂行されていたか状態で; writeverf3 verf;_データファイル_wcc; count3カウント; 安定した_をwccします。
struct WRITE3resfail { wcc_data file_wcc; };
struct WRITE3resfail、wcc_データファイル_wcc;、。
union WRITE3res switch (nfsstat3 status) { case NFS3_OK: WRITE3resok resok; default: WRITE3resfail resfail; };
組合WRITE3resはNFS3_OK: ケースWRITE3resok resokデフォルト: (WRITE3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure WRITE writes data to a file. On entry, the arguments in WRITE3args are:
手順WRITEはファイルにデータを書きます。 エントリーでは、WRITE3argsの議論は以下の通りです。
file The file handle for the file to which data is to be written. This must identify a file system object of type, NF3REG.
書かれているデータがことであるファイルのためにファイルハンドルをファイルしてください。 これはタイプ、NF3REGのファイルシステム対象物を特定しなければなりません。
Callaghan, el al Informational [Page 49] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[49ページ]RFC1813NFSバージョン3プロトコル1995年6月
offset The position within the file at which the write is to begin. An offset of 0 means to write data starting at the beginning of the file.
書いてください。ファイルの中の見解を相殺する、どれ、始まることになっているか。 0のオフセットは、ファイルの始めに始まるデータを書くことを意味します。
count The number of bytes of data to be written. If count is 0, the WRITE will succeed and return a count of 0, barring errors due to permissions checking. The size of data must be less than or equal to the value of the wtmax field in the FSINFO reply structure for the file system that contains file. If greater, the server may write only wtmax bytes, resulting in a short write.
データのバイト数を数えて、書かれてください。 カウントが0であるなら、許容による誤りを禁じるのがチェックすると、WRITEは0のカウントを引き継いで、返すでしょう。 データのサイズはファイルを含むファイルシステムのためのFSINFO回答構造のwtmax分野の、より値以下であるに違いありません。 サーバは、ショートをもたらして、より大きいなら書くように唯一のwtmaxバイト書くかもしれません。
stable If stable is FILE_SYNC, the server must commit the data written plus all file system metadata to stable storage before returning results. This corresponds to the NFS version 2 protocol semantics. Any other behavior constitutes a protocol violation. If stable is DATA_SYNC, then the server must commit all of the data to stable storage and enough of the metadata to retrieve the data before returning. The server implementor is free to implement DATA_SYNC in the same fashion as FILE_SYNC, but with a possible performance drop. If stable is UNSTABLE, the server is free to commit any part of the data and the metadata to stable storage, including all or none, before returning a reply to the client. There is no guarantee whether or when any uncommitted data will subsequently be committed to stable storage. The only guarantees made by the server are that it will not destroy any data without changing the value of verf and that it will not commit the data and metadata at a level less than that requested by the client. See the discussion on COMMIT on page 92 for more information on if and when data is committed to stable storage.
安定したIfうまやがFILE_SYNCである、結果を返す前に、サーバは書かれたデータとすべてのファイルシステムメタデータを安定貯蔵に遂行しなければなりません。 これはNFSバージョン2プロトコル意味論に対応しています。 いかなる他の振舞いもプロトコル違反を構成します。 うまやがDATA_SYNCであるなら、サーバはメタデータを安定貯蔵へのデータのすべてと戻る前にデータを検索するためには十分遂行しなければなりません。 DATA_がSYNCであるとFILE_SYNCと同じファッションで実装しますが、サーバ作成者は可能な性能低下で自由に実装することができます。 うまやがUNSTABLEであるなら、サーバは無料でデータとメタデータのどんな部分も安定貯蔵に遂行できます、すべてかなにも含んでいなくて、回答をクライアントに返す前に。 保証が全くない、心がけるか、またはどんな未遂のデータも次に、いつ安定貯蔵に心がけるだろうか。 サーバによってされた唯一の保証はverfの値を変えないで少しのデータも無効にしないで、またクライアントによって要求されたそれほどレベルでデータとメタデータを遂行しないということです。 データが安定貯蔵に心がけるなら、詳しい情報のための92ページのCOMMITについての議論が進行中であるのを見てください。
data The data to be written to the file.
データ、ファイルに書かれているデータ。
On successful return, WRITE3res.status is NFS3_OK and WRITE3res.resok contains:
うまくいっているリターンのときに、WRITE3res.statusは_OKにNFS3です、そして、WRITE3res.resokは以下を含んでいます。
file_wcc Weak cache consistency data for the file. For a client that requires only the post-write file attributes, these can be found in file_wcc.after.
_ファイルのためのwcc Weakキャッシュ一貫性データをファイルしてください。 ポストで書いているファイル属性だけを必要とするクライアントに関しては、ファイル_wcc.afterでこれらを見つけることができます。
Callaghan, el al Informational [Page 50] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[50ページ]RFC1813NFSバージョン3プロトコル1995年6月
count The number of bytes of data written to the file. The server may write fewer bytes than requested. If so, the actual number of bytes written starting at location, offset, is returned.
ファイルに書かれたデータのバイト数を数えてください。 サーバは要求されているより少ないバイトを書くかもしれません。 そうだとすれば、相殺された位置で始まって、書かれた実際のバイト数は返されます。
committed The server should return an indication of the level of commitment of the data and metadata via committed. If the server committed all data and metadata to stable storage, committed should be set to FILE_SYNC. If the level of commitment was at least as strong as DATA_SYNC, then committed should be set to DATA_SYNC. Otherwise, committed must be returned as UNSTABLE. If stable was FILE_SYNC, then committed must also be FILE_SYNC: anything else constitutes a protocol violation. If stable was DATA_SYNC, then committed may be FILE_SYNC or DATA_SYNC: anything else constitutes a protocol violation. If stable was UNSTABLE, then committed may be either FILE_SYNC, DATA_SYNC, or UNSTABLE.
遂行されて、サーバは遂行にされるを通してデータとメタデータの委任のレベルのしるしを返すべきです。 サーバがすべてのデータとメタデータを安定貯蔵に遂行するなら、遂行されているのは、FILE_SYNCへのセットでしょうに。 委任のレベルがDATA_SYNCと少なくとも同じくらい強いなら、遂行されているのは、DATA_SYNCへのセットでしょうに。 そうでなく、遂行される、UNSTABLEとして返さなければなりません。 また、うまやがFILE_SYNCであったなら、遂行されたその時によるFILE_SYNCでなければなりません: 他の何かがプロトコル違反を構成します。 うまやがDATA_SYNCであったなら、遂行されているのは、FILE_SYNCかDATA_SYNCであるかもしれません: 他の何かがプロトコル違反を構成します。 うまやがUNSTABLEであったなら、遂行されているのは、FILE_SYNC、DATA_SYNCかUNSTABLEのどちらかであるかもしれません。
verf This is a cookie that the client can use to determine whether the server has changed state between a call to WRITE and a subsequent call to either WRITE or COMMIT. This cookie must be consistent during a single instance of the NFS version 3 protocol service and must be unique between instances of the NFS version 3 protocol server, where uncommitted data may be lost.
verf ThisはクライアントがサーバがWRITEへの呼び出しとWRITEかCOMMITのどちらかへのその後の呼び出しの間の状態を変えたかどうか決定するのに使用できるクッキーです。 このクッキーは、ただ一つのNFSバージョン3プロトコルサービスのインスタンスの間、一貫していなければならなくて、NFSバージョン3プロトコルサーバのインスタンスの間でユニークであるに違いありません。そこでは、未遂のデータが失われるかもしれません。
Otherwise, WRITE3res.status contains the error on failure and WRITE3res.resfail contains the following:
さもなければ、WRITE3res.statusは失敗に誤りを含んでいます、そして、WRITE3res.resfailは以下を含んでいます:
file_wcc Weak cache consistency data for the file. For a client that requires only the post-write file attributes, these can be found in file_wcc.after. Even though the write failed, full wcc_data is returned to allow the client to determine whether the failed write resulted in any change to the file.
_ファイルのためのwcc Weakキャッシュ一貫性データをファイルしてください。 ポストで書いているファイル属性だけを必要とするクライアントに関しては、ファイル_wcc.afterでこれらを見つけることができます。 データがクライアントが、失敗が書くかどうかがファイルへのどんな変化ももたらしたと決心しているのを許容するために返される失敗して、完全なwcc_に書いてください。
If a client writes data to the server with the stable argument set to UNSTABLE and the reply yields a committed response of DATA_SYNC or UNSTABLE, the client will follow up some time in the future with a COMMIT operation to synchronize outstanding asynchronous data and metadata with the server's stable storage, barring client error. It
クライアントがUNSTABLEに設定された安定した議論でサーバにデータを書いて、回答がDATA_SYNCかUNSTABLEの遂行された応答をもたらすと、クライアントは将来いつか傑出している非同期データとメタデータをサーバの安定貯蔵と同期させるようにCOMMIT操作を追求するでしょう、クライアント誤りを除いて。 それ
Callaghan, el al Informational [Page 51] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[51ページ]RFC1813NFSバージョン3プロトコル1995年6月
is possible that due to client crash or other error that a subsequent COMMIT will not be received by the server.
その後のCOMMITが受け取られない可能なクライアントクラッシュにそんなに当然の、または、他の誤りはサーバですか?
IMPLEMENTATION
実装
The nfsdata type used for the READ and WRITE operations in the NFS version 2 protocol defining the data portion of a request or reply has been changed to a variable-length opaque byte array. The maximum size allowed by the protocol is now limited by what XDR and underlying transports will allow. There are no artificial limits imposed by the NFS version 3 protocol. Consult the FSINFO procedure description for details.
タイプがREADとWRITE操作に要求か回答のデータ部を定義するNFSバージョン2プロトコルに使用したnfsdataは可変長の不透明なバイト配列に変わりました。 プロトコルによって許容された最大サイズは現在、XDRと基本的な輸送が許容することによって制限されます。 NFSバージョン3プロトコルによって課されたどんな人工の限界もありません。 詳細のためのFSINFO手順記述に相談してください。
It is possible for the server to write fewer than count bytes of data. In this case, the server should not return an error unless no data was written at all. If the server writes less than count bytes, the client should issue another WRITE to write the remaining data.
サーバに、カウントバイトのデータほど書かないのは可能です。 この場合、データが全く書かれない場合、サーバは誤りを返さないでしょうに。 サーバがカウントバイト以下を書くなら、クライアントは、残っているデータを書くために別のWRITEを発行するべきです。
It is assumed that the act of writing data to a file will cause the mtime of the file to be updated. However, the mtime of the file should not be changed unless the contents of the file are changed. Thus, a WRITE request with count set to 0 should not cause the mtime of the file to be updated.
ファイルにデータを書く行為でファイルのmtimeをアップデートすると思われます。 しかしながら、ファイルの中身を変えない場合、ファイルのmtimeを変えるべきではありません。 したがって、0に設定されたカウントによるWRITE要求で、ファイルのmtimeをアップデートするべきではありません。
The NFS version 3 protocol introduces safe asynchronous writes. The combination of WRITE with stable set to UNSTABLE followed by a COMMIT addresses the performance bottleneck found in the NFS version 2 protocol, the need to synchronously commit all writes to stable storage.
NFSバージョン3プロトコルが金庫を紹介する、非同期である、書きます。 COMMITによって続かれたUNSTABLEへの安定集合があるWRITEの組み合わせはNFSバージョン2プロトコルで見つけられた性能のネックを扱って、同時公約する必要性は安定貯蔵まですべて書きます。
The definition of stable storage has been historically a point of contention. The following expected properties of stable storage may help in resolving design issues in the implementation. Stable storage is persistent storage that survives:
安定貯蔵の定義は歴史的に、aが主張を指すということです。 安定貯蔵の以下の予想された特性は、実装におけるデザイン問題を解決するのを手伝うかもしれません。 安定貯蔵は生き残る永続的なストレージです:
1. Repeated power failures.
1. 繰り返された停電。
2. Hardware failures (of any board, power supply, and so on.).
2. ハードウェアの故障(どんなボード、電源などのも)。
3. Repeated software crashes, including reboot cycle.
3. リブートサイクルを含んでいて、繰り返されたソフトウェアはダウンします。
This definition does not address failure of the stable storage module itself.
この定義は安定貯蔵モジュール自体の失敗を扱いません。
Callaghan, el al Informational [Page 52] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[52ページ]RFC1813NFSバージョン3プロトコル1995年6月
A cookie, verf, is defined to allow a client to detect different instances of an NFS version 3 protocol server over which cached, uncommitted data may be lost. In the most likely case, the verf allows the client to detect server reboots. This information is required so that the client can safely determine whether the server could have lost cached data. If the server fails unexpectedly and the client has uncommitted data from previous WRITE requests (done with the stable argument set to UNSTABLE and in which the result committed was returned as UNSTABLE as well) it may not have flushed cached data to stable storage. The burden of recovery is on the client and the client will need to retransmit the data to the server.
クッキー(verf)は、クライアントがキャッシュされて、未遂のデータが失われるかもしれないNFSバージョン3プロトコルサーバの異なったインスタンスを検出するのを許容するために定義されます。 最もありそうな場合では、verfはクライアントにサーバリブートを検出させます。 この情報が、クライアントが、サーバが損をする場合があったかどうかがデータをキャッシュしたと安全に決心できるくらい必要です。 サーバが不意に失敗して、クライアントに前のWRITE要求(UNSTABLEに設定された安定した議論でして、遂行された結果がどのであったかまた、UNSTABLEとして返す)からの未遂のデータがあるなら、それはキャッシュされたデータを安定貯蔵に洗い流していないかもしれません。 クライアントの上に回復の負担があります、そして、クライアントはサーバにデータを再送する必要があるでしょう。
A suggested verf cookie would be to use the time that the server was booted or the time the server was last started (if restarting the server without a reboot results in lost buffers).
提案されたverfクッキーはサーバが起動されていたことの時かサーバが最後に始められた時を費やすことになっているでしょう(再開するなら、リブートのないサーバは無くなっているバッファをもたらします)。
The committed field in the results allows the client to do more effective caching. If the server is committing all WRITE requests to stable storage, then it should return with committed set to FILE_SYNC, regardless of the value of the stable field in the arguments. A server that uses an NVRAM accelerator may choose to implement this policy. The client can use this to increase the effectiveness of the cache by discarding cached data that has already been committed on the server.
結果における遂行された分野で、クライアントは、より効果的なキャッシュができます。 サーバがすべてのWRITE要求を安定貯蔵に遂行しているなら、FILE_SYNCに遂行されたセットとともに帰るべきです、議論における、安定した分野の値にかかわらず。 NVRAMアクセラレータを使用するサーバは、この政策を実施するのを選ぶかもしれません。 クライアントは、サーバで既に遂行されたキャッシュされたデータを捨てることによってキャッシュの有効性を増強するのにこれを使用できます。
Some implementations may return NFS3ERR_NOSPC instead of NFS3ERR_DQUOT when a user's quota is exceeded.
ユーザの割当てが超えられているとき、いくつかの実装がNFS3ERR_DQUOTの代わりにNFS3ERR_NOSPCを返すかもしれません。
Some NFS version 2 protocol server implementations incorrectly returned NFSERR_ISDIR if the file system object type was not a regular file. The correct return value for the NFS version 3 protocol is NFS3ERR_INVAL.
バージョン2プロトコルサーバ実装がファイルシステムオブジェクト・タイプであるなら不当にNFSERR_ISDIRを返したいくつかのNFSは通常のファイルではありませんでした。 NFSバージョン3プロトコルのための正しいリターン値はNFS3ERR_INVALです。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_FBIG NFS3ERR_DQUOT NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_INVAL NFS3ERR_STALE NFS3ERR_BADHANDLE
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_FBIG NFS3ERR_DQUOT NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_INVAL NFS3ERR_はNFS3ERR_BADHANDLEを聞き古したです。
Callaghan, el al Informational [Page 53] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[53ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_SERVERFAULT
NFS3ERR_SERVERFAULT
SEE ALSO
参照
COMMIT.
公約してください。
3.3.8 Procedure 8: CREATE - Create a file
3.3.8 手順8: CREATE--ファイルを作成してください。
SYNOPSIS
構文
CREATE3res NFSPROC3_CREATE(CREATE3args) = 8;
CREATE3res NFSPROC3_は(CREATE3args)=8を作成します。
enum createmode3 { UNCHECKED = 0, GUARDED = 1, EXCLUSIVE = 2 };
enum createmode3、UNCHECKEDは0、GUARDED=1、EXCLUSIVE=2と等しいです。
union createhow3 switch (createmode3 mode) { case UNCHECKED: case GUARDED: sattr3 obj_attributes; case EXCLUSIVE: createverf3 verf; };
組合createhow3はケースUNCHECKED: ケースGUARDED: sattr3 obj_属性ケースEXCLUSIVE: (createverf3 verf)を切り換えます(createmode3モード)。
struct CREATE3args { diropargs3 where; createhow3 how; };
struct CREATE3args、diropargs3、どこである、createhow3、どのようにか、。
struct CREATE3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; };
struct CREATE3resokは、_オプアート_fh3 obj; _オプアート_attr obj_属性(wcc_データdir_wcc)を掲示すると掲示します。
struct CREATE3resfail { wcc_data dir_wcc; };
struct CREATE3resfail、wcc_データdir_wcc;、。
union CREATE3res switch (nfsstat3 status) { case NFS3_OK: CREATE3resok resok; default: CREATE3resfail resfail; };
組合CREATE3resはNFS3_OK: ケースCREATE3resok resokデフォルト: (CREATE3resfail resfail)を切り換えます(nfsstat3状態)。
Callaghan, el al Informational [Page 54] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[54ページ]RFC1813NFSバージョン3プロトコル1995年6月
DESCRIPTION
記述
Procedure CREATE creates a regular file. On entry, the arguments in CREATE3args are:
手順CREATEは通常のファイルを作成します。 エントリーでは、CREATE3argsの議論は以下の通りです。
where The location of the file to be created:
どこ、作成されるべきファイルの位置:
dir The file handle for the directory in which the file is to be created.
ファイルが作成されるファイルがことであるディレクトリのために処理するdir。
name The name that is to be associated with the created file. Refer to General comments on filenames on page 30.
作成されたファイルに関連させていることになっている名前を挙げてください。 30ページのファイル名の一般コメントを参照してください。
When creating a regular file, there are three ways to create the file as defined by:
通常のファイルを作成するとき、以下によって定義されるようにファイルを作成する3つの方法があります。
how A discriminated union describing how the server is to handle the file creation along with the appropriate attributes:
Aはどう適切な属性に伴うファイル作成を扱うサーバがことである方法を説明する組合を差別したか:
mode One of UNCHECKED, GUARDED, and EXCLUSIVE. UNCHECKED means that the file should be created without checking for the existence of a duplicate file in the same directory. In this case, how.obj_attributes is a sattr3 describing the initial attributes for the file. GUARDED specifies that the server should check for the presence of a duplicate file before performing the create and should fail the request with NFS3ERR_EXIST if a duplicate file exists. If the file does not exist, the request is performed as described for UNCHECKED. EXCLUSIVE specifies that the server is to follow exclusive creation semantics, using the verifier to ensure exclusive creation of the target. No attributes may be provided in this case, since the server may use the target file metadata to store the createverf3 verifier.
UNCHECKED、GUARDED、およびEXCLUSIVEのモード1つ。 UNCHECKEDは、ファイルが同じディレクトリの写しファイルの存在がないかどうかチェックしないで作成されるべきであることを意味します。 この場合、how.obj_属性はファイルのために初期の属性について説明するsattr3です。 GUARDEDが、サーバが働く前に写しファイルの存在がないかどうかチェックするべきであると指定する、写しファイルが存在しているなら、NFS3ERR_EXISTとの要求を作成して、失敗するべきです。 ファイルが存在していないなら、要求はUNCHECKEDのために説明されるように実行されます。 EXCLUSIVEは、サーバが排他的な作成意味論に従うことであると指定します、目標の排他的な作成を確実にするのに検証を使用して。 この場合属性を全く提供しないかもしれません、サーバがcreateverf3検証を保存するのに目標ファイルメタデータを使用するかもしれないので。
On successful return, CREATE3res.status is NFS3_OK and the results in CREATE3res.resok are:
うまくいっているリターンに関して、CREATE3res.statusは_OKにNFS3であり、CREATE3res.resokの結果は以下の通りです。
obj The file handle of the newly created regular file.
ファイルが処理する新たに作成された通常のファイルのobj。
Callaghan, el al Informational [Page 55] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[55ページ]RFC1813NFSバージョン3プロトコル1995年6月
obj_attributes The attributes of the regular file just created.
通常のファイルの属性がただ作成したobj_属性。
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires on the post-CREATE directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 それがポスト-CREATEディレクトリ属性で必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。
Otherwise, CREATE3res.status contains the error on failure and CREATE3res.resfail contains the following:
さもなければ、CREATE3res.statusは失敗に誤りを含んでいます、そして、CREATE3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-CREATE directory attributes, these can be found in dir_wcc.after. Even though the CREATE failed, full wcc_data is returned to allow the client to determine whether the failing CREATE resulted in any change to the directory.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-CREATEディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。 CREATEは失敗しましたが、クライアントが、失敗したCREATEが何かディレクトリへの変化をもたらしたかどうかと決心しているのを許容するために完全なwcc_データを返します。
IMPLEMENTATION
実装
Unlike the NFS version 2 protocol, in which certain fields in the initial attributes structure were overloaded to indicate creation of devices and FIFOs in addition to regular files, this procedure only supports the creation of regular files. The MKNOD procedure was introduced in the NFS version 3 protocol to handle creation of devices and FIFOs. Implementations should have no reason in the NFS version 3 protocol to overload CREATE semantics.
NFSバージョン2プロトコルと異なって、この手順は通常のファイルの作成をサポートするだけです。そこでは、初期の属性構造のある一定の野原が、通常のファイルに加えたデバイスと先入れ先出し法の作成を示すために積みすぎられました。 デバイスと先入れ先出し法の作成を扱うためにNFSバージョン3プロトコルでMKNOD手順を導入しました。 実装には、CREATE意味論を積みすぎるNFSバージョン3プロトコルの理由が全くあるべきではありません。
One aspect of the NFS version 3 protocol CREATE procedure warrants particularly careful consideration: the mechanism introduced to support the reliable exclusive creation of regular files. The mechanism comes into play when how.mode is EXCLUSIVE. In this case, how.verf contains a verifier that can reasonably be expected to be unique. A combination of a client identifier, perhaps the client network address, and a unique number generated by the client, perhaps the RPC transaction identifier, may be appropriate.
NFSバージョン3プロトコルCREATE手順の1つの局面が特に慎重な考慮を保証します: メカニズムは通常のファイルの信頼できる排他的な作成をサポートに取り入れました。 how.modeがEXCLUSIVEであるときに、メカニズムはプレーに入ります。 この場合、how.verfは特有であると合理的に予想できる検証を含みます。 クライアント識別子、恐らくクライアントネットワーク・アドレス、およびクライアントによって作られたユニークな数の組み合わせ(恐らくRPCトランザクション識別子)は適切であるかもしれません。
If the file does not exist, the server creates the file and stores the verifier in stable storage. For file systems that do not provide a mechanism for the storage of arbitrary file attributes, the server may use one or more elements of the file metadata to store the verifier. The
ファイルが存在していないなら、サーバは、ファイルを作成して、安定貯蔵に検証を保存します。 任意のファイル属性のストレージにメカニズムを提供しないファイルシステムのために、サーバは検証を保存するファイルメタデータの1つ以上の要素を使用するかもしれません。 The
Callaghan, el al Informational [Page 56] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[56ページ]RFC1813NFSバージョン3プロトコル1995年6月
verifier must be stored in stable storage to prevent erroneous failure on retransmission of the request. It is assumed that an exclusive create is being performed because exclusive semantics are critical to the application. Because of the expected usage, exclusive CREATE does not rely solely on the normally volatile duplicate request cache for storage of the verifier. The duplicate request cache in volatile storage does not survive a crash and may actually flush on a long network partition, opening failure windows. In the UNIX local file system environment, the expected storage location for the verifier on creation is the metadata (time stamps) of the file. For this reason, an exclusive file create may not include initial attributes because the server would have nowhere to store the verifier.
要求の「再-トランスミッション」で誤った失敗を防ぐために安定貯蔵に検証を保存しなければなりません。 それが想定される、それ、排他的である、作成、排他的な意味論がアプリケーションに重要であるので実行されるのは、そうです。 予想された用法で、排他的なCREATEは唯一通常揮発性を当てにしません。検証のストレージのために要求キャッシュをコピーしてください。 揮発性記憶装置による写し要求キャッシュは、クラッシュを乗り切っていなくて、長いネットワークパーティションのときに実際に洗い流されるかもしれません、失敗ウィンドウを開けて。 UNIXローカルファイルシステム環境では、作成での検証のための予想された番地はファイルに関するメタデータ(タイムスタンプ)です。 この理由、排他的なファイル、作成、サーバには、検証を保存する場所がないでしょう、したがって、初期の属性を含まないかもしれません。
If the server can not support these exclusive create semantics, possibly because of the requirement to commit the verifier to stable storage, it should fail the CREATE request with the error, NFS3ERR_NOTSUPP.
サポートではなく、サーバ缶である、これら、排他的である、意味論を作成してください、ことによると安定貯蔵に検証を遂行するという要件のために誤り(NFS3ERR_NOTSUPP)に応じて、それはCREATE要求に失敗するべきです。
During an exclusive CREATE request, if the file already exists, the server reconstructs the file's verifier and compares it with the verifier in the request. If they match, the server treats the request as a success. The request is presumed to be a duplicate of an earlier, successful request for which the reply was lost and that the server duplicate request cache mechanism did not detect. If the verifiers do not match, the request is rejected with the status, NFS3ERR_EXIST.
排他的なCREATE要求の間、ファイルが既に存在しているなら、サーバは、ファイルの検証を再建して、要求で検証とそれを比べます。 彼らが合っているなら、サーバは成功として要求を扱います。 要求はあえて回答が失われて、サーバ写し要求キャッシュメカニズムが検出しなかったより早くて、うまくいっている要求の写しです。 NFS3ERR_EXIST、検証が合っていないなら、要求は状態で拒絶されます。
Once the client has performed a successful exclusive create, it must issue a SETATTR to set the correct file attributes. Until it does so, it should not rely upon any of the file attributes, since the server implementation may need to overload file metadata to store the verifier.
一度、クライアントがうまくいった状態でaを実行したことがある、排他的である、作成、それは、正しいファイル属性を設定するためにSETATTRを発行しなければなりません。 そうするまでファイル属性のどれかを当てにするべきではありません、サーバ実装が、検証を保存するためにファイルメタデータを積みすぎる必要があるかもしれないので。
Use of the GUARDED attribute does not provide exactly-once semantics. In particular, if a reply is lost and the server does not detect the retransmission of the request, the procedure can fail with NFS3ERR_EXIST, even though the create was performed successfully.
GUARDED属性の使用が提供されない、ちょうど、-一度、意味論。 回答が無くなって、サーバが要求の「再-トランスミッション」を検出しないなら、特に、手順がNFS3ERR_EXISTと共に失敗できる、作成、首尾よく実行されました。
Refer to General comments on filenames on page 30.
30ページのファイル名の一般コメントを参照してください。
Callaghan, el al Informational [Page 57] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[57ページ]RFC1813NFSバージョン3プロトコル1995年6月
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_がNFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
MKDIR, SYMLINK, MKNOD, and PATHCONF.
MKDIR、SYMLINK、MKNOD、およびPATHCONF。
3.3.9 Procedure 9: MKDIR - Create a directory
3.3.9 手順9: MKDIR--ディレクトリを作成してください。
SYNOPSIS
構文
MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9;
MKDIR3res NFSPROC3_MKDIR(MKDIR3args)=9。
struct MKDIR3args { diropargs3 where; sattr3 attributes; };
struct MKDIR3args、diropargs3、どこ(sattr3属性)、。
struct MKDIR3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; };
struct MKDIR3resokは、_オプアート_fh3 obj; _オプアート_attr obj_属性(wcc_データdir_wcc)を掲示すると掲示します。
struct MKDIR3resfail { wcc_data dir_wcc; };
struct MKDIR3resfail、wcc_データdir_wcc;、。
union MKDIR3res switch (nfsstat3 status) { case NFS3_OK: MKDIR3resok resok; default: MKDIR3resfail resfail; };
組合MKDIR3resはNFS3_OK: ケースMKDIR3resok resokデフォルト: (MKDIR3resfail resfail)を切り換えます(nfsstat3状態)。
Callaghan, el al Informational [Page 58] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[58ページ]RFC1813NFSバージョン3プロトコル1995年6月
DESCRIPTION
記述
Procedure MKDIR creates a new subdirectory. On entry, the arguments in MKDIR3args are:
手順MKDIRは新しいサブディレクトリを作成します。 エントリーでは、MKDIR3argsの議論は以下の通りです。
where The location of the subdirectory to be created:
どこ、作成されるべきサブディレクトリの位置:
dir The file handle for the directory in which the subdirectory is to be created.
ファイルが作成されるサブディレクトリがことであるディレクトリのために処理するdir。
name The name that is to be associated with the created subdirectory. Refer to General comments on filenames on page 30.
作成されたサブディレクトリに関連させていることになっている名前を挙げてください。 30ページのファイル名の一般コメントを参照してください。
attributes The initial attributes for the subdirectory.
イニシャルがサブディレクトリのために結果と考える属性。
On successful return, MKDIR3res.status is NFS3_OK and the results in MKDIR3res.resok are:
うまくいっているリターンに関して、MKDIR3res.statusは_OKにNFS3であり、MKDIR3res.resokの結果は以下の通りです。
obj The file handle for the newly created directory.
ファイルが新たに作成されたディレクトリのために処理するobj。
obj_attributes The attributes for the newly created subdirectory.
obj_は新たに作成されたサブディレクトリのために属性を結果と考えます。
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-MKDIR directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-MKDIRディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。
Otherwise, MKDIR3res.status contains the error on failure and MKDIR3res.resfail contains the following:
さもなければ、MKDIR3res.statusは失敗に誤りを含んでいます、そして、MKDIR3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-MKDIR directory attributes, these can be found in dir_wcc.after. Even though the MKDIR failed, full wcc_data is returned to allow the client to determine whether the failing MKDIR resulted in any change to the directory.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-MKDIRディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。 MKDIRは失敗しましたが、クライアントが、失敗したMKDIRが何かディレクトリへの変化をもたらしたかどうかと決心しているのを許容するために完全なwcc_データを返します。
Callaghan, el al Informational [Page 59] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[59ページ]RFC1813NFSバージョン3プロトコル1995年6月
IMPLEMENTATION
実装
Many server implementations will not allow the filenames, "." or "..", to be used as targets in a MKDIR operation. In this case, the server should return NFS3ERR_EXIST. Refer to General comments on filenames on page 30.
「多くのサーバ実装はファイル名を許容しない」、」、」、」, 目標としてMKDIR操作に使用されるために。 この場合、サーバはNFS3ERR_EXISTを返すべきです。30ページのファイル名の一般コメントを参照してください。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_がNFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
CREATE, SYMLINK, MKNOD, and PATHCONF.
作成、SYMLINK、MKNOD、およびPATHCONF。
Callaghan, el al Informational [Page 60] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[60ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.10 Procedure 10: SYMLINK - Create a symbolic link
3.3.10 手順10: SYMLINK--シンボリックリンクを作成してください。
SYNOPSIS
構文
SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10;
SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args)=10。
struct symlinkdata3 { sattr3 symlink_attributes; nfspath3 symlink_data; };
sattr3 symlink_が結果と考える; nfspath3 symlink_データ;struct symlinkdata3。
struct SYMLINK3args { diropargs3 where; symlinkdata3 symlink; };
struct SYMLINK3args、diropargs3、どこ(symlinkdata3 symlink)、。
struct SYMLINK3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; };
struct SYMLINK3resokは、_オプアート_fh3 obj; _オプアート_attr obj_属性(wcc_データdir_wcc)を掲示すると掲示します。
struct SYMLINK3resfail { wcc_data dir_wcc; };
struct SYMLINK3resfail、wcc_データdir_wcc;、。
union SYMLINK3res switch (nfsstat3 status) { case NFS3_OK: SYMLINK3resok resok; default: SYMLINK3resfail resfail; };
組合SYMLINK3resはNFS3_OK: ケースSYMLINK3resok resokデフォルト: (SYMLINK3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure SYMLINK creates a new symbolic link. On entry, the arguments in SYMLINK3args are:
手順SYMLINKは新しいシンボリックリンクを作成します。 エントリーでは、SYMLINK3argsの議論は以下の通りです。
where The location of the symbolic link to be created:
どこ、作成されるべきシンボリックリンクの位置:
dir The file handle for the directory in which the symbolic link is to be created.
ファイルが作成されるシンボリックリンクがことであるディレクトリのために処理するdir。
Callaghan, el al Informational [Page 61] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[61ページ]RFC1813NFSバージョン3プロトコル1995年6月
name The name that is to be associated with the created symbolic link. Refer to General comments on filenames on page 30.
作成されたシンボリックリンクに関連させていることになっている名前を挙げてください。 30ページのファイル名の一般コメントを参照してください。
symlink The symbolic link to create:
symlinkは以下を作成するシンボリックリンクです。
symlink_attributes The initial attributes for the symbolic link.
symlink_はシンボリックリンクのために初期の属性を結果と考えます。
symlink_data The string containing the symbolic link data.
symlink_データ、シンボリックリンクデータを含むストリング。
On successful return, SYMLINK3res.status is NFS3_OK and SYMLINK3res.resok contains:
うまくいっているリターンのときに、SYMLINK3res.statusは_OKにNFS3です、そして、SYMLINK3res.resokは以下を含んでいます。
obj The file handle for the newly created symbolic link.
ファイルが新たに作成されたシンボリックリンクのために処理するobj。
obj_attributes The attributes for the newly created symbolic link.
obj_は新たに作成されたシンボリックリンクのために属性を結果と考えます。
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-SYMLINK directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-SYMLINKディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。
Otherwise, SYMLINK3res.status contains the error on failure and SYMLINK3res.resfail contains the following:
さもなければ、SYMLINK3res.statusは失敗に誤りを含んでいます、そして、SYMLINK3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-SYMLINK directory attributes, these can be found in dir_wcc.after. Even though the SYMLINK failed, full wcc_data is returned to allow the client to determine whether the failing SYMLINK changed the directory.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-SYMLINKディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。 SYMLINKは失敗しましたが、クライアントが、失敗したSYMLINKがディレクトリを変えたかどうかと決心しているのを許容するために完全なwcc_データを返します。
IMPLEMENTATION
実装
Refer to General comments on filenames on page 30.
30ページのファイル名の一般コメントを参照してください。
For symbolic links, the actual file system node and its contents are expected to be created in a single atomic operation. That is, once the symbolic link is visible, there must not be a window where a READLINK would fail or
シンボリックリンクにおいて、ただ一つの原子操作で実際のファイルシステムノードとそのコンテンツが作成されると予想されます。 またはシンボリックリンクがいったんすなわち、目に見えるようになると窓がREADLINKが失敗するところにあるはずがない。
Callaghan, el al Informational [Page 62] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[62ページ]RFC1813NFSバージョン3プロトコル1995年6月
return incorrect data.
間違ったデータを返してください。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_がNFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
READLINK, CREATE, MKDIR, MKNOD, FSINFO, and PATHCONF.
READLINK、作成、MKDIR、MKNOD、FSINFO、およびPATHCONF。
3.3.11 Procedure 11: MKNOD - Create a special device
3.3.11 手順11: MKNOD--特別なデバイスを作成してください。
SYNOPSIS
構文
MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;
MKNOD3res NFSPROC3_MKNOD(MKNOD3args)=11。
struct devicedata3 { sattr3 dev_attributes; specdata3 spec; };
sattr3 dev_が結果と考える; specdata3仕様;struct devicedata3。
union mknoddata3 switch (ftype3 type) { case NF3CHR: case NF3BLK: devicedata3 device; case NF3SOCK: case NF3FIFO: sattr3 pipe_attributes; default: void; };
組合mknoddata3スイッチ(ftype3タイプ)は、NF3CHR: ケースNF3BLK: devicedata3デバイス; NF3SOCK: ケースNF3FIFO: sattr3パイプ_属性デフォルト: (空間)をケースに入れるのをケースに入れます。
struct MKNOD3args { diropargs3 where; mknoddata3 what; };
struct MKNOD3args、diropargs3、どこである、mknoddata3、何であるか、。
Callaghan, el al Informational [Page 63] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[63ページ]RFC1813NFSバージョン3プロトコル1995年6月
struct MKNOD3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; };
struct MKNOD3resokは、_オプアート_fh3 obj; _オプアート_attr obj_属性(wcc_データdir_wcc)を掲示すると掲示します。
struct MKNOD3resfail { wcc_data dir_wcc; };
struct MKNOD3resfail、wcc_データdir_wcc;、。
union MKNOD3res switch (nfsstat3 status) { case NFS3_OK: MKNOD3resok resok; default: MKNOD3resfail resfail; };
組合MKNOD3resはNFS3_OK: ケースMKNOD3resok resokデフォルト: (MKNOD3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure MKNOD creates a new special file of the type, what.type. Special files can be device files or named pipes. On entry, the arguments in MKNOD3args are:
手順MKNODはタイプ、what.typeの新しい特別なファイルを作成します。 特別なファイルは、デバイスファイルか名前付きパイプであるかもしれません。 エントリーでは、MKNOD3argsの議論は以下の通りです。
where The location of the special file to be created:
特別番組の位置が作成されるためにファイルされるところ:
dir The file handle for the directory in which the special file is to be created.
ファイルが作成される特別なファイルがことであるディレクトリのために処理するdir。
name The name that is to be associated with the created special file. Refer to General comments on filenames on page 30.
作成された特別なファイルに関連させていることになっている名前を挙げてください。 30ページのファイル名の一般コメントを参照してください。
what A discriminated union identifying the type of the special file to be created along with the data and attributes appropriate to the type of the special file:
特別なファイルのタイプに、適切なデータと属性と共に作成されるために特別なファイルのタイプを特定するどんなA差別された組合:
type The type of the object to be created.
オブジェクトのタイプをタイプして、作成されてください。
When creating a character special file (what.type is NF3CHR) or a block special file (what.type is NF3BLK), what includes:
キャラクタの特別なファイル(what.typeはNF3CHRである)かブロックの特別なファイル(what.typeはNF3BLKである)を作成するとき、何が以下を含んでいますか?
Callaghan, el al Informational [Page 64] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[64ページ]RFC1813NFSバージョン3プロトコル1995年6月
device A structure devicedata3 with the following components:
以下のコンポーネントがあるデバイスA構造devicedata3:
dev_attributes The initial attributes for the special file.
特別番組のための初期の属性がファイルするdev_属性。
spec The major number stored in device.spec.specdata1 and the minor number stored in device.spec.specdata2.
device.spec.specdata1に保存された主要な数と小さい方の数がdevice.spec.specdata2に保存した仕様。
When creating a socket (what.type is NF3SOCK) or a FIFO (what.type is NF3FIFO), what includes:
ソケット(what.typeはNF3SOCKである)か先入れ先出し法(what.typeはNF3FIFOである)を作成するとき、何が以下を含んでいますか?
pipe_attributes The initial attributes for the special file.
_特別番組のための初期の属性がファイルする属性を運んでください。
On successful return, MKNOD3res.status is NFS3_OK and MKNOD3res.resok contains:
うまくいっているリターンのときに、MKNOD3res.statusは_OKにNFS3です、そして、MKNOD3res.resokは以下を含んでいます。
obj The file handle for the newly created special file.
ファイルが新たに作成された特別なファイルのために処理するobj。
obj_attributes The attributes for the newly created special file.
新たに作成された特別番組のための属性がファイルするobj_属性。
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-MKNOD directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-MKNODディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。
Otherwise, MKNOD3res.status contains the error on failure and MKNOD3res.resfail contains the following:
さもなければ、MKNOD3res.statusは失敗に誤りを含んでいます、そして、MKNOD3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, where.dir. For a client that requires only the post-MKNOD directory attributes, these can be found in dir_wcc.after. Even though the MKNOD failed, full wcc_data is returned to allow the client to determine whether the failing MKNOD changed the directory.
dir_wcc Weakはディレクトリ、where.dirのための一貫性データをキャッシュします。 ポスト-MKNODディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。 MKNODは失敗しましたが、クライアントが、失敗したMKNODがディレクトリを変えたかどうかと決心しているのを許容するために完全なwcc_データを返します。
IMPLEMENTATION
実装
Refer to General comments on filenames on page 30.
30ページのファイル名の一般コメントを参照してください。
Without explicit support for special file type creation in the NFS version 2 protocol, fields in the CREATE arguments
NFSバージョン2プロトコルの特別なファイルの種類作成、CREATE議論における分野の明白なサポートなしで
Callaghan, el al Informational [Page 65] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[65ページ]RFC1813NFSバージョン3プロトコル1995年6月
were overloaded to indicate creation of certain types of objects. This overloading is not necessary in the NFS version 3 protocol.
あるタイプのオブジェクトの創案を示すために、積みすぎられました。 この積みすぎはNFSバージョン3プロトコルで必要ではありません。
If the server does not support any of the defined types, the error, NFS3ERR_NOTSUPP, should be returned. Otherwise, if the server does not support the target type or the target type is illegal, the error, NFS3ERR_BADTYPE, should be returned. Note that NF3REG, NF3DIR, and NF3LNK are illegal types for MKNOD. The procedures, CREATE, MKDIR, and SYMLINK should be used to create these file types, respectively, instead of MKNOD.
サーバが定義されたタイプのいずれもサポートしないなら、誤り(NFS3ERR_NOTSUPP)は返されるべきです。 さもなければ、サーバが目標タイプをサポートしないか、または目標タイプが不法であるなら、誤り(NFS3ERR_BADTYPE)は返されるべきです。 NF3REG、NF3DIR、およびNF3LNKがMKNODのための不法なタイプであることに注意してください。 手順、CREATE、MKDIR、およびSYMLINKは、MKNODの代わりにそれぞれこれらのファイルの種類を作成するのに用いられるべきです。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_NOTDIR NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT NFS3ERR_BADTYPE
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_が存在している、NFS3ERR_NOTDIR NFS3ERRの_の_の聞き古した___NOSPC NFS3ERR_ROFS NFS3ERR NAMETOOLONG NFS3ERR_DQUOT NFS3ERR NFS3ERR_BADHANDLE NFS3ERR NOTSUPP NFS3ERR_SERVERFAULT NFS3ERR BADTYPE
SEE ALSO
参照
CREATE, MKDIR, SYMLINK, and PATHCONF.
作成、MKDIR、SYMLINK、およびPATHCONF。
Callaghan, el al Informational [Page 66] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[66ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.12 Procedure 12: REMOVE - Remove a File
3.3.12 手順12: 取り外してください--ファイルを取り外してください。
SYNOPSIS
構文
REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12;
REMOVE3res NFSPROC3_は(REMOVE3args)=12を取り除きます。
struct REMOVE3args { diropargs3 object; };
struct REMOVE3args、diropargs3オブジェクト;、。
struct REMOVE3resok { wcc_data dir_wcc; };
struct REMOVE3resok、wcc_データdir_wcc;、。
struct REMOVE3resfail { wcc_data dir_wcc; };
struct REMOVE3resfail、wcc_データdir_wcc;、。
union REMOVE3res switch (nfsstat3 status) { case NFS3_OK: REMOVE3resok resok; default: REMOVE3resfail resfail; };
組合REMOVE3resはNFS3_OK: ケースREMOVE3resok resokデフォルト: (REMOVE3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure REMOVE removes (deletes) an entry from a directory. If the entry in the directory was the last reference to the corresponding file system object, the object may be destroyed. On entry, the arguments in REMOVE3args are:
手順、削除、ディレクトリからエントリーを取り除きます(削除します)。 ディレクトリにおけるエントリーが対応するファイルシステム対象物の最後の参照であったなら、オブジェクトは破壊されるかもしれません。 エントリーでは、REMOVE3argsの議論は以下の通りです。
object A diropargs3 structure identifying the entry to be removed:
取り除くためにエントリーを特定するオブジェクトA diropargs3構造:
dir The file handle for the directory from which the entry is to be removed.
ファイルがエントリーが取り除かれることになっているディレクトリのために処理するdir。
name The name of the entry to be removed. Refer to General comments on filenames on page 30.
エントリーの名前を挙げて、取り除いてください。 30ページのファイル名の一般コメントを参照してください。
On successful return, REMOVE3res.status is NFS3_OK and REMOVE3res.resok contains:
うまくいっているリターンのときに、REMOVE3res.statusは_OKにNFS3です、そして、REMOVE3res.resokは以下を含んでいます。
Callaghan, el al Informational [Page 67] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[67ページ]RFC1813NFSバージョン3プロトコル1995年6月
dir_wcc Weak cache consistency data for the directory, object.dir. For a client that requires only the post-REMOVE directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、object.dirのための一貫性データをキャッシュします。 それが必要とするクライアントだけ、ポスト、-、削除、ディレクトリ属性であり、dir_wcc.afterでこれらを見つけることができます。
Otherwise, REMOVE3res.status contains the error on failure and REMOVE3res.resfail contains the following:
さもなければ、REMOVE3res.statusは失敗に誤りを含んでいます、そして、REMOVE3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, object.dir. For a client that requires only the post-REMOVE directory attributes, these can be found in dir_wcc.after. Even though the REMOVE failed, full wcc_data is returned to allow the client to determine whether the failing REMOVE changed the directory.
dir_wcc Weakはディレクトリ、object.dirのための一貫性データをキャッシュします。 それが必要とするクライアントだけ、ポスト、-、削除、ディレクトリ属性であり、dir_wcc.afterでこれらを見つけることができます。 削除、_データがクライアントが決定するのを許容するために返される失敗して、完全なwcc、失敗、削除、ディレクトリを変えました。
IMPLEMENTATION
実装
In general, REMOVE is intended to remove non-directory file objects and RMDIR is to be used to remove directories. However, REMOVE can be used to remove directories, subject to restrictions imposed by either the client or server interfaces. This had been a source of confusion in the NFS version 2 protocol.
意図して、非ディレクトリファイルオブジェクトとRMDIRを取り外すのは、ディレクトリを取り外すのにおいて使用されていることです。 削除、しかしながら、クライアントによって課された制限を条件としてディレクトリを取り外すのにおいて中古であるかサーバインタフェースはそうであることができますか? これはNFSバージョン2プロトコルにおける混乱の源でした。
The concept of last reference is server specific. However, if the nlink field in the previous attributes of the object had the value 1, the client should not rely on referring to the object via a file handle. Likewise, the client should not rely on the resources (disk space, directory entry, and so on.) formerly associated with the object becoming immediately available. Thus, if a client needs to be able to continue to access a file after using REMOVE to remove it, the client should take steps to make sure that the file will still be accessible. The usual mechanism used is to use RENAME to rename the file from its old name to a new hidden name.
最後の参照の概念はサーバ特有です。 しかしながら、オブジェクトの前の属性におけるnlink分野に値1があるなら、クライアントはファイルハンドルを通してオブジェクトについて言及するのを当てにしないでしょうに。 同様に、クライアントは以前すぐに利用可能になるオブジェクトに関連しているリソース(椎間腔、ディレクトリエントリなど)を当てにするべきではありません。 したがって、クライアントが、それを取り除くために削除をアクセスaファイル後使用に続けることができる必要があるなら、クライアントは、ファイルが確実にまだアクセス可能になるようにするために手を打つべきです。 使用される普通のメカニズムは旧名から新しい隠された名前までファイルを改名するのにRENAMEを使用することです。
Refer to General comments on filenames on page 30.
30ページのファイル名の一般コメントを参照してください。
ERRORS
誤り
NFS3ERR_NOENT NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG
NFS3ERR_NOENT NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG
Callaghan, el al Informational [Page 68] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[68ページ]RFC1813NFSバージョン3プロトコル1995年6月
NFS3ERR_ROFS NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
_の聞き古した_NFS3ERR_ROFS NFS3ERR NFS3ERR_BADHANDLE NFS3ERR SERVERFAULT
SEE ALSO
参照
RMDIR and RENAME.
そして、RMDIR、改名します。
3.3.13 Procedure 13: RMDIR - Remove a Directory
3.3.13 手順13: RMDIR--ディレクトリを取り除いてください。
SYNOPSIS
構文
RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13;
RMDIR3res NFSPROC3_RMDIR(RMDIR3args)=13。
struct RMDIR3args { diropargs3 object; };
struct RMDIR3args、diropargs3オブジェクト;、。
struct RMDIR3resok { wcc_data dir_wcc; };
struct RMDIR3resok、wcc_データdir_wcc;、。
struct RMDIR3resfail { wcc_data dir_wcc; };
struct RMDIR3resfail、wcc_データdir_wcc;、。
union RMDIR3res switch (nfsstat3 status) { case NFS3_OK: RMDIR3resok resok; default: RMDIR3resfail resfail; };
組合RMDIR3resはNFS3_OK: ケースRMDIR3resok resokデフォルト: (RMDIR3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure RMDIR removes (deletes) a subdirectory from a directory. If the directory entry of the subdirectory is the last reference to the subdirectory, the subdirectory may be destroyed. On entry, the arguments in RMDIR3args are:
手順RMDIRはディレクトリからサブディレクトリを取り外します(削除します)。 サブディレクトリに関するディレクトリエントリがサブディレクトリの最後の参照であるなら、サブディレクトリは破壊されるかもしれません。 エントリーでは、RMDIR3argsの議論は以下の通りです。
object A diropargs3 structure identifying the directory entry to be removed:
取り除くためにディレクトリエントリを特定するオブジェクトA diropargs3構造:
Callaghan, el al Informational [Page 69] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[69ページ]RFC1813NFSバージョン3プロトコル1995年6月
dir The file handle for the directory from which the subdirectory is to be removed.
ファイルが取り除かれるサブディレクトリがことであるディレクトリのために処理するdir。
name The name of the subdirectory to be removed. Refer to General comments on filenames on page 30.
サブディレクトリの名前を挙げて、取り除いてください。 30ページのファイル名の一般コメントを参照してください。
On successful return, RMDIR3res.status is NFS3_OK and RMDIR3res.resok contains:
うまくいっているリターンのときに、RMDIR3res.statusは_OKにNFS3です、そして、RMDIR3res.resokは以下を含んでいます。
dir_wcc Weak cache consistency data for the directory, object.dir. For a client that requires only the post-RMDIR directory attributes, these can be found in dir_wcc.after.
dir_wcc Weakはディレクトリ、object.dirのための一貫性データをキャッシュします。 ポスト-RMDIRディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。
Otherwise, RMDIR3res.status contains the error on failure and RMDIR3res.resfail contains the following:
さもなければ、RMDIR3res.statusは失敗に誤りを含んでいます、そして、RMDIR3res.resfailは以下を含んでいます:
dir_wcc Weak cache consistency data for the directory, object.dir. For a client that requires only the post-RMDIR directory attributes, these can be found in dir_wcc.after. Note that even though the RMDIR failed, full wcc_data is returned to allow the client to determine whether the failing RMDIR changed the directory.
dir_wcc Weakはディレクトリ、object.dirのための一貫性データをキャッシュします。 ポスト-RMDIRディレクトリ属性だけを必要とするクライアントに関しては、dir_wcc.afterでこれらを見つけることができます。 RMDIRが失敗しましたが、完全なwcc_データがクライアントが、失敗したRMDIRがディレクトリを変えたかどうかと決心しているのを許容するために返されることに注意してください。
IMPLEMENTATION
実装
Note that on some servers, removal of a non-empty directory is disallowed.
いくつかのサーバでは、非空のディレクトリの取り外しが禁じられることに注意してください。
On some servers, the filename, ".", is illegal. These servers will return the error, NFS3ERR_INVAL. On some servers, the filename, "..", is illegal. These servers will return the error, NFS3ERR_EXIST. This would seem inconsistent, but allows these servers to comply with their own specific interface definitions. Clients should be prepared to handle both cases.
「いくつかのサーバ、ファイル名」、」、不法入国者はそうです。 NFS3ERR_INVAL、これらのサーバは誤りを返すでしょう。 「いくつかのサーバ、ファイル名」、」, 不法入国者はそうですか? これらのサーバは誤りを返すでしょう、NFS3ERR_EXIST。これは、矛盾しているように見えるでしょうが、これらのサーバがそれら自身の特定のインターフェース定義に従うのを許容します。 クライアントは両方のケースを扱う用意ができているべきです。
The client should not rely on the resources (disk space, directory entry, and so on.) formerly associated with the directory becoming immediately available.
クライアントは以前すぐに利用可能になるディレクトリに関連しているリソース(椎間腔、ディレクトリエントリなど)を当てにするべきではありません。
Callaghan, el al Informational [Page 70] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[70ページ]RFC1813NFSバージョン3プロトコル1995年6月
ERRORS
誤り
NFS3ERR_NOENT NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_EXIST NFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG NFS3ERR_ROFS NFS3ERR_NOTEMPTY NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_NOENT NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_INVAL NFS3ERR_がNFS3ERR_NOTDIR NFS3ERR_NAMETOOLONG NFS3ERR_ROFS NFS3ERR_NOTEMPTY NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
REMOVE.
削除。
3.3.14 Procedure 14: RENAME - Rename a File or Directory
3.3.14 手順14: 改名、--ファイルかディレクトリを改名してください
SYNOPSIS
構文
RENAME3res NFSPROC3_RENAME(RENAME3args) = 14;
RENAME3res NFSPROC3_は(RENAME3args)を=14に改名します。
struct RENAME3args { diropargs3 from; diropargs3 to; };
struct RENAME3args、diropargs3、;、diropargs3、;、。
struct RENAME3resok { wcc_data fromdir_wcc; wcc_data todir_wcc; };
struct RENAME3resokは_データfromdir_wcc(wcc_データtodir_wcc)をwccします。
struct RENAME3resfail { wcc_data fromdir_wcc; wcc_data todir_wcc; };
struct RENAME3resfailは_データfromdir_wcc(wcc_データtodir_wcc)をwccします。
union RENAME3res switch (nfsstat3 status) { case NFS3_OK: RENAME3resok resok; default: RENAME3resfail resfail; };
組合RENAME3resはNFS3_OK: ケースRENAME3resok resokデフォルト: (RENAME3resfail resfail)を切り換えます(nfsstat3状態)。
Callaghan, el al Informational [Page 71] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[71ページ]RFC1813NFSバージョン3プロトコル1995年6月
DESCRIPTION
記述
Procedure RENAME renames the file identified by from.name in the directory, from.dir, to to.name in the di- rectory, to.dir. The operation is required to be atomic to the client. To.dir and from.dir must reside on the same file system and server. On entry, the arguments in RENAME3args are:
手順RENAMEはディレクトリのfrom.nameによって特定されたファイル、ディ牧師館のto.nameへのfrom.dirをto.dirに改名します。 操作が、クライアントにとって原子であるのに必要です。 To.dirとfrom.dirは同じファイルシステムとサーバに住んでいなければなりません。エントリーでは、RENAME3argsの議論は以下の通りです。
from A diropargs3 structure identifying the source (the file system object to be re-named):
ソース(改名されるファイルシステム対象物)を特定するA diropargs3構造から:
from.dir The file handle for the directory from which the entry is to be renamed.
ファイルがエントリーが改名されることになっているディレクトリのために処理するfrom.dir。
from.name The name of the entry that identifies the object to be renamed. Refer to General comments on filenames on page 30.
from.name、改名されるオブジェクトを特定するエントリーの名前。 30ページのファイル名の一般コメントを参照してください。
to A diropargs3 structure identifying the target (the new name of the object):
目標(オブジェクトの新しい名前)を特定するA diropargs3構造に:
to.dir The file handle for the directory to which the object is to be renamed.
ファイルがオブジェクトが改名されることになっているディレクトリのために処理するto.dir。
to.name The new name for the object. Refer to General comments on filenames on page 30.
新しさがオブジェクトにちなんで命名するto.name。 30ページのファイル名の一般コメントを参照してください。
If the directory, to.dir, already contains an entry with the name, to.name, the source object must be compatible with the target: either both are non-directories or both are directories and the target must be empty. If compatible, the existing target is removed before the rename occurs. If they are not compatible or if the target is a directory but not empty, the server should return the error, NFS3ERR_EXIST.
to.name、ディレクトリ(to.dir)が既に名前によるエントリーを含んでいるなら、ソースオブジェクトは目標と互換性があるに違いありません: 両方がディレクトリです、そして、両方が非ディレクトリであるか目標は空であるに違いありません。 互換性があるので、既存の目標が以前取り外されるかどうか、改名、起こります。 目標がそれらは互換性がないか、ディレクトリにもかかわらず、または空でないなら、サーバは誤り(NFS3ERR_EXIST)を返すべきです。
On successful return, RENAME3res.status is NFS3_OK and RENAME3res.resok contains:
うまくいっているリターンのときに、RENAME3res.statusは_OKにNFS3です、そして、RENAME3res.resokは以下を含んでいます。
Callaghan, el al Informational [Page 72] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[72ページ]RFC1813NFSバージョン3プロトコル1995年6月
fromdir_wcc Weak cache consistency data for the directory, from.dir.
fromdir_wcc Weakはディレクトリ、from.dirのための一貫性データをキャッシュします。
todir_wcc Weak cache consistency data for the directory, to.dir.
todir_wcc Weakはディレクトリ、to.dirのための一貫性データをキャッシュします。
Otherwise, RENAME3res.status contains the error on failure and RENAME3res.resfail contains the following:
さもなければ、RENAME3res.statusは失敗に誤りを含んでいます、そして、RENAME3res.resfailは以下を含んでいます:
fromdir_wcc Weak cache consistency data for the directory, from.dir.
fromdir_wcc Weakはディレクトリ、from.dirのための一貫性データをキャッシュします。
todir_wcc Weak cache consistency data for the directory, to.dir.
todir_wcc Weakはディレクトリ、to.dirのための一貫性データをキャッシュします。
IMPLEMENTATION The RENAME operation must be atomic to the client. The message "to.dir and from.dir must reside on the same file system on the server, [or the operation will fail]" means that the fsid fields in the attributes for the directories are the same. If they reside on different file systems, the error, NFS3ERR_XDEV, is returned. Even though the operation is atomic, the status, NFS3ERR_MLINK, may be returned if the server used a "unlink/link/unlink" sequence internally.
IMPLEMENTATION、クライアントにとって、RENAME操作は原子であるに違いありません。 メッセージ、「to.dirとfrom.dirはサーバの同じファイルシステムの上に住んでいなければならなくて、」 fsidがディレクトリのために属性でさばく[操作は失敗するでしょう]手段は同じです。 彼らが異なったファイルシステムの上に住んでいるなら、誤り(NFS3ERR_XDEV)は返されます。 操作は原子ですが、サーバが内部的に「放すか、リンクする、または離れてください」という系列を使用したなら、状態(NFS3ERR_MLINK)は返されるかもしれません。
A file handle may or may not become stale on a rename. However, server implementors are strongly encouraged to attempt to keep file handles from becoming stale in this fashion.
ハンドルが聞き古したであるなるかもしれないaが改名するファイル。 しかしながら、サーバ作成者が、ファイルハンドルがこんなやり方で聞き古したであるなるのを妨げるのを試みるよう強く奨励されます。
On some servers, the filenames, "." and "..", are illegal as either from.name or to.name. In addition, neither from.name nor to.name can be an alias for from.dir. These servers will return the error, NFS3ERR_INVAL, in these cases.
「いくつかのサーバ、ファイル名」、」、」、」, from.nameかto.nameのどちらかとしての不法入国者はそうですか? さらに、from.nameもto.nameもfrom.dirのための別名であるはずがありません。 これらのサーバはこれらの場合で誤り、NFS3ERR_INVALを返すでしょう。
If from and to both refer to the same file (they might be hard links of each other), then RENAME should perform no action and return NFS3_OK.
両方と両方を、同じファイルを参照してください(それらは互いのハードリンクであるかもしれません)、次に、RENAMEが動作を全く実行しないで、NFS3_OKを返すなら。
Refer to General comments on filenames on page 30.
30ページのファイル名の一般コメントを参照してください。
Callaghan, el al Informational [Page 73] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[73ページ]RFC1813NFSバージョン3プロトコル1995年6月
ERRORS
誤り
NFS3ERR_NOENT NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_XDEV NFS3ERR_NOTDIR NFS3ERR_ISDIR NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_MLINK NFS3ERR_NAMETOOLONG NFS3ERR_NOTEMPTY NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_NOENT NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_がNFS3ERR_XDEV NFS3ERR_NOTDIR NFS3ERR_ISDIR NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_MLINK NFS3ERR_NAMETOOLONG NFS3ERR_NOTEMPTY NFS3ERR_DQUOT NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
REMOVE and LINK.
取り外してください、そして、リンクしてください。
3.3.15 Procedure 15: LINK - Create Link to an object
3.3.15 手順15: LINK--Linkをオブジェクトに作成してください。
SYNOPSIS
構文
LINK3res NFSPROC3_LINK(LINK3args) = 15;
LINK3res NFSPROC3_リンク(LINK3args)=15。
struct LINK3args { nfs_fh3 file; diropargs3 link; };
nfs_fh3がファイルする; diropargs3リンク;struct LINK3args。
struct LINK3resok { post_op_attr file_attributes; wcc_data linkdir_wcc; };
struct LINK3resokは_オプアート_attrファイル_属性(wcc_データlinkdir_wcc)を掲示します。
struct LINK3resfail { post_op_attr file_attributes; wcc_data linkdir_wcc; };
struct LINK3resfailは_オプアート_attrファイル_属性(wcc_データlinkdir_wcc)を掲示します。
union LINK3res switch (nfsstat3 status) { case NFS3_OK:
組合LINK3resが(nfsstat3状態)を切り換える、NFS3_OKをケースに入れてください:
Callaghan, el al Informational [Page 74] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[74ページ]RFC1813NFSバージョン3プロトコル1995年6月
LINK3resok resok; default: LINK3resfail resfail; };
LINK3resok resok。 デフォルト: LINK3resfail resfail。 };
DESCRIPTION
記述
Procedure LINK creates a hard link from file to link.name, in the directory, link.dir. file and link.dir must reside on the same file system and server. On entry, the arguments in LINK3args are:
エントリーでは、LINK3argsの議論は以下の通りです。手順LINKはファイルからlink.nameまでハードリンクを作成します、ディレクトリで、link.dir。ファイルとlink.dirは同じファイルシステムとサーバになければなりません。
file The file handle for the existing file system object.
既存ファイルシステム対象物のためにファイルハンドルをファイルしてください。
link The location of the link to be created:
リンクの位置をリンクして、作成されてください:
link.dir The file handle for the directory in which the link is to be created.
ファイルがリンクが作成されることになっているディレクトリのために処理するlink.dir。
link.name The name that is to be associated with the created link. Refer to General comments on filenames on page 17.
link.name、作成されたリンクに関連させていることになっている名前。 17ページのファイル名の一般コメントを参照してください。
On successful return, LINK3res.status is NFS3_OK and LINK3res.resok contains:
うまくいっているリターンのときに、LINK3res.statusは_OKにNFS3です、そして、LINK3res.resokは以下を含んでいます。
file_attributes The post-operation attributes of the file system object identified by file.
_ファイルシステム対象物のポスト操作属性がファイルで特定した属性をファイルしてください。
linkdir_wcc Weak cache consistency data for the directory, link.dir.
linkdir_wcc Weakはディレクトリ、link.dirのための一貫性データをキャッシュします。
Otherwise, LINK3res.status contains the error on failure and LINK3res.resfail contains the following:
さもなければ、LINK3res.statusは失敗に誤りを含んでいます、そして、LINK3res.resfailは以下を含んでいます:
file_attributes The post-operation attributes of the file system object identified by file.
_ファイルシステム対象物のポスト操作属性がファイルで特定した属性をファイルしてください。
linkdir_wcc Weak cache consistency data for the directory, link.dir.
linkdir_wcc Weakはディレクトリ、link.dirのための一貫性データをキャッシュします。
Callaghan, el al Informational [Page 75] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[75ページ]RFC1813NFSバージョン3プロトコル1995年6月
IMPLEMENTATION
実装
Changes to any property of the hard-linked files are reflected in all of the linked files. When a hard link is made to a file, the attributes for the file should have a value for nlink that is one greater than the value before the LINK.
一生懸命繋がっているファイルのどんな特性への変化も繋がっているファイルのすべてに反映されます。 ハードリンクをファイルにするとき、ファイルのための属性で、1であるnlinkのための値はLINKの前では、値よりすばらしくなるべきです。
The comments under RENAME regarding object and target residing on the same file system apply here as well. The comments regarding the target name applies as well. Refer to General comments on filenames on page 30.
また、同じファイルシステムの上のオブジェクトに関するRENAMEの下のコメントと目標の住んでいることはここに適用されます。 また、適用という目標名に関するコメント。 30ページのファイル名の一般コメントを参照してください。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_EXIST NFS3ERR_XDEV NFS3ERR_NOTDIR NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_MLINK NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_ACCES NFS3ERR_がNFS3ERR_XDEV NFS3ERR_NOTDIR NFS3ERR_INVAL NFS3ERR_NOSPC NFS3ERR_ROFS NFS3ERR_MLINK NFS3ERR_NAMETOOLONG NFS3ERR_DQUOT NFS3ERR_聞き古したである存在している、NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
SEE ALSO
参照
SYMLINK, RENAME and FSINFO.
SYMLINK、改名、そして、FSINFO。
3.3.16 Procedure 16: READDIR - Read From Directory
3.3.16 手順16: READDIR--ディレクトリから、読んでください。
SYNOPSIS
構文
READDIR3res NFSPROC3_READDIR(READDIR3args) = 16;
READDIR3res NFSPROC3_READDIR(READDIR3args)=16。
struct READDIR3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 count; };
struct READDIR3argsは_fh3 dir; cookie3クッキー; cookieverf3 cookieverf(count3カウント)をnfsします。
Callaghan, el al Informational [Page 76] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[76ページ]RFC1813NFSバージョン3プロトコル1995年6月
struct entry3 { fileid3 fileid; filename3 name; cookie3 cookie; entry3 *nextentry; };
struct entry3、fileid3 fileid filename3名; cookie3クッキー; (entry3*nextentry)。
struct dirlist3 { entry3 *entries; bool eof; };
struct dirlist3、entry3*エントリー(bool eof)。
struct READDIR3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlist3 reply; };
struct READDIR3resok、{__が結果と考えるオプアート_attr dirを掲示してください; cookieverf3 cookieverf(dirlist3回答)}。
struct READDIR3resfail { post_op_attr dir_attributes; };
struct READDIR3resfail、ポスト_オプアート_attr dir_属性;、。
union READDIR3res switch (nfsstat3 status) { case NFS3_OK: READDIR3resok resok; default: READDIR3resfail resfail; };
組合READDIR3resはNFS3_OK: ケースREADDIR3resok resokデフォルト: (READDIR3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure READDIR retrieves a variable number of entries, in sequence, from a directory and returns the name and file identifier for each, with information to allow the client to request additional directory entries in a subsequent READDIR request. On entry, the arguments in READDIR3args are:
手順READDIRは、ディレクトリから可変数のエントリーを連続して検索して、クライアントがその後のREADDIR要求における追加ディレクトリエントリーを要求するのを許容するために情報と共にそれぞれのための名前とファイル識別名を返します。 エントリーでは、READDIR3argsの議論は以下の通りです。
dir The file handle for the directory to be read.
ファイルがディレクトリが読まれるために処理するdir。
cookie This should be set to 0 in the first request to read the directory. On subsequent requests, it should be a cookie as returned by the server.
クッキーThisはディレクトリを読むという最初の要求における0に用意ができるべきです。 その後の要求のときに、それはサーバで返すようにクッキーであるべきです。
Callaghan, el al Informational [Page 77] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[77ページ]RFC1813NFSバージョン3プロトコル1995年6月
cookieverf This should be set to 0 in the first request to read the directory. On subsequent requests, it should be a cookieverf as returned by the server. The cookieverf must match that returned by the READDIR in which the cookie was acquired.
cookieverf Thisはディレクトリを読むという最初の要求における0に用意ができるべきです。 その後の要求のときに、それはサーバで返すようにcookieverfであるべきです。cookieverfはクッキーが入手されたREADDIRによって返されたそれに合わなければなりません。
count The maximum size of the READDIR3resok structure, in bytes. The size must include all XDR overhead. The server is free to return less than count bytes of data.
バイトで表現されるREADDIR3resok構造の最大サイズを数えてください。 サイズはすべてのXDRオーバーヘッドを含まなければなりません。 サーバはカウントバイトのデータより無料で戻ることができません。
On successful return, READDIR3res.status is NFS3_OK and READDIR3res.resok contains:
うまくいっているリターンのときに、READDIR3res.statusは_OKにNFS3です、そして、READDIR3res.resokは以下を含んでいます。
dir_attributes The attributes of the directory, dir.
dir_はディレクトリ、dirの属性を結果と考えます。
cookieverf The cookie verifier.
cookieverf、クッキー検証。
reply The directory list:
回答、ディレクトリリスト:
entries Zero or more directory (entry3) entries.
エントリーZeroか、より多くのディレクトリ(entry3)エントリー。
eof TRUE if the last member of reply.entries is the last entry in the directory or the list reply.entries is empty and the cookie corresponded to the end of the directory. If FALSE, there may be more entries to read.
リストreply.entriesは空です、そして、reply.entriesの最後のメンバーであるなら、eof TRUEはディレクトリで最後のエントリーであるかクッキーがディレクトリの端に対応しました。 FALSEであるなら、読むより多くのエントリーがあるかもしれません。
Otherwise, READDIR3res.status contains the error on failure and READDIR3res.resfail contains the following:
さもなければ、READDIR3res.statusは失敗に誤りを含んでいます、そして、READDIR3res.resfailは以下を含んでいます:
dir_attributes The attributes of the directory, dir.
dir_はディレクトリ、dirの属性を結果と考えます。
IMPLEMENTATION
実装
In the NFS version 2 protocol, each directory entry returned included a cookie identifying a point in the directory. By including this cookie in a subsequent READDIR, the client could resume the directory read at any point in the directory. One problem with this scheme was
NFSバージョン2プロトコルでは、返された各ディレクトリエントリはディレクトリのポイントを特定するクッキーを含んでいました。 その後のREADDIRにこのクッキーを含んでいることによって、クライアントはディレクトリで任意な点で読まれたディレクトリを再開できるでしょう。 この体系に関する1つの問題がそうでした。
Callaghan, el al Informational [Page 78] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[78ページ]RFC1813NFSバージョン3プロトコル1995年6月
that there was no easy way for a server to verify that a cookie was valid. If two READDIRs were separated by one or more operations that changed the directory in some way (for example, reordering or compressing it), it was possible that the second READDIR could miss entries, or process entries more than once. If the cookie was no longer usable, for example, pointing into the middle of a directory entry, the server would have to either round the cookie down to the cookie of the previous entry or round it up to the cookie of the next entry in the directory. Either way would possibly lead to incorrect results and the client would be unaware that any problem existed.
サーバがクッキーが有効であったことを確かめるどんな簡単な方法もありませんでした。 2READDIRsが何らかの方法(例えば、それを再命令するか、または圧縮する)でディレクトリを変えた1つ以上の操作で切り離されたなら、第2READDIRが一度よりエントリー、またはプロセスエントリーで外れることができたのは、可能でした。 例えば、クッキーがもうディレクトリエントリの中央に指しながら使用可能でないなら、サーバは、クッキーを前のエントリーのクッキーまで一周させなければならないか、またはそれをディレクトリにおける次のエントリーのクッキーまで一周させなければならないでしょうに。 どちらの道もことによると不正確な結果につながるでしょう、そして、クライアントはどんな問題も存在したのを気づかないでしょう。
In the NFS version 3 protocol, each READDIR request includes both a cookie and a cookie verifier. For the first call, both are set to 0. The response includes a new cookie verifier, with a cookie per entry. For subsequent READDIRs, the client must present both the cookie and the corresponding cookie verifier. If the server detects that the cookie is no longer valid, the server will reject the READDIR request with the status, NFS3ERR_BAD_COOKIE. The client should be careful to avoid holding directory entry cookies across operations that modify the directory contents, such as REMOVE and CREATE.
NFSバージョン3プロトコルでは、それぞれのREADDIR要求はクッキーとクッキー検証の両方を含んでいます。 準備ラッパにおいて、両方が0に設定されます。 応答は1エントリーあたり1個のクッキーがある新しいクッキー検証を含んでいます。 その後のREADDIRsに関しては、クライアントはクッキーと対応するクッキー検証の両方を寄贈しなければなりません。 サーバがそれを検出するならクッキーがもう有効でない、サーバは状態(NFS3ERR_BAD_COOKIE)でREADDIR要求を拒絶するでしょう。 クライアントはディレクトリコンテンツを変更する操作の向こう側にディレクトリエントリクッキーを持っているのを避けるのに慎重であるはずです、あれほど、削除、そして、CREATE。
One implementation of the cookie-verifier mechanism might be for the server to use the modification time of the directory. This might be overly restrictive, however. A better approach would be to record the time of the last directory modification that changed the directory organization in a way that would make it impossible to reliably interpret a cookie. Servers in which directory cookies are always valid are free to use zero as the verifier always.
クッキー検証メカニズムの1つの実装はサーバがディレクトリの変更時間を使用することであるかもしれません。 しかしながら、これはひどく制限しているかもしれません。より良いアプローチはクッキーを確かに解釈するのを不可能にする方法でディレクトリ組織を変えた最後のディレクトリ変更の時間を記録するだろうことです。 ディレクトリクッキーがいつも有効であるサーバは検証としていつも無料でゼロを使用できます。
The server may return fewer than count bytes of XDR-encoded entries. The count specified by the client in the request should be greater than or equal to FSINFO dtpref.
サーバはカウントバイトのXDRによってコード化されたエントリーほど戻らないかもしれません。 要求でクライアントによって指定されたカウントはそう以上であるべきです。FSINFO dtpref。
Since UNIX clients give a special meaning to the fileid value zero, UNIX clients should be careful to map zero fileid values to some other value and servers should try to avoid sending a zero fileid.
UNIXクライアントがfileid値ゼロに特別な意味を与えるので、UNIXクライアントはfileid値を全くある他の値に写像しないのに慎重であるはずです、そして、サーバはfileidを全くaに送るのを避けようとするべきではありません。
Callaghan, el al Informational [Page 79] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[79ページ]RFC1813NFSバージョン3プロトコル1995年6月
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_BAD_COOKIE NFS3ERR_TOOSMALL NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーの_のNOTDIR NFS3ERRの_の腐っている_NFS3ERR_ACCES NFS3ERRクッキーNFS3ERR_TOOSMALL NFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
READDIRPLUS and FSINFO.
READDIRPLUSとFSINFO。
3.3.17 Procedure 17: READDIRPLUS - Extended read from directory
3.3.17 手順17: READDIRPLUS--広がっているのはディレクトリから読みました。
SYNOPSIS
構文
READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17;
READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args)=17。
struct READDIRPLUS3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 dircount; count3 maxcount; };
struct READDIRPLUS3argsは_fh3 dir cookie3クッキー; (cookieverf3 cookieverf; count3 dircount;count3 maxcount)をnfsします。
struct entryplus3 { fileid3 fileid; filename3 name; cookie3 cookie; post_op_attr name_attributes; post_op_fh3 name_handle; entryplus3 *nextentry; };
struct entryplus3、fileid3 fileid; filename3名; cookie3クッキー; ポスト_オプアート_attr名前_属性;は_オプアート_fh3名前_ハンドルを掲示します; entryplus3*nextentry。
struct dirlistplus3 { entryplus3 *entries; bool eof; };
struct dirlistplus3、entryplus3*エントリー(bool eof)。
struct READDIRPLUS3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlistplus3 reply; };
struct READDIRPLUS3resok、{__が結果と考えるオプアート_attr dirを掲示してください; cookieverf3 cookieverf(dirlistplus3回答)}。
Callaghan, el al Informational [Page 80] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[80ページ]RFC1813NFSバージョン3プロトコル1995年6月
struct READDIRPLUS3resfail { post_op_attr dir_attributes; };
struct READDIRPLUS3resfail、ポスト_オプアート_attr dir_属性;、。
union READDIRPLUS3res switch (nfsstat3 status) { case NFS3_OK: READDIRPLUS3resok resok; default: READDIRPLUS3resfail resfail; };
組合READDIRPLUS3resはNFS3_OK: ケースREADDIRPLUS3resok resokデフォルト: (READDIRPLUS3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure READDIRPLUS retrieves a variable number of entries from a file system directory and returns complete information about each along with information to allow the client to request additional directory entries in a subsequent READDIRPLUS. READDIRPLUS differs from READDIR only in the amount of information returned for each entry. In READDIR, each entry returns the filename and the fileid. In READDIRPLUS, each entry returns the name, the fileid, attributes (including the fileid), and file handle. On entry, the arguments in READDIRPLUS3args are:
手順READDIRPLUSは、ファイルシステム・ディレクトリから可変数のエントリーを検索して、クライアントがその後のREADDIRPLUSで追加ディレクトリエントリーを要求するのを許容するために情報と共におよそそれぞれ完全な情報を返します。 READDIRPLUSは各エントリーに返された情報量だけにおいてREADDIRと異なっています。 READDIRでは、各エントリーはファイル名とfileidを返します。 READDIRPLUSでは、各エントリーは名前、fileid、属性(fileidを含んでいる)、およびファイルハンドルを返します。 エントリーでは、READDIRPLUS3argsの議論は以下の通りです。
dir The file handle for the directory to be read.
ファイルがディレクトリが読まれるために処理するdir。
cookie This should be set to 0 on the first request to read a directory. On subsequent requests, it should be a cookie as returned by the server.
クッキーThisはディレクトリを読むという最初の要求のときに0に用意ができるべきです。 その後の要求のときに、それはサーバで返すようにクッキーであるべきです。
cookieverf This should be set to 0 on the first request to read a directory. On subsequent requests, it should be a cookieverf as returned by the server. The cookieverf must match that returned by the READDIRPLUS call in which the cookie was acquired.
cookieverf Thisはディレクトリを読むという最初の要求のときに0に用意ができるべきです。 その後の要求のときに、それはサーバで返すようにcookieverfであるべきです。cookieverfはクッキーが入手されたREADDIRPLUS呼び出しで返されたそれに合わなければなりません。
dircount The maximum number of bytes of directory information returned. This number should not include the size of the attributes and file handle portions of the result.
ディレクトリ情報の最大のバイト数が返したdircount。 この数は属性のサイズと結果のファイルのハンドル部分を含むべきではありません。
maxcount The maximum size of the READDIRPLUS3resok structure, in bytes. The size must include all XDR overhead. The
バイトで表現されるREADDIRPLUS3resok構造の最大サイズのmaxcount。 サイズはすべてのXDRオーバーヘッドを含まなければなりません。 The
Callaghan, el al Informational [Page 81] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[81ページ]RFC1813NFSバージョン3プロトコル1995年6月
server is free to return fewer than maxcount bytes of data.
サーバはmaxcountバイトのデータより無料で戻ることができません。
On successful return, READDIRPLUS3res.status is NFS3_OK and READDIRPLUS3res.resok contains:
うまくいっているリターンのときに、READDIRPLUS3res.statusは_OKにNFS3です、そして、READDIRPLUS3res.resokは以下を含んでいます。
dir_attributes The attributes of the directory, dir.
dir_はディレクトリ、dirの属性を結果と考えます。
cookieverf The cookie verifier.
cookieverf、クッキー検証。
reply The directory list:
回答、ディレクトリリスト:
entries Zero or more directory (entryplus3) entries.
エントリーZeroか、より多くのディレクトリ(entryplus3)エントリー。
eof TRUE if the last member of reply.entries is the last entry in the directory or the list reply.entries is empty and the cookie corresponded to the end of the directory. If FALSE, there may be more entries to read.
リストreply.entriesは空です、そして、reply.entriesの最後のメンバーであるなら、eof TRUEはディレクトリで最後のエントリーであるかクッキーがディレクトリの端に対応しました。 FALSEであるなら、読むより多くのエントリーがあるかもしれません。
Otherwise, READDIRPLUS3res.status contains the error on failure and READDIRPLUS3res.resfail contains the following:
さもなければ、READDIRPLUS3res.statusは失敗に誤りを含んでいます、そして、READDIRPLUS3res.resfailは以下を含んでいます:
dir_attributes The attributes of the directory, dir.
dir_はディレクトリ、dirの属性を結果と考えます。
IMPLEMENTATION
実装
Issues that need to be understood for this procedure include increased cache flushing activity on the client (as new file handles are returned with names which are entered into caches) and over-the-wire overhead versus expected subsequent LOOKUP elimination. It is thought that this procedure may improve performance for directory browsing where attributes are always required as on the Apple Macintosh operating system and for MS-DOS.
そして、この手順のために理解される必要がある問題が活動をクライアントに洗い流す増強されたキャッシュを含んでいる、(キャッシュに入れられる名前と共に新しいファイルハンドルを返すとき)過剰、ワイヤ、予想されたその後のLOOKUPに対する頭上の除去。 この手順がディレクトリブラウジングのための属性がアップルマッキントッシュオペレーティングシステムとMS-DOSにいつも必要である性能を向上させるかもしれないと思われます。
The dircount and maxcount fields are included as an optimization. Consider a READDIRPLUS call on a UNIX operating system implementation for 1048 bytes; the reply does not contain many entries because of the overhead due to attributes and file handles. An alternative is to issue a READDIRPLUS call for 8192 bytes and then only use the
dircountとmaxcount分野は最適化として含まれています。 READDIRPLUSがUnixオペレーティングシステム実装を1048バイト訪問すると考えてください。 回答は属性とファイルハンドルによるオーバーヘッドのために多くのエントリーを含んでいません。 代替手段は8192バイトと次に、使用だけのためのREADDIRPLUS呼び出しを発行することです。
Callaghan, el al Informational [Page 82] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[82ページ]RFC1813NFSバージョン3プロトコル1995年6月
first 1048 bytes of directory information. However, the server doesn't know that all that is needed is 1048 bytes of directory information (as would be returned by READDIR). It sees the 8192 byte request and issues a VOP_READDIR for 8192 bytes. It then steps through all of those directory entries, obtaining attributes and file handles for each entry. When it encodes the result, the server only encodes until it gets 8192 bytes of results which include the attributes and file handles. Thus, it has done a larger VOP_READDIR and many more attribute fetches than it needed to. The ratio of the directory entry size to the size of the attributes plus the size of the file handle is usually at least 8 to 1. The server has done much more work than it needed to.
最初に、1048バイトのディレクトリ情報。 しかしながら、サーバは、必要であるのが1048バイトのディレクトリ情報だけであることを知りません(READDIRによって返されるように)。 それは、8192年のバイトの要求を見て、VOP_READDIRを8192バイト発行します。 そして、各エントリーのための属性とファイルハンドルを入手して、それはそれらのディレクトリエントリーのすべてを通して踏まれます。 結果をコード化するとき、それまでのエンコードだけが8192バイトの属性を含んでいる結果とファイルハンドルを手に入れるサーバです。 したがって、必要であったというよりもそれはさらに大きいVOP_READDIRとずっと多くの属性フェッチをしました。 通常、ディレクトリエントリサイズ対属性のサイズの比率とファイルハンドルのサイズは、少なくとも8〜1です。 必要であったというよりもサーバはずっと多くの仕事をしました。
The solution to this problem is for the client to provide two counts to the server. The first is the number of bytes of directory information that the client really wants, dircount. The second is the maximum number of bytes in the result, including the attributes and file handles, maxcount. Thus, the server will issue a VOP_READDIR for only the number of bytes that the client really wants to get, not an inflated number. This should help to reduce the size of VOP_READDIR requests on the server, thus reducing the amount of work done there, and to reduce the number of VOP_LOOKUP, VOP_GETATTR, and other calls done by the server to construct attributes and file handles.
この問題への解決はクライアントが2つのカウントをサーバに提供することです。1番目はクライアントが本当に欲しいディレクトリ情報のバイト数です、dircount。 2番目は属性とファイルハンドル、maxcountを含む結果において、バイトの最大数です。 したがって、サーバは充満している数ではなく、クライアントが本当に得たがっているバイト数だけのためにVOP_READDIRを発行するでしょう。 これは、サーバに関するVOP_READDIR要求のサイズを減少させて、その結果、そこで行われた仕事量を減少させて、サーバによって行われた、属性とファイルハンドルを構成したVOP_LOOKUP、VOP_GETATTR、および他の呼び出しの数を減少させるのを助けるべきです。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_ACCES NFS3ERR_NOTDIR NFS3ERR_BAD_COOKIE NFS3ERR_TOOSMALL NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULT
NFS3ERR_イーオーの_のNOTDIR NFS3ERRの_の腐っている_NFS3ERR_ACCES NFS3ERRクッキーNFS3ERR_TOOSMALL NFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_NOTSUPP NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
READDIR.
READDIR。
Callaghan, el al Informational [Page 83] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[83ページ]RFC1813NFSバージョン3プロトコル1995年6月
3.3.18 Procedure 18: FSSTAT - Get dynamic file system information
3.3.18 手順18: FSSTAT--ダイナミックなファイルシステム情報を得てください。
SYNOPSIS
構文
FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18;
FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args)=18。
struct FSSTAT3args { nfs_fh3 fsroot; };
struct FSSTAT3args、nfs_fh3 fsroot;、。
struct FSSTAT3resok { post_op_attr obj_attributes; size3 tbytes; size3 fbytes; size3 abytes; size3 tfiles; size3 ffiles; size3 afiles; uint32 invarsec; };
struct FSSTAT3resokは_オプアート_attr obj_属性; size3 tbytes; size3 fbytes; size3 abytes; size3 tfiles; size3 ffiles; size3 afiles(uint32 invarsec)を掲示します。
struct FSSTAT3resfail { post_op_attr obj_attributes; };
struct FSSTAT3resfail、ポスト_オプアート_attr obj_属性;、。
union FSSTAT3res switch (nfsstat3 status) { case NFS3_OK: FSSTAT3resok resok; default: FSSTAT3resfail resfail; };
組合FSSTAT3resはNFS3_OK: ケースFSSTAT3resok resokデフォルト: (FSSTAT3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure FSSTAT retrieves volatile file system state information. On entry, the arguments in FSSTAT3args are:
手順FSSTATは揮発性ファイルシステム州の情報を検索します。 エントリーでは、FSSTAT3argsの議論は以下の通りです。
fsroot A file handle identifying a object in the file system. This is normally a file handle for a mount point for a file system, as originally obtained from the MOUNT service on the server.
ファイルシステムでオブジェクトを特定するfsroot Aファイルハンドル。 通常、これはファイルシステムのためのマウントポイントファイルハンドルです、元々サーバにおける山のサービスから得るように。
On successful return, FSSTAT3res.status is NFS3_OK and FSSTAT3res.resok contains:
うまくいっているリターンのときに、FSSTAT3res.statusは_OKにNFS3です、そして、FSSTAT3res.resokは以下を含んでいます。
Callaghan, el al Informational [Page 84] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[84ページ]RFC1813NFSバージョン3プロトコル1995年6月
obj_attributes The attributes of the file system object specified in fsroot.
ファイルシステム対象物の属性がfsrootで指定したobj_属性。
tbytes The total size, in bytes, of the file system.
ファイルシステムのバイトで表現される総サイズのtbytes。
fbytes The amount of free space, in bytes, in the file system.
バイト、ファイルシステムの空きスペースの量のfbytes。
abytes The amount of free space, in bytes, available to the user identified by the authentication information in the RPC. (This reflects space that is reserved by the file system; it does not reflect any quota system implemented by the server.)
RPCの認証情報によって特定されたユーザにとって、バイトで利用可能な空きスペースの量のabytes。 (これはファイルシステムによって予約されるスペースを反映します; それはサーバによって導入されるどんな割当てシステムも反映しません。)
tfiles The total number of file slots in the file system. (On a UNIX server, this often corresponds to the number of inodes configured.)
ファイルの総数がファイルシステムで溝をつけるtfiles。 (Unixサーバーでは、これはしばしば構成されたiノードの数に対応しています。)
ffiles The number of free file slots in the file system.
無料のファイルの数がファイルシステムで溝をつけるffiles。
afiles The number of free file slots that are available to the user corresponding to the authentication information in the RPC. (This reflects slots that are reserved by the file system; it does not reflect any quota system implemented by the server.)
無料のファイルの数が溝をつけるRPCの認証情報に対応するユーザにとって、利用可能なafiles。 (これはファイルシステムによって予約されるスロットを反映します; それはサーバによって導入されるどんな割当てシステムも反映しません。)
invarsec A measure of file system volatility: this is the number of seconds for which the file system is not expected to change. For a volatile, frequently updated file system, this will be 0. For an immutable file system, such as a CD-ROM, this would be the largest unsigned integer. For file systems that are infrequently modified, for example, one containing local executable programs and on-line documentation, a value corresponding to a few hours or days might be used. The client may use this as a hint in tuning its cache management. Note however, this measure is assumed to be dynamic and may change at any time.
ファイルシステムの不安定さのinvarsec A基準: これはファイルシステムが変化しないと予想される秒数です。 揮発性の、そして、頻繁にアップデートされたファイルシステムのために、これは0になるでしょう。 CD-ROMなどの不変のファイルシステムのために、これは最も大きい符号のない整数でしょう。 まれに変更されるファイルシステムのために、例えば、ローカルの実行可能プログラムとオンラインドキュメンテーションを含む1つ、数時間に対応する値または何日も使用されるかもしれません。 クライアントはヒントとしてキャッシュ管理を調整する際にこれを使用するかもしれません。 しかしながら、この測定がダイナミックであると思われて、いつでも変化するかもしれないことに注意してください。
Callaghan, el al Informational [Page 85] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[85ページ]RFC1813NFSバージョン3プロトコル1995年6月
Otherwise, FSSTAT3res.status contains the error on failure and FSSTAT3res.resfail contains the following:
さもなければ、FSSTAT3res.statusは失敗に誤りを含んでいます、そして、FSSTAT3res.resfailは以下を含んでいます:
obj_attributes The attributes of the file system object specified in fsroot.
ファイルシステム対象物の属性がfsrootで指定したobj_属性。
IMPLEMENTATION
実装
Not all implementations can support the entire list of attributes. It is expected that servers will make a best effort at supporting all the attributes.
すべての実装が属性の全体のリストをサポートすることができるというわけではありません。 サーバでaがすべての属性をサポートするところでベストエフォート型になると予想されます。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
FSINFO.
FSINFO。
3.3.19 Procedure 19: FSINFO - Get static file system Information
3.3.19 手順19: FSINFO--静的なファイルシステム情報を得てください。
SYNOPSIS
構文
FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19;
FSINFO3res NFSPROC3_FSINFO(FSINFO3args)=19。
const FSF3_LINK = 0x0001; const FSF3_SYMLINK = 0x0002; const FSF3_HOMOGENEOUS = 0x0008; const FSF3_CANSETTIME = 0x0010;
const FSF3_LINK=0x0001。 const FSF3_SYMLINK=0x0002。 const FSF3_HOMOGENEOUS=0x0008。 const FSF3_CANSETTIME=0x0010。
struct FSINFOargs { nfs_fh3 fsroot; };
struct FSINFOargs、nfs_fh3 fsroot;、。
struct FSINFO3resok { post_op_attr obj_attributes; uint32 rtmax; uint32 rtpref; uint32 rtmult; uint32 wtmax; uint32 wtpref; uint32 wtmult; uint32 dtpref;
struct FSINFO3resok、_オプアート_attr obj_属性を掲示してください; uint32 rtmax; uint32 rtpref; uint32 rtmult; uint32 wtmax; uint32 wtpref; uint32 wtmult; uint32 dtpref
Callaghan, el al Informational [Page 86] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[86ページ]RFC1813NFSバージョン3プロトコル1995年6月
size3 maxfilesize; nfstime3 time_delta; uint32 properties; };
size3 maxfilesize。 nfstime3時間_デルタ。 uint32の特性。 };
struct FSINFO3resfail { post_op_attr obj_attributes; };
struct FSINFO3resfail、ポスト_オプアート_attr obj_属性;、。
union FSINFO3res switch (nfsstat3 status) { case NFS3_OK: FSINFO3resok resok; default: FSINFO3resfail resfail; };
組合FSINFO3resはNFS3_OK: ケースFSINFO3resok resokデフォルト: (FSINFO3resfail resfail)を切り換えます(nfsstat3状態)。
DESCRIPTION
記述
Procedure FSINFO retrieves nonvolatile file system state information and general information about the NFS version 3 protocol server implementation. On entry, the arguments in FSINFO3args are:
手順FSINFOはNFSバージョン3プロトコルサーバ実装に関して不揮発性のファイルシステム州の情報と一般情報を検索します。 エントリーでは、FSINFO3argsの議論は以下の通りです。
fsroot A file handle identifying a file object. Normal usage is to provide a file handle for a mount point for a file system, as originally obtained from the MOUNT service on the server.
ファイルオブジェクトを特定するfsroot Aファイルハンドル。 正常な用法はファイルシステムのためにファイルハンドルをマウントポイントに提供することです、元々サーバにおける山のサービスから得るように。
On successful return, FSINFO3res.status is NFS3_OK and FSINFO3res.resok contains:
うまくいっているリターンのときに、FSINFO3res.statusは_OKにNFS3です、そして、FSINFO3res.resokは以下を含んでいます。
obj_attributes The attributes of the file system object specified in fsroot.
ファイルシステム対象物の属性がfsrootで指定したobj_属性。
rtmax The maximum size in bytes of a READ request supported by the server. Any READ with a number greater than rtmax will result in a short read of rtmax bytes or less.
READ要求のバイトで表現される最大のサイズのrtmaxはサーバをサポートしました。数がrtmaxより大きいどんなREADもrtmaxバイトか以下の短い読書をもたらすでしょう。
rtpref The preferred size of a READ request. This should be the same as rtmax unless there is a clear benefit in performance or efficiency.
READ要求の優先サイズのrtpref。 性能か効率に明確な利益がない場合、これはrtmaxと同じであるべきです。
Callaghan, el al Informational [Page 87] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[87ページ]RFC1813NFSバージョン3プロトコル1995年6月
rtmult The suggested multiple for the size of a READ request.
READのサイズのための提案された倍数が要求するrtmult。
wtmax The maximum size of a WRITE request supported by the server. In general, the client is limited by wtmax since there is no guarantee that a server can handle a larger write. Any WRITE with a count greater than wtmax will result in a short write of at most wtmax bytes.
WRITE要求の最大サイズのwtmaxはサーバをサポートしました。一般に、制限された以来、wtmaxにいるより大きい状態で扱うことができるいいえがそのaサーバにaを保証するクライアントは書きます。 カウントがwtmaxがショートをもたらすより大きいどんなWRITEもwtmaxバイトを高々主題にして書きます。
wtpref The preferred size of a WRITE request. This should be the same as wtmax unless there is a clear benefit in performance or efficiency.
WRITE要求の優先サイズのwtpref。 性能か効率に明確な利益がない場合、これはwtmaxと同じであるべきです。
wtmult The suggested multiple for the size of a WRITE request.
WRITEのサイズのための提案された倍数が要求するwtmult。
dtpref The preferred size of a READDIR request.
READDIR要求の優先サイズのdtpref。
maxfilesize The maximum size of a file on the file system.
maxfilesizeする、ファイルシステムのファイルの最大サイズ。
time_delta The server time granularity. When setting a file time using SETATTR, the server guarantees only to preserve times to this accuracy. If this is {0, 1}, the server can support nanosecond times, {0, 1000000} denotes millisecond precision, and {1, 0} indicates that times are accurate only to the nearest second.
_デルタを調節してください。サーバ時間粒状。 SETATTRを使用することでファイル時間を設定するとき、サーバは、単にこの精度として回を保存するのを保証します。 これが0、1であるなら、サーバはナノ秒の回をサポートすることができます、そして、0、1000000はミリセカンド精度を指示します、そして、1、0は時勢が最も近い2番目だけに正確であることを示します。
properties A bit mask of file system properties. The following values are defined:
特性のAはファイル系特性のマスクに噛み付きました。 以下の値は定義されます:
FSF_LINK If this bit is 1 (TRUE), the file system supports hard links.
これが噛み付いたFSF_LINK Ifは1(TRUE)、ファイルシステム支援ハードリンクです。
FSF_SYMLINK If this bit is 1 (TRUE), the file system supports symbolic links.
これが噛み付いたFSF_SYMLINK Ifは1(TRUE)、ファイルシステム支援シンボリックリンクです。
FSF_HOMOGENEOUS If this bit is 1 (TRUE), the information returned by PATHCONF is identical for every file and directory
これが噛み付いたFSF_HOMOGENEOUS Ifが1歳(TRUE)である、あらゆるファイルとディレクトリに、PATHCONFによって返された情報は同じです。
Callaghan, el al Informational [Page 88] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[88ページ]RFC1813NFSバージョン3プロトコル1995年6月
in the file system. If it is 0 (FALSE), the client should retrieve PATHCONF information for each file and directory as required.
ファイルシステムで。 それが0(FALSE)であるなら、クライアントは必要に応じて各ファイルとディレクトリのためのPATHCONF情報を検索するべきです。
FSF_CANSETTIME If this bit is 1 (TRUE), the server will set the times for a file via SETATTR if requested (to the accuracy indicated by time_delta). If it is 0 (FALSE), the server cannot set times as requested.
これが噛み付いたFSF_CANSETTIME Ifが1歳(TRUE)である、要求されるなら(時間_デルタで示された精度に)、サーバはSETATTRを通してファイルに回を設定するでしょう。 それが0(FALSE)であるなら、サーバは要求された通り回を設定できません。
Otherwise, FSINFO3res.status contains the error on failure and FSINFO3res.resfail contains the following:
さもなければ、FSINFO3res.statusは失敗に誤りを含んでいます、そして、FSINFO3res.resfailは以下を含んでいます:
attributes The attributes of the file system object specified in fsroot.
ファイルシステム対象物の属性がfsrootで指定した属性。
IMPLEMENTATION
実装
Not all implementations can support the entire list of attributes. It is expected that a server will make a best effort at supporting all the attributes.
すべての実装が属性の全体のリストをサポートすることができるというわけではありません。 サーバでaがすべての属性をサポートするところでベストエフォート型になると予想されます。
The file handle provided is expected to be the file handle of the file system root, as returned to the MOUNT operation. Since mounts may occur anywhere within an exported tree, the server should expect FSINFO requests specifying file handles within the exported file system. A server may export different types of file systems with different attributes returned to the FSINFO call. The client should retrieve FSINFO information for each mount completed. Though a server may return different FSINFO information for different files within a file system, there is no requirement that a client obtain FSINFO information for other than the file handle returned at mount.
提供されたファイルハンドルはファイルシステム根のファイルハンドルであると予想されます、山の操作に返すように。 マウントがエクスポートしている木の中でどこでも現れるかもしれないので、サーバはエクスポートしているファイルシステムの中でファイルハンドルを指定するFSINFO要求を予想するべきです。 サーバは異なった属性がFSINFO呼び出しに返されている異なったタイプのファイルシステムをエクスポートするかもしれません。 クライアントは完成した各マウントのためのFSINFO情報を検索するべきです。 サーバはファイルシステムの中の異なったファイルのための異なったFSINFO情報を返すかもしれませんが、マウントで返されたファイルハンドル以外に、クライアントがFSINFO情報を得る要件が全くありません。
The maxfilesize field determines whether a server's particular file system uses 32 bit sizes and offsets or 64 bit file sizes and offsets. This may affect a client's processing.
maxfilesizeする、分野は、サーバの特定のファイルシステムが32ビットのサイズとオフセットか64ビットのファイルサイズとオフセットを使用するかどうか決定します。 これはクライアントの処理に影響するかもしれません。
The preferred sizes for requests are nominally tied to an exported file system mounted by a client. A surmountable issue arises in that the transfer size for an NFS version 3 protocol request is not only dependent on characteristics of the file system but also on characteristics of the network interface, particularly the
要求のための優先サイズは名目上はクライアントによって取り付けられたエクスポートしているファイルシステムに結ばれます。 NFSバージョン3プロトコル要求のための転送サイズがファイルシステムの特性に依存しているだけではないので、克服できる問題は起こりますが、ネットワークの特性では、特にまた連結してください。
Callaghan, el al Informational [Page 89] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[89ページ]RFC1813NFSバージョン3プロトコル1995年6月
maximum transfer unit (MTU). A server implementation can advertise different transfer sizes (for the fields, rtmax, rtpref, wtmax, wtpref, and dtpref) depending on the interface on which the FSINFO request is received. This is an implementation issue.
最大の移動単位数(MTU)。 FSINFO要求が受信されているインタフェースによって、サーバ実装は異なった転送サイズ(分野、rtmax、rtpref、wtmax、wtpref、およびdtprefのための)の広告を出すことができます。 これは導入問題です。
ERRORS
誤り
NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
_の聞き古した_NFS3ERR NFS3ERR_BADHANDLE NFS3ERR SERVERFAULT
SEE ALSO
参照
READLINK, WRITE, READDIR, FSSTAT and PATHCONF.
READLINK、READDIR、FSSTAT、およびPATHCONF、書いてください。
3.3.20 Procedure 20: PATHCONF - Retrieve POSIX information
3.3.20 手順20: PATHCONF--POSIX情報を検索してください。
SYNOPSIS
構文
PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20;
PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args)=20。
struct PATHCONF3args { nfs_fh3 object; };
struct PATHCONF3args、nfs_fh3オブジェクト;、。
struct PATHCONF3resok { post_op_attr obj_attributes; uint32 linkmax; uint32 name_max; bool no_trunc; bool chown_restricted; bool case_insensitive; bool case_preserving; };
struct PATHCONF3resokは_オプアート_attr obj_属性; uint32 linkmax; uint32名前_最大; boolいいえ_trunc(bool chownの_の制限される; boolケース_神経の鈍い;のboolケース_保存)を掲示します。
struct PATHCONF3resfail { post_op_attr obj_attributes; };
struct PATHCONF3resfail、ポスト_オプアート_attr obj_属性;、。
union PATHCONF3res switch (nfsstat3 status) { case NFS3_OK: PATHCONF3resok resok; default: PATHCONF3resfail resfail; };
組合PATHCONF3resはNFS3_OK: ケースPATHCONF3resok resokデフォルト: (PATHCONF3resfail resfail)を切り換えます(nfsstat3状態)。
Callaghan, el al Informational [Page 90] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[90ページ]RFC1813NFSバージョン3プロトコル1995年6月
DESCRIPTION
記述
Procedure PATHCONF retrieves the pathconf information for a file or directory. If the FSF_HOMOGENEOUS bit is set in FSFINFO3resok.properties, the pathconf information will be the same for all files and directories in the exported file system in which this file or directory resides. On entry, the arguments in PATHCONF3args are:
手順PATHCONFはファイルかディレクトリのためのpathconf情報を検索します。 FSF_HOMOGENEOUSビットがFSFINFO3resok.propertiesに設定されると、pathconf情報はこのファイルかディレクトリがあるエクスポートしているファイルシステムですべてのファイルとディレクトリに同じになるでしょう。 エントリーでは、PATHCONF3argsの議論は以下の通りです。
object The file handle for the file system object.
ファイルがファイルシステム対象物のために処理するオブジェクト。
On successful return, PATHCONF3res.status is NFS3_OK and PATHCONF3res.resok contains:
うまくいっているリターンのときに、PATHCONF3res.statusは_OKにNFS3です、そして、PATHCONF3res.resokは以下を含んでいます。
obj_attributes The attributes of the object specified by object.
オブジェクトの属性がオブジェクトで指定したobj_属性。
linkmax The maximum number of hard links to an object.
最大が付番するオブジェクトへのハードリンクのlinkmax。
name_max The maximum length of a component of a filename.
ファイル名の成分の最大の長さと_最大を命名してください。
no_trunc If TRUE, the server will reject any request that includes a name longer than name_max with the error, NFS3ERR_NAMETOOLONG. If FALSE, any length name over name_max bytes will be silently truncated to name_max bytes.
いいえ_trunc If TRUE、サーバは誤り、NFS3ERR_NAMETOOLONGと共に名前_最大より長い間名前を含んでいるどんな要求も拒絶するでしょう。 FALSEであるなら、名前_最大バイトの上どんな長さの名も、_最大バイトを命名するために静かに先端を切られるでしょう。
chown_restricted If TRUE, the server will reject any request to change either the owner or the group associated with a file if the caller is not the privileged user. (Uid 0.)
chown_はIf TRUEを制限して、サーバは訪問者が特権ユーザでないならファイルに関連している所有者かグループのどちらかを変えるというどんな要求も拒絶するでしょう。 (Uid0。)
case_insensitive If TRUE, the server file system does not distinguish case when interpreting filenames.
_神経の鈍いIf TRUEをケースに入れてください、そして、ファイル名を解釈するとき、サーバファイルシステムはケースを区別しません。
case_preserving If TRUE, the server file system will preserve the case of a name during a CREATE, MKDIR, MKNOD, SYMLINK, RENAME, or LINK operation.
ケース_がIf TRUEを保存すると、サーバファイルシステムはCREATE、MKDIR、MKNOD、SYMLINK、RENAME、またはLINK操作の間、名前に関するケースを保存するでしょう。
Otherwise, PATHCONF3res.status contains the error on failure and PATHCONF3res.resfail contains the following:
さもなければ、PATHCONF3res.statusは失敗に誤りを含んでいます、そして、PATHCONF3res.resfailは以下を含んでいます:
Callaghan, el al Informational [Page 91] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[91ページ]RFC1813NFSバージョン3プロトコル1995年6月
obj_attributes The attributes of the object specified by object.
オブジェクトの属性がオブジェクトで指定したobj_属性。
IMPLEMENTATION
実装
In some implementations of the NFS version 2 protocol, pathconf information was obtained at mount time through the MOUNT protocol. The proper place to obtain it, is as here, in the NFS version 3 protocol itself.
NFSバージョン2プロトコルのいくつかの実装では、マウント時に山のプロトコルを通してpathconf情報を得ました。 バージョン3がNFSでここでそれ自体について議定書の中で述べるように、適切は、それを得るために入賞して、あります。
ERRORS
誤り
NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
_の聞き古した_NFS3ERR NFS3ERR_BADHANDLE NFS3ERR SERVERFAULT
SEE ALSO
参照
LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD, RENAME, LINK and FSINFO.
ルックアップ、作成、MKDIR(SYMLINK、MKNOD)が改名する、リンクとFSINFO。
3.3.21 Procedure 21: COMMIT - Commit cached data on a server to stable storage
3.3.21 手順21: COMMIT--サーバに関するキャッシュされたデータを安定貯蔵に遂行してください。
SYNOPSIS
構文
COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21;
COMMIT3res NFSPROC3_は(COMMIT3args)=21を遂行します。
struct COMMIT3args { nfs_fh3 file; offset3 offset; count3 count; };
nfs_fh3がファイルする; offset3オフセット; count3カウント;struct COMMIT3args。
struct COMMIT3resok { wcc_data file_wcc; writeverf3 verf; };
struct COMMIT3resokは_データファイル_wcc(writeverf3 verf)をwccします。
struct COMMIT3resfail { wcc_data file_wcc; };
struct COMMIT3resfail、wcc_データファイル_wcc;、。
union COMMIT3res switch (nfsstat3 status) { case NFS3_OK: COMMIT3resok resok; default: COMMIT3resfail resfail; };
組合COMMIT3resはNFS3_OK: ケースCOMMIT3resok resokデフォルト: (COMMIT3resfail resfail)を切り換えます(nfsstat3状態)。
Callaghan, el al Informational [Page 92] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[92ページ]RFC1813NFSバージョン3プロトコル1995年6月
DESCRIPTION
記述
Procedure COMMIT forces or flushes data to stable storage that was previously written with a WRITE procedure call with the stable field set to UNSTABLE. On entry, the arguments in COMMIT3args are:
手順COMMITは以前に安定した分野セットによるWRITE手順呼び出しでUNSTABLEに書かれた安定貯蔵に、データを強制するか、または洗い流します。 エントリーでは、COMMIT3argsの議論は以下の通りです。
file The file handle for the file to which data is to be flushed (committed). This must identify a file system object of type, NF3REG.
紅潮しているデータがことであるファイル(公約する)のためにファイルハンドルをファイルしてください。 これはタイプ、NF3REGのファイルシステム対象物を特定しなければなりません。
offset The position within the file at which the flush is to begin. An offset of 0 means to flush data starting at the beginning of the file.
水洗が始まることになっているファイルの中で位置を相殺してください。 0のオフセットは、ファイルの始めに始まるデータを洗い流すことを意味します。
count The number of bytes of data to flush. If count is 0, a flush from offset to the end of file is done.
洗い流すためにデータのバイト数を数えてください。 カウントが0であるなら、オフセットからファイルの終りまで水洗します。
On successful return, COMMIT3res.status is NFS3_OK and COMMIT3res.resok contains:
うまくいっているリターンのときに、COMMIT3res.statusは_OKにNFS3です、そして、COMMIT3res.resokは以下を含んでいます。
file_wcc Weak cache consistency data for the file. For a client that requires only the post-operation file attributes, these can be found in file_wcc.after.
_ファイルのためのwcc Weakキャッシュ一貫性データをファイルしてください。 ポスト操作ファイル属性だけを必要とするクライアントに関しては、ファイル_wcc.afterでこれらを見つけることができます。
verf This is a cookie that the client can use to determine whether the server has rebooted between a call to WRITE and a subsequent call to COMMIT. This cookie must be consistent during a single boot session and must be unique between instances of the NFS version 3 protocol server where uncommitted data may be lost.
verf ThisはクライアントがサーバがWRITEへの呼び出しとCOMMITへのその後の呼び出しの間でリブートされたかどうか決定するのに使用できるクッキーです。 このクッキーは、ただ一つのブーツセッションの間、一貫していなければならなくて、未遂のデータが失われるかもしれないNFSバージョン3プロトコルサーバのインスタンスの間でユニークであるに違いありません。
Otherwise, COMMIT3res.status contains the error on failure and COMMIT3res.resfail contains the following:
さもなければ、COMMIT3res.statusは失敗に誤りを含んでいます、そして、COMMIT3res.resfailは以下を含んでいます:
file_wcc Weak cache consistency data for the file. For a client that requires only the post-write file attributes, these can be found in file_wcc.after. Even though the COMMIT failed, full wcc_data is returned to allow the client to determine whether the file changed on the server between calls to WRITE and COMMIT.
_ファイルのためのwcc Weakキャッシュ一貫性データをファイルしてください。 ポストで書いているファイル属性だけを必要とするクライアントに関しては、ファイル_wcc.afterでこれらを見つけることができます。 COMMITは失敗しましたが、クライアントが、ファイルが呼び出しの間でサーバで変化したかどうかとWRITEとCOMMITに決心しているのを許容するために完全なwcc_データを返します。
Callaghan, el al Informational [Page 93] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[93ページ]RFC1813NFSバージョン3プロトコル1995年6月
IMPLEMENTATION
実装
Procedure COMMIT is similar in operation and semantics to the POSIX fsync(2) system call that synchronizes a file's state with the disk, that is it flushes the file's data and metadata to disk. COMMIT performs the same operation for a client, flushing any unsynchronized data and metadata on the server to the server's disk for the specified file. Like fsync(2), it may be that there is some modified data or no modified data to synchronize. The data may have been synchronized by the server's normal periodic buffer synchronization activity. COMMIT will always return NFS3_OK, unless there has been an unexpected error.
手順COMMITが操作と意味論においてファイルの状態をディスクと同期させるPOSIX fsync(2)システムコールと同様である、すなわち、それはファイルのデータとメタデータをディスクに洗い流します。 COMMITはクライアントのために同じ操作を実行します、指定されたファイルのためにサーバに関するどんな非連動しているデータとメタデータもサーバのディスクに洗い流して。 fsync(2)のように、いくつかの変更されたデータを同期させますが、同期させないどんな変更されたデータも多分あります。 データはサーバの通常の周期的なバッファ同期活動で同期したかもしれません。 予期せぬエラーがなかった場合、COMMITはいつもNFS3_OKを返すでしょう。
COMMIT differs from fsync(2) in that it is possible for the client to flush a range of the file (most likely triggered by a buffer-reclamation scheme on the client before file has been completely written).
COMMITはクライアントがさまざまなファイル(ファイルが完全に書かれている前にたぶんクライアントに関するバッファ改善体系によって引き起こされる)を洗い流すのが、可能であるという点においてfsync(2)と異なっています。
The server implementation of COMMIT is reasonably simple. If the server receives a full file COMMIT request, that is starting at offset 0 and count 0, it should do the equivalent of fsync()'ing the file. Otherwise, it should arrange to have the cached data in the range specified by offset and count to be flushed to stable storage. In both cases, any metadata associated with the file must be flushed to stable storage before returning. It is not an error for there to be nothing to flush on the server. This means that the data and metadata that needed to be flushed have already been flushed or lost during the last server failure.
COMMITのサーバ実装は合理的に簡単です。 サーバがCOMMITが要求する完全なファイルを受け取るなら、オフセットで始まるのが、0であり、0を数えてください、fsync()の同等物をするべきであるのが'ファイルをingします'。 さもなければ、それはオフセットで範囲のキャッシュされたデータを指定させて、安定貯蔵に洗い流されるために数えるように手配するべきです。 どちらの場合も、戻る前に、ファイルに関連しているどんなメタデータも安定貯蔵に洗い流さなければなりません。 . これが、サーバで洗い流す無さであり、ならないようにそこで洗い流される必要があったデータとメタデータがそうしたことを意味するので、誤りが既に紅潮しているか、または最後のサーバ失敗の間、損をしたということではありません。
The client implementation of COMMIT is a little more complex. There are two reasons for wanting to commit a client buffer to stable storage. The first is that the client wants to reuse a buffer. In this case, the offset and count of the buffer are sent to the server in the COMMIT request. The server then flushes any cached data based on the offset and count, and flushes any metadata associated with the file. It then returns the status of the flush and the verf verifier. The other reason for the client to generate a COMMIT is for a full file flush, such as may be done at close. In this case, the client would gather all of the buffers for this file that contain uncommitted data, do the COMMIT operation with an offset of 0 and count of 0, and then free all of those buffers. Any other dirty buffers would be sent to the server in the
COMMITのクライアント実装はもう少し複雑です。 クライアントバッファを安定貯蔵に遂行したい2つの理由があります。 1番目はクライアントがバッファを再利用したがっているということです。 この場合、バッファのオフセットとカウントをCOMMIT要求におけるサーバに送ります。 サーバは、次に、オフセットとカウントに基づくどんなキャッシュされたデータも洗い流して、ファイルに関連しているどんなメタデータも洗い流します。 そして、それは水洗とverf検証の状態を返します。 クライアントがCOMMITを生成するもう片方の理由は閉鎖でするかもしれないような完全なファイル水洗のためのものです。 この場合、クライアントは、このファイルのための未遂のデータを含むバッファのすべてを集めて、0のオフセットと0のカウントでCOMMIT操作をして、次に、それらのバッファのすべてを解放するでしょう。 中でいかなる他の汚いバッファもサーバに送るでしょう。
Callaghan, el al Informational [Page 94] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[94ページ]RFC1813NFSバージョン3プロトコル1995年6月
normal fashion.
正常なファッション。
This implementation will require some modifications to the buffer cache on the client. After a buffer is written with stable UNSTABLE, it must be considered as dirty by the client system until it is either flushed via a COMMIT operation or written via a WRITE operation with stable set to FILE_SYNC or DATA_SYNC. This is done to prevent the buffer from being freed and reused before the data can be flushed to stable storage on the server.
この実装はクライアントの上のバッファキャッシュへのいくつかの変更を必要とするでしょう。 バッファが安定したUNSTABLEと共に書かれた後に、それがFILE_SYNCかDATA_SYNCにCOMMIT操作で洗い流されるか、または安定集合があるWRITE操作で書かれるまで、汚いとクライアントシステムでそれをみなさなければなりません。 サーバの安定貯蔵にデータを洗い流すことができる前に、バッファが解放されて、再利用されるのを防ぐためにこれをします。
When a response comes back from either a WRITE or a COMMIT operation that contains an unexpected verf, the client will need to retransmit all of the buffers containing uncommitted cached data to the server. How this is to be done is up to the implementor. If there is only one buffer of interest, then it should probably be sent back over in a WRITE request with the appropriate stable flag. If there more than one, it might be worthwhile retransmitting all of the buffers in WRITE requests with stable set to UNSTABLE and then retransmitting the COMMIT operation to flush all of the data on the server to stable storage. The timing of these retransmissions is left to the implementor.
応答が予期していなかったverfを含むWRITEかCOMMIT操作のどちらかから戻るとき、クライアントは、未遂のキャッシュされたデータをサーバに含むバッファのすべてを再送する必要があるでしょう。これがどう完了していることになっているかは、作成者次第です。 興味がある1つのバッファしかなければ、それはたぶんWRITE要求を適切な安定した旗で移動して戻されるべきです。 そこでは、WRITE要求におけるバッファのすべてを再送するのが安定集合のためにUNSTABLEに1よりさらに、価値があるかもしれないか、そして、次に、データのすべてを安定貯蔵へのサーバに洗い流すためにCOMMIT操作を再送すること。 これらの「再-トランスミッション」のタイミングは作成者に任せます。
The above description applies to page-cache-based systems as well as buffer-cache-based systems. In those systems, the virtual memory system will need to be modified instead of the buffer cache.
上の記述はバッファキャッシュベースのシステムと同様にページキャッシュベースのシステムに適用されます。それらのシステムでは、仮想記憶システムは、バッファキャッシュの代わりに変更される必要があるでしょう。
See additional comments on WRITE on page 49.
49ページのWRITEの追加コメントを見てください。
ERRORS
誤り
NFS3ERR_IO NFS3ERR_STALE NFS3ERR_BADHANDLE NFS3ERR_SERVERFAULT
NFS3ERR_イーオーNFS3ERR_はNFS3ERR_BADHANDLE NFS3ERR_SERVERFAULTを聞き古したです。
SEE ALSO
参照
WRITE.
書いてください。
Callaghan, el al Informational [Page 95] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[95ページ]RFC1813NFSバージョン3プロトコル1995年6月
4. Implementation issues
4. 導入問題
The NFS version 3 protocol was designed to allow different operating systems to share files. However, since it was designed in a UNIX environment, many operations have semantics similar to the operations of the UNIX file system. This section discusses some of the general implementation-specific details and semantic issues. Procedure descriptions have implementation comments specific to that procedure.
NFSバージョン3プロトコルは、異なったオペレーティングシステムがファイルを共有するのを許容するように設計されました。 しかしながら、それがunix環境で設計されたので、多くの操作には、UNIXファイルシステムの操作と同様の意味論があります。 このセクションは一般的な実装時固有事項と意味問題のいくつかについて論じます。 手順記述で、実装コメントはその手順に特定になります。
A number of papers have been written describing issues encountered when constructing an NFS version 2 protocol implementation. The best overview paper is still [Sandberg]. [Israel], [Macklem], and [Pawlowski] describe other implementations. [X/OpenNFS] provides a complete description of the NFS version 2 protocol and supporting protocols, as well as a discussion on implementation issues and procedure and error semantics. Many of the issues encountered when constructing an NFS version 2 protocol implementation will be encountered when constructing an NFS version 3 protocol implementation.
多くの論文が、NFSバージョン2プロトコル実装を構成するとき遭遇する問題について説明しながら、書かれています。 それでも、最も良い概要紙は[サンドベルイ]です。 [イスラエル]、[Macklem]、および[ポロウスキー]は他の実装について説明します。 [X/OpenNFS]は導入問題、手順、および誤り意味論でNFSバージョン2プロトコルとプロトコル、および議論をサポートする完全な記述を提供します。 NFSバージョン3プロトコル実装を構成するとき、NFSバージョン2プロトコル実装を構成するとき遭遇する問題の多くが遭遇するでしょう。
4.1 Multiple version support
4.1 複数のバージョンサポート
The RPC protocol provides explicit support for versioning of a service. Client and server implementations of NFS version 3 protocol should support both versions, for full backwards compatibility, when possible. Default behavior of the RPC binding protocol is the client and server bind using the highest version number they both support. Client or server implementations that cannot easily support both versions (for example, because of memory restrictions) will have to choose what version to support. The NFS version 2 protocol would be a safe choice since fully capable clients and servers should support both versions. However, this choice would need to be made keeping all requirements in mind.
RPCプロトコルはサービスをversioningする明白なサポートを提供します。 可能であるときに、NFSバージョン3プロトコルのクライアントとサーバ実装は、いっぱいに後方に両方のバージョンが互換性であるとサポートするべきです。 RPCの拘束力があるプロトコルのデフォルトの振舞いは、クライアントと使用する中でそれらの両方がサポートする中でバージョン番号最も大きいサーバひもです。 容易に、両方のバージョン(例えばメモリ制限のために)をサポートすることができないクライアントかサーバ実装が、どんなバージョンをサポートしたらよいかを選ばなければならないでしょう。 完全に有能なクライアントとサーバが両方のバージョンをサポートするべきであるので、NFSバージョン2プロトコルは安全な選択でしょう。 しかしながら、この選択は、すべての要件を覚えておきながら作られている必要があるでしょう。
4.2 Server/client relationship
4.2 サーバ/クライアント関係
The NFS version 3 protocol is designed to allow servers to be as simple and general as possible. Sometimes the simplicity of the server can be a problem, if the client implements complicated file system semantics.
NFSバージョン3プロトコルは、サーバができるだけ簡単であって、一般的であることを許容するように設計されています。 クライアントが複雑なファイルシステム意味論を実装するなら、時々、サーバの簡単さは問題であるかもしれません。
For example, some operating systems allow removal of open files. A process can open a file and, while it is open, remove it from the directory. The file can be read and
例えば、いくつかのオペレーティングシステムがオープン・ファイルの取り外しを許容します。 プロセスは、ファイルを開いて、それが開いている間、ディレクトリからそれを取り除くことができます。 そしてファイルを読むことができる。
Callaghan, el al Informational [Page 96] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[96ページ]RFC1813NFSバージョン3プロトコル1995年6月
written as long as the process keeps it open, even though the file has no name in the file system. It is impossible for a stateless server to implement these semantics. The client can do some tricks such as renaming the file on remove (to a hidden name), and only physically deleting it on close. The NFS version 3 protocol provides sufficient functionality to implement most file system semantics on a client.
ファイルにはファイルシステムの名前が全くありませんが、プロセスがそれを開くように保つ限り、書かれています。 状態がないサーバが、これらが意味論であると実装するのは、不可能です。 クライアントは取り外して(隠された名前に)、閉鎖で物理的にそれを削除するだけのファイルを改名などなどのいくつかのトリックができます。 NFSバージョン3プロトコルはクライアントの上でほとんどのファイルシステム意味論を実装することができるくらいの機能性を提供します。
Every NFS version 3 protocol client can also potentially be a server, and remote and local mounted file systems can be freely mixed. This leads to some problems when a client travels down the directory tree of a remote file system and reaches the mount point on the server for another remote file system. Allowing the server to follow the second remote mount would require loop detection, server lookup, and user revalidation. Instead, both NFS version 2 protocol and NFS version 3 protocol implementations do not typically let clients cross a server's mount point. When a client does a LOOKUP on a directory on which the server has mounted a file system, the client sees the underlying directory instead of the mounted directory.
また、すべてのNFSバージョン3プロトコルクライアントが潜在的にサーバであるかもしれません、そして、リモートでローカルの取り付けられたファイルシステムは自由に複雑であることができます。 クライアントが別のリモートファイルシステムのためにリモートファイルシステムと範囲のディレクトリツリーの下側にサーバのマウントポイントを旅行するとき、これはいくつかの問題を引き起こします。 サーバが2番目のリモートマウントに続くのを許容するのが輪の検出、サーバルックアップ、およびユーザ再合法化を必要とするでしょう。 代わりに、NFSバージョン2プロトコルとNFSバージョン3プロトコル実装の両方で、クライアントはサーバのマウントポイントを通常横断できません。 クライアントがサーバがファイルシステムを取り付けたディレクトリでLOOKUPをすると、クライアントは取り付けられたディレクトリの代わりに基本的なディレクトリを見ます。
For example, if a server has a file system called /usr and mounts another file system on /usr/src, if a client mounts /usr, it does not see the mounted version of /usr/src. A client could do remote mounts that match the server's mount points to maintain the server's view. In this example, the client would also have to mount /usr/src in addition to /usr, even if they are from the same server.
マウント/usr、例えば、サーバが/usrと呼ばれるファイルシステムを持って、/usr/srcに別のファイルシステムを取り付けるなら、それはクライアントであるなら/usr/srcの取り付けられたバージョンを見ません。 クライアントはサーバの視点を維持するためにサーバのマウントポイントに合っているリモートマウントができました。 また、この例では、クライアントは/usrに加えて/usr/srcを取り付けなければならないでしょう、彼らが同じサーバから来ても。
4.3 Path name interpretation
4.3 パス名解釈
There are a few complications to the rule that path names are always parsed on the client. For example, symbolic links could have different interpretations on different clients. There is no answer to this problem in this specification.
パス名がクライアントの上でいつも分析されるという規則へのいくつかの複雑さがあります。 例えば、シンボリックリンクは異なったクライアントの上に異なった解釈を持っているかもしれません。 この仕様にはこの問題の答えが全くありません。
Another common problem for non-UNIX implementations is the special interpretation of the pathname, "..", to mean the parent of a given directory. A future revision of the protocol may use an explicit flag to indicate the parent instead - however it is not a problem as many working non-UNIX implementations exist.
「非UNIX実装のための別の共有する問題はパス名の特別な解釈です」、」, 与えられたディレクトリの親を意味するために。 プロトコルの今後の改正は代わりに親を示すのに明白な旗を使用するかもしれません--しかしながら、多くの働く非UNIX実装が存在するとき、それは問題ではありません。
Callaghan, el al Informational [Page 97] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[97ページ]RFC1813NFSバージョン3プロトコル1995年6月
4.4 Permission issues
4.4 許可問題
The NFS version 3 protocol, strictly speaking, does not define the permission checking used by servers. However, it is expected that a server will do normal operating system permission checking using AUTH_UNIX style authentication as the basis of its protection mechanism, or another stronger form of authentication such as AUTH_DES or AUTH_KERB. With AUTH_UNIX authentication, the server gets the client's effective uid, effective gid, and groups on each call and uses them to check permission. These are the so-called UNIX credentials. AUTH_DES and AUTH_KERB use a network name, or netname, as the basis for identification (from which a UNIX server derives the necessary standard UNIX credentials). There are problems with this method that have been solved.
厳密に言うと、NFSバージョン3プロトコルはサーバによって使用される許可の照合を定義しません。 しかしながら、サーバが保護メカニズム、または別の、より強い形式の認証のAUTH_DESかAUTH_KERBなどの基礎としてAUTH_UNIXスタイル認証を使用することでチェックする正常なオペレーティングシステム許可をすると予想されます。 サーバは、AUTH_UNIX認証と共に、各呼び出しに関するクライアントの有効なuid、有効なヒツジ暈倒病、およびグループを手に入れて、許可をチェックするのにそれらを使用します。 これらはいわゆるUNIX資格証明書です。 AUTH_DESとAUTH_KERBはネットワーク名、またはnetnameを使用します、識別(Unixサーバーが必要な標準のUNIX資格証明書を引き出す)の基礎として。 解決されたこのメソッドに関する問題があります。
Using uid and gid implies that the client and server share the same uid list. Every server and client pair must have the same mapping from user to uid and from group to gid. Since every client can also be a server, this tends to imply that the whole network shares the same uid/gid space. If this is not the case, then it usually falls upon the server to perform some custom mapping of credentials from one authentication domain into another. A discussion of techniques for managing a shared user space or for providing mechanisms for user ID mapping is beyond the scope of this specification.
uidとヒツジ暈倒病を使用するのは、クライアントとサーバが同じuidリストを共有するのを含意します。 すべてのサーバとクライアント組には、ユーザからuidまでグループからヒツジ暈倒病まで同じマッピングがなければなりません。 また、すべてのクライアントがサーバであるかもしれないので、これは、全体のネットワークが同じuid/ヒツジ暈倒病スペースを共有するのを含意する傾向があります。 これがそうでないなら、通常、それは、1つの認証ドメインから別のものに資格証明書の何らかのカスタムマッピングを実行するためにサーバを攻撃します。 共有されたユーザスペースを管理するか、またはユーザIDマッピングにメカニズムを提供するためのテクニックの議論はこの仕様の範囲を超えています。
Another problem arises due to the usually stateful open operation. Most operating systems check permission at open time, and then check that the file is open on each read and write request. With stateless servers, the server cannot detect that the file is open and must do permission checking on each read and write call. UNIX client semantics of access permission checking on open can be provided with the ACCESS procedure call in this revision, which allows a client to explicitly check access permissions without resorting to trying the operation. On a local file system, a user can open a file and then change the permissions so that no one is allowed to touch it, but will still be able to write to the file because it is open. On a remote file system, by contrast, the write would fail. To get around this problem, the server's permission checking algorithm should allow the owner of a file to access it regardless of the permission setting. This is needed in a practical NFS version 3 protocol server implementation, but it does depart from correct local file system semantics. This should not affect the return result of access permissions as returned by the ACCESS
別の問題は通常statefulな開放的手術のため起こります。 次に、ほとんどのオペレーティングシステムが、オープンタイムに許可をチェックして、ファイルが読まれたそれぞれで開いているのをチェックして、要求を書きます。 状態がないサーバで、サーバは検出されることができません。それぞれについて検査して、ファイルが開いて、許可しなければならないのが呼び出しを読み書きします。 戸外について検査する参照許可のUNIXクライアント意味論にこの改正におけるACCESS手順呼び出しを提供できます。(操作を試みるのに再ソートしないで、クライアントは、改正で明らかにアクセス許容をチェックできます)。 ユーザがローカルファイルシステムの上では、ファイルを開いて、次に、許容を変えることができるので、だれもそれに触れることができませんが、それが開いているので、まだファイルに書くことができるでしょう。 書いてください。対照的に、aリモートに、システムをファイルしてください、失敗するでしょう。 この問題を逃れるために、サーバの許可照合アルゴリズムで、ファイルの所有者は許可設定にかかわらずそれにアクセスできるべきです。 これが実用的なNFSバージョン3プロトコルサーバ実装で必要ですが、それは正しいローカルファイルシステム意味論から出発します。 ACCESSによって返されるようにこれはアクセス許容のリターン結果に影響するべきではありません。
Callaghan, el al Informational [Page 98] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[98ページ]RFC1813NFSバージョン3プロトコル1995年6月
procedure, however.
しかしながら、手順。
A similar problem has to do with paging in an executable program over the network. The operating system usually checks for execute permission before opening a file for demand paging, and then reads blocks from the open file. In a local UNIX file system, an executable file does not need read permission to execute (pagein). An NFS version 3 protocol server can not tell the difference between a normal file read (where the read permission bit is meaningful) and a demand pagein read (where the server should allow access to the executable file if the execute bit is set for that user or group or public). To make this work, the server allows reading of files if the uid given in the call has either execute or read permission on the file, through ownership, group membership or public access. Again, this departs from correct local file system semantics.
同様の問題はネットワークの上で実行可能プログラムのページングと関係があります。 デマンドページングのためのファイルを開く前に許可を実行して、オープン・ファイルからのブロックがその時読むので、通常、オペレーティングシステムはチェックします。 ローカルのUNIXファイルシステムでは、実行可能なファイルは(pagein)を実行する許可が読まれたどんな必要性もしません。 NFSバージョン3プロトコルサーバが、pageinが読んだと通常のファイル読書(読書許可ビットが重要であるところ)と要求の違いに言うことができない、(サーバが実行可能なファイルへのアクセスを許すべきである、実行、ビットがそのユーザ、グループまたは公衆に設定される、) 呼び出しで与えられているuidがどちらかがファイルの上で許可を実行するか、または読むのをさせるなら、この仕事をするように、サーバでファイルを読みます、所有権、グループ会員資格またはパブリックアクセスで。 一方、これは正しいローカルファイルシステム意味論から出発します。
In most operating systems, a particular user (on UNIX, the uid 0) has access to all files, no matter what permission and ownership they have. This superuser permission may not be allowed on the server, since anyone who can become superuser on their client could gain access to all remote files. A UNIX server by default maps uid 0 to a distinguished value (UID_NOBODY), as well as mapping the groups list, before doing its access checking. A server implementation may provide a mechanism to change this mapping. This works except for NFS version 3 protocol root file systems (required for diskless NFS version 3 protocol client support), where superuser access cannot be avoided. Export options are used, on the server, to restrict the set of clients allowed superuser access.
ほとんどのオペレーティングシステムで、特定のユーザ(UNIXの上でuid0)はすべてのファイルに近づく手段を持っています、それらにどんな許可と所有権があっても。 この「スーパー-ユーザ」許可はサーバで許されないかもしれません、彼らのクライアントで「スーパー-ユーザ」になることができるだれでもすべてのリモートファイルへのアクセスを得ることができたので。 Unixサーバーはデフォルトでグループがリストアップする顕著な値(UID_NOBODY)、およびマッピングにuid0を写像します、アクセスの照合をする前に。 サーバ実装は、このマッピングを変えるためにメカニズムを提供するかもしれません。 NFSバージョン3プロトコルルートファイルシステム(ディスクレスNFSバージョン3プロトコルクライアントサポートのために、必要である)を除いて、これは働いています。そこでは、「スーパー-ユーザ」アクセスを避けることができません。 輸出オプションは、「スーパー-ユーザ」アクセサリーが許容されたクライアントのセットを制限するのにサーバで使用されます。
4.5 Duplicate request cache
4.5 写し要求キャッシュ
The typical NFS version 3 protocol failure recovery model uses client time-out and retry to handle server crashes, network partitions, and lost server replies. A retried request is called a duplicate of the original.
典型的なNFSバージョン3プロトコル失敗回復モデルは、サーバクラッシュ、ネットワークパーティション、および無くなっているサーバ回答を扱うのにクライアントタイムアウトと再試行を使用します。 再試行された要求はオリジナルの写しと呼ばれます。
When used in a file server context, the term idempotent can be used to distinguish between operation types. An idempotent request is one that a server can perform more than once with equivalent results (though it may in fact change, as a side effect, the access time on a file, say for READ). Some NFS operations are obviously non-idempotent. They cannot be reprocessed without special attention simply because they may fail if tried a second time. The CREATE request, for example,
ファイルサーバー文脈で使用されると、操作タイプを見分けるのに用語ベキ等元を使用できます。 ベキ等元要求は同等な結果による一度よりサーバがさらに実行できるもの(副作用としてファイルで事実上アクセスタイムを変えるかもしれませんが、READには、言う)です。 いくつかのNFS操作が明らかに非ベキ等元です。 単にもう一度試みられるなら失敗するかもしれないので、特別な注意なしでそれらを再処理できません。 例えば、CREATE要求
Callaghan, el al Informational [Page 99] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[99ページ]RFC1813NFSバージョン3プロトコル1995年6月
can be used to create a file for which the owner does not have write permission. A duplicate of this request cannot succeed if the original succeeded. Likewise, a file can be removed only once.
所有者が許可を書かせないもののためにファイルを作成するのに使用できます。 オリジナルが成功したなら、この要求の写しは成功できません。 同様に、一度だけファイルを取り外すことができます。
The side effects caused by performing a duplicate non-idempotent request can be destructive (for example, a truncate operation causing lost writes). The combination of a stateless design with the common choice of an unreliable network transport (UDP) implies the possibility of destructive replays of non-idempotent requests. Though to be more accurate, it is the inherent stateless design of the NFS version 3 protocol on top of an unreliable RPC mechanism that yields the possibility of destructive replays of non-idempotent requests, since even in an implementation of the NFS version 3 protocol over a reliable connection-oriented transport, a connection break with automatic reestablishment requires duplicate request processing (the client will retransmit the request, and the server needs to deal with a potential duplicate non-idempotent request).
写し非ベキ等元要求を実行することによって引き起こされた副作用が破壊的である場合がある、(例えば、aが引き起こすのが失った操作に先端を切らせる、書く、) 頼り無いネットワーク輸送(UDP)の一般的な選択への状態がないデザインの組み合わせは非ベキ等元要求の破壊的な再生の可能性を含意します。 正確に言えば、しかし、それは非ベキ等元要求の破壊的な再生の可能性をもたらす頼り無いRPCメカニズムの上のNFSバージョン3プロトコルの固有の状態がないデザインです; 以来、信頼できる接続指向の輸送の上のNFSバージョン3プロトコルの実装ではさえ、自動再建がある接続中断は写し要求処理を必要とします(クライアントが要求を再送するでしょう、そして、サーバは潜在的写し非ベキ等元要求に対処する必要があります)。
Most NFS version 3 protocol server implementations use a cache of recent requests (called the duplicate request cache) for the processing of duplicate non-idempotent requests. The duplicate request cache provides a short-term memory mechanism in which the original completion status of a request is remembered and the operation attempted only once. If a duplicate copy of this request is received, then the original completion status is returned.
ほとんどのNFSバージョン3プロトコルサーバ実装が写し非ベキ等元要求の処理に最近の要求(写し要求キャッシュと呼ばれる)のキャッシュを使用します。 写し要求キャッシュは要求の元の完成状態が覚えていられる短期記憶メカニズムと一度だけ試みられた操作を提供します。 この要求の写本が受け取られているなら、元の完成状態は返されます。
The duplicate-request cache mechanism has been useful in reducing destructive side effects caused by duplicate NFS version 3 protocol requests. This mechanism, however, does not guarantee against these destructive side effects in all failure modes. Most servers store the duplicate request cache in RAM, so the contents are lost if the server crashes. The exception to this may possibly occur in a redundant server approach to high availability, where the file system itself may be used to share the duplicate request cache state. Even if the cache survives server reboots (or failovers in the high availability case), its effectiveness is a function of its size. A network partition can cause a cache entry to be reused before a client receives a reply for the corresponding request. If this happens, the duplicate request will be processed as a new one, possibly with destructive side effects.
写し要求キャッシュメカニズムは写しNFSバージョン3プロトコル要求で引き起こされた破壊的な副作用を減少させる際に役に立っています。 しかしながら、これらの破壊的な副作用に対してこのメカニズムはすべての失敗でモードを保証しません。 ほとんどのサーバがRAMに写し要求キャッシュを保存するので、サーバがダウンするなら、内容は無くなっています。 これへの例外はことによると高い有用性への余分なサーバアプローチで起こるかもしれません。(そこでは、ファイルシステム自体が、写し要求キャッシュ状態を共有するのに使用されるかもしれません)。 キャッシュがサーバリブート(または、高可用性場合におけるフェイルオーバー)を乗り切っても、有効性はサイズの関数です。 ネットワークパーティションで、クライアントが対応する要求のための回答を受け取る前にキャッシュエントリーを再利用できます。 これが起こると、写し要求は新しいものとしてことによると破壊的な副作用で処理されるでしょう。
Callaghan, el al Informational [Page 100] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[100ページ]RFC1813NFSバージョン3プロトコル1995年6月
A good description of the implementation and use of a duplicate request cache can be found in [Juszczak].
[Juszczak]で実装の良い記述と写し要求キャッシュの使用を見つけることができます。
4.6 File name component handling
4.6 ファイル名コンポーネント取り扱い
Server implementations of NFS version 3 protocol will frequently impose restrictions on the names which can be created. Many servers will also forbid the use of names that contain certain characters, such as the path component separator used by the server operating system. For example, the UFS file system will reject a name which contains "/", while "." and ".." are distinguished in UFS, and may not be specified as the name when creating a file system object. The exact error status values return for these errors is specified in the description of each procedure argument. The values (which conform to NFS version 2 protocol server practice) are not necessarily obvious, nor are they consistent from one procedure to the next.
NFSバージョン3プロトコルのサーバ実装は頻繁に作成できる名前に制限を課すでしょう。 また、多くのサーバが確信しているキャラクタを含む名前の使用を禁じるでしょう、サーバオペレーティングシステムで使用される経路コンポーネント分離符などのように。 「例えば、UFSファイルシステムは」 /を含む名前を拒絶する」、」 . 」 」 . . 」 UFSで区別されて、aファイルシステム対象物を作成するとき、名前として指定されないかもしれません。 値がこれらの誤りによって返す正確なエラー状況はそれぞれの手順議論の記述で指定されます。 値(NFSバージョン2プロトコルサーバ習慣に従う)は必ず明白であるというわけではありません、そして、彼らは1つの手順から次まで一貫していません。
4.7 Synchronous modifying operations
4.7 同期変更作業
Data-modifying operations in the NFS version 3 protocol are synchronous. When a procedure returns to the client, the client can assume that the operation has completed and any data associated with the request is now on stable storage.
NFSバージョン3プロトコルにおけるデータを変更する操作は同時です。 手順がクライアントに戻るとき、現在、安定貯蔵には缶が仮定する操作が完成したクライアントと要求に関連しているどんなデータもあります。
4.8 Stable storage
4.8 安定貯蔵
NFS version 3 protocol servers must be able to recover without data loss from multiple power failures (including cascading power failures, that is, several power failures in quick succession), operating system failures, and hardware failure of components other than the storage medium itself (for example, disk, nonvolatile RAM).
NFSバージョン3プロトコルサーバは記憶媒体(例えば、ディスク、不揮発性のRAM)自体以外のコンポーネントの複数の停電(停電、すなわち、いくつかの停電を間断なくどっと落させるのを含んでいる)、オペレーティングシステムの故障、およびハードウェアの故障からのデータの損失なしで回復できなければなりません。
Some examples of stable storage that are allowable for an NFS server include:
安定貯蔵のいくつかのNFSサーバにおいて、許容できる例は:
1. Media commit of data, that is, the modified data has been successfully written to the disk media, for example, the disk platter.
1. メディアはデータを公約します、すなわち、変更されたデータが首尾よくディスク媒体、例えば、ディスク大皿に書かれています。
2. An immediate reply disk drive with battery-backed on-drive intermediate storage or uninterruptible power system (UPS).
2. ドライブのバッテリーで支持された中間的ストレージか無停止パワー・システム(UPS)がある即座の回答ディスクドライブ。
3. Server commit of data with battery-backed intermediate storage and recovery software.
3. サーバはバッテリーで支持された中間的ストレージと回復ソフトウェアでデータを公約します。
Callaghan, el al Informational [Page 101] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[101ページ]RFC1813NFSバージョン3プロトコル1995年6月
4. Cache commit with uninterruptible power system (UPS) and recovery software.
4. キャッシュは無停止パワー・システム(UPS)と回復ソフトウェアで公約します。
Conversely, the following are not examples of stable storage:
逆に、↓これは安定貯蔵に関する例ではありません:
1. An immediate reply disk drive without battery-backed on-drive intermediate storage or uninterruptible power system (UPS).
1. ドライブのバッテリーで支持された中間的ストレージも無停止パワー・システム(UPS)のない即座の回答ディスクドライブ。
2. Cache commit without both uninterruptible power system (UPS) and recovery software.
2. キャッシュは無停止パワー・システム(UPS)と回復ソフトウェアの両方なしで公約します。
The only exception to this (introduced in this protocol revision) is as described under the WRITE procedure on the handling of the stable bit, and the use of the COMMIT procedure. It is the use of the synchronous COMMIT procedure that provides the necessary semantic support in the NFS version 3 protocol.
これ(このプロトコル改正では、導入する)への唯一の例外が安定したビットの取り扱い、およびCOMMIT手順の使用のWRITE手順の下で説明されるようにあります。 それはNFSバージョン3プロトコルに必要な意味サポートを提供する同期COMMIT手順の使用です。
4.9 Lookups and name resolution
4.9 ルックアップと名前解決
A common objection to the NFS version 3 protocol is the philosophy of component-by-component LOOKUP by the client in resolving a name. The objection is that this is inefficient, as latencies for component-by-component LOOKUP would be unbearable.
NFSバージョン3プロトコルへの一般的な異論はコンポーネントごとの名前を決議することにおけるクライアントによるLOOKUPの哲学です。 異論はコンポーネントごとのLOOKUPのための潜在が耐え難いようにこれが効率が悪いということです。
Implementation practice solves this issue. A name cache, providing component to file-handle mapping, is kept on the client to short circuit actual LOOKUP invocations over the wire. The cache is subject to cache timeout parameters that bound attributes.
実装習慣はこの問題を解決します。 ファイルハンドルマッピングにコンポーネントを提供して、名前キャッシュは、ワイヤの上に実際のLOOKUP実施を短絡させるようにクライアントの上に保たれます。 キャッシュは属性を縛ったキャッシュタイムアウトパラメタを受けることがあります。
4.10 Adaptive retransmission
4.10 適応型の「再-トランスミッション」
Most client implementations use either an exponential back-off strategy to some maximum retransmission value, or a more adaptive strategy that attempts congestion avoidance. Congestion avoidance schemes in NFS request retransmission are modelled on the work presented in [Jacobson]. [Nowicki] and [Macklem] describe congestion avoidance schemes to be applied to the NFS protocol over UDP.
ほとんどのクライアント実装が何らかの最大の「再-トランスミッション」価値、または輻輳回避を試みるより適応型の戦略に指数の下に後部戦略を使用します。 [ジェーコブソン]に提示された仕事はNFS要求「再-トランスミッション」の輻輳回避体系に似せられます。 [Nowicki]と[Macklem]は、UDPの上のNFSプロトコルに適用されるために輻輳回避体系について説明します。
4.11 Caching policies
4.11 方針をキャッシュすること。
The NFS version 3 protocol does not define a policy for caching on the client or server. In particular, there is no
NFSバージョン3プロトコルはクライアントかサーバでのキャッシュのための方針を定義しません。特に、いいえがあります。
Callaghan, el al Informational [Page 102] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[102ページ]RFC1813NFSバージョン3プロトコル1995年6月
support for strict cache consistency between a client and server, nor between different clients. See [Kazar] for a discussion of the issues of cache synchronization and mechanisms in several distributed file systems.
厳しいキャッシュには、クライアントとサーバと、そして、異なったクライアントの間の一貫性をサポートしてください。 キャッシュ同期とメカニズムの問題の議論に関していくつかの分散ファイルシステムで[Kazar]を見てください。
4.12 Stable versus unstable writes
4.12うまや対不安定であるのは書きます。
The setting of the stable field in the WRITE arguments, that is whether or not to do asynchronous WRITE requests, is straightforward on a UNIX client. If the NFS version 3 protocol client receives a write request that is not marked as being asynchronous, it should generate the RPC with stable set to TRUE. If the request is marked as being asynchronous, the RPC should be generated with stable set to FALSE. If the response comes back with the committed field set to TRUE, the client should just mark the write request as done and no further action is required. If committed is set to FALSE, indicating that the buffer was not synchronized with the server's disk, the client will need to mark the buffer in some way which indicates that a copy of the buffer lives on the server and that a new copy does not need to be sent to the server, but that a commit is required.
WRITE議論における安定した分野の設定であり、それは、非同期なWRITE要求をするかどうかということであり、UNIXクライアントで簡単です。 バージョン3プロトコルクライアントが受け取るNFSが、それが非同期であるとしてマークされないよう要求するなら、aが、書くそれは安定集合でTRUEにRPCを生成するべきです。 要求が非同期であるとしてマークされるなら、RPCは安定集合でFALSEに生成されるべきです。 応答がTRUE、クライアントにとって、設定している分野がただマークするべきである遂行と共に戻る、されて、より遠くない動作が必要であるように要求を書いてください。 FALSEに設定されて、バッファがサーバのディスクと同期しなかったのを示しながら遂行されると、クライアントは、どれが、バッファのコピーがサーバで生きて、aが公約されていなかったなら新しいコピーによってサーバに送られる必要はないのを示すか必要である何らかの方法でバッファをマークする必要があるでしょう。
Note that this algorithm introduces a new state for buffers, thus there are now three states for buffers. The three states are dirty, done but needs to be committed, and done. This extra state on the client will likely require modifications to the system outside of the NFS version 3 protocol client.
このアルゴリズムがバッファのために新しい状態を導入することに注意して、その結果、現在、バッファのための3つの州があります。 遂行された、されるべき必要性だけが完了していて、3つの州が汚いです。 クライアントの上のこの付加的な州は外でおそらくNFSバージョン3プロトコルクライアントをシステムへの変更に要求するでしょう。
One proposal that was rejected was the addition of a boolean commit argument to the WRITE operation. It would be used to indicate whether the server should do a full file commit after doing the write. This seems as if it could be useful if the client knew that it was doing the last write on the file. It is difficult to see how this could be used, given existing client architectures though.
拒絶されているのが、論理演算子の追加であったということであった1つの提案がWRITE操作に議論を遂行します。 それがサーバが完全なファイルをするべきであるか否かに関係なく、次々と公約するように示すのに使用されるだろう、書いてください。 これは、まるでクライアントが、最終をしていたのを知っているなら役に立つかもしれないかのようにファイルを書き続けるように思えます。 これはどう使用して、もっとも、既存のクライアントアーキテクチャを与えることができたかを見るのは難しいです。
The asynchronous write opens up the window of problems associated with write sharing. For example: client A writes some data asynchronously. Client A is still holding the buffers cached, waiting to commit them later. Client B reads the modified data and writes it back to the server. The server then crashes. When it comes back up, client A issues a COMMIT operation which returns with a different cookie as well as changed attributes. In this case, the correct action may or may not be to retransmit the cached buffers. Unfortunately, client A can't tell for sure, so it will need to retransmit the buffers, thus overwriting the changes from
交際した問題の窓を上に開ける、非同期が、書く共有を書いてください。 例えば: クライアントAはいくつかのデータを非同期に書きます。 クライアントAは、まだ後でそれらを遂行するのを待っていて、バッファがキャッシュされるままにしています。 クライアントBは、変更されたデータを読み込んで、サーバにそれの返事を書きます。次に、サーバはダウンします。 来て戻るとき、クライアントAは異なったクッキーと変えるのと同じくらいよくともに帰るCOMMIT操作に属性を発行します。 この場合、正しい動作はキャッシュされたバッファを再送することであるかもしれません。 残念ながらAがその結果、バッファを再送するのが必要であるように確実に変化を上書きするために言うことができないクライアント
Callaghan, el al Informational [Page 103] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[103ページ]RFC1813NFSバージョン3プロトコル1995年6月
client B. Fortunately, write sharing is rare and the solution matches the current write sharing situation. Without using locking for synchronization, the behaviour will be indeterminate.
クライアントB.Fortunately、書いてください。共有は、まれであって、状況を共有する電流が書くソリューションマッチです。 同期のためのロックを使用しないで、ふるまいは不確定になるでしょう。
In a high availability (redundant system) server implementation, two cases exist which relate to the verf changing. If the high availability server implementation does not use a shared-memory scheme, then the verf should change on failover, since the unsynchronized data is not available to the second processor and there is no guarantee that the system which had the data cached was able to flush it to stable storage before going down. The client will need to retransmit the data to be safe. In a shared-memory high availability server implementation, the verf would not need to change because the server would still have the cached data available to it to be flushed. The exact policy regarding the verf in a shared memory high availability implementation, however, is up to the server implementor.
高可用性(代理機能システム)サーバ実装では、verf変化に関連する2つのケースが存在しています。 高可用性サーバ実装が共有メモリ体系を使用しないなら、verfはフェイルオーバーで変化するはずです、2番目のプロセッサに非連動しているデータを得ることができないで、データをキャッシュしたシステムが落ちる前にそれを安定貯蔵に洗い流すことができたという保証が全くないので。 クライアントは、安全になるようにデータを再送する必要があるでしょう。 サーバには、それに利用可能なキャッシュされたデータがまだあるでしょう、したがって、共有メモリ高可用性サーバ実装では、verfは洗い流されるために変化する必要はないでしょう。 しかしながら、共有メモリ高可用性実装におけるverfに関する正確な方針はサーバ作成者次第です。
4.13 32 bit clients/servers and 64 bit clients/servers
4.13 32ビットのクライアント/サーバと64ビットのクライアント/サーバ
The 64 bit nature of the NFS version 3 protocol introduces several compatibility problems. The most notable two are mismatched clients and servers, that is, a 32 bit client and a 64 bit server or a 64 bit client and a 32 bit server.
NFSバージョン3プロトコルの64ビットの本質は. 最も注目に値する2がミスマッチしているクライアントとサーバ、すなわち、32ビットのクライアントであるのにおけるいくつかの互換性問題と64ビットのサーバか64ビットのクライアントと32ビットのサーバを紹介します。
The problems of a 64 bit client and a 32 bit server are easy to handle. The client will never encounter a file that it can not handle. If it sends a request to the server that the server can not handle, the server should reject the request with an appropriate error.
64ビットのクライアントと32ビットのサーバの問題は扱いやすいです。 クライアントはそれが扱うことができないファイルに決して、遭遇しないでしょう。 サーバが扱うことができないサーバに要求を送るなら、サーバは適切な誤りで要求を拒絶するべきです。
The problems of a 32 bit client and a 64 bit server are much harder to handle. In this situation, the server does not have a problem because it can handle anything that the client can generate. However, the client may encounter a file that it can not handle. The client will not be able to handle a file whose size can not be expressed in 32 bits. Thus, the client will not be able to properly decode the size of the file into its local attributes structure. Also, a file can grow beyond the limit of the client while the client is accessing the file.
32ビットのクライアントと64ビットのサーバの問題ははるかに扱いにくいです。 この状況で、それがクライアントが生成することができるものは何も扱うことができるので、サーバは問題を持っていません。 しかしながら、クライアントはそれが扱うことができないファイルに遭遇するかもしれません。 クライアントは32ビットでサイズを表すことができないファイルを扱うことができないでしょう。 したがって、クライアントは適切にローカルの属性構造にファイルのサイズを解読できないでしょう。 また、クライアントがファイルにアクセスしている間、ファイルはクライアントの限界を超えたところまで成長できます。
The solutions to these problems are left up to the individual implementor. However, there are two common approaches used to resolve this situation. The implementor can choose between them or even can invent a new solution altogether.
これらの問題への解決は個々の作成者に任せられます。 しかしながら、この状況を決議するのに使用される2つの一般的なアプローチがあります。 作成者は、それらを選ぶことができるか、または全体で新しいソリューションを発明さえできます。
Callaghan, el al Informational [Page 104] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[104ページ]RFC1813NFSバージョン3プロトコル1995年6月
The most common solution is for the client to deny access to any file whose size can not be expressed in 32 bits. This is probably the safest, but does introduce some strange semantics when the file grows beyond the limit of the client while it is being access by that client. The file becomes inaccessible even while it is being accessed.
最も一般的なソリューションはクライアントが32ビットでサイズを表すことができないどんなファイルへのアクセスも拒絶することです。 これは、たぶん最も安全ですが、ファイルがそれがそのクライアントによるアクセスである間、クライアントの限界を超えたところまで成長すると、何らかの奇妙な意味論を紹介します。 それがアクセスされてさえいる間、ファイルは近づきがたくなります。
The second solution is for the client to map any size greater than it can handle to the maximum size that it can handle. Effectively, it is lying to the application program. This allows the application access as much of the file as possible given the 32 bit offset restriction. This eliminates the strange semantic of the file effectively disappearing after it has been accessed, but does introduce other problems. The client will not be able to access the entire file.
2番目のソリューションはクライアントが扱うことができる最大サイズに扱うことができるより大きいどんなサイズも写像することです。 事実上、それはアプリケーション・プログラムに横たわっています。 32の噛み付いているオフセット制限を考えて、これは可能な同じくらいファイルの多くとしてアプリケーションアクセスを許します。 これは、それがアクセスされた後に事実上、ファイルが見えなくなることにおける意味の奇妙を排除しますが、他の問題を紹介します。クライアントはファイル全体にアクセスできないでしょう。
Currently, the first solution is the recommended solution. However, client implementors are encouraged to do the best that they can to reduce the effects of this situation.
現在、最初のソリューションはお勧めのソリューションです。 しかしながら、この状況の効果を減少させるためにクライアント作成者が彼らが尽くすことができるベストを尽くすよう奨励されます。
Callaghan, el al Informational [Page 105] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[105ページ]RFC1813NFSバージョン3プロトコル1995年6月
5.0 Appendix I: Mount protocol
5.0 付録I: 山のプロトコル
The changes from the NFS version 2 protocol to the NFS version 3 protocol have required some changes to be made in the MOUNT protocol. To meet the needs of the NFS version 3 protocol, a new version of the MOUNT protocol has been defined. This new protocol satisfies the requirements of the NFS version 3 protocol and addresses several other current market requirements.
NFSバージョン2プロトコルからNFSバージョン3プロトコルまでの変化は、いくつかの変更が山のプロトコルで行われるのを必要としました。 NFSバージョン3プロトコルの需要を満たすために、山のプロトコルの新しいバージョンは定義されました。 この新しいプロトコルは、NFSバージョン3プロトコルの要件を満たして、他のいくつかの現在の市場の必要性を扱います。
5.1 RPC Information
5.1 RPC情報
5.1.1 Authentication
5.1.1 認証
The MOUNT service uses AUTH_NONE in the NULL procedure. AUTH_UNIX, AUTH_SHORT, AUTH_DES, or AUTH_KERB are used for all other procedures. Other authentication types may be supported in the future.
山のサービスはNULL手順でAUTH_NONEを使用します。 AUTH_UNIX、AUTH_SHORT、AUTH_DES、またはAUTH_KERBが他のすべての手順に使用されます。 他の認証タイプは将来、サポートされるかもしれません。
5.1.2 Constants
5.1.2 定数
These are the RPC constants needed to call the MOUNT service. They are given in decimal.
これらは定数が山のサービスを呼ぶ必要があったRPCです。 小数でそれらを与えます。
PROGRAM 100005 VERSION 3
プログラム100005バージョン3
5.1.3 Transport address
5.1.3 輸送アドレス
The MOUNT service is normally supported over the TCP and UDP protocols. The rpcbind daemon should be queried for the correct transport address.
The MOUNT service is normally supported over the TCP and UDP protocols. The rpcbind daemon should be queried for the correct transport address.
5.1.4 Sizes
5.1.4 Sizes
const MNTPATHLEN = 1024; /* Maximum bytes in a path name */ const MNTNAMLEN = 255; /* Maximum bytes in a name */ const FHSIZE3 = 64; /* Maximum bytes in a V3 file handle */
const MNTPATHLEN = 1024; /* Maximum bytes in a path name */ const MNTNAMLEN = 255; /* Maximum bytes in a name */ const FHSIZE3 = 64; /* Maximum bytes in a V3 file handle */
5.1.5 Basic Data Types
5.1.5 Basic Data Types
typedef opaque fhandle3<FHSIZE3>; typedef string dirpath<MNTPATHLEN>; typedef string name<MNTNAMLEN>;
typedef opaque fhandle3<FHSIZE3>; typedef string dirpath<MNTPATHLEN>; typedef string name<MNTNAMLEN>;
Callaghan, el al Informational [Page 106] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 106] RFC 1813 NFS Version 3 Protocol June 1995
enum mountstat3 { MNT3_OK = 0, /* no error */ MNT3ERR_PERM = 1, /* Not owner */ MNT3ERR_NOENT = 2, /* No such file or directory */ MNT3ERR_IO = 5, /* I/O error */ MNT3ERR_ACCES = 13, /* Permission denied */ MNT3ERR_NOTDIR = 20, /* Not a directory */ MNT3ERR_INVAL = 22, /* Invalid argument */ MNT3ERR_NAMETOOLONG = 63, /* Filename too long */ MNT3ERR_NOTSUPP = 10004, /* Operation not supported */ MNT3ERR_SERVERFAULT = 10006 /* A failure on the server */ };
enum mountstat3 { MNT3_OK = 0, /* no error */ MNT3ERR_PERM = 1, /* Not owner */ MNT3ERR_NOENT = 2, /* No such file or directory */ MNT3ERR_IO = 5, /* I/O error */ MNT3ERR_ACCES = 13, /* Permission denied */ MNT3ERR_NOTDIR = 20, /* Not a directory */ MNT3ERR_INVAL = 22, /* Invalid argument */ MNT3ERR_NAMETOOLONG = 63, /* Filename too long */ MNT3ERR_NOTSUPP = 10004, /* Operation not supported */ MNT3ERR_SERVERFAULT = 10006 /* A failure on the server */ };
5.2 Server Procedures
5.2 Server Procedures
The following sections define the RPC procedures supplied by a MOUNT version 3 protocol server. The RPC procedure number is given at the top of the page with the name and version. The SYNOPSIS provides the name of the procedure, the list of the names of the arguments, the list of the names of the results, followed by the XDR argument declarations and results declarations. The information in the SYNOPSIS is specified in RPC Data Description Language as defined in [RFC1014]. The DESCRIPTION section tells what the procedure is expected to do and how its arguments and results are used. The ERRORS section lists the errors returned for specific types of failures. The IMPLEMENTATION field describes how the procedure is expected to work and how it should be used by clients.
The following sections define the RPC procedures supplied by a MOUNT version 3 protocol server. The RPC procedure number is given at the top of the page with the name and version. The SYNOPSIS provides the name of the procedure, the list of the names of the arguments, the list of the names of the results, followed by the XDR argument declarations and results declarations. The information in the SYNOPSIS is specified in RPC Data Description Language as defined in [RFC1014]. The DESCRIPTION section tells what the procedure is expected to do and how its arguments and results are used. The ERRORS section lists the errors returned for specific types of failures. The IMPLEMENTATION field describes how the procedure is expected to work and how it should be used by clients.
program MOUNT_PROGRAM { version MOUNT_V3 { void MOUNTPROC3_NULL(void) = 0; mountres3 MOUNTPROC3_MNT(dirpath) = 1; mountlist MOUNTPROC3_DUMP(void) = 2; void MOUNTPROC3_UMNT(dirpath) = 3; void MOUNTPROC3_UMNTALL(void) = 4; exports MOUNTPROC3_EXPORT(void) = 5; } = 3; } = 100005;
program MOUNT_PROGRAM { version MOUNT_V3 { void MOUNTPROC3_NULL(void) = 0; mountres3 MOUNTPROC3_MNT(dirpath) = 1; mountlist MOUNTPROC3_DUMP(void) = 2; void MOUNTPROC3_UMNT(dirpath) = 3; void MOUNTPROC3_UMNTALL(void) = 4; exports MOUNTPROC3_EXPORT(void) = 5; } = 3; } = 100005;
Callaghan, el al Informational [Page 107] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 107] RFC 1813 NFS Version 3 Protocol June 1995
5.2.0 Procedure 0: Null - Do nothing
5.2.0 Procedure 0: Null - Do nothing
SYNOPSIS
SYNOPSIS
void MOUNTPROC3_NULL(void) = 0;
void MOUNTPROC3_NULL(void) = 0;
DESCRIPTION
DESCRIPTION
Procedure NULL does not do any work. It is made available to allow server response testing and timing.
Procedure NULL does not do any work. It is made available to allow server response testing and timing.
IMPLEMENTATION
IMPLEMENTATION
It is important that this procedure do no work at all so that it can be used to measure the overhead of processing a service request. By convention, the NULL procedure should never require any authentication. A server may choose to ignore this convention, in a more secure implementation, where responding to the NULL procedure call acknowledges the existence of a resource to an unauthenticated client.
It is important that this procedure do no work at all so that it can be used to measure the overhead of processing a service request. By convention, the NULL procedure should never require any authentication. A server may choose to ignore this convention, in a more secure implementation, where responding to the NULL procedure call acknowledges the existence of a resource to an unauthenticated client.
ERRORS
ERRORS
Since the NULL procedure takes no MOUNT protocol arguments and returns no MOUNT protocol response, it can not return a MOUNT protocol error. However, it is possible that some server implementations may return RPC errors based on security and authentication requirements.
Since the NULL procedure takes no MOUNT protocol arguments and returns no MOUNT protocol response, it can not return a MOUNT protocol error. However, it is possible that some server implementations may return RPC errors based on security and authentication requirements.
Callaghan, el al Informational [Page 108] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 108] RFC 1813 NFS Version 3 Protocol June 1995
5.2.1 Procedure 1: MNT - Add mount entry
5.2.1 Procedure 1: MNT - Add mount entry
SYNOPSIS
SYNOPSIS
mountres3 MOUNTPROC3_MNT(dirpath) = 1;
mountres3 MOUNTPROC3_MNT(dirpath) = 1;
struct mountres3_ok { fhandle3 fhandle; int auth_flavors<>; };
struct mountres3_ok { fhandle3 fhandle; int auth_flavors<>; };
union mountres3 switch (mountstat3 fhs_status) { case MNT_OK: mountres3_ok mountinfo; default: void; };
union mountres3 switch (mountstat3 fhs_status) { case MNT_OK: mountres3_ok mountinfo; default: void; };
DESCRIPTION
DESCRIPTION
Procedure MNT maps a pathname on the server to a file handle. The pathname is an ASCII string that describes a directory on the server. If the call is successful (MNT3_OK), the server returns an NFS version 3 protocol file handle and a vector of RPC authentication flavors that are supported with the client's use of the file handle (or any file handles derived from it). The authentication flavors are defined in Section 7.2 and section 9 of [RFC1057].
Procedure MNT maps a pathname on the server to a file handle. The pathname is an ASCII string that describes a directory on the server. If the call is successful (MNT3_OK), the server returns an NFS version 3 protocol file handle and a vector of RPC authentication flavors that are supported with the client's use of the file handle (or any file handles derived from it). The authentication flavors are defined in Section 7.2 and section 9 of [RFC1057].
IMPLEMENTATION
IMPLEMENTATION
If mountres3.fhs_status is MNT3_OK, then mountres3.mountinfo contains the file handle for the directory and a list of acceptable authentication flavors. This file handle may only be used in the NFS version 3 protocol. This procedure also results in the server adding a new entry to its mount list recording that this client has mounted the directory. AUTH_UNIX authentication or better is required.
If mountres3.fhs_status is MNT3_OK, then mountres3.mountinfo contains the file handle for the directory and a list of acceptable authentication flavors. This file handle may only be used in the NFS version 3 protocol. This procedure also results in the server adding a new entry to its mount list recording that this client has mounted the directory. AUTH_UNIX authentication or better is required.
ERRORS
ERRORS
MNT3ERR_NOENT MNT3ERR_IO MNT3ERR_ACCES MNT3ERR_NOTDIR MNT3ERR_NAMETOOLONG
MNT3ERR_NOENT MNT3ERR_IO MNT3ERR_ACCES MNT3ERR_NOTDIR MNT3ERR_NAMETOOLONG
Callaghan, el al Informational [Page 109] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 109] RFC 1813 NFS Version 3 Protocol June 1995
5.2.2 Procedure 2: DUMP - Return mount entries
5.2.2 Procedure 2: DUMP - Return mount entries
SYNOPSIS
SYNOPSIS
mountlist MOUNTPROC3_DUMP(void) = 2;
mountlist MOUNTPROC3_DUMP(void) = 2;
typedef struct mountbody *mountlist;
typedef struct mountbody *mountlist;
struct mountbody { name ml_hostname; dirpath ml_directory; mountlist ml_next; };
struct mountbody { name ml_hostname; dirpath ml_directory; mountlist ml_next; };
DESCRIPTION
DESCRIPTION
Procedure DUMP returns the list of remotely mounted file systems. The mountlist contains one entry for each client host name and directory pair.
Procedure DUMP returns the list of remotely mounted file systems. The mountlist contains one entry for each client host name and directory pair.
IMPLEMENTATION
IMPLEMENTATION
This list is derived from a list maintained on the server of clients that have requested file handles with the MNT procedure. Entries are removed from this list only when a client calls the UMNT or UMNTALL procedure. Entries may become stale if a client crashes and does not issue either UMNT calls for all of the file systems that it had previously mounted or a UMNTALL to remove all entries that existed for it on the server.
This list is derived from a list maintained on the server of clients that have requested file handles with the MNT procedure. Entries are removed from this list only when a client calls the UMNT or UMNTALL procedure. Entries may become stale if a client crashes and does not issue either UMNT calls for all of the file systems that it had previously mounted or a UMNTALL to remove all entries that existed for it on the server.
ERRORS
ERRORS
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
Callaghan, el al Informational [Page 110] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 110] RFC 1813 NFS Version 3 Protocol June 1995
5.2.3 Procedure 3: UMNT - Remove mount entry
5.2.3 Procedure 3: UMNT - Remove mount entry
SYNOPSIS
SYNOPSIS
void MOUNTPROC3_UMNT(dirpath) = 3;
void MOUNTPROC3_UMNT(dirpath) = 3;
DESCRIPTION
DESCRIPTION
Procedure UMNT removes the mount list entry for the directory that was previously the subject of a MNT call from this client. AUTH_UNIX authentication or better is required.
Procedure UMNT removes the mount list entry for the directory that was previously the subject of a MNT call from this client. AUTH_UNIX authentication or better is required.
IMPLEMENTATION
IMPLEMENTATION
Typically, server implementations have maintained a list of clients which have file systems mounted. In the past, this list has been used to inform clients that the server was going to be shutdown.
Typically, server implementations have maintained a list of clients which have file systems mounted. In the past, this list has been used to inform clients that the server was going to be shutdown.
ERRORS
ERRORS
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
Callaghan, el al Informational [Page 111] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 111] RFC 1813 NFS Version 3 Protocol June 1995
5.2.4 Procedure 4: UMNTALL - Remove all mount entries
5.2.4 Procedure 4: UMNTALL - Remove all mount entries
SYNOPSIS
SYNOPSIS
void MOUNTPROC3_UMNTALL(void) = 4;
void MOUNTPROC3_UMNTALL(void) = 4;
DESCRIPTION
DESCRIPTION
Procedure UMNTALL removes all of the mount entries for this client previously recorded by calls to MNT. AUTH_UNIX authentication or better is required.
Procedure UMNTALL removes all of the mount entries for this client previously recorded by calls to MNT. AUTH_UNIX authentication or better is required.
IMPLEMENTATION
IMPLEMENTATION
This procedure should be used by clients when they are recovering after a system shutdown. If the client could not successfully unmount all of its file systems before being shutdown or the client crashed because of a software or hardware problem, there may be servers which still have mount entries for this client. This is an easy way for the client to inform all servers at once that it does not have any mounted file systems. However, since this procedure is generally implemented using broadcast RPC, it is only of limited usefullness.
This procedure should be used by clients when they are recovering after a system shutdown. If the client could not successfully unmount all of its file systems before being shutdown or the client crashed because of a software or hardware problem, there may be servers which still have mount entries for this client. This is an easy way for the client to inform all servers at once that it does not have any mounted file systems. However, since this procedure is generally implemented using broadcast RPC, it is only of limited usefullness.
ERRORS
ERRORS
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
Callaghan, el al Informational [Page 112] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 112] RFC 1813 NFS Version 3 Protocol June 1995
5.2.5 Procedure 5: EXPORT - Return export list
5.2.5 Procedure 5: EXPORT - Return export list
SYNOPSIS
SYNOPSIS
exports MOUNTPROC3_EXPORT(void) = 5;
exports MOUNTPROC3_EXPORT(void) = 5;
typedef struct groupnode *groups;
typedef struct groupnode *groups;
struct groupnode { name gr_name; groups gr_next; };
struct groupnode { name gr_name; groups gr_next; };
typedef struct exportnode *exports;
typedef struct exportnode *exports;
struct exportnode { dirpath ex_dir; groups ex_groups; exports ex_next; };
struct exportnode { dirpath ex_dir; groups ex_groups; exports ex_next; };
DESCRIPTION
DESCRIPTION
Procedure EXPORT returns a list of all the exported file systems and which clients are allowed to mount each one. The names in the group list are implementation-specific and cannot be directly interpreted by clients. These names can represent hosts or groups of hosts.
Procedure EXPORT returns a list of all the exported file systems and which clients are allowed to mount each one. The names in the group list are implementation-specific and cannot be directly interpreted by clients. These names can represent hosts or groups of hosts.
IMPLEMENTATION
IMPLEMENTATION
This procedure generally returns the contents of a list of shared or exported file systems. These are the file systems which are made available to NFS version 3 protocol clients.
This procedure generally returns the contents of a list of shared or exported file systems. These are the file systems which are made available to NFS version 3 protocol clients.
ERRORS
ERRORS
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
There are no MOUNT protocol errors which can be returned from this procedure. However, RPC errors may be returned for authentication or other RPC failures.
Callaghan, el al Informational [Page 113] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 113] RFC 1813 NFS Version 3 Protocol June 1995
6.0 Appendix II: Lock manager protocol
6.0 Appendix II: Lock manager protocol
Because the NFS version 2 protocol as well as the NFS version 3 protocol is stateless, an additional Network Lock Manager (NLM) protocol is required to support locking of NFS-mounted files. The NLM version 3 protocol, which is used with the NFS version 2 protocol, is documented in [X/OpenNFS].
Because the NFS version 2 protocol as well as the NFS version 3 protocol is stateless, an additional Network Lock Manager (NLM) protocol is required to support locking of NFS-mounted files. The NLM version 3 protocol, which is used with the NFS version 2 protocol, is documented in [X/OpenNFS].
Some of the changes in the NFS version 3 protocol require a new version of the NLM protocol. This new protocol is the NLM version 4 protocol. The following table summarizes the correspondence between versions of the NFS protocol and NLM protocol.
Some of the changes in the NFS version 3 protocol require a new version of the NLM protocol. This new protocol is the NLM version 4 protocol. The following table summarizes the correspondence between versions of the NFS protocol and NLM protocol.
NFS and NLM protocol compatibility
NFS and NLM protocol compatibility
+---------+---------+ | NFS | NLM | | Version | Version | +===================+ | 2 | 1,3 | +---------+---------+ | 3 | 4 | +---------+---------+
+---------+---------+ | NFS | NLM | | Version | Version | +===================+ | 2 | 1,3 | +---------+---------+ | 3 | 4 | +---------+---------+
This appendix only discusses the differences between the NLM version 3 protocol and the NLM version 4 protocol. As in the NFS version 3 protocol, almost all the names in the NLM version 4 protocol have been changed to include a version number. This appendix does not discuss changes that consist solely of a name change.
This appendix only discusses the differences between the NLM version 3 protocol and the NLM version 4 protocol. As in the NFS version 3 protocol, almost all the names in the NLM version 4 protocol have been changed to include a version number. This appendix does not discuss changes that consist solely of a name change.
6.1 RPC Information
6.1 RPC Information
6.1.1 Authentication
6.1.1 Authentication
The NLM service uses AUTH_NONE in the NULL procedure. AUTH_UNIX, AUTH_SHORT, AUTH_DES, and AUTH_KERB are used for all other procedures. Other authentication types may be supported in the future.
The NLM service uses AUTH_NONE in the NULL procedure. AUTH_UNIX, AUTH_SHORT, AUTH_DES, and AUTH_KERB are used for all other procedures. Other authentication types may be supported in the future.
6.1.2 Constants
6.1.2 Constants
These are the RPC constants needed to call the NLM service. They are given in decimal.
These are the RPC constants needed to call the NLM service. They are given in decimal.
PROGRAM 100021 VERSION 4
PROGRAM 100021 VERSION 4
Callaghan, el al Informational [Page 114] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 114] RFC 1813 NFS Version 3 Protocol June 1995
6.1.3 Transport Address
6.1.3 Transport Address
The NLM service is normally supported over the TCP and UDP protocols. The rpcbind daemon should be queried for the correct transport address.
The NLM service is normally supported over the TCP and UDP protocols. The rpcbind daemon should be queried for the correct transport address.
6.1.4 Basic Data Types
6.1.4 Basic Data Types
uint64 typedef unsigned hyper uint64;
uint64 typedef unsigned hyper uint64;
int64 typedef hyper int64;
int64 typedef hyper int64;
uint32 typedef unsigned long uint32;
uint32 typedef unsigned long uint32;
int32 typedef long int32;
int32 typedef long int32;
These types are new for the NLM version 4 protocol. They are the same as in the NFS version 3 protocol.
These types are new for the NLM version 4 protocol. They are the same as in the NFS version 3 protocol.
nlm4_stats
nlm4_stats
enum nlm4_stats { NLM4_GRANTED = 0, NLM4_DENIED = 1, NLM4_DENIED_NOLOCKS = 2, NLM4_BLOCKED = 3, NLM4_DENIED_GRACE_PERIOD = 4, NLM4_DEADLCK = 5, NLM4_ROFS = 6, NLM4_STALE_FH = 7, NLM4_FBIG = 8, NLM4_FAILED = 9 };
enum nlm4_stats { NLM4_GRANTED = 0, NLM4_DENIED = 1, NLM4_DENIED_NOLOCKS = 2, NLM4_BLOCKED = 3, NLM4_DENIED_GRACE_PERIOD = 4, NLM4_DEADLCK = 5, NLM4_ROFS = 6, NLM4_STALE_FH = 7, NLM4_FBIG = 8, NLM4_FAILED = 9 };
Nlm4_stats indicates the success or failure of a call. This version contains several new error codes, so that clients can provide more precise failure information to applications.
Nlm4_stats indicates the success or failure of a call. This version contains several new error codes, so that clients can provide more precise failure information to applications.
NLM4_GRANTED The call completed successfully.
NLM4_GRANTED The call completed successfully.
NLM4_DENIED The call failed. For attempts to set a lock, this status implies that if the client retries the call later, it may
NLM4_DENIED The call failed. For attempts to set a lock, this status implies that if the client retries the call later, it may
Callaghan, el al Informational [Page 115] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 115] RFC 1813 NFS Version 3 Protocol June 1995
succeed.
succeed.
NLM4_DENIED_NOLOCKS The call failed because the server could not allocate the necessary resources.
NLM4_DENIED_NOLOCKS The call failed because the server could not allocate the necessary resources.
NLM4_BLOCKED Indicates that a blocking request cannot be granted immediately. The server will issue an NLMPROC4_GRANTED callback to the client when the lock is granted.
NLM4_BLOCKED Indicates that a blocking request cannot be granted immediately. The server will issue an NLMPROC4_GRANTED callback to the client when the lock is granted.
NLM4_DENIED_GRACE_PERIOD The call failed because the server is reestablishing old locks after a reboot and is not yet ready to resume normal service.
NLM4_DENIED_GRACE_PERIOD The call failed because the server is reestablishing old locks after a reboot and is not yet ready to resume normal service.
NLM4_DEADLCK The request could not be granted and blocking would cause a deadlock.
NLM4_DEADLCK The request could not be granted and blocking would cause a deadlock.
NLM4_ROFS The call failed because the remote file system is read-only. For example, some server implementations might not support exclusive locks on read-only file systems.
NLM4_ROFS The call failed because the remote file system is read-only. For example, some server implementations might not support exclusive locks on read-only file systems.
NLM4_STALE_FH The call failed because it uses an invalid file handle. This can happen if the file has been removed or if access to the file has been revoked on the server.
NLM4_STALE_FH The call failed because it uses an invalid file handle. This can happen if the file has been removed or if access to the file has been revoked on the server.
NLM4_FBIG The call failed because it specified a length or offset that exceeds the range supported by the server.
NLM4_FBIG The call failed because it specified a length or offset that exceeds the range supported by the server.
NLM4_FAILED The call failed for some reason not already listed. The client should take this status as a strong hint not to retry the request.
NLM4_FAILED The call failed for some reason not already listed. The client should take this status as a strong hint not to retry the request.
nlm4_holder
nlm4_holder
struct nlm4_holder { bool exclusive; int32 svid; netobj oh; uint64 l_offset; uint64 l_len; };
struct nlm4_holder { bool exclusive; int32 svid; netobj oh; uint64 l_offset; uint64 l_len; };
Callaghan, el al Informational [Page 116] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 116] RFC 1813 NFS Version 3 Protocol June 1995
This structure indicates the holder of a lock. The exclusive field tells whether the holder has an exclusive lock or a shared lock. The svid field identifies the process that is holding the lock. The oh field is an opaque object that identifies the host or process that is holding the lock. The l_len and l_offset fields identify the region that is locked. The only difference between the NLM version 3 protocol and the NLM version 4 protocol is that in the NLM version 3 protocol, the l_len and l_offset fields are 32 bits wide, while they are 64 bits wide in the NLM version 4 protocol.
This structure indicates the holder of a lock. The exclusive field tells whether the holder has an exclusive lock or a shared lock. The svid field identifies the process that is holding the lock. The oh field is an opaque object that identifies the host or process that is holding the lock. The l_len and l_offset fields identify the region that is locked. The only difference between the NLM version 3 protocol and the NLM version 4 protocol is that in the NLM version 3 protocol, the l_len and l_offset fields are 32 bits wide, while they are 64 bits wide in the NLM version 4 protocol.
nlm4_lock
nlm4_lock
struct nlm4_lock { string caller_name<LM_MAXSTRLEN>; netobj fh; netobj oh; int32 svid; uint64 l_offset; uint64 l_len; };
struct nlm4_lock { string caller_name<LM_MAXSTRLEN>; netobj fh; netobj oh; int32 svid; uint64 l_offset; uint64 l_len; };
This structure describes a lock request. The caller_name field identifies the host that is making the request. The fh field identifies the file to lock. The oh field is an opaque object that identifies the host or process that is making the request, and the svid field identifies the process that is making the request. The l_offset and l_len fields identify the region of the file that the lock controls. A l_len of 0 means "to end of file".
This structure describes a lock request. The caller_name field identifies the host that is making the request. The fh field identifies the file to lock. The oh field is an opaque object that identifies the host or process that is making the request, and the svid field identifies the process that is making the request. The l_offset and l_len fields identify the region of the file that the lock controls. A l_len of 0 means "to end of file".
There are two differences between the NLM version 3 protocol and the NLM version 4 protocol versions of this structure. First, in the NLM version 3 protocol, the length and offset are 32 bits wide, while they are 64 bits wide in the NLM version 4 protocol. Second, in the NLM version 3 protocol, the file handle is a fixed-length NFS version 2 protocol file handle, which is encoded as a byte count followed by a byte array. In the NFS version 3 protocol, the file handle is already variable-length, so it is copied directly into the fh field. That is, the first four bytes of the fh field are the same as the byte count in an NFS version 3 protocol nfs_fh3. The rest of the fh field contains the byte array from the NFS version 3 protocol nfs_fh3.
There are two differences between the NLM version 3 protocol and the NLM version 4 protocol versions of this structure. First, in the NLM version 3 protocol, the length and offset are 32 bits wide, while they are 64 bits wide in the NLM version 4 protocol. Second, in the NLM version 3 protocol, the file handle is a fixed-length NFS version 2 protocol file handle, which is encoded as a byte count followed by a byte array. In the NFS version 3 protocol, the file handle is already variable-length, so it is copied directly into the fh field. That is, the first four bytes of the fh field are the same as the byte count in an NFS version 3 protocol nfs_fh3. The rest of the fh field contains the byte array from the NFS version 3 protocol nfs_fh3.
Callaghan, el al Informational [Page 117] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 117] RFC 1813 NFS Version 3 Protocol June 1995
nlm4_share
nlm4_share
struct nlm4_share { string caller_name<LM_MAXSTRLEN>; netobj fh; netobj oh; fsh4_mode mode; fsh4_access access; };
struct nlm4_share { string caller_name<LM_MAXSTRLEN>; netobj fh; netobj oh; fsh4_mode mode; fsh4_access access; };
This structure is used to support DOS file sharing. The caller_name field identifies the host making the request. The fh field identifies the file to be operated on. The oh field is an opaque object that identifies the host or process that is making the request. The mode and access fields specify the file-sharing and access modes. The encoding of fh is a byte count, followed by the file handle byte array. See the description of nlm4_lock for more details.
This structure is used to support DOS file sharing. The caller_name field identifies the host making the request. The fh field identifies the file to be operated on. The oh field is an opaque object that identifies the host or process that is making the request. The mode and access fields specify the file-sharing and access modes. The encoding of fh is a byte count, followed by the file handle byte array. See the description of nlm4_lock for more details.
6.2 NLM Procedures
6.2 NLM Procedures
The procedures in the NLM version 4 protocol are semantically the same as those in the NLM version 3 protocol. The only semantic difference is the addition of a NULL procedure that can be used to test for server responsiveness. The procedure names with _MSG and _RES suffixes denote asynchronous messages; for these the void response implies no reply. A syntactic change is that the procedures were renamed to avoid name conflicts with the values of nlm4_stats. Thus the procedure definition is as follows.
The procedures in the NLM version 4 protocol are semantically the same as those in the NLM version 3 protocol. The only semantic difference is the addition of a NULL procedure that can be used to test for server responsiveness. The procedure names with _MSG and _RES suffixes denote asynchronous messages; for these the void response implies no reply. A syntactic change is that the procedures were renamed to avoid name conflicts with the values of nlm4_stats. Thus the procedure definition is as follows.
version NLM4_VERS { void NLMPROC4_NULL(void) = 0;
version NLM4_VERS { void NLMPROC4_NULL(void) = 0;
nlm4_testres NLMPROC4_TEST(nlm4_testargs) = 1;
nlm4_testres NLMPROC4_TEST(nlm4_testargs) = 1;
nlm4_res NLMPROC4_LOCK(nlm4_lockargs) = 2;
nlm4_res NLMPROC4_LOCK(nlm4_lockargs) = 2;
nlm4_res NLMPROC4_CANCEL(nlm4_cancargs) = 3;
nlm4_res NLMPROC4_CANCEL(nlm4_cancargs) = 3;
nlm4_res NLMPROC4_UNLOCK(nlm4_unlockargs) = 4;
nlm4_res NLMPROC4_UNLOCK(nlm4_unlockargs) = 4;
Callaghan, el al Informational [Page 118] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 118] RFC 1813 NFS Version 3 Protocol June 1995
nlm4_res NLMPROC4_GRANTED(nlm4_testargs) = 5;
nlm4_res NLMPROC4_GRANTED(nlm4_testargs) = 5;
void NLMPROC4_TEST_MSG(nlm4_testargs) = 6;
void NLMPROC4_TEST_MSG(nlm4_testargs) = 6;
void NLMPROC4_LOCK_MSG(nlm4_lockargs) = 7;
void NLMPROC4_LOCK_MSG(nlm4_lockargs) = 7;
void NLMPROC4_CANCEL_MSG(nlm4_cancargs) = 8;
void NLMPROC4_CANCEL_MSG(nlm4_cancargs) = 8;
void NLMPROC4_UNLOCK_MSG(nlm4_unlockargs) = 9;
void NLMPROC4_UNLOCK_MSG(nlm4_unlockargs) = 9;
void NLMPROC4_GRANTED_MSG(nlm4_testargs) = 10;
void NLMPROC4_GRANTED_MSG(nlm4_testargs) = 10;
void NLMPROC4_TEST_RES(nlm4_testres) = 11;
void NLMPROC4_TEST_RES(nlm4_testres) = 11;
void NLMPROC4_LOCK_RES(nlm4_res) = 12;
void NLMPROC4_LOCK_RES(nlm4_res) = 12;
void NLMPROC4_CANCEL_RES(nlm4_res) = 13;
void NLMPROC4_CANCEL_RES(nlm4_res) = 13;
void NLMPROC4_UNLOCK_RES(nlm4_res) = 14;
void NLMPROC4_UNLOCK_RES(nlm4_res) = 14;
void NLMPROC4_GRANTED_RES(nlm4_res) = 15;
void NLMPROC4_GRANTED_RES(nlm4_res) = 15;
nlm4_shareres NLMPROC4_SHARE(nlm4_shareargs) = 20;
nlm4_shareres NLMPROC4_SHARE(nlm4_shareargs) = 20;
nlm4_shareres NLMPROC4_UNSHARE(nlm4_shareargs) = 21;
nlm4_shareres NLMPROC4_UNSHARE(nlm4_shareargs) = 21;
nlm4_res NLMPROC4_NM_LOCK(nlm4_lockargs) = 22;
nlm4_res NLMPROC4_NM_LOCK(nlm4_lockargs) = 22;
void NLMPROC4_FREE_ALL(nlm4_notify) = 23;
void NLMPROC4_FREE_ALL(nlm4_notify) = 23;
} = 4;
} = 4;
Callaghan, el al Informational [Page 119] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 119] RFC 1813 NFS Version 3 Protocol June 1995
6.2.0 Procedure 0: NULL - Do nothing
6.2.0 Procedure 0: NULL - Do nothing
SYNOPSIS
SYNOPSIS
void NLMPROC4_NULL(void) = 0;
void NLMPROC4_NULL(void) = 0;
DESCRIPTION
DESCRIPTION
The NULL procedure does no work. It is made available in all RPC services to allow server response testing and timing.
The NULL procedure does no work. It is made available in all RPC services to allow server response testing and timing.
IMPLEMENTATION
IMPLEMENTATION
It is important that this procedure do no work at all so that it can be used to measure the overhead of processing a service request. By convention, the NULL procedure should never require any authentication.
It is important that this procedure do no work at all so that it can be used to measure the overhead of processing a service request. By convention, the NULL procedure should never require any authentication.
ERRORS
ERRORS
It is possible that some server implementations may return RPC errors based on security and authentication requirements.
It is possible that some server implementations may return RPC errors based on security and authentication requirements.
6.3 Implementation issues
6.3 Implementation issues
6.3.1 64-bit offsets and lengths
6.3.1 64-bit offsets and lengths
Some NFS version 3 protocol servers can only support requests where the file offset or length fits in 32 or fewer bits. For these servers, the lock manager will have the same restriction. If such a lock manager receives a request that it cannot handle (because the offset or length uses more than 32 bits), it should return the error, NLM4_FBIG.
Some NFS version 3 protocol servers can only support requests where the file offset or length fits in 32 or fewer bits. For these servers, the lock manager will have the same restriction. If such a lock manager receives a request that it cannot handle (because the offset or length uses more than 32 bits), it should return the error, NLM4_FBIG.
6.3.2 File handles
6.3.2 File handles
The change in the file handle format from the NFS version 2 protocol to the NFS version 3 protocol complicates the lock manager. First, the lock manager needs some way to tell when an NFS version 2 protocol file handle refers to the same file as an NFS version 3 protocol file handle. (This is assuming that the lock manager supports both NLM version 3 protocol clients and NLM version 4 protocol clients.) Second, if the lock manager runs the file handle through a hashing function, the hashing function may need
The change in the file handle format from the NFS version 2 protocol to the NFS version 3 protocol complicates the lock manager. First, the lock manager needs some way to tell when an NFS version 2 protocol file handle refers to the same file as an NFS version 3 protocol file handle. (This is assuming that the lock manager supports both NLM version 3 protocol clients and NLM version 4 protocol clients.) Second, if the lock manager runs the file handle through a hashing function, the hashing function may need
Callaghan, el al Informational [Page 120] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 120] RFC 1813 NFS Version 3 Protocol June 1995
to be retuned to work with NFS version 3 protocol file handles as well as NFS version 2 protocol file handles.
to be retuned to work with NFS version 3 protocol file handles as well as NFS version 2 protocol file handles.
Callaghan, el al Informational [Page 121] RFC 1813 NFS Version 3 Protocol June 1995
Callaghan, el al Informational [Page 121] RFC 1813 NFS Version 3 Protocol June 1995
7.0 Appendix III: Bibliography
7.0 Appendix III: Bibliography
[Corbin] Corbin, John, "The Art of Distributed Programming-Programming Techniques for Remote Procedure Calls." Springer-Verlag, New York, New York. 1991. Basic description of RPC and XDR and how to program distributed applications using them.
[Corbin] Corbin, John, "The Art of Distributed Programming-Programming Techniques for Remote Procedure Calls." Springer-Verlag, New York, New York. 1991. Basic description of RPC and XDR and how to program distributed applications using them.
[Glover] Glover, Fred, "TNFS Protocol Specification," Trusted System Interest Group, Work in Progress.
[Glover] Glover, Fred, "TNFS Protocol Specification," Trusted System Interest Group, Work in Progress.
[Israel] Israel, Robert K., Sandra Jett, James Pownell, George M. Ericson, "Eliminating Data Copies in UNIX-based NFS Servers," Uniforum Conference Proceedings, San Francisco, CA, February 27 - March 2, 1989. Describes two methods for reducing data copies in NFS server code.
[Israel] Israel, Robert K., Sandra Jett, James Pownell, George M. Ericson, "Eliminating Data Copies in UNIX-based NFS Servers," Uniforum Conference Proceedings, San Francisco, CA, February 27 - March 2, 1989. Describes two methods for reducing data copies in NFS server code.
[Jacobson] Jacobson, V., "Congestion Control and Avoidance," Proc. ACM SIGCOMM `88, Stanford, CA, August 1988. The paper describing improvements to TCP to allow use over Wide Area Networks and through gateways connecting networks of varying capacity. This work was a starting point for the NFS Dynamic Retransmission work.
[Jacobson] Jacobson, V., "Congestion Control and Avoidance," Proc. ACM SIGCOMM `88, Stanford, CA, August 1988. The paper describing improvements to TCP to allow use over Wide Area Networks and through gateways connecting networks of varying capacity. This work was a starting point for the NFS Dynamic Retransmission work.
[Juszczak] Juszczak, Chet, "Improving the Performance and Correctness of an NFS Server," USENIX Conference Proceedings, USENIX Association, Berkeley, CA, June 1990, pages 53-63. Describes reply cache implementation that avoids work in the server by handling duplicate requests. More important, though listed as a side-effect, the reply cache aids in the avoidance of destructive non-idempotent operation re-application -- improving correctness.
[Juszczak] Juszczak, Chet, "Improving the Performance and Correctness of an NFS Server," USENIX Conference Proceedings, USENIX Association, Berkeley, CA, June 1990, pages 53-63. Describes reply cache implementation that avoids work in the server by handling duplicate requests. More important, though listed as a side-effect, the reply cache aids in the avoidance of destructive non-idempotent operation re-application -- improving correctness.
[Kazar] Kazar, Michael Leon, "Synchronization and Caching Issues in the Andrew File System," USENIX Conference Proceedings, USENIX Association, Berkeley, CA, Dallas Winter 1988, pages 27-36. A description of the cache consistency scheme in AFS. Contrasted with other distributed file systems.
[Kazar] Kazar, Michael Leon, "Synchronization and Caching Issues in the Andrew File System," USENIX Conference Proceedings, USENIX Association, Berkeley, CA, Dallas Winter 1988, pages 27-36. A description of the cache consistency scheme in AFS. Contrasted with other distributed file systems.
Callaghan, el al Informational [Page 122] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[122ページ]RFC1813NFSバージョン3プロトコル1995年6月
[Macklem] Macklem, Rick, "Lessons Learned Tuning the 4.3BSD Reno Implementation of the NFS Protocol," Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1991. Describes performance work in tuning the 4.3BSD Reno NFS implementation. Describes performance improvement (reduced CPU loading) through elimination of data copies.
[Macklem]Macklem、リック、「レッスンはNFSプロトコルの4.3BSDリノ実装を調整しながら、学びました」、冬のUSENIX会議の議事録、USENIX協会、バークレー(カリフォルニア)1991年1月。 4.3BSDリノNFS実装を調整する際に性能仕事について説明します。 データコピーの除去で性能改良(CPU荷重を抑える)について説明します。
[Mogul] Mogul, Jeffrey C., "A Recovery Protocol for Spritely NFS," USENIX File System Workshop Proceedings, Ann Arbor, MI, USENIX Association, Berkeley, CA, May 1992. Second paper on Spritely NFS proposes a lease-based scheme for recovering state of consistency protocol.
[ムガール人]ムガール人、ジェフリーC.、「Spritely NFSのための回復プロトコル」、USENIXファイルシステムワークショップ議事録、アナーバー(MI)USENIX協会、バークレー(カリフォルニア)は1992がそうするかもしれません。 Spritely NFSに関する2番目の論文は一貫性プロトコルの回復事情のリースベースの体系を提案します。
[Nowicki] Nowicki, Bill, "Transport Issues in the Network File System," ACM SIGCOMM newsletter Computer Communication Review, April 1989. A brief description of the basis for the dynamic retransmission work.
[Nowicki] Nowicki、ビル、「ネットワークファイルシステムの輸送問題」、ACM SIGCOMMニュースレターコンピュータCommunication Review、1989年4月。 ダイナミックな「再-トランスミッション」仕事の基礎の簡単な説明。
[Pawlowski] Pawlowski, Brian, Ron Hixon, Mark Stein, Joseph Tumminaro, "Network Computing in the UNIX and IBM Mainframe Environment," Uniforum `89 Conf. Proc., (1989) Description of an NFS server implementation for IBM's MVS operating system.
[ポロウスキー]ポロウスキー、ブライアン、ロンヒクソン、マーク・ステイン、ジョゼフTumminaro、「UNIXとIBMメインフレーム環境におけるネットワークコンピューティング」、Uniforum89年Conf。 Proc、IBMのMVSオペレーティングシステムのためのNFSサーバ実装の(1989)記述。
[RFC1014] Sun Microsystems, Inc., "XDR: External Data Representation Standard", RFC 1014, Sun Microsystems, Inc., June 1987. Specification for canonical format for data exchange, used with RPC.
[RFC1014]サン・マイクロシステムズ・インク、「XDR:」 「外部データ表現規格」、RFC1014、サン・マイクロシステムズ・インク、1987年6月。 RPCと共に使用されるデータ交換のための正準な形式のための仕様。
[RFC1057] Sun Microsystems, Inc., "RPC: Remote Procedure Call Protocol Specification", RFC 1057, Sun Microsystems, Inc., June 1988. Remote procedure protocol specification.
[RFC1057]サン・マイクロシステムズ・インク、「RPC:」 「遠隔手続き呼び出しプロトコル仕様」、RFC1057、サン・マイクロシステムズ・インク、1988年6月。 リモート手順プロトコル仕様。
[RFC1094] Sun Microsystems, Inc., "Network Filesystem Specification", RFC 1094, Sun Microsystems, Inc., March 1989. NFS version 2 protocol specification.
[RFC1094]サン・マイクロシステムズ・インク、「ネットワークファイルシステム仕様」、RFC1094、サン・マイクロシステムズ・インク、1989年3月。 NFSバージョン2は仕様を議定書の中で述べます。
Callaghan, el al Informational [Page 123] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[123ページ]RFC1813NFSバージョン3プロトコル1995年6月
[Sandberg] Sandberg, R., D. Goldberg, S. Kleiman, D. Walsh, B. Lyon, "Design and Implementation of the Sun Network Filesystem," USENIX Conference Proceedings, USENIX Association, Berkeley, CA, Summer 1985. The basic paper describing the SunOS implementation of the NFS version 2 protocol, and discusses the goals, protocol specification and trade-offs.
[サンドベルイ]サンドベルイ、R.、D.ゴールドバーグ、S.Kleiman、D.ウォルシュ、B.リヨン、「太陽のデザインと実装はファイルシステムをネットワークでつなぎます」、USENIX会議の議事録、USENIX協会、バークレー(カリフォルニア)1985年夏。 NFSバージョン2のSunOS実装について説明する基本的な紙は、目標、プロトコル仕様、およびトレードオフを議定書の中で述べて、議論します。
[Srinivasan] Srinivasan, V., Jeffrey C. Mogul, "Spritely NFS: Implementation and Performance of Cache Consistency Protocols", WRL Research Report 89/5, Digital Equipment Corporation Western Research Laboratory, 100 Hamilton Ave., Palo Alto, CA, 94301, May 1989. This paper analyzes the effect of applying a Sprite-like consistency protocol applied to standard NFS. The issues of recovery in a stateful environment are covered in [Mogul].
[Srinivasan]Srinivasan、V.、ジェフリー・C.ムガール人、「Spritely NFS:」 WRL研究レポート89/5(実験のDEC西洋の研究100ハミルトンAve)パロアルト、カリフォルニア (94301)は「キャッシュ一貫性プロトコルの実装とパフォーマンス」と1989にそうするかもしれません。 この紙は標準のNFSに適用されたSpriteのような一貫性プロトコルを適用するという効果を分析します。 stateful環境における回復の問題は[ムガール人]でカバーされています。
[X/OpenNFS] X/Open Company, Ltd., X/Open CAE Specification: Protocols for X/Open Internetworking: XNFS, X/Open Company, Ltd., Apex Plaza, Forbury Road, Reading Berkshire, RG1 1AX, United Kingdom, 1991. This is an indispensable reference for NFS version 2 protocol and accompanying protocols, including the Lock Manager and the Portmapper.
[X/OpenNFS] X/Open会社Ltd.、X/Open CAE仕様: X/Openインターネットワーキングのためのプロトコル: XNFS X/Open会社Ltd.、頂点広場、フォーベリー道路がバークシャーを読むRG1 1AX、イギリスの1991。 これはLockマネージャとPortmapperを含むNFSバージョン2プロトコルと付随のプロトコルの不可欠の参照です。
[X/OpenPCNFS] X/Open Company, Ltd., X/Open CAE Specification: Protocols for X/Open Internetworking: (PC)NFS, Developer's Specification, X/Open Company, Ltd., Apex Plaza, Forbury Road, Reading Berkshire, RG1 1AX, United Kingdom, 1991. This is an indispensable reference for NFS version 2 protocol and accompanying protocols, including the Lock Manager and the Portmapper.
[X/OpenPCNFS] X/Open会社Ltd.、X/Open CAE仕様: X/Openインターネットワーキングのためのプロトコル: (PC)NFS開発者の仕様、X/Open会社Ltd.、頂点広場、フォーベリー道路がバークシャーを読むRG1 1AX、イギリスの1991。 これはLockマネージャとPortmapperを含むNFSバージョン2プロトコルと付随のプロトコルの不可欠の参照です。
Callaghan, el al Informational [Page 124] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[124ページ]RFC1813NFSバージョン3プロトコル1995年6月
8. Security Considerations
8. セキュリティ問題
Since sensitive file data may be transmitted or received from a server by the NFS protocol, authentication, privacy, and data integrity issues should be addressed by implementations of this protocol.
NFSプロトコルでサーバから機密のファイルデータを伝えるか、または受け取るかもしれないので、認証、プライバシー、およびデータ保全問題はこのプロトコルの実装によって扱われるべきです。
As with the previous protocol revision (version 2), NFS version 3 defers to the authentication provisions of the supporting RPC protocol [RFC1057], and assumes that data privacy and integrity are provided by underlying transport layers as available in each implementation of the protocol. See section 4.4 for a discussion relating to file access permissions.
前のプロトコル改正(バージョン2)のように、NFSバージョン3は、RPCプロトコル[RFC1057]をサポートするのに関する認証条項に延期して、データプライバシーと保全が利用可能であるとして基本的なトランスポート層のそばでプロトコルの各実装に提供されると仮定します。 ファイルアクセス許容に関連する議論に関してセクション4.4を見てください。
9. Acknowledgements
9. 承認
This description of the protocol is derived from an original document written by Brian Pawlowski and revised by Peter Staubach. This protocol is the result of a co-operative effort that comprises the contributions of Geoff Arnold, Brent Callaghan, John Corbin, Fred Glover, Chet Juszczak, Mike Eisler, John Gillono, Dave Hitz, Mike Kupfer, Rick Macklem, Ron Minnich, Brian Pawlowski, David Robinson, Rusty Sandberg, Craig Schamp, Spencer Shepler, Carl Smith, Mark Stein, Peter Staubach, Tom Talpey, Rob Thurlow, and Mark Wittle.
ブライアン・ポロウスキーによって書かれていて、ピーター・ストーバックによって改訂された正本からプロトコルのこの記述を得ます。 このプロトコルはジェフ・アーノルド、ブレント・キャラハン、ジョン・コービン、フレッドGlover、チェットJuszczak、マイク・アイスラー、ジョンGillono、デーヴHitz、マイク・クップファー、リックMacklem、ロンミンニヒ、ブライアン・ポロウスキー、デイビッド・ロビンソン、Rustyサンドベルイ、クレイグSchamp、スペンサーShepler、カール・スミス、マーク・ステイン、ピーター・ストーバック、トムTalpey、ロブ・サーロウ、およびマークWittleの貢献を包括する協力的な取り組みの結果です。
Callaghan, el al Informational [Page 125] RFC 1813 NFS Version 3 Protocol June 1995
キャラハン、高架鉄道アルInformational[125ページ]RFC1813NFSバージョン3プロトコル1995年6月
10. Authors' Addresses
10. 作者のアドレス
Address comments related to this protocol to:
アドレスコメントは以下のことのためにこのプロトコルに関連しました。
nfs3@eng.sun.com
nfs3@eng.sun.com
Brent Callaghan Sun Microsystems, Inc. 2550 Garcia Avenue Mailstop UMTV05-44 Mountain View, CA 94043-1100
ブレントキャラハンサン・マイクロシステムズ・インク2550ガルシア・アベニューMailstop UMTV05-44マウンテンビュー、カリフォルニア94043-1100
Phone: 1-415-336-1051 Fax: 1-415-336-6015 EMail: brent.callaghan@eng.sun.com
以下に電話をしてください。 1-415-336-1051 Fax: 1-415-336-6015 メールしてください: brent.callaghan@eng.sun.com
Brian Pawlowski Network Appliance Corp. 319 North Bernardo Ave. Mountain View, CA 94043
ブライアンポロウスキーネットアプライアンス社319の北のベルナルドAve。 マウンテンビュー、カリフォルニア 94043
Phone: 1-415-428-5136 Fax: 1-415-428-5151 EMail: beepy@netapp.com
以下に電話をしてください。 1-415-428-5136 Fax: 1-415-428-5151 メールしてください: beepy@netapp.com
Peter Staubach Sun Microsystems, Inc. 2550 Garcia Avenue Mailstop UMTV05-44 Mountain View, CA 94043-1100
ピーターストーバックサン・マイクロシステムズ・インク2550ガルシア・アベニューMailstop UMTV05-44マウンテンビュー、カリフォルニア94043-1100
Phone: 1-415-336-5615 Fax: 1-415-336-6015 EMail: peter.staubach@eng.sun.com
以下に電話をしてください。 1-415-336-5615 Fax: 1-415-336-6015 メールしてください: peter.staubach@eng.sun.com
Callaghan, el al Informational [Page 126]
キャラハン、高架鉄道アルInformational[126ページ]
一覧
スポンサーリンク