Untuk Dell R920 dengan disk 24 x 1.2TB (dan RAM 1TB), saya ingin menyiapkan konfigurasi RAID 5 untuk IO cepat. Server akan digunakan untuk meng-host KVM VM yang akan membaca / menulis file dari semua ukuran, termasuk file yang sangat besar. Saya tidak terlalu tertarik pada keamanan data karena jika server gagal karena alasan apa pun, kami hanya akan menyediakan kembali server dari bare metal setelah mengganti bagian yang gagal. Jadi, kinerja adalah perhatian utama. Kami sedang mempertimbangkan RAID 5 karena memungkinkan kami untuk mendistribusikan data melalui banyak spindel dan karenanya memberi kami kinerja yang lebih baik dan, meskipun bukan perhatian utama kami, juga memberi kami perlindungan data. NIC kami adalah dual 10Gbps.
Saya membatasi pertanyaan ini hanya untuk RAID 5 karena kami pikir ini akan memberikan kinerja terbaik. Hanya jika ada alasan kinerja yang meyakinkan kami akan mempertimbangkan hal lain. Tapi, saya pikir saya lebih suka jawaban yang terkait dengan konfigurasi RAID 5.
Oke, dengan yang disebutkan di atas, berikut adalah pemikiran konfigurasi kami saat ini untuk:
- 24 Hard Drive: RMCP3 : 1.2TB, 10K, 2.5 "6Gbps
- Pengontrol RAID: H730P, Dukungan SAS 12Gbps, Cache NV 2GB
- 1 Hot Spare (hanya untuk memberi kami umur lebih lama jika drive gagal)
- 23 Drive Data (yang 1 diperhitungkan sebagai Paritas dan 22 tersisa untuk Data)
- Ukuran Stripe: 1MB (drive data 1MB / 22 = ~ 46.5KB per disk - atau, apakah saya salah memahami ukuran stripe)?
- Baca Kebijakan: Adaptive Read Ahead
- Kebijakan Tulis: Tulis Kembali
- Kebijakan Cache Disk: Diaktifkan
Jika ukuran strip adalah TOTAL di seluruh drive data, maka saya pikir ~ 46.5KB per drive akan memberi kami throughput yang sangat baik. Jika ukuran garis per spindle, maka saya salah semua ini.
Apakah ukuran strip juga ukuran yang diambil oleh satu file? Misalnya, jika ada file 2KB, akankah memilih ukuran garis 1MB berarti kita menghabiskan hampir seluruh megabyte? Atau dapatkah beberapa file hidup dalam satu strip?
Terakhir, ketika kita menginstal CentOS 6.5 (atau yang terbaru), apakah kita perlu melakukan sesuatu yang istimewa untuk memastikan bahwa sistem file menggunakan RAID secara optimal? Sebagai contoh, mkfs.ext4 memiliki opsi -E langkah yang saya diberitahu harus sesuai dengan konfigurasi RAID. Tetapi, selama instalasi CentOS, apakah ada cara untuk melakukan ini?
Terima kasih banyak atas pemikiran Anda tentang konfigurasi RAID 5 untuk IO cepat.
Jawaban:
Silakan gunakan RAID 1 + 0 dengan pengontrol dan pengaturan drive Anda. Jika Anda membutuhkan lebih banyak kapasitas, level RAID bersarang seperti RAID 50/60 dapat berfungsi . Anda dapat lolos dengan RAID 5 pada sejumlah kecil disk SAS perusahaan (8 drive atau kurang) karena waktu pembangunan kembali tidak buruk. Namun, 24 drive adalah kesalahan besar. (Oh, dan nonaktifkan fitur cache disk individual ... berbahaya)
Ada banyak aspek untuk I / O dan kinerja penyimpanan lokal. Ada operasi I / O / detik, ada throughput, ada latensi penyimpanan. RAID 1 + 0 adalah keseimbangan yang baik di antara ini. Aspek positif di sini adalah Anda menggunakan disk perusahaan, pengontrol perangkat keras yang cakap, dan jumlah disk yang banyak. Berapa kapasitas yang Anda butuhkan?
Anda dapat mencapai batas jumlah drive yang dapat Anda gunakan dalam grup disk virtual. Pengontrol PERC / LSI biasanya membatasi ini hingga 16 drive untuk level RAID tunggal dan RAID 1 + 0. Panduan pengguna mengkonfirmasi ini . Anda tidak akan dapat menggunakan semua 24 disk dalam satu RAID 5 atau grup RAID 1 + 0 tunggal.
Aspek lain yang perlu dipertimbangkan, tergantung pada beban kerja Anda, adalah Anda dapat memanfaatkan caching SSD menggunakan fungsi LSI Cachecade pada pengontrol PERC tertentu. Mungkin tidak tersedia untuk ini, tetapi memahami pola I / O Anda akan membantu menyesuaikan solusi penyimpanan.
Sejauh opsi pembuatan sistem file ext4, sebagian besar akan diabstraksi oleh pengontrol RAID perangkat keras Anda. Anda harus dapat membuat sistem file tanpa opsi khusus di sini. Parameter yang Anda maksudkan akan lebih berdampak pada solusi RAID perangkat lunak.
sumber
RAID 5 would give us some data safety at the expense of effectively 1 hard drive per group, right?
Tidak benar Dengan drive ukuran ini, dan banyak disk dalam grup, RAID 5 secara efektif memberi Anda keamanan data 0. Mungkin juga hanya membuang disk menjadi dua array RAID 0 12-disk.JANGAN gunakan array RAID 5 tunggal di 24 disk 1TB! Saya tidak terlalu peduli dengan apa yang Anda pilih untuk membatasi jawaban, itu ide yang buruk dan Anda harus melihat opsi lain.
Peluang disk gagal naik dengan masing-masing disk. Begitu juga waktu yang diperlukan untuk membangun kembali. Ketika sebuah drive gagal, dan Anda menggantinya, itu akan menggunakan sebanyak mungkin IO di semua disk untuk membangun data untuk yang baru. Sangat mungkin salah satu dari 23 disk bagus Anda yang tersisa akan gagal selama proses ini, memaksa Anda untuk mengembalikan server dari cadangan. Yang mana Anda katakan tidak peduli ... tetapi apakah Anda bersedia menerima hal itu sebulan sekali? Sekali seminggu? Dengan bertambahnya usia disk, itu bisa sangat buruk.
Selain itu, jika Anda menginginkan kinerja, RAID5 mengarahkan Anda ke arah yang salah. Dalam banyak kasus, RAID5 memiliki kinerja yang lebih buruk daripada opsi lain, karena harus menghitung paritas untuk setiap penulisan, dan kemudian menuliskannya ke drive juga. RAID5 tidak dirancang untuk kinerja.
Jika Anda BENAR-BENAR tidak peduli dengan data Anda, gunakan RAID 0. Tetapi meskipun begitu, buat beberapa array terpisah, bukan satu disk RAID 24 raksasa.
Jika Anda menginginkan kinerja dan integritas, gunakan RAID10. Anda akan kehilangan beberapa ruang disk, tetapi mendapatkan peningkatan kinerja yang cukup.
Atau Anda dapat melihat hal-hal seperti ZFS yang dirancang dari bawah ke atas untuk bekerja dengan sejumlah besar data pada disk.
sumber
Pilihan Anda:
RAID 0 : Ini mengubah semua disk Anda menjadi satu unit tanpa redundansi. Ini memiliki kinerja baca dan tulis tertinggi dan ruang yang paling dapat digunakan dari salah satu opsi, tetapi hilangnya satu disk berarti hilangnya semua data.
RAID 1 + 0 : Ini mengubah semua disk Anda menjadi satu unit dengan semua data ada di dua disk. Kecepatan baca hampir sama dengan RAID 0, kecepatan menulis dibelah dua (karena Anda perlu menulis setiap bagian data dua kali), dan Anda hanya memiliki setengah ruang yang tersedia. Hilangnya disk tunggal tidak berdampak pada ketersediaan data dan dampak minimal pada kecepatan baca / tulis.
RAID 5 : Ini mengubah semua disk Anda menjadi satu unit, dengan nilai paritas pada satu disk. Kecepatan baca sedikit lebih rendah dari RAID 0, kecepatan tulis jauh lebih lambat, mungkin lebih lambat dari kecepatan tulis pada disk non-RAID tunggal (setiap penulisan memerlukan siklus baca-modifikasi-tulis pada setidaknya dua disk), dan Anda kehilangan satu ruang disk untuk informasi paritas. Hilangnya disk tunggal dapat menyebabkan pengurangan besar kecepatan baca (merekonstruksi data yang disimpan di dalamnya memerlukan membaca data dari semua disk lain), tetapi tidak berdampak pada ketersediaan data.
RAID 6 : Ini pada dasarnya memiliki semua kelebihan dan kekurangan RAID 5, kecuali bahwa ia menyimpan checksum yang lebih bagus di samping perhitungan paritas, dan dapat menangani hilangnya dua disk tanpa kehilangan data.
Jika keamanan data benar-benar tidak relevan (ini termasuk waktu yang dihabiskan untuk memulihkan data dari sumber asli, yang mungkin memakan waktu berhari-hari, dan waktu yang hilang melakukan kembali kalkulasi terputus), saya sarankan RAID 0. Jika tidak, jika Anda memiliki beban kerja yang hampir secara eksklusif membaca dan Anda menginginkan beberapa keandalan, saya merekomendasikan RAID 6 (tetapi perhatikan bahwa kinerjanya akan berkurang saat memulihkan dari disk yang gagal). Jika Anda memiliki beban kerja baca-tulis, saya sarankan RAID 1 + 0.
Bergantung pada sifat tepat dari beban kerja Anda (mis. Jika tugas yang diberikan mengakses bagian ruang disk Anda yang terdefinisi dengan baik), Anda mungkin dapat mengatur beberapa array RAID independen, sehingga kegagalan satu tidak akan berdampak pada yang lain .
RAID 5 tidak memberikan keuntungan dalam situasi Anda. Ini memiliki penalti kinerja (terutama untuk menulis) dibandingkan dengan RAID 0, dan dengan jumlah disk yang Anda miliki, hampir pasti bahwa disk kedua akan gagal selama pemulihan, tidak memberikan manfaat keamanan data.
sumber
Oke, hanya satu pertanyaan yang jelas - ukuran garis. Ukuran strip yang lebih besar lebih baik kecuali jika RAID Anda bodoh untuk selalu membaca / menulis seluruh strip data sebagai potongan I / O minimum.
Mengapa? - Ukuran garis kecil menyiratkan melibatkan beberapa disk ke dalam I / O yang panjang, semakin sedikit peluang untuk memuat beberapa disk dengan satu I / O yang logis. Strip besar berarti lebih banyak peluang untuk hanya satu disk (atau beberapa) untuk terlibat ke dalam I / O. Ini mungkin tampak sebagai kekurangan karena tidak ada peningkatan dibandingkan dengan beberapa disk, tetapi kemudian beban Anda yang hampir acak melompat dan Anda menyadari bahwa beban akan tersebar di semua disk secara lebih kurang merata.
Lebih banyak teori di balik ini dapat ditemukan di sini: http://www.vinumvm.org/vinum/Performance-issues.html
sumber