准备工作
目标准备一个固态盘当系统盘,还有一个磁盘当存储池。
注意:固态盘和磁盘中的文件都将被清空重新分区,务必备份好数据!
镜像准备
下载Ventory制作一个多功能的启动盘,然后从官网下载TrueNAS Scale镜像拷贝到U盘。
系统安装
使用UEFI启动,按照步骤将系统安装在固态盘上,重启后就能看到内网ip地址。默认管理员账号为admin,密码为安装时设置的。
挂载存储池
在Storage
里面点击Create Pool
创建池,Name
输入挂载的名称,下面勾选挂载的磁盘,如果有多个盘可以选择组RAID,单盘只能选择Stripe。
Stripe:与RAID0类似,不过可以不同大小的硬盘组
Mirror:与RAID1类似,磁盘镜像,至少需要两个磁盘。
RAIDZ1:与RAID5类似,一重奇偶校验,至少需要三块磁盘;可以坏一块硬盘不丢数据。容量和速度为N-1(N为硬盘数量)
RAIDZ2:与RAID6类似,双重奇偶校验,至少需要四个磁盘;可以坏2块硬盘不丢数据。容量和速度为N-2(N为硬盘数量)
RAIDZ3:ZFS特有的,三重奇偶校验,至少需要5个磁盘;可以坏3块盘不丢数据。容量和速度为N-3(N为硬盘数量)
存储池挂载好,系统的/mnt
目录下就能找到对应名字的存储池
应用安装
系统默认安装了docker,可以使用docker-compose
快速搭建简单应用
其他设置
开启ssh服务
在System Settings
的Service
里面打开ssh,并且勾选自动启动
磁盘休眠设置
磁盘休眠的目的是在服务器没有磁盘读写时关闭磁盘电源或者以较低转速运行,有利于提高磁盘寿命。
首先需要将系统数据池从磁盘迁移到固态(我只有一个固态所以是boot-pool)。在System Settings
的Advanced
里面,确保System Dataset Pool
不是挂在磁盘存储池上。
其次如果使用了Apps
安装服务,确保其应用池挂载到固态上,实测在没有任何应用安装的时候k3s的应用池数据库会以低速率持续读写,会影响磁盘休眠。更新比较频繁的是这三个文件:
ix-applications/k3s/server/db/state.db-shm
ix-applications/k3s/server/db/state.db-wal
ix-applications/k3s/server/db/state.db
然后检查搭建的应用(不管是用Apps安装的k3s应用或者自己启动的docker应用)中是否存在空闲时持续或者不间断的读写。在Reporting
里面可以查看磁盘IO状态曲线。如果有,可以用命令行iotop查看当前IO进程。也可以使用以下命令查看磁盘上最近更新的文件来判断是什么应用在更新文件:
# 查看24小时内更新的文件
find ./ -mtime -1 -ls
确保在没有使用任何服务情况下磁盘IO都为0,就可以设置磁盘休眠了。
在Storage
的Disks
里面选择磁盘存储池,下拉,Edit
,在Power Management
下设置多久后休眠,以及高级电源管理,Disabled
为默认到时间后关闭磁盘
其他提示
TrueCharts
TrueNAS官网带的App并不是很多,可以使用第三方App库扩展TrueCharts
,链接放下面:
在Manage Catalogs
选择Add Catalog
,URL为:https://github.com/truecharts/catalog.git
,更新就能看到添加的应用