FreeNAS:虚拟机(Jails)入门篇

2015-2-7 18:52 Herald 11476 FreeNASJails

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

这篇教程《FreeNAS:插件(Plugins)入门篇》,已经向大家介绍了如何为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模板。

20150207160153

配置Jails

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

20150207162448

数据集创建完成,点选“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。

20150207162646

如果勾选”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”,则无法设置;

20150207164643

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

管理Jail模板

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

20150207180112

创建新的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):设置此模板创建后是否允许再次编辑;

20150207180516

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

  • 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。

20150207182555

然后创建Jail模板:

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

20150207182927

新模板创建完成,如下图

20150207183258

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

20150207183450

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

20150207183724

管理Jail虚拟机

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

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

20150207183938

{{ headers["x-wp-total"] }} 条评论

{{ post_id = '811' }}

回复 {{ reply_to }}