TrueNAS存储配置与Linux_iSCSI挂载实战

本实验旨在通过部署TrueNAS系统,模拟企业级存储阵列,提供iSCSI块存储和NFS文件共享服务,并在CentOS客户端实现存储卷的发现、分区及持久化自动挂载。

实验环境

  • 存储端: 部署在虚拟机中的TrueNAS(配置2 vCPU, 4GB内存,挂载4块虚拟硬盘模拟阵列)
  • 客户端: CentOS 7 虚拟机(作为iSCSI发起端)
  • 网络环境: 同一管理与存储网络(实验环境简化处理)

一、TrueNAS 存储系统初始化与配置

1. 存储池与 RAID Z2 配置

  • 登录TrueNAS Web管理界面。
  • 选择挂载的4块虚拟硬盘创建存储池。
  • RAID策略: 推荐使用 RAID Z2 模式(类似RAID 6),提供双重校验,允许两块硬盘同时损坏而不丢失数据,牺牲 2/N 的存储空间,保障数据极高可靠性。

2. NFS 共享配置与权限修复

  • 在TrueNAS中创建NFS共享目录,供vSphere集群挂载。
  • 权限排错: 若vSphere端创建虚拟机失败,通常为NFS目录权限不足。通过SSH登录TrueNAS终端,执行 chmod 777 /mnt/nas 赋予完全控制权后解决。

二、iSCSI 服务发布(块存储)

iSCSI架构要求存储端口与业务端口物理隔离,实验环境中暂共用网络。

1. 创建文件模拟块设备

由于物理硬盘已全部分配给存储池,无法直接使用裸盘,需通过创建文件模拟块设备。

  • SSH登录TrueNAS,在 /mnt/nas 目录下使用 touch 命令创建一个空文件(如 iscsifile)。
  • 在Web界面的块设备(Extent)配置中,选择“文件”类型,指定该文件路径及大小(如 20GB)。

2. 发布 iSCSI 目标

  • 通过向导配置 iSCSI 服务,将刚刚创建的块设备(Extent)关联至目标(Target)。
  • 访问控制设置允许所有IP(0.0.0.0)访问,使用标准端口 3260,跳过CHAP身份验证(仅限实验环境)。

三、CentOS 客户端发现与登录

在CentOS客户端完成软件安装与服务发现。

1. 客户端环境准备

  • 执行 yum update 更新系统,若CentOS 7源失效需更换为阿里云镜像。
  • 安装iSCSI客户端工具包:yum install iscsi-initiator-utils

2. 发现与登录存储目标

  • 服务发现: iscsiadm -m discovery -t st -p <TrueNAS_IP>
  • 目标登录: iscsiadm -m node -T <IQN> -p <TrueNAS_IP> -l
  • 登录成功后,通过 fdisk -l 检查,系统会识别到新的硬盘(如 /dev/sdb)。

四、Linux 磁盘分区与持久化挂载

为确保服务器重启后自动重连并挂载存储卷,需进行分区及 fstab 配置。

1. 磁盘分区与格式化

  • 使用 fdisk /dev/sdb 进入交互界面,输入 n 创建主分区,选择 MBR 分区表(兼容性更好)。
  • 输入 w 保存并退出。
  • 使用 mkfs.ext4 /dev/sdb1 格式化分区。
  • 创建挂载点目录:mkdir /mnt/iscsi_data

2. 持久化配置(关键步骤)

  1. 开机自启: 将iSCSI服务设置为开机自启动,执行 systemctl enable iscsid
  2. 获取UUID: 使用 blkid 命令获取 /dev/sdb1 分区的 UUID,避免设备名漂移导致挂载失败。
  3. 编辑 /etc/fstab:
    必须添加 _netdev 参数,告知系统该挂载点依赖网络,必须在网络服务启动后才能挂载。
    1
    UUID=xxxxx-xxxx-xxxx /mnt/iscsi_data ext4 defaults,_netdev 0 0
  4. 验证: 使用 mount -a 测试配置无误后,重启Linux服务器。再次执行 df -h 确认 20GB 的磁盘依然挂载成功,证明持久化挂载完成。