Bagikan melalui


Kesadaran domain kesalahan

Pengklusteran Failover memungkinkan beberapa server bekerja sama untuk memberikan ketersediaan tinggi - atau dengan cara lain, untuk memberikan toleransi kesalahan node. Tetapi bisnis saat ini menuntut ketersediaan yang semakin besar dari infrastruktur mereka. Untuk mencapai waktu aktif seperti cloud, bahkan kejadian yang sangat tidak mungkin seperti kegagalan sasis, pemadaman rak, atau bencana alam harus dilindungi. Itulah sebabnya Pengklusteran Failover di Windows Server 2016 memperkenalkan sasis, rak, dan toleransi kesalahan situs juga.

Domain kesalahan dan toleransi kesalahan

Domain kesalahan dan toleransi kesalahan adalah konsep yang terkait erat. Domain kegagalan adalah seperangkat komponen perangkat keras yang berbagi satu titik kegagalan. Agar toleran terhadap kesalahan ke tingkat tertentu, Anda memerlukan beberapa domain kesalahan pada tingkat tersebut. Misalnya, untuk menjadi toleran terhadap kesalahan rak, server Anda dan data Anda harus didistribusikan di beberapa rak.

Video singkat ini menyajikan gambaran umum domain kesalahan di Windows Server 2016.

Kesadaran domain kesalahan di Windows Server 2019

Kesadaran domain kesalahan tersedia di Windows Server 2019 tetapi dinonaktifkan secara default dan harus diaktifkan melalui Windows Registry.

Untuk mengaktifkan kesadaran domain kesalahan di Windows Server 2019, buka Windows Registry dan atur (Get-Cluster). Kunci registri AutoAssignNodeSite ke 1.

    (Get-Cluster).AutoAssignNodeSite=1

Untuk menonaktifkan kesadaran domain kesalahan di Windows 2019, buka Windows Registry dan atur (Get-Cluster). Kunci registri AutoAssignNodeSite ke 0.

    (Get-Cluster).AutoAssignNodeSite=0

Keuntungan

  • Ruang Penyimpanan, termasuk Ruang Penyimpanan Langsung, menggunakan domain kesalahan untuk memaksimalkan keamanan data. Ketahanan di Ruang Penyimpanan secara konseptual seperti RAID yang didistribusikan dan ditentukan perangkat lunak. Beberapa salinan semua data tetap sinkron, dan jika perangkat keras gagal dan satu salinan hilang, yang lain dikodekan ulang untuk memulihkan ketahanan. Untuk mencapai ketahanan sebaik mungkin, salinan harus disimpan di domain kesalahan terpisah.

  • Layanan Kesehatan menggunakan domain kesalahan untuk memberikan pemberitahuan yang lebih bermanfaat. Setiap domain kesalahan dapat dikaitkan dengan metadata lokasi, yang akan secara otomatis disertakan dalam pemberitahuan berikutnya. Deskriptor ini dapat membantu personel operasi atau pemeliharaan dan mengurangi kesalahan dengan memisahkan perangkat keras.

  • Pengklusteran stretch menggunakan domain kesalahan untuk afinitas penyimpanan. Pengklusteran stretch memungkinkan server yang jauh untuk bergabung dengan kluster umum. Untuk performa terbaik, aplikasi atau komputer virtual harus dijalankan di server yang berada di dekat mereka yang menyediakan penyimpanan mereka. Kesadaran domain kesalahan memungkinkan afinitas penyimpanan ini.

Tingkat domain kesalahan

Ada empat tingkat domain kesalahan kanonis - situs, rak, sasis, dan simpul. Simpul ditemukan secara otomatis; setiap tingkat tambahan bersifat opsional. Misalnya, jika penyebaran Anda tidak menggunakan server blade, tingkat sasis mungkin tidak masuk akal bagi Anda.

Diagram berbagai tingkat domain kesalahan

Penggunaan

Anda dapat menggunakan markup PowerShell atau XML untuk menentukan domain kesalahan. Kedua pendekatan setara dan menyediakan fungsionalitas penuh.

Penting

Tentukan domain kesalahan sebelum mengaktifkan Storage Spaces Direct, jika memungkinkan. Ini memungkinkan konfigurasi otomatis untuk menyiapkan kumpulan, tingkatan, dan pengaturan seperti ketahanan dan jumlah kolom, untuk toleransi kesalahan sasis atau rak. Setelah kumpulan dan volume dibuat, data tidak akan berpindah secara surut sebagai respons terhadap perubahan pada topologi domain kesalahan. Untuk memindahkan simpul antara sasis atau rak setelah mengaktifkan Storage Spaces Direct, Anda harus terlebih dahulu mengeluarkan simpul dan drivenya dari kumpulan menggunakan Remove-ClusterNode -CleanUpDisks.

Menentukan domain kesalahan dengan PowerShell

Windows Server 2016 memperkenalkan cmdlet berikut untuk bekerja dengan domain kesalahan:

  • Get-ClusterFaultDomain
  • Set-ClusterFaultDomain
  • New-ClusterFaultDomain
  • Remove-ClusterFaultDomain

Video singkat ini menunjukkan penggunaan perintah PowerShell domain kesalahan kluster.

Gunakan Get-ClusterFaultDomain untuk melihat topologi domain kesalahan saat ini. Ini mencantumkan semua simpul dalam kluster, ditambah sasis, rak, atau situs apa pun yang telah Anda buat. Anda dapat memfilter menggunakan parameter seperti -Type atau -Name, tetapi ini tidak diperlukan.

Get-ClusterFaultDomain
Get-ClusterFaultDomain -Type Rack
Get-ClusterFaultDomain -Name "server01.contoso.com"

Gunakan New-ClusterFaultDomain untuk membuat sasis, rak, atau situs baru. Parameter -Type dan -Name dihitung. Nilai yang mungkin untuk -Type adalah Chassis, Rack, dan Site. -Name Dapat berupa string apa pun. (Untuk Node domain kesalahan jenis, nama harus berupa nama node aktual, sebagaimana diatur secara otomatis).

New-ClusterFaultDomain -Type Chassis -Name "Chassis 007"
New-ClusterFaultDomain -Type Rack -Name "Rack A"
New-ClusterFaultDomain -Type Site -Name "Shanghai"

Penting

Windows Server tidak dapat dan tidak memverifikasi bahwa domain kesalahan apa pun yang Anda buat sesuai dengan apa pun di dunia fisik nyata. (Ini mungkin terdengar jelas, tetapi penting untuk dipahami.) Jika, di dunia fisik, simpul Anda semuanya berada dalam satu rak, maka membuat dua -Type Rack domain kesalahan dalam perangkat lunak tidak secara ajaib memberikan toleransi kesalahan rak. Anda bertanggung jawab untuk memastikan topologi yang Anda buat menggunakan cmdlet ini cocok dengan pengaturan perangkat keras Anda yang sebenarnya.

Gunakan Set-ClusterFaultDomain untuk memindahkan satu domain kesalahan ke domain lain. Istilah "induk" dan "anak" biasanya digunakan untuk menggambarkan hubungan bersarang ini. Parameter -Name dan -Parent dihitung. Dalam -Name, berikan nama domain kesalahan yang bergerak; di -Parent, berikan nama tujuan. Untuk memindahkan beberapa domain kesalahan sekaligus, cantumkan namanya.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent "Rack A"
Set-ClusterFaultDomain -Name "Rack A", "Rack B", "Rack C", "Rack D" -Parent "Shanghai"

Penting

Saat domain kesalahan dipindahkan, anak-anak mereka berpindah bersama mereka. Dalam contoh di atas, jika Rack A adalah induk server01.contoso.com, yang terakhir tidak secara terpisah perlu dipindahkan ke situs Shanghai - itu sudah ada karena induknya berada di sana, sama seperti di dunia fisik.

Anda dapat melihat hubungan induk-turunan Get-ClusterFaultDomaindalam output , di ParentName kolom dan ChildrenNames .

Anda juga dapat menggunakan Set-ClusterFaultDomain untuk memodifikasi properti domain kesalahan tertentu lainnya. Misalnya, Anda dapat menyediakan opsional -Location atau -Description metadata untuk domain kesalahan apa pun. Jika disediakan, informasi ini akan disertakan dalam pemberitahuan perangkat keras dari Layanan Kesehatan. Anda juga dapat mengganti nama domain kesalahan menggunakan -NewName parameter . Jangan ganti nama Node domain kesalahan jenis.

Set-ClusterFaultDomain -Name "Rack A" -Location "Building 34, Room 4010"
Set-ClusterFaultDomain -Type Node -Description "Contoso XYZ Server"
Set-ClusterFaultDomain -Name "Shanghai" -NewName "China Region"

Gunakan Remove-ClusterFaultDomain untuk menghapus sasis, rak, atau situs yang telah Anda buat. Parameter -Name diperlukan. Anda tidak dapat menghapus domain kesalahan yang berisi turunan – pertama, menghapus turunan, atau memindahkannya ke luar menggunakan Set-ClusterFaultDomain. Untuk memindahkan domain kesalahan di luar semua domain kesalahan lainnya, atur -Parent ke string kosong (""). Anda tidak dapat menghapus Node domain kesalahan tipe. Untuk menghapus beberapa domain kesalahan sekaligus, cantumkan namanya.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent ""
Remove-ClusterFaultDomain -Name "Rack A"

Menentukan domain kesalahan dengan markup XML

Domain kesalahan dapat ditentukan menggunakan sintaksis yang terinspirasi XML. Sebaiknya gunakan editor teks favorit Anda, seperti Visual Studio Code (tersedia secara gratis di sini) atau Notepad untuk membuat dokumen XML yang dapat Anda simpan dan gunakan kembali.

Video singkat ini menunjukkan penggunaan XML untuk menentukan domain kesalahan dalam pengklusteran failover.

Di PowerShell, jalankan cmdlet berikut: Get-ClusterFaultDomainXML. Ini mengembalikan spesifikasi domain kesalahan saat ini untuk kluster, sebagai XML. Ini mencerminkan <Node>setiap tag yang ditemukan, dibungkus <Topology> dalam tag pembuka dan penutup.

Jalankan yang berikut ini untuk menyimpan output ini ke file.

Get-ClusterFaultDomainXML | Out-File <Path>

Buka file, dan tambahkan <Site>tag , <Rack>, dan <Chassis> untuk menentukan bagaimana simpul ini didistribusikan di seluruh situs, rak, dan sasis. Setiap tag harus diidentifikasi dengan Nama unik. Untuk simpul, Anda harus menyimpan nama simpul seperti yang diisi secara default.

Penting

Meskipun semua tag tambahan bersifat opsional, tag harus mematuhi hierarki Simpul Sasis > Rak > Situs > transitif, dan harus ditutup dengan benar. Selain nama, bentuk bebas Location="..." dan Description="..." deskriptor dapat ditambahkan ke tag apa pun.

Contoh: Dua situs, masing-masing satu rak

<Topology>
  <Site Name="SEA" Location="Contoso HQ, 123 Example St, Room 4010, Seattle">
    <Rack Name="A01" Location="Aisle A, Rack 01">
      <Node Name="Server01" Location="Rack Unit 33" />
      <Node Name="Server02" Location="Rack Unit 35" />
      <Node Name="Server03" Location="Rack Unit 37" />
    </Rack>
  </Site>
  <Site Name="NYC" Location="Regional Datacenter, 456 Example Ave, New York City">
    <Rack Name="B07" Location="Aisle B, Rack 07">
      <Node Name="Server04" Location="Rack Unit 20" />
      <Node Name="Server05" Location="Rack Unit 22" />
      <Node Name="Server06" Location="Rack Unit 24" />
    </Rack>
  </Site>
</Topology>

Contoh: dua server bilah sasis

<Topology>
  <Rack Name="A01" Location="Contoso HQ, Room 4010, Aisle A, Rack 01">
    <Chassis Name="Chassis01" Location="Rack Unit 2 (Upper)" >
      <Node Name="Server01" Location="Left" />
      <Node Name="Server02" Location="Right" />
    </Chassis>
    <Chassis Name="Chassis02" Location="Rack Unit 6 (Lower)" >
      <Node Name="Server03" Location="Left" />
      <Node Name="Server04" Location="Right" />
    </Chassis>
  </Rack>
</Topology>

Untuk mengatur spesifikasi domain kesalahan baru, simpan XML Anda dan jalankan yang berikut ini di PowerShell.

$xml = Get-Content <Path> | Out-String
Set-ClusterFaultDomainXML -XML $xml

Panduan ini hanya menyajikan dua contoh, tetapi <Site>tag , , <Rack><Chassis>, dan <Node> dapat dicampur dan dicocokkan dalam beberapa cara untuk mencerminkan topologi fisik penyebaran Anda, apa pun yang mungkin. Kami berharap contoh-contoh ini menggambarkan fleksibilitas tag ini dan nilai deskriptor lokasi bentuk bebas untuk memisahkannya.

Opsional: Metadata lokasi dan deskripsi

Anda dapat menyediakan metadata Lokasi atau Deskripsi opsional untuk domain kesalahan apa pun. Jika disediakan, informasi ini akan disertakan dalam pemberitahuan perangkat keras dari Layanan Kesehatan.

Video singkat ini menunjukkan nilai penambahan deskriptor lokasi ke domain kesalahan.