教程:使用 Azure Migrate:发现和评估发现 Hyper-V 上运行的服务器
在迁移到 Azure 的过程中,你将发现本地库存和工作负载。
本教程介绍如何使用一个轻型 Azure Migrate 设备通过“Azure Migrate:发现和评估”工具发现 Hyper-V 环境中运行的服务器。 你将该设备部署为 Hyper-V 主机上的服务器,以持续发现服务器及其性能元数据、在服务器上运行的应用程序、服务器依赖项、Web 应用,以及 SQL Server 实例和数据库。
在本教程中,你将了解如何执行以下操作:
- 设置 Azure 帐户
- 准备 Hyper-V 环境以进行发现。
- 创建项目。
- 设置 Azure Migrate 设备。
- 启动持续发现。
注意
教程显示尝试方案的最快路径,并使用默认选项。
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
先决条件
在开始本教程之前,请先检查是否已满足这些先决条件。
要求 | 详细信息 |
---|---|
Hyper-V 主机 | 服务器所在的 Hyper-V 主机可以是独立的,也可以在群集中。 主机必须运行 Windows Server 2022、Windows Server 2019 或 Windows Server 2016 R2。 验证 WinRM 端口 5985 (HTTP) 上是否允许入站连接,使设备可以使用通用信息模型(CIM)会话连接到拉取服务器元数据和性能数据。 |
设备部署 | Hyper-V 主机需要资源来为设备分配服务器: - 16 GB RAM、8 个 vCPU 以及约 80 GB 的磁盘存储。 - 外部虚拟交换机,以及设备上的直接或通过代理实现的 Internet 访问。 |
服务器 | 所有 Windows 和 Linux OS 版本均受支持,可用于发现配置和性能元数据。 对于服务器上的应用程序发现,所有 Windows 和 Linux OS 版本均受支持。 查看支持无代理依赖项分析的 OS 版本。 若要发现在 IIS Web 服务器上运行的 ASP.NET Web 应用,请查看支持的 Windows OS 和 IIS 版本。 若要发现已安装的应用程序并进行无代理依赖项分析,Windows 服务器必须安装 PowerShell 2.0 或更高版本。 若要发现在Apache Tomcat Web 服务器上运行的 Java Web 应用,请检查支持的 Linux OS 和 Tomcat 版本。 |
SQL Server 访问 | 若要发现 SQL Server 实例和数据库,Windows 或 SQL Server 帐户需要每个 SQL Server 实例具有这些权限。 为简单起见,可以使用帐户预配实用工具创建自定义帐户或使用任何作为 sysadmin 服务器角色成员的现有帐户。 |
准备 Azure 用户帐户
若要创建项目并注册 Azure Migrate 设备,需要一个具有以下权限的帐户:
- Azure 订阅的参与者或所有者权限。
- Microsoft Entra 应用的注册权限。
如果你刚刚创建了试用版 Azure 帐户,那么你就是订阅的所有者。 如果你不是订阅所有者,请让所有者分配权限,如下所示:
在 Azure 门户中,搜索“订阅”,然后在“服务”下选择“订阅” 。
在“订阅”页上,选择要在其中创建项目的订阅。
选择“访问控制 (IAM)”。
选择“添加”>“添加角色分配”,打开“添加角色分配”页面。
分配以下角色。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色。
设置 值 角色 参与者或所有者 将访问权限分配到 用户 成员 azmigrateuser 若要注册设备,Azure 帐户需要权限才能注册 Microsoft Entra 应用。
在门户中,转到 Microsoft Entra ID>用户。
请求租户或全局管理员将应用程序开发人员角色分配给帐户,以允许用户注册 Microsoft Entra 应用。 了解详细信息。
准备 Hyper-V 主机
可以手动或使用脚本来准备 Hyper-V 主机。 准备步骤汇总在下表中。 脚本会自动进行这些准备。
步骤 | 脚本 | 手动 |
---|---|---|
验证主机要求 | 检查主机是否正在运行受支持的 Hyper-V 版本,并检查 Hyper-V 角色。 启用 WinRM 服务,并在主机上打开端口 5985 (HTTP) 和 5986 (HTTPS)(收集元数据时需要使用这些端口)。 |
主机必须运行 Windows Server 2019、Windows Server 2016 或 Windows Server 2012 R2。 验证 WinRM 端口 5985 (HTTP) 上是否允许入站连接,使设备可以使用通用信息模型(CIM)会话连接到拉取服务器元数据和性能数据。 具有非英语区域设置的主机目前不支持该脚本。 |
验证 PowerShell 版本 | 检查你是否在受支持的 PowerShell 版本中运行该脚本。 | 检查是否正在 Hyper-V 主机上运行 PowerShell 版本 4.0 或更高版本。 |
创建帐户 | 验证你在 Hyper-V 主机上是否具有正确的权限。 使你可以创建具有正确权限的本地用户帐户。 |
选项 1:准备一个具有对 Hyper-V 主机的管理员访问权限的帐户。 选项 2:准备一个本地管理员帐户或域管理员帐户,并将该帐户添加到这些组中:远程管理用户、Hyper-V 管理员和性能监视器用户。 |
启用 PowerShell 远程处理 | 在每台主机上启用 PowerShell 远程控制,使 Azure Migrate 设备能够通过 WinRM 连接在主机上运行 PowerShell 命令。 | 若要设置,请在每台主机上,以管理员身份打开 PowerShell 控制台,然后运行以下命令:powershell Enable-PSRemoting -force |
设置 Hyper-V 集成服务 | 检查主机管理的所有服务器上是否已启用 Hyper-V Integration Services。 | 在每个服务器上启用 Hyper-V 集成服务。 如果运行的是 Windows Server 2003,请遵循这些说明。 |
如果服务器磁盘位于远程 SMB 共享上,则委派凭据 | 委托凭据 | 运行以下命令,以使 CredSSP 可以在运行服务器且具有 SMB 共享上的磁盘的主机上委派凭据:powershell Enable-WSManCredSSP -Role Server -Force 可在所有 Hyper-v 主机上远程运行此命令。 如果在群集中添加了新的主机节点,则会自动添加这些节点以供发现,但需要手动启用 CredSSP。 设置设备时,在设备上启用 CredSSP 即可完成 CredSSP 的设置。 |
运行脚本
从下载中心下载脚本。 该脚本已由 Microsoft 加密签名。
使用 SHA256 哈希文件验证脚本完整性。 哈希值如下。 运行以下命令生成脚本的哈希:
C:\>CertUtil -HashFile <file_location> [Hashing Algorithm]
用法示例:
C:\>CertUtil -HashFile C:\Users\Administrators\Desktop\MicrosoftAzureMigrate-Hyper-V.ps1 SHA256
验证脚本完整性后,在每台 Hyper-V 主机上使用以下提升了权限的 PowerShell 命令运行该脚本:
PS C:\Users\Administrators\Desktop> MicrosoftAzureMigrate-Hyper-V.ps1
哈希值为:
哈希 | 值 |
---|---|
SHA256 | 0ad60e7299925eff4d1ae9f1c7db485dc9316ef45b0964148a3c07c80761ade2 |
创建用于访问服务器的帐户
服务器上的用户帐户必须具有启动已安装应用程序发现、无代理依赖项分析以及 SQL Server 实例和数据库所需的权限。 你可以在设备配置管理器上提供用户帐户信息。 设备不会在服务器上安装代理。
- 对于 Windows 服务器,请在服务器上创建拥有管理员权限的帐户(本地或域)。 若要发现 SQL Server 实例和数据库,Windows 或 SQL Server 帐户必须是 sysadmin 服务器角色的成员,或者对每个 SQL Server 实例具有这些权限。 了解如何向用户帐户分配所需的角色。
- 对于 Linux 服务器,请提供一个有权执行 ls 和 netstat 命令的 sudo 用户帐户,或者创建一个对 /bin/netstat 和 /bin/ls 文件具有 CAP_DAC_READ_SEARCH 和 CAP_SYS_PTRACE 权限的用户帐户。 如果提供 sudo 用户帐户,请确保已为该帐户启用 NOPASSWD 以运行所需的命令,且不会在每次调用 sudo 命令时都提示输入密码。
注意
你可以在 Azure Migrate 设备配置管理器中添加多个服务器凭据,以启动已安装应用程序的发现、无代理依赖项分析以及 SQL Server 实例和数据库。 可以添加多个域,Windows(非域)、Linux(非域)或 SQL Server 身份验证凭据。 了解如何添加服务器凭据。
设置项目
设置新项目。
在 Azure 门户 >“所有服务”中,搜索“Azure Migrate”。
在“服务”下选择“Azure Migrate”。
在“开始”中,选择“创建项目”。
在“创建项目”中,选择 Azure 订阅和资源组。 如果没有资源组,请创建一个资源组。
在“项目详细信息”中,指定项目名称以及要在其中创建项目的地理位置。 查看由世纪互联运营的 Azure 支持的地理位置。
选择创建。
等待几分钟,让项目完成部署。 默认会将“Azure Migrate:发现和评估”工具添加到新项目。
注意
如果你已经创建了一个项目,则可以使用同一个项目注册其他设备,以发现和评估更多服务器。 了解详细信息
设置设备
Azure Migrate 使用轻型 Azure Migrate 设备。 设备执行服务器发现并将服务器配置和性能元数据发送到 Azure Migrate。
注意
本教程在 Hyper-V 环境中运行的服务器上设置设备,如下所示:
- 提供设备名称,并在门户中生成项目密钥。
- 从 Azure 门户下载压缩的 Hyper-V VHD。
- 创建设备,并检查它是否可以连接到 Azure Migrate:发现和评估。
- 完成设备的首次配置,并使用项目密钥将其注册到项目。
1.生成项目密钥
- 在“迁移目标”>“Windows、Linux 和 SQL 服务器”>“Azure Migrate: 发现和评估”中,选择“发现”。
- 在“发现服务器”“服务器是否已虚拟化?”中,选择“是,使用 Hyper-V”。
- 在“1:生成项目密钥”中,提供将为发现服务器而设置的 Azure Migrate 设备的名称。 该名称应是字母数字,长度为 14 个或更少的字符。
- 选择“生成密钥”,开始创建所需的 Azure 资源。 在创建资源期间,请不要关闭“发现服务器”页。
- 成功创建 Azure 资源后,会生成一个项目密钥。
- 复制该密钥,因为配置设备时需要输入该密钥才能完成设备注册。
2. 下载 Azure Migrate 设备
在“2: 下载 Azure Migrate 设备”中,选择“下载”以将 ZIP 文件下载到本地计算机中。
验证安全性
在部署压缩文件之前检查其安全性。
在下载文件的计算机上,打开管理员命令窗口。
执行操作以验证 Hyper-V 的安全性。
3.创建设备
我们可以执行操作来为 Hyper-V 设置设备。
验证设备的 Azure 访问权限
确保设备可以连接到由世纪互联运营的 Azure 的 Azure URL。
4.配置设备
首次设置设备。
注意
如果使用 PowerShell 脚本来设置设备,则此过程中的前两个步骤不相关。
在 Hyper-V 管理器 >“虚拟机”中,右键单击该设备 >“连接”。
提供设备的语言、时区和密码。
在可连接到该设备的任一计算机上打开浏览器,然后打开设备 Web 应用的 URL: https://设备名称或 IP 地址:44368。
或者,可以在设备桌面上单击应用快捷方式打开该应用。
接受许可条款,并阅读第三方信息。
设置先决条件并注册设备
在配置管理器中,选择“设置先决条件”,然后完成以下步骤:
连接:设备将检查服务器是否可访问 Internet。 如果服务器使用代理:
选择“设置代理”以指定代理地址(以 或
http://ProxyFQDN
形式,其中“FQDN”指“完全限定的域名”)和侦听端口。如果代理需要身份验证,请输入凭据。
如果已添加代理详细信息或已禁用代理或身份验证,请选择“保存”,再次触发连接并进行连接性检查。
仅支持 HTTP 代理。
时间同步:检查设备上的时间是否与 Internet 时间同步,以便正常运行发现。
安装更新并注册设备:若要运行自动更新并注册设备,请执行以下步骤:
注意
这是 Azure Migrate 设备中的新用户体验,仅在你使用从门户下载的最新安装程序脚本设置设备后才可用。 已注册的设备会继续看到较旧版本的用户体验,并且会继续正常工作,没有任何问题。
若要使设备运行自动更新,请粘贴从门户复制的项目密钥。 如果没有该密钥,请转到“Azure Migrate: 发现和评估”>“概述”>管理现有设备”。 选择生成项目密钥时提供的设备名称,然后复制显示的密钥。
设备会验证密钥并启动自动更新服务,该服务会将设备上的所有服务更新为其最新版本。 在自动更新运行后,你可以选择“查看设备服务”,以查看设备服务器上运行的服务的状态和版本。
若要注册设备,需要选择“登录”。 在“继续使用 Azure 登录”中,选择“复制代码并登录”来复制设备代码(必须提供设备代码才能通过 Azure 进行身份验证)并在新的浏览器标签页中打开 Azure 登录提示。请确保已禁用浏览器中的弹出窗口阻止程序,这样才能看到提示。
在浏览器的新选项卡中,粘贴设备代码并使用 Azure 用户名和密码登录。 不支持使用 PIN 登录。
注意
如果在未登录的情况下意外关闭了登录选项卡,请刷新设备配置管理器的浏览器选项卡以显示设备代码和“复制代码和登录”按钮。
成功登录后,返回到显示设备配置管理器的浏览器选项卡。 如果用于登录的 Azure 用户帐户对密钥生成期间创建的 Azure 资源具有所需的权限,则会开始设备注册。
成功注册设备后,若要查看注册详细信息,请选择“查看详细信息”。
可以在设备配置期间随时重新运行先决条件,以检查设备是否满足所有先决条件。
为 SMB VHD 委托凭据
如果在 SMB 上运行 VHD,必须启用从设备到 Hyper-V 主机的凭据委托。 若要从设备执行此操作:
在设备上,运行此命令。 HyperVHost1/HyperVHost2 是示例主机名。
Enable-WSManCredSSP -Role Client -DelegateComputer HyperVHost1.contoso.com, HyperVHost2.contoso.com, HyperVHost1, HyperVHost2 -Force
或者,在设备上的本地组策略编辑器中执行此操作:
- 在“本地计算机策略”“计算机配置”中,单击“管理模板”“系统”“凭据委托”。
- 双击“允许委托新凭据”,并选择“已启用”。
- 在“选项”中单击“显示”,将要发现的每台 Hyper-V 主机添加到列表中,并使用 wsman/ 作为前缀。
- 在“凭据委托”中,双击“允许允许新凭据并使用仅限 NTLM 的服务器身份验证”。 再次将要发现的每台 Hyper-V 主机添加到列表中,并使用 wsman/ 作为前缀。
启动持续发现
从设备连接到 Hyper-V 主机或群集,并启动服务器发现。
提供 Hyper-V 主机/群集详细信息
在“步骤 1: 提供 Hyper-V 主机凭据”中,选择“添加凭据”以指定凭据的易记名称,为设备将用于发现服务器的 Hyper-V 主机/群集添加“用户名”和“密码”。 选择“保存”。
如果要一次添加多个凭据,请选择“添加更多”以保存和添加更多凭据。 在 Hyper-V 环境中发现服务器支持多个凭据。
在“步骤 2:提供 Hyper-V 主机/群集详细信”息中,选择“添加发现源”,以指定 Hyper-V 主机/群集 IP 地址/FQDN 以及用于连接到主机/群集的凭据的易记名称。
可以一次“添加单个项目”,也可以一次“添加多个项目” 。 还有一个选项是通过“导入 CSV”提供 Hyper-V 主机/群集详细信息。
- 如果选择“添加单个项目”,则需要指定凭据的易记名称和 Hyper-V 主机/群集 IP 地址/FQDN,然后选择“保存”。
- 如果选择“添加多个项目”(默认情况下处于选中状态),则可以通过在文本框中指定 Hyper-V 主机/群集 IP 地址/FQDN 和凭据的易记名称来一次添加多个记录。 验证已添加的记录,然后选择“保存”。
- 如果选择“导入 CSV”,可以下载 CSV 模板文件,并使用 Hyper-V 主机/群集 IP 地址/FQDN 和凭据的易记名称填充文件。 然后,将该文件导入设备,验证文件中的记录,然后选择“保存”。
单击“保存”后,设备将尝试验证与已添加 Hyper-V 主机/群集的连接,并在表中显示每个主机/群集的“验证状态”。
- 对于验证成功的主机/群集,可以通过单击其 IP 地址/FQDN 来查看更多详细信息。
- 如果主机验证失败,请通过单击表中“状态”列的“验证失败”来查看错误。 解决此问题,然后再次验证。
- 若要删除主机或群集,请选择“删除”。
- 无法删除群集中的特定主机。 只能删除整个群集。
- 即使群集中的特定主机出现问题,你也可以添加群集。
在开始发现之前,可以随时重新验证与主机/群集之间的连接。
提供服务器凭据
在“步骤 3:提供服务器凭据以在 Azure HyperV 环境中执行软件清单、无代理依赖项分析、SQL Server 实例和数据库的发现。”中,可以提供多个服务器凭据。 如果不想使用上述任何设备功能,可以禁用滑块,继续发现在 Hyper-V 主机/群集上运行的服务器。 随时可以更改此选项。
若要使用这些功能,可通过完成以下步骤提供服务器凭据。 设备会尝试自动将凭据映射到服务器以执行发现功能。
添加服务器凭据的步骤:
选择“添加凭据”。
在下拉菜单中,选择“凭据类型”。
可以提供域/、Windows(非域)/、Linux(非域)/ 和 SQL Server 身份验证凭据。 了解如何提供凭据以及我们如何处理凭据。
对于每种类型的凭据,请输入:
- 一个易记名称。
- 一个用户名。
- 一个密码。 选择“保存”。
如果选择使用域凭据,还需要输入域的 FQDN。 必须使用 FQDN 才能在该域的 Active Directory 实例中验证凭据的真实性。
查看帐户的所需权限,以发现已安装的应用程序、无代理依赖项分析以及发现 SQL Server 实例和数据库。
若要一次添加多个凭据,请选择“添加更多”,以保存和添加更多凭据。 选择“保存”或“添加更多”时,设备将使用域的 Active Directory 实例验证域凭据以进行身份验证。 每次添加后都会进行验证,以避免在设备循环访问以将凭据映射到相应服务器时帐户锁定。
检查域凭据的验证:
在配置管理器的凭据表中,请参阅域凭据的“验证状态”。 只验证域凭据。
如果验证失败,可以选择“失败”状态以查看验证错误。 解决此问题,然后选择“重新验证凭据”以重新尝试凭据验证。
启动发现
选择“启动发现”,从已成功验证的主机/群集开始发现服务器。 成功启动发现后,你可以针对表中的每个主机/群集检查发现状态。
发现的工作原理
在 Azure 门户中,每台主机大约需要 2 分钟才能显示发现的服务器的元数据。
如果已提供服务器凭据,则在发现 Hyper-V 主机/群集上运行的服务器完成后,会自动启动软件盘存(发现已安装的应用程序)。
软件盘存会标识在服务器上运行的 SQL Server 实例。 设备利用该功能收集的信息,尝试通过 Windows 身份验证凭据或设备上提供的 SQL Server 身份验证凭据连接到 SQL Server 实例。 然后,它会收集有关 SQL Server 数据库及其属性的数据。 SQL Server 发现每 24 小时执行一次。
设备只能连接到与其建立了网络连接的 SQL Server 实例,而软件清单本身可能无需网络连接。
发现已安装的应用程序所用的时间取决于被发现的服务器的数量。 如果有 500 个服务器,门户中的 Azure Migrate 项目大约需要一小时才会显示发现的库存。
软件清单识别发现的服务器上存在的 Web 服务器角色。 如果发现服务器已启用 Web 服务器角色,Azure Migrate 将在服务器上执行 Web 应用发现。 Web 应用配置数据每 24 小时更新一次。
在软件盘存过程中,针对服务器循环访问已添加的服务器凭据,并对这些凭据进行验证,以便进行无代理依赖项分析。 完成服务器发现后,可以在门户中对服务器启用无代理依赖项分析。 只能选择验证成功的服务器来启用无代理依赖项分析。
在开始发现后的 24 小时内,SQL Server 实例和数据库数据将开始在门户中显示。
默认情况下,Azure Migrate 使用最安全的方法连接到 SQL 实例,即,Azure Migrate 通过将 TrustServerCertificate 属性设置为
true
,对 Azure Migrate 设备和源 SQL Server 实例之间的通信进行加密。 此外,传输层使用 SSL 加密通道并绕过证书链来验证信任。 因此,必须将设备服务器设置为信任证书的根颁发机构。 但是,可以通过在设备上选择“编辑 SQL Server 连接属性”来修改连接设置。 了解详细信息以了解要选择的内容。
验证门户中的服务器
发现完成后,可以验证服务器是否出现在门户中。
- 打开 Azure Migrate 仪表板。
- 在 Azure Migrate - 服务器 > Azure Migrate:发现和评估页中,单击显示了已发现服务器计数的图标。
查看支持状态
可通过“发现的服务器”和“发现的数据库实例”部分更深入地了解环境的支持状况。
“操作系统许可支持状态”列显示操作系统的支持状态,无论它是处于“主要支持”状态、“外延支持”状态还是“不支持”状态。 选择支持状态会在右侧打开一个窗格,其中提供了有关可操作步骤的明确指导,你可执行这些步骤在外延支持或不受支持的情况下保护服务器和数据库。
若要查看支持结束之前的剩余持续时间(即许可证的有效月数),请选择“列”>“支持结束时间”>“提交”。 “支持结束时间”列显示持续时间(以月为单位)。
“数据库实例”显示 Azure Migrate 发现的实例数。 选择实例数可查看数据库实例详细信息。 “数据库实例许可证支持状态”显示数据库实例的支持状态。 选择支持状态会在右侧打开一个窗格,其中提供了明确指导,说明可通过执行哪些可行步骤来保护外延支持或不受支持的服务器和数据库。
若要查看支持结束之前的剩余持续时间(即许可证的有效月数),请选择“列”>“支持结束时间”>“提交”。 “支持结束时间”列显示持续时间(以月为单位)。
加入到 Azure Stack HCI(可选)
注意
仅在迁移至 Azure Stack HCI时,执行此步骤。
提供连接到群集所需的 Azure Stack 群集信息和凭据。 有关详细信息,请参阅下载 Azure Stack HCI 软件。
后续步骤
- 评估 Hyper-V 环境上的服务器 以迁移到 Azure VM。
- 查看设备在发现期间收集的数据。