Tăng tốc HDD lên gấp 10 lần với bcache: Tận dụng SSD cũ làm Cache trên Linux

Linux tutorial - IT technology blog
Linux tutorial - IT technology blog

Mì ăn liền: 5 phút để thấy sự khác biệt

Bạn đang sở hữu một ổ HDD 2TB chậm chạp và một chiếc SSD 120GB bỏ không? Đừng lãng phí chúng. Chỉ với vài dòng lệnh, chúng ta sẽ kết hợp cả hai thành một phân vùng duy nhất: vừa có dung lượng khổng lồ của HDD, vừa có tốc độ xé gió của SSD.

Trong ví dụ này, /dev/sdb là HDD (Backing device) và /dev/sdc là SSD (Caching device). Cảnh báo: Thao tác này sẽ xóa sạch dữ liệu trên cả hai ổ đĩa.

# 1. Cài đặt công cụ điều khiển
sudo apt update && sudo apt install bcache-tools -y

# 2. Dọn dẹp định dạng cũ
sudo wipefs -a /dev/sdb /dev/sdc

# 3. Khởi tạo bcache (HDD là -B, SSD là -C)
sudo make-bcache -B /dev/sdb -C /dev/sdc

# 4. Định dạng và sử dụng ngay
sudo mkfs.ext4 /dev/bcache0
sudo mount /dev/bcache0 /mnt/data

Kết quả? Bạn sẽ thấy thiết bị /dev/bcache0 xuất hiện. Hãy thử copy một file nặng, bạn sẽ thấy tốc độ ghi lúc đầu cực cao nhờ được SSD gánh team.

Tại sao bcache lại là “món hời” cho dân kỹ thuật?

Thực tế, mua một ổ SSD 4TB hay 8TB để lưu trữ data là một sự xa xỉ không cần thiết. Bcache (Block Cache) là module nằm sẵn trong nhân Linux từ bản 3.10. Nó cho phép dùng một ổ đĩa tốc độ cao (SSD/NVMe) làm bộ đệm cho ổ đĩa dung lượng lớn nhưng chậm chạp (HDD).

Thay vì bỏ ra 10 triệu đồng cho SSD dung lượng lớn, bạn chỉ cần một ổ HDD 4TB (~2 triệu) kết hợp với SSD 250GB (~600k). Hệ thống sẽ tự động đẩy các dữ liệu hay truy cập (Hot data) lên SSD. Những dữ liệu ít dùng (Cold data) sẽ nằm yên trên HDD. Trong các bài test thực tế, tốc độ đọc ngẫu nhiên (Random Read) có thể tăng từ 1MB/s lên hơn 100MB/s tùy vào loại SSD bạn dùng.

Hướng dẫn cấu hình chi tiết và tối ưu

Bước 1: Nhận diện thiết bị

Trước khi gõ lệnh, hãy dùng lsblk để kiểm tra kỹ tên ổ đĩa. Chỉ cần nhầm một ký tự, bạn có thể xóa nhầm ổ chứa hệ điều hành.

lsblk

Sau khi xác định đúng, hãy xóa sạch các “chữ ký” phân vùng cũ để tránh xung đột hệ thống:

sudo wipefs -a /dev/sdb
sudo wipefs -a /dev/sdc

Bước 2: Thiết lập mối quan hệ Backing – Caching

Có hai vai trò bạn cần phân biệt rõ:

  • Backing Device (HDD): Nơi lưu trữ dữ liệu thực sự.
  • Caching Device (SSD): Trạm trung chuyển tốc độ cao.

Nếu bạn có nhiều ổ HDD, bạn có thể dùng một SSD làm cache chung cho tất cả bằng cách khởi tạo riêng biệt:

sudo make-bcache -B /dev/sdb
sudo make-bcache -C /dev/sdc

Bước 3: Đăng ký thiết bị với Kernel

Thông thường bcache sẽ tự nhận diện. Nếu /dev/bcache0 chưa xuất hiện, hãy ép Kernel đăng ký thủ công bằng lệnh sau:

echo /dev/sdb | sudo tee /sys/fs/bcache/register
echo /dev/sdc | sudo tee /sys/fs/bcache/register

Chọn chế độ Cache phù hợp: Đừng để mất dữ liệu oan

Bcache có 3 chế độ hoạt động chính. Việc chọn sai chế độ có thể khiến bạn mất dữ liệu nếu SSD đột ngột hỏng.

  • Writethrough (Mặc định): Dữ liệu ghi vào cả SSD và HDD cùng lúc. Cực kỳ an toàn nhưng tốc độ ghi vẫn bị giới hạn bởi HDD.
  • Writeback: Dữ liệu ghi thẳng vào SSD trước, sau đó mới đẩy xuống HDD khi hệ thống rảnh. Tốc độ ghi tăng vọt nhưng rủi ro mất data nếu SSD chết khi chưa kịp đồng bộ xuống HDD.
  • Writearound: Chỉ cache dữ liệu khi đọc. Phù hợp cho các server chứa phim, ảnh ít khi thay đổi nội dung.

Để kích hoạt Writeback cho hiệu năng tối đa (ví dụ khi chạy Database hoặc Compile code):

echo writeback | sudo tee /sys/block/bcache0/bcache/cache_mode

Kiểm tra sức khỏe hệ thống

Để biết bcache có đang thực sự làm việc hay không, hãy kiểm tra trạng thái file hệ thống:

cat /sys/block/bcache0/bcache/state

Nếu hiện clean, mọi thứ đang hoàn hảo. Để xem tỷ lệ “hit” cache (bao nhiêu % dữ liệu được lấy từ SSD thay vì phải tìm dưới HDD), hãy dùng lệnh:

watch -n 1 tail /sys/block/bcache0/bcache/stats_total/*

Kinh nghiệm thực tế từ chuyên gia

Sau nhiều năm triển khai bcache cho các hệ thống NAS gia đình và Server lưu trữ, đây là 3 điều bạn cần ghi nhớ:

  1. Chọn SSD chuẩn Enterprise: Nếu dùng mode writeback, SSD sẽ bị ghi liên tục. Hãy ưu tiên các dòng có chỉ số TBW cao như Samsung dòng Pro hoặc Intel Optane để tránh hỏng hóc sớm.
  2. Quy trình tháo SSD: Tuyệt đối không rút SSD khi đang chạy. Bạn phải chuyển về mode writethrough, đợi dirty_data về 0 rồi mới được gỡ bỏ SSD khỏi hệ thống.
  3. Luôn có phương án Backup: Bcache gộp hai thiết bị vật lý thành một logic. Rủi ro phần cứng tăng gấp đôi. Đừng quên backup dữ liệu quan trọng lên Cloud hoặc ổ đĩa rời.

Bcache là giải pháp tuyệt vời để hồi sinh những dàn máy cũ hoặc tối ưu chi phí cho Server lưu trữ dung lượng lớn. Nó mang lại trải nghiệm mượt mà mà không làm rỗng túi tiền của bạn.

Share: