开始使用 Azure Stack HCI

如今,小型甚至大型企业都面临着关于正确的IT战略以及如何向云演进的问题。好消息是,微软推出了一款适合的产品,Azure Stack HCI。

本教程涵盖了如何开始使用Azure Stack HCI的步骤。您将构建一个虚拟测试环境,并安装一个四节点集群以接入Azure。

继续阅读并开始使用Azure Stack HCI部署虚拟机吧!

先决条件

本教程包括实际操作演示。请确保您具备以下条件:

  • A client or server operating system with Hyper-V enabled. (Windows 10 or 11) – This tutorial uses Windows 10.
  • 至少32GB RAM和至少四个核心的处理器(如果您只配置了两个节点而不是四节点实验,16GB RAM就足够了)。

什么是Azure Stack HCI?

在深入探讨之前,您可能会想知道,Azure Stack HCI到底是什么?Azure Stack HCI提供了一个超融合基础设施(HCI)故障转移集群。该集群托管虚拟化的Windows和Linux工作负载及其存储在本地混合环境中。因此,该环境还与云中的服务相连接。

最容易解释这个基础架构的方式是通过下面的插图。换句话说,HCI是一个经过转化和压缩的硬件堆栈,具有简化和集中化的管理界面。

Demonstrating the transformation path from NCI to HCI

准备实验室并创建Windows Server父磁盘

在大多数情况下,仅使用云的方法是不切实际的,特别是在数据保护方面。在其他情况下,周围仍然有高质量的硬件,不应该闲置。在这种情况下,Azure Stack HCI,一个混合解决方案,可能是正确的选择。

为了验证这一说法,您必须建立一个概念验证(POC),创建一个演示环境。但首先,您需要满足一些基本要求,如下:

  • 正确的文件夹结构和一些软件。
  • 所需虚拟机(VMs – 域控制器,一些Azure Stack HCI节点和Windows Admin Center(WAC)网关服务器)的父磁盘。

创建Windows Server父磁盘:

1. 从下载的存档(MSLab)中提取文件到计算机上的文件夹。

2. 一旦提取,查找并打开LabConfig.ps1文件,使用您喜欢的代码编辑器。

Opening the LabConfig file

3. 接下来,在LabConfig.ps1文件的下面所示的截图中修改标记的区域,使用以下代码。

以下代码指定了域管理员的名称(’LabAdmin’)和相应的密码(’P@$$w0rd!’)。

$LabConfig=@{ DomainAdminName='LabAdmin'; AdminPassword='P@$$w0rd!'; Prefix = 'MSLab-'; DCEdition='4'; Internet=$true ; AdditionalNetworksConfig=@(); VMs=@()}
Specifying Domain-Admin’s name and password

原始的LabConfig.ps1文件在帮助部分包含了许多经过良好注释的示例,这使得根据您的需求自定义文件变得更加容易。

4. 现在,以管理员身份打开PowerShell并执行1_Prereq.ps1脚本文件,以创建所需的文件夹层次结构和必需的软件。

如果未以所需权限执行脚本,则脚本执行将自动重新启动。除非另有明确说明,否则此行为适用于本教程中的所有执行的脚本。

Creating the required folder hierarchy and putting the required software in place

5. 现在,执行2_CreateParentDisks.ps1脚本,准备您实验室所需的所有磁盘映像。

在提示时输入N并按Enter键,以避免将遥测数据发送给Microsoft。如果您不介意让Microsoft处理您的实验室数据,则也可以根据输出进行其他选择。

Preparing all needed disk images

6. 接下来,选择正确的Windows ISO映像文件。在这种情况下,选择英语语言的Windows Server 2022映像文件,并单击打开。

Selecting a Windows Server ISO Image

7. 当提示是否安装Windows Server更新(*.msu)时,请单击取消,因为您已经下载并使用了最新的ISO映像。

脚本现在创建一个 Windows Server 2022 父磁盘(约 15-30 分钟),您稍后将需要用于虚拟机部署。

Skipping Windows Server Update

8. 最后,输入 Y 并按 Enter 清理不必要的文件和文件夹。

清理完成后,再次按 Enter 完成脚本执行。

Cleaning up unnecessary files and folders

现在,您应该在 MSLab 文件夹下看到两个新文件夹(LABParentDisks),三个 PowerShell 脚本以及日志文件。

Verifying MSLab resource files and folders

创建 Azure Stack HCI 父磁盘

通过创建 Windows Server 2022 父磁盘,您已经准备好了实验室骨架的一部分。但是,您仍然缺少 Azure Stack HCI 节点部署的父磁盘。

要创建 Azure Stack HCI 父磁盘:

1. 转到 ParentDisks 文件夹,并执行 CreateParentDisk.ps1 脚本。

2. 接下来,选择正确的 Azure Stack HCI ISO 镜像,并单击“打开”按钮。

Selecting an Azure Stack HCI OS ISO Image

3. 在提示更新包文件(*.msu)时,单击“取消”,因为您已经下载并使用了最新的 ISO 镜像。

Selecting an Azure Stack HCI OS Update file

4. 当要求输入 VHD 名称和大小时,按 Enter。

如果未指定任何内容,则默认使用 AzSHCI21H2_G2.vhdx 作为 VDH 名称,大小为 60 GB。

Using default VHD name and size

5. 按 Enter 完成脚本执行。

Finishing the script execution

6. 最后,转到 MSLab/ParentDisks 文件夹,验证 Azure Stack HCI21H2_G2 磁盘文件是否存在,如下所示。

Checking if all necessary files are available

将虚拟机部署到 Hyper-V

现在一切都准备好将必要的 VM(虚拟机)部署到实验室中。嗯,几乎是这样。您还需要在 LabConfig.ps1 文件中设置一些参数和配置。

1. 打开 LabConfig.ps1 文件,并使用以下代码调整内容以配置 VM 部署。

由于实验室不应该是一个黑盒子,您会在文档结构和存储配置的简短描述中找到。为了更好地了解,所有参数块都分配给了各自的 VM(DC、HCI 节点、WAC 网关)。

此外,为了澄清其功能,还对每个参数进行了描述。

# DC + 实验环境

$LabConfig=@{ DomainAdminName='LabAdmin'; AdminPassword='P@$$w0rd!'; Prefix = 'MSLab-' ; DCEdition='4'; Internet=$true ; AdditionalNetworksConfig=@(); VMs=@()}

# DomainAdminName - 域管理员名称
# AdminPassword - 域管理员密码
# Prefix - VM 名称中应包含的前缀
# DCEdition='4' - 要使用的 Windows 版本 (4 = 数据中心)
# Internet=$true - 启用 DC 上的远程访问服务 (RAS)
# AdditionalNetworksConfig=@() - 附加网络配置的数组
# VMs=@() - VM 数组

# HCI 节点 (预域加入)
1..4 | ForEach-Object {$VMNames="AzSHCI" ; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI21H2_G2.vhdx' ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 4GB; MGMTNICs=4 ; NestedVirt=$true}}

# VMName - VM 名称
# Configuration = 'S2D' - 支持存储空间直通的 VM (S2D)
# ParentVHD - 父磁盘
# HDDNumber - 要连接的总磁盘数
# HDDSize - 磁盘大小
# MemoryStartupBytes - 启动内存
# MGMTNICs - 总网卡数
# NestedVirt - 启用嵌套虚拟化

# Windows Admin Center 网关
$LabConfig.VMs += @{ VMName = 'WACGW' ; ParentVHD = 'Win2022Core_G2.vhdx' ; MGMTNICs=1 }

# VMName - VM 名称
# ParentVHD - 父磁盘
# MGMTNICs - 总网卡数

2. 接下来,执行 Deploy.ps1 脚本开始 VM 部署流程。

在部署过程中,你可能会看到如下截图中的错误。这些错误是由于在域控制器内部测试 Active Directory 的可用性而产生的,可以安全忽略。

Deploying VMs

3. 在 VM 部署完成后,输入 A 并按 Enter 键启动所有实验室 VM。

一旦启动,按 Enter 键完成脚本执行。

Starting VMs

4. 最后,切换到 Hyper-V 管理器,确保必要的基础架构已创建。

在下方,你可以看到所有实验室机器正在运行。

Inspecting the delivered infrastructure

设置 WAC 网关

你已成功部署了你的 VM,并且现在准备好交付所需的软件组件,即 Windows Admin Center (WAC)。

1. 在 Hyper-V 管理器中,导航至 MSLAB-DC VM 的 VM 属性,并在集成服务部分启用 Guest services。

启用后,点击应用以确认设置。

Enabling Guest services

2. 接下来,切换到 MSLAB-DC VM(域控制器),通过 PowerShell 运行以下脚本以下载并传输所需的安装包到目标机器。

$GatewayServerName="WACGW"
# 如果不存在,则下载 Windows Admin Center
if (-not (Test-Path -Path "$env:USERPROFILE\Downloads\WindowsAdminCenter.msi")){
    Start-BitsTransfer -Source https://aka.ms/WACDownload -Destination "$env:USERPROFILE\Downloads\WindowsAdminCenter.msi"
}

# 创建 PS 会话并将安装文件复制到远程服务器
Invoke-Command -ComputerName $GatewayServerName -ScriptBlock {Set-Item -Path WSMan:\localhost\MaxEnvelopeSizekb -Value 4096}
$Session=New-PSSession -ComputerName $GatewayServerName
Copy-Item -Path "$env:USERPROFILE\Downloads\WindowsAdminCenter.msi" -Destination "$env:USERPROFILE\Downloads\WindowsAdminCenter.msi" -ToSession $Session

# 安装 Windows Admin Center
Invoke-Command -Session $session -ScriptBlock {
    Start-Process msiexec.exe -Wait -ArgumentList "/i $env:USERPROFILE\Downloads\WindowsAdminCenter.msi /qn /L*v log.txt REGISTRY_REDIRECT_PORT_80=1 SME_PORT=443 SSL_CERTIFICATE_OPTION=generate"
} -ErrorAction Ignore

$Session | Remove-PSSession

# 将证书添加到受信任的根证书中
start-sleep 10
$cert = Invoke-Command -ComputerName $GatewayServerName -ScriptBlock {Get-ChildItem Cert:\LocalMachine\My\ |where subject -eq "CN=Windows Admin Center"}
$cert | Export-Certificate -FilePath $env:TEMP\WACCert.cer
Import-Certificate -FilePath $env:TEMP\WACCert.cer -CertStoreLocation Cert:\LocalMachine\Root\
Deploying WAC

3. 使用域控制器,打开一个网络浏览器,然后导航至 https://wacgw 以验证部署。在此时,使用最初定义/共享的凭据登录。

登录后,浏览器将重定向到 WAC 概览页面,在那里您可以看到所有已接入系统的列表(第四步)。

Signing in to WAC

4. 现在,请验证网关本身是否已按以下名称创建:wacgw.corp.contoso.com [网关],如下所示。

Verifying the WAC functionality

5. 此外,直接从域控制器(MSLAB-DC VM)运行以下代码,以在 WAC 和 Azure Stack HCI 节点之间建立受 Kerberos 限制的委派。

该代码可让您在连接到远程服务器时绕过凭据提示。

$GatewayServerName="WACGW"
# 配置基于资源的受限委派
$gatewayObject = Get-ADComputer -Identity $GatewayServerName
$computers = (Get-ADComputer -Filter {OperatingSystem -eq "Azure Stack HCI"}).Name

foreach ($computer in $computers){
    $computerObject = Get-ADComputer -Identity $computer
    Set-ADComputer -Identity $computerObject -PrincipalsAllowedToDelegateToAccount $gatewayObject
}
Setting up Kerberos constrained delegation

设置 Azure Stack HCI 集群

设置完 WAC 后,您已准备好开始了;一切都已准备好创建集群。

要设置 Azure Stack HCI 集群:

1. 在您的域控制器上的 WAC 上,单击“添加”,在弹出窗口中查找“服务器集群”,然后单击“创建新的”以开始创建新的集群。

Initiating creating a new cluster

2. 接下来,选择 Azure Stack HCI 作为集群类型,选择一个站点内的所有服务器作为服务器位置,然后单击“创建”以创建新的集群。

Creating the new cluster

3. 单击“下一步”跳过此步骤(1.1),因为您已经检查了先决条件,并且正在为 Azure Stack HCI 评估场景定制的环境中。

Checking the prerequisites

4. 现在,在提示时输入您的凭据。此时,请使用最初定义/通信的凭据。

Providing credentials

5. 添加要包括在群集中的所有服务器/节点。本教程使用一个四节点演示环境。如果您正在使用等效设置,请还要添加四个节点。

逐个输入下面列出的节点,并单击“添加”以添加每个节点。

# 主机列表 
azshci1.Corp.contoso.com
azshci2.Corp.contoso.com
azshci3.Corp.contoso.com
azshci4.Corp.contoso.com

添加完节点后,单击“下一步”继续。

A green check mark appears if the node was found successfully, as shown below.

Adding nodes

6. 接下来,单击“下一步”跳过此步骤(1.3),因为所有节点已经是预配域的成员。

Skipping joining a domain

7. 现在,单击“安装功能”以在所有节点上安装必要的组件。

Installing features to all nodes

以下是将要安装的以下功能列表。

Verifying the features to be installed

如果 Hyper-V 出现“未安装”警告?继续阅读并了解如何修复。

当一切都成功安装时,添加的节点旁边将显示绿色的复选标记。

Getting bugs on features installation

8. 在域控制器上运行以下命令以修复“未安装”错误。此命令在所有可用节点上安装缺失的功能(Hyper-V)。

$Servers="AzSHCI1","AzSHCI2","AzSHCI3","AzSHCI4"
Invoke-Command -ComputerName $Servers -ScriptBlock {Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -Online -NoRestart}
Enabling Hyper-V on all nodes

如果一切顺利,您将看到以下消息。

A restart is not required at this point but will be performed later.

Enabling Hyper-V

9. 回到 WAC,单击“刷新”以查看是否已安装所有功能。如果是,请单击“下一步”继续。

Verifying installed features

10. 点击“安装更新”按钮检查是否有待处理的更新并安装它们。

Installing updates

每个节点都会显示更新部署通知,如下所示。

Verifying deployment information for each node

11. 当所有节点都已更新并处于“就绪”模式时,点击“下一步”继续,如下所示。

Verifying all updates are installed

12. 点击“下一步”继续,因为您没有集成系统(仅有一个虚拟化测试实验室)。集成系统是由特定供应商(如 HPE、Dell 等)创建的预配置系统,专门设计用于运行 Azure Stack HCI 操作系统。

现在,会运行可用硬件更新的检查,但没有结果显示。

Skipping installing hardware updates

13. 完成所有安装后,点击“重新启动服务器”以重新启动所有节点。

Restarting all nodes

14. 当所有节点都处于“就绪”模式时,点击“下一步”继续,如下所示。

Verifying all nodes are running (in Ready mode)

15. 选择如何部署和管理主机网络。有两个可用的选项可供继续操作。但为了简单起见,在本教程中选择“手动配置主机网络”选项,然后点击“下一步:网络”。

Choosing how to deploy and manage host networking

配置主机网络

您已完成初始部分,满足了设置集群的所有先决条件。但您仍需处理所有网络方面。

1. 在网络下,等待自动网络验证检查完成,然后点击“下一步”继续。

Verifying network adapters

2. 选择要用于流量管理的网络适配器,可以是单个网络适配器,也可以是多个组合在一起。

但由于您正在连接两个网络适配器,请选择“管理的两个物理网络适配器组合”选项以及每个节点上相应的适配器。

Selecting network adapters to use for each node

3. 一旦选择所有网络适配器,请单击“应用”并进行测试以检查所选的网络适配器。

Testing network adapters

在提示时,单击“是”以继续创建组合适配器。

Confirming creating a teamed adapter

4. 现在,请等待更改成功应用,如下所示,然后单击“下一步”继续。

Verifying changes made to selected network adapters

5. 对于虚拟交换,选择第一个可用选项(将计算和存储一起创建一个虚拟交换),然后单击“下一步”。

此选项允许您处理通常通过虚拟交换路由的计算和存储流量。

Creating a virtual switch

6. 单击“下一步”继续,因为您的虚拟环境不支持远程直接内存访问(RDMA)

Skipping setting up RDMA

7. 为每个节点定义存储和计算流量的网络参数。

# 网络定义

# azshci1.Corp.contoso.com
SMB01 | 172.16.1.1 | 24 | 1
SMB02 | 172.16.1.2 | 24 | 1

# azshci2.Corp.contoso.com
SMB01 | 172.16.1.3 | 24 | 1
SMB02 | 172.16.1.4 | 24 | 1

# azshci3.Corp.contoso.com
SMB01 | 172.16.1.5 | 24 | 1
SMB02 | 172.16.1.6 | 24 | 1

# azshci4.Corp.contoso.com
SMB01 | 172.16.1.7 | 24 | 1
SMB02 | 172.16.1.8 | 24 | 1

定义后,单击“应用”和“测试”以检查每个网络参数。

Defining network parameters

8. 等待所有检查都通过,如下所示,然后点击“下一步:集群”来完成设置网络并继续进行集群。

Verifying networks

验证和创建集群

到目前为止,您只是进行了必要的准备工作。这次,您将负责验证并实际创建集群。

1. 在“验证集群”页面上,点击“验证”以验证所有先决条件是否满足。

Validating cluster

验证过程如下所示,需要一些时间来完成。

Verifying validation in progress

2. 一旦验证通过,点击“下一步”继续。

通常可以忽略警告,不应阻止集群的创建。

Ignoring warnings and continuing with creating the cluster

3. 分配以下集群名称(AzSHCI-Cluster)和集群IP(10.0.0.111),然后点击“创建集群”以创建新的集群。

Creating the cluster

如下所示,集群创建正在进行中。

Verifying the cluster creation is in progress

4. 一旦集群创建完成,点击“下一步:存储”以继续配置集群的存储设置。

Proceeding to storage settings

为集群配置存储

创建集群后,必须创建一个足够的存储系统来提供任何工作负载。为此,需要对硬盘进行一些准备工作,并且必须激活存储空间直接(S2D)。

1. 在“存储”选项卡下,点击“擦除驱动器”以擦除所有现有数据,使您可以从一个干净且空的系统开始。

Erasing drives

在提示时,点击“擦除驱动器”以确认擦除驱动器的操作。

Confirming drives erasure

2. 一旦擦除完成,点击“下一步”继续。

Continuing after drives erasure

3. 检查所有可用、可访问的驱动器及其在下面显示的列表中经过验证的兼容性,并单击“下一步”。

对于存储空间直通(S2D)操作,已经对存储进行了检查,以确保其适用性。

Viewing available drives

4. 现在,请等待存储验证过程完成以进行存储空间直通(S2D)操作,并单击“下一步”。

Validating storage

5. 单击“启用”按钮以启用集群的S2D。

请注意,配置S2D可能需要一些时间。

Enabling Storage Spaces Direct

6. 在启用S2D后,单击“下一步 SDN”。

Continuing to Software Defined Network (SDN)

7. 现在,单击“跳过”以跳过软件定义网络(SDN)基础设置。

SDN是一个相当复杂的主题,在本教程中无法涵盖。因此,为简化起见,您将跳过此配置。

Skipping setting up SDN

8. 单击“转到连接列表”以访问集群可用的所有连接。下面的输出表示集群已准备好供使用。

Accessing all available connections for the cluster

9. 最后,单击服务器集群对象(azshci-cluster.corp.contoso.com)以查看集群的信息。

Accessing the newly-created server cluster

下面是一个仪表板,您可以在其中查看集群的健康信息。

Viewing the cluster’s health information

结论

A properly working test lab is essential before deciding to purchase or integrate a product into operations, especially if the necessary expenses will be relatively high. And in this tutorial, you have learned how to set up an Azure Stack HCI testing environment.

从这一点开始,为什么不探索一下Azure Stack HCI提供的功能呢?有了Azure Stack HCI,您无需担心是否有适当的硬件。

Source:
https://adamtheautomator.com/azure-stack-hci/