浅谈SCSI in Linux

来源:互联网 发布:虚拟机网络连接 编辑:程序博客网 时间:2024/06/02 00:44

    Linux的初衷是一种基于x86的PC类操作系统,随着Linux的发展,进入一种两难之地:靠向企业级或PC。

    从Linux操作系统的SCSI模型来看,Linux的SCSI模型更多偏向PC机,对企业级的考虑更加薄弱。可以从以下几个方面分析:

    1.PC类主机主要通过接硬盘来提供存储空间,而企业级的服务器主要通过接磁盘阵列提供存储空间。在SCSI协议体系中,主要采用CS架构,即只能通过主机向存储下发命令,而存储不能向主机发送命令。SCSI协议采用Unit Attention的方式让存储告诉主机,存储发生变化,需要主机查询。而这种SCSI协议最重要的通信机制在Linux中却没有任何实现,被完全的抛弃。

    2.Linux通过块设备向上层文件系统提供统一接口,经SCSI协议接入的外部阵列或硬盘以一种简单的sdx的命名向上体现,这种简单的命令在盘或阵列发生改变后的持续绑定来说很差,用户永远不能根据名字判断是否使用统一块盘。而现在的HP-UX、Vmware都采用的WWN统一标示的命名方式。

    3.Linux的扫盘流程采用INQUIRY、REPORT LUNS、TUR、READ CAPACITY、MODE SENSE等方式读取盘的信息,但是Linux不会去更新一个还未被删除的SCSI设备,导致的结果是,以原来路径被接入盘,所有信息不会更新。

    4.扫描外部设备的用户态命令匮乏,一个fdisk对外接阵列来说根本不够,通过sysfs提供的接口扫描所有设备会遇到上述3遇到的问题。而同样的企业级的Solaris、AIX、HP-UX都提供了丰富的用户态命令。

    所以Linux要向企业级靠拢,在SCSI协议实现上还需要下更多的心思。(个人愚见)

0 0
原创粉丝点击