ISCSI服务部署网络存储

 网络存储技术相关概念

   SCSI (小型计算机系统接口)技术:存储设备最基本标准协议。(直接提供可自行格式化的磁盘,而不是文件系统)
   iSCSI(因特小型计算机系统接口)技术:把SCSI接口与以太网技术结合,使用iSCSI协议基于以太网传送SCSI命令与数据,克服SCSI需要连接存储设备局限性。
   SAN存储区域网络技术。
   ISCSI服务部署网络存储
   (iSCSI封装TCP/IP一般采用iSCSI HBA硬件卡)
   LUN 逻辑单元 : (存储)代表一个硬件或RAID设备。

##############1.ISCSI简介####################################################

iscsi是一种在internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP storage理论的新型存储技术,该

技术是将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN存储区域网,简单地说,ISCSI就

是在IP网络上运行SCSI协议的一种网络存储技术。

SCSI(Internet SCSI)支持从客户端(发起端)通过IP向远程服务器上的ISCSI存储设备(目标)发送SCSI命令。ISCSI限定名称用于确定发起端和目标,并采用iqn.yyyy-mm.{reverse domain}:label的格式。

默认情况下,网络通信是至ISCSI目标上的端口3260/tcp的明文端口。

 

iSCSI的工作原理
要理解iSCSI的工作原理,就必须知道iSCSI的层次结构,根据OSI模型,iSCSI的协议自顶向下一共可以分为三层,如图2所示:
 

ISCSI服务部署网络存储


 

下面对每个分层进行简单介绍:
 SCSI层:根据客户端发出的请求建立SCSI CDB(命令描述块),并传给iSCSI层;同时接受来自iSCSI层的CDB,并向应用返回数据。
 iSCSI层:对SCSI CDB进行封装,以便能够在基于TCP/IP协议的网络上进行传输,完成SCSI到TCP/IP的协议映射。这一层是iSCSI协议的核心层。本章的内容也是主要针对这一层的配置和管理。
 TCP/IP层:对IP报文进行路由和转发,并且提供端到端的透明可靠传输。
iSCSI协议定义了在 TCP/IP网络发送、接收数据块存储数据的规则和方式。首先,发送端将SCSI命令和数据封装到TCP/IP包中,然后再通过IP网络转发,接收端收到 TCP/IP 包之后,将其还原为SCSI命令和数据并执行,执行完成后,将返回的SCSI命令和数据再封装到 TCP/IP 包中,然后再传回发送端。这样就完成了整个传输过程。

iSCSI整个过程在用户看来是完全透明的,用户使用远端的存储设备就象使用本地的硬盘设备一样。不过这只是理论上的,实际上数据传输速度并不能完全达到本地硬盘的数据传输速度,但差别并不明显,而且这种网络存储模式还有一个优点就是其安全性高,这对于数据集中存储的iSCSI来说显得非常重要。

####################2.服务配置###############################################

在服务端:

   yum install targetcli -y    (注意:yum镜像(7.0  7.2)要匹配,不然不会成功)

   创建分区:fdisk /dev/vdb---->n---->+2G----->wq

              ISCSI服务部署网络存储

   partprobe    ----手动更新分区

   systemctl start target  

    targetcli               -------进入iscsi目标交互式配置模式

ISCSI服务部署网络存储

    />ls         ##蓝色是目录,紫色是文件

      /backstores/block create westos:storage1 /dev/vdb1           ##命名并关联设备

      /iscsi create iqn.2018-06.com.example:storage1                   ##设定IQN

      ISCSI服务部署网络存储

      ls

      ISCSI服务部署网络存储

      /iscsi/iqn.2018-06.com.example:storage1/tpg1/acls create iqn.2018-06.com.example:westoskey   ----添加钥匙

      /iscsi/iqn.2018-06.com.example:storage1/tpg1/luns create /backstores/block/westos:storage1   ---添加之前的链接

      /iscsi/iqn.2018-06.com.example:storage1/tpg1/portals create 172.25.254.204   --添加204的接口

             ISCSI服务部署网络存储

      

在客户端:

           [root@client ~]# yum install iscsi-initiator-utils.64_86 -y

[root@client ~]# systemctl start iscsi

[root@client ~]# cd /etc/iscsi

[root@client iscsi]# ls

initiatorname.iscsi iscsid.conf

[root@client iscsi]# vim initiatorname.iscsi ##编写key文件

编写在服务端创建的密码:InitiatorName=iqn.2018-06.com.example:westoskey

[root@client iscsi]# systemctl restart iscsi

[root@client iscsi]# iscsiadm -m discovery -t st -p 172.25.254.200 ##发现服务

(-m 指定服务器,-t 发现网络设备类型,-p主机IP)

[root@client iscsi]# iscsiadm -m node -T iqn.2018-06.com.example:storage1 -p 172.25.254.228 -l

##登陆服务(-T 指定域名 -l 指定lun的ID号)

[root@client iscsi]# fdisk -l ##查看磁盘分区

              Disk /dev/sda: 2147 MB, 2147483648 bytes, 4194304 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 4194304 bytes

 ISCSI服务部署网络存储

 ISCSI服务部署网络存储

 ISCSI服务部署网络存储

  ISCSI服务部署网络存储

#######################3.共享磁盘的使用和开机自动挂载############################

在一个主机进行,例如在我们的客户端:

[root@client ~]# fdisk /dev/sda ##创建分区(大小为2G)

fdisk /dev/sda-->n--->+2G--->wq

[root@client ~]# partprobe ##手动分区

[root@client ~]# mkfs.xfs /dev/sda1 ##格式化

[root@client ~]# mount /dev/sda1 /mnt ##临时挂载

[root@client ~]# df

ISCSI服务部署网络存储

[root@client ~]# vim /etc/fstab ##永久挂载

若有之前添加的(注释掉),写入:/dev/sda1  /mnt  xfs  defaults,_netdev  0 0      -----_netdev表示开启顺序调用

 若有之前编写的,注释掉vim /etc/rc.d/rc.loacal在之前操作中添加的内容。

ISCSI服务部署网络存储

reboot,加有 _netdev的可正常启动开机,有时开机过程不能正常是因为没有关成功;

ISCSI服务部署网络存储

这时需要强行关闭,用:

rht-vmctl poweroff desktop

再重新开启:rht-vmctl start desktop即可

ISCSI服务部署网络存储

注意:没有_netdev的不可正常开机,需要关掉虚拟机

进入开机界面:rw rd.break

           chroot /sysroot

           vim /etc/fstab    添加_netdev,再重启虚拟机可以启动

###################4.删除共享设备#############################################

在我们之前用的这台主机(客户端)操作:

[root@client ~]# df

[root@client ~]# umount /mnt ##卸载

[root@client ~]# vim /etc/fstab ##删除永久挂载设备

删除 /dev/sda1 /mnt xfs defaults,_netdev 0 0

[root@client ~]# yum install tree -y ##安装树形菜单控制

[root@client ~]# tree /var/lib/iscsi ##查看iscsi目标

ISCSI服务部署网络存储

[root@client ~]# iscsiadm -m node -T iqn.2018-06.com.example:storage1 -p 172.25.254.219 -u ##退出登陆

-u:退出登陆

[root@client ~]# iscsiadm -m node -T iqn.2018-06.com.example:storage1 -p 172.25.254.219 -o delete ##删除iscsi目标

-o:删除

[root@client ~]# fdisk -l ##查看

[root@client ~]# systemctl restart iscsi ##重启

[root@client ~]# fdisk -l ##再次查看

   iscsiadm -m node -T iqn.2018-06.com.example:storage1 -p 172.25.254.204 -u  ---删除服务(由于服务文件依然存在,若systemctl restart iscsi会重新加载服务,可fdisk -l又看到)

tree /var/lib/iscsi   ---发现文件存在

ISCSI服务部署网络存储

若要完全删除,iscsiadm -m node -T iqn.2018-06.com.example:storagel -p 172.25.254.204 -o delete   ---删除服务文件,防止再加载

tree /var/lib/iscsi   ---发现文件不存在

ISCSI服务部署网络存储

systemctl restart iscsi

fdisk -l   ----不可以看到,已完全删除