Gộp ổ cứng “thanh lý” thành NAS khủng với mergerfs trên Linux

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

Nỗi khổ khi quản lý hàng tá ổ cứng rời rạc

Dân chơi Home Server thường rơi vào cảnh “vơ vét” ổ cứng: một chiếc 2TB cũ từ laptop, một ổ 4TB săn sale và cái 8TB mới tậu. Nếu mount thông thường vào /mnt/disk1, /mnt/disk2, bạn sẽ sớm đối mặt với cơn ác mộng quản lý.

Ổ 2TB báo đỏ? Bạn lại phải hì hục “dọn nhà” cho dữ liệu sang ổ khác để lấy chỗ trống. Dùng RAID truyền thống (RAID 5, 6) thì lại quá khắt khe vì yêu cầu các ổ phải cùng dung lượng, nếu không sẽ phí phạm tài nguyên trầm trọng.

Sau 5 năm vận hành Lab tại nhà, mình đã tìm thấy “cứu cánh”: mergerfs. Đây là một union filesystem mạnh mẽ, giúp gom tất cả ổ đĩa thành một điểm mount duy nhất (như /mnt/storage) mà không làm xáo trộn dữ liệu hiện có.

Tại sao mergerfs lại vượt trội hơn RAID cho nhu cầu cá nhân?

Thay vì đau đầu với các mảng RAID phức tạp, mergerfs mang lại sự tự do tuyệt đối:

  • Dữ liệu luôn an toàn: mergerfs chỉ là một lớp phủ (overlay). Nếu máy chủ hỏng, bạn chỉ cần rút ổ cứng cắm vào bất kỳ máy tính nào khác là đọc được file ngay.
  • Mix-and-match thoải mái: Bạn có thể gộp ổ 500GB với ổ 18TB mà không mất một byte dung lượng nào.
  • Ổ cứng được nghỉ ngơi: Khác với RAID bắt mọi ổ cùng quay, mergerfs chỉ truy xuất đúng ổ chứa file bạn cần. Các ổ còn lại có thể ngủ đông (spin down) để tiết kiệm điện và tăng tuổi thọ.
  • Mở rộng trong một nốt nhạc: Thêm ổ mới chỉ tốn 30 giây sửa file cấu hình.

Cài đặt nhanh trên Linux

Hầu hết kho ứng dụng của Linux đều có sẵn công cụ này. Mình ưu tiên dùng Ubuntu hoặc Debian vì tính ổn định cao.

Với Debian/Ubuntu, bạn chạy lệnh:

sudo apt update && sudo apt install mergerfs

Với Fedora hoặc các bản phân phối dùng RHEL:

sudo dnf install mergerfs

mergerfs -V để đảm bảo mọi thứ đã sẵn sàng.

Cấu hình gộp ổ cứng thực tế

Giả sử hệ thống đang có 3 ổ cứng đã định dạng ext4 và mount sẵn tại:

  • /mnt/disk1 (2TB)
  • /mnt/disk2 (4TB)
  • /mnt/disk3 (8TB)

Mục tiêu của chúng ta là tạo ra một “bể chứa” khổng lồ tại /mnt/storage.

Bước 1: Tạo điểm mount tổng

sudo mkdir -p /mnt/storage

Bước 2: Thiết lập tự động mount trong /etc/fstab

Để hệ thống tự gộp ổ mỗi khi khởi động, hãy thêm dòng cấu hình sau vào cuối file /etc/fstab.

sudo nano /etc/fstab

Dán dòng này vào (chú ý đường dẫn của bạn):

# <source> <mount point> <filesystem> <options> <dump> <pass>
/mnt/disk* /mnt/storage fuse.mergerfs defaults,nonempty,allow_other,use_ino,cache.files=off,moveonenospc=true,dropcacheonclose=true,category.create=mfs 0 0

Giải mã các tham số “vàng” từ kinh nghiệm của mình:

  • /mnt/disk*: Dùng wildcard để tự động nhận diện mọi thư mục disk1, disk2… cực kỳ tiện lợi.
  • allow_other: Quyền truy cập cho mọi user. Thiếu dòng này, Plex hay Jellyfin của bạn sẽ báo lỗi “Permission Denied” ngay lập tức.
  • category.create=mfs: (Most Free Space) Máy sẽ ưu tiên ghi file mới vào ổ còn trống nhiều nhất, giúp dung lượng các ổ luôn cân bằng.
  • moveonenospc=true: Khi một ổ đầy lúc đang copy, nó sẽ tự tìm ổ còn trống để tiếp tục, tránh làm gián đoạn công việc.

Bước 3: Kích hoạt cấu hình

Chạy lệnh sau để hệ thống thực thi mount mà không cần khởi động lại:

sudo mount -a

Kiểm tra kết quả bằng lệnh df -h. Bạn sẽ thấy một phân vùng 14TB (tổng 2+4+8) hiện ra như phép màu:

Filesystem      Size  Used Avail Use% Mounted on
1:2:3            14T  7.2T  6.8T  51% /mnt/storage

Mẹo chọn chính sách ghi file thông minh

Tham số category.create quyết định file của bạn sẽ nằm ở đâu. Thực tế có 2 lựa chọn phổ biến nhất:

  1. mfs: Ưu tiên ổ trống nhất. Đây là lựa chọn quốc dân cho nhu cầu lưu trữ phim ảnh.
  2. epmfs: Nếu bạn muốn các file trong cùng một thư mục (ví dụ các tập của một bộ phim) nằm chung trên một ổ vật lý, hãy dùng chính sách này. Nó giúp giảm thời gian truy xuất và tránh làm nhiều ổ cứng phải quay cùng lúc.

Lưu ý quan trọng về an toàn dữ liệu

Bạn cần khắc cốt ghi tâm: mergerfs không phải là giải pháp backup. Nếu một ổ cứng vật lý lăn ra chết, dữ liệu trên ổ đó sẽ bay màu.

Để xây dựng một hệ thống hoàn hảo, mình thường kết hợp mergerfs với SnapRAID. mergerfs lo việc gom nhóm để sử dụng cho tiện, còn SnapRAID lo việc tạo file phục hồi (parity) phòng khi ổ cứng hỏng. Đây là bộ đôi “vô đối” cho mọi Home Server hiện nay, vừa linh hoạt vừa an toàn tuyệt đối.

Thực tế, tốc độ qua mạng LAN 1Gbps của mình luôn duy trì ổn định ở mức 110-115MB/s, không hề thấy sự sụt giảm hiệu năng nào đáng kể do lớp FUSE gây ra. Nếu bạn đang có vài chiếc ổ cứng cũ nằm chỏng chơ, hãy bắt tay vào build ngay một con server lưu trữ với mergerfs!

Share: