创建和使用 Azure 共享磁盘
你的组织计划使用 Azure 共享磁盘实现 Windows 虚拟机 (VM) 的故障转移群集。 你现在需要评估如何创建 Azure 共享磁盘,并检查在现有 Windows 和 Linux VM 上使用共享磁盘的步骤。
创建 Azure 共享磁盘
可以使用各种工具创建 Azure 共享磁盘。
使用 Azure 门户
登录 Azure 门户,然后搜索并选择“磁盘”。
选择“+ 创建”以创建托管磁盘,然后在“基本信息”选项卡上提供以下信息:
设置 说明 订阅 选择订阅。 资源组 选择现有资源组,或创建一个新的资源组。 磁盘名称 为磁盘提供描述性名称。 区域 选择要部署 Azure 共享磁盘的区域。 可用性区域 (可选)选择可用性区域。 源类型 选择现有磁盘创建源或选择“无”。 大小 为共享磁盘选择支持的大小,例如 1024 GiB、P30。 在“加密”选项卡上,使用平台管理的密钥加密磁盘,或提供自己的存储在 Azure 密钥保管库中的磁盘加密集。
在“网络”选项卡上,为 Azure 共享磁盘提供连接方法。
在“高级”选项卡上,对“启用共享磁盘”选中“是”复选框,然后选择“最大共享数”。
在“标记”选项卡上,使用名称/值参数提供资源分类。 这些参数可帮助你跟踪与应用了相同标记的类似资源关联的成本。
在“审阅 + 创建”选项卡上,验证你的条目,然后选择“创建”。
也可使用 Azure PowerShell、Azure CLI 或 Azure 资源管理器模板(ARM 模板)创建共享磁盘。
使用 PowerShell
$dataDiskConfig = New-AzDiskConfig -Location "WestCentralUS" -DiskSizeGB 1024 -AccountType Premium\_LRS -CreateOption Empty -MaxSharesCount 2
New-AzDisk -ResourceGroupName "myResourceGroup" -DiskName "mySharedDisk" -Disk $dataDiskConfig
使用 Azure CLI
az disk create -g myResourceGroup -n mySharedDisk --size-gb 1024 -l westcentralus --sku Premium_LRS --max-shares 2
使用 ARM 模板
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataDiskName": {
"type": "string",
"defaultValue": "mySharedDisk"
},
"dataDiskSizeGB": {
"type": "int",
"defaultValue": 1024
},
"maxShares": {
"type": "int",
"defaultValue": 2
}
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"name": "[parameters('dataDiskName')]",
"location": "[resourceGroup().location]",
"apiVersion": "2019-07-01",
"sku": {
"name": "Premium_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": "[parameters('dataDiskSizeGB')]",
"maxShares": "[parameters('maxShares')]"
}
}
]
}
将 Azure 共享磁盘与 VM 配合使用
现在你已了解如何创建 Azure 共享磁盘,请将磁盘连接到 VM 以测试共享功能。 使用以下 PowerShell 和 Azure CLI 命令可在两个 VM 上连接 Azure 共享磁盘。
使用 PowerShell
$resourceGroup = "<your resource group name>"
$location = "<region of your shared disk>"
$ppgName = "<your proximity placement groups name>"
$vm = Get-AzVM -ResourceGroupName "<your resource group name>" -Name "<your VM node name>"
$dataDisk = Get-AzDisk -ResourceGroupName $resourceGroup -DiskName "<your shared disk name>"
$vm = Add-AzVMDataDisk -VM $vm -Name "<your shared disk name>" -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun "<available LUN - check disk setting of the VM>"
Update-AzVm -VM $vm -ResourceGroupName $resourceGroup
使用 Azure CLI
diskId=$(az disk show -g "<your resource group name>" -n "<your shared disk name>" --query 'id' -o tsv)
az vm disk attach -g "<your resource group name>" --vm-name "<your VM node name>" --name $diskId
使用 Azure 共享磁盘创建故障转移群集
现在你已了解如何将 VM 连接到共享磁盘,便可以创建故障转移群集。
若要实现工作负荷的高可用性,请创建由多台 Windows Server 计算机组成的故障转移群集。 如果作为故障转移群集一部分的服务器发生故障或不可用,则相同故障转移群集中的另一台服务器将接管故障服务器的服务。 此过程称为故障转移,它将对访问服务的客户端造成的服务中断的影响降至最低。
故障转移群集组件
下表介绍故障转移群集组件。
组件 | 描述 |
---|---|
节点 | 作为故障转移群集成员的 Windows Server VM。 |
客户端 | 使用在故障转移群集中运行的高可用性服务和应用程序的计算机。 |
网络 | 实现使用群集工作负荷的节点和计算机之间的通信。 使用部署 VM 的同一虚拟网络。 如果需要隔离群集通信,请创建更多子网。 |
群集角色 | 在群集节点上运行的高可用性角色或服务。 |
资源 | 由故障转移群集管理的物理或逻辑元素,例如共享文件夹、磁盘或 IP 地址。 |
群集存储 | 一个 Azure 共享磁盘,使每个群集节点都可以访问高可用性共享存储。 |
基础结构要求
故障转移群集依赖于基础结构服务。 Windows Server 支持多域群集和工作组群集。 下表介绍故障转移群集所需的网络基础结构元素。
元素 | 说明 |
---|---|
DNS | 群集中的服务器使用域名系统 (DNS) 来进行名称解析。 使用安装在 Azure VM 中的自定义 DNS 角色。 |
Active Directory | SQL Server 故障转移群集实例 (FCI) 要求这两个 VM 都是 Microsoft Entra 域服务的成员(Microsoft Entra 域服务)。 |
管理帐户 | 在所有群集服务器上都具有管理权限的帐户。 |
初始化两个 VM 上的共享磁盘
在共享访问权限的所有 VM 上,使用主启动记录 (MBR) 或 GUID 分区表 (GPT) 分区样式初始化连接的磁盘。 还应使用 NTFS 文件格式格式化磁盘。
若要开始创建群集,必须在将加入群集的所有 VM 上安装故障转移群集功能。 使用以下命令可安装 Windows 故障转移群集服务:
Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools
故障转移群集验证
群集验证是故障转移群集生命周期的关键组件。 在初始部署之前以及进行一系列配置更改(例如修改仲裁设置)之后,可以使用它。 它还有助于解决性能和稳定性问题。 使用故障转移群集管理器或 Windows PowerShell 可运行验证。 这两个程序都会运行多个测试,以确保采用受支持的方式配置群集组件。
使用故障转移群集管理器或 PowerShell 可验证群集创建的先决条件。 以下示例在名为 node1 和 node2 的计算机上运行所有群集测试:
Test-Cluster –Node node1, node2