教程:使用 Azure Migrate:发现和评估发现物理服务器
在迁移到 Azure 的过程中,你将发现用于评估和迁移的服务器。
本教程演示如何使用 Azure Migrate:发现和评估工具发现本地物理服务器:服务器评估工具,使用轻型 Azure Migrate 设备。 需要将设备部署为物理服务器,以持续发现服务器和性能元数据。
在本教程中,你将了解如何执行以下操作:
- 设置 Azure 帐户。
- 准备物理服务器以进行发现。
- 创建项目。
- 设置 Azure Migrate 设备。
- 启动持续发现。
注意
教程显示尝试方案的最快路径,并使用默认选项。
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
先决条件
在开始本教程之前,请确保满足这些先决条件。
要求 | 详细信息 |
---|---|
设备 | 需要一台服务器来运行 Azure Migrate 设备。 服务器应拥有: - 已安装 Windows Server 2022 或 2019。 (Windows Server 2022(建议)或 Windows Server 2019 上支持的设备部署。) - 16 GB RAM,8 个 vCPU,约 80 GB 磁盘存储 - 静态或动态 IP 地址,可直接访问或通过代理访问 Internet。 - 从设备到所需 URL 的出站 Internet 连接。 |
Windows 服务器 | 允许在 WinRM 端口 5985 (HTTP) 上进行入站连接,以便发现 Windows 服务器。 若要发现在 IIS Web 服务器上运行的 ASP.NET Web 应用,请查看支持的 Windows OS 和 IIS 版本。 |
Linux 服务器 | 允许在端口 22 (TCP) 上进行入站连接,以便发现 Linux 服务器。 若要发现在Apache Tomcat Web 服务器上运行的 Java Web 应用,请检查支持的 Linux OS 和 Tomcat 版本。 |
SQL Server 访问 | 若要发现 SQL Server 实例和数据库,Windows 或 SQL Server 帐户需要每个 SQL Server 实例具有这些权限。 为简单起见,可以使用帐户预配实用工具创建自定义帐户或使用任何作为 sysadmin 服务器角色成员的现有帐户。 |
注意
不支持在安装了复制设备或移动服务代理的服务器上安装 Azure Migrate 设备。 确保以前未使用设备服务器来设置复制设备,也未在服务器上安装移动服务代理。
准备 Azure 用户帐户
若要创建项目并注册 Azure Migrate 设备,需要一个具有以下权限的帐户:
- Azure 订阅的参与者或所有者权限。
- Microsoft Entra 应用的注册权限。
如果你刚刚创建了试用版 Azure 帐户,那么你就是订阅的所有者。 如果你不是订阅所有者,请让所有者分配权限,如下所示:
在 Azure 门户中,搜索“订阅”,然后在“服务”下选择“订阅” 。
选择“访问控制 (IAM)”。
选择“添加”>“添加角色分配”,打开“添加角色分配”页面。
分配以下角色。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色。
设置 值 角色 参与者或所有者 将访问权限分配到 用户 成员 azmigrateuser 若要注册设备,Azure 帐户需要权限才能注册 Microsoft Entra 应用。
在门户中,转到 Microsoft Entra ID>用户。
请求租户或全局管理员将应用程序开发人员角色分配给帐户,以允许用户注册 Microsoft Entra 应用。 了解详细信息。
准备 Windows Server
- 对于 Windows 服务器,针对已加入域的服务器使用域帐户,针对未加入域的服务器使用本地帐户。
- 对于物理发现,请以下层格式(域\用户名)指定用户名。不支持 UPN 格式 (username@domain.com)。
可以通过以下两种方式之一创建用户帐户:
选项 1
- 在服务器上创建来宾用户帐户。 此帐户可用于通过 CIM 连接拉取配置和性能数据,执行软件清单(发现已安装的应用程序)并使用 PowerShell 远程处理启用无代理依赖项分析。
注意
如果要在 Windows 服务器上执行软件清单(发现已安装的应用程序)并启用无代理依赖项分析,建议使用选项 1。
方法 2
应将用户帐户添加到这些组:远程管理用户、性能监视器用户和性能日志用户。
如果“远程管理用户”组不存在,请将用户帐户添加到以下组:WinRMRemoteWMIUsers_。
该帐户需要拥有这些权限才能让设备创建与服务器的 CIM 连接,并从此处列出的 WMI 类中拉取所需的配置和性能元数据。
在某些情况下,将帐户添加到这些组可能不会从 WMI 类返回所需的数据,因为该帐户可能由 UAC 筛选。 要绕过 UAC 筛选,用户帐户需在目标服务器上的 CIMV2 命名空间和子命名空间中拥有所需的权限。 可按此处所述的步骤启用所需的权限。
注意
对于 Windows Server 2008 和 2008 R2,请确保在服务器上安装了 WMF 3.0。
注意
要在 Windows Server 上发现 SQL Server 数据库,需要同时支持 Windows 和 SQL Server 身份验证。 可以在设备配置管理器中提供这两种身份验证类型的凭据。 Azure Migrate 需要 Windows 用户帐户,该帐户属于其中一个 sysadmin 服务器角色。
准备 Linux 服务器
对于 Linux 服务器,可以通过以下两种方式之一创建用户帐户:
选项 1
- 在要发现的服务器上需有一个 sudo 用户帐户。 此帐户可用于通过 SSH 连接拉取配置和性能元数据、执行软件清单(发现已安装的应用程序)并启用无代理依赖项分析。
- 需要为此处列出的命令启用 sudo 访问权限。 除了这些命令,若要执行无代理依赖项分析,用户帐户还需要具有执行 ls 和 netstat 命令的权限。
- 确保 NOPASSWD 已启用,以便帐户能够运行所需的命令,且不会在每次调用 sudo 命令时都提示用户输入密码。
- 此处列出了支持使用具有 sudo 访问权限的帐户通过 Azure Migrate 发现的 Linux OS 发行版。
注意
如果要在 Linux 服务器上执行软件清单(发现已安装的应用程序)并启用无代理依赖项分析,建议使用选项 1。
选项 2:使用非 sudo 用户帐户发现
如果无法向用户帐户提供 sudo 访问权限,则可以在设备服务器上的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureAppliance 注册表中将“isSudo”注册表项设置为值“0”。
提供具有所需功能的非 sudo 用户帐户。
- 以根用户身份登录。 通过运行
sudo useradd <account-name>
命令创建非 sudo 用户帐户。 使用sudo passwd <account-name>
命令为非 sudo 用户帐户设置密码。 - 使用以下命令将非 sudo 用户帐户添加到 wheel 组:
sudo usermod -aG wheel <account-name>
。 此组中的用户有权运行 setcap 命令,如下所述。 - 登录到已创建的非 sudo 用户帐户,并运行以下命令:
命令 用途 setcap CAP_DAC_READ_SEARCH+eip /usr/sbin/fdisk
setcap CAP_DAC_READ_SEARCH+eip /sbin/fdisk (if /usr/sbin/fdisk is not present)收集磁盘配置数据。 setcap "cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_admin,cap_sys_chroot,cap_sys_admin,
cap_sys_resource,cap_audit_control,cap_setfcap=+eip" /sbin/lvm收集磁盘性能数据。 setcap CAP_DAC_READ_SEARCH+eip /usr/sbin/dmidecode 收集 BIOS 序列号。 chmod a+r /sys/class/dmi/id/product_uuid 收集 BIOS GUID。 sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep /bin/ls
sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep /bin/netstat若要在服务器上执行无代理依赖项分析,请在 /bin/netstat 和 /bin/ls 文件上设置所需的权限。 - 以根用户身份登录。 通过运行
运行上述所有命令后将提示输入密码。 为每个提示输入非 sudo 用户帐户的密码。
将非 sudo 用户帐户的凭据添加到 Azure Migrate 设备。
非 sudo 用户帐户将定期执行此处列出的命令。
创建用于访问服务器的帐户
服务器上用户帐户必须具有所需的权限,才能启动对安装的应用程序的发现、无代理依赖项分析,以及对 Web 应用及 SQL Server 实例和数据库的发现。 你可以在设备配置管理器上提供用户帐户信息。 设备不会在服务器上安装代理。
- 对于 Windows 服务器和 Web 应用发现,请在服务器上创建拥有管理员权限的帐户(本地或域)。 若要发现 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 设备配置管理器上添加多个服务器凭据,以启动对安装的应用程序的发现、无代理依赖项分析,以及对 Web 应用及 SQL Server 实例和数据库的发现。 可以添加多个域,Windows(非域)、Linux(非域)或 SQL Server 身份验证凭据。 了解如何添加服务器凭据。
设置项目
设置新项目。
在 Azure 门户 >“所有服务”中,搜索“Azure Migrate”。
在“服务”下选择“Azure Migrate”。
在“开始”中,选择“创建项目”。
在“创建项目”中,选择 Azure 订阅和资源组。 如果没有资源组,请创建一个资源组。
在“项目详细信息”中,指定项目名称以及要在其中创建项目的地理位置。 查看由世纪互联运营的 Azure 支持的地理位置。
选择创建。
等待几分钟,让项目完成部署。 默认会将“Azure Migrate:发现和评估”工具添加到新项目。
注意
如果你已经创建了一个项目,则可以使用同一个项目注册其他设备,以发现和评估更多服务器。 了解详细信息。
设置设备
Azure Migrate 设备执行服务器发现并将服务器配置和性能元数据发送到 Azure Migrate。 可以通过执行 PowerShell 脚本来设置设备,该脚本可从项目下载。
若要设置该设备,请执行以下操作:
- 提供设备名称,并在门户中生成项目密钥。
- 从 Azure 门户下载带有 Azure Migrate 安装程序脚本的压缩文件。
- 从压缩文件中提取内容。 使用管理权限启动 PowerShell 控制台。
- 执行 PowerShell 脚本以启动设备配置管理器。
- 完成设备的首次配置,并使用项目密钥将其注册到项目。
1.生成项目密钥
- 在“迁移目标”>“Windows、Linux 和 SQL 服务器”>“Azure Migrate: 发现和评估”中,选择“发现”。
- 在“发现服务器”“服务器是否已虚拟化?”中,选择“物理或其他(AWS、GCP、Xen 等)”。
- 在“1: 生成项目密钥”中,提供为发现物理或虚拟服务器而设置的 Azure Migrate 设备的名称。 该名称应是字母数字,长度为 14 个或更少的字符。
- 选择“生成密钥”,开始创建所需的 Azure 资源。 在创建资源期间,请不要关闭“发现服务器”页。
- 成功创建 Azure 资源后,会生成一个项目密钥。
- 复制该密钥,因为配置设备时需要输入该密钥才能完成设备注册。
2.下载安装程序脚本
在“2: 下载 Azure Migrate 设备”中选择“下载”。
验证安全性
在部署压缩文件之前检查其安全性。
在下载文件的服务器上,打开管理员命令窗口。
运行以下命令以生成 zip 文件的哈希:
C:\>CertUtil -HashFile <file_location> [Hashing Algorithm]
- 用法示例:
C:\>CertUtil -HashFile C:\Users\administrator\Desktop\AzureMigrateInstaller.zip SHA256
验证最新设备版本和哈希值:
下载 哈希值 最新版本 07783A31D1E66BE963349B5553DC1F1E94C70AA149E11AC7D8914F4076480731 注意
可以使用同一脚本为由世纪互联运营的具有公共连接的 Azure 设置物理设备。
3.运行 Azure Migrate 安装程序脚本
将压缩文件解压缩到托管设备的服务器上的某个文件夹中。 请确保不要在现有 Azure Migrate 设备上的服务器上运行该脚本。
使用管理(提升)权限在上述服务器上启动 PowerShell。
将 PowerShell 目录更改为从下载的压缩文件中提取内容的文件夹。
通过运行以下命令,运行名为“
AzureMigrateInstaller.ps1
”的脚本:PS C:\Users\administrator\Desktop\AzureMigrateInstaller> .\AzureMigrateInstaller.ps1
从场景、云和连接选项中进行选择,以部署具有所需配置的设备。 例如,下面所示的选择会在 Azure 公有云上已建立默认(公共终结点)连接的 Azure Migrate 项目中,设置一个设备用于发现和评估物理服务器(或在 AWS、GCP、Xen 等其他云上运行的服务器)。
此安装程序脚本执行以下操作:
- 安装代理和 Web 应用程序。
- 安装 Windows 角色,包括 Windows 激活服务、IIS 和 PowerShell ISE。
- 下载并安装 IIS 可重写模块。
- 更新 Azure Migrate 的注册表项 (HKLM) 和永久性设置详细信息。
- 在路径下创建以下文件:
- 配置文件:
%ProgramData%\Microsoft Azure\Config
- 日志文件:
%ProgramData%\Microsoft Azure\Logs
- 配置文件:
成功执行该脚本后,将自动启动设备配置管理器。
注意
如果遇到任何问题,可以访问位于 C:\ProgramData\Microsoft Azure\Logs\AzureMigrateScenarioInstaller_Timestamp.log 的脚本日志来进行故障排除。
验证设备的 Azure 访问权限
确保设备可以连接到由世纪互联运营的 Azure 的 URL。
4.配置设备
首次设置设备。
在可连接到该设备的任一服务器上打开浏览器,然后打开设备 Web 应用的 URL:https://设备名称或 IP 地址: 44368。
或者,可以在桌面上选择应用快捷方式打开该应用。
接受许可条款,并阅读第三方信息。
设置先决条件并注册设备
在配置管理器中,选择“设置先决条件”,然后完成以下步骤:
连接:设备将检查服务器是否可访问 Internet。 如果服务器使用代理:
选择“设置代理”以指定代理地址(以 或
http://ProxyFQDN
形式,其中“FQDN”指“完全限定的域名”)和侦听端口。如果代理需要身份验证,请输入凭据。
如果已添加代理详细信息或已禁用代理或身份验证,请选择“保存”,再次触发连接并进行连接性检查。
仅支持 HTTP 代理。
时间同步:检查设备上的时间是否与 Internet 时间同步,以便正常运行发现。
安装更新并注册设备:若要运行自动更新并注册设备,请执行以下步骤:
注意
这是 Azure Migrate 设备中的新用户体验,仅在你使用从门户下载的最新安装程序脚本设置设备后才可用。 已注册的设备会继续看到较旧版本的用户体验,并且会继续正常工作,没有任何问题。
若要使设备运行自动更新,请粘贴从门户复制的项目密钥。 如果没有该密钥,请转到“Azure Migrate: 发现和评估”>“概述”>管理现有设备”。 选择生成项目密钥时提供的设备名称,然后复制显示的密钥。
设备会验证密钥并启动自动更新服务,该服务会将设备上的所有服务更新为其最新版本。 在自动更新运行后,你可以选择“查看设备服务”,以查看设备服务器上运行的服务的状态和版本。
若要注册设备,需要选择“登录”。 在“继续使用 Azure 登录”中,选择“复制代码并登录”来复制设备代码(必须提供设备代码才能通过 Azure 进行身份验证)并在新的浏览器选项卡中打开 Azure 登录提示。请确保已禁用浏览器中的弹出窗口阻止程序,这样才能看到提示。
在浏览器的新选项卡中,粘贴设备代码并使用 Azure 用户名和密码登录。 不支持使用 PIN 登录。
注意
如果在未登录的情况下意外关闭了登录选项卡,请刷新设备配置管理器的浏览器选项卡以显示设备代码和“复制代码并登录”按钮。
成功登录后,返回到显示设备配置管理器的浏览器选项卡。 如果用于登录的 Azure 用户帐户对在密钥生成期间创建的 Azure 资源具有所需的权限,则会开始设备注册。
成功注册设备后,若要查看注册详细信息,请选择“查看详细信息”。
可以在设备配置期间随时重新运行先决条件,以检查设备是否满足所有先决条件。
启动持续发现
现在,从设备连接到要发现的物理服务器,并启动发现。
在“步骤 1: 提供用于发现 Windows 和 Linux 物理服务器或虚拟服务器的凭据”,选择“添加凭据”。
对于 Windows 服务器,选择作为 Windows 服务器的源类型,指定凭据的友好名称,添加用户名和密码。 选择“保存”。
如果将基于密码的身份验证用于 Linux 服务器,请选择“Linux 服务器 (基于密码)”作为源类型,为凭据指定易用名称,并添加用户名和密码。 选择“保存”。
如果将基于 SSH 密钥的身份验证用于 Linux 服务器,可选择“Linux 服务器 (基于 SSH 密钥)”作为源类型,为凭据指定易用名称,添加用户名,浏览并选择 SSH 私钥文件。 选择“保存”。
Azure Migrate 支持由 ssh-keygen 命令使用 RSA、DSA、ECDSA 和 ed25519 算法生成的 SSH 私钥。
目前 Azure Migrate 不支持基于密码的 SSH 密钥。 使用不含密码的 SSH 密钥。
目前 Azure Migrate 不支持 PuTTY 生成的 SSH 私钥文件。
SSH 密钥文件支持使用 CRLF 在上传的文本文件中标记换行符。 在 Linux 系统上创建的 SSH 密钥最常使用 LF 作为换行符,因此你可以通过在 vim 中打开文件、键入
:set textmode
并保存文件来将其转换为 CRLF。如果 Linux 服务器支持旧版 RSA 密钥,则你可以使用
$ ssh-keygen -m PEM -t rsa -b 4096
命令生成密钥。Azure Migrate 支持 SSH 私钥文件的 OpenSSH 格式,如下所示:
如果要一次添加多个凭据,请选择“添加更多”,以保存和添加更多凭据。 物理服务器发现支持多个凭据。
注意
默认情况下,凭据将用于收集有关已安装的应用程序、角色和功能的数据,以及从 Windows 和 Linux 服务器收集依赖项数据,除非禁用滑块以不执行这些功能(如上一步中的说明)。
在“步骤 2: 提供物理服务器或虚拟服务器详细信息”中,选择“添加发现源”,以指定服务器 IP 地址/FQDN 以及为用于连接到服务器的凭据指定易记名称。
可以一次“添加单个项目”,也可以一次“添加多个项目” 。 还可以选择通过“导入 CSV”提供服务器详细信息。
- 如果选择“添加单个项目”,则可以选择 OS 类型,为凭据指定一个易记名称,并添加服务器“IP 地址/FQDN”,然后选择“保存”。
- 如果选择添加多个项目,则可以通过在文本框中指定服务器 IP 地址/FQDN 并为凭据指定一个易记名称来一次添加多个记录。 验证已添加的记录,然后选择“保存”。
- 如果选择“导入 CSV”(默认已选),可以下载 CSV 模板文件,并使用服务器 IP地址/FQDN 和凭据的易记名称填充文件。 然后,将该文件导入设备,验证文件中的记录,然后选择“保存”。
选择“保存”。 设备会尝试验证与已添加服务器的连接,并在每个服务器的表中显示“验证状态”。
- 如果服务器验证失败,请选择表中“状态”列中的“验证失败”来查看错误。 解决此问题,然后再次验证。
- 若要删除服务器,请选择“删除”。
在开始发现之前,可以随时重新验证与服务器之间的连接。
在启动发现之前,可以选择禁用该滑块,以便不在添加的服务器上执行软件清单和无代理依赖项分析。 随时可以更改此选项。
若要执行 SQL Server 实例和数据库发现,可以添加其他凭据(Windows 域/非域凭据、SQL 身份验证凭据),设备将尝试自动将凭据映射到 SQL Server。 如果添加域凭据,设备将根据域的 Active Directory 对凭据进行身份验证,以防止任何用户帐户被锁定。若要检查域凭据的验证,请执行以下步骤:
- 在配置管理器的凭据表中,查看域凭据的“验证状态”。 只会验证域凭据。
- 如果验证失败,可以选择“失败”状态以查看验证错误。 解决此问题,然后选择“重新验证凭据”以重新尝试凭据验证。
启动发现
选择“开始发现”,开始发现已成功验证的服务器。 成功启动发现后,你可以针对表中的每个服务器检查发现状态。
发现的工作原理
大约需要 2 分钟才能完成对 100 台服务器及其元数据的发现以显示在 Azure 门户中。
软件清单(发现已安装的应用程序)会在服务器发现完成后自动启动。
软件盘存会标识在服务器上运行的 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 实例之间的通信进行加密。 此外,传输层使用 TLS/SSL 加密通道并绕过证书链来验证信任。 因此,必须将设备服务器设置为信任证书的根颁发机构。 但是,可以通过在设备上选择“编辑 SQL Server 连接属性”来修改连接设置。 了解详细信息以了解要选择的内容。
验证门户中的服务器
发现完成后,可以验证服务器是否出现在门户中。
- 打开 Azure Migrate 仪表板。
- 在“Azure Migrate - 服务器”>“Azure Migrate: 发现和评估”页中,选择显示了已发现服务器计数的图标。
查看支持状态
可通过“发现的服务器”和“发现的数据库实例”部分更深入地了解环境的支持状况。
“操作系统许可支持状态”列显示操作系统的支持状态,无论它是处于“主要支持”状态、“外延支持”状态还是“不支持”状态。 选择支持状态会在右侧打开一个窗格,其中提供了有关可操作步骤的明确指导,你可执行这些步骤在外延支持或不受支持的情况下保护服务器和数据库。
若要查看支持结束之前的剩余持续时间(即许可证的有效月数),请选择“列”>“支持结束时间”>“提交”。 “支持结束时间”列显示持续时间(以月为单位)。
“数据库实例”显示 Azure Migrate 发现的实例数。 选择实例数可查看数据库实例详细信息。 “数据库实例许可证支持状态”显示数据库实例的支持状态。 选择支持状态会在右侧打开一个窗格,其中提供了明确指导,说明可通过执行哪些可行步骤来保护外延支持或不受支持的服务器和数据库。
若要查看支持结束之前的剩余持续时间(即许可证的有效月数),请选择“列”>“支持结束时间”>“提交”。 “支持结束时间”列显示持续时间(以月为单位)。
删除服务器
启动发现后,可通过以下方法从设备配置管理器中删除任何添加的服务器:在“添加发现源”表中搜索服务器名称并选择“删除”。
注意
如果你选择删除已启动发现的服务器,它会停止正在进行的发现和评估,这可能影响包括此服务器的评估的置信度评级。 了解详细信息
后续步骤
- 评估物理服务器以便迁移到 Azure VM。
- 查看设备在发现期间收集的数据。