Linux通用SCSI目标子系统
Linux通用的SCSI
目标子系统(SCST)是一个为Linux SCSI目标子系统的另一种实现。它提供Linux内核之间和处理和SCSI目标
驱动程序的统一,一致的接口,同时提供Linux内核与存储后端句柄连接,连接真实或模拟的存储后端与目标驱动程序。
SCST允许创建复杂的存储设备,提供先进的功
能,例如复制 , 自动精简配置 , 重复数据删除技术
, 高可用性 , 自动备份等。另一个类别的应用是虚拟磁带库
(VTL)以及其他基于磁盘的备份解决方案。SCST创建不是仅限于IP网络的设备。他们可以使用任何链接,支持SCSI的数据交换
方式,包括光纤通道,iSCSI,SAS,InfiniBand和并行(宽)的SCSI。当
然,很可能是您最喜爱的存储设备在固件中运行SCST。
SCST工程包括一些子项目:通
用SCSI目标中层本身(SCST核心),一套设备句柄,以及目标驱动程序和用
户空间工具。
SCST核心特点 - SCST核心简单,易于与
目标驱动器接口。SCST核心执行所有必需的前,后处理传入的请
求以及必要的错误恢复。
- SCST承担最核心有关执行上下文的问题,,从
而实际上消除了在内核驱动开发的最复杂的问题之一。例如,Marvell的SAS适配器或
InfiniBand的SRP的目标驱动程序不足3000行代码长。
- 极低的开销和
细粒度锁允许达到最佳的性能和可扩展性。特别是,传入请求可以处理在调用方的上下文或内
部SCST核心的tasklets,没有任何额外的上下文切换。
- 设备句柄架构使各种I /
O模式,在backstorage处理。例如,通过设备处理,允许导出的实际SCSI硬
件和vdisk装置处理程序允许导出为虚拟磁盘文件。
- 先进的每发起设备可视化管
理(LUN屏蔽)允许不同的发起人必须看到不同的访问权限设置不同的设备。例如,发起器A可以看到出口的目标Ť设备的X和Y可读写,而发起器B可以看到同一目标Ť设备ý只读和Z可读
写。此功能对硬件目标器是必须的,这没有能力来创建虚拟目标(例如SAS适配器)。
- SCST核心模拟SCSI主机适配器必要的功
能,因为从'远程发起人的角度来看,SCSI主机是作为一个拥有自己的设备的SCSI目标。这对于传递方式是一对多的关系特别重要,比如当
多个发起人可以连接到透传的导出设备。你可以找到更深入的阐述为
什么需要消息线程“关于目标器直通模式设计的问题”在Linux的邮件列表的SCSI。一些模拟的
职能如下:
- 生成必要的单位注意事项,给存储和运送到所有连接的远端的发起者。
- 保留/释放功能。
- 各种重置和其他任务管理职
能的类型。
- 报告的LUN命令以及SCSI地址空间的管理,以便对
所有远程发起者一致的地址空间,因为当地的SCSI设备不能了解彼此的报告通过报告LUN的命令。此外,SCST核心的响应
所有不存在的设备以错误,并提供访问控制,这样不同的远程发起人可以看到不同的设备。
- 其他必要的功能(任务属性等),如SCSI标准规定。
- SCST核心的多线程设
计和完整的SMP的支持,因此,如有必要,所有的CPU内核将参加命令处理。
- 很好的文档化。
远端和本地之间的SCSI
发起者互操作性(如sd,st,等)的额外问题SCST会处理(它是尚未实现的)。这是必要的,因为本地SCSI发起者可以更改设
备的状态,保留该设备,或者它的一些参数的改变,SCST是不知道的,即远程发起者将不会知道,这可能导致各种问题包括数据损坏。因此,保留/释放命令,当地产生的单位注意事项
等,应被截获,并通过SCST核心。
你可以找到SCST比较与其他SCSI目标器的网页。一些重点功能,意味着最终用户可以找到在页。
SCST核心支持以下I / O方式
- 透传模式支持一对多的关系,即当发起人可以连接到直通的导出设备,几乎所有SCSI设备类型:磁盘(输入
0),磁带(1型),处理器(3型),CDROM的(5型),磁光盘(7型),中换(8型)和RAID控制器(类型0xC)。在这种模式下,您可以,例如,分
享您的并行SCSI磁带或SATA的DVD - RW设备到iSCSI网络。
- FILEIO模式,它允许使用的文件系统或块设
备文件,可以用虚拟远程SCSI磁盘或CDROM的收益与Linux的缓存。
- BLOCKIO模式,它执行与块
设备直接块的IO,绕过页面缓存的所有操作。这种模式可以很好地与高端存储HBA协作,用于
应用程序要么不需要缓存或需要大宗吞吐量。
- 用户空间模式使用scst_user设备处理程
序,它允许执行用户空间虚拟SCSI设备在SCST环境。
- NULLIO模式处理器性能测试设备,提供一个
没有实际的数据传输性能开销直接测量方法的基本SCSI设备。
阅读(1240) | 评论(0) | 转发(0) |