Bagaimana cara mengkonfigurasi RAID 5, terutama ukuran stripe, dengan drive 24 x 1,2 TB untuk CentOS 6?

8

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.

Steve Amerige
sumber
4
RAID 5 adalah apa yang tidak ingin Anda gunakan jika Anda menginginkan kinerja ... kecepatan menulisnya bisa sangat buruk.
Nathan C
1
Bisakah Anda memberikan beberapa konteks pada beban kerja baca / tulis dan aplikasi untuk solusi penyimpanan ini?
ewwhite
1
jika Anda menginginkan kinerja, jangan gunakan HDD sama sekali .. Anda kemungkinan besar dapat mencapai lebih banyak kinerja dengan sistem penyimpanan SSD yang baik, atau bahkan solusi penyimpanan PCIe. jika Anda tidak peduli apakah data hilang, pergilah ke SSD atau bahkan solusi penyimpanan PCIe.
Dennis Nolte
2
@Tonny saya memverifikasi ini. Maksimum 16 disk untuk controller itu.
ewwhite
7
Semua orang, harap ingat bahwa Anda bukan ahli sejak lahir, semua orang belajar pada titik tertentu. Harap bersikap baik kepada mereka yang kurang tahu tentang Anda.
Chris S

Jawaban:

12

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.

putih
sumber
Beberapa informasi yang sangat berguna di sini. Kami mencari kinerja pertama, total ruang disk kedua. Jadi, kami tidak mempertimbangkan RAID 10 karena kami akan kehilangan setengah dari ruang disk 24TB yang tersedia. Kebutuhan kita adalah data yang sangat berat dan kita melalui TB data dengan mudah. Karena konsekuensi dari kegagalan server adalah prioritas rendah bagi kami (karena kami dapat membangun kembali server dari bawah ke atas setelah memperbaiki perangkat keras yang buruk - yaitu, keamanan data BUKAN pertimbangan terpenting kami), kami ingin memaksimalkan disk IO ( baik lokal dan NFS / cerita lain) dan kecepatan pemrosesan keseluruhan.
Steve Amerige
@ SteveAmerige Berapa banyak ruang disk yang Anda butuhkan? Anda tidak dapat MENGGUNAKAN 24 disk dalam satu grup RAID, jadi ada beberapa pertimbangan desain tambahan untuk lingkungan Anda. Bisakah Anda memberi tahu kami apa yang harus dilakukan sistem ini, jenis data apa yang terlibat, dan apa persyaratan kinerja sebenarnya?
ewwhite
1
@SteveAmerige Lebih detail! RAID 5 adalah non-starter. Anda TIDAK boleh menggunakannya pada tahun 2014. Jenis data apa ini? Apa yang akan menjadi teknologi virtualisasi? KVM? VMware? Saya pikir desain di sini benar-benar membutuhkan penyempurnaan, terutama sebelum berinvestasi pada begitu banyak perangkat keras ... Apakah Anda tahu ukuran "set kerja" data akan per-VM? Dalam keadaan di mana nilai itu diketahui, Anda bisa menyimpan dan mengoptimalkannya. Penyimpanan berjenjang. SSD. Apakah beban kerja bias baca atau bias tulis?
ewwhite
1
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.
HopelessN00b
1
Pada akhirnya, saya melakukan konfigurasi 24 drive fisik berikut: Grup Disk 0, RAID 10 (4 drive): VD 0: BOOT 100GB; VD 1: ROOT 2134.5GB. Grup Disk 1, RAID 0 (10 drive): VD 2: DATA1, 11172.5GB. Grup Disk 2, RAID 0 (10 drive): VD 3: DATA2, 11172.5GB. Mungkin saja saya mungkin tidak perlu memiliki VD 0 BOOT dan VD 1 ROOT Virtual Disk yang terpisah. Saya melakukannya untuk memastikan bahwa disk booting dapat melakukan boot standar (non-UEFI). Saya menggunakan LVM nanti sehingga saya memiliki / yang secara eksklusif menggunakan VD 0 dan VD 1; dan / data yang menggunakan VD 2 dan VD 3. Terima kasih banyak atas semua komentarnya!
Steve Amerige
5

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.

Hibah
sumber
1
FYI, saya seorang pengembang perangkat lunak yang mengelola server divisi kami sebagai pekerjaan sampingan. Itu berarti saya memiliki banyak celah dalam pengetahuan saya. Tapi, saya sudah melakukan ini dengan cukup sukses selama beberapa tahun sekarang. Ini adalah pertama kalinya saya membangun server sebesar ini, jadi umpan balik Anda sangat dihargai. Saya sangat menghargai komentar Anda tentang batasan RAID 5. Apa yang kami inginkan adalah kinerja, dan total ruang disk yang tersedia, tetapi kami bersedia untuk membuat pertimbangan untuk konfigurasi RAID yang memberi kami keamanan data (prioritas terakhir kami).
Steve Amerige
1

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.

Menandai
sumber
1

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

poige
sumber