Perangkat lunak mdadm Linux RAID 6 - apakah itu mendukung pemulihan bit korupsi?

15

Wikipedia mengatakan, "RAID 2 adalah satu-satunya level RAID standar, selain beberapa implementasi RAID 6, yang secara otomatis dapat memulihkan data yang akurat dari kerusakan bit-tunggal dalam data."

Adakah yang tahu jika implementasi RAID 6 mdadm di Linux adalah salah satu implementasi yang dapat secara otomatis mendeteksi dan memulihkan dari korupsi data bit tunggal. Ini berkaitan dengan CentOS / Red Hat 6 jika berbeda dari versi lain. Saya mencoba mencari secara online tetapi tidak memiliki banyak keberuntungan.

Dengan tingkat kesalahan SATA menjadi 1 dalam 1E14 bit, dan disk SATA 2TB yang mengandung 1,6E13 bit, ini sangat relevan untuk mencegah korupsi data.

EDIT 17-Jun-2015

Saya percaya ini kurang menjadi perhatian yang awalnya saya pikir - lihat Hard disk / SSD - deteksi dan penanganan kesalahan - apakah korupsi data diam-diam dapat dicegah? untuk lebih jelasnya

sa289
sumber

Jawaban:

15

RAID perangkat lunak Linux tidak akan melindungi Anda dari korupsi bit dan korupsi data diam adalah masalah yang terkenal dengannya. Bahkan, jika kernel dapat membaca data dari satu disk tidak akan pernah tahu bahwa itu buruk. RAID hanya menendang jika ada kesalahan I / O saat membaca data.

Jika Anda khawatir tentang integritas data, Anda harus mempertimbangkan untuk menggunakan sistem file seperti Btrfs atau ZFS yang memastikan integritas data dengan menyimpan dan memverifikasi checksum. Sistem file ini juga menangani fungsionalitas RAID, jadi Anda tidak perlu serangan perangkat lunak kernel jika Anda melakukannya.

chutz
sumber
Terima kasih. Jika itu membantu bagi siapa pun, saya mendapat beberapa gagasan pencarian lagi dari balasan chutz dan melihat bahwa pengelola mdadm (saya percaya) mengatakan pada 17 Februari 2011 bahwa ia tidak memiliki rencana untuk menambahkan kemampuan untuk memaksa memeriksa paritas pada setiap pembacaan. Lihat spinics.net/lists/raid/msg32816.html
sa289
3

RAID5 dan RAID6 dapat mendeteksi dan biasanya memperbaiki sedikit korupsi jika Anda memverifikasi paritas seluruh drive. Ini disebut "scrubbing" atau "parity checking" dan biasanya memakan waktu 24-48 jam pada sebagian besar sistem RAID produksi. Selama waktu itu kinerja dapat menurun secara signifikan. (Beberapa sistem memungkinkan operator untuk memprioritaskan menggosok pada akses baca / tulis atau di bawahnya.) RAID6 memiliki peluang lebih tinggi untuk memperbaikinya, karena itu dapat memperbaikinya jika Anda memiliki dua kegagalan drive, sedangkan RAID5 hanya dapat menangani 1 kegagalan drive, dan kegagalan drive lebih mungkin terjadi ketika Anda menggosok karena peningkatan aktivitas.

ay32
sumber
1
Tidak sepenuhnya benar bahwa kinerja akan menurun secara signifikan selama scrub RAID. Jika scrub menggunakan semua sumber daya sistem yang tersedia dan "bodoh" maka itu akan. Tetapi, semua SAN dan saya membayangkan sebagian besar pengontrol RAID akan menjalankan scrub pada prioritas yang lebih rendah atau "baik", menyesuaikan pemanfaatan sumber daya secara dinamis sehingga tidak mengkonsumsi sumber daya yang diperlukan untuk mempertahankan kinerja produksi.
Jeremy
Anda benar. Saya mengedit jawaban untuk menambahkan nuansa.
vy32
jika array raid 6 mdadm Anda adalah / dev / md1 maka adalah perintah untuk membuatnya memverifikasi paritas dan upaya perbaikan korupsi bit tunggal "echo check> / sys / block / md1 / md / sync_action"
BeowulfNode42
2
Mereka tidak "melindungi dari sedikit korupsi", mereka mendeteksi sedikit korupsi jika Anda menggosok. Lihat pertanyaan saya di sini untuk detailnya.
Saya sarankan mengubah jawaban untuk "RAID5 dan RAID6 mampu memperbaiki sedikit korupsi"
Waxhead
2

Saya ingin menambahkan ini sebagai komentar tetapi saya tidak memiliki reputasi yang cukup; Saya ingin mengklarifikasi: RAID5 dapat DETECT bit corruption tetapi tidak tahu drive mana yang memiliki korupsi tanpa kesalahan baca. Akibatnya, scrub tidak dapat memperbaikinya tanpa kesalahan baca - ini kemungkinan besar hanya akan mencatatnya dan memperbarui bit paritas agar sesuai. Algoritme RAID6 bergantung pada posisi sehingga dapat mendeteksi drive mana yang berisi kesalahan dan memperbaiki korupsi bit.

sbingner
sumber
Itu akan bagus jika itu benar! Bisakah Anda memberikan tautan di mana dokumen itu didokumentasikan ??
Alek_A
2

Semua jawaban di atas tidak benar mengenai kemampuan RAID 6. Algoritma RAID 6 mengoperasikan byte-by-byte seperti halnya RAID 5, dan jika satu byte pada setiap drive rusak, bahkan tanpa kesalahan yang ditunjukkan oleh drive, itu dapat dideteksi DAN DIPERBAIKI. Algoritma untuk melakukannya dijelaskan sepenuhnya dalam

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

Untuk melakukan pemeriksaan ini, drive P dan Q paritas juga harus dibaca bersama dengan drive data. Jika paritas yang dihitung P 'dan Q' berbeda tanpa kesalahan drive, analisis dapat menentukan drive mana yang salah, dan mengoreksi data.

Selain itu, jika identifikasi drive adalah drive yang tidak ada (seperti drive 137 jika hanya ada 15 drive), lebih dari satu drive menyediakan data yang rusak UNTUK BYTE YANG, menandakan kesalahan kesalahan yang tidak dapat diperbaiki. Ketika ada jauh lebih sedikit dari 256 drive di set, ini terdeteksi dengan probabilitas tinggi per byte, dan karena ada banyak byte dalam satu blok, dengan probabilitas sangat tinggi per blok. Jika identifikasi drive tidak konsisten untuk semua byte dalam blok RAID, sekali lagi, lebih dari satu drive menyediakan data yang rusak, dan umumnya orang mungkin menolak kondisi tersebut, tetapi selama semua identifikasi drive valid, blok tidak perlu selalu ditolak.

Diperlukan waktu lebih lama dari waktu verifikasi biasa untuk melakukan koreksi ini, tetapi hanya perlu dilakukan dengan sindrom (P dan Q) perhitungan menunjukkan kesalahan.

Semua ini dikatakan, bagaimanapun, saya belum memeriksa kode mdadm untuk menentukan apakah korupsi byte tunggal ditangani. Saya sadar bahwa mdadm melaporkan kesalahan sindrom RAID6 pada pemindaian bulanan, tetapi dari pesan kesalahan tidak jelas apakah mereka sedang diperbaiki - itu tidak menghentikan array drive atau mengidentifikasi drive tertentu dalam pesan.

Cafe Hunk
sumber