CN101566923B - 一种目标端scsi设备统一驱动模块及方法 - Google Patents

一种目标端scsi设备统一驱动模块及方法 Download PDF

Info

Publication number
CN101566923B
CN101566923B CN200810066795A CN200810066795A CN101566923B CN 101566923 B CN101566923 B CN 101566923B CN 200810066795 A CN200810066795 A CN 200810066795A CN 200810066795 A CN200810066795 A CN 200810066795A CN 101566923 B CN101566923 B CN 101566923B
Authority
CN
China
Prior art keywords
scsi
module
driving
scsi device
unified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200810066795A
Other languages
English (en)
Other versions
CN101566923A (zh
Inventor
周洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN200810066795A priority Critical patent/CN101566923B/zh
Publication of CN101566923A publication Critical patent/CN101566923A/zh
Application granted granted Critical
Publication of CN101566923B publication Critical patent/CN101566923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种目标端SCSI设备统一驱动模块及方法,本发明所述模块位于SCSI设备驱动接口模块与Linux系统SCSI内核中间层模块之间,包括驱动调用接口模块,驱动模块以及内核调用接口模块;当目标端SCSI设备驱动接口模块接收到远程发起端主机发送的包含有SCSI命令的数据后,从所述数据中解析SCSI命令,并发送给SCSI设备统一驱动模块;SCSI设备统一驱动模块根据SCSI命令调用相应的驱动模块,然后再调用Linux系统SCSI内核中间层中的子系统做进一步处理。本发明在不改变现有系统驱动框架的前提下,可实现对SCSI设备的扩展使用。

Description

一种目标端SCSI设备统一驱动模块及方法
技术领域
本发明涉及小型计算机系统接口(Small Computer SystemInterface,SCSI)领域,具体涉及一种基于SCSI-3标准协议下目标端SCSI设备统一驱动模块及方法。
背景技术
SCSI与其他接口一样,实际上是主机与设备之间相互通信的一套协议。SCSI主机利用SCSI主机总线适配器(Host Bus Adaptor,HBA)将存储设备或其他外部设备接入到主机的I/O总线,并使用SCSI协议管理、控制和操作这些外部设备。
SCSI是一个协议族,由数十个协议组成,其协议结构的最下层是传送协议和物理接口,每个SCSI产品只需要遵守其中一个传送协议和物理接口标准即可。中间两层是每个SCSI产品都必须遵守的协议,包括SCSI体系结构模型(SAM)和SCSI基本命令集(SPC)。最上层是SCSI专有命令集,每个SCSI产品只需要实现其中一个专有命令集即可。随着技术的发展,SCSI支持的设备种类越来越多,协议变得越来越复杂,SCSI-3重新定义了SCSI协议的体系结构,它采用分而治之的策略,将SCSI标准分成多个相对独立的子标准。各个子标准可以同时开发,共同遵守体系结构的约定。
设计开发一种SCSI产品的过程就是从协议结构不同层中选择合适标准的过程。每一种SCSI设备都必须根据自身设备的类型开发相应的驱动程序。
随着网络存储等设备的应用,远程发起端(Initiator端)主机通过各种传输方式与目标端(Target端)主机相连,实现对目标端各种SCSI设备的操作访问。从而目标端需根据不同的SCSI设备开发相应的设备驱动,如图1所示,每一种SCSI设备都有其相应的驱动程序,每当加入一种新的SCSI设备,整个系统驱动都需重新编写,从而系统的稳定性及兼容性得不到保证。
发明内容
本发明所要解决的技术问题是,提供一种目标端SCSI设备统一驱动模块,同时在该模块的基础上提供一种目标端SCSI设备统一驱动方法,本发明在不改变现有系统驱动框架的前提下,可实现对SCSI设备的扩展使用。
一种目标端SCSI设备统一驱动模块,该模块位于SCSI设备驱动接口模块与Linux系统SCSI内核中间层模块之间,包括驱动调用接口模块,驱动模块以及内核调用接口模块,所述接口模块用于实现与外界的信息交互,所述驱动模块用于实现对SCSI设备的驱动。
所述驱动模块包括SCSI磁盘(SCSI Disk,SD)驱动模块,SCSI磁带(SCSI Tape,ST)驱动模块及SCSI光驱设备(SCSI CD-ROM,SR)驱动模块。
一种目标端SCSI设备统一驱动方法,包括以下步骤:
步骤一:目标端SCSI设备驱动接口模块接收到远程发起端主机发送的包含有SCSI命令的数据后,从所述数据中解析SCSI命令,并发送给SCSI设备统一驱动模块;
步骤二:SCSI设备统一驱动模块根据SCSI命令调用相应的驱动模块,然后再调用Linux系统SCSI内核中间层中的子系统做进一步处理。
所述SCSI设备统一驱动模块接收到SCSI命令后,首先判断该命令是对何种SCSI设备的操作,然后再调用相应的驱动模块。
所述SCSI设备统一驱动模块通过内核调用接口调用Linux系统SCSI内核中间层中的子系统。
本发明实现了SCSI目标端驱动程序编写的简单化、快速化,从而当系统内加入新的设备后,整个系统的结构可以保持不变,保证了系统的快速开发及升级。
附图说明
图1是传统的SCSI目标端设备驱动原理框图;
图2是实现本发明的SCSI目标端设备驱动原理框图;
图3是本发明所述SCSI设备统一驱动模块内部实现框图。
具体实施方式
下面将结合附图对本发明的具体实施方式进行详细说明。
如图2所示,是本发明的SCSI目标端设备驱动原理框图,在SCSI设备驱动接口模块与Linux系统SCSI内核中间层模块之间增加了一个SCSI设备统一驱动模块,该模块内实现了各种SCSI设备的驱动程序,但对外只提供统一的接口给SCSI设备驱动接口模块与Linux系统SCSI内核中间层模块调用,这样整个系统的框架建立后就无需再做变动,若有新的设备产生时,只需在该模块内部添加该设备的驱动即可。
当远程发起端主机把包含有SCSI命令的数据传送到目标端后,目标端SCSI设备驱动接口模块负责从这些数据中解析出具体的SCSI命令,再把这些SCSI命令通过接口发送给SCSI设备统一驱动模块,该模块根据SCSI命令分别调用相应的SCSI设备驱动程序,如SD驱动程序,ST驱动程序,SR驱动程序等,最后SCSI设备统一驱动模块通过接口统一调用Linux系统SCSI内核中间层中SCSI子系统进行处理。本发明一但建立,目标端驱动结构与Linux内核调用接口就可以保持不变,唯一需要变动是SCSI设备统一驱动模块,从而实现了系统的简洁及快速开发。
图3所示是本发明SCSI设备统一驱动模块内部实现框图。
首先在SCSI设备统一驱动模块内部实现各种SCSI设备的驱动模块,如SD、ST、SR驱动模块,提供不同设备的驱动调用,然后实现调用接口,包括各SCSI设备驱动调用接口模块和各SCSI设备内核调用接口模块。
SCSI设备统一驱动模块接收到从目标端驱动传来的SCSI命令后,根据具体的SCSI命令判断是对何种SCSI设备的操作,进而再调用该设备对应的驱动模块的接口,实现对该设备驱动的调用。SCSI设备驱动接口模块对SCSI设备统一驱动模块的调用,SCSI设备统一驱动模块对及Linux系统SCSI内核中间层模块的调用都抽象成统一的接口,而复杂的SCSI设备驱动处理部分则在SCSI设备统一驱动模块内部实现。
本发明可应用于网络存储中存在SCSI设备的目标端,其可能有多种SCSI存储设备,并可能随时加入其他类型的SCSI设备。本发明大大减小了目标端驱动开发的复杂度,在目标端只需调用SCSI设备统一驱动模块提供的调用接口,而大量复杂的设备驱动都已在统一模块内部实现,并且由于在统一模块内已经实现了各种常见的SCSI设备的驱动,当系统内增加新的设备时,目标端驱动几乎无需做任何变动。这样实现了目标端驱动开发的简单化与统一化,使新产品开发的时间大大缩短。本发明主要适用于Linux操作系统环境。
尽管参照实施例对本发明进行了特别描述,本领域技术人员将能理解,在不偏离本发明的范围和精神的情况下,可以对其进行形式和细节的种种显而易见的修改。因此,以上描述的实施例是说明性的而不是限制性的,在不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的范围之内。

Claims (5)

1.一种目标端SCSI设备统一驱动模块,其特征在于,该模块位于SCSI设备驱动接口模块与Linux系统SCSI内核中间层模块之间;包括驱动调用接口模块,各种SCSI设备的驱动模块以及内核调用接口模块,所述驱动调用接口模块和内核调用接口模块用于实现与外界的信息交互,所述各种SCSI设备的驱动模块用于实现对SCSI设备的驱动。
2.如权利要求1所述的目标端SCSI设备统一驱动模块,其特征在于,所述各种SCSI设备的驱动模块包括SCSI磁盘驱动模块,SCSI磁带驱动模块及SCSI光驱设备驱动模块。
3.一种目标端SCSI设备统一驱动方法,其特征在于,包括以下步骤:
步骤一:目标端SCSI设备驱动接口模块接收到远程发起端主机发送的包含有SCSI命令的数据后,从所述数据中解析SCSI命令,并发送给SCSI设备统一驱动模块;
步骤二:SCSI设备统一驱动模块根据SCSI命令调用相应的驱动模块,然后再调用Linux系统SCSI内核中间层中的子系统做进一步处理。
4.如权利要求3所述的目标端SCSI设备统一驱动方法,其特征在于,所述SCSI设备统一驱动模块接收到SCSI命令后,首先判断该命令是对何种SCSI设备的操作,然后再调用相应的驱动模块。
5.如权利要求3所述的目标端SCSI设备统一驱动方法,其特征在于,所述SCSI设备统一驱动模块通过内核调用接口调用Linux系统SCSI内核中间层中的子系统。
CN200810066795A 2008-04-25 2008-04-25 一种目标端scsi设备统一驱动模块及方法 Active CN101566923B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810066795A CN101566923B (zh) 2008-04-25 2008-04-25 一种目标端scsi设备统一驱动模块及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810066795A CN101566923B (zh) 2008-04-25 2008-04-25 一种目标端scsi设备统一驱动模块及方法

Publications (2)

Publication Number Publication Date
CN101566923A CN101566923A (zh) 2009-10-28
CN101566923B true CN101566923B (zh) 2012-09-26

Family

ID=41283091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810066795A Active CN101566923B (zh) 2008-04-25 2008-04-25 一种目标端scsi设备统一驱动模块及方法

Country Status (1)

Country Link
CN (1) CN101566923B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760061B (zh) * 2012-06-11 2016-01-13 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
CN103095565B (zh) * 2012-10-18 2015-12-16 中兴通讯股份有限公司 一种软件定义网络操作系统及其实现方法
CN103838516B (zh) * 2012-11-23 2016-09-28 中国科学院声学研究所 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统
CN105183367B (zh) * 2015-08-06 2018-07-03 曙光信息产业(北京)有限公司 小型计算机系统接口scsi的实现方法和装置
CN107315695A (zh) * 2017-06-28 2017-11-03 浪潮金融信息技术有限公司 输入输出驱动方法及装置、计算机可读存储介质、终端
CN111240754B (zh) * 2020-01-13 2023-10-27 中孚安全技术有限公司 一种在Linux内核中识别特定USB大容量存储设备的方法及系统
CN114185650B (zh) * 2021-12-14 2023-07-25 平安壹账通云科技(深圳)有限公司 Linux系统下识别SCSI设备的方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1687916A (zh) * 2005-06-08 2005-10-26 北京飞天诚信科技有限公司 通用串行总线数据传输方法及其设备
CN1949203A (zh) * 2006-10-27 2007-04-18 华为技术有限公司 小型计算机系统接口目标器的架构和数据传输方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1687916A (zh) * 2005-06-08 2005-10-26 北京飞天诚信科技有限公司 通用串行总线数据传输方法及其设备
CN1949203A (zh) * 2006-10-27 2007-04-18 华为技术有限公司 小型计算机系统接口目标器的架构和数据传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周顺坡等.SCSI与SCSI设备驱动程序开发技术.《小型微型计算机系统》.1992,第13卷(第6期),47-53. *

Also Published As

Publication number Publication date
CN101566923A (zh) 2009-10-28

Similar Documents

Publication Publication Date Title
CN101566923B (zh) 一种目标端scsi设备统一驱动模块及方法
US8972615B2 (en) Communication with input/output system devices
KR101751936B1 (ko) 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법
US20070006020A1 (en) Inter-host data transfer method, program, and system
CN1955893A (zh) 媒体分享装置
CN107368219B (zh) 触摸响应方法、芯片及智能设备
CN101855617A (zh) 使即插即用硬件用于半自动软件迁移的机制
CN101090295A (zh) 一种ason网络的测试系统及方法
CN100489777C (zh) 智能平台管理接口韧体架构及其建立方法
JP2021197153A (ja) ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
CN105790830A (zh) 光模块在位检测方法和装置
CN102023857B (zh) 基于ServiceOS的多平台应用程序服务管理方法及系统
CN113658351B (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN115617009A (zh) 虚拟开发环境装置、方法和记录介质
CN109992556A (zh) 一种i2c驱动方法和装置
CN117278890B (zh) 光模块访问方法、装置、系统、电子设备及可读存储介质
US20080281576A1 (en) Interface board, simulator, synchronization method, and synchronization program
CN1770119A (zh) 嵌入式设备调试方法及其调试工具
US20030221040A1 (en) Data transfer system
US8260821B2 (en) Global, dynamic, remote and central system for database driver configuration
US10162913B2 (en) Simulation device and simulation method therefor
CN101561760B (zh) 接口卡固件升级方法
CN103617077A (zh) 智能型云端化移转的方法与系统
US7251248B2 (en) Connection device
WO2020071639A1 (ko) 프로그램 개발 시스템 및 이를 이용한 개발 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant