Btrfs: RAID 1 pada 3+ perangkat


10

Saat ini saya memiliki partisi Btrfs dengan empat perangkat: tiga drive 3 TB dan drive 4 TB. Data dan metadata adalah RAID 10, jadi saya memiliki 6 TB ruang yang dapat digunakan, yang hampir penuh. Saya telah mengantisipasi bahwa dukungan RAID 5 di Btrfs akan matang pada saat penyimpanan saya penuh, tetapi tampaknya itu bukan prioritas.

Pertanyaan saya adalah: adakah alasan untuk memilih RAID 10 dari pada RAID 1 ? Saya tahu RAID 1 nyata pada perangkat keras saya saat ini harus memberi saya 3 TB ruang yang dapat digunakan dengan 4 salinan dari setiap blok, tetapi Btrfs tampaknya tidak berperilaku seperti ini. Dari FAQ Btrfs :

btrfs menggabungkan semua perangkat ke dalam kumpulan penyimpanan terlebih dahulu, dan kemudian menduplikasi potongan saat data file dibuat. RAID-1 saat ini didefinisikan sebagai "2 salinan dari semua data pada perangkat yang berbeda". Ini berbeda dari MD-RAID dan dmraid, dalam hal itu membuat persis n salinan untuk perangkat n. Dalam btrfs RAID-1 pada tiga perangkat 1 TB, kami mendapatkan 1,5 TB data yang dapat digunakan. Karena setiap blok hanya disalin ke 2 perangkat, menulis blok yang diberikan hanya membutuhkan tepat 2 perangkat untuk ditulis; membaca dapat dibuat hanya dari satu.

Dan dari Jens Erat di Stack Overflow :

Btrfs mendistribusikan data (dan salinan RAID 1-nya) secara bijaksana, sehingga sangat baik menangani hard disk dengan ukuran berbeda. Anda akan menerima jumlah semua hard disk, dibagi dua - dan tidak perlu memikirkan cara menyatukannya dalam pasangan berukuran serupa.

Jika lebih dari satu disk gagal, Anda selalu berada dalam bahaya kehilangan data: RAID 1 tidak dapat menangani kehilangan dua disk secara bersamaan. Dalam contoh yang diberikan di atas, jika dua disk yang salah mati, Anda selalu kehilangan data.

Apakah ini berarti bahwa penyeimbangan ulang dari RAID 10 ke RAID 1 akan memberi saya tambahan 500 GB data (6,5 TB daripada 6 TB) karena drive 4 TB? Dan apakah ada alasan bagi saya untuk tetap menggunakan RAID 10?


1
BTRFS RAID-5 adalah (walaupun masih eksperimental) sebenarnya cukup stabil dan bahkan banyak skenario pemulihan data khas bekerja di versi saat ini (tanpa menabrak). Anda mungkin harus menggosok dari waktu ke waktu untuk memastikan data Anda masih benar, tetapi mungkin layak dicoba. Dimungkinkan untuk mengkonversi dari RAID-1 (0) ke RAID-5.
basic6

@ basic6 Bagus untuk tahu, terima kasih. Saya sedang meneliti itu belum lama ini dan melihat bahwa scrubdan replacedukungan telah ditambahkan pada 3,19, tetapi orang-orang masih mengeluh tentang kurangnya peringatan kegagalan perangkat. Saya memiliki crons yang diatur untuk scrub mingguan dan tes mandiri SMART mingguan / bulanan, jadi saya harus bisa menangkap masalah itu. Saya akan mencobanya.
Mikkel

Lulur berkala (mingguan atau bulanan) penting, jika lulur menemukan dan kesalahan karena tidak dapat membaca dari drive, itu akan meningkatkan jumlah kesalahan. Periksa penghitungan kesalahan menggunakan dev stats, yang bisa menjadi cronjob lain .
basic6

Jawaban:


5

Ya, Anda mendapat tambahan 500 GB. Perhatikan bahwa menentukan ruang yang tersedia dalam btrf tetap sulit dipahami. Juga: lihat kalkulator penggunaan disk btrfs .

Pada pertanyaan kedua Anda: Anda mungkin kehilangan beberapa kinerja pada array Anda. Secara alami, data Anda sama-sama aman di kedua konfigurasi RAID. Ketika mempertimbangkan kinerja, Anda mungkin dapat melihat benchmark ini: kernel.org , phoronix.com .

Apakah Anda mungkin sudah mencoba mengonversi ke RAID 1? Jika demikian: apa temuan Anda?


1
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup Anda akan dapat mengomentari posting apa pun .
DavidPostill

Namun, untuk menjawab pertanyaan Anda, saya telah bertobat dan hasilnya tampaknya konsisten dengan harapan saya. Btrfs melakukan pekerjaan yang buruk menunjukkan ruang disk yang sebenarnya tersedia, tetapi Anda dapat melihat di output dari btrfs fi shyang ruang ekstra pada drive 4 TB sedang mengambil keuntungan dari, dan (2,83 + 1,93 + 1,93 + 1,95) /2~=4.30 seperti yang diharapkan. Saya baru-baru ini mengalami kegagalan drive dan berhasil dibangun kembali tanpa kehilangan data, jadi saya dapat mengonfirmasi secara langsung bahwa redundansi masih utuh.
Mikkel

Maaf balasan saya tidak jelas @david. Saya mencoba menjawab dua pertanyaan di dua baris terakhir dari posting asli. Selain itu saya menunjukkan berbagai ketidakpastian (yang tampaknya intrinsik untuk btrfs) dan memasok sumber saya untuk referensi. Memang saya juga mengajukan pertanyaan kepada penulis, sehingga orang lain mungkin bisa belajar dari temuannya. Saya melakukan ini dalam jawaban karena alasan yang sudah Anda jelaskan. Saya akan mempertimbangkan komentar Anda lain kali saat saya menjawab pertanyaan tentang pertukaran tumpukan.
Laura

Ini mungkin bukan jawaban yang paling pasti, tetapi hasil saya menunjukkan bahwa asumsi Anda benar, jadi saya menerimanya. Saya tidak yakin tentang komentar Anda tentang perbedaan kinerja. Memang benar untuk perangkat keras RAID 1 vs 10, tapi saya tidak yakin jika Btrfs melihat peningkatan kinerja dari RAID 10. Selanjutnya, apa yang disebutnya RAID 1 masih bergaris lintas beberapa perangkat di sini, jadi masih lebih mirip dengan RAID 10 daripada RAID asli 1. Jika saya membaca balasan Anda sebelum mengonversi, saya akan melakukan sebelum dan sesudah tolok ukur, tapi saya tidak akan menghabiskan satu minggu lagi untuk mengubah array menjadi RAID 10 dan kembali.
Mikkel

Nah, ada halaman ini , yang menunjukkan manfaat marginal untuk RAID 10 lebih dari RAID 1, membawa peringatan di bagian atas bahwa tolok ukurnya berusia 7 tahun.
Mikkel

0

Jangan gunakan btrfs raid 5 atau 6 karena implementasi penuh dengan bug, jalankan zfs jika Anda menginginkannya.

Dengan raid10 Anda akan mendapatkan kecepatan.

Hal yang optimal untuk dilakukan adalah membuat partisi 3TB pada drive 4TB (pastikan ketiganya berukuran sama persis), gabungkan mereka ke dalam RAID10 yang akan memiliki 6 TB ruang kosong. Gunakan ekstra 1 TB pada drive 4 TB untuk / boot (ini harus tetap vfat jika Anda ingin menggunakan efistub dan menghindari grub atau bootloader lain yang akan membuat boot Anda sedikit lebih cepat), swap (Anda dapat menggunakan cukup besar, optimal akan menjadi zram swap kecil (4 gb berfungsi dengan baik dengan 32 gb ram, 2 gb harus baik-baik saja dengan 16 gb, jika Anda memiliki kurang dari 16 idk jika layak dan Anda mungkin harus meng-upgrade pula) itu digunakan pertama (atur prioritas ke tertinggi) menggunakan zstd dan aliran kompresi sebanyak Anda memiliki core / utas ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.