不少朋友已经“家大业大”,需要一台HomeLab承担多种任务,比如存储、下载、HTPC等等。
由于VMware ESXi声名在外,大部分人就以ESXi为备选甚至正选方案。
这里我就不说ESXi有什么用、有多好了,想跳这个坑必然有做一些功课,就说一些经验,也希望集思广益,方便他人“一路走到底”。
首先,也是最重要的——先确定是否有必要用ESXi这个方案。
不管你是为了防全家桶、防熊孩子,还是只是为了装x,总之记住不要搬起石头砸自己的脚,不过把石头填进坑里还是很爽的。
那么,以下开始正篇。
1. ESXi,或者说正式叫法vSphere Hypervisor,是免费的。
虽然网络上有很多资源可以下载,但如果你是个“守法公民”的话,可以直接在VMware官网用邮箱注册ID,就可以免费下载ESXi并取得免费License。免费License的授权范围是单CPU,不限制核心和线程数,只有基本功能。
说是基本功能,但肯定是够HomeLab用了。那么想用vCenter怎么办,算号器满地都是,VMware不会闲的没事去查个人的,人家卖的是服务,比如你紫屏了,导日志给VMware给你分析,不交钱肯定没这种服务。
2. ESXi的硬件需求。
ESXi的基本硬件需求可以说很低,毕竟只是个轻量级Linux系统,基本要求就是:a)硬件虚拟化,近10年的主流平台都支持;b)不低于4GB内存;c)网络通;d)最低限度的存储空间。
真正的硬件需求其实是你希望ESXi实现什么目的:多少个虚拟机——多大的内存和存储空间,直通显卡——VT-D/AMD-Vi功能,等。
a) 硬件虚拟化,Intel的VT-x和AMD的AMD-V已经是标配了,如果需要直通显卡等PCI设备就需要硬件支持IOMMU。在Intel平台上就是VT-D功能,需要CPU和主板同时支持,需要注意VT-D并不是消费级功能,但很多主板都会直接或者变相开启,需要自行确定。AMD平台叫AMD-Vi,很长时间没摸过AMD平台了,道理应该类似。
b) 没有至少8GB内存还是别想了,这个没什么可说的。虽然ESXi的好处就在于内存分配是动态调整的,也可以利用SSD作为主机缓存。但在有PCI直通的虚拟机里面需要预留固定的内存,有2个需要直通的虚拟机物理内存就见底了。使用SSD作为主机缓存虽然效果确实不错,但还是能感受到性能影响的。
c) 因为ESXi完全依赖网络去管理,所以安装之时就要求有可用的网卡,否则会直接报错终止。然而考虑消费级主板主流的螃蟹和QCA/Killer网卡并不被ESXi所支持,虽然并不是完全找不到它们的驱动,但准备过程是极为痛苦的。这方面推荐采用Intel或者Broadcom网卡方案的产品,具体参考VMware HCL IO Device。
d) 虽然说存储空间够用就行,但需要注意ESXi是挑盘的。可能很多人知道ESXi对Advanced Format(AF)格式的磁盘支持不佳(包括HDD和SSD),具体来讲就是在ESXi6.5(VMFS6)之前都不支持512e格式,自始不支持4Kn格式。对512e来说是可以识别硬盘,也能使用,但在某些情况下会造成磁盘性能极具下降,比如快照后;对4Kn来说就是根本不识别硬盘,当然也就没法用,具体可以参考VMware知识库。
网络和存储这两个很容易被忽视,所以一定要注意。
3. ESXi的版本。
我们现在能接触到的ESXi版本已经是5.0以上的了(5.0, 5.1, 5.5, 6.0, 6.5),不同版本的硬件兼容性和功能都有所区别。
关于硬件兼容性,还要以VMware HCL Systems为准。
需要注意,品牌服务器厂家给的兼容列表和VMware HCL的认证有的是不同步的,二者的考量并不相同。HCL里面会有安装某个ESXi版本所要求的最低BIOS版本,但服务器厂家给的兼容列表中就没有此版本。
ESXi系统内置的驱动也会随着版本变化有所增减,比如i82579网卡(很“古老”了)在ESXi6.5中有了内置驱动,但之前的旧版本却未内置需要自己补。
功能上的变化需要看各个版本的Release Note,举个常见例子就是ESXi5.5(虚拟机版本10)开始支持超过2TB的虚拟磁盘,还有上面说的512e的问题。
4. ESXi的安装。
ESXi可以安装在本地硬盘、U盘、SD卡以及网络位置上,系统本体的容量要求很低,常见做法也是安装在U盘或者SD卡上面,与虚拟机数据存储介质相分离。
一些大的品牌厂家会提供定制版ESXi ISO,其中会包含专用驱动及配置文件,一般品牌服务器都会建议使用厂家定制版安装。有一点要注意是部分RAID卡会被识别为Remote Storage Device,不要被唬住,事后可以改为本地存储设备。
5. ESXi的管理。
ESXi的管理手段一般是vSphere Client客户端、vSphere Web Client网页客户端及SSH工具三种方式。从ESXi6.0开始系统就内置了ESXi Embedded Host Client,免去了安装vSphere Client及vCenter Server,可以直接浏览器登陆Management IP(xxx.xxx.xxx.xxx/ui/)登陆网页客户端进行管理,界面跟安装vCenter后的Web Client类似,但是完全采用HTML5技术,不需要安装JRE。
ESXi6.5没有对应版本的vSphere Client客户端,要实现ESXi6.5的新增功能就只能通过Embedded Host Client和vSphere Web Client进行操作了。我个人的体验就是Embedded Host Client还有些功能不完善,或者说习惯改不过来,还需要与vSphere Client客户端互补。比如在vSphere Client客户端可以上传整个文件夹到数据存储,但HTML5客户端就只能一个一个文件传;HTML5的控制台也不支持直接挂载本地镜像,要先上传到数据存储中进行挂载。
接下来说几个做HomeLab比较关心的问题。
6. 关于直通显卡。
对Intel平台而言,直通显卡成功的关键是禁用核显(iGPU)及主板板载声卡,这两个设备无法被直通,即使直通也无法正常用。所以没有最好,有的话就禁用掉。
众所周知的是随便个A卡都能直通进去,运行也正常。唯一一点就是虚拟机装win7需要改pci.hole参数,但我个人的做法是新建虚拟机的时候选用win8的profile,再安装系统和驱动就没有任何问题了。
有同学指出N卡也可以直通,参考 @CatoHT 写的 记录下EXSI直通GTX1050TI碰上的坑,有条件我也会尝试下。
对于没有BMC集显的平台而言,直通显卡也就意味着物理主机这边进ESXi系统以后无法进行本地控制了。虽然正常情况下都是通过远程去管理的,但出问题的时候要修复也就比较麻烦了。
7. 关于USB直通。
由于VMware做的限制,USB键鼠这种人机界面输入设备无法直接用USB设备直通方式给虚拟机用。USB HUB对ESXi来说是透明的,无法被直通。所以只能“曲线救国”将USB控制器像直通显卡一样把设备直通给虚拟机。
因为主板南桥中必然有USB控制器,所以最理想的方案就是直接直通集成USB控制器。是的,这在ESXi5.0上面是可行的,但也只在5.0上面可行。
在ESXi5.1上面直通USB控制器是个灾难,不论集成还是独立的都不行,当然现在也应该没有用ESXi5.1的了。
ESXi5.5可以把集成USB控制器直通到虚拟机中,但大概率无法驱动,即使能驱动也没法用,独立USB控制器正常。
到了ESXi6.0以上,直通集成USB控制器就是徒劳了,虚拟机根本识别不到,独立USB控制器依然是正常的。
所以为了用南桥集成的USB控制器就只能用ESXi5.0的版本,但这也就限制了虚拟机的功能;想用新版ESXi的话就要用独立USB控制器,不管是板载的第三方还是占一个PCIe槽位。
有人问键鼠二合一的USB收发器如何,我可以告诉你不行。蓝牙可以试,但很可能收不到蓝牙的信号。
8. 关于无线网卡直通。
既然已经有了ESXi,那么顺便做个软路由也是水到渠成的。
有线网的问题很好搞定,除非你要上10Gb LAN和NAT,不然宇宙真理级别的虚拟82574L能解决1000M及以下的所有问题。
问题在于无线网卡。首先不论是PCIe的还是USB的,直通都是可以的,但结果很可能都是没有信号,参考 @overthink写的 ESXi家用服务器搭建:ROS软路由篇。
软路由的无线网络兼容方面可以说跟有线网正好相反,是Atheros(QCA)的兼容性最好,Intel的反而不佳。
9. 关于存储直通。
如果有RAID或者HBA卡的话,直接当作一个PCI设备去直通是没有问题的。但要注意某些设备并未对直通做过优化,比如我之前用Nytro MegaRAID的那段时间,直通NMR每次重启服务器都会报一个设备被重置Critical错误。原因可以理解为本来是在物理主机上的,然后启动ESXi后就被断开了,直到虚拟机启动再挂载到虚拟机上,期间有一个Link被断开的过程。但普通的MegaRAID就没有这个报错。
除此以外更常见的就是RDM裸设备映射了。理论上RDM并不限制接口和容量,在ESXi5.0里面RDM超过2TB的硬盘也可以,只是在虚拟机里面会有磁盘容量识别错误,无法进行分区操作,规避方法是RDM之前就在别的PC上面分区好。
RDM还有“花式”(作死)用法,比如正常RDM给虚拟机,但在虚拟机中新建分区时不占满整个磁盘,空余一部分再在vSphere里面创建数据存储卷,也就是一部分直接给虚拟机用,另一部分用作存储虚拟机。
10. 直通的代价。
所有的PCI设备直通都会导致无法进行快照操作,当然虚拟机在线迁移啥的也就别想了,应用虚拟机的一大优势也就丢失了。当然这对家用来说问题不大。
直通还要求锁定全部分配的内存,也就是不管这部分内存实际是否活动,也被强行划走不参与动态分配了。这对内存有限,但要开的虚拟机数量很多的环境就比较成问题了。还要注意一点,如果先开启其他未直通的虚拟机,使剩余可用内存已经低于有直通的虚拟机分配的内存了的话,该虚拟机就会因内存不足而无法启动,所以就需要先启动有直通的虚拟机。
RDM的磁盘可以选择快照的执行方式,这并没有变化,但要注意作死玩法这样弄就真的是作死了。
就先这10条,有其他的再补充,也欢迎其他老司机献策。 |