TrueNAS教程

本文实现:

  • 可使用对象存储minio
  • 云盘服务cloudreve

镜像:基于debain系统的TrueNAS镜像: https://www.truenas.com/download-truenas-scale/

安装完成后后设置存储池

较为简单此处略:

备注:

  • 创建专门给虚拟机使用的存储池

  • 创建专门给nas内文件存储NFS SMB等使用的池
    也可以共用一个存储池!

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_eb5dbef3df98678d4924d47ec4fcadd4.png

网络配置:

  • 配置静态IP地址

  • 配置阿里云百度等DNS

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_4c5a790184f9654bf27a608eacfa6dc1.png

安装虚拟机(安装完成后关闭 点击设备 删除光盘否则会重复进入安装页面):

  • 虚拟机内安装docker用于部署minio, cloudreve及homepage 对外提供服务

    等待安装完成,然后点击reboot,重启虚拟机后点击虚拟机的VNC进入后发现会重复进入安装centos界面,造成这个问题的原因是虚拟机设置的是UEFI启动,另外虚拟机的“设备”中也有设备启动顺序,目前lz试着修改虚拟机启动项和设备中iso的启动顺序都不好使,最简单的方法就是找到虚拟机,点开后面箭头>

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_68dbe9db3d033b78ea5491141651373e.png

  • 删除cdrom

    找到CDROM项点,开最后的三点查看详情,查看是否为当前系统的iso镜像文件,如果是的话删除重启虚拟机此时即可完全部署完成

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_2b198de5c11ec661e26dda80d8f7dc6d.png

备注:TrueNAS内应用是无法使用的原因需要配置科学上网才能正常使用 否则只是一连串的报错

命令行配置IP

https://www.ethanzhang.xyz/2023/05/14/TrueNAS安装及使用教程/ (较为详细的完全教程)

系统完成后,首先会联想到登录到web页面进行管理,但问题正如开篇所说,有点小难点在于访问的管理IP的设定

注意

TrueNAS默认是DHCP使能的,如果当前安装环境下有DHCP服务器,可以通过TrueNAS临时获取的IP地址直接进行Web UI管理,可以跳过当前步骤

此时需要在TrueNAS的终端设置固定IP

选择1,查看并设置网络接口 将ipv4_dhcp选择否

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_21bef307d4ca1da94b6cb40263f68ba6.png

选择6,进入Open TrueNAS CLI Shell

可以通过netuork interface query查询当前网络适配器的相关信息,主要是获取适配器name值用于后续配置静态IP

通过network interface update ens160 aliases="172.18.3.20/24"netuork intertace commitnetwork intertace checkin进行配置

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_b67f881228c4b541b897ce2b2d92fdc9.png

验证并配置网关及DNS

必须先设置静态ip地址才能设置网关,否则提示网关不可达

返回并选择2 configure network settings,然后配置网关及DNS信息

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_3ec55c9da582caec873b3c578e714f03.png

此时,如果能够ping通管理IP地址,初始化工作就算完成

TrueNAS APP应用添加TrueCharts社区catalog目录

参考:

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/7/image_58eba0a1e41467c84a152b151ce85a61.png

什么是存储池

存储池即为TrueNAS用于存放数据的地方,可以将多块硬盘组成不同的模式,用于实现数据存储的冗余和更快的读写行能

关于raid:

与磁盘阵列卡的原理类似

  1. 条带模式
    每个磁盘用于存储数据。至少需要一个磁盘并且没有数据冗余。切勿使用条带模式存储关键数据!单个磁盘故障会导致 vdev 中的所有数据丢失。此模式下磁盘行能最佳,数据最不安全
  2. 镜像
    每个磁盘中的数据都是相同的。至少需要两个磁盘,冗余最多,容量最少。
  3. Raid-z
    使用一个磁盘进行奇偶校验,而所有其他磁盘存储数据。至少需要三个磁盘。最多允许损坏1块硬盘数据仍能安全存储。
  4. Raid-z2
    使用两个磁盘进行奇偶校验,而所有其他磁盘都存储数据。至少需要四个磁盘。最多允许损坏2块硬盘数据仍能安全存储。
  5. Raid-z3
    使用三个磁盘进行奇偶校验,而所有其他磁盘都存储数据。至少需要五个磁盘。最多允许损坏3块硬盘数据仍能安全存储。

关于VDev类型

每个系统必须建立一个数据存储池,其余存储池可在数据存储池建立完成后添加或删除。

1)数据
用于主存储操作的标准 vdev。每个存储池至少需要一个数据vdev。

2)缓存
读取缓存与快速设备一起使用以加速读取操作。
TrueNAS存储顺序为内存->缓存存储池->数据存储池。
故使用大内存和大数据存储池可以有效提高数据存储行能

日志

提高同步写入速度的设备

4)热备份
为在活动驱动器发生故障时插入数据vdev保留的驱动器。热备件临时用作故障驱动器的替代品,以防止出现更大的池和数据丢失情况。

当故障驱动器更换为新驱动器时,热备件将恢复为非活动状态并再次用作热备件。

当故障驱动器仅从池中分离时,临时热备用将提升为完整的数据vdev 成员,并且不再可用作热备用。

5)元数据
一个特殊的 vdev 可以存储元数据,例如文件位置和分配表。特殊类中的分配专用于特定的块类型。默认情况下,这包括所有元数据、用户数据的间接块和任何重复数据删除表。该类也可以配置为接受小文件块。对于高性能但较小尺寸的固态存储来说,这是一个很好的用例。使用特殊的 vdev 极大地加速了随机 I/O,并将查找和访问文件所需的平均旋转磁盘 I/O 减少了一半。

6)去重
池可以包含共存的重复数据删除数据和非重复数据删除数据的任意组合。如果在写入时启用了重复数据删除,则使用 DDT 写入数据,如果在写入时未启用重复数据删除,则以非重复数据的方式写入数据。随后,数据将保持写入时的状态,直到被删除。简而言之就是将存储数据切割对比相同的部分会仅存储一份,但是这样会大量消耗CPU资源。

五、关于加密

加密算法可作为最大化数据安全性的选项。这也使检索数据的方式变得复杂,并有永久数据丢失的风险!

加密数据缺点/注意事项:

丢失加密密钥和密码意味着丢失您的数据。
不相关的加密数据集不支持重复数据删除。
我们不建议将 GELI 或 ZFS 加密与重复数据删除一起使用,因为这会对性能产生相当大的影响。
同时使用多个加密和重复数据删除功能时要小心,因为它们都将竞争相同的 CPU 周期。

本文参考:

https://blog.csdn.net/qq_42910468/article/details/122585133

https://blog.tonnp.com/2022/truenas-data-protection-manager.html