truenas-使用

Truenas 消耗内存大,至少需要8G内存。官方建议存储空间每 1T 需要 1G 内存。

Truenas-core 来自 freenas ,基于 FreeBSD,比较稳定。

Truenas-scale 基于 Linux,支持docker,2022年目前处于第一个稳定版。

Truenas Core

安装

磁盘空间大于8G,内存至少8G,支持amd64的CPU(除非特别特别老的CPU不支持)


  1. Install

  2. iso 启动
  3. 选择 Install / Upgrade
  4. 选择需要安装到的系统盘
  5. 设置 root password
  6. 选择启动方式 Legacy Boot 或者 UEFI
  7. 创建 swap 分区
  8. 执行安装。。。
  9. 安装完成后,重启。

  10. intial boot

  11. 第一次启动时间比较长,启动完成后,就会到 console setup 命令行菜单
  12. 通过浏览器访问管理界面,IP地址在 console setup 的界面可以看到。

设置static ip address

  • console setup 命令行菜单设置
  1. 选择1. Configure Network Interface
  2. 选择 interface / 网卡
  3. 询问: Delete interface(y/n),选择 n,当然不能把网卡删除了。。。
  4. 询问: Remove the current settings of this interface?(y/n),选择 n
  5. 询问: Configure interface for DHCP?(y/n),选择 n
  6. 询问: Configure IPv4?(y/n),选择 y
  7. 输入 unique interface name
  8. 输入 IPv4 Address
  9. 输入 IPv4 Netmask
  10. 询问: Configure IPv6?(y/n),选择 n
  11. 询问: Configure failover settings?(y/n),选择 n
  12. network 自动重启

补充说明: 也可以从web管理界面的shell进入菜单,执行 /etc/netcli

  • web管理界面设置
  1. Network > interfaces > 需要修改的interface,条目最右边的下拉三角 > Edit
  2. 取消勾选 DHCP
  3. IP Address 输入 要设置的 static IP
  4. 点击 Apply 完成设置
  5. 修改好后, Network / Interface 页面上点击 TEST CHANGES
    Test network interface changes for 60 seconds.
    表示 60 内,访问新的IP地址,否则IP会还原。
  6. 在浏览器上输入新的IP,访问web管理页面,弹出界面,确认IP修改。

修改时区

web管理界面 > System > General > Timezone > 设置 Asia/Shanghai > Save

网络修改

  1. Network > Global Configuration
  2. 修改 Hostname
  3. DNS Server 修改为自己路由器

创建用户

  1. 添加 Group: Accounts / Groups / Add
  2. 添加 User: Accounts / Users / Add
    勾选: Samba Authentication ,否则这个用户无法使用samba

创建存储池

  1. Storage / Pools / CreatePool
    1. Name: your-pool-name ,后面没法修改
    2. 简单使用 Data VDev就好了

    pool 可以包含多个 vdev,但是一个 vdev 损坏,整个存储池也无法使用

  2. 创建好之后,pool 就挂载到 /mnt/your-pool-name/ 上使用
  3. 创建dataset : Storage / Pools / Add Dataset
    1. Names & comments: 自己随意
    2. Sync: 缓存的写入方式,是否等待缓存写完
      Standard: 由客户端判断缓存是否写完
      Always: 等待缓存的文件再写入硬盘
      Disable: 只要写入缓存就算完成
    3. compress level
      • 默认 lz4
      • zstd 据说和 lz4 差不多
    4. Enable Atime
      Access time,每次被访问,都记录下访问时间
    5. Encryption Options: 默认继承pool的设置,也即 non-encrypted
    6. zfs Deduplicaton: zfs的去重功能
    7. case sensitive: 文件名大小写敏感
    8. ShareType: 默认选 Generic 就好

smb共享设置

  1. 启动smb service: Service > 打开 SMB > 勾选 Start Automatically
  2. 配置dataset 的 smb 设置
    1. Sharing > Windows Shares(SMB)
    2. 选中要分享的 dataset。
    3. Purpose: Default share parameters1.
    4. 提交。
  3. 弹出提醒配置ACL权限,取消就使用UGO配置权限,否则点击“”

设置用户权限

有2中用户权限体系:UGO 和 ACL

UGO 即 Linux User-Group-Other 权限系统。
ACL 相较UGO 复杂些。

  • UGO 设置权限
  1. Storage > Pools 选择要设置的 dataset,操作菜单 Edit Permissions
  2. Access 的位置修改 UGO设置
  3. Owner 的位置,勾选 Apply User ,user选择要设置的user,来修改dataset的所有者
  4. 勾选 Apply Permissions Recursively
  • ACL 设置权限
  1. Storage > Pools > 需要设置dataset,右键菜单 Edit Permissions
  2. USE ACL MANAGER
  3. Create an ACL > Select a preset ACL > Default ACL Options ,选 Open
  4. 进入ACL设置界面,里面可以设置
  5. dataset的 owner 和 group
  6. 配置Access Control List, owner@ , group@, everyone@, user, group
    owner@ , group@, everyone@ 对应 UGO
    user 指针对特定用户,特别是不再dataset 所有组的用户;

    1. ACL Type: Allow
    2. 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 登陆

  1. Service 中开启 SSH
  2. 点击 编辑铅笔图标,进入 configure
  3. 勾选 Log in as Root with password, 否则root登陆不进去
  4. 勾选 Allow Password Authentication