Maple's Blog.

ESXi 使用笔记

字数统计: 4.4k阅读时长: 15 min
2019/11/08

作为不想折腾开发环境的懒人,长期部署若干个服务器用于自己开发学习。

目前的做法是,在搭建 Ubuntu 的宿主机安装 VMware Station ,然后利用其 VMware Server ,通过客户端连接。

结果被一个朋友吐槽为什么不用 ESXi。

早期的想法是能用就行,加上对虚拟机的功能也不是很了解。

ESXi 直接是作为一个虚拟化管理的一个系统,本身并不依赖其他的系统。

与 ESXi 不同,VMware Server 底层还是 Linux,相当于 ESXi 直接与硬件交互,而 VMware Server 则与 Linux 交互。

其实性能上也没有感受到很大的差距,但是 VMware Server 的虚拟机,因为功能有限,很多情况并不能得到有效的解决,而 esxi 本身就是为了虚拟机化服务而存在。无论是功能性还是稳定性,逗比 VMware Station 要好的多。

于是打算花若干时间来安装使用 ESXi 代替 Server。

配置

  • 华南 x79 主板

    其实很不推荐用华南主板来当 esxi ,不仅本身硬件稳定性不准确(毕竟华南主板是为了普通用户设计)。网卡也不被 esxi 支持。而且其他服务器主板所需要的功能都比较欠缺。

  • 8GB ecc-reg 内存 x 4 = 32G

  • E5 2660 v2 (10C20T )

  • 存储盘若干

1. 安装准备

半夜的时候下决心安装 ESXi,把所有数据稍微备份了下,把一个主 SSD 做为主要盘,其他存储盘都卸载下来。(因为有好几块乱七八糟的 SSD 拼起来的)。

1.1 制作启动盘

首先是下载安装 ISO。

官方下载地址是:

1
https://my.vmware.com/cn/web/vmware/evalcenter?p=free-esxi6&wd=&eqid=a9e939b600083a37000000045dc80c56

下载需要创建账号,对于个人用户来说,ESXi 提供免费的序列号,可以支持正常的使用。但是我发现个人版的序列号支持的功能有限(虽然正常使用也不影响)。网上有企业版的序列号,相对支持的功能会比较多。

注册之后下载 ISO。但是发现官网下载速度十分感人,而且迅雷也不支持加速下载。导致我下载几次都没有成功。最后从网上找到了第三方的下载地址,下载使用,暂时没有发现又什么问题,支持迅雷下载,正常下载速度也比较正常。

1
http://ddl6.digiboy.ir/vmware/6.7/VMware-VMvisor-Installer-6.7.0-8169922.x86_64.iso

两者版本号是一致的。

制作启动盘使用软碟通 ,和普通系统安装版制作方式一致。

1.2 上机安装失败

然后就是上机安装,安装会检查硬件需求,很遗憾,我的主板是华南寨板,虽然做工不错,但是网卡选用了比较廉价的家用网卡,安装提示网卡不支持。这。。。所谓箭在弦上不得不发。既然已经准备迁移到 ESXi 了,就不能放弃,怎么可以怂?

还好华南主板的 PCIE 接口还是很丰富的,于是乎在咸鱼找了下买服务器网卡,选了 X58 平台常用的双口 intel 网卡 82575。考虑到实用性,买了 PCIE x1 (PCIE 1.0 X1 的速度是 250 MB/s 。通道其实基本足够)。然后找到家卖全新国产的 82575 80 包邮。然后看到店家有提说可以换 82576 加 5 块钱,于是创建了订单并和老板说要 82576。然后第二天发现老板直接让我拍下,说反正我这边近就不加钱了(第一次遇到这么慷慨的老板)。然后 80 包邮拍下。

2. 模拟安装

网卡需要第二天才能到,为了提前熟悉下功能。我先后在一个虚拟机和一个双路服务器上安装 ESXi 来熟悉基本功能。

2.1 安装

安装基本比较简单,基本是 Enter 和 F11 一直按就好了。需要注意的一点是,密码设置默认必须包含三种不同类型的字符串。

安装完成之后,会显示控制台登陆的地址。这里有一点是,Mac 端的 Chrome 默认是不允许访问错误证书的 IP 地址。需要在 URL 右上角找到证书,然后拖到桌面,双击安装。安装输入密码,在完成之后,在密钥那里找到这个证书,双击证书。选择信赖该证书。重启 Chrome 进入控制台页面。可以在高级那边,选择继续访问。

Firefox 支持直接信任,但是由于 API 的问题,导致 Firefox 在控制页面上,如果勾选选择框,会导致选择框消失,不过不影响正常使用。

2.2 基本功能

作为长期使用 VMWare Station Server 的我来说,ESXi 的功能大致上和 Station 差不多,但是功能点选项复杂了很多,也就是可玩性高了很多。大部分功能点都容易被理解。差异较大的有两个点,

一个是硬盘,ESXi 上有三个选项:

  • 精简置备
  • 厚置备,延迟置零
  • 厚置备,置零

VMware Station 创建硬盘时有选项选择是否初始化硬盘大小,

精简置备 相当于不选择,而 厚置备,置零 相当于与选择初始化硬盘。两个区别时前者在使用响应的硬盘大小时会自动扩展 vmdk 实际大小,而后者在创建虚拟机时就会初始化 vmdk 到要求的大小,并初始化。

厚置备,延迟置零 介于两者之间。虽然对 vmdk 的文件配置了对应的空间大小,但是并没有对其初始化,因为置备初始化需要消耗不少的 CPU 资源。

ESXi 默认选择是 厚置备,延迟置零

对于企业来说,精简置备是很危险的操作,因为一旦分配不合理,会导致虚拟机加起来的硬盘容量大于宿主机的实际容量,在运行后期影响服务。

而对于个人而言,厚置备在创始虚拟机的时候就会占用硬盘空间,对于硬盘空间十分贫瘠的个人而言,精简置备反而是比较合适的选择,所以在创建虚拟机时,需要调整下硬盘的类型。

另一点是关于网卡,网卡有三个选项:

  • E1000
  • VMXNET 2 增强型
  • VMXNET 3

E1000 相当于是纯粹用 CPU 模拟的网卡,相当于软网卡,而 VMXNET 属于硬件直通,也就是直接把数据包发给网卡,让网卡负责数据封包的操作。这样可以降低 CPU 压力的同时,提高网卡的吞吐量。

关于这一点可以了解下,服务器网卡和家用网卡的区别。

因为我们这边本来就是服务器网卡,所以应该优先选择 VMXNET3。而 VMXNET2 是老版本的协议,防止老版本服务器不支持 VMXNET3 。

2.3 显卡直连

ESXi 最有意思的一点是硬件直连,字面也就是虚拟机直接使用宿主机的硬件而不是采用模拟的方式。这样无论是性能和延迟,都会得到极大的提升。

最常说的硬件直连就是显卡直连。

默认虚拟机的显卡功能,都是由宿主机的 CPU 模拟出来的。性能极差,而且不支持很多显卡的计算功能。只能作为基本的显示。

这里说明点是,显卡直连,每张显卡有且只能被一个虚拟机所使用。也就是如果有两个虚拟机需要显卡直连就需要两张显卡。理论上,宿主机的显卡和不能和虚拟机的显卡公用。

所以需要两个条件:

  1. 两个显卡
  2. ESXi 主机硬件支持x86-64扩展。需要支持VT-x(或AMD-V)和VT-D(或AMD-Vi)

有些文章说,集显(应该指的是 intel 酷睿 cpu 的集显)会很坑。但是我手头上并没有相关的硬件 (穷。。我的都是洋垃圾服务器)。

P.S. 补充,有文章提到,目前还没有看到有核显直通成功的案例。

据说 A 卡在配置上相对比较方便,而 N 卡相对比较麻烦。

据说是因为 Nvidia 不期望自己的民用游戏显卡被虚拟机支持,对于虚拟机屏蔽了民用游戏显卡的使用。

首先是修改 ESXi 的配置,

1
/etc/vmware/esx.conf

添加

1
/device/设备 id/owner =  "passthru"

设备 id 可以在管理那边看到,要注意的一点是,显卡和 HDMI 都应该这么写

例如我的配置是

1
2
/device/00000:003:00.0/owner = "passthru"
/device/00000:003:00.1/owner = "passthru"

比较神奇的是,我使用的 GT210 默认就支持直通,点击显卡,然后选择切换直通。

比较可惜的是,我的华南主板默认不带集显,导致他无法切换直通,我在另外一台电脑上完成切换的操作。

切换直通之后,要求 重新配置 ,其实就是重启,重启了之后,显卡就直接直通了。

虚拟机首先需要安装 vmware-tool。

然后在虚拟机,添加 PCIE - 选择要添加的显卡。虚拟机,按照正常流程安装显卡驱动。

还是 N 卡的问题,N 卡的驱动在虚拟机无法正常启动,需要配置虚拟机参数。

1
hypervisor.cpuid.v0 = "FALSE"

可以选择修改虚拟机的 <*.vmx> 文件添加,也可以在虚拟机的 操作 - 虚拟机选项 - 高级 - 配置参数 添加。

这里想说,服务器主板优势其实还是挺大的,我这边看了下我的服务器主板,USB,SATA 组都支持直通。

而华南主板作为低端的主板,基本上没有直连的功能。

2.4 硬盘直连

前面说了,其实大部分家用主板都不支持硬盘直连。或者类似我那边,直连就只能一个主板直连(功能是以芯片来计的)。

但是群众的力量是无穷的。

可以通过特殊的配置,来实现对 SATA 直通的需求。

我这边因为穷,没法奢侈的把一个硬盘分配给某个虚拟机,所以直接拿了网上的例子,也不做尝试了。

  1. 拿到硬盘 id 类似 t10.ATA_____WDC_WD20EURS2D63S48Y0_________________________WD2DWCAZAJ063809。

  2. 通过指令把硬盘转为 vmdk 文件

    1.

    1
    vmkfstools -z /vmfs/devices/disks/未格式化硬盘标识符 /vmfs/volumes/ESXI系统盘路径/自定义名称.vmdk
  3. 添加硬盘 -> 已有硬盘。然后把这个虚拟硬盘文件 vmdk 添加到虚拟机即可。

3. 迁移虚拟机

我这边是因为需要把 VMware WorkStation 的虚拟机迁移到 ESXi ,如果不需要迁移虚拟机的童鞋可以跳过这一届。

3.1 上传虚拟机

本以为 vmware 都是一家,而且在创建虚拟机的时候,提示兼容 ESXi。所以我本以为把虚拟机 copy 到 ESXi 上就没有问题了。

然而纯粹想太多,把虚拟机文件直接上传到 ESXi 上,结果发现各种出错不兼容。

正确的姿势应该是在客户端打开,然后上传虚拟机。

由于我安装 ESXi 的机子就是原来的 Station,因此,我把虚拟机文件转移到移动硬盘。打算用 Windows 下的 VMware Station 进行迁移。(无奈 Mac 256 G 小硬盘,加上移动硬盘也不能兼容格式)。

上传方式直接在虚拟机列表选择 管理 - 上载 - 选择 ESXi 服务器 - 选择对应的存储盘。

需要注意以下几点

  • 挂载的 iso 镜像要取消
  • 网卡因为不兼容也要删除

期间发现一件超级蠢的事情,我的某个虚拟机引用了外部 vmdk 文件。然后因为关闭虚拟机的时候直接关闭,导致虚拟机处于挂起的状态。

然后就变成

  • 开启 or 关闭虚拟机 - 缺失 vmdk 文件,路径不正确
  • 编辑虚拟机 - 虚拟机未关闭!

服了 = - =

我这边为了省事,把所有软驱、光驱、网卡、USB 等等全部删除。上传之后就发现容量有点不对劲,原来上传过程中,会把 VMDK 默认改为厚置备,延迟置零。日!

3.2 复制虚拟机

据说有个做法是,先导出虚拟机,会提示下载 OVF 和 vmdk 文件。然后在创建虚拟机那边,选择

1
从 OVF 或 OVA 文件部署虚拟机

然后上传 ovf 和 vmdk 文件。

但是 windows vmdk 动则 30G。

考虑到一个简单的办法就是复制文件夹,在资源管理器里,找到虚拟机的文件夹,然后复制。

之前有人提到虚拟机无法重命名,其实只要习惯 linux 的人都懂,mv 命令虽然翻译成移动。但是兼顾重命名的功能。

例如 a.avi 重命名成 b.avi 就是 mv a.avi b.avi

那再 EXSi 上呢?在复制和移动时,下方显示路径的位置,其实是支持编辑的。。

但是有个不幸的设定,即使,你在创建虚拟机的时候选择的是 精简置备 ,在你复制文件,再重新注册虚拟机时,你会发现复制的虚拟机又变成了 厚置备,延迟置零

orz

3.2 VMDK 瘦身

厚置备,延迟置零 转换成 精简置备

ESXi 关于这一点十分头疼。因为格式问题,例如 VMware Station 都支持精简英文。而 ESXi 则不支持这个功能(据说是格式问题)。

有若干个解决办法,但是都不怎么靠谱。推荐的办法是使用 vmkfstool

指令:

1
vmkfstool -i {old}.vmdk -d thin {new}.vmdk

原理是把磁盘从厚置备转成精简置备。然后在虚拟机的配置里修改依赖的硬盘。再把老的硬盘删掉。

这里有一个不算是 BUG 的BUG。首先说明一件事,如果某个虚拟机被重新注册,即使是精简置备的硬盘,也会帮你把容量填充满。然后,如果遇到这样的情况,即使你再用 vmkfstool 进行转换,也是无力回天。

目前不知道怎么解决这个问题。我其实按照一个繁琐的办法,安装了 vCenter 通过克隆的功能,在选择精简置备的情况下。复制出来的虚拟机依然是满的。说明这一点不可逆。

可以考虑先转换成厚置备,再转回来。我这边真的不想折腾了,加上硬盘空间够。

4. 最后

4.1 在 U 盘中安装 ESXi

和群里和朋友聊的时候,朋友提到。目前我已经按照这个流程进行安装。把系统文件安装到 U 盘的好处是。所有存储盘都变成非依赖性的数据盘。即使我这个宿主机因为硬件问题需要迁移,也就把硬盘插拔到另个宿主机上。而且一旦系统盘损坏,也只需要重新安装 U 盘即可。

ESXi 默认是支持 U 盘安装的。而且系统运行后数据是存入内存的。也没有发现有运行的性能影响。

4.2 登录证书问题

默认证书配置的是 local.local。而且也没有提供根证书下载。在证书配置页面,可以手动填入证书。

如果你填的是自己的证书?亲,在你重新配置系统之后,请在主机上初始化网络设置。

不支持配置自己的域名证书。推荐是提供证书预申请信息,然后去申请证书【我不信谁钱这么多】。

然而,在我安装 vCenter 并连接到 ESXi 之后,vCenter 帮我直接配置了一个 IP 证书。

!!!∑(゚Д゚ノ)ノ

4.3 配置密钥

下载注册会初始化一个密钥,也可以网上找密钥。网上的是企业版,看似功能多了很多,我也用不到就是了。

4.4 启用 SSH

在 主机 - 操作 - 服务 - 启用安全 Shell (SSH)。默认重启后关闭。

4.5 虚拟机自动启动

虚拟机配置那边可以选择自动启动,但是默认这个功能是关闭的,需要在总的管理设置那边,把自动启动的功能打开。这对于我这种挂代理 VPN 的需求来说十分重要。

4.6 查看主机是否开始 VT-x / AMD-v

使用esxcfg-info命令查看
在ESXi shell中可以运行esxcfg-info命令来查看VT-X/ADM-V的配置和使用情况。

1
2
~ # esxcfg-info -w | grep "HV Support"
|----HV Support...............................................3

下面的表格中,列出了HV Support支持的值及含义

含义
0 VT-X/AMD-V support is not avaliable for this hardware
1 VT-X/AMD-V might be avaiiable on this CPU but it is not supported for this hardware
2 VT-X/AMD-V is available but is currently not enabled in the BIOS
3 VT-X/AMD-V is enabled in the BIOS and can be used

原文链接:https://blog.csdn.net/jinguangliu/article/details/76422764

CATALOG
  1. 1. 配置
  2. 2. 1. 安装准备
    1. 2.1. 1.1 制作启动盘
    2. 2.2. 1.2 上机安装失败
  3. 3. 2. 模拟安装
    1. 3.1. 2.1 安装
    2. 3.2. 2.2 基本功能
    3. 3.3. 2.3 显卡直连
    4. 3.4. 2.4 硬盘直连
  4. 4. 3. 迁移虚拟机
    1. 4.1. 3.1 上传虚拟机
    2. 4.2. 3.2 复制虚拟机
    3. 4.3. 3.2 VMDK 瘦身
  5. 5. 4. 最后
    1. 5.1. 4.1 在 U 盘中安装 ESXi
    2. 5.2. 4.2 登录证书问题
    3. 5.3. 4.3 配置密钥
    4. 5.4. 4.4 启用 SSH
    5. 5.5. 4.5 虚拟机自动启动
    6. 5.6. 4.6 查看主机是否开始 VT-x / AMD-v