Mengapa level RAID bersarang 1 + 5 atau 1 + 6 hampir tidak pernah terdengar? The tingkat bersarang RAID artikel Wikipedia saat ini hilang bagian mereka. Saya tidak mengerti mengapa mereka tidak lebih umum daripada RAID 1 + 0, terutama bila dibandingkan dengan RAID 1 + 0 mirroring tiga.
Jelas bahwa waktu pembangunan kembali menjadi semakin bermasalah karena kapasitas drive meningkat lebih cepat daripada kinerja atau keandalannya. Saya diberitahu bahwa RAID 1 membangun kembali lebih cepat dan bahwa RAID 0 array RAID 1 pasang menghindari masalah, tetapi tentunya demikian juga dengan RAID 5 atau 6 array RAID 1 pasang. Saya setidaknya berharap mereka menjadi alternatif umum untuk RAID 1 + 0.
Untuk 16 dari 1TB drive, berikut adalah perhitungan saya tentang kemungkinan naif untuk menggunakan cadangan, yaitu dengan asumsi penyederhanaan bahwa drive independen dengan probabilitas genap:
RAID | storage | cumulative probabilities of resorting to backup /m
1+0 | 8TB | 0, 67, 200, 385, 590, 776, 910, 980, 1000, 1000, 1000
1+5 | 7TB | 0, 0, 0, 15, 77, 217, 441, 702, 910, 1000, 1000
1+6 | 6TB | 0, 0, 0, 0, 0, 7, 49, 179, 441, 776, 1000
(m = 0.001, i.e. milli.)
Jika ini benar maka cukup jelas bahwa RAID 1 + 6 secara luar biasa lebih dapat diandalkan daripada RAID 1 + 0 hanya dengan pengurangan 25% dalam kapasitas penyimpanan. Seperti halnya pada umumnya, throughput penulisan teoritis (tidak termasuk waktu pencarian) adalah kapasitas penyimpanan / ukuran array × jumlah drive × throughput tulis dari drive paling lambat dalam array (level RAID dengan redundansi memiliki amplifikasi tulis yang lebih tinggi untuk penulisan yang jangan mengisi garis tetapi ini tergantung pada ukuran chunk), dan throughput baca teoretis adalah jumlah dari throughput baca dari drive dalam array (kecuali bahwa RAID 0, RAID 5, dan RAID 6 masih secara teori dapat dibatasi oleh drive yang paling lambat, paling lambat 2, dan 3 paling lambat membaca throughput masing-masing). Yaitu, dengan asumsi drive identik, itu akan menjadi masing-masing 8 ×, 7 ×,
Selain itu, pertimbangkan RAID 0 empat kali lipat dari RAID 1 tiga kali lipat, yaitu RAID 1 + 0 mirroring tiga kali lipat dari 12 drive, dan RAID 6 sextuple dari pasangan RAID 1, yaitu RAID 1 + 6 dari 12 drive. Sekali lagi, ini adalah drive 1TB yang identik. Kedua tata letak memiliki jumlah drive yang sama (12), jumlah kapasitas penyimpanan yang sama (4TB), proporsi redundansi yang sama (2/3), throughput tulis maksimum yang sama (4 ×), dan throughput baca maksimum yang sama ( 12 ×). Berikut perhitungan saya (sejauh ini):
RAID | cumulative probabilities of resorting to backup /m
1+0 (4×3) | 0, 0, 18, ?, ?, ?, ?, ?, 1000
1+6 (6×2) | 0, 0, 0, 0, 0, 22, 152, 515, 1000
Ya, ini mungkin terlihat seperti berlebihan, tetapi di mana triple mirroring digunakan untuk memisahkan klon untuk cadangan, RAID 1 + 6 juga dapat digunakan, hanya dengan membekukan dan menghapus 1 setiap drive dari semua kecuali 2 RAID. 1 pasang, dan saat melakukannya, masih memiliki keandalan yang jauh lebih baik ketika terdegradasi daripada RAID 1 + 0 array yang terdegradasi. Berikut adalah perhitungan saya untuk 12 drive yang terdegradasi oleh 4 dengan cara ini:
RAID | cumulative probabilities of resorting to backup /m
1+0 (4×3) | (0, 0, 0, 0), 0, 143, 429, 771, 1000
1+6 (6×2) | (0, 0, 0, 0), 0, 0, 71, 414, 1000
Namun, membaca throughput dapat diturunkan hingga 6 × selama waktu ini untuk RAID 1 + 6, sedangkan RAID 1 + 0 hanya dikurangi menjadi 8 ×. Namun demikian, jika drive gagal saat array dalam keadaan terdegradasi, array RAID 1 + 6 akan memiliki peluang 50–50 untuk tetap di sekitar 6 × atau dibatasi lebih lanjut hingga 5 ×, sedangkan array RAID 1 + 0 akan dibatasi hingga kemacetan 4 × . Throughput penulisan seharusnya tidak terpengaruh (bahkan dapat meningkat jika drive yang diambil untuk cadangan adalah drive yang paling lambat).
Bahkan, keduanya dapat dilihat sebagai 'mirroring tiga' karena array RAID 1 + 6 yang terdegradasi mampu memisahkan kelompok RAID 6 tambahan dari 4 drive. Dengan kata lain, tata letak RAID 1 + 6 12-drive ini dapat dibagi menjadi 3 array RAID 6 yang terdegradasi (namun fungsional)!
Jadi apakah hanya sebagian besar orang yang tidak masuk matematika secara terperinci? Apakah kita akan melihat lebih banyak RAID 1 + 6 di masa depan?
Jawaban:
Secara umum saya akan mengatakan RAID 1 + 0 akan cenderung lebih banyak digunakan daripada 1 + 5 atau 1 + 6 karena RAID 1 + 0 cukup andal dan memberikan kinerja yang sedikit lebih baik dan penyimpanan yang lebih bermanfaat.
Saya pikir sebagian besar orang akan menganggap kegagalan pasangan RAID 1 penuh dalam grup RAID 1 + 0 sebagai peristiwa yang sangat langka yang layak untuk dicadangkan untuk cadangan - dan mungkin tidak terlalu antusias untuk mendapatkan di bawah 50% dari fisik mereka. disk sebagai ruang yang dapat digunakan.
Jika Anda membutuhkan keandalan yang lebih baik daripada RAID 1 + 0, maka lakukanlah! ..tapi kebanyakan orang mungkin tidak membutuhkannya.
sumber
Jawaban praktisnya terletak di persimpangan spesifikasi pengontrol RAID perangkat keras, ukuran disk rata-rata, faktor bentuk drive, dan desain server.
Sebagian besar pengontrol RAID perangkat keras terbatas pada level RAID yang didukungnya. Berikut adalah opsi RAID untuk pengontrol HP ProLiant Smart Array:
Catatan: "adm" hanya mirroring tiga
Dukungan pengontrol RAID LSI:
0, 1, 5, 6, 10, 50, and 60
Jadi pengendali ini hanya mampu RAID 50 dan 60 sebagai level bersarang. LSI ( née Dell PERC ) dan HP terdiri dari sebagian besar pasar adaptor penyimpanan server perusahaan. Itulah alasan utama Anda tidak melihat sesuatu seperti RAID 1 + 6, atau RAID 61 di lapangan.
Di luar pertimbangan itu, level RAID yang bersarang di luar RAID 10 memerlukan jumlah disk yang relatif besar. Dengan meningkatnya kapasitas drive yang tersedia saat ini (dengan drive SAS dan SATA nearline 3,5 "), ditambah dengan fakta bahwa banyak sasis server dirancang di sekitar sangkar drive 8 x 2,5", tidak ada banyak peluang untuk mengkonfigurasi secara fisik RAID 1+ 6, atau RAID 61.
Area di mana Anda mungkin melihat sesuatu seperti RAID 1 + 6 akan menjadi solusi RAID perangkat lunak chassis besar. Linux MD RAID atau ZFS pasti mampu melakukannya. Tetapi pada saat itu, kegagalan drive dapat dikurangi dengan disk panas atau dingin. Keandalan RAID tidak banyak masalah akhir-akhir ini, asalkan Anda menghindari level RAID dan kombinasi perangkat keras yang beracun (mis., Disk RAID 5 dan 6TB). Selain itu, kinerja membaca dan menulis akan diabstraksi dengan lapisan tiering dan caching. Beban kerja penyimpanan rata-rata biasanya mendapat manfaat dari satu atau yang lain.
Jadi pada akhirnya, sepertinya kebutuhan / permintaan tidak ada.
sumber
Anda memiliki pengembalian yang menurun pada keandalan. RAID 6 sangat tidak mungkin untuk menambah kegagalan bahkan pada drive SATA jahat dengan tingkat UBER 1 banding 10 ^ 14. Pada drive FC / SAS, UBER Anda adalah 1 dalam 10 ^ 16 dan Anda juga mendapatkan kinerja yang jauh lebih baik.
Keandalan grup RAID tidak melindungi Anda dari penghapusan tidak disengaja. (jadi Anda tetap membutuhkan cadangan)
melampaui tingkat RAIDing tertentu, peluang Anda untuk kegagalan gabungan pada disk menjadi lebih rendah daripada kegagalan gabungan infrastruktur pendukung (daya, jaringan, kebocoran AC, dll.)
Tulis penalti. Setiap tulisan yang masuk pada RAID 61 Anda akan memicu 12 operasi IO (selesai secara naif). RAID 6 sudah menyakitkan dalam skenario 'tingkat rendah' dalam hal IOP per penulisan acak TB. (dan di tingkat yang lebih tinggi, tingkat kegagalan Anda 100x lebih baik)
ini bukan 'pengurangan 25%' itu pengurangan 25% lebih lanjut . 16TB Anda berubah menjadi 6TB. Jadi Anda mendapatkan 37,5% penyimpanan yang dapat digunakan. Anda membutuhkan disk 3x lebih banyak per kapasitas, dan ruang pusat data 3x lebih banyak. Anda mungkin akan mendapatkan lebih banyak keandalan dengan hanya membuat set RAID6 yang lebih kecil. Saya belum melakukan perhitungan angka, tetapi coba - misalnya jumlah RAID 6 dalam 3x 3 + 2 set (15 drive, lebih sedikit overhead penyimpanan daripada RAID10 Anda). Atau melakukan mirror 3 way sebagai gantinya.
Karena itu - ini lebih umum daripada yang Anda pikirkan untuk melakukannya untuk multi-situs DR. Saya menjalankan array penyimpanan yang direplikasi di mana saya punya kelompok RAID5 / 6 / DP RAID asinkron atau sinkron ke situs DR. (Jangan melakukan sinkronisasi jika Anda mungkin bisa menghindarinya - itu terlihat bagus, itu sebenarnya mengerikan).
Dengan NetApps saya, itu adalah metrocluster dengan beberapa agregat cermin. Dengan VMAX saya, kami telah Symmetrix Remote Data Facility (SRDF). Dan 3PAR saya melakukan copy jarak jauh.
Itu mahal, tetapi menyediakan tingkat DR 'data center catching fire'.
Mengenai mirror ganda - Saya sudah menggunakannya, tetapi bukan sebagai langkah-langkah ketahanan RAID langsung, melainkan sebagai klon penuh sebagai bagian dari strategi cadangan. Sinkronkan mirror ketiga, pisahkan, pasang di server yang terpisah dan buat cadangannya menggunakan infrastruktur yang sama sekali berbeda. Dan terkadang memutar cermin ketiga sebagai opsi pemulihan.
Poin yang saya coba sampaikan adalah bahwa dalam pengalaman langsung saya sebagai admin penyimpanan - dalam ~ 40.000 spindle estate (ya, kami mengganti puluhan drive setiap hari) - kami harus pergi ke cadangan untuk berbagai alasan dalam 5 tahun terakhir, tetapi tidak satupun dari mereka yang gagal RAID grup. Kami memperdebatkan manfaat relatif dan waktu pemulihan yang dapat diterima, titik pemulihan, dan jendela pemadaman. Dan yang mendasari semua ini SELALU adalah biaya ketahanan ekstra.
Array kami semua scrub dan kegagalan media memprediksi, dan secara agresif menyimpan dan menguji drive.
Bahkan jika ada implementasi RAID yang sesuai, biaya-manfaatnya tidak ada. Uang yang dihabiskan untuk ruang penyimpanan akan lebih baik diinvestasikan dalam retensi yang lebih lama atau siklus cadangan yang lebih sering. Atau komunikasi yang lebih cepat. Atau spindle yang umumnya lebih cepat, karena meskipun dengan angka ketahanan yang sama, pembangunan kembali suku cadang yang lebih cepat meningkatkan probabilitas kegagalan gabungan Anda.
Jadi saya pikir saya akan menawarkan jawaban untuk pertanyaan Anda:
Anda tidak sering melihat RAID 1 + 6 dan 1 + 5, karena manfaat biaya tidak menumpuk. Mengingat jumlah uang yang terbatas, dan mengingat kebutuhan untuk mengimplementasikan solusi cadangan, yang Anda lakukan hanyalah mengeluarkan uang untuk mengurangi frekuensi pemadaman Anda. Ada cara yang lebih baik untuk menghabiskan uang itu.
sumber
Sistem modern dan canggih tidak menerapkan bentuk seperti itu karena terlalu rumit, sama sekali tidak perlu, dan bertentangan dengan kemiripan efisiensi.
Seperti yang telah ditunjukkan orang lain, perbandingan ruang mentah dengan ruang yang dapat digunakan pada dasarnya adalah 3: 1. Itu pada dasarnya adalah tiga salinan (dua salinan berlebihan). Karena biaya perhitungan "raid6" (dua kali lipat, jika dicerminkan), dan hilangnya IOPS yang dihasilkan, ini sangat tidak efisien. Dalam ZFS, yang dirancang dan disetel dengan sangat baik, solusi yang setara, berdasarkan kapasitas, adalah membuat strip cermin 3 arah.
Sebagai contoh, alih-alih cermin bentuk raid6 / raidz2 6-arah (total 12 drive), yang akan sangat tidak efisien (juga bukan sesuatu yang ZFS punya mekanisme untuk implementasikan), Anda akan memiliki cermin 3-arah 3 arah (juga 12 drive). Dan bukannya 1 drive senilai IOPS, Anda akan memiliki 4 drive senilai IOPS. Terutama dengan mesin virtual, itu perbedaan yang sangat besar. Bandwidth total untuk dua bentuk ini mungkin sangat mirip dalam urutan baca / tulis, tetapi garis cermin 3-arah pasti akan lebih responsif dengan baca / tulis acak.
Singkatnya: raid1 + 6 secara umum tidak praktis, tidak efisien, dan tidak mengejutkan bahwa tidak ada orang yang serius dengan penyimpanan yang ingin dikembangkan.
Untuk memperjelas perbedaan IOPS: Dengan cermin bentuk raid6 / raidz2, dengan setiap penulisan, ke-12 drive harus bertindak sebagai satu. Tidak ada kemampuan untuk bentuk total untuk membagi aktivitas menjadi beberapa tindakan yang beberapa bentuk dapat lakukan secara mandiri. Dengan strip cermin 3 arah, setiap penulisan mungkin merupakan sesuatu yang hanya harus ditangani oleh satu dari 4 cermin, sehingga penulisan lain yang masuk tidak harus menunggu seluruh bentuk omnibus untuk ditangani sebelum melihat tindakan selanjutnya. .
sumber
Karena tidak ada yang mengatakannya secara langsung: Kinerja penulisan Raid6 tidak jauh lebih buruk. Ini mengerikan di luar deskripsi jika diletakkan di bawah beban.
Menulis berurutan adalah OK dan selama caching, menulis penggabungan dll dapat menutupinya, itu terlihat ok. Di bawah beban tinggi, hal-hal terlihat buruk dan ini adalah alasan utama pengaturan 1 + 5/6 hampir tidak pernah digunakan.
sumber
Mencari waktu
Masalahnya adalah bahwa, amplifikasi pencarian tulis berperilaku sangat berbeda dengan amplifikasi throughput tulis . Amplifikasi throughput tulis minimal dengan paritas terjadi ketika seluruh strip dituliskan sekaligus (sebut saja kata sifat ini 'strip penuh') namun amplifikasi pencarian tulis minimal terjadi, sebaliknya, ketika seluruh penulisan yang mengikuti pencarian di perangkat virtual cocok dengan sepotong tunggal. Sebelum masuk ke detail, hubungan lebih mudah disampaikan dalam bentuk tabulasi:
di mana n adalah jumlah total drive, n₁ adalah jumlah drive dalam grup RAID 1, dan n₅ dan n₆ adalah jumlah grup dalam array RAID 5 atau RAID 6 masing-masing. Contoh terkait dengan contoh 12-drive dalam pertanyaan (baris yang relevan adalah '
*bolded*
'); contoh untuk level RAID 1 + 0, 1 + 5, 1 + 6 masing-masing adalah 4 × 3, 6 × 2, 6 × 2.Perhatikan bahwa hanya faktor amplifikasi throughput tulis jalur penuh yang secara langsung terkait dengan proporsi redundansi. Kotak-kotak tunggal lebih rumit bagi mereka yang memiliki paritas. Mereka muncul karena menulis potongan tunggal memerlukan pembacaan mana yang paling mudah dari potongan paritas atau potongan data lainnya, sebelum menulis potongan paritas bersama dengan potongan data baru. (Mereka tidak langsung multiplikasi karena pembacaan yang diinduksi harus dikalikan dengan masing-masing throughput baca / cari faktor amplifikasi untuk RAID 1, keduanya 1; lihat di bawah.)
Sayangnya, memilih ukuran chunk yang meminimalkan amplifikasi throughput tulis ekstra ini memiliki efek samping yang sebenarnya memaksimalkanPenulisan mencari amplifikasi. Untuk tulisan kecil dengan waktu tulis yang dapat diabaikan dibandingkan dengan waktu mencari, kinerja penulisan garis-garis dengan ukuran potongan yang sangat kecil (menjadi garis-penuh) hanya 1 ×, seperti mirroring, karena memerlukan semua drive untuk mencari potongan untuk setiap penulisan dan throughput yang diperoleh dari memobilisasi semua drive ini tidak relevan. Ini telah membagi rasio waktu menulis untuk mencari waktu dengan jumlah drive dalam array, tetapi untuk menulis kecil ini sudah dapat diabaikan. Tidak masuk akal untuk menggunakan ukuran chunk yang sangat kecil sehingga membuat tulisan kecil menjadi full-stripe. Untuk menulis yang cukup kecil untuk merasakan efek pencarian, yang terbaik adalah mereka cocok dalam satu potongan.
Catatan: Kolom 2 throughput tengah dapat diabaikan dengan ukuran chunk yang masuk akal yang lebih besar dari pada penulisan yang waktu pencariannya signifikan, tetapi cukup kecil sehingga tulisan besar berukuran penuh. Ukuran potongan besar dari kolom throughput ke-2 lebih mirip dengan drive yang direntang. Tulisan 'kecil' adalah di mana efek throughput dapat diabaikan.
Memiliki ukuran chunk kecil yang tidak tepat juga meningkatkan efek mencari amplifikasi untuk dibaca, meskipun tidak sebanyak dan hanya dalam case full-stripe.
Catatan: 'ke n' adalah karena ketika hanya ada satu pembacaan yang terjadi secara bersamaan, secara teori dimungkinkan untuk memobilisasi semua drive untuk mencari ke tempat yang tepat dan secara bersama-sama membaca data untuk throughput baca bersebelahan maksimum yang besar.
Catatan: Sekali lagi, kolom 2 throughput tengah dapat diabaikan mengingat ukuran potongan yang masuk akal. Kolom throughput ke-3 sekali lagi terkait erat dengan proporsi redundansi.
Namun, ukuran bongkahan yang cukup besar berarti bacaan kecil tidak pernah penuh. Jadi mengingat implementasi yang efisien dan ukuran chunk yang tepat, kinerja baca harus proporsional dengan jumlah drive yang identik saat tidak terdegradasi.
Jadi sebenarnya, 'faktor amplifikasi' jauh lebih rumit daripada rumus dalam pertanyaan, di mana hanya amplifikasi throughput jalur penuh yang dipertimbangkan. Secara khusus, kinerja penulisan 6 × 2 RAID 1 + 6 untuk penulisan bersamaan yang cukup kecil untuk diikat akan lebih buruk daripada kinerja 4 × 3 RAID 1 + 0. Dan untuk penulisan kecil, yang semuanya dicari, kinerja hanya dapat sekitar sepertiga dari yang 4 × 3 RAID 1 + 0 di terbaik absolut (yaitu diberi implementasi yang sempurna).
Setelah menyelesaikan masalah itu, perbandingan 12-drive tidak memiliki pemenang langsung:
Catatan 1: Salinan lengkap dari data yang disimpan masing-masing adalah RAID 0 quadruple atau array RAID 6 4/6 yang terdegradasi. Catatan 2: Ada kemungkinan bahkan apakah kegagalan drive menyinggung salah satu dari 4 pasangan RAID 1 terdegradasi atau menurunkan salah satu dari 2 pasangan normal.
Namun demikian, itu akan menggandakan kinerja membaca dari array RAID 6 dari 6 drive dan throughput menulis kecil harus 25% lebih baik (1,5 / 1.2) karena bacaan wajib dibagi antara pasangan RAID 1, dan RAID 6 jelas tidak memiliki aplikasi yang cocok, sehingga dalam aplikasi ketersediaan tinggi yang memiliki menulis yang lebih besar atau yang lebih prihatin tentang kinerja membaca dari menulis kinerja, mungkin ada adalah ceruk untuk RAID 1 + 6 afterall. Tapi bukan itu saja ...
Kompleksitas
Ini masih hanya dalam teori sejauh ini (sebagian besar kombinatorik ), dalam praktiknya kompleksitas akan berarti bahwa implementasi RAID 1 + 6 mungkin memiliki kekurangan yang kehilangan peluang dan tidak mencapai hasil teoritis. RAID 6 sudah lebih kompleks, dan bersarang menambah sedikit kompleksitas di atas ini.
Sebagai contoh, itu tidak segera jelas bahwa 6 × 2 RAID 1 + 6 dapat diabstraksikan sebagai memiliki 3 kepala baca virtual independen yang mampu secara bersamaan membaca 3 besar membaca bersebelahan pada throughput 4 × masing-masing, sama seperti 4 × 3 RAID 1 + 0. Cukup membuat 6 pasangan RAID 1 dalam array RAID 6 menggunakan perangkat lunak RAID mungkin tidak begitu elegan; implementasinya mungkin bodoh dan berlebihan (saya belum menguji hipotesis ini).
Kompleksitas juga menghadirkan peningkatan biaya pengembangan implementasi dan alat. Meskipun mungkin ada aplikasi yang dapat mengambil manfaat dari sarang seperti itu, perbaikannya mungkin tidak sebanding dengan biaya pengembangan.
sumber