什么是iscsi?
iSCSI(Internet Small Computer System Interface,Internet 小型计算机系统接口)是一种由IBM公司研究开发的IP SAN技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,基于 TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包可以在通用互联网传输,最终实现iSCSI服务端映射为一个存储空间(磁盘)提供给已连接认证后的客户端。
配置iscsi服务端
- 安装iscsi服务端程序以及命令工具,然后设置启动以及自启动
yum install target* -y
systemctl start target
systemctl enable target
targetcli命令是用于管理iSCSI服务端存储资源的专用配置命令,它能够提供类似于fdisk命令的交互式配置功能。在该界面中可以使用很多Linux命令,比如:cd,ls,df -h等
先使用targetcli
命令进入管理界面
可以使用ls查看目录结构
/backstores/block是iSCSI服务端配置共享设备的位置。 首先要在服务端中添加硬盘,然后使用create命令创建共享设备
进入到 /backstores/block cd backstores/block
创建名为disk0的设备 create disk0 /dev/nvme0n2
(硬盘位置可使用lsblk查看)
然后返回到根目录查看文件有没有变化
代码语言:txt复制cd /
ls
这样就会看到/backstores/block多出一个设备
3.创建iSCSI target名称及配置共享资源。
iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串,系统在生成这个target名称后,还会在 /iscsi 参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加入到iSCSI共享资源池中的硬盘设备添加到这个新目录中
切换到iscsi目录
代码语言:txt复制cd iscsi
创建iscsi target名称
代码语言:txt复制create
如下图:
4.打开iqn目录,此处每个人都不一样,可用tab键补齐,然后创建一个与iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f的文件,后缀请随意
代码语言:txt复制cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f/tpg1/acls
create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f.server
6.为每个存储创建一个lun,同时会激活每个存储设备,同时acls也将自动分配给每个创建的lun。
切换到luns目录
代码语言:txt复制cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f/tpg1/portals/
create 192.168.20.121 3260
此处ip请查看自己的网卡,之间是空格,默认是全放通,要创建的话先删除才可以创建
最后输入 exit 回车之后才能保存~
7.最后重启iscsi服务端,防火墙放行3260端口
代码语言:txt复制systemctl restart target
firewall-cmd --add-port=3260/tcp
firewall-cmd --add-port=3260/tcp --permanent
至此服务端配置完毕
iscsi客户端配置
1.安装initiator
代码语言:txt复制yum install iscsi-initiator-utils -y
2.iSCSI协议是通过客户端的名称来进行验证,而该名称也是iSCSI客户端的唯一标识,编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进去,然后重启客户端iscsid服务程序并将其加入开机自启。
代码语言:txt复制vim /etc/iscsi/initiatorname.iscsi
代码语言:txt复制systemctl restart iscsid
systemctl enable iscsid
3.iSCSI客户端访问并使用共享存储资源。
iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具,先使用这个工具扫描发现远程iSCSI服务端,然后查看服务端上有哪些可用的共享存储资源。
代码语言:txt复制iscsiadm -m discovery -t st -p 192.168.121.9
4.扫描到有iscsi设备的话,表示成功,然后就可以登录iscsi设备
代码语言:txt复制登录命令:iscsiadm
参数:
-m node是将客户端所在主机作为一台节点服务器
-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f是要使用的存储资源(建议复制前面扫描的结果,挨个输入很容易输错)
-p 后面接iscsi服务端的ip
末尾的 -l(--login)是进行参数验证
代码语言:txt复制连接 iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f -p 192.168.121.9 -l
最后执行lsblk查看有没有多一块硬盘,如果多了即表示成功了,然后就可以像正常的硬盘那样进行操作,但要注意的是,添加/etc/fstab配置文件时,一定要加入_netdev(加粗部分),表示等到系统联网后再进行挂载,以防系统启动时间过长甚至无法启动。