在 Gen8 上安装 ESXi

本文不是在 Gen8 上安装 ESXi 的教程


和很多人一样,在下最初拿到 Gen8 时,比较各种方案,最终装了个 Windows。原因很简单,那就是所有选择中只熟悉 Windows。

实际用下来发现,感觉简单的把 Gen8 当做普通电脑并不能把它充分利用好。

随着这几年在下对 linux/unix 环境越来越熟悉,考虑到实际需要,还是来试试 ESXi。

用 ESXi 干什么

ESXi 既是个 OS,也是一个虚拟机。这个 OS 只干一件事,那就是提供虚拟化服务。而不是看起来各种乱七八糟的 Windows。

我的主要需求如下:

  • FreeNAS 做存储,直通四块硬盘给它,对局域网内提供 smb 服务
  • Ubuntu 跑各种自己的写的程序
  • Windows 跑各种你懂的……

Gen8 配置

我的 Gen8 配置如下:

名称 配置 说明
CPU 自带 Celeron G1610T
RAM 2G+8G DDR3 1600 ECC
SATA 1/2 HGST HUS726040ALE610 4T x2 重要数据, 镜像 (=4T)
SATA 3/4 野鸡级 500G 硬盘 x2 (反正艹坏不心疼,直接用两块 8T 替换) 挂 PT 等艹坏不心疼的, 条带 (=1T)
SATA 5 Intel 545S 256G SSD 用来存上面三个操作系统
TF 卡 随便找了一张东芝的 16GB 的卡 用来存 ESXi
NIC 板载博通千兆 x2

评价配置

稍微评价一下配置。

CPU 看似垃圾,其实还行。为何呢?一,价格便宜使得 Gen8 整机白菜价;二,节能功能还行,当然这个时代 CPU 空载几十瓦的肯定是软件配错了之类的;三,性能够用,FreeNAS 的 zfs 对配置有一定要求,而我恰好基本都是贴着 Minimum Requirements 来的。

内存分 8G 给 FreeNAS, 512M 给 Ubuntu,1G 给 Windows。
等内存的价格下来了,就换成 8G+8G 的组合,届时内存就随便分配不紧张了。

比较绝的一点是 Gen8 的主板上有个 TF 卡槽,可以装各种操作系统,折腾了 ESXi 之后,发现 Gen8 真是天生的 ESXi 绝配啊。

至于网卡。之前打算做双千兆链路聚合,充分利用硬盘的速度。 但初步研究后发现,链路聚合并不能做到 smb 拷贝文件直接就有 200MB/s 的速度,它并不是用来干这个的。
而且聚合的成本也不低。此外还有 smb 的 multichannel 技术,可以充分利用双网卡,姑且不谈。

硬盘的部分以后再说。

开始安装

现在要来开始配置啦!
嘛,其实本文根本不是一个教程。网上的教程真的太多了,找找到处都是。
那就……嘿(摸后脑勺笑)点到为止吧,相信聪明的你无需在下赘述。

安装 ESXi

准备一个 ESXi 的安装盘 iso 文件 VMware-ESXi-6.0.0-Update3-6921384-HPE-600.10.2.0.23-Feb2018.iso 。
要记得插好 TF 卡,一会 ESXi 装到这卡里。
透过 iLO 通过网络挂载 iso 到 Gen8,然后开机启动就可以装好了。

配置 RDM

ESXi 的 UI 从上(WebUI)到下(Terminal)都透露着一种企业级的靠谱的气味。

ESXi 的 WebUI 的截图

ESXi 的 WebUI 比 Windows 的 Hyper-V 更加直观易用,简单点点点就配置好了三个虚拟机,而且还支持 USB 设备和各种 PCI-E 硬件直通(当然,要求 CPU 支持 VT-d)。

配置 SATA 1-4 槽位的硬盘给 FreeNAS 的时候,花了一点功夫。

一般情况下 ESXi 可将整块硬盘格式化为 VMFS 的文件系统,然后再在里面创建各种虚拟磁盘 vmdk。直观上看,VMFS 和普通的 ext3 或 NTFS 没啥区别,都有目录结构,文件都有文件名。

顾名思义,VMFS 我猜是针对虚拟化环境设计的。虚拟机拿到一个 vmdk,一定也会在 vmdk 里自己维护一个文件系统。如果存放 vmdk 的文件系统本身也很复杂的话,也许就会造成不必要的资源浪费。

如果使用 VMFS 这一套的话,很显然不符合 FreeNAS 的要求。因为这样 FreeNAS 就拿不到 smart 数据了。要知道,拿不到 smart 数据,还提啥数据安全……

另外,鉴于这四块硬盘里面已经有数据了,我也不太愿意把数据倒来倒去。所以就找到了直通硬盘的方法。

首先想办法进入 ESXi 的 shell。

$ ls /dev/disks
(省略一些行)
t10.ATA_____HGST_HUS726040ALE610____________________NHGL65XY____________
t10.ATA_____HGST_HUS726040ALE610____________________NHGL65XY____________:1
t10.ATA_____HGST_HUS726040ALE610____________________NHGL65XY____________:2
t10.ATA_____HGST_HUS726040ALE610____________________NHGL94RY____________
t10.ATA_____HGST_HUS726040ALE610____________________NHGL94RY____________:1
t10.ATA_____HGST_HUS726040ALE610____________________NHGL94RY____________:2
t10.ATA_____INTEL_SSDSC2KW256G8_____________________BTLA805105F4256CGN__
t10.ATA_____INTEL_SSDSC2KW256G8_____________________BTLA805105F4256CGN__:1
t10.ATA_____ST3500418AS_________________________________________9VM996LA
t10.ATA_____ST3500418AS_________________________________________9VM996LA:1
t10.ATA_____ST3500418AS_________________________________________9VM996LA:2
t10.ATA_____WDC_WD5000AAKS2D08WWPA0_______________________WD2DWMAYU2182184
t10.ATA_____WDC_WD5000AAKS2D08WWPA0_______________________WD2DWMAYU2182184:1
t10.ATA_____WDC_WD5000AAKS2D08WWPA0_______________________WD2DWMAYU2182184:2
(省略很多行)

这里就能看到我的五块硬盘了。容易发现,我要直通的硬盘就是除了 INTEL 的剩下所有。

$ vmkfstools -z /vmfs/devices/disks/t10.ATA_____HGST_HUS726040ALE610____________________NHGL94RY____________ \
/vmfs/volumes/system-storage/HGST_HUS726040ALE610-NHGL94RY.vmdk

命令的格式请自行观察。这个命令只是把物理硬盘映射成一个 vmdk 文件,文件很小。然后去虚拟机把这个 vmdk 挂起来就好了。

还有一个思路,可以把宿主机的 SATA Controller 作为 PCI-E 设备直通到 FreeNAS。没这么做的原因有两个:一,没钱买支持 VT-d 的 CPU;二,SATA 5 还要给 ESXi 用呢……

小结

给 Gen8 安装 ESXi 真的十分简单。ESXi 也给人一种十分稳重的感觉。

期待以后能少遇到些坑。

social