Thú thật là trước đây mình cũng mê tít RAID 5 như bao người khác, cứ tưởng rằng lắp thêm vài ổ cứng vào thẻ RAID là có "phép màu" bảo vệ dữ liệu. Cho đến khi mình làm admin cho một server nhỏ, vừa ngủ ngon thì sáng ra báo lỗi Unrecoverable read error trên một ổ cứng đang bị lỗi vật lý (bad sector). Khi đó, cái RAID 5 của mình đã làm mình sợ tới mức mất hết hy vọng vì nó không thể rebuild được do mất đi một block dữ liệu quan trọng. Đấy là lúc mình mới biết đến ZFS.
ZFS với mình không chỉ là một filesystem, nó giống như một ông bố nghiêm khắc nhưng cực kỳ tận tụy. Khái niệm "Data Integrity" (tính toàn vẹn dữ liệu) của ZFS thực sự thay đổi tư duy của mình. Thay vì dùng RAID truyền thống rồi mới format lên NTFS hay Ext4, ZFS tự quản lý cả phần cứng lẫn phần mềm, tự checksum mọi thứ. Nghe thì có vẻ phức tạp, nhưng trải nghiệm thực tế thì thấy nó đáng giá biết bao.
Đặc biệt, mình rất thích cách ZFS xử lý việc sao lưu. Mình không còn lệ thuộc vào các script rsync cồng kềnh nữa. Với ZFS, việc tạo snapshot là chuyện 1 giây: zfs snapshot tank@backup_before_update. Nếu lỡ tay xóa nhầm file hay cập nhật phần mềm bị lỗi, mình chỉ cần rollback ngay lập tức mà không cần phải restore từ backup cũ như hồi trước.
Tuy nhiên, nói thì nghe hay nhưng ZFS cũng có "tù ngục" của nó: RAM. Nếu bạn dùng ZFS mà chỉ có 2GB RAM thì đừng mơ, nó sẽ chạy ì ạch như rùa bò vì bộ nhớ cache (ARC) của nó ăn RAM quá khét lẹt. Mình từng thử cài trên một máy ảo cũ, kết quả là CPU load cao tột độ, người dùng báo lỗi lag liên tục. Đó là bài học lớn: muốn dùng ZFS phải đầu tư phần cứng, nhất là RAM.
Một điều gây tranh cãi nữa là việc ZFS "chiếm hữu" toàn bộ thiết bị lưu trữ. Bạn không thể mix ZFS với các filesystem khác trên cùng một physical disk một cách linh hoạt như trước. Bạn phải cam kết toàn bộ ổ cứng cho ZFS. Nhưng đổi lại, tính an toàn và khả năng tự sửa lỗi (self-healing) của nó thì các giải pháp RAID truyền thống không thể sánh kịp.
Tóm lại, nếu bạn là dev hoặc quản trị viên đang lo lắng về mất mát dữ liệu, đừng chỉ dừng lại ở RAID. Hãy thử nghiệm ZFS trên một máy ảo nhỏ trước. Cảm giác nhìn zpool status và thấy nó tự phát hiện lỗi bit rot rồi tự sửa là cảm giác mãn nguyện không thể diễn tả bằng lời. Backup là chuyện cần thiết, nhưng dữ liệu sạch sẽ, nguyên vẹn mới là điều quan trọng nhất.