本教程将引导您完成使用 Migration Center 资产识别客户端 CLI 客机发现功能在一批 VMware 虚拟机 (VM) 实例上发现和收集数据的过程。大批量虚拟机可能难以监控和排查问题。我们建议将虚拟机分为较小的组,每组包含少于 1,000 个虚拟机。
目标
在本教程中,您将学习如何完成以下操作:
- 下载
mcdc
CLI - 运行 VMWare 清单发现。
- 生成包含所有已发现虚拟机的 CSV 文件。
- 将 CSV 文件拆分为包含一部分虚拟机的多个 CSV 文件。
- 在一个 CSV 文件中的所有虚拟机上运行客机发现。
- 生成离线评估报告。
费用
此教程使用本地资源,不会产生 Google Cloud 费用。
准备工作
准备 Linux 机器以安装并运行
mcdc
CLI。Linux 机器必须满足以下最低要求:glibc
2.25 版或更高版本- 4 GB RAM 和 10 GB 磁盘空间
- 与 vCenter 和 ESX 主机的网络连接
确保您拥有具有必要权限的 vSphere 用户:
- 虚拟机的读取权限
- 所有 ESX 主机的读取权限
- 客机操作修改
- 客机操作程序执行
- 客机操作查询
下载 mcdc
CLI
- 连接到 Linux 机器:
ssh MACHINE_IP
将 MACHINE_IP 替换为 Linux 计算机的 IP 地址。
- 下载最新版本的
mcdc
CLI 并使其可执行:curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc" chmod +x mcdc
- 将
mcdc
CLI 添加到 shell 路径:PATH=$PATH:`pwd`
执行 VMware 清单发现
运行资产清单发现:
./mcdc discover vsphere -u USERNAME --url https://VSPHERE_URL
替换以下内容:
- USERNAME:您的 vCenter 用户名
- VSPHERE_URL:vCenter Server 实例或 vSphere Client 的网址
discover
命令的输出如下所示:[+] Found 528 VMs Collecting data... 528 / 528 [---------------------------------------------------] 100.00% 5 p/s [✓] Collection completed.
生成包含所有已发现虚拟机的 CSV 文件
如需生成 CSV 文件,请使用 GitHub 上的 Migrate to Containers 仓库的 export
脚本。
该脚本使用 report
命令生成 CSV 文件,其中包含上一步中发现的所有虚拟机。
下载脚本:
curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_discovery_export_guest_tools.sh chmod +x mcdc_discovery_export_guest_tools.sh
运行脚本并将输出结果保存到文件:
./mcdc_discovery_export_guest_tools.sh > VMS_CSV_FILE
将 VMS_CSV_FILE 替换为您要用于 CSV 文件的名称。
将 CSV 文件拆分为包含一部分虚拟机的多个 CSV 文件
如需将大型 CSV 文件拆分为较小的 CSV 文件,请使用 GitHub 上的 Migrate to Containers 仓库中的 splitter
脚本。
下载脚本:
curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/csv_splitter.sh chmod +x csv_splitter.sh
运行脚本:
./csv_splitter.sh VMS_CSV_FILE CSV_FILES_PREFIX LINES_PER_FILE VMS_CSV_FILE CSV_FILES_PREFIX
替换以下内容:
- VMS_CSV_FILE:要拆分的输入 CSV 文件。
- CSV_FILES_PREFIX:生成的 CSV 文件的前缀。
- LINES_PER_FILE:每个生成的 CSV 文件的行数。默认值为
10
。
该脚本会生成各种 CSV 文件。
查看生成的 CSV 文件列表:
ls -lrt CSV_FILES_PREFIX*
在一个 CSV 文件中的所有虚拟机上运行客机发现
如需为一个 CSV 文件中的虚拟机运行客机发现,请使用 Migrate to Containers GitHub 代码库中的 collection
脚本。
对上一步生成的每个 CSV 文件重复此步骤。
该脚本使用 discover vsphere guest
命令在虚拟机上上传和执行客机收集脚本。
最好在后台执行此脚本,并将输出定向到日志文件。为此,您需要创建一个文本文件以作为输入传递给脚本。
创建文本文件:
cat <<EOF >> INPUT_FILE CSV_FILES_PREFIXCSV_FILE_SUFFIX VSPHERE_URL VSPHERE_USER VSPHERE_PASSWORD VM_USER VM_PASSWORD EOF
替换以下内容:
- INPUT_FILE:输入文件名
- CSV_FILES_PREFIX:CSV 文件名前缀
- CSV_FILE_SUFFIX:CSV 文件名后缀
- VSPHERE_URL:vCenter Server 实例或 vSphere Client 的网址
- VSPHERE_USER:vCenter 用户名
- VSPHERE_PASSWORD:vCenter 密码
- VM_USER:虚拟机用户名
- VM_PASSWORD:虚拟机密码
运行客机收集脚本:
nohup ./mcdc_collect_vms_guest_tools.sh <INPUT_FILE > /tmp/mcdc.out 2>&1 &
对上一步生成的每个 CSV 文件重复第 1 步和第 2 步。
生成离线评估报告
收集完所有数据后,您可以生成详细的 HTML 报告:
./mcdc report --format html --full > REPORT_NAME.html
后续步骤
- 了解如何从 EC2 实例收集客机数据。
- 详细了解
mcdc
CLI。 - 查看脚本示例。