跳到主要内容

共享

Unraid 的一个关键功能是共享的管理。共享是在您的 Unraid 服务器上可以通过网络访问的文件夹或驱动器。您可以在 Unraid 服务器上创建任意多的共享。这些共享可以被保护,并且其配置决定了数据如何在您的 array 或命名的 pool 驱动器中写入和分布。

Unraid 提供两种类型的共享,以优化您的数据管理:

用户共享 vs. 磁盘共享

需记住,两种共享类型展示的是同一底层文件系统的不同视图;在 user share 可见的任何文件或文件夹将在其相应的物理驱动器的磁盘共享下也会可见。

当您启动 Docker 或 VM 管理器等服务时,Unraid 会自动创建一个默认用户共享集,旨在支持常见插件、Docker 容器和虚拟机 (VMs)。根据需要,您可以方便地为个人数据创建额外的共享。

备注

要管理共享,只需导航到 WebGUI 中的 Shares 选项卡。在此处,您可以通过 Settings → Global Share Settings 轻松启用或禁用共享。默认情况下,user shares 是启用的,为您的文件组织提供了简单的起点。


用户共享

User shares 提供了在 cachearray 驱动器 跨同名顶级文件夹的聚合视图。共享名称对应于文件夹名称,创建了一个跨多个驱动器的统一网络访问视图。需要注意的是,虽然目录看起来是合并的,但单个文件仍然存储在单个驱动器上。

管理用户共享

您可以从 WebGUI 中的 Shares 选项卡中访问和管理 User shares。此界面允许您:

  • 查看所有现有共享
  • 创建新共享
  • 修改或删除现有共享

在驱动器上手动创建的任何顶层文件夹会自动识别为用户共享并分配默认属性。

文件系统结构

在 Linux 上,User shares 可通过 /mnt/user 访问,结合了来自 arraypools 的文件。此逻辑视图覆盖了物理文件系统,这意味着文件也可以通过 Disk Shares 在驱动器级别查看。

警告

已弃用的 /mnt/user0 挂载点(不包括 pool 文件)可能在未来的 Unraid 版本中删除。

存储分配

存储文件的物理驱动器由共享设置决定,例如**Allocation MethodIncluded/Excluded Disks** 和 Split Level。对这些设置的更改只会影响新文件;现有文件将保持不变,除非手动移动。

Critical

请勿混用用户共享和磁盘共享

切勿直接在 user sharedisk share 之间复制或移动文件(例如,在 /mnt/user/share/mnt/disk1/share 之间),特别是当文件夹名称相同时。这可能导致文件损坏或永久数据丢失。

有关安全文件管理实践和更多细节,请参见下方的磁盘共享指南

添加共享

在创建共享之前,请考虑如何使用它、您的性能需求、安全性以及文件应存储在哪里。

要添加共享:

  1. 开始过程: 转到 Shares 标签并点击 添加共享

  2. 选择共享名称: 为您的共享选择一个独特的名称,例如 媒体文档

Share 名称

尽管网络共享 (SMB) 不区分大小写(例如,MEDIAmedia 同样),但 Linux 文件系统会。避免使用仅大小写不同的名称来防止问题。

  1. 可选设置:

    • 备注: 写下简短描述以标识您的共享(例如,“家庭照片”)。
    • Minimum Free Space: 决定最小免费空间量(例如,50GB 用于大文件)。 (有关更多详细信息,请参见Minimum free space
  2. 选择存储位置:

    • 主存储: 选择共享的初始存储位置(例如,cachearray 或特定 pool)。
    • 次级存储: 设置一个溢出位置,可以在主存储已满时使用,也可以作为 Mover 运行后的共享最终目的地。

    (有关更多详细信息,请参见主存储和次级存储

  3. 设置数据规则:

  4. 管理驱动器:

    • 包含的磁盘: 选择要包含的特定驱动器(例如,disk1,disk2)。
    • 排除的磁盘: 指定任何您要排除的驱动器(比如老旧驱动器)。

    (有关更多详细信息,请参见包括或排除的磁盘

提示

您可以配置包含的磁盘或排除的磁盘,但不能同时配置两者。

  1. Mover 设置(如果需要)

    • Mover 动作: 决定数据移动的方向(要么 主 → 次,要么 次 → 主)。

    (有关更多详细信息,请参见在缓存和阵列之间移动文件

  2. 完成过程: 点击 添加共享 完成您的新共享的设置。

important

默认情况下,新共享将不会通过网络共享。您必须在创建共享后配置网络访问

删除共享

important

为了防止任何潜在的数据丢失,包含数据的共享无法删除。因此,您应该先删除或重新定位共享内的所有内容。始终仔细检查以确认共享为空,然后再继续删除以确保安全。

包含数据的共享

对于包含数据的共享:

  1. 首先清空共享:
    • 使用内置的 文件管理器 可通过系统快捷方式(工具 → 文件管理器)访问,或点击右上角的 文件管理器 图标。
    • Shares 中找到您的共享并点击 浏览 图标。
    • 使用文件管理器删除或移动所有文件。
使用命令行(高级)
  1. 打开终端: 使用 Web Terminal工具 → 终端) 或通过 SSH 连接。

  2. 删除文件: 运行此命令,将 [share_name] 替换为您的共享名称:

rm -rf /mnt/user/[share_name]/*
  1. 删除共享: 按上述步骤删除空共享。
注意
  • rm -rf 命令将永久删除文件。使用前请仔细检查。
  • 确保没有 Docker 或 VM 服务正在使用共享后再删除它。
Alternative 方法

如果您可以通过网络访问共享:

  • 使用 Windows 资源管理器 (SMB) 或 macOS Finder (AFP/SMB) 连接到共享。
  • 手动删除文件,然后通过 WebGUI 删除共享。
  1. 删除共享:
    • 返回到 Shares 并点击现在空的共享。
    • 选中 删除 框并点击 删除
    • 确认并点击 完成

删除一个空共享

  1. 转到Shares 选项卡。
  2. 点击要删除的共享。
  3. 勾选 Delete 旁边的框。按钮将变为 Delete
  4. 点击 删除
  5. 确认删除并点击 完成

共享设置

最小空闲空间

Minimum Free Space 设置与 allocation methodsplit level 结合使用,以确定新文件存储位置。此设置指定驱动器上必须保留的免费空间量,以使其有资格进行新文件写入。如果驱动器的免费空间低于此阈值,Unraid 将停止在该驱动器上放置新数据,前提是 split level 允许分裂到另一个磁盘。

工作原理 - 点击展开/折叠

传输文件(例如 file.eg)时,Unraid 会根据可用设置选择一个磁盘,但无法预测文件的最终大小。如果所选磁盘在传输期间空间不足,操作将以“磁盘已满”错误失败。为防止这种情况,请将 Minimum Free Space 设置为比最大文件大的值。这确保了 Unraid 避免不能容纳整个文件的磁盘。

建议

将此值设置为最大文件的两倍。例如:

  • 如果您最大的文件是 8GB,设置最小空闲空间为 16GB。

此缓冲区可解释文件大小差异并有助于防止传输失败。

配置

  • 以 KB、MB、GB 或 TB 为单位输入值(例如,50GB)。
  • 新的 user shares 默认值为磁盘总容量的 10%。
警告

在使用_填满_ allocation method时,总是配置最小可用空间。如果您不设置它,您可能会在写入操作期间遇到“磁盘满”错误。

注意

There is a separate Minimum Free Space setting for cache pools. You can access this by going to the Main tab and clicking on a pool. Make sure to set this value higher than your largest file to avoid overfilling, especially for shares configured with Yes or Prefer cache modes.

限制

  • Unraid 优先考虑 split level 规则而非免费空间设置。如果不允许分裂,文件可能仍会填满磁盘,而不考虑免费空间阈值。
  • 更新现有文件(例如,扩展备份文件)不会触发重新分配,随着时间的推移可能导致“磁盘已满”错误。

有关更详细的指导,请使用 WebGUI 中配置共享时的 帮助 图标。


主存储和次级存储

Unraid 的存储管理让您可以控制新文件的写入位置以及数据如何在 poolscachearray 之间移动。Unraid 6.12+ 和早期版本的选项和术语不同。

主存储”设置确定新的共享文件的初始写入位置——这可以是**%%cache|缓存%%%%array|阵列%%或任何命名的%%pool|缓存池%%。 如果主存储低于最小空闲空间**阈值,“次级存储”设置指定新的文件和文件夹的备用位置。

Mover 功能根据您的计划自动在主存储和次级存储之间转移文件,确保最佳性能和存储利用。

主存储到次级存储

备注

如果选择%%array|阵列%%作为主存储或次级存储,还必须配置其**%%allocation method|分配方法%%%%split level|分割级别%%以及任何%%included or excluded disks|包括或排除的磁盘%%**。 这些设置不适用于%%pools|缓存池%%。

主存储下拉:

  • 每个共享都需要此设置。
  • 您必须选择主存储设备或 pool(默认是 Cache)。
  • 您可以选择任何命名的 poolarray

次级存储下拉:

  • 无: 未为共享设置次级存储(可选)。
  • 如果主存储是 pool,可用的选项有 阵列另一个池
  • 如果主要存储是数组,则和任何符合条件的pools可用。

在缓存和数组之间移动文件

Unraid 提供了一种简单的方法来管理 cache poolsarray 之间的文件放置,使您能够优化性能并有效管理数据。关键是根据您的首选数据流设置共享设置,并让 Mover 根据其日程表自动处理文件传输。

Scheduling the Mover

您可以通过进入 Settings → Scheduler → Mover Settings 配置 Mover 日程表。在非高峰时段自动运行,有助于在 cachearray 之间移动文件,而无需手动操作。

缓存到数组

使用场景: 将文件从高速 cache 移到 array 以长期存储。

  1. 在共享设置中,将 主要存储 设置为 缓存次要存储 设置为 数组
  2. Mover 操作 设置为 缓存 -> 数组
  3. Mover 根据您的计划自动运行以传输文件。可以手动运行 Mover,但没有必要。

数组到缓存

使用场景: 通过将文件移动到 %%cache|缓存%% 提升 Docker 容器和虚拟机的性能。

  1. 在共享设置中,将 主要存储 设置为 缓存次要存储 设置为 数组
  2. Mover 操作 设置为 数组 -> 缓存
  3. Mover 将依据您的日程自动运行以移动文件,并可选择手动运行。
Enabling 启用 Mover 日志记录以进行故障排查

如果您遇到文件移动问题,可以通过 Settings → Scheduler → Mover Settings 页面启用 Mover 日志记录。这会记录每个移动的文件,并可在 Tools → System Log 中查看。

Critical 双向关键步骤
  • 确保您的 parity 是有效的,然后将文件从 array 移动到 cache
  • 如果处理大型数据集,请通过日志监控 Mover 活动。
  • 如果出现文件"卡住"的情况,请考虑暂时禁用 Docker 和虚拟机管理器,然后通过 主菜单 → 数组操作 → 移动 手动运行 Mover

分配方法

当您创建新用户共享或在其中添加任何文件或文件夹时,系统需要决定将数据存储在哪里。通常,它会选择可用空间最多的数据磁盘。不过,您可以调整某些设置来改变这种决策。

您可以选择三种简单的选项来选择系统为您的用户共享分配存储的方式:

如何运作

**高水位(High-water)** 方法通过基于最大驱动器容量的一半的“切换点”逐步填充磁盘。它可以平衡磁盘使用,同时保持相关文件的集中并最小化磁驱旋转。

<h4>例如,8TB、3TB 和 2TB 驱动器</h4>

1. **第一轮:** 填充 8TB 驱动器直到剩余 4TB(8TB 的一半)。
2. **第二轮:** 填充 8TB 和 3TB 驱动器直到剩余 2TB。
3. **第三轮:** 填充所有驱动器直到剩余 1TB。

<h4>最佳适用:</h4>

- 媒体服务器(例如,Plex)
- 将文件保持在较少的磁盘上以提高转速效率的场景
- 混合驱动器大小的阵列

:::note

高水位是默认方法,对大多数用户效果良好。与“最多空闲”相比,它可以减少磁盘磨损。

:::


分级水平

Unraid 中的 Split Level 设置有助于管理文件和文件夹在多个磁盘中的组织方式。它决定了文件夹结构在不同磁盘上可以深入的程度,同时保持某些文件在一起。split level 从 1 开始编号,其中顶层(主共享)视为第 1 级。

行为

Unraid 会在所选磁盘上创建所需的文件夹,无论其文件夹深度。新文件和文件夹根据 %%allocation method|allocation-method%% 和可用空间放置,即使它们的父目录尚未存在于该磁盘上。

<h4>使用场景</h4>

适用于文件夹结构不重要的一般数据共享,例如下载或混合媒体库。允许最大程度的文件放置和磁盘利用率的灵活性。
important

Minimum Free SpaceSplit LevelAllocation Method 之间存在冲突,则 Split Level 设置优先。这可能导致“空间不足”错误,即使其他驱动器有可用空间。


包含或排除的磁盘

这些设置帮助您管理哪些驱动器可以保存您的共享文件。可以包含特定磁盘或排除某些磁盘 - 只是不要同时进行!如果您没有选择特定磁盘,Settings → Global Share Settings 中允许的所有驱动器都将被使用。

Unraid 首先检查任何包含的磁盘,然后查看排除的磁盘以确定存储文件的位置。之后,它利用 split levelallocation method 选择合适的磁盘。

磁盘选择逻辑

important

included 和 excluded disks 的设置仅影响可以保存新文件的位置。即使匹配您的共享名的文件夹上的任何现有文件仍然可以从不同磁盘读取。

行为

Unraid 仅在为共享决定新文件存储位置时考虑列出的磁盘。所有其他磁盘都被忽略用于新写入,但其他磁盘上已经存在的文件仍然可被读取。

<h4>使用场景</h4>

如果您希望将某个共享限制在某些磁盘上,请使用此设置。例如,重要文件保存在更新的或更大容量的驱动器上,或者隔离媒体库到特定磁盘以提高性能或组织。

默认共享

当您使用 Docker虚拟机(VMs) 的时候,Unraid 会自动创建一些默认共享。

important

这些共享仅在启动其相应的服务(Docker 或 VM 管理器)后创建。如果未见这些共享,请确保 Docker 和/或 VM 管理器已启用并运行。

如果不想使用这些共享,可以删除它们,但我们通常建议保留它们以方便。这些共享有助于保持组织性,并在遇到问题时更易于获取支持。

以下是每个默认共享的快速概述:

  • appdata:这是您的 Docker 容器的所有工作文件的存储位置。每个 Docker 容器通常在此处都有自己的文件夹。
  • system:此共享包含您 Docker 应用程序的基本文件和您的虚拟机的 XML 模板。
  • domains:此共享专门用于存储您的虚拟机使用的虚拟磁盘映像 (vdisks)。
  • isos:这是用于存储您希望与虚拟机一起使用的 ISO 映像。
important

最好不要更改大多数这些默认共享的权限,因为这样可能导致 Docker 容器和 VM 的工作问题。建议更改权限的唯一共享是 isos 共享,因为该共享可以通过网络访问以添加用于虚拟机的新 ISO 文件。


磁盘共享

磁盘共享只是您的 Unraid 系统中可以通过网络访问的单个驱动器或 pools 驱动器。默认情况下,这些共享是关闭的,但您可以通过 Settings → Global Share Settings 部分轻松启用它们。

为了确保安全,请务必适当地设置这些共享的用户访问权限。如果您的网络有多个用户访问,这一点尤为重要。

要启用磁盘共享:

  1. 导航到 设置
  2. 点击 全局共享设置
  3. 打开磁盘共享,使它们在您的网络中可见。

一旦启用,您将在 Unraid GUI 中 Shares 标签下的 Disk Shares 部分注意到磁盘共享。您的 array 中的每个驱动器都可以这样访问:

  • 个别驱动器: 这些以 /mnt/diskX 形式出现,其中 X 是磁盘编号(例如,disk1disk2 等)。
  • 成组驱动器: 如果您有多个驱动器结合在一起,它们将显示为 /mnt/pool-name。最常见的 pools 叫做 cache,但您可以根据自己的喜好命名您的 pools
important

存储 Unraid 设置的 Unraid 闪存设备不被视为磁盘共享。如果您希望它在网络上可访问,可以将其设置为名为 'flash' 的共享。此设备在 Linux 中挂载于 /boot

出于安全原因,最好将您的共享保持在_私有_模式下,仅授予可信用户访问权限。

磁盘共享指南

Important 提醒

User sharesdisk shares 在界面中可能看起来不同,但可以指向磁盘上的相同文件。Linux 命令如 cprsync 无法总是区分,这可能意外导致文件覆盖或删除。

安全复制提示

  1. 坚持一种类型的共享:

    • 仅在 %%user shares|用户共享%% 或磁盘共享之间复制文件,而不要同时在两者之间。
    • 示例: 将文件从一个用户共享复制到另一个用户共享: cp /mnt/user/share1/file /mnt/user/share2/file
  2. 安全使用外接驱动器:

    • 使用 Unassigned Devices plugin 连接外接驱动器以防止问题。
    • /mnt/disks/ 复制文件,而不是从主要的 %%array|阵列%% 或 %%cache|缓存%% 路径。
  3. **核对副本:**在本地移动文件时,您可以使用 rsync -c 检查文件是否正确复制。

  4. 不混用共享类型: 避免使用同时混合 %%user shares|用户共享%% 和磁盘共享的路径,例如在同一命令中用 /mnt/user/share//mnt/disk1/share/


从网络共享传输文件

有几种工具可用于将文件从 Windows 或 Linux 共享复制到您的 Unraid 服务器。为了保持简单和可靠,应首先使用内置的 Unraid 文件管理工具,然后探索第三方选项。

使用 Midnight Commander (内置)

Unraid 包含 Midnight Commander (mc),一个基于文本的双窗格文件管理器。您可以通过 web terminal 访问它。

  1. 打开网页终端: 您可以在 Unraid WebGUI 的右上角菜单中找到此选项。

  2. 启动 Midnight Commander:

    mc

    此界面提供在本地共享和挂载的网络路径之间拖放导航。

  3. 挂载网络共享 (如果还未挂载):

    mkdir /work
    mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8
    • 用适当的值替换 workstationshareyouruser
    • iocharset=utf8 选项有助于保持国际文件名。
  4. 使用 MC 窗格/work(网络共享)和任何 /mnt/user//mnt/diskX 共享之间传输文件。

  5. 事后清理:

    umount /work
    rmdir /work

Midnight Commander 完全在内置系统中运行,无需额外安装。适合大多数传输需求,包括涉及 Unicode 文件名的情况,并在源和目标支持时保留文件属性。

使用 Krusader

如果您更喜欢图形用户界面,您可以使用 Docker 容器如 Krusader 作为第三方解决方案。

  1. 安装 Krusader:
    • 导航到 应用 选项卡(社区应用程序)。
    • 搜索并安装 Krusader Docker 容器。
  2. 启动 Krusader: 启动容器,并从 Docker 选项卡访问其 WebUI。
  3. 在 Krusader 中连接到远程共享,并使用拖放或复制粘贴在网络共享和您的 Unraid %%array|阵列%% 之间传输文件。
信息

其他流行的文件管理器容器包括 Double CommanderCloudCommander,通过社区应用程序提供。

命令行方法

对于高级用户或使用自动化的用户,您还可以使用命令行传输方法。

点击展开获取命令行说明
  1. 打开终端(Web Terminal 或 SSHroot 身份)。

  2. 创建并挂载网络共享:

    mkdir /work
    mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8
  3. 复制文件:

    • 您可以使用 cp

      cp -r /work/* /mnt/disk1
    • 或者,使用 rsync 以获取详细进度:

      rsync -av --progress /work/ /mnt/disk1/
  4. 卸载并删除临时目录:

    umount /work
    rmdir /work
注意

传输带有特殊或国际字符的文件时,始终使用 iocharset=utf8 选项挂载共享。若未这样做,可能导致其他平台上的文件名错误或无法读取。

此外,如果您通过终端作为 root 复制文件,文件可能会有严格的权限。若发生此情况,请使用 WebGUI 中的 New Permissions 工具,或如果处理涉及 Docker 的共享,请使用 Docker Safe New Perms 来重置权限,确保所有用户都有网络访问权限。