搭建一台真正的 All in One Home Server 篇三:高性能冗余存储服务器的安装配置及性能测试
首先要抱歉,这一篇拖的时间有点长,有两样事情耽误了功夫:
买功率测试计。本来以为京东肯定有卖的,结果发现只有第三方有货,最后还是在淘宝买的。看来京东还不能称之为万能,淘宝才是全世界最猛的供应链。
性能测试。由于最近一直在用笔记本,没有办法测试NAS的满速读写速度,因此还搭了一个台式机,又耽误了一天。
好事多磨,金币也不是那么好挣的啊。
前言
通常我们说冗余存储,讲的都是RAID-磁盘阵列。关于RAID的简单介绍
对于家用玩家而言,可能比较常见的是RAID0和RAID1。
RAID0是没有冗余保护的。使用RAID0可以把N块硬盘并联成一块硬盘,理论上磁盘的性能可以翻N倍。但是带来的风险是,任何一块硬盘出现问题,整个文件系统会完全破坏,数据无法恢复。
RAID1是1+1备份存储,两个硬盘存储一模一样的数据,一般对硬盘性能影响不大。RAID1甚至不需要专门的硬件,目前常见的家用主板基本都支持。
有更高级的玩家,会在家里做RAID5或RAID6,这就要求专门的硬RAID阵列卡了。RAID5和RAID6的维护和管理都相当复杂,对硬件(带NvRam&电池的阵列卡,很费脑的硬盘选择....)和运维的要求都很高。能够在家里把RAID5/6玩好的,是需要相当高的水平的。
也有玩NAS的(群晖或QNAP,感觉群晖多一些,应该是受黑群晖的影响)。我之前用过2年的黑群,还算省心。但黑群最大的心结是升级,比如我刚刚手欠升级到5.1-5055,结果导致所有磁盘都无法上线了。好在我已经把所有数据都导入到了新的ZFS服务器里,没有造成损失。
方案简介
本次家用服务器的搭建,我放弃了硬RAID卡或群晖的方案,转而选择了ZFS。关于ZFS的简单介绍。
ZFS是SUN为Solaris操作系统开发的一个高级的文件系统,可以用相对简单的方式提供安全的冗余存储服务。我对ZFS的理解也不深,只能借用网上的介绍:“ZFS 文件系统是一个革命性的全新的文件系统,它从根本上改变了文件系统的管理方式,这个文件系统的特色和其带来的好处至今没有其他文件系统可以与之媲美,ZFS 被设计成强大的、可升级并易于管理的”。简而言之,反正就是很高大上就对了。
如此高级的东西现在可以免费用上,不试试岂不是很遗憾??
说到这里讲个典故:当初,SUN为了Solaris操作系统可以更好的发展,维护了一个相当活跃的名为OpenSolaris的开源社区。但自从SUN被Oracal收购后,Oracal对OpenSolaris完全没有兴趣,致使OpenSolaris解散,也使得大量Solaris的开发人员离职流入开源社区。种种机缘因果,导致Solaris的研发停滞不前,但基于OpenSolaris衍生出的开源项目(内核:Illumos,发布版本:OpenIndiana,OmniOS,SmartOS等)反倒发展的风生水起。这也是为什么现在我们能够用很少的代价,就能够用上ZFS的原因。(所以,我们不要轻易判断一件事是好还是坏,真的很难讲。)
硬件准备
关闭Supermicro主板的Active State Power Management功能
官方要求。
阵列卡刷IT模式
安装存储服务器的虚拟机之前,硬件还要做一个准备工作。
我这次用到的是LSI 9211-8i阵列卡,其实精确地说,这是一块Host Bus Adapter,并不是传统意义上的RAID卡。这个卡出厂默认是IR(integrated RAID)模式,即有简单RAID功能的模式(比如支持RAID0,RAID1之类)。而安装ZFS是不需要任何芯片层面的RAID功能的,需要把固件刷成IT(initiator target)模式,即只支持HBA功能。
从图上可以看出默认是IR模式,闪光灯没控制好,大家凑合看。
如何刷IT的教程,网上的教材很多,但多是不好用的。其实Supermicro主板刷LSI的固件是很简单的,总结步骤如下:
从官网下载该9211-8i固件版本19(根据nappit官网的建议,不要下最新版本20的固件),以及UEFI下的固件刷新程序,拷贝到U盘根目录,其实一共只需要三个文件:sas2flash.efi, 2118it.bin, mptsas2.rom
重启主机,使用Supermicro内建的的“UEFI shell”启动。
下发命令“fs1:”,将目录切换到U盘。
下发命令“sas2flash -o -e 6”,清除板卡上固件大部分内容,千万别把参数下成7了,否则后果自负哦。
下发命令“sas2flash -o -f 2118it.bin -b mptsas2.rom”,刷入IT固件。
下发命令“sas2falsh -o -sasadd 500605bxxxxxxxxx”,将xxxxxxxxx替换成板卡标签上的值,(怀疑这一步不做也可以,不过我还是做了)
完成后重启电脑,模式已经改为IT了。
再说几句闲话,在最新的20版本固件中,LSI的logo已经变成了Avago。其实去年LSI已经被Avago收购了,听说Avago刚刚又收购了BroadCom。这年头做芯片的也不容易啊。
配置设备直通(VT-D特性)
进入ESXi,先把所有需要直通的PCI设备配置成直通。其中设置阵列卡直通是和存储服务器有关的。
根据提示,需要重启ESXi才能使得直通生效。
系统安装
本来计划选择OpenIndiana+napp-it的组合(napp-it是一个网页版的ZFS管理工具,由于类Solaris系统的资料比较少,因此nappit几乎是必备的),后来发现napp-it官网上直接提供了ESXi 5.5U2的虚拟机下载(是OmniOS+nappit),这应该是更简单的选择,于是变更方案。
一共只需要5步:
下载napp-it_15b_vm_for_ESXi_5.5u2-6.0.zip
解压缩后,将该目录上传到ESXi datastore。
鼠标右键点击文件夹中的napp-it_15b.vmx,选择“添加到清单”。
在“编辑虚拟机设置”中,添加直通的阵列卡,并将系统内存更改为16G(一般推荐每T硬盘分配1G内存,由于有5个3T硬盘,因此分配了16G);添加网卡,配置为vmxnet3模式(根据nappit官网建议,E1000模式貌似有稳定性问题);并使能VMCI功能。
根据VMWare的官方建议,保持电源管理为默认值“平衡”。
一切配好,启动虚拟机~
系统配置
先通过ESXi的客户端登录到系统的命令行,缺省的root用户密码为空。需要第一时间更改root密码。可以使用ifconfig查看系统的获得的动态IP。
任务一:配置一个静态IP
作为服务器,一般我推荐配置一个静态IP,以免服务器重启后DHCP IP变化,导致需要修改一大堆配置。Solaris配置静态IP的方式还是比较特别的,官方说明。简要版本如下:
通过dladm命令查询链接
通过ipadm命令增加IP接口
通过ipadm命令配置静态IP地址
通过ipadm命令查看IP接口和IP地址
任务二:安装VMware Tools
对于类Solaris系统,安装VMWare Tools最大的好处是,可以通过ESXi直接关闭或重启虚拟机。这样在系统维护的时候,就不需要对每个虚拟机进行操作了。从Nappit官网下载的虚拟机已经自带VMware Tools了,这一步可以省略。此外,对类Solaris系统虚拟机手工安装VMWareTools的步骤如下:
使用7zip从VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64.iso中提取TOOLS.T00文件。
使用7zip从TOOLS.T00中提取solaris.iso文件。
使用7zip从solaris.iso中提取vmware-tools-distrib文件夹。
使用WinSCP将该目录拷贝到虚拟机的/root目录,并修改目录权限为777(chmod)。
在命令行执行“perl /root/vmware-tools-distrib/vmware-install.pl”
可以通过vSphere Client查看虚拟机的VMWareTools是否正常运行。
任务三:配置pool并创建目录
ZFS里并没有Windows里的磁盘,分区等概念,取而代之的是磁盘资源池(pool)。只需要简单的把几块硬盘塞到一个资源池里,就可以把这些硬盘当成一份大的资源来使用了,非常方便。
磁盘资源池的类型有几种,这里用的是raidz(即raidz1,是1:N保护的做法,可以在一个磁盘故障的情况下恢复数据)。当然,如果对数据安全性要求很高,可以选raidz2或raidz3(这些我没有仔细研究,请精通的大侠补充)。
创建好了pool,就直接创建一个文件系统(可以简单理解成一个共享目录)。
只需以上两个简单的步骤,一个带冗余保护的共享目录就建好了。
性能测试
对于Windows系统,可以直接运行“192.168.18.8”访问该共享目录。
对于OSX系统,通过“Finder > 前往 > 连接服务器”,在服务器地址中填写“smb://192.168.18.8”访问该共享目录。
以上两种方式,都需要用系统的root用户和密码做身份认证。
本虚拟机性能测试结果
由于有大量的内存做一级缓存,性能测试的结果有点快的离谱了。
跨虚拟机性能测试结果
读速度(ZFS -> WIN7虚拟机)
写速度(WIN7虚拟机 -> ZFS)
WIN7虚拟机没有安装过任何驱动,安装驱动后性能可能还能更高一点。
跨物理机性能测试结果
读写测试全部取第一次测试的结果,曲线相当平直。
读速度(ZFS -> WIN8)
写速度(WIN8 -> ZFS)
功耗测试结果
最后入手的是功率计是淘宝上最大销量的北电海盗版。
先测试一下黑群晖,配置为:G1610+H77主板+2G内存+2T硬盘*4+风扇*3。关机功耗和待机功耗分别为:
再测试新配服务器,配置为:E3 1230v2 + C202主板 + 8G(ECC)内存*4 + 3T硬盘*5 + 2T硬盘 + SSD + 9211-8i阵列卡 + HD6570显卡 +HD6450显卡 + 风扇*4。考虑到散热问题,机箱换成了Antec A300。机箱不能背线,我已经尽力了。(请自动忽略背景,临时过渡房子各种乱。两个月后搬新家,搬好给大家晒装修。)
关机功耗和待机功耗分别为:
待机功耗100w以下,哦耶~~
总结
首先要仔细阅读官方文档,然后再安装ZFS存储服务器就非常简单了。当然,我们现在只用到了ZFS的皮毛,对整个系统的了解还是非常肤浅的。
要想进一步提高ZFS存储服务器的性能,最佳方案是加内存,官方推荐是每T硬盘使用6G内存(1G做cache+5G做dedup)。家用主机真的很难做到啊!!
还有一条路,就是加SSD做读缓存(L2ARC)和写日志缓存(ZIL)。可是ZFS对ZIL的可靠性要求甚高,官方建议:“Do not use cheap consumer SSDs or not write optimized SSDs or SSDs without a supercap”。如果真要搞,需要用Intel SLC SSD(推荐用Intel s3700!!!),成本实在有点吃不消。此外,对于家用(用户少)环境,L2ARC用处不大。
因此,文件存储暂时到这里为止。
==================================最后割一下======================================
下一篇是讲如何搭建“路由器+防火墙+上网行为管理”服务器。
灏矾
校验提示文案
punkyliu
校验提示文案
小妞给俺笑
家里连个wifi,移动设备、htpc在硬盘里在线看个电影什么的…
校验提示文案
挑战一切
但还是想说一句。家用完全没必要……
校验提示文案
kimyunjin
校验提示文案
大爷大妈真高兴
校验提示文案
moonking
校验提示文案
wu_liuyi
校验提示文案
隐形眼睛
校验提示文案
拉里埃里森
校验提示文案
xixi1031
校验提示文案
nashuideid
校验提示文案
g0oker
校验提示文案
Qkt_Ttxs
校验提示文案
kenlui
校验提示文案
十月de雨
校验提示文案
布朗熊大
校验提示文案
[已注销]
校验提示文案
mervync
校验提示文案
qubit
校验提示文案
方得始终
校验提示文案
零钱
校验提示文案
逍遥风雨10
校验提示文案
零钱
校验提示文案
睿慧爸
校验提示文案
DrifterX
校验提示文案
ecilop
校验提示文案
kecaton
校验提示文案
Rewindo
校验提示文案
G23Y
校验提示文案
Bleakwind
校验提示文案
Bleakwind
校验提示文案
Bleakwind
校验提示文案
Bleakwind
刷卡的时候我一直用sas2flash -o -e 7, 然后刷rom和bin,没有任何问题,不知道作者说不能用7这个参数是什么意思?
校验提示文案
okenny
校验提示文案
weiwei2001
楼主,官网下不到这个版本了。
官网是这个:napp-it_15d_ova_for_ESXi_5.5u2-6.0. (Sep 18,2015)
去看看
能不能发一个napp-it_15b_vm_for_ESXi_5.5u2-6.0.zip版本啊
最近正在折腾虚拟机中。。。
校验提示文案
lhmujm
校验提示文案
cybernow
校验提示文案
樱庭奈奈美
基于EXSI是考虑到便捷性。
如果能基于Oracle Solaris Zones下面的虚拟化就更好了。
不过官方说明书也说了
创建 ZFS 存储池的最简单方法是使用整个物理磁盘。在从磁盘分片、硬件 RAID 阵列中的 LUN 或基于软件的卷管理器所提供的卷中生成池时,无论从管理、可靠性还是性能的角度而言,ZFS 配置都变得越来越复杂。
校验提示文案
qubit
校验提示文案