 
            FreeNAS 存储服务综合实训教程
本文最后更新于 2025-09-28,文章内容可能已经过时。
一、FreeNAS 虚拟机安装与配置
1.1 新建虚拟机
VMware 配置要求:
- 操作系统类型:FreeBSD 12 64位 
- 处理器:2核心 
- 内存:8GB 
- 硬盘1:20GB(系统盘,SCSI控制器) 
- 硬盘2:20GB × 3(数据盘,SATA控制器) 
- 硬盘3:15GB(缓存盘,SCSI控制器) 
- 注意: I/O控制器选择 LSI Logic SAS 可以解决硬盘不识别的问题,但是可能会遇到系统安装引导无法创建的问题 
1.2 安装 FreeNAS 系统
# 启动安装界面后选择:
1. Install/Upgrade
2. 选择系统磁盘(da0)
# 注意需要使用space键进行选择,Enter确认
3. 确认安装
4. 设置root密码
5. 选择启动方式(BIOS或UEFI)安装完成需要弹出安装介质
1.3 初始配置
安装完成后,控制台显示管理IP地址(如192.168.140.149)
在浏览器中输入:https://IP地址 进入Web管理界面
二、iSCSI 块存储配置
2.1 创建存储池
Web界面操作:
- Storage → Pools → ADD 
- 名称: - FreeNAS
- 选择3块20GB SATA硬盘加入到数据VDev 15GB SCIS硬盘加入到缓存Vdev 
- 创建池 
2.2 创建数据集和ZVOL
Web界面操作:
创建数据集:
- Storage → Pools → 点击FreeNAS池 → Add DATASET 
- 名称: - iSCSI
创建Zvol:
- Storage → Pools → 点击FreeNAS池 → Add ZVOL 
- 名称: - iSCSI
- 大小:5GB 
2.3 配置iSCSI服务
在配置服务之前需要在服务一栏中打开对应服务并设置自启
Web界面操作:
2.3.1 全局配置
- Services → iSCSI → 配置 
- Base Name: - iqn.2005-10.org.freenas.ctl
2.3.2 Portals配置
- Portals → ADD 
- IP地址: - 0.0.0.0,端口:- 3260
2.3.3 Initiators配置
- Initiators → ADD 
- Initiators: - ALL
2.3.4 Authorized Access
- 如需认证可配置CHAP用户 
2.3.5 Targets配置
- Targets → ADD 
- Target Name: - iqn.2005-10.org.freenas.ctl:iscsi
2.3.6 Extents配置
- Extents → ADD 
- 名称: - iscsi-extent
- 类型: - Device
- 设备: - zvol/FreeNAS/iscsi/zvol0
2.3.7 Associated Targets
- 关联Target和Extent 
2.3.8 启动iSCSI服务
- Services → iSCSI → 启动 
三、CentOS 客户端配置
3.1 换源并安装客户端
# 备份原有源
cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup/
# 下载阿里云源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 安装iSCSI客户端
yum install -y iscsi-initiator-utils nfs-utils
# 配置initiator名称
echo "InitiatorName=iqn.2022-10.com.example:centos-client" > /etc/iscsi/initiatorname.iscsi
# 重启服务
systemctl restart iscsid
systemctl enable iscsid3.2 连接iSCSI目标
# 发现目标
iscsiadm -m discovery -t sendtargets -p 192.168.140.149:3260
# 查看发现的目标
iscsiadm -m node
# 登录目标
iscsiadm -m node -l
# 查看新磁盘
lsblk
# 应看到新磁盘 sdb3.3 分区格式化并挂载
# 分区
fdisk /dev/sdb
# 在fdisk中:n → p → 1 → 回车 → 回车 → w
# 格式化
mkfs.xfs /dev/sdb1
# 创建挂载点
mkdir -p /mnt/public
# 挂载
mount /dev/sdb1 /mnt/public
# 验证
df -h /mnt/public3.4 测试iSCSI功能
# 创建测试文件
echo "iSCSI Test File" > /mnt/public/test-iscsi.txt
# 查看文件
ls -la /mnt/public/
# 设置开机自动挂载
echo "/dev/sdb1 /mnt/public xfs defaults,_netdev 0 0" >> /etc/fstab3.5 服务端验证
可以在服务端shell中对共享文件进行查询,但是从理论来说我们之前设置的iSCSI是在块设备级别工作的,不是文件级别,所以从服务端不应该能够看到对应文件,书上对应步骤存在,如下。
- shell界面 
- 进入到对应数据集目录下 - /mnt/FreeNAS/iscsi
- 查看当前目录文件 
四、NFS 文件共享配置
4.1 FreeNAS端NFS配置
Web界面操作:
4.1.1 创建NFS数据集
4.1.2 配置NFS共享
- Sharing → Unix Shares (NFS) → ADD 
- Path: - /mnt/FreeNAS/nfs
- Authorized Networks: - 192.168.140.0/24
- Mapall User: - root
- Mapall Group: - wheel
4.1.3 启动NFS服务
- Services → NFS → 启动 
4.2 CentOS客户端NFS配置
# 安装NFS客户端(如果未安装)
yum install -y nfs-utils
# 查看可用的NFS共享
showmount -e 192.168.140.149
# 创建挂载点
mkdir -p /mnt/freenas-nfs
# 挂载NFS共享
mount -t nfs 192.168.140.149:/mnt/FreeNAS/nfs /mnt/freenas-nfs
# 测试NFS功能
touch /mnt/freenas-nfs/test-nfs.txt
echo "NFS Test" > /mnt/freenas-nfs/test-nfs.txt
# 设置开机自动挂载
echo "192.168.140.149:/mnt/FreeNAS/nfs /mnt/freenas-nfs nfs defaults,_netdev 0 0" >> /etc/fstab4.3 服务端验证
- shell界面 
- 进入到对应数据集目录下 - /mnt/FreeNAS/NFS
- 查看当前目录文件 
五、WebDAV 配置
5.1 FreeNAS端WebDAV配置
Web界面操作:
5.1.1 创建WebDAV数据集
# 创建专门用于WebDAV的数据集
zfs create FreeNAS/webdav5.1.2 配置WebDAV共享
- Sharing → WebDAV Shares → ADD 
- Path: - /mnt/FreeNAS/webdav
- Name: - webdav
- Permission: - Read/Write
- Change User & Group: - root
5.1.3 配置WebDAV服务
- Services → WebDAV → 配置 
- 协议: - HTTP(端口8080)或- HTTPS(端口8081)
- 认证类型: - BASIC
- 启动WebDAV服务 
5.2 客户端访问WebDAV
5.2.1 浏览器访问
http://192.168.140.149:8080/
或
http://192.168.140.149:8080/webdav5.2.2 登录
5.2.3 进入页面
六、验证与测试
6.1 服务状态检查
FreeNAS端检查:
# 检查iSCSI服务
service iscsi_target status
# 检查NFS服务
service nfsd status
# 检查WebDAV服务
service apache24 status
# 检查存储池状态
zpool status
zfs list6.2 客户端验证
CentOS端验证命令:
# 检查iSCSI连接
iscsiadm -m session
# 检查挂载点
df -h | grep -E '(public|freenas)'
# 检查NFS挂载
mount | grep nfs
# 测试文件操作
echo "综合测试" > /mnt/public/final-test.txt
cp /mnt/public/final-test.txt /mnt/freenas-nfs/6.3 故障排查命令
# 查看系统日志
tail -f /var/log/messages
# 检查网络连接
ping 192.168.140.149
telnet 192.168.140.149 3260    # iSCSI端口
telnet 192.168.140.149 2049    # NFS端口
telnet 192.168.140.149 8080    # WebDAV端口
# 检查防火墙
systemctl status firewalld