什么是ESXi
VMware ESXi是由VMware开发的用于部署和服务虚拟计算机的企业级1类管理程序。作为Type-1虚拟机管理程序,ESXi不是操作系统上安装的软件应用程序;相反,它包括并集成了重要的OS组件,例如内核。在4.1版之后,VMware将ESX重命名为ESXi。
摘自维基百科英文版翻译
简单的说,ESXi就是一个虚拟机。但是与VMware Workstation、VirtualBox等工具却又有些不同。更具体的说,VMware Workstation等工具是运行在操作系统之上的一个软件,如果没有对应的操作系统(Windows、macOS、Linux)等,它自身是无法运行的,操作系统不让它做的事情它也做不了,这种虚拟机我们一般叫“Type 2”虚拟机。
既然有Type 2,那也是有Type 1的,所谓Type 1虚拟机,就是它本身就是一个操作系统,直接运行在裸机上。ESXi就属于这种。
“人傻钱多戴,美帝良心想”
提到戴尔,我相信绝大部分人的印象都是这家伙不是卖笔记本、卖显示器,还卖服务器的吗?
哦好吧,其实VMware是DELL的子公司。是这样的,VMware被EMC收购了,DELL又把EMC收购了。
ESXi硬件要求
ESXi的硬件要求很低,总结来说大概如下:
- 至少双核CPU
- 至少4G内存
- 以太网控制器
除此之外,最好再支持硬件虚拟化Intel VT-x 或 AMD RVI
具体详细硬件配置可以查看官网的文档 ESXi硬件要求
相信大家的配置绝对足够跑ESXi了,不过有几点需要注意的地方
- ESXi本身不支持无线网卡,但是我们可以把无线网卡直通给虚拟机
- “不支持”Realtek 螃蟹?️网卡,VMware因为商业化原因移除了对Realtek的支持,但是可以找办法添加回去的
使用什么设备运行ESXi
很简单,用旧的笔记本,各种服务器……好吧,对于个人使用来说,服务器还是算了,那个耗电和噪音受不了的。
对于个人使用来说, 淘汰的笔记本(配置足够的话)、各种迷你主机是比较好的选择。
比如说Intel NUC就是很不错的选择,但是NUC价格又有些贵;所以最终我选择的是占美主机,便宜省电呀……如下图所示
只不过这个无线网卡,被我拆了卖咸鱼了。
由于NUC这类都是不带内存硬盘的,所以咱要自己买。推荐的话,既然都跑虚拟机了,起步16G为佳。存储的话,自然是M2 NVME或者mSATA的固态了。SATA接口建议还是别插固态,SATA接口留给普通的机械硬盘,做备份存储之类的用途。土豪直接上1T的固态那就不算啦!
这个功耗很低吧,一个月下来也就是三四块钱的电费
ESXi安装镜像调整(打补丁)
判断网卡类型
前面说过,ESXi不支持?️网卡(有好些网卡都是不支持的,所以可以参考上面的硬件要求链接),所以这里需要先判断下自己的机器上什么网卡?如果是螃蟹卡的话,那么需要对安装镜像进行调整。具体判断方法,拆开看芯片,看产品介绍,Live CD下lspci什么的都可以
下载ESXi镜像
ESXi介绍页面
https://www.VMware.com/products/vsphere.html
ESXi下载
https://my.VMware.com/en/web/VMware/info/slug/datacenter_cloud_infrastructure/VMware_vsphere/6_7
我们就点击页面上的 VMware vSphere Hypervisor (ESXi) 6.7U3 下载就可以了。
镜像有两种类型
第一种的ISO,直接能启动;第二种下载回来说一个zip包,我们可以用它来打补丁。如果你是?️卡,那就选第二种吧
ESXi打补丁
这个网上文章真的是太多了,基本上就是用ESXi-customer-PS之类的把网卡驱动添加进去
ESXi-customer-ps官网
https://www.v-front.de/p/ESXi-customizer-ps.html
需要先安装powercli,下载页面
https://code.VMware.com/web/tool/11.2.0/VMware-powercli
网卡补丁,根据自己的型号下载offline-bundle,避免网络问题
https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages
如何打补丁可以自己搜索下,我这里贴上来两篇
https://www.smbinn.com/vmnetwork.html
https://rexzhang.com/post/cf06a796-44d5-11e4-9bb5-f23c9150b910
简单描述是这样的,打开powershell,切换到对应的目录
# 取消可能的系统限制 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned Set-ExecutionPolicy Unrestricted # 离线打补丁 official.zip是ESXi的offline bundle,drivers目录包含了vib文件的目录 .\ESXi-Customizer-PS-v2.6.0.ps1 -izip .\official.zip -pkgDir C:\Users\abc\Dropbox\ESXi\drivers # 在线打补丁,依赖比较好的网络环境 .\ESXi-Customizer-PS-v2.6.0.ps1 -v67 -vft -load net55-r8168
支持Realtek 8168/8111/8411/8118的成品
如果你的网卡也是Realtek 8168/8111/8411/8118的话,并且信任我,可以考虑用我的现成的,戳这里去dropbox
ESXi安装
把iso写到U盘中,比如说使用rufus这种,然后启动插U盘启动电脑,哦对了还要有个显示器和HDMI……
安装过程很简单,接受,输入密码,下一步,下一步……
小提示:没有显示器怎么办?
靠着虚拟机、网卡指示灯、硬盘灯摸索着来吧。
哦当然了,ESXi要插网线直接连到网络设备(如路由器)的,要不玩什么呀!
ESXi管理
ESXi安装完成之后,想办法获取到它的IP地址,直接浏览器访问就可以了。
使用ESXi网页端管理虚拟机
界面很简洁,看着就会用
使用VMware Workstation管理虚拟机
如果你的电脑上装有VMware Workstation的话,文件-连接到服务器,输入IP用户名(root)、密码也是可以进行简单的管理的
进一步的管理:Vcenter
ESXi本身的管理功能比较基础,甚至连克隆、迁移等功能都没有。为了做到这点,可以开个虚拟机安装vcenter。
什么是注册虚拟机
ESXi创建虚拟机方法
ESXi的使用非常简单,只要是用过虚拟机的人应该就是十分清楚的,傻瓜化操作
直接创建虚拟机
从ovf部署虚拟机
从VMware Workstation和virtualbox导出的文件都可以导入进来的
注册虚拟机
假如已经有了虚拟机的vmdk文件,并且这个文件在datastore中,那么我们可以直接注册虚拟机的。方法太简单了,不说了。
使用cloud image
作为非常爱惜硬盘的我,如果从Ubuntu Server安装一个服务器版Ubuntu的话,不仅浪费时间,需要手工干预安装,而且还很占用硬盘。所以ubuntu官方维护了一个云镜像,其中包含各种环境使用的镜像,可以直接导入。
下面这个链接是每日构建的,点进去选一个日期,下载对应的ovf/ova文件就可以了
https://cloud-images.ubuntu.com/bionic/
这个链接是发布版的,同样下载ovf/ova文件
https://cloud-images.ubuntu.com/releases/
下载回来直接导入就可以了
但是这个cloud image的root密码是什么呀!别怕,随机密码。开机按shift进grub,选择recovery mode破个密码就好了。然后再parted或者fdisk弄下分区,完美。Cloud image安装完占用硬盘不到1G哦~
ESXi 虚拟机设置
CPU资源限制
如下图所示,我们可以为此虚拟机预留一定的CPU资源、限制CPU资源(虚拟机不会使用超过这个频率的CPU)、份额,以及常见的硬件虚拟化、性能计数器等。
份额这个概念比较特殊,详细解释如下:
份额指定虚拟机(或资源池)的相对重要性。如果某个虚拟机的资源份额是另一个虚拟机的两倍,则在这两个虚拟机争用资源时,第一个虚拟机有权消耗两倍于第二个虚拟机的资源。
份额通常指定为高、正常或低,这些值将分别按 4:2:1 的比例指定份额值。还可以选择自定义为各虚拟机分配特定的份额值(表示比例权重)。
举个例子,
一台聚合 CPU 容量为 8 GHz 的主机上运行着两个受 CPU 约束的虚拟机。它们的 CPU 份额设置为正常,因此各得 4GHz。
现在打开了第三个受 CPU 约束的虚拟机的电源。它的 CPU 份额设置为高,这意味着它拥有的份额值应该是设置为正常的虚拟机的两倍。新的虚拟机获得 4GHz,其他两个虚拟机各自仅获得 2GHz。如果用户为第三个虚拟机指定的自定义份额值为 2000,也会出现相同的结果。
内存资源限制
与CPU资源限制类似,内存也是可以进行限制的,道理类似
硬盘资源限制
同理,可以限制硬盘写入,所以知道怎么做石头盘了吧!
添加其他设备
前面提过,ESXi不支持无线网卡,但是我们可以把无线网卡直接分配给虚拟机,那么就要用到网卡直通。具体方法就是编辑虚拟机设置,添加其他设备-PCI设备/USB设备
虚拟机引导选项
和VMware Workstation的设置基本差不多,一看就懂
ESXi 控制台连接
我们可以直接通过网页端访问控制台端口,也可以通过下载VMware Remote Console,或是VMware Workstation访问。
数据存储管理
要装虚拟机,自然就要用ISO镜像,那ISO镜像自然就要上传到ESXi中……具体就是使用数据存储功能。
左侧导航栏直接点进去存储
数据存储管理器
点击数据存储管理器,太简明易懂了……上传就是了。
添加存储
ESXi默认会识别接驳的硬盘等设备,但是我们也可以添加网络存储,比如NFS,点击新建数据存储,选择NFS
相应的添加就好了
ESXi网络设置之物理网卡
熟悉VMware Workstation可能知道,VMware Workstation的网络可以分为桥接、NAT、host only等,那么ESXi呢……对不起,ESXi天生桥接。
在ESXi的网络设置中……
物理网卡的概念很好理解,就是真实接线的网卡,ESXi本身是支持多网卡的,利用多网卡可以玩出很多花样,比如软路由……
ESXi网络设置之虚拟交换机
交换机这个概念,对于不是搞网络的人来说,可能很生疏。路由器、交换机、集线器这三者究竟有啥区别啊?这不是本文讨论的重点。
ESXi中的虚拟机交换机的概念很简单,简单的说就是连到虚拟机的那个“设备”,由ESXi的内核提供,只有二层桥接的功能,不像真实的交换机,又能配ACL又能配这配那的。比如我们看下下面的这个图
这么多台虚拟机都“连接”到了这一虚拟交换机上,然后这个虚拟交换机用两条真实的网线连接到了我的路由器上。
虚拟交换机有啥意义呢?比如我有两块物理网卡,一块是192.168.1.0/24,另一块是192.168.2.0/24,那么我们就可以通过添加两个vSwitch,然后不同的虚拟机就可以属于不同的网段啦。
添加vSwitch
虚拟交换机这东西,由于是内核虚拟的,自然也可以自己添加。方法也很简单,直接点击添加,起个名字,选择绑定到哪块物理网卡,确定就可以了。如下图所示
当然了需要注意的是,一块网卡一旦属于某个虚拟交换机,那它就不能属于其他的虚拟交换机了。
虚拟交换机、添加上行链路
俗话说,狡兔三窟。一个虚拟交换机,如果增加网线作为备份线路,那也是有备无患的。
所以编辑vSwitch,添加另外一条上行链路作为冗余。这样当你拔掉一条网线,虚拟机们还能无缝切换(真的是无缝,可能连TCP丢包都没有),一点不受影响。
添加方法很简单,直接编辑,添加另一条物理链路就好了
另外,假如你的ESXi不接网线,那么属于同一个vSwitch之间的虚拟机还是能通信的,而且是万兆网卡哦!只是流量不能往外走,要不怎么叫上行链路呢。
虚拟交换机 网卡绑定
所谓网卡绑定,就是当你为一个虚拟交换机添加多条上行链路的时候,想让ESXi怎么调度啊?类似链路聚合,你是想round-robin,还是active backup,还是load balance呢?网卡绑定就是干这个事情的。
ESXi的这四种模式,对应的意义如下:
- 基于源端口 ID 的路由(默认):则根据流量进入虚拟交换机的虚拟端口选择上行链接。
基于 IP 哈希的路由:根据每个数据包的源和目标 IP 地址的 Hash 选择上行链接。对于非 IP 数据包,会使用位于这些偏移上的任何内容计算 Hash。
- 基于源 MAC 哈希的路由:根据源以太网的 Hash 选择上行链接。
- 使用明确故障切换顺序:始终使用“活动适配器”列表中位于最前列的符合故障切换检测标准的上行链路。(本图就是vmnic0)
虚拟交换机 流量调整
买VPS的时候……你这个口不是独享的!好吧,ESXi也能针对虚拟交换机进行流量限制,如下图所示
ESXi 网络设置 端口组
实际上呢,虚拟机并不是直接连到vSwitch的。虚拟机上直接连接到端口组上的。不同的虚拟机可以属于不同的端口组。
端口组与虚拟机网络设置
添加端口组
ESXi VMkernel网卡
ESXi本身是通过网络管理的,那么自然也要有一个对应的“网卡”,这里就是vmk网卡。可以把它理解成一个特殊的端口组,主要就是提供管理相关的访问。
有的时候,我们可能希望,所有虚拟机使用某一段的IP,但是管理使用另一段IP,这里就可以通过添加VMKernel网卡做到。
比如我们希望ESXi的管理IP能够有多个,做个备份,那么添加vmkernel也能做到
添加之后的结果
此时Vmkernel的拓扑
我的ESXi玩法
- kali,还有一个XP,用途你懂的;
- Windows 7,用于下载电影电视剧什么的;
- Ubuntu Desktop,装了点GUI应用,开了samba服务,默认启动到multi-user。上面的Windows 7下载的文件直接存到了这里,然后电视iPad等直接就能看了;
- csr1000v,模拟Cisco IOS网络设备,其实并无卵用,放着吃灰的。
- TimeMachine,从Cloud Image导入的,用于macOS的时间机器备份,做了LVM,啥都不怕。
- Ubuntu Minimal,从Cloud Image导入的,我也不知道干啥的
- Tiny Core,不知道干啥的,玩的吧。
总结
ESXi真是太强大了,开虚拟机随便玩,部分硬件可以直通到虚拟机中;甚至可以给ESXi主机开ssh,然后可以执行一些ssh命令,甚至可以运行Python,吼。