NAS/Unraid

来自Wired
跳转到导航 跳转到搜索
本文著于2022.7.27(原文),移植并未做内容优化,一些内容或过时、不合时宜。

前言

选什么系统?

  白裙:我个人其实是意向白裙,但是群晖的价格嘛,仁者见仁。当然了如果您是实打实的硬件萌新,并且有稳定的硬需求,我还是建议入手白裙,可以不要那么好的,先体验体验,稳定的用下去。有闲钱和时间精力了再去折腾diy,开启花活之路

性价比:★☆☆☆☆
稳定性:★★★★★
对萌新友好度:★★★★★
拓展性:★☆☆☆☆

  黑裙/黑威联通:diy的话黑裙或黑威联通也可以,跟白的相比可能会损失一些使用体验,但还是保留了正版系统的便利性

性价比:★★★★☆
稳定性:★★★★☆
对萌新友好度:★★★★☆
拓展性:★★★☆☆

  众多linux系统或类linux系统:debian、ubuntu等等都可以当系统,这个适合有一定linux系统基础的,不然出了问题不好排错和处理,好处就是linux开放度高,花活多,系统占用低,也稳定。甚至windows也可以用来当nas系统,只是对docker的支持可能没其它系统好,以及系统占用的资源较多

性价比:★★★★☆
稳定性:★★★★☆
对萌新友好度:★★☆☆☆
拓展性:★★★★★

  unraid:基于linux,原生完美支持docker、vms,系统占用低,上手简单,不过要玩好了有一些难度(但耐不住教程多,日常用到的功能基本上都可以抄作业,不管是官方社区还是各种unraid、nas、docker社区都有大量unraid玩家,遇到问题可以找热心网友咨询)

性价比:★★★★☆
稳定性:★★★★☆
对萌新友好度:★★★☆☆
拓展性:★★★★★

  而且unix/linux系统或基于unix/linux的系统包括windows系统都是可以套娃的,开虚拟机也可以装黑裙啥的,可以相互套娃,这个具体还是看需求吧

unraid系统简要介绍

  unraid的系统的特色可以被简单分为

  1、原生支持docker和vms(容器和虚拟机),这两个功能是nas最基础也是最核心的两个功能,因此说unraid更大佬萌新兼吃,上手简单上限也高

  2、unraid的“un”,字面意思,unraid没有raid策略

  这里可能就有点让人误解了,没有raid策略怎么保证我的数据安全呢?校验盘机制:可以添加最多两个校验盘(单盘大小必须是大于或等于阵列盘最大盘的大小的)

  那这样也很少呀?更何况群晖等系统可以多个存储池,即我这几块盘组一个阵列用一种raid方式,这几块盘用另一种策略…可以实现重要资料和非重要资料的分离,确实,但unraid就是没有raid策略,这不是标新立异,如果你有强烈的需求自然是避开unraid系统,或让unraid作为虚拟机中的系统娱乐用。但如果你真的是为了数据安全

  你应该了解下软/硬raid的概念,一般我们说的riad实际上都是系统层面的raid,即通过系统或某些文件管理控件调配出来的raid,是谓软raid,软raid的文件存储、分配是吃cpu的,所以一般cpu占用比较高,并且因为组了raid,机械硬盘的速度和效率就有点不太能入眼了,通常都会引入ssd硬盘作为缓存盘中转、过渡之用。

  而硬raid是由raid卡的控制芯片运算的,不会占用cpu资源,但缺点也很明显价格高功耗高,一般来说硬raid安全系数更高(系统故障换系统,raid卡故障换raid卡都不会影响到数据),但由于存储这块技术比较复杂,相对较为冷门,争议也挺多,简而言之raid卡比较适合高要求的玩家或商业用户使用,毕竟很多案例,组raid后某块硬盘损坏,会对整体的读写造成更大的负担,尤其是换盘重建数据时,有概率导致新的硬盘损坏,对于普通玩家(个位数的硬盘)来说,不仅可利用空间大打折扣,安全性也并未有实质的保障。

  3、文件管理拓扑图

※ 早期画了一张图,忽略“列阵”之前叫列阵叫习惯了,现在叫阵列习惯了,知道什么意思即可

  上面两部分其实就是存储池的概念,硬盘被归类于一个大池,是谓 阵列

  然后自己再根据一定的分配规则(包含或排除)去划分文件夹(下面会细说)

 

  综合考虑之下,我是入坑了unraid,并且庆幸入坑的是unraid

  虽然一开始选了truenas和omv,但因为和之前的硬件有点冲突过程比较折磨……但结论没错。我不可能描述一堆优点推荐谁入坑什么,我只能将自己认为的各种特色与优缺点都说出来,你能接受再入坑。就跟我推荐硬件搭配一样,你只能比我的体验好,最多体验持平,不会比我体验还要差(毕竟没人打钱)

UNRAID系统安装指南

1、下载系统及注册机

  • keymaker.exe :注册机
  • unRAIDServer-6.9.2-x86_64_cracked.zip :unraid系统安装包

ps:最新的系统在恩山论坛有人发布了,一搜就行了,不是我的原创,我不好意思这么早转载,操作方法和原理是一样的,根据你u盘guid生成key文件,系统包是大神改过的而已

我已经入了正了,所以估计也不会怎么更新了

2、下载安装工具

  • Unraid.USB.Creator.Win32-1.6.exe:官方系统安装工具
  • UnraidTool.exe:辅助安装工具(获取flash guid用)

下载链接:https://pan.baidu.com/s/1fP4YpIiThY3CN6PBqTCwgg   提取码:1234

3、安装系统

插入U盘后打开“Unraid.USB.Creator.Win32-1.6.exe”选择“Local Zip”

选择unraid系统安装包并打开:

勾选uefi并确认u盘是否为要安装系统的u盘,然后点击“write”

(注意,这会格式化u盘,请务必确保没有选择错u盘,避免误格式化其他外接存储设备)

进行二次确认

点击“Erase and Write”确定即可

提示“Writing done!”就是安装成功了

4、破解系统

将“UnraidTool.exe”与注册机放在u盘根目录下后打开UnraidTool.exe”

选择u盘的盘符,软件会自动读取u盘的GUID:

点击“注册KEY”,并在二次确认即可:

之后就注册完成了

 

设置U盘启动我们自行在目标机器的bios里设置即可

汉化的话也只是汉化系统界面而已,除了第一眼看上去对我这样零英语水平的人比较友好之外有弊无利,因为要排错或者搜索教程,我们还是要以英文原文为主,习惯了的话知道什么是干什么的,会不会英语无所谓的,所以没必要

想要汉化可以在系统安装完成后参考:#设置中文语言

 

之后弹出U盘(非常建议养成先弹出后拔出的习惯)即可:

UNRAID系统初运行

1、连线就位并开机

将u盘插入机箱中,开机按照提示(不同主板按键不一样,比如我这款是按DEL,有的是F2\F8\F12等等)进入bios界面

插上显示器、键鼠、网线、电源、u盘 (如果你主板是支持鼠标交互式的,鼠标就派上用场了,相对于键盘操作更灵活些)

然后开机即可

2、设置bios(风扇调速&u盘启动)

传统bios界面

在“advanced”--“PC Health Status”中开启风扇调速

新型bios界面的话都大差不差,设置的地方一样,并且普遍都支持自动调速,也可以直接在bios界面选择风扇转速(一般都有那种温度和转速的曲线图,可以自定义)即可

之后设置U盘启动,在下图页面:

第一位是该u盘即可

不同主板寻找方式不一样,找到“boot”(启动)项基本上就找到了设置的地方,boot一般也都是大项很好找的

实在是不会也可以搜索主板品牌商电话问客服。

华硕电话客服:4006206655

3、自动安装unraid系统

开机之后会进入这个页面,不用理会,让其自行运行即可

等两分钟后就发现已经安装完成了

“192.168.50.25”就是我路由器给这台主机分配的内网ip地址,局域网内可以访问这个ip进入web控制端

UNRAID系统基础设置

0、系统操作须知

操作请在原文的基础上进行,页面被翻译会导致部分按钮失效,尤其是【apply】按钮失效,从而更改设置失败,可以利用翻译功能查看选项的意思,但是在修改参数和保存设置时请切回原语言

以及以下操作都在6.9.2开心版(本次示例的系统)的基础下进行

1、设置设备名称

在【DASHBOARD】面板点击【设置】图标(需要在阵列停止的情况下操作)

输入设备名称、介绍、型号即可(完全自定义,填什么都无所谓):

示例:

击上图左侧的【edit】按钮可以更换示意图,示意图最后一页是自定义选项:

示例:

2、添加root密码

点击菜单栏的【user】,选择root用户

可以修改用户信息、密码:

ps:添加用户我这里有问题,可以正常添加,但是没法登录

3、时区、时间设置(ssl verification failure 报错)

  • 问题表现:无法联网
  • 问题原因:时间设置问题,设备时间与实际时间相差过大
  • 解决方案:修改时间即可

在【settings】面板中点击【Date and Time】:

①通过网络服务器更新

> 修改时区为【UTC+08:00】

> 网路服务器可选:

time.windwos.com
ntp.org.cn
cn.pool.ntp.org
pool.ntp.org

这个亲测有点毛病,单纯的保存服务器应用不会更新时间,然后新增(包括删除之后新增)就可以正常同步,不知道是我本地还是哪的锅

②手动更改时间

这个没有严格的设置的,时间跨度不是太大都可以正常使用网络

 

注意这个时间设置为你本地的时间,不要管你其他什么乱七八糟的东西

4、设置开机自启动阵列

点击菜单栏【settings】选项,选择【disk settings】:

将【Enable auto start】设置为【Yes】,之后保存设置即可。

需要注意的是,如果阵列发生了变更,这里会重新变成【NO】的状态, 需要手动开启

5、查看注释

鼠标放置于选项名称上时,若改项有注释,鼠标会多出一个问号标志,点一下即可查看该选项的具体介绍

如果想查看所有介绍又不想一个个点击或者诸如【mian】面板没有问号标志时,可以点击【帮助】图标:

在激活该选项后,访问任意界面,若有注释都会展开呈现出来,不想看的话可以关闭帮助模式(再点一下就好了)

6、设置中文语言

在【TOOLS】—webGUI栏【Language】—右上角【user】—【Select language】栏选择语言—【upload】

应该就自动变中文了,如果没有(我的6.9.2不会,6.10.3会):

在【SETTINGS】—User Preferences栏【Display Settings】—【language】栏选择语言—【APPLY】即可

因为可能是unraid更新策略,小窗口是没法改网址的,所以在不更改语言的情况下没法走捷径,购买完可以随时换语言,我推荐还是英文,如果有了问题,直接复制粘贴更好搜答案。

7、删除容器模板

> 添加容器页面,选中目标容器模板

> 右侧有个删除图标,点击即可删除(需二次确认),鼠标悬停在图标上可以查看文件具体路径,因此也可以直接进入系统目录删掉不需要文件即可

8、查看容器cpu和内存占用

> docker页面点击右上角的高级试图即可

UNRAID使用基础设置

1、设置并启动阵列

在【MAIN】面板:

  校验盘:unraid没有raid策略,这个校验盘就是冗余盘,这个校验盘最多只能设置两个,并且每块的硬盘大小必须大于或等于当前阵列盘中最大的硬盘。这个设置与否全在于个人,我是没有设置的,预算不够

  阵列盘:就是阵列蕴含的盘,实际使用的盘,没什么好介绍的

  缓存盘:这个一般是装个固态用来读写提速、减少对阵列盘资源占用的,还有一个作用就是特殊情况下防止卡机械硬盘io

  系统U盘:就是装系统的u盘,不必太过于在乎寿命,这个就算是系统的启动盘和一些数据的存放盘,系统开机以后,文件都运行在了内存上的。但也没必要用太差的,那些大牌买正版的就行

设置好硬盘后,点击底部的【start】即可启动阵列:

2、格式化硬盘

把硬盘变为unriad可以直接识别的格式

注意,格式化的意思是清空硬盘所有数据,如果你硬盘里原有数据,可以参考本文开头的系列文章目录的后续文章

在页面底部选中【Formatwill create a file system in allUnmountabledisks.】,弹窗一个警告页面确认就行,然后点击【FORMAT】即可:

执行过后等一会就好了

3、共享文件夹设置细则

①、新建共享文件夹

进入【SHARES】选项卡,点击【ADD SHARE】添加新共享文件夹

按照提示设置完毕后点击【ADD SHARE】添加共享文件夹即可:

②、SMB设置

添加完成后,下面会多出一个栏目,smb共享设置:

可以将【EXPORT】选择【no】,这样局域网共享文件夹就发现不了它了

中间的是是否区分文件名的大小写,默认的设置就可

【Security】是权限设置

  • Public 是所有人可见
  • Secure 是所有人有读取权限,你可以自定义哪些用户有写入权限
  • Private 是访客没有读取权限,你可以自定义哪些用户有读写或访问权限

只是内网自己访问设置所有人可见就行,方便省事

设置为后两者就又会多出一个栏目:

理论上这里可以选择非root用户的权限,能设置的参数与你上面选择的模式有关联(如果你没有除root之外的用户可能不会加载出这个栏目)

但实际操作中确有各种小毛病,比如前面说的,非root用户无法进入web控制端,然后我设置了这里的权限后,root用户无法访问,云云,等有时间了研究研究再完善这里

③、删除共享文件夹

要删除共享文件夹的话,勾选【delete】,再点击【delete】(勾选后“apply”就会变成“delete”)即可

④、设置系统文件夹包含的硬盘

像我这样有归类癖的人,是一定要控制好每个盘的任务的,而系统默认的是将那几个系统文件夹的数据存储在所有盘上,这怎么行?

所以点击系统共享文件夹:

进行设置包含的磁盘和smb权限:

上为包含的磁盘设置,下为smb设置,建议这些文件夹关闭smb共享,开着没什么意义

如果你说已经产生了占用,比如我图上的情况,本来只该包含一个盘,现在包含了两个盘。没关系,下一章基本的插件和工具就解决这个问题

4、固定nas的局域网IP

不同路由器大同小异,一般都是在内部网络(LAN)--DHCP服务器 中进行设置

开启dhcp之后新建规则即可:

左侧选择设备,右侧输入要指定(固定)的ip地址,添加规则并保存即可

5、开启cpu核显(iGPU)(12代U开启硬解)

前置条件:需要您的CPU支持核显,简单来说,除特个别型号和带“t”小尾巴的都有核显(若cpu没有损坏)(参考:如何选CPU?

参考文档:https://docs.oracle.com/cd/E36784_01/html/E36884/i915-7d.html

十代U及以下:

命令行输入命令开启核显:modprobe i915

输入命令检查iGPU:ls -la /dev/dri 检查iGPU,输出有内容即正常

 

如果输出错误(11、12代u)则:

十一代U:

参考:

 

命令行输入:vi /boot/config/modprobe.d/i915.conf.

  • 直接右键复制粘贴,如果没反应,按下“i”再操作

添加行:options i915 force_probe=4692 这里id填写你自己的

  • 输入完成之后,按下“esc”键,输入“:wq”即可保存并退出,详情可以百度vi或vim的用法

然后重新输入:modprobe i915

再进行验证:ls -la /dev/dri

 

一般来说这样就可以了的,如果不行重启一下

但是如果你不知道因为什么原因还是不行,那就

插件安装:

app商城直接搜索:intel GPU top 并安装即可

顺便可以安装:GPU Statistics 可以更直观清晰的查看占用情况(需要安装好后点下插件图标设置要监控的目标,选intel就行)

然后屏蔽i915驱动,命令行输入:echo "blacklist i915">/boot/config/modprobe.d/i915.conf

  • 意思就是把“blacklist i915”写入到“i915.conf”文件里

如果你之前修改过go文件配置或者这个配置文件,没关系,不影响,不冲突;安装完成后记得重启下nas,不然或许会不生效

再进行验证:ls -la /dev/dri

 

如果这样还是不生效:

bios设置:

开启:VT-D/T、igpu。(都在cpu设置内)

禁用:cms、iommu(可选)。

这个不同主板设置地方不太一样,大部分新主板支持搜索,善用搜索,以及百度搜索具体设置方法

如果还是不行

那么请升级您的unraid版本,从6.9.x升级到6.10.x,看起来是一个小版本号,实际上更新了很多内容,对12代u的兼容性也大幅提升

UNRAID的功能性扩展插件

更改磁盘阵列、无损移动硬盘文件(unbalance插件)

注:此操作是清除阵列配置,理论上不影响硬盘数据。如果您要减去的硬盘包含着数据,请您先移动数据至安全的地方再进行操作

一、更改阵列配置

  • 需要在停止阵列时操作
  • 建议在操作之前,截图等方式记录阵列配置,以免重置后分不清原本设置的阵列顺序

> 在【tools】面板选择【new config】

> 勾选确认框,点击【apply】即可:

如果您设置了缓存盘、校验盘,或者有单独重置某一项设置的需求,请在【Preserve current assignments】栏选择需要的计划

然后就可以按照需要重新设置阵列:

二、unbalance插件

如果只是单纯的移动硬盘文件,那么有许多文件管理程序,甚至是smb挂载到本地进行操作也可以

但是如果你主动、被动的将某个/些共享文件夹设置为了包含多个磁盘,那么你就得先用工具将那些文件移动出来,才能取下硬盘,不然就会导致数据丢失

1、安装unbalance

> app商城搜索并下载:unbalance 插件

> 插件页点击图标进入设置,选中【yes】并【apply】保存设置

> 点击【Open Web UI】进入插件web控制端

(如果报不是私密链接等问题,忽略继续前往就行了)

2、转移硬盘数据

如果提升这个,说明还没开启阵列,请先开启阵列再操作:

(为了稳定,您可以关闭会占用磁盘的程序)

示例:

> 在【FROM】列选中需要移出数据的硬盘

> 在【TO】列选中接受数据的硬盘(默认全部选中,请取消勾选不需要的硬盘)

> 点击【PLAN】(计划,而非实际移动)

如果没什么问题,就可以开始转移文件了

【dry run】的意思是空跑,可以理解为预演,看操作是否可行和具体都做了什么,而不实际移动文件,默认是勾选的,你可以体验下

> 取消勾选【dry run】,并选择需要的策略:【move(移动)】or【copy(复制)】

完成:

上面会显示执行了什么命令,你也可以进命令行手动操作,这个插件就是将这些命令给模块坏,便于操作

 

提示共享在指定磁盘之外的解决方案见:【Share is outside the list of designated disks】共享在指定磁盘之外的解决方案

更新系统、移动文件导致插件不可用、docker消失见:疑难杂症篇 | 无法使用插件(not available)、docker消失解决方案

UPS插件:NUT - Network UPS Tools操作教程

原生支持unriad的ups是少数,且特点是贵,以及功能较少,而NUT插件就是弥补这两个缺陷的最好工具

安装NUT插件

> app商城搜索NUT找到下图镜像并安装

> 或者直接插件页面安装:https://raw.githubusercontent.com/dmacias72/NUT-unRAID/master/plugin/nut.plg

> 如果网络不畅,下载文件:百度网盘

并将文件解压到:u盘(system)目录中的:config\plugins\nut 目录中(新建一个nut目录)

然后插件页页面输入网址:https://scio.icu/image/nut.plg 来安装nut插件

配置NUT插件

> 在插件页点击nut图标

> 或者在设置页点击nut设置

旁边是有一个自带的ups设置的,但那个功能少,并且只支持少量的ups,那些ups有一个共通点——贵

> 默认设置:

温馨提示,可以点击左侧文字或者开启右上角注释模式查看不同选项的具体意思

以我当前的普通数据线式雷迪斯(一般般)ups为例

>> 插上ups数据线

>> 修改配置:

NUT Settings栏

  • Start Network UPS Tools service :yes
  • UPS Driver:Blazer_usb
  • Turn off UPS after shutdown:yes

>>> 按apply保存配置

Display Settings栏

  • Display Page Footer:yes

>>> 按apply保存配置

> 完成效果:

建议手动拔下ups电源,试试效果,更为稳妥

配置选项含义

如图所示:

UNRAID可能遇到的问题

无法进入目录(event not found)

常见场景:当要进入的目录包含特殊符号时就会cd不进去

解决方案:在特殊符号前添加“\”即可(linux的机制)

 

示例:

当前目录下有:[BDMV][斩·赤红之瞳!][Vol.1-Vol.8 Fin] 这么一个文件夹

直接cd是进不去的

输入ls命令会显示:[BDMV][斩·赤红之瞳!][Vol.1-Vol.8\ Fin] 这么一个文件夹名

可以看到,空格前是被加上了"\"的,但复制粘贴过去还是会提示报错

那么就在其他特殊符号面前也加上“\

最后就是 cd [BDMV][斩·赤红之瞳\!][Vol.1-Vol.8\ Fin]

也可以保守点:cd [BDMV][斩\·赤红之瞳\!][Vol.1-Vol.8\ Fin]

总之添加“\”即可

无法使用插件(not available)、docker消失

插件不可用常见于出新版本时,旧插件就会不可用

docker消失常见于appdata文件有过改动、丢失(比如包含appdata文件夹的磁盘被撤下、损坏)

插件更新:

> 在【PLUGINS】面板点击【CHECK FOR UPDATA】检查更新即可

docker恢复:

> 在【DOCKES】面板点击【ADD CONTAINER】

> 在【Template】下拉栏中选择目标模板,配置文件都在(个别设置会丢失,建议检查一遍),重新拉取(apply)即可

共享在指定磁盘之外(Share is outside the list of designated disks)

“Share is outside the list of designated disks”曾是我的梦魇

不过当你击溃他之后,它甚至显得有些可爱

共识:实际存放文件的盘我称之为【实盘】,只是被挂了个链接(该磁盘下的文件夹内没有任何东西)的盘我称之为【报错盘】这些词没有任何特殊含义,仅为了方便理解和叙述

Q:这是怎么出现的?

A:跟linux系统有关,类似于windows的快捷方式,不过linux的更加专业、更强力同时更加复杂、更对萌新不友好

是谓硬链接软链接,但这里主要针对解决问题,不过多展开了

(如果你所有盘合一块用感觉不出来就是了,但是我这样每块盘都单独使用,它有一个致命的要点,就是会导致你【报错盘】显示空间是和【实盘】叠加之后的,逼死强迫症)

 

Q:如何解决?

A:【报错盘】中删除该文件/链接即可:

首先确保链接文件内的文件确实都在【实盘】,而非部分在【报错盘】:unbalance插件使用介绍

理论上在该插件运行移动命令后,原文件夹链接就被删除了,可以恢复正常

 

Q:如果还在呢?

A:检查共享文件夹设置的磁盘包含规则:共享文件夹设置细则

如果是正确/需要的,那么请设置排除规则, 把其他盘排除,再保存设置

 

Q:如果还在呢?

A:上述组合拳打完之后就可以命令行进行根治了

* 捋清【实盘】和【报错盘】

* 明晰自己是要将【报错盘】纠正

> 【SHARES】面板中观察剩余空间快速察觉异常文件夹或直接点击【size】列中的【Compute...】计算文件夹容量详情,会显示出该共享文件夹包含的所有磁盘,若实际磁盘在设置之外就会提示那串报错

 

假设,你也是每个共享文件夹只对应一块硬盘,且“appdata”文件夹包含disk1、disk6两个硬盘,【实盘】是disk6,【报错盘】是disk1

那么先通过工具确保文件已经从【报错盘(disk1)】被转移至【实盘(disk6)】

之后进入命令行:

输入:cd /mnt/disk1 进入【报错盘】

输入:rm -rf /要删除的文件夹/ 在【报错盘】中删除指定文件夹

也可也输入 cd /mnt/disk1/要删除的文件夹/ 后,输入并运行ls命令查看当前文件夹下的文件或文件夹

退回上一级:cd ../

举例的是全目录,从根目录一级一级进入

可以当前目录下:cd /当前目录下的文件夹/