Vì sao mình chọn Stratis thay vì LVM truyền thống?
Hồi còn làm việc với CentOS 7, mình thường xuyên phải tính toán dung lượng LVM và format phân vùng XFS. Mỗi khi sếp báo server sắp hết disk, mình lại loay hoay nới rộng (resize) phân vùng. Quy trình này không khó nhưng cực kỳ tốn thời gian. Chỉ cần quên một lệnh lvextend hay xfs_growfs là hệ thống dễ gặp lỗi ngay.
Khi công ty migrate sang CentOS Stream 9, mình đã tìm kiếm giải pháp linh hoạt hơn. Mình cần thứ gì đó mạnh như ZFS nhưng phải tích hợp tốt với hệ sinh thái Red Hat. Đó là lúc mình biết đến Stratis.
Sau 6 tháng triển khai cho các cụm server log, mình thấy Stratis thực sự giải phóng sức lao động. Nó không thay thế hoàn toàn LVM. Thực tế, Stratis là một lớp quản lý (daemon) chạy phía trên để ẩn đi sự phức tạp của việc cấu hình thủ công. Bạn không cần tính toán từng GB hay chọn định dạng file system nữa. Mọi thứ đều là “Thin Provisioning” theo mặc định.
Khái niệm cốt lõi: Pool, Filesystem và Blockdev
Trước khi gõ lệnh, anh em cần nắm rõ 3 khái niệm cơ bản sau:
- Blockdev: Các ổ cứng vật lý hoặc phân vùng (như /dev/sdb). Lưu ý: Stratis yêu cầu thiết bị có dung lượng tối thiểu 1GB.
- Pool: Một nhóm các Blockdev gộp lại thành một “túi chứa” tài nguyên khổng lồ.
- Filesystem: Được tạo ra từ Pool. Filesystem sẽ tự nở ra khi dữ liệu tăng lên. Nó chỉ chiếm đúng phần dung lượng thực tế đang dùng trong Pool.
Thực hành: Cấu hình Stratis từ A-Z
Giả sử mình có server CentOS Stream 9 với 2 ổ cứng trống /dev/sdb và /dev/sdc (mỗi ổ 20GB).
1. Cài đặt và kích hoạt dịch vụ
Đầu tiên, hãy cài đặt gói dịch vụ và công cụ điều khiển:
sudo dnf install stratisd stratis-cli -y
sudo systemctl enable --now stratisd
Hãy đảm bảo dịch vụ đã ở trạng thái active (running) trước khi tiếp tục.
2. Tạo Storage Pool
Mình sẽ gom hai ổ cứng vào một pool tên là data_pool. Cảnh báo: Stratis sẽ xóa sạch dữ liệu cũ trên ổ cứng, anh em nên kiểm tra kỹ tên thiết bị.
sudo stratis pool create data_pool /dev/sdb /dev/sdc
Kiểm tra thành quả bằng lệnh:
sudo stratis pool list
Lúc này, cột “Total Physical Size” sẽ hiển thị 40GB.
3. Tạo Filesystem
Đây là phần mình thích nhất. Bạn không cần chọn định dạng XFS hay ext4, Stratis sẽ tự xử lý hậu trường.
sudo stratis fs create data_pool web_data
Chỉ mất chưa đầy 2 giây để tạo xong một hệ thống tệp sẵn sàng sử dụng.
4. Mount Filesystem an toàn
Stratis tạo thiết bị tại đường dẫn /stratis/pool_name/fs_name. Để tránh lỗi khi reboot, mình luôn dùng UUID thay vì đường dẫn trực tiếp.
sudo mkdir -p /mnt/web_data
lsblk -f /stratis/data_pool/web_data
Thêm dòng sau vào /etc/fstab. Lưu ý: Option x-systemd.requires=stratisd.service là bắt buộc để hệ thống chờ daemon Stratis khởi động xong mới mount ổ đĩa.
UUID=xxxx-xxxx-xxxx /mnt/web_data xfs defaults,x-systemd.requires=stratisd.service 0 0
Snapshot – Tấm bảo hiểm cho dữ liệu
Trước khi update code hoặc thay đổi cấu hình lớn, mình luôn tạo Snapshot. Nếu lỡ tay làm hỏng hệ thống, việc rollback chỉ mất vài giây.
Tạo bản sao cho web_data:
sudo stratis fs snapshot data_pool web_data web_data_backup_$(date +%F)
Snapshot này hoạt động như một filesystem độc lập. Bạn có thể mount nó ra thư mục riêng để cứu dữ liệu mà không ảnh hưởng đến dịch vụ đang chạy.
Kinh nghiệm thực tế sau 6 tháng vận hành
Dưới đây là những lưu ý “xương máu” khi dùng Stratis trên môi trường Production:
- Quy tắc 80%: Mặc dù có Thin Provisioning, nhưng nếu Pool vật lý đầy 100%, toàn bộ Filesystem sẽ bị treo I/O. Mình luôn cài đặt Zabbix cảnh báo khi Pool đạt ngưỡng 80%.
- Mở rộng trong 1 nốt nhạc: Cần thêm dung lượng? Chỉ cần cắm ổ mới và chạy
sudo stratis pool add-data data_pool /dev/sdd. Không cần downtime, không cần unmount. - Hiệu năng: Qua kiểm tra bằng
fio, tốc độ đọc ghi của Stratis tương đương với LVM thuần túy, độ trễ chênh lệch không đáng kể. - Giới hạn: Stratis hiện chỉ hỗ trợ XFS. Nếu dự án của bạn bắt buộc dùng ext4, Stratis chưa phải là lựa chọn phù hợp.
Lời kết
Stratis giúp việc quản trị lưu trữ bớt khô khan và nhàn nhã hơn nhiều. Nó loại bỏ các bước thủ công rườm rà, giúp chúng ta tập trung vào việc bảo vệ dữ liệu thay vì gõ lệnh nới rộng phân vùng.
Nếu bạn đang dùng CentOS Stream 9 hoặc AlmaLinux, hãy thử dựng một lab nhỏ với Stratis. Tin mình đi, khi đã quen với việc tạo filesystem siêu tốc, bạn sẽ không muốn quay lại cách làm cũ đâu.

