ZFS - Apakah RAIDZ-1 benar-benar buruk?

18

Saya memiliki server NAS dengan drive 4x 2TB WD RE4-GP dalam konfigurasi RAID10 (dapat digunakan 4TB). Saya kehabisan ruang (<1TB sisa ruang yang dapat digunakan). Saya memiliki $ 0 untuk dibelanjakan pada drive / enclosure yang lebih besar / lebih besar.

Saya suka apa yang saya baca tentang fitur integritas data ZFS, yang - dengan sendirinya - cukup bagi saya untuk beralih dari XFS (perangkat lunak) RAID10 yang ada. Lalu saya membaca tentang implementasi superior RAID5 ZFS, jadi saya pikir saya bahkan mungkin mendapatkan 2TB lebih banyak ruang yang dapat digunakan dalam tawar-menawar menggunakan RAIDZ-1.

Namun, saya terus membaca lebih dan lebih posting mengatakan cukup banyak untuk hanya pernah menggunakan RAIDZ-1. Hanya RAIDZ-2 + yang cukup andal untuk menangani kegagalan drive "dunia nyata". Tentu saja, dalam kasus saya, RAIDZ-2 tidak masuk akal. Akan jauh lebih baik untuk menggunakan dua vdev cermin dalam satu kolam (RAID10).

Apakah saya gila ingin menggunakan RAIDZ-1 untuk drive 4x 2TB?

Haruskah saya hanya menggunakan kumpulan dua vdev cermin (pada dasarnya RAID10) dan berharap kompresi memberi saya ruang ekstra yang cukup?

Either way, saya berencana menggunakan kompresi. Saya hanya memiliki 8GB RAM (maksimal), jadi dedup bukan pilihan.

Ini akan berada di server FreeNAS (akan menggantikan OS Ubuntu saat ini) untuk menghindari masalah stabilitas ZFS-on-Linux.

Andrew Ensley
sumber
Tidak yakin bagaimana ini di luar topik. Saya meminta saran tentang konfigurasi sistem file yang tepat untuk server.
Andrew Ensley
Juga kecepatan menulis RAIDZ1or2 menyebalkan dibandingkan dengan RAID10
JamesRyan
2
Jika Anda memiliki cukup CPU untuk menghitung paritas tanpa perlambatan, RAIDZ harus secepat atau lebih cepat dari RAID10 untuk sebagian besar penulisan. RAIDZ menulis semuanya dalam strip RAID penuh, tidak ada siklus baca-ubah-tulis seperti dengan RAID5. Jadi Anda akan mendapatkan lebih banyak bandwidth disk (lebih banyak data, lebih sedikit overhead), dan penulisan harus lebih cepat dari RAID10. Namun, ini memiliki kelemahan yang dibaca sering berakhir lebih lambat. "Tulis garis penuh setiap saat" mengarah ke fragmentasi, dan tidak memberi Anda manfaat hanya membaca subset disk untuk banyak bacaan kecil. Ini adalah keputusan desain sadar.
Dan Pritts
Apa yang saya katakan di atas hanya sebagian benar. RAID10 akan jauh lebih cepat jika Anda memiliki tulisan kecil bersamaan, misalnya server database. Di RAIDZ semua disk aktif untuk semua penulisan; RAID10 membaginya. Poin yang saya coba sampaikan adalah bahwa RAIDZ tidak jauh dengan siklus baca-modifikasi-tulis yang berpotensi tidak aman dari RAID5.
Dan Pritts
RAIDZ2 lebih dapat diandalkan daripada RAID10. Dengan RAIDZ2, dua disk apa pun dapat gagal dan Anda masih memiliki data. Dengan RAID10, dua disk gagal (dalam empat disk array) dapat menyebabkan kehilangan data.
Klaws

Jawaban:

21

Sebelum kita membahas secara spesifik, pertimbangkan use case Anda. Apakah Anda menyimpan foto, robekan MP3 dan DVD? Jika demikian, Anda mungkin tidak peduli apakah Anda kehilangan satu blok dari array secara permanen. Di sisi lain, jika ini data penting, ini mungkin bencana.

Pernyataan bahwa RAIDZ-1 "tidak cukup baik untuk kegagalan dunia nyata" adalah karena Anda cenderung memiliki kesalahan media laten pada salah satu disk Anda yang masih hidup ketika waktu rekonstruksi tiba. Logika yang sama berlaku untuk RAID5.

ZFS meredakan kegagalan ini sampai batas tertentu. Jika perangkat RAID5 tidak dapat direkonstruksi, Anda kurang beruntung; salin data Anda (yang tersisa) dan bangun kembali dari awal. Dengan ZFS, di sisi lain, itu akan merekonstruksi semua kecuali bagian yang buruk, dan membiarkan administrator "membersihkan" kesalahan. Anda akan kehilangan sebagian file / file, tetapi Anda tidak akan kehilangan seluruh array. Dan, tentu saja, pengecekan paritas ZFS berarti bahwa Anda akan diberitahu bahwa ada kesalahan. Kalau tidak, saya percaya itu mungkin (walaupun tidak mungkin) bahwa banyak kesalahan akan menghasilkan pembangunan kembali yang tampaknya berhasil, tetapi memberi Anda kembali data yang buruk.

Karena ZFS adalah " Pelanggaran Layering Merajalela ," ia juga tahu area mana yang tidak memiliki data pada mereka, dan dapat melewati mereka dalam pembangunan kembali. Jadi, jika array Anda setengah kosong, Anda setengah kemungkinan memiliki kesalahan pembangunan kembali.

Anda dapat mengurangi kemungkinan jenis kesalahan rekondisi ini pada tingkat RAID apa pun dengan melakukan "zpool scrub" atau "pemeriksaan mdadm" rutin pada array Anda. Ada perintah / proses serupa untuk RAID lain; misal, kartu raid PERC LSI / dell menyebutnya "patrol read." Ini membaca semuanya, yang dapat membantu drive disk menemukan sektor yang gagal, dan menugaskannya kembali, sebelum menjadi permanen. Jika mereka permanen, sistem RAID (ZFS / md / kartu raid / apa pun) dapat membangun kembali data dari paritas.

Bahkan jika Anda menggunakan RAIDZ2 atau RAID6, scrub biasa tetap penting.

Satu catatan terakhir - RAID dalam bentuk apa pun bukan pengganti cadangan - ini tidak akan melindungi Anda dari penghapusan tidak disengaja, ransomware, dll. Meskipun snapshot ZFS biasa dapat menjadi bagian dari strategi cadangan.

Dan Pritts
sumber
Terima kasih untuk penjelasannya. Itu sangat masuk akal dan cocok dengan apa yang saya pelajari tentang ZFS sejauh ini. Saya sebenarnya telah memuat ulang server saya dengan FreeNAS dan pergi dengan konfigurasi RAIDZ-1. Saya mengaturnya untuk menggosok sebulan sekali. Apakah Anda pikir itu cukup sering atau akankah Anda merekomendasikan scrub yang lebih sering? Pelanggaran layering merajalela adalah fitur favorit saya ZFS :-)
Andrew Ensley
1
Saya memiliki raidz1 yang berjalan pada 7 drive konsumen dari berbagai usia. Saya memilikinya menggosok setiap 2 minggu. Sering menemukan kesalahan dan memperbaikinya. Baru-baru ini saya kehilangan drive dan kehilangan file yang memiliki kesalahan laten. Untungnya, itu adalah file media yang dapat saya ganti dengan mudah. Untuk data penting saya, saya masih, tentu saja, memiliki cadangan.
Dan Pritts
Saya akan tunjukkan - drive 'rumah' memiliki 2 order lebih buruk tingkat bit error yang tidak dapat dipulihkan saat dikuadratkan dengan grade 'enterprise'. Saya masih cukup senang bahwa tingkat kegagalan gabungan pada RAID-5 dapat diterima pada drive FC / SAS yang layak. Tidak akan melakukannya pada SATA sekalipun.
Sobrique
1
Hanya satu urutan besarnya yang membandingkan dua drive seagate: Seagate ST2000DM001: 1 dalam 10E14. ST2000NM0033: 1 dalam 10E15. Namun, sungguh sulit untuk mengatakan dengan pasti apakah mekanisme penggeraknya berbeda. Saya pernah mendengar sumber yang kredibel memberikan jawaban yang berlawanan.
Dan Pritts
2
Saya menemukan kabel SATA yang buruk pada sistem saya - karena sudah diganti, scrub saya tidak menemukan kesalahan.
Dan Pritts
4

Ada sedikit kesalahpahaman di sini. Banyak saran yang Anda lihat didasarkan pada asumsi yang mungkin tidak benar. Secara khusus, tingkat kesalahan bit yang tidak dapat dipulihkan dari drive Anda.

Disk 'pengguna rumahan' yang murah memiliki 1 per 10 ^ 14 tingkat kesalahan yang tidak dapat dipulihkan.

http://www.seagate.com/gb/en/internal-hard-drives/desktop-hard-drives/desktop-hdd/#specs

Ini pada tingkat di mana Anda berbicara kemungkinan besar kesalahan yang tidak dapat dipulihkan selama membangun kembali RAID, dan jadi Anda tidak boleh melakukannya. (Perhitungan cepat dan kotor menunjukkan bahwa 5x 2TB disk RAID-5 set benar-benar memiliki peluang sekitar 60% dari ini)

Namun ini tidak berlaku untuk drive yang lebih mahal: http://www.seagate.com/gb/en/internal-hard-drives/enterprise-hard-drives/hdd/enterprise-performance-15k-hdd/#specs

1 per 10 ^ 16 adalah 100x lebih baik - artinya 5x 2TB adalah <1% kemungkinan gagal dibangun kembali. (Mungkin lebih sedikit, karena untuk penggunaan perusahaan, spindle 600GB umumnya lebih bermanfaat).

Jadi secara pribadi - saya pikir baik RAID-5 dan RAID-4 masih dapat digunakan, untuk semua alasan RAID-0 masih cukup umum. Jangan lupa - masalah dengan RAID-6 adalah penalti tulis yang lumayan. Anda dapat mengurangi ini sebagian dengan banyak caching, tetapi Anda masih memiliki rasa sakit bawaan, terutama ketika Anda bekerja dengan drive lambat di tempat pertama.

Dan yang lebih mendasar - JANGAN PERNAH mempercayai RAID Anda untuk memberi Anda ketahanan penuh. Anda akan kehilangan data lebih sering karena 'oops' daripada kegagalan drive, jadi Anda MEMBUTUHKAN strategi cadangan yang layak jika Anda peduli dengan data Anda.

Sobrique
sumber
Saya menggunakan 4 drive WD RE4-GP, yang memiliki <1 dalam 10 ^ 15 kesalahan baca yang tidak dapat dipulihkan.
Andrew Ensley
Hukuman tulis RAID6 sangat nyata. Namun, RAID-Z2 tidak menderita karenanya; zfs membuat semua menulis full-stripe. Namun, ini memiliki efek negatif lain - cenderung mengurangi kinerja baca karena beberapa alasan.
Dan Pritts
3

Hmmm, beberapa informasi buruk di sini. Untuk 4 disk, tidak ada yang salah dengan XFS. Saya cenderung menghindari ZFS RAIDZ untuk alasan kinerja dan perluasan (rendah membaca / menulis, tidak dapat diperluas). Gunakan cermin ZFS jika Anda bisa. Namun, dengan 4 disk dan tempat OS Anda, Anda akan kehilangan banyak kapasitas atau harus melalui permainan partisi ganjil agar sesuai dengan OS Anda dan data ke empat disk yang sama.

Saya mungkin tidak akan merekomendasikan ZFS untuk kasus penggunaan Anda. Tidak ada yang salah dengan XFS di sini.

putih
sumber
2
Lupa menyebutkan bahwa OS hidup di drive yang terpisah. Maaf. Apa yang saya inginkan dari ZFS yang tidak dimiliki XFS RAID10 adalah verifikasi data checksum yang dapat mendeteksi (dan memperbaiki) kesalahan data diam (secara transparan dibalikkan pada drive, dan HDD tidak tahu). Saya tidak percaya XFS dapat melakukan ini.
Andrew Ensley
Untuk empat disk, gunakan ZFS mirror jika ada kemungkinan Anda perlu memperluas atau jika kinerja penting. Saya juga menghindari FreeNAS dan hanya menggunakan ZFS langsung di Linux.
ewwhite
1
Saya sendiri seorang pria terminal, jadi saya pasti tidak beralih untuk GUI. Sebagian besar, saya hanya perlu sistem file stabil yang (sebanyak mungkin) menjamin integritas file yang tersimpan di dalamnya. Dan saya berharap mendapat ruang dalam proses itu. Saya telah melihat banyak masalah yang dilaporkan untuk ZoL, banyak dari mereka yang berkaitan dengan peningkatan OS Ubuntu. groups.google.com/a/zfsonlinux.org/forum/#!searchin/zfs-discuss/… Tidak berusaha menyusahkan . Hanya menjelaskan mengapa saya memikirkan apa yang saya pikirkan. Saya tentu terbuka untuk koreksi.
Andrew Ensley
1
Tidak apa-apa. Saya telah melihat jauh lebih banyak masalah dengan FreeNAS (bukan FreeBSD), jadi berjalan dua arah. Ada info di luar sana. Saya tidak menggunakan Ubuntu, tapi saya tidak tahu ZFS . ZFS saya di Linux biasanya dengan RHEL atau CentOS. Inilah contoh alur kerja .
ewwhite
1
Saya menggunakan ZFS di Linux dan Centos 6. Saya tidak mengizinkan pembaruan otomatis dari kernel atau ZFS. Saya memiliki masalah dengan borking ZFS / SCL, tapi saya tidak pernah mengalami kehilangan data. Sebagai catatan, btw, FreeBSD memiliki serangkaian rutinitas kompatibilitas solaris yang serupa, tetapi mereka dan ZFS sepenuhnya terintegrasi ke dalam distribusi, yang membuatnya jauh lebih mudah untuk membuat semuanya bekerja bersama. Jika saya hanya menginginkan ZFS dan layanan file, saya mungkin akan menjalankan FreeBSD. Sebenarnya, itulah yang biasa saya lakukan, tetapi saya menggunakan kotak untuk hal-hal acak lainnya, yang membuat ZOL lebih menarik.
Dan Pritts