Spinning platters lebih lambat dari RAM. Kami menggunakan caching membaca / menulis untuk 'menyembunyikan' fakta ini.
Hal yang berguna tentang menulis IO adalah bahwa ia tidak memerlukan disk IO untuk segera terjadi - tidak seperti pembacaan, di mana Anda tidak dapat mengembalikan data ke pengguna hingga pembacaan selesai pada disk.
Karenanya menulis beroperasi di bawah batasan waktu lunak - selama throughput berkelanjutan kami tidak melebihi disk kami, kami dapat menyembunyikan banyak hukuman kinerja dalam cache tulis.
Dan kita perlu menulis cache - disk berputar sangat lambat. Tetapi untuk melakukan jenis RAID modern memiliki penalti yang signifikan untuk operasi.
A RAID 6 misalnya, untuk menyelesaikan satu penulisan IO harus:
- Baca blok pembaruan
- baca parity1
- baca paritas 2
- tulis blok baru
- tulis paritas 1
- tulis paritas 2
Jadi setiap penulisan sebenarnya 6 operasi IO - dan terutama ketika Anda memiliki disk lambat seperti drive SATA besar, ini menjadi sangat mahal.
Tapi ada solusi mudah yang bagus - menulis penggabungan. Jika Anda bisa membuat tulisan 'full stripe' di buffer, Anda tidak perlu membaca paritas dari disk Anda - Anda dapat menghitungnya berdasarkan apa yang ada di memori.
Sangat diinginkan untuk melakukan ini, karena Anda tidak perlu menulis amplifikasi lagi. Memang, Anda bisa berakhir dengan penalti tulis lebih rendah dari RAID 1 + 0.
Mempertimbangkan:
RAID 6, 8 + 2 - 10 spindle.
8 blok data berturut-turut untuk ditulis - hitung paritas dalam cache, dan tulis satu blok untuk setiap disk. 10 menulis per 8, berarti penalti tulis 1,25. 10 disk RAID 1 + 0 masih memiliki penalti tulis 2 (karena Anda harus menulis untuk setiap submirror). Jadi dalam skenario ini, Anda benar-benar dapat membuat RAID 6 berkinerja lebih baik daripada RAID1 + 0. Dalam penggunaan di dunia nyata, Anda mendapatkan sedikit lebih banyak profil IO campuran.
Jadi caching tulis membuat perbedaan besar terhadap persepsi kinerja set RAID - Anda bisa menulis dengan kecepatan RAM dan memiliki penalti tulis yang rendah - meningkatkan throughput berkelanjutan Anda jika melakukannya.
Dan jika tidak, Anda menderita kinerja SATA yang lambat, tetapi kalikan dengan 6 dan tambahkan beberapa pertengkaran di sana. SATA RAID-6 10-way tanpa cache tulis akan sedikit lebih cepat daripada drive tunggal tanpa RAID ... tetapi tidak terlalu banyak.
Anda mengambil risiko meskipun - seperti yang Anda perhatikan - kehilangan daya berarti kehilangan data. Anda dapat mengurangi ini dengan siklus flushing cache, baterai mendukung cache Anda, atau menggunakan SSD atau cache non-volatile lainnya.