Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101935859
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-04 22:30:08

 

本文介绍了iSCSI的概念,结构以及在Turbolinux上配置iSCSI Initiator的方法。

iSCSI协议是一个Internet草案标准,用来定义在TCP/IP协议上传送SCSI命令和数据,该技术允许用户通过TCP/IP网络来构建存储区域网(SAN). iSCSI技术的出现使得以局域网为网络环境的用户,能够以不多的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。相对于以往的网络接入存储,iSCSI的出现解决了开放性、容量、传输速度、兼容性、安全性等问题. iSCSI在IP存储环境中能够提供以下方案:

1.1 为存储区域网络(SAN)提供一种低价位的传输模式

1.2 为中端服务器提供了良好的存储解决方案

1.3 结合存储管理解决方案,iSCSI能提供容灾、备份和中级存储解决方案。

就像将SCSI命令映射到光纤通道、并行SCSI和SSA介质上一样,在服务器端安装iSCSI设备驱动器,接收应用程序的I/O请求,再使用iSCSI协议将它们在LAN上传输。目标器存储设备可以直接附着于LAN,也可以使用路由器(协议,转换器)来连接到LAN。第二种方法中,在LAN的另一端存在一个光纤通道端口,可以连接到一个支持光纤通道附件的存储设备。这种方案允许不带有iSCSI端的存储产品通过iSCSI协议被访问到,也允许服务器在没有光纤通道主机总线适配卡的情况下访问设备。与其它解决方案相比,iSCSI有一下一些优点:

2.1.可连接性:在NAS和SAN连接到设备时可以使用iSCSI。iSCSI设备可放于现有的包含多种应用的LAN上,或专用于存储I/O的LAN上,或只连接到一个处理器(DAS)的LAN上

2.2.介质:iSCSI附着于IP网络,与单纯的光纤通道SAN比较起来,可以支持更长的传输距离。

2.3.I/O协议:iSCSI使用SCSI I/O协议,因此它是基于块的I/O,避免了不合适数据库或者其它不使用文件协议的应用的尴尬。可连接多个独立的网络,可使用一般的交换机,不像光纤通道那样要特定的交换机。

2.4.管理:iSCSI的管理与其它直接附着的SCSI设备的管理是一样的。从处理器的角度看,连接到iSCSI的磁盘卷是可见的。任何支持附着于SCSI卷的数据备份方法对于iSCSI同样是可行的。与光纤通道SAN相比,iSCSI可以利用已经促步完善的网络管理工具和人力技能的优势。

2.5.性能:同样基于Ethernet,iSCSI的性能要优于NAS,因为它直接对SCSI设备进行操作,而不需要在文件I/O协议和SCSI协议之间进行转换。速度可以达到10Gigabit. 在I/O操作频繁的情况下,iSCSI的优势尤其明显。

2.6.费用:一般而言,同样情况下,一个iSCSI SAN的费用要低于光纤通道SAN的费用,从硬件角度看,以太网主机适配器一般要比光纤通道主机适配器便宜,如果iSCSI直接附着与SAN,那就根本不需要新的主机适配卡了。iSCSI SAN的建立要比光纤通道SAN的建立快,所需的新技术也少一些。由于不需要支持文件系统、文件共享协议和其它集成到NAS产品中的应用,同等条件下,iSCSI盘设备要比一个NAS设备便宜。

iSCSI协议就是一个在网络上封包和解包的过程,在网络的一端,数据包被封装成包括TCP/IP头、iSCSI识别包和SCSI数据三部分内容,传输到网络另一端时,这三部分内容分别被顺序地解开。 iSCSI系统由一块SCSI卡发出一个SCSI命令,命令被封装到第四层的信息包中并发送。接收方从信息包中抽取SCSI命令并执行,然后把返回的SCSI命令和数据封装到IP信息包中,并将它们发回到发送方。系统抽取数据或命令,并把它们传回SCSI子系统。所有这一切的完成都无需用户干预,而且对终端用户是完全透明的。 为了保证安全,iSCSI有自己的上网登录操作顺序。在它们首次运行的时候,启动器(initiator)设备将登录到目标设备中。任何一个接收到没有执行登录过程的启动器的iSCSI PDU(iSCSI Protocol Data Units,iSCSI协议数据单元)目标设备都将生成一个协议错误,而且目标设备也会关闭连接。在关闭会话之前,目标设备可能发送回一个被驳回的iSCSI PDU。这种安全性是基本的,因为它只保护了通信的启动,却没有在每个信息包的基础上提供安全性。还有其他的安全方法,包括利用IPsec。在控制和数据两种信息包中,IPsec可以提供整体性,实施再次(replay)保护和确认证明,它也为各个信息包提供加密。

下图为iSCSI的结构(同FC结构对比):

     iSCSI Access To Storage     |  SCSI or FC Access to Storage
====================================================================
                                 |
      Host applications          |         Host applications
                                 |
=======|===========|===============================|================
       |           |             |                 |
       |    +------------+       |                 |
       |    |    SCSI    |       |                 |
       |    |   driver   |       |                 |
       |    +------------+       |           +-----------+
       |    |   iSCSI    |       |           |           |
       |    |   driver   |       |           |   SCSI    |
  +---------+------------+       |           |   or FC   |
  |        TCP/IP        |       |           |  adapter  |
  +----------------------+       |           |  driver   |
  |   Network drivers    |       |           |           |
  +----------------------+       |           +-----------+
             |                   |                 |
=============|=====================================|================
             |                   |                 |
       +-----------+             |           +-----------+
       |    NIC    |             |           |    HBA    |
       +-----------+             |           +-----------+
             |                   |                 |
=============|=====================================|================
            _|_                  |                _|_
          _(   )_                |              _(   )_
        _(  IP   )_              |            _(  FC   )_
       (_ network _)             |           (_ or SCSI _)
         (_     _)               |             (_     _)
           (_ _)                 |               (_ _)
             |                   |                 |
    +------------------+         |                 |
    |  Storage Router  |         |                 |
    |    or Gateway    |         |                 |
    +------------------+         |                 |
             |                   |                 |
    +------------------+         |       +------------------+
    |     Storage      |         |       |      Storage     |
    +------------------+         |       +------------------+
    | (___)(___)(___)  |         |       | (___)(___)(___)  |
    | (___)(___)(___)  |         |       | (___)(___)(___)  |
    | (___)(___)(___)  |         |       | (___)(___)(___)  |
    | (___)(___)(___)  |         |       | (___)(___)(___)  |
    +------------------+         |       +------------------+
                                 |
====================================================================

软件iSCSI initiator提供了最低价位的iSCSI解决方案。纯粹用软件来实现的iSCSI initiator使用标准的以太网网卡或者是TCP offload Engine(TOE)网卡,用来处理iSCSI指令和TCP/IP协议。对于使用2GHz CPU的工作站或者服务器来说,iSCSI协议在处理一般的客户工作量时并不会对系统产生明显的负荷. Turbolinux从其Enterprise Server 10 SP3 (GTES10 SP3)开始支持这种软件iSCSI启动器。下面是其设置步骤。

4.1 安装

Turbolinux 的 GTES10 SP3的内核已经支持iSCSI协议,另外还提供了用户空间的启动器(Initiator)。 查看驱动信息:

# modinfo iscsi_sfnet
filename:       /lib/modules/2.6.9-8.11/kernel/drivers/scsi/iscsi_sfnet/iscsi_sfnet.ko
author:         Mike Christie and Cisco Systems, Inc.
description:    iSCSI initiator
license:        GPL
version:        4:0.1.11-2 E6AAD04693D3E28B3E87155
vermagic:       2.6.9-8.11 686 REGPARM 4KSTACKS gcc-3.4
depends:        scsi_transport_iscsi,scsi_mod

查看initiator的安装信息:

# rpm -qi iscsi-initiator-utils
Name        : iscsi-initiator-utils        Relocations: (not relocatable)
Version     : 4.0.3.0                           Vendor: (none)
Release     : 3                             Build Date: Tue 11 Jul 2006 03:57:33 PM CST
Install Date: Mon 30 Oct 2006 10:22:26 AM CST      Build Host: antonfang.turbolinux.com.cn
Group       : System Environment/Daemons    Source RPM: iscsi-initiator-utils-4.0.3.0-3.src.rpm
Size        : 204881                           License: GPL
Signature   : (none)
URL         : 
Summary     : iSCSI daemon and utility programs
Description :
The iscsi package provides the server daemon for the iSCSI protocol,
as well as the utility programs used to manage it. iSCSI is a protocol
for distributed disk access using SCSI commands sent over Internet
Protocol networks.

如果iscsi-initiator-utils没有安装,请从光盘安装该工具:

# rpm -ivh iscsi-initiator-utils-4.0.3.0-3.i386.rpm

4.2 配置

iSCSI的配置文件为/etc/iscsi.conf, 里面已经给出了很多配置选项,默认都是被注释的,在使用时, 至少需要启用以下设置:

DiscoveryAddress=

这是UIT Array的组IP

SendAsyncText=yes

让initiator接收目标端的vendor相关事件.

Continuous=yes

设置discovery sessions始终保持打开

当iscsi.conf配置好后,就可以启动iscsi服务了:

# chkconfig iscsi on
# /etc/init.d/iscsi start

4.3 使用

服务启动后使用iscsi-ls查看信息:

# iscsi-ls -l
*******************************************************************************
SFNet iSCSI Driver Version ...4:0.1.11(12-Jan-2005)
*******************************************************************************

TARGET NAME : iqn.2001-05.com.UIT:6-8a0900-148270001-987006efd6c43836-pat-gtes10-vol2

TARGET ALIAS : pat-gtes10-vol2

HOST NO : 1

BUS NO : 0

TARGET ID : 5

TARGET ADDRESS : 172.19.50.13:3260

SESSION STATUS : ESTABLISHED AT Thu Dec 1 15:51:49 2005

NO. OF PORTALS : 1

PORTAL ADDRESS 1 : 172.19.50.10:3260,0

SESSION ID : ISID 00023d000001 TSIH 06

DEVICE DETAILS :

————–

LUN ID : 0

Vendor: EQLOGIC Model: 100E-00 Rev: 2.1

Type: Direct-Access ANSI SCSI revision: 05

page83 type3: 0690a018007082143638c4d6ef067098

page80: 3036393041303138303037303832313433363338433444364546303637303938

Device: /dev/sdc

************************************************************************

从最后一行输出可以看出,识别到的设备被映射为/dev/sdc.

接下来就可以象操作一个普通的scsi磁盘一样操作sdc这个设备了,比如对其进行分区,格式化等. 要注意的是当要求系统自动挂载基于iSCSI设备的文件系统时,建议使用_netdev参数,它会保证文件系统在网络启动之后被挂载,当网络服务被停止时,先自动卸载这些文件系统.

# echo "/dev/sdc1 /mnt/t1 ext3 _netdev,defaults 0 0" >> /etc/fstab
阅读(226) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~