跳到主要内容

共享

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

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

用户共享与磁盘共享

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

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

备注

To manage your shares, simply navigate to the Shares tab in the WebGUI. Here, you can easily enable or disable shares through Settings → Global Share Settings. By default, user shares are enabled, providing a straightforward starting point for your file organization.


用户共享

User shares provide an aggregated view of top-level folders with the same name across cache and array drives. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive.

管理用户共享

您可以在WebGUI的“共享”标签中访问和管理用户共享。此界面允许您:

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

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

文件系统结构

At the Linux level, User shares are accessible under /mnt/user, which combines files from both the array and pools. This logical view overlays the physical file system, meaning files are also visible through Disk Shares at the drive level.

警告

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

存储分配

The physical drive that stores a file is determined by share settings such as Allocation Method, Included/Excluded Disks, and Split Level. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually.

:::caution[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 会根据可用设置选择磁盘,但无法预测文件的最终大小。如果所选磁盘在传输过程中空间不足,操作将失败并出现 "磁盘已满" 错误。为了防止这种情况,请将 最小空闲空间 设置为大于最大文件的值。这确保 Unraid 避免选择无法容纳整个文件的磁盘。

建议

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

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

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

配置

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

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

注意

对于 cache pools,有一个单独的最小空闲空间设置。您可以通过进入主界面选项卡并点击pool来访问它。确保将此值设置为大于您的最大文件,以避免过度填充,特别是对于配置为首选缓存模式的共享。

限制

  • 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

分配方法

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

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

原理

高水位 方法通过基于最大驱动器容量的一半的“切换点”逐步填充磁盘。这样可以平衡磁盘使用,同时保持相关文件在一起,并最大限度地减少驱动器的启动频率。

示例:8TB,3TB 和 2TB 驱动器

  1. 第一步: 将 8TB 驱动器填满,直到剩余 4TB 空间(8TB 的一半)。
  2. 第二步: 填满 8TB/3TB 驱动器,直到剩余 2TB 空间。
  3. 第三步: 填满所有驱动器,直到剩余 1TB 空间。

最佳用途:

  • 媒体服务器(例如 Plex)
  • 情境,需要在更少的磁盘上保持文件以提高停转效率
  • 大小混合的数组
备注

高水位是默认方法,适合大多数用户。它减少了与“最空闲”相比的驱动器震荡。


分级水平

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

行为

Unraid 会在选定磁盘上创建所需的文件夹,而不考虑文件夹的深度。新文件和文件夹基于 allocation method 和可用空间进行放置,即使它们的父目录尚未存在于该磁盘上。

用例

适用于目录结构不关键的一般数据共享,如下载或混合媒体库。允许文件放置和磁盘利用的最大灵活性。

important

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


包含或排除的磁盘

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

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

磁盘选择逻辑

important

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

行为

Unraid 在决定为共享放置新文件时,只会考虑列出的磁盘。除列出的磁盘外,其他所有磁盘均被忽略,但已存在其他磁盘上的文件仍可读取。

用例

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


默认共享

当您使用 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

The Unraid flash device, which stores your Unraid settings, is not treated as a disk share. If you want it to be accessible over the network, you can set it up as a share named 'flash'. This device is mounted at /boot in Linux.

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

磁盘共享指南

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选项挂载共享。否则可能导致其他平台上的文件名不正确或文件不可读。

Also, if you copy files as root via terminal, they may have restrictive permissions. If this occurs, use the New Permissions tool from the Tools menu in the WebGUI or the Docker Safe New Perms if you're dealing with Docker-involved shares to reset permissions, ensuring all users have network access.