【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 部署虚拟集群实践——并行批量操作环境部署
在上一篇博客中,已经介绍了安装虚拟集群的过程和需要注意的细节问题. 这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的. ------------首 ...
随机推荐
- ORACLE PL/SQL 对象、表数据对比功能存储过程简单实现
最近帮忙跟进个oracle11g upgrade 升级到19c 的项目,由于业主方不太熟悉oracle upgrade相关升级流程,以及升级影响范围相关的事项,担心应用停机升级以后会导致数据库保存的业 ...
- EdgeOne安全专项实践:上传文件漏洞攻击详解与防范措施
前言 今天,我们将深入探讨上传文件漏洞攻击,这部分内容是EdgeOne专项实践篇的一部分.在本章中,我们不会涉及文件漏洞的含义.原理或站点配置等基础教程,如果你对这些内容感兴趣,可以参考这篇文章:探索 ...
- python tesseract-ocr 图文识别 (windows基础环境搭建)
python tesseract-ocr 图文识别 一,先进行Tesserocr安装下载 1,先点击进入下面的百度网盘链接: https://pan.baidu.com/s/1G5vZO2B4Mxx5 ...
- Python和RPA网页自动化-处理iframe嵌入式框架
以网易云为例,歌曲列表都在<iframe>框架下,使用Python和RPA网页自动化依次点击10首歌的播放键 1.python代码 从网页源代码可见,整个歌曲列表都在<iframe& ...
- Http、Https简介和Session、token的请求流程
Http Http (超文本输出协议) 是一种分布式.协作式和超媒体信息系统的应用层协议,它通常运行在TCP之上,因特网应用最广泛的便是Http协议,所有www都遵循这个标准.主要用于Web 浏览器与 ...
- 树莓派 3b+型号 pip3方式 安装 TensorFlow
树莓派系统为: 首先选择 pip3 方式进行安装: 树莓派上执行: 发现速度过慢,于是选择先在Windows主机上下载,然后再把文件传到树莓派上进行安装. 不过后来发现即使使用迅雷这样强大的下载工具 ...
- 增强用户体验:2个功能强大的.NET控制台应用帮助库
前言 对于.NET开发者而言,构建控制台应用程序时,如何提升用户交互的流畅性和满意度,是一个持续探索与优化的话题.今天大姚给大家分享2个功能强大的.NET控制台应用帮助库,希望可以帮助大家能够快速的构 ...
- 【树的直径 求树中距离跟阶段点最远的点】CodeForce1822F.md
CF1822F-Problem - F - Codeforces 题目大意:无根树的每条边为k,定义操作:移动根节点为把当前的根ROOT移动到相邻节点,每次代价为c, 定义成本=从ROOT出发到达的最 ...
- 【模板】树的直径(dfs & dp)
树的直径 给定n个点 n-1条边 和每条边的val 输出直径的大小和 直径上的点的序号 input: 8 1 2 2 1 3 1 1 5 10 2 4 3 4 6 4 3 7 5 7 8 2 outp ...
- DIjkstra进阶模板 路径记录 按权重(结点数最小等)记录
struct DIJ { using i64 = long long; using PII = pair<i64, i64>; vector<i64> dis, path, n ...