Kinerja RAID Praktis?

8

Saya selalu berpikir berikut ini sebagai aturan umum untuk RAID:

  • RAID 0: Performa terbaik untuk READ dan WRITE dari stripping, risiko terbesar
  • RAID 1: Redundan, layak untuk BACA (saya percaya dapat membaca dari berbagai bagian file dari hard drive yang berbeda), bukan yang terbaik untuk WRITE
  • RAID 0 +1 (01): menggabungkan redundansi RAID 1 dengan kinerja RAID 0
  • RAID 1 + 0 (10): versi RAID 0 +1 yang sedikit lebih baik
  • RAID 5: kinerja BACA yang baik, kinerja WRITE yang buruk, redundan

APAKAH ASUMSI INI BENAR? (dan bagaimana mereka dibandingkan dengan pengaturan JBOD untuk kinerja I / R / W)

Apakah pengaturan RAID praktis tertentu lebih baik untuk aplikasi yang berbeda: bermain game, mengedit video, database (Akses atau SQL)?

Saya berpikir tentang hard disk drive tetapi apakah ini berlaku untuk solid state drive juga?

wag2639
sumber
Pemahaman saya tentang redundansi masing-masing kelas RAID cukup bagus, saya hanya tidak yakin tentang kinerja I / O baca dan tulis.
wag2639
Adapun JBOD, saya tahu itu tidak menawarkan kinerja atau redundansi, saya hanya menyebutkannya sebagai referensi dasar.
wag2639

Jawaban:

12

Serangan 0 . Kecepatan membaca dan menulis yang hebat. Risiko kegagalan meningkat karena jumlah disk anggota meningkat. Tidak ada paritas.

Serangan 1 . Kecepatan baca hebat hanya jika driver diterapkan dengan benar - Jika Anda menggunakan pengontrol serangan Areca dan LSI, mereka dapat memberikan kemampuan membaca yang hampir sama untuk set Raid 1 dengan set Raid 0 (dalam 10%). Perhatikan bahwa untuk solusi serangan perangkat lunak ada dua jenis, OS-software dan Motherboard-software.

Sebagian besar Raid tipe motherboard tidak menawarkan performa baca Raid 1 yang bagus. Terakhir kali saya memeriksa Windows dan Linux tidak memiliki implementasi Raid 1 yang baik juga. BSD memiliki implementasi Raid 1 yang diimplementasikan dengan benar yang menggunakan metode membaca roundrobin.

Singkatnya, gunakan Raid 1 untuk redundansi, dan untuk kecepatan baca jika Anda menggunakan pengendali tingkat lanjut.

Raid 1/0 & Raid 0/1 . Ini adalah hal kombinasi. Katakanlah Anda memiliki 10 disk. Raid 1/0 adalah bahwa ada cermin di setiap set: Set A (1 + 2), Set B (3 + 4), Set C (5 + 6), Set D (7 + 8), Set E (9+ 10), lalu lakukan set strip melintasi 5 set (AE). Dengan cara ini, masing-masing set dapat memiliki satu kegagalan drive, tetapi jika dua drive gagal di set yang sama Anda selesai.

Raid 0/1 adalah memiliki set strip A (1 + 2 + 3 + 4 + 5) dan set B (6 + 7 + 8 + 9 + 10) dan mirror kedua set. Dengan cara ini, jika drive 2 dan drive 9 gagal, sebagian besar pengontrol menganggap ini sebagai kegagalan total (yang, pada kenyataannya, Anda masih memiliki semua data).

Ada sedikit perbedaan kinerja antara keduanya tetapi saya tidak berpikir Anda biasanya mendapatkan keduanya dari pengontrol Raid.

Serangan 5 . tas yang sangat campuran: untuk pembacaan berurutan, ini lebih cepat dari serangan 1/0, dan untuk pembacaan acak sedikit lebih lambat dari itu. Perhatikan bahwa kinerja serangan 5 sangat tergantung pada kecepatan pengontrol (mis. Anda tidak bisa berharap banyak dalam serangan di kapal).

Serangan 6 . Redundansi meningkat dibandingkan dengan Raid 5. dua drive dapat gagal kapan saja, dan ketika membangun kembali array setelah 1 drive gagal masih ada redundansi (perhatikan bahwa ketika raid 5 drive gagal, array mirip dengan raid 0 - semua drive gagal = total kehilangan ).

JBOD . Tidak ada keuntungan yang bisa saya pikirkan.

bubu
sumber
terima kasih .. jadi dari apa yang saya baca, menggunakan motherboard konsumen umum dengan tujuan gaming kinerja, serangan 0 yang terbaik tanpa mendapatkan pengendali serangan khusus yang terpisah? (Saya tidak peduli jika saya harus menginstal ulang os + program dan data akan berada di tempat lain, mungkin raid 5 array)
wag2639
2
kamu sangat benar walaupun saya takut bahwa kinerja menggunakan raid motherboard tidak akan jauh berbeda dari menggunakan raid perangkat lunak berbasis OS (meskipun, tentu saja, perbedaannya adalah bahwa drive sistem Anda tidak dapat digerebek dalam raid perangkat lunak berbasis OS). Juga, kinerja raid5 dalam motherboard raid sangat menyedihkan (turun 15-20MB / s dalam beberapa kasus!)
bubu
2

Seperti yang disiratkan oleh pertanyaan Anda, sebenarnya tidak ada konfigurasi RAID yang "terbaik", hanya yang terbaik untuk keadaan tertentu, dengan biaya yang sering menjadi salah satu faktor terpenting.

Tanpa masuk ke dalam hal-hal kecil dari pengontrol dan perangkat lunak, inilah aturan praktis saya.

RAID 0 adalah yang tercepat karena Anda dapat membaca dan menulis ke banyak disk sekaligus, dan tidak ada ruang yang "terbuang" untuk redundansi. Kalah disk mana pun dan Anda kehilangan set, sehingga RAID 0 seharusnya hanya digunakan pada mesin yang tidak Anda pedulikan, atau mudah dipulihkan dan tidak berisi data yang Anda hargai. Mesin game mungkin cocok dengan skenario ini, meskipun jujur, perbedaan kecepatan tidak begitu terlihat sehingga saya bersedia menerima peningkatan risiko harus membangun kembali mesin. Ini juga dapat berguna untuk area "awal" yang sangat cepat jika Anda memiliki perangkat lunak yang membutuhkan hal semacam itu.

RAID 1 adalah setup mirror yang sangat umum, biasanya 2 disk. Membaca umumnya hanya dua kali lebih cepat dari satu disk, sementara menulis hanya sedikit lebih lambat dari satu disk. Di server, RAID 1 adalah pilihan yang sangat baik untuk file sistem operasi Anda. Ini juga merupakan pilihan yang baik ketika Anda membutuhkan redundansi, kebutuhan penyimpanan Anda tidak terlalu besar untuk membutuhkan RAID 5 dan Anda mungkin mendapat manfaat dari kecepatan baca ekstra (file log database biasanya ditempatkan pada RAID 1).

RAID 2 hingga 4 (tidak dalam pertanyaan) umumnya tidak digunakan kecuali oleh produk vendor tertentu di sisi perusahaan.

RAID 5 adalah kompromi antara tidak membuang terlalu banyak ruang pada redundansi dan masih mendapatkan kinerja tambahan dari disk tambahan. Kecepatan baca sangat baik karena semua disk dapat berpartisipasi. Kecepatan menulis kadang-kadang bisa menjadi masalah dengan RAID 5, meskipun saya pikir ini kadang-kadang berlebihan tergantung pada situasinya. Bahkan dengan perangkat keras yang melakukan perhitungan paritas, penulisan acak kecil menderita pada RAID 5 karena setiap operasi penulisan logika memerlukan 4 I / O (membaca dari disk data, membaca dari disk paritas, menulis disk data, menulis disk paritas). Pilih RAID 5 saat Anda ingin memaksimalkan jumlah penyimpanan yang Anda dapatkan dari set disk sementara masih memiliki tingkat keamanan yang baik. Hindari ketika aplikasi Anda memiliki kebutuhan kinerja tinggi dan membutuhkan banyak penulisan acak kecil (hard disk mesin virtual, file data database). Perlu diketahui juga bahwa disk besar modern membutuhkan waktu loooooong untuk membangun kembali ketika mereka gagal sebagai bagian dari set RAID 5, dan itu membuat data Anda berisiko lebih lama untuk kegagalan disk kedua. RAID 6 dapat mengurangi risiko ini dengan mengorbankan kinerja penulisan acak yang lebih buruk.

RAID 1/0 dan 0/1 memiliki karakteristik kinerja yang hampir sama. 1/0 lebih disukai karena kegagalan berarti membangun kembali hanya pasangan disk yang terlibat daripada seluruh strip disk. RAID 1/0 adalah konfigurasi tujuan umum tercepat dari yang disebutkan dalam pertanyaan. Performa baca dan tulis sama-sama hebat (membaca dapat terjadi dari semua disk pada dasarnya, menulis harus terjadi pada banyak disk tetapi tidak diperlukan siklus baca / baca / tulis / tulis seperti RAID 5) meskipun RAID 5 dapat menang dalam keadaan tertentu. RAID 1/0 adalah (tidak mengejutkan) juga yang paling mahal di hampir semua kasus. Seharusnya hanya digunakan ketika kinerja sangat penting, data sangat berharga, dan aplikasi tidak memiliki toleransi untuk waktu henti. Seringkali server basis data (atau setidaknya file datanya) menjadi kandidat yang baik untuk RAID 1/0.

Solid State Drive memang dapat dimasukkan ke dalam konfigurasi RAID, terutama untuk nilai redundansi. Banyak SSD dapat mengungguli bus (SATA) yang melekat padanya, terutama untuk operasi baca, sehingga efek kinerja RAID kurang menarik dengan SSD.

Jeremy
sumber
0

Jika Anda membeli pengendali serangan perangkat keras, pergilah dengan RAID5. Ini memiliki overhead paling sedikit dan pengendali serangan perangkat keras akan hampir menghilangkan hukuman overhead tulis karena menghitung bit paritas dalam perangkat keras. Raid5 juga membaca banyak disk secara simultan meningkatkan kecepatan baca dan tulis.

Ya, ini juga berlaku untuk drive Solid state. Tes SSD di Raid0 menunjukkan peningkatan kecepatan yang hampir linier.

Raid5 sejauh ini merupakan teknologi yang paling banyak digunakan di dunia server, tetapi hanya untuk laptop dengan hanya 2 hard drive saya sarankan raid1 dicerminkan.

JBOD tidak memiliki redundansi jika hard drive gagal tetapi tergantung pada pengaturan dapat menghapus data untuk meningkatkan kinerja seperti serangan.

Nick
sumber
1
JBOD tidak dapat menghapus biasanya karena dirancang untuk digunakan dengan disk dengan ukuran berbeda - jika Anda memiliki ukuran yang sama, Anda seharusnya sudah menggunakan RAID 1 atau RAID 0 sebagai gantinya.
Darth Android