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

2015-2-7 22:32 Herald 10138 FreeNASPlugin插件

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

这篇教程为大家提供一种方案,帮你飞速完成FreeNAS插件安装。但在开始之前,建议先阅读《FreeNAS:插件(Plugins)入门篇》和《FreeNAS:虚拟机(Jails)入门篇》这两篇教程,以图对FreeNAS 插件和Jails有初步的了解,再继续下面的内容会更容易理解。

FreeNAS安装插件为什么慢?

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

如何解决下载慢的问题?

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

20150207134830

插件入门那篇教程中有提到,只要插件首次安装完成,以后再安装的速度就会非常快,原因就是系统在插件初次安装完成后创建了 .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。

20150207221530

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

20150207221620

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

20150207222250

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

20150207222524

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

20150207222831

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

20150207222931

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的快照,没错,这就是导致无法安装插件的罪魁祸首。

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

20150413114813

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

20150413115018

 

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

{{ post_id = '826' }}

回复 {{ reply_to }}