16. 网络文件系统与共享
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 配置网络文件系统和共享服务,配合 SecureFX 传输配置文件。内容涵盖 NFS、Samba 和 iSCSI 配置,遵循 Red Hat 官方文档,简洁实用,适合初学者快速上手和运维人员实践。所有操作在 LinuxDC 环境中测试,确保实验一致性。
16.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 仓库(参考第 2 章)。
- 防火墙启用,SELinux 设置为 enforcing 模式(参考第 12 章)。
- 网络连接正常,时间同步配置完成(参考第 4 章)。
💡 提示:共享服务需考虑权限和网络安全。在 RHEL 10 中,NFS 支持更多增强的 NFSv4.2 特性,如服务器端复制,提升数据迁移效率。
16.2 NFS 配置
16.2.1 NFS 服务器配置
-
安装 NFS 工具:
dnf install -y nfs-utils # 安装 NFS 服务器工具 systemctl enable --now nfs-server # 启用并启动 NFS 服务 -
创建共享目录:
mkdir /nfs_share chown nobody:nobody /nfs_share # 设置权限 chmod 755 /nfs_share -
配置导出:
vim /etc/exports # 添加: /nfs_share 192.168.1.0/24(rw,sync,no_root_squash) exportfs -arv # 应用导出配置 -
防火墙配置:
firewall-cmd --permanent --add-service=nfs firewall-cmd --reload
🧠 知识点:
no_root_squash允许 root 权限访问。验证:showmount -e localhost。
16.2.2 NFS 客户端配置
-
安装 NFS 工具:
dnf install -y nfs-utils # 安装 NFS 客户端工具 -
挂载共享:
mkdir /mnt/nfs mount -t nfs 192.168.1.100:/nfs_share /mnt/nfs # 挂载 NFS 共享 df -h /mnt/nfs # 检查挂载 -
永久挂载:
vim /etc/fstab # 添加: 192.168.1.100:/nfs_share /mnt/nfs nfs defaults 0 0 mount -a # 测试
✅ 检查点:客户端可读写
/mnt/nfs。
16.3 Samba 配置
16.3.1 Samba 服务器配置
-
安装 Samba:
dnf install -y samba # 安装 Samba 服务器 systemctl enable --now smb nmb # 启用并启动 Samba 服务 -
创建共享目录:
mkdir /samba_share chown nobody:nobody /samba_share chmod 755 /samba_share -
配置 Samba:
vim /etc/samba/smb.conf # 添加到 [global] 后: [samba_share] path = /samba_share browseable = yes writable = yes guest ok = no read only = no -
创建 Samba 用户:
useradd sambauser # 创建系统用户 smbpasswd -a sambauser # 设置 Samba 密码 smbpasswd -e sambauser # 启用用户 -
防火墙配置:
firewall-cmd --permanent --add-service=samba firewall-cmd --reload
🧠 知识点:Samba 支持 Windows 兼容共享。测试:
smbclient //localhost/samba_share -U sambauser。
16.3.2 Samba 客户端配置
-
安装客户端工具:
dnf install -y cifs-utils # 安装 CIFS 工具 -
挂载共享:
mkdir /mnt/samba mount -t cifs //192.168.1.100/samba_share /mnt/samba -o username=sambauser,password=securepass df -h /mnt/samba # 检查挂载 -
永久挂载:
vim /etc/fstab # 添加: //192.168.1.100/samba_share /mnt/samba cifs credentials=/etc/samba/creds,uid=1000,gid=1000 0 0 # 创建凭证文件: vim /etc/samba/creds # 添加: username=sambauser password=securepass chmod 600 /etc/samba/creds mount -a # 测试
✅ 检查点:客户端可访问共享文件。
16.4 iSCSI 配置
16.4.1 iSCSI 目标(Target)配置
-
安装 targetcli:
dnf install -y targetcli # 安装 iSCSI 目标工具 systemctl enable --now target # 启用并启动 target 服务 -
创建后端存储:
targetcli # 在 targetcli 交互模式: /backstores/block create disk1 /dev/sdb # 创建块设备 /iscsi create iqn.2023-01.com.example:target1 # 创建 iSCSI 目标 /iscsi/iqn.2023-01.com.example:target1/tpg1/luns create /backstores/block/disk1 # 添加 LUN /iscsi/iqn.2023-01.com.example:target1/tpg1/acls create iqn.2023-01.com.example:initiator1 # 创建 ACL exit # 退出并保存 -
防火墙配置:
firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload
🧠 知识点:iSCSI 使用 TCP 3260 端口。验证:
targetcli ls显示配置。
16.4.2 iSCSI 发起者(Initiator)配置
-
安装 initiator:
dnf install -y iscsi-initiator-utils # 安装 iSCSI 发起者工具 systemctl enable --now iscsid # 启用并启动 iscsid 服务 -
发现和登录目标:
iscsiadm -m discovery -t sendtargets -p 192.168.1.100 # 发现目标 iscsiadm -m node -T iqn.2023-01.com.example:target1 -p 192.168.1.100 --login # 登录目标 -
格式化和挂载:
lsblk # 查看新设备(如 /dev/sdc) mkfs.ext4 /dev/sdc mkdir /mnt/iscsi mount /dev/sdc /mnt/iscsi -
永久挂载:
vim /etc/fstab # 添加(使用 UUID): UUID=<blkid 输出> /mnt/iscsi ext4 defaults 0 0 mount -a
✅ 检查点:
iscsiadm -m session显示会话,df -h /mnt/iscsi显示挂载。💡 提示:在 RHEL 10 中,iSCSI 支持更多 NVMe-oF 集成,提升高性能存储访问。
16.3 常见问题与排查
🔍 故障排查:
-
问题 1:NFS 挂载失败
解决:检查导出(exportfs -s)、防火墙、SELinux(ausearch -m avc)。 -
问题 2:Samba 认证错误
解决:验证用户(pdbedit -L)、密码(smbpasswd)、日志(journalctl -u smb)。 -
问题 3:iSCSI 登录失败
解决:检查发现(iscsiadm -m discovery)、ACL、端口(3260/tcp)。
💡 提示:使用
testparm验证 smb.conf,targetcli status检查 iSCSI。
16.4 实践任务
- 配置 NFS 服务器并在客户端挂载
/nfs_share。 - 配置 Samba 共享并在客户端挂载
/samba_share。 - 配置 iSCSI 目标并在发起者挂载 LUN。
- 验证所有共享的访问和权限。
✅ 检查点:共享可读写,无权限错误。
16.5 自测问题
-
问题 1:如何导出 NFS 共享?
答案:编辑/etc/exports,添加/nfs_share 192.168.1.0/24(rw,sync),然后exportfs -arv。 -
问题 2:如何配置 Samba 用户?
答案:useradd sambauser,smbpasswd -a sambauser。 -
问题 3:如何发现 iSCSI 目标?
答案:iscsiadm -m discovery -t sendtargets -p <target-ip>。
🧾 总结:
本章完整介绍了 RHEL 9 网络文件系统与共享服务的配置,包括 NFS、Samba 和 iSCSI 的服务器/客户端设置。这些技能扩展存储架构,为后续备份恢复与日志监控提供数据共享基础。