路由与NAS篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机

NOTE
本文字数 6000+,配图 40+,预估阅读时间 12~15 分钟

写在前面

本文是 unRAID 基础篇的下篇,主要介绍文件共享、容器管理、虚拟机管理三大部分

这次我整理出来一个脑图大纲,可以快速获取并挑选自己感兴趣的部分查阅

也顺便列一下我之前整理 unRAID 系列的文章,方便大家查看

文件共享

在启动 unRAID 的存储阵列 Array 之后,就可以配置共享目录

这里默认会创建一些初始目录,给 unRAID 系统使用

head>

在切到 SHARE 后,点击 ADD SHARE(添加共享),就可以新增一个共享目录

设置一个共享名,也就是后续的目录名,其他选择无特殊需求默认即可

之后重新点击目录名,就可以进入共享设置

unRAID 的共享设置算是比较简单的,不过也能满足大部分需求

其中关于 Export(导出) 参数:

在添加共享目录后,默认的共享设置如下图

也就是,允许匿名访问,并且可以任意读写,相当于完全的果奔

所以强烈建议,统一将全部的目录(包括初始化创建的)设置为 Export: No

然后再按实际需求,对特定目录来开启共享

关于文件共享的进阶介绍,按照具体场景来分析

场景一

作为影音目录,希望局域网内所有人可见且不需要登录就可以访问来看电影等

但是必须登录之后,才允许写入新文件或删除已有的电影,类似于影音管理员角色

点击 APPLY 之后,就可以选择控制哪些用户能够具体读写权限

除了指定拥有 Write/Read 读写权限的用户,其他用户(包括匿名用户)都是只读

场景二

作为工作目录,希望局域网内所有人可见,但必须登录后才能访问(禁止匿名)

同时,普通用户登录后只读,只有特定用用户菜可以读写

点击 APPLY 之后,就可以选择哪些用户不允许访问,哪些用户可以读写、只读等

场景三

作为隐私目录,不希望被局域网内的用户看到有这个共享,

禁止匿名,且普通用户且必须登录后才能访问进行读写

多用户访问

但是,我们可以换另外一种方式来绕过这个限制,之前用的是 IP 访问

现在可以通过 Nas 服务器名称来访问,比如我这台 unRAID 设置的是 MyNas

就可以通过这个服务器名称来访问,并且用另外的用户进行登录:

通过这种访问来绕过 Windows 本身的限制

如果乐意的话,你甚至可以通过写 hosts 文件来实现 3 个甚至更多用户同时访问

大小写问题

unRAID 是基于 Linux 定制的,对文件名是大小写敏感的

而 SMB 文件共享本身是不区分大小写,但共享名对应的是 unRAID 下的目录名

所以就会存在一些认知上的问题,可以参照以下例子:

比如上图中的 Medias 共享目录,我们在通过 SMB 访问的时候,可以输入:

  • medias

  • MEDIAS

  • Medias

这三种访问地址都能够在 Windows 上访问到对应的 Medias 用户共享目录

但是在 unRAID 上进行操作的时候,则必须使用 Medias 来定位该目录

如果使用 MEDIASmedias,则会提示目录不存在

前面我们使用的文件共享,是默认的用户共享类型,此外还存在另外一种磁盘共享。

unRAID 的文件共享,按照类型可以分成以下两类:

  • 用户共享,在多个数据盘之间提供一个统一的名称空间,而底层数据是分布在各个数据盘之上的,可以简单理解为就是一个大文件系统,对用户屏蔽了底层文件存储细节

  • 磁盘共享,直接提供某一个或多个数据盘,与我们传统的文件共享类似,直接将整块数据盘进行共享

这两种共享方式,其实是同一基础文件系统的两个不同视图

也就是出现在用户共享的文件,其实也会出现在对应的磁盘共享中

用户共享

引用自维基百科
用户空间文件系统(Filesystem in Userspace,简称 FUSE)是一个面向类 Unix 计算机操作系统的软件接口,它使无特权的用户能够无需编辑内核代码而创建自己的文件系统。目前 Linux 通过内核模块对此进行支持。一些文件系统如 ZFS、glusterfs 和 lustre 使用 FUSE 实现。

用户共享其实就是 unRAID 提供的一种用户空间文件系统(FUSE FileSystem)

将多个独立数据盘上文件映射成一个大文件系统暴露给用户

如上图,在用户共享看到的 Media 目录,对应是存储在 Disk1 与 Disk3 上

并且这个两个磁盘上存储的是不同的目录文件

而通过共享目录最终看到的,是合并 Disk1 与 Disk3 上 Media 目录的内容

磁盘共享

unRAID 默认是只启用了用户共享,如果你想开启磁盘共享,需要先进行配置调整

SETTINGS => Global Share Setting

如上图提示,默认的配置是 Auto(自动),也即作为用户共享的磁盘,就不能设置磁盘共享

可以条调整为 Yes(是),来特定的数据盘单独进行共享

注意事项

如果你同时启用了用户共享与磁盘共享,绝对不要进行以下操作!

在用户共享与磁盘共享之间进行同文件、目录的复制操作

因为对于 unRAID 底层文件系统而言,并不知道用户共享这种 FUSE 文件系统

可能会导致在文件系统上尝试将文件复制到自身,导致文件被截断为零长度(相当于清空)

容器管理

如果你是刚接触 unRAID 容器,强烈建议先看一下司波图大佬的 unRAID docker 视频:

我使用的这个版本的 unRAID 默认安装了 19.03.5 的 docker

并且做了两个特殊的配置:

数据卷

如上图,为了方便管理,unRAID 创建了一个 loopback 文件系统:

/mnt/user/system/docker/docker.img

可以通过系统命令查看到:

通过这种方式,unRAID 将 docker 相关的数据,都存放到这个 docker.img 文件中

所以我们可以通过备份这个 img 文件来实现备份 docker 配置

在需要还原的时候,直接通过备份的 img 文件替换掉现有的文件来实现还原

配置目录

这里的配置,指的的 docker 中运行的应用软件的配置,比如 transmission 等

众所周知,在启动的容器中进行的文件变动,会随容器销毁而丢失

所以 unRAID 是建议将容器运行软件的配置写入挂载到容器中的配置目录以实现持久化

/mnt/user/appdata

以 transimission 为例,查看对应容器的运行参数配置

这样,即使 transmission 容器销毁了,只需要按照原来的启动命令启动就可以恢复

默认情况下,unRAID 会从国外的 docker 源下载镜像,本身就比较慢

如果出现出国线路抽风或者 DNS 污染,拉取镜像就是一件非常烦心的事情了

这里我们可以通过修改为国内源进行加速(这里以中科大的源为例):

cat << EOF >/etc/docker/daemon.json

{

“registry-mirrors”: [“https://ustc-edu-cn.mirror.aliyuncs.com/”]

}

EOF

然后执行重启 dockerd 的命令(该命令同时会关闭运行中的容器)

/etc/rc.d/rc.docker restart

之后就可以从国内的镜像源拉镜像,速度以及稳定性更好

不过这种方式在 unRAID 重启会失效,因此还需要进行持久化,

将第一条命令追加到 /boot/config/go 这个文件的最后即可(重启命令不要加上)

这样每次 unRAID 在重启之后就会执行这条命令,自动配置好镜像源

如果不熟悉命令行编辑,可以直接挂载出来图形化文本编辑器

我自己目前用的是阿里的源,与上述例子中不太一样,可自行选择

这个是我设置后测试的结果,拉一个 qbittorrent 309MB 的镜像大概花了 32 秒

正如上一篇基础中提到的:

这款 unRAID 的 APP 商店,本质上是一个 docker 模板库:

  1. 提供模板预设减少配置工作,比如图标、WebUI、关键运行参数等

  2. 执行 docker pull 拉取对应的容器镜像到本地

我们在 APP 商店中下载一个 APP,对应就是配置一个容器并运行起来

这里我以上面提到的 qbittorrent 为例,简单介绍如何安装并运行

在应用商店中过滤然后点击安装按钮,我选择的是 linuxserver 发布的镜像

设置一个 unRAID 宿主上的目录作为 qb 的下载目录,然后点击 APPLY 即可

PS: 因为只是演示,所以就尽量简化配置,实际上不建议使用默认的 6881 端口

回到 DOCKER 页面,可以看到 qbittorrent 已经运行起来了,

点击图标进入 WebUI,或直接按照 unRAID 映射地址访问(http://10.0.0.2:8080/

就可以看到登录页面,输入默认用户密码就可以进入 qbittorrent 管理界面

PS: 这个版本 qbittorrent 的默认用户名密码是 admin adminadmin,记得修改

社区 APP 商店无法覆盖全部的应用,总是有些不在里面的,

虽然可以手动拉取镜像来配置启动,但是有一定的门槛,需要了解 docker 基础知识,

其实就相当于一个小型的、轻量版的社区 APP 商店

添加模板库之后,就可以按照预设的模板安装模板库中的应用,流程基本类似

https://github.com/shuosiw/unraid

这里以灯大的 FileBrowserEnhanced 为例,我已经定制了一个模板,

可以添加我的模板库来安装(地址在上方),全中文介绍说明容易上手

选中 FileBrowserEnhanced 模板后,就可以开始配置

常用的参数已经加上,并设置了建议值,如有需要可以自行调整

配置完成后点击 APPLY 就可以开始安装并启动

点击图标 WebUI 就可以访问 FBE 管理页面了,默认口令 admin:admin

虚拟机管理

unRAID 提供了基于 KVM 技术的虚拟机功能,不过与 pve、exsi 相比,

unRAID 在单纯的虚拟机管理方面基本没有什么优势,比如连快照功能都没有

但如果换个思路,与其他成品 NAS 相比,unRAID 的虚拟机优势就比较明显了:

加拿大白嫖王也曾在一期视频中用 unRAID 的硬件直通来配置双人一机情侣电脑

这部分我更加倾向于把虚拟机功能作为 unRAID NAS 的附加功能,

目前也只安装了 openwrt 作为旁路由,灯大的 win10 精简版以备不时之需。

这里我以安装一个最新版本的 openwrt 虚拟机为例,介绍 unRAID 创建虚拟机流程

首先下载好 OpenWRT 最新版 19.07.4 的镜像:

默认是压缩格式,需要加压出来并上传到 unRAID 的磁盘存储上,

这里我进行重命名,保存路径为:/mnt/user/isos/openwrt-19.07.4.img

点击添加虚拟机,选择 Linux 虚拟机开始进行配置:

  • CPU 先分配两个就够了,毕竟 x86 架构的比 arm 架构性能已经提升很多

  • 内存分配了初始 256M,最大允许 512M,够用

  • 机器保持默认的 Q35-4.2 即可

  • BIOS 修改为 SeaBIOS

因为下载的已经是可用镜像,不需要执行安装流程:

  • 系统安装 ISO 留空

  • 虚拟磁盘位置,选择手动,并修改为前面上传的 img 文件路径

  • 虚拟磁盘总线保持默认的 VirtIO 即可

其他的参数不需要修改,保持默认即可,最后点击创建自动启动

返回主界面,点击 OpenWRT 虚拟机图标打开 VNC 远程连接进行配置

界面上会一直刷启动日志等到出现 link becomes ready 则启动完毕

此时 openwrt 网络没配置没法使用,需要进行配置

通过该命令打开网络配置文件:vi /etc/config/network

NOTE
需要注意,上图中的 IP 需要根据你自己的实际路由网络进行调整,
比如我的主路由是 10.0.0.1,Nas IP 是 10.0.0.2,
再分配一个没有被使用的同网段的 IP 10.0.0.3 作为 openwrt 的 IP

回到 unRAID 管理页面上重启该虚拟机,重启后就在 WEB 上进行配置

通过我们分配的 IP 访问就可以看到官方原版的 19.07.4 OpenWRT管理界面了

不过此时,openwrt 的网络还存在一点问题,需要进行配置

Network => Interfaces 页面,点击 LAN 后面的 Edit 按钮,关闭 DHCP

因为是作为旁路由,不需要提供 DHCP 功能(给了也没用)

Network => Firewall 页面:

  • 设置 General Settings 将 Forward 设置为 accept

  • 设置 Zones 的 WAN 口策略全部放通,Input、Output、Forward 都设置为 accept

最后点击 Save & Apply 使变更生效,这样就完成了 openwrt 的网络配置

然后就可以到 System => Software 来安装中文语言包了:

  • 先点击 Update lists 更新软件包列表

  • 过滤 base-zh 并安装中文语言包

完成完毕后刷新一下页面,就可以看到中文界面了

PS: 如果更新软件包列表比较慢,可以切换到国内源,自行网上搜索

unRAID 的虚拟机是基于 KVM 技术的,是对 KVM 进行二次封装来实现虚拟机的功能,

同时提供一个 WebUI 来简化配置流程,不过图形界面的配置并没办法覆盖到很多场景

所以很多时候,我们也需要切换到 XML 视图来定制 KVM 的参数

在这种情况下,就需要特别注意:

所以,如果是在 XML 上定制过的虚拟机配置,建议以后都在 XML 视图进行修改保存

否则有可能会导致 XML 中定制的配置丢失,影响到已经配置好的虚拟机

如果只在默认的图形界面上操作,则不需要关心这个问题

写在后面

感觉这次的基础篇埋的坑有点大,有些内容展开讲太多,不展开又没法介绍清楚

再加上我的风格是习惯理论分析+实践介绍,所以会比一些纯教程教学的文章更多文字

我会尽量尝试把一些理论的东西以最简单的方式整理出来。

接下来应该是就是第一篇时候埋的坑了,jellyfin 影音库搭建 + tmm 刮削的教程

感兴趣的值友可以关注一下方便第一时间查看,有任何疑问都可以评论回复,定期回答~

原文链接:https://www.360doc.cn/article/4703094_1078397586.html

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享