Formula untuk menghitung probabilitas kesalahan baca yang tidak dapat dipulihkan selama pembangunan kembali RAID

12

Saya ingin membandingkan keandalan sistem RAID yang berbeda dengan drive konsumen (URE / bit = 1e-14) atau perusahaan (URE / bit = 1e-15). Rumus untuk memiliki probabilitas keberhasilan membangun kembali (mengabaikan masalah mekanis, yang akan saya perhitungkan nanti) sederhana:

error_probability = 1 - (1-per_bit_error_rate) ^ bit_read

Penting untuk diingat adalah bahwa ini adalah kemungkinan mendapatkan setidaknya satu URE, tidak harus hanya satu.

Misalkan kita ingin ruang yang dapat digunakan 6 TB. Kita bisa mendapatkannya dengan:

  • RAID1 dengan 1 + 1 disk masing-masing 6 TB. Selama pembangunan kembali kami membaca kembali 1 disk 6TB dan risikonya adalah: 1- (1-1e-14) ^ (6e12 * 8) = 38% untuk konsumen atau 4,7% untuk drive perusahaan.

  • RAID10 dengan 2 + 2 disk masing-masing 3 TB. Selama rekondisi kita membaca kembali hanya 1 disk 3TB (yang dipasangkan dengan yang gagal!) Dan risikonya lebih rendah: 1- (1-1e-14) ^ (3e12 * 8) = 21% untuk konsumen atau 2,4% untuk drive perusahaan.

  • RAID5 / RAID Z1 dengan 2 + 1 disk masing-masing 3TB. Selama rekondisi kami membaca kembali 2 disk masing-masing 3TB dan risikonya adalah: 1- (1-1e-14) ^ (2 * 3e12 * 8) = 38% untuk konsumen atau 4,7% atau drive perusahaan.

  • RAID5 / RAID Z1 dengan 3 + 1 disk masing-masing 2 TB (sering digunakan oleh pengguna produk SOHO seperti Synologys). Selama pembangunan kembali kami membaca kembali 3 disk masing-masing 2TB dan risikonya adalah: 1- (1-1e-14) ^ (3 * 2e12 * 8) = 38% untuk konsumen atau 4,7% atau drive perusahaan.

Menghitung kesalahan untuk toleransi disk tunggal mudah, lebih sulit menghitung probabilitas dengan sistem toleran terhadap kegagalan beberapa disk (RAID6 / Z2, RAIDZ3).

Jika hanya disk pertama yang digunakan untuk membangun kembali dan disk kedua dibaca lagi dari awal dalam kasus atau URE, maka probabilitas kesalahan adalah yang dihitung di atas kuadrat berakar (14,5% untuk konsumen RAID5 2 + 1, 4,5% untuk konsumen RAID1 1 + 2). Namun, saya kira (setidaknya di ZFS yang memiliki checksum penuh!) Bahwa disk paritas kedua / tersedia hanya dibaca jika diperlukan, artinya hanya beberapa sektor yang diperlukan: berapa banyak URE yang dapat terjadi pada disk pertama? tidak banyak, jika tidak, probabilitas kesalahan untuk sistem toleransi disk tunggal akan meroket bahkan lebih dari yang saya hitung.

Jika saya benar, disk paritas kedua praktis akan menurunkan risiko ke nilai yang sangat rendah.

Selain pertanyaan, penting untuk diingat bahwa produsen meningkatkan kemungkinan URE untuk drive kelas konsumen karena alasan pemasaran (menjual lebih banyak drive kelas perusahaan), oleh karena itu bahkan HDD kelas konsumen diharapkan mencapai 1E-15 URE / bit read .

Beberapa data: http://www.high-rely.com/hr_66/blog/why-raid-5-stops-working-in-2009-not/

Nilai-nilai yang saya berikan dalam tanda kurung (drive perusahaan) karenanya secara realistis berlaku untuk drive konsumen juga. Dan drive perusahaan nyata memiliki keandalan yang lebih tinggi (URE / bit = 1e-16).

Mengenai kemungkinan kegagalan mekanis, mereka sebanding dengan jumlah disk dan sebanding dengan waktu yang dibutuhkan untuk membangun kembali.

FarO
sumber
1
Hai Olaf! Sejauh yang saya ketahui, pertanyaan ini tampaknya agak terlalu spesifik untuk perangkat keras komputer sehingga tidak cocok untuk Matematika , tetapi Anda dapat bertanya di situs meta mereka jika mereka ingin memiliki pertanyaan Anda. Jika itu masalahnya, tandai lagi dan kami akan dengan senang hati memindahkannya untuk Anda!
slhck
2
Bagaimana tepatnya Anda tiba di probabilitas URE 38% untuk RAID5 dengan 3 drive? Menggunakan URE = 10 ^ 14, HDD = 3.5 * 1024 ^ 4 byte saya mendapatkan 3,8% URE per drive dan 11,1% untuk URE saat membangun kembali. Yaitu: 100 * (1- (1- (hdd / ure)) ^ 3). Saya pikir angka Anda sedikit turun (meskipun tingkat kegagalan praktis lebih tinggi dari apa yang dinyatakan oleh produsen). Karena tingkat kesalahan diberikan per bit dibaca per drive dan bukan per bit dibaca, saya pikir bagian di mana Anda menggunakan ^ bit_read salah. Mungkin memberi lebih detail tentang bagaimana Anda menghitung peluang itu? +1 untuk pertanyaan menarik. cs.cmu.edu/~bianca/fast07.pdf
Ярослав Рахматуллин
Menambahkan info dan memeriksa perhitungan.
FarO

Jawaban:

2

Ada sejumlah situs dan artikel yang berupaya menjawab pertanyaan ini.

Situs ini memiliki kalkulator untuk level RAID 0, 5, 10/50/60.

Artikel wikipedia pada tingkat RAID memiliki bagian tentang tingkat kegagalan RAID 0 dan RAID 1.

RAID 0 :

Keandalan dari set RAID 0 yang diberikan sama dengan reliabilitas rata-rata dari setiap disk dibagi dengan jumlah disk di set:

Yaitu, keandalan (yang diukur dengan mean time to failure (MTTF) atau mean time between failure (MTBF)) secara kasar berbanding terbalik dengan jumlah anggota - sehingga satu set dua disk kira-kira setengah dapat diandalkan dibandingkan dengan disk tunggal. Jika ada probabilitas 5% bahwa disk akan gagal dalam waktu tiga tahun, dalam dua disk array, probabilitas itu akan meningkat menjadi {P} (setidaknya satu gagal) = 1 - {P} (tidak gagal) = 1 - (1 - 0,05) ^ 2 = 0,0975 = 9,75%.

RAID 1 :

Sebagai contoh yang disederhanakan, pertimbangkan RAID 1 dengan dua model disk drive yang identik, masing-masing dengan probabilitas 5% bahwa disk tersebut akan gagal dalam tiga tahun. Asalkan kegagalan secara statistik independen, maka probabilitas kedua disk gagal selama masa tiga tahun adalah 0,25%. Dengan demikian, probabilitas kehilangan semua data adalah 0,25% selama periode tiga tahun jika tidak ada yang dilakukan untuk array.



Juga saya telah menemukan beberapa artikel blog tentang subjek ini termasuk yang satu ini yang mengingatkan kita drive independen dalam sistem (saya di RAID) mungkin tidak independen yang setelah semua:

Teori naif adalah bahwa jika hard disk 1 memiliki probabilitas kegagalan 1/1000 dan demikian juga disk 2, maka probabilitas keduanya gagal adalah 1 / 1.000.000. Itu mengasumsikan kegagalan secara statistik independen, tetapi mereka tidak. Anda tidak bisa melipatgandakan probabilitas seperti itu kecuali kegagalannya tidak berkorelasi. Salah mengasumsikan independensi adalah kesalahan umum dalam menerapkan probabilitas, mungkin kesalahan yang paling umum.

Joel Spolsky mengomentari masalah ini di podcast StackOverflow terbaru. Ketika sebuah perusahaan membuat RAID, mereka dapat mengambil empat atau lima disk yang keluar dari jalur perakitan bersama-sama. Jika salah satu disk ini memiliki sedikit cacat yang menyebabkannya gagal setelah mengatakan 10.000 jam penggunaan, kemungkinan mereka semua melakukannya. Ini bukan hanya kemungkinan teoretis. Perusahaan telah mengamati kumpulan disk yang semuanya gagal dalam waktu yang bersamaan.

Brad Patton
sumber