Pro dan kontra dari perangkat lunak Parity-RAID (misalnya RAID5)


8

Saya baru-baru ini diberitahu tentang beberapa masalah tentang Parity-RAID tanpa cache yang tidak mudah menguap. Kontroler HW yang lebih canggih memiliki cache bertenaga baterai untuk menyelesaikan operasi penulisan jika terjadi kegagalan daya. Sekarang, beberapa orang mengatakan bahwa kegagalan seperti itu, mungkin dalam kombinasi dengan array yang rusak, dapat membunuh seluruh sistem file Anda. Lainnya mengklaim bahwa masalah-masalah itu sudah ketinggalan zaman dan / atau kesalahpahaman .

Sayangnya, tidak ada yang memberikan referensi keras dan pencarian untuk md RAID dan cache yang tidak mudah menguap , atau untuk caching bitmap memberikan jawaban yang andal tentang apakah md-RAID5 disarankan atau tidak.

Ada informasi tentang itu?


1
Linux takut memiliki jurnal, yang setidaknya aman jika terjadi penghentian tiba-tiba (mis. Sistem macet, atau semua disk mati sekaligus), atau dalam kasus RAID-1. Saya tidak tahu apakah RAID- [56] mengatasi semua bentuk daya mati.
Gilles 'SO- stop being evil'

2
@Gilles, tidak memiliki jurnal, tetapi memiliki bitmap write-intent opsional. Ini hanya mempercepat proses sinkronisasi ulang ketika sistem kembali muncul, karena mengidentifikasi area apa yang perlu disinkronisasi ulang, dan area apa yang dapat dilewati.
psusi

@psusi saya kembali dan memeriksa apa yang telah saya teliti beberapa bulan yang lalu . Sejauh yang saya mengerti, bitmap write-intent (bukan jurnal, kesalahan saya) melakukan lebih dari mempercepat sinkronisasi ulang, ini menunjukkan komponen mana yang memiliki blok kotor, sehingga cukup untuk memastikan konsistensi blok pada RAID-1 tetapi tidak pada RAID-5 (di mana Anda mungkin tidak memiliki cukup cakram di negara lama dan baru untuk memulihkan kedua negara).
Gilles 'SO- stop being evil'

1
@Gilles Saya tidak yakin apa yang Anda maksud dengan "konsistensi bock". Anda tampaknya digantung pada seluruh garis berada di negara bagian sebelum penulisan dimulai, atau setelah negara bagian. Ini tidak pernah dijamin dan kemungkinan besar tidak akan terjadi jika daya gagal di tengah penulisan. Terserah sistem file untuk menangani ini seperti halnya pada satu disk; menggunakan jurnal.
psusi

Jawaban:


4

Saya menganggap RAID perangkat lunak Linux sama andalnya dengan kartu RAID perangkat keras tanpa BBU dan dengan cache tulis-balik diaktifkan. Lagi pula, data yang tidak terikat dalam sistem RAID perangkat lunak berada di dalam cache buffer kernel, yang merupakan bentuk caching balasan tanpa cadangan baterai.

Karena setiap kartu RAID-5 perangkat keras yang pernah saya gunakan memungkinkan Anda untuk mengaktifkan cache tulis-kembali tanpa memiliki BBU, saya berharap perangkat lunak RAID-5 dapat bekerja dengan baik untuk orang dengan tingkat toleransi risiko tertentu.

ObWarStory:

Yang telah dikatakan, saya secara pribadi mengalami kehilangan data yang serius karena tidak memiliki BBU yang diinstal pada kartu RAID-5 meskipun cache write-back diaktifkan. (Tidak ada UPS, juga. Jangan meneriaki saya, bukan panggilan saya.)

Bos saya memanggil saya dengan panik ketika saya sedang berlibur karena salah satu sistem produksi kami tidak akan muncul kembali setelah listrik padam. Dia kehabisan hal untuk dicoba. Saya harus menarik ke sisi jalan, mengeluarkan laptop, nyalakan WiFi tethering di ponsel saya,ssh ke sistem yang dilanda, dan memperbaikinya, sementara keluarga saya duduk di sana bersama saya di sisi jalan sampai saya selesai mengembalikan tabel basis data roasted dari cadangan. (Kami sekitar satu mil jauhnya dari kehilangan penerimaan sel pada saat itu.)

Jadi, beri tahu saya: berapa banyak yang akan Anda bayarkan untuk kartu RAID + BBU sekarang ?


Benar - saya menghapus komentar saya. Tapi penyerbuan tanpa BBU harus menulis, bukan? Ini setidaknya apa yang PERC-controller lakukan ketika baterai belajar dan jatuh di bawah ambang batas.
Nils

Ya, tanpa BBU atau dengan BBU yang mati, kartu RAID masih menulis data. Apa yang tidak dilakukan adalah mengingat apa yang ada di buffer tulis ketika daya gagal ke server. Karena RAID tergantung pada konsistensi di antara bit yang redundan, RAID menjadi bingung ketika menjadi tidak konsisten. Oleh karena itu, kegagalan daya selama penulisan RAID berisiko merusak sesuatu pada RAID, karena pengontrol terpaksa memilih salah satu dari dua atau lebih salinan data, tidak mengetahui yang mana yang benar.
Warren Young

3

Hanya pemberitahuan peringatan: operasi penulisan RAID-5/6 membutuhkan waktu CPU yang signifikan saat array Anda menurun. Jika server Anda sudah dimuat penuh ketika disk gagal, itu mungkin jatuh ke dalam jurang tidak responsif. Masalah seperti itu tidak akan terjadi dengan pengontrol RAID perangkat keras. Jadi saya sangat menyarankan agar tidak menggunakan perangkat lunak RAID-5/6 pada server produksi. Untuk workstation atau server yang sedikit dimuat, tidak masalah.


3

RAID RAID memang memiliki mode kegagalan - jika server turun setengah jalan menulis Anda bisa mendapatkan strip rusak. Kontroler HW RAID dengan BBU tidak semahal itu, dan itu akan mempertahankan blok-blok kotor sampai Anda dapat memulai ulang disk.

BBU pada cache tidak menjamin penulisan jika terjadi kegagalan daya (misalnya, tidak memberi daya pada disk). Ini menggerakkan cache selama beberapa hari sampai Anda dapat memulai ulang disk. Kemudian controller akan membersihkan buffer yang kotor ke disk.

Beberapa catatan tentang SW vs. HW RAID-5

  1. Menulis pada volume SW RAID-5 bisa lambat jika cache write-through digunakan dengan memblokir I / O, karena panggilan tidak kembali sampai semua I / O telah selesai. Kontroler HW RAID dengan BBWC dapat mengoptimalkan ini secara signifikan, sehingga Anda dapat melihat kinerja yang jauh lebih baik.

  2. Terakhir kali saya melihat Anda tidak dapat melakukan I / O langsung (yaitu zero-copy DMA) pada volume SW RAID. Ini mungkin telah berubah dan benar-benar hanya relevan untuk aplikasi seperti manajer basis data yang menggunakan partisi mentah.

  3. Pengontrol SAS RAID modern dapat menarik atau mendorong 1GB / detik atau lebih data dari array disk, terutama jika diformat dengan ukuran garis besar (katakan 256kb). Saya bahkan telah membuat benchmark Adaptec ASR-2200 yang lebih lama pada kecepatan yang mengindikasikan cukup jenuhnya kedua saluran scsi pada 600MB / detik + secara agregat (10x 15k disk) dengan beban CPU yang sangat sedikit pada mesin host. Saya tidak yakin Anda bisa mendapatkan itu dari perangkat lunak RAID-5 tanpa banyak beban CPU jika sama sekali, bahkan pada mesin modern. Mungkin Anda bisa membacanya dengan cepat.

  4. Konfigurasi untuk mem-boot off volume HW RAID sederhana - volume RAID transparan ke O / S.

Pengontrol RAID tingkat rendah dari vendor tingkat-1 seperti adaptec tidak semahal itu dengan harga eceran dan dapat dibeli untuk kacang tanah di ebay. Tapi ingat, jika Anda membeli barang bekas, tetap gunakan vendor tingkat-1 dan pastikan Anda tahu modelnya dan pastikan avialabilitas driver dari situs web mereka.

Sunting: Dari komentar @ psusi, pastikan Anda tidak mendapatkan pengontrol fakeraid (SW RAID transparan yang tersembunyi di driver), tetapi sebagian besar penawaran dari nama yang lebih besar (Adaptec, 3Ware atau LSI) bukan unit palsu. Apa pun yang bisa mengambil BBU tidak akan palsu.


Jika daya gagal di tengah-tengah penulisan, maka Anda mendapatkan garis yang tidak sinkron tidak rusak. Garis tidak sinkron hanya berarti bahwa paritas tidak mutakhir, jadi ketika array dipasang, paritas harus diperbarui. Juga pengendali "penggerebekan" yang bisa didapat untuk kacang seringkali palsu; mereka memiliki ekstensi bios rom dan driver windows yang melakukan serangan dalam perangkat lunak.
psusi

@psusi - Sebagian besar pengontrol ASR-2200 yang saya beli beberapa tahun yang lalu berada di bawah 100 USD dan mereka pukka HW RAID controller. Saya tidak berpikir Adaptec benar-benar membuat pengontrol fakeraid sama sekali. Anda bisa dengan mudah mendapatkan 4 atau 8 port Adaptec, 3Ware atau LSI SAS RAID controller dari ebay untuk beberapa ratus dolar.
ConcernedOfTunbridgeWells

Saya tidak akan memanggil beberapa ratus dolar untuk produk bekas dari sumber yang tidak diketahui "uang"; itu menunjukkan lebih banyak di sepanjang garis $ 50 - $ 100 untuk produk baru. Perangkat di kelas itu biasanya palsu.
psusi

@psusi - Anda mencoba menolak argumen yang tidak pernah saya buat; Saya tidak pernah menggunakan kata 'uang' sama sekali. Tolong jangan menggunakan argumen manusia jerami - contoh yang saya gunakan bukan pengontrol palsu.
ConcernedOfTunbridgeWells

1

Jika Anda mendapatkan data dalam cache tetapi belum pada disk, dan daya gagal, maka data akan hilang, dan disk Anda kemungkinan besar akan berada dalam keadaan tidak konsisten. Probabilitasnya tidak terlalu tinggi kecuali Anda memiliki sistem yang terus-menerus menulis, tetapi saya masih tidak ingin mempertaruhkan data saya pada permainan probabilitas.

Sebuah twist yang menarik adalah membuat sistem file utama pada RAID5 / 6 tetapi meletakkan jurnal pada drive biasa, sehingga data pertama kali dibuang pada drive biasa. Kinerja mungkin akan pergi ke crapper karena Anda akan dibatasi pada kecepatan tulis satu drive, tetapi keandalannya akan naik. Jadi saya kira dalam situasi di mana kinerja penulisan Anda tidak penting, tetapi bacaan Anda, itu mungkin bekerja dengan baik.

Atau Anda bisa menghabiskan $ 100 lagi dan mendapatkan kartu dengan BBU, atau UPS kecil, dan hindari semua komplikasi ini sama sekali;)


Apa pendapat Anda tentang jurnal tentang SSD cepat?
user773568

Itu akan melakukannya, tetapi pada saat itu Anda membayar lebih dari satu kontroler yang layak di tempat pertama;) Juga, kecepatan naik, tetapi keandalan turun, karena kebanyakan SSD mati sangat cepat.
Marcin

1
@ Marscin apa yang Anda mendasari itu? Mereka tampaknya tidak memiliki masa desain yang lebih pendek, dan saya telah memilikinya selama lebih dari setahun dan hanya menggunakan 5% dari siklus penulisan.
psusi

@ MarcinWell Ketika Anda mengatakan keandalan, apakah kecakapan atau ketersediaan itu? Saya tidak berharap bahwa kehilangan jurnal saya mengancam keseluruhan data. Melakukannya? Pokoknya saya berencana untuk menempatkan OS dan Swap pada SSD yang lebih kecil, karena alasan kebisingan dan hemat daya. RAID bisa tidur seperti itu.
user773568

SSD MLC memiliki rekam jejak masalah keandalan. Unit SLC jauh lebih dapat diandalkan, tetapi juga jauh lebih mahal. Buku putih tentang keandalan SSD dapat ditemukan di sini
ConcernedOfTunbridgeWells

1

Linux mdadm software raid dirancang agar dapat diandalkan seperti serangan perangkat keras dengan cache yang didukung baterai. Tidak ada masalah dengan kehilangan daya secara tiba-tiba, di luar yang juga berlaku untuk kehilangan daya tiba-tiba pada satu disk.

Ketika sistem kembali setelah daya mati, array akan disinkronkan kembali, yang pada dasarnya berarti bahwa paritas dihitung ulang untuk mencocokkan data yang ditulis sebelum kegagalan daya. Butuh waktu, tapi sungguh, bukan masalah besar. Waktu sinkronisasi ulang dapat sangat dikurangi dengan mengaktifkan bitmap write-intent.


1
Kedengarannya agak optimis. Bagaimana solusi perangkat lunak murni dapat diandalkan seperti cache yang didukung baterai?
user773568

1
Ada hal-hal buruk yang dapat terjadi pada array RAID yang tidak dapat terjadi pada disk tunggal. Dengan disk tunggal, setiap sektor berada dalam kondisi lama atau baru. Dengan misalnya RAID-5 lebih dari 4 + 1 disk, bagaimana jika sektor 42 dari disk 1 dan 2 berada di negara lama dan sektor 42 dari disk 3, 4 dan 5 berada di negara baru? Baik negara lama maupun negara baru tidak dapat dipulihkan. Saya tidak tahu apakah Linux mengambil langkah-langkah untuk menghindari ini, dan inilah pertanyaannya.
Gilles 'SANGAT berhenti menjadi jahat'

@ user773568 umm ... Saya baru saja menjelaskan caranya?
psusi

@Gilles Anda baru saja menyatakan kembali kasus yang sama dengan disk tunggal. Beberapa sektor berada di negara bagian lama, dan beberapa di negara bagian baru. Tidak masalah di disk mana mereka berada. Sistem file menangani penulisan yang tidak lengkap selama crash dengan jurnal.
psusi

@psusi No: dengan satu disk, masing-masing sektor berada dalam status baru atau lama. Dengan banyak disk, jika pengandar menggunakan pendekatan naif menimpa sektor pada setiap disk tanpa menyimpan informasi di tempat lain, sektor yang berada dalam status sementara (kondisi lama pada beberapa disk, keadaan baru pada beberapa disk lain) tidak dapat dipulihkan sama sekali. Kesalahan mungkin dapat dideteksi (jika Anda beruntung: paritasnya bisa cocok secara tidak sengaja), tetapi tidak dapat diperbaiki.
Gilles 'SO- berhenti bersikap jahat'

1

Berikut adalah blog yang menjelaskan masalah dengan RAID5 dan bagaimana ZFS RAIDZ menyelesaikannya .

Poin utamanya adalah:

RAID-5 (dan skema data / paritas lainnya seperti RAID-4, RAID-6, even-odd, dan Row Diagonal Parity) tidak pernah benar-benar disampaikan pada janji RAID - dan tidak bisa - karena cacat fatal yang diketahui sebagai lubang tulis RAID-5. Setiap kali Anda memperbarui data dalam strip RAID Anda juga harus memperbarui paritas, sehingga semua disk XOR menjadi nol - persamaan itulah yang memungkinkan Anda untuk merekonstruksi data ketika disk gagal. Masalahnya adalah bahwa tidak ada cara untuk memperbarui dua atau lebih disk secara atomik, sehingga garis-garis RAID dapat menjadi rusak selama crash atau pemadaman listrik.

dan

RAID-Z adalah skema data / paritas seperti RAID-5, tetapi menggunakan lebar garis dinamis. Setiap blok adalah garis RAID-Z-nya sendiri, terlepas dari ukuran blok. Ini berarti bahwa setiap penulisan RAID-Z adalah penulisan garis-penuh. Ini, ketika dikombinasikan dengan semantik transaksional copy-on-write ZFS, sepenuhnya menghilangkan lubang tulis RAID.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.