/ Web Deployment

VMWare ESXi 部署以及 IP 不够时的解决方案

0x00: 背景

最近承接了学校一个内部搜索引擎的项目,学校提供了一台 ThinkServer RD430 机架式服务器,配置如下:

CPU: Xeon E5-2540 @ 2.40GHz x 2

Memory: 92GB

Hard Disk: 24TB

考虑到实际存储需求,需要组一个小集群来跑数据库以提高性能。我选择 VMWare vSphere 6.0 作为宿机操作系统(因为学校提供了正版),下面介绍一下部署的过程。

感谢 swx2老师 的帮助。

0x01: 安装 VMWare ESXi 系统

从正规渠道获得 VMWare ESXi 系统并安装到服务器上。首先遇到的一个麻烦是这个系统不支持我校服务器的 KVM 键盘(似乎是没有驱动?),拿了一个 USB 键盘才可以使用。

接下来是分区的问题。根据 swx 的建议,将一小部分空间划给 ESXi 系统,剩下的空间做一个 RAID 1,虚拟机镜像放在 RAID 上,其他 ISO 等放在非 RAID 上。

安装好 ESXi 系统后即可登录 Web 端进行管理。对于 ESXi 6.0 系统,vSphere Client 很多功能不支持(只支持到 5.0),根据这几天的体验,Web 端速度明显不如客户端,差评。

0x02: 安装软路由 pfSense

由于学院网络限制,这个服务器只接了一根网线并分配了一个固定的 IP 地址。但是 ESXi 的管理界面本身需要占用一个,而其他虚拟机就没有办法获得 IP,因此需要安装一个软路由,作为网关组成一个子网。需要注意的是,由于手滑等一些不可抗力的原因,软路由的配置很可能被改坏,这样的话就无法访问 ESXi 的管理界面。这里可以将 ESXi 的管理界面 IPv4 交给软路由,IPv6 仍然由他自己占着,这样的话 IPv4 玩坏了还可以通过 IPv6 进行补救。

我们选择的软路由系统是基于 FreeBSD 的 pfSense。在安装这个系统时给它配置两块虚拟网卡,其中一块接入一个 VMWare 的虚拟交换机 Public,宿机的物理网卡也接入这个交换机;另一个网卡接入另外一个交换机 Private,其他所有虚拟机也接入这个交换机。

然后开始配置 pfSense。这里只能通过另一台子网下的虚拟机来访问 pfSense 的管理界面。我们再配置一台虚拟机,选择一个 Xubuntu 的 LiveCD,通过 LiveCD 的浏览器访问 pfSense 的管理界面,它的默认用户名是admin,密码是pfsense

在管理界面中开启 WAN,Public 所接的虚拟网卡端口设置为 WAN,并且 pfSense 监听那个 IP。这样 pfSense 就成为一个网关,物理 IP 的所有流量都经过它。接着开启 LAN,Private 所接的虚拟网卡端口设为 LAN,于是其他虚拟机的流量也经过了 pfSense,并且它们组成一个子网。

最后 ESXi 系统接入 Private 交换机,让它监听一个内网 IP,于是 ESXi 流量也经过 pfSense 了。最后在 pfSense 中设置 NAT 将 443 端口转发到 ESXi 所在的内网 IP,于是就可以通过 443 端口访问 ESXi 了。

注意到 pfSense 自己的管理端口默认 80,可以改动为其他的数值来访问它。