目录

图解VMware vSAN安装(下:vSAN部署及管理安装))

图解VMware vSAN安装(下:vSAN部署及管理安装)


前言

这是《图解VMware vSAN安装(上:硬件及vSphere部署)》的下篇

本文1-6章节均为理论篇,摘选整理自VMware官网资料。

直接部署的话可以直接从《7 vSAN网络部署》开始

vSAN配置相关设计和优化内容可参考官方网站《vSAN 规划和部署》

https://docs.vmware.com/cn/VMware-vSphere/7.0/com.vmware.vsphere.vsan-planning.doc/GUID-194D9B44-7593-4D3E-A9DD-A6646C1DCC05.html

及VMware Docs

https://docs.vmware.com/cn/VMware-vSphere/index.html

1 vSAN部署要求

1、一个标准 vSAN 集群至少包含三个主机。通常情况下,标准 vSAN 集群中的所有主机都位于同一位置,并在相同的第 2 层网络上相连接。全闪存配置需要 10Gb 网络连接,同时也建议对混合配置使用此设置。为达到最佳效果,请为 vSAN 集群配置四个或四个以上主机。

2、在集群上启用 vSAN 之前,必须禁用 vSphere HA。然后,可以重新启用 vSphere HA。

3、至少有一个固态硬盘作为缓存盘,启用“去重和压缩”必须全部都是全闪盘。

4、对于混合配置,专用带宽为 1 Gbps;对于全闪存配置,专用或共享带宽为 10 Gbp。

5、vSAN 集群中的每个主机都必须具有适用于 vSAN 流量的 VMkernel 网络适配器;

6、集群中所有主机之间的标准(非延伸)vSAN 集群的 RTT 最大为 1 毫秒;

7、vSAN包括标准版高级版企业版。高级版包括 RAID 5/6 擦除编码、去重和压缩。企业版包括加密和延伸群集功能;

双主机或三主机集群配置的限制

在三主机配置中,只能通过将允许的故障数设置为 1 来允许一个主机故障。对于虚拟机数据的两个必需副本,vSAN 将各个副本保存在不同的主机上。见证对象位于第三个主机上。由于集群中的主机数量较少,因此存在以下限制:

  • 当某个主机出现故障时,vSAN 无法在另一个主机上重新构建数据以防止出现另一个故障。

  • 如果主机必须进入维护模式,则vSAN无法从主机撤出数据以维持策略合规性。主机处于维护模式时,如果发生其他故障,数据会面临潜在故障或无法访问的风险。

    只能使用确保数据可访问性数据撤出选项。确保数据可访问性可保证对象在数据迁移期间保持可用,但如果发生其他故障可能会面临风险。双主机或三主机集群上的 vSAN 对象不符合策略。主机退出维护模式时,将重新构建对象以确保策略合规性。

    在双主机或三主机集群具有无法访问的主机或磁盘组的任何情况下,如果发生其他故障,vSAN 对象将面临变得无法访问的风险。

要求 描述
ESXi 主机 确认使用的是最新版本的 ESXi。确认至少有三个配有受支持存储配置的 ESXi 主机可分配给 vSAN 集群。为达到最佳效果,请为 vSAN 集群配置四个或四个以上主机。
内存 确认每个主机至少具有 32 GB 内存。为获得更高的配置和更出色的性能,集群中必须至少有 32 GB 内存。
存储 I/O 控制器、驱动程序和固件 验证存储 I/O 控制器、驱动程序和固件版本是否已经过认证并已在 VCG 网站 (http://www.vmware.com/resources/compatibility/search.php) 中列出。确认该控制器配置为直通还是 RAID 0 模式。确认该控制器缓存和高级功能已禁用。如果无法禁用缓存,则必须将读取缓存设置为 100%。确认您使用的是具有较高队列深度的控制器。在维护和故障期间,使用队列深度小于 256 的控制器会显著影响您的虚拟机性能。
缓存和容量 确认为集群提供存储的 vSAN 主机至少有一个缓存和一个容量设备。vSAN 需要独占访问 vSAN 集群中主机的本地缓存和容量设备。它们无法与其他用途(例如,虚拟闪存文件系统 (VFFS)、VMFS 分区或 ESXi 引导分区)共享这些设备。为获得最佳效果,请创建拥有统一配置主机的 vSAN 集群。
网络连接 确认每个主机都至少配置有一个网络适配器。对于混合配置,确认 vSAN 主机的专用带宽至少为 1 GbE。对于全闪存配置,确认 vSAN 主机的带宽至少为 10 GbE。
许可证密钥 确认您拥有有效的 vSAN 许可证密钥。要使用全闪存功能,您的许可证必须支持该功能。要使用高级功能,例如延伸集群或者去重和压缩,您的许可证必须支持这些功能。确认您计划使用的许可证容量等于加入 vSAN 集群的各个主机的 CPU 总数。请勿仅为向集群提供容量的主机提供许可证容量。有关 vSAN 的许可信息,请参见《vCenter Server 和主机管理》文档。

2 vSAN存储设计

1、闪存缓存设备与磁盘组数量之比始终为 1:1。

2、在全闪存配置中,vSAN 不会将缓存用于读取操作(只有写缓存),也不会应用虚拟机存储策略中的读取缓存预留设置。对于缓存设备,您可以使用少量具有高写入持久力的成本更高的闪存。为了实现更好的 vSAN 性能,请使用更多由较小闪存容量设备组成的磁盘组。为了获得平衡的性能和可预测的行为,请使用同一类型和型号的闪存容量设备。

3、注意闪存设备的写寿命和性能分类。

4、vSAN每个主机最多5个磁盘组,每个磁盘最最大7个容量盘。

2.1 集群特性

1、每个 vCenter Server 实例可以有多个 vSAN 群集。可以使用一个 vCenter Server管理多个 vSAN 群集。

2、vSAN将占用所有设备(包括闪存缓存和容量设备),并且不会与其他功能共享设备。

3、vSAN群集可以包含具有/不具有容量设备的主机。最低要求是三个带容量设备的主机。为获得最佳效果,请创建拥有统一配置主机的 vSAN群集。

4、如果主机提供容量,则该主机必须至少具有一个闪存缓存设备和一个容量设备。

5、在混合群集中,磁盘用于提供容量,闪存设备用于提供读写缓存。vSAN 将所有可用缓存的 70% 分配为读取缓存,30% 分配为写入缓冲区。在混合配置中,闪存设备用作读取缓存和写入缓冲区。

6、在全闪存群集中,一个指定的闪存设备用作写入缓存,其他闪存设备用作容量设备。在全闪存群集中,所有读取请求都直接来自闪存池容量。只有本地容量设备或直接连接的容量设备能够加入vSAN群集。vSAN无法占用其他连接到群集的外部存储,例如 SAN 或 NAS。

7、有别于VMFS文件系统,采用vSAN的的虚拟机,文件系统为vSAN类型。

2.2 配置足够的临时空间

1、==至少留有 30% 的未使用空间==,以防止vSAN重新均衡存储负载。==只要单个容量设备上的消耗达到 80% 或以上==,vSAN就会重新均衡集群中的组件。重新均衡操作可能会影响应用程序的性能。要避免这些问题,存储消耗应低于 70%。

2、规划额外容量,用于处理任何潜在故障或替换容量设备、磁盘组和主机。当某个容量设备无法访问时,vSAN会在集群中的其他设备中恢复组件。当闪存缓存设备出现故障或移除时,vSAN会从整个磁盘组中恢复组件。

3、预留额外容量以确保vSAN在出现主机故障或主机进入维护模式时恢复组件。例如,置备具有足够容量的主机,以便留有足够的可用容量以在主机出现故障或维护期间重新构建组件。存在三个以上的主机时此额外空间非常重要,这样您才有足够的可用容量来重新构建出现故障的组件。如果主机出现故障,将在其他主机的可用存储上进行重新构建,这样可以允许再次出现故障。但是,在三主机集群中,如果将允许的故障数主要级别设置为 1,则 vSAN 不会执行重新构建操作,因为在一个主机出现故障后,集群中只剩下两个主机。要允许故障后重新构建,至少必须有三个正常运行的主机。

4、提供足够的临时存储空间,以便在vSAN虚拟机存储策略中进行更改。动态更改虚拟机存储策略时,vSAN 可能会创建新的对象 RAID 树布局。vSAN 实例化和同步新布局时,对象可能会暂时占用额外的空间。在集群中保留一些临时存储空间以处理此类更改。

5、如果计划使用软件校验和或去重和压缩等高级功能,请保留额外的容量以处理操作开销

2.3 vSAN控制器设计优化

1、如果可能,请使用多个存储控制器,这样可以改善性能并只将潜在的控制器故障隔离到磁盘组子集中。

2、使用VMware 兼容性指南中队列深度最高的存储控制器。使用具有高队列深度的控制器可提高性能。例如,在出现故障后 vSAN 重新构建组件时或者主机进入维护模式时。

3、在直通模式下使用存储控制器以实现 vSAN 的最佳性能。与处于直通模式的存储控制器相比,处于 RAID 0 模式的存储控制器需要较高的配置和维护工作量。

4、对控制器禁用缓存,或将缓存设置为 100% 读取。

存储控制器功能 存储控制器要求
所需模式 有关控制器的所需模式(直通或 RAID 0),请查看VMware 兼容性指南中的 vSAN 要求。如果直通和 RAID 0 模式均受支持,请配置直通模式,而非 RAID 0。替换磁盘时,RAID 0 会增加复杂程度。
RAID 模式 如果使用 RAID 0,每个物理磁盘设备需要创建一个 RAID 卷。请勿启用VMware 兼容性指南中所列模式之外的 RAID 模式。请勿启用控制器跨越模式。
驱动程序和固件版本 根据VMware 兼容性指南,为控制器使用最新版本的驱动程序和固件。如果使用内置控制器驱动程序,请确认驱动程序已经过 vSAN 认证。OEM ESXi 版本可能包含未经认证且未在VMware 兼容性指南中列出的驱动程序。
队列深度 确认控制器的队列深度为 256 或更高。较高的队列深度能够提高性能。
缓存 禁用存储控制器缓存,如果不能禁用该缓存,请将其设置为 100% 读取。
高级功能 禁用高级功能(例如,HP SSD 智能路径)。

案例中主机型号为:DELL R740,其中控制器型号为PERC H330。这里有两种模式。Non-RAID模式或者将阵列卡设置为HBA直通模式。

另外注意:vSAN 不支持 PERC H330 控制器,且没有计划对其进行认证,详见https://kb.vmware.com/s/article/2149392?lang=zh_CN。生产环境中建议选择vSAN兼容的控制器。

3 vSAN设计和优化

1、全闪存配置,请安排具有专用或共享 10-GbE 适配器的主机。

2、如果 10-GbE 适配器与其他流量类型共享,请使用 vSphere Distributed Switch 以便 vSAN 流量通过使用 Network I/O Control 和 VLAN 隔离流量。为 vSAN 流量创建物理适配器组以确保冗余。

3、如果闪存缓存或存储控制器停止响应,则整个磁盘组可能出现故障。因此,vSAN 会从群集中的其他位置重新构建故障磁盘组的所有组件。建议使用多个磁盘组

  • 优点
    • 因为数据存储具有更多汇总缓存并且 I/O 操作更快,所以提高了性能。
    • 故障风险分散到多个磁盘组。
    • 如果磁盘组出现故障,则 vSAN 重新构建较少的组件,因此提高了性能。
  • 劣势
    • 因为需要两个或更多缓存设备,成本增加。
    • 需要更多内存来处理更多磁盘组。
    • 需要多个存储控制器来降低单点故障风险。

4、设备热插拔和交互

考虑使用存储控制器直通模式支持,以轻松实现主机上的磁盘和闪存容量设备的热插拔或更换。如果控制器适用于 RAID 0 模式,必须执行其他步骤才可以使主机发现新驱动器。

4 vSAN集群的设计注意事项

设计主机和管理节点的配置,以获得最佳可用性并允许消耗增长。

4.1 调整vSAN集群的大小以允许故障

可以在虚拟机存储策略中配置允许的故障数主要级别 (PFTT) 属性以处理主机故障。集群所需的主机数计算方式为:2 * PFTT + 1。集群所配置允许的故障越多,所需的容量主机越多。

如果在机架服务器中连接集群主机,可以将主机整理到故障域以提高机架顶部交换机故障和服务器机架断电等问题的应对能力。请参见设计和优化 vSAN 故障域

4.2 双主机或三主机集群配置的限制

在三主机配置中,只能通过将允许的故障数设置为 1 来允许一个主机故障。对于虚拟机数据的两个必需副本,vSAN 将各个副本保存在不同的主机上。见证对象位于第三个主机上。由于集群中的主机数量较少,因此存在以下限制:

  • 当某个主机出现故障时,vSAN 无法在另一个主机上重新构建数据以防止出现另一个故障。

  • 如果主机必须进入维护模式,则vSAN无法从主机撤出数据以维持策略合规性。主机处于维护模式时,如果发生其他故障,数据会面临潜在故障或无法访问的风险。

    只能使用确保数据可访问性数据撤出选项。确保数据可访问性可保证对象在数据迁移期间保持可用,但如果发生其他故障可能会面临风险。双主机或三主机集群上的 vSAN 对象不符合策略。主机退出维护模式时,将重新构建对象以确保策略合规性。

    在双主机或三主机集群具有无法访问的主机或磁盘组的任何情况下,如果发生其他故障,vSAN 对象将面临变得无法访问的风险。

4.3 平衡和不平衡的集群配置

vSAN 最适合在具有统一配置(包括存储配置)的主机上运行。

如果 vSAN 集群使用具有不同配置的主机,则会存在以下劣势:

  • 存储性能的可预测性将会降低,因为 vSAN 不会在各个主机上存储相同数量的组件。
  • 维护步骤不同。
  • 对于集群中拥有较少或类型不同的缓存设备的主机,性能将会降低。

4.4 在 vSAN 上部署 vCenter Server

如果 vCenter Server 变得不可用,vSAN 将继续正常工作,且虚拟机继续运行。

如果 vCenter Server 部署在 vSAN 数据存储中,则 vSAN 集群发生问题时,可以使用 Web 浏览器通过 vSphere Host Client 访问每个 ESXi 主机并监控 vSAN。vSAN 运行状况信息显示在 Host Client 中,也可以通过 esxcli 命令查看。

5 vSAN 网络

实际上vSphere网络配置看上去很复杂,包括端口组、分布式交换机、标准交换机等等。

网络类型从某种程度上说包括vSAN网络和非vSAN网络。

我们这里接来下配置的基于vSAN需求的vSAN网络,推荐采用分布式交换机进行实施,生产环境下需要用多网卡进行链路聚合,上联物理交换机采用采用双机跨链路聚合进行,M_lag的优势不在此进行阐述。

先说明几点vSAN网络的基本概念,然后在《8 vSAN网络部署》中详细说明。

5.1 网络故障切换和负载均衡

vSAN 使用在仅用于网络冗余的后备虚拟交换机上配置的绑定和故障切换策略。vSAN 不会将网卡绑定用于负载均衡 。如果计划为可用性配置网卡成组,请考虑这些故障切换配置。

成组算法 组中适配器的故障切换配置
基于源虚拟端口的路由 主动/被动
基于 IP 哈希的路由 主动/主动,静态 EtherChannel 用于标准交换机,LACP 端口通道用于分布式交换机
基于物理网络适配器负载的路由 主动/主动

注意这里的静态 EtherChannel 用于标准交换机,LACP 端口通道用于分布式交换机

后续采用分布式交换机建立LACP,物理交换机采用M_lag跨设备的链路聚合实现vSAN网络的高可用性。

5.2 使用 Network I/O Control 为 vSAN 分配带宽

vSAN 流量可以与其他系统流量类型(例如 vSphere vMotion 流量、vSphere HA 流量和虚拟机流量)共享 10-GbE 物理网络适配器。要保证 vSAN 所需带宽的大小,请使用 vSphere Distributed Switch 中的 vSphere Network I/O Control。

在 vSphere Network I/O Control 中,您可以为 vSAN 出站流量配置预留和份额。

  • 设置预留以便 Network I/O Control 保证 vSAN 的物理适配器可用的最小带宽。
  • 设置份额以便当分配给 vSAN 的物理适配器变成饱和状态时,vSAN 仍有特定带宽可用并且防止 vSAN 在重新构建和同步操作期间占用物理适配器的全部容量。例如,当组中其他物理适配器出现故障且端口组中所有流量被转移到组中其他适配器时,物理适配器可能变成饱和状态。

例如,在处理 vSAN、vSphere vMotion 和虚拟机流量的 10-GbE 物理适配器上,您可以配置特定带宽和份额。

流量类型 预留,Gbps 份额
vSAN 1 100
vSphere vMotion 0.5 70
虚拟机 0.5 30

如果 10-GbE 适配器变成饱和状态,Network I/O Control 将分配 5 Gbps 到物理适配器上的 vSAN。

5.3 vSAN网络最佳实践

1、对于混合配置,请专门使用至少 1 GbE 的物理网络适配器。若要获得最佳网络性能,请将 vSAN 流量放置于专用的或共享的 10-GbE 物理适配器上。

2、对于全闪存配置,请使用专用的或共享的 10-GbE 物理网络适配器。

3、置备一个附加物理网卡作为故障切换网卡。

4、如果您使用了共享的 10-GbE 网络适配器,请将 vSAN 流量置于 Distributed Switch 上,然后配置 Network I/O Control 以保证 vSAN 的带宽。

5、生产环境下,vMotion、vSAN将流量进行隔离,跟别创建不同的分布式交换机。后续业务和管理的网络也都进行物理隔离。

6 vSAN部署步骤

vSAN部署步骤包括

1、先创建vSAN网络,采用分布式交换机

2、添加管理主机

3、如果要做上行链路的聚合,要先添加LACP组

4、添加vmkernel,vmkernel启用vSAN功能,添加上行链路(结合LACP端口组)

5、申明磁盘,注意这里如果磁盘有分区,需要进行清除分区操作。

7 vSAN网络部署

7.1 新建分布式交换机

分布式交换机的好处在于,大大降低了部署的步骤,减少在各主机上进行创建标准交换机的工作量。

开始部署

image-20210610083835506

输入名称

image-20210328210820155

选择分布式版本7.0.2版本。

image-20210610083953325

使用 Distributed Switch 上的 vSphere Network I/O Control 为 vSAN 预留带宽。

端口组名称为vSAN-DPortGroup

将 vSAN 的物理适配器作为活动上行链路分配给该端口组。这里选择2个上行链路作为冗余。

这里使用2块网卡组来实现网络可用性,物联交换机需要配置合适链路聚合配置来实现匹配。

注意查看系统提示的==建议的后续操作==

image-20210610084135750

————-应该先添加LACP组后再添加———–

注:如果不用LACP端口聚合,这里可以“直接添加和管理主机”。

如果需要配置LACP端口聚合,先按照7.4 链路聚合部署 章节

两者之间的区别,就是在配置上行链路的区别,后者的上行链路是虚拟配置的LACP端口组。

image-20210328211137599

在分布式交换机上添加和管理主机

image-20210328211202709

选择参与vSAN网络的主机

image-20210328211220736

7.2 添加和管理主机

image-20210328211229185

这里很重要,需要分配上行链路(如果采用LACP此处不看)。

提醒:需要管理员提前记录下各网卡的名称和序号。

image-20210328211504049

网络规划中最佳时间,vSAN网络、vMotion以及管理网络都是分开的。(如果采用LACP此处不看)

image-20210328211635623

——从这里开始,无论是否采取端口聚合,均按照后续操作设置———

添加VMkernel网络适配器

image-20210328211722856

不迁移虚拟网络

image-20210328211736775

完成设置。

image-20210328211807408

7.3 添加VMkernel适配器

注意是对端口组vSAN-DPortGroup进行操作

image-20210328212304021

选择主机

image-20210328212329802

配置VMkernel适配器

这里要注意,务必要启用vSAN

image-20210328212357274

7.0.2版本增加了vSphere Backup NFS功能

image-20210610092207494

配置IPv4设置。

这里的IP地址是存储专网的私有地址,请提前合理规划好。

存储网与管理网、业务网进行物理隔离,真正的生产环境vMotion网络也要物理隔离。

image-20210328212453135

配置完成后,可以在主机的配置中的虚拟交换机进行查看验证(图1)。

image-20210328212615628

如果上行链路采用链路聚合,必须配置LACP。下图配置无法满足功能。

image-20210329075812659

7.4 链路聚合部署

LACP配置主动模式和被动模式之间的区分是什么? 活动-端口将通过开始协商和发送LACP帧来主动协商链路状态。 被动-端口处于被动状态,且将在LACP协商期间响应发送的LACP帧

如果是选择LACP的方式。

注:vSAN和华为M_LAG的对接,这里走了很多弯路

某一晚参考了官网资料

https://docs.vmware.com/cn/VMware-vSphere/7.0/vsan-network-design-guide/GUID-5DEF613E-9FBD-45E1-A01B-C3E5977EDD5A.html

第二天一早10分钟搞定。

第一个关键点来了。

先创建LACP,然后再添加主机。

image-20210407075350423

选择相关配置,新建链路聚合组

image-20210610084803118

需要对端口组进行设置【下图是7.0.2版本】,详细设置和测试详见7.5 章节 vSAN网络验证

image-20210610090740532

此时LACP建立完成后,跳转到7.2 添加和管理主机 章节

LACP建立后,上行链路的名称会发生变化。注意看图示内容。

image-20210407075431114

重新分配上行了线路,注意和《7.2 添加和管理主机》进行对比。

image-20210407075559044

添加VMkernel适配器,配置IPv4设置

image-20210407080357523

7.5 vSAN网络验证

注意,此时打开任一主机的SSH服务,登录后去ping其他主机存储ipv4地址,是无法访问的。

接下来需要做负载平衡进一步设置。

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407080948291.png

1
2
3
4
5
[root@localhost:~] ping 10.10.10.51
PING 10.10.10.51 (10.10.10.51): 56 data bytes

--- 10.10.10.51 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss

第二个关键点来了。

分配 LAG 组作为分布式端口组绑定和故障切换策略上的活动上行链路

编辑端口组,并配置绑定和故障切换策略以反映新的 LAG 配置。

确保 LAG 组 lag1 位于活动上行链路位置,并确保其余上行链路处于未使用位置。

**注:**选择链路聚合组 (LAG) 作为唯一的活动上行链路时,LAG 的负载均衡 模式将覆盖端口组的负载均衡 模式。因此,以下策略不会起到任何作用: 基于源虚拟端口的路由

进入编辑设置

image-20210610090330966

进行编辑设置

image-20210407081351518

注:由于 LACP 不支持信标探测,因此网络故障检测值将保留 仅链路状态

验证【注意看图片中的time的延迟毫秒数,可以看出数据中心级交换机的威力】

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[root@localhost:~] ping 10.10.10.51
PING 10.10.10.51 (10.10.10.51): 56 data bytes
64 bytes from 10.10.10.51: icmp_seq=0 ttl=64 time=0.106 ms

--- 10.10.10.51 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.106/0.106/0.106 ms

[root@localhost:~] ping 10.10.10.52
PING 10.10.10.52 (10.10.10.52): 56 data bytes
64 bytes from 10.10.10.52: icmp_seq=0 ttl=64 time=0.130 ms
64 bytes from 10.10.10.52: icmp_seq=1 ttl=64 time=0.101 ms

--- 10.10.10.52 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.101/0.116/0.130 ms

相关的配置具体缺一不可。

进一步查看分布式交换机的拓扑结构。

注意和《7.4 链路聚合部署》图1做进一步比较

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407082008501.png

7.6 物理交换机的跨设备链路聚合配置

M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级。

对二层来讲,可将M-LAG理解为一种横向虚拟化技术,将M-LAG的两台设备在逻辑上虚拟成一台设备,形成一个统一的二层逻辑节点。M-LAG提供了一个没有环路的二层拓扑同时实现冗余备份,不再需要繁琐的生成树协议配置,极大的简化了组网及配置。这种设计相对传统的xSTP破环保护,逻辑拓扑更加清晰、链路利用更加高效。

M-LAG技术本质上还是控制平面虚拟化技术,但是和堆叠技术不同的是,由于M-LAG的目的仅仅是在链路聚合协商时,对外表现出同样的状态,所以不需要像堆叠那样同步设备上所有的信息,只需要同步接口和表项相关的一些内容。

M-LAG主要的应用场景是“双归接入”,即用户侧设备双归接入到两台接入设备上,这个场景下传统的技术主要有堆叠、Smart-Link等技术。但这些技术都有缺点: 堆叠两台(或多台)使用的是一个控制面,单点故障可能会影响到整个系统,在升级的时候表现尤其突出。

【交换机配置】

这里以存储网的设置为例,存储网用于三个服务器节点的vSAN存储专网的流量转发。

vlan id为11,两台交换机的10GE 1/0/110GE 1/0/210GE 1/0/3分别作为三台Esxi节点存储网口的跨设备链路聚合,作为同一组dfs group的不同成员。

40GE1/0/140GE1/0/2作为两台交换机的peer-link通讯

【交换机1配置】

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 交换机1配置
# 1 配置管理口地址
interface MEth0/0/0
ip address 192.168.100.181 255.255.255.0
vlan batch 11

# 2 将管理口地址用于M-LAG主备设备间心跳报文的传输,交换机1 优先级150
dfs-group 1
priority 150
source ip 192.168.100.181

# 3 配置peer-link,将40G链路进行绑定作为两台交换机之间的peer-link通讯
interface Eth-Trunk0
trunkport 40GE1/0/1
trunkport 40GE1/0/2
mode lacp-static 
peer-link 1

# 4 配置m-lag成员组,用于接入Esxi节点1存储网口
interface Eth-Trunk20
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 1
trunkport 10GE 1/0/1
 
# 5 配置m-lag成员组,用于接入Esxi节点3存储网口
interface Eth-Trunk21
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 2
trunkport 10GE 1/0/2
 
# 6 配置m-lag成员组,用于接入Esxi节点3存储网口
interface Eth-Trunk22
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 3
trunkport 10GE 1/0/3

【交换机2配置】

【注意交换机2的管理地址为192.168.100.182】

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 交换机2配置
# 1 配置管理口地址
interface MEth0/0/0
ip address 192.168.100.182 255.255.255.0
vlan batch 11

# 2 将管理口地址用于M-LAG主备设备间心跳报文的传输,交换机2 优先级120
dfs-group 1
priority 120
source ip 192.168.100.182

# 3 配置peer-link,将40G链路进行绑定作为两台交换机之间的peer-link通讯
interface Eth-Trunk0
trunkport 40GE1/0/1
trunkport 40GE1/0/2
mode lacp-static 
peer-link 1

# 4 配置m-lag成员组,用于接入Esxi节点1存储网口
interface Eth-Trunk20
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 1
trunkport 10GE 1/0/1
 
# 5 配置m-lag成员组,用于接入Esxi节点3存储网口
interface Eth-Trunk21
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 2
trunkport 10GE 1/0/2
 
# 6 配置m-lag成员组,用于接入Esxi节点3存储网口
interface Eth-Trunk22
port default vlan 11
mode lacp-static
dfs-group 1 m-lag 3
trunkport 10GE 1/0/3

配置完成后,进行LACP验证。

LACP验证【可以看出lacp的协议包开始发送和接受】

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 交换机1

[~leaf-1]display lacp statistics eth-trunk 20
 Eth-Trunk20's PDU statistics is:
 -------------------------------------------------------------------------------
 Port                       LacpRevPdu  LacpSentPdu  MarkerRevPdu  MarkerSentPdu
 10GE1/0/1                          58       165644             0              0

# 交换机2
<leaf_2>display lacp statistics eth-trunk 20
 Eth-Trunk20's PDU statistics is:
 -------------------------------------------------------------------------------
 Port                       LacpRevPdu  LacpSentPdu  MarkerRevPdu  MarkerSentPdu
 10GE1/0/1                          55        62547             0              0

继续查看m-lag组成员端口状态,均为active(*)-active

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 交换机1
[~leaf-1]display dfs-group 1 node 1 m-lag brief
* - Local node

M-Lag ID     Interface      Port State    Status                Consistency-check
       1     Eth-Trunk 20   Up            active(*)-active      --                       
       2     Eth-Trunk 21   Up            active(*)-active      --                       
       3     Eth-Trunk 22   Up            active(*)-active      --

# 交换机2
[~leaf_2]display dfs-group 1 node 1 m-lag brief
* - Local node

M-Lag ID     Interface      Port State    Status
       1     Eth-Trunk 20   Up            active-active(*)
       2     Eth-Trunk 21   Up            active-active(*)
       3     Eth-Trunk 22   Up            active-active(*)

——至此,分布式交换机配置完成。—–

8 vSAN部署

8.1 启用vSAN

vSAN集群功能有几个操作入口

一是右键集群的右键菜单。

image-20210611122552505

二是通过配置集群的服务。

在vSAN最好通过7.5 章节中vSAN网络验证进行测试,先排除网络故障等原因,方便后续部署。

vSAN网络部署完毕后,开始建立vSAN集群。

vSAN配置的入口详见下图。

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210610120516802.png

vSAN类型包括:单站点集群、双主机及延伸集群。

我们这里选择单站点集群类型。

image-20210407083015851

7.0.2版本,增加了具有自定义故障域的单站点集群vSAN HCI网络计算集群两种类型。

image-20210610120611546

去重和压缩功能,仅在高级版本和企业版本中能够启用。

在使用全闪存配置时,闪存设备将提供容量

对于混合配置,磁盘将计入容量。部分容量将分配给元数据。

对于磁盘格式版本 1.0,每个容量设备会增加约 1 GB。

磁盘格式版本 2.0 会增加容量开销,通常每个设备不超过 1-2% 的容量

磁盘格式 3.0 及更高版本会增加容量开销,通常每个设备不超过 1-2% 的容量

如果启用去重和压缩功能以及软件校验和,则每个设备需要约 6.2% 容量的额外开销。

我们这里选择去重和压缩。

image-20210407083147620

如果是超过32个节点,启用大规模集群支持选项。

从下图可以看出如果没有选择缓存盘,集群无法正常建立。

全闪的vSAN集群中,==缓存盘只是写缓存==,不需要读缓存功能。

全闪的vSAN集群是没有读缓存的。

image-20210407085835319

正确的设置是设置1个缓存盘,剩余全部为容量盘。

再次强调一点。vSAN集群中每个主机最多设置5个磁盘组,每个磁盘组设置最多7个容量盘。

image-20210407085854430

创建故障域,这里先不创建。

关于故障域的解释详见官网资料。

image-20210407091015140

最终的相关设置

image-20210407091137274

设置完成后,系统开始进行配置、更新vSAN配置。

开始创建VSAN

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407091224604.png

———–至此,VSan配置完成。———

8.2 许可证

vSAN集群完成后分配许可证

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210611123310657.png

8.3 功能验证

我们可以查看某一个ESXi节点的磁盘组,发现设计内的4组SSD磁盘,其中一个用于写缓存,三个用于容量盘。

image-20210412153047940

查看故障域情况

image-20210412152918953

查看默认的vSAN存储策略

image-20210412153825117

编辑查看vSAN的存储策略

高可用性设置,可以看出默认的故障数为1,也可以设置为RAID5(纠删码形式)。

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210412154040951.png

高级策略规则

这里默认的对象空间预留精简置备

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210412154839212.png

我们建立一个虚拟机,可以看出默认的磁盘类型就是匹配了这个默认的vSAN的存储策略。

目前三节点的vSAN集群,采用的是双副本策略,因此存储消耗即为200G。

image-20210412155911227

我们新建一个虚拟机,可以看出由于vSAN磁盘存储是RAID-1模式

这个LDAP_Server的物理磁盘位置分别位于192.168.100.51192.168.100.52两个磁盘上,其中192.168.100.50作为见证方防止脑裂。

因此可以看出来,任何一个主机出现故障,虚拟机均不会出现问题,这也是允许的故障数为1的原因

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210412160256463.png

9 其他几个常见问题

9.1 获取最新的 HCL 数据库版本

下载http://partnerweb.vmware.com/service/vsan/all.json

离线更新

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407161718668.png

9.2 时间同步

访问Vcenter管理界面

https://vcenter7.vmware7.cj.io:5480/#/

image-20210407162947575

配置主机的时间

image-20210407163024231

验证

image-20210407162902058

9.3 下载最新的 vSAN 版本目录

针对 vSphere Lifecycle Manager 的 vSAN 内部版本建议

https://docs.vmware.com/cn/VMware-vSphere/7.0/com.vmware.vsphere.vsan.doc/GUID-E87F7946-1EDE-45EE-9087-823F7E61FABF.html

下载最新的vSAN版本目录文件

https://vcsa.vmware.com/ph/api/v1/results?deploymentId=tba4919b-2dce-f4585-9556-a780bb9ac060&collectorId=VsanCloudHealth.6_5&objectId=0c3e9009-ba5d-4e5f6-bae8-f25ec506d219&type=vsan-updates-json

离线更新后可以解决很多告警,包括SCSI控制器兼容性问题

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407164741266.png

图示里红色的是,在配置 vSphere HA过程中,地址配置不正确

系统提示:“该主机不具有按 vSphere HA 要求定义的隔离地址”

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210407092824614.png

9.4 重新设置vSAN配置出现的已有分区报错

之前分区如果没有被清除分区,直接再重新进行vSAN的配置,会出现报错

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210610121703907.png

需要对磁盘进行清除分区操作。

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210610121836491.png

10 vMotion

10.1 相关错误提示参考

要实现vMotion迁移功能,必须先进行vMotion配置。

不事先配置vMotion情况下,直接将虚拟机主动迁移或者开启DRS功能,均无法实现。

image-20210615081105898

点击详细信息提示

image-20210615081038626

10.2 分布式交换机相关说明

在本次章节中,我们通过两个场景,分别是vMotion配置以及虚拟机网络配置,将vShpere7中的分布式交换机实战进行讲解。

在不使用分布式交换机之前,我们是针对各ESXi主机进行添加虚拟交换机配置

image-20210615082657749

带来的问题是,必须针对各ESXi主机进行设置,需要重复操作,各主机之间无法共享。

使用分布式交换机是基于ESXi各主机之上,创建统一的虚拟交换机,可以创建多个虚拟分布式交换机,你可以简单理解为有多少个物理网卡,我可以有针对性的创建几台虚拟分布式交换机。

创建虚拟分布式交换机的步骤可以参考《7 vSAN网络部署》章节。

在实际的操作过程中,会对VMKerner、端口组、上行链路等概念混淆,或者不容易对其理解。

这里我用一张逻辑图将上述概念进行简单阐述。

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210623234131642.png

对应的在vCenter中查看拓扑图

https://typorabyethancheung911.oss-cn-shanghai.aliyuncs.com/typora/image-20210624141450519.png

10.3 配置vMotion设置

我们新建一个分布式交换机,对应ESXi主机或者称之每台物理服务器(这个没有冲突)的各自两个物理端口。

image-20210615083317910

这里我将vMotion的网络和业务网络进行了复用,实际生产环境下建议进行各自独立的划分。

我们在当前已建立好的分布式交换机下新增一个专门用于vMotion的专用端口组

image-20210615131053741

新建专用的端口组后,再添加VMKernel

image-20210615132158939

同样的第一步先添加主机

image-20210615132244973

下一步开始配置VMkernel适配器

image-20210615143046966

进行IP地址设置,场景类似《7 vSAN网络部署》章节。只不过流量走的是vMotion场景下的数据。

image-20210615143427357

11 监控和故障处理

可以参考官网vSAN 故障处理

https://docs.vmware.com/cn/VMware-vSphere/7.0/com.vmware.vsphere.vsan-monitoring.doc/GUID-35A4B700-6640-4519-A885-440A1AE8D3BD.html

后续有时间单独针对trouble shooting写一篇文章。