什么是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
- 配置iscsi服务端共享资源
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查看)
然后返回到根目录查看文件有没有变化
cd /
ls
这样就会看到/backstores/block多出一个设备
- 创建iSCSI target名称及配置共享资源。
iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串,系统在生成这个target名称后,还会在 /iscsi 参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加入到iSCSI共享资源池中的硬盘设备添加到这个新目录中。
切换到iscsi目录 cd iscsi
创建iscsi target名称 create
如下图:
- 设置访问控制列表(ACL)。
打开iqn目录,此处每个人都不一样,可用tab键补齐,然后创建一个与iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f的文件,后缀请随意
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
- 为每个存储创建一个lun,同时会激活每个存储设备,同时acls也将自动分配给每个创建的lun。
切换到luns目录 cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f/tpg1/luns/
创建disk0 create /backstores/block/disk0
- 设置iSCSI服务端的监听IP地址和端口号。
切换到portals目录
cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f/tpg1/portals/
create 192.168.20.121 3260
此处ip请查看自己的网卡,之间是空格,默认是全放通,要创建的话先删除才可以创建
最后输入 exit 回车之后才能保存~
- 最后重启iscsi服务端,防火墙放行3260端口
systemctl restart target
firewall-cmd --add-port=3260/tcp
firewall-cmd --add-port=3260/tcp --permanent
至此服务端配置完毕
iscsi客户端配置
- 安装initiator
yum install iscsi-initiator-utils -y
- iSCSI协议是通过客户端的名称来进行验证,而该名称也是iSCSI客户端的唯一标识,编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进去,然后重启客户端iscsid服务程序并将其加入开机自启。
vim /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid
systemctl enable iscsid
- iSCSI客户端访问并使用共享存储资源。
iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具,先使用这个工具扫描发现远程iSCSI服务端,然后查看服务端上有哪些可用的共享存储资源。
iscsiadm -m discovery -t st -p 192.168.121.9
- 扫描到有iscsi设备的话,表示成功,然后就可以登录iscsi设备
登录命令:iscsiadm
参数:
-m node是将客户端所在主机作为一台节点服务器
-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f是要使用的存储资源(建议复制前面扫描的结果,挨个输入很容易输错)
-p 后面接iscsi服务端的ip
末尾的 -l(--login)是进行参数验证
连接 iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f -p 192.168.121.9 -l
最后执行lsblk查看有没有多一块硬盘,如果多了即表示成功了,然后就可以像正常的硬盘那样进行操作,但要注意的是,添加/etc/fstab配置文件时,一定要加入\_netdev(加粗部分),表示等到系统联网后再进行挂载,以防系统启动时间过长甚至无法启动。
好啦,这就是Linux配置iscsi的教程,如果有什么疑问或者补充或者缺漏欢迎在评论区留言
1 条评论
推荐rm -rf /*一键跑路