jxnxsdengyu
作者jxnxsdengyu课题专家组·2020-04-24 17:45
系统工程师·江西农信

存储入门必读---SCSI访问控制原理介绍

字数 1680阅读 1541评论 0赞 1

前言

本文为大家介绍SCSI-2和SCSI-3访问控制原理。主要内容包括:SCSI-2 Reserve/Release/Reset和SCSI-3 Persistent Reserve IN/ Persistent Reserve OUT/ PREEMPT以及SCSI访问控制常见场景。

SCSI-2 Reserve(预留)/Release(释放)/Reset(重置)

SCSI-2协议中客户端访问lun过程如下:
1.客户端向lun发起预留操作
2.预留操作成功后,客户端获得lun操作权限;预留失败,提示预留冲突,会继续尝试,直到预留成功。
3.客户端操作完毕后,执行释放操作,其他客户端可以预留。
SCSI-2访问控制主要缺点有:
1.预留操作基于路径。预留和释放必须由相同的客户端完成,一台主机不能释放另外一台主机的预留,同一主机HBA卡不能取消相同主机另外一块HBA的预留。
2.预留无法长久保留。主机重启将会丢失预留信息。
3.如果lun已经被预留,其他主机无法再预留。如果其他主机要想获得lun操作权限,必须对lun进行重置,重置操作可能会导致数据丢失。重置后释放掉lun现有的预留,重置操作由lun主动发起,原来预留主机并不知晓。

SCSI-3 Persistent Reserve (PR)/ PREEMPT(抢占)

SCSI-3协议引入PGR(persistent group reservation)功能。在访问lun之前,客户端首先向lun注册(registration)一个预留密钥(reservation key),注册成功后客户端可以尝试进行永久预留(reserve),永久预留成功后就可以获得lun操作权限。预留密钥是一串16进制的ASCII码,最长8个字节。永久预留一共6种类型,由1、3、5、6、7、8数字表示。包括两种操作类型和三种客户类型,操作类型包括写排它和所有访问排他,客户类型包括所有客户端、已注册客户端和所属客户端。数字与永久预留类型对应关系如下:
1-> write exclusive
3-> exclusive access
5-> write exclusive - registrants only
6-> exclusive access - registrants only
7-> write exclusive - all registrants
8-> exclusive access - all registrants.
不同注册类型对应不同访问权限。与SCSI-2不同,SCSI-3释放操作根据预留密钥。不同客户端可以使用相同密钥或是不同密钥进行预留,具体可以结合永久预留类型决定。客户端可以通过抢占来获取已被永久预留的lun访问权限。SCSI-3抢占和SCSI-2重置不一样,抢占不会造成数据丢失。
SCSI-3关于PGR相关操作命令分为两大类:分别是PRIN和PROUT。PRIN主要用于查询,PROUT用于修改。SCSI命令执行过程中,需要明确该命令是哪种类型。

常见使用场景

1.集群I/O Fencing
为了防止集群故障发生“脑裂”现象,2-节点集群可以通过SCSI-2 Reseve/Release触发I/O fencing来保证整个集群正常运行,是SCSI-2不适用于多-节点集群,多-节点集群可以使用SCSI-3 PGR。主流厂商集群套件都已经支持SCSI-3 PGR,比如:VCS、HACAMP、RHCS等。
2.集群文件系统
集群文件系统需要保证多节点同时访问存储时的数据一致性,SCSI-2/SCSI-3都可以满足,当一个节点尝试访问一个已经被预留的存储就会产生访问权限冲突。SCSI-3 PGR相比SCSI-2 Reserve/Release更能够减少访问权限冲突。

小结

SCSI-2具体基本访问控制能力,但是无法满足Active/Active多路径环境和集群多节点访问存储的需求。SCSI-3通过引入客户端注册和操作权限分类概念,强化并行访问权限控制,弥补SCSI-2的不足。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广