社区
网络协议与配置
帖子详情
NFS设置Clientid返回错误码客户端处理方式
kakaqiminghaonan
2017-11-07 11:54:09
在设置clientid过程中,服务端会返回nfserr_clid_inuse,nfserr_jukebox等错误码,那么客户端是怎么处理这些错误码的呢?
客户端收到nfserr_clid_inuse,nfserr_jukebox等的错误码还会继续请求设置clientid吗?
我看了客户端的nfs4_proc_exchange_id及相关调用函数,但还是不明白客户端具体是怎么处理这些错误码的。
...全文
171
回复
打赏
收藏
NFS设置Clientid返回错误码客户端处理方式
在设置clientid过程中,服务端会返回nfserr_clid_inuse,nfserr_jukebox等错误码,那么客户端是怎么处理这些错误码的呢? 客户端收到nfserr_clid_inuse,nfserr_jukebox等的错误码还会继续请求设置clientid吗? 我看了客户端的nfs4_proc_exchange_id及相关调用函数,但还是不明白客户端具体是怎么处理这些错误码的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
client
id
NFS
v2和
NFS
v3是无状态协议,服务器不需要记录
客户端
状态,只需要监听并响应
客户端
的请求就可以了。而
NFS
v4是一种有状态的协议,服务器需要记录
客户端
的状态,需要处理
客户端
的各种异常情况。
NFS
v4中,每个
客户端
用一个8字节的数字表示,这个数据称为
client
id
,服务器端可以保证任何两个
客户端
的
client
id
不相同。与
client
id
相关的两个请求是SET
CLIENT
ID
和SETCLIEN
NFS
中的文件锁
文件锁是保持文件同步的一种手段,当多个用户同时操作同一个文件时,文件锁可以保证数据不发生冲突。
NFS
v2和
NFS
v3依靠NLM协议实现文件锁,
NFS
v4本身实现了文件锁,不需要NLM协同工作了。
NFS
中的文件锁既可以加在
客户端
,也可以加在服务器端。如果
客户端
挂载
NFS
文件系统时使用了选项nolock,表示在
客户端
加锁。这种情况下可以保证同一个
客户端
的多个进程访问同一个文件的过程不发生冲突,但是不同
LWN:
NFS
: 新千年的进展!
关注了就能看到更多这么棒的文章哦~
NFS
: the new millenniumJune 24, 2022This article was contributed by Neil BrownDeepL assisted translationhttps://lwn.net/Articles/898262/网络文件系统(
NFS
)协议已经伴随我们近 40 年了。虽然最初被定义...
SET
CLIENT
ID
上篇文章中我们讲到了Linux中
client
id
的协商过程,这个过程是由函数
nfs
4_init_
client
id
()实现的。这个函数包含两个步骤:(1)发起SET
CLIENT
ID
请求,由函数
nfs
4_proc_set
client
id
()实现;(2)发起SET
CLIENT
ID
_CONFIRM请求,由函数
nfs
4_proc_set
client
id
_confirm()实现。这篇文章中我们详细详解SETC
SET
CLIENT
ID
_CONFIRM
SET
CLIENT
ID
请求中,服务器为
客户端
设置
了
client
id
,但是
客户端
不能马上使用这个
client
id
,必须先向服务器发起SET
CLIENT
ID
_CONFIRM请求,确认接收到了
client
id
,然后才能使用。 1.
客户端
代码 SET
CLIENT
ID
_CONFIRM使用的数据结构 struct
nfs
4_set
client
id
_res { u64
网络协议与配置
1,738
社区成员
1,306
社区内容
发帖
与我相关
我的任务
网络协议与配置
网络协议与配置相关内容讨论专区
复制链接
扫一扫
分享
社区描述
网络协议与配置相关内容讨论专区
网络协议
网络安全
tcp/ip
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章