UnRaid6.10成功转正

UnRaid6.10成功转正
Photo by lilzidesigns / Unsplash

自从完Homelab以来测试并使用过诸多系统,由最开始的虚拟化平台ESXI到更加开放的Proxmox,最后又开始尝试TrueNAS,OMV及最后的UnRaid,简要说说心路历程:

心路历程

  1. 2013年使用的是饱受大家推荐的ESXI在HPN54L上,系统跑在U盘中,稳定运行一年多
  2. 2015年更换硬件平台为HPEGen8,由于驱动问题导致IO读写能力非常拉胯,采用了硬件兼容更好的Proxmox
  3. 2019年逐渐开始有大量的存储需求,系统随之更换为FreeNAS,稳定运行一年多
  4. 由于FreeNAS基于Unix,纯存储相对来说超级稳定。但扩展能力较差,更换为UnRaid

在这个Timeline中在2017/18年左右增购群晖进行文件备份,所以基于本地化部署服务及影音存储需求开始出现,随着整个大环境虚拟化时代向容器时代前进的今天,容器更是Homelab环境下不可或缺的最佳实践场景。

现在iXsystems公司推出了基于Debian发行版的TrueNAS Scale,但是经过讨论发现还是一个相较来说比较“年轻”的产品

结缘UnRaid

查阅了多个系统的测试报告及多位UP主的推荐,最终采用了UnRaid,据说linus自己的家用环境也采用过该系统,该系统对Docker和VM天然支持,定位就是家用环境,去掉了ESXI/Proxmox繁杂的企业场景功能。

Unraid 是来自加拿大的一款Nas系统,「按照要使用的硬盘数量」来收费,6盘位售价$59,12盘位售价$89,不限硬盘数量售价$129。

说说优点

UnRaid系统如其名,之前提到的多个系统大部分存储都是采用Raid或ZFS,定位更像是面对企业或中小型企业,同样的硬盘存储空间在经过冗余之后可用的空间其实并不多;

  1. 自带Docker,有自己的一套仓库,不用诸多配置就可以使用对应的容器。
  2. UnRaid = 不Raid,有自己独有的一套数据校验体系,保证存储最大化,具体的可以去UnRiad官网进行查询,这里就不多说了。
  3. UnRaid的文件存储是只拆分文件夹,不拆分文件,也就是没有硬Raid的数据分片功能。单独拆下一个硬盘,文件也都可读可用。
  4. 硬盘处于休眠状态时系统要读取文件,Unraid只需唤醒文件所在的那个盘即可,而硬 Raid 要「唤醒所有硬盘」,因为这个文件在所有的硬盘上。

说说缺点

UnRaid不像是一个产品,更像是开源社区针对Geek们的一个玩物,比群晖更有开放性和自由,但同时缺少的是产品成熟度。

  1. 用户体系不够完善
  2. 系统优化不足,性能占用吃紧
  3. 无移动端支持 (这里要说明一下,UnRaid更像是一个平台,其中大部分功能都是通过容器实现的,所以即使有移动端我个人觉得也没什么用
  4. 受益于独特的数据校验体系,保证了存储空间但是缺点就是IO读写能力等同于单盘速度,不能享受硬Raid带来的速度提升(个人感觉大部分人家用环境对数据传输的效率其实并不是那么高,而且可以采用SSD当Cache,这一点只是说单纯的存储区
  5. 无集群,多台部署的支持
  6. 易用性稍差

由于职业缘故,我本身就是程序员背景,所以对这类玩具的上手非常快,也非常满足我对于“开放性”的需求,在这个容器化的时代,UnRaid深得我心。

近期UnRiad升级到了6.10正式版,同时官方为了大力发展中国市场,对中国大区进行了半价活动,我也从“开心版”成功转正,购买Pro授权,对官方的支持。

转正

至于6.10版本的新特性可以自行搜索有很多UP主做过视频和写过文章,我这里写个发现的BUG:

  1. 6.10升级后对于权限有了更加细分的定义,所以文件夹权限乱七八糟,导致Docker中多个服务无法进行写入:

原本我打算自己批量恢复权限的时候发现UnRaid可能预料到有会有这个问题,在工具中有一个新配置和新权限功能来解决,这个场景下使用新权限功能,统一修复即可。

5.23日更新:

上述权限问题经过测试发现使用“新权限“工具来解决治标不治本,现在UnRaid官方也没有对应的办法,可能需要等到下个小版本升级,临时的长久的解决方案如下:

Unraid 6.10, permission denied from docker containers
Hi! I tried today the upgrade to unraid 6.10 from 6.9.2. The first thing i noticed is that now it takes a world to start the array. A couple of minutes against 10s with 6.9.2. The second thing is write problems with a few containers. The cause is that containers are not using the standard uid:99 ...