可能是拜司波图大佬和疫情所赐,UNRAID系统在国内越来越火,折腾的人也越来越多。老鱼早就想(跟风)折腾折腾UNRAID系统了,前前后后折腾了两次,时间间隔一年,终于在第二次折腾的过程中打通了任督二脉,对UNRAID系统有了一些领悟,于是计划写几篇文章跟大家一起分享UNRAID折腾的那些事儿,因为网上UNRAID的保姆级教程已经非常多了,关于安装和一些基础配置老鱼就不在我的文章当中写了,有需要的同学可以去看看司波图大佬的视频和什么值得买阿文菌的相关文章,老鱼主要是分享一些我折腾UNRAID过程当那些多么痛的领悟,是给有一定折腾基础的同学一份UNRAID进阶避坑指南。
UNRAID是什么?
UNRAID是基于Linux发行版的底层虚拟系统,跟ESXi、PVE类似。
从它的名字UNRAID上就可以知道它最大的特点就是没有RAID阵列。因为不支持RAID阵列,无法突破单硬盘读写速率极限,千兆家庭网络无缓存盘加持的情况下,最大写入速度110M/s。对于2.5G网络或者万兆网络,可以通过添加SSD缓存盘提升写入速度,但最大的写入速度仍然受限于缓存盘的写入速度。
但也正是因为不支持组RAID阵列,带来了更强的扩展性和灵活性。UNRAID可以灵活的增加不同容量大小不同读写速度的硬盘,不会对其它硬盘造成影响,所以UNRAID扩容真的非常方便。
虽然不能组RAID,但通过添加一块校验盘也可以保证数据的安全性,唯一的要求就是校验盘的容量要是所有硬盘当中容量最大的。添加了校验盘,有任意一块硬盘坏掉了,都不影响整个硬盘阵列的数据,用同容量或者更大容量(不能大于校验盘)的硬盘换下损坏的硬盘就能恢复数据。
UNRAID拥有很高的底层虚拟效率,油管eSir大佬做过主流虚拟平台的性能测试《什么?性能相差近10倍?!到底虚拟机平台哪家强,应该如何选择?ESXi,PVE,UNRAID,Synology 群晖,iKuai 爱快》,大家可以去看看,这里直接引用大佬的结论:
UNRAID可以通过docker扩展非常多的应用场景,也可以通过安装APPS应用市场来扩展功能。而且UNRAID对于docker支持相比群晖更完善,配合Portainer甚至可以达到准生产级别的效率和稳定性。老鱼也正是因为对于虚拟机和docker有更高的要求,才想着把原来装群晖的物理机改成装UNRAID。
UNRAID的操作逻辑相比ESXi、PVE更简单,上手也更快。
UNRAID就是这样一个门槛够低,但上限又足够高,功能、性能和稳定性比较平衡的底层虚拟系统,折腾党们的好玩具。老鱼前后折腾过ESXi、PVE、UNRAID和群晖,才最终决定将UNRAID作为主力的家用服务器底层虚拟系统(对于折腾党来说,哪有什么会一直使用的系统呢)。
如何实现外网访问
外网访问实现的方法很多,比较基础和通用的是路由做端口转发。
首先你的宽带得有一个外网IP,无论是IPV4还是IPV6都可以(各地不一样,可以打电话申请),然后需要通过DDNS服务解析到你家的外网IP上,因为这部分比较基础,实现的方法又比较多,老鱼就不展开说了,有不清楚的同学可以留言我们沟通,问的人多了我再单独开一篇文章写出来。
搞定了外网IP之后,进入UNRAID的SETTINGS页面,修改HTTP port和HTTPS port,只要修改成80和443以外的你自己好记的端口号就行,比如修改成10086和10087。通常来说只需要转发HTTP port端口就可以了,HTTPS port端口还需要安装SSL证书会比较麻烦一些。
然后进入你家里的主路由做端口映射,各个路由器的端口映射方法不完全一样,像梅林、老毛子系统的路由一般在外网设置中,OPENWRT系统在网络->防火墙->端口转发中配置。
假如UNRAID主机的内网IP是192.168.1.100,HTTP port端口改成了10086,在OPENWRT上这样设置就可以了:
现在就可以通过访问你的DDNS域名 端口号实现外网访问UNRAID。
如何实现SMB和NFS自动挂载
因为老鱼是从群晖转到UNRAID系统的,所以所有数据都存在群晖系统的硬盘中,未来避免数据迁移的麻烦,就在UNRAID上通过虚拟机安装了群晖,将物理主机的硬盘控制器和网卡直通给群晖,通过挂载群晖的NFS共享到UNRAID,实现数据共享,这样一翻折腾,群晖千兆内网的写入速度居然比原来直接在物理机上安装群晖还快,原来写入是90M/s,现在稳定在110M/s,我在前一篇《UNRAID进阶避坑指南(篇一):硬盘控制器和网卡直通》详细分析了速度变快的原因,有需要的同学可以回看前一篇的内容。
本来呢UNRAID是可以通过安装UNASsigned Devices插件很方便的实现SMB和NFS挂载的,但每次重启UNRAID的时候,因为虚拟机里的群晖启动比较慢,群晖没有启动完成的时候,它的NFS服务和SMB服务都是不可用的,Unassigned Devices插件即便是设置了自动挂载也没有用,会一直显示灰色的UNMOUNT状态,点了没有任何反应。
有些docker容器,比如Jellyfin需要读取群晖里的电影文件库,文件共享服务挂载不上的话,这些docker容器运行也不正常。所以需要通过其它方法来实现群晖文件共享服务的挂载。
因为UNRAID本身就是Linux系统,Linux系统挂载共享文件服务只需要一条命令就可以了,所以只需要在NAS完成启动的时候执行一次挂载文件共享服务的命令,就可以把NAS的文件共享服务挂载到UNRAID上。具体的挂载步骤如下:
- 在UNRAID的APPS中搜索安装User Scripts插件;
- 在User Scripts插件中增加一个脚本,名字随便取,自己能理解就行,输入以下内容:
#!/bin/bashsleep 5mmount -t nfs 192.168.1.100:/volume4/Media /mnt/remotes/192.168.1.100_Media
- sleep 5m是说等待5分钟再执行后面的脚本内容,给NAS足够时间完成启动
- mount -t nfs 192.168.1.100:/volume4/Media /mnt/remotes/192.168.1.100_Media是挂载NAS媒体库的命令,nfs是指定共享方式,如果是smb方式的话命令要换成mount -t cifs -o guest username=xxx,password=xxx,vers=x [远程路径] [目标挂载路径]这个大家自行百度一下,如果不明白的话也可以给老鱼留言192.168.1.100:/volume4/Media就是NAS的共享目录路径,这个要换成你NAS的IP和媒体库目录的路径。/mnt/remotes/192.168.1.100_Media就是指定UNRAID上的挂载点,UNRAID上所有的挂载点都在/mnt/remotes/
- 保存脚本,设置计划为At Startup of Array,点击APPLY,大功告成!这样UNRAID重启之后就会等待5分钟就会执行一次挂载NAS共享文件服务的命令,这个时候去看Unassigned Devices插件的状态,对应的共享文件服务share type前已经亮起了绿色小标,就代表共享文件服务已经挂载成功
如何实现docker加速
如果不配置docker镜像加速的话,docker镜像的拉取速度会慢得令人发指。作为UNRAID上的主力功能模块docker,非常有必要配置一下docker镜像加速。好在套路云良心了一把,为个人提供免费的docker镜像加速服务。
访问https://cr.console.aliyun.com/cn-qingdao/instances/mirrors复制你个人的docker镜像加速器地址,
在MAIN页面,进入引导U盘的Flash设备,把SMB服务打开,
在同一局域网的电脑上访问Flash文件共享,进入config目录,找到go文件,右键用Notepad 工具打开(千万不用要系统自带的记事本打开),把下面的代码添加到go文件当中保存,重启UNRAID就可以了。
mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]}EOF
xxxx要替换成你自己的docker镜像加速地址里的ID。这个时候再去拉一个docker镜像试试,速度杠杠的。
如何备份系统
一定要记得备份!一定要记得备份!一定要记得备份!重要的事说几遍都不为过!
好在UNRAID是U盘系统,备份起来也特别简单。
还是进入MAIN页面,进入引导U盘的Flash设备,点击FLASH BACKUP就可以了
过几秒钟会下载一个zip包,这就是系统的备份文件。后面要恢复的时候,进入UNRAID官网下载U盘制作工具,用跟之前做引导的同一U盘来重新制作引导盘,Select version选择Local ZIP,选择之前备份的zip包,点击Write image,引导U盘就制作好了,用这个引导U盘进入UNRAID,就可以恢复成你备份时的状态。
如何实现硬件直通
玩底层虚拟系统,硬件直通始终是一个绕不过去的话题,老鱼单独写了一篇《UNRAID进阶避坑指南(篇一):硬盘控制器和网卡直通》,说明了UNRAID硬件直通的原理以及实现硬件直通的方案,因为内容比较多,有需要的同学去看这一篇文章,这里就不再展开讲了。
SMTP通知设置
UNRAID支持非常多的通知服务,老鱼觉得最通用的还是邮件通知。只需要简单几步就可以配置好SMTP邮件通知服务,这样UNRAID有什么紧急问题,或者版本更新就可以邮件通知你。
我们就用大家常用的QQ邮箱来演示一下如何配置SMTP服务:
- 进入QQ邮箱->设置->账户,在POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中点击生成授权码用你绑定的手机按照说明发送一条短信就可以获得一份授权码,复制保存这授权码,我们后面会用到。
- 进入UNRAID,SETTING->Notifications,在通知设置中选择你需要收到的通知类型,通知方式勾选Email
3.下拉,在STMP Setting中按照这样配置:
预设服务选择自定义,Email的发送地址和收件人都是你的QQ邮箱,Mail服务设置为smtp.qq.com,端口465,启用SSL,认证方法选择登录,用户名就是你的QQ邮箱地址,密码是你刚才申请的授权码,不要用QQ邮箱密码。这样就配置好了,可以发一封测试邮件试试。
汉化
这个完全看个人喜好了,汉化也非常简单,有需要就汉化一下。根据你的UNRAID版本,复制相应的汉化插件地址,在PLUGINGS中安装后刷新即可
UNRAID 汉化插件 6.8.1 https://raw.githubusercontent.com/KleinerSource/UNRAID-chs-project/master/release/urchs.681.plg UNRAID 汉化插件 6.8.2 https://raw.githubusercontent.com/KleinerSource/UNRAID-chs-project/master/release/urchs.682.plg UNRAID 汉化插件 6.8.3 https://raw.githubusercontent.com/KleinerSource/UNRAID-chs-project/master/release/urchs.683.plg
如果是卸载汉化插件,需要重启才会生效。传说在6.9正式版本中,会有官方中文版,值得期待。
总结
以上就是对于UNRAID的一些进阶认知和功能配置。UNRAID可以折腾的地方还有很多,一两篇文章肯定是写不完的,所以老鱼准备开个坑持续更新UNRAID相关文章,计划后面会更新开心版的升级方法、docker和虚拟机的一些进阶玩法、群晖虚拟机和UNRAID系统共用UPS不间断电源以及一些非常有用的UNRAID插件、docker镜像和虚拟机镜像,当然有不了解的可以留言,留言多的问题我再单独加更出来,有啥功能需求有可以留言,老鱼本着我为人人,人人为我的踩坑精神可以帮大家做做实验。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。