truenas-使用
Truenas 消耗内存大,至少需要8G内存。官方建议存储空间每 1T 需要 1G 内存。
Truenas-core 来自 freenas ,基于 FreeBSD,比较稳定。
Truenas-scale 基于 Linux,支持docker,2022年目前处于第一个稳定版。
Truenas Core
安装
磁盘空间大于8G,内存至少8G,支持amd64的CPU(除非特别特别老的CPU不支持)
-
- Install
-
- iso 启动
- 选择 Install / Upgrade
- 选择需要安装到的系统盘
- 设置 root password
- 选择启动方式 Legacy Boot 或者 UEFI
- 创建 swap 分区
- 执行安装。。。
- 安装完成后,重启。
-
- intial boot
-
- 第一次启动时间比较长,启动完成后,就会到
console setup
命令行菜单 - 通过浏览器访问管理界面,IP地址在
console setup
的界面可以看到。
设置static ip address
console setup
命令行菜单设置
- 选择
1. Configure Network Interface
- 选择 interface / 网卡
- 询问: Delete interface(y/n),选择
n
,当然不能把网卡删除了。。。 - 询问: Remove the current settings of this interface?(y/n),选择
n
- 询问: Configure interface for DHCP?(y/n),选择
n
- 询问: Configure IPv4?(y/n),选择
y
- 输入 unique interface name
- 输入 IPv4 Address
- 输入 IPv4 Netmask
- 询问: Configure IPv6?(y/n),选择
n
- 询问: Configure failover settings?(y/n),选择
n
- network 自动重启
补充说明: 也可以从web管理界面的shell进入菜单,执行 /etc/netcli
- web管理界面设置
- Network > interfaces > 需要修改的interface,条目最右边的下拉三角 > Edit
- 取消勾选 DHCP
- IP Address 输入 要设置的 static IP
- 点击 Apply 完成设置
- 修改好后,
Network / Interface
页面上点击TEST CHANGES
Test network interface changes for 60 seconds.
表示 60 内,访问新的IP地址,否则IP会还原。 - 在浏览器上输入新的IP,访问web管理页面,弹出界面,确认IP修改。
修改时区
web管理界面 > System > General > Timezone > 设置 Asia/Shanghai > Save
网络修改
- Network > Global Configuration
- 修改 Hostname
- DNS Server 修改为自己路由器
创建用户
- 添加 Group: Accounts / Groups / Add
- 添加 User: Accounts / Users / Add
勾选: Samba Authentication ,否则这个用户无法使用samba
创建存储池
- Storage / Pools / CreatePool
- Name: your-pool-name ,后面没法修改
- 简单使用 Data VDev就好了
pool 可以包含多个 vdev,但是一个 vdev 损坏,整个存储池也无法使用
- 创建好之后,pool 就挂载到
/mnt/your-pool-name/
上使用 - 创建dataset : Storage / Pools / Add Dataset
- Names & comments: 自己随意
- Sync: 缓存的写入方式,是否等待缓存写完
Standard: 由客户端判断缓存是否写完
Always: 等待缓存的文件再写入硬盘
Disable: 只要写入缓存就算完成 - compress level
- 默认 lz4
- zstd 据说和 lz4 差不多
- Enable Atime
Access time,每次被访问,都记录下访问时间 - Encryption Options: 默认继承pool的设置,也即 non-encrypted
- zfs Deduplicaton: zfs的去重功能
- case sensitive: 文件名大小写敏感
- ShareType: 默认选 Generic 就好
smb共享设置
- 启动smb service: Service > 打开 SMB > 勾选 Start Automatically
- 配置dataset 的 smb 设置
- Sharing > Windows Shares(SMB)
- 选中要分享的 dataset。
- Purpose: Default share parameters1.
- 提交。
- 弹出提醒配置ACL权限,取消就使用UGO配置权限,否则点击“”
设置用户权限
有2中用户权限体系:UGO 和 ACL
UGO 即 Linux User-Group-Other 权限系统。
ACL 相较UGO 复杂些。
- UGO 设置权限
- Storage > Pools 选择要设置的 dataset,操作菜单 Edit Permissions
- Access 的位置修改 UGO设置
- Owner 的位置,勾选 Apply User ,user选择要设置的user,来修改dataset的所有者
- 勾选 Apply Permissions Recursively
- ACL 设置权限
- Storage > Pools > 需要设置dataset,右键菜单 Edit Permissions
- USE ACL MANAGER
- Create an ACL > Select a preset ACL > Default ACL Options ,选 Open
- 进入ACL设置界面,里面可以设置
- dataset的 owner 和 group
-
配置Access Control List, owner@ , group@, everyone@, user, group
owner@ , group@, everyone@ 对应 UGO
user 指针对特定用户,特别是不再dataset 所有组的用户;- ACL Type: Allow
- Permissions Type:
- Basic
- Permissions: Read只读) / Traverse(只能遍历)/ Modify(可读可写) / Full Control(可读可写,可改权限)
* Advanced (比较复杂,待补充。。。)
进入命令行,getfacl your-dataset-dir
可以查看ACL的设置
技巧
BIOS 打开硬盘热插拔
微星主板: Advanced > Integrated Peripherals > SATAX Hot Plug 选择 Enable
使用阵列卡,热插拔一般是自动打开的。
阵列降级、恢复
raidz1,坏一块盘,就是显示降级(DEGRADED),可以正常使用,但是再坏一块盘,数据就损坏了。
插入新盘,就开始恢复,进入 resilvering status
Storage > Pools > 设置(齿轮图标) > status > 出问题的硬盘,操作菜单,选择 replace > 开始重建
raidz1,坏一块盘,系统不可用,进不去web管理页面,重启系统,可以进入管理页面,同时显示pool不可用。
设置 email 提醒
System > Email > 设置发送email的 SMTP 设置,发送的目的地址是 root 帐号的邮箱
修改 hostname 和 domain
Network > Global Configuration
ssh 登陆
- Service 中开启 SSH
- 点击 编辑铅笔图标,进入 configure
- 勾选 Log in as Root with password, 否则root登陆不进去
- 勾选 Allow Password Authentication