Saya memiliki 36 * 4TB HDD SAN Rack. Pengontrol RAID tidak mendukung RAID60 dan tidak lebih dari 16 HDD dalam satu grup RAID. Jadi saya memutuskan untuk membuat 2 kelompok RAID6 16HDD atau 4 dari 8 HDD. Saya ingin mendapatkan semua penyimpanan sebagai satu partisi.
Jadi, apa yang mungkin salah jika saya akan menggunakan zfs pool di atas perangkat keras RAID6? Ya, saya tahu bahwa sangat disarankan untuk menggunakan HDD asli atau mode pass-through. Tapi saya tidak punya opsi ini.
Atau haruskah saya menjauh dari ZFS dan serangan perangkat lunak dalam situasi ini? (Saya sebagian besar tertarik pada kompresi dan snapshot)
storage
zfs
storage-area-network
hardware-raid
Severgun
sumber
sumber
Jawaban:
Jadi saya memutuskan untuk membuat 2 kelompok RAID6 16HDD atau 4 dari 8 HDD.
Itu bukan cara terbaik untuk melakukan sesuatu. Ini mungkin bekerja cukup baik, tetapi tergantung pada persyaratan kinerja Anda, mungkin tidak.
Ukuran ideal untuk array RAID5 / 6 akan sedemikian rupa sehingga kelipatan tepat dari jumlah data yang "merentang" array cocok dengan ukuran blok sistem file yang dibangun di atasnya.
RAID5 / 6 array berfungsi sebagai perangkat blok - satu blok data merentang disk dalam array, dan blok itu juga berisi data paritas. Sebagian besar pengontrol RAID akan menulis sejumlah besar data berukuran dua untuk setiap disk dalam array - nilai persisnya dapat dikonfigurasi dalam sistem RAID yang lebih baik - dan unit Dot Hill Anda adalah salah satu dari "sistem RAID yang lebih baik". Itu penting.
Jadi dibutuhkan N x (jumlah data yang disimpan per keping disk) untuk menjangkau array, di mana N adalah jumlah disk data. Array RAID5 5-disk memiliki 4 "data" disk, dan array RAID6 10-drive memiliki 8 disk data.
Karena ketika data ditulis ke array RAID5 / 6, jika blok data sedemikian rupa sehingga cukup besar untuk menjangkau seluruh array, paritas dihitung untuk data itu - biasanya dalam memori pengontrol - maka seluruh strip ditulis untuk disk. Sederhana, dan cepat.
Tetapi jika potongan data yang ditulis tidak cukup besar untuk menjangkau seluruh array, apa yang harus dilakukan oleh pengontrol RAID untuk menghitung data paritas yang baru? Pikirkan tentang hal ini - perlu semua data di seluruh strip untuk menghitung ulang data paritas baru .
Jadi jika Anda membuat 16-drive RAID6 array dengan default per-disk chunk 512kb, itu berarti dibutuhkan 7 MB untuk "span" array.
ZFS bekerja dalam blok 128kb, umumnya.
Jadi ZFS menulis blok 128kB - ke array RAID6 16-drive. Dalam konfigurasi yang Anda usulkan, itu berarti pengontrol RAID perlu membaca hampir 7 MB dari array dan menghitung ulang paritas di 7 MB tersebut. Kemudian tulis ulang seluruh 7 MB itu kembali ke disk.
Jika Anda beruntung, semuanya ada dalam cache dan Anda tidak mendapatkan kinerja yang luar biasa. (Ini adalah salah satu alasan utama mengapa posisi "jangan gunakan RAID5 / 6" memiliki pengikut seperti ini - RAID1 [0] tidak menderita karena hal ini.)
Jika Anda kurang beruntung dan Anda tidak benar-benar menyelaraskan partisi sistem file Anda, blok 128kB itu mencakup dua garis RAID yang tidak ada dalam cache, dan pengontrol perlu membaca 14 MB, menghitung paritas, kemudian menulis 14 MB. Semua untuk menulis satu blok 128kB.
Nah, itu yang perlu terjadi secara logis . Ada banyak optimisasi yang dapat dilakukan oleh pengontrol RAID yang baik untuk mengurangi IO dan beban komputasi dari pola IO tersebut, sehingga mungkin tidak terlalu buruk.
Tetapi di bawah beban berat penulisan blok 128kB ke lokasi acak, ada peluang yang sangat bagus bahwa kinerja array RAID6 16-drive dengan ukuran 7 MB akan sangat mengerikan.
Untuk ZFS, "ideal" yang mendasari RAID5 / 6 LUN untuk sistem file tujuan umum di mana sebagian besar akses secara acak acak akan memiliki ukuran garis yang bahkan pembagi 128kB, seperti 32kB, 64kB, atau 128kB. Dalam hal ini, yang membatasi jumlah disk data dalam array RAID5 / 6 menjadi 1 (yang tidak masuk akal - bahkan jika mungkin untuk mengkonfigurasi, lebih baik menggunakan RAID1 [0]), 2, 4, atau 8. Kinerja terbaik dalam skenario kasus terbaik adalah dengan menggunakan ukuran garis 128kB untuk array RAID5 / 6, tetapi kasus terbaik tidak sering terjadi dalam sistem file tujuan umum - seringkali karena sistem file tidak menyimpan metadata sama seperti mereka menyimpan data file.
Saya akan merekomendasikan pengaturan array RAID5 5-disk atau array RAID6 10-disk, dengan ukuran potongan per-disk yang cukup kecil sehingga jumlah data untuk menjangkau seluruh strip array adalah 64kB (ya, saya sudah melakukan ini sebelum untuk ZFS - berkali-kali). Itu berarti untuk array RAID dengan 4 disk data, ukuran chunk per-disk harus 16kB, sedangkan untuk array RAID 8-data-disk, ukuran chunk per-disk harus 8kB.
Kemudian memungkinkan ZFS untuk menggunakan seluruh array yang - jangan tidak partisi itu. ZFS akan menyelaraskan dirinya dengan benar ke seluruh drive, apakah drive tersebut adalah disk tunggal sederhana atau array RAID yang disajikan oleh pengontrol RAID.
Dalam hal ini, dan tanpa mengetahui ruang yang tepat dan persyaratan kinerja Anda, saya sarankan menyiapkan tiga array RAID6 10-drive atau enam array RAID5 5-drive dengan ukuran garis 64kB, mengkonfigurasi beberapa suku cadang panas, dan menyimpan empat dari Anda disk untuk apa pun yang muncul di masa depan. Karena sesuatu akan terjadi.
Saya pasti tidak akan menggunakan sistem disk dalam mode JBOD - ini adalah perangkat yang sepenuhnya memenuhi standar NEBS Level 3 yang menyediakan keandalan signifikan dan perlindungan ketersediaan yang terpasang langsung ke perangkat keras. Jangan buang itu hanya karena "ZFS !!!!". Jika itu adalah perangkat keras komoditas murah yang Anda kumpulkan dari komponen? Ya, mode JBOD dengan ZFS menangani RAID adalah yang terbaik - tapi itu BUKAN perangkat keras yang Anda miliki. GUNAKAN fitur yang disediakan perangkat keras.
sumber
Oke, saya akan gigit ...
Ini adalah perangkat keras yang salah untuk aplikasi tersebut. Pengaturan DotHill memiliki batasan yang sama dengan HP StorageWorks MSA2000 / P2000 karena hanya 16 drive yang dapat digunakan dalam pengelompokan array tunggal.
ZFS di atas perangkat keras RAID atau SAN LUN yang diekspor tidak selalu menjadi masalah.
Namun, melepaskan ZFS LUN pada interkoneksi yang tidak diketahui, lintas sasis ekspansi dapat menimbulkan risiko.
Serius, mungkin ada baiknya mengevaluasi apakah Anda memerlukan semua penyimpanan ini dalam ruang nama tunggal ...
Jika Anda DO membutuhkan jenis kapasitas itu dalam satu pemasangan, Anda harus menggunakan penutup JBOD yang terpasang khusus HBA dan mungkin beberapa unit kepala dengan kabel tangguh dan tata letak yang lebih cerdas.
sumber
Anda harus langsung memasang semua drive ke kotak yang menjalankan ZFS. Dapatkan SAS HBA dan sambungkan drive ke kotak berkemampuan ZFS (misalnya menjalankan OmniOS atau SmartOS). Anda kemudian dapat berbagi ruang melalui NFS, SMB, iScsi ...
sumber
Alasan ZFS di atas volume logis HW RAID adalah ide SANGAT BURUK , adalah karena ZFS memerlukan akses tingkat blok untuk benar-benar berfungsi dengan baik. Ya, ini akan dapat digunakan, tetapi fungsi tidak akan lengkap sampai Anda memasang drive langsung ke OS melalui HBA atau koneksi SATA langsung. Salah satu contoh adalah bahwa dalam konfigurasi yang Anda usulkan ZFS tidak dapat secara wajar melindungi data Anda terhadap perubahan pada data di bawah ini (di sisi lain dari pengontrol RAID HW), dan karenanya tidak dapat menjamin keamanan data Anda . Ini adalah salah satu alasan utama ZFS digunakan, selain itu super duper cepat.
ZFS adalah teknologi yang luar biasa, dan saya sangat merekomendasikannya. Tetapi Anda harus meninjau kembali struktur Anda di sini agar dapat menggunakannya dengan benar. Yaitu memiliki ZFS membuat volume logis (vdevs) dari disk secara langsung.
Sepertinya ada lebih banyak bacaan yang perlu Anda lakukan tentang bagaimana ZFS beroperasi sebelum Anda dapat secara akurat memahami apa yang Anda usulkan, berbeda dengan apa yang sebenarnya harus dilakukan.
sumber