0%

VMware vSphere学习总结

VMware vSphere学习总结

2023年11月8日消息,美国思杰系统(Citrix System)公司宣布,因成本原因将退出中国市场,该决定于12月3日生效

2023年11月22日博通宣布完成对VMware的690亿美元收购,部分VMware员工面临裁员

根据往年财报博通公司2021和2022财年约有35%的收入来自中国,而VMware私有云业务正面临来自国产企业的激烈竞争

VMware是随着云计算的兴起而蓬勃发展,当时还有一个网红解决方案就是Openstack,OpenStack为私有云和公有云提供可扩展的弹性的云计算服务

事实上绝大部分国内外的云平台都是基于OpenStack的二次研发,而且也只有大厂有实力做到深度自研

随着云计算的不断演变,OpenStack已风光不再,云计算已经从编排管理为目标不断演变到以应用服务为核心需求

用户更加希望围绕自身的应用服务作进一步升级,从虚拟化向K8S转变,拥抱云原生(持续交付、DevOps、微服务、容器)做到快捷上云、部署和变更

VMware也遇到上述用户需求变化的痛点,推出了Tanzu产品从而原生支持K8S,并诞生新的业务(本文后面提及的应用现代化)

另外一家IBM公司也看到了混合云的趋势,通过收购的红帽Openshift平台也在对客户宣传利用应用现代化服务,加速数字化转型,产品方案聚焦混合云的优势

在当前国内大环境下,信创产业也在高速发展,在以国产化的CPU、操作系统为底座的信创云平台必然成为数字产业化下必争之地

对于政府来说,传统产业急需产业数字化去大力发展数字经济,我们今天不谈数字经济的发展途径即数字化产业化问题,而是浅谈技术本身

信创云本身除了国产化替代大之外还是要聚焦平台的能力打造,依托全信创的技术栈去向各行业提供可信的计算、网络和存储能力

信创云并没有太多历史技术包袱,可以在最基本的“虚拟化”、“安全可控”、进一步打造“元原生”、“AI”和“大安全”,实现云智安三位一体的信创云平台

云计算已经从上半场的云原生进入了下半场的AI基础设施化,而且在当前大模型的热度下,AI所需要的网力、存力都有别于传统数据中心

云智安三位一体的信创云平台可以进一步催生和加快服务器、交换机、存储产业数字化进程

额外说一句,其实虚拟化和容器化并不是非0即1的技术,在很长一段时间会共存发展,虚拟化的隔离性更好,容器化更加轻量级、启动更快

不管如何,云平台的底层技术都是相通的,大厂核心技术和理论对于技术工作者来说,都是非常有价值的学习知识,正如RHEL对于龙蜥或者麒麟等国产操作系统而言

替换之上需要能力的升级,除了平滑替换下,云计算所需要的最基本的高性能高可靠性下的热迁移、异构容灾整体解决方案还需要能力进一步打造,学习VMware技术仍然大有裨益

当博通完成对VMware收购后,加上国内信创大环境下,VMware是否也会缩减中国市场?在此结合官网的Doc Home以及vCenterP-DCV教程部分内容进行了总结,特此留念!

1 基本概念

1.1 VMware提供了什么样的价值和创新?

按照官方定义,VMware把自己定位是行业领先的混合云服务提供商,提供面向各式应用的多云服务,助力企业级控制力的同时实现数字创新

VMware至少提供了三个层次的方面,云基础设施的虚拟化、混合云的管理、应用现代化创新

1.1.1 云基础设施的虚拟化

VMware最早提出了SDDC软件定义数据中心的概念,解决方案涵盖了软件定义计算(即VSphere产品)、软件定义存储(即vSAN和VVOL产品)、软件定义网络(NSX)、安全(Carbon)

其中VSphere是一个虚拟化管理软件套件,包括了ESXi+vCenter+vLCM以及其他更多的软件

1.1.2 混合云管理

VMware针对公有云和私有云的解决方案是一致的,公有云是与AWS、Azure、Alibaba等服务商合作,底层都是采用与私有云一样的vSphere技术

image-20231103154926269

VMware的优势体现在多云管理的便捷性

VMware Aria(以前称为 vRealize Suite)是适用于 VMware Cloud 和多云环境的统一管理解决方案

VMware Aria包括了Aria Operations(运维分析)、Aria Automation(自动化)、Tanzu Intelligence Service、Skyline

其中VMware Aria Operations(以前称为 vRealize Operations)是主动式IT运维管理平台

1.1.3 应用现代化

VMware从vSphere7.0开始原生支持容器,通过VMware自研的Photon作为容器主机,可以原生的将K8S运行在VMware Tanzu

1.1 虚拟化分类

虚拟化包括完全虚拟化、半虚拟化、混合虚拟化三类

完全虚拟化通过二进制指令翻译,去向上层操作系统去虚拟化,所以会影响性能,但是主流CPU都支持虚拟化,可以支持一些虚拟化指令集,提高性能

半虚拟化中,上面的操作系统其实对下层虚拟化有感知,性能会有所提高

image-20231103083542955

1.3 虚拟化解决的问题和优势

传统数据中心的问题包括:

1、服务器资源浪费,效率低:虚拟机实际上是一些关联的文件,可以简单的移动和备份虚拟机运行在资源上的本质:公平竞争、公平共享、相互隔离

2、底层硬件存在差异性:不同时期购买的硬件资源肯定存在差异,例如CPU指令集的不同。但是VSphere是对CPU、内存、磁盘和网络进行了抽象化,通过虚拟化可以屏蔽硬件底层的差异性,特别是CPU架构的升级,封装在文件中,不依赖物理硬件,与其他虚拟机隔离,不受硬件变化

1.4 关于VMware的授权和许可

1.4.1 授权

VMware的授权包括本地授权和订阅授权

VMware vsphere+是基于订阅的服务,可使本地部署工作负载获得云优势

本地部署功能包括

1、管理员服务(清单管理、事件和警示管理、虚拟机置备、生命周期管理、配置管理)

2、开发人员服务(Tanzu K8S Grid、Tanzu集成式服务)

3、附加服务(灾难恢复)

vSphere+ 由彼此交互的本地部署组件和云组件组成

通过部署vCenter Cloud Gateway连接本地和云环境借助vSphere+您可以从云控制台集中管理本地部署工作负载,还可访问云服务

1.4.2 许可

各版本的功能区别大致如下【官网为准】:

特别注意Essential版本只能适用于小型企业,Essential最大的限制在于最多三台主机

标准版、Enterprise、Enterprise Plus区别

1、Enterprise Plus比普通Enterprise多了分布式交换机【特别注意VDS必须是Enterprise Plus 许可下才有】、主机配置文件、vAAI【ESXi与存储之间通讯,用于存储硬件加速功能】、和多路径

2、Enterprise比标准多了DRS、FT、Storage vMotion、热添加设备等

image-20231107200539268

关于VMware收费

1、VMware的许可是按照物理CPU进行收费的,但是每个物理CPU的内核数必须<=32Core,大于32Core情况下会按照物理CPU进行收费

2、VMware许可包括ESXi和vCenter两个,都需要许可,vCenter许可是按照实际部署使用数量进行许可

2 关于用户管理界面和方式

2.1 GUI管理界面的历史变迁

VMware在不同版本之间,登录的界面和方式有很大区别,6.5-6.7是一个历史性的过渡版本,从这两个大版本开始有很多地方架构都进行了调整

总的来说,不仅仅是客户端从C/S转变为B/S,vCenter的部署和整体架构都发生了很大变化【这个在关于vCenter章节详细描述】

具体详见下表

5.0-6.0 6.5-6.7 7.0及以上
vSphere Client C/S架构,连接vCenter和ESXi B/S架构,连接vCenter B/S架构,连接vCenter
vSphere Web Client(Flash) 连接vCenter 连接vCenter
VMware Host Client(基于HTML5) 连接ESXi 连接ESXi

可以看出,从7.0开始GUI图形管理界面只剩下vSphere ClientVMware Host Client,前者连vCenter,后者连ESXi【注意不是vSphere Web Client,没有Web关键词】

值得一提的是:

6.5和6.7版本是一个阶段性过渡版本,从这个版本开始,VMware除了重新开发架构,也自研了新的vSphere Client、Photon,对vCenter的部署架构也做了大的调整

2.2 命令行管理工具

管理工具除了2个GUI外,还有两个3个CLI工具

本地Local Shell、还有Remote Sheel(以SSH方式登录到ESXi上),还有一个PowerCLI

PowerCLI是完全基于Windows PowerShell命令行的管理工具

2.3 关于用户名登录

总的来说,VMware从6.5开始出现了SSO概念后,要特别注意域的概念

1、root用户是登录到vCenter的后台管理控制界面,是默认5480端口

2、默认的administrator@vsphere.local是用来登录vsphere client,用来管理vCenter和ESXi

具体详见《4.4 关于登录用户名》章节内容

另外通过Host Client管理ESXi,登录时候一般选择root账户

image-20231107232358831

2.4 锁定模式

锁定模式:控制对主机安全访问的通道,包括正常和严格两种,后者一句话总结就是只能通过vCenter管理了,正常锁定模式还可以通过DCUI

DCUI就是用户控制台,就是通过本地键盘输或者类似Dell,iDRAC远程进行ESXi操作

Normal正常锁定:只能通过vCenter或DCUI管理主机,而VMware Host Client/Shell等均不可管理主机

Strict严格锁定:仅能通过vCenter管理主机,而VMware Host Client/Shell/DCUI等均不可管理主机

设置例外用户,可以通过SSH方式登录到ESXi管理主机

在设置例外用户情况下,可以在ESXi Host Client中添加例外用户

image-20231125150949042

也可以在vCeneter中针对ESXi主机进行设置,包括设置锁定模式以及添加例外用户/异常用户

image-20231216100932164

2.5 遇到无法使用密码远程SSH登录ESXi机器的情况

有时候会遇到无法使用密码方式远程SSh登录ESXi机器

image-20231212110841980

此时需要使用DCUI登录到VMware ESXi机器,然后登陆到字符界面,输入root账户,然后修改配置文件,重启SSH服务即可

image-20231212110614364

3 关于ESXi

3.1 ESXi基本特性

ESXi就是在裸金属上部署的Hypervisor

在vSphere5.0及以前,ESXi被称之为ESX,它除了VMware自研的VMkernel内核外,服务管理工具采用了Redhat的软件,而vSphere5.0后则采取了开源busybox服务软件

ESXi除了从本地启动外,还可以从SAN、iSCSI启动

ESXi可以支持快速启动(Quick Boot)

通过 Quick Boot,vSphere Lifecycle Manager 可缩短执行修补和升级操作的主机的修复时间

如果激活 Quick Boot 功能,vSphere Lifecycle Manager 将跳过硬件重新引导(BIOS 或 UEFI 固件重新引导)。因此,ESXi 主机处于维护模式的时间会缩短,并且会最大程度地减少修复期间发生故障的风险

UEFI 安全引导

安全引导属于 UEFI 固件标准的一部分。使用安全引导后,计算机会拒绝加载任何 UEFI 驱动程序或应用程序,除非操作系统引导加载程序以加密形式进行签名。在 vSphere 6.5 及更高版本中,如果在硬件中启用了安全引导,则 ESXi 会支持安全引导。

可信平台模块(TPM 2.0)

1、ESXi 主机可以使用可信平台模块 (Trusted Platform Module, TPM) 芯片,该模块是安全的密码处理器,通过提供植根于硬件(而不是软件)的信任保证来增强主机安全性。

2、前提条件

  • vCenter Server 6.7 或更高版本
  • 在 UEFI 中安装有 TPM 2.0 芯片并启用的 ESXi 6.7 主机或更高版本
  • 已启用 UEFI 安全引导

3.2 ESXi的安装前提条件

ESXi的安装需要至少2个CPU内核,以及至少8G内存(GA环境需要12G)32G的安装存储空间

4 关于vCenter

4.1 vCenter的部署架构的演变

《2.1章节》提及过6.5和6.7版本是一个阶段性过渡版本,从这个版本开始,VMware除了重新开发架构,也自研了新的vSphere Client、Photon,对vCenter的部署架构也做了大的调整

另外7.0版本开始,vCenter就只有Linux版本

6.7版本包括之前版本,vCenter可以部署在Linux平台或者Windows平台上,6.5版本前Linu平台是SUSE Linux

vCenter安装本质就是在ESXi上导入以ISO镜像文件封装的OVF文件格式的虚拟机,部署过程就是一个虚拟机导入过程

在VMware产品中,vCenter Server Appliance就是一个Linux虚拟机应用

vCenter的作用在于集中管理虚拟机拓展功能【vMotion、FT、RDS】

关于PCS的概念

在6.5和6.7版本中还存在PCS概念(Platform Services Controller)

PCS是将身份验证和vCenter管理功能进行了分开,对于小型vCenter可以采用嵌入式安装(即PCS和vCenter存在一个虚拟机内),中大型vCenter可以采用分布式安装(多个PCS和多个vCenter,PCS采用负载均衡,vCenter之间采用Link-Mode),分布式部署的方式比较复杂且需要消耗多台虚拟机

7.0开始全部采用ALL IN ONE的部署方式,即Single Deploy Model单一部署架构,因为单个vCenter存在管理主机等上限,因此多个vCenter之间仍可以采用增强型链接模式即Link-Mode方式

vCenter Server 7.0已经不再支持基于Windows的安装,同时也不再支持使用外部的Oracle作数据库【实际使用PG替代】

vCenter Server 7.0需要安装在ESXi 6.5及以上版本的主机上

vCenter采用Photon为OS,以开源PG数据库进行存储确保基本数据的完整性和可用性

由于vCenter的关键作用,因此生产环境建议采用vCenter的三副本组建vCenter集群,提高高可用性

详见我的另外一篇文章vSphere vCenter High Availability 部署 https://mp.weixin.qq.com/s/8_q_UWG5Horly7Y1EDTRgQ

4.2 多vCenter场景增强型链接模式应用

超大规模的vCenter当部署具有24个CPU和56GB内存的设备,适用于最多包含2,500个主机或45,000个虚拟机的环境【注意前述条件】

1、事实上是支持注册45000个虚拟机,同时打开虚拟机数量最大值为40000个

2、上述最大值是部署大小选型为超大型时候,配备了相应的资源时候才具备扩展性

详见《4.6 vCenter Server的扩展性》

因此当所管理的主机超过单个vCenter上限时,或者遇到企业的管理要求

以下场景下,往往会有多vCenter的需求

1、企业合规需要,不同数据中心需要不同的vCenter进行管理

2、针对被管理对象vCenter进行权限设置

上述两种情况都需要进行多vCenter的部署,此时可以使用增强型链接模式

使用增强型链接模式最多可将15【请记住这个数量】个 vCenter Server Appliance 部署链接到一起,并在一个清单视图中显示【共享清单的作用

安装时选择加入已经存在的Single Sign-on域即可链接,也可以在部署完成后创建增强型链接模式

增强型链接模式能够做到共享清单、共享许可、共享全局配置

link-mode增强型链接模式的创建就是在安装vCenter时候,选择加入现有域

注:

单纯多vCenter管理多站点的解决方案并不能解决单vCenter的单点故障问题,需要使用vCenter HA解决方案

4.3 SSO的登录方式

vShpere存在多个服务,例如vCenter,vR以及vLCM等等,通过Single Sign-On解决了相互信任的服务之间多次登录的问题,SSO本质是共享Token

vCenter Single Sign-On 可以使用内置或外部身份提供程序对用户进行身份验证

默认情况下,vCenter使用vsphere.local这个域名一般我们在安装vCenter时候都会进行自定义,注意区别】域作为身份源【vSphere从5.1版本就是开始有了SSO了,就有了自己的身份源】

可以使用LDAP、OpenLDAP、或者MS AD等软件为vCenter提供身份源服务

image-20231106083307359

4.4 关于登录用户名

根据前述SSO的概念登录vCenter时候往往会使用administrator@vsphere.local这个域名一般我们在安装vCenter时候都会进行自定义,注意区别

而这个用户就是在我们本地域中

image-20231106084105201

还有就是当我们访问https://vCenterip.vsphere.local:5480,注意5480端口

实际上,访问5480端口的管理界面,我们可以也可以使用administrator@vCenter.cj.com.cn进行登录

image-20231107131236286

我们是使用root账户,其实本地域就是localos

image-20231106084047183

通过登录5480端口vCenter的管理地址界面,可以查看vCenter的管理信息

其中可以修改vCenter的FQDN主机名和IP地址

image-20231107132409587

这里的root密码是vCenter安装过程中设置的,后期可以更改

image-20231107231454368

可以通过登录vCenter的5480管理界面进行对root账户的密码更改

但是此时对密码更改时候,对密码强度有一定要求

image-20231107231719612

另外注意

如果遇到vCenter的管理后台无法通过5480进行登录,是因为最长生命周期:密码必须每 90 天更改一次

解决办法是:通过SSH登陆到vCenter,系统会自动提示修改密码

image-20231216085313320

4.5 ESXi和vCenter Server管理方式

再次说明:vCenter的作用在于集中管理虚拟机拓展功能【vMotion、FT、RDS】

由于ESXi是集中管理,因此用户登录vSphere Client,vSphere Client是管理 ESXi 主机的主要方法,通过vCenter的vpxd进程去访问ESXi的vpxa守护进程

其中vpxa守护进程是当ESXi主机添加到vCenter时候被安装的

如果vCenter不可用,可使用VMware Host Client直接与ESXi主机通信

而VMware Host Client是通过ESXi的hostd服务器进行通信

image-20231106220043478

4.6 vCenter Server的扩展性

官网有最新的关于扩展性,max值的描述

https://configmax.esp.vmware.com/home

image-20231212120911097

image-20231212120902613

1、每个vCenter Server的主机最大值:2500

2、每个vCenter Server的已打开电源的虚拟机:40000

3、每个vCenter Server的已注册虚拟机:45000

4、每个集群主机:64

5、每个群集虚拟机:10000

注意上述拓展性是最大值

是部署大小选型为超大型时候,配备了相应的资源时候才具备扩展性

这个最大值可能随着vSphere的版本会出现变化

部署大小选项 描述
微型 部署具有 2 个 CPU 和 12 GB 内存的设备。适用于最多包含 10 个主机或 100 个虚拟机的环境。
小型 部署具有 4 个 CPU 和 19 GB 内存的设备。适用于最多包含 100 个主机或 1,000 个虚拟机的环境。
中等 部署具有 8 个 CPU 和 28 GB 内存的设备。适用于最多包含 400 个主机或 4,000 个虚拟机的环境。
大型 部署具有 16 个 CPU 和 37 GB 内存的设备。适用于最多包含 1,000 个主机或 10,000 个虚拟机的环境。
超大型 部署具有 24 个 CPU 和 56 GB 内存的设备。适用于最多包含 2,500 个主机或 45,000 个虚拟机的环境。

4.7 NTP设置的重要性

对于vSphere而言, 时间的同步非常重要包括日志的时间戳的统一有助于帮助排错,HA同步过程中存储检测机制中的时间戳同步,等等

在vSphere中,有NTPPPP两种时间授权方式,后者精度更高,一般选择前者即可

4.7.1 ESXi主机的NTP的设置

可以直接在vSphere Client中对特定某台ESXi主机进行设置

image-20231107232246803

一般我们都将NTP服务的启动策略选择随主机启动和停止

image-20231107232552952

企业内网都要部署单独的对外提供NTP服务的专业设备,通过GPS或者北斗授时

4.7.2 vCenter的NTP设置

直接在vCenter的5480端口后台管理界面进行设置

image-20231107233308363

4.8 关于vCenter的权限

vCenter是基于角色的权限访问控制RBAC(Role-Based Access Control)

在RBAC概念中,所谓权限就是针对一个对象【需要操作的目标】,为一组用户或者组,分配一个角色【拥有可执行操作的组】

权限=对象+用户(组)+角色

这里要区分角色和权限的区别

例如为对象192.168.100.50这台ESXi主机,添加vCenter8.cj.com.cn域下特定用户分配一个角色,如果需要则选择传播到子对象这就是权限

image-20231107220336832

我们可以通过vCenter“系统管理”中“访问控制”的“角色”,去查看预定义的各角色特权

image-20231107221155994

还可以自定义新建角色

image-20231107221135800

4.8.1 权限的规则

VMware的权限设置规则总的来说

权限的应用规则,务必分清用户还是组

1、对象是组的权限相互之间是叠加,如果某个用户属于多个组,且这些组对同一对象均拥有权限,则该用户将获得为这些组分配的针对该对象的所有特权

2、权限可以向下传递到对象层次结构中的所有子对象,也可以仅应用于特定对象

其中子对象的特定权限会进行覆盖(override)

3、对象是用户的,为用户明确定义的访问权限优先于所有组权限

4、一个用户可以是对不同对象具有相应权限的多个组的成员。在这种情况下,对于这些组有权访问的每个对象此用户将拥有与它们相同的权限,就像直接为该用户授予了这些权限一样。

4.8.2 关于全局权限

全局权限支持从某个全局根对象跨多个解决方案分配特权:

1、vRealize Orchestrator等解决方案和多个vCenter实例

2、可为用户或组分配对所有vCenter分层结构中所有对象的特权

全局权限的设置谨慎使用

4.9 事件和任务

vSphere任务是每天工作时在vSphere中执行的每项操作

vSphere事件是指对vCenter清单中的对象执行的用户操作或系统操作的记录

1、用户操作信息包括用户的帐户和特定事件详细信息

2、将报告事件详细信息,例如事件的日期和时间、类型、描述,以及发生事件的对象

3、系统将显示事件和警报,以提醒用户 vCenter 服务运行状况发生变化或服务失败

vCenter “Tasks”(任务)和“Events”(事件)窗格默认提供审核记录,保留30天的历史记录

更详细的日志记录需要在 vCenter 系统上有更多空间

4.9.1 将vCenter日志文件转发到远程主机

需要登录vCenter的5480端口进行配置

image-20231107223345336

4.9.2 将 ESXi 主机日志文件转发到远程主机

除了将vCenter日志文件转发到远程主机外,还可以将ESXi主机日志转发到远程主机

此时是没有直接的GUI操作的,针对特定某台ESXi的高级系统配置,去单独设置Syslog.global.logHost

image-20231107223557357

您可以使用日志分析产品(如VRealize 或者Log Insight)进一步分析 ESXi 主机日志文件

5 关于虚拟网络

关于虚拟网络这块知识点,可以参考本人另外一篇专题文章VMware VSphere虚拟网络的深度研究

连接:https://mp.weixin.qq.com/s/YpNDLvW6h0B_29JCNncRtQ

虚拟机换机的端口类型就三种:端口组PortGroup、VMkernel、UPlink

有一个视角去帮助理解上述端口类型区别,[标准虚拟机和分布式虚拟机交换机概念上没有太多区别]

1、端口组PortGroup是面向VM(虚拟机)的,是VM的网卡连接的网络,ESXi支持802.1Q的VLAN标记

一般都端口组都设置VLAN ID,不同VM连接到代表不同VLAN的端口组,同时UPlink设置为VLAN中继,物理交换机端口设置为Trunk模式,透传相应VLAN流量

2、VMkernel是面向ESXi主机,直接作用于ESXi主机上,用于承载vSAN、iSCSI、vMotion、HA、FT、管理等服务流量

3、UPlink是面向ESXi的物理网卡,是虚拟交换机的上行链路,VLAN中继流量,设置过程中都需要将Uplink口与物理网卡进行一一绑定,同时UPlink实际生产环境往往都以LACP方式进行链路聚合使用,提高高可用性

4、VMkernel走的是三层通讯,VMkernel是可以配置IPv4和IPv6地址的,PortGroup和UPlink都是二层通讯,不能配置IPv4和IPv6地址的

VMware的一般标记规则

vmnic0/1/2对应ESXi的物理网卡标记

uplink0/1/2对应uplink的标记

vmk0/1/2对应VMkernel的标记

5.1 虚拟网络的作用

1、提供虚拟机连接网络网络的能力

2、提供虚拟机之间网络连接的能力

3、提供其它诸如vSAN、iSCSI、HA、FT等服务能力

总来的说,虚拟网络要区分标准交换机和分布式交换机,目前大多场景下基本都是用分布式交换机【最佳实践也是尽量用分布式交换机,增强企业版】

分布式交换机除了针对多个主机统一部署虚拟交换机外,分布式交换机VDS相较标准交换机而言,增加了很多功能

5.2 标准虚拟交换机和分布式交换机

总来的说,虚拟网络要区分标准虚拟交换机和分布式交换机

生产环境中,最佳实践就是使用分布式交换机

标准虚拟交换机只能为单台ESXi配置,诸如迁移等功能就要确保标准虚拟交换机的名称及配置要一致,因此一般适用于主机数量比较小的场景,因此目前大多场景下基本都是用分布式交换机

分布式交换机除了针对多个主机统一部署虚拟交换机外,分布式交换机VDS相较标准交换机而言,增加了很多功能

分布式交换机将控制屏幕和转发平面进行了分离,将控制平面转移到vCenter上

分布式交换机是一种转控分离的架构,数据是保存在vCenter的数据库内,当vCenter故障时候,分布式交换机仍然可以正常工作

分布式交换机的主机必须具有 Enterprise Plus 许可证或属于 标准版+VSAN集群许可

分布式交换机端口由vCenter 静态分配,可对网络统计信息和策略进行更精细的控制

一般而言两个物理网卡对应一个分布式交换机,用于流量的物理隔离,如果物理网卡较少情况下,端口组和VMKernel共享Uplink口

虚拟交换机上设置网络连接策略,以配置虚拟网络属性,比如安全性、性能和可用性

接下来我们分别对安全、流量调整、绑定和故障切换进行分别阐述总结

重要知识点,注意区分

针对标准虚拟交换机而言,网络连接策略的设置是在交换机上,可以通过各端口的策略进行覆盖

针对分布式交换机而言,网络连接策略的设置是在端口组PortGroup上,可以通过单个端口进行策略覆盖

5.3 安全

Promiscuous mode(混杂模式):无论目标是哪里,都允许或禁止转发所有流量

混杂模式一般用于TS、抓包分析、网络审计等场景下

注意:VSS标准虚拟机无法实现端口镜像,VDS可以!

MAC address changes(MAC地址变更):在客户机更改了MAC地址的情况下接受或拒绝入站流量

伪传输就是允许源地址修改,MAC地址变更允许目标地址修改

Forged transmits(伪传输):在客户机更改了 MAC地址的情况下接受或拒绝出站流量

伪传输就是允许源地址修改,MAC地址变更允许目标地址修改

其中MAC地址变更应用于某些特定应用于特定MAC地址绑定的场景下

针对标准交换机进行设置

image-20231108223746109

针对标准交换机下端口组进行策略覆盖设置

image-20231108224040042

5.3.1 端口镜像

针对分布式交换机会多了端口镜像

image-20231109205717968

端口镜像会话类型包括

1、分布式端口镜像

将网络流量从一组分布式端口镜像到其他分布式端口

2、远程镜像源

将网络流量从一组分布式端口镜像到特定上行链路端口

3、远程镜像目标

将网络流量从一组 VLAN 镜像到分布式端口

5、已封装远程镜像 (L3) 源

将网络流量从一组分布式端口镜像到远程代理的IP地址

5.4 流量调整

主要针对平均速率、峰值速率以及突发大小均可配置

image-20231109184745973

很重要一点:

1、标准虚拟交换机的流量调整只针对虚拟机的出站流量,即虚拟机到标准虚拟交换机再到物理交换机的流量

2、如果要控制入站流量只能使用VSS,分布式交换机

image-20231109190954231

分布式交换机的策略是针对端口组的,分布式端口组流控可以是输入和输出即入站和出站

image-20231109190909491

5.5 绑定和故障切换

标准虚拟交换机的负载均衡有四种方法:基于IP哈希的路由、基于源MAC哈希的路由、基于源虚拟端口的路由、使用明确故障切换顺序

其中基于源虚拟端口的路由是默认策略

最佳实践如下:

1、使用前三种技术,使用两个或两个以上的活动链路

2、使用基于源虚拟端口ID 的负载均衡方法,虚拟机的出站流量将映射到特定物理网卡,当物理网卡故障,虚拟机会进行故障转移,只要虚拟机ID不变,出站流量仍然走特定物理网卡,但是它无法真正做到物理层面负载均衡【因为无法对流量进行检测,各物理网卡之间存在流量不均衡情况】

3、使用源MAC哈希方法对虚拟机的出站流量进行负载均衡时,将根据虚拟网卡的MAC地址将其映射到特定的物理网卡,但是存在和基于源虚拟端口ID一样的问题,就是无法做到物理层面负载均衡,而且会加大ESXi的CPU计算负载

4、使用基于IP 的负载均衡方法时,将根据每个出站数据包的源和目标IP地址来为其选择网卡,【在这种场景下,物理交换机需要通过LACP-Static做链路绑定,否则的话会出现MAC地址漂移】

5、使用明确故障切换顺序,则使用1个活动链路,一个备用链路,然后启用故障恢复(默认启用),

6、故障恢复:表示当故障恢复时候是否切回活动链路

另外网络故障检测,包括仅链路状态或者信标探测,前者是物理,后者是逻辑检测,当存在多个物理网卡时,先进行物理链路状态检测然后是信标逻辑探测

LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是基于IEEE802.3ad标准的

分布式交换机相比较标准虚拟交换机多基于物理网卡负载的路由

image-20231109211511203

基于物理网卡负载的负载均衡可确保优化网卡绑定组中的物理网卡容量

此功能特性有以下作用:

1、在上行链路之间迁移I/O流

2、只有当上行链路的平均发送或接收利用率在30秒内超过75%的容量时,才会迁移流

注意

基于物理网卡负载的负载均衡一样无法真正解决物联层面的物理网卡负载均衡

最佳实践还是使用Lags端口聚合组

image-20231109220106745

image-20231109220106745

5.6 其它高级设置

5.6.1 发现协议

交换机发现协议可帮助网络管理员收集有关物理或虚拟交换机的配置和连接信息

vSphere 支持以下发现协议:

1、Cisco 发现协议(CDP):适用于连接到Cisco 物理交换机的vSphere 标准交换机和分布式交换机

2、链路层发现协议(LLDP):仅适用于分布式交换机的供应商中立协议标准交换机可以配置为使用CDP

标准交换机可以配置为使用 CDP、分布式交换机可以使用CDP或 LLDP

image-20231109210147545

5.7 故障排查

网络的故障和存储一样非常复杂,而存储的排错往往可以直接找原厂工程师或者运维存储组

有时候会出现导入现有的ESXi主机,而此时ESXi主机具有分布式主机的关联信息而导致无法删除,此时需要在各关联的ESXi主机上进行取消关联,然后才能正常删除

image-20231213000559474

还有一个在之前提及的网络设计和部署最佳实践是采用LACP作为与物理交换机的连接

关键点在于创建lag然后在上行链路中选择lag1-0/lag1-1

新建lag链路聚合组时候

image-20231214095003977

image-20231214094911700

6 关于虚拟存储

在vSphere中,存储和网络都是非常重要的环节,早期往往vSphere搭配FC SAN构建共享式存储作为生产环境主要存储架构

超融合HVI架构火热后,分布式存储越来越应用于生产环境

vSphere vSAN7.0版本比较稳定,超融合HVI的核心是SDS(软件定义存储),SDS最大的优势就是利用传统X86的本地存储提供了高性能和冗余可用性

虚拟存储使用步骤其实很简单,包括两个步骤

1、通过ESXi主机通过网卡连接存储

2、通过VSphere Client管理存储,创建DataStore

这里的DataStore是什么?实际上可以简单理解为存储类型

6.1 数据存储类型

那么如何创建DataStore?DataStore可以支持以下四种数据存储类型

image-20231110210653647

1、NFS:支持NFS3.1和NFS4,注意vSphere不支持CIFS协议

NFS3和NFS4的区别

1、NFS4.1不支持Storage DRS

2、NFS4.1不支持Storage I/O Control

3、NFS4.1支持Kerberos 身份验证,这个Kerberos 身份验证其实就是根据MS AD来做认证,需要将ESXi加入域控,然后再针对NFS做认证

4、NFS 4.1 支持多路径。对于 NFS 3,多路径并不适用

5、NFS 3允许6.0版本以前的 ESX/ESXi主机访问数据存储

2、VMFS:VMFS就是vSphere Virtual Machine FileSystem,VMFS6版本多的功能包括:支持4K原生存储设备、自动执行空间回收、每台数据存储128台主机

VMFS文件系统最大的容量为64TB,VMDK文件最大容量支持62TB

3、vSAN:基于策略的分布式对象存储系统

4、vSphere Virtual Volumes

虚拟机在DataStore中的存储方式有基于文件的和基于对象的存储两种方式

无论是基于文件还是基于对象存储,都是以文件夹的视图方式进行管理

NFS或者VMFS是基于文件形式存储

vSphere Virtual Volumes或者vSAN是基于对象形式存储

存储的各种知识点有点绕,需要总结

需要区别底层存储设备类型数据存储类型数据存储访问方法存储内容形式

底层存储设备类型 数据存储类型 数据存储访问方法 数据存储内容形式 传输类型
DAS/SAN VMFS 块存储 文件 直接连接、光纤通道、FCoE、iSCSI
NAS NFS 文件存储 文件 以太网
DAS vSAN 块存储 对象 直接连接
SAN/NAS vSphere Virtual Volumes 块存储或者文件存储 对象 光纤通道/以太网

1、SAN包括FC SAN、FCoE、IP SAN(iSCSI),VMFS底层就是块存储,就包括SAN和DAS

2、NFS是NAS系统已有文件系统,vSphere直接使用而不必进行格式化,SAN需要格式化为VMFS文件系统,中间通过以太网传输

3、vSphere除了CIFS协议外,其它存储协议都支持

4、ESXi主机从SAN启动(Boot From SAN)只支持FC SAN、FCoE和iSCSI,其它存储类型都不支持(包括vSAN)

5、在是否支持vMotion、HA、DRS的功能中,DAS是不支持的,SAN、NFS都是支持的(包括vSphere Virtual Volumes和vSAN)

6、底层存类型是DAS的是不支持vMotion、HA、DRS,本质是底层不是共享性存储

6.2 对象存储

vSphere Virtual Volumes或者vSAN是基于对象形式存储

对象存储虽然也是以文件夹的视图方式进行管理

但是本质是SDS,软件定义存储,可以应用VM Policy

SDS软件定义存可以通过进一步扩展虚拟机的性能和提升冗余可用性【**例如FTT=**2】

6.3 使用iSCSI注意点

1、需要在需要连接iSCSI存储的ESXi主机上添加iSCSI适配器

注意:需要在各个ESXi进行如下四步操作

image-20231110200440991

2、添加iSCSI软件适配器后,需要绑定到一个VMkernel适配器上

注意

1、这里VMkernel适配器必须是在标准虚拟机交换机上,而不是分布式交换机

2、这里的VMkernel的IPv4或者IPv6地址需要和iSCSI服务器进行正常通讯

image-20231215222439843

3、静态或者动态发现,添加iSCSI服务器端口号iSCSI目标名称

image-20231110203326961

选择网络端口绑定,选择添加

image-20231215222647852

4、重新扫描存储,然后刷新设备

一张图来描述步骤如下

image-20231215225923219

其实注意,使用iSCSI的网络最佳实践是需要和其它业务网络,NFS存储网络都要物理隔离

当iscsi设备完成后,最后一步要创建datastore

image-20231215225247275

如果发现无法连接,多注意服务器端的发起程序中的可运行列表

image-20231215230030749

另外可能错误的就是静态目标服务器的iSCSI目标名称

image-20231215230421466

6.4 存储扩容

datastore可以在现有lun基础上进行扩展容量,也可以增加其它的lun进行横向容量扩展

容量扩展支持动态扩容

datastore不支持缩容

6.5 维护模式

当需要对存储进行维护时,需要将存储上的虚拟机或者模板进行迁移操作

所有虚拟机和模板移出后,数据存储将进入维护模式

6.6 多路径

多路径能够使用多条物理路径在主机和外部存储设备之间传输数据

如果 SAN 网络中的任何元素(如适配器、交换机或电缆)发生故障,则 ESXi 可切换到另一个可行的物理路径

这种避免使用故障组件的路径切换过程称为路径故障切换

从而要维持主机及其存储之间的持续连接,ESXi 必须支持多路径

除路径故障切换外,多路径还提供负载平衡

负载平衡是在多个物理路径中分配 I/O 负载的过程,负载平衡可以减少或消除潜在的瓶颈

6.1.1 iSCSI多路径算法

vSphere 提供原生路径选择、负载均衡和故障转移机制

第三方供应商可以为ESXi主机创建软件,以便与存储阵列正确交互

根据协议规范,NFS 4.1 支持多路径。对于 NFS 3,多路径并不适用

NFS 3 将一个 TCP 连接用于 I/O。因此,ESXi仅支持 NFS 服务器的一个 IP 地址或主机名上的 I/O,且不支持多路径。根据您的网络基础架构和配置,可以使用网络堆栈配置存储目标的多个连接。在此情况下,必须拥有多个数据存储,且每个数据存储在主机与存储之间使用单独的网络连接。

NFS 4.1 为支持会话中继的服务器提供多路径。中继可用时,可以使用多个 IP 地址访问单个 NFS 卷。不支持客户端 ID 中继。

注意:多路径算法提供“双活”或者“主备”,前者就可以提供负载平衡

对于多路径算法,原生提供了最近使用(MRU)、循环(RR)以及固定(Fixed)

主备默认是MRU算法,而双活是默认是固定算法Fixed

image-20231113212635501

6.1.2 NFS多路径

NFS多路径是基于NFS4.1版本

image-20231114123226956

为 NFS服务器配置多个IP地址

image-20231114132808290

在标准虚拟机交换机上配置基于IP哈希VMkernel端口组,同时在物理交换机上配置LACP Static

NFSv3 VMkernel绑定

vSphere 8 Update 1 中引入了 NFS VMkernel 绑定功能,能够将卷的 NFS 连接绑定到特定的 VMkernel 端口

这有助于跨专用子网/VLAN 引导 NFS 流量,从而确保安全性,并确保NFS 流量不使用管理端口或其他VMkernel 端口

image-20231114123600709

7 关于虚拟机管理

虚拟机从自身来看就是操作系统加上应用程序,即物理计算机及其组件的软件表现形式

而从vSphere管理者来看其实就是一个文件夹,正是因为这种文件夹软件存放管理方式,才能方便后续诸如HA、DRS等集群功能的实现

虚拟机的创建的最佳实践是选择正确的虚拟机硬件版本和对应的操作系统

虚拟机的创建课题通过向导、OVF模板以及虚拟机模板进行克隆创建

虚拟机的硬件版本决定了虚拟机支持的硬件能力和硬件的最大能力,例如ESXi8.0对应的虚拟机硬件版本为20,它支持最多28TB RAM和768个虚拟CPU

vSphere提供计算最高配置详见:https://configmax.esp.vmware.com/

7.1 虚拟机文件

虚拟机从管理组织形式上是文件夹,包括了很多文件

1、配置文件VM_name.vmx

2、交换文件VM_name.vswp

这个虚拟交换文件的到小等于分配给虚拟机内存的大小,开机时候就自动生成,关机则自动删除

3、模板配置文件VM_name.vmtx

虚拟机模板是虚拟机的主要副本(Main Copy),模板一般进行了一些预设,按照了一些软件,由于虚拟机模板是vmtx,因此虚拟机模板无法启动

具体查看《5.5 关于OVF和虚拟机模板》

4、BIOS/EFI配置文件VM_name.nvram

5、日志文件vmware.log

6、归档日志文件vmware-#.log

7、磁盘描述符文件vm_name.vmdk

8、磁盘数据文件VM_name_flat.vmdk

注意vmdkflat.vmdk的区别,后者才是真正的磁盘文件,但是前者描述文件被删除后,虚拟机也无法启动

9、虚拟机快照VM_name.vmsd

10、虚拟机快照数据文件VM_name.vmsn

11、快照磁盘差异文件VM_name-delta.vmdk

12、内存状态文件VM_name-delta.vmss【虚拟机挂起Suspend时候,会将内存写入vmss文件,而恢复时则将vmss文件写会内存】

7.2 VMware Tools

很重要一点:虚拟机向导时选择的操作系统版本会决定后续VMware Tools的版本,务必选择正确的版本

VMware Tools功能总额来说都是提升性能扩展功能提升体验,具体包括

1、设备驱动SVGA驱动、VMXNET/VMXNET3网卡驱动、Balloon Driver【内存回收】、I/O静默驱动【备份和迁移的时候提供IO静默的能力】

Balloon也是一种ESXi回收内存的算法之一,需要VMtools进行配合,详见《10.3.2 内存回收算法》

2、增强图形性能

3、改善鼠标体验

4、虚拟操作系统上的心跳服务

5、时间同步

默认情况下,客户操作系统会在启动和挂起恢复(resume)时候会和ESXi主机进行时间同步

但是默认情况下,周期性同步选项不会启用,因为可能会对虚拟机内的服务造成一定影响

6、通过主机正常关闭虚拟系统

7、与主机共享剪切板内容

同时windows操作系统需要手动安装VMware Tools,而Linux系统自带了开源的open-vm-tools,可以不需要安装另行安装VMware Tools

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@RHEL9 ~]# systemctl status vmtoolsd
● vmtoolsd.service - Service for virtual machines hosted on VMware
Loaded: loaded (/usr/lib/systemd/system/vmtoolsd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-11-22 19:58:54 CST; 2 weeks 4 days ago
Docs: http://github.com/vmware/open-vm-tools
Main PID: 866 (vmtoolsd)
Tasks: 4 (limit: 50443)
Memory: 9.3M
CPU: 8min 45.991s
CGroup: /system.slice/vmtoolsd.service
└─866 /usr/bin/vmtoolsd

Nov 22 19:58:54 RHEL9 systemd[1]: Started Service for virtual machines hosted on VMware.

7.3 磁盘模式和磁盘置备类型

7.3.1 磁盘模式(Disk Mode)

磁盘模式(Disk Mode)包括从属磁盘和独立磁盘,其中独立磁盘包括永久独立磁盘和非永久独立磁盘

各磁盘模式区别和联系

1、从属磁盘支持快照,从属模式是默认磁盘模式

2、独立磁盘的场景:可以将虚拟磁盘设置为独立模式,以便从所执行的其虚拟机的任何快照中排除该磁盘

3、独立磁盘不支持快照

4、独立永久磁盘:当虚拟机关闭时候数据不丢失

5、独立非永久磁盘:关闭虚拟机电源或重置虚拟机时,对非持久模式磁盘的更改将丢失。场景:一些试验环境下使用

7.3.2 磁盘置备类型(Disk Provisioning)

厚置备:随着虚拟磁盘创建会占用所有分配的空间,只要虚拟磁盘一旦建立,所有空间都会被占用,无论磁盘中写入了多少数据

厚置备包括快速置零延迟置零两种类型

创建厚置备快速置零虛拟磁盘时,会将物理设备上保留的数据置零。创建这种格式的虚拟磁盘所需的时间可能会比创建其他类型的磁盘所用时间长

在创建厚置备延迟置零虚拟磁盘时分配该磁盘所需的空间,创建过程中不会清除物理设备上保留的数据,但以后首次从虚拟机写入时则会按需置零

精简置备:精简置备的虛拟磁盘会根据需要使用空间

精简置备创建的磁盘仅具有头文件信息。它不会分配存储块或将其置零,写入数据时访问存储块,才分配存储块并将其置零

厚置备的硬盘的读写性能相对较好

对性能要求比较高的业务(数据库)的推荐采用厚置备

特别注意的是:精简置备的磁盘会出现磁盘超分配的情况,因此需要主动监控数据存储容量,必要时增加容量或者使用Storage vMotion进行迁移

精简置备转换为厚置备的方法

1、选择具有vmdk扩展名的虚拟机文件,然后选择Inflate(扩充),则会转成快速置零厚置备模式

2、使用VSphere Storage vMotion将虚拟机迁移到其他数据存储时,请选择厚置备

第一种方式缺陷是需要将虚拟机关机,而采用VSphere Storage vMotion方式可以在线转换

NFS上无法选择厚置备

7.4 虚拟机网卡

在虚拟机的网络适配器包括多种类型

1、E1000类型:Intel 82545EM 千兆以太网网卡的模拟版本,支持Windows XP

2、E1000E类型:Intel 82574 千兆以太网网卡的模拟版本,Windows 8的默认网卡

3、VMXNET3类型:纯软件虚拟网卡,需要安装驱动程序(VMware tools),支持巨帧、卸载、多队列等功能

image-20231210215435861

4、SR-IOV直通类型:直接通过物理网卡通讯,需要操作系统(Windows 2008 R2 SP2/RHEL6以上)以及硬件网卡支持

7.4 虚拟机的配置和修改

虚拟机支持可热插拔的设备主要包括USB控制器、以太网控制器和硬盘设备,另外在特定受支持的客户机操作系统,也可以对CPU和内存支持热添加

vSphere可以动态增加虚拟机的磁盘大小,但是这个磁盘不得挂接快照,另外vSphere不支持对磁盘的缩容

虚拟机的延迟启动Boot Delay用于在同一台ESXi的按顺序进行启动,用于让重要的虚拟机获得资源

虚拟机中对于硬盘的删除需要关注两种选项

7.5 关于OVF和虚拟机模板

OVF是一个开放式虚拟机格式,OVF是一个文件夹包括多个文件

OVA是OVF打包处理后【压缩】的一个文件

虚拟机模板是虚拟机的主要副本,准确说是静态镜像,可用于创建和置备新的虚拟机,通常情况下,模板进行了一些预设,模板中包括已安装的客户机操作系统和一组应用程序

虚拟机模板和虚拟机的区别和联系

1、前者无法启动,因为虚拟机模板的配置文件为vmtx

2、虚拟机模板必须使用vCenter进行管理,Host Client无法进行管理

3、因为虚拟机模板无法启动,因此如果要对模板进行更新,只能先转换成虚拟机,更新完成后再将虚拟机转换为模板

4、虚拟机模板在vCenter清单视图下不可见,需要在第二个视图下查看和管理

虚拟机模板的创建方法包括

1、将虛拟机克隆到模板,因为是克隆技术,此时虚拟机是可以开机或者是关闭状态

2、将虚拟机转换为模板,因为是转换,此时虚拟机必须是关机状态,并且源虚拟机将不存在

3、将现有模板克隆至模板

克隆虚拟机是对原有虚拟机创建精确副本,可以跨数据中心和vCenter对虚拟机进行克隆

7.6 内容库(content library)

总结:内容库可以理解为百度网盘,用于多vCenter管理下的多站点之间的模板、OVF和OVA模板以及ISO文件同步【实际上跨多个数据中心才有实际应用场景】

image-20231130194343571

内容库可以将虚拟机模板、OVF模板、ISO文件等作为共享文件在多个数据中心之间进行共享

内容库是由 OVF 模板和其他文件类型组成的存储库,这些模板和文件可以在全球不同的vCenter 系统间进行共享和同步

内容库包括本地库发布库订阅库

订阅库不能修改、订阅库无法发布

本地库和订阅库可以被管理员进行修改

订阅库会随着发布库的内容进行同步更新,不需要进行维护

image-20231125153443311

内容库的使用场景

1、多个站点可以方便维护虚拟机模板和同步内容库

2、可以直接挂在存储在内容库上的ISO文件

7.6.1 创建内容库

image-20231125153352104

创建内容库向导中,需要明确存储空间,就完成了内容库的创建

完成了内容库的创建后,就要开始使用模板去完成入库,即填充内容库

7.6.2 使用模板填充内容库

使用模板填充内容库包括使用虚拟机模板使用OVF模板

要区别使用虚拟机模板和使用OVF模板入库【前者虚拟机模板是和主机关联,而OVF是与主机分离的

注意【内容有点绕】

1、将虚拟机克隆为模板入库,可以选择虚拟机模板和使用OVF模板入库

2、将虚拟机模板直接入库,则是直接为OVF模板入库

3、虚拟机模板入库后,订阅库使用的前提是要同步虚拟机模板,请转到发布者库,添加订阅,并在选择订阅后选择“发布”

使用虚拟机模板填充内容库 使用OVF模板填充内容库
1 与主机相关联 未与主机相关联
2 显示在vCenter 清单中 未显示在vCenter 清单中
3 以数据存储的默认磁盘格式存储 精简置备模式
4 可以存储在NFS以外任何类型的存储上 存储在与内容库相关联的数据存储上(任何格式)
5 要同步虚拟机模板,请转到发布者库,添加订阅,并在选择订阅后选择“发布” 订阅库直接订阅
6 支持版本控制 不支持版本控制

1、将虚拟机克隆并且入库,此时是可以选择入库的类型,即虚拟机模板或者OVF模板

image-20231130083842751

2、直接将虚拟机模板入库,此时与主机是分离的

image-20231130085401163

本质就是导出OVF然后上传然后入库

image-20231130085442908

查看内容库

image-20231130085707409

从内容库新建虚拟机

image-20231130090256913

7.6.3 本地库形成发布库

创建发布库就是将本地库启用发布

image-20231130101845962

创建订阅库

image-20231130140050261

同步库同步项目

操作按钮上的同步,只是同步元数据,并不同步实际数据

只有选择了具体项目,选择同步项目才能下载实际OVF文件或者ISO文件

image-20231130141148217

7.6.4 针对虚拟机模板入库的使用方法

针对虚拟机模板入库有个稍微绕脑的是①订阅库订阅②发布者库中添加订阅③发布虚拟机模板④订阅库同步

在订阅库中如何使用虚拟机模板:要同步虚拟机模板,请转到发布者库,添加订阅,并在选择订阅后选择“发布”

image-20231130193444817

建立订阅库后,需要在原发布库中新建订阅

image-20231130141937480

随后开始对发布库中的虚拟机模板进行发布操作

image-20231130195059375

发布到订阅库

image-20231130195330878

7.6.5 虚拟机模板版本

虚拟机模板版本管理非常强大

注意

1、版本控制信息仅适用于已发布或本地内容库中的模板,即订阅库中无法管理版本

2、OVF模板不支持版本控制,要将模板添加到现有内容库,请选择虚拟机,然后选择“作为模板克隆到库”。

版本管理的流程跟Git类似,总的来说就是签出、修改、再签入

image-20231130201133481

其中签出的操作本质就是克隆为虚拟机

对虚拟机进行修改,例如就是给Linux打补丁

然后再对已经完成补丁的虚拟机进行签入,就完成了从V1到V2的虚拟机模板版本的更新

image-20231130201626400

可以借助版本控制的灵活性编辑内容库中的虚拟机模板。您可以在保持模板不变的情况下从模板中签出虚拟机。然后,您可以修补或编辑虚拟机。准备就绪后,您可以重新签入虚拟机,以更新虚拟机模板

image-20231130203602685

当签入后,每次将虚拟机检入回模板时,都会创建一个新版本的虚拟机模板

image-20231130204127992

当遇到问题时候,可以删除与还原模板版本

注意

1、版本管理更多的是方便从版本的角度去管理模板

2、版本管理本身并不节约硬盘空间的占用,并不是想Git那样底层文件管理逻辑

8 关于vMotion

8.1 使用场景

实际上vMotion有几种场景

1、只迁移存储资源,不迁移计算资源,就是vSphere Storage vMotion

2、只迁移计算资源,不迁移存储资源,就是vSphere vMotion

3、同时迁移计算和存储资源,就是Share-nothing vMotion

我们可以参考vSphere 在迁移的界面看到的UI界面

image-20231130212006572

vMotion的作用其实包括对主机进行维护对主机资源进行再平衡

8.2 vSphere vMotion 网络连接最佳实践

1、至少置备一个额外的物理网卡作为故障转移网卡

2、使用巨型帧可获得最佳 vMotion 性能:确保在vMotion 路径上的所有网络设备(包括物理网卡、物理交换机和虚拟交换机)上启用巨型帧

3、将vMotion 流量置于vMotion TCP/IP 协议栈上,以便跨IP子网进行迁移,这些IP子网的专用默认网关不同于管理网络上的网关

通过vMotion TCP/IP 协议栈可以跨IP子网进行迁移外,对传输性能可以很大的提升【最佳实践就是vMoiton的TCP/IP堆栈选择vMotion TCP/IP 协议栈】

image-20231130213116758

8.3 vSphere vMotion 迁移工作流

vSphere vMotion迁移步骤就是写时复制的技术,不断的通过快照,现将快照部分迁移,然后将变化部分(bitmap)反复的使用快照技术再进行复制

最终等到变化部分达到一定最小值时,一次性迁移

正是因为有个一次性迁移的过程,理论上Guest OS会有一个短暂的停止服务时间

8.4 vSphere迁移的必备条件

1、对于虚拟机而言RDM或者LUN必须是迁移前以及迁移后两个环境下共享存储中,即目标主机和源主机都能够访问RDM或者LUN

2、对于虚拟机而言不能与挂载了主机本地镜像的虚拟设备(如CD/DVD 或软盘驱动器)相连接

实际上大多数迁移失败,很多原因是挂在了本地(即源主机,远程console例外)镜像文件,如果是镜像文件是在共享存储或者远程console中则不受影响

image-20231210221731851

3、对于ESXi源主机和ESXi目的主机而言,必须具备vSphere Motion 的VMkernel 端口和对应的vSphere Motion的网络

4、对于ESXi源主机和ESXi目的主机而言,两端的CPU是同一个厂商且同一个家族,指令集相同,如果存在同一个厂商但不是同一个家族可以选择EVC功能或者兼容性掩码隐藏某些功能特性

兼容的 CPU

1、源主机和目标主机的CPU功能特性集必须兼容

2、但实际环境中,由于运营阶段过程中,采购无法保障来自于同一个CPU家族,可以采用EVC,EVC功能指的是Enhanced Motion Compatibility`

8.5 关于Enhanced Motion Compatibility

Enhanced Motion Compatibility是一项集群功能,支持在使用不同功能特性集的主机之间进行vSphere vMotion

此功能使用 CPU 基准来配置激活了Enhanced Motion Compatibility的集群中的所有处理器

基准就是集群中每台主机均支持的一个CPU 功能集

说白了就是为了指令集等最大兼容性,所采用的折中方案确保能够正常vSphere vMotion

8.5.1 启用EVC功能

是针对集群启用

image-20231202101916029

更改EVC模式,可以针对Intel或者AMD CPU进行,并且可以选择CPU模式

image-20231202101811901

您可以提升或降低 EVC 模式,但虚拟机必须处于正确的电源状态才能执行此操作

将EVC模式提升至具有较多功能的基准是不需要关机虚拟机的,但是只有重启后才能才能启用新特性

必须关闭虚拟机才能将EVC模式降低至具有较少功能的基准

在虚拟机级别配置 EVC 时,基于虚拟机的 EVC 模式将替代基于集群的EVC。如果未配置基于虚拟机的 EVC,当打开虚拟机的电源时,它将继承其父 EVC 集群或主机的 EVC 模式

image-20231202103554701

关于EVC功能的启用的前提条件

1、必须使用vSphere Client

2、虚拟机硬件版本必须是14以上

3、配置虚拟机的EVC,虚拟机必须是关机状态

8.6 关于Storage vMotion

8.6.1 场景

1、存储维护和重新配置:您可在虚拟机不停机的情况下,使用 Storage vMotion 将虚拟机从存储设备上移开,从而对存储设备进行维护和重新配置

2、重新分配存储负载:可以使用 Storage vMotion 将虚拟机或虚拟磁盘重新分配到不同的存储卷,以便均衡容量或提高性能

8.6.2 作用

使用 Storage vMotion,您可在虚拟机运行时将虚拟机及其磁盘文件从一个数据存储迁移到另一个数据存储

注意

和vSphere vMotion区别不一样地方

Storage vMotion计算资源不改变,因此没有虚拟机中断服务的时刻

并且Storage vMotion不需要vMotion网络

Storage vMotion可以实现磁盘置备类型的修改和数据存储上的虚拟机文件名称的修改

通过 Storage vMotion 迁移会更改目标数据存储上的虚拟机文件,以便与虚拟机的清单名称匹配

迁移将重命名所有虚拟磁盘、配置、快照和 .nvram 文件。如果新名称超过文件名的最大长度,则迁移不成功

8.6.3 关于VAAI技术

vSphere Storage vMotion 会将其操作负载分流到存储阵列

1、该阵列支持 VMware vSphere Storage APIs - Array Integration,也称为硬件加速两个数据存储位于同一存储阵列中

image-20231202104823321

2、两个数据存储位于同一存储阵列中

8.7 share-nothing vSphere vMotion

share-nothing vSphere vMotion是指vSphere vMotionvSphere Storage vMotion 组合成一个操作

可以跨主机、跨存储、跨网络、跨vCenter进行迁移

关于跨vCenter迁移

在某些虚拟机置备案例中,在 vCenter Server 系统之间冷迁移和热迁移虚拟机很有帮助。

1、在集群和 vCenter Server 实例之间均衡工作负载

2、在位于同一站点或另一地理区域的不同 vCenter Server 实例的资源之间灵活地扩展或缩小容量

3、在具有不同用途的环境之间移动虚拟机,例如,从开发环境移动到生产环境

4、移动虚拟机以满足关于存储空间、性能等的服务级别协议 (SLA)

将虚拟机迁移至另一 vCenter Server 系统期间,所收集的虚拟机性能数据会丢

image-20231202110835676

完成跨vCenter迁移要满足主机的时间必须同步、具备vMotion网络

image-20231202110910425

9 关于虚拟机快照

首先不建议将虚拟机快照作为一种虚拟机备份策略使用

备份在实施过程中会用到快照技术,包括vSphere vMotion以及Storage vMotion中都会用到快照技术

快照保留了虚拟机的状态,可以帮助用户反复恢复到快照建立时刻的状态

9.1 创建快照

非常重要:独立磁盘不支持快照

image-20231202113517701

9.1 快照文件

快照由存储在受支持的存储设备上的文件组成,生成快照操作会创建

1、.vmdk:磁盘描述符

2、-delta.vmdk 或 -sesparse.vmdk:磁盘增量文件,前者是VMFS5格式,后者是VMFS6格式

SEsparse 是 VMFS6 数据存储中所有增量磁盘的默认格式

3、.vmsd 和 .vmsn 文件:.vmsd存储所有虚拟机快照的名称、说明和关系,.vmsn是配置状态

.vmsd 和 .vmsn 文件存储在虚拟机目录中

4、.vmen是内存状态(可选)

9.2 结合快照文件阐述快照步骤

简单来说快照就是通过增量文件来实现快照

1、创建快照指令

2、对原始的flat.vmdk或者上一时刻快照的-delta.vmdk 或 -sesparse.vmdk的增量文件进行写保护

3、生成新的-delta.vmdk 或 -sesparse.vmdk:磁盘增量文件

4、每一次快照都会生成.vmsn配置状态文件

5、改写.vmsd 文件

6、后续虚拟机的磁盘修改都会体现在磁盘增量文件上,快照前数据都会向已写保护的原始的flat.vmdk或者上一时刻快照的-delta.vmdk 或 -sesparse.vmdk的增量文件进行读取

9.3 删除快照

删除快照会将被删除的快照与上一时刻的快照进行整合

生产环境下建议删除不必要的快照,因为会存在一下风险

1、多个快照会影响性能

2、多个快照中的中间快照丢失后,后续的快照会造成数据丢失

3、多个快照可能会造成虚拟机文件夹重复数据

9.4 快照整合

在快照管理器显示无快照但增量磁盘文件仍在数据存储中时,快照整合是把一系列增量磁盘提交到基础磁盘的一种方法

10 资源管理

虚拟机的资源分配设置(份额、预留和限制),包括如何设置和查看这些设置

资源管理是将资源从资源提供方分配到资源用户的一个过程

我们之所以需要资源管理,原因就是资源会过度分配(即需求大于容量)以及需求与容量会随着时间的推移而发生变化

image-20231211081906387

通过资源管理,可以动态重新分配资源,以便更高效地使用可用容量

资源包括 CPU、内存、电源、存储和网络资源,通过 vSphere,可以将主机和集群(包括数据存储集群)用作物理资源。对于主机,可用的资源是主机的硬件规格减去虚拟化软件所用的资源

10.1 预留、限制和份额

分配值【Allocation】用于指定分配给虚拟机当前可用容量

image-20231206155932491

预留量**[Reservation]用于指定可保证为虚拟机分配的最少资源量,默认是0,永远不会回收**

虚拟机的预留值得不到满足,虚拟机就会启动失败

限定量**[limit]**用于指定可以分配给虚拟机的CPU或内存上限,默认是无限制,默认就是Allocation

共享用于在限定值和预留值之间进行争用资源

份额值【Share】用于指定虚拟机获取给定资源的相对优先级或重要性,因为份额制默认都是正常,因此都是公平竞争

份额值【Share】:仅当 ESXi 主机遇到资源争用情况时,才会适用份额值

image-20231207174633271

监控资源

image-20231207175531464

10.2 CPU调度

CPU调度Vmkernel Scheduler任务是确保将虚拟机的vCPU调度在LCPU(逻辑CPU)执行

1、物理CPU开启了多核产生LCPU

2、超线程情况下LCPU的数目会增加

3、Vmkernel Scheduler分时调度的方式将LCPU分配给vCPU使用

只有LCPU才有真正的运算能力,vCPU只是针对给虚拟机的一段虚拟代码

注意,

1、实际上虚拟机的所有vCPU都获得LCPU时候才会启动

2、单独一台的vCPU数目是不能超过主机上的所有LCPU数目

当多个vCPU超过LCPU数目时候就会出现竞争关系,此时虚拟机就会退出队列进入等待

从等待到重新进入运行队列的时间,叫做Readytime,这个时间最佳实践不超过2000ms,虚拟机在等待CPU资源的状态下体现为假死

最佳实践

1、因为分时调度的原理,因此会产生Readytime,因此最佳实践是尽量减少vCPU的整体值,减少CPU整体调度的情况,确保最大程度减少虚拟机的Readytime

2、vCPU总数目和和LCPU的总数目的比例需要根据运行过程中

10.3 内存调度

内存虚拟化中vSphere包含以下内存层:

1、客户机操作系统虚拟内存,由操作系统提供给应用

2、客户机操作系统物理内存,由 VMkernel 提供给虚拟机

3、由VMkernel管理的主机内存,可提供一个供虚拟机使用的连续的可寻址内存空间

10.3.1 何时触发内存回收机制

内存都可以超载或者超售

虚拟机需要内存时候会向ESXi主机的VMkernel申请,一般而言虚拟机需要多少内存,VMkernel就会安排多少内存

主机将由限制Limit参数指定的内存分配给每个虚拟机,即:一般而言虚拟机需要多少内存,VMkernel就会安排多少内存

默认是不受限制,即当不超载时不会触发内存回收机制

多个虚拟机申请的总内存超过ESXi主机所拥有的物理内存总数量后,由于虚拟机公平竞争的原则,此时会触发ESXi VMkernel内存回收机制

当内存过载时,向每个虚拟机分配的内存量介于预留限制指定的内存量之间。授予虚拟机的高于预留量的内存量会因当前的内存负载而异。

image-20231205215611850

份额:ESXi 主机使用经过修改的按比例份额内存分配策略。内存份额给予虚拟机一部分可用物理内存

10.3.2 内存回收算法

1、TPS透明内存页共享算法

VMkernel会对页面内存每4K进行哈希计算去重,实际上操作系统类型相同的可以放在同一个ESXi主机上,从而节约内存

使用此方法时,具有相同内容的页面只存储一次

2、内存气球驱动程序(Ballon)

内存气球驱动程序 (vmmemctl) 通过VMtools帮助下与虚拟机的操作系统协作,利用专用膨胀技术回收客户机操作系统认为最不重要的页面

就是当触发内存回收时,VMtools会创建在客户机操作系统优先级很高的vmmemctl进程,操作系统会依次从idle或者优先级地的进程中,不断回收内存给到vmmemctl进程,然后由VMtools在回收给VMkernel,因此最佳实践是给虚拟机安装VMtools

3、内存压缩

ESXi 提供内存压缩缓存,可在内存超额分配使用时改进虚拟机性能

由于访问压缩的内存比访问交换到磁盘的内存更快,因此通过 ESXi 中的内存压缩可以使内存超额分配,但不会显著影响性能

当需要交换虚拟页面时,ESXi 会首先尝试压缩虚拟页面。可压缩至 2 KB 或更小的页面存储在虚拟机的压缩缓存中,从而增加主机的容量

image-20231206104031455

4、主机vSWP交换文件

vmmemctl 驱动程序不可用或未响应时,ESXi主机会使用交换从虚拟机中强制回收内存

因为vSWP文件可能会影响性能,所以可以通过更改文件存储位置提高I/O性能

因此针对集群和虚拟机可以设置特定的交换文件位置,其中默认情况下集群的设置会替代主机的设置

image-20231206105752139

如果选择由主机指定的数据存储,则还需要针对主机进行设置

如果配置了vSphere DRS,应将虚拟机交换文件置于共享数据存储中

image-20231207204544570

1、在进行 vMotion 期间使用对两个主机都不可见的数据存储可能会影响相关虚拟机的 vMotion 性能

2、除非万不得已,否则系统不会使用 VMkernel 交换空间,因为采用这种方式后,性能会变得很差

虚拟机开机时候会创建vSWP文件,关机时会删除此文件

image-20231206125039743

ESXi主机针对每个虚拟机的vSWP文件的具体文件大小公式是:内存分配大小减去内存预留大小

总的来说,VMkernel会根据自身所剩余的物理内存的多少自动启用回收算法

10.3.3 内存配置的最佳实践

1、为关键虚拟机设置预留值,提高份额

2、为非关键虚拟机设置限制值,降低份额

image-20231206122232338

11 集群

VSphere 使用集群在一组 ESXi 主机之间共享物理资源,可以简单理解为一群主机,集群是一个集合更是一个容器

11.1 集群的四项功能

vCenter将集群资源作为一个资源池进行管理

集群提供了提供了四种功能

1、DRS

2、HA

3、EVC

4、vSAN

注意事项

1、HA和DRS都是集群的功能,必须在集群下才能启用

2、HA的本质是通过重新启动虚拟机来提供高可用性,DRS是通过vMotion来确保每个虚拟机的所需资源

集群的创建是基于数据中心

image-20231210222840211

11.2 vSphere Cluster Service 虚拟机

在vSphere 7.0 Update 3版本后,会经常看到多出来了名称为vCLS的虚拟机

vSphere Cluster Service服务简称vCLS,vSphere集群服务默认处于激活状态,vCLS 使用代理虚拟机维护集群服务的运行状况

将主机添加到集群时,将创建vCLS代理虚拟机(vCLS 虚拟机),每个vSphere集群中最多需要运行3个vCLS虚拟机,并在集群内进行分发

2台主机是2个vCLS,3台或者3台以上是3个vCLS

image-20231207191139397

注意

1、升级到 vSphere 7.0 Update 3 或新的 vSphere 7.0 Update 3或更高版本部署时,会激活vCLS

2、vCLS虚拟机是维护 vSphere DRS 和vSphere HA 等集群服务的运行状况和可用性所必需的【即使vCenter不正常工作时】

13 资源调度之DRS

DRS全程是vSphere Distributed Resource Scheduler

DRS有助于改善集群中的所有主机资源分配

13.1 VSphere DRS 的应用场景

1、当虚拟机启动时进行初始安置

当DRS设置的自动化程度级别为半自动或者全自动时,只有这个场景下都是是自动

2、负载均衡

3、在ESXi主机处于维护模式时迁移虚拟机

注意

1、其实这三种场景对应的就是虚拟机的开机(启动时的初始安置)、运行(负载均衡)以及计划内关闭(例如主机进入维护模式)

2、场景2和3的前提:集群内的主机必须是vSphere vMotion网络的一部分

13.2 关于虚拟机 DRS 分值

DRS的判断是以虚拟机为中心,DRS会计算出每台虚拟机的分值,并提出建议(或迁移虚拟机)以便满足虚拟机的资源需求

都是根据DRS打分再进行判断进行负载均衡和虚拟机迁移

虚拟机DRS分值指的是此虚拟机的执行效率。值接近 0% 表示资源争用严重,而值接近 100% 表示轻度或无资源争用。DRS 将尝试最大程度地提高集群中每个虚拟机的执行效率,同时确保在所有虚拟机间公平分配资源。

image-20231207201051703

还可以进一步查看DRS有关CPU和内存的利用率

image-20231207223534000

13.3 DRS设置

自动化程度级别:分别是手动、半自动和全自动

三者的区别在于:

1、三者的使用场景都是参考《11.2.1 VSphere DRS 的应用场景》

2、手动和全自动很好理解,而半自动只能将虚拟机启动时进行自动化初始安置,半自动程度级别下,负载均衡和主机维护时虚拟机迁移也是手动。所以半自动其实就是光开机时候会进行自动化配置

image-20231208121920070

Predictive DRS

除实时衡量指标外,DRS 还将响应 vRealize Operations Manager 提供的预测衡量指标。为在预测的利用率猛增或出现资源争用前平衡集群的工作负载,DRS 将仅考虑信任度高的预测衡量指标。同时您必须在支持此功能的 vRealize Operations 版本中配置 Predictive DRS

Predictive DRS 用于预测未来需求,并确定资源利用率较高的时间和位置,为了制定预测性决策,vSphere DRS 数据收集器会检索

1、来自 ESXi 主机的资源使用率统计信息

2、来自VMware Aria Operations 服务器的预测性使用率统计信息

Predictive DRS 的目标能够在在虚拟机 DRS 分值下降之前移动虚拟机以及在主机资源出现争用之前执行迁移

image-20231207202255087

13.3.1 DRS设置最佳实践

vSphere DRS设置自动化级别全自动设置,迁移阈值选择默认,针对特殊的虚拟机设置虚拟机替代项或者虚拟机和主机规则

实际上vSphere的设置绝大部分都是最佳实践,并不需要太多调整

13.4 关于DRS中的DPM电源管理

DPM 使用 LAN 唤醒、IPMI 或 iLO 打开主机电源,当DRS将资源都迁移完毕后,可以使用DPM对ESXi主机进行关机,当业务频繁后再进行远程开机

主要目标是:对数据中心的绿色节能

由于对服务器进行开关机存在风险,因此DPM默认关闭

vSphere DPM 使用该模式来优化电源使用率

image-20231207212958918

13.5 虚拟机和主机规则

VSphere DRS 的虚拟机关联性规则用于指定应将选定的虚拟机放在相同的主机上还是不同的主机上:

1、关联性规则:用于彼此频繁通信的虛拟机

2、反关联性规则:用于需要实现负载均衡或高可用性的虚拟机

image-20231207221049342

其中3、虚拟机和主机规则需要依靠虚拟机组和主机组

一台虚拟机可以属于多个虚拟机组

一台主机可以属于多个主机组

虚拟机组和主机组用于定义虚拟机与主机间的关联性规则

image-20231207220352411

从虚拟机和主机规则包括两类

1、强制性规则:必须在组中的主机运行或者不得在组中的主机运行

2、偏好性规则:应在组中的主机运行或者不应在组中的主机运行

1、为什么设置组?规则适用性更强,避免单个主机故障后,导致虚拟机无法迁移

2、偏好性规则不必严格实施,在必要的情况下甚至可以违反,例如可以实现虚拟机的隔离,提升性能

3、强制性规则需严格实施,绝不能违反,例如某个数据库的许可是基于特定某个主机的

14 vSphere高可用之HA

高可用性(high availability,缩写为 HA),指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一

高可用性系统与构成该系统的各个组件相比可以更长时间运行
$$
A=\frac{\mathrm{MTBF}}{\mathrm{MTBF}+\mathrm{MTTR}}
$$
A(可用性),MTBF(平均故障间隔),MTTR(平均修复时间)

在线系统和执行关键任务的系统通常要求其可用性要达到5个9标准(99.999%)

可用性 年故障时间
99.9999% 32秒
99.999% 5分15秒
99.99% 52分34秒
99.9% 8小时46分
99% 3天15小时36分

vSphere 可以减少计划的停机时间防止出现非计划停机并迅速从中断中恢复

一、其中对于计划内容的停机时间,可以通过vMotion实现

由于 VMware 环境中的工作负载无需中断服务即可动态移动到不同的物理服务器或基础存储,所以,通过 vSphere 中的 vSphere vMotion® 和 Storage vMotion 功能,组织可以减少计划的停机时间

二、对于出现非计划停机,可以通过HA和FT实现

vSphere HA 和 Fault Tolerance 功能分别通过提供中断快速恢复和连续可用性来最小化或消除非计划停机时间

vSphere HA 提供快速中断恢复而

vSphere Fault Tolerance 可提供相比较vSphere HA更高级别的可用性,允许用户对任何虚拟机进行保护以防止主机发生故障时丢失数据、事务或连接

14.1 vSphere高可用性的整体逐层保护机制

image-20231214082546935

14.2 vSphere HA代理通讯架构

vSphere HA很多应对场景的办法,底层都是基于心跳信号检测

注意心跳信号检测分为网络信号检测存储信号检测

vCenter将需要受保护的虚拟机列表发给主控主机的FDM,然后由主控主机的FDM去监控受保护的虚拟机

后者又将受保护的虚拟机的状态和监控数据发回给vCenter做展示

image-20231211214916696

当我们对集群配置HA时候,集群内的各ESXi主机开始安装HA代理,即FDM

image-20231211222921469

14.2.1 主控主机的选举机制

如果为集群启用了vSphere HA,则所有活动主机(未处于待机或维护模式的主机或未断开连接的主机)都将参与选择集群的主控主机。

选举主控主机的评判依据是

1、挂载最多数量的数据存储的主机

2、如果挂在的存储一样多的时候,比较MOID大的ESXi主机为主控主机

注意

1、MOID是逐位比较,99就比100大

2、当主控主机降级后,故障恢复时候仍保持降级状态即从属主机状态,主控主机不抢占!

每个集群通常只存在一台主控主机,其他所有主机都是辅助主机(从属主机)。如果首选主机出现故障、关机或处于待机模式或者从集群中移除,则会进行新的选举。

登陆到特定地址[vcenter的域名/vod/index.html],选择Host status可以查看MOID

image-20231211225216893

或者直接在vCenter界面选择ESXi主机,查看地址栏变化

image-20231212090253234

上图看出来当前vSAN前提下,ip地址是192.168.100.51这台主机应改为主控主机,实际正是如此

image-20231211225509837

14.2.2 protectedlist被保护的虚拟机列表

在存储上会有一个protectedlist文件,这个文件包含了一份清单,这个清单中包含了HA保护的所有的虚拟机

image-20231215122824573

14.3 心跳信号检测

image-20231212121354517

14.3.1 网络心跳信号检测

网络心跳信号检测是通过管理或者vSAN流量的VMkernel端口进行实施

在集群中同时激活 VSAN 和 VSphere HA 时,vSphere HA将使用VSAN 网络(而不是管理网络)作为检测信号网络

心跳信号的网络也要进行冗余设计,冗余设计即可以采用两个物理网卡进行冗余设计,也可以创建多个单独的虚拟交换机同时配置管理VMKernel适配器

网络心跳信号的检测,和所有分布式架构一样,必须先行选择主控【master或者primary】主机,即存在选举问题

被选举后的主控ESXi会给所有从属主机发送检测信号

从属主机便会知道主控主机,主控主机也会知道从属主机活动状态

主机通过冗余的多条心跳网络发送检测信号

但是从机只会通过一条心跳网络返回心跳信号

14.3.2 存储心跳信号检测

当主控主机无法通过网络检测信号网络与从属主机进行通信时,主控主机不会轻易会使用数据存储检测信号来确定原因

数据存储检测信号即二次信号检测,vSphere不会通过三次的网络信号检测直接判断主机或者虚拟机故障

而数据存储检测信号的原理就是ESXi主机不断去刷新共享存储的某个文件的时间戳

如果存储心跳信号也出现问题,则会重新启动故障主机的虚拟机

存储心跳信号可以确定原因包括:从属主机故障、网络分区、网络隔离

在HA的摘要里也可以清晰看到各种故障的显示

image-20231215132800911

存储信号只有在网络心跳检测失败时候启用

VSAN上的vSphere HA的另一个显著不同是VSAN数据存储不能用作数据存储心跳(datastore heartbeat)

image-20231212085936940

14.3.3 HA一般故障的处理时间

对于非主控主机故障,一般虚拟机恢复服务的时间为10秒+虚拟机启动时间+应用启动提供服务时间

对于主控主机故障,一般虚拟机恢复服务的时间为10秒+15秒主控主机重新选举的时间+应用启动提供服务时间

14.4 HA使用场景

开头总结:其实HA的适用场景也告诉我们一个vSphere HA设计最佳实践

就是实施冗余检测信号和冗余隔离地址,将虚拟机网络与检测信号网络分类

数据网络和存储网络物理隔离,并设计冗余

14.4.1 防止主机故障

通过ESXi的心跳信号,vCenter能够感知ESXi的状态,在存储心跳信号也无法检测的前提下,当发生主机故障时候在集群中的其他主机上重新启动虚拟机

这里分为主控主机故障还是从属主机故障

如果是从属主机故障,则通过存储心跳信号确认,重启位于故障从属主机的虚拟机即可

如果是主控主机故障,则发生主控主机的重新选举,选举机制,参考《14.1.3 主控主机的选举机制》

重新启动优先级:用于确定主机发生故障时虚拟机的重新启动顺序

image-20231212124808303

优先级较高的虚拟机将首先启动。如果多个主机发生故障,将首先迁移优先级最高的主机上的所有虚拟机,然后迁移优先级第二高的主机上的所有虚拟机,以此类推。

针对特殊虚拟机可以设置替代项,单独设置虚拟机重新启动优先级

另外vSpere HA虚拟机重启的编排

除了虚拟机的优先级外, 还可以通过虚拟机的关联性规则进行重新编排

vSphere HA 仅从发生故障的主机重新启动虚拟机。如有必要,请配置关联性规则以将虚拟机保留在同一主机上

14.4.2 防止虚拟机故障

当未在设定时间内收到 VMware Tools 检测信号时(或者虚拟机进程vmx意外发生故障),vSphere HA 会在同一台主机上重新启动该虚拟机

如果虚拟机多次(三次)重启后,vSphere HA将不再干预

14.4.3 防止应用故障

当未在设定时间内收到应用检测信号时,重新启动虚拟机。实际上这个因为需要应用做适配开发,可落地的场景很少

image-20231212085318535

14.4.4 防止数据存储可访问性故障

在仍可访问数据存储的其他主机上重新启动受影响的虚拟机

存在两种类型的数据存储可访问性故障:

PDL(永久设备丢失)是在存储设备报告主机无法再访问数据存储时发生的不可恢复的可访问性丢失。如果不关闭虚拟机的电源,此状况将无法恢复,ESXi不再尝试修复,需要手动恢复

APD(全部路径异常)表示暂时性或未知的可访问性丢失,或 I/O 处理中的任何其他未识别的延迟。此类型的可访问性问题是可恢复的,ESXi持续发送指令

APD一般是存储没有回应

PDL一般是存储有回应,有明确的拒绝回复

存储故障的原因包括:网络或者交换机故障、存储配置错误、断电

vSphere 6.0推出了VMCP虚拟机组件保护,可防止虚拟机上的存储发生故障,利用VMCP可以检测出存储可访问故障,并自动恢复受影响的虚拟机

对于存储可访问性故障,默认是两种选项

对于PDL

image-20231215200128774

对于APD

image-20231215200425014

14.4.5 防止主机隔离和网络分区

这里很重要就是区别主机隔离和网络隔离

主机隔离和网络分区都是主控主机和从属主机无法通讯联讯,心跳信号丢失,而且心跳信号丢失后,都会启动二次检测即存储心跳

而主机隔离是站在故障主机角度,它回去ping隔离地址【主机设置的默认网关的地址】,如果无法ping通则说明是主机隔离,如果可以正常ping通则是网络分区

主机隔离无法对外继续提供服务,而网络分区则可以对外提供服务

image-20231215123021043

注意,针对主机隔离的响应,默认的处理方式为禁用,最佳方式是报警通知尽快修复网络故障,而不是重启虚拟机

14.4.6 场景的默认开启

以上防止主机故障和防止数据存储可访问性故障都是默认开启

防止虚拟机故障和防止应用故障默认关闭

image-20231211225926518

14.5 接入控制

vSphere HA的接入控制非常重要,接入控制是一种策略

1、确保集群中有足够的资源来提供故障转移保护

2、满足虚拟机资源预留要求

14.5.1 接入控制的设置

1、禁用

2、集群资源百分比【默认】

可以将 vSphere HA 配置为通过预留特定百分比的集群 CPU 和内存资源来执行准入控制,用于从主机故障中进行恢复

使用此准入控制类型,vSphere HA 可确保预留特定百分比的 CPU 和内存资源总量用于进行故障切换

使用集群资源百分比选项,vSphere HA 可强制执行下列准入控制:

计算集群内所有已打开电源虚拟机的总资源要求。

计算可用于虚拟机的主机资源总数。

计算集群的“当前的 CPU 故障切换容量”和“当前的内存故障切换容量”。

确定“当前的 CPU 故障切换容量”或“当前的内存故障切换容量”是否小于对应的“配置的故障切换容量”(由用户提供)

image-20231213020431587

上图是插槽测量和资源百分比测量对比

其中资源百分比是默认设置

image-20231213020538741

3、插槽策略

实际上插槽策略在出现特别几台资源大的时候,容易出现浪费,实际用处不大

  1. 比较虚拟机的 CPU 和内存要求,然后选择最大值,从而计算出插槽大小
  2. 由此可确定每台主机可以支持的最大插槽数目
  3. 计算出当前故障切换容量

image-20231213020412353

4、专用故障切换主机

借助专用故障切换主机准入控制,在主机发生故障时,vSphere HA 将尝试在任一指定的故障切换主机上重新启动其虚拟机

为了确保故障切换主机上拥有可用的空闲容量,将阻止您打开虚拟机电源或使用 vMotion 将虚拟机迁移到故障切换主机

而且,为了保持负载平衡,DRS 也不会使用故障切换主机

虚拟机容许的性能降级

故障期间,集群中的虚拟机允许的性能降级比例。 0% - 如果故障切换容量不足,无法保证重新启动虚拟机后具有相同的性能,则会引发警告。

默认:100% - 警告处于禁用状态

14.6 vSphere HA最佳实践

如果设置了预留,最佳实践就是预留+集群资源百分比,但是必须配合DRS进行

实际上,我们在《10 资源管理》提及了,最佳实践就是使用share份额值

14.6.1 网络连接的最佳做法

网络配置和维护

在修改虚拟网络连接组件(包含进行管理或传输 VSAN流量而配置的VMkernel 端口)之前,需要先停用主机监控。这样做可以防止不必要的虚拟机故障转移操作尝试

下列网络维护建议可以帮助您避免对由于丢失 vSphere HA 检测信号而发生故障的主机和网络隔离的意外检测。

1、更改集群 ESXi 主机所在网络时,请挂起主机监控功能

更改网络硬件或网络设置会中断 vSphere HA 用于检测主机故障的检测信号,这可能导致不必要的虚拟机故障切换尝试

2、在 ESXi 主机上更改网络连接配置时(例如,添加端口组或移除 vSwitch),请挂起主机监控

在对网络连接配置进行更改之后,您必须在集群中的所有主机上重新配置 vSphere HA,从而能够重新检查网络信息。然后重新启用主机监控

网络隔离地址

网络隔离地址是要 ping 的 IP 地址,以确定主机是否与网络隔离。只有当主机已停止从集群内的任何其他主机接收检测信号时才 ping 此地址

如果主机可以 ping 其网络隔离地址,则说明该主机并未与网络隔离,并且集群内的其他主机已出现故障或网络分区

但是,如果主机无法 ping 其隔离地址,则可能该主机已与网络隔离,并且不会执行故障切换操作

默认情况下,网络隔离地址是主机的默认网关。无论已定义多少个管理网络,都只会指定一个默认网关。使用 das.isolationaddress[…] 高级选项为其他网络添加隔离地址

为集群指定多个隔离地址(最多 10 个): das.isolationAddressX,其中 X = 0-9。通常每个管理网络应指定一个隔离地址。如果指定的地址太多,则进行隔离检测所需的时间将会较长

网络路径冗余

在为 vSphere HA 集群中的一个主机添加网卡之后,必须在该主机上重新配置 vSphere HA

在集群内的服务器之间尽量少配置硬件分段,目的是为了限制单一故障点。此外,跃点过多的路由可能会导致检测信号的网络数据包延迟,并增加潜在的故障点数目

14.7 结合使用 vSphere HA 和 vSphere DRS

HA和DRS如何先后起作用?

发生故障转移时,vSphere HA 会检查每台主机上是否有资源可用于执行故障转移

如果没有可用的资源,vSphere HA 会求助于 vSphere DRS,借助后者在可能时对虚拟机执行故障转移

14.8 HA的前提条件

1、所有主机都必须配置静态IP地址。如果使用DHCP,则该地址必须在主机重新引导后保持不变

2、所有主机必须至少共有一个检测信号网络

3、如果要使用虚拟机监控功能正常发挥作用,必须在每台虚拟机上安装 VMware Tools

4、不得超过集群中允许的最大主机数

VMware关于最大值描述定义,详见《4.6 vCenter Server的扩展性》中提及的地址:https://configmax.esp.vmware.com/home

14.9 Proactive HA

proactive中文是积极主动的

Proactive HA需要和DRS一起使用,在预估会出现问题的情况下采取预防措施

Proactive针对是即将发生故障或者发生了不是关键重要的故障(例如冗余电源线的某个单电源出现故障)

其中修复模式包括:

1、混合模式: 通过避免使用部分降级的主机 (只要虚拟机性能不受影响) 来平衡性能和可用性。

2、维护模式: 确保虚拟机未在部分故障的主机上运行。【就是虚拟机全部迁移】

3、隔离模式: 通过避免使用部分降级的主机 (只要虚拟机性能不受影响) 来平衡性能和可用性。【保证新创建的虚拟机不会被在故障主机上运行】

14.10 虚拟机替代项

针对DRS、vSpere HA场景可以针对单台虚拟机配置集群选项,这些配置将覆盖集群设置

image-20231207201816086

15 vSphere容错之FT

FT全程为vSphere Fault Tolerance

vSphere HA本质是通过重新启动虚拟机来为虚拟机提供基本级别的保护

vSphere Fault Tolerance可提供更高级别的可用性,允许用户对任何虚拟机进行保护以防止主机发生故障时丢失数据、事务或连接

可以简单理解

1、vSphere HA通过心跳机制去监控,当发生故障时候重启虚拟机,此时业务会有中断时间

2、vSphere Fault Tolerance是将第二台【辅助虚拟机啊】一样的虚拟机同时运行【将主虚拟机运行的结果实时复制至辅助虚拟机】,当被保护的虚拟机【主虚拟机】故障时候,零停机、零数据丢失、网络均不丢失,即连续性保护

3、总的说,HA有停机时间,FT没有停机时间

Fault Tolerance 通过确保主虚拟机和辅助虚拟机的状态在虚拟机的指令执行的任何时间点均相同来提供连续可用性

这里特别注意一点

在主虚拟机故障后,辅助虚拟机就会替代作为新的主虚拟机,在进行透明故障切换之后,将重新生成新的辅助虚拟机,并将重新建立冗余,并且即使 vCenter Server 不可用,也会发生

image-20231213234825386

15.1 vSphere Fault Tolerance 检查点操作

主虚拟机对外提供服务,在接到服务请求时,Fast Checkpoint机制将会把内存中的变更同步到辅助虚拟机上,同步间隔从几毫秒到几百毫秒随机

由于内存数据始终一致,那么对磁盘的更改也一致

为了保证毫秒级别的同步,至少需要千兆网络,推荐使用独立的万兆网络

15.2 启用Fault Tolerance

直接在需要被连续保护的虚拟机上右键选择打开Fault Tolerance

image-20231213233103813

选择存储资源【辅助虚拟机的磁盘和配置文件】,并选择计算资源

image-20231216085819689

如果主虚拟机和辅助虚拟机的磁盘为同一个共享LUN,系统会提示风险。FT最佳实践是采用分开的LUN

image-20231216091057121

配置完成后开始利用vmotion进行初始化

在启用FT时,会使用vMotion技术生成一份拷贝,并且最终同步内存数据

当初始化后,就可以正式启用FT

然后启动辅助虚拟机,启动过程中会提示状态已改变,注意这不是出错信息

image-20231215231118641

15.3 FT的要求和限制

15.3.1 要求

在使用 Fault Tolerance 之前,必须满足以下集群要求

1、配置了 Fault Tolerance 日志记录和 vMotion 网络

2、vSphere HA 集群已创建并启用【这点很重要,必须是】

3、主机必须使用受支持的处理器

支持以下 CPU:

1、Intel Sandy Bridge 或更高版本。Avoton 不受支持

2、AMD Bulldozer 或更高版本

4、主机必须获得 Fault Tolerance 的许可

单个容错虚拟机支持的 vCPU 数量受您针对 vSphere 购买的许可级别限制。Fault Tolerance 支持情况如下:

1、vSphere Standard 和 Enterprise。最多可允许 2 个 vCPU

2、vSphere Enterprise Plus。最多可允许 8 个 vCPU

5、主机必须已通过 Fault Tolerance 认证

请参见 http://www.vmware.com/resources/compatibility/search.php 并选择按与容错兼容的集合搜索,确定主机是否已通过认证

6、在配置每台主机时,都必须在 BIOS 中启用硬件虚拟化 (HV),还需要 CPU 支持硬件 MMU 虚拟化(Intel EPT 或 AMD RVI)

15.3.2 Fault Tolerance 不支持的 vSphere 功能

Fault Tolerance 不支持的 vSphere 功能包括

1、不支持快照。

在虚拟机上启用 Fault Tolerance 前,必须移除或提交快照

不可能对已启用 Fault Tolerance 的虚拟机执行快照

注:Fault Tolerance 支持为 vStorage APIs - Data Protection (VADP) 备份而创建的仅磁盘快照。但是,旧版 FT 不支持 VADP。

2、不支持Storage vMotion。不能为已启用 Fault Tolerance 的虚拟机调用 Storage vMotion。

要迁移存储,应当先暂时关闭 Fault Tolerance,然后再执行 Storage vMotion 操作

在完成迁移之后,可以重新打开 Fault Tolerance。

3、不支持链接克隆

克隆有两种,其中一种是链接克隆

不能在为链接克隆的虚拟机上使用 Fault Tolerance,也不能从启用了 FT 的虚拟机创建链接克隆

4、不支持Virtual Volumes 数据存储,即不支持Vvols

5、不支持基于存储的策略管理

6、早期的VMware vSphere版本中FT不能使用VSAN,vSphere6.5后官方宣传FT支持vSAN

7、不支持I/O 筛选器

8、不支持启用 VBS 的虚拟机

9、不支持虚拟机命名空间数据库和虚拟机数据集