Singkatnya: jika menggunakan kartu RAID low-end (tanpa cache), bantulah diri Anda sendiri dan beralihlah ke RAID perangkat lunak. Jika menggunakan kartu menengah ke atas (dengan BBU atau NVRAM), maka perangkat keras seringkali (tetapi tidak selalu! Lihat di bawah) pilihan yang baik.
Jawaban panjang: ketika daya komputasi terbatas, kartu RAID perangkat keras memiliki keuntungan signifikan untuk menghitung perhitungan paritas / sindrom untuk skema RAID yang melibatkannya (RAID 3/4/5, RAID6, ecc).
Namun, dengan kinerja CPU yang semakin meningkat, keunggulan ini pada dasarnya menghilang: bahkan CPU kuno laptop saya (Core i5 M 520, generasi Westmere) memiliki kinerja XOR lebih dari 4 GB / s dan kinerja sindrom RAID-6 lebih dari 3 GB / s lebih dari inti eksekusi tunggal .
Keuntungan yang dipertahankan oleh perangkat keras RAID saat ini adalah adanya cache DRAM yang terputus daya, dalam bentuk BBU atau NVRAM. Cache yang dilindungi ini memberikan latensi yang sangat rendah untuk akses tulis acak (dan membaca yang mengenai) dan pada dasarnya mengubah penulisan acak menjadi penulisan berurutan. Kontroler RAID tanpa cache seperti itu hampir tidak berguna . Selain itu, beberapa pengontrol RAID tingkat rendah tidak hanya datang tanpa cache, tetapi juga secara paksa menonaktifkan cache DRAM pribadi disk, yang menyebabkan kinerja lebih lambat daripada tanpa kartu RAID sama sekali. Contohnya adalah kartu DELL PERC H200 dan H300: jika firmware yang lebih baru tidak mengubahnya, mereka benar-benar menonaktifkan cache pribadi disk (dan itu tidak dapat diaktifkan kembali saat disk terhubung ke pengontrol RAID). Bantulah dirimu dan lakukanlahtidak, tidak pernah membeli pengontrol seperti itu. Sementara pengontrol yang lebih tinggi sering menonaktifkan cache pribadi disk, setidaknya mereka memiliki cache yang dilindungi sendiri - membuat cache pribadi HDD (tapi bukan SSD!) Agak berlebihan.
Ini bukan akhirnya. Bahkan pengontrol yang mampu (yang memiliki cache BBU atau NVRAM) dapat memberikan hasil yang tidak konsisten ketika digunakan dengan SSD, pada dasarnya karena SSD benar - benar membutuhkan cache pribadi yang cepat untuk pemrograman / penghapusan halaman FLASH yang efisien. Dan sementara beberapa (sebagian besar?) Pengontrol memungkinkan Anda mengaktifkan kembali cache pribadi disk (misalnya: PERC H700 / 710 / 710P membiarkan pengguna mengaktifkannya kembali), jika cache pribadi itu tidak dilindungi tulis Anda berisiko kehilangan data jika-kalau kehilangan daya. Perilaku yang tepat benar-benar tergantung pada kontroler dan firmware (misalnya: pada DELL S6 / i dengan cache WB 256 MB dan cache yang diaktifkan , saya tidak mengalami kerugian selama beberapa pengujian daya yang terencana), memberikan ketidakpastian dan banyak kekhawatiran.
RAID perangkat lunak sumber terbuka, di sisi lain, adalah binatang buas yang jauh lebih terkontrol - perangkat lunak mereka tidak termasuk dalam firmware milik, dan memiliki pola dan perilaku metadata yang jelas. RAID perangkat lunak membuat asumsi (kanan) bahwa cache DRAM disk pribadi tidak dilindungi, tetapi pada saat yang sama sangat penting untuk kinerja yang dapat diterima - jadi mereka biasanya tidak menonaktifkannya, melainkan mereka menggunakan perintah ATA FLUSH / FUA untuk memastikan bahwa kritis data tanah pada penyimpanan stabil. Karena mereka sering berjalan dari port SATA yang terpasang pada chipset SB, bandwidth mereka sangat bagus dan dukungan driver sangat baik.
Namun, jika digunakan dengan HDD mekanis, pola akses tulis acak yang disinkronkan (mis: basis data, mesin virtual) akan sangat menderita dibandingkan dengan pengontrol RAID perangkat keras dengan cache WB. Di sisi lain, ketika digunakan dengan SSD perusahaan (yaitu: dengan cache tulis yang dilindungi oleh powerloss), perangkat lunak RAID sering unggul dan memberikan hasil yang lebih tinggi daripada yang dicapai dengan kartu RAID perangkat keras. Yang mengatakan Anda harus ingat bahwa konsumen SSD (baca: dengan cache balik tidak terlindungi), sementara sangat pandai membaca dan menulis async, memberikan IOPS yang sangat rendah dalam beban kerja menulis yang disinkronkan.
Juga pertimbangkan bahwa RAID perangkat lunak tidak semuanya dibuat sama. RAID perangkat lunak Windows memiliki reputasi yang buruk, kinerja yang bijaksana, dan bahkan Ruang Penyimpanan tampaknya tidak terlalu berbeda. Linux MD Raid sangat cepat dan serbaguna, tetapi Linux I / O stack terdiri dari beberapa bagian independen yang Anda perlu pahami dengan cermat untuk mengekstraksi kinerja maksimum. ZFS parity RAID (ZRAID) sangat canggih tetapi, jika tidak dikonfigurasi dengan benar, dapat memberi Anda IOP yang sangat buruk; mirroring + striping, di sisi lain, berkinerja cukup baik. Bagaimanapun, itu membutuhkan perangkat SLOG cepat untuk penanganan penulisan sinkron (ZIL).
Intinya:
- jika beban kerja Anda tidak tersinkronisasi sensitif tulis acak, Anda tidak perlu kartu RAID
- jika Anda memerlukan kartu RAID, jangan tidak membeli controller RAID tanpa Cache WB
- jika Anda berencana untuk menggunakan perangkat lunak SSD RAID lebih disukai tetapi perlu diingat bahwa untuk penulisan acak tersinkronisasi tinggi Anda memerlukan SSD yang dilindungi oleh powerloss (yaitu: Intel S4600, Samsung PM / SM863, dll.). Untuk kinerja murni, pilihan terbaik mungkin adalah Linux MD Raid, tetapi saat ini saya umumnya menggunakan mirror ZFS bergaris. Jika Anda tidak mampu kehilangan setengah ruang karena mirror dan Anda membutuhkan fitur-fitur canggih ZFS, gunakan ZRAID tetapi pikirkan dengan hati-hati tentang pengaturan VDEV Anda.
- jika Anda, bahkan menggunakan SSD, benar-benar membutuhkan kartu RAID perangkat keras, gunakan SSD dengan cache yang dilindungi tulis (Micron M500 / 550/600 memiliki perlindungan parsial - tidak benar-benar cukup tetapi lebih baik daripada tidak sama sekali - sementara Intel DC dan seri S mengalami kehilangan daya penuh perlindungan, dan hal yang sama dapat dikatakan untuk SSD Samsung perusahaan)
- jika Anda membutuhkan RAID6 dan Anda akan menggunakan HDD mekanis normal, pertimbangkan untuk membeli kartu RAID cepat dengan 512 MB (atau lebih) cache WB. RAID6 memiliki penalti kinerja menulis yang tinggi, dan cache WB berukuran tepat setidaknya dapat menyediakan penyimpanan perantara cepat untuk penulisan sinkron kecil (misalnya: jurnal filesystem).
- jika Anda membutuhkan RAID6 dengan HDD tetapi Anda tidak dapat / tidak ingin membeli kartu RAID perangkat keras, pikirkan dengan hati-hati tentang pengaturan RAID perangkat lunak Anda. Sebagai contoh, solusi yang memungkinkan dengan Linux MD Raid adalah dengan menggunakan dua array: array RAID10 kecil untuk penulisan jurnal / log DB, dan array RAID6 untuk penyimpanan mentah (sebagai fileserver). Di sisi lain, perangkat lunak RAID5 / 6 dengan SSD sangat cepat, jadi Anda mungkin tidak memerlukan kartu RAID untuk pengaturan semua SSD.