本文提供在 Windows Server 上部署存储空间直连的分步说明。 若要将存储空间直连部署为 Azure 本地的一部分,请参阅 关于 Azure 本地。
提示
想要获取超融合基础设施? Microsoft建议从合作伙伴购买经过验证的硬件/软件 Azure 本地解决方案。 这些解决方案是依据我们的参考体系结构设计和汇编的,并且经过了验证,能够确保兼容性和可靠性,因此你可以快速起步和运行。 若要查阅兼容 Azure 本地的硬件/软件解决方案目录,请参阅 Azure 本地目录。
提示
可以使用 Hyper-V 虚拟机(包括在 Microsoft Azure 中)评估 Storage Spaces Direct,而无需额外硬件。 你可能还想要查看方便的 Windows Server 快速实验室部署脚本,我们用于培训目的。
开始之前
查看 存储空间直连硬件要求,以熟悉相关步骤的整体方法及重要说明。
收集以下信息:
部署选项:存储空间直通支持两种部署方式:超聚合和聚合,也称为解耦。 熟悉每个选项的优点,以确定哪个选项适合你。 本文中的步骤 1-3 适用于这两个部署选项。 只有融合部署才需要步骤 4。
服务器名称:了解并熟悉您组织中关于计算机、文件、路径和其他资源的命名策略。 需要预配多个服务器,每个服务器都有唯一名称。
请熟悉组织的域名命名和域关联策略。 您需要将服务器加入到您的域,并需要指定域名。
RDMA 网络:有两种类型的 RDMA 协议:iWarp 和 RoCE。 请记下你的网络适配器使用哪一种。如果是 RoCE,还请记下版本(v1 或 v2)。 对于 RoCE,还请记下架顶式交换机的型号。
VLAN ID:请注意用于管理服务器上的 OS 网络适配器的 VLAN ID(如果有)。 应能够从网络管理员获取此信息。
步骤 1:部署 Windows Server
步骤 1.1:安装操作系统
首先,在群集中的每个服务器上安装 Windows Server。 存储空间直通 (Storage Spaces Direct) 需要 Windows Server Datacenter Edition。 可以使用 Server Core 安装选项或带桌面体验的服务器。
使用安装向导安装 Windows Server 时,可以在 Windows Server (引用 Server Core)和 Windows Server(具有桌面体验的服务器)之间进行选择,这相当于 Windows Server 2012 R2 中提供的 完全 安装选项。 如果未选择,则会收到“服务器核心安装”选项。 有关详细信息,请参阅安装服务器核心。
步骤 1.2:连接到服务器
本指南重点介绍服务器核心安装选项,并从单独的管理系统远程部署和管理。 管理系统必须具有:
- 至少与其管理的服务器一样新的 Windows Server 或 Windows 10 版本,并包含最新更新。
- 网络连接到它所管理的服务器。
- 已加入到同一域或完全受信任的域。
- Hyper-V 和故障转移群集的远程服务器管理工具 (RSAT) 和 PowerShell 模块。 RSAT 工具和 PowerShell 模块在 Windows Server 上可用,并且无需安装其他功能便可安装。 还可以在 Windows 10 管理 PC 上安装远程服务器管理工具。
在管理系统上安装故障转移群集和 Hyper-V 管理工具。 可以使用 “添加角色和功能 ”向导通过服务器管理器执行此作。 在 “功能 ”页上,选择 “远程服务器管理工具”,然后选择要安装的工具。
进入 PowerShell 会话,并使用要连接的服务器名称或节点的 IP 地址。 执行此命令后,系统会提示输入密码。 输入在设置 Windows 时指定的管理员密码。
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
这里有一个在脚本中以更有用方式做同样事情的示例:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
提示
如果要从管理系统远程部署,可能会收到错误,如 WinRM 无法处理请求。 若要修复此错误,请使用 Windows PowerShell 将每台服务器添加到管理计算机上的“受信任的主机”列表:
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server01 -Force
受信任的主机列表支持通配符,例如 Server*。
- 若要查看受信任的主机列表,请键入
Get-Item WSMAN:\Localhost\Client\TrustedHosts。 - 若要清空该列表,请键入
Clear-Item WSMAN:\Localhost\Client\TrustedHost。
步骤 1.3:加入域并添加域帐户
需要将服务器加入一个域并使用每台服务器的 Administrators 组中的 Active Directory 域服务域帐户,来管理 Storage Spaces Direct。
在管理系统中,使用管理员权限打开 PowerShell 控制台。 使用 Enter-PSSession 连接到每个服务器并运行以下 cmdlet,替换你自己的计算机名称、域名和域凭据:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
如果存储帐户不是域管理员组的成员,请将存储帐户添加到每个节点上的本地管理员组,或添加用于存储管理员的组。 可以使用以下命令,或创建 PowerShell 脚本来执行此步骤。 有关详细信息,请参阅 使用 PowerShell 将域用户添加到本地组。
Net localgroup Administrators <Domain\Account> /add
步骤 1.4:安装角色和功能
下一步是通过 Windows Admin Center、 服务器管理器或 PowerShell 在每个服务器上安装服务器角色。 下面是要安装的角色:
- 故障转移群集
- Hyper-V
- 文件服务器(如果要托管任何文件共享,例如用于融合部署)
- 数据中心桥接(如果使用 RoCEv2 而不是 iWARP 网络适配器)
- RSAT-Clustering-PowerShell
- Hyper-V-PowerShell
若要通过 PowerShell 安装角色,请使用 Install-WindowsFeature cmdlet。 可以在单个服务器上使用它,如下所示:
Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
若要同时在群集中的所有服务器上运行命令,请运行此脚本,该脚本修改脚本开头的变量列表以适应环境。
# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"
$FeatureList = "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
# This part runs the Install-WindowsFeature cmdlet on all servers in $ServerList, passing the list of features into the script block with the "Using" scope modifier so you don't have to hard-code them here.
Invoke-Command ($ServerList) {
Install-WindowsFeature -Name $Using:Featurelist
}
步骤 2:配置网络
如果要在虚拟机中部署存储空间直连,请跳过此部分。
存储空间直通需要在群集中的服务器之间建立高带宽、低延迟的网络。 至少需要 10-GbE 网络,建议使用远程直接内存访问(RDMA)。 你可以使用 iWARP 或 RoCE,只要它们具有与你的操作系统版本匹配的 Windows Server 徽标,但 iWARP 更易于设置。
重要
根据您的网络设备,尤其是使用 RoCE v2 的情况下,您可能需要配置顶架交换机。 正确地配置交换机对于确保存储空间直通的可靠性和性能非常重要。
Windows Server 2016 在 Hyper-V 虚拟交换机中引入了交换机嵌入式组合 (SET)。 使用此功能,可以在使用 RDMA 时对所有网络流量使用相同的物理网络接口卡(NIC)端口,从而减少所需的物理 NIC 端口数。 对存储空间直通使用交换机嵌入式组合。
- 已切换:必须正确配置网络交换机来处理带宽和网络类型。 如果使用实现 RoCE 协议的 RDMA,则网络设备和交换机配置更为重要。
- 无开关:可以使用直接连接来互连节点,避免使用交换机。 每个节点都必须与群集的其他每个节点建立直接连接。
有关为存储空间直通设置网络的说明,请参阅 Windows Server 2016 和 2019 RDMA 部署指南。
步骤 3:配置存储空间直通
在运行与要配置的服务器相同的版本的管理系统上执行以下步骤。 不要使用 PowerShell 会话远程运行这些步骤。 而是使用管理权限在管理系统的本地 PowerShell 会话中运行它们。
步骤 3.1:清理驱动器
在启用存储空间直通之前,请确保驱动器为空,且没有旧分区或其他数据。 运行以下脚本,替换计算机名称以删除任何旧分区或其他数据。
重要
此脚本永久删除除作系统启动驱动器以外的驱动器上的任何数据!
# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"
foreach ($server in $serverlist) {
Invoke-Command ($server) {
# Check for the Azure Temporary Storage volume
$azTempVolume = Get-Volume -FriendlyName "Temporary Storage" -ErrorAction SilentlyContinue
If ($azTempVolume) {
$azTempDrive = (Get-Partition -DriveLetter $azTempVolume.DriveLetter).DiskNumber
}
# Clear and reset the disks
$disks = Get-Disk | Where-Object {
($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -ne "RAW")
}
$disks | ft Number,FriendlyName,OperationalStatus
If ($disks) {
Write-Host "This action will permanently remove any data on any drives other than the operating system boot drive!`nReset disks? (Y/N)"
$response = read-host
if ( $response.ToLower() -ne "y" ) { exit }
$disks | % {
$_ | Set-Disk -isoffline:$false
$_ | Set-Disk -isreadonly:$false
$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false -verbose
$_ | Set-Disk -isreadonly:$true
$_ | Set-Disk -isoffline:$true
}
#Get-PhysicalDisk | Reset-PhysicalDisk
}
Get-Disk | Where-Object {
($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -eq "RAW")
} | Group -NoElement -Property FriendlyName
}
}
输出类似于以下示例,其中 Count 是每个服务器中每个模型的驱动器数:
Count Name PSComputerName
----- ---- --------------
4 ATA SSDSC2BA800G4n Server01
10 ATA ST4000NM0033 Server01
4 ATA SSDSC2BA800G4n Server02
10 ATA ST4000NM0033 Server02
4 ATA SSDSC2BA800G4n Server03
10 ATA ST4000NM0033 Server03
4 ATA SSDSC2BA800G4n Server04
10 ATA ST4000NM0033 Server04
步骤 3.2:验证群集
在此步骤中,将运行群集验证工具,以确保正确配置服务器节点,以便使用存储空间直通创建群集。 在创建群集之前运行群集验证(Test-Cluster)时,它会运行测试,验证配置是否适合用作故障转移群集。 以下示例直接使用 -Include 参数,然后指定特定的测试类别。 此方法可确保在验证中包含 Storage Spaces Direct 的特定测试。
使用以下 PowerShell 命令验证一组用作存储空间直通群集的服务器。
Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
步骤 3.3:创建群集
在此步骤中,你将使用以下 PowerShell cmdlet,创建一个群集,其中包含在上一步中为群集创建验证的节点。
创建群集时,会收到一条警告,指出“创建群集角色时出现问题,可能会阻止其启动。有关详细信息,请查看下面的报表文件。可以安全地忽略此警告。 出现此警告是因为群集仲裁上没有可用的磁盘。 在创建群集后配置文件共享见证或云见证。
注意
如果服务器使用静态 IP 地址,请修改以下命令,通过添加以下参数并指定 IP 地址来反映静态 IP 地址: -StaticAddress <X.X.X.X>
在以下命令中,将 ClusterName 占位符替换为唯一且少于 15 个字符的 NetBIOS 名称。
New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage
创建群集后,群集名称的域名系统(DNS)条目可能需要一段时间才能传播。 时间取决于环境和 DNS 复制配置。 如果解析群集未成功,则可以使用作为群集活动成员的节点的计算机名称,而不是群集名称。
步骤 3.4:配置群集见证
为群集配置见证,以便拥有三台或更多服务器的群集可以在两台服务器故障或脱机时仍能正常运行。 双服务器部署需要群集见证;否则,如果任一服务器脱机,另一台服务器将变为不可用。 通过这些系统,可以使用文件共享作为见证或使用云见证。 有关详细信息,请参阅部署仲裁见证。
步骤 3.5:启用存储空间直通
创建群集后,请使用 Enable-ClusterStorageSpacesDirect PowerShell cmdlet。 此 cmdlet 将存储系统置于存储空间直通模式,并自动执行以下任务:
创建池:创建一个名为“S2D on Cluster1”的大型池。
配置存储空间直通缓存:如果有多种媒体(驱动器)类型可供存储空间直通使用,它会将速度最快的驱动器用作缓存设备(在大多数情况下负责读写)。
创建两个层作为默认层:一个层称为“容量”,另一层称为“性能”。 cmdlet 分析设备,并通过组合设备类型和恢复能力来配置每个层级。
在管理系统中,打开提升的 PowerShell 窗口并运行以下命令。 群集名称是在前面的步骤中创建的群集的名称。 如果在其中一个节点上本地运行此命令,则不需要该 -CimSession 参数。
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
此命令启用存储空间直连。 可以选择使用节点名称而不是群集名称。 使用节点名称可能更可靠,因为新创建的群集名称可能会出现 DNS 复制延迟。
此命令完成后,可能需要几分钟时间,系统就可以创建卷了。
步骤 3.6:创建卷
使用 New-Volume cmdlet 获得最快、最直接的体验。 此单个 cmdlet 会自动创建虚拟磁盘、分区并设置其格式。 它创建一个匹配名称的卷,并在一个简单的步骤中将其添加到群集共享卷中。
有关详细信息,请参阅 在 Storage Spaces Direct 中创建卷。
步骤 3.7:(可选)启用 CSV 缓存
可以使用系统内存(RAM)作为直写式块级缓存来启用群集共享卷(CSV)缓存,用于读取 Windows 缓存管理器未缓存的操作。 此功能可以提高 Hyper-V 等应用程序的性能。 CSV 缓存可提升读取请求的性能,也可用于 Scale-Out 文件服务器方案。
启用 CSV 缓存可减少可用于在超聚合群集上运行 VM 的内存量,因此需要将存储性能与 VHD 可用的内存进行平衡。
若要设置 CSV 缓存的大小,请使用对存储群集具有管理员权限的帐户在管理系统上打开 PowerShell 会话。 使用以下脚本,根据需要更改 $ClusterName 和 $CSVCacheSize 变量(此示例为每个服务器设置 2 GB CSV 缓存):
$ClusterName = "StorageSpacesDirect1"
$CSVCacheSize = 2048 #Size in MB
Write-Output "Setting the CSV cache..."
(Get-Cluster $ClusterName).BlockCacheSize = $CSVCacheSize
$CSVCurrentCacheSize = (Get-Cluster $ClusterName).BlockCacheSize
Write-Output "$ClusterName CSV cache size: $CSVCurrentCacheSize MB"
有关详细信息,请参阅使用 CSV 内存中读取缓存。
步骤 3.8:为超融合部署部署虚拟机
如果要部署超融合群集,最后一步是在存储空间直通群集上预配虚拟机。
将虚拟机的文件存储在系统的 CSV 命名空间(例如:c:\ClusterStorage\Volume1)上,就像故障转移群集上的群集 VM 一样。
可以使用现成工具或其他工具来管理存储和虚拟机,例如 System Center Virtual Machine Manager。
步骤 4:部署横向扩展文件服务器以实现融合解决方案
如果要部署聚合解决方案,下一步是创建 Scale-Out 文件服务器实例并设置文件共享。
提示
如果要部署超聚合群集,则已完成且不需要本部分。
选择以下选项卡之一,了解如何使用故障转移群集管理器或 PowerShell 创建 Scale-Out 文件服务器角色。
若要通过故障转移群集管理器创建 Scale-Out 文件服务器角色,请执行以下步骤:
在故障转移群集管理器中,选择群集,转到“角色”,然后选择“配置角色…”。
此时会显示高可用性向导。在选择角色页面上,选择文件服务器。
在“ 文件服务器类型 ”页上,为 应用程序数据选择Scale-Out 文件服务器。
在“客户端访问点”页上,键入扩展文件服务器的名称。
转到角色页面,确认在您创建的群集文件服务器角色旁边的状态列中是否显示正在运行,从而验证角色是否已成功设置,如图 1 所示。
图 1 显示状态为“正在运行”的横向扩展文件服务器的故障转移群集管理器
注意
创建群集角色后,网络传播延迟可能会阻止在群集角色上创建文件共享数分钟或可能更长的时间。
创建文件共享
创建虚拟磁盘并将其添加到 CSV 后,请在它们上创建文件共享。 为每个虚拟磁盘的每个 CSV 创建一个文件共享。 System Center Virtual Machine Manager(VMM)是执行此任务的最简单方法,因为它可为你处理权限。 如果你的环境中没有它,则可以使用 Windows PowerShell 部分自动执行部署。
使用本节中包含的脚本部分自动执行创建组和共享的过程。 脚本是为 Hyper-V 工作负荷编写的。 如果要部署其他工作负荷,可能需要修改设置,或者在创建共享后执行其他步骤。 例如,如果使用 Microsoft SQL Server,则必须向 SQL Server 服务帐户授予对共享和文件系统的完全控制。
注意
添加群集节点时,需要更新组成员身份,除非使用 System Center Virtual Machine Manager 创建共享。
若要使用 PowerShell 脚本创建文件共享,请执行以下步骤:
展开以下每个部分,并将每个内容保存为同一文件夹中具有相关名称的单独
.ps1文件,例如C:\Scripts\SetupSMBSharesWithHyperV,在文件服务器群集的一个节点上:展开此部分 ADGroupSetup.ps1。
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $HyperVObjectADGroupSamName ) # Add and import needed features if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-AD-PowerShell" } if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-Clustering-PowerShell" } Import-Module -Name ActiveDirectory Import-Module -Name FailoverClusters # Check for group and create if necessary $adGroup = @() $adGroup = Get-ADGroup -Filter {samAccountName -eq $HyperVObjectADGroupSamName} if ($adGroup.Count -ne 1) { $adGroup = New-ADGroup -DisplayName $HyperVObjectADGroupSamName -Name $HyperVObjectADGroupSamName -SamAccountName $HyperVObjectADGroupSamName -GroupScope Global -GroupCategory Security -PassThru } # Build array of Hyper-V servers $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name | Get-ADComputer # Add nodes to group if not already members for ($i = 0; $i -lt $HyperVNodes.Count; $i++) { if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVNodes[$i].Name)) { Add-ADGroupMember $adGroup -Members $HyperVNodes[$i] } } # Add Hyper-V cluster object to group if not already present if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVClusterName)) { Add-ADGroupMember $adGroup -Members (Get-ADComputer $HyperVClusterName) }展开此部分,以查看 FileShareSetup.ps1。
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $ScaleOutFSName, [Parameter(Mandatory=$true)] [string] $ShareName, [Parameter(Mandatory=$true)] [string] $HyperVObjectADGroupSamName, [int] $CSVVolumeNumber = 1, [string] $VHDFolderName = "VHDs", [string] $VMFolderName = "VMs" ) # Create the share folder New-Item -ItemType Directory -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName # Create folders in share New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VHDFolderName" New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VMFolderName" # Get the domain name $DomainName = Get-Content env:userdnsdomain # Grant the Hyper-V group permission $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName --% /Grant $DomainName\$HyperVObjectADGroupSamName" $cmdString += ':(CI)(OI)F' Invoke-Expression -Command $cmdString # Grant domain admins permission $DomainAdmins = "Domain Admins" $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName" $cmdString += ' --% /Grant "' $cmdString += "$DomainName\$DomainAdmins" $cmdString += ':(CI)(OI)F"' Invoke-Expression -Command $cmdString # Remove inheritance (optional) ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName /Inheritance:R # Create new share and set matching Share permissions $FullAccess = ("$DomainName\$HyperVObjectADGroupSamName","$DomainName\Domain Admins") New-SmbShare -Name $ShareName -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName -FullAccess $FullAccess展开此部分以查看 KCDSetup.ps1。
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $ScaleOutFSName, [switch] $EnableLM = $true ) # Add and import needed features if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-AD-PowerShell" } if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-Clustering-PowerShell" } Import-Module -Name ActiveDirectory # Build array of Hyper-V servers $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name # Enable LM and CD $SMBServerAD = Get-ADComputer -Filter {Name -eq $ScaleOutFSName} $AllowedToDelegateToSMB = @( ("cifs/"+$SMBServerAD.Name), ("cifs/"+$SMBServerAD.DNSHostName)) for ($serverCounter = 0; $serverCounter -lt $HyperVNodes.Count; $serverCounter++) { $AllowedToDelegateTo = $AllowedToDelegateToSMB if ($EnableLM) { for ($delegateCounter = 0; $delegateCounter -lt $HyperVNodes.Count; $delegateCounter++) { if ($delegateCounter -ne $serverCounter) { $delegationServer = $HyperVNodes[$delegateCounter] | Get-ADComputer $AllowedToDelegateTo += @( ("Microsoft Virtual System Migration Service/"+$delegationServer.Name), ("Microsoft Virtual System Migration Service/"+$delegationServer.DNSHostName)) } } } ($HyperVNodes[$serverCounter] | Get-ADComputer) | Set-ADObject -Add @{"msDS-AllowedToDelegateTo"=$AllowedToDelegateTo} }在管理系统上使用域管理员凭据打开 Windows PowerShell 会话。 使用脚本
ADGroupSetup.ps1为 Hyper-V 计算机对象创建 Active Directory 组。 根据环境更改变量的值:# Replace the values of these variables $HyperVClusterName = "Compute01" $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#> $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" # Start of script itself CD $ScriptFolder .\ADGroupSetup.ps1 -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName -HyperVClusterName $HyperVClusterName使用脚本
FileShareSetup.ps1为每个 CSV 创建共享,并向域管理员组和计算群集授予共享的管理权限。# Replace the values of these variables $StorageClusterName = "StorageSpacesDirect1" $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#> $SOFSName = "SOFS" $SharePrefix = "Share" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" # Start of the script itself CD $ScriptFolder Get-ClusterSharedVolume -Cluster $StorageClusterName | ForEach-Object { $ShareName = $SharePrefix + $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume") Write-host "Creating share $ShareName on "$_.name "on Volume: " $_.SharedVolumeInfo.friendlyvolumename .\FileShareSetup.ps1 -HyperVClusterName $StorageClusterName -CSVVolumeNumber $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume") -ScaleOutFSName $SOFSName -ShareName $ShareName -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName }启用 Kerberos 约束委派以管理远程场景并提高实时迁移的安全性。 在存储群集的某个节点上,使用
KCDSetup.ps1脚本。 下面是该脚本的一个小包装器:$HyperVClusterName = "Compute01" $ScaleOutFSName = "SOFS" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" CD $ScriptFolder .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLM重启 Hyper-V 群集中的所有节点,以确保新的 Kerberos 约束委派设置生效。 当节点重新联机时,可以开始将虚拟机部署到创建的文件共享。