Bagikan melalui


Toleransi kesalahan dan efisiensi penyimpanan pada cluster Azure Stack HCI dan Windows Server

Berlaku untuk: Azure Stack HCI, versi 22H2 dan 21H2; Windows Server 2022, Windows Server 2019

Artikel ini menjelaskan tentang opsi ketahanan yang tersedia dan menguraikan persyaratan skala, efisiensi penyimpanan, dan keuntungan umum dan tradeoff masing-masing.

Gambaran Umum

Storage Spaces Direct memberikan toleransi kesalahan, sering kali disebut sebagai "ketahanan," untuk data Anda. Implementasinya mirip dengan RAID, namun didistribusikan di seluruh server dan diimplementasikan dalam perangkat lunak.

Seperti RAID, ada beberapa cara berbeda Storage Spaces dapat melakukan hal ini, yang menjadikan tradeoff yang berbeda antara toleransi kesalahan, efisiensi penyimpanan, dan kompleksitas komputasi. Secara umum hal ini termasuk ke dalam dua kategori: "mirroring" dan "paritas," yang terakhir kadang-kadang disebut sebagai "erasure coding."

Mirroring

Mirroring memberikan toleransi kesalahan dengan menyimpan banyak salinan dari semua data. Hal ini lebih tepatnya mirip dengan RAID-1. Bagaimana data bergaris dan ditempatkan tidak sepele (lihat blog ini untuk mempelajari lebih lanjut), tetapi benar untuk mengatakan bahwa setiap data yang disimpan menggunakan pencerminan ditulis, secara keseluruhan, beberapa kali. Setiap salinan ditulis ke perangkat keras fisik yang berbeda (drive yang berbeda di server yang berbeda) yang diasumsikan akan gagal secara independen.

Anda dapat memilih antara dua macam mirroring - "dua arah" dan "tiga arah."

Mirror dua arah

Mirroring dua arah menulis dua salinan dari segala hal. Efisiensi penyimpanannya adalah sebanyak 50 persen – untuk menulis 1 TB data, Anda membutuhkan kapasitas penyimpanan fisik setidaknya sebesar 2 TB. Demikian juga, Anda memerlukan setidaknya dua 'domain kesalahan' perangkat keras - dengan Storage Spaces Direct, yang berarti dua server.

cermin dua arah

Peringatan

Jika Anda memiliki lebih dari dua server, sebaiknya gunakan mirroring tiga arah.

Mirror tiga arah

Mirroring tiga arah menulis tiga salinan dari segala hal. Efisiensi penyimpanannya adalah sebanyak 33,3 persen – untuk menulis 1 TB data, Anda membutuhkan kapasitas penyimpanan fisik setidaknya sebesar 3 TB. Demikian juga, Anda memerlukan setidaknya tiga domain kesalahan perangkat keras - dengan Storage Spaces Direct, yang berarti tiga server.

Mirroring tiga arah dapat dengan aman menoleransi setidaknya dua masalah perangkat keras (drive atau server) dalam satu waktu. Misalnya, jika Anda melakukan reboot pada satu server ketika drive atau server lain tiba-tiba gagal, semua data tetap aman dan dapat diakses terus-menerus.

cermin tiga arah

Paritas

Pengodean paritas, sering disebut "erasure coding," menyediakan toleransi kesalahan menggunakan aritmatika bitwise, yang bisa menjadi sangat rumit. Cara kerjanya kurang jelas daripada mirroring, dan ada banyak sumber daya online yang bagus (misalnya, Dummies Guide to Erasure Coding pihak ketiga ini) yang dapat membantu Anda memahami hal ini. Pengkodean tersebut bisa dikatakan memberikan efisiensi penyimpanan yang lebih baik tanpa mengorbankan toleransi kesalahan.

Storage Spaces menawarkan dua macam paritas - paritas "tunggal" dan paritas "ganda", yang terakhir menggunakan teknik tingkat lanjut yang disebut "local reconstruction codes" pada skala yang lebih besar.

Penting

Sebaiknya gunakan mirrorring untuk sebagian besar beban kerja yang sensitif terhadap performa. Untuk mempelajari selengkapnya tentang cara menyeimbangkan performa dan kapasitas sesuai beban kerja Anda, lihat Merencanakan volume.

Paritas tunggal

Paritas tunggal hanya menyimpan satu simbol paritas bitwise, yang menyediakan toleransi kesalahan terhadap satu kegagalan pada satu waktu saja. Hal ini lebih tepatnya mirip dengan RAID-5. Untuk menggunakan paritas tunggal, Anda memerlukan setidaknya tiga domain kesalahan perangkat keras - dengan Storage Spaces Direct, yang berarti tiga server. Karena mirroring tiga arah menyediakan lebih banyak toleransi kesalahan pada skala yang sama, sebaiknya Anda tidak menggunakan paritas tunggal. Tapi, ada di sana jika Anda bersikeras menggunakannya, dan didukung sepenuhnya.

Peringatan

Kami tidak menyarankan penggunaan paritas tunggal karena hanya dapat dengan aman menolerir satu kegagalan perangkat keras pada satu waktu: jika Anda melakukan reboot pada satu server ketika tiba-tiba drive atau server lain gagal, Anda akan mengalami waktu henti. Jika Anda hanya memiliki tiga server, sebaiknya gunakan mirroring tiga arah. Jika Anda memiliki empat atau lebih, lihat bagian berikutnya.

Paritas ganda

Paritas ganda mengimplementasikan kode koreksi-kesalahan Reed-Solomon untuk menyimpan dua simbol paritas bitwise, sehingga menyediakan toleransi kesalahan yang sama dengan mirroring tiga arah (yaitu hingga dua kegagalan sekaligus), tetapi dengan efisiensi penyimpanan yang lebih baik. Hal ini lebih tepatnya mirip dengan RAID-6. Untuk menggunakan paritas ganda, Anda memerlukan setidaknya empat domain kesalahan perangkat keras - dengan Storage Spaces Direct, yang berarti empat server. Pada skala itu, efisiensi penyimpanan adalah sebesar 50% - untuk menyimpan 2 TB data, Anda memerlukan kapasitas penyimpanan fisik sebesar 4 TB.

paritas ganda

Efisiensi penyimpanan paritas ganda meningkat jika Anda memiliki lebih banyak domain kesalahan perangkat keras, dari 50 persen hingga 80 persen. Misalnya, pada tujuh (dengan Storage Spaces Direct, itu berarti tujuh server) efisiensi melonjak menjadi 66,7 persen – untuk menyimpan 4 TB data, Anda hanya,membutuhkan kapasitas penyimpanan fisik sebesar 6 TB.

dual-parity-wide

Lihat bagian Ringkasan untuk efisiensi paritas ganda dan local reconstruction codes di setiap skala.

Local reconstruction codes

Storage Spaces memperkenalkan teknik tingkat lanjut yang dikembangkan oleh Microsoft Research yang disebut "local reconstruction codes," atau LRC. Pada skala besar, paritas ganda menggunakan LRC untuk membagi pengodean/decoding menjadi beberapa grup yang lebih kecil, untuk mengurangi overhead yang diperlukan untuk membuat penulisan atau pemulihan dari kegagalan.

Pada hard disk drive (HDD) ukuran grupnya adalah empat simbol; pada drive solid-statee (SSD), ukuran grupnya adalah enam simbol. Misalnya, berikut ini merupakan tampilan tata letak dengan hard disk drive dan 12 domain kesalahan perangkat keras (yang berarti 12 server) – ada dua grup dari empat simbol data. Hal ini mencapai efisiensi penyimpanan sebesar 72,7 persen.

kode rekonstruksi lokal

Kami merekomendasikan panduan yang mendalam namun sangat mudah dibaca ini tentang how local reconstruction codes handle various failure scenarios, and why they're appealing, oleh Claus Joergensen.

Paritas yang dipercepat cermin

Volume Storage Spaces Direct dapat terdiri dari sebagian mirror dan sebagian paritas. Menulis sampai terlebih dahulu di bagian mirror dan secara bertahap dipindahkan ke bagian paritas. Secara efektif, hal ini menggunakan mirroring untuk mempercepat erasure coding.

Untuk mencampur mirror tiga arah dan paritas ganda, Anda memerlukan setidaknya empat domain kesalahan, yang berarti empat server.

Efisiensi penyimpanan paritas mirror-accelerated berada di antara apa yang Anda dapatkan dari menggunakan semua mirror atau semua paritas, dan tergantung pada proporsi yang Anda pilih.

Penting

Sebaiknya gunakan mirrorring untuk sebagian besar beban kerja yang sensitif terhadap performa. Untuk mempelajari selengkapnya tentang cara menyeimbangkan performa dan kapasitas sesuai beban kerja Anda, lihat Merencanakan volume.

Ringkasan

Bagian ini merangkum jenis ketahanan yang tersedia di Storage Spaces Direct, persyaratan skala minimum untuk menggunakan setiap jenis, jumlah kegagalan yang dapat ditoleransi setiap jenis, dan efisiensi penyimpanan yang sesuai.

Jenis ketahanan

Ketahanan Toleransi kegagalan Efisiensi penyimpanan
Mirror dua arah 1 50,0%
Mirror tiga arah 2 33,3%
Paritas ganda 2 50,0% - 80,0%
Campuran 2 33,3% - 80,0%

Persyaratan skala minimum

Ketahanan Domain kesalahan minimum yang diperlukan
Mirror dua arah 2
Mirror tiga arah 3
Paritas ganda 4
Campuran 4

Tip

Kecuali Anda menggunakan toleransi kesalahan chassis atau rack, jumlah domain kesalahan mengacu pada jumlah server. Jumlah drive di setiap server tidak memengaruhi jenis ketahanan yang dapat Anda gunakan, selama Anda memenuhi persyaratan minimum untuk Storage Spaces Direct.

Efisiensi paritas ganda untuk penyebaran hibrid

Tabel ini menunjukkan efisiensi penyimpanan paritas ganda dan kode rekonstruksi lokal di setiap skala untuk penyebaran hibrid, yang berisi hard disk drive (HDD) dan solid-state drive (SSD).

Domain kesalahan Tata letak Efisiensi
2
3
4 RS 2+2 50,0%
5 RS 2+2 50,0%
6 RS 2+2 50,0%
7 RS 4+2 66,7%
8 RS 4+2 66,7%
9 RS 4+2 66,7%
10 RS 4+2 66,7%
11 RS 4+2 66,7%
12 LRC (8, 2, 1) 72,7%
13 LRC (8, 2, 1) 72,7%
14 LRC (8, 2, 1) 72,7%
15 LRC (8, 2, 1) 72,7%
16 LRC (8, 2, 1) 72,7%

Efisiensi paritas ganda untuk penyebaran all-flash

Tabel ini menunjukkan efisiensi penyimpanan paritas ganda dan kode rekonstruksi lokal di setiap skala untuk penyebaran all-flash, yang hanya berisi solid-state drive (SSD). Tata letak paritas dapat menggunakan ukuran grup yang lebih besar dan mencapai efisiensi penyimpanan yang lebih baik dalam konfigurasi all-flash.

Domain kesalahan Tata letak Efisiensi
2
3
4 RS 2+2 50,0%
5 RS 2+2 50,0%
6 RS 2+2 50,0%
7 RS 4+2 66,7%
8 RS 4+2 66,7%
9 RS 6+2 75,0%
10 RS 6+2 75,0%
11 RS 6+2 75,0%
12 RS 6+2 75,0%
13 RS 6+2 75,0%
14 RS 6+2 75,0%
15 RS 6+2 75,0%
16 LRC (12, 2, 1) 80,0%

Contoh

Kecuali Anda hanya memiliki dua server, sebaiknya gunakan mirroring tiga arah dan/atau paritas ganda, karena mereka menawarkan toleransi kesalahan yang lebih baik. Lebih tepatnya, mereka memastikan bahwa semua data tetap aman dan terus dapat diakses bahkan ketika dua domain kesalahan – dengan Storage Spaces Direct, yang berarti dua server - dipengaruhi oleh kegagalan yang terjadi secara terus menerus.

Contoh di mana semuanya tetap online

Keenam contoh ini menunjukkan apa yang dapat ditoleransi oleh mirrorring tiga arah dan/atau paritas ganda.

  • 1. Satu drive hilang (termasuk drive cache)
  • 2. Satu server hilang

fault-tolerance-examples-1-and-2

  • 3. Satu server dan satu drive hilang
  • 4. Dua drive hilang di server yang berbeda

fault-tolerance-examples-3-and-4

  • 5. Lebih dari dua drive hilang, selama paling banyak dua server terpengaruh
  • 6. Dua server hilang

fault-tolerance-examples-5-and-6

... dalam setiap kasus, semua volume tetap online. (Pastikan kluster Anda memelihara kuorum.)

Contoh di mana semuanya berjalan secara offline

Selama masa pakainya, Storage Spaces dapat menoleransi kegagalan sebanyak apa pun, karena Storage Spaces melakukan pemulihan ke ketahanan penuh setelah setiap kegagalan, jika diberi waktu yang cukup. Namun, paling banyak dua domain kesalahan dapat dengan aman dipengaruhi oleh kegagalan pada saat tertentu. Berikut ini adalah contoh dari apa yang tidak dapat ditoleransi oleh mirrorring tiga arah dan/atau paritas ganda.

  • 7. Drive hilang di tiga server atau lebih sekaligus
  • 8. Tiga server atau lebih hilang sekaligus

fault-tolerance-examples-7-and-8

Penggunaan

Lihat Buat volume.

Langkah berikutnya

Untuk bacaan lebih lanjut tentang topik yang disebutkan dalam artikel ini, lihat berikut ini: