Hệ thống tệp nào để chọn giữa EXT4, Btrfs và ZFS cho máy chủ

Chọn hệ thống tệp chính xác để sử dụng trên Máy chủ NAS là một quyết định rất quan trọng. Nói chung các hệ điều hành máy chủ NAS như QNAP, Asustor hoặc Synology hỗ trợ hệ thống tệp EXT4 phổ biến nhưng cũng có Btrfs và thậm chí cả ZFS. Tôi nên chọn hệ thống tệp nào cho máy chủ NAS gia đình hoặc doanh nghiệp của mình?

Hệ thống tệp là gì và chúng dùng để làm gì?

EXT4, Btrfs và ZFS cho máy chủ

Tất cả các hệ điều hành đều kết hợp một hệ thống tệp hoặc một số hệ thống tệp khác nhau, để kiểm soát cách thông tin được lưu trữ và truy xuất từ ​​các phương tiện khác nhau , chẳng hạn như ổ cứng, SSD ổ đĩa và cả ổ lưu trữ di động như ổ bút hoặc thẻ nhớ. kỉ niệm. Nếu chúng ta không có hệ thống tệp, hệ điều hành sẽ không biết nơi kết thúc của một dữ liệu được ghi nào đó và nơi bắt đầu tiếp theo, do đó, đây là một trong những khía cạnh quan trọng nhất mà chúng ta phải tính đến.

Các chức năng chính của bất kỳ hệ thống tệp nào là phân bổ không gian cho các tệp khác nhau, quản lý dung lượng trống, cấu trúc thông tin đã lưu để có thể truy cập dễ dàng và nhanh chóng. Một khía cạnh rất quan trọng khác mà chúng ta phải tính đến là các lĩnh vực, cụ thể hơn là quy mô của chúng, trong các lĩnh vực này là nơi thông tin được lưu trữ. Các đặc điểm khác của hệ thống tệp là chúng cung cấp các phương pháp để tạo, sao chép, di chuyển, đổi tên và thậm chí xóa các tệp và thư mục mà chúng ta có trên phương tiện. Hệ thống tệp cũng kết hợp một số tính năng rất quan trọng như danh sách kiểm soát truy cập (ACL) để kiểm soát quyền, cơ chế tránh hoặc giảm thiểu phân mảnh, khả năng ghi nhật ký (cải thiện tính toàn vẹn của hệ thống tệp) và khả năng định cấu hình hạn ngạch đĩa trong số các các chức năng.

Chúng tôi hiện có tổng cộng ba hệ thống tệp khác nhau được sử dụng rộng rãi trong các máy chủ NAS của các nhà sản xuất khác nhau và tất nhiên Linux và hệ điều hành dựa trên FreeBSD để lưu trữ dữ liệu trên máy chủ, các hệ thống tệp này là EXT4, Btrfs và ZFS, ba hệ thống tệp có các đặc điểm khác nhau và một số hoạt động tốt hơn trong các tình huống khác nhau.

EXT4

EXT4 là hệ thống tệp chính của bất kỳ hệ điều hành dựa trên Linux nào, hệ thống tệp này có tính chất giao dịch (với tính năng ghi nhật ký) và kết hợp những cải tiến rất quan trọng so với các phiên bản tiền nhiệm như hỗ trợ cho khối lượng lớn hơn, thấp hơn CPU sử dụng và cải tiến tốc độ đọc và ghi. Một số đặc điểm rất quan trọng của EXT4 là nó cho phép đặt trước dung lượng ổ đĩa mà không cần điền mọi thứ bằng số XNUMX, điều thường được thực hiện trong các hệ thống tệp khác, ngoài ra, không gian dành riêng này thường liền kề để tránh hoặc giảm thiểu phân mảnh hệ thống tệp, chức năng này có liên quan đến “Allocate-on-flush” hay còn gọi là bảo lưu bộ nhớ bị trì hoãn, điều này bao gồm việc lưu trữ khối bộ nhớ ngay khi nó sắp được ghi vào đĩa, điều này cải thiện hiệu suất và giảm phân mảnh.

EXT4 có các kỹ thuật để tránh phân mảnh như cái mà chúng tôi đã giải thích, nhưng nó cũng có một công cụ để chống phân mảnh các tệp riêng lẻ hoặc toàn bộ ổ đĩa mà không cần phải ngắt kết nối đĩa, mặc dù về mặt logic, trong khi đang trong quá trình chống phân mảnh, chúng ta sẽ có hệ thống tệp chậm hơn.

Hệ thống tệp này có các đặc điểm và giới hạn sau:

  • Kích thước tệp tối đa: 16TiB sử dụng khối 4K.
  • Số tệp tối đa: 4 tỷ
  • Kích thước tên tệp tối đa: 255 byte
  • Kích thước âm lượng tối đa: 1EiB
  • Mã hóa dữ liệu minh bạch: có
  • Sao chép khi ghi: không
  • Nén trong suốt: không
  • Khử trùng minh bạch: không

Khi chúng ta đã biết các tính năng chính của EXT4, chúng ta sẽ nói về Btrfs, được biết đến như là một kế thừa tự nhiên cho hệ thống tệp EXT4.

Btrfs

Hệ thống tệp Btrfs được sinh ra như một sự kế thừa tự nhiên cho EXT4, mục tiêu của nó là thay thế nó bằng cách loại bỏ càng nhiều hạn chế của nó, đặc biệt là về kích thước tối đa của tệp. Các đặc điểm chính của hệ thống tệp này là nó được định hướng chủ yếu cho các máy chủ, nó có sự phân bổ động của các inode, không cần thiết đặt số lượng tối đa khi tạo hệ thống tệp như xảy ra với EXT4, nó cho phép định cấu hình khối lượng trong rất tiên tiến, với khả năng định cấu hình ảnh chụp nhanh hoặc ảnh chụp nhanh có thể ghi và cũng cho phép chụp nhanh ảnh chụp nhanh. Các tính năng khác là nó cho phép sao chép và phân dải ở cấp mục tiêu nếu chúng ta có nhiều ổ cứng, nó có khả năng thực hiện xác minh dữ liệu và siêu dữ liệu trong thời gian thực để tối đa hóa tính toàn vẹn của dữ liệu.

Hệ thống tệp này sử dụng tính năng sao chép và ghi vào sổ đăng ký của tất cả dữ liệu và siêu dữ liệu, nó cũng cho phép nén nội tuyến để tiết kiệm dung lượng đĩa. Btrfs có thể kiểm tra hệ thống tệp mà không cần phải ngắt kết nối nó và nếu chúng tôi ngắt kết nối nó, việc kiểm tra thực sự nhanh chóng, tất nhiên, nó có chế độ tối ưu hóa cho ổ SSD và cho phép chống phân mảnh mà không cần ngắt kết nối.

Hệ thống tệp này có các đặc điểm và giới hạn sau:

  • Kích thước tệp tối đa: 16EiB.
  • Số lượng tệp tối đa: 18 nghìn tỷ.
  • Kích thước tên tệp tối đa: 255 byte
  • Kích thước âm lượng tối đa: 16EiB.
  • Mã hóa dữ liệu minh bạch: không
  • Sao chép khi viết: có
  • Nén trong suốt: có
  • Nhân đôi: có

Bây giờ bạn đã biết các tính năng chính của Btrfs, chúng ta hãy nói về ZFS, một trong những hệ thống tệp tiên tiến nhất hiện có cho hệ điều hành Linux và Unix.

ZFS

Hệ thống tệp ZFS là một trong những hệ thống tiên tiến nhất hiện nay, nó nổi bật với dung lượng lớn, khả năng bảo mật tuyệt vời liên quan đến tính toàn vẹn của dữ liệu và hiệu suất tuyệt vời trong việc đọc và ghi. ZFS sử dụng “Storage Pools” hay còn được gọi là vdev, không giống như các hệ thống tệp truyền thống được đặt trên thiết bị phần cứng như đĩa cứng và do đó yêu cầu một trình quản lý âm lượng riêng biệt. Nhờ các vdev này, chúng tôi có thể định cấu hình các "nhóm" khác nhau thuộc loại đơn giản, nhân bản hoặc sử dụng RAID-Z phổ biến để cung cấp cả dự phòng dữ liệu và hiệu suất cao hơn. Ngoài ra, hệ thống tệp ZFS có thể được trang bị ổ SSD hoạt động như một bộ nhớ đệm, hay còn được gọi là “ZFS Intent Log” hoặc “ZIL” để cải thiện hơn nữa hiệu suất.

Hệ thống tệp này sử dụng mô hình giao dịch sao chép-ghi-ghi, điều này có nghĩa là dữ liệu hoạt động không bao giờ bị ghi đè, nhưng được sao chép sang một nơi khác và dữ liệu đã sửa đổi được ghi vào đó, với mục đích cải thiện đáng kể tính toàn vẹn của tệp trong sự kiện mất điện. Chúng ta cũng phải tính đến điều đó để giảm chi phí mà ZIL được sử dụng khi cần ghi đồng bộ. Phần tiêu cực của CoW là chúng ta sẽ có độ phân mảnh cao, và hiện tại ZFS không có phương pháp nào để chống phân mảnh hệ thống tệp, mặc dù trong các phiên bản tiếp theo chúng tôi đang nỗ lực cải thiện khía cạnh này.

Các đặc điểm khác của ZFS là hệ thống tệp được gọi là tập dữ liệu, nằm bên trong «vùng lưu trữ», tập dữ liệu này có thể thuộc loại hệ thống tệp giống như một ổ đĩa thông thường và hiện tại, hoặc cũng giống như một zvol sẽ là một thiết bị. của các khối. Tùy thuộc vào nhu cầu của chúng tôi, chúng tôi sẽ phải tạo một loại tập dữ liệu này hoặc một loại tập dữ liệu khác. Một tính năng rất quan trọng khác của bộ dữ liệu là ảnh chụp nhanh hay còn được gọi là ảnh chụp nhanh, hệ thống tệp ZFS có khả năng chụp tổng cộng 281 tỷ ảnh chụp nhanh, ngoài ra, chúng được thực hiện trong thời gian thực do cách hệ thống tệp này được tạo bên trong.

Hệ thống tệp này cho phép chúng tôi định cấu hình nén trực tuyến, sử dụng các thuật toán nén khác nhau để cải thiện tốc độ đọc và ghi hoặc để cải thiện khả năng nén và tiết kiệm nhiều dung lượng hơn. Chúng tôi cũng có thể định cấu hình chức năng khử trùng lặp, một tính năng sẽ cho phép chúng tôi tiết kiệm rất nhiều dung lượng ổ đĩa, phần tiêu cực là nó tiêu thụ một lượng lớn RAM, vì vậy bạn có thể không quá quan tâm đến việc kích hoạt chức năng này.

Hệ thống tệp này có các đặc điểm và giới hạn sau:

  • Kích thước tệp tối đa: 16EiB.
  • Số lượng tệp tối đa: 281 tỷ.
  • Kích thước tên tệp tối đa: 255 byte
  • Kích thước âm lượng tối đa: 16EiB.
  • Mã hóa dữ liệu: có
  • Sao chép khi viết: có
  • Nén trong suốt trong suốt: có
  • Khử trùng minh bạch: có

Trong bài viết này, chúng tôi đã giải thích chi tiết về hệ thống tệp ZFS này, cả đặc điểm và cấu hình của nó trong các hệ điều hành khác nhau hướng đến máy chủ NAS. Bây giờ chúng ta đã biết đâu là ba hệ thống tệp được sử dụng nhiều nhất cho các máy chủ NAS, hãy cùng xem xét điểm mạnh và điểm yếu của chúng.

Hệ thống tệp nào để chọn cho NAS của tôi?

Khi chúng ta đã thấy các đặc điểm chính của các hệ thống tệp khác nhau mà chúng ta có thể sử dụng trong máy chủ NAS gia đình và / hoặc chuyên nghiệp, chúng ta sẽ xem những ưu điểm và nhược điểm của từng hệ thống đó.

Hệ thống tệp EXT4 là hệ thống tệp lâu đời nhất và nó đã được chứng minh nhiều hơn, vì vậy hệ thống tệp này rất ổn định, trên thực tế, nó vẫn là hệ thống tệp mặc định cho phần lớn các bản phân phối Linux như Debian, Ubuntu hoặc hệ điều hành của QNAP, Synology và Asustor. Nếu bạn cần lưu trữ một lượng lớn dữ liệu, tạo RAID và mọi thứ yêu cầu, đồng thời đạt được hiệu suất đọc / ghi tốt nhất với mức tiêu thụ tài nguyên thấp nhất có thể, chắc chắn EXT4 đáp ứng mọi nhu cầu của bạn. Hệ thống tệp này kết hợp tính năng ghi nhật ký, vì vậy bạn sẽ không bị mất dữ liệu trong trường hợp mất điện, tuy nhiên, Btrfs và ZFS về mặt này rõ ràng là tốt hơn.

Btrfs cải thiện nhiều khía cạnh tiêu cực của EXT4, chẳng hạn như giới hạn kích thước tệp và hơn thế nữa, hệ thống tệp này sử dụng tính năng copy-on-write và được thiết kế cho các máy chủ rất lớn, nơi chúng tôi sẽ lưu trữ nhiều thông tin, do đó, chúng tôi có nhiều tính năng nâng cao mà EXT4 không kết hợp, chẳng hạn như mã hóa dữ liệu minh bạch, nén và chống sao chép. Chúng ta cũng phải tính đến việc nó kết hợp các ảnh chụp nhanh tích hợp, điều mà EXT4 không có, nó hỗ trợ RAID và phân bổ linh hoạt các inode. Tuy nhiên, nó đã được xác minh rằng hệ thống tệp Btrfs này tiêu thụ nhiều tài nguyên hệ thống hơn EXT4, ngoài ra, chúng tôi sẽ nhận được tốc độ đọc và ghi ít hơn trong cùng điều kiện (cùng phần cứng và cùng loại tệp để truyền).

Hệ thống tệp ZFS là một trong những hệ thống tiên tiến nhất hiện đang tồn tại, hệ thống tệp này tương tự như Btrfs nhưng kết hợp các chức năng thực sự thú vị như khả năng thêm thiết bị mới vào bộ nhớ hiện tại và thêm dung lượng mới ngay lập tức, làm cho «RAID» chúng tôi đã có trong các hệ thống tệp khác. ZFS là viết tắt của khả năng mở rộng, dung lượng lưu trữ dữ liệu lớn, bảo vệ chống hỏng dữ liệu (tính toàn vẹn), và khả năng nén dữ liệu hiệu quả, chống sao chép và khả năng chụp nhanh. Các tính năng khác là nó cho phép bạn kiểm tra tính toàn vẹn liên tục và thực hiện sửa chữa tự động một cách hoàn toàn minh bạch. Mặt tiêu cực của ZFS là nó ngốn nhiều tài nguyên, đặc biệt là bộ nhớ RAM, ngoài ra nếu kích hoạt tính năng khử trùng lặp bạn sẽ bị tiêu tốn thêm RAM khá đáng kể.

Nếu bạn có một máy chủ NAS tầm trung thấp, rõ ràng hệ thống tệp bạn nên sử dụng là EXT4, trong trường hợp có NAS tầm trung hoặc cao cấp, bạn có thể chọn Btrfs hoặc ZFS, tùy thuộc vào hệ điều hành hỗ trợ nó. Nếu bạn định sử dụng ZFS, bạn phải lưu ý rằng việc khử trùng sẽ tiêu tốn một lượng lớn RAM, đó là một điểm bất lợi mà chúng ta phải trả để tiết kiệm một lượng lớn không gian lưu trữ.