HP Microserver Gen8
最近买了台HP Microserver Gen8用来做NAS,记录一下经验。
服务器的Model number是819187-001,配置是Xeon E3-1220LV2加4G内存,不带硬盘。Gen8的好处是有iLO,可以远程控制。iLO高级版的序列号买也很便宜,实在不想买的话……还有HPiLOKeygen这个东西。
网上不少人建议把CPU升级成1265LV2,不过对我来说功耗和散热非常重要。1220LV2的TDP是17W,1265LV2是45W,并且CPU上原装的散热片设计最高功率是35W。功耗高了差不多三倍,必然温度和风扇噪声都会提升很多,因此我决定保留现在的CPU。内存确实是短板,Amazon上买了两条Kingston KVR16E11/8的8G内存插上去。很可惜Gen8的最大内存就支持到16G,去年有老外一阵折腾最后结论是32G确实弄不上去,就只能这样了。网上不少人说噪声大,我倒是完全不觉得,放客厅里面都要靠很近才能听到声音。
光驱位放一个9.5mm的硬盘架放SSD。Amazon上买了个Protronix SATA Optical Bay 2nd Hard Drive Caddy, Universal for 9.5mm CD / DVD Drive Slot (for SSD and HDD) 的硬盘架,拜托朋友从国内带了个DL180的bracket拧到硬盘架后面,这样可以把硬盘架固定在Gen8的光驱位上。然后再买条HP的光驱专用线531997-001,这条线是专门给HP这种光驱位的SATA和电源二合一的线 - Gen8的光驱电源在主板上是个软驱电源的口,不知道设计师怎么想的。
硬盘位放4块机械硬盘做RAID 6阵列。买了两块WD Red 4TB,两块Seagate IronWolf 4TB,一块Toshiba 4TB NAS做备用。RAID 5有write hole的问题,而且我也不放心只能容忍一块硬盘坏掉的阵列,危险性太高,可用容量少点就少点吧。Gen8自带的阵列是B120i,是由北桥模拟出来的阵列卡,只支持RAID0,1,10或者01,并且不支持热插拔。因为我打算装ESXi而且阵列不放虚拟机,所以我需要一个RAID Controller控制阵列,虚拟机放光驱位的SSD里面。最开始看好的是HP自家的P222,因为这张卡自带电池,有个SFF-8088的SAS接口,新固件可以用RAID 6,并且iLO也支持直接监控。缺点是P222散热吓死人 - 正常运行下温度有85度,必须加一个风扇散热。
然而在eBay买了一块P222发现插到机器上iLO显示PCI1槽是空的……找卖家换了一块问题依旧。没办法,退货从Amazon上买了块Highpoint RocketRAID 2721,也是一个SFF-8087的对内口一个SFF-8088的对外口。RR2721的主控芯片是Marvell 9480,TDP是5W,实际用的时候感觉散热不是很严重,不需要加风扇。
Gen8的四个硬盘位最后通过一个Mini SAS SFF-8087接到主板,拔下来插到阵列卡里面。开机iLO会提示PCI1槽里面的卡Unknown,还好至少不是Empty。很奇特的是Kingston的内存居然还显示支持Smart Memory,应该只有HP本身的内存才支持。不过用起来没感觉到有任何区别。机器里面插了个16G的SD卡用来装VMWare ESXi 6.0,装好之后BIOS里面设置从USB Key启动,指定SD卡就可以。启动之后装Windows Server 2016然后把RR2721直通过去建阵列RAID 6,建好之后初始化卷……然后阵列卡就像火警一样响了。Windows日志提示访问阵列的设备超时。Amazon上看了一下有人也遇到一样的问题,Highpoint的官方解释是“你的硬盘不兼容” - 但是我的硬盘全是NAS硬盘也都在Highpoint的官方兼容列表里面……
没办法,干脆搞软RAID算了。Highpoint倒是给了三种固件,分别对应RAID Mode,Quick Mode和HBA Mode。Quick Mode就是RAID Mode砍掉了从阵列启动的功能 - 跟我没关系。直接刷HBA Mode的固件,砍掉RAID功能。用rufus做一个FreeDOS启动盘,把固件文件解压进去,进FreeDOS执行go.bat就可以刷新固件,重启阵列卡就变成Marvell 88SE9480了。
接下来是操作系统。Windows Server 2016软RAID只能支持到RAID 5,排除。ZFS+RAIDZ2看起来倒是不错,但是FreeNAS明说对虚拟化不友好,Marvell的芯片在BSD上驱动不稳定,并且ZFS太吃内存,一般来说1G内存对应1T空间,RAID 6 4块4TB硬盘就得用掉8G内存,这个实在是难以接受。最后我选用了OMV(OpenMediaVault),也算是跟FreeNAS系出同源,但是对于内存的要求低了很多。装上OMV,因为阵列卡是HBA Mode都不用装Highpoint自己的驱动,Linux内核自带的mvsas就可以自动识别。用mdadm建一个RAID 6上面放ext4,然后用SMB共享出来。resync阵列的时候用iLO看了下温度 - 42C,不需要风扇。另外装了个Windows Server 2008放百度云管家,IDM,Filezilla之类杂七杂八的下载软件直接下载到SMB共享的文件夹里面。
Amazon上订了个APC BK350 UPS,准备把Gen8的USB Controller直通给OMV,让OMV通过USB来监控电源状态,再通过SSH通知ESXi掉电时关机。Gen8的最大功率是150W,平常大概40-50W,APC官网说BK350应该可以在150W的情况下坚持12分钟,这个时间足够ESXi关机了。
UPS到手,OMV上有一个UPS的插件openmediavault-nut,使用NUT来控制UPS。然而网页版的插件也没有UPS的状态监控……决定还是用apcupsd,没有网页状态也无所谓。apcupsd安装配置很简单,装好后打开/etc/apcupsd/apcupsd.conf
设置usbtype和usbcable为usb,device留空。用/sbin/apcaccess
看状态,显示online说明跟ups通讯成功。安装putty-tools
,用plink登一遍ESXi的SSH,登记host key。测试可以把/etc/apcupsd/apcupsd.conf
里面的timeout设为60。确保所有的虚拟机都安装了vmware tools。
/etc/apcupsd/apccontrol
里面设置关机动作:
/usr/bin/plink root@< your ESXi host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff"
一切准备完毕后SSH进OMV,拔掉UPS插头,UPS上面的灯会变黄,同时OMV会提示Power failure,60秒后开始通知ESXi关机,ESXi会通过VMWare Tools先关掉虚拟机再关掉自身。