iSCSI文件存储
1274 字
6 分钟
iSCSI文件存储

iSCSI文件存储
[TOC]
这个实验的核心其实就是**“把服务端的一块硬盘,通过网络共享给客户端,让客户端像使用自己的本地硬盘一样使用它”**
实验环境规划
| 角色 | IP 地址 | 功能 | 硬件要求 |
|---|---|---|---|
| 服务端 (Target) | 10.0.0.101 | 提供存储空间 | 除了系统盘,额外挂载一块新硬盘 (例如 20G) |
| 客户端 (Initiator) | 10.0.0.102 | 使用存储空间 | 只有系统盘即可 |
服务端准备工作
- 开机状态下添加硬盘 (在虚拟机软件里操作):
- 给服务端虚拟机添加一块新的 SCSI 硬盘(比如 20G)

[root@Server ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsr0 11:0 1 8.6G 0 romnvme0n1 259:0 0 50G 0 disk├─nvme0n1p1 259:1 0 600M 0 part /boot/efi├─nvme0n1p2 259:2 0 1G 0 part /boot└─nvme0n1p3 259:3 0 48.4G 0 part ├─rl-root 253:0 0 46.4G 0 lvm / └─rl-swap 253:1 0 2G 0 lvm [SWAP][root@Server ~]# lsscsi[3:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0========"重启前"========[root@Server ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 20G 0 disk....[root@Server ~]# lsscsi[3:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0[32:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda'硬件准备就绪!'配置 iSCSI 服务端
这一步是核心,我们要把 sda 这块盘变成一个“网络硬盘”共享出去
1)安装软件[root@Server ~]# dnf -y install targetcli[root@Server ~]# systemctl enable --now targetCreated symlink '/etc/systemd/system/multi-user.target.wants/target.service' → '/usr/lib/systemd/system/target.service'.
2)进入配置模式# 输入 `targetcli` 进入交互式配置界面[root@Server ~]# targetclitargetcli shell version 2.1.58Copyright 2011-2013 by Datera, Inc and others.For help on commands, type 'help'./>
3)创建后端存储 (把物理硬盘挂进来):/backstores/block create sda /dev/sda✅️通俗解释:给这块硬盘起个内部代号叫 `sda`# 它对应的真实物理设备是 `/dev/sda`
4)创建 Target (创建一个网络共享房间)/iscsi create iqn.2026-04.com.lab:server-sda✅️通俗解释:创建一个房间,名字叫 `iqn.2026-04.com.lab:server-sda`
5)关联硬盘到房间 (把硬盘放进共享房间)/iscsi/iqn.2026-04.com.lab:server-sda/tpg1/luns create /backstores/block/sda✅️通俗解释:把刚才挂进来的硬盘,放进这个共享房间,让别人能拿到它
6)设置访问白名单 (谁可以进来拿)/iscsi/iqn.2026-04.com.lab:server-sda/tpg1/acls create iqn.2026-04.com.lab:client-scsi✅️通俗解释:设置一个白名单,只有拿着 `iqn.2026-04.com.lab:client-scsi` 这个钥匙的人才能进来
7)修改监听地址 (只在内网 IP 监听)/iscsi/iqn.2026-04.com.lab:server-sda/tpg1/portals delete 0.0.0.0 3260# 先删除默认的监听(监听所有 IP)/iscsi/iqn.2026-04.com.lab:server-sda/tpg1/portals create 10.0.0.101 3260# 改为监听服务端的内网 IP✅️通俗解释:把共享房间的门开在 `10.0.0.101` 这个地址上,端口是 `3260` (iSCSI 默认端口)✅️保存并退出- 输入 `saveconfig` (保存配置)- 输入 `exit` (退出配置界面)/> /backstores/block create sda /dev/sdaCreated block storage object sda using /dev/sda./> /iscsi create iqn.2026-04.com.lab:server-sdaCreated target iqn.2026-04.com.lab:server-sda.Created TPG 1.Global pref auto_add_default_portal=trueCreated default portal listening on all IPs (0.0.0.0), port 3260./> /iscsi/iqn.2026-04.com.lab:server-sda/tpg1/luns create /backstores/block/sdaCreated LUN 0./> /iscsi/iqn.2026-04.com.lab:server-sda/tpg1/acls create iqn.2026-04.com.lab:client-scsiCreated Node ACL for iqn.2026-04.com.lab:client-scsiCreated mapped LUN 0./> /iscsi/iqn.2026-04.com.lab:server-sda/tpg1/portals delete 0.0.0.0 3260Deleted network portal 0.0.0.0:3260/> /iscsi/iqn.2026-04.com.lab:server-sda/tpg1/portals create 10.0.0.101 3260Using default IP port 3260Created network portal 10.0.0.101:3260./> saveconfigConfiguration saved to /etc/target/saveconfig.json/> exitGlobal pref auto_save_on_exit=trueLast 10 configs saved in /etc/target/backup/.Configuration saved to /etc/target/saveconfig.json配置 iSCSI 客户端
这一步是让客户端去“连接”服务端共享出来的硬盘
1)安装软件[root@Client ~]# dnf -y install iscsi-initiator-utils[root@Client ~]# systemctl restart iscsid
2)修改客户端名字 (关键一步)# 客户端必须有一个名字,这个名字必须和服务端白名单里的名字一模一样![root@Client ~]# vim /etc/iscsi/initiatorname.iscsiInitiatorName=iqn.2026-04.com.lab:client-scsi
3)重启服务生效[root@Client ~]# systemctl restart iscsid
4)发现服务端 (看看有没有共享房间)[root@Client ~]# iscsiadm --mode discoverydb --type sendtargets --portal 10.0.0.101:3260 --discover10.0.0.101:3260,1 iqn.2026-04.com.lab:server-sda# 找到了!
5)登录连接 (把硬盘挂载到本地)[root@Client ~]# iscsiadm --mode node --targetname iqn.2026-04.com.lab:server-sda --portal 10.0.0.101:3260 --loginLogin to [iface: default, target: iqn.2026-04.com.lab:server-sda, portal: 10.0.0.101,3260] successful.
6)验证是否挂载成功[root@Client ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 20G 0 disk# 这就是服务端的那块硬盘!使用硬盘 (格式化与挂载)
这一步是把拿到的硬盘“铺上地砖”(格式化)并“装上门”(挂载)
1)分区 (可选,也可以不分区直接格式化整盘)[root@Client ~]# parted -s /dev/sda mklabel gpt mkpart primary xfs 0% 100%[root@Client ~]# parted /dev/sda printModel: LIO-ORG sda (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gpt
2)格式化 (铺地砖)[root@Client ~]# mkfs.xfs /dev/sda1meta-data=/dev/sda1 isize=512 agcount=4, agsize=1310655 blks .....⚠️注意:这里操作的是 /dev/sda1,而不是 /dev/sda(整块盘)
3)创建挂载点[root@Client ~]# mkdir /mnt/iscsi
4)临时挂载测试[root@Client ~]# mount /dev/sda1 /mnt/iscsi[root@Client ~]# df -h | tail -1/dev/sda1 20G 424M 20G 3% /mnt/iscsi
5)写入自动挂载文件 (fstab)[root@Client ~]# blkid /dev/sda1/dev/sda1: UUID="d08b885b-3a36-47e4-a49e-9e68f40efe09" BLOCK_SIZE="512" TYPE="xfs" PARTLABEL="oldboy" PARTUUID="1adf5c02-4c76-42b8-8dff-ce6c8a73d061"# 获取 UUID[root@Client ~]# vim /etc/fstab# 编辑 fstab[root@Client ~]# tail -1 /etc/fstabUUID=d08b885b-3a36-47e4-a49e-9e68f40efe09 /mnt/iscsi xfs _netdev,defaults 0 0⚠️特别注意:这里必须加 `_netdev`# 意思是“等网络启动好了再挂载这块盘”,否则开机可能卡住
6)测试并刷新配置[root@Client ~]# mount -a# 如果没有报错,说明配置成功测试验证
1)写个文件试试[root@Client ~]# echo "实验成功!" > /mnt/iscsi/test.txt[root@Client ~]# cat /mnt/iscsi/test.txt实验成功!
2)重启验证[root@Client ~]# reboot[root@Client ~]# Connection closing...Socket close[root@Client ~]# df -h | grep iscsi/dev/sda1 20G 424M 20G 3% /mnt/iscsi[root@Client ~]# cat /mnt/iscsi/test.txt实验成功!文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
NFS存储服务
Linux扩展基础讲解NFS网络文件系统原理与exports配置,涵盖RPC机制、版本差异及客户端挂载流程
2
存储基础概念
存储技术从DAS/NAS/SAN三种存储架构到块/文件/对象存储类型,深入理解存储基础概念与软件RAID实践
3
存储池&&PG及配置管理
存储技术深入Ceph存储池与PG归置组管理,掌握副本池与纠删码池原理、CRUSH规则配置及PG自动伸缩机制
4
OSD运维管理&&非并置部署
存储技术Ceph OSD运维管理实战,掌握托管与非托管OSD、设备擦除替换、主机驱逐及非并置部署等核心运维操作
5
Ceph集群开篇
存储技术Ceph分布式存储集群入门,详解RADOS架构、MON/MGR/OSD核心组件及RBD/CephFS/RadosGW三种存储接口的部署与管理
随机文章随机推荐



