Unraid 应用程序Apps

2020-02-23 11:32:35    Unraid官网-tmtony翻译    9559

应用程序

本节讨论在Unraid服务器上运行应用程序或扩展基本功能。Unraid的一大优势是能够使其轻松地充当基本NAS系统以外的功能。 

总览

提供了许多机制,通过这些机制可以扩展Unraid服务器的功能。

  • 外挂Plugins 插件程式
  • Docker容器
  • 虚拟机(VMS)

重要说明:  Limetech不提供可以使用这些机制实现的应用程序或功能。最终用户要自己满足任何特定应用程序的适用性。

社区应用程序(Community Applications (CA))

尽管它不是标准Unraid发行版的一部分,但是无论何时通过插件或作为Docker容器实现应用程序,社区应用程序(CA)插件都已成为在Unraid服务器上安装应用程序的推荐方式。这不会阻止用户安装不是由CA处理的应用程序,但是使用CA可以提供有用的管理级别,这对于新的Unraid用户特别有用。

查找应用

注意:CA仅提供一种安装可作为插件或Docker容器使用的应用程序的方式-它不提供对安装VM的任何支持。

安装应用程序

删除应用

显示已安装的应用程序

重新安装应用程序

如果您需要重新安装任何插件或Docker容器,则可以通过社区应用程序轻松实现。

想要重新安装应用程序的常见原因是docker.img文件由于某种原因被损坏的情况。在这种情况下,可以在短短几分钟内重新安装Docker容器并保留其所有设置。

支持应用

每个插件或泊坞窗容器都有一个专门用于证明支持并回答最终用户问题的论坛线程是正常的。对于负责每种类型的应用程序的开发人员来说,创建他们将监视的论坛线程是正常的。有很多简单的方法可以从Unraid GUI中获得适当的支持线程:

  • 应用标签
  • 仪表板选项卡
  • 插件标签
  • Docker选项卡

虚拟机所具有的目标支持级别不同,因为它们几乎可以在任何操作系统上运行,然后在该操作系统内运行该操作系统支持的任何应用程序。话虽如此,论坛中还是有几个区域专用于询问有关VM的问题,您很可能会找到适用于大多数常见OS的线程。

外挂Plugins 插件程式

此机制允许将代码加载到核心Unraid OS中并在该级别上运行。这是在Unraid v6之前扩展Unraid功能的唯一方法。

重要说明:  Limetech不提供可以使用这些机制实现的应用程序或功能。最终用户要自己满足任何特定应用程序的适用性。

优点

  • 插件开发人员可以不受限制地访问Unraid系统的任何部分。
  • 该插件可以将新的代码模块加载到核心Unraid操作系统中
  • 该插件可以添加/修改Unraid GUI
  • 该插件可以添加许多功能,这些功能被认为对于允许Unraid充当NAS至关重要。
  • 插件通常以开源形式发布,因此最终用户可以检查它们是否尝试进行任何恶意操作。但是,插件机制不会强制执行此操作。

缺点

  • 插件会使Unraid系统不稳定
    • 插件可以加载代码模块,这些代码模块将覆盖作为标准Unraid版本的一部分提供的版本。任何新的Unraid版本都可以包含许多升级/添加的模块。这意味着,重要的是,如果插件安装了新的代码模块,则插件作者必须使插件保持最新状态并了解正在安装该插件的Unraid版本。
    • Unraid能够以安全模式启动系统,该系统可以抑制插件加载,以帮助诊断由插件引起的问题。如果安装新的Unraid版本后系统变得不稳定,这应该是尝试的第一件事。
    • 如果可以在插件和基于Docker容器的解决方案之间进行选择以向Unraid系统添加功能,则Docker容器方法始终是推荐的使用方法,因为它不会带来导致不稳定的相同风险。
  • 插件将拥有对Unraid系统上所有数据的完全访问权限
  • 如果开发人员未维护插件或Unraid用户未使插件保持最新状态,则在安装新的Unraid版本时,该插件可能会以意想不到的方式使该版本行为不当。

在加载Linux完成之后,在启动GUI和/或阵列之前,将插件作为Unraid引导过程的一部分进行安装。

当前的建议是,仅应将插件用于无法使用Docker容器添加的功能。这有助于维护整个Unraid版本的系统稳定性。因此,插件应添加系统级服务,而不是最终用户应用程序。

Thu Unraid GUI的“插件”选项卡可以显示已安装的插件,并提供将已安装的插件升级到新版本的功能。它还提供了从此选项卡安装插件的功能,但是建议如果社区应用程序知道该插件,则应改为从“  应用程序”选项卡安装插件

作为改进核心的一部分,有时插件的功能会合并到新的Unraid版本中,从而使该插件成为多余的(甚至可能对系统稳定性有害)。如果您正在使用社区应用程序来安装插件(推荐),则CA仅会提供安装与该发行版兼容的插件。但是,它不会删除已安装但已知与当前版本兼容的插件。

Docker容器

Unraid包括对称为Docker的技术的支持,以允许基于Linux的应用程序。

Docker提供了一种运行Linux应用程序的机制,该机制允许将它们与主机系统(Unraid)以及彼此隔离。这意味着Docker应用程序独立于托管它们的Unraid发行版。用户还可以配置任何特定Docker容器可以访问主机系统上的哪些资源。

Unraid实施的关键点是:

  • 组成Docker容器的文件存储在虚拟磁盘映像中(即Unraid级别的单个文件)。
    • 一般用户不需要了解这种详细信息的方式,但可以帮助您进行故障排除和了解日志消息。
    • 虚拟磁盘映像的默认名称是 docker.img用户可以超越它,但是很少这样做,因为这样做没有任何好处。
    • 内部 docker.img文件使用 BTRFS文件系统格式化,并在Unraid级别挂载为 / dev / loop2
    • docker.img文件将在内部包含与每个已安装 Docker容器关联的二进制文件。
  • Unraid提供了一种基于GUI的方法,可轻松安装和配置Docker容器。这充当 docker run命令行工具的前端
    • 安装Docker容器后,用户提供的参数(然后用于为容器建立docker run命令)将以XML文件形式存储在plash驱动器中,因此无需重新安装容器就很容易从头开始重新创建它的设置。
    • 不受限制的用户可以为常用应用程序提供预先填充的模板,以最小化(甚至完全消除)普通用户为使任何特定容器运行而必须进行的配置数量。
  • docker.img文件的默认位置 系统共享中。 系统份额设置与 使用缓存=身高设定为具有 docker.img上的缓存文件((F用户有一个)最大化泊坞窗容器的性能有所帮助。
  • Unraid  没有docker  compose命令行实用程序的内置支持

虚拟机(Unraid Vms)

本节仍将继续进行,并且需要添加更多详细信息

虚拟机(VM)支持使您可以在来袭服务器上以访客身份运行其他操作系统。

优点:

  • 您可以使用Unraid本身不可用的应用程序。
  • 您可以尝试其他操作系统,而无需单独的硬件。这完全可以作为学习练习来完成,或者因为您需要访问来宾OS的功能。
  • 可以在同一硬件上并行运行多个来宾OS。

缺点:

  • 您需要知道如何使用 客户操作系统。
  • 除了Unraid本身所需的资源之外,VM还需要专用资源来运行。
  • VM比docker容器的资源占用要大得多,因为它们需要更多的专用资源来运行。

技术栈

Unraid 6具有许多关键技术,可简化在Unraid主机上运行的本地化VM的创建和管理:

  • 虚拟机
    • KVM是管理程序,负责监视和管理分配给虚拟机的资源。
    KVM是Linux内核中的一个组件,可使其充当管理程序。简而言之,虚拟机管理程序负责监视和管理分配给虚拟机的资源。虚拟机是在物理计算机上运行的模拟计算机。是否曾经想在一台计算机上同时运行三个操作系统?管理程序使这成为可能。其他管理程序的示例包括Xen,VMWare(ESX / ESXi),VirtualBox和Microsoft Hyper-V
    • 与其他虚拟机管理程序不同,KVM是唯一直接内置在Linux内核中并受Linux内核支持的软件。
    Linux之前将加载所有其他类型1虚拟机管理程序,然后Linux在该虚拟机管理程序的特权状态下运行。通过利用作为Linux内核本身一部分的管理程序,它意味着更好的支持,更少的复杂性以及更大的优化改进空间。
  • 量化宽松
    • QEMU是内核中的组件,用于管理/监视分配给虚拟机的资源。
    • QEMU负责仿真构成虚拟机的硬件组件,例如主板,CPU和各种控制器。
    • 没有QEMU,KVM就无法工作,因此您经常会看到KVM被称为KVM / QEMU。
  • 人机界面
    • 当虚拟机技术开始被广泛采用时,芯片组制造商并没有直接为其提供直接支持。这样,由于软件仿真,与虚拟机相关的开销很大。后来,英特尔和AMD直接在其硬件(英特尔VT-x和AMD-v)中内置了对虚拟化的支持,从而减少了仿真,监视和安全性的开销。这些技术允许创建硬件辅助的虚拟机(称为HVM)。
    • 尽管Xen提供了一种无需VT-x即可消除与传统仿真相关的开销的方法,但这种半虚拟化方法仅适用于基于Linux的来宾,因此,无论如何,Docker容器是一个更好的解决方案。因此,HVM最适合于需要不仅仅是基本Linux应用程序的虚拟机。
    • 需要HVM才能在Unraid上运行VM。大多数现代系统都将支持HVM。通过单击Unraid GUI右上方 信息按钮,可以查看Unraid服务器是否支持HVM 如果显示为已禁用,则您可能需要检查主板的BIOS,以查看是否需要在此处启用它。
  • 音频输入输出
    • VFIO V irtual  ˚F IO)允许我们的物理设备,直接分配诸如图形卡,到虚拟机,反过来将直接提供的设备驱动程序的支持。
    我们还可以防止设备访问该VM外部的内存空间。这意味着,如果设备或其驱动程序出现问题,则此类事件的影响将仅限于虚拟机而不是主机。
    • VFIO防止分配的设备访问为其分配了VM的内存中的空间。这限制了与设备驱动程序和内存空间有关的问题的影响,从而使Unraid OS避免遭受不必要的风险。
    • VFIO的使用需要具有 IOMMU功能的硬件(您的CPU必须具有Intel VT-d或AMD-Vi支持)[1]
    • IOMMU必须能够通过硬件传递到Unraid上的VM。通过单击Unraid GUI右上角 信息按钮,可以查看Unraid服务器是否支持IOMMU 如果显示为已禁用,则您可能需要检查主板的BIOS,以查看是否需要在此处启用它。
      • IOMMU支持需要同时支持CPU,主板和BIOS。
      • 在VM上下文中,IOMMU通常称为 硬件直通
      • IOMMU允许VM直接访问硬件,因此倾向于在使用该硬件时提供更好的性能,并且还可能允许VM在主机OS中无法访问硬件的功能。
  • VirtIO
    • VirtIO是用于网络和磁盘设备驱动程序的虚拟化标准,只有来宾的设备驱动程序“知道”它在虚拟环境中运行,并与虚拟机管理程序配合使用。
    • 这使来宾能够获得高性能的网络和磁盘操作,并提供了半虚拟化的大多数性能优势[2]
    • 在来宾操作系统中使用VirtIO要求来宾操作系统安装virtIO驱动程序,以便为指定的设备使用VM定义中的VirtIO。
    • 如果来宾没有BirtIO驱动程序,则必须指定VM以模拟来宾OS  确实具有驱动程序的设备。这会降低效率,但会允许在VM中运行不支持VirtIO的OS。示例可能是针对磁盘驱动器模拟SCSI或SATA,对于网络适配器模拟e1000。
  • 虚拟机
    • VirtFS也称为9p文件系统,使我们能够轻松地从虚拟化主机到来宾进行文件系统访问。
    • VirtFS等同于KVM的Docker Volumes,但需要从guest虚拟机内部发出安装命令[3]VirtFS可与基于Linux的虚拟机
  • Libvirt
    • Libvirt是软件的集合,它提供了一种方便的方法来管理虚拟机和其他虚拟化功能,例如存储和网络接口管理。
    • 这些软件包括一个API库,一个守护程序(libvirtd)和一个命令行实用程序(virsh)[4]
  • VNC
    • VNC是一种允许VM的屏幕/鼠标/键盘在另一设备的网络上可见的方法。
    • VNC客户端可用于大多数操作系统
    • VNC可用于查看 仿真的 GPU。
    • VNC并 没有支持声音仿真。
    • 通过将适当的软件直接安装到来宾OS中,可以获得更好的仿真GPU的性能。此类软件通常还提供声音仿真。

值得了解Unraid正在使用哪些技术进行虚拟化,因为有关这些技术的文档将不是Unraid特有的。同样,与这些技术组件有关的许多问题在使用特定技术组件的所有Linux系统中也很常见,因此通常可以在非raid论坛之外的地方找到答案。

VM支持的Unraid实施的具体细节包括:

  • KVM:Unraid品牌使用Linux的KVM ķ ernel  V irtual  中号 achine)的设施,以使其他操作系统为客人Unraid系统上运行。
    • 量化宽松
  • Unraid提供了用于管理VM的GUI支持。
  • Libvirt:libvirt所需的XML定义存储为磁盘映像文件(尽管用户可以更改此名称,通常称为 libvirt.img
  • Unraid设置了一些标准份额,以为用户提供一定程度的一致性:
    • domains:这是用于存储与虚拟机关联的虚拟机虚拟磁盘映像的默认位置
    • isos:这是用于存储供VM使用的iso映像的默认位置。
    • system:这是用于存储libvirt.img文件(包含VM的XML定义)的默认位置。
如果在创建单个VM时需要,用户可以改写这些设置中的任何一个,但是对于大多数用户而言,默认设置是一个不错的选择。所有这些共享的默认“  使用缓存”设置为 Preferred与在阵列驱动器上存储VM文件(尤其是磁盘映像)相比,在缓存上提供VM性能要好得多。
  • VNC
    • Unraid的GUI内置了基于NoVNC Web的客户端,无需将特殊软件安装到来宾OS即可用于访问所有VM。
    • 备用VNC客户端可用于访问Unraid托管的VM。当虚拟机运行时,用于此类客户端的端口将显示在“虚拟机”选项卡上的“非raid GUI”中。在NoVNC客户端由于某些原因无法正常工作的情况下,可以使用这种替代客户端。