o365邮箱登录-365bet提款速度-外勤365官方网站

块层对持久性预留的支持¶

块层对持久性预留的支持¶

块层对持久性预留的支持¶

Linux 内核支持一个用户空间接口,用于简化持久性预留,这些预留映射到支持它们的块设备(如 SCSI)。持久性预留允许在共享存储设置中,限制对块设备的访问,使其仅限于特定的发起方。

本文档概述了支持的 ioctl 命令。有关更详细的参考,请查阅 SCSI Primary Commands 标准,特别是关于预留的部分以及“PERSISTENT RESERVE IN”和“PERSISTENT RESERVE OUT”命令。

所有实现都应确保预留能在断电后继续存在,并涵盖多路径环境中的所有连接。这些行为在 SPC 中是可选的,但 Linux 将自动应用它们。

支持以下类型的预留:¶

PR_WRITE_EXCLUSIVE只有拥有预留的发起方才能写入设备。任何发起方都可以从设备读取。

PR_EXCLUSIVE_ACCESS只有拥有预留的发起方才能访问设备。

PR_WRITE_EXCLUSIVE_REG_ONLY只有持有注册密钥的发起方才能写入设备,任何发起方都可以从设备读取。

PR_EXCLUSIVE_ACCESS_REG_ONLY只有持有注册密钥的发起方才能访问设备。

PR_WRITE_EXCLUSIVE_ALL_REGS

只有持有注册密钥的发起方才能写入设备,任何发起方都可以从设备读取。所有持有注册密钥的发起方都被视为预留持有者。如果想使用此类型,请参考 SPC 规范中关于预留持有者的定义。

PR_EXCLUSIVE_ACCESS_ALL_REGS只有持有注册密钥的发起方才能访问设备。所有持有注册密钥的发起方都被视为预留持有者。如果想使用此类型,请参考 SPC 规范中关于预留持有者的定义。

支持以下 ioctl:¶

1. IOC_PR_REGISTER¶

如果 new_key 参数非空,此 ioctl 命令将注册一个新的预留。如果不存在现有预留,old_key 必须为零;如果现有预留应被替换,old_key 必须包含旧的预留密钥。

如果 new_key 参数为 0,它将注销 old_key 中传入的现有预留。

2. IOC_PR_RESERVE¶

此 ioctl 命令预留设备,并根据 type 参数限制其他设备的访问。key 参数必须是设备现有的预留密钥,该密钥通过 IOC_PR_REGISTER、IOC_PR_REGISTER_IGNORE、IOC_PR_PREEMPT 或 IOC_PR_PREEMPT_ABORT 命令获取。

3. IOC_PR_RELEASE¶

此 ioctl 命令释放由 key 和 flags 指定的预留,从而移除其隐含的任何访问限制。

4. IOC_PR_PREEMPT¶

此 ioctl 命令释放 old_key 引用的现有预留,并将其替换为针对预留密钥 new_key 的新类型预留。

5. IOC_PR_PREEMPT_ABORT¶

此 ioctl 命令的作用类似于 IOC_PR_PREEMPT,但它还会中止通过 old_key 标识的连接发送的任何未完成命令。

6. IOC_PR_CLEAR¶

此 ioctl 命令注销 key 和任何其他已注册到设备的预留密钥,并解除任何现有预留。

标志¶

所有 ioctl 都有一个标志字段。目前只支持一个标志

PR_FL_IGNORE_KEY忽略现有的预留密钥。这通常受 IOC_PR_REGISTER 支持,并且某些实现可能支持 IOC_PR_RESERVE 的此标志。

对于所有未知标志,内核将返回 -EOPNOTSUPP。

相关推荐
问道宠物进化如何提升?进化技巧揭秘!
外勤365官方网站

问道宠物进化如何提升?进化技巧揭秘!

📅 07-24 🔥 791
java中类如何分类
365bet提款速度

java中类如何分类

📅 07-03 🔥 106
梦幻西游手游到底有多少版本
o365邮箱登录

梦幻西游手游到底有多少版本

📅 07-24 🔥 846