linux基础---iscsi远程块存储

如果你的系统需要大量的磁盘容量,但是身边却没有外接存储设备,仅有个人计算机时,那该怎么办?

此时,通过网络的SCSI磁盘(iSCSI)就能够提供帮助。这个iscsi是将来自网络的数据仿真成本机的SCSI设备,因此可以进行诸如LVM等方面的操作,而不是单纯使用服务器端提供的文件系统而已,相当有帮助。

再说iscsi之前,先来了解下NAS和SAN。

NAS:又称网络附加存储服务器,就像一台客制化好的主机或服务器,大白话说就是它支持TCP/ip协议还有一些其他的服务(ftp,samba,nfs),我们存储的方式就是通过这些把数据存储到主机或服务器里。
SAN:又称存储局域网络,它就好比一个u盘,直接插在电脑上,就可有一个容量来存储数据

那么什么又是iscsi呢?

iSCSI主要是透过TCP/IP的技术,将储存设备端透过iSCSI target (iSCSI目标)功能,做成可以提供磁盘的服务器端,再透过iSCSI initiator (iSCSI初始化用户)功能,做成能够挂载使用iSCSI target的客户端,如此便能透过iSCSI协议来进行磁盘的应用了

在这里解释一下神魔是ISCSI target和ISCSI initiator?

iSCSI target:就是储存设备端,存放磁盘或RAID的设备,也就是提供容量的
iSCSI initiator:就是能够使用target的客户端,通常是服务器。(因为要给服务器容量不够了呀)

iscsi远程块存储实验

[[email protected] ~]# yum -y install targetd targetcli
linux基础---iscsi远程块存储
关闭防火墙或开放端口
[[email protected] ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[[email protected] ~]# firewall-cmd --reload
success

linux基础---iscsi远程块存储

执行targetcli工具
linux基础---iscsi远程块存储
如果出现这种报错,使用targetcli进不去
是因为缺少组件yum -y install python-rtslib即可
下载完后
进入下面这个环境

linux基础---iscsi远程块存储
现在创建块(即要给发布的磁盘起个名字)
linux基础---iscsi远程块存储
创建iqn名字即创建ISCSI对象
例: /> /iscsi create iqn.2020-02.com.jd:disk1
iqn.日期.反域名
例: com.baidu

linux基础---iscsi远程块存储
设置acl即将的ISCSI对象与客户端IP或主机绑定
注意:iqn.2020-02.com.jd:client1是initiator的名字,需要在客户端里面设置

linux基础---iscsi远程块存储
创建LUN并绑定块
/iscsi/iqn.20…jd:disk1/tpg1> luns/ create/backstores/block/server0.disk1

linux基础---iscsi远程块存储

客户端的操作
先安装工具
[[email protected] ~]# yum -y install iscsi-initiator-utils

linux基础---iscsi远程块存储
给initiator命名
编辑 /etc/iscsi/initiatorname.iscsi 这个文件

linux基础---iscsi远程块存储
开启服务并测试发现存储
iscsiadm -m discovery -t st -p 192.168.10.4

linux基础---iscsi远程块存储

登录存储连接target
[[email protected] ~]# iscsiadm -m node -T iqn.2020-02.com.jd:disk1 -p 192.168.10.4 -l
注意:如果连接不上,就检查一下刚才修改的文件和服务器配置,重复restart一下
几个参数要注意一下
-m:发现服务器的输出是否有target,以及输出了那些与target关联的管理
-T:指定target的名字
-l:登录节点
-t:用于discovery模式,目前支持st,fw和isns,st表示允许每个ISCSItarget发送一个可以用的target列表给initiator

linux基础---iscsi远程块存储
在客户机上回发现多了一个磁盘,我们就可以远程的存储数据或创建磁盘,格式化磁盘等操作,就像自己电脑上的一样。
linux基础---iscsi远程块存储