Tối ưu hóa ZFS trong môi trường RAM thấp khả thi?


10

Tôi hiện đang thiết lập một máy chủ tệp và đã đi đến điểm thực sự thiết lập các ổ đĩa dữ liệu. Hệ thống có 4 ổ đĩa (một đĩa hệ điều hành, 3 đĩa dữ liệu). Đĩa hệ điều hành được định dạng là ext4 và sẽ không được thêm vào nhóm ZFS (nếu tôi chọn chạy ZFS). Mối quan tâm chính của tôi là tính toàn vẹn dữ liệu và rủi ro mất dữ liệu tối thiểu (bộ nhớ đệm ổ đĩa bị vô hiệu hóa trong bios). Đối với ZFS này dường như là ứng cử viên hoàn hảo, vì nó có phiên bản ổn định cho Linux (đúng không?) Và hỗ trợ sao chép dữ liệu, gộp chung và raidz, trong đó các ổ cứng không phải có cùng kích thước.

Nhưng đây là vấn đề của tôi. Máy chủ chỉ có 2GB RAM và điều này không thể nâng cấp trong tương lai gần và thực tế chỉ có 1.5 sẽ thực sự có thể truy cập được với ZFS sau khi tôi cài đặt tất cả các dịch vụ khác. Tối đa khoảng 10 khách hàng sẽ sử dụng nó bất cứ lúc nào (trung bình giống như 4 khách hàng). Đây có phải là quá thấp để được coi là an toàn?

Từ những gì tôi hiểu, ZFS có thể gặp sự cố trong tình huống RAM thấp và sử dụng nó. Tôi đã nghe những ý kiến ​​trái ngược nhau về việc trao đổi sẽ giúp giảm bớt vấn đề này (tôi có ổ đĩa trao đổi chuyên dụng 20 GB). Có ai từng bị mất dữ liệu với ZFS với ít RAM và bạn đã bao gồm những tối ưu hóa nào để ngăn chặn điều đó?

Hãy ghi nhớ những điều trên có thể vẫn chạy ZFS, mặc dù giảm kích thước ack và cắt giảm một chút hoặc điều này sẽ quá rủi ro?

Thông số hệ thống: RAM 2GB Hệ điều hành trao đổi RAM 20 GB, Debian 7, cài đặt tối thiểu, với FTP và XBMC, DNLA, (để đưa ra ý tưởng về yêu cầu RAM). Được sử dụng cho máy chủ lưu trữ và phương tiện truyền thông âm nhạc truyền phát đến các thiết bị khác.


1
Tôi không phải là một chuyên gia về ZFS, nhưng tôi biết một chút công bằng về các hệ thống tập tin nói chung và tôi biết một nơi bạn sẽ phải chú ý - thời gian lớn - vì tiêu thụ bộ nhớ là sự trùng lặp dữ liệu. Bạn không chỉ định ổ đĩa của mình lớn như thế nào, cũng không có bao nhiêu dữ liệu sẽ nằm trên chúng; điều này là rất lớn, vì ZFS cần phải giữ một bảng tra cứu trong bộ nhớ. Tôi không thể nói với những mối quan tâm khác, nhưng tôi chắc chắn sẽ giết chết sự trùng lặp. Ngoài ra, btrfs khá trưởng thành cho dữ liệu sao lưu, bây giờ; bạn đã xem xét nó? Kiểm tra arstechnica.com/civis/viewtopic.php?f=16&t=1226135 để biết một số hiểu biết (mà một số người chắc chắn sẽ không đồng ý với).
ravenpi

Ồ vâng tôi đã bỏ lỡ điều đó. Nhóm sẽ là 3,35tb (cả đĩa và dữ liệu, vì nó sẽ sao lưu 9 máy khách hàng ngày nên tôi đoán nó sẽ lấp đầy nhanh chóng, tôi đoán điều đó có nghĩa là không có sự trùng lặp ít nhất, vì freebsd đề xuất ram 5gb cho mỗi không gian lưu trữ tb cảm ơn vì đã chỉ ra btrfs, tôi không biết rằng nó đã ổn định, tôi đoán tôi sẽ có một cái nhìn tốt về nó.
Thomas E

"Ổn định" là một cái gì đó tôi có thể không vội vàng gọi nó; người ta ngần ngại gọi BẤT CỨ hệ thống tập tin mới nào đó là "ổn định". Nhưng nó đang đến đó. LWN (Linux Weekly News) vừa thực hiện một loạt về nó; thật tốt - hãy kiểm tra nó ở đây: lwn.net/Articles/576276
ravenpi

Câu trả lời:


5

Bạn nêu toàn vẹn dữ liệu và rủi ro mất dữ liệu tối thiểu là mối quan tâm chính. Chạy ZFS chỉ với 2GiB bộ nhớ là rủi ro và không nên. Quá ít RAM giết chết hiệu suất và là nguyên nhân của nhiều hồ bơi không thể đếm được trong quá khứ. Các dự án FreeNAS nói 8GiB RAM tối thiểu.

Hơn nữa, vì mối quan tâm của bạn là mất dữ liệu, bạn sẽ muốn sử dụng RAM ECC. Vì hộp của bạn chỉ có thể hỗ trợ 2GiB RAM, tôi cho rằng đó là một hộp thực sự cũ sẽ không phải là một lựa chọn tốt cho ZFS.

Để trả lời câu hỏi của bạn:

[Hoài] và hỗ trợ sao chép dữ liệu

Trong thực tế, hãy quên đi sự trùng lặp khi bạn không có ít nhất 32GiB, giống như một quy tắc chung. Bạn có thể cần nhiều RAM hơn đáng kể, tùy thuộc vào kích thước bể bơi. Thứ hai, làm toán nếu sự trùng lặp + chi phí RAM rẻ hơn một số ít đĩa bổ sung. Thường xuyên hơn không, nhiều đĩa là sự thay thế rẻ hơn.

Đây có phải là quá thấp để được coi là an toàn?

Vâng, nó quá thấp.

Từ những gì tôi hiểu, ZFS có thể gặp sự cố trong tình huống RAM thấp và sử dụng nó.

Điều đó đúng và nhiều người đã mất hồ bơi do RAM thấp.

Tôi đã nghe những ý kiến ​​trái ngược nhau về việc trao đổi sẽ giúp giảm bớt vấn đề này

Quên về trao đổi, hộp ZFS của bạn sẽ không bao giờ sử dụng trao đổi.

EDIT: Nếu bạn cảm thấy thích phiêu lưu và đừng bận tâm đến nguy cơ thỉnh thoảng hoảng loạn hoặc mất dữ liệu, hãy đọc hướng dẫn điều chỉnh ZFS và điều chỉnh các cài đặt được đề cập. Ở đây cài đặt ví dụ cho một hệ thống bộ nhớ 768MiB.

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

Nếu không, hãy đầu tư một trăm đô la vào một dải bộ nhớ và tận hưởng một hệ thống ổn định và hiệu quả.


3
Tôi hiểu rồi. Chỉ cần giải thích là tôi có ram ecc và máy là máy chủ micros7 gen proliant hp7, hỗ trợ ram 8 / 16gb, hiện tại nó không đủ khả năng tài chính để mua thêm ram. Tôi đã biết rằng freenas khuyến nghị 8 gb, tuy nhiên tài liệu freebsd và Solaris đề xuất tối thiểu 1 gb, đó là lý do cho câu hỏi. Tôi đoán theo cách này, tôi nên sử dụng ext4 và nhân bản bằng tay với rsync và dd vào đĩa ngoại tuyến, có lẽ là giải pháp an toàn nhất.
Thomas E

Bạn có thể giải thích lý do tại sao ZFS không nên sử dụng SWAP?
CMCDragonkai

Không có lý do gì khi sử dụng ZFS mà không có ECC nguy hiểm hơn là chạy cùng phần cứng với hệ thống tệp khác.
Alicia

5
Tại sao cộng đồng ZFS luôn bình luận với sự hợm hĩnh kiêu ngạo như vậy? Không phải ai cũng muốn chiếc mũ dữ liệu đáng tin cậy 100 đô la chỉ nằm xung quanh để phục vụ một số yêu cầu thiết kế hoàn toàn vô lý ! Tôi, ví dụ, có một máy chủ gia đình ARM nhỏ với RAM cứng 1GB và ổ cứng USB. Tôi muốn dữ liệu trên đó được an toàn khỏi mục tiêu bit, bởi vì nó được phát hiện và sửa chữa và có ảnh chụp nhanh cho mục đích sao lưu. Không cần tốc độ. Và btrfs là đơn giản bị phá vỡ bởi thiết kế. Vì vậy, ZFS sẽ hợp lý, nếu một số kẻ ngốc đã không thiết kế nó để phát nổ từ trầm cảm bất cứ khi nào nó có <128 exabyte RAM.
Evi1M4chine

0

Trên các hệ thống áp suất bộ nhớ cao (linux), thực sự cần thiết phải nâng cấp bộ nhớ. Vẫn còn lỗi ( liên kết ) trong đó việc hoán đổi khóa IO (tác vụ treo kernel) khiến nó không thể sử dụng được trừ khi được khởi động lại. Tôi tin rằng vm.swappiness = X không có tác dụng đối với zfs vì vậy việc giới hạn cung tròn ở một số số nhất định có thể giúp ích một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.