小刻也能看懂的UNRAID系统使用手册:基础篇
小刻也能看懂的UNRAID系统使用手册:基础篇
FrozenSkyUnraid系统简介
Unraid 的本体其实是 Linux,它主要安装在 NAS 和 All in One 服务器上,经常可以在 Linus 的视频里看到 Unraid 的身影。与群晖DSM系统相比,Unraid 的硬件兼容性更好,原生支持 Docker 和 VM 虚拟机,硬件直通的设置十分方便,这让 Unraid 可以发挥硬件的极致性能。在国外 Unraid 的用户还是相当多的,它内置的插件中心可以下载的插件和 Docker 功能种类都十分丰富,可以满足使用者不同的需求。
关于数据的安全存储,通过 Unraid 这个系统的命名也可以看出来它是不支持 RAID 的。Unraid 系统采用了校验盘的机制来保证数据安全,最多支持 2 块磁盘作为校验盘,实现了类似于 RAID5/6 的冗余模式。例如,当插入 2块磁盘作为校验盘,就可以在存储序列内同时有两块硬盘损坏的极端情况下确保数据不会丢失。
Unraid 不是免费的,它的收费模式是按照系统内的存储设备数量(不包含引导U盘)分为 Basic, Plus, Pro 三种,一次性买断制,价格分别为 59, 89, 129 (美元)。最便宜的 Basic 版本支持最多 6 个存储设备,Plus 版本支持 12 个,Pro 版本不限制。个人使用 Basic 版本已经足够了,即使后期需要升级,也可以通过补差价的方式升级到更高版本。并且 Unraid 提供了 30 天的全功能试用,可以体验一下再决定是否购买。
“小刻也能看懂” UnraidOS 篇,是通过笔者搭建 Unraid NAS 服务器的进程持续更新的。大致可以分为基础篇、Docker篇、VM虚拟机篇、高级技巧篇。因为笔者也是在不断的摸索和学习,期间必然会经历诸多“坑”,因此本文会详细记录在搭建过程中遇到的各种疑难问题,并给出笔者亲测可用的解决方案,希望可以帮助到喜欢折腾的小伙伴们。至于小刻到底能不能看懂…
在本文撰写过程中,Unraid 官方宣布已经支持使用支付宝作为付款选项来购买 Unraid OS 了!他们还将 Unraid 网站翻译为了中文,创建了中文在线社区,并实现了整个 Unraid OS 的中文化!惊不惊喜,意不意外?只是笔者的文章是按英文版写的,都写一半了…不过这不重要!重要的是有了官方中文社区,国内很多使用 Unraid OS 的小伙伴有了互相交流的地方,系统的应用和插件的生态也会更好!
Unraid系统安装
1.准备工作
一个U盘
Unraid 的安装方式是通过U盘进行安装,且安装完成后,U盘将作为启动设备引导 Unraid 启动。需要注意,日后 Unraid 的激活需要U盘有唯一的 GUID (Globally Unique Identifier) 全局唯一标识符,而一些杂牌U盘很可能使用相同的 GUID 或者 GUID 是一串无意义的数字,这会导致系统无法激活。Unraid 官方推荐使用 2GB 以上大小的高质量品牌U盘,如 PNY, Lexar, SanDisk, Samsung, 同时在官方指南中提到不建议使用 USB3.1 的U盘。
2.制作启动盘
有两种方式制作 Unraid 启动盘,第一种使用官方提供的 USB Creator 工具,第二种需要手动下载系统镜像写入U盘。这里推荐使用官方的工具来制作启动盘。
(1) 使用 USB Flash Creator 工具
- 下载 USB Flash Creator,下载地址:Unraid | Download Unraid Server OS
- 插入准备好的U盘
- 运行 USB Flash Creator,可以在软件界面选择安装的系统版本号,这里推荐使用 Stable 稳定版。
- 点击 Customize,可以自定义服务器的名称,IP地址。这里也可以先不设置。
- 是否 Allow UEFI Boot 需要根据个人的主板进行选择。
- 选择正确的U盘后,点击 Write 按钮,工具会自动下载系统镜像并写入。
- 写入完成后,关闭软件,拔出U盘。
因为工具需要预先下载系统镜像,对于网络条件不好(指网络不科学不文明)的地区,可能下载时速度会非常缓慢,需要耐心等待一下。其实,Unraid 提供了系统镜像的离线下载,在官网下载页面可以下载到不同版本的系统镜像,只需在工具上选择 Local Zip,然后选择下载好的镜像文件再进行写入即可。
(2) 手动制作启动盘
- 插入准备好的U盘,将其格式化成 FAT 文件系统。修改U盘卷标为 “UNRAID” 注意要求大写。
- 按照(1)中的方法到官方网站下载系统镜像,并解压压缩包内的所有文件到U盘根目录。
- 在U盘根目录的文件中找到 make_bootable 脚本,右击,选择以管理员身份运行。
- 耐心等待,直到出现 complete 提示后,制作完成,可以拔出U盘。
虽然手动制作启动盘的步骤看起来更少更简单,但其实坑还是很多的,比如不能设置是否使用 UEFI 启动。并且对于 Linux 和 MacOS 系统用户,操作还是相对复杂的(具体可以查询官网安装指南)。推荐使用(1)中的启动U盘制作工具来进行制作。
3.初始化 Unraid
在这里小刻使用一台组装好的电脑来安装 Unraid 系统,并作为 NAS 来使用。这台电脑需要至少安装一块硬盘用来初始化 Unraid 序列。
- 第一次初始化需要连上显示器,插入制作完成的启动U盘,插入网线、键鼠,开机。
- 进入 BIOS 界面修改启动设备为 USB 设备。保存并退出。
- 重启后不出意外的话会显示 Unraid 启动菜单。选择第一项 Unraid OS,启动系统。
- 等待系统载入完成后,会提示 IPv4 地址用于登录系统的管理后台。
至此 Unraid 初始化已经完成,记录下管理地址后,就可以拔掉显示器,使用局域网内的其他电脑来远程管理 Unraid 系统了。基本上所有的系统设置都可以通过 Unraid 网页端的界面来进行,是不需要外接显示器的。需要注意 Unraid 通过U盘引导,所以启动U盘可不能拔出来。
Unraid系统激活
在浏览器输入管理IP访问 Unraid 控制台,会提示购买 KEY,不过在购买之前,要先确认 Unraid 的系统时间和 DNS 服务器的设置是否正确。
点击 Important 提示中的 server time 设置一下系统时间,如图所示,推荐开启 NTP 服务器用来自动同步时间。Unraid 默认的 NTP 服务器是国外的,可以替换为国内的 NTP 服务器,下面是一些 NTP 服务器地址:
点击 Important 提示中的 DNS server 链接,对 DNS 服务器进行设置。
设置完成后,可以点击 PURCHASE KEY 购买,现在 Unraid 已经支持支付宝付款了。当然也可以点击 GET TRIAL KEY
开始 30 天的试用,试用期间的系统功能和 Pro 版本相同没有限制。
获取试用 KEY 的时候有可能出现即使修改到正确的系统时间也提示 Error 的问题。这是由于计算机主板的时间错误所引起的,需要进入 BIOS 里把主板的时间修改为正确的时间。如果重启后主板时间仍然错误,则需要检查更换主板上的纽扣电池。
DASHBOARD
成功激活后,自动跳转到了 MAIN 界面,这是 Unraid 系统管理所有存储设备的界面。我们暂时不操作这个界面,点击导航栏上的 DASHBOARD 链接,切换到 DASHBOARD 仪表盘界面。界面由三栏组成,左侧显示 Unraid 服务器的硬件监控,中间显示共享文件夹和用户配置,右侧显示校验盘、序列等存储设备的使用情况。在 DASHBOARD 界面可以总体预览 Unraid 系统的运行情况,其中每个小模块都可以通过鼠标拖拽的方式调整位置。
Unraid 仪表盘界面的详细说明如图:
一些简单的设置
1. 修改root用户密码
Unraid 安装完成后,系统默认只有 root 用户,并且没有设置密码,有极大的安全隐患,需要第一时间为 root 用户设置密码。
切换到 USER 界面,可以看到只有 root 用户。点击它的头像进入用户编辑界面,修改密码并点击 CHANGE
。Unraid 会提示重新登录。root 是 Unraid 系统的最高权限用户,也是 webGUI 的登录用户,一定要牢记它的密码。
2. 新建用户
因为 root 用户拥有最高权限,可以控制整个系统,密码泄露出去会带来安全隐患,所以为了安全考虑,在设置共享权限和 Docker 应用的时候不应该使用 root 用户,需要新建一个或多个用户。
切换到 USER 界面,点击 ADD USER
,设置用户名、描述、头像、密码,点击 ADD
即可创建用户。
3. 设置静态IP
Unraid 默认自动获取 IP 地址,由路由器自动分配,这个 IP 地址是会变化的,最好将其设置为静态,让其使用固定的 IP 地址,方便后续的各种系统配置和应用软件配置。
设置方法:
SETTINGS
>> NetworkSettings
如图所示,修改 IPv4 address assignment 为 Static,设置 IPv4 地址,默认网关,APPLY 应用设置。等待几秒钟后,在浏览器中使用修改后的 IP 地址访问 Unraid 后台即可。
在 NetworkSettings 里可以查看到 MAC address,这是当前网络接口的物理地址,熟悉路由器配置的刀客塔可以进入自己的路由设置,把刚刚设置好的 IP 地址和 MAC 地址进行绑定。(不绑定也可,问题不大)
4. 修改服务器标识
默认的仪表盘左上有个机箱图标的模块就是服务器标识模块,可以看到服务器名称和描述信息,还有一个机箱图标。点击图标下面的 EDIT
按钮,可以修改其样式,这个只是为了美观,可以随便选择喜欢的样式。再点击模块右上角的齿轮图标进入服务器标识设置界面,可以在此修改服务器名称、描述、型号,这里也可以随意填写,就算写 PRTS 也完全没有问题。另外,在模块右上角有三个小图标,分别是启动序列,重启服务器,关闭服务器。
使用共享文件夹
完成了上述的配置后,我们可以先创建一个共享文件夹,简单测试一下。
1. 启动序列
通过导航栏进入 MAIN 界面,点击 Disk 1 右侧的下拉菜单,选择一个磁盘,这里小刻选择了 870EVO 500GB 的固态硬盘,这块硬盘将作为数据存储空间,因为要进行格式化,所以一定要注意确定硬盘中已经没有有用的数据了。在 MAIN 页面的最下面,点击 START
按钮,等待一会儿后可以看到序列的状态已经变成了 Started,表示序列已经启动。
2. 格式化磁盘
但此时在 Array Devices 列表中,可以发现 Disk 1 的 SIZE 一栏没有显示磁盘的容量信息,这是因为 Disk 1 磁盘还没有进行格式化。勾选页面下方灰色按钮 FORMAT 右侧的 Yes, I want to do this
复选框,点击 FORMAT 按钮,提示格式化操作会删除磁盘上的所有数据,再次点击 FORMAT
开始格式化。
3. 创建共享文件夹
格式化完成后,Array Devices 列表中已经可以看到 Disk 1 的空间使用情况了。有了存储空间就可以创建共享文件夹了,点击导航栏的 SHARES,再点击 ADD SHARE
按钮,在 Share Settings 页面,简单设置一个共享的名称,比如 “media”,然后点击 ADD SHARE
就完成了一个共享文件夹的创建。
4. 访问共享文件夹
访问共享文件夹的方法也很简单:以 Windows 为例,打开计算机,在地址栏输入 Unraid 服务器的 IP 地址 \\10.0.0.110
回车,可以看到刚才创建的共享文件夹 “media”,双击进入,和日常使用的文件夹一样,可以在这个共享文件夹里复制粘贴,存取文件。
复制一个文件到共享文件夹测试一下传输速度,大约是 110MB/s,已经接近千兆网络的极限速度了。
共享文件夹是 NAS 服务器最重要的功能,只要是和 NAS 服务器在同一网络环境的设备,包括电脑、手机、电视等,都可以通过网络访问到共享文件夹中的数据,在其中存放电影、音乐、照片、视频等,通过局域网,家中的设备都能进行浏览和播放,配合 Unraid 强大的插件和 Docker 的支持,可以实现一个数字化的家庭媒体中心。
上文只是很简单的创建了一个可供读写的共享文件夹,实际上 Unraid 系统中对于共享文件夹的设置是非常丰富的,可以指定其使用哪些磁盘、授予用户不同的权限等,这些功能在弄明白 Unraid 的序列和共享机制后再来探索吧!
MAIN
对于一个 NAS 服务器来说,存储数据是最重要的功能,而管理各种存储设备,配置存储空间,保证数据安全是一个 NAS 系统必备的功能,MAIN 界面就是 Unraid 管理所有存储设备的地方。在这里可以看到上文添加的固态硬盘在 Array Devices 的 Disk1 位置,并且可以查看它的温度、读写请求、错误、文件系统和空间使用的情况。
因为在序列已启动的状态下是不能进行存储设备的配置的,先点击 STOP
按钮,停止序列运行。序列停止后,页面左下角会有红色的 “Array Stopped” 提示信息。
此时 MAIN 界面进入配置模式,Unraid 系统把服务器中的存储设备分为下面这几种类型进行管理:
1. Array Devices
Array Devices 可以翻译成“阵列设备”或者“序列设备”,由于“阵列”很容易让人误以为是 RAID 阵列,而 Unraid 本身是不支持 RAID 的(可以通过阵列卡实现硬件RAID),所以本文将其称为序列设备。
Array Devices 中的设备是组成 Unraid 服务器存储空间的主要设备,分为 Parity 校验盘和 Disk 数据盘。
Parity 校验盘
校验盘用来对存储在数据盘中的数据进行奇偶校验,以保护数据安全。当出现磁盘错误时,可以通过校验的方式恢复数据。安装 1 块磁盘作为校验盘时就可以为数据盘提供 1 个冗余。因为是一对一校验数据,所以作为校验盘的磁盘容量必须是序列设备中容量最大的磁盘。目前 Unraid 支持配置最多 2 块磁盘作为校验盘,这两块磁盘的容量可以是不同的,但仍然会以其中容量最小的为准。
Disk 数据盘
数据盘用来组成系统的主要存储空间,其容量是所有数据盘容量的总和。比如使用 4 块 4TB 硬盘作为数据盘,则存储空间的总容量就是 16TB。并且由于不使用 RAID 阵列的机制,数据盘可以使用不同容量的磁盘,后续扩展存储空间时更加灵活。但还是要注意,如果开启校验功能,则数据盘中的容量最大的那块磁盘的容量不能超过校验盘能提供的最大校验容量。
TIPS: Unraid 官方指南中提到,目前 SSD 作为序列设备(包括校验盘和数据盘)使用正处于实验阶段,可能会出现意料之外的问题。所以,最好使用机械硬盘作为序列设备,SSD 作为缓存使用。
2. Pool Devices
Pool Devices 是 Unraid 6.9.0 版本新增的功能,在先前的版本中叫做 Cache,即缓存,它是用来为数据提供加速读写的磁盘。在 Unraid 6.9.0 之前的版本中只有 cache 一个缓存池,而新版的 Pool Devices 支持创建更多的缓存池,还新增了多设备模式,可以基于 BTRFS RAID 保护缓存池中的数据。
Pool 缓存池的作用
因为 Unraid 的序列模式不同于 RAID 阵列模式,是单盘读写的,增加磁盘并不能提高文件的读写速度。日常用于存储大量数据的机械硬盘的读写速度大概在 100MB/s 到 300MB/s,而固态硬盘的读写速度通常都在 600MB/s 以上,支持 NVME 协议的固态硬盘甚至可以达到 3GB/s 的读写速度。为了提高文件的读写速度,可以在 Pool Devices 中创建缓存池并配置一块固态硬盘做为缓存盘使用。
Pool 缓存池的机制
固态硬盘的存储空间相比于机械硬盘要小很多,所以并不是所有的文件都可以存放在缓存上的,也不建议把大量文件存放在缓存上,这么做会加速缓存盘的损耗。Unraid 提供了四种机制来指定哪些文件该使用缓存、该怎样使用缓存。在安装了缓存盘后,新建 Share 文件夹时就可以看到这四种缓存机制:
No
对该文件夹内的文件读写时不使用缓存,直接从序列磁盘上读写。适合存放大文件的文件夹,如电影,剧集等。
Yes
向该文件夹写入文件时优先使用缓存,文件将被写入到缓存上,缓存空间不够则会写入到序列磁盘上。Unraid 内置的 Mover 机制会根据设置定期,也可手动将文件从缓存中写入序列磁盘上。Yes 机制文件先写入高速缓存,再移动到序列,提高了写入速度。适合零碎的小文件,如文档。
Prefer
向文件夹写入文件时会优先写入缓存,当缓存剩余空间不足时才会将新文件写入序列。在 Mover 启动时,会尽可能把序列中的文件移动到缓存中,下次访问这些文件就会从缓存上读取了。这种机制不仅提高了文件的写入速度,也尽可能提高了文件的读取速度。Prefer 机制很适合需要频繁访问,频繁修改的文件,也适合存放虚拟机映像和 Docker 应用的文件夹。
Only
文件只存放在缓存上,Unraid 也不会使用 Mover 移动缓存文件到序列。和 Prefer 机制一样提高了读写速度,但不会写入序列意味着在使用单个缓存盘时,没有冗余,也没有校验盘来保护数据,不适合用来存储重要文件,只适合存储虚拟机镜像和 Docker 的容器。
Cache 注意事项
由于在使用 Yes 和 Prefer 机制时文件优先写入缓存盘,在一定时间后才会由 Mover 机制将其写入序列。当只有一个缓存盘时,Cache 工作在单设备模式,存储在缓存中的数据在还没有被写入序列之前是存在风险的。
对于这个问题有下面几种解决方案:
- 减少 Mover 触发所需的时间。这样缓存内的文件会在短时间内就移动到序列。
- 只使用缓存加速系统文件、虚拟机和 Docker。不用来加速序列内文件的读写。
- 添加第二个缓存盘,启用多设备模式,形成冗余备份。
第三种方案是最稳妥安全的,但是要购买额外的缓存盘。目前固态硬盘的价格还是很高的(差不多1元1GB)。第一种方法可行,但也不能 100% 保证安全。第二种方案让文件不经过缓存直接写入序列,缓存只用于系统相关文件的加速,这样传输文件到序列时是无法享受到缓存的加速的,适合对传输速度没有要求的情况。
虽然几种方案各有利弊,但它们都能减少序列内硬盘的频繁读写,可以增加硬盘的休眠时间,在一定程度上减小了系统整体功耗,提高了硬盘的使用寿命。
3. Boot Device
Boot Device 是 Unraid 的启动设备,目前列表中的设备就是上文中制作的启动U盘。Unraid 用它存储重要的序列配置文件,所以在系统运行时是不可以拔掉的。
默认情况下,设备的状态会显示出一个黄色的感叹号图标,这是因为 Unraid 默认对设备目录开启了共享功能,并且共享的权限是 Public,表示局域网内的所有人都可以访问。这样设置存在安全隐患,稍后将修改它的权限。
启动设备设置
MAIN
>> Boot Device
>> Flash
Flash Device Settings
使用 FLASH BACKUP
可以对启动设备进行备份,备份会下载到电脑上,因为是系统启动和运行的重要设备,推荐定期备份,以防万一。
SMB Security Settings
提供对 flash 共享目录权限的设置,为了去掉上文中感叹号提示的安全漏洞,将 Export 设置为 Yes(Hidden),Security 设置为 Private,并在 SMB User Access 中给用户设置权限即可。
Syslinux Configuration
这里是配置系统启动项的地方。右边的每个启动项都是可以编辑的,通过它可以进行硬件直通的配置。Server boot mode 显示了当前系统的启动模式是 Legacy 传统模式,可以在此进行 UEFI/Legacy 模式的切换。
4. Unassigned Devices
Unassigned Devices 是未分配的设备,即当前已经连接到服务器,但并没有放入序列中的设备。
点击设备列表前的 Dev
链接可以查看设备的详细信息。
创建序列和缓存池
综合上文对于 Unraid 序列和设备类型的介绍,并且考虑到在 Unraid 服务器上使用虚拟机和 Docker 的需求,小刻认为使用一个机械硬盘作为数据盘;一个固态硬盘作为缓存池,用来存放系统文件、虚拟机映像、Docker等,以提供最好的性能,并减少数据盘的读写频率,提高了安全性。日后可以再增加一个固态硬盘组成多设备模式的缓存池,以增加缓存的安全性。
为什么不使用校验盘呢?
主要出于成本考虑,如果预算充足还是强烈建议使用校验盘的。
其实包括 RAID 阵列在内的任何一种校验的机制,都不能绝对保证数据的安全,校验机制只是提供了一个在发生问题后,进行数据恢复的方法。而多重备份、异地备份也完全可以做到这一点,并且是保护数据安全的最佳方案。所以,建议存放在服务器上的数据也要在其他的地方有多份副本。这样即使不使用校验盘,也可以在换上新硬盘后从其他副本处直接将数据复制回来,这种恢复的方法是优于校验盘的。
1. 重置序列配置
因为在上文中测试共享文件夹的访问速度时,小刻已经创建了一次序列,所以在修改序列中的磁盘配置时会提示错误,缺少磁盘。Unraid 系统会以为序列中的那个盘丢失了。这时需要重置序列配置。
- 通过导航栏 TOOLS >> New Config 进入设置界面
- 勾选
Yes, I want to do this
确认操作 - 点击
APPLY
按钮重置序列配置
再次切换到 MAIN 界面,就可以正常配置序列了。
2. 创建缓存池
- 点击
ADD POOL
- 在弹出的对话框中输入缓存池名称,点击
APPLY
- 在 Pool Devices 的 Cache 槽中添加一个固态硬盘
- 点击
Cache
进入设置界面,修改 File system type 文件系统类型为 btrfs,点击APPLY
这里修改了缓存盘的文件系统为 btrfs,因为 Unraid 为缓存池提供了单设备模式和多设备模式,多设备模式下的缓存池更加安全,而非 btrfs 文件系统的缓存盘在日后添加缓存盘并扩展成多设备模式的时候需要重新格式化成 btrfs 格式。
3. 添加序列磁盘
- 在 Disk1 的下拉列表中选择一个机械硬盘,这里选择一块希捷 4TB 的硬盘
- 点击
Disk1
进入硬盘的设置界面,设置 Spin down delay 休眠时间为 30 分钟 - 设置 File system type 为
xfs
,xfs 文件系统兼容性更好
4. 启动序列
- 点击 MAIN 界面的
START
按钮启动序列 - 勾选
FORMAT
按钮旁的确认复选框Yes, I want to do this
再点击FORMAT
格式化磁盘 - 格式化完成后,序列和缓存池中的磁盘就成功挂载到系统上了
成功启动序列后,在 MAIN 界面就可以实时查看每个硬盘的状态,读写和空间使用率等信息了。
本文中,暂时只使用一块硬盘作为序列中的数据磁盘,后续如果存储空间不足,需要向序列中增加硬盘的话,按照第 3 步的操作添加即可,序列中有多块硬盘,则序列的总容量等于所有硬盘容量之和,它们共同组成 Unraid 的存储空间。
SHARES
为了使用序列磁盘所组成的庞大存储空间,需要使用 Shares 共享(共享文件夹)功能。上文中已经简单介绍过它的使用方法,创建 Shares 共享非常容易,但作为 Unraid NAS 系统重要的功能之一,使用者应该了解 Shares 的文件和磁盘使用机制,在配置 Shares 共享和存储文件的时候,有一个清晰有条理的策略,这对文件完整性、磁盘扩展性、数据安全性都有很重要的意义。
系统共享
启动序列后,切换到 SHARES 界面,可以看到 Unraid 已经自动创建了 4 个共享,它们是系统共享,作用如下:
appdata 默认存放App/Docker配置文件config的内容
domains 默认存放虚拟机的磁盘映像
isos 在安装虚拟机时用来上传系统安装镜像的目录(非必须在此共享目录)
system 存放Unraid系统文件,VM模板,Docker映像
因为在小刻的序列中有缓存池,Unraid 会自动将这些共享的缓存模式设置为 Prefer,以提高性能。如无必要不需要对系统共享的设置进行更改。
新建共享
点击 ADD SHARE
新建一个共享,以 “Movies” 为例,创建一个用来存放电影文件的共享。一些重要的设置选项会在下面进行说明:
Use cache pool
设置该共享的缓存池机制,只有在序列中有缓存池时才会生效,上文已经介绍过 Unraid 缓存的四种机制,对于存放电影这类数据,文件体积大,不经常修改,并不需要使用缓存池,所以设置为 No
即可。如果创建的是一个需要经常读写的共享,比如存放文档类数据,可以设置为 Yes
。
Select cache pool
当 Use cache pool 启用的时候才会生效,这个选项是用来设置该共享使用哪个缓存池的。小刻的序列里只有一个缓存池,如果有多个缓存池的话,可以在这里进行指定。
Enable Copy-on-write
该选项只有在磁盘使用 btrfs 文件系统时才有效,而为了兼容性数据盘一般使用 xfs 文件系统。
Included or excluded
该选项只有在序列中有多个数据盘时才生效,它可以设置此共享使用哪几个数据盘的空间,或是不使用哪几个数据盘的空间。只需要设置其中一个即可。
Allocation method
文件分配方法,详细见下文。
Minimum free space
最小剩余空间,详细见下文。
Split level
以上三个选项是关联的,所以放在一起说明。
首先,Unraid 的共享功能是通过 Linux 聚合文件系统来实现的,它允许一个目录下的文件或目录存放在不同的磁盘中。举个例子,从用户的视角看,文件 Ma 和 Mb 都在同一个目录 Movies 下,但在物理层面,文件 Ma 实际存放在 Disk1 上,文件 Mb 实际存放在 Disk2 上。
当创建一个包含多个磁盘的共享目录时,通过聚合文件系统,共享目录下的文件可以跨磁盘存放,那么判断文件应该存放在哪个磁盘就需要 Minimum free space, Allocation method, Split level 这三个选项的设置来决定了。
Minimum free space(最小剩余空间)设置一个值,当共享所包含某个磁盘剩余容量低于该值时,就不向这个磁盘写入文件了,转而向共享包含的其他磁盘写入,当所有磁盘都无法写入时会报错。这个值一般设置为 0,如果使用者想要为某个磁盘保留一些空间的话,可以根据实际情况进行设置。
Allocation method(文件分配方法)有三个选项: High Water
, Most Free
, Fill-Up
。其中 Fill-Up 是持续向一个硬盘写入直到填满,再向另一个磁盘写入;Most Free 是每次写入都向剩余空间最多的那个磁盘写入;High Water 是一种均匀各个磁盘剩余空间的写入方式,它基于序列中容量最大的磁盘,使用二分法创建多个“水位线”,举个例子,容量 8TB 硬盘的水位线分别为 4TB, 2TB, 1TB, 512GB…使用 High Water 时,会依次将序列中的每个硬盘写入到剩余 4TB 的空间,然后再依次写入到剩余 2TB,1TB…
如图所示,显示了序列中有 8TB, 3TB, 2TB 三个硬盘时,High Water 模式的磁盘写入方式:最开始只会在浅绿色区域进行存储,浅绿色区域存满后,继续在两个深绿色区域进行存储,以此类推。
在以上三种文件分配方法互有优劣,取决于所创建的共享具体要存放的文件类型和使用者的文件管理习惯。
Split level(分割层级)选项可选 7 个层级,即 level-1 到 level-5,level-any,no。作为使用者可能很困惑这个分割层级是什么意思?有什么作用?官方的指南中对于 Split level 的解释很复杂,其实简单明了的解释是:Unraid 系统为了防止存放在共享的文件过于混乱地分散在各个磁盘而设置的限制。
举个栗子:小刻有两个冰箱(磁盘),冰箱 A 快满了但还没有完全满,冰箱 B 还有很多空间。一天小刻买来一盒蜜饼(文件),想把它们放到冰箱里,如果都放到 A 中,放不下。这时小刻可以选择把一部分蜜饼放进 A 冰箱,剩余的放到 B 里面;另一个选择是把所有蜜饼放到冰箱 B 里。
小刻的蜜饼是一个很实际的例子,考虑到数据完整性,很明显,小刻会选择第二种。而在 Unraid 中 Split level 就是来做这个选择的。当设置 level-1 (level-top) 时,只有根目录(1级目录)可以被分散在不同的磁盘,其子目录(2级目录)以及目录下的所有文件则必须存储在同一个磁盘上,Unraid 系统不会对 2 级目录进行分割。Split level 的其他几个选项以此类推,其中 level-any 代表数据可以被任意分割在不同磁盘上,no 代表 Unraid 不自动分割数据,而是需要使用者手动去设置,需要涉及命令行的操作,待进阶篇再去讲解。
Split level 的选择和共享中存放的数据类别有很大的关系,比如,本次创建的是用于存储电影文件的共享 “Movies”,那么共享中的文件结构大概是图中这样,Movies 是 1 级目录,每部电影的文件存放在以电影名称命名的文件夹中,是 2 级目录。虽然因为聚合文件系统的关系,用户不需要知道文件存放在哪个磁盘,但实际上用户肯定不希望同一个电影文件夹中的电影文件被分散在不同的磁盘上。这种情况下,将 Split level 选项设置为 level-top(level-1)
就限制了 Unraid 不可以对 2 级以下的目录进行分割,电影文件就老老实实地存放在它自己的文件夹里了。如果对于 Split level 仍有困惑,可以参考官方说明文档:Manual/Shares - Unraid | Docs
所有的选项配置好后,点击 ADD SHARE
即可创建共享。
设置共享权限
新建的共享默认权限是 Public,即当前局域网内所有人都可以通过 IP 地址访问该共享。
- 通过导航栏
SHARES
>>User Shares
>>Movies
进入 Movies 共享设置 - 在下面 SMB Security Settings 设置 Security 为
Private
点击APPLY
- 然后在 SMB User Access 设置用户的权限为
Read/Write
可读可写 点击APPLY
映射网络驱动器
Windows系统
在 Windows 系统中,可以把共享映射成为网络驱动器,被映射为网络驱动器的共享使用起来就像普通磁盘分区一样,十分方便。
- 打开
我的电脑
点击菜单栏计算机
>>映射网络驱动器
- 在弹出的窗口中选择一个驱动器盘符,此处设置为
Z:
- 在文件夹一栏填入共享的网络位置,格式是:
\\IP地址\共享名称
,此处设置为:\\10.0.0.110\Movies
- 点击
完成
,按提示输入 Unraid 中设置的用户名和密码(不建议使用 root 用户)后确认。 - 映射成功后,共享将会以驱动器的形式显示在我的电脑。
Linux系统
在 Linux 系统中使用共享,需要使用 smb 服务并挂载共享。
安装 smb-client
yum -y install samba-client
列出服务器上的共享列表,命令格式:
smb-client -L [IP地址] -U [用户名]
smb-client -L 10.0.0.110 -U username
挂载共享,命令格式:
mount -o username=[账号],password=[密码] //[服务器IP]/[共享目录] /[挂载点]
mount -o username=frozensky,password=****** //10.0.0.110/Movies /home/frozensky/Movies