Bcachefs trên Fedora: Trải nghiệm hệ thống file ‘nhanh như XFS, tính năng như ZFS’

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

Bcachefs – Kẻ kế thừa xứng đáng của Btrfs và ZFS?

Fedora chọn Btrfs làm mặc định là có lý do, nhưng với những ai thích ‘vọc’ và cần tốc độ thực dụng, Bcachefs mới là chân ái. Mình đã dùng Fedora làm máy dev chính hơn 2 năm. Dù hài lòng với package mới, mình vẫn luôn tìm kiếm thứ gì đó giúp đống source code và database vận hành mượt mà hơn.

Từ nhân Linux 6.7, Bcachefs chính thức góp mặt. Nó là sự kết hợp giữa tốc độ của XFS, tính năng Copy-on-Write (CoW) của Btrfs và khả năng quản lý ổ đĩa linh hoạt kiểu ZFS. Điểm cộng lớn nhất? Nó cực kỳ dễ cấu hình. Bài viết này mình sẽ hướng dẫn anh em trải nghiệm ngay Bcachefs trên Fedora mà không cần là chuyên gia kernel.

Quick Start: Cài đặt và tạo ổ đĩa trong 5 phút

Lưu ý quan trọng: Hãy backup dữ liệu trước. Bcachefs dù đã vào kernel chính thức nhưng vẫn đang phát triển tích cực. Cẩn thận không bao giờ thừa.

Bước 1: Cài đặt công cụ quản lý

Kernel Fedora đã hỗ trợ sẵn, bạn chỉ cần bộ công cụ để định dạng và quản trị.

sudo dnf install bcachefs-tools

Bước 2: Định dạng ổ đĩa đơn

Giả sử bạn có một ổ SSD trống tại /dev/sdb. Lệnh sau sẽ định dạng nó:

sudo bcachefs format /dev/sdb

Bước 3: Mount và sử dụng

sudo mkdir /mnt/bcachefs
sudo mount -t bcachefs /dev/sdb /mnt/bcachefs

Vầy là xong! Bạn đã có một phân vùng Bcachefs sẵn sàng hoạt động. Nhưng sức mạnh thực sự nằm ở phần tiếp theo.

Tại sao Bcachefs lại gây sốt hơn Btrfs?

Nhiều anh em tự hỏi: “Btrfs đang chạy ngon, đổi làm gì?”. Qua trải nghiệm thực tế, Bcachefs xử lý tốt những điểm yếu cố hữu của Btrfs:

  • Tốc độ ghi (Write Performance): Bcachefs vượt trội khi xử lý file nhỏ và database. Trong các bài test IOPS, nó thường cho kết quả ổn định hơn Btrfs khi ổ đĩa đầy trên 80%.
  • Mã hóa Native: Mã hóa tích hợp sẵn, không cần lớp LUKS trung gian giúp giảm độ trễ (latency).
  • Tiering thực thụ: Đây là ‘vũ khí’ mạnh nhất. Bạn có thể biến SSD thành bộ đệm cho HDD một cách tự động.

Cấu hình nâng cao: Gộp ổ đĩa và Tiering

Hãy tưởng tượng bạn có một ổ NVMe 256GB (/dev/nvme0n1) và một ổ HDD 2TB (/dev/sda). Chúng ta sẽ gộp chúng thành một phân vùng duy nhất nhưng vẫn giữ được tốc độ của SSD.

Tạo hệ thống file đa ổ đĩa

sudo bcachefs format \
    --label=ssd.ssd1 /dev/nvme0n1 \
    --label=hdd.hdd1 /dev/sda \
    --foreground_target=ssd1 \
    --promote_target=ssd1 \
    --background_target=hdd1

Cơ chế hoạt động rất thông minh:

  • --foreground_target=ssd1: Dữ liệu mới sẽ ưu tiên ghi vào SSD để lấy tốc độ tức thì.
  • --promote_target=ssd1: Những file bạn hay mở sẽ tự động được đẩy lên SSD.
  • --background_target=hdd1: Khi hệ thống rảnh, dữ liệu cũ hoặc ít dùng sẽ được chuyển xuống HDD để nhường chỗ cho SSD.

Mount hệ thống đa ổ đĩa

Chỉ cần liệt kê các ổ đĩa cách nhau bằng dấu hai chấm:

sudo mount -t bcachefs /dev/nvme0n1:/dev/sda /mnt/storage

Bảo mật với Native Encryption

Thay vì cấu hình LUKS phức tạp, Bcachefs cho phép mã hóa ngay khi format. Hiệu suất mã hóa này cực tốt nhờ tận dụng tập lệnh AES-NI của CPU.

sudo bcachefs format --encrypted /dev/sdc

Hệ thống sẽ hỏi mật khẩu ngay lúc này. Khi mount, bạn chỉ cần gõ mật khẩu một lần là xong, không cần qua nhiều lớp quản lý thiết bị ảo.

Kinh nghiệm thực chiến cho anh em

Sau một thời gian ‘hành hạ’ Bcachefs trên Fedora, mình rút ra vài tip nhỏ:

1. Kiểm tra dung lượng chuẩn xác

Lệnh df -h thường báo cáo sai dung lượng với các hệ thống file CoW. Hãy dùng lệnh chuyên dụng:

bcachefs fs usage /mnt/bcachefs

2. Tiết kiệm dung lượng với Zstd

Mặc định Bcachefs không nén dữ liệu. Nếu bạn lưu source code (nhiều file text), hãy bật Zstd để tiết kiệm tới 40% dung lượng:

sudo bcachefs setattr --compression=zstd /mnt/bcachefs

3. Cấu hình tự động mount (fstab)

Để máy tự nhận ổ đĩa khi khởi động, hãy thêm dòng sau vào /etc/fstab:

/dev/nvme0n1:/dev/sda  /mnt/storage  bcachefs  defaults,nofail  0  0

Option nofail cực kỳ quan trọng. Nó giúp máy vẫn boot được nếu chẳng may một ổ đĩa trong cụm gặp sự cố.

Lời kết

Bcachefs là bước tiến lớn cho lưu trữ trên Linux. Dù Fedora vẫn ưu tiên Btrfs vì sự an toàn, nhưng Bcachefs là lựa chọn tuyệt vời nếu bạn ưu tiên hiệu suất và tính năng Tiering. Nếu đang chạy Fedora Server làm lab tại nhà, hãy thử gộp SSD cũ với HDD, tốc độ sẽ khiến bạn bất ngờ đấy!

Share: