1、简介html
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、能够在IP协议的上层运行的SCSI指令集,这种指令集合能够实如今IP网络上运行SCSI协议,使其可以在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。node
iSCSI是一种基于TCP/IP 的协议,用来创建和管理IP存储设备、主机和客户机等之间的相互链接,并建立存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其一般应用环境是:设备互相靠近,而且这些设备由SCSI 总线链接。centos
iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。服务器
完整的iSCSI系统的拓扑结构以下:网络
2、实验环境ide
操做系统:CentOS release 6.3 (Final)测试
iSCSI Target:192.168.1.21 / scsi-target-utils-1.0.24-12.el6_5.i686spa
iSCSI Initiator:192.168.1.22 / iscsi-initiator-utils-6.2.0.873-10.el6.i686操作系统
防火墙已关闭/iptables: Firewall is not running.code
SELINUX=disabled
3、准备工做
iSCSI可分享的设备类型有不少,包括镜像文件(*.img)、分区(partition)、物理硬盘、raid设备、逻辑卷等,下面咱们将准备其中的几种来测试,其余类型你们能够自行测试。
3.1 模拟镜像
在iSCSI Target的/srv目录下建立一个200M大小的镜像文件。
# mkdir /srv/iscsi
# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200
# ll -lh /srv/iscsi/disk1.img
3.2 创建分区
建立一个500M大小的分区/dev/sdb1.
# fdisk /dev/sdb
3.3 建立逻辑卷
建立一个800M大小的LV.
# pvcreate /dev/sdc
# vgcreate vg0 /dev/sdc
# lvcreate -L 800M -n lv1 vg0
4、配置iSCSI Target
4.1 安装tgt
CentOS 自带了scsi-target-utils 软件,咱们使用该软件进行target设置。
# yum -y install scsi-target-utils
4.2 配置tgt
tgt的主配置文件为/etc/tgt/targets.conf,下面咱们来设置改文件。
在该文件最后新增如下设置:
<target iqn.2014-07.dev.iscsi-target:iscsidisk> backing-store /srv/iscsi/disk1.img backing-store /dev/sdb1 backing-store /dev/vg0/lv1 backing-store /dev/sdd </target>
说明:
iqn = iSCSI Qualified Name
iSCSI target的名称规则以下:
iqn.2014-07.dev.iscsi-target:iscsidisk
iqn.年份-月份.域名反写.设备识别
每一个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN),这个实验中有4个LUN。
其余高级设置如initiator-address、incominguser,你们自行查资料。
4.3 启动iSCSI target
# /etc/init.d/tgtd start
# chkconfig tgtd on
# netstat -tulnp|grep tgt
4.4 查看iSCSI target
# tgt-admin –show
LUN0 是控制器,能够看到各个LUN的大小和磁盘路径。
至此,iSCSI Target 设定完毕。
5、配置iSCSI Initiator
5.1 安装initiator
# yum -y install iscsi-initiator-utils
5.2 设置开机启动
# chkconfig iscsid on
# chkconfig iscsi on
5.3 配置文档
initiator的配置文档位于/etc/iscsi/,该目录下有两个文件,initiatorname.iscsi 和iscsid.conf,
其中iscsid.conf 是其配置文件,initiatorname.iscsi 是标记了initiator的名称,它的默认名称是InitiatorName=iqn.1994-05.com.redhat:b45be5af6021,咱们能够根据实际状况进行更改,比较好区分,这里咱们修改成InitiatorName=iqn.2014-07.dev.iscsi-initiator:initiator。
由于在target里面,咱们并无设置访问限制,因此iscsid.conf 文件并不须要修改。
5.4 侦测target
若是咱们事先不知道目标主机的target名称,咱们就须要进行侦测,下面来说解。
# iscsiadm -m discovery -t sendtargets -p 192.168.1.21
说明:
-m discovery //侦测target-t sendtargets //经过iscsi协议-p IP:port //指定target的IP和port,不写port的话,默认为3260
5.5 查看nodes
iscsiadm 侦测到的结果会写入/var/lib/iscsi/nodes/ 中,所以只需启动/etc/init.d/iscsi 就可以在下次开机时,自动链接到正确的target了。
# ll -R /var/lib/iscsi/nodes/
侦测信息都写入了/var/lib/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.1.21,3260,1/default 文件中了。
5.6 链接target
查看目前系统上面全部的target
# iscsiadm -m node
登陆target
# iscsiadm -m node -T iqn.2014-07.dev.iscsi-target:iscsidisk –login
5.7 查看磁盘状况
# fdisk –l
能够看到,initiator 上面多了四块硬盘,大小和target上的LUN一致。这时你就能够像使用本地磁盘同样使用这些iSCSI设备了,下面咱们来测试。
5.8 将/dev/sdb 和/dev/sdc 建立成LV挂载使用
建立LV
# pvcreate /dev/sdb /dev/sdc
# vgcreate iscsi /dev/sdb /dev/sdc
# lvcreate -L 1G -n iscsilv iscsi
格式化并挂载
# mkfs.ext4 /dev/iscsi/iscsilv
# mkdir /mnt/iscsi
# vi /etc/fstab
建立测试文件
挂载成功,建立测试文件成功。
5.9 重启测试
测试成功。
5.10 查看target信息
# tgt-admin --show
能够看到,此时使用该target的initiator 为iqn.2014-07.dev.iscsi-initiator:initiator,也就是咱们上面更改的initiatorname,IP地址为192.168.1.22。
至此,iSCSI 置完毕。
转自:http://www.cnblogs.com/mchina/p/centos-iscsi-network-storage.html