路由与NAS 篇七:10分钟快速上手unRAID之基础篇(上)
NOTE
本文字数 5000+,配图 20+,预估阅读时间 10~12 分钟
写在前面
前面一篇介绍了我的 NAS 组装过程以及 unRAID 系统的安装、基础配置:
这次准备分享一下我对 unRAID 学习上手、配置使用的过程
因为篇幅原因基础篇分成上、下两篇(太长了我写得累,值友们看着也累 )
本篇主要分享的包括以下两大点:
unRAID 的核心 —— 存储阵列 Array 的基础知识以及配置使用
插件安装方式以及指引,同时展示几个推荐的插件效果以及安装地址(包含汉化插件 )
基础知识
上手建议
在确定使用 unRAID 之后,在网上找了一下资料、教程,
关于 unRAID 的上手,首推 B 站催眠大师司波图的陪玩教程
大佬的催眠能力不容置疑,建议倍数播放,我花了 2 个小时左右看完这 5 个
之后,也对 unRAID 的使用有一定的了解,方便后续玩机
至少一些概念性的东西都能大概知道了,后面可以知道大概在哪里翻查
存储阵列
unRAID 最大的特色就是这个存储阵列,也是 unRAID 系统的基础
关于存储阵列,有 3 个基本概念:
概念 | 说明 |
---|---|
Array | 磁盘阵列,真正存储数据的介质,最多支持 24 块盘,总容量为所有盘的大小总和 |
Cache | 缓存盘,一般使用 ssd,实现读写加速,支持 1 块或多块盘组成缓存池 |
Parity | 校验盘,条件允许下支持坏盘数据找回,支持 1-2 块校验盘 |
数据存储
在启用了校验盘的情况下,unRAID 的数据存储方式如下图:
这种数据存储方式在宏观上比较接近 RAID5 的逻辑,但细节上相差深远
unRAID 这种存储方式,是按照文件级别的粒度来写入不同的单盘,
可以理解为,一个文件的全部内容,只会存储在其中某一块盘中,
在写入的同时,会对所有数据盘相同位置逻辑块的数据计算 XOR,然后存入校验盘中
以此来实现数据冗余,增加一块校验盘,也就允许坏一块数据盘,而数据不丢失
优点缺点
从上面的图也可以看出,这种存储方式的特点是十分鲜明的:
单盘独立
数据盘拔出来可以直接插到其他电脑上进行存取
增加盘不需要做 Rebuild,即插即用
数据盘无容量损失,Array 总大小就是所有数据盘大小总和
多盘使用时,对盘的大小无限制,可以混用各种容量的数据盘
极端情况下,坏盘无法恢复,但不会影响到其他正常盘的数据存储
存储速度问题
单文件因为只存在一块盘上,读取单文件时无法像组 RAID 一样突破单盘速度
存在校验盘的情况下,写入性能较低,因为还需要读取其他盘数据算 XOR
校验盘问题
校验盘必须大于或等于阵列中最大的那块盘,比如上图校验盘必须使用 4TB
校验盘压力大,因为其他数据盘的所有数据变动都需要更新校验盘
在多盘且配置校验盘的情况下,直接写入性能较差,这也是 unRAID 被诟病的地方
当然,你也可以增加 ssd 缓存盘并配数据冷热处理方式,来提高写入性能
最合适的是某东自营的 5 年质保 SSD 了吧?控制好数据转移,坏盘直接换新
缓存机制
关于缓存盘的工作机制,可以参照下图
缓存策略是针对共享目录进行设置,再添加新的共享目录时,就可以进行设置
当然,也可以在后期重新修改这些目录的缓存机制
对应的参数值的简单解释如下
参数 | 说明 | 转移机制 |
---|---|---|
No(否) | 新数据不使用缓存,直接写入数据盘 | 不涉及数据转移 |
Yes(是) | 新数据优先写入缓存,满了则写数据盘 | 缓存移到数据盘并删除 |
Only(唯一) | 新数据只会写入缓存盘,满了则写失败 | 不涉及数据转移 |
Prefer(首选) | 新数据优先写入缓存,满了则写数据盘 | 数据盘移到缓存并删除 |
关于这部分的参数,有一个小小的坑需要注意一下,就是 Prefer
与 Yes
的区别
因为这两个参数值的字面意思与实际效果与我们正常认知可能有点差异:
Prefer,实际上是数据会更倾向于呆在缓存盘,只要缓存盘有空闲空间,在 mover 启动时就会把数据盘上的数据往缓存盘上转移
Yes,这个才是我们理想中的使用方式,数据写入会使用缓存,但并不完全依赖缓存,并且在启动 mover 时,会把缓存盘上的数据往数据盘上转移,以保证数据的持久存储安全
关于数据转移机制(mover)有几个注意点:
mover 其实只是一个脚本,默认是每天凌晨 3:40 执行,支持调整时间以及定制脚本内容
如果 mover 启动时,文件正在被读写,则该文件不会被转移,只能等下次(隔天凌晨)
如果 mover 启动时,磁盘处于休眠状态,mover 不会主动唤醒磁盘,也就是不会执行数据转移
对于缓存盘根目录下以
.
开头的目录,mover 不会对其生效对于缓存盘根目录下的文件,mover 不会对其生效
关于缓存盘更详细的介绍,有兴趣的可以翻阅官方文档:unRAID - Cache disk
使用建议
从上面的优缺点分析,其实总体已经算挺明确的,对于一个文件数据的读写:
使用场景 | 配置推荐 |
---|---|
数据不重要 | 不要加校验盘,以吃满单盘读写速度(主要是写入) |
数据重要 | 增加校验盘,读取能达到单盘满速,写入受限于校验速度 |
数据重要且希望保持速度 | 增加校验盘以及缓存盘,设置写入目录使用缓存 |
无缓存希望突破单盘速度 | 对不起,出门左转组 RAID 吧,ceph 也行 haha |
在不加校验盘的情况下,单个文件远程读写理论上跑满千兆网卡是没问题
如下图,从 unRAID 共享目录拷贝文件到本地,以及本地上传文件到 unRAID,
都基本能跑满千兆网卡,不过速度稍有波动,因为同时还在下载、上传,有一定影响
如果多数据盘且配置校验盘,写入速度会掉的比较厉害
据网上资料,可能调到单盘写入速度的三分之一(有待考证)
关于这部分,暂时就不做细究了,至少目前我拿来做影音库是绰绰有余了
阵列启动
unRAID 大部分功能都是基于存储阵列的,比如:
SHARE,文件共享
DOCKER,容器管理
VMS,虚拟机管理
如果没有启动 Array,以上功能都无法使用,所以需要先配置启动 Array
入手数据盘
因为手头上暂时没有空闲的硬盘了(在旧机器上用着呢)
于是在某鱼入了一块 12T 的二手元素盘,使用半年左右,价格还是挺美丽的
到手先在 windows 测试一下,基本如卖家描述
加入阵列
取盘后放入 NAS,已经可以在 MAIN 阵列管理页面上看到了,
得益于 unRAID 灵活的磁盘管理机制,可以直接先单盘启动阵列,后续再补加其他盘
默认重启后是不会自动启动 Array,建议开启开启自动启动:
SETTINGS => Disk Settings => Enable auto start(Yes)
关于 Array 注意点
默认的分区文件系统是
xfs
,如果硬盘本身就是xfs
格式可以保留原来的数据加入 Array,不需要格式化,方便做硬盘数据迁移每个数据盘都会被挂载为
/mnt/disk*
,可以单独读取每个硬盘的数据,拔下来也可以直接插到其他 Linux 系统上访问读写从上层文件管理来看,一个文件会被写入哪个盘,会有对应的配置规则,如无特殊需求,按照 unRAID 默认的策略即可(
High-water
策略)unRAID 的校验盘实际上等同软 raid,如果你要启用校验盘,一定要做好容量规划,后面升级校验盘的成本非常高,需要将全部硬盘的数据都读一遍
支持硬盘无访问自动休眠(SPINDOWN),且其存取机制也比较适配,对比 RAID 在存取速度上可能没优势,但是效率高、省电,不需要每读一个文件都所有磁盘都启动
High-water
系统将选择当前具有最小可用空间但仍高于某个最小值(称为 “高水位” 标记)的磁盘。其优点是,在短时间内写入一批文件,大多数时候只需要启用一个数据磁盘即可。更多说明见 unRAID Manual - Allocation method
插件配置
安装方式
unRAID 的插件安装方式可以分成两种:
在线安装
离线安装
在线安装
在插件安装界面输入插件地址,并点击 INSTALL 在线安装
这种方式比较简单便捷,但比较依赖网络环境,毕竟大多数插件都是在 github 上
如果网络抽风,一个非常小的插件都可能要安装半天,甚至都无法装上
离线安装
这种方式成本较高,需要下载
plg
文件中指定的安装包,并按照对应路径要求存放,在指定plg
安装时,因为对应安装包已存在且 md5 校验通过,所以可以直接离线安装,不需要从远程下载安装包。
其实就是按照在线安装的逻辑,将需要远程下载的文件提前下载好,
并且按照与之匹配的目录结构放入插件安装目录下:
/boot/config/plugins/
最后在页面上选择对应的 plg
文件进行安装,这里以 dynamix s3 sleep
为例,
提前下载好 txz
及 plg
文件并上传,然后到页面上选择 plg
离线安装
可以看到第一步就进行安装了,直接跳过从 github 下载软件包这个过程
离线安装包的制作,其实可以换一种思路,只要安装成功后:
对应的安装包文件就保存在插件目录下
同时也会按照最终的路径存放
对应的
plg
文件也会保留在插件目录下
以 Unassigned Devices 这个插件为例,在安装成功后,对应的目录结构如上图
这个时候,只需要把上级目录的 unassigned.devices.plg
一起放该目录下,
打包出来就是一个离线插件安装包了,需要的时候,解压放到插件目录就可以直接离线安装
插件推荐
unRAID 插件给系统的管理使用提供了极大的便利,这里推荐几款我自己常用的插件
插件 | 推荐 | 作用 |
---|---|---|
Community Applications | 5 星 | 社区应用,可以理解为就是软件中心 |
Unassigned Devices | 5 星 | 支持外部硬盘、文件系统共享 |
unRAID CHS Project | 4 星 | 简体中文汉化包 |
Dynamix System Buttons | 3 星 | 增加快捷操作按钮用于系统重启、关机等 |
Dynamix System Information | 3 星 | 详细展示系统硬件信息 |
CA Cleanup Appdata | 3 星 | 扫描并清理已删除应用残留数据 |
Community Applications
简介
这款 unRAID 的 APP 商店,本质上是一个 docker 模板库:
提供模板预设减少配置工作,比如图标、WebUI、关键运行参数等
执行
docker pull
拉取对应的容器镜像到本地
通过 APP 商店,我们可以非常快速就配置并拉起一个基于 docker 的应用
安装
官方插件地址如下:
https://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg
然而很多时候国内访问 github 网络不咋样,经常出现 APP 商店更新慢、更新超时
可以考虑使用国内镜像插件:
gitee
https://gitee.com/BlueBuger/community.applications/raw/master/plugins/community.applications.plg
52help
https://www.52help.net/ad/nas/Squidly271/community.applications/master/plugins/community.applications.plg
以上两个镜像插件都是从网上找到的,非官方,不保证可用以及插件安全
建议有条件还是使用官方插件从 github 下载
效果
安装完第一次打开会比较慢,因为需要拉取全量的 APP 信息
Unassigned Devices
简介
该插件使用 UDEV 自动挂载和共享不属于 unRAID 阵列的硬盘或网络共享存储等:
U 盘或移动硬盘
未加入 Array 的硬盘
NFS 或 SMB 网络共享存储
ISO 镜像文件
安装
官方插件地址如下:
https://raw.githubusercontent.com/dlandon/unassigned.devices/master/unassigned.devices.plg
效果
之前就是使用该插件挂载了我另外一个移动硬盘,并进行数据对拷,非常方便
只要是系统支持的文件系统格式,基本都可以挂载进行读写
其外还可以安装 Unassigned Devices Plus 来支持 HFS+ 以及exfat 格式的挂载读写
unRAID CHS Project
简介
unRAID 官方是没有提供中文界面的,全英文用户门槛还是有一点点高
这款中文汉化包插件目前使用起来还是比较稳定,给 KleinerSource 大佬点赞
安装
插件地址:
6.8.1
https://raw.githubusercontent.com/KleinerSource/unRAID-chs-project/master/release/urchs.681.plg
6.8.2
https://raw.githubusercontent.com/KleinerSource/unRAID-chs-project/master/release/urchs.682.plg
目前仅提供了这两个版本的适配,按照大佬的说法,暂时不会提供 6.8.3
效果
安装完插件刷新一下就可以看到汉化内容,主界面大部分都已完成汉化工作
如果需要还原,卸载插件后还需重启 unRAID 才能生效
其他插件
其他就不一一进行介绍了,提供了插件展示及安装地址,有兴趣自行摸索:
Dynamix System Buttons
https://raw.github.com/bergware/dynamix/master/unRAIDv6/dynamix.system.buttons.plg
管理界面右上角增加一个快捷操作按钮
Dynamix System Information
https://raw.github.com/bergware/dynamix/master/unRAIDv6/dynamix.system.info.plg
非常全面、详细的展示系统信息(以下截图仅展示部分)
CA Cleanup Appdata
https://raw.githubusercontent.com/Squidly271/ca.cleanup.appdata/master/plugins/ca.cleanup.appdata.plg
扫描是否存在孤儿数据(应用已删除但存在残留数据),如果存在可以操作清理
写在后面
这次的文章,更多是对我这段时间学习上手 unRAID 的一个总结,
强迫自己重新系统地整理、记录 unRAID 的一些基础知识以及实践操作
毕竟有些操作,你做过一次了,那么就很有可能继续做第二次(0 次与无数次的区别?)
希望本文章能帮忙准备使用,或者正在使用 unRAID 的值友,
欢迎评论关注点赞打赏,下篇正在梳理中~
塞狗反哈_撒紧
校验提示文案
花好月圆321
校验提示文案
望月星刀
校验提示文案
混也是一种生活
校验提示文案
hehe911
校验提示文案
liunian
校验提示文案
mac100
校验提示文案
UC新闻震惊部
校验提示文案
阳仔_it168
校验提示文案
ldjs
校验提示文案
AohuaZ
校验提示文案
Vocalist
校验提示文案
secondxufei
校验提示文案
黑夜的闪光
校验提示文案
rainred
校验提示文案
夜空中最亮的星cht
校验提示文案
star_liu
校验提示文案
1510m
校验提示文案
值友5661229379
校验提示文案
值友3250290711
我想问问,如果不加校验盘直接加缓存盘 这样可以吗
校验提示文案
值友7046271327
校验提示文案
值友3250290711
我想问问,如果不加校验盘直接加缓存盘 这样可以吗
校验提示文案
值友1833346780
无法访问此网站192.168.1.28 拒绝了我们的连接请求。
请试试以下办法:
检查网络连接
检查代理服务器和防火墙
ERR_CONNECTION_REFUSED
不知道是什么问题,恳请各位大神指点,谢谢
校验提示文案
小逸哥
校验提示文案
值友5661229379
校验提示文案
1510m
校验提示文案
咸蛋小朋友
校验提示文案
star_liu
校验提示文案
夜空中最亮的星cht
校验提示文案
rainred
校验提示文案
黑夜的闪光
校验提示文案
secondxufei
校验提示文案
潮侠
校验提示文案
Vocalist
校验提示文案
花好月圆321
校验提示文案
AohuaZ
校验提示文案
塞狗反哈_撒紧
校验提示文案
ldjs
校验提示文案
阳仔_it168
校验提示文案
UC新闻震惊部
校验提示文案