基于ESXi的家用多功能服务器初建成

基于ESXi的家用多功能服务器初建成
基于ESXi的家用多功能服务器初建成

此帖为本人补档,内容经过合并整理并修改,故与原帖不同。

这是我的“家庭服务器补完计划”的完成部分,是软件部分应用到硬件部分上的结果,但过程可不是1+1=2这么简单……

(硬件篇,软件篇)

经过3个月的不懈努力,我终于认识到HighPoint RocketRAID 2720这块卡无法满足我的需要了,于是S&B(Smash and Buy a new one)了一块LSI MegaRAID SAS 9260-8i,然后顺利搭建起了整套系统。

在这个过程中我充分体会到了非主流硬件无人权这个事实,以及在折腾过程中虽然可以学到姿势,但未必能获得快乐……

所以,如果想愉快地玩耍ESXi,就用HCL上面明确写支持的硬件。除非想体验噩梦难度。

发完牢骚开始说正题。首先软硬件配置。

硬件配置:

主板:Intel S1200BTL,BIOS 41

CPU:Intel Xeon E3-1230v2

内存:Kingston ECC DDR3-1600 4G x2

SSD:Intel 520 240G

HDD:ST2000DL003 x9,DT01ACA300 x3

独立显卡:蓝宝6450 1G

阵列卡:LSI MegaRAID SAS 9260-8i

软件配置:

宿主机:VMware ESXi 5.0 update3

虚拟机:

存储:WinSvr2012R2 2C 1G 40GB/thin VMXNET3,直通LSI MR9260-8i,RDM四块HDD

下载:Win8.1x86 2C 1G 24GB/thin+100GB/thin VMXNET3,无直通

路由:pfSense2.1.3 1C 512M 2GB/thick E1000,无直通

桌面:Win8.1x86 2C 1G 24GB/thin E1000,直通6450及USB控制器1C2D

工作:Win8.1x64 4C 2G 32GB/thin VMXNET3,无直通

(thin意为虚拟磁盘精简置备,区别于thick厚置备)

硬件和软件的部分,在之前的硬件篇和软件篇两篇帖子里面基本都说到了。

因为“有什么”、“怎么做”都已经说过了,重新排列组合炒个冷饭也没意思,这里就不再细说软硬件是怎么搭的了。服务器的意义在于服务,所以只说说要如何服务,另外再补充一些经验和信息。

这是目前的虚拟机配置,VM1 2 3 5 6分别对应上面说的5个功能,还有测试需要的虚拟机就随需随建了。

VM1 2 3 5这四个虚拟机是随ESXi系统开启和关闭的,也是7x24运行的。VM6只在需要的时候才开启。现在这个情况下整机内存消耗是4700MB多,可用内存上限是7900MB,所以说总共8GB的物理内存,装上ESXi以后很是捉襟见肘。

下面说一下每个虚拟机都干什么活。

VM1存储

最开始的计划就是用WinSvr提供存储服务,在为HPT RR2720这块卡努力奋斗的时候也试过FreeNAS和OpenMediaVault这两个系统,但都是悲剧收场,所以才下决心买了LSI 9260。(关于HPT RR2720如何不能用,以及折腾这两个系统的过程,以下简单说明)

因为最近几个月一直在折腾VM ESXi虚拟机相关,这里也总结一下这块阵

列卡在虚拟机中的表现。

一个定性的概括就是,这块阵列卡完全不合适用来折腾虚拟机。

这块阵列卡只支持到ESXi 4.0版系统,没有更高版本的驱动支持,所以就

别指望用它做引导和数据存储阵列了。

直通以后的情况也不甚理想,在物理机上很理所当然的东西,到了虚拟机

里面就是一团糟了。

经过我的实验,在Windows(7/8/8.1, Svr2012)里面,阵列总格式化容量

不能超过6TB(因为我只有2TB硬盘)。只要超过6TB,分区无法联机或者

无法完成格式化,系统会被卡死,重启会停留在loading画面上。

注:“阵列总格式化容量不能超过6TB”的意思是,虽然可以在WebGUI或者

RAID BIOS里面建立更大的阵列,但分区最大到6TB(左右),8TB是绝

对不行的。不论是一个阵列,还是多个阵列,甚至所有盘都是Legacy模式

单盘用,都不能超过这个限制。我试过不组RAID,用Windows的动态磁

盘和存储空间,同样只要超过6TB一样系统卡死。我还试过8块2T盘组成

两个RAID 5阵列,同一时间只上线一个,短时间内可以正常使用,但阵列

卡会无征兆地失去响应,原因未知,因此也不能作为权宜之计使用。

为了最大程度利用这块阵列卡,我还试过在FreeNAS(基于FreeBSD)和

OpenMediaVault(基于Debian Linux)上面用,结果跟Windows类似。

FreeNAS 9.x版本原生支持这块卡,但只要我把它直通过去就会遇到中断

问题,会每隔1秒刷一次irq16错误,后来还有irq19。但在WebGUI里面建

立ZFS和UFS阵列都是没问题的,数据也可以正常写入。只是受内存限制

(只有2GB),读取的时候惨不忍睹(速度归0的时间比有速度的时间

长)。而且我不能确定这个中断错误是不是有影响,在写入和读取过程中

也会不断刷出一些错误提示。由于惨不忍睹的读取,所以这个方案不可

用。

OpenMediaVault并没有原生支持,需要自己添加"Backport"和驱动。添加

完驱动以后,不论是用阵列卡做阵列还是用OMV做软阵列,都会自始至终

弹错,甚至无法完成初始化步骤就会报告失败。

因此OMV的方案是完全不可用。

这个WinSvr2012R2只开启了“文件和存储服务”,并将直通来的LSI 9260上建立的RAID 5阵列做一整个分区,直接共享驱动器根给本地LAN。另外还有RDM的1块2T和3块3T HDD,所以可

以在vSphere虚拟机标签页里面看到这个虚拟机的置备空间有10TB大。

这里遇到了一个磁盘容量限制的问题。在ESXi 5.0和5.1版本中虚拟磁盘的最大容量是2TB,新建一个虚拟磁盘是无论如何不能超过这个值的,但RDM可以,不过会遇到一些问题。如下图

这是VM1-WinSvr2012R2的磁盘管理截图,磁盘0是ESXi建立虚拟磁盘,磁盘1是直通LSI 9260的阵列,磁盘2是RDM的1块2T HDD,磁盘3-5是RDM的3块3TB。可以看到磁盘管理并不不知道RDM过来的3T HDD有多大,但是现有分区是可用的,只是无法在磁盘管理里面进行操作,比如删除和新建都会提示扇区错误。在这里我是在别的电脑上建立好了一个带区卷,然后搬过

来直接用的,虽然提示错误和有危险,但不影响使用,当然这不保证真的没问题。即使不是动态磁盘,常规的基本磁盘一样无法识别磁盘大小,也无法操作分区。

这是ESXi 5.0和5.1版本的限制,解决方案是用ESXi 5.5版。但我说过5.5版在这块主板上有直通USB控制不能的问题,所以没法用,因此只能将就着这么用了。反正数据已经迁移完毕,这4块RDM的盘也没必要一直在线了。

LSI 9260这块卡是买来直接就直通进虚拟机里面用的,固件什么的都没刷,目前是MR4.8版。我个人觉得买个9260做家用存储还是太浪费了,更老的8708EM2都能做到,但考虑到日后可能全线升级到3T甚至更大的硬盘,这钱花的也不浪费。何况还有512n、512e和4kn的问题,这都不保证用老卡不会出问题,特别是我这8块盘3种固件,512n和512e混搭的。都说到这儿就来一个喜闻乐见的HD Tune跑分吧,1M区块,阵列设置见图。

波动略大,跟初始化有点关系。读取的曲线更平滑一些,不上图了。个人感觉再来8盘都没问题。现在这块卡是插在实际PCIe x4线路的插槽上用,HDD性能限制导致顶不到PCIe 2.0 x4的带宽上限。

再来说一说DT01ACA300,也就是论坛里俗称水区标配的这块盘。通电3周以来,给我的感觉很不错,发热一般(因为安装位置不佳,风扇并不能有效照顾到,但在室温30度的情况下还能保持最高45度以下,可以接受了),噪音不大(服务器在隔壁屋,而且机箱内各种风扇噪音早把硬盘声掩盖住了),无C1。最重要的是这盘相当便宜,而且是目前桌面级HDD里唯一支持CCTL(东芝叫法,大家习惯用西数的叫法TLER、希捷&ATA标准叫法ERC),也就是适合用在RAID阵列中的。早先西数部分绿盘和日立部分桌面级也可以靠官方工具开启这个功能,但随着各家纷纷推出NAS HDD,这项福利也就被干掉了。目前桌面级有这项福利的只有东芝的DT01ACA300和ACA200,也就是3TB和2TB的型号,剩余1TB和500GB的型号是原先日立的盘换贴纸的产物,所以没有CCTL。

这是5月中刚买来,气温还没这么高的时候跑的全行程测试,选取的是夹在中间的一块。

VM2下载

除了24GB的虚拟磁盘用来装系统以外,还有100G的虚拟磁盘作为下载目标盘,这个分区同样共享驱动器根,可以让本地LAN内访问。VM1可以通过映射这个驱动器对下载的文件进行归档和整理。

有人会问为什么要把下载单独出来。理由是现在各种xx下载软件和xx网盘,特别是国内的,大多带有各种插件和不安全因素。我不想把整个存储都暴露给它们,所以把下载单独出来。当然这只是片面的安全感,还有就是专工专用,其他的虚拟机挂了不会影响其他服务的正常运行。

VM3路由

这是后来添加的功能,网络架构如图。

WAN:82579LM(vmnic0) - VM WAN - pfSense em0 - PPPoE

LAN:82574L(vmnic3) - VM LAN - pfSense em1 - DHCP

其余虚拟机网卡都挂载在VM LAN这个网络上,然后把路由改成AP模式,从82574L出网线给接上。

(用82574L做LAN出口是为了还要远程访问BMC,如果它做WAN就访问不到了;vmkernel的IP地址可以DHCP获取,我这里为了稳妥还是用了手动指定IP,以便万一软路由挂了还可以直连访问)

等于说虚拟机保持原状,还是在ESXi的虚拟交换机内交换;路由变成了无线AP,充当有线交

换机+无线AP的角色。

目前还在实际测试中。pfSense这个软路由(实际上是防火墙)功能很强大,先慢慢熟悉,逐步启用功能,以后还想用它做VPN Server。

pfSense可以安装一个"Open-VM-Tools"实现基本VMware Tools的功能,包括随主机启动关闭、VMXNET2万兆虚拟网卡的支持。测试使用VMXNET2做LAN端口的时候出现过掉端口的问题,用E1000就没问题。

感谢@overthink@Asuka提供经验和帮助。

VM5桌面

这是软件篇的核心内容,也是整个系统可行的难点之一。好在我当年选择了一块A卡,这给实行带来了很大的方便。

独显和一个USB控制器直通进虚拟机,然后HDMI链接到显示器,鼠标键盘插到直通后的USB 接口里。早先是把之前VM Workstation里的Win7虚拟机用vCenter Converter迁移过来,重新装一下VM Tools和显卡驱动,就实现父母游戏机的无缝迁移了。这是考虑到父母的使用习惯问题,所以没有全新安装一个Win7或者升级Win8.1。

但是,就像我以前说过的,在你觉得看起来挺好的时候,肯定会出一些莫名其妙的问题,这个当然不例外。在上线的最开始几天就发现应用程序会莫名其妙地失去响应,伴随着没有声音,需要重启虚拟机才能恢复。接着发现这跟切换用户和注销用户有关系(父母各用各的用户账户,以避免打架……),反复几次以后Windows声音服务就会死掉。尝试升级了显卡驱动以后只是把周期延长了一些,而且还出现丢设备的情况,需要重启主机才能恢复。现在我依然不清楚问题来源是什么,只能说这是虚拟机、操作系统、驱动和硬件之间的配合问题。后来改成让让父母合用一个用户账户来规避注销/切换账户这个问题,但依然不定期出同样问题。

所以说,非主流用法也会有非主流问题等着你,看过不少人用类似的方案,但估计他们既不会几个用户账户之间来回切换着用,也不会直接从高版本的Workstation迁移到低版本的ESXi上的……

最后终于下决心全新安装一个Win8.1试试,用了一个多月没有再出问题(事实上还是有同样问题,但发生周期要久多了)。就是迁移到新系统和教父母适应Win8.1的界面费了点功夫,但Win8.1u1能直接进桌面还是使情况好很多。这一下也使得我家里彻底把Win7淘汰了,只有临时需要的时候才会在VM Workstation里虚拟一个Win7用。

需要特别说明的一点是,用vCenter Converter迁移过来的虚拟机,在直通PCI设备以后,需要手动修改一些虚拟机的配置,比如禁用虚拟机内存热添加,为虚拟机预留全部分配的内存。这两个设置在新建虚拟机并配置直通设备以后是自动修改的,迁移的虚拟机需要手动,这个要注

意。

只要预留到分配的内存大小即可,不用全部锁定。如果不修改这两个设置的话,开启虚拟机的时候会提示内存错误。

VM6工作

最后这个就没啥可说的了,就是给转码这类高负载的工作用的。

ESXi有比较智能化的核心、线程分配机制,再加上其他3个虚拟机的日常负载比较低,所以给VM6分配4C完全没问题。在VM6 CPU满载的情况下,其他3个虚拟机的活动也不受影响。

以上就是现有5个虚拟机分别要干的活了。都是基于Windows,完全没有什么高深的东西。除了VM4以外,其他几个日常都用远程桌面操作,也不用开vSphere。

有了ESXi做基底,上面再搭什么虚拟机都是随心所欲了,而且几乎不会把整个主机弄崩。

vSphere也就充当了KVM的角色,除非要改BIOS、动硬件,其他一律可以远程操控了。

现在这套系统可以说实现了我预期的全部功能。但就以实际效果来说,大概只比原来好了一点点,也就是说折腾的意义远大于实用意义。嘛,用流言终结者的名言说就是——值得做的,就值得做过头。

目前整套系统的短板,除了内存总量稍显不足以外,就是ESXi和虚拟机都要依赖单一一块520了。虽然520是很靠谱的盘,但既然都做到这份上了,能组个RAID 1或者RAID 10当然更好了,就是为了这个还要再买个HBA才行。另外一点就是,ESXi的S.M.A.R.T.功能实在够简陋,只能用ESX Shell查看,而且报告的信息相当有限。我现在是除了系统盘以外都直通进虚拟机,让Windows里面的HDS来监控硬盘健康状况,但520的就没法管了。

ESXi可以直接读取主板的IPMI信息,在vSphere配置选项卡的健康状况里面可以看到,包括电压、风扇转速和各部件温度这些数值都有,但跟在Windows里和直接Web访问BMC时候一样,CPU温度还是以相对Tj.max的差值表示的。

告诉你是一片绿勾就别管了,想管也管不了。

最后附一张服务器内部新照,真是苦了这吸尘器了,本来挺轻量的箱子……

SAS线买的不太合适,应该买直头的就好,弯头的反而别扭。山寨3的显卡伴侣重装上阵,用来吹9260的散热片避免过热,不过还是挺烫的。现在箱子内部有40度以上还是没问题的。然后就是编号从1到C的12块HDD和最上面的520,阵列卡的8口+主板的6口用掉了13个还剩下1个……

关于功耗

由于主机升级、添置了不少新货,这也使得功耗比过去明显高了不少。在日常使用中主要有两种状态——典型负载和典型高负载。

两者的主要区别就是VM6是否开机。

典型负载,VM1 2 3 5开机。

此时功耗在137W-142W的范围内。

典型高负载,所有VM都开机,VM6用MediaCoder压片。

此时功耗在185W左右。

补档备考

1. 将原帖补充的内容整合进主贴。增强了同硬件篇和软件篇之间的关联度。

2. 由于引用帖失效,所以把HPT RR2720的部分以引用的形式补充进去。

相关主题
相关文档
最新文档