运维踩坑日记头像
关注
Linux运维:NFS与iSCSl远程挂载封面图

Linux运维:NFS与iSCSl远程挂载

NFS与iSCSI远程挂载

远程挂载分为文件存储NFS和块存储iSCSI,二者核心区别:NFS共享目录(服务端做好文件系统);iSCSI共享裸磁盘(客户端自行格式化)。

一、NFS 和 iSCSI 核心对比

项目NFSiSCSI
存储类型文件存储(File)块存储(Block)
共享对象目录 / 文件夹(服务端已经建好文件系统)裸块磁盘(服务端只提供硬盘,无文件系统)
格式化在哪做服务端提前建好文件系统,客户端不用格式化客户端拿到磁盘后,自己 mkfs 创建文件系统
访问粒度读写文件、文件夹读写整块磁盘、块扇区
网络层TCP,NFS服务,主端口2049TCP,iSCSI协议,模拟SATA硬盘,端口3260
客户端看到的东西挂载点,直接看到里面的文件新的块设备 /dev/sdX(虚拟硬盘)
多客户端同时挂载✅支持多机器同时挂载读写(需要文件锁)❌禁止多客户端同时挂载同一个 LUN!会损坏文件系统(集群文件系统除外)
RHCSA服务端软件nfs‑utilstargetcli / target
RHCSA客户端软件nfs‑utilsiscsi‑initiator‑utils
防火墙服务nfs、mountd、rpc‑bindiscsi‑target

二、NFS服务部署

NFS:把服务端的目录,通过网络挂载到客户端,多台机器共用同一个文件夹。
配置文件:/etc/exports

NFS配置完整流程

  1. 安装软件包
  2. 准备共享目录、权限
  3. 修改exports配置共享规则
  4. 启动nfs‑server服务
  5. 防火墙放行对应服务
  6. 客户端查看、临时挂载、持久化挂载
1)服务端操作
# 1.安装软件
yum install -y nfs-utils

# 2.准备共享目录
mkdir -p /shares/webapp
# 修改目录属主,例如给apache用户id=48
chown 48 /shares/webapp

#3.编辑共享配置 /etc/exports
vim /etc/exports
#写入内容
/shares/webapp 10.1.8.0/24(rw,no_root_squash)
#参数说明
# rw:读写;ro只读
# no_root_squash:客户端root用户不压缩,保留root权限
# root_squash:客户端root映射为nfsnobody(默认)

#重新读取exports配置文件,不需要重启服务
exportfs -r

#4.启动并开机自启nfs服务
systemctl enable nfs-server.service --now

#5.防火墙放行nfs相关服务
firewall-cmd --permanent --add-service=nfs --add-service=rpc-bind --add-service=mountd
firewall-cmd --reload

#查看本机发布的共享目录
exportfs
2)客户端操作
#1.客户端安装工具
yum install -y nfs-utils

#2.查看服务端发布的共享
showmount -e 10.1.8.10

#3.创建本地挂载点
mkdir -p /var/www/html

#临时挂载
mount -t nfs 10.1.8.10:/shares/webapp /var/www/html

#持久化挂载写入/etc/fstab
#_netdev参数:网络挂载,系统网络就绪之后再挂载,防止开机进入紧急模式
echo '10.1.8.10:/shares/webapp /var/www/html nfs defaults,_netdev 0 0' >> /etc/fstab

#生效fstab配置
mount -a

#验证挂载
df -h /var/www/html

⚠️NFS排坑:

  1. 客户端挂载失败优先检查防火墙;
  2. /etc/exports 修改后必须执行 exportfs -r;
  3. fstab远程挂载务必加_netdev,否则开机磁盘检测网络未就绪会进入emergency紧急模式。

三、iSCSI服务部署

iSCSI:把远端服务器的一块裸磁盘,通过网络映射成本地硬盘。

  • 服务端角色:target,对外共享块存储;端口3260
  • 客户端角色:initiator,登录使用远端磁盘
  • 注意:客户端拿到的是裸磁盘,必须自己格式化文件系统

iSCSI完整流程

  1. 服务端安装targetd、targetcli;准备裸磁盘(分区/整块磁盘)
  2. targetcli交互式:创建backstores后端存储 → 创建target IQN → 添加ACL访问控制 → 添加LUN映射磁盘
  3. 服务端启动target服务,防火墙放行iscsi‑target
  4. 客户端:修改initiatorname.iscsi配置客户端IQN
  5. 客户端discovery扫描target、login登录,识别/dev/sdX块设备
  6. 客户端格式化、挂载;fstab持久化挂载加_netdev
  7. 客户端卸载、登出、删除记录的清理操作
1)iSCSI服务端配置
#1.安装软件
yum install -y targetd targetcli

#2.进入交互式配置targetcli,操作完退出自动保存配置
targetcli

#①创建后端块存储,后端使用/dev/sdb裸盘
/> cd /backstores/block
/backstores/block> create webapp /dev/sdb

#②创建iSCSI target(IQN标识)
/> cd /iscsi
/iscsi> create iqn.2026-09.cloud.laoma.server:webapp-data

#③进入target的tpg1配置ACL与LUN
/iscsi> cd iqn.2026-09.cloud.laoma.server:webapp-data/tpg1/

#ACL:指定允许登录的客户端IQN
/iscsi/iqn.20...app-data/tpg1> acls/ create iqn.2026-09.cloud.laoma.server:webapp

#LUN:把后端存储webapp映射给target
/iscsi/iqn.20...app-data/tpg1> luns/ create /backstores/block/webapp 

#ls查看完整配置,确认无误后exit退出,配置自动保存到/etc/target/saveconfig.json
/> exit

#3.启动target服务,开机自启
systemctl enable target --now

#4.防火墙放行iscsi‑target服务
firewall-cmd --permanent --add-service=iscsi-target
firewall-cmd --reload
2)iSCSI客户端配置
#1.客户端安装initiator工具
yum install -y iscsi-initiator-utils

#2.配置客户端IQN,必须和服务端ACL里面配置的IQN完全一致
vim /etc/iscsi/initiatorname.iscsi
#修改这一行
InitiatorName=iqn.2026-09.cloud.laoma.server:webapp

#3.扫描远端iSCSI target
iscsiadm -m discovery -t sendtargets -p 10.1.8.10

#4.登录target,会识别出新的块设备
iscsiadm -m node -T iqn.2026-09.cloud.laoma.server:webapp-data -l

#5.查看识别出来的磁盘
lsblk

#6.格式化裸磁盘
mkfs.xfs /dev/sdb

#7.创建挂载点,临时挂载
mkdir -p /var/www/html
mount /dev/sdb /var/www/html

#8.fstab持久挂载,必须添加_netdev
echo '/dev/sdb /var/www/html xfs defaults,_netdev 0 0' >> /etc/fstab
mount -a

df -h /var/www/html
3)iSCSI客户端清理(断开共享)

关机/更换环境操作顺序不能乱:先卸载 → fstab删除条目 → 登出target → 删除node记录

#1.卸载挂载点
umount /var/www/html

#2.编辑/etc/fstab删除iSCSI挂载行
vim /etc/fstab

#3.登出target会话
iscsiadm -m node -T iqn.2026-09.cloud.laoma.server:webapp-data -u

#4.删除本机保存的target记录,重启后不会自动登录
iscsiadm -m node -T iqn.2026-09.cloud.laoma.server:webapp-data -o delete

四、重要避坑总结

  1. NFS
  • 多客户端同时读写共享目录,应用程序需要支持文件锁,否则文件损坏;
  • fstab远程挂载务必加上_netdev;
  • 修改/etc/exports执行exportfs -r生效。
  1. iSCSI
  • ❌严禁多台客户端同时登录同一个LUN,文件系统直接损坏;
  • IQN服务端ACL和客户端initiatorname必须完全匹配,否则拒绝登录;
  • 客户端拿到的是裸盘,必须手动mkfs格式化;
  • fstab挂载iSCSI磁盘必须写_netdev;
  • 清理顺序:umount → 修改fstab → logout登出 → delete删除node记录。
  1. 防火墙:NFS放行nfs、rpc‑bind、mountd;iSCSI服务端放行iscsi‑target。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2503_92430124/article/details/166848323

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--