NFSv4.1 Server Implementation

来源:互联网 发布:淘宝上充气娃娃上当 编辑:程序博客网 时间:2024/05/16 04:39

NFSv4.1 Server Implementation
If you have any comment or update to the content, please contact the
original document maintainer directly.  However, if you have a problem
communicating in English you can also ask the Chinese maintainer for
help.  Contact the Chinese maintainer if this translation is outdated
or if there is a problem with the translation.


如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
译存在问题,请联系中文版维护者。
姓名:


Server support for minorversion 1 can be controlled using the
/proc/fs/nfsd/versions control file.  The string output returned
by reading this file will contain either "+4.1" or "-4.1"
correspondingly.
可以控制使用的服务器支持为minorversion1
/的/ proc / FS / nfsd的版本控制文件。返回的字符串输出
通过阅读这个文件将包含“+4.1”或“-4.1”

Currently, server support for minorversion 1 is disabled by default.
It can be enabled at run time by writing the string "+4.1" to
the /proc/fs/nfsd/versions control file.  Note that to write this
control file, the nfsd service must be taken down.  Use your user-mode
nfs-utils to set this up; see rpc.nfsd(8)
目前,服务器支持为minorversion1在默认情况下是禁用的
它可以通过在在/ proc / FS // nfsd的版本控制文件中写入字符串“4.1”来运行
。写这
控制文件需要注意的是
,必须采取nfsd服务。使用你的用户模式来完成对
NFS-utils的设置,此见rpc.nfsd(8)
(Warning: older servers will interpret "+4.1" and "-4.1" as "+4" and
"-4", respectively.  Therefore, code meant to work on both new and old
kernels must turn 4.1 on or off *before* turning support for version 4
on or off; rpc.nfsd does this correctly.)
警告:旧服务器将演绎“4.1”和“-4.1”为“4”和
“-4”。因此,代码意味着新老
内核必须在打开或关闭*前*打开或关闭支版本44.1
; rpc.nfsd确实是正确的。
The NFSv4 minorversion 1 (NFSv4.1) implementation in nfsd is based
on RFC 5661.
NFSv4的副版本1的NFSv4.1实施nfsd
RFC5661。
From the many new features in NFSv4.1 the current implementation
focuses on the mandatory-to-implement NFSv4.1 Sessions, providing
"exactly once" semantics and better control and throttling of the
resources allocated for each client.
NFSv4.1许多新的功能,在当前实施的NFSv4.1
侧重于强制实施会议,
“一次”的语义和更好地控制和节流
为每个客户端分配的资源。
Other NFSv4.1 features, Parallel NFS operations in particular,
are still under development out of tree.
See http://wiki.linux-nfs.org/wiki/index.php/PNFS_prototype_design
for more information.
其他的NFSv4.1的特点,特别是并行NFS操作,
是仍在开发中的树。
见http://wiki.linux-nfs.org/wiki/index.php/PNFS_prototype_design“
了解更多信息。
The current implementation is intended for developers only: while it
does support ordinary file operations on clients we have tested against
(including the linux client), it is incomplete in ways which may limit
features unexpectedly, cause known bugs in rare cases, or cause
interoperability problems with future clients.  Known issues:
目前实施的目的是:我们已经测试,当开发人员只是
不支持普通文件操作的客户时,
(包括Linux客户机),它是不完整的方式,这可能会限制
功能意外,在罕见的情况下导致已知bug,或导致
未来的客户的互操作性问题。已知问题:
 
In addition, some limitations are inherited from the current NFSv4
implementation:

 - Incomplete delegation enforcement: if a file is renamed or
   unlinked by a local process, a client holding a delegation may
   continue to indefinitely allow opens of the file under the old
   name.
另外,一些限制继承于目前的nfsv4的实现


 - 不完全代表团执法:如果一个文件被重命名或由本地进程
中断,拿着一个代表团的客户可以
继续无限期地根据旧的文件名打开文件。

The table below, taken from the NFSv4.1 document, lists
the operations that are mandatory to implement (REQ), optional
(OPT), and NFSv4.0 operations that are required not to implement (MNI)
in minor version 1.  The first column indicates the operations that
are not supported yet by the linux server implementation.
如下表所示,取自NFSv4.1文件,列出
强制实施(REQ),可选的操作
(OPT),要求不落实(MNI)的
次要版本1NFSv4.0操作,。第一列表示的操作
目前还不支持Linux服务器实现。

The OPTIONAL features identified and their abbreviations are as follows:
 pNFS Parallel NFS
 FDELG File Delegations
 DDELG Directory Delegations
可选功能,其缩写如下:
pNFS:并行NFS
FDELG:文件代表团
DDELG:目录代表团
The following abbreviations indicate the linux server implementation status.
 I Implemented NFSv4.1 operations.
 NS Not Supported.
 NS* unimplemented optional feature.
 P pNFS features implemented out of tree.
 PNS pNFS features that are not supported yet (out of tree).
以下缩写表示Linux服务器实现状态。
我:实施的NFSv4.1操作。
NS:不支持。
NS*:未实现的可选功能。
P :pNFS的特性实现了树。
PNS:pNFS的功能,目前还不支持(满分树
Operations
操作
   +----------------------+------------+--------------+----------------+
   | Operation            | REQ, REC,  | Feature      | Definition     |
   |                      | OPT, or    | (REQ, REC,   |                |
   |                      | MNI        | or OPT)      |                |
   +----------------------+------------+--------------+----------------+
   | ACCESS               | REQ        |              | Section 18.1   |
I  | BACKCHANNEL_CTL      | REQ        |              | Section 18.33  |
I  | BIND_CONN_TO_SESSION | REQ        |              | Section 18.34  |
   | CLOSE                | REQ        |              | Section 18.2   |
   | COMMIT               | REQ        |              | Section 18.3   |
   | CREATE               | REQ        |              | Section 18.4   |
I  | CREATE_SESSION       | REQ        |              | Section 18.36  |
NS*| DELEGPURGE           | OPT        | FDELG (REQ)  | Section 18.5   |
   | DELEGRETURN          | OPT        | FDELG,       | Section 18.6   |
   |                      |            | DDELG, pNFS  |                |
   |                      |            | (REQ)        |                |
I  | DESTROY_CLIENTID     | REQ        |              | Section 18.50  |
I  | DESTROY_SESSION      | REQ        |              | Section 18.37  |
I  | EXCHANGE_ID          | REQ        |              | Section 18.35  |
I  | FREE_STATEID         | REQ        |              | Section 18.38  |
   | GETATTR              | REQ        |              | Section 18.7   |
P  | GETDEVICEINFO        | OPT        | pNFS (REQ)   | Section 18.40  |
P  | GETDEVICELIST        | OPT        | pNFS (OPT)   | Section 18.41  |
   | GETFH                | REQ        |              | Section 18.8   |
NS*| GET_DIR_DELEGATION   | OPT        | DDELG (REQ)  | Section 18.39  |
P  | LAYOUTCOMMIT         | OPT        | pNFS (REQ)   | Section 18.42  |
P  | LAYOUTGET            | OPT        | pNFS (REQ)   | Section 18.43  |
P  | LAYOUTRETURN         | OPT        | pNFS (REQ)   | Section 18.44  |
   | LINK                 | OPT        |              | Section 18.9   |
   | LOCK                 | REQ        |              | Section 18.10  |
   | LOCKT                | REQ        |              | Section 18.11  |
   | LOCKU                | REQ        |              | Section 18.12  |
   | LOOKUP               | REQ        |              | Section 18.13  |
   | LOOKUPP              | REQ        |              | Section 18.14  |
   | NVERIFY              | REQ        |              | Section 18.15  |
   | OPEN                 | REQ        |              | Section 18.16  |
NS*| OPENATTR             | OPT        |              | Section 18.17  |
   | OPEN_CONFIRM         | MNI        |              | N/A            |
   | OPEN_DOWNGRADE       | REQ        |              | Section 18.18  |
   | PUTFH                | REQ        |              | Section 18.19  |
   | PUTPUBFH             | REQ        |              | Section 18.20  |
   | PUTROOTFH            | REQ        |              | Section 18.21  |
   | READ                 | REQ        |              | Section 18.22  |
   | READDIR              | REQ        |              | Section 18.23  |
   | READLINK             | OPT        |              | Section 18.24  |
   | RECLAIM_COMPLETE     | REQ        |              | Section 18.51  |
   | RELEASE_LOCKOWNER    | MNI        |              | N/A            |
   | REMOVE               | REQ        |              | Section 18.25  |
   | RENAME               | REQ        |              | Section 18.26  |
   | RENEW                | MNI        |              | N/A            |
   | RESTOREFH            | REQ        |              | Section 18.27  |
   | SAVEFH               | REQ        |              | Section 18.28  |
   | SECINFO              | REQ        |              | Section 18.29  |
I  | SECINFO_NO_NAME      | REC        | pNFS files   | Section 18.45, |
   |                      |            | layout (REQ) | Section 13.12  |
I  | SEQUENCE             | REQ        |              | Section 18.46  |
   | SETATTR              | REQ        |              | Section 18.30  |
   | SETCLIENTID          | MNI        |              | N/A            |
   | SETCLIENTID_CONFIRM  | MNI        |              | N/A            |
NS | SET_SSV              | REQ        |              | Section 18.47  |
I  | TEST_STATEID         | REQ        |              | Section 18.48  |
   | VERIFY               | REQ        |              | Section 18.31  |
NS*| WANT_DELEGATION      | OPT        | FDELG (OPT)  | Section 18.49  |
   | WRITE                | REQ        |              | Section 18.32  |

Callback Operations

   +-------------------------+-----------+-------------+---------------+
   | Operation               | REQ, REC, | Feature     | Definition    |
   |                         | OPT, or   | (REQ, REC,  |               |
   |                         | MNI       | or OPT)     |               |
   +-------------------------+-----------+-------------+---------------+
   | CB_GETATTR              | OPT       | FDELG (REQ) | Section 20.1  |
P  | CB_LAYOUTRECALL         | OPT       | pNFS (REQ)  | Section 20.3  |
NS*| CB_NOTIFY               | OPT       | DDELG (REQ) | Section 20.4  |
P  | CB_NOTIFY_DEVICEID      | OPT       | pNFS (OPT)  | Section 20.12 |
NS*| CB_NOTIFY_LOCK          | OPT       |             | Section 20.11 |
NS*| CB_PUSH_DELEG           | OPT       | FDELG (OPT) | Section 20.5  |
   | CB_RECALL               | OPT       | FDELG,      | Section 20.2  |
   |                         |           | DDELG, pNFS |               |
   |                         |           | (REQ)       |               |
NS*| CB_RECALL_ANY           | OPT       | FDELG,      | Section 20.6  |
   |                         |           | DDELG, pNFS |               |
   |                         |           | (REQ)       |               |
NS | CB_RECALL_SLOT          | REQ       |             | Section 20.8  |
NS*| CB_RECALLABLE_OBJ_AVAIL | OPT       | DDELG, pNFS | Section 20.7  |
   |                         |           | (REQ)       |               |
I  | CB_SEQUENCE             | OPT       | FDELG,      | Section 20.9  |
   |                         |           | DDELG, pNFS |               |
   |                         |           | (REQ)       |               |
NS*| CB_WANTS_CANCELLED      | OPT       | FDELG,      | Section 20.10 |
   |                         |           | DDELG, pNFS |               |
   |                         |           | (REQ)       |               |
   +-------------------------+-----------+-------------+---------------+

Implementation notes:
注释
DELEGPURGE:
* mandatory only for servers that support CLAIM_DELEGATE_PREV and/or
  CLAIM_DELEG_PREV_FH (which allows clients to keep delegations that
  persist across client reboots).  Thus we need not implement this for
  now.
DELEGPURGE:
*只用于服务器,支持CLAIM_DELEGATE_PREV和/或强制
  CLAIM_DELEG_PREV_FH(它允许那些坚持在客户端重新启动的客户保持代表团,
  )。因此,我们现在不需要实现这个
  。
EXCHANGE_ID:
* only SP4_NONE state protection supported
* implementation ids are ignored
EXCHANGE_ID:
*只有SP4_NONE是国家重点保护的
*IDS实施被忽略
CREATE_SESSION:
* backchannel attributes are ignored
CREATE_SESSION:
*暗道属性被忽略
SEQUENCE:
* no support for dynamic slot table renegotiation (optional)
序列:
*不支持动态时隙表重新谈判(可选)
Nonstandard compound limitations:
* No support for a sessions fore channel RPC compound that requires both a
  ca_maxrequestsize request and a ca_maxresponsesize reply, so we may
  fail to live up to the promise we made in CREATE_SESSION fore channel
  negotiation.非标准复合局限:
*不支持一个会话通道RPC化合物需要一个
  ca_maxrequestsize请求和一个ca_maxresponsesize的答复,所以我们可能
  辜负我们在脱颖而出CREATE_SESSION通道
  协商)的承诺,。
* No more than one read-like operation allowed per compound; encoding
  replies that cross page boundaries (except for read data) not handled.
每编码化合物允许不超过一个类似只读操作;
  不处理跨页边界(读取数据除外)的答复。
See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues.

原创粉丝点击