配置 iSCSI Targets
#服务器端:搭建 “网络硬盘出租店” [root@server ~ 11:06:21]# yum install -y targetd targetcli [root@server ~ 11:14:02]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 52G 0 part ├─centos-root 253:0 0 50G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk sr0 11:0 1 1024M 0 rom #client没有硬盘,之后操作给client添加共享硬盘 [root@client ~ 14:38:49]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 52G 0 part ├─centos-root 253:0 0 50G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom #启动服务并设置开机自启(打开店门) [root@server ~ 11:14:04]# systemctl enable --now target Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service. [root@server ~ 11:16:35]# targetcli Warning: Could not load preferences file /root/.targetcli/prefs.bin. targetcli shell version 2.1.53 Copyright 2011-2013 by Datera, Inc and others. For help on commands, type 'help'. /> ls o- / .............................................................................. [...] o- backstores ................................................................... [...] | o- block ....................................................... [Storage Objects: 0] | o- fileio ...................................................... [Storage Objects: 0] | o- pscsi ....................................................... [Storage Objects: 0] | o- ramdisk ..................................................... [Storage Objects: 0] o- iscsi ................................................................. [Targets: 0] o- loopback .............................................................. [Targets: 0]
配置 backstore 对象
#cd到共享的里面 /> cd /backstores/block #准备要出租的 “硬盘”(Backstore) /backstores/block> create myblock1 /dev/sdb Created block storage object myblock1 using /dev/sdb. -把服务器的物理硬盘 sdb(100G)包装成 “1 号硬盘”(myblock1),供出租
等同于两种写法
/> /backstores/block create myblock1 /dev/sdb Created block storage object myblock1 using /dev/sdb.
#先开一个窗口,创建一个文件,虚拟硬盘(2G 文件) [root@server ~ 11:29:55]# dd if=/dev/zero of=/tmp/bigfile bs=1M count=2048 - 用大文件模拟硬盘,适合没有多余物理硬盘的场景 记录了2048+0 的读入 记录了2048+0 的写出 2147483648字节(2.1 GB)已复制,6.54975 秒,328 MB/秒 #到fileio创建 /backstores/block> cd /fileio /backstores/fileio> create file1 /tmp/bigfile Created fileio file1 with size 2147483648 /backstores/fileio> /backstores/fileio> cd /iscsi /iscsi> ls / o- iscsi ................................................................... [Targets: 0] #创建 “出租柜台”(Target) /iscsi> create iqn.2025-08.online.lovyk.server:myblock1 #delete tab键位查看有什么文件,删除多余的2003 /iscsi> delete iqn.2003-01.org.linux-iscsi.server.x8664:sn.749d0dcff1e3 iqn.2025-08.online.lovyk.server:myblock1 #清理多余柜台 /iscsi> delete iqn.2003-01.org.linux-iscsi.server.x8664:sn.749d0dcff1e3 /iscsi> cd iqn.2025-08.online.lovyk.server:myblock1/tpg1/ #设置 “门禁”(只允许指定客户进入) /iscsi/iqn.20...myblock1/tpg1> acls/ create iqn.2025-08.online.lovyk.server:client #acls/ delete iqn.2025-08.online.lovyk.server:client删除方法 #把硬盘放到柜台里(供客户选择) /iscsi/iqn.20...myblock1/tpg1> luns/ create /backstores/block/myblock1 /iscsi/iqn.20...myblock1/tpg1> luns/ create /backstores/fileio/file1 #告诉客户柜台的 “地址和门牌号”(网络配置) /iscsi/iqn.20...myblock1/tpg1> portals/ delete 0.0.0.0 3260 # 删除默认的“全地址 监听”(不安全) Deleted network portal 0.0.0.0:3260 /iscsi/iqn.20...myblock1/tpg1> portals/ create 10.1.8.10 3260 # 绑定服务器IP 10.1.8.10和端口3260(iSCSI默认端口) Using default IP port 3260 Created network portal 10.1.8.10:3260. /iscsi/iqn.20...myblock1/tpg1> exit #退出自动保存 Global pref auto_save_on_exit=true Configuration saved to /etc/target/saveconfig.json -- 自动保存配置到/etc/target/saveconfig.json #客户端:租用 “网络硬盘” #安装 “租客工具”(iSCSI 客户端) [root@client ~ 13:30:41]# yum install -y iscsi-initiator-utils #设置 “会员卡”( Initiator 名称) [root@client ~ 13:55:17]# vim /etc/iscsi/initiatorname.iscsi #编辑vim [root@client ~ 13:57:30]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2025-08.online.lovyk.server:client #发现 “出租柜台”(查找服务器的共享) [root@client ~ 13:58:06]# iscsiadm -m discovery -t st -p 10.1.8.10 10.1.8.10:3260,1 iqn.2025-08.online.lovyk.server:myblock1 # 连接柜台并租用硬盘(登录并挂载) [root@client ~ 14:01:12]# iscsiadm -m node -T iqn.2025-08.online.lovyk.server:myblock1 -l Logging in to [iface: default, target: iqn.2025-08.online.lovyk.server:myblock1, portal: 10.1.8.10,3260] (multiple) Login to [iface: default, target: iqn.2025-08.online.lovyk.server:myblock1, portal: 10.1.8.10,3260] successful. #查看租用的硬盘(确认结果) [root@client ~ 14:01:38]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 52G 0 part ├─centos-root 253:0 0 50G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk ##手动添加的100G sdc 8:32 0 2G 0 disk ##dd if...创建的2G虚拟文件当硬盘 sr0 11:0 1 1024M 0 rom
故障处理
#修复 iSCSI 连接(远程硬盘连不上了,重新连接) [root@client ~]# systemctl stop iscsid # 重新发现 [root@client ~]# iscsiadm -m discovery -t st -p server 10.1.8.10:3260,1 iqn.2024-12.online.lovyk.server:disk1 # 重新登录 [root@client ~]# iscsiadm -m node -T iqn.2024-12.cloud.laoma.server:disk1 -l
#格式化远程存储并用作网页目录 [root@client ~ 15:19:44]# mkfs.xfs /dev/sdb [root@client ~ 15:25:07]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 52G 0 part ├─centos-root 253:0 0 50G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk sdc 8:32 0 2G 0 disk sr0 11:0 1 1024M 0 rom [root@client ~ 15:25:14]# yum install -y httpd #将远程硬盘 sdb 挂载到网页服务器的默认目录 /var/www/html(Apache 会从这个目录读取网页文件) [root@client ~ 15:26:02]# mount /dev/sdb /var/www/html [root@client ~ 15:26:26]# echo cccc > /var/www/html/index.html [root@client ~ 15:26:51]# systemctl enable httpd --now Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. #查看 sdb 的 UUID(唯一标识符,类似 “硬盘的身份证号”) [root@client ~ 15:27:16]# blkid /dev/sdb /dev/sdb: UUID="37518144-8e36-4208-837a-96a40d57cf95" TYPE="xfs" #配置开机自动挂载远程硬盘 sdb 到 /var/www/html [root@client ~ 15:27:25]# vim /etc/fstab #vim添加记录,_netdev必须写,网络挂载 UUID="37518144-8e36-4208-837a-96a40d57cf95" /var/www/html/ xfs _netdev 0 0