Ini adalah Pertanyaan Canonical tentang level RAID.
Apa:
- level RAID yang biasanya digunakan (termasuk keluarga RAID-Z)?
- penyebaran tempat mereka biasanya ditemukan?
- manfaat dan perangkap masing-masing?
Ini adalah Pertanyaan Canonical tentang level RAID.
Apa:
Jawaban:
RAID adalah singkatan dari Redundant Array of Independent Disks (beberapa diajarkan "Murah" untuk menunjukkan bahwa mereka adalah disk "normal"; secara historis ada disk redundan internal yang sangat mahal; karena mereka tidak lagi tersedia, akronim telah beradaptasi).
Pada tingkat yang paling umum, RAID adalah sekelompok disk yang bertindak pada saat membaca dan menulis yang sama. SCSI IO dilakukan pada volume ("LUN"), dan ini didistribusikan ke disk yang mendasarinya dengan cara yang memperkenalkan peningkatan kinerja dan / atau peningkatan redundansi. Peningkatan kinerja adalah fungsi striping: data tersebar di beberapa disk untuk memungkinkan membaca dan menulis menggunakan semua antrian IO disk secara bersamaan. Redundansi adalah fungsi mirroring. Seluruh disk dapat disimpan sebagai salinan, atau garis-garis individual dapat ditulis beberapa kali. Atau, dalam beberapa jenis serangan, alih-alih menyalin data sedikit demi sedikit, redundansi diperoleh dengan membuat garis khusus yang berisi informasi paritas, yang dapat digunakan untuk membuat kembali data yang hilang jika terjadi kegagalan perangkat keras.
Ada beberapa konfigurasi yang memberikan tingkat manfaat yang berbeda, yang dibahas di sini, dan masing-masing memiliki bias terhadap kinerja, atau redundansi.
Aspek penting dalam mengevaluasi level RAID mana yang akan bekerja untuk Anda tergantung pada kelebihan dan persyaratan perangkat kerasnya (mis: jumlah drive).
Aspek penting lain dari sebagian besar jenis RAID ini (0,1,5) adalah mereka tidak memastikan integritas data Anda, karena mereka disarikan dari data aktual yang disimpan. Jadi RAID tidak melindungi terhadap file yang rusak. Jika suatu file rusak dengan cara apa pun , korupsi akan dicerminkan atau diparitisasi dan dilakukan ke disk terlepas. Namun, RAID-Z mengklaim untuk memberikan integritas tingkat file dari data Anda .
Ada dua lapisan di mana RAID dapat diimplementasikan pada penyimpanan terpasang langsung: perangkat keras dan perangkat lunak. Dalam solusi RAID perangkat keras yang sebenarnya, ada pengontrol perangkat keras khusus dengan prosesor yang didedikasikan untuk perhitungan dan pemrosesan RAID. Ini juga biasanya memiliki modul cache yang didukung baterai sehingga data dapat ditulis ke disk, bahkan setelah listrik mati. Ini membantu menghilangkan ketidakkonsistenan ketika sistem tidak dimatikan dengan bersih. Secara umum, pengontrol perangkat keras yang baik adalah yang kinerjanya lebih baik daripada perangkat lunaknya, tetapi mereka juga memiliki biaya yang besar dan meningkatkan kompleksitas.
RAID perangkat lunak biasanya tidak memerlukan pengontrol, karena tidak menggunakan prosesor RAID khusus atau cache terpisah. Biasanya operasi ini ditangani langsung oleh CPU. Dalam sistem modern, perhitungan ini menggunakan sumber daya minimal, meskipun beberapa latensi marjinal terjadi. RAID ditangani oleh OS secara langsung, atau oleh pengontrol palsu dalam kasus FakeRAID .
Secara umum, jika seseorang akan memilih perangkat lunak RAID, mereka harus menghindari FakeRAID dan menggunakan paket asli-OS untuk sistem mereka seperti Disk Dinamis di Windows, mdadm / LVM di Linux, atau ZFS di Solaris, FreeBSD, dan distribusi terkait lainnya . FakeRAID menggunakan kombinasi perangkat keras dan perangkat lunak yang menghasilkan tampilan awal perangkat keras RAID, tetapi sebenarnya kinerja perangkat lunak RAID. Selain itu, biasanya sangat sulit untuk memindahkan array ke adaptor lain (jika aslinya gagal).
Tempat lain RAID yang umum adalah pada perangkat penyimpanan terpusat, biasanya disebut SAN (Storage Area Network) atau NAS (Network Attached Storage). Perangkat ini mengelola penyimpanan mereka sendiri dan memungkinkan server yang terhubung untuk mengakses penyimpanan dalam berbagai mode. Karena beberapa beban kerja terkandung pada beberapa disk yang sama, memiliki tingkat redundansi yang tinggi umumnya diinginkan.
Perbedaan utama antara NAS dan SAN adalah ekspor tingkat blok vs. sistem file. SAN mengekspor seluruh "perangkat blok" seperti partisi atau volume logis (termasuk yang dibangun di atas array RAID). Contoh SAN termasuk Fibre Channel dan iSCSI. NAS mengekspor "sistem file" seperti file atau folder. Contoh NAS termasuk CIFS / SMB (berbagi file Windows) dan NFS.
RAID0 (alias Striping) kadang-kadang disebut sebagai "jumlah data yang tersisa ketika drive gagal". Ini benar-benar berjalan melawan butir "RAID", di mana "R" adalah singkatan dari "Redundant".
RAID0 mengambil blok data Anda, membaginya menjadi potongan-potongan sebanyak yang Anda punya disk (2 disk → 2 buah, 3 disk → 3 bagian) dan kemudian menulis setiap bagian data ke disk yang terpisah.
Ini berarti bahwa satu kegagalan disk menghancurkan seluruh array (karena Anda memiliki Bagian 1 dan Bagian 2, tetapi tidak ada Bagian 3), tetapi ini memberikan akses disk yang sangat cepat.
Ini tidak sering digunakan dalam lingkungan produksi, tetapi dapat digunakan dalam situasi di mana Anda memiliki data sementara yang ketat yang dapat hilang tanpa dampak. Ini digunakan agak umum untuk perangkat caching (seperti perangkat L2Arc).
Total ruang disk yang dapat digunakan adalah jumlah semua disk dalam array yang ditambahkan bersama-sama (misalnya disk 3x 1TB = 3TB ruang).
RAID 1 (alias Mirroring) mengambil data Anda dan menggandakannya secara identik pada dua disk atau lebih (walaupun biasanya hanya 2 disk). Jika lebih dari dua disk digunakan, informasi yang sama disimpan pada setiap disk (semuanya identik). Ini adalah satu-satunya cara untuk memastikan redundansi data saat Anda memiliki kurang dari tiga disk.
RAID 1 terkadang meningkatkan kinerja baca. Beberapa implementasi RAID 1 akan membaca dari kedua disk untuk menggandakan kecepatan baca. Beberapa hanya akan membaca dari salah satu disk, yang tidak memberikan keuntungan kecepatan tambahan. Yang lain akan membaca data yang sama dari kedua disk, memastikan integritas array pada setiap pembacaan, tetapi ini akan menghasilkan kecepatan baca yang sama dengan disk tunggal.
Ini biasanya digunakan di server kecil yang memiliki sedikit ekspansi disk, seperti server 1RU yang mungkin hanya memiliki ruang untuk dua disk atau di workstation yang membutuhkan redundansi. Karena tingginya overhead ruang "hilang", dapat menjadi penghalang biaya dengan drive berkapasitas kecil, berkecepatan tinggi (dan berbiaya tinggi), karena Anda perlu menghabiskan dua kali lebih banyak uang untuk mendapatkan tingkat penyimpanan yang dapat digunakan sama.
Total ruang disk yang dapat digunakan adalah ukuran disk terkecil dalam array (mis. 2x 1TB disk = 1TB ruang).
The 1E tingkat RAID mirip dengan RAID 1 dalam data yang selalu ditulis untuk (setidaknya) dua disk. Tetapi tidak seperti RAID1, ini memungkinkan jumlah disk yang ganjil dengan hanya menyisipkan blok data di antara beberapa disk.
Karakteristik kinerja mirip dengan RAID1, toleransi kesalahan mirip dengan RAID 10. Skema ini dapat diperluas ke jumlah ganjil disk lebih dari tiga (mungkin disebut RAID 10E, meskipun jarang).
RAID 10 adalah kombinasi dari RAID 1 dan RAID 0. Urutan 1 dan 0 sangat penting. Katakanlah Anda memiliki 8 disk, itu akan membuat 4 array RAID 1, dan kemudian menerapkan array RAID 0 di atas array 4 RAID 1. Ini membutuhkan setidaknya 4 disk, dan disk tambahan harus ditambahkan berpasangan.
Ini berarti bahwa satu disk dari setiap pasangan dapat gagal. Jadi, jika Anda memiliki set A, B, C dan D dengan disk A1, A2, B1, B2, C1, C1, D1, D2, Anda dapat kehilangan satu disk dari setiap set (A, B, C atau D) dan masih memiliki array yang berfungsi.
Namun, jika Anda kehilangan dua disk dari set yang sama, maka array tersebut benar-benar hilang. Anda dapat kehilangan hingga (tetapi tidak dijamin) 50% dari disk.
Anda dijamin kecepatan tinggi dan ketersediaan tinggi di RAID 10.
RAID 10 adalah level RAID yang sangat umum, terutama dengan drive berkapasitas tinggi di mana kegagalan disk tunggal membuat kegagalan disk kedua lebih mungkin terjadi sebelum array RAID dibangun kembali. Selama pemulihan, penurunan kinerja jauh lebih rendah daripada mitra RAID 5-nya karena hanya perlu membaca dari satu drive untuk merekonstruksi data.
Ruang disk yang tersedia adalah 50% dari jumlah total ruang. (misalnya drive 8x 1TB = 4TB dari ruang yang dapat digunakan). Jika Anda menggunakan ukuran yang berbeda, hanya ukuran terkecil yang akan digunakan dari setiap disk.
Perlu dicatat bahwa driver serangan perangkat lunak kernel Linux yang disebut md
memungkinkan untuk konfigurasi RAID 10 dengan jumlah drive yang ganjil , yaitu 3 atau 5 disk RAID 10.
Ini adalah kebalikan dari RAID 10. Ini menciptakan dua array RAID 0, dan kemudian menempatkan RAID 1 di atasnya. Ini berarti Anda bisa kehilangan satu disk dari setiap set (A1, A2, A3, A4 atau B1, B2, B3, B4). Sangat jarang untuk melihat dalam aplikasi komersial, tetapi mungkin dilakukan dengan perangkat lunak RAID.
Agar benar-benar jelas:
Ini tidak memberikan kecepatan tambahan atas RAID 10, tetapi redundansi secara substansial lebih sedikit dan harus dihindari di semua biaya.
RAID 5 telah menjadi level RAID yang paling umum digunakan selama beberapa dekade. Ini memberikan kinerja sistem semua drive dalam array (kecuali untuk penulisan acak kecil, yang menimbulkan sedikit overhead). Ini menggunakan operasi XOR sederhana untuk menghitung paritas. Setelah kegagalan drive tunggal, informasi dapat direkonstruksi dari drive yang tersisa menggunakan operasi XOR pada data yang diketahui.
Sayangnya, jika terjadi kegagalan drive, proses pembangunan kembali sangat intensif terhadap IO. Semakin besar drive dalam RAID, semakin lama pembangunan kembali akan dilakukan, dan semakin tinggi kemungkinan kegagalan drive kedua. Karena drive lambat besar keduanya memiliki lebih banyak data untuk dibangun kembali dan kinerja jauh lebih sedikit untuk melakukannya, biasanya tidak disarankan untuk menggunakan RAID 5 dengan apa pun 7200 RPM atau lebih rendah.
Mungkin masalah paling kritis dengan array RAID 5, ketika digunakan dalam aplikasi konsumen, adalah bahwa mereka hampir dijamin gagal ketika total kapasitas melebihi 12TB. Ini karena tingkat kesalahan baca yang tidak terpulihkan (URE) dari drive konsumen SATA adalah satu per setiap 10 14 bit, atau ~ 12,5TB.
Jika kita mengambil contoh array RAID 5 dengan tujuh drive 2 TB: ketika drive gagal ada enam drive yang tersisa. Untuk membangun kembali array, controller perlu membaca enam drive masing-masing 2 TB. Melihat gambar di atas, hampir pasti URE lain akan terjadi sebelum pembangunan kembali selesai. Setelah itu terjadi array dan semua data di dalamnya hilang.
Namun kegagalan URE / kehilangan data / array dengan masalah RAID 5 di drive konsumen telah agak dimitigasi oleh fakta bahwa sebagian besar produsen hard disk telah meningkatkan peringkat URE drive baru mereka menjadi satu dari 10 15 bit. Seperti biasa, periksa lembar spesifikasi sebelum membeli!
Juga penting bahwa RAID 5 diletakkan di belakang cache tulis yang dapat diandalkan (didukung baterai). Ini menghindari overhead untuk menulis kecil, serta perilaku serpihan yang dapat terjadi pada kegagalan di tengah menulis.
RAID 5 adalah solusi yang paling hemat biaya untuk menambahkan penyimpanan yang berlebihan ke array, karena hanya membutuhkan hilangnya 1 disk (misalnya disk 12x 146GB = 1606 GB ruang yang dapat digunakan). Ini membutuhkan minimal 3 disk.
RAID 6 mirip dengan RAID 5 tetapi menggunakan paritas senilai dua disk alih-alih hanya satu (yang pertama adalah XOR, yang kedua adalah LSFR), sehingga Anda dapat kehilangan dua disk dari array tanpa kehilangan data. Denda tulis lebih tinggi dari RAID 5 dan Anda memiliki satu ruang disk yang lebih sedikit.
Perlu dipertimbangkan bahwa pada akhirnya array RAID 6 akan menghadapi masalah yang sama seperti RAID 5. Drive yang lebih besar menyebabkan waktu pembangunan kembali yang lebih besar dan lebih banyak kesalahan laten, akhirnya menyebabkan kegagalan seluruh array dan hilangnya semua data sebelum pembangunan kembali selesai.
RAID 50 adalah level bersarang, seperti RAID 10. Ini menggabungkan dua atau lebih RAID 5 array dan strip data di dalamnya dalam RAID 0. Ini menawarkan kinerja dan beberapa redundansi disk, selama beberapa disk hilang dari berbagai RAID 5 array.
Dalam RAID 50, kapasitas disk adalah nx, di mana x adalah jumlah RAID 5 yang dilewati. Misalnya, jika 6-disk RAID 50 yang sederhana, yang sekecil mungkin, jika Anda memiliki disk 6x1TB dalam dua RAID 5 yang kemudian diubah menjadi RAID 50, Anda akan memiliki penyimpanan 4TB yang dapat digunakan.
RAID 6 adalah ke RAID 60 karena RAID 5 adalah ke RAID 50. Pada dasarnya, Anda memiliki lebih dari satu RAID 6 yang datanya akan dilewati dalam RAID 0. Pengaturan ini memungkinkan hingga dua anggota dari setiap RAID 6 dalam set. gagal tanpa kehilangan data. Membangun kembali waktu untuk array RAID 60 bisa menjadi besar, jadi biasanya ide bagus untuk memiliki satu cadangan panas untuk setiap anggota RAID 6 dalam array.
Dalam RAID 60, kapasitas disk adalah n-2x, di mana x adalah jumlah RAID 6s yang dilewati. Sebagai contoh, jika 8 disk RAID 60 sederhana, yang sekecil mungkin, jika Anda memiliki disk 8x1TB dalam dua RAID 6s yang kemudian digeser menjadi RAID 60, Anda akan memiliki penyimpanan yang dapat digunakan 4TB. Seperti yang Anda lihat, ini memberikan jumlah penyimpanan yang dapat digunakan yang sama dengan yang diberikan RAID 10 pada array 8 anggota. Sementara RAID 60 akan sedikit lebih berlebihan, waktu pembangunan kembali akan jauh lebih besar. Secara umum, Anda ingin mempertimbangkan RAID 60 hanya jika Anda memiliki banyak disk.
RAID-Z agak rumit untuk dijelaskan karena ZFS secara radikal mengubah cara penyimpanan dan sistem file berinteraksi. ZFS mencakup peran tradisional manajemen volume (RAID adalah fungsi dari Volume Manager) dan sistem file. Karena itu, ZFS dapat melakukan RAID pada level blok penyimpanan file daripada pada level strip volume. Inilah yang dilakukan RAID-Z, menulis blok penyimpanan file di beberapa drive fisik termasuk blok paritas untuk setiap set strip.
Sebuah contoh dapat memperjelas hal ini. Katakanlah Anda memiliki 3 disk dalam kumpulan ZFS RAID-Z, ukuran blok adalah 4KB. Sekarang Anda menulis file ke sistem yang persis 16KB. ZFS akan memecahnya menjadi empat blok 4KB (seperti sistem operasi normal); maka akan menghitung dua blok paritas. Keenam blok tersebut akan ditempatkan pada drive yang mirip dengan cara RAID-5 mendistribusikan data dan paritas. Ini merupakan peningkatan dari RAID5 karena tidak ada pembacaan garis data yang ada untuk menghitung paritas.
Contoh lain dibangun di atas sebelumnya. Katakanlah file itu hanya 4KB. ZFS masih harus membangun satu blok paritas, tetapi sekarang beban tulis dikurangi menjadi 2 blok. Drive ketiga akan bebas untuk melayani permintaan bersamaan lainnya. Efek serupa akan terlihat kapan saja file yang sedang ditulis bukan kelipatan dari ukuran blok pool dikalikan dengan jumlah drive yang kurang dari satu (yaitu [Ukuran File] <> [Ukuran Blok] * [Drive - 1]).
ZFS menangani Manajemen Volume dan Sistem File juga berarti Anda tidak perlu khawatir tentang menyelaraskan ukuran partisi atau blok-blok. ZFS menangani semua itu secara otomatis dengan konfigurasi yang disarankan.
Sifat ZFS menangkal beberapa peringatan RAID-5/6 klasik. Semua penulisan di ZFS dilakukan dengan cara copy-on-write; semua blok yang diubah dalam operasi tulis ditulis ke lokasi baru pada disk, alih-alih menimpa blok yang ada. Jika penulisan gagal karena alasan apa pun, atau sistem gagal pada pertengahan penulisan, transaksi penulisan baik terjadi sepenuhnya setelah pemulihan sistem (dengan bantuan log maksud ZFS) atau tidak terjadi sama sekali, menghindari potensi korupsi data. Masalah lain dengan RAID-5/6 adalah kehilangan data potensial atau korupsi data diam-diam selama pembangunan kembali; zpool scrub
operasi reguler dapat membantu menangkap korupsi data atau mendorong masalah sebelum menyebabkan hilangnya data, dan pemeriksaan ulang semua blok data akan memastikan bahwa semua korupsi selama pembangunan kembali tertangkap.
Kerugian utama RAID-Z adalah masih serangan perangkat lunak (dan menderita latensi minor yang sama yang ditimbulkan oleh CPU menghitung beban tulis alih-alih membiarkan HBA perangkat keras membongkar muatannya ). Ini dapat diselesaikan di masa depan oleh HBA yang mendukung akselerasi perangkat keras ZFS.
Karena tidak ada otoritas pusat yang menegakkan segala fungsi standar, berbagai level RAID telah berevolusi dan distandarisasi oleh penggunaan yang lazim. Banyak vendor telah menghasilkan produk yang menyimpang dari uraian di atas. Ini juga cukup umum bagi mereka untuk menemukan beberapa terminologi pemasaran baru yang mewah untuk menggambarkan salah satu konsep di atas (ini paling sering terjadi di pasar SOHO). Jika memungkinkan, cobalah membuat vendor benar-benar menggambarkan fungsionalitas mekanisme redundansi (sebagian besar akan memberikan informasi ini secara sukarela, karena sebenarnya tidak ada saus rahasia lagi).
Layak disebutkan, ada implementasi RAID 5 seperti yang memungkinkan Anda untuk memulai array dengan hanya dua disk. Itu akan menyimpan data pada satu strip dan paritas di yang lain, mirip dengan RAID 5 di atas. Ini akan melakukan seperti RAID 1 dengan overhead tambahan dari perhitungan paritas. Keuntungannya adalah Anda bisa menambahkan disk ke array dengan menghitung ulang paritasnya.
Juga RAID SATU JUTAAN !!!!
128 Disk jadi membaca akan cepat, menulis mengerikan tetapi sangat dapat diandalkan saya bayangkan, oh dan Anda akan mendapatkan 1/128 ruang yang tersedia, jadi tidak hebat dari perspektif anggaran. Jangan lakukan ini dengan flash drive, saya mencoba dan membakar suasana ...