本文提供在 Windows Server 上部署 儲存空間直接存取 的逐步指示。 若要將 Storage Spaces Direct 部署為 Azure Local 的一部分,請參閱 About Azure Local。
Tip
想要取得超融合式基礎結構嗎? Microsoft建議從合作夥伴購買已驗證的硬體/軟體 Azure 本機解決方案。 這些解決方案會針對我們的參考架構進行設計、組合及驗證以確保相容性和可靠性,因此您可以快速地啟動並執行。 若要查看適用於 Azure 本機的硬體和軟體解決方案目錄,請參閱 Azure 本機目錄。
Tip
您可以在 Microsoft Azure,包括在 Hyper-V 虛擬機器上,來評估不需硬體的 Storage Spaces Direct。 你也可以參考我們用於訓練的 Windows Server 快速實驗室部署腳本。
在您開始之前
檢閱 儲存空間直接存取硬體需求 ,以熟悉與某些步驟相關聯的整體方法和重要注意事項。
收集以下資訊:
部署選項:Storage Spaces Direct 支援 兩個部署選項:超融合和融合(也稱為分解)。 熟悉每種方案的優點,才能決定哪一個最適合你。 本文中的步驟 1 到 3 適用於兩種部署選項。 步驟 4 則只有融合式部署才需要。
伺服器名稱:熟悉組織對電腦、檔案、路徑和其他資源的命名原則。 你需要配置多台伺服器,每個伺服器都有獨特名稱。
網域名稱:熟悉貴組織的網域命名和網域加入政策。 你要把伺服器加入你的網域,然後你要指定網域名稱。
RDMA 網路:RDMA 協定有兩種類型:iWarp 和 RoCE。 請記下網路介面卡的使用情況,如果使用 RoCE,還請記下該版本 (v1 或 v2)。 若為 RoCE,也請記下 Top-of-Rack 交換器的型號。
VLAN ID:請注意伺服器上管理作業系統網路介面卡(若有的話)使用的 VLAN ID。 你應該能從你的網路管理員那裡取得這些資訊。
步驟 1︰部署 Windows Server
步驟 1.1:安裝作業系統
首先,在叢集中的每台伺服器上安裝 Windows Server。 儲存空間直接存取需要 Windows Server Datacenter Edition。 你可以使用Server Core安裝選項或Server with Desktop Experience。
當你透過設定精靈安裝 Windows Server 時,你可以在 Windows Server (指 Server Core)或 Windows Server(Server with Desktop Experience)之間選擇,後者相當於 Windows Server 2012 R2 中 的完整安裝選項 。 如果你不選,可以選擇 Server Core 安裝選項。 如需詳細資訊,請參閱安裝 Server Core。
步驟 1.2:連線到伺服器
本指南重點介紹 Server Core 安裝選項,以及如何從獨立管理系統遠端部署和管理。 管理系統必須具備:
- 至少與它所管理的伺服器一樣新的 Windows Server 或 Windows 10 版本,並且經過最新更新。
- 其所管理之伺服器的網路連線能力。
- 加入相同網域或充分信任的網域。
- 適用於 Hyper-V 和容錯移轉叢集的遠端伺服器管理工具 (RSAT) 和 PowerShell 模組。 Windows Server 上有 RSAT 工具和 PowerShell 模組,可加以安裝但不安裝其他功能。 您也可以在 Windows 10 管理電腦上安裝遠端伺服器管理工具。
在管理系統上安裝故障轉移叢集和 Hyper-V 管理工具。 你可以透過伺服器管理員的 新增角色與功能 精靈來完成這件事。 在 功能 頁面,選擇 遠端伺服器管理工具,然後選擇要安裝的工具。
進入 PowerShell 會話,並使用您要連線之節點的伺服器名稱或 IP 位址。 執行此指令後,系統會提示你輸入密碼。 輸入你設定 Windows 時指定的管理員密碼。
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
這裡有一個在腳本中更實用的方式做同樣事情的例子:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Tip
如果你是從管理系統遠端部署,可能會遇到 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:加入網域並新增網域帳戶
要管理 Storage Spaces Direct,你需要將伺服器加入一個網域,並在每台伺服器的管理員群組中使用 Active Directory Domain Services 網域帳號。
從管理系統以系統管理員權限開啟 PowerShell 主控台。 使用 Enter-PSSession 連線到每部伺服器,然後執行下列 Cmdlet,並替換成您自己的電腦名稱、網域名稱和網域認證:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
如果您的儲存空間管理員帳戶不是 "Domain Admins" 群組的成員,請將儲存空間管理員帳戶新增至每個節點上的本機 Administrators 群組,或新增您用於儲存空間管理員的群組。 您可以使用下列命令,或建立PowerShell腳本來執行此步驟。 欲了解更多資訊,請參閱 使用 PowerShell 將網域使用者加入本地群組。
Net localgroup Administrators <Domain\Account> /add
步驟 1.4:安裝角色和功能
下一步是透過 Windows 管理中心、 伺服器管理員或 PowerShell 在每台伺服器上安裝伺服器角色。 以下是要安裝的角色:
- 容錯叢集系統
- Hyper-V
- 檔案伺服器 (如果您想要提供任何檔案共享,例如用於融合式部署)
- 資料中心橋接(如果您使用 RoCEv2 而非 iWARP 網路介面卡)
- RSAT-Clustering-PowerShell
- Hyper-V-PowerShell
要透過 PowerShell 安裝角色,請使用 Install-WindowsFeature 指令。 您可以在單一伺服器上以如下方式加以使用:
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:設定網路
如果您要在虛擬機器內部署 Storage Spaces Direct,請略過本節。
"Storage Spaces Direct" 需要叢集中的伺服器之間有高頻寬、低延遲的網路。 你需要至少 10 GbE 網路,且建議使用遠端直接記憶體存取(RDMA)。 只要 iWARP 具有符合作系統版本的 Windows Server 標誌,您就可以使用 iWARP 或 RoCE,但 iWARP 更容易設定。
Important
根據你的網路設備,特別是 RoCE v2,你可能需要配置頂層交換機。 正確的交換器設定很重要,如此才能確保儲存空間直接存取的可靠性和效能。
Windows Server 2016 在 Hyper-V 虛擬交換器內引入了交換器嵌入式小組(Switch Embedded Teaming,SET)。 此功能允許您在使用 RDMA 的同時,對所有網路流量使用相同的實體網路介面卡(NIC)埠,減少所需的實體網卡埠數。 使用 switch 嵌入式分組來直接處理儲存空間。
- 已切換:您必須妥善配置交換器以處理頻寬與網路類型。 如果您使用實作 RoCE 通訊協定的 RDMA,網路裝置和交換器設定就更加重要。
- 無開關:你可以透過直接連接來互連節點,避免使用交換器。 每個節點必須與叢集中其他所有節點保持直接連線。
如需如何為儲存空間直接存取設定網路功能的指示,請參閱 Windows Server 2016 和 2019 RDMA 部署指南。
步驟 3:設定 Storage Spaces Direct 儲存空間
在執行與你設定伺服器相同版本的管理系統上執行以下步驟。 不要用 PowerShell 工作階段遠端執行這些步驟。 相反地,可以在管理系統的本地 PowerShell 會話中執行,並取得管理員權限。
步驟 3.1:清除磁碟機
在啟用 Storage Spaces Direct 之前,請確保你的硬碟是空的,沒有舊分割區或其他資料。 執行以下腳本,替換電腦名稱以移除舊的分割區或其他資料。
Important
這個腳本會永久移除作業系統開機碟以外的所有硬碟資料!
# 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:驗證叢集
在此步驟中,你會執行叢集驗證工具,確保伺服器節點正確配置,能使用 Storage Spaces Direct 建立叢集。 當你在建立叢集前執行叢集驗證(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 指令碼,建立一個叢集,包含你在前一步驗證過的叢集建立節點。
當你建立叢集時,會跳出警告說「建立叢集角色時出現問題,可能會妨礙啟動。欲了解詳細資訊,請參閱下方報告檔案。」你可以放心忽略這個警告。 這是因為沒有磁碟可供叢集仲裁使用。 建立叢集後,設定檔案共享見證或雲端見證。
Note
若伺服器使用靜態 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 指令程式。 此指令小程式會將儲存系統置於儲存空間直接模式,並自動執行以下任務:
建立一個池:建立一個大型池,名稱類似「S2D on Cluster1」。
配置儲存空間直接快取:若有多種媒體類型可用於儲存空間直接,則可啟用最快媒體作為快取裝置(多數情況下提供讀寫功能)。
預設建立了兩個等級:一個叫「容量」,另一個叫「效能」。 此 Cmdlet 會分析裝置,並使用混合的裝置類型和復原功能來設定每一層。
從管理系統開啟具有提升權限的 PowerShell 視窗,執行以下指令。 叢集名稱是您在先前步驟中建立的叢集名稱。 如果你在其中一個節點本地執行這個指令,就不需要這個 -CimSession 參數。
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
此指令啟用儲存空間直接存取。 你可以選擇使用節點名稱而非叢集名稱。 使用節點名稱可能更可靠,因為新建立的叢集名稱可能會發生 DNS 複寫延遲。
當這個指令完成後(可能需要幾分鐘),系統就準備好建立磁碟區了。
步驟 3.6:建立磁碟區
使用 New-Volume cmdlet 以獲得最快且最直接的體驗。 這個單一指令檔會自動建立虛擬磁碟、分割區並格式化它。 它能建立與名稱相符的磁碟區,並輕鬆加入叢集共享磁碟區——這一切都是一舉完成的。
更多資訊請參閱「在 Storage Spaces Direct 中建立磁碟區」。
步驟 3.7:選擇性地啟用 CSV 快取
你可以透過使用系統記憶體(RAM)作為寫入區塊層快取來啟用叢集共享卷(CSV)快取,用於 Windows 快取管理器無法快取的讀取操作。 此功能能提升 Hyper-V 等應用的效能。 CSV 快取提升讀取請求的效能,也適用於 Scale-Out 檔案伺服器場景。
啟用 CSV 快取會減少在超融合叢集上執行虛擬機的記憶體容量,因此你需要在儲存效能與 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),就像在故障轉移叢集上的叢集虛擬機一樣。
您可以使用內建工具或其他工具來管理儲存體和虛擬機器,例如 System Center Virtual Machine Manager。
步驟 4:部署融合式解決方案的向外延展檔案伺服器
如果您要部署聚合式解決方案,下一個步驟是建立 Scale-Out 檔伺服器實例並設定檔案共用。
Tip
如果你部署的是超融合叢集,那你就完成了,不需要這部分。
請選擇以下其中一個分頁,了解如何使用 Failover Cluster Manager 或 PowerShell 建立 Scale-Out 檔案伺服器角色。
使用容錯移轉叢集管理員來建立 Scale-Out 檔案伺服器角色:
在容錯移轉叢集管理員中,選取叢集,移至 [角色],然後選取 [設定角色...]。
[高可用性精靈] 便會出現。在 [ 選取角色 ] 頁面上,選取 [ 檔案伺服器]。
在 [ 檔案伺服器類型 ] 頁面上,針對 應用程式數據選取 [Scale-Out 檔案伺服器]。
在 [用戶端存取點] 頁面上,輸入向外延展檔案伺服器的名稱。
移至 「角色」 ,並確認「 狀態」 欄在您建立的叢集檔案伺服器角色旁邊顯示「 執行中」 ,以確認角色已成功設定,如圖 1 所示。
圖1 「容錯移轉叢集管理員」顯示「Scale-Out 檔案伺服器」的狀態為「執行中」
Note
建立叢集角色後,網路傳播延遲可能會導致您無法在該角色上建立檔案共用幾分鐘的時間,或甚至更長。
建立檔案共用
在您建立您的虛擬磁碟並將其加入 CSV 後,請在其上建立檔案共用。 為每個 CSV 和每個虛擬磁碟建立一個檔案共享。 System Center 虛擬機器管理員(VMM)是最簡單的方法,因為它會幫你處理權限。 如果你的環境裡沒有安裝,可以用 Windows PowerShell 來部分自動化部署。
請使用本節內建的腳本,部分自動化建立群組與分享的流程。 腳本是為 Hyper-V 工作負載撰寫的。 如果你部署其他工作負載,建立共享後可能需要修改設定或執行額外步驟。 例如,如果你使用 Microsoft SQL Server,必須將共享與檔案系統的完全控制權授予 SQL Server 服務帳號。
Note
除非你用 System Center 虛擬機器管理器來建立共享,否則新增叢集節點時需要更新群組成員。
若要使用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建立一個 Active Directory 群組來管理 Hyper-V 電腦物件。 根據你的環境調整變數值:# 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 受限委派設定生效。 當節點重新上線後,你可以開始將虛擬機部署到你建立的檔案共享中。
其他參考資料
- 儲存空間直接存取概觀 \(部分機器翻譯\)
- 了解「Storage Spaces Direct」中的快取
- 規劃儲存空間直接存取中的磁碟區
- 儲存空間容錯
- Storage Spaces Direct 硬體需求
- 是否使用 RDMA 是個值得思考的問題 (TechNet 部落格)