Loading... **什么是iscsi?** *iSCSI(Internet Small Computer System Interface,Internet 小型计算机系统接口)是一种由IBM公司研究开发的IP SAN技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,基于 TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包可以在通用互联网传输,最终实现iSCSI服务端映射为一个存储空间(磁盘)提供给已连接认证后的客户端。* # 配置iscsi服务端 1. 安装iscsi服务端程序以及命令工具,然后设置启动以及自启动 `yum install target* -y` `systemctl start target` `systemctl enable target` ![安装](https://pic.eeccx.com/view.php/6387c75c5365b6e2064339c6d9beeb37.png) ![启动](https://pic.eeccx.com/view.php/c303f30ff5ebc69dc62cf020e9cdd570.png) 2. 配置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多出一个设备 3. 创建iSCSI target名称及配置共享资源。 iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串,系统在生成这个target名称后,还会在 **/iscsi** 参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。我们需要把前面加入到iSCSI共享资源池中的硬盘设备添加到这个新目录中。 切换到iscsi目录 `cd iscsi` 创建iscsi target名称 `create` 如下图: ![iscsi](https://pic.eeccx.com/view.php/10180aba5ca670539caf45df5c41d577.png) 4. 设置访问控制列表(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` ![acls](https://pic.eeccx.com/view.php/81b78bded0ac23b0edfe799f9b43b3cb.png) 5. 为每个存储创建一个lun,同时会激活每个存储设备,同时acls也将自动分配给每个创建的lun。 切换到luns目录 `cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f/tpg1/luns/ ` 创建disk0 `create /backstores/block/disk0` 6. 设置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** 回车之后才能保存~ 7. 最后重启iscsi服务端,防火墙放行3260端口 `systemctl restart target` `firewall-cmd --add-port=3260/tcp` `firewall-cmd --add-port=3260/tcp --permanent ` 至此服务端配置完毕 ## iscsi客户端配置 1. 安装initiator `yum install iscsi-initiator-utils -y` ![安装客户端](https://pic.ui04.cn/view.php/75099d3faf9cdca28099e0272b11d20d.png) 2. iSCSI协议是通过客户端的名称来进行验证,而该名称也是iSCSI客户端的唯一标识,编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进去,然后重启客户端iscsid服务程序并将其加入开机自启。 `vim /etc/iscsi/initiatorname.iscsi` ![vim](https://pic.ui04.cn/view.php/7cd61ce57e3ad2125e17ff3ebbc19dd4.png) `systemctl restart iscsid` `systemctl enable iscsid` 3. iSCSI客户端访问并使用共享存储资源。 iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具,先使用这个工具扫描发现远程iSCSI服务端,然后查看服务端上有哪些可用的共享存储资源。 `iscsiadm -m discovery -t st -p 192.168.121.9` ![扫描](https://pic.ui04.cn/view.php/803d2bcbae01cf3a903602e1cb899db9.png) 4. 扫描到有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 ` ![end](https://pic.eeccx.com/view.php/2d565827fa0835ec099e3497cb55d941.png) 最后执行lsblk查看有没有多一块硬盘,如果多了即表示成功了,然后就可以像正常的硬盘那样进行操作,但要注意的是,**添加/etc/fstab配置文件时,一定要加入\_netdev(加粗部分),表示等到系统联网后再进行挂载,以防系统启动时间过长甚至无法启动。** --- 好啦,这就是Linux配置iscsi的教程,如果有什么疑问或者补充或者缺漏欢迎在评论区留言 最后修改:2025 年 01 月 20 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏
2 条评论
不错不错,我喜欢看 https://www.ea55.com/
推荐rm -rf /*一键跑路