Khi format ổ cứng để cài hệ thống Linux, bạn phải quyết định hệ thống file (filesystem) tốt nhất. Năm 2021, lựa chọn phổ biến nhất là EXT4. Có phải nó tốt nhất, và nếu có lựa chọn khác, bạn nên chọn chúng? Hãy xem các lựa chọn (có thể).
EXT4
"Fourth Extended Filesystem" hoàn toàn tương thích ngược với EXT2 và EXT3 và được coi là tiêu chuẩn cho hầu hết distro Linux, vẫn phổ biến như tiền nhiệm.
Đây là một trong lựa chọn an toàn và ổn định nhất hiện nay vì hỗ trợ journaling, ngăn chặn (càng nhiều càng tốt) mất dữ liệu sau crash hoặc mất điện.
Hai tính năng quan trọng là "extents" (miền) và "delayed allocation" (phân bổ trì hoãn), quản lý thông minh cách dữ liệu ghi trên lưu trữ để cải thiện hiệu suất và giảm phân mảnh.
BtrFS
"B-tree file system" ban đầu do Oracle thiết kế và tăng dần phổ biến, đến mức nhiều người coi nó là người kế vị thực sự của triều đại EXT.
Btrfs đi kèm tính năng nâng cao: defragmentation tự động và nén trong suốt (transparent compression). Nó theo phương pháp copy-on-write, lưu iteration mới của dữ liệu và metadata thay vì ảnh hưởng cái cũ ("shadowing"). Điều này cho phép snapshot các trạng thái filesystem khác nhau cũng như replication, migration, backup tăng dần dễ dàng. Kiểm tra filesystem online/offline giảm thêm khả năng mất dữ liệu.
BtrFS hỗ trợ RAID gốc, nhưng không theo cách striping phần mềm điển hình hay mirroring block phần cứng. Thay vào đó, nó đảm bảo mỗi block trên thiết bị này có bản sao trên thiết bị kia và giữ CRC cho tất cả dữ liệu. Do đó, nếu thất bại, nó kéo info từ backup và checksum để tái tạo dữ liệu hỏng/mất.
Đáng chú ý BtrFS cũng "SSD-friendly" vì tự tắt tính năng hữu ích cho HDD cơ nhưng có thể làm hao mòn SSD.
XFS
XFS do Silicon Graphics tạo gần ba thập kỷ cho workstation đồ họa chuyên render 3D.
Đó là lý do XFS vẫn là lựa chọn tốt cho hệ thống liên tục đọc/ghi dữ liệu. Nhờ "allocation groups" (nhóm phân bổ) – phần filesystem chứa inodes và không gian trống riêng – nhiều thread có thể đọc/ghi song song. Hỗ trợ delayed allocation, inode phân bổ động, thuật toán read-ahead tiên tiến giúp đạt hiệu suất tuyệt vời, đặc biệt trên storage pool quy mô lớn lên tới hàng trăm TB.
Hỗ trợ journaling bị hạn chế so với lựa chọn hiện đại, và可以说 dễ bị mất dữ liệu hơn. Nó cũng không scale-down tốt cho tình huống đơn luồng hàng ngày, như xóa hàng loạt ảnh từ thư mục "Pictures". Tóm lại, tuyệt vời nếu xây datacenter nhưng có thể không cho dùng cá nhân điển hình.
F2FS
Một trong filesystem (tương đối) mới, "Flash-Friendly File System" là lựa chọn tốt cho lưu trữ dựa trên flash.
Ban đầu tạo cho mục đích đó bởi Samsung, F2FS chia lưu trữ thành phần nhỏ chứa zone cũng chứa phần nhỏ hơn, và cứ thế, cố gắng dùng nhiều phần thay vì tái dùng cùng phần. Kết hợp hỗ trợ TRIM/FITRIM, điều này thân thiện với media flash có số lần ghi hữu hạn.
Không cần đào sâu tính năng F2FS vì nó không vượt trội về tốc độ hoặc an toàn dữ liệu so với tất cả lựa chọn thay thế, cũng không dùng với media điển hình, nơi mọi filesystem khác có feature-set tốt hơn. Câu chuyện thay đổi nếu nói lưu trữ flash, vì nó được tạo rõ ràng cho đó.
OpenZFS/ZFS
OpenZFS là nhánh của Zettabyte File System (ZFS) ban đầu xuất hiện trên Solaris của Sun. Đến 2010, ZFS trên Linux chủ yếu qua FUSE do vấn đề license. Sau 2010 phát triển mở ra, và 2016 Ubuntu hỗ trợ mặc định phiên bản open-source. Kể từ đó, khi nhắc "ZFS", thường nói về biến thể mở thay vì Solaris ZFS – cũng tiến hóa nhưng đường song song.
ZFS khác tất cả lựa chọn thay thế vì kết hợp filesystem với volume manager. Vì thế, nó không chỉ quản lý file/thư mục mà cả media vật lý chứa chúng. Nhờ vậy, mọi thiết bị lưu trữ có thể gán vào pool coi như tài nguyên đơn. Nếu hết chỗ, bạn thêm storage vào pool mở rộng, để ZFS lo chi tiết.
Bằng cách quản lý media, ZFS cũng xuất sắc hỗ trợ RAID. Bạn có thể thiết lập RAID array hầu hết loại (RAID 0, 2, 5, v.v.) nhưng cũng dùng cách "RAIDZ". Khác RAID điển hình, RAIDZ dùng stripe độ rộng biến đổi giữa drive, tăng dung sai mất dữ liệu sau mất điện.
ZFS cũng theo copy-on-write, thay vì sửa dữ liệu cũ, chỉ lưu thay đổi ("deltas") giữa bản cũ/mới. Cho phép lưu trữ thông minh nhiều bản sao dữ liệu, không tốn nhiều không gian, làm backup/snapshot. User có thể quay lại trạng thái trước, revert thay đổi, hoặc ngược lại: kéo thay đổi vào clone dữ liệu hiện có.
Đó là tính năng giúp nó gần như loại bỏ khả năng mất dữ liệu – ít nhất về lý thuyết.
JFS
Journaling File System của IBM là một trong filesystem đầu hỗ trợ journaling, giảm cơ hội mất dữ liệu. Nó dùng extents như nhiều lựa chọn hiện đại và allocation groups như XFS, nhằm hiệu suất đọc/ghi cao.
Bằng cách không ưu tiên tính năng đơn lẻ, nó là all-arounder tốt dưới workload khác nhau. Thật không may, điều này cũng nghĩa là nó không xuất sắc ở bất cứ điều gì. Thêm vào, nó có vấn đề nhiều người coi tiêu cực khi chọn filesystem. Ví dụ, nó có thể trì hoãn cập nhật journal vô thời hạn, tăng cơ hội mất dữ liệu và gần như vô hiệu hóa việc nó là journaling FS. Nó tốt tại ghi song song dùng cho server/database lớn nhưng kém hơn EXT4 trong desktop phổ biến.
Đó có lẽ lý do nó không phổ biến như filesystem khác, có thể chạy nhanh hơn hoặc bảo vệ tốt hơn mất dữ liệu.
Bạn nên dùng cái nào? (Which Should You Use?)
Có lý do EXT4 là lựa chọn mặc định hầu hết distro. Nó đã qua thử thách, ổn định, hiệu suất tốt, hỗ trợ rộng. Nếu tìm ổn định, EXT4 là filesystem Linux tốt nhất.
Nếu không sợ phải đối phó hệ sinh thái hơi ít thành熟 hơn, BtrFS có thể là lựa chọn tốt hơn.
Dùng server muốn loại bỏ gần như hoàn toàn mất dữ liệu và ổn định là trên hết, xem ZFS. Để tận dụng thật, chuẩn bị đọc nhiều. May mắn, chúng tôi giúp setup ban đầu.
Cho media flash, F2FS là lựa chọn tốt mặc định.
Bất kể filesystem nào bạn chọn, nhớ xóa hoàn toàn HDD trước nếu muốn làm nội dung hiện có gần như không thể recover.