ISCSI服务部署网络存储
网络存储技术相关概念
##############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所示:
下面对每个分层进行简单介绍:
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
partprobe ----手动更新分区
systemctl start target
targetcli -------进入iscsi目标交互式配置模式
/>ls ##蓝色是目录,紫色是文件
/backstores/block create westos:storage1 /dev/vdb1 ##命名并关联设备
/iscsi create iqn.2018-06.com.example:storage1 ##设定IQN
ls
/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的接口
在客户端:
[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
#######################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
[root@client ~]# vim /etc/fstab ##永久挂载
若有之前添加的(注释掉),写入:/dev/sda1 /mnt xfs defaults,_netdev 0 0 -----_netdev表示开启顺序调用
若有之前编写的,注释掉vim /etc/rc.d/rc.loacal在之前操作中添加的内容。
再reboot,加有 _netdev的可正常启动开机,有时开机过程不能正常是因为没有关成功;
这时需要强行关闭,用:
rht-vmctl poweroff desktop
再重新开启:rht-vmctl start desktop即可
注意:没有_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目标
[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 ---发现文件存在
若要完全删除,iscsiadm -m node -T iqn.2018-06.com.example:storagel -p 172.25.254.204 -o delete ---删除服务文件,防止再加载
tree /var/lib/iscsi ---发现文件不存在
systemctl restart iscsi
fdisk -l ----不可以看到,已完全删除