Khi tự xây dựng thiết bị lưu trữ mạng (NAS) tại nhà, một trong những vấn đề khiến tôi phải cân nhắc rất nhiều là lựa chọn giữa ZFS và Btrfs – hai trong số những hệ thống tệp phổ biến nhất hiện nay. Có nhiều điểm tương đồng giữa hai hệ thống này với các tính năng như snapshots (ảnh chụp nhanh), xác minh tính toàn vẹn dữ liệu và copy-on-write (ghi sao chép) để tăng hiệu quả. Tuy nhiên, tôi không thể chỉ tin vào những gì trông tốt trên lý thuyết; chúng phải chứng minh được khả năng thực tế của mình. Tôi ưu tiên mức tiêu thụ điện năng thấp, quản lý sao lưu dễ dàng và đảm bảo tính toàn vẹn dữ liệu lâu dài trên phần cứng khiêm tốn của mình. Sau nhiều tháng sử dụng và thử nghiệm song song, tôi đã chọn Btrfs và thành thật mà nói, tôi không cảm thấy muốn quay lại – đây là lý do.
7 lý do Btrfs phù hợp hơn ZFS cho NAS DIY
Yêu cầu bộ nhớ thấp hơn
ZFS nổi tiếng là “ngốn” RAM. Hầu hết các khuyến nghị đều đề xuất ít nhất 8GB bộ nhớ và lý tưởng hơn nếu bạn muốn sử dụng các tính năng như deduplication (loại bỏ dữ liệu trùng lặp) hoặc các biện pháp tăng hiệu suất khác. Điều này ổn nếu bạn đang chạy một máy chủ với RAM ECC và phần cứng cấp doanh nghiệp, nhưng hệ thống của tôi khiêm tốn hơn nhiều.
NAS của tôi chạy trên một mini-PC giản dị chỉ với 4GB RAM và bộ xử lý cấp cơ bản. Do đó, Btrfs chạy thoải mái trong các môi trường bộ nhớ thấp như của tôi và không yêu cầu tinh chỉnh phức tạp ngay từ đầu. Điều này cho phép tôi tận dụng tối đa phần cứng sẵn có mà không gặp phải tình trạng hiệu suất bị giật lag hay phải tốn thêm tiền nâng cấp.
Bo mạch chủ MSI MAG Forge 112R được cài đặt bên trong case NAS DIY
Hỗ trợ gốc trong nhân Linux
ZFS không phải là một phần của nhân Linux; nó được duy trì bởi dự án OpenZFS và phân phối dưới dạng một module nhân riêng biệt. Sự không đồng bộ này nghe có vẻ không lớn nhưng có thể và thực sự gây ra các vấn đề khi nhân Linux cập nhật nhanh hơn module ZFS. Do đó, bạn luôn phải tích cực suy nghĩ về việc quản lý các bản nâng cấp nhân hoặc hy vọng rằng sẽ không có gì bị hỏng – đây không phải là một chiến lược đáng tin cậy cho thứ gì đó quan trọng như hệ thống tệp.
Mặt khác, Btrfs được tích hợp trực tiếp vào nhân Linux. Điều này thường có nghĩa là khả năng tương thích lâu dài tốt hơn và các bản sửa lỗi nhanh chóng hơn. Và đối với cá nhân tôi, điều đó có nghĩa là ít lo lắng hơn trong quá trình nâng cấp hệ thống. Vì NAS của tôi chạy trên nền Linux, Btrfs hoạt động trơn tru với các bản cập nhật, giúp tôi an tâm hơn.
Giao diện máy tính chạy Arch Linux, hệ điều hành phổ biến cho NAS DIY
Thiết lập và quản lý đơn giản hơn
ZFS có thể mạnh mẽ, nhưng việc thiết lập nó cũng cứng nhắc và gần như phức tạp. Bạn phải lên kế hoạch trước cách nhóm các ổ đĩa lại với nhau và tạo ZFS pools vì rất khó để thực hiện các thay đổi cấu trúc sau này. Ngay cả các tác vụ cơ bản như thêm ổ đĩa và thay đổi kích thước pool cũng cần một chút mày mò.
Btrfs tiện lợi và linh hoạt hơn nhiều ở khía cạnh này. Các tác vụ như tạo volume mới, bật nén dữ liệu và tạo subvolume về cơ bản là dễ dàng, tương tự như việc thêm ổ cứng mới vào hệ thống. Tôi thà sử dụng NAS của mình và tất cả các ứng dụng đã cài đặt còn hơn dành cả thời gian để cố gắng quản lý hệ thống tệp và những đặc điểm riêng của nó. Đó là lý do tại sao Btrfs có ý nghĩa hơn đối với tôi.
Các khe cắm NVMe trên Synology DS925+ thể hiện sự linh hoạt trong cấu hình lưu trữ
Tích hợp tốt hơn với các công cụ bên thứ ba
Nhiều ứng dụng Linux được xây dựng xung quanh Btrfs, giúp chúng cực kỳ dễ dàng ghép nối với các hệ thống như của tôi. Tôi cần chức năng snapshot vừa làm bản sao lưu vừa là cách dễ dàng để quay trở lại phiên bản gần đây nếu có sự cố xảy ra. Snapper và Timeshift là hai trong số những công cụ đáng tin cậy nhất cho tác vụ này, và chúng hoạt động với Btrfs ngay cả ở cấp sub-volume để tự động hóa quy trình snapshot và giúp việc khôi phục trở nên siêu dễ dàng.
Snapshots của ZFS chắc chắn khá mạnh mẽ, nhưng nhiều công cụ desktop Linux như vậy lại không tích hợp tốt với ZFS ngay từ đầu. Và vì NAS của tôi đôi khi cũng đóng vai trò như một desktop Linux nhẹ, Btrfs giúp tôi không phải tự viết script cho mọi thứ một cách thủ công.
Người dùng truy cập dữ liệu trên NAS từ MacBook, minh họa tích hợp hệ thống tệp với thiết bị cá nhân
Linh hoạt khi thêm ổ đĩa
Như đã đề cập trước đó, ZFS yêu cầu bạn phải lên kế hoạch trước cho các storage pools của mình, khiến việc thêm ổ đĩa mới sau này không còn là trải nghiệm cắm-và-chạy đơn giản. Nó thường yêu cầu bạn tạo ra các thiết bị ảo (vdevs) hoàn toàn mới, điều này rõ ràng là cồng kềnh.
Với Btrfs, tôi có thể thêm dung lượng lưu trữ khi cần vào các hệ thống tệp hiện có và cân bằng lại dữ liệu mà không cần xây dựng lại toàn bộ pool từ đầu. Điều này có ý nghĩa hơn đối với nhu cầu của tôi thay vì phải mua thêm dung lượng lưu trữ không cần thiết ngay từ đầu chỉ để tuân theo các ràng buộc của ZFS.
Các khay ổ đĩa bên trong Lenovo ThinkSystem SR250 V2, minh họa khả năng mở rộng lưu trữ cho NAS
Hiệu quả năng lượng
Mặc dù gần đây tôi đã giảm thời gian NAS hoạt động online, nhưng trước đây tôi thường cho nó chạy 24/7. Và khi bạn có NAS chạy trong thời gian dài như vậy, hiệu quả năng lượng thực sự quan trọng. Vì ZFS sử dụng nhiều bộ nhớ, CPU và tài nguyên ổ đĩa hơn, nên đương nhiên nó tiêu thụ nhiều điện năng hơn.
Từ những gì tôi đã tìm thấy khi so sánh cả hai hệ thống tệp, Btrfs hoạt động gọn nhẹ và nhẹ nhàng hơn nhiều đối với RAM và CPU khi ở trạng thái không hoạt động. Nó cũng không giữ cho các ổ đĩa quay thường xuyên. Điều này không chỉ tiết kiệm điện năng mà còn giữ cho hệ thống yên tĩnh hơn và giảm hao mòn ổ đĩa, đảm bảo NAS tại nhà của bạn hoạt động bền bỉ hơn.
Cổng mạng 10GbE trên TerraMaster F4-424 Max NAS, liên quan đến hiệu quả kết nối và năng lượng hoạt động
Hỗ trợ nén minh bạch thuận tiện hơn
Đúng là cả Btrfs và ZFS đều hỗ trợ nén minh bạch, nhưng tôi thấy cách tiếp cận của Btrfs tiện lợi hơn một chút. Nó cho phép tôi bật tính năng nén trên cơ sở từng subvolume, vì vậy tôi có thể chọn loại dữ liệu nào nên được nén mà không cần định dạng lại toàn bộ hệ thống.
Các thuật toán nén cho các tệp như log, bản sao lưu cài đặt và tài liệu hoạt động rất tốt – hệ thống xử lý mà không có sự sụt giảm hiệu suất đáng kể nào. Đó là một cách tốt để có thêm một chút dung lượng lưu trữ mà không cần suy nghĩ quá nhiều về nó. Mặc dù ZFS cũng cung cấp các lợi ích tương tự, sự linh hoạt và dễ sử dụng của Btrfs đã thuyết phục tôi chọn hệ thống sau.
Thiết bị NAS Ugreen, minh họa một giải pháp lưu trữ hỗ trợ các hệ thống tệp tiên tiến như Btrfs và ZFS
Bài học từ thực tế
Bạn chỉ có thể học được một lượng kiến thức nhất định về NAS trước khi mang một chiếc về nhà hoặc tự xây dựng. Một khi đã thiết lập, có rất nhiều điều để học hỏi – cả tốt và xấu – trong quá trình bạn tối ưu hóa hệ thống cho nhu cầu của mình. Và bạn không thể thúc đẩy nhanh quá trình học đó, bạn phải tự mình trải nghiệm, giống như tôi đã làm với Btrfs và ZFS, trước khi có thể quyết định điều mình muốn. Tuy nhiên, đôi khi, bạn có thể học được những bài học từ sai lầm của người khác để trải nghiệm NAS của mình trở nên tốt hơn ngay từ ngày đầu.
Tài liệu tham khảo
- When setting up my DIY home NAS
- My NAS runs on a modest mini-PC with 4GB of RAM
- my NAS is on Linux
- my NAS also doubles up as a lightweight Linux desktop occasionally
- ZFS requires you to plan your storage pools
- your home NAS
- you can learn some lessons from other’s mistakes