KoolShare

 找回密码
 立即注册
搜索
查看: 36964|回复: 66

FreeNAS折腾手记

  [复制链接]

31

主题

186

帖子

5万

积分

版主

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

精华
3
门户文章
7
魔力币
5994
魔法值
70
注册时间
2015-3-23
发表于 2017-5-14 17:34:32 | 显示全部楼层 |阅读模式
本帖最后由 Amefs 于 2017-7-16 17:38 编辑

Title.jpg
在之前发过的帖子中我组装了一台NAS服务器。最先试用的是open-e,后来收到Pufer送来的一块LSI9211-8i(5月初找人从国内人肉快递到德意志),于是我闲不住又开始折腾新玩意。于是就有了这篇帖子。这篇帖子主要分三个部分:
硬件及系统安装
ISCSI SMB BTSync设定

ZIL与L2ARC试用

主要是记录的我折腾的一些过程,包括一些可能会在折腾中遇到的问题。
帖子中的一些思路来源:
http://doc.freenas.org/9.10/https://unix.stackexchange.com/questions/127001/linux-lxc-vs-freebsd-jail
https://mikebeach.org/2013/02/28/adding-and-removing-zfs-zpool-zil-disk-live-by-gptid/
http://www.freenas.org/blog/a-complete-guide-to-freenas-hardware-design-part-iii-pools-performance-and-cache/
http://www.unixarena.com/2013/07/zfs-zpool-cache-and-log-devices.html
https://www.ixsystems.com/blog/get-maxed-out-storage-performance-with-zfs-caching/
http://thegeekdiary.com/solaris-zfs-command-line-reference-cheat-sheet/
https://www.getnas.com/2015/02/670.htmlhttps://www.getnas.com/2015/01/209.html

Part1:硬件及系统安装

首先感谢pufer提供的一块LSI-9211-8i,pufer已经帮我事先刷好了IT固件。这块卡原本是LSI的RAID卡,不过受限于SoC,它只能做RAID0/1并且性能也一般,官方提供的IT固件可以彻底将这张卡变成HBA卡使用。先上图。
0.9611-Front.JPG
虽然这张卡已经有了相当年龄,不过仍然是入门级HBA卡中相当靠谱的。

安装这张卡的时候,其实我遇到了点麻烦:我的cpu散热器体积太大,会阻碍这张卡的安装。在尝试更改散热器方向无果后,我突然发现可以略微调节散热器热管的角度,让出大约5mm的距离即可安装,同时我在阵列卡背面使用单面胶做绝缘防止出现意外,那么安装问题就顺利解决了。(由于不想占用下方的x16插槽,主板最下方两条插槽又是实际速度只有x4的插槽,因此最好的方案就是使用最上方的原生x8接口)

0.9211-Working.JPG
在解决完安装问题后就是开机测试了,在BIOS启动的post中能够正确显示已经连接的两块硬盘,说明这张卡已经可以工作了。
snipaste20170513_130817.png
临时使用WinPE进行了一下硬盘的测速,结果显示状态一切正常。
2.TestSpeed.jpg
接下来就是安装系统。这次仍然是底层使用ESXI,与之前不同的是,这次并不通过RDM裸设备映射转交磁盘给系统。这里将整张HBA卡作为PCI-E设备直通给客户系统,那么在理论上不仅可以获得更好的性能,同时能够让系统正确的读取smart信息,可以让系统更加好的判断硬盘的状态,减少出现数据丢失的风险。
3.EnableVt-d.png
在ESXI的WebUI中设置好这张叫做LSI2008的设备的直通后,重启系统就可以正式使用直通功能。为FreeNAS新建一个虚拟机,这里我添加了两张VXNET3网卡,分别对应物理的两个网口,这样做的好处就是可以让iscsi单独走一个网口到交换机。使用VXNET3可以使得虚拟机之间通过vSwitch得到10Gbps的速度。

在选择虚拟机硬件的时候需要注意以下内容:如果使用的是FreeNAS 9.10.x系统,那么SCSI控制器必须选择LSI SAS,同时将硬盘挂载到虚拟SATA控制器下。否则在安装过程中会出现由于没有驱动而产生的各种报错问题。

4.installFreeNAS.png
安装完成后,移除安装盘,重启就可以进入系统。首先需要设定NIC,这一部需要通过系统的控制台通过命令行完成。
5.ConfigNIC.png 6.FinishConfigNIC.png
设置完成后就可以找到以下的显示,那么就可以这样的url访问WebUI了。


Part2:ISCSI SMB BTSync设定

搞定安装后就可以进行FreeNAS功能的设置了。
总的来说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专用的用户与用户组。

7.AddBTsyncUSER.png
接下来,在第一块磁盘(Volume)中创建两个新的数据集,分别是jails专用的空间和BT Sync的同步目录。
8.CreateJailsDataset.png
9.CreateSyncDataset.png
创建好数据集后,默认的用户是root而用户组是wheel。对于同步用的数据集,由于读写需求,必须将所有者和用户组都设定为btsync
10.ChangeSyncPermission.png
由于一开始我使用的是静态IP,系统不会得到DHCP server提供的DNS服务器和网关的信息,因此访问internet存在一些问题,为它设定好网关以及DNS服务器,这样才可以继续设置jails以及plugins。
11.SetDefaultGateway.png
为Jails设定路径,IP范围。
12.ChangeJailsSetting.png
为BT Sync的jails添加外部的数据集挂载点,这样就可以直接将数据同步到系统外部来,再通过SMB分享。
13.AddSyncStorage.png
原本到这里,一切都很顺利。但是突然出现了无法访问jails的问题,也就是说再jails运行起来之后,并不能与外界的internet连接。

起初我判断是我在网络设定方面的问题,但是与之前我自己做的实验平台比较了一下没有发现任何特殊之处。但是由于现在的平台与实验平台相比,系统版本略有区别,于是我又重建了相同版本的os,结果发现问题还是一样的。我尝试为这个虚拟机增加了一个新的em0千兆网卡后,进行了如下设置:

14.SetEM0.png
重启服务,发现一切恢复正常了。(经过坛友提示,可能是因为没有在ESXI vSwitch中开启混杂模式,而通过添加另外的网卡又恰巧避开了这个问题。后面抽空我会再测试一下)
15.AllIPs.png
这样,BT同步的问题就圆满解决了。
20.BTSync.png
除去常见的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,也就是虚拟磁盘文件。

16.Createtgzvol.png
为iSCSI设定使用的网络范围。
17.AuthorizedIP.png
绑定门户的IP
17.BandIP.png
绑定iSCSI target以及Extend附加磁盘后就可以去系统中寻找并且挂载了。刷新,这样就会在局域网中搜寻门户。切换到目标选项卡后,点击刷新,就可以找到相应的target,点击连接就可以连接到iSCSI target
18.FindISCSI.png
这时候就像一块全新的硬盘设备,需要初始化硬盘,并新建分区。
19.ISCSI.png
这样,就可以像普通磁盘一样的使用了。

Part3:ZIL L2ARC试用
首先这是我第一次折腾ZFS这种原本来自于大型机的文件系统。有很多理解还不到位的地方,参考了很多文档,并且做了一定实验后,我得出了以下的一些看法。

FreeNAS作为一个使用OpenZFS的NAS系统,可以使用很多ZFS的特性,其中很重要的就是读写缓存机制。

ZFS的写缓存(实际上算是日志)叫做ZIL (ZFS intent log),而读缓存叫做L2ARC。

ZIL设备实际上是同步写入写日志,根据不同的操作,有的操作需要用专门的ZIL设备,而有一些则并不需要。最开始ZIL一定是在内存中的,并且在zpool中会有一片影响区,当设定了一个专用ZIL设备时,那么这部分数据会首先同步写入到专用设备中,而非写入zpool,那么间接的节约了zpool的io次数,可以一定程度上达到提速目的。



注:此图为没有专用ZIL设备时的同步写入方式

注:此图为使用专用ZIL设备(SLOG)时的同步写入方式

那么由此可见在没有专用SLOG的时候,同步写入过程完全依赖于存储池硬盘的速度。而对于有SLOG的情况下,SLOG中的ZIL是同步写入,而对于存储池中磁盘来说就是异步写入了。ZIL中的数据只有在被读取后才会被删除。ZIL会通过RAM刷新存储池的数据,这里操作被称为Transaction Group Commit。

因此这里设备的选择就显而易见了,一般来说最佳选择是带有电池的NVRAM,其次是SSD,再次是万转硬盘,成本也是递减。

前一阵化身卡巴垃圾佬,在ebay上淘了一块硬盘,我用这块硬盘做ZIL/L2ARC测试。

再提一下L2ARC,类似于二级缓存,在内存不足,内存中ARC填满的情况下L2ARC可以充当二级缓存,加快文件访问。


21.Sandisk-SSD.jpg
针对是否启用缓存的情况,我做了一下对比测试。首先添加ZIL
22.addZIL.png
进入命令行,可以查看ZIL状态
23.EnableZIL.png
尝试拷贝数据时,也可以查看到ZIL有数据在读写,说明已经工作正常。
24.useZIL.png
接下去就是测试了,测试采用了iometer 4K 随机写入,持续3200秒,最后对比没有SLOG的数据,得到了以下散点图:
FreeNAS ZIL.png
可以明显看出来,增加了ZIL之后对小文件的IO有明显改善。ps.至于这些参数的微调优化,我并没有研究,完全使用默认参数,关闭客户机的磁盘缓存后测试得到,因此,ZIL的作用可能还会有更大的提升空间。

接下来对于L2ARC,我也进行了类似的测试,只是这里换成读取。

FreeNAS L2ARC.png
由于我启用了16GB内存,总的来说这里的ARC比较充裕,同时根据文档说明,不是所有的操作都会受益于L2ARC,于是得出的散点图中,是否启用L2ARC并没有什么性能差别。

总结这次的测试可以发现,ZFS文件系统以及FreeNAS还有很多很多可以发掘的潜力,但是受限于目前的知识储备以及硬件差别,我还没有办法发挥它最大的能力。

FreeNAS对于一些玩家和SOHO用途来说可能是一个非常节约成本而且性能强大的解决方案,但是对于家庭来说,配置还是略显复杂。













评分

7

查看全部评分

4

主题

139

帖子

507

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
472
魔法值
0
注册时间
2016-12-1
发表于 2017-5-14 17:46:26 | 显示全部楼层
前排就坐。。。。

1

主题

37

帖子

1980

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
1
魔力币
983
魔法值
10
注册时间
2016-6-3
发表于 2017-5-14 17:57:28 | 显示全部楼层
前排就坐,坐等

318

主题

3210

帖子

5141

积分

中级魔导师

Rank: 7Rank: 7Rank: 7

精华
0
门户文章
0
魔力币
2946
魔法值
0
注册时间
2016-4-1

DDOS纪念勋章

QQ
发表于 2017-5-14 17:57:48 | 显示全部楼层
沙发。。。瓜子。。

1

主题

1044

帖子

1824

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1377
魔法值
0
注册时间
2015-12-8
发表于 2017-5-14 18:14:10 | 显示全部楼层
插件很少,要什么功能都要自己另外折腾
然后就是ZFS在低配置的老机器上持续读取时间长了整个系统会崩溃

31

主题

186

帖子

5万

积分

版主

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

精华
3
门户文章
7
魔力币
5994
魔法值
70
注册时间
2015-3-23
 楼主| 发表于 2017-5-14 18:22:17 来自手机 | 显示全部楼层
kssid 发表于 2017-5-14 18:14
插件很少,要什么功能都要自己另外折腾
然后就是ZFS在低配置的老机器上持续读取时间长了整个系统会崩溃 ...

插件数量其实还行,而且jails可以做很多事,不过这个系统对于老机器是非常不友好。对于RAM的大小要求还特别高,鉴于ZFS是大型机的文件系统,出现这种问题恐怕也是难以避免的。

5

主题

121

帖子

1504

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1427
魔法值
0
注册时间
2016-2-26

DDOS纪念勋章

发表于 2017-5-14 19:20:26 | 显示全部楼层
搬个小板凳……

0

主题

5

帖子

34

积分

魔法学徒

Rank: 1

精华
0
门户文章
0
魔力币
33
魔法值
0
注册时间
2017-2-20
发表于 2017-5-15 10:09:11 | 显示全部楼层
坐等欣赏,学习

4

主题

282

帖子

1570

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1448
魔法值
0
注册时间
2016-11-1
发表于 2017-5-15 10:13:10 | 显示全部楼层
内容呢???

39

主题

662

帖子

2535

积分

初级魔导师

Rank: 6Rank: 6

精华
0
门户文章
0
魔力币
2156
魔法值
0
注册时间
2015-9-24

DDOS纪念勋章

发表于 2017-5-15 10:27:44 | 显示全部楼层
看到好熟悉的NAS啊,大转到群晖之前用它算算应该有7,8年哦,那时还自己编译加一些自己要用的功能。

4

主题

42

帖子

130

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
119
魔法值
0
注册时间
2016-8-24
发表于 2017-5-15 10:34:53 | 显示全部楼层
占坐,一直想上zfs,没有实践啊,正好参考~

2

主题

108

帖子

138

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
122
魔法值
0
注册时间
2017-3-27
发表于 2017-5-15 10:45:14 | 显示全部楼层
直播吗,搬个小马扎等

0

主题

207

帖子

915

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
856
魔法值
0
注册时间
2016-2-27
发表于 2017-5-15 11:17:48 | 显示全部楼层
这么多链接

9

主题

275

帖子

1386

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1228
魔法值
0
注册时间
2015-9-16
发表于 2017-5-15 11:24:23 | 显示全部楼层
二斤牛肉,一瓶啤酒,坐等!!!

1

主题

138

帖子

932

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
881
魔法值
0
注册时间
2016-9-22
发表于 2017-5-15 11:45:55 | 显示全部楼层
你喝酒真浪费菜。
应换成1斤牛肉,8瓶啤酒。

2

主题

81

帖子

225

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
209
魔法值
0
注册时间
2016-9-4
QQ
发表于 2017-5-15 12:12:27 | 显示全部楼层
来啊,来啊,内容呢

11

主题

384

帖子

1341

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1151
魔法值
0
注册时间
2014-11-7

DDOS纪念勋章

发表于 2017-5-15 12:42:39 | 显示全部楼层
前排围观

27

主题

457

帖子

1755

积分

大魔法师

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1513
魔法值
0
注册时间
2015-2-1
发表于 2017-5-15 13:41:17 | 显示全部楼层
看看!等更新

0

主题

514

帖子

2389

积分

初级魔导师

Rank: 6Rank: 6

精华
0
门户文章
0
魔力币
2161
魔法值
0
注册时间
2015-5-20

DDOS纪念勋章

发表于 2017-5-15 14:02:38 | 显示全部楼层
其实一直都有个问题:freenas的驱动优化是硬伤,造成高配低效!不过玩家来说还是不错的,就像以前用旧的笔记本电脑装安卓系统,折腾到最后还是非常多问题!

405

主题

4671

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
0
门户文章
1
魔力币
6752
魔法值
10
注册时间
2016-8-25

AC88UR7000R6400

发表于 2017-5-15 14:26:21 | 显示全部楼层
学习了 感谢楼主分享

联系我们|手机版|KoolShare ( 沪ICP备13045430号962110 沪公网备31010402005377

GMT+8, 2020-5-26 09:06 , Processed in 0.117422 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表