CentOS5 iSCSI部署推荐

iSCSI是internet Small Computer System Interface的缩写,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,其目的是为了用IP协议将存储设备连接在一起。通过在IP网上传送SCSI命令和数据,iSCSI推动了数据在网络之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力,iSCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。因为IP网络的广泛应用, iSCSI能够在LAN、WAN甚至Internet上进行数据传送,使得数据的存储不再受地域的限制。

iSCSI技术的核心是在TCP/IP网络上传输SCSI协议,即使用TCP/IP报文和iSCSI报文封装SCSI报文,使得SCSI命令和数据可以在普通以太网络上进行传输,如下图所示。

iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI initiator层被封装成ISCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI target层时被封装成ISCSI响应PDU,通过TCP/IP网络传送给主机的ISCSI initiator层,iSCSI initiator会从ISCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

二、服务器端SCSI target的配置及使用

Linux target framework(tgt)是为创建、维护SCSI target 驱动(包括iSCSI、FC、SRP等)提供支持。它的关键目标是简洁地集成到scsi-mid层,并且实现大部分应用层空间。

安装scsi-target-utils [root@sqinga ~]# yum install scsi-target-utils

启动tgtd服务[root@sqinga ~]# /etc/init.d/tgtd start[root@sqinga ~]# /etc/init.d/tgtd statustgtd (pid 1996 1995) is running…

将tgtd设为开机启动[root@sqinga ~]# chkconfig tgtd on

创建一个id为1的target,其名为:iqn.2010-05.sqing:shuqing(iSCSI节点名称有两种格式,即 iqn-type 格式和 eui-type 格式,Linux常用的是iqn-type的格式。一般iSCSI Target命名采用 iqn.yyyy-mm. reversed domain name : identifier 识别代号 的格式。iqn号是局域网内iSCSI target的唯一标识,用来区分不同的target,所以在一个网络内,iqn号一定不能相同)[root@sqinga ~]# tgtadm –lld iscsi –op new –mode target –tid 1 -T iqn.2010-05.sqing:shuqing

为上一步创建的目标增加逻辑分卷,添加一个lun( logical unit)号为1的逻辑单元,该逻辑单元使用逻辑分区LogVol2[root@sqinga ~]# tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 1 -b /dev/VolGroup00/LogVol02

使target接受initiator的访问(这里设为允许所有的initiator访问)[root@sqinga ~]# tgtadm –lld iscsi –op bind –mode target –tid 1 -I ALL

查看端口3260使用情况[root@sqinga ~]# netstat -tulpn | grep 3260tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 2980/tgtdtcp 0 0 :::3260 :::* LISTEN 2980/tgtd

查看lun信息[root@sqinga ~]# tgtadm –lld iscsi –op show –mode targetTarget 1: iqn.2010-05.sqing:shuqing System information: Driver: iscsi State: ready I_T nexus information: I_T nexus: 2 Initiator: iqn.1994-05.com.redhat:d2c9f41e816a Connection: 0 IP Address: 10.8.0.116 LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB Online: Yes Removable media: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 6442 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/VolGroup00/LogVol02 Backing store flags: Account information: ACL information: ALL

至此,系统的逻辑分区/dev/VolGroup00/LogVol02已被设置成一个iSCSI Target,远程的客户端计算机可以通过网络访问对此进行访问了。

要使以上设置,在系统重启时生效,需写进rc.local文件[root@sqinga ~]# cat /etc/rc.localtouch /var/lock/subsys/localtgtadm –lld iscsi –op new –mode target –tid 1 -T iqn.2010-05.sqing:shuqingtgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 1 -b /dev/VolGroup00/LogVol02tgtadm –lld iscsi –op bind –mode target –tid 1 -I ALL

三、客户端iSCSI-initiator的配置及使用

安装iscsi-initiator-utils [root@sqingb ~]# yum install iscsi-initiator-utils

用chkconfig检查iscsi和iscsid服务在运行级别3和5中随系统的启动而自动启动[root@sqingb ~]# chkconfig –list |grep iscsiiscsi 0:off 1:off 2:off 3:on 4:on 5:on 6:offiscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off如果iscsid和iscsi没有随系统的启动而启动,则用chkconfig设置这两个服务在系统运行级别为3和5时随系统启动而启动[root@sqingb ~]# chkconfig iscsi –level 35 on[root@sqingb ~]# chkconfig iscsid –level 35 on

启动iscsi服务[root@sqingb ~]# /etc/init.d/iscsi start[root@sqingb ~]# /etc/init.d/iscsi statusiscsid (pid 1508) is running…[root@sqingb ~]# /etc/init.d/iscsid statusiscsid (pid 1508) is running…

查看target上的逻辑卷(RHEL 5上当前的iSCSI Initiator版本只支持sendtargets 的发现方式,不支持SLP和iSNS)[root@sqingb ~]# iscsiadm -m discovery -t sendtargets -p 10.8.110.2910.8.110.1:3260, 1 iqn.2010-05.sqing:shuqing

使用iscsiadmin登陆target:[root@sqingb ~]# iscsiadm -m node -T iqn.2010-05.sqing:shuqing -p 10.8.110.1 –loginLogging in to [iface: default, target: iqn.2010-05.sqing:shuqing, portal: 10.8.110.1,3260] Vendor:IET Model:Controller Rev:0001 Type: Direct-Access ANSI SCSI revision:05scsi 2:0:0:0: Attached scsi generic sg1 type 12 Vendor:IET Model:Controller Rev:0001 Type: Direct-Access ANSI SCSI revision:05 Login to [iface: default, target: iqn.2010-05.sqing:shuqing, portal: 10.8.110.1,3260] successful

注销target和删除target的命令分别为:[root@sqingb ~]# iscsiadm -m node –T iqn.2010-05.sqing:shuqing -p 10.8.110.1 –logout[root@sqingb ~]# iscsiadm -m node o delete –T iqn.2010-05.sqing:shuqing

使用fdisk检验被识别的设备名:[root@sqingb ~]# fdisk -lDisk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 1044 8281507+ 8e Linux LVMDisk /dev/sdb: 2013MB, 2013265920 bytes62 heads, 62 sectors/track, 1022 cylindersUnits = cylinders of 3844 * 512 = 1968128 bytesDisk /dev/sdb doesn’t contain a valid partition table

使用fdisk /dev/sdb命令为sdb建立一个分区sdb1,结果如下:[root@sqingb ~]# fdisk -lDisk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 1044 8281507+ 8e Linux LVM

Disk /dev/sdb: 2013MB, 2013265920 bytes62 heads, 62 sectors/track, 1022 cylindersUnits = cylinders of 3844 * 512 = 1968128 bytesUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 1022 1964253 83 Linux

格式化分区[root@sqingb ~]# mkfs.ext3 /dev/sdb1mke2fs 1.39 (29-May-2006))Filesystem label=OS type:LinuxBlock size=4096(log=2)Fragment size=4096 blocks245760 inodes, 491063 blocks24553 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=50331648015 block groups32768 blocks per group, 32768 fragments per group16384 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 22937 294912

Writing inode tables: doneCreating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or 180 days,whichever comes first. Use tune2fs c or I to override.

设定加载点[root@sqingb ~]# mdir /home/sna[root@sqingb ~]# mount /dev/sdb1 /home/sna

用df查看文件系统是否已挂载成功[root@sqingb ~]# df ThFilesystem Type Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00ext3 3.9G 2.4G 1.3G 66% //dev/sda1 ext3 99M 12M 82M 13% /boottmpfs tmpfs 506M 0 506M 0% /dev/shm/dev/sdb1 ext3 1.9G 35M 1.8G 2% /home/sna

至此,sqingnb已经连接到 sqinga的虚拟iSCSI 储存设备, 并且如同本机上面的一个 SCSI 硬盘一样。 使用的方式也几乎一样。

用tune2fs查看文件系统的UUID[root@sqingb ~]# tune2fs l /dev/sdb1tune2fs 1.39 (29-May-2006) Filesystem volume name: none Last mounted on: not available Filesystem UUID: b469ef1e-2f2f-450e-82af-0634d0021735Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file

如果要将其设置为自动挂载,需将其UUID加入到fstab文件中(据资料分析,Linux系统重启后,磁盘设备的名称可能会发生变化,从而引起文件系统不能挂载上来或者不能正确挂载,使用UUID的方式进行挂载可以解决这个问题)。实际操作中,手动重启后,系统要十多分钟才能成功登录,需要耐心等待(一些画面会停很久,开始时以为是重启死机了呢),并且在登录的过程中,系统会自动再启动一次。另一种说法,挂载选项类型为 _netdev ,尝试了下,也是一样的重启过程。[root@sqingb ~]# cat /etc/fstab/dev/VolGroup00/LogVol00 / ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2tmpfs /dev/shm tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0/dev/VolGroup00/LogVol01 swap swap defaults 0 0UUID= b469ef1e-2f2f-450e-82af-0634d0021735 /home/sna ext3 defaults 0 0

四、相关目录、文件资料介绍

Discovery (/var/lib/iscsi/send_targets):在/var/lib/iscsi/send_targets目录下包含iSCSI portals的配置信息,每个portal对应一个文件,文件名为 iSCSI portal IP,端口号 (例如 10.8.110.1,3260 )。

Node (/var/lib/iscsi/nodes):在/var/lib/iscsi/nodes目录下,生成一个或多个以iSCSI存储服务器上的Target名命名的文件夹(例如:iqn.2010-05.sqing:shuqing),在该文件夹下有一个文件名为 iSCSI portal IP,端口号 (例如 10.8.110.1,3260 )的配置参数文件,该文件中是initiator登录target时要使用的参数,这些参数的设置是从/etc/iscsi/iscsi.conf中的参数设置继承而来的,可以通过iscsiadm对某一个参数文件进行更改(需要先注销到target的登录)。

tgtadm是用来监控、修改Linux SCSI target 的工具,包括target设置、卷设置,等等。这个工具允许提供为装有SCSI initiator的其它操作系统提供块级(block-level)的SCSI存储。这个功能最初被部署为Linux iSCSI target,通过网络向装有iSCSI initiator的系统提供存储服务。

iscsiadm是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。

iscsi-initiator-utils 将iscsid、iscsiadm安装到/sbin目录下,还将把默认的配置文件安装到/etc/iscsi目录下:/etc/iscsi/iscsid.conf 所有刚发起的iSCSI session默认都将使用这个文件中的参数设定。/etc/iscsi/initiatorname.iscsi 软件iSCSI initiator的intiator名称配置文件。

生命太过短暂,今天放弃了明天不一定能得到

CentOS5 iSCSI部署推荐

相关文章:

你感兴趣的文章:

标签云: