Jika sistem RAID5 mengalami URE selama pembangunan kembali, apakah semua data hilang?

23

Saya memahami argumen tentang peningkatan drive yang lebih besar kemungkinan mengalami URE selama pembangunan kembali, namun saya tidak yakin apa implikasi sebenarnya untuk ini. Jawaban ini mengatakan bahwa seluruh pembangunan kembali gagal, tetapi apakah ini berarti bahwa semua data tidak dapat diakses? Kenapa bisa begitu? Tentunya satu URE tunggal dari satu sektor pada drive hanya akan berdampak pada data yang terkait dengan beberapa file, paling banyak. Bukankah array masih akan dibangun kembali, hanya dengan beberapa korupsi kecil ke beberapa file?

(Saya secara khusus tertarik pada implementasi Z5 dari RAID5 di sini, tetapi logikanya tampaknya sama untuk implementasi RAID5.)

proses91
sumber
1
Secara umum, ketika "kemungkinan mengalami URE selama pembangunan kembali " dibahas dalam konteks risiko RAID5, asumsi tersirat adalah bahwa korupsi sebelumnya telah terjadi yang menyebabkan pembangunan kembali diperlukan. Dengan kata lain, "URE selama pembangunan kembali" adalah URE kedua , dan memang SEMUA data akan hilang.
Colt
1
@ Kapas - Saya mengerti itu implikasinya, tetapi apa yang saya tidak mengerti adalah mengapa satu URE (yang, dalam analisis mengapa RAID5 tidak direkomendasikan, tampaknya merujuk ke sektor yang buruk) akan berarti bahwa semua data akan tersesat. Secara umum, jika saya kehilangan 1 drive array RAID5 maka saya masih memiliki semua data. Jika saya juga kehilangan satu sektor dari drive yang tersisa maka ada kemungkinan saya kehilangan data yang disimpan di sektor itu, tetapi jika sektor itu adalah (misalnya) ruang kosong maka saya tidak peduli, dan jika sektor itu memang memiliki data di atasnya maka itu hanya dapat berdampak pada beberapa file.
process91
@Colt - Berdasarkan jawaban di bawah ini, sepertinya gagal membangun kembali array dalam keadaan URE tunggal adalah pilihan yang dibuat oleh produsen perangkat keras RAID. Menurut pendapat saya, ini adalah pilihan yang salah, tetapi untungnya tampaknya ZFS melakukannya secara berbeda.
process91
Lihat jawaban @ shodanshok untuk prosesnya. Mengenai alasannya, RAID adalah untuk menyediakan kesinambungan akses ke data yang dapat diandalkan untuk proses lain, aplikasi, dll., Dan bukan tentang cadangan. Alasan mengapa banyak (sebagian besar?) Pengendali perangkat keras membatalkan setelah URE terjadi dalam membangun kembali adalah bahwa RAID tidak dapat lagi melakukan apa yang seharusnya dilakukan . Pada titik ini, cadangan harus digunakan untuk memiliki data yang andal. Cara lain untuk menggunakan RAID adalah tidak melakukan pembangunan kembali sama sekali, tetapi cukup gunakan RAID untuk mengontrol waktu pemulihan dari cadangan. Juga, ini memungkinkan waktu untuk membuat cadangan terakhir sebelum pemulihan.
Colt
Perhatikan bahwa “implementasi ZFS dari RAID5” disebut “raidz” atau “zraid” dan berbeda dari perangkat keras RAID5. Anda biasanya akan mendapatkan jawaban yang lebih baik tentang "ZFS RAID5" yang menanyakan tentang "raidz"
Josh

Jawaban:

24

Itu sangat tergantung pada implementasi RAID spesifik:

  • sebagian besar perangkat keras RAID akan membatalkan rekonstruksi dan beberapa juga akan menandai array gagal , membawanya turun. Alasannya adalah bahwa jika URE terjadi selama RAID5 membangun kembali itu berarti beberapa data yang hilang, maka akan lebih baik untuk sepenuhnya menghentikan array bukan yang mempertaruhkan data korupsi diam. Catatan: beberapa perangkat keras RAID (terutama berbasis LSI) sebagai gantinya akan menusuk array, memungkinkan pembangunan kembali untuk melanjutkan sambil menandai sektor yang terkena sebagai tidak dapat dibaca (mirip dengan bagaimana perangkat lunak RAID Linux berperilaku).

  • RAID perangkat lunak linux dapat diinstruksikan untuk a) menghentikan pembangunan kembali array (satu-satunya perilaku MDRAID / kernel build "kuno) atau b) melanjutkan dengan proses pembangunan kembali yang menandai beberapa LBA sebagai buruk / tidak dapat diakses. Alasannya adalah bahwa lebih baik membiarkan pengguna melakukan pilihannya: bagaimanapun, satu URE dapat berada di ruang kosong, tidak mempengaruhi data sama sekali (atau hanya memengaruhi file yang tidak penting);

  • ZRAID akan menampilkan beberapa file rusak, tetapi akan melanjutkan dengan proses membangun kembali (lihat di sini untuk contoh). Sekali lagi, alasannya adalah bahwa lebih baik untuk melanjutkan dan melaporkan kembali kepada pengguna, memungkinkannya untuk membuat pilihan yang tepat.

shodanshok
sumber
@ process91 Hanya untuk menguraikan sedikit lebih jauh. Jika implementasi RAID tidak memiliki struktur data tambahan yang diperlukan untuk menandai sektor individu sebagai buruk, itu harus gagal membangun kembali atau memperkenalkan korupsi diam-diam. Menandai sektor individu sebagai buruk adalah lebih baik, tetapi masih bisa menempatkan sektor lain dalam risiko karena mereka yang berbagi sektor paritas dengan sektor buruk.
kasperd
@kasperd Tentu, saya kira saya berasumsi sebagian besar implementasi RAID memiliki kemampuan untuk mengingatkan pengguna ke bad sector. Saya mengerti jika ada bad sector dalam satu drive yang akan mengarah ke sektor yang salah di drive baru setelah membangun kembali. Yang mengatakan, bahkan jika implementasi RAID tidak lebih dari mengingatkan pengguna "Saya telah membangun kembali drive sebaik yang saya bisa, tetapi saya mengalami 1 URE dalam proses" dan kemudian terus memungkinkan upaya menulis ke sektor itu saya tidak lihat bagaimana sektor lain bisa berisiko. Satu-satunya sektor yang salah yang mungkin adalah yang asli, yang baru, dan paritas.
process91
Satu klarifikasi, berdasarkan komentar @Colt di atas - dalam kasus RAID perangkat keras, ketika menandai array gagal, apakah masih memungkinkan akses ke data sama sekali? Bahkan, katakanlah, akses hanya baca untuk keperluan upaya pemulihan?
process91
@ process91 Mengizinkan sektor untuk rusak tidak dianggap sebagai ide yang baik, bahkan jika fakta itu direkam ke file log. Anda tidak tahu file mana yang mungkin rusak. RAID harus memastikan setelah membaca file itu Anda mendapatkan kesalahan. Juga jelas Anda tidak ingin hanya menimpa sektor buruk, karena itu berarti Anda baru saja kehilangan kesempatan terakhir untuk memulihkan data. Jadi Anda memiliki sektor yang tidak dapat dibaca pada satu disk dan sektor pada disk baru di mana Anda tidak tahu apa yang harus ditulis. Itu bisa dua file berbeda rusak.
kasperd
1
@ process91 Saya menambahkan catatan tentang array berbasis LSI. Coba lihat.
shodanshok
8

Jika URE akan terjadi, Anda akan mengalami beberapa kerusakan data pada blok yang biasanya berukuran 256KB-1MB, tetapi ini tidak berarti SEMUA data pada volume Anda akan hilang. Yang tidak begitu hebat tentang RAID5 adalah hal yang sama sekali berbeda: Rebuild itu sendiri membuat stres dan ada kemungkinan besar Anda akan mendapatkan kegagalan disk kedua berturut-turut. Dalam kasus seperti itu, semua data akan hilang.

BaronSamedi1958
sumber
2
Bagaimana membangun kembali RAID5 lebih menegangkan pada drive tunggal daripada membangun kembali RAID1? Saya melihat bahwa ini lebih menekan pada CPU, tetapi untuk drive tertentu kami hanya membaca semua data dari itu. Biasanya, bahaya yang orang kutip dengan drive yang lebih besar adalah bahwa mereka kemungkinan akan menghadapi URE selama pembangunan kembali, tetapi itu tidak masalah bagi saya jika itu hanya berarti satu sektor saja akan rusak.
process91
3
Itu teori probabilitas. Dengan N (di mana itu # drive) peluang Anda untuk mengalami kegagalan adalah N kali lebih tinggi.
BaronSamedi1958
1
Itu tidak cukup bagaimana perhitungan akan bekerja, Anda sebenarnya ingin menghitung 1- probabilitas tidak mengalami kegagalan, tapi saya mengerti bagian itu. Tampaknya saya salah menafsirkan pernyataan Anda sebagai menyarankan bahwa tindakan membangun kembali RAID5 entah bagaimana lebih menekankan pada disk itu sendiri (yang saya baca di tempat lain) yang karenanya meningkatkan kemungkinan URE, tetapi jika bukan itu yang Anda lakukan sedang berkata maka saya setuju.
process91
2

Saya akan menjelaskannya sebaliknya;

Jika pengontrol RAID tidak berhenti pada URE, apa yang bisa terjadi?

Saya tinggal di server, RAID tidak pernah memperhatikan URE dan setelah membangun kembali korupsi mulai menumpuk di seluruh volume RAID.

Disk mulai mendapatkan sektor yang lebih buruk setelah pembangunan kembali dan data mulai rusak.

Disk tidak pernah memulai volume RAID, kegagalan controller adalah pekerjaan untuk melindungi integritas data.

Contoh itu ditulis untuk membuat Anda berpikir bahwa pengontrol tidak dapat mendorong volume dengan URE sama sekali, itu untuk integritas data, karena volume tidak dimaksudkan sebagai cadangan tetapi ketahanan terhadap kegagalan disk

yagmoth555 - GoFundMe Monica
sumber
1
Saya melihat moderator baru terus-menerus memeriksa situs, mencari hal-hal yang harus dilakukan ...
Ward - Reinstate Monica
1
Mengapa satu URE tunggal membangun korupsi di seluruh volume RAID?
process91
2
Maaf, saya membaca ulang jawaban Anda. Sepertinya Anda memiliki URE buruk selama pembangunan kembali, tetapi ini bukan masalahnya. Masalahnya adalah bahwa sektor terus memburuk setelah pembangunan kembali, dan drive tidak pernah melaporkannya. Ini tampaknya seperti masalah yang terpisah, bagaimanapun, dari apakah pengontrol RAID memperhatikan URE selama pembangunan kembali. Pengontrol RAID dapat melihat URE selama pembangunan kembali dan mengingatkan Anda akan hal itu tetapi masih melanjutkan untuk menyelesaikan pembangunan kembali. Beberapa data akan selalu lebih baik daripada tidak ada data.
process91
2
Saya hanya tertarik menganalisis mengapa RAID5 dianggap "mati" pada tahun 2009, yang bersandar pada kemungkinan satu URE tunggal. Pemahaman saya sekarang adalah bahwa analisis ini secara matematis salah dan tidak benar-benar berlaku dengan cara yang sama, misalnya, ZFS.
process91
1
@RobMoir Saya kira pernyataan terakhir Anda adalah di mana saya tidak setuju. Mendapatkan hampir semua data saya dari array bisa berguna, bahkan jika saya punya cadangan lain. Mungkin file itu tidak penting, atau (dalam kasus RAID perangkat keras) kesalahan terjadi di area ruang kosong. Saya pikir keputusan yang tepat, untuk perangkat keras RAID (di mana tidak tahu secara spesifik file apa yang terpengaruh) akan memperingatkan pengguna, menyelesaikan pembangunan kembali, dan membalikkan array ke mode read-only. Saya tidak melihat kelemahan untuk ini. (Jelas, sistem file seperti ZFS bahkan dapat melakukan lebih baik, karena mereka dapat melaporkan file yang terkena dampak.)
process91
1

Saya sarankan membaca pertanyaan ini dan jawaban untuk latar belakang yang lebih sedikit. Lalu pergi dan baca kembali pertanyaan yang Anda tautkan lagi.

Ketika seseorang mengatakan tentang situasi ini bahwa "RAID gagal," itu berarti Anda kehilangan manfaat dari RAID - Anda kehilangan akses terus menerus ke data yang menjadi alasan Anda mengatur array RAID di tempat pertama.

Anda belum kehilangan semua data, tetapi cara yang paling umum untuk memulihkan dari satu drive mati ditambah (beberapa) URE pada (beberapa) drive yang tersisa adalah untuk sepenuhnya membangun kembali array dari awal, yang berarti mengembalikan semua data Anda dari cadangan.

Ward - Reinstate Monica
sumber
1
Secara umum, Anda menggunakan RAID saat tujuan Anda adalah untuk meminimalkan waktu henti. Memiliki array terus dengan korupsi yang tidak diketahui dan tidak diperbaiki biasanya bertentangan dengan tujuan itu.
David Schwartz
1
Terima kasih, pertanyaan pertama yang Anda tautkan sangat informatif. Mengapa saya kehilangan akses terus menerus ke data? Array akan tetap ada selama pembangunan kembali, dan jika bertemu dengan URE selama pembangunan kembali maka saya akan mengharapkannya untuk terus berjalan, meskipun dengan sektor data yang sekarang rusak. Bukankah ini masalahnya?
process91