Làm chủ Stratis trên Fedora: Quản lý Storage ‘nhàn’ hơn với Pool và Snapshot

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

Setup hệ thống lưu trữ với Stratis chỉ trong 5 phút

Gắn bó với Fedora làm máy dev chính hơn 2 năm, mình cực kỳ ưng tốc độ update package của nó. Nhưng có một “nỗi đau”: mỗi lần thêm ổ cứng mới là lại phải đánh vật với LVM, chia partition rồi format… cực kỳ tốn thời gian. Mọi thứ chỉ thực sự thay đổi khi mình biết đến Stratis.

Trước tiên, lôi DNF ra và cài đặt bộ tool này:

sudo dnf install stratisd stratis-cli
sudo systemctl enable --now stratisd

Lấy ví dụ mình vừa cắm thêm một ổ SSD trống tại /dev/sdb. Đây là quy trình “mì ăn liền” để lên đời storage:

  1. Tạo Pool: Gom các ổ cứng vật lý vào một nhóm quản lý chung.
    sudo stratis pool create storage-pool /dev/sdb
  2. Tạo Filesystem: Khởi tạo phân vùng dữ liệu từ Pool đã có.
    sudo stratis filesystem create storage-pool data-work
  3. Mount và sử dụng:
    sudo mkdir /mnt/data
    sudo mount /stratis/storage-pool/data-work /mnt/data

Chưa đầy 5 phút là anh em đã có một hệ thống lưu trữ sẵn sàng chạy. Không cần tính toán dung lượng block, cũng chẳng cần loay hoay resize filesystem thủ công như trước.

Tại sao Stratis lại là “cứu cánh” cho anh em Sysadmin?

Thực tế, Stratis không phải là một filesystem mới toanh như Btrfs hay ZFS. Nó giống như một lớp quản lý (daemon) thông minh chạy phía trên các công nghệ cũ nhưng cực kỳ ổn định như XFS, LVMDevice Mapper.

Sức mạnh của Thin Provisioning

Đây là tính năng mình cực kỳ tâm đắc. Với Stratis, dung lượng hiển thị của filesystem có thể lớn hơn dung lượng thực tế của ổ cứng. Dữ liệu chỉ thực sự chiếm chỗ khi bạn ghi file vào.

Ví dụ thực tế: Anh em có thể tạo một filesystem ảo 1TB ngay trên một chiếc SSD chỉ 250GB. Dữ liệu phình đến đâu, Stratis tự cấp phát đến đó, giúp tận dụng tối đa từng GB ổ cứng mà không lo lãng phí dung lượng “để dành” như cách chia truyền thống.

Khả năng mở rộng trong một nốt nhạc

Nếu ổ /dev/sdb báo đỏ vì hết chỗ? Đừng xoắn. Chỉ cần cắm thêm ổ /dev/sdc vào máy và nạp nó vào Pool hiện tại:

sudo stratis pool add-data storage-pool /dev/sdc

Ngay lập tức, tất cả các filesystem trong storage-pool sẽ có thêm không gian để “thở”. Anh em không cần phải umount hay gõ lệnh resize2fs phiền phức làm gì cho mệt.

Snapshot – Tấm bảo hiểm cho dữ liệu của bạn

Làm Ops hay Dev, việc gõ nhầm lệnh rm -rf hay làm hỏng file config là chuyện khó tránh. Snapshot của Stratis chính là “phao cứu sinh” giúp anh em quay ngược thời gian chỉ trong tích tắc.

Để tạo một snapshot cho filesystem data-work:

sudo stratis filesystem snapshot storage-pool data-work data-backup-$(date +%Y%m%d)

Bản snapshot này hoạt động độc lập hoàn toàn. Nếu lỡ tay xóa sạch dữ liệu, bạn chỉ cần mount bản backup lên và chép lại là xong. Thậm chí, mình thường dùng snapshot để thử nghiệm các cấu hình nguy hiểm, hỏng thì xóa đi tạo lại từ bản gốc chỉ mất vài giây.

Cấu hình mount tự động và lưu ý “xương máu”

Lưu ý quan trọng: Tuyệt đối đừng dùng tên thiết bị như /dev/sdb trong file /etc/fstab. Sau khi reboot, sdb hoàn toàn có thể nhảy sang sdc, khiến hệ thống “ngỏm” ngay lập tức.

Cách chuẩn nhất là dùng UUID. Anh em lấy UUID của Stratis filesystem bằng lệnh:

lsblk -f

Sau đó thêm vào /etc/fstab kèm theo các option bắt buộc sau:

UUID=xxxx-xxxx-xxxx  /mnt/data  xfs  defaults,x-systemd.requires=stratisd.service  0 0

Option x-systemd.requires=stratisd.service là mẹo nhỏ nhưng cực kỳ quan trọng. Nó bắt hệ điều hành phải đợi dịch vụ Stratis sẵn sàng rồi mới tiến hành mount ổ đĩa. Thiếu dòng này, máy rất dễ rơi vào mode cứu hộ (Emergency Mode) sau khi khởi động lại.

Mẹo thực chiến: Kiểm tra sức khỏe hệ thống

Để tránh bất ngờ, anh em nên thường xuyên kiểm tra tình trạng Pool qua bộ lệnh trực quan của Stratis:

  • stratis pool list: Theo dõi tổng quan dung lượng các Pool.
  • stratis filesystem list: Xem danh sách các phân vùng và dung lượng thực tế đang chiếm dụng.
  • stratis blockdev list: Kiểm tra xem các ổ cứng vật lý có đang “khỏe” không.

Nếu thấy cột “Alerts” có thông tin lạ, hãy check ngay log hệ thống bằng lệnh journalctl -u stratisd để xử lý kịp thời.

Lời kết

Dù Fedora hiện tại mặc định dùng Btrfs, nhưng với các server lưu trữ lớn hoặc workstation cần sự ổn định của XFS kết hợp tính linh hoạt của Pooling, Stratis vẫn là lựa chọn cực kỳ sáng giá. Nó đơn giản hóa việc quản trị đến mức tối đa, giúp chúng ta tập trung vào code thay vì phải đánh vật với từng byte dữ liệu trên ổ cứng.

Share: