常常被人忽略的VC备份

简介: 笔者在过去半年的项目中,接到不下三次客户的紧急故障报告,内容都是“我们的vCenter挂掉了,业务受到了影响。”

笔者在过去半年的项目中,接到不下三次客户的紧急故障报告,内容都是“我们的vCenter挂掉了,业务受到了影响。”

在客户的业务系统中,vCenter是一个管理平面的组件,用来管理vSphere Server(ESXi)和虚拟机VM;随着技术的发展,现在的vCenter已经成为VMware Infrastructure的核心,用来统一管理服务器虚拟化vSphere、软件定义网络NSX和超融合vSAN。另外,在VC6.5以前,我们一般采用基于MSCS故障转移集群+SQL Server AWO来实现VC实例的高可用;在VC6.5之后,由于VCSA6.5强大的原生态HA功能,在项目中均采用VMware的最佳实践,通过开启VCHA来实现VC实例的高可用。

如此看,VC的备份似乎不那么重要,很多人会说,“一个管理平面组件的故障,理论上不会影响客户的业务系统。即使没有备份,大不了重装就是了。”可事实真的如此么?我们来看一下一个案例。

某虚拟桌面用户规模约3000人,VCHA由于误操作失效,在vCenter故障的情况下,桌面交付控制器无法获取桌面清单和虚拟机的电源状态,导致用户无法正常登陆,业务停摆。由于没有VC备份,管理员不得不重新安装部署VC以尽快回复业务。同时,须要手动更新交付控制器上信赖的VC证书、VC的清单列表、分布式交换机及相关配置,并且要在最后完成近3200台业务虚拟机网络的迁移工作。

由此可见,VC的容灾是一件不容忽略的大事,不容忽略的大事,不容忽略的大事(重要的事情说三遍)。


那么VC的备份如何来做呢?请看下面一个简单的LAB。

实例环境:

VCSA65T:vCenter Server Appliance6.5U2,172.20.5.237,模拟故障的VC

ESXI65T:ESXI6.5U1,172.20.1.237,双物理网卡,vNIC0管理业务-标准交换机;vNIC1生产业务-分布式交换机,模拟承载业务的ESXI

备份服务器:172.20.1.199,使用FTP协议进行备份

测试用例:

1.VCSA65T采用FQDN作为主机名,证书签发给vcsa65t.at.ent.com,测试VC证书是否保留

2.VCSA65T配置了数据中心DC-65T,集群CL-65T,一台ESXi主机ESXI65T,测试VC清单是否保留

3.ESXI65T有2个虚拟交换机,vSwitch0承载管理流量,新建分布式交换机vDS-65T承载生产流量,新建分布式端口组DPG-65T,测试分布式交换机是否保留

4.许可证,包含vcenter6标准版,vsphere6企业增强版,测试许可文件是否保留

5.vCenter SSO配置,密码永不过期,测试VC系统配置是否保留

6.VAMI配置,root密码永不过期,测试VC底层操作系统配置是否保留


首先我们采用手动备份

1.管理员访问VCSA的VAMI界面,俗称“5480”

2.进入摘要界面,点击右上角的备份

image.png

3.填写备份使用的协议,目标服务器地址,是否加密等设置

注:备份路径下不能有任何文件或者文件夹,必须为空

image.png

4.系统会验证管理员输入

注:如果备份路径不为空,系统会提示“备份路径不为空”的错误提醒

image.png

5.根据需要选择备份的内容,为备份任务添加描述

image.png

6.确认各项参数设置无误后,点击完成,启动手动备份操作

image.png

7.等待备份任务启动

image.png

8.等待备份任务完成

image.png

9.备份进度显示备份作业已完成后,关闭界面

image.png

10.在FTP服务器的对应目录下,可以看到已经自动生成了备份文件

image.png

在完成VC的备份后,一旦VC出现故障,管理员可以通过备份快速恢复VC,笔者环境的RTO小于20分钟。


那么VC的还原机制是如何进行的呢?下面我们模拟VC故障,管理员通过备份恢复业务的场景。

准备工作:

1.下载并装入vCenter Server Appliance安装程序

2.如果计划在ESXi主机上还原vCenter Server Appliance,请验证目标ESXi主机是否未处于锁定状态或维护模式

3.如果计划在vCenter Server清单的DRS群集上还原vCenter Server Appliance,请验证群集是否包含至少一个未处于锁定或维护模式的ESXi主机

4.如果计划为设备分配静态IP地址,请验证是否已为IP地址配置了正向和反向DNS记录

5.如果您尝试还原仍在运行的vCenter Server实例,请在开始还原操作之前关闭备份的vCenter Server

详细的还原步骤:

1.启动VCSA安装向导,选择“还原”

image.png

2.首先执行第一阶段操作,安装新的vCenter实例

image.png

3.操作基本与vCenter全新安装相同

image.png

4.选择备份还原使用的FTP服务器

image.png

image.png

5.后续的配置操作与新安装VC无异

image.png

image.png

注:如果备份虚拟机备份大小为小型,那么选择新的部署时,只能选择小型以上的部署规模

image.png

image.png

6.完成第一阶段设置后,点击完成,开始执行第一阶段的vCenter实例部署

image.png

image.png

image.png

注:如果通过单击“ 关闭”退出向导,则必须登录vCenter Server Appliance Management Interface才能继续后续操作

image.png

7.开始执行第二阶段,配置还原的部署操作

image.png

8.对于加密备份的情况,需要输入备份还原密码

image.png

9.点击完成,开始vCenter实例的数据还原操作

image.png

image.png

10.等待vCenter还原操作完成

image.png

image.png


11.还原后的其他操作:

具有外部Platform Services Controller的vCenter Server Appliance

1.登录已还原的vCenter     Server Appliance Bash shell

2.运行脚本/usr/bin/vcenter-restore

Platform Services Controller设备

对于域中的所有vCenter Server节点

1.登录已还原的vCenter     Server Appliance Bash shell。

2.运行脚本/usr/bin/vcenter-restore。

具有嵌入式Platform Services Controller的vCenter Server Appliance

此节点类型不需要恢复后恢复。


通过VC备份还原后,我们所关注的,包括VC证书、许可、分布式交换机的配置是否也同样恢复了呢?

对于我们的测试用例,一一检验:

1.VAMI界面的系统配置保留

注:SSH自动关闭,需要重新手动打开,否则会造成VCHA部署失败

image.png

2.签发给vCenter的证书不变

文件: C:\Users\柒月流火\Desktop\vcsa65t-origin.cer

大小: 1368 字节

修改时间: 2018年11月27日, 11:27:38

MD5: 5DCF677679CB463B73C4851CCC8EA1E8

SHA1: AF8D657E94846BFCB3764AC26896F6A2FBD96745

CRC32: CEE82A81

文件: C:\Users\柒月流火\Desktop\vcsa65t-restore.cer

大小: 1368 字节

修改时间: 2018年11月27日, 13:43:48

MD5: 5DCF677679CB463B73C4851CCC8EA1E8

SHA1: AF8D657E94846BFCB3764AC26896F6A2FBD96745

CRC32: CEE82A81

3.嵌入式PSC模式的vCenter SSO站点配置还原

image.png

4.vCenter数据中心、集群和ESXi主机拓扑还原

image.png

5.许可证文件和分配情况不变

image.png

6.分布式交换机、交换机端口组等网络设置还原

image.png


相信通过上文的描述,相信各位读者对VC的备份与还原一定有所了解了。

其实,VC也支持自动备份,需要管理员在VC的操作系统底层调用Linux的crontab定时执行预先配置的脚本,来完成周期性的备份工作。

不过,经过笔者测试,在VCSA6.5以后,会出现crontab不生效的情况,原因是/etc/pam.d/crond配置文件中,将认证方式设置为VCSA6.5不存在的password-auth方式

image.png

第一种解决方案,将password-auth改成system-auth

image.png

第二种解决方案,使用命令ln -s system-auth password-auth


            笔者的第一篇技术文章,欢迎各位技术大拿斧正。

image.png


相关文章
Visual Studio C# CS0006 C# 未能找到元数据文件
Visual Studio C# CS0006 C# 未能找到元数据文件
135 0
Visual Studio C# CS0006 C# 未能找到元数据文件
|
5月前
|
C++ Windows
msvcr120.dll丢失的解决方法
msvcr120.dll丢失的解决方法
Win10系统msvcr120.dll丢失解决
Win10系统msvcr120.dll丢失解决
|
C++
[✔️]qt应用nvoglv32.dll崩溃
[✔️]qt应用nvoglv32.dll崩溃
387 0
|
数据库 C++
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
322 0