TrueNAS存储配置与Linux_iSCSI挂载实战
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. 持久化配置(关键步骤)
- 开机自启: 将iSCSI服务设置为开机自启动,执行
systemctl enable iscsid。 - 获取UUID: 使用
blkid命令获取/dev/sdb1分区的 UUID,避免设备名漂移导致挂载失败。 - 编辑 /etc/fstab:
必须添加_netdev参数,告知系统该挂载点依赖网络,必须在网络服务启动后才能挂载。1
UUID=xxxxx-xxxx-xxxx /mnt/iscsi_data ext4 defaults,_netdev 0 0
- 验证: 使用
mount -a测试配置无误后,重启Linux服务器。再次执行df -h确认 20GB 的磁盘依然挂载成功,证明持久化挂载完成。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小枝的博客!