Jika Anda memiliki dua drive fisik:
RAID0: Cepat tapi tidak ada redundansi. Kesalahan drive apa pun akan mematikan seluruh array. Beberapa orang menaruh penyimpanan sementara pada RAID0 (yaitu tempdb di bawah MSSQL) tapi saya masih akan menganggap ini berbahaya karena sementara Anda tidak akan kehilangan data yang berarti jika array jatuh Anda akan memiliki pemadaman server sampai situasi itu diperbaiki.
RAID1: Lakukan ini jika Anda memiliki dua drive. Tidak ada manfaat kinerja menulis meskipun Anda mungkin melihat peningkatan kinerja baca dengan controller yang baik. Fitur utama RAID1 adalah bertahan dari salah satu drive yang sekarat.
Jika Anda memiliki tiga drive fisik:
Pilihan Anda adalah RAID5, RAID10 3-drive non-standar (atau RAID1E sebagai pengendali IBM menyebutnya) jika didukung. Anda tentu saja dapat menggunakan RAID1 dan menyimpan drive ekstra sebagai cadangan ketika salah satu dari yang lain gagal, tetapi Anda harus tetap menyimpannya di lingkungan kritis misi sehingga hal ini tidak perlu dikatakan lagi.
RAID5 menawarkan lebih banyak ruang daripada RAID10 (dua drive bernilai bukannya satu-setengah) tetapi memiliki potensi masalah kinerja penulisan karena untuk setiap blok ditulis pengontrol perlu membaca blok paritas, memperbaruinya, dan menuliskannya kembali. Masalah kinerja penulisan ini dapat digandakan untuk penulisan basis data karena setidaknya ada dua penulisan untuk setiap pembaruan: satu ke log transaksi dan satu ke area data aktual. Karena ruang yang murah hari ini saya akan merekomendasikan 3-drive RAID10 jika didukung untuk kinerja penulisan yang lebih baik. RAID perangkat lunak Linux menawarkan ini, seperti halnya banyak pengontrol IBM (mereka menyebutnya RAID1E). Anda mungkin menemukannya dengan nama lain juga karena tidak dianggap sebagai pengaturan standar sehingga tidak memiliki nama standar.
Baik R5 dan R10-over-three memberikan redundansi yang sama (salah satu drive dapat gagal pada suatu waktu dan array akan bertahan) dan metrik kinerja baca yang serupa (mirip dengan array RAID0 dua drive).
Jika Anda memiliki empat drive fisik:
Jika membuat hanya satu array maka ada dua opsi (mengabaikan variasi "dengan cadangan panas"): RAID6 dan RAID10 "tradisional" (sebuah RAID0 dari RAID1s).
Keduanya memberikan ruang yang sama (dua drive dari empat Anda). RAID6 memberikan redundansi yang lebih baik karena setiap dua drive dapat gagal pada saat di mana RAID10 hanya dapat bertahan empat dari enam situasi dua drive yang mungkin hilang. Keduanya memberikan kinerja baca simialr tetapi RAID6 memiliki masalah kinerja penulisan yang mirip dengan RAID5 (sama pada controller yang baik, meskipun bisa lebih lambat dari pada RAID5 pada controller yang buruk atau dengan perangkat lunak RAID tergantung pada OS dan kemampuan kontrol I / O. RAID10 adalah biasanya lebih disukai untuk database karena alasan kinerja - jika Anda memerlukan redundansi tambahan, Anda dapat menggunakan enam drive dan memiliki RAID0 atau 2 3-drive RAID1s.
Setelah Anda memiliki empat drive atau lebih meskipun hal-hal menjadi lebih menarik karena Anda bisa memiliki sepasang array RAID1 terpisah. Ini dapat menawarkan manfaat kinerja yang signifikan dengan disk pemintalan dengan menyimpan data Anda pada satu larik dan log transaksi pada yang lain - ini dapat mengurangi pergerakan head secara signifikan dalam beberapa kasus dan mencari waktu karena akses "acak" adalah pembunuh kinerja nyata. Untuk data warehouse, dengan asumsi ini berarti akan melihat sangat sedikit menulis relatif berbicara, memisahkan log transaksi dari file data mungkin manfaat lebih terbatas tetapi Anda mungkin masih ingin mempertimbangkan beberapa array dan bukannya mempartisi data Anda di atasnya untuk berpotensi membaca kinerja yang lebih baik .
Jika Anda memiliki lebih dari empat drive:
Pilihan Anda menjadi terbuka lebar di sini dan itu benar-benar tergantung pada apa data Anda dan apa pembaruan / baca beban / pola yang Anda harapkan. Misalnya, sekali layanan kami berjalan pada drive 12 ~ 70Gb:
- 4x sebagai RAID10 untuk area sistem (OS, SQL Server (MSSQL dalam kasus kami), swap, tempdb).
- 4x sebagai RAID10 untuk file data
- 4x sebagai RAID10 untuk log transaksi
Tempdb disimpan di sistem array. Kita dapat memindahkannya ke dua array lain dan menjalankan array sistem sebagai 2 drive di RAID1 karena kecepatan ekstra tidak terlalu diperlukan untuk potongan sistem (karena itu hanya sangat signifikan selama boot atau ketika bertukar dan kami memastikan ada RAM yang cukup untuk itu tidak perlu swap), tetapi dengan cara kami membayar penyedia hosting untuk set mesin itu, kami tidak perlu mengeluarkan biaya lebih sedikit untuk menjatuhkan dua drive. Cadangan juga masuk ke susunan sistem, sebelum disalin ke lokasi cadangan di luar server, di luar situs, dan di luar jaringan.
Tentu saja ini sangat berat untuk beberapa database (tidak akan ada gunanya menjalankan server blog kecil dengan cara ini!) Tetapi aplikasi utama kami berkinerja sangat baik dengan pengaturan ini.
Jika Anda memiliki enam drive, Anda dapat mempertimbangkan tiga array RAID1, atau dua array RAID10 tiga drive.
Umumnya
Sayangnya tidak ada "praktik terbaik" yang sangat sederhana karena sangat tergantung pada ukuran dan pola penggunaan sistem Anda. Satu-satunya aturan umum yang dapat saya pikirkan atau adalah:
- hindari RAID5 dan 6 kecuali Anda tahu masalah kinerja penulisan tidak akan memengaruhi Anda secara signifikan
- dengan empat atau lebih drive berbasis disk berputar mempertimbangkan pemisahan beberapa array lebih untuk mengurangi pergerakan head (manfaat penuh dari beberapa array tidak akan berlaku untuk SSD yang baik karena tidak ada pergerakan head fisik yang perlu dipertimbangkan, meskipun Anda mungkin melihat beberapa perbedaan tergantung pada strategi kombinasi tulis pengontrol SSD dan sebagainya)
- uji, uji dan uji lagi: selalu baik untuk mencoba mencari waktu untuk memverifikasi bahwa pengaturan yang Anda pilih memang optimal
RAID Perangkat Keras atau Perangkat Lunak?
Dulu kinerja perangkat lunak RAID berada di bawah RAID perangkat keras untuk RAID 5 karena perhitungan paritas dan untuk semua pengaturan karena antarmuka yang lambat antara drive dan CPU. Dengan CPU modern, masalah paritas calc tidak benar-benar menjadi masalah, tetapi jika Anda memiliki hard disk drive yang sangat cepat, RAID masih bisa menang jika kecepatan total drive dapat terjadi di mana saja.dekat (dalam urutan besarnya, pada perkiraan) untuk seberapa cepat mesin dapat berbicara dengan pengontrol disk. Jika Anda memiliki array RAID1 empat drive (yaitu empat salinan data yang sama untuk banyak redundansi) dengan perangkat lunak RAID setiap operasi penulisan akan menghasilkan OS yang mengirim empat banyak data ke pengontrol I / O, mungkin secara berurutan - dengan perangkat keras controller OS hanya mengirimkan satu permintaan tulis dan controller mengirimkannya ke empat drive, mungkin secara paralel.
RAID perangkat keras yang baik juga dapat menawarkan keuntungan lain: beberapa pengendali spesifikasi tinggi memiliki cache tulis dengan cadangan baterai sehingga penulisan yang tertunda tidak hilang dalam pemadaman listrik walaupun UPS Anda gagal, misalnya.
RAID perangkat lunak jelas lebih murah, dan lebih portabel sehingga Anda tidak terikat dengan pengontrol tertentu jika Anda harus memindahkan array karena kegagalan pengontrol / mesin.
RAID perangkat keras yang murah biasanya menggabungkan hal negatif dari perangkat lunak dan perangkat keras RAID dengan sedikit (atau tidak ada) manfaat dari keduanya sehingga sebaiknya dihindari.
Saya cenderung menggunakan RAID perangkat lunak pada server dev, test dan UAT kami dan RAID perangkat keras yang baik untuk server yang menjalankan layanan langsung yang berhubungan dengan pelanggan / publik.