将数据导入 Migration Hub - AWS Application Discovery

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将数据导入 Migration Hub

AWS Migration Hub (Migration Hub)导入允许您直接将本地环境的详细信息导入到迁移中心,而无需使用Application Discovery Service无代理收集器(无代理收集器)或 AWS 应用程序发现代理(Discovery Agent),因此您可以直接从导入的数据进行迁移评估和规划。您还可以将设备作为应用程序来分组,并跟踪其迁移状态。

本页介绍完成导入请求的步骤。首先,使用以下两个选项之一来准备本地服务器数据。

  • 使用常见的第三方工具生成包含本地服务器数据的文件。

  • 下载我们的逗号分隔值 (CSV) 导入模板,并使用您的本地服务器数据填充该模板。

使用前面描述的两种方法之一创建本地数据文件后,您可以使用 Migration Hub 控制台或其中一种将文件上传到 Migration Hub AWS SDKs。 AWS CLI有关这两个选项的更多信息,请参阅支持的导入格式

您可以提交多个导入请求。各个请求按顺序处理。您可以随时通过控制台或导入检查导入请求的状态APIs。

导入请求完成后,您可以查看各个导入记录的详细信息。直接从 Migration Hub 控制台中查看利用率数据、标签和应用程序映射。如果在导入过程中遇到错误,您可以查看成功和失败的记录计数以及每个失败的记录的错误详情。

处理错误:提供了下载错误日志的链接,并将失败的文件记录为压缩存档中的CSV文件。纠正错误后,使用这些文件重新提交您的导入请求。

限制适用于导入的记录数、导入的服务器数和您可以保留的已删除记录数。有关更多信息,请参阅 AWS Application Discovery Service 配额

支持的导入格式

Migration Hub 支持以下导入格式。

RVTools

Migration Hub 支持导入 VMware vSphere via 的导出RVTools。保存来自的数据时RVTools,首先选择全部导出到 csv 选项,然后选择文件夹,然后ZIP将ZIP文件导入到 Migration Hub 中。

Migration Hub 导入模板

Migration Hub 导入允许您从任何来源导入数据。提供的数据必须采用CSV文件支持的格式,并且数据必须仅包含支持的字段,且这些字段的支持范围必须是这些字段。

下表中导入字段名称旁边的星号 (*) 表示该字段为必填字段。您的导入文件的每个记录都必须至少填充一个或多个这样的必填字段,以便唯一地标识服务器或应用程序。否则,不含任何必填字段的记录将无法导入。

下表中导入文件名旁边的尖号 (^) 表示如果提供了 a,则该名称为只读。 serverId

注意

如果你正在使用任何一个VMware。 MoRefId 或VMWare。 VCenterId,要识别一条记录,必须将两个字段放在同一条记录中。

导入字段名称 描述 示例
ExternalId*^ 允许您唯一标识每个记录的自定义标识符。例如,ExternalId可以是数据中心内服务器的清单 ID。

Inventory Id 1

Server 2

CMBD同上 3

SMBiosId^ 系统管理 BIOS (SMBIOS) ID。
IPAddress*^ 逗号分隔的服务器 IP 地址列表,用引号引起来。

192.0.0.2

"10.12.31.233, 10.12.32.11"

MACAddress*^ 以逗号分隔的服务器MAC地址列表,用引号表示。

00:1B:44:11:3A:B7

"00-15-E9-2B-99-3C, 00-14-22-01-23-45"

HostName*^ 服务器的主机名。我们建议为此值使用完全限定域名 (FQDN)。

ip-1-2-3-4

localhost.domain

VMware.MoRefId*^ 托管对象的引用 ID。必须提供VMware. VCenterId。
VMware.VCenterId*^ 虚拟机的唯一标识符。必须提供VMware. MoRefId。
CPU.NumberOfProcessors^ 的数量CPUs。

4

CPU.NumberOfCores^ 物理内核的总数。 8
CPU.NumberOfLogicalCores^ 服务器中可以同时CPUs在所有线程上运行的线程总数。有些CPUs支持在单个内CPU核上同时运行多个线程。在这种情况下,此数量将大于物理(或虚拟)内核的数量。

16

os.name^ 操作系统的名称。

Linux

Windows.Hat

os.version^ 操作系统的版本。

16.04.3

NT 6.2.8

VMware.VMName^ 虚拟机的名称。

Corp1

RAM。 TotalSizeInMB^ 服务器上的RAM可用总量,以 MB 为单位。

64

128

RAM。 UsedSizeInmb.avg^ 服务器RAM上的平均使用量,以 MB 为单位。

64

128

RAM。 UsedSizeInmb.max^ 服务器上RAM可用的最大使用量,以 MB 为单位。

64

128

CPU。 UsagePct.Avg^ 发现工具收集数据时的平均CPU利用率。

45

23.9

CPU。 UsagePct.Max^ 发现工具收集数据时的最大CPU利用率。

55.34

24

DiskReadsPerSecondInkb.avg^ 每秒平均磁盘读取数 (KB)。

1159

84506

DiskWritesPerSecondInkb.avg^ 每秒平均磁盘写入数 (KB)。

199

6197

DiskReadsPerSecondInkb.max^ 每秒最大磁盘读取数 (KB)。

37892

869962

DiskWritesPerSecondInkb.max^ 每秒最大磁盘写入数 (KB)。

18436

1808

DiskReadsOpsPerSecond.Avg^ 每秒平均磁盘读取操作数。

45

28

DiskWritesOpsPerSecond.Avg^ 每秒平均磁盘写入操作数。

8

3

DiskReadsOpsPerSecond.Max^ 每秒最大磁盘读取操作数。

1083

176

DiskWritesOpsPerSecond.Max^ 每秒最大磁盘写入操作数。

535

71

NetworkReadsPerSecondInkb.avg^ 每秒平均网络读取操作数 (KB)。

45

28

NetworkWritesPerSecondInkb.avg^ 每秒平均网络写入操作数 (KB)。

8

3

NetworkReadsPerSecondInkb.max^ 每秒最大网络读取操作数 (KB)。

1083

176

NetworkWritesPerSecondInkb.max^ 每秒最大网络写入操作数 (KB)。

535

71

应用程序 逗号分隔的包括此服务器的应用程序列表,用引号引起来。该值可以包括现有应用程序和/或导入时创建的新应用程序。

Application1

"Application2, Application3"

ApplicationWave 这台服务器的迁移浪潮。
标签^

逗号分隔的格式为 name:value 的标签列表。

重要

请勿将敏感信息(如个人数据)存储在标签中。

"zone:1, critical:yes"

"zone:3, critical:no, zone:1"

ServerId 在 Migration Hub 服务器列表中显示的服务器标识符。 d-server-01kk9i6ywwaxmp

即便并非导入模板中定义的所有字段都填充了数据,您也可以导入数据,只要每个记录至少填充了一个必填字段即可。通过使用外部或内部匹配键来跨多个导入请求管理重复项。如果您填充自己的匹配键 External ID,则此字段用于唯一地标识和导入记录。如果未指定匹配键,则导入将使用内部生成的匹配键,该键由导入模板的某些列派生而来。有关此匹配的更多信息,请参阅匹配已发现的服务器和应用程序的逻辑

注意

Migration Hub 导入不支持导入模板中定义的字段之外的任何字段。提供的任何自定义字段将被忽略,不会导入。

设置导入权限

在导入数据之前,请确保您的IAM用户拥有必要的 Amazon S3 权限,可以将您的导入文件上传 (s3:PutObject) 到 Amazon S3 并读取对象 (s3:GetObject)。您还必须通过创建IAM策略并将其附加到在您的 AWS 账户中执行导入的IAM用户来建立编程访问权限(用于 AWS CLI)或控制台访问权限。

Console Permissions

使用以下步骤编辑将使用控制台在您的 AWS 账户中提出导入请求的IAM用户的权限策略。

编辑用户的已附加托管策略
  1. 登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Users(用户)。

  3. 请选择要更改其权限策略的用户的名称。

  4. 选择权限选项卡,选择添加权限

  5. 选择直接附加现有策略,然后选择创建策略

    1. 在打开的 “创建策略” 页面中 JSON,选择并粘贴以下策略。请记住将存储桶的名称替换为IAM用户将导入文件上传到的存储桶的实际名称。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::importBucket"] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::importBucket/*"] } ] }
    2. 选择查看策略

    3. 为您的策略提供一个新名称和描述(可选),然后检查策略摘要。

    4. 选择创建策略

  6. 返回将在您的 AWS 账户中提出导入请求的用户的 “授予权限” IAM 控制台页面。

  7. 刷新策略表,搜索您刚才创建的策略的名称。

  8. 选择 Next: Review(下一步:审核)。

  9. 选择 Add permissions (添加权限)

现在,您已将策略附加到您的 IAM 用户,接下来就可以开始导入过程了。

AWS CLI Permissions

使用以下过程创建必要的托管策略,以授予IAM用户使用提出导入数据请求的权限 AWS CLI。

创建和附加托管策略
  1. 使用aws iam create-policy AWS CLI 命令创建具有以下权限的IAM策略。请记住将存储桶的名称替换为IAM用户将导入文件上传到的存储桶的实际名称。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::importBucket"] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::importBucket/*"] } ] }

    有关使用此命令的更多信息,请参阅《命令参考》中的 create-AWS CLI p ol icy。

  2. 使用aws iam create-policy AWS CLI 命令创建具有以下权限的其他IAM策略。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "discovery:ListConfigurations", "discovery:CreateApplication", "discovery:UpdateApplication", "discovery:AssociateConfigurationItemsToApplication", "discovery:DisassociateConfigurationItemsFromApplication", "discovery:GetDiscoverySummary", "discovery:StartImportTask", "discovery:DescribeImportTasks", "discovery:BatchDeleteImportData" ], "Resource": "*" } ] }
  3. 使用aws iam attach-user-policy AWS CLI 命令将您在前两个步骤中创建的策略附加到将在您的 AWS 账户中使用执行导入请求的IAM用户 AWS CLI。有关使用此命令的更多信息,请参阅《AWS CLI 命令参考attach-user-policy中的。

现在,您已将策略添加到您的IAM用户,就可以开始导入过程了。

请记住,当IAM用户将对象上传到您指定的 Amazon S3 存储桶时,他们必须保留对象的默认权限设置,这样用户才能读取该对象。

将您的导入文件上传到 Amazon S3

接下来,您必须将CSV格式化的导入文件上传到 Amazon S3,这样才能将其导入。在开始之前,您应该有一个 Amazon S3 存储桶,用于存放您提前创建和/或选择的导入文件。

Console S3 Upload
将您的导入文件上传到 Amazon S3
  1. 登录 AWS Management Console 并打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/

  2. Bucket name 列表中,选择要将对象上传到的存储桶的名称。

  3. 选择上传

  4. Upload 对话框中,选择 Add files 以选择要上传的文件。

  5. 选择要上传的文件,然后选择打开

  6. 选择上传

  7. 上传完文件后,从您的存储桶控制面板选择您的数据文件对象的名称。

  8. 在对象详细信息页面的概述选项卡中,复制对象URL。在创建导入请求时,需要这个 URL。

  9. 转到 Migration Hub 控制台中的 “导入” 页面,如中所述导入数据。然后,将该对象粘贴到 Amazon S3 对象URL字段URL中。

AWS CLI S3 Upload
将您的导入文件上传到 Amazon S3
  1. 打开终端窗口,导航到保存导入文件的目录。

  2. 输入以下 命令:

    aws s3 cp ImportFile.csv s3://BucketName/ImportFile.csv
  3. 这将返回以下结果:

    upload: .\ImportFile.csv to s3://BucketName/ImportFile.csv
  4. 复制返回的完整 Amazon S3 对象路径。在创建导入请求时,您将需要这个。

导入数据

从 Migration Hub 控制台下载导入模板并使用现有本地服务器数据填充模板后,就可以开始将数据导入到 Migration Hub 了。以下说明描述了两种实现此目的的方法,要么使用控制台,要么通过API拨打电话 AWS CLI。

Console Import

在 Migration Hub 控制台的 “工具” 页面上开始导入数据。

启动数据导入
  1. 在导航窗格中的 Discover (发现) 下,选择 Tools (工具)

  2. 如果您还没有填写导入模板,可以通过选择 Import (导入) 框中的 import template (导入模板) 下载该模板。打开下载的模板,用您的现有本地服务器数据填充它。你也可以从我们的 Amazon S3 存储桶下载导入模板,网址https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/为 import_template.csv

  3. 要打开 “导入” 页面,请在 “导入” 框中选择 “导入”。

  4. 在 “导入名称” 下,指定导入的名称。

  5. 填写 “亚马逊 S3 对象 URL” 字段。要执行此步骤,您需要将导入数据文件上传到 Amazon S3。有关更多信息,请参阅 将您的导入文件上传到 Amazon S3

  6. 选择右下方的 Import (导入)。这将打开 Import (导入) 页面,在该页面中,您可以查看您的导入及其在表中列出的状态。

按照上述过程启动您的数据导入后,Imports (导入) 页面将显示每个导入请求的详细信息,包括进度状态、完成时间、成功或失败记录的数量以及下载这些记录的功能。从该屏幕中,您还可以导航至 Servers (服务器) 页面,在 Discover (发现) 下查看实际导入的数据。

Servers (服务器) 页面上,您可以看到所有被发现的服务器(设备)的列表以及导入名称。当您通过选择 “名称” 列中列出的导入名称从 “导入(导入历史记录)” 页面导航时,您将被带到 “服务器” 页面,在该页面中将根据所选导入的数据集应用筛选器。然后,您只能看到属于该特定导入的数据。

归档为 .zip 格式,其中包含两个文件:errors-filefailed-entries-file。errors 文件包含与来自导入失败的数据文件的每个失败行关联的错误消息列表及关联列名称。您可以使用该文件快速确定问题所在位置。失败的条目文件包含失败的各行和所有提供的列。您可以在该文件中执行 errors 文件中指出的更改,然后再次导入更正了信息的文件。

AWS CLI Import

要从开始数据导入过程 AWS CLI, AWS CLI 必须先在您的环境中安装。有关更多信息,请参阅AWS Command Line Interface 用户指南》中的安装 AWS 命令行界面

注意

如果您尚未填写导入模板,则可以在此处从我们的 Amazon S3 存储桶下载导入模板:https://s3.us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv

启动数据导入
  1. 打开一个终端窗口,键入以下命令:

    aws discovery start-import-task --import-url s3://BucketName/ImportFile.csv --name ImportName
  2. 这将创建您的导入任务,并返回以下状态信息:

    { "task": { "status": "IMPORT_IN_PROGRESS", "applicationImportSuccess": 0, "serverImportFailure": 0, "serverImportSuccess": 0, "name": "ImportName", "importRequestTime": 1547682819.801, "applicationImportFailure": 0, "clientRequestToken": "EXAMPLE1-abcd-1234-abcd-EXAMPLE1234", "importUrl": "s3://BucketName/ImportFile.csv", "importTaskId": "import-task-EXAMPLE1229949eabfEXAMPLE03862c0" } }

追踪您的 Migration Hub 导入请求

您可以使用控制台或其中一个来跟踪 Migration Hub 导入请求的状态 AWS SDKs。 AWS CLI

Console Tracking

在 Migration Hub 控制台的 “导入” 控制面板中,你会发现以下元素。

  • 名称-导入请求的名称。

  • 导入 ID-导入请求的唯一 ID。

  • 导入时间-创建导入请求的日期和时间。

  • 导入状态-导入请求的状态。它可以是以下值之一:

    • 导入-此数据文件当前正在导入中。

    • 已@@ 导入-已成功导入整个数据文件。

    • 导入时出错-数据文件中的一条或多条记录导入失败。要解决失败的记录问题,请针对您的导入任务选择 Download failed records (下载失败的记录),纠正失败条目 csv 文件中的错误,然后再次导入。

    • 导入失败-数据文件中没有导入的记录。要解决失败的记录问题,请针对您的导入任务选择 Download failed records (下载失败的记录),纠正失败条目 csv 文件中的错误,然后再次导入。

  • 导入的记录-特定数据文件中成功导入的记录数。

  • 失败的记录-特定数据文件中未导入的记录数。

CLI Tracking

您可以使用aws discovery describe-import-tasks AWS CLI 命令跟踪导入任务的状态。

  1. 打开一个终端窗口,键入以下命令:

    aws discovery describe-import-tasks
  2. 这将以JSON格式返回所有导入任务的列表,包括状态和其他相关信息。(可选)您可以筛选结果以返回导入任务的子集。

在跟踪导入任务时,您可能会发现返回的 serverImportFailure 值大于零。如果发生这种情况,则说明您的导入文件中包含一个或多个无法导入的条目。要解决这一问题,可下载您的失败记录归档,检查其中的文件,然后用修改后的 failed-entries.csv 文件再次请求导入。

创建导入任务后,您可以执行其他操作来帮助管理和跟踪您的数据迁移。例如,您可以针对特定请求下载失败记录归档。有关使用失败的记录归档来解决导入问题的信息,请参阅排查失败的导入记录