Dioptimalkan ZFS dalam kelayakan lingkungan RAM rendah?

10

Saat ini saya sedang menyiapkan server file dan sampai pada titik sebenarnya mengatur drive data. Sistem ini memiliki 4 drive (satu disk OS, 3 disk data). Disk OS diformat sebagai ext4 dan tidak akan ditambahkan ke kumpulan ZFS (jika saya Memilih untuk menjalankan ZFS). Perhatian utama saya adalah integritas data dan risiko minimum kehilangan data (caching drive dinonaktifkan di bios). Untuk ZFS ini tampaknya menjadi kandidat yang sempurna, karena ia memiliki versi stabil untuk Linux (benar?), Dan mendukung duplikasi data, pengumpulan dan raidz, di mana hard-drive tidak harus memiliki ukuran yang sama.

Tapi ini masalah saya. Server hanya memiliki 2GB RAM dan ini tidak dapat ditingkatkan dalam waktu dekat, dan secara realistis hanya 1,5 yang benar-benar dapat diakses oleh ZFS setelah saya menginstal semua layanan lainnya. Maksimal sekitar 10 klien akan menggunakannya pada satu waktu (lebih seperti rata-rata 4). Apakah ini terlalu rendah untuk dianggap aman?

Dari apa yang saya mengerti ZFS dapat crash dalam situasi RAM rendah dan mengambil kolam dengannya. Saya mendengar pendapat yang bertentangan apakah swap akan membantu meringankan masalah ini (saya memiliki drive khusus swap 20 GB). Adakah yang mengalami kehilangan data dengan ZFS dengan sedikit RAM dan optimasi apa yang Anda sertakan untuk mencegahnya?

Dengan mengingat hal di atas apakah masih mungkin untuk menjalankan ZFS, meskipun mengurangi ukuran ack dan memangkasnya sedikit atau akankah ini terlalu berisiko?

Spesifikasi sistem: 2GB RAM 20GB swap drive OS, Debian 7, pemasangan minimal, dengan FTP, dan XBMC, DNLA, (untuk memberikan gambaran tentang persyaratan RAM). Digunakan untuk server penyimpanan dan streaming media musik ke perangkat lain.

Thomas E
sumber
1
Saya bukan guru ZFS, tapi saya tahu sedikit tentang filesystem secara umum, dan saya tahu satu tempat Anda harus melihat keluar - waktu besar - untuk konsumsi memori adalah deduplikasi data. Anda tidak menentukan seberapa besar disk Anda, atau seberapa banyak data akan berada di dalamnya; ini sangat besar, karena ZFS perlu menyimpan tabel pencarian dalam memori. Saya tidak dapat berbicara dengan masalah lain, tetapi saya pasti akan membunuh deduplikasi. Juga, btrf cukup matang untuk data yang dicadangkan, sekarang; Sudahkah Anda mempertimbangkannya? Periksa arstechnica.com/civis/viewtopic.php?f=16&t=1226135 untuk beberapa wawasan (yang pasti akan disetujui oleh sebagian orang).
ravenpi
Oh ya saya melewatkannya. Kumpulan akan menjadi 3.35tb (baik disk maupun data, karena akan mencadangkan 9 klien setiap hari jadi saya kira itu akan terisi dengan cepat, saya kira itu berarti tidak ada duplikasi setidaknya, karena freebsd menyarankan ram 5gb untuk setiap ruang penyimpanan tb Terima kasih telah menunjukkan btrfs, saya tidak menyadari bahwa itu sekarang stabil, saya kira saya akan melihatnya dengan baik
Thomas E
"Stabil" adalah sesuatu yang saya mungkin tidak terburu-buru menyebutnya; seseorang ragu-ragu untuk memanggil APAPUN bahkan filesystem agak baru agak "stabil." Tapi sudah sampai di sana. LWN (Linux Weekly News) baru saja melakukan serangkaian di atasnya; itu bagus - lihat di sini: lwn.net/Articles/576276
ravenpi

Jawaban:

5

Anda menyatakan integritas data dan risiko minimum kehilangan data sebagai masalah utama. Menjalankan ZFS dengan memori hanya 2GiB berisiko dan tidak dianjurkan. RAM terlalu sedikit membunuh kinerja dan merupakan penyebab banyak kolam yang tidak dapat di-mount di masa lalu. Proyek FreeNAS menyatakan minimum 8GiB RAM.

Selain itu, karena kekhawatiran Anda adalah kehilangan data, Anda harus menggunakan ECC RAM. Karena kotak Anda hanya dapat mendukung 2GiB RAM, saya berasumsi itu adalah kotak yang benar-benar tua yang tidak akan menjadi pilihan yang baik untuk ZFS.

Untuk menjawab pertanyaan Anda:

[…] Dan mendukung duplikasi data

Dalam praktiknya lupakan deduplikasi ketika Anda tidak memiliki setidaknya 32GiB, seperti aturan praktis. Anda mungkin perlu lebih banyak RAM, tergantung pada ukuran kolam. Kedua, lakukan perhitungan jika deduplication + biaya RAM lebih murah daripada beberapa disk tambahan. Lebih sering daripada tidak, lebih banyak disk adalah alternatif yang lebih murah.

Apakah ini terlalu rendah untuk dianggap aman?

Ya, ini terlalu rendah.

Dari apa yang saya mengerti ZFS dapat crash dalam situasi RAM rendah dan mengambil kolam dengannya.

Itu benar dan banyak orang kehilangan kolam karena RAM yang rendah.

Saya mendengar pendapat yang bertentangan apakah swap akan membantu meringankan masalah ini

Lupakan swap, kotak ZFS Anda seharusnya tidak pernah menggunakan swap.

EDIT: Jika Anda merasa ingin berpetualang dan tidak keberatan dengan risiko panik sesekali atau kehilangan data, baca panduan tuning ZFS dan sesuaikan pengaturan yang disebutkan. Di sini contoh pengaturan untuk sistem memori 768MiB.

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

Kalau tidak, investasikan seratus dolar dalam satu kepingan memori dan nikmati sistem yang stabil dan berkinerja.

Marco
sumber
3
Saya melihat. Hanya untuk menguraikan ya saya punya ram ecc dan mesinnya adalah hp proliant microserver gen7, yang mendukung ram 8 / 16gb, hanya saja saat ini secara finansial tidak layak untuk membeli lebih banyak ram. Saya sadar bahwa freenas merekomendasikan 8 gb, namun dokumentasi freebsd dan Solaris menyarankan 1 gb sebagai minimum, yang merupakan alasan untuk pertanyaan itu. Saya kira dalam terang ini saya harus tetap dengan ext4 dan mirror secara manual dengan rsync dan dd ke disk offline, mungkin solusi paling aman.
Thomas E
Bisakah Anda menguraikan mengapa ZFS tidak harus menggunakan SWAP?
CMCDragonkai
Tidak ada alasan menggunakan ZFS tanpa ECC lebih berbahaya daripada menjalankan perangkat keras yang sama dengan sistem file lain.
Alicia
5
Mengapa komunitas ZFS selalu berkomentar dengan keangkuhan sombong seperti itu? Tidak semua orang yang menginginkan data yang dapat diandalkan, hanya $ 100 hanya berbaring untuk melayani beberapa persyaratan desain yang benar-benar konyol ! Saya, misalnya, memiliki server rumah ARM kecil dengan RAM berkabel 1GB, dan hard drive USB. Saya ingin data di dalamnya aman dari bit busuk, dengan itu baik terdeteksi dan diperbaiki, dan memiliki snapshot untuk keperluan cadangan. Tidak perlu kecepatan. Dan btrfs jelas rusak oleh desain. Jadi ZFS akan masuk akal, jika beberapa orang idiot tidak dirancang untuk meledak dari depresi setiap kali ia memiliki <128 exabyte RAM.
Evi1M4chine
0

Pada sistem tekanan memori tinggi (linux) sangat perlu untuk meningkatkan memori. Masih ada bug ( tautan ) di mana swapping mengunci IO (kernel hung task) membuatnya tidak dapat digunakan kecuali di-reboot. Saya percaya bahwa vm.swappiness = X tidak berpengaruh pada zfs sehingga membatasi lengkungan ke angka tertentu dapat membantu sedikit.

satch_boogie
sumber