在FreeNAS 9.3上玩VirtualBox虚拟机

2015-3-16 0:10 Herald 15038 FreeNASJails

我们或多或少的期待,某个普通东西在某一天发生了更多的可能性,是的,很久以前的某天,当我看到FreeNAS 9.2的某个版本引入了VirtualBox Jail模板的时候,整个人沸腾了。

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

从FreeNAS 9.3开始,Jails虚拟机中只预装一个Jail模板,就是phpVirtualBox模板。如果你还不了解Jails,建议先阅读《FreeNAS:虚拟机(Jails)入门篇》。

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 名称”,名称可以根据需要随意进行设置。然后点击“高级模式”按钮。

20150315160722

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

20150315160642

对国内的用户来说,上面这种使用预置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:填写模板文件所在位置的绝对路径;

20150315214203

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

20150315214227

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

20150315214920

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

20150315215100

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

20150315215648

访问VirtualBox WebGUI

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

  • 用户名:admin
  • 密码:admin

20150315220026

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

20150315220224

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

20150315220447

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

20150315220723

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

20150315220924

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

20150315221026

为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  (虚拟机默认存储在此目录,为了便于使用,我们可以将系统镜像也放到这个目录。)

20150315223002

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

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

20150315223457

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

20150315230716

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

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

20150315224324

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

20150315225730

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

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

20150315230042

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

20150315231015

创建第一个VirtualBox虚拟机

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

20150315231406

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

20150315231529

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

20150315231632

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

20150315231800

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

20150315231925

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

20150315232104

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

20150315232339

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

20150315232445

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

20150315232625

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

20150315232856

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

20150315233249

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

20150315235405

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

20150315235854

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

20150315235955

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

20150316000115

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

20150316000223

关于Linux系统的安装,本教程就不展开介绍了,你可以在网上查找相关资料。以此类推,有了VirtualBox虚拟机,你不但可以安装各种Linux发行版,还可以安装各个版本的Windows系统,如果你愿意,在里面安装一个FreeNAS也没问题,现在,轮到你了!

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

{{ post_id = '1257' }}

回复 {{ reply_to }}