跳转至

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 实践任务

  1. 配置 NFS 服务器并在客户端挂载 /nfs_share
  2. 配置 Samba 共享并在客户端挂载 /samba_share
  3. 配置 iSCSI 目标并在发起者挂载 LUN。
  4. 验证所有共享的访问和权限。

检查点:共享可读写,无权限错误。


16.5 自测问题

  • 问题 1:如何导出 NFS 共享?
    答案:编辑 /etc/exports,添加 /nfs_share 192.168.1.0/24(rw,sync),然后 exportfs -arv

  • 问题 2:如何配置 Samba 用户?
    答案useradd sambausersmbpasswd -a sambauser

  • 问题 3:如何发现 iSCSI 目标?
    答案iscsiadm -m discovery -t sendtargets -p <target-ip>


🧾 总结
本章完整介绍了 RHEL 9 网络文件系统与共享服务的配置,包括 NFS、Samba 和 iSCSI 的服务器/客户端设置。这些技能扩展存储架构,为后续备份恢复与日志监控提供数据共享基础。