【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境导入为 VI 域。
VCF Import Tool 工具使用两种方式来帮助客户将现有的 vSphere 或 vSphere + vSAN 环境转变为 VMware Cloud Foundation 环境,分别是转换(Convert)和导入(Import)。之前在这篇(使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。)文章中演示了将现有 vSphere 环境转换为 VCF 解决方案中管理工作负载域的过程,因此这篇文章接着这个主题,看看如何使用这个工具将现有 vSphere 环境导入为 VCF 解决方案中的 VI 工作负载域。

一、使用要求和限制
请注意,使用 VCF Import Tool 工具执行导入(Import)过程与之前的转换(Convert)过程具有相同的要求和限制,因此请参考之前文章(使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。)中的说明,这里不再赘述。
使用要求和限制中有一条是,现有 vSphere 环境的 vCenter Server 虚拟机要么位于自身的集群内要么运行在 VCF 管理域集群上,当在执行导入(Import)任务的同时进行 NSX 方案的部署,则会出现两种不同的情况:
- 如果 vCenter Server 虚拟机运行在自身 vSphere 集群内,当执行导入任务并同时部署 NSX 方案,则 NSX Manager 虚拟机将部署到 vSphere 集群内。
- 如果 vCenter Server 虚拟机运行在 VCF 管理域集群上,当执行导入任务并同时部署 NSX 方案,则 NSX Manager 虚拟机将部署到 VCF 管理域集群上。
二、现有 vSphere 环境
针对 VCF Import Tool 工具使用的各种要求和限制,同样需要对现有 vSphere 环境的信息进行检查确认。本次用于导入(Import)的现有 vSphere 环境如下图所示,一个由 3 主机所组成的 vSAN ESA 标准集群,关于具体检查过程这里就略过了,详细请参看之前文章。


当前 vSphere 环境的 vCenter Server 虚拟机运行在 VCF 管理域集群上(注意,后面有调整)。

三、执行导入前预检查
在对现有 vSphere 环境执行导入(Import)操作之前,需要在 SDDC Manager 上执行一次预检查,确定当前 vSphere 环境是否满足导入为 VI 域的要求。由于之前在进行转换(Convert)时,已经将 VCF Import Tool 工具包上传至 SDDC Manager 了,所以这里无需进行上传。通过 SSH 以 vcf 用户连接到 SDDC Manager 的命令行,使用以下命令进入到 vcf-brownfield-toolset 目录。
cd /home/vcf/vcfimport/vcf-brownfield-import-5.2.0.0-24108578/vcf-brownfield-toolset/

进入目录后,使用以下命令在 SDDC Manager 上执行环境检查。总共有 83 个内容,成功检查 82 个,失败 0 个,内部错误 1 个。
python3 vcf_brownfield.py check --vcenter vcf-vi01-vcsa01.mulab.local --sso-user administrator@vsphere.local --sso-password Vcf520@password

根据检查输出的结果,查看具体错误的内容,Compatibility validation 项检查错误,如下所示。
An error occurred when validating VMware Cloud Foundation compatibility: File with Compatibility Matrix Content for Compatibility controller VMWARE_COMPAT is not found.

这个错误必须要解决,否则后面无法继续。一开始的时候,我一直以为是 vSAN HCL 文件有问题导致的,经过各种尝试和验证,还把之前转换的管理域给清除了,重新部署了 VCF 管理域环境,结果这个错误始终无法得到修复。然后后面才反应过来,它这个错误指的是“Compatibility Matrix”兼容性数据文件无法验证,这是一个专门针对的 VCF 的兼容性矩阵数据,跟 vSAN 那个 HCL 数据库文件有点类似但不一样,也就是这个数据现在缺失了无法进行验证,所以有这个内部错误。其实,你也可以在 SDDC Manager UI 下图中的地方看到这个错误提示,不管是通过转换(Convert)过来的管理域还是使用 Cloud Builder 部署的管理域,这个 VCF 兼容性数据默认都没有,我们需要手动下载并进行更新。

如何手动下载并进行更新 VCF 兼容性数据文件,也就是这个“Compatibility Matrix”文件,可以参考这篇《Offline Download of VMware Cloud Foundation 5.2 Upgrade Bundles》产品文档。整个流程大概是,你需要使用 Bundle Transfer Utility 工具下载这个“Compatibility Matrix”兼容性数据文件,然后再使用这个工具将兼容性数据文件更新到 VCF 中。
对于这个工具,可以到 Broadcom 支持门户(BSP)去下载,我已经将这个工具和“Compatibility Matrix”兼容性数据文件上传到了这个百度网盘链接(https://pan.baidu.com/s/1lUbrN0zjLUUC1oB8L7ZRAg?pwd=lvx9)中,有需要可以去下载。下面我将演示如何去下载这个兼容性数据文件并将其更新到 SDDC Manager 中。
如果 VCF 环境可以连接互联网,那可以直接使用这个工具在 SDDC Manager 上执行下载和更新过程,但要是不能联网的话,你可以找一台能够连接互联网的 Linux 主机,然后在这个主机上再使用工具去下载兼容性数据文件(VmwareCompatibilityData.json),下载之后保存到本地,将文件上传到内网环境的 SDDC Manager 上,再使用这个工具完成更新。注意,下载这个兼容性数据文件需要具有 Broadcom 支持门户(BSP)的账号,没有 VCF 权限仅普通用户权限也可以进行下载。
将 Bundle Transfer Utility 工具上传到具有互联网连接的 Linux 主机上,解压后并赋予 lcm-bundle-transfer-util 工具执行权限,然后使用以下命令下载“Compatibility Matrix”兼容性数据文件。
./lcm-bundle-transfer-util --download --compatibilityMatrix --depotUser xxxxxxxx@163.com

获取到 VCF 兼容性数据文件后,将该文件以及 Bundle Transfer Utility 工具一并上传到 VCF 管理域的 SDDC Manager 上,使用以下命令解压该工具并调整权限。
mkdir /opt/vmware/vcf/lcm/lcm-tools
cd /opt/vmware/vcf/lcm/
tar -xvf lcm-tools-prod.tar.gz
chown vcf_lcm:vcf -R lcm-tools
chmod 750 -R lcm-tools

进入到工具所在的目录,使用以下命令完成 VCF 兼容性数据的更新,请注意命令中“inputDirectory”选项所使用的目录位置。
./lcm-bundle-transfer-util --update --compatibilityMatrix --inputDirectory /home/vcf/ --sddcMgrFqdn vcf-mgmt01-sddc01.mulab.local --sddcMgrUser administrator@vsphere.local

完成对“Compatibility Matrix”兼容性数据的更新之后,再次使用以下命令执行环境检查,现在所有检查都已成功。
python3 vcf_brownfield.py check --vcenter vcf-vi01-vcsa01.mulab.local --sso-user administrator@vsphere.local --sso-password Vcf520@password

四、准备 NSX Manager
在进行转换(Convert)时,我们同时执行了 NSX 的部署,在进行导入(Import)时,同样可以一起执行 NSX 的部署。这一步骤是可选操作,你可以在执行导入过程的同时执行 NSX 的部署,也可以在执行导入结束之后,在其他时间再执行 NSX 的部署,只需要使用 --skip-nsx-deployment 选项跳过就行。以下是执行 NSX 部署所需的 JSON 配置文件。
{
"license_key": "AAAAA-BBBBB-CCCCC-DDDDD-EEEEE",
"form_factor": "medium",
"admin_password": "Vcf520@password",
"install_bundle_path": "/nfs/vmware/vcf/nfs-mount/bundle/bundle-124941.zip",
"cluster_ip": "192.168.32.76",
"cluster_fqdn": "vcf-vi01-nsx01.mulab.local",
"manager_specs": [{
"fqdn": "vcf-vi01-nsx01a.mulab.local",
"name": "vcf-vi01-nsx01a",
"ip_address": "192.168.32.77",
"gateway": "192.168.32.254",
"subnet_mask": "255.255.255.0"
},
{
"fqdn": "vcf-vi01-nsx01b.mulab.local",
"name": "vcf-vi01-nsx01b",
"ip_address": "192.168.32.78",
"gateway": "192.168.32.254",
"subnet_mask": "255.255.255.0"
},
{
"fqdn": "vcf-vi01-nsx01c.mulab.local",
"name": "vcf-vi01-nsx01c",
"ip_address": "192.168.32.79",
"gateway": "192.168.32.254",
"subnet_mask": "255.255.255.0"
}]
}
将 NSX 部署的 JSON 配置文件以及 NSX 的安装包上传到 SDDC Manager 中,需要记住这个配置文件上传的路径,后面需要用到。
ls /home/vcf/vcfimport/
ls /nfs/vmware/vcf/nfs-mount/bundle/

其实,在执行 NSX 部署时,如果物理资源不是很充足的话,我们也可以只部署 1 个 NSX Manager 设备,之前在执行转换(Convert)的时候没有说,以下方法应该也同样适用,有需要的可以参考以下步骤。当然,上面的 JSON 配置文件还是需要配置完整的 3 个 NSX Manager 设备,如果不完整,那后面的检查都过不了。
通过 SSH 连接到 SDDC Manager 并切换到 root 用户,使用以下命令编辑系统配置文件:
vim /etc/vmware/vcf/domainmanager/application-prod.properties
添加以下内容并保存:
nsxt.manager.cluster.size=1
nsxt.manager.formfactor=medium
重新启动服务。
systemctl restart domainmanager

五、正式执行导入过程
通过 vcf 用户 SSH 登录到 SDDC Manager,进入到 vcf-brownfield-toolset 目录,使用以下命令执行 vSphere 环境导入过程。运行命令后,输入 SDDC Manager 的 admin 用户密码以及 vCenter Server 的 root 和 SSO 用户密码进行验证。
python3 vcf_brownfield.py import --vcenter vcf-vi01-vcsa01.mulab.local --sso-user administrator@vsphere.local --domain-name vcf-vi01 --nsx-deployment-spec-path /home/vcf/vcfimport/vcf520-import-nsx.json

输入 YES 开始导入(Import)过程。

登录 SDDC Manager UI 跟踪任务状态。


任务执行一段时间后,在部署 NSX 的时候又失败了......。原因是物理主机的 CPU 负载过高导致管理域的一台虚拟 ESXi 主机卡死了,刚好 SDDC Manager 虚拟机也在这上面,看这篇(使用 esxtop 杀死 ESXi 主机中卡死和不响应的虚拟机。)文章!

管理域 ESXi 主机卡死后,SDDC Manager 虚拟机进行了 HA 切换,等所有服务都运行正常后,通过 SDDC Manager UI 重新启动失败的任务就可以了,因为现有 vSphere 环境的导入任务已经完成了,如下图所示。

最终,任务全部执行成功。

任务完成后,切换到 root 用户,重新启动一下 SDDC Manager 的所有服务,并使 UI 重新进行初始化。

六、验证已导入的 VI 域
导航到 SDDC Manager UI->清单->工作负载域,可以看到现有 vSphere 环境已经被导入为 VI 域,VI 域的名称为我们导入时设置的名称 vcf-vi01。

点击进入 VI 域,查看该工作负载域的摘要信息。

在主机和集群选项卡中,可以看到属于 vSphere 环境中的 ESXi 主机和集群配置信息。


执行一下环境预检查,查看各个组件和配置是否都正常。


在发行版本视图下,VCF 5.2 版本中现在具有两个工作负载域。

在映像管理视图下,现在具有两个可用的映像。

在网络设置视图下,查看 VI 域的网络池配置信息。

在对现有 vSphere 环境进行导入检查时,由于不知道错误的原因,VCF 管理域被重新部署了,所以当时将现有 vSphere 环境的 vCenter Server 虚拟机通过跨 vCenter vMotion 迁移到了自身的集群上。由于物理资源负载过高导致 ESXi 4 主机卡死,所以现在是断开状态。

现有 vSphere 环境信息,现在是 VI 域 vCenter Server,虚拟机清单包含 vCenter Server 虚拟机和 1 个 NSX Manager 虚拟机。

vCenter Server 虚拟机在现有 vSphere 集群中,所以 NSX Manager 虚拟机被部署到了相同的位置。

登录 VI 域的 NSX Manager UI(VIP),查看 NSX 系统配置概览。

NSX 集群配置,只有一个 NSX Manager 节点的 NSX 管理集群。

VI 域 vCenter Server 已作为计算管理器被添加到 NSX 当中。

VI 域集群中的主机已配置了分布式虚拟端口组(DVPG)的 NSX。


VI 域管理组件在 DFW 排除列表中。


【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境导入为 VI 域。的更多相关文章
- 【Spring注解驱动开发】使用@Import注解给容器中快速导入一个组件
写在前面 我们可以将一些bean组件交由Spring管理,并且Spring支持单实例bean和多实例bean.我们自己写的类,可以通过包扫描+标注注解(@Controller.@Servcie.@Re ...
- 【Spring注解驱动开发】在@Import注解中使用ImportSelector接口导入bean
写在前面 在上一篇关于Spring的@Import注解的文章<[Spring注解驱动开发]使用@Import注解给容器中快速导入一个组件>中,我们简单介绍了如何使用@Import注解给容器 ...
- 在服务器端将现有Git项目导入GitLab
GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器.发现它之后,立即决定将Git服务器换成GitLab. 但安装好GitLab之后面临一个问题,如何将服务器 ...
- 在eclipse中,使用spring tool suite配置spring环境
本人第一次接触spring,在经过一天的努力之后,终于成功配置了spring环境. 使用spring tool suite配置 1.打开eclipse,选择help->Eclipse marke ...
- 2018.12.21 如何在现有的Eclipse(4.9.0版本)中安装STS (Spring Tool Suite ) Mac环境下
在Eclipse中安装STS正确步骤实现方式 1.简介说明 spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序.它提供了一个现 ...
- VMWARE + CENTOS在windows下配置cocos2d-x android开发环境
VMWARE + CENTOS在windows配置cocos2d-x android开发环境 之前使用cygwin在windows开发android,后来使用了c++11特性,在cygwin中更新工具 ...
- VSM Import Cluster功能验证二(导入篇)
三 vsm import cluster 3.1登录vsm web UI 登陆 VSM web UI,https://172.16.34.51/dashboard/vsm/,点击Cluster Man ...
- Vmware ESXi 6.0 多Vlan部署,vSphere Client管理方法
背景: 公司IT部门新购了两台服务器与一台存储,打算做虚拟化,并将存储分成两个部分,分别配给那两台服务器.在宿主机上要安装的虚拟机属于不同的网段,这就涉及了多VLAN,当然这并不是多么高深的技术,属于 ...
- eclipse for php现有项目不能导入问题
1.少了.project文件 解决办法:创建一个新项目,然后将新项目文件夹下的.project文件复制到将要导入的文件夹中.
- (二 )VMware workstation 部署虚拟集群实践——并行批量操作环境部署
在上一篇博客中,已经介绍了安装虚拟集群的过程和需要注意的细节问题. 这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的. ------------首 ...
随机推荐
- SQL Server 清除一个数据库下所有表数据,保留表结构
用法:在需要清空数据的数据库创建并执行存储过程,该存储过程并不会影响其他数据库 请小心使用这些脚本,确保在生产环境之前备份您的数据库.️ 存储过程: CREATE PROCEDURE ClearAll ...
- electron安装成功记录
1.登录官网查看当前最新版本对应的node,注意这里不要看php那个汉化的,他那个是老版本的,node对不上 2.nvm安装一个新的node 3.使用cnpm安装(npm安装还是报错了,记得删node ...
- Mysql将查询出的数值转换为中文显示case..when..then
我们经常需要在数据库导出文件,可是导出某些字段时不是中文含义其它同事分不清.可以通过case..when..then根据一一对应的关系将值转成中文,再进行导出方便大家查阅. 1.正常sql未处理之前查 ...
- 【MongoDB】Re01 安装与基础操作
Linux安装 官网下载红帽安装版 #下载三个rpm包 wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/mongo ...
- 家务机器人(人形机器人)—— Mobile ALOHA: Your Housekeeping Robot
项目地址: https://mobile-aloha.github.io/ 演示视频地址: https://www.youtube.com/watch?v=HaaZ8ss-HP4 论文地址: http ...
- CyberDog测试视频 —— 【开箱】小米"限量"机器狗!被我玩坏了...
地址: https://www.youtube.com/watch?v=3ntAhy3thXM PS. 现在的智能机器人其实真的没有人们想象中的那么智能.感觉现在的智能机器人最为有用的功能一个是倒地自 ...
- MindSpore 自动微分
代码原地址: https://www.mindspore.cn/tutorial/zh-CN/r1.2/autograd.html MindSpore计算一阶导数方法 mindspore.ops.G ...
- Hutool常用工具类
1.背景 实际开发中经常用到很多的工具类,这里hutool提供了一系列的工具类,下面重点介绍常用的工具类. 2.使用步骤 官方文档:https://hutool.cn/docs/#/ 添加依赖 < ...
- 【题解】ABC365(A~E)
前四题30min切,然后T5死磕70min+几发小唐错,距离比赛结束还有16s交最后一发,AC了. 目录 A. Leap Year 题目描述 思路 代码 B. Second Best 题目描述 思路 ...
- kubernetes批量删除evicted状态pod
#!/bin/bash # get namespace namespaces=`kubectl get pod -A | grep -i "evicted" | awk '{pri ...