iSCSI 在Linux下的模拟实验(一)

1、前言

        本文基于主要验证软件iSCSI实现机制,在linux操作系统上进行SCSI目标端(target,也

可以称之为服务端)和发起端(Initiator,也可以称之为客户端)的安装配置,测试iSCSI的通

讯过程,为在实际的应用中将专用存储设备配置规划为基于iSCSI架构的存储网络奠定基础。


2、iSCSI简介

      iSCSI可以简单认为“基于IP之上的SCSI通讯”,是一种在Internet 协议网络上,特别是

在以太网上进行数据块传输的标准,提供了可以在IP 协议上层传输SCSI指令和数据的表示规则,

其基本上是一个表示层协议。SCSI命令和响应在两个具有iSCSI功能的设备之间发送,设备可以

是多用途的计算机或者特定用途的存储设备。简单地说,iSCSI 可以实现在IP网络上传递和运行

SCSI 协议,使其能够在诸如高速千兆以太网上进行数据存取,实现了数据的网际传递和管理,

基于iSCSI建立的存储区域网(SAN)与基于光纤的FC-SAN相比,具有很好的性价比。由于IP

网络的广泛应用,iSCSI能够在LAN、WAN甚至internet上进行数据传送,打破了数据存储的地域

限制。iSCSI继承了SCSI协议,因此涉及的端点名称相同,实质上,iSCSI只是定义了如何基于IP

网络实现对SCSI命令和数据的传递机制,不是SCSI的升级或者改造。


在SCSI协议中包括两类端点:

 >1 Initiator  -- 发起器或客户端

 >2 Target     -- 目标器或服务端

SCSI-3 模型如下图:

iSCSI 在Linux下的模拟实验(一)_第1张图片

       发起器(Initiator)是一个在SCSI总线上触发任务的设备,目标器是执行该任务的设备。计算

机的主机适配器(Adapter)是一个典型的发起器,磁盘驱动器则是一个典型的目标器。在SCSI规

范中没有明确说明在SCSI配置中可以有多少个发起器和目标器,只是说明了它们的总的数目,这个

数目随SCSI规范的版本不同而不同。一个最小的配置至少需要一个发起器和一个目标器。在本文中,

将把发起器称为客户端,将目标器称为服务端以方便理解。在iSCSI连接中,服务端(target)在网

络上宣布其存在,客户端(initiator)绑定到一个服务端。

      iSCSI 服务端和客户端的通讯就是一个在网络上封包和解包的过程,在网络的一端,数据包被封

装成包括TCP/IP 头、iSCSI 识别包和SCSI 数据三部分内容,传输到网络另一端时,这三部分内容分

别被顺序地解开。为了保证安全,iSCSI 有约定操作顺序。在首次运行时,客户端(initiator)设备需

要登录到服务端(target)中。任何一个接收到没有执行登录过程的客户端的iSCSI PDU (iSCSI 

Protocol Data Units,iSCSI 协议数据单元)服务端都将生成一个协议错误,并且关闭连接。在关闭

会话之前,服务端可能发送回一个被驳回的iSCSI PDU。

       在工作时,iSCSI使SCSI数据块由原来的SCSI总线连接扩展到internet上,这一过程有些产品通过

硬件来实现,这种硬件产品被简称为TOE(TCP Offload Engine),随着近年来服务器芯片技术的不断

发展,服务器处理能力日益强劲,目前更为普遍的是通过软件来实现SCSI数据块的封装过程。这种软件

通常被称为iSCSI Initiator软件。软件方式的iSCSI客户端,通过普通以太网卡来进行网络连接,iSCSI协议

的封装和处理通过运行软件实现,但是需要占用CPU资源。


下图是一个简单的基于iSCSI架构示意:

iSCSI 在Linux下的模拟实验(一)_第2张图片

iSCSI属于端到端的会话层协议,它定义的是SCSI到TCP/IP的映射,即Initiator将SCSI指令和数据封

装成iSCSI协议数据单元,向下提交给TCP层,最后封装成IP数据包在IP网络上传输,到达Target后通

过解封装还原成SCSI指令和数据,再由存储控制器发送到指定的驱动器,从而实现SCSI命令和数据在

IP网络上的透明传输。它整合了现有的存储协议SCSI和网络协议TCP/IP,实现了存储与TCP/IP网络的

无缝融合。



3、iSCSI设备连接方式


根据主机端HBA卡、网络交换机的不同,iSCSI设备与主机之间有三种连接方式,分别为:

  • 以太网卡+initiator软件方式
  • 硬件TOE网卡+initiator软件方式
  • iSCSI HBA卡连接方式。
        第一种连接方式的服务器、工作站等主机使用标准的以太网卡,通过以太网线直接与以太网交换机连接,

iSCSI存储也通过以太网线连接到以太网交换机上,或直接连接到主机的以太网卡上。在主机上安装Initiator

软件。安装Initiator软件后,Initiator软件可以将以太网卡虚拟为iSCSI卡,接受和发送iSCSI数据报文,

从而实现主机和iSCSI设备之间的iSCSI协议和TCP/IP协议传输功能。其他两种方式与第一种方式的差别主要是

采用了专业的硬件设备,即TOE网卡和iSCSI HBA卡,将协议转换工作交由专业设备来完成,减轻主机CPU的

负担,提高系统执行效率。

本文所做的实验,采用第一种连接方式。在《iSCSI 在Linux下的模拟实验(二)》将说明相关软件的

安装配置过程。


你可能感兴趣的:(linux,网络,网络协议,服务器,存储,internet)