PNFS协议中stateid分析

1.“owners”通常对应着客户端内部的进程
2.当服务器授予了一个任意类型的锁时(包括open、字节粒度锁、delegation和layout),会返回一个唯一的stateid,这个stateid则代表了属于同一个文件、同一种类型、并且共享相同的所有权特性的的一个锁集合(经常的情况是一个锁)。
3.记, 当给定一个stateid时,服务器可以通过stateid找到关联的一个或者多个state owner ( 多个state owner 的情况是指open-owner/lock-owner对)以及关联的filehandle。当stateid 被使用时, 当前的filehandle 一定是与这个stateid相关联的filehandle。
4.与一个给定的client ID相关联的所有的stateid都与一个共用的lease相关联。这个lease表示对这些stateid以及它们代表的对象的所有权
5.除了一些特殊类型外,每个stateid代表了一类锁,
O stateid可以表示文件的打开。
这种情况下每个stateid代表了一个给定“客户端ID/打开属
主/文件句柄”三元组的 open状态。当OPEN操作导致
upgrade和OPEN_DOWNGRADE操作时,这些stateid会发生
变化(即后续stateid的seqid值增加)以作为OPEN的回应。
O stateid可以表示字节范围锁的集合。
一个特定属主在一个特定文件上持有的所有锁,以及在特定打
开文件的“庇护”下所获得的所有锁,都和含seqid的单个
stateid相关联。每当LOCK和LOCKU操作影响到锁集合时,
该seqid的值就会增加。
O stateid可以表示文件授权。授权是服务器向客户端赋予的
一种可召回的保证。在该授权被返回之前,其他客户端都不可
以引用或修改这个文件。在NFSv4.1中,在常规文件和非常
规文件上都可以获取文件授权。
一个stateid代表了客户端为某特定文件句柄所持有的单个
授权。
O stateid可以表示目录授权。目录授权服务器向客户端赋予
的一种可召回的保证。在该授权被返回之前,其他客户端都不
可以引用或修改该目录。
一个stateid代表了客户端为某特定目录文件句柄所持有的
单个授权。
O stateid可以表示布局。布局是服务器向客户端赋予的一种
可召回的保证。可通过另一数据访问协议在指定的地方访问特
定的文件。这样的访问只限于某些特殊的字节范围集合,而且
可以持续访问,直到那些字节范围减少或者布局被返回为止。
6.stateid分为两个域:一个96比特的用来识别具体锁集合的
“other”域,以及一个32比特的“seqid”序列值。除了
特殊stateid(参见8.2.3节)的情况之外,“other”域
的一个特定值表示了某指定文件或目录上的相同类型(如字
节范围锁、打开、授权或者布局)的锁集合,这些锁共享相
同的ownership characteristics。而seqid域则指定
了这个锁集合的特定实例, seqid值增加可用来显示该锁
集合的变化。当在锁集合中增加或删除锁,或者锁应用的字
节范围发生变化,或者这个类型的一个或多个锁upgrade或
downgrade,都会使seqid的值增加。
7.故障恢复的关键要求是客户端和服务器都要知道对方何时
已发生故障。此外,还要求客户端在服务器重启前后拥有
一致的数据视图。所有可能在客户端或网络缓存中排队的
READ和WRITE操作必须等到客户端成功地恢复了保护
READ和WRITE操作的锁之后才能执行。在服务器能可靠地
确定客户端已经恢复了足够的锁状态以保证这种操作能够
被毫无风险地处理之前,任何到达服务器的操作都必须被
拒绝。出现这种情况是由于下面两种原因之一:
o 提供的状态不再有效——因为状态跟一个现在无效的
客户端ID关联。在这种情况下客户端将收到一个
NFS4ERR_BADSESSION 错误或者一个
NFS4ERR_DEADSESSION错误,并且任何打算“把一个
新会话附接到该无效客户端ID” 的尝试都会导致一个
NFS4ERR_STALE_CLIENTID错误。
o 后续的锁恢复操作可能使得不适合执行本操作
(NFS4ERR_GRACE)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值