一、简介

iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的存储装置互相交换资料。

iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。

iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。

完整的iSCSI系统的拓扑结构如下:银河麒麟服务器配置iSCSI网络存储_kylin


二、配置环境

操作系统:KylinV4serverX86

iSCSI Target:192.168.47.131/ tgt  1:1.0.63-1kord1

操作系统:KylinV4DesktopX86

iSCSI Initiator:192.168.47.128/ open-iscsi 2.0.873+git0.3b4b4500-14kord3

防火墙已关闭:Firewall is not running.

SELINUX=disabled

三、准备工作

iSCSI可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition)、物理硬盘、raid设备、逻辑卷等,我们给出配置示例的是镜像和分区。

3.1 模拟镜像

在iSCSITarget的/srv目录下创建一个200M大小的镜像文件。

# mkdir /srv/iscsi

# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=200

# ll -lh /srv/iscsi/disk1.img

银河麒麟服务器配置iSCSI网络存储_ iscsi_02


3.2 建立分区

创建一个1G大小的分区/dev/sdb1。

# fdisk /dev/sdb

银河麒麟服务器配置iSCSI网络存储_配置_03


四、配置iSCSI Target

4.1 安装tgt

Kylin使用tgt软件做为iscsitarget端,我们使用该软件进行target设置。

# apt-get install tgt

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   

</target>

说明:

iqn = iSCSI Qualified Name

iSCSI target的名称规则如下:

iqn.2014-07.dev.iscsi-target:iscsidisk

iqn.年份-月份.域名反写.设备识别

每个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN),这个实验中有2个LUN。

其他高级设置如initiator-address、incominguser,大家自行查资料。

·  iscsi target 配置文档与管理程序 

·  

·  /etc/tgt/targets.conf   主配置文档,设置要分享的磁盘 

·  /usr/sbin/tgt-admin     线上查询、删除target 等功能的管理工具; 

·  /usr/sbin/tgt-setup-lun 建立target 以及设置分享的磁盘与可使用的用户端等工具软体。 

·  /usr/sbin/tgtadm        手动直接管理的管理员工具(可使用配置文档取代) 

·  /usr/sbin/tgtd          主要提供iSCSI target 服务的主程式; 

·  /usr/sbin/tgtimg        建置预计分享的映像档装置的工具(以映像档模拟磁盘

 

4.3 重启iSCSI target

# systemctl restart tgt

# ss -tulnp|grep tgt

查看tgt服务是否已正常启动

银河麒麟服务器配置iSCSI网络存储_kylin_04


4.4 检查iSCSI target运行状态

# systemctl status tgt银河麒麟服务器配置iSCSI网络存储_配置_05


4.5查看iSCSI target

# tgt-admin --show

银河麒麟服务器配置iSCSI网络存储_配置_06


 

LUN0 是控制器,可以看到各个LUN的大小和磁盘路径。

注意:initiator端连接后才能show出此效果。第六行可以看到客户端的initiator

4.6将iSCSI Target服务配置为开机自启动

查看是否开机自启动:

systemctl is-enabled tgt

如果显示enabled,则表示tgt服务开机会自启动。

银河麒麟服务器配置iSCSI网络存储_ iscsi_07


否则,配置开机自启动:

systemctl enable tgt

再次检查systemctl is-enabled tgt

银河麒麟服务器配置iSCSI网络存储_ iscsi_08


至此,iSCSI Target 设定完毕。

 

五、在客户端配置iSCSI Initiator

5.1 安装initiator

# apt-get install open-iscsi

5.2检查客户端运行状态,如果未运行则开启

# systemctl status open-iscsi

# systemctl restart open-iscsi

银河麒麟服务器配置iSCSI网络存储_kylin_09


5.3 发现Target

iSCSI客户端连接Target,首先要发现Target

# iscsiadm -m discovery -t sendtargets -p 192.168.47.131

银河麒麟服务器配置iSCSI网络存储_ iscsi_10


说明:

-m discovery  //侦测target

-t sendtargets  //通过iscsi协议

-p IP:port  //指定target的IP和port,不写port的话,默认为3260

5.4 显示已发现target

查看目前系统上面所有的target

# iscsiadm -m node

银河麒麟服务器配置iSCSI网络存储_配置_11


5.5 连接target

登录target

# iscsiadm -m node -p 192.168.47.131 --login

银河麒麟服务器配置iSCSI网络存储_ iscsi_12


如果怕指定IP什么太烦,直接连接所有Target

# iscsiadm -m node --login all

5.6 查看磁盘情况

# ls /dev/sd*

银河麒麟服务器配置iSCSI网络存储_kylin_13


可以看到,initiator 上面多了/dev/sdb和/dev/sdc,与target上的LUN一致。这时你就可以像使用本地磁盘一样使用这些iSCSI设备了,下面我们来测试。

5.7查看iSCSI session信息

 用iscsiadm -m session查看iSCSI session和设备信息。

银河麒麟服务器配置iSCSI网络存储_配置_14


5.8 设置开机自动登录到iscsi-target

重启后没有自动登录,想要自动登录target,需要在initiator端修改配置文件/etc/iscsi/nodes/iqn.2014-07.dev.iscsi-target:iscsidisk/192.168.47.131,3260,1/default

配置内容

对应语句

在开机后是否自动登录Target。

node.startup = automatic   表示自动登录(默认是automatic),

node.startup = manual     表示需手动登录。

将node.startup= manual修改为node.startup = automatic,重启后自动登录生效。

5.9将/dev/sdb格式化为ext4并挂载到本地使用

# fdisk /dev/sdb

根据提示创建主分区/dev/sdb1

n,p,回车,回车,w,q

格式化成ext4格式:

mkfs.ext4 /dev/sdb1

创建挂载点:

mkdir /mnt/iscsi01

挂载到本地:

mount /dev/sdb1 /mnt/iscsi01

开机自动挂载,修改/etc/fstab文件,增加一行。

/dev/sdb1 /mnt/iscsi01 ext4 defaults 0 0

但是因为文件系统挂载时iscsi磁盘还没有准备好,因此系统会启不来!

修改/etc/fstab文件,将挂载方式的defaults修改为_netdev,即可成功自动挂载!

/dev/sdb1  /mnt/iscsi01  ext4   _netdev       0   0

如果怕系统重启后,磁盘设备的名称可能会发生飘移,从而引起文件系统不能挂载上来或者不能正确挂载,使用UUID的方式进行挂载可以解决这个问题。

查看UUID:

blkid

银河麒麟服务器配置iSCSI网络存储_ iscsi_15


修改/etc/fstab,增加或修改/dev/sdb1的挂载配置如最后一行:

UUID=dec7bc24-4133-475a-bc3b-2b849a57267f       /mnt/iscsi01    ext4   _netdev 0       0

银河麒麟服务器配置iSCSI网络存储_配置_16


保存退出,系统重启后可见/dev/sdb1已自动挂载到/mnt/iscsi01

银河麒麟服务器配置iSCSI网络存储_kylin_17


--------------------------

银河麒麟操作系统是天津麒麟信息技术有限公司自主研发的类Linux操作系统,目前有桌面版和服务器版以及一些特种行业的定制版本。银河麒麟社区版可在http://www.ubuntukylin.com/downloads/自由下载使用。