Membuat aturan afinitas server dan situs untuk VM
Berlaku untuk: Azure Stack HCI, versi 23H2 dan 22H2
Dengan menggunakan Pusat Admin Windows atau Windows PowerShell, Anda dapat dengan mudah membuat aturan afinitas dan anti-afinitas untuk mesin virtual (VM) Anda dalam satu kluster.
Catatan
Cara yang disarankan untuk membuat dan mengelola VM di Azure Stack HCI 23H2 adalah menggunakan sarana kontrol Azure Arc. Gunakan mekanisme yang dijelaskan di bawah ini untuk mengelola VM Anda hanya jika Anda memerlukan fungsionalitas yang tidak tersedia di Azure Arc VM.
Afinitas adalah aturan yang menetapkan hubungan atau peran antara dua atau lebih grup sumber daya, seperti mesin virtual (VM), agar tetap berada pada server, kluster, atau situs yang sama. Anti-afinitas adalah sebaliknya karena digunakan untuk menjaga VM atau grup sumber daya yang ditentukan terpisah satu sama lain, seperti dua pengontrol domain yang ditempatkan di server terpisah atau di situs terpisah untuk pemulihan bencana.
Aturan afinitas dan anti-afinitas digunakan serupa dengan cara Azure menggunakan Zona Ketersediaan. Di Azure, Anda dapat mengonfigurasi Zona Ketersediaan untuk menyimpan VM di zona terpisah dan jauh dari satu sama lain atau di zona yang sama satu sama lain.
Dengan menggunakan aturan afinitas dan anti-afinitas, setiap VM berkluster berada di node kluster yang sama atau dicegah untuk berada dalam node kluster yang sama. Dengan cara ini, satu-satunya cara untuk mengeluarkan VM dari node adalah dengan melakukannya secara manual. Anda juga dapat menyimpan VM bersama dengan penyimpanannya sendiri, seperti Cluster Shared Volume (CSV) tempat VHDX berada.
Dengan menggabungkan aturan afinitas dan anti-afinitas, Anda juga dapat mengonfigurasi kluster rentang di dua situs dan menyimpan VM di situs yang seharusnya.
Menggunakan Pusat Admin Windows
Anda dapat membuat aturan afinitas dan anti-afinitas dasar menggunakan Pusat Admin Windows.
- Pada beranda Pusat Admin Windows, di bawah Semua koneksi, pilih server atau kluster yang ingin Anda buatkan aturan VM.
- Di bawah Alat, pilih Pengaturan.
- Di bawah Pengaturan, pilih Aturan afinitas, lalu pilih Buat aturan di bawah Aturan afinitas.
- Di bawah Nama aturan, masukkan nama untuk aturan Anda.
- Di bawah Jenis aturan, pilih Bersama (server yang sama) atau Terpisah (server yang berbeda) untuk menempatkan VM Anda di server yang sama atau berbeda.
- Di bawah Berlaku untuk, pilih VM tempat aturan ini berlaku. Gunakan tombol Tambahkan untuk menambahkan lebih banyak VM ke aturan.
- Setelah selesai, pilih Buat aturan.
- Untuk menghapus aturan, cukup pilih aturan dan pilih Hapus aturan.
Menggunakan Windows PowerShell
Anda dapat membuat aturan yang lebih kompleks dengan Windows PowerShell daripada dengan Pusat Admin Windows. Biasanya, Anda mengatur aturan dari komputer jarak jauh, bukan di server host dalam kluster. Komputer jarak jauh ini disebut komputer manajemen.
Saat menjalankan perintah Windows PowerShell dari komputer manajemen, sertakan -Name
parameter atau -Cluster
dengan nama kluster yang Anda kelola. Jika berlaku, Anda juga perlu menentukan nama domain yang sepenuhnya memenuhi syarat (FQDN) saat menggunakan -ComputerName
parameter untuk simpul server
Cmdlet PowerShell baru
Untuk membuat aturan afinitas untuk kluster, gunakan cmdlet PowerShell baru berikut:
New-ClusterAffinityRule
Cmdlet New-ClusterAffinityRule
digunakan untuk membuat aturan baru. Dengan perintah ini, Anda akan menentukan nama aturan dan jenis aturannya, di mana:
-Name
adalah nama aturan
Nilai -RuleType
adalah SameFaultDomain
| SameNode
| DifferentFaultDomain
| DifferentNode
Contoh:
New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain
Set-ClusterAffinityRule
Cmdlet Set-ClusterAffinityRule
digunakan untuk mengaktifkan atau menonaktifkan aturan, di mana:
-Name
adalah nama aturan untuk mengaktifkan atau menonaktifkan
-Enabled
| Disabled
mengaktifkan atau menonaktifkan aturan
Contoh:
Set-ClusterAffinityRule -Name Rule1 -Enabled
Get-ClusterAffinityRule
Cmdlet Get-ClusterAffinityRule
digunakan untuk menampilkan aturan yang ditentukan dan jenisnya. Jika -Name
tidak ditentukan, aturan akan mencantumkan semua aturan.
Contoh:
Get-ClusterAffinityRule -Name Rule1
Add-ClusterGroupToAffinityRule
Cmdlet Add-ClusterGroupToAffinityRule
digunakan untuk menambahkan peran VM atau nama grup ke aturan afinitas tertentu, di mana:
-Groups
adalah nama grup atau peran untuk ditambahkan ke aturan
-Name
adalah nama aturan yang akan ditambahkan
Contoh:
Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1
Add-ClusterSharedVolumeToAffinityRule
Add-ClusterSharedVolumeToAffinityRule
memungkinkan VM Anda untuk tetap bersama dengan Cluster Shared Volume tempat VHDX berada, di mana:
-ClusterSharedVolumes
adalah disk CSV yang ingin Anda tambahkan ke aturan
-Name
adalah nama aturan yang akan ditambahkan
Contoh:
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Remove-ClusterAffinityRule
Remove-ClusterAffinityRule
menghapus aturan yang ditentukan, di mana -Name
adalah nama aturan.
Contoh:
Remove-ClusterAffinityRule -Name Rule1
Remove-ClusterGroupFromAffinityRule
menghapus Remove-ClusterGroupFromAffinityRule
grup atau peran VM dari aturan tertentu tetapi tidak menonaktifkan atau menghapus aturan, di mana:
-Name
adalah nama aturan
-Groups
adalah grup atau peran yang ingin Anda hapus dari aturan
Contoh:
Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1
Remove-ClusterSharedVolumeFromAffinityRule
Remove-ClusterSharedVolumeFromAffinityRule
Cmdlet digunakan untuk menghapus Volume Bersama Kluster dari aturan tertentu tetapi tidak menonaktifkan atau menghapus aturan, di mana:
-ClusterSharedVolumes
adalah disk CSV yang ingin Anda hapus dari aturan
-Name
adalah nama aturan yang akan ditambahkan
Contoh:
Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Cmdlet PowerShell yang ada
Dengan munculnya cmdlet baru, kami juga menambahkan sakelar baru tambahan ke beberapa cmdlet yang ada.
Move-ClusterGroup
Pengalih -IgnoreAffinityRule
baru mengabaikan aturan dan memindahkan grup sumber daya kluster ke node kluster lain. Untuk informasi selengkapnya tentang cmdlet ini, lihat Move-ClusterGroup.
Contoh:
Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Catatan
Jika aturan pindah valid (didukung), semua grup dan peran yang terpengaruh juga akan berpindah. Jika pemindahan VM dengan sengaja melanggar aturan, tetapi diperlukan secara sementara satu kali, gunakan pengalih -IgnoreAffinityRule
untuk memungkinkan pemindahan terjadi. Dalam hal ini, peringatan pelanggaran untuk VM akan ditampilkan. Anda kemudian dapat mengaktifkan aturan kembali seperlunya.
Start-ClusterGroup
Pengalih -IgnoreAffinityRule
baru mengabaikan aturan dan membawa grup sumber daya kluster online di lokasi saat ini. Untuk informasi selengkapnya tentang cmdlet ini, lihat Start-ClusterGroup.
Contoh:
Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Contoh aturan afinitas
Aturan afinitas adalah aturan "bersama" yang menyimpan sumber daya di server, kluster, atau situs yang sama. Berikut adalah beberapa skenario umum untuk menyiapkan aturan afinitas.
Skenario 1
Misalkan Anda memiliki VM SQL Server dan VM Server Web. Kedua VM ini harus selalu tetap berada di situs yang sama tetapi tidak harus berada di node kluster yang sama di situs. Anda dapat melakukannya dengan menggunakan SameFaultDomain
, seperti yang ditunjukkan di bawah ini:
New-ClusterAffinityRule -Name WebData -Ruletype SameFaultDomain -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData -Cluster Cluster1
Set-ClusterAffinityRule -Name WebData -Enabled 1 -Cluster Cluster1
Untuk melihat aturan ini dan bagaimana aturan ini dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet untuk melihat output:
Get-ClusterAffinityRule -Name WebData -Cluster Cluster1
Name RuleType Groups Enabled
---- --------- ------ -------
WebData SameFaultDomain {SQL1, WEB1} 1
Skenario 2
Mari kita gunakan skenario yang sama di atas kecuali tentukan bahwa VM harus berada pada node kluster yang sama. Dengan menggunakan SameNode
, Anda dapat mengaturnya sebagai berikut:
New-ClusterAffinityRule -Name WebData1 -Ruletype SameNode -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData1 -Cluster Cluster1
Set-ClusterAffinityRule -Name WebData1 -Enabled 1 -Cluster Cluster1
Untuk melihat aturan dan bagaimana aturan dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet untuk melihat output:
Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------ -------
DC SameNode {SQL1, WEB1} 1
Contoh aturan anti-afinitas
Aturan anti-afinitas adalah aturan "terpisah" yang memisahkan sumber daya dan menempatkannya di server, kluster, atau situs yang berbeda.
Skenario 1
Anda memiliki dua VM yang masing-masing menjalankan SQL Server pada kluster multisitus Azure Stack HCI yang sama. Setiap VM menggunakan banyak memori, CPU, dan penyimpanan sumber daya. Jika keduanya berakhir pada node yang sama, ini dapat menyebabkan masalah performa dengan satu atau keduanya karena mereka bersaing untuk siklus memori, CPU, dan penyimpanan. Menggunakan aturan anti-afinitas dengan DifferentNode
sebagai jenis aturan, VM ini akan selalu berada di node kluster yang berbeda.
Contoh perintah untuk ini adalah:
New-ClusterAffinityRule -Name SQL -Ruletype DifferentNode -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL1,SQL2 –Name SQL -Cluster Cluster1
Set-ClusterAffinityRule -Name SQL -Enabled 1 -Cluster Cluster1
Untuk melihat aturan dan bagaimana aturan dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet untuk melihat output:
Get-ClusterAffinityRule -Name SQL -Cluster Cluster1
Name RuleType Groups Enabled
---- ----------- ------- -------
SQL DifferentNode {SQL1, SQL2} 1
Skenario 2
Katakanlah Anda memiliki kluster rentang Azure Stack HCI dengan dua situs (domain kesalahan). Anda memiliki dua pengendali domain yang ingin Anda simpan di situs terpisah. Menggunakan aturan anti-afinitas dengan DifferentFaultDomain
sebagai jenis aturan, pengendali domain ini akan selalu berada di situs yang berbeda. Contoh perintah untuk ini adalah:
New-ClusterAffinityRule -Name DC -Ruletype DifferentFaultDomain -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name DC -Cluster Cluster1
Set-ClusterAffinityRule -Name DC -Enabled 1 -Cluster Cluster1
Untuk melihat aturan ini dan bagaimana aturan dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet untuk melihat output:
Get-ClusterAffinityRule -Name DC -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------- -------
DC DifferentFaultDomain {DC1, DC2} 1
Contoh aturan gabungan
Menggabungkan aturan afinitas dan anti-afinitas, Anda dapat dengan mudah mengonfigurasi berbagai kombinasi VM di seluruh kluster multisitus. Dalam skenario ini, setiap situs memiliki tiga VM: SQL Server (SQL), Server Web (WEB), dan pengendali domain (DC). Untuk setiap kombinasi, Anda dapat menggunakan aturan afinitas dengan SameFaultDomain
untuk menyimpan semuanya di situs yang sama. Anda juga dapat mengatur pengendali domain untuk setiap situs dengan aturan anti-afinitas dan DifferentFaultDomain
untuk menyimpan VM pengendali domain di situs terpisah seperti yang ditunjukkan di bawah ini:
New-ClusterAffinityRule -Name Site1Trio -Ruletype SameFaultDomain -Cluster Cluster1
New-ClusterAffinityRule -Name Site2Trio -Ruletype SameFaultDomain -Cluster Cluster1
New-ClusterAffinityRule -Name TrioApart -Ruletype DifferentFaultDomain -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1,DC1 –Name Site1Trio -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL2,WEB2,DC2 –Name Site2Trio -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name TrioApart -Cluster Cluster1
Set-ClusterAffinityRule -Name Site1Trio -Enabled 1 -Cluster Cluster1
Set-ClusterAffinityRule -Name Site2Trio -Enabled 1 -Cluster Cluster1
Set-ClusterAffinityRule -Name TrioApart -Enabled 1 -Cluster Cluster1
Untuk melihat aturan dan bagaimana aturan dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet tanpa -Name
sakelar dan Anda dapat melihat semua aturan yang dibuat dan outputnya.
Get-ClusterAffinityRule -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------ -------
Site1Trio SameFaultDomain {SQL1, WEB1, DC1} 1
Site2Trio SameFaultDomain {SQL2, WEB2, DC2} 1
TrioApart DifferentFaultDomain {DC1, DC2} 1
Aturan afinitas penyimpanan
Anda juga dapat menyimpan VM dan VHDX-nya pada Cluster Shared Volume (CSV) pada node kluster yang sama. Ini akan mencegah pengalihan CSV terjadi, yang dapat memperlambat dimulainya atau dihentikannya VM. Dengan mempertimbangkan skenario afinitas dan anti-afinitas gabungan sebelumnya, Anda dapat menyimpan SQL VM dan Cluster Shared Volume pada node kluster yang sama. Untuk melakukannya, gunakan perintah berikut:
New-ClusterAffinityRule -Name SQL1CSV1 -Ruletype SameNode -Cluster Cluster1
New-ClusterAffinityRule -Name SQL2CSV2 -Ruletype SameNode -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL1 –Name SQL1CSV1 -Cluster Cluster1
Add-ClusterGroupToAffinityRule -Groups SQL2 –Name SQL2CSV2 -Cluster Cluster1
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name SQL1CSV1 -Cluster Cluster1
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV2 -Name SQL2CSV2 -Cluster Cluster1
Set-ClusterAffinityRule -Name SQL1CSV1 -Enabled 1 -Cluster Cluster1
Set-ClusterAffinityRule -Name SQL2CSV2 -Enabled 1 -Cluster Cluster1
Untuk melihat aturan ini dan bagaimana aturan dikonfigurasi, gunakan Get-ClusterAffinityRule
cmdlet tanpa sakelar -Name dan lihat output.
Get-ClusterAffinityRule -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------ -------
Site1Trio SameFaultDomain {SQL1, WEB1, DC1} 1
Site2Trio SameFaultDomain {SQL2, WEB2, DC2} 1
TrioApart DifferentFaultDomain {DC1, DC2} 1
SQL1CSV1 SameNode {SQL1, <CSV1-GUID>} 1
SQL2CSV2 SameNode {SQL2, <CSV2-GUID>} 1
Langkah berikutnya
Pelajari cara mengelola VM Anda. Lihat Mengelola VM di Azure Stack HCI menggunakan Pusat Admin Windows.