之前一篇文章主要说的是这次FreeNAS平台用的硬件,以及安装系统的一些注意事项。接下去经过几个小时的调试,我总算是搞定了系统的配置,SMB分享、ISCSI以及BTSync。
总的来说FreeNAS 9 的上手难度还是要略高于FreeNAS 10。总的来说还是页面比较复杂一些,以及FreeNAS 9缺少一些必要的引导。总的来说,对于NFS/SMB/AFS来说,一般就是创建DATASET数据集(相当于虚拟文件夹),创建所需用户(包括用户组),修改数据集权限,添加分享路径,修改分享条件。这些总体来说并不困难。
接下来就是我想做的系统数据同步了。数据同步这次我使用的是Resilio(BT Sync),这算是比较常见的数据同步软件,可以很方便的同步信息,而且由于加密P2P,数据安全也是比较有保障的,而传输速度也是比较好的。
作为一个FreeBSD base的OS,FreeNAS使用jails来隔离这些插件环境。这是一个类似LXC(Linux containers)的解决方案。他在主机系统上执行一个虚拟环境,同时有自己的文件系统,进程,用户组等等,不需要特殊的虚拟化技术支持。作为一个沙箱系统,它能够保证宿主系统不会受到任何影响,同时提供各种服务。类似LXC,这系统也可以与宿主机共享文件,通过挂载就可以将宿主系统的数据集与jails共享。
根据BT Sync官方提供的文档,我首先建立了btsync专用的用户与用户组。
接下来,在第一块磁盘(Volume)中创建两个新的数据集,分别是jails专用的空间和BT Sync的同步目录。
创建好数据集后,默认的用户是root而用户组是wheel。对于同步用的数据集,由于读写需求,必须将所有者和用户组都设定为btsync。
由于一开始我使用的是静态IP,系统不会得到DHCP server提供的DNS服务器和网关的信息,因此访问internet存在一些问题,为它设定好网关以及DNS服务器,这样才可以继续设置jails以及plugins。
为Jails设定路径,IP范围。
为BT Sync的jails添加外部的数据集挂载点,这样就可以直接将数据同步到系统外部来,再通过SMB分享。
原本到这里,一切都很顺利。但是突然出现了无法访问jails的问题,也就是说再jails运行起来之后,并不能与外界的internet连接。
起初我判断是我在网络设定方面的问题,但是与之前我自己做的实验平台比较了一下没有发现任何特殊之处。但是由于现在的平台与实验平台相比,系统版本略有区别,于是我又重建了相同版本的os,结果发现问题还是一样的。排除这些问题后,我突然意识到,我的测试平台都是默认的千兆网卡,而这里系统使用的是一张虚拟万兆网卡。我尝试为这个虚拟机增加了一个新的em0千兆网卡后,进行了如下设置:
重启服务,发现一切恢复正常了。问题的原因就这样找到了:jails无法识别VXNET3,因此需要单独配置一张千兆网卡。
这样,BT同步的问题就圆满解决了。
除去常见的SMB分享以外,我还使用了ISCSI(Internet Small Computer System Interface)本质上,iSCSI 让两个主机通过 IP 网络相互协商然后交换 SCSI 命令。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不同于传统意义上的SAN,这里不再采用专用的光纤(FC),直接通过LAN就可以完成。对于电脑来说,它就先当于一个外挂的硬盘。不同于NAS的概念,NAS拥有自己的文件系统,并且通过一定的文件共享协议SMB(CIFS)分享出来。而SAN是每个客户机管理自己的文件系统,对于客户系统来说,SAN共享的是一个数据设备。NAS的优势主要是分箱数据,而SAN主要是有更加可靠的连接。
不同于SMB的设定,这里需要在磁盘上创建的是zvol,也就是虚拟磁盘文件。
为iSCSI设定使用的网络范围。
绑定门户的IP,使得iSCSI的流量只通过这一个IP。
绑定iSCSI target以及Extend附加磁盘后就可以去系统中寻找并且挂载了。刷新,这样就会在局域网中搜寻门户。切换到目标选项卡后,点击刷新,就可以找到相应的target,点击连接就可以连接到iSCSI target
这时候就像一块全新的硬盘设备,需要初始化硬盘,并新建分区。
完成后就可以像普通硬盘一样的管理,使用了。
以上就是对整个FreeNAS建立NAS+SAN+Sync的方案描述,FreeNAS这样的一个系统确实在灵活性方面有不小的优势,而且借助于ZFS、RAIDZ等等技术,它能够做到比较的高效可靠,总的来说算是一个不错的NAS系统解决方案。经管比起OPEN-E nexenta等收费专业系统而言,稳定性以及效率还有点区别,不过依然是足够优秀的NAS/SAN系统。