Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyediakan instruksi langkah demi langkah untuk menyebarkan Storage Spaces Direct di Windows Server. Untuk menyebarkan Ruang Penyimpanan Langsung sebagai bagian dari Azure Local, lihat Tentang Azure Local.
Tip
Ingin memperoleh infrastruktur "hyperconverged"? Microsoft merekomendasikan pembelian solusi Azure Local perangkat keras/perangkat lunak yang divalidasi dari mitra kami. Solusi ini dirancang, dirakit, dan divalidasi dengan arsitektur referensi kami untuk memastikan kompatibilitas dan keandalan, sehingga Anda dapat memulai dan mengoperasikannya dengan cepat. Untuk menggunakan katalog solusi perangkat keras/perangkat lunak yang berfungsi dengan Azure Local, lihat Azure Local Catalog.
Tip
Anda dapat menggunakan komputer virtual Hyper-V, termasuk di Microsoft Azure, untuk mengevaluasi Storage Spaces Direct tanpa perangkat keras. Anda mungkin juga ingin meninjau skrip penyebaran lab cepat Windows Server yang berguna, yang kami gunakan untuk tujuan pelatihan.
Sebelum memulai
Tinjau persyaratan perangkat keras Storage Spaces Direct untuk membiasakan diri dengan pendekatan keseluruhan dan catatan penting yang terkait dengan beberapa langkah.
Kumpulkan informasi berikut:
Opsi penyebaran: Storage Spaces Direct mendukung dua opsi penyebaran: hyper-converged dan converged, juga dikenal sebagai disaggregated. Biasakan diri Anda dengan keuntungan masing-masing untuk memutuskan opsi mana yang tepat untuk Anda. Langkah 1-3 dalam artikel ini berlaku untuk kedua opsi penyebaran. Langkah 4 hanya diperlukan untuk penyebaran yang terkonvergen.
Nama server: Kenali kebijakan penamaan organisasi Anda untuk komputer, file, jalur, dan sumber daya lainnya. Anda perlu menyediakan beberapa server, masing-masing dengan nama unik.
Nama domain: Membiasakan diri dengan kebijakan organisasi Anda untuk penamaan domain dan bergabung dengan domain. Anda menghubungkan server ke domain Anda, dan Anda perlu menentukan nama domain.
Jaringan RDMA: Ada dua jenis protokol RDMA: iWarp dan RoCE. Perhatikan adaptor jaringan mana yang Anda gunakan, jika RoCE, perhatikan juga versi (v1 atau v2). Untuk RoCE, perhatikan juga model saklar top-of-rack Anda.
ID VLAN: Perhatikan ID VLAN yang akan digunakan untuk adaptor jaringan OS manajemen di server, jika ada. Anda seharusnya bisa mendapatkan informasi ini dari administrator jaringan Anda.
Langkah 1: Menyebarkan Windows Server
Langkah 1.1: Menginstal sistem operasi
Pertama, instal Windows Server di setiap server di kluster. Storage Spaces Direct memerlukan Windows Server Datacenter Edition. Anda dapat menggunakan opsi penginstalan Server Core atau Server dengan Pengalaman Desktop.
Saat Menginstal Windows Server dengan menggunakan wizard Penyetelan, Anda dapat memilih antara Windows Server (merujuk ke Server Core) dan Windows Server (Server dengan Pengalaman Desktop), yang setara dengan opsi Penginstalan lengkap yang tersedia di Windows Server 2012 R2. Jika Anda tidak memilih, Anda mendapatkan opsi penginstalan Server Core. Untuk informasi selengkapnya, lihat Menginstal Server Core.
Langkah 1.2: Menyambungkan ke server
Panduan ini berfokus pada opsi penginstalan Server Core dan menyebarkan dan mengelola dari jarak jauh dari sistem manajemen terpisah. Sistem manajemen harus memiliki:
- Versi Windows Server atau Windows 10 yang setidaknya baru seperti server yang mengelolanya, dengan pembaruan terbaru.
- Konektivitas jaringan ke server-server yang dikelolanya.
- Terhubung ke domain yang sama atau domain yang sepenuhnya tepercaya.
- Modul Remote Server Administration Tools (RSAT) dan PowerShell untuk Hyper-V dan Failover Clustering. Alat RSAT dan modul PowerShell tersedia di Windows Server dan dapat diinstal tanpa menginstal fitur lain. Anda juga dapat menginstal Alat Administrasi Server Jarak Jauh pada PC manajemen Windows 10.
Pada sistem manajemen, instal Kluster Failover dan alat manajemen Hyper-V. Anda dapat melakukan ini melalui Manajer Server dengan menggunakan wizard Tambahkan Peran dan Fitur . Pada halaman Fitur , pilih Alat Administrasi Server Jarak Jauh, lalu pilih alat yang akan diinstal.
Masukkan sesi PowerShell dan gunakan nama server atau alamat IP simpul yang ingin Anda sambungkan. Anda dimintai kata sandi setelah menjalankan perintah ini. Masukkan kata sandi administrator yang Anda tentukan saat menyiapkan Windows.
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
Berikut adalah contoh melakukan hal yang sama dengan cara yang lebih berguna dalam skrip:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Tip
Jika Anda menyebarkan dari jarak jauh dari sistem manajemen, Anda mungkin mendapatkan kesalahan seperti WinRM tidak dapat memproses permintaan. Untuk memperbaiki kesalahan ini, gunakan Windows PowerShell untuk menambahkan setiap server ke daftar Host Tepercaya di komputer manajemen Anda:
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server01 -Force
Daftar host yang tepercaya mendukung penggunaan wildcard, seperti Server*.
- Untuk melihat daftar Host Tepercaya Anda, ketik
Get-Item WSMAN:\Localhost\Client\TrustedHosts. - Untuk mengosongkan daftar, ketik
Clear-Item WSMAN:\Localhost\Client\TrustedHost.
Langkah 1.3: Gabungkan domain dan tambahkan akun domain
Untuk mengelola Ruang Penyimpanan Langsung, Anda perlu menggabungkan server ke domain dan menggunakan akun domain Active Directory Domain Services yang ada di grup Administrator di setiap server.
Dari sistem manajemen, buka konsol PowerShell dengan hak istimewa Administrator. Gunakan Enter-PSSession untuk menyambungkan ke setiap server dan menjalankan cmdlet berikut, mengganti nama komputer, nama domain, dan kredensial domain Anda sendiri:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
Jika akun administrator penyimpanan Anda bukan anggota grup Admin Domain, tambahkan akun administrator penyimpanan Anda ke grup Administrator lokal di setiap simpul, atau tambahkan grup yang Anda gunakan untuk administrator penyimpanan. Anda dapat menggunakan perintah berikut, atau membuat skrip PowerShell untuk melakukan langkah ini. Untuk informasi selengkapnya, lihat Menggunakan PowerShell untuk Menambahkan Pengguna Domain ke Grup Lokal.
Net localgroup Administrators <Domain\Account> /add
Langkah 1.4: Menginstal peran dan fitur
Langkah selanjutnya adalah menginstal peran server di setiap server melalui Pusat Admin Windows, Manajer Server, atau PowerShell. Berikut adalah peran yang akan diinstal:
- Klasterisasi Failover
- Hyper-V
- Server Berkas (jika Anda ingin menghosting berbagi berkas apa pun, seperti untuk penyebaran terkonvergensi)
- Data-Center-Bridging (jika Anda menggunakan RoCEv2 alih-alih adaptor jaringan iWARP)
- RSAT-Clustering-PowerShell
- Hyper-V-PowerShell
Untuk menginstal peran melalui PowerShell, gunakan cmdlet Install-WindowsFeature . Anda dapat menggunakannya pada satu server seperti ini:
Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
Untuk menjalankan perintah pada semua server di kluster secara bersamaan, jalankan skrip ini yang memodifikasi daftar variabel di awal skrip agar sesuai dengan lingkungan Anda.
# 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
}
Langkah 2: Mengonfigurasi jaringan
Jika Anda menyebarkan Ruang Penyimpanan Langsung di dalam komputer virtual, lewati bagian ini.
Ruang Penyimpanan Langsung memerlukan jaringan bandwidth tinggi dan latensi rendah antar server di kluster. Anda memerlukan setidaknya jaringan 10 GbE, dan akses memori langsung jarak jauh (RDMA) disarankan. Anda dapat menggunakan iWARP atau RoCE selama memiliki logo Windows Server yang cocok dengan versi sistem operasi Anda, tetapi iWARP lebih mudah diatur.
Important
Tergantung pada peralatan jaringan Anda, dan terutama dengan RoCE v2, Anda mungkin perlu mengonfigurasi sakelar top-of-rack. Konfigurasi switch yang benar penting untuk memastikan keandalan dan performa Ruang Penyimpanan Langsung.
Windows Server 2016 memperkenalkan fitur tim tertanam dalam sakelar (SET) di dalam sakelar virtual Hyper-V. Fitur ini memungkinkan Anda menggunakan port kartu antarmuka jaringan fisik (NIC) yang sama untuk semua lalu lintas jaringan saat menggunakan RDMA, mengurangi jumlah port NIC fisik yang diperlukan. Gunakan switch-embedded teaming untuk Storage Spaces Direct.
- Switched: Anda harus mengonfigurasi sakelar jaringan dengan benar untuk menangani bandwidth dan jenis jaringan. Jika Anda menggunakan RDMA yang mengimplementasikan protokol RoCE, perangkat jaringan dan konfigurasi switch menjadi lebih penting.
- Switchless: Anda dapat menghubungkan node menggunakan koneksi langsung, menghindari penggunaan sakelar. Setiap simpul harus memiliki koneksi langsung dengan setiap node kluster lainnya.
Untuk instruksi menyiapkan jaringan untuk Storage Spaces Direct, lihat Panduan Penyebaran RDMA Windows Server 2016 dan 2019.
Langkah 3: Mengonfigurasi Ruang Penyimpanan Langsung
Lakukan langkah-langkah berikut pada sistem manajemen yang menjalankan versi yang sama dengan server yang Anda konfigurasi. Jangan jalankan langkah-langkah ini dari jarak jauh dengan menggunakan sesi PowerShell. Sebagai gantinya, jalankan dalam sesi PowerShell lokal pada sistem manajemen, dengan izin administratif.
Langkah 3.1: Bersihkan drive
Sebelum Anda mengaktifkan Ruang Penyimpanan Langsung, pastikan drive Anda kosong tanpa partisi lama atau data lainnya. Jalankan skrip berikut, ganti nama komputer Anda untuk menghapus partisi lama atau data lainnya.
Important
Skrip ini secara permanen menghapus data apa pun pada drive selain drive boot sistem operasi!
# 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
}
}
Output terlihat seperti contoh berikut, di mana Count adalah jumlah drive dari setiap model di setiap server:
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
Langkah 3.2: Memvalidasi kluster
Dalam langkah ini, Anda menjalankan alat validasi kluster untuk memastikan bahwa simpul server dikonfigurasi dengan benar untuk membuat kluster menggunakan Storage Spaces Direct. Saat Anda menjalankan validasi kluster (Test-Cluster) sebelum Anda membuat kluster, kluster menjalankan pengujian yang memverifikasi bahwa konfigurasi cocok untuk berfungsi sebagai kluster failover. Contoh berikut secara langsung menggunakan -Include parameter, lalu menentukan kategori pengujian tertentu. Pendekatan ini memastikan bahwa pengujian khusus Storage Spaces Direct disertakan dalam validasi.
Gunakan perintah PowerShell berikut untuk memvalidasi sekumpulan server untuk digunakan sebagai kluster Storage Spaces Direct.
Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
Langkah 3.3: Membuat kluster
Dalam langkah ini, Anda membuat kluster dengan simpul yang Anda validasi untuk pembuatan kluster di langkah sebelumnya dengan menggunakan cmdlet PowerShell berikut.
Saat Anda membuat kluster, Anda mendapatkan peringatan yang menyatakan "Ada masalah saat membuat peran berkluster yang dapat mencegahnya dimulai. Untuk informasi selengkapnya, lihat file laporan di bawah ini." Anda dapat mengabaikan peringatan ini dengan aman. Ini karena tidak ada disk yang tersedia untuk kuorum kluster. Konfigurasikan saksi berbagi berkas atau saksi cloud setelah membuat kluster.
Note
Jika server menggunakan alamat IP statis, ubah perintah berikut untuk mencerminkan alamat IP statis dengan menambahkan parameter berikut dan menentukan alamat IP: -StaticAddress <X.X.X.X>.
Pada perintah berikut, gantilah placeholder ClusterName dengan nama NetBIOS yang unik dan memiliki 15 karakter atau kurang.
New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage
Setelah Anda membuat kluster, perlu waktu bagi entri Sistem Nama Domain (DNS) agar nama kluster direplikasi. Waktu tergantung pada lingkungan dan konfigurasi replikasi DNS. Jika menyelesaikan kluster tidak berhasil, Anda dapat menggunakan nama komputer simpul yang merupakan anggota aktif kluster alih-alih nama kluster.
Langkah 3.4: Mengonfigurasi saksi kluster
Konfigurasikan saksi untuk kluster sehingga kluster dengan tiga server atau lebih dapat menahan dua server gagal atau offline. Penyebaran dua server memerlukan saksi kluster; jika tidak, jika salah satu server offline, server lainnya menjadi tidak tersedia. Dengan sistem ini, Anda dapat menggunakan berbagi berkas sebagai pendamping, atau menggunakan pendamping cloud. Untuk informasi selengkapnya, lihat Menyebarkan bukti kuorum.
Langkah 3.5: Aktifkan Ruang Penyimpanan Langsung
Setelah membuat kluster, gunakan Enable-ClusterStorageSpacesDirect cmdlet PowerShell. Cmdlet ini menempatkan sistem penyimpanan ke dalam mode Storage Spaces Direct dan secara otomatis melakukan tugas-tugas berikut:
Membuat kumpulan: Membuat satu kumpulan besar dengan nama seperti "S2D di Kluster1".
Mengonfigurasi cache Storage Spaces Direct: Jika lebih dari satu jenis media (drive) tersedia untuk penggunaan Storage Spaces Direct, ini memungkinkan yang tercepat sebagai perangkat cache (baca dan tulis dalam banyak kasus).
Membuat dua tingkatan sebagai tingkat default: Satu tingkat disebut "Kapasitas" dan tingkat lainnya disebut "Performa". Cmdlet menganalisis perangkat dan mengonfigurasi setiap tingkat dengan campuran jenis perangkat dan ketahanan.
Dari sistem manajemen, buka jendela PowerShell yang ditingkatkan dan jalankan perintah berikut. Nama kluster adalah nama kluster yang Anda buat di langkah-langkah sebelumnya. Jika Anda menjalankan perintah ini secara lokal pada salah satu simpul, Anda tidak memerlukan -CimSession parameter .
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
Perintah ini mengaktifkan Storage Spaces Direct. Anda dapat memilih untuk menggunakan nama node alih-alih nama kluster. Menggunakan nama node mungkin lebih andal karena penundaan replikasi DNS mungkin terjadi dengan nama kluster yang baru dibuat.
Ketika perintah ini selesai, yang mungkin memakan waktu beberapa menit, sistem siap untuk membuat volume.
Langkah 3.6: Membuat volume
New-Volume Gunakan cmdlet untuk pengalaman tercepat dan paling mudah. Cmdlet tunggal ini secara otomatis membuat disk virtual, partisi, dan memformatnya. Ini membuat volume dengan nama yang cocok dan menambahkannya ke volume bersama kluster - semuanya dalam satu langkah mudah.
Untuk informasi selengkapnya, lihat Membuat volume di Storage Spaces Direct.
Langkah 3.7: Secara opsional aktifkan cache CSV
Anda dapat mengaktifkan Cluster Shared Volume (CSV) cache dengan memanfaatkan RAM sistem sebagai cache tingkat blok dengan mekanisme write-through, khusus untuk operasi baca yang tidak di-cache oleh pengelola cache Windows. Fitur ini dapat meningkatkan performa untuk aplikasi seperti Hyper-V. Cache CSV meningkatkan performa permintaan baca dan juga berguna untuk skenario Server File Scale-Out.
Mengaktifkan cache CSV mengurangi jumlah memori yang tersedia untuk menjalankan VM pada kluster hyper-converged, sehingga Anda perlu menyeimbangkan performa penyimpanan dengan memori yang tersedia untuk VHD.
Untuk mengatur ukuran cache CSV, buka sesi PowerShell pada sistem manajemen dengan akun yang memiliki izin administrator pada kluster penyimpanan. Gunakan skrip berikut dengan mengubah variabel $ClusterName dan $CSVCacheSize sebagaimana mestinya (contoh ini menetapkan cache CSV 2 GB per server).
$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"
Untuk informasi selengkapnya, lihat Menggunakan cache pembacaan CSV dalam memori.
Langkah 3.8: Menggunakan mesin virtual untuk penyebaran hyper-converged
Jika Anda menyebarkan kluster hyper-converged, langkah terakhir adalah menyediakan komputer virtual pada kluster Storage Spaces Direct.
Simpan file komputer virtual di namespace CSV sistem (misalnya: c:\ClusterStorage\Volume1) sama seperti VM terkluster pada kluster failover.
Anda dapat menggunakan alat dalam kotak atau alat lain untuk mengelola penyimpanan dan komputer virtual, seperti System Center Virtual Machine Manager.
Langkah 4: Menerapkan *Scale-Out File Server* untuk solusi konvergensi
Jika Anda menyebarkan solusi yang terkonvergensi, langkah selanjutnya adalah membuat instans Scale-Out File Server dan menyiapkan berbagi file.
Tip
Jika Anda menyebarkan kluster hyper-converged, Anda sudah selesai dan tidak memerlukan bagian ini.
Pilih salah satu tab berikut untuk instruksi tentang cara membuat peran Scale-Out File Server menggunakan Manajer Kluster Failover atau PowerShell.
Untuk membuat peran Scale-Out File Server dengan menggunakan Pengelola Kluster Failover:
Di Manajer Kluster Failover, pilih kluster, buka Peran, lalu pilih Konfigurasikan Peran....
Panduan Ketersediaan Tinggi muncul.Pada halaman Pilih Peran , pilih Server File.
Pada halaman Jenis Server File, pilih Scale-Out File Server untuk data aplikasi.
Pada halaman Client Access Point, ketik nama untuk Scale-Out File Server.
Verifikasi bahwa peran berhasil disiapkan dengan membuka Peran dan mengonfirmasi bahwa kolom Status memperlihatkan Berjalan di samping peran server file terkluster yang Anda buat, seperti yang ditunjukkan pada Gambar 1.
Gambar 1 Manajer Kluster Failover memperlihatkan Server File Scale-Out dengan status Berjalan
Note
Setelah membuat peran berkluster, penundaan penyebaran jaringan mungkin mencegah Anda membuat berkas bersama di dalamnya selama beberapa menit, atau dapat berlangsung lebih lama.
Membuat pembagian berkas
Setelah Anda membuat disk virtual dan menambahkannya ke CSV, buat berbagi file di dalamnya. Buat satu sumber berbagi berkas per CSV per cakram virtual. System Center Virtual Machine Manager (VMM) adalah cara termudah untuk melakukan tugas ini karena menangani perizinan untuk Anda. Jika Anda tidak memilikinya di lingkungan Anda, Anda dapat menggunakan Windows PowerShell untuk mengotomatiskan penyebaran secara parsial.
Gunakan skrip yang disertakan di bagian ini untuk mengotomatiskan sebagian proses pembuatan grup dan berbagi. Skrip ditulis untuk beban kerja Hyper-V. Jika Anda menyebarkan beban kerja lain, Anda mungkin harus mengubah pengaturan atau melakukan langkah tambahan setelah membuat berbagi. Misalnya, jika Anda menggunakan Microsoft SQL Server, Anda harus memberikan kontrol penuh pada berbagi dan sistem file ke akun layanan SQL Server.
Note
Anda perlu memperbarui keanggotaan grup saat menambahkan node kluster kecuali Anda menggunakan System Center Virtual Machine Manager untuk membuat berbagi.
Untuk membuat berbagi file dengan menggunakan skrip PowerShell, lakukan langkah-langkah berikut:
Perluas setiap bagian berikut dan simpan konten masing-masing sebagai file terpisah
.ps1dengan nama yang relevan di folder yang sama, sepertiC:\Scripts\SetupSMBSharesWithHyperV, pada salah satu simpul kluster server file:Perluas bagian ini untuk 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) }Perluas bagian ini untuk 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 $FullAccessPerluas bagian ini untuk 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} }Buka sesi Windows PowerShell dengan kredensial Administrator Domain pada sistem manajemen. Gunakan skrip
ADGroupSetup.ps1untuk membuat grup Direktori Aktif untuk objek komputer Hyper-V. Ubah nilai untuk variabel yang sesuai untuk lingkungan Anda:# 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 $HyperVClusterNameGunakan skrip
FileShareSetup.ps1untuk membuat berbagi untuk setiap CSV dan memberikan izin administratif untuk berbagi ke grup Admin Domain dan kluster komputasi.# 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 }Aktifkan delegasi terbatas Kerberos untuk pengelolaan skenario jarak jauh dan peningkatan keamanan Live Migration. Dari salah satu node kluster penyimpanan, gunakan skrip
KCDSetup.ps1. Berikut adalah pembungkus sederhana untuk skrip:$HyperVClusterName = "Compute01" $ScaleOutFSName = "SOFS" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" CD $ScriptFolder .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLMMulai ulang semua simpul di kluster Hyper-V untuk memastikan bahwa pengaturan delegasi yang dibatasi Kerberos baru berlaku. Ketika node kembali online, Anda dapat mulai mengoperasikan mesin virtual pada file share yang Anda buat.