本篇涉及的资源下载:http://pan.baidu.com/s/1dFvjTkP 密码:066u

FreeNAS:虚拟机(Jails)入门篇

Jails是FreeBSD提供的轻量级级虚拟机,FreeNAS能实现丰富的功能全仰仗强大的Jails虚拟机,最近FreeNAS又引入phpVitrualBox,更是让这套NAS系统如虎添翼。

这篇教程已经向大家介绍了如何为FreeNAS安装插件,其中提到了一些插件安装的原理。这里我们展开讨论,事实上,在FreeNAS安装插件是一系列Jails管理的自动化操作,其实质等同于手动创建Jail虚拟机,并将相关软件程序安装在Jail虚拟机中,随后配置软件的WebGUI界面并以此管理和使用软件。
与我们通常使用的VitrualBox或vmware不同,Jails的运行依赖“Template”模板,FreeNAS 9.2.x 及以前的版本系统中预置了各种版本的操作系统,有ubuntu 10.04/12.04、centos5、Debian7等等,创建jail虚拟机时选择需要系统模板,即可创建相应系统的虚拟机,创建虚拟机的过程比vbox和vm简单很多,但由于jails是操作系统级别的轻量级虚拟机,属于半虚拟化,功能方面自然比不过VitrualBox这种全虚拟化的程序了。最明显的表现是在标准的Ubuntu系统上可以正常运行的软件,拿到Jail ubuntu中可能就无法运行。
但从FreeNAS 9.3版本开始,系统不再提供其他系统的模板,创建Jail时系统会默认采用FreeNAS-PluginJail-9.3模板,插件安装也使用该模板创建Jail。
FreeNAS 9.3只预置了一个VirtualBox-4.3.12模板,它是一个基于FreeBSD系统打包且预装VitrualBox+phpGUI的Jail模板。不再提供其他操作系统模板的并不是因为不再支持其他操作系统,而是将虚拟机管理的任务交给更性能更好功能更强大的VitrualBox。也就是说,只需要创建一个VirtualBox Jail虚拟机,需要什么系统,在VirtualBox里面安装就好了,即做到了统一管理,又提高了虚拟化的能力,何乐不为。下图所示为FreeNAS 9.3系统预置的Jaisl模板。

配置Jails

创建Jail虚拟机之前,需要先对Jails做一些配置,主要是为Jails指定一个数据集,用于存储系统模板、虚拟机以及相关配置文件。在WebGUI中点选“Storage”存储菜单,创建一个名为 jails 的数据集(名称可以随意设置)。

数据集创建完成,点选“Jails”菜单,并点选“Configuration”配置子菜单,完善其中的的配置项:

  1. Jail Root:选择Jail虚拟机的存储位置,用“Browse”浏览按钮选择上面新建的数据集;
  2. IPv4 DHCP:设置新建的Jail虚拟机是否动态获取IP地址;
  3. IPv4 Network:设置IPv4网段;
  4. IPv4 Network Start Address:设置可以分配给Jail主机的IPv4起始地址;
  5. IPv4 Network End Address:设置可以分配给Jail主机的IPv4结束地址;
  6. IPv6 Autoconfigure:选择是否自动为Jail虚拟机配置IPv6地址;
  7. IPv6 Network:设置IPv6网段,留空为不配置;
  8. IPv6 Network Start Address:设置可以分配给Jail主机的IPv6起始地址,留空为不配置;
  9. IPv6 Network End Address:设置可以分配给Jail主机的IPv6结束地址,留空为不配置;
  10. Collection URL:模板索引地址,修改可能导致无法成功创建Jail。

如果勾选”IPv4 DHCP”,新建的Jail会自动从路由器获取IP地址,但这个IP地址不是固定分配的,Jail重启以后可能会被分配新的IP地址。如果希望为Jail虚拟机分配固定的IP地址,则需要设置IPv4网段、IPv4起始地址、IPv4结束地址,这样一来,系统会从你指定的范围中选择一个IP地址分配给新创建的Jail虚拟机。

注意:如果你的FreeNAS系统已经成功安装过插件,那么系统已经自动对Jails进行了必要的配置。

Jail模板类型

在FreeNAS 9.2的时代,系统预置了以下几种类型的Jail模板:

  • Plugin Jail:这种模板为软件安装提供了最大的灵活性,支持安装 FreeNAS® PBIs 插件包,且能够通过 FreeNAS WebGUI 进行管理。同时支持 FreeBSD Ports 和 FreeBSD pkgng 这两种方式在Jail中通过命令行安装程序。其他类型的模板都不支持安装 FreeNAS® PBIs 插件包,这也是 Plugin Jail 模板与其他类型模板的主要区别。
  • Port Jail:这种模板支持 FreeBSD Ports 和 FreeBSD pkgng 这两种方式在Jail中通过命令行安装程序,不支持安装 FreeNAS® PBIs 插件包,即这种类型的模板要安装程序必须使用Jail的命令行界面。
  • Standard Jail:这种模板与Port Jail 功能几乎相同相同,两者主要区别在于这种模板更适合安装需要使用如DHCP或DNS等独立的网络服务器的程序。
  • Linux Jail:FreeBSD 有 Linux 二进制适配层,因此可以将Linux系统安装到Jail里面,并且可以使用Linux系统的包管理器安装软件。但是目前Jail只能安装32位的Linux系统和软件。

从FreeNAS 9.3发布以后,Jail模板发生了很大的变化:

  1. 系统仅预装VirtualBox模板(使用 Standart Jail);
  2. 插件仍旧使用Plugin Jail,但Plugin Jail不再预置,系统在需要时会自动从官方服务器下载;
  3. Linux Jail 退出历史舞台;

创建一个Jail虚拟机

点击“Add Jails”按钮,在弹出窗口输入“Jail Name”,点击“OK”按钮,这样就创建了一个默认使用FreeNAS-PluginJail-9.3模板的Jail虚拟机。创建Jail时,也可以点击窗口中的“Advanced Mode”高级模式按钮,对Jail虚拟机的设置进行调整:

  1. Jail Name:为Jail指定一个名称;
  2. Template:默认使用FreeNAS-PluginJail-9.3模板,如果想创建VirtualBox Jail,可以在此处进行选择;
  3. IPv4 DHCP:是否动态获取IP地址;
  4. IPv4 address:为Jail指定固定IP地址;
  5. IPv4 netmask:选择IPv4掩码;
  6. IPv4 bridge address:IPv4桥接地址,一般无需设置;
  7. IPv4 bridge netmask:IPv4桥接掩码,一般无需设置;
  8. IPv4 default gateway:IPv4默认网关,如果设置固定IP,则需要设置;
  9. IPv6 Autoconfigure:是否自动配置IPv6地址;
  10. IPv6 address:IPv6地址,如有需要可以设置;
  11. IPv6 prefix length:IPv6前缀长度,如有需要可以设置;
  12. IPv6 bridge address:IPv6桥接地址,如有需要可以设置;
  13. IPv6 bridge prefix length:IPv6桥接前缀长度,如有需要可以设置;
  14. IPv6 default gateway:IPv6默认网关,如有需要可以设置;
  15. MAC:如有需要,可以为Jail虚拟机网卡设置一个MAC地址,如果留空,系统会自动设置;
  16. NIC:指定Jail虚拟机使用的网卡,如果未启用“VIMAGE”,则无法设置;
  17. Sysctls:为Jail指定系统控制选项,逗号分隔多项(例如 allow.sysvipc=1,allow.raw_sockets=1)
  18. Autostart:FreeNAS主机开机是否自动启动Jail。
  19. VIMAGE:为Jail提供虚拟网络堆栈,需要网卡开启混杂模式;
  20. NAT:启用网络地址转换,如果未启用“VIMAGE”,则无法设置;

首次创建Jail虚拟机需要从FreeNAS官方服务器下载相应Jail模板,虽然模板文件只有400MB左右大小,但国内下载的速度实在太慢。不必担心,我们可以通过创建本地Jail模板来加快安装过程。

管理Jail模板

FreeNAS 9.3只预装了一个VitrualBox-4.3.12 Jail模板,如下图所示,窗口中是该Jail模板的相关信息。

创建新的Jail模板,只需要点击“Add Jail Templates”按钮,填写模板的相关信息即可。介绍一下各项内容:

  1. Name:为Jail模板指定一个名称,注意,“pluginjail”是系统保留名称,使用此名称系统会报错。
  2. OS:选择操作系统类型,可选择 FreeBSD 或 Linux;
  3. Architecture:选择操作系统架构,可选择 x86 或 x64;
  4. URL:输入此模板文件的下载地址,也可以输入FreeNAS数据集的绝对路径,后面详解,加快Jail安装速度全靠它;
  5. Jt readonly(Jail template readonly):设置此模板创建后是否允许再次编辑;

前三项不用多说,根据你要创建的系统模板实际情况选择即可,模板文件点击这里下载。下载目录中的文件对应关系

  • 9.3 目录对应 FreeNAS 9.3 系统,其中包含 x86 和 x64 两个目录,分别对应32位和64位架构。每种架构中仅提供两种Jail模板,
    freenas-standard-9.3-RELEASE.tgz 和 freenas-pluginjail-9.3-RELEASE.tgz
  • 9.2 目录对应 FreeNAS 9.2.x 系统,其中包含 x86 和 x64 两个目录,分别对应32位和64位架构。9.2 下面的模板比较多。

为了加快Jail虚拟机的创建速度,我们需要先将插件模板下载到本地电脑,然后上传到 Jails 数据集中,创建Jail模板时,在URL中填写模板在数据集中的绝对路径。

如下图所示,我们将下载到本地电脑的x64位 freenas-pluginjail-9.3-RELEASE.tgz 模板文件通过SSH或FTP上传到Jails数据集上,数据集路径为 /mnt/myStor/jails。

然后创建Jail模板:

  1. 模板名称:pluginjail-9.3
  2. OS:FreeBSD
  3. 系统架构:x64
  4. URL:/mnt/myStor/jails/freenas-pluginjail-9.3-RELEASE.tgz

新模板创建完成,如下图

接下来我们用新建的 plugin-9.3 模板创建一个Jail虚拟机。

大概2分钟左右的时间,新的Jail虚拟机就创建好了。

管理Jail虚拟机

管理jail虚拟机主要通过下图所示的五个功能按钮:

  • Edit Jail:编辑Jail虚拟机,用来修改虚拟机的配置信息,如果要修改虚拟机的IP地址一定要在这里修改,使用虚拟机的命令行界面修改是无效的,而且可能会导致一些错误。注意,Jail虚拟机一经创建,名称和类型将无法修改。
  • Add Storage:添加存储,可以把FreeNAS主机上的数据集挂载到虚拟机中的某个目录上,与VitrualBox中的共享目录功能类似;
  • Start/Stop:启动/停止,不用多解释,就是控制虚拟主机开关机的按钮;
  • Shell:点这个按钮会打开虚拟机的终端,如果你懒得给虚拟机设置SSH,则可以直接在这里控制虚拟机;
  • Delete:删除虚拟机,不解释;

在FreeNAS 9.3上玩VirtualBox虚拟机(模板离线安装请看下一篇)

在VMware、Hyper-V满天飞的今天,我承认自己更偏爱VirtualBox,它没有VMware那么臃肿,又不像Hyper-V那样完全依赖MircoSoft Windows,更重要的,它简单、开放、自由、免费。

从FreeNAS 9.3开始,Jails虚拟机中只预装一个Jail模板,就是phpVirtualBox模板。

phpVirtualBox原理浅析

FreeNAS实现VirtualBox并不是直接在主机上安装VirtualBox虚拟机软件,确切的说,我们不应该直接在FreeNAS主机上安装任何第三方应用程序,一方面是出于安全的考虑,另一方面是出于系统稳定的考虑。

VirtualBox一定是安装在Jail上面的,9.3默认提供给我们一个VirtualBox模板的目的也正在于此。和插件非常相似,系统会首先创建一个Jail虚拟机,然后在Jial里面安装VirtualBox程序,为了便于我们管理,系统还会再安装一个专门用来管理VirtualBox的WebGUI,这个WebGUI是由PHP语言驱动的,得出的结论就是 Jail + VirtualBox + WebGUI = phpVirtualBox。

因为Jail与FreeNAS主机系统是天然隔离的,因此在Jail中安装运行VirtualBox可以确保无论Jail里面发生任何问题或错误,都不会对FreeNAS主机系统造成任何的影响,这样一来,就可以给我们最大的折腾空间。

创建VirtualBox Jail

提示:本教程同时适用于FreeNAS-9.2.1.9 x64。

在FreeNAS 9.3 WebGUI中主菜单找到并打开Jails管理器,点击“Add Jail”按钮。在弹出窗口中,首先填写“Jail 名称”,名称可以根据需要随意进行设置。然后点击“高级模式”按钮。

下图所示为Jail高级模式选项,在“模板”项的下拉列表中选中“VirtualBox-4.3.12”。如果你和我一样只使用IPv4网络,只需要设置好IPv4地址和IPv4网关。设置完成,点击窗口最下方的“确定”按钮,系统会自动开始创建Jail。创建过程中,系统会从官方服务器下载VirtualBox-4.3.12 Jail模板,因此请务必保证FreeNAS主机可以正常访问互联网。

对国内的用户来说,上面这种使用预置VirtualBox模板创建Jail的速度会很慢,一来国内访问国外服务器的速度本来就不快,二来VirtualBox模板334MB,下载时间会很长,下载失败率也很高,一旦下载失败,只能重新启动FreeNAS主机,再重复上面的创建过程。为了避免重复浪费时间,我们可以通过创建自定义模板的方法来加速这个过程。

通过自定义模板创建VirtualBox Jail

关于Jail自定义模板的详细内容可以参考《FreeNAS:虚拟机(Jails)入门篇》,此处我们只做简要介绍。

首先下载 freenas-virtualbox-4.3.12.tgz 模板文件,将下载好的模板文件上传到Jails数据集中。回到WebGUI打开Jails管理器,切换到“模板”选项卡,点击“Add Jail 模板”按钮,在弹出窗口中输入模板相关信息:

  • 名称:随意设置,本例设置为 myVBox-4.3.12
  • 操作系统:FreeBSD
  • 系统架构:x64
  • URL:填写模板文件所在位置的绝对路径;

创建完成以后,在Jails管理器的模板列表中能看到新建的自定义virtualbox模板,如下图。

切换回Jails选项卡,点击创建按钮,选择“高级模式”,如下图,模板选择我们上面创建的自定义模板“myVbox-4.3.12”。

创建VBox Jail的速度现在是飞一般的感觉,如下图。

如下图,自定义VirtualBox Jail创建完成以后可以在Jails列表中看到,而且Jail创建完成以后会自动开始运行,接下来我们可以开始使用Web版的VirtualBox了。

访问VirtualBox WebGUI

在Jails列表中可以看到我们创建的VirtualBox Jail的IP地址(本例为 192.168.1.17),在浏览器中访问这个地址,如下图。输入初始用户名和密码:

  • 用户名:admin
  • 密码:admin

如果你曾经使用过Windows版的VirtualBox虚拟机,登陆WebGUI以后,一定会感觉似曾相识,很像是吧?

对于国内用户,第一件事情不是马上创建虚拟机,而是要将WebGUI设置成简体中文,如下图,在界面左上方的菜单依次点选“File” → “Preferences…”。

如下图,点击属性窗口左侧的“Language”,右侧列表点选“简体中文(中国)”,点击“OK”按钮后,WebGUI会自动刷新,现在整个界面就是清爽的中文了。

出于安全考虑,接下来你也可以考虑修改一下管理员admin的登陆密码,如下图。

如下图,首先输入原密码(默认密码为 admin),在输入两次新密码,点击确定按钮即可。

为VirtualBox创建专用数据集

要创建某种类型系统的VirtualBox虚拟机,必须提供这种系统的安装镜像,以创建Ubuntu系统虚拟机为例,在Windows系统上会比较方便,我们先到ubuntu官方下载系统镜像,然后在Windows上面创建VirtualBox虚拟机,在虚拟光盘中直接加载下载好的ubuntu系统镜像即可。

但是在FreeNAS 的Jail里面要稍显麻烦,要么我们直接在虚拟机中用wget等下载工具远程下载ubuntu系统镜像,要么我们就在FreeNAS主机上给VirtualBox创建一个专用的数据集并映射到Jail的某个目录中,通过SFTP或者CIFS共享将系统镜像复制到数据集里面,这样一来就可以直接在WebGUI界面选择加载系统镜像了。

笔者认为创建专用数据的方法节省带宽资源,也方便管理,因此我们着重介绍这种方法。

给VirtualBox Jail添加数据集的方法与为插件添加专用数据集类似,完全可以参照教程《FreeNAS中为插件添加映射存储空间》来完成这项操作。这里需要提示的是,创建数据集的权限设置:

  • 所有者:vbox
  • 所有者组:vbox
  • 映射路径:/home/vbox/VirtualBox VMs  (虚拟机默认存储在此目录,为了便于使用,我们可以将系统镜像也放到这个目录。)

因为FreeNAS主机默认并没有vbox用户和用户组,因此需要先创建他们。在FreeNAS WebGUI中主菜单点选“账户”,切换到“用户”选项卡,点击“Add 用户”按钮,如下图所示,在弹出窗口中填写新用户信息时主要填写以下几项:

  • 用户名:vbox
  • 选中“为该用户创建同名主用户组”
  • 命令行:nologin
  • 全名:随意
  • 密码:留空
  • 选中“禁用密码登陆”

紧接着创建专用数据集,本例创建了名为 vbox 的数据集,如下图所示,选中此数据集,并点击下方功能按钮修改权限,将所有者和所有者组均设置为vbox。权限模式建议按照下图所示勾选。

回到Jails管理器,点选VBox Jail,然后点击下方的黑色文件夹功能按钮“添加存储”,注意区分:

  • Jail 名称:不要选错;
  • 源:代表FreeNAS主机上创建的专用数据集;
  • 目标端:代表将数据集映射到Jail上的目录;

接下来用上面创建的 vbox 数据集设置一个CIFS匿名共享,这样就可以通过 Windows 等操作系统直接管理这个数据集,最主要的是把操作系统ISO镜像文件拷贝进去。因为匿名共享的默认用户为 nobody,为了避免出现CIFS共享访问权限不足,应该将 nobody 用户加入到 vbox 用户组,如下图,在账户管理中找到 nobody 用户,窗口的最下方“辅用户组”这一项,在“可用”这一列中找到并选中vbox,双击添加到右侧“Selected”。

打开共享管理器,新建CIFS共享,如果你不了解CIFS,可以参考《FreeNAS:创建 CIFS 匿名共享》。如下图,主要设置如下几项:

  • 路径:选择上面创建的专用数据集 vbox;
  • 名称:必须,但随意填写;
  • 选中“允许访客访问”;
  • 选中“只允许访客访问”;
  • 其他项建议保持默认;

下图所示,我们用Windows 7系统访问CIFS共享,将一个32位的ubuntu 14.04服务器版ISO镜像文件复制到了里面。

创建第一个VirtualBox虚拟机

接下来我们就来创建一个32位 ubuntu 14.04 服务器版虚拟机,回到VirtualBox WebGUI,点击“新建”按钮。

输入虚拟机名称,类型选择 Linux,版本选择 Ubuntu(32 bit)。

内存可以随意设置,VirtualBox虚拟机创建向导会对不同的操作系统给出建议的内存大小,本例我们保持默认,分配512MB内存。

一个虚拟机没有虚拟硬盘怎么行,如下图,选择“现在创建虚拟硬盘”,然后点击“创建”按钮。

选择虚拟硬盘类型,如果没有特殊要求,直接选择默认类型(VDI)即可。

接下来选择虚拟硬盘的空间分配方式,界面中有详细的中文介绍,这个可以根据需要自由选择。

接下来指定虚拟硬盘的名称和大小,名称保持默认即可,容量可以适当调大一些。

点击“创建”按钮后,系统开始自动创建虚拟硬盘,等它创建完成。

虚拟主机创建完成,在WebGUI左侧列表中会有显示,接下来我们要给创建好的虚拟主机加载ISO镜像,点选虚拟机,然后点击界面上方的“设置”按钮。

如下图所示,切换到“存储”,给带有小光盘图标的IDE控制器加载ISO镜像。这里需要注意,在前面创建的vbox数据集设置映射到Jail的 /home/vbox/VirtualBox VMs 目录,但在选择的时候却没有 /home 目录,这个目录的真实位置是 /usr/home/vbox/…。

特别的,还需要设置一下网卡的连接类型,要修改为“桥接网卡”,否则的话会对管理虚拟主机造成很大的麻烦。桥接网卡模式可以让虚拟机直接从路由器获得IP地址,现在就可以启动虚拟机了。

phpVirtualBox继承了Java版的终端监视器,但是笔者测试下来发现它并不好用。实践证明,管理虚拟主机最好的软件是RealVNC,我们只需要使用vnc-viewer即可。如下图所示,点选虚拟机,右侧“显示”部分有VNC远程桌面服务的连接信息,本例为 192.168.1.17:9000,我们只需要把这个地址输入到vnc-viewer中点击连接即可。

如下图所示,在vnc-viewer中输入远程桌面的地址,点击“Connect”按钮。

由于VNC连接未加密,因此连接的时候会弹出风险提示,如下图,点击“Continue”按钮忽略即可。

软件提示输入密码,由于vbox的开启的VNC服务默认没有设置密码,所以直接点击“OK”。

vnc-viewer已经成功连接到我们的ubuntu虚拟机了,如下图,现在可以用键盘控制安装系统了。

解决 FreeNAS 插件安装速度慢的问题

FreeNAS 9.3初次安装插件,对大部分国内用户来说是件痛苦的事情,因为系统不但需要从官方服务器下载插件安装包,还要下载PluginJail模板,少则一个小时,多则几个小时。

这篇教程为大家提供一种方案,帮你飞速完成FreeNAS插件安装。

FreeNAS安装插件为什么慢?

FreeNAS 的插件要安装在Pluginjail类型的虚拟机中,要创建FreeNAS Plugin Jails虚拟机则需要FreeNAS-Pluginjail模板,默认情况下这个Pluginjail模板需要从FreeNAS官方服务器下载,而官方服务器在国外,国内访问的速度很慢,国内又没有FreeNAS的服务器镜像,一个400MB左右的模板文件,下载速度几KB/s到十几KB/s不等,一层一层捋顺下来就找到了症结所在。

如何解决下载慢的问题?

既然下载速度慢,索性我们不下载了,换一条路走。经过笔者反复尝试观察,发现FreeNAS下载完成Pluginjail模板文件后,会自动创建一个名为 .warden-template-pluginjail 数据集,如下图所示。这个数据集是 Pluginjail 模板的完整副本,每当安装插件时,系统都会克隆这个数据集,并作为插件的Jail虚拟机。

插件入门那篇教程中有提到,只要插件首次安装完成,以后再安装的速度就会非常快,原因就是系统在插件初次安装完成后创建了 .warden-template-pluginjail 数据集,有了这个数据集,系统就可以重复克隆它快速创建 Pluginjail 了。

这样分析下来,只要在安装插件之前创建好 .warden-template-pluginjail 数据集,插件安装时就不需要从官方服务器下载Pluginjail模板了。

起初,我尝试用迅雷下载 FreeNAS-Pluginjail-9.3.tgz 模板文件,然后解压到 Jails 数据集中,重命名文件夹为 .warden-template-pluginjail ,实践证明,这种方式是自欺欺人,文件夹和数据集有本质的区别,ZFS 的克隆操作在文件夹上是行不通的。

然后,我的想法是在WebGUI中手动创建这个数据集,把模板文件拷贝进去,这个想法貌似很靠谱,但我发现系统并不允许数据集名称以“.”点号开头,这条路也行不通了。

就在我决定放弃的时候,我发现在 Jails 数据集下面有一个名为 .warden-template-pluginjail-9.3 的数据集,这是我自己添加的Jail模板在使用时生成的模板副本,除了名称不同以外,它与 .warden-template-pluginjail 数据集的其他部分是完全相同的,转机来了,通过克隆并重命名这个数据集,成功创建了 .warden-template-pluginjail 数据集,安装插件一试,果然成功了。

操作流程

首先,参照《FreeNAS:虚拟机(Jails)入门篇》使用64位的 freenas-pluginjail-9.3-RELEASE.tgz 文件创建一个新的Jail模板,模板名称为 pluginjail-9.3。

然后选择使用pluginjail-9.3模板新建一个Jail虚拟机,名称随意。这个Jail虚拟机不是重点,重点在于通过创建这个Jail虚拟机,系统会自动对模板文件创建名为 .warden-template-pluginjail-9.3 的数据集。

给 .warden-template-pluginjail-9.3 数据集创建一个手动快照,为了便于识别,快照命名为 pluginjail。

在快照列表中找到刚创建的名为 pluginjail 的快照。

克隆此快照,注意默认的克隆路径名称为 myStor/jails/.warden-template-pluginjail-9.3-pluginjail-clone,修改一下,删除掉 -9.3-pluginjail-clone 这一部分,即使用此快照克隆一个名为 myStor/jails/.warden-template-pluginjail 的数据集。

克隆完成,如下图,我们需要的 .warden-template-pluginjail 数据集已经出现了。

2015年4月13日增补

最近FreeNAS9.3滚动更新还是蛮频繁的,笔者发现对应9.3版本的PluginJail和StandardJail也进行了更新,可能是为了解决无法安装Aria2的问题吧,这个尚未测试。按照上面介绍的操作方法,在使用最新Jail模板时,出现了一些莫名其妙的错误,导致无法正常安装插件,FreeNAS中文群中的很多朋友都遇到了同样的问题,经过反复测试,找到了问题的症结。

FreeNAS在安装PBI插件时,会通过克隆.warden-template-pluginjail数据集的方式为新插件创建Jail环境,这一点上面的内容已经介绍过了,因为到这一步我们已经准备好了.warden-template-pluginjail数据集,但你仔细观察会发现,系统会从.warden-template-pluginjail数据集的一个名为clean的快照做克隆,虽然我们从手动添加的模板克隆出了所需要的数据集,但是这个数据集并没有名为clean的快照,没错,这就是导致无法安装插件的罪魁祸首。

没有就创建一个,如下图所示,相信阅读这篇教程的朋友对创建快照操作一定了如指掌。

创建了clean快照,接下来再去安装插件试试看吧。

FreeNAS中为插件添加映射存储空间

FreeNAS中如Transmission这种BT下载插件虽然可以即装即用,但要取出下载的文件还是有些繁琐,可以通过给插件添加(映射)一个专门的数据集,即可实现便捷的文件管理。

《FreeNAS:插件(Plugins)入门篇》中已经介绍过,FreeNAS的插件安装在Jail虚拟机中的,每个Jail虚拟机里面都包含完整的FreeBSD系统目录和文件,以Transmission插件为例,默认情况下,Transmission会将文件下载到Jail虚拟机的某个目录中,BT下载倒是没什么问题,但要管理下载的文件就显得有些麻烦了。

我们可以在使用插件以前,专门为插件创建一个数据集,映射到Jail虚拟机中的某个目录上,比如Transmission,可以在设置中将下载目录指定为映射数据集的目录,这样一来,只要把相应的数据集做CIFS等共享,就可以方便的访问下载的文件了。

本教程以Transmission为例,演示如何为插件添加(映射)存储。大致过程:

  1. 检查插件程序在Jail虚拟机中关联的用户和用户组;
  2. 在FreeNAS中新建与插件关联的用户和用户组;
  3. 创建新数据集或使用已有数据集,并将数据集的所有者和所有者组设置为与插件关联的用户和用户组;
  4. 在Jails虚拟机管理界面中找到插件所在的Jail,并为其添加新建的数据集。

检查插件关联的用户和用户组

在类Unix世界,每一款程序都需要对应一个用户角色来运行,FreeNAS以及其插件也不例外。比如Transmission插件会在Jail中同时创建名为transmission的用户和用户组,并且以transmission用户的身份来运行程序,自然的,所下载文件的所有者也是transmission。一般来说,FreeNAS中的插件相关联的用户和用户组名与插件的名称相同。

更准确查找关联用户和用户组的方法是在Jail虚拟机的终端中查看 /etc/passwd 和 /etc/group 这两个文件,在WebGUI中打开Jails管理选项卡,点选插件所在的Jail,如下图所示。点击下方的命令行按钮,这时会弹出网页版Shell窗口,输入 cat /etc/passwd (注意cat后面有空格)回车,在passwd文件的最后面可以看到transmission用户,这就是插件关联的用户了。

查看插件关联的用户组也是同样的方法,继续在Shell窗口中输入 cat /etc/group (注意cat后面有空格)。如下图所示。

在FreeNAS主机创建用户和用户组

在FreeNAS主机创建与插件相关联的用户和用户组,这一步操作的目的是为了在后面创建数据集时能够正确的设置数据集的所有者和所有者组权限。首先创建用户组,在WebGUI中打开Account账户管理菜单,切换到 Groups 选项卡,并点击 Add group 按钮,在弹出窗口的 Group Name 组名称中输入插件关联的用户名,本例为transmission。点击OK按钮,创建完成。

创建新用户也非常简单,切换到 Users 用户选项卡,点击 Add user 添加用户按钮。如下图所示,输入用户名,取消 Create a new primary group for the user (同时创建同名主用户组)的勾选,在下方 Primary Group 主用户组下拉列表中选择上一步创建的用户组,不要忘记输入 Full Name 全名和密码,点击OK按钮,创建完成。

创建新数据集

本例将在myStor的存储池下面创建一个名为BT的数据集。《详解 FreeNAS ZFS 数据集》中介绍了如何创建和管理数据集。如下图所示。

数据集创建好了,接下来修改数据集的权限。如下图所示,点选BT数据集,随后点击下方的修改权限按钮,在弹出窗口中将 Owner所有者和OwnerGroup所有者组都设置为插件关联的用户和用户组,Mode权限分配一项勾选所有的选框,全部勾选的目的是让所有用户对这个数据集都有访问权限,主要是便于管理,你也可以根据需要进行调整。点击 Change 修改按钮,设置完成。

将新数据集添加到插件所在Jail虚拟机

准备工作全部完成,接下来就是见证奇迹的时刻,把新建的数据集添加(更准确的说应该是映射)到插件所在的Jail虚拟机中的某个目录上。打开Jails菜单,点选插件所在Jail虚拟机,如下图所示,点击界面下方的黑色文件夹按钮,即Add Storage添加存储按钮。在弹出窗口中有下列设置项:

  • Jail:标示需要操作的Jail虚拟机;
  • Source:源头的意思,即选择FreeNAS主机上新建的数据集;本例我们设置为BT数据集;
  • Destination:目标的意思,即你要把新建的数据集映射到Jail虚拟机中的哪个目录上。这个你可以根据喜好自由设置,本例我们选择将新建的数据集映射到Jail虚拟机中的 /mnt 目录上;
  • Read-Only:只读模式,也就是说插件对映射的数据集仅有只读权限,显然本例中我们不需要勾选此项;
  • Create directory:勾选此项后,如果 Destination 中设置的目录不存在,则系统会自动创建目录,保持勾选即可;

好了,点击OK按钮,完成数据集映射。接下来检查一下是否添加成功,在WebGUI左侧的系统菜单中展开Jails,继续展开transmission – Storage,可以看到已经有了 /mnt 目录。这代表存储已经添加成功。

最后我们来将Transmission插件的下载目录修改成我们新映射数据集的目录 /mnt。可以在FreeNAS的WebGUI中进行设置,也可以在Transmission的浏览器管理界面中进行设置,本例在FreeNAS中进行设置,如下图。修改Download Directory下载目录,设置完成点击OK按钮即可。

通过上述一番设置,新下载的文件会下载到Jail中的/mnt目录里面,由于新数据集映射(挂载)到了/mnt目录,因此,文件实际上会存储到FreeNAS中名为BT数据集中。这样一来,我们只需要给BT数据集设置CIFS或AFP等形式的共享,就可以轻松的管理下载好的文件了。

按照上述方法,现在你可以给其他插件也添加专门的存储空间了!

转载自www.getnas.com,由博主整理编辑,如有侵权请联系本人。

FREENAS虚拟机Jails配置全攻略(多篇集合)相关推荐

  1. linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略

    Linux下VSFTP配置全攻略 [日期:2007-10-05] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] 4]如果要以系统中存在的普通用户登入FTP,也没有什么可以设置的, ...

  2. Linux 环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  3. SCSI的配置全攻略(ISCSI Target/initiator)

    SCSI的配置全攻略(ISCSI Target/initiator) iSCSI的配置全攻略(ISCSITarget/initiator) 时不时会忘记怎么iscsi导出磁盘,所以在此转载一篇&quo ...

  4. Linux环境变量配置全攻略

    本文转载自: Linux环境变量配置全攻略 - 悠悠i - 博客园 目录 Linux环境变量配置 Linux读取环境变量 Linux环境变量配置方法一:export PATH Linux环境变量配置方 ...

  5. vim配置全攻略(2)——vim的简单配置

    这篇文章主要讲的是vim的简单配置,相对于vim内置的一些快捷键和功能,vim的客制化才是vim的灵魂,也是vim存活31年仍被热衷的原因. 如果你还不了解vim的基本操作和体系,我建议你看一下我上一 ...

  6. Retrofit全攻略——进阶篇

    最近事比较多,距离上次写文章已经过去了一个月了.上一篇文章Retrofit全攻略--基础篇 介绍了Retrofit的基础用法,这篇文章介绍点进阶的用法. 打印网络日志 在开发阶段,为了方便调试,我们需 ...

  7. 国企央企OFFER收割全攻略 | 银行篇之差额体检答疑

    文章目录 国企央企OFFER收割全攻略 | 银行篇之差额体检&答疑 6 体检 6.1 体检是差额体检,是招聘的一个环节 6.2 体检的流程 6.3 体检的注意事项 7 答疑 8 结束语 题外话 ...

  8. 国企央企OFFER收割全攻略 | 银行篇之面试

    文章目录 国企央企OFFER收割全攻略 | 银行篇之面试 5 面试 5.1 银行面试的考察内容与考察形式 5.2 不同银行面试的面试内容 5.3 银行面试流程与常考问题 5.4 如何准备银行面试 5. ...

  9. 国企央企OFFER收割全攻略 | 银行篇之笔试

    文章目录 国企央企OFFER收割全攻略 | 银行篇之笔试 4 笔试 4.1 银行笔试的考察内容与题型 4.2 不同银行笔试的侧重点 4.3 如何准备银行笔试 4.4 笔试的注意事项 小结 国企央企OF ...

最新文章

  1. ParlAI:Facebook开源的一个AI对话框架
  2. MySQL防止重复插入唯一限制的数据 4种方法
  3. 【报错笔记】做struts项目建立jsp文件老是报错
  4. 软件构造学习笔记-实验4
  5. 降级安装_如何升级iOS13测试版,还有降级
  6. 并发编程(十六)——java7 深入并发包 ConcurrentHashMap 源码解析
  7. oracle如何设置备份计划任务,Oracle数据库设置任务计划备份一周的备份记录
  8. 纵坐标是横的还是竖的_纠结地板是横铺还是竖铺好?别瞎折腾了,迎着光铺才是最正确的!...
  9. 布比Code Review赏金计划正式启动 让区块链回归代码本身
  10. 机器人工程师学习计划
  11. 将手机投屏到电脑以及用手机实现对电脑的控制
  12. ai中如何插入签名_如何在PDF文档中插入文本框?
  13. 二元函数matlab画图_matlab心形图大全,几个经典的函数图像,有趣的函数图像,matlab画图...
  14. 使用POI导出Excel使单元格内容换行
  15. c语言log库,Log4g
  16. Unity AR小游戏(玩具小车)踩坑记
  17. c语言静态检测工具,静态代码检测工具---PC-lint(for c/c )
  18. (Java)图解排序算法之归并排序
  19. 弦振动 matlab,弦振动规律及MATLAB数据处理
  20. iphone 快捷指令打开 行程码

热门文章

  1. 【论文阅读】Interpolation Consistency Training for Semi-Supervised Learning
  2. java 性能 火焰图_性能调优工具-火焰图
  3. ajax,HTTP原理 : 网络传输协议,网页从输入url到渲染的流程,函数防抖和节流
  4. 如何实现电脑文件的自动备份?
  5. 上学期c语言作业答案,C语言作业答案4
  6. Oculus Rift正式发售,准备好开始迈向VR时代
  7. 福州大学计算机科学非全,福大数计/软件学院2020年招收非全日制专业硕士研究生调剂方案...
  8. 大数据集群扩容机架分配
  9. 游戏辅助脚本(python)
  10. 使用 JS 访问服务器地址实现下载文件