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


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

  • medias
  • MEDIAS
  • Medias
这三种访问地址都能够在 Windows 上访问到对应的 Medias 用户共享目录
但是在 unRAID 上进行操作的时候,则必须使用 Medias 来定位该目录
如果使用 MEDIASmedias,则会提示目录不存在
磁盘共享
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
前面我们使用的文件共享,是默认的用户共享类型,此外还存在另外一种磁盘共享。
unRAID 的文件共享,按照类型可以分成以下两类:
  • 用户共享,在多个数据盘之间提供一个统一的名称空间,而底层数据是分布在各个数据盘之上的,可以简单理解为就是一个大文件系统,对用户屏蔽了底层文件存储细节
  • 磁盘共享,直接提供某一个或多个数据盘,与我们传统的文件共享类似,直接将整块数据盘进行共享
这两种共享方式,其实是同一基础文件系统的两个不同视图
也就是出现在用户共享的文件,其实也会出现在对应的磁盘共享中
用户共享
引用自维基百科用户空间文件系统(Filesystem in Userspace,简称 FUSE)是一个面向类 Unix 计算机操作系统的软件接口,它使无特权的用户能够无需编辑内核代码而创建自己的文件系统。目前 Linux 通过内核模块对此进行支持。一些文件系统如 ZFS、glusterfs 和 lustre 使用 FUSE 实现。
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机】用户共享其实就是 unRAID 提供的一种用户空间文件系统(FUSE FileSystem)
将多个独立数据盘上文件映射成一个大文件系统暴露给用户
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
如上图,在用户共享看到的 Media 目录,对应是存储在 Disk1 与 Disk3 上
并且这个两个磁盘上存储的是不同的目录文件
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
而通过共享目录最终看到的,是合并 Disk1 与 Disk3 上 Media 目录的内容
目标目标包含的文件Disk1/Media/Videos/VacationsDisk3/Media/Videos/HolidaysUserShare/Media/Videos/Vacations/Media/Videos/Holidays磁盘共享
unRAID 默认是只启用了用户共享,如果你想开启磁盘共享,需要先进行配置调整
SETTINGS => Global Share Setting
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
如上图提示,默认的配置是 Auto(自动),也即作为用户共享的磁盘,就不能设置磁盘共享
可以条调整为 Yes(是),来特定的数据盘单独进行共享
注意事项
如果你同时启用了用户共享与磁盘共享,绝对不要进行以下操作!
在用户共享与磁盘共享之间进行同文件、目录的复制操作
因为对于 unRAID 底层文件系统而言,并不知道用户共享这种 FUSE 文件系统
可能会导致在文件系统上尝试将文件复制到自身,导致文件被截断为零长度(相当于清空)
容器管理如果你是刚接触 unRAID 容器,强烈建议先看一下司波图大佬的 unRAID docker 视频:
Docker速通教程(全平台可参考)——司波图 UNRAID 陪玩教程 02
unRAID 容器基础我使用的这个版本的 unRAID 默认安装了 19.03.5 的 docker
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
并且做了两个特殊的配置:
数据卷
如上图,为了方便管理,unRAID 创建了一个 loopback 文件系统:
/mnt/user/system/docker/docker.img可以通过系统命令查看到:
系统|路由与NAS 篇八:快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
文章插图
  1. 挂载到 /var/lib/docker 也就是 docker 的主路径,保存镜像文件、运行时文件等
  2. 总大小为 20G,所以在下载大文件时,一般会通过将外部共享目录挂载到容器中作为下载目录,以避免撑爆这个 loop 设备
  3. 使用的时 btrfs,方便后期进行扩容,同时也可以利用上该文件系统的一些特性,比如快照等
通过这种方式,unRAID 将 docker 相关的数据,都存放到这个 docker.img 文件中
所以我们可以通过备份这个 img 文件来实现备份 docker 配置,
在需要还原的时候,直接通过备份的 img 文件替换掉现有的文件来实现还原