Quản trị XFS thực chiến trên CentOS Stream 9: Làm chủ bộ công cụ xfs_progs

CentOS tutorial - IT technology blog
CentOS tutorial - IT technology blog

XFS: Lựa chọn hàng đầu cho dữ liệu lớn trên CentOS Stream 9

Dữ liệu phình to nhanh chóng luôn là bài toán khó với mọi SysAdmin. Trước đây, mình thường ưu tiên ext4 vì sự quen thuộc. Tuy nhiên, khi đối mặt với hệ thống log lên đến 20TB cho một sàn thương mại điện tử, ext4 bắt đầu đuối sức. Thời gian kiểm tra lỗi (fsck) kéo dài hàng giờ khiến downtime trở thành thảm họa. Đó là lúc mình chuyển sang XFS và nhận ra sức mạnh thực sự của nó.

Trên CentOS Stream 9, XFS là hệ thống file mặc định, được thiết kế để xử lý các tệp tin lên đến 8 Exabytes. Nếu bạn đang vận hành database lớn hoặc media server, việc thành thạo bộ công cụ xfs_progs là bắt buộc. Nó không chỉ giúp tối ưu hiệu suất mà còn là cứu cánh khi hệ thống gặp sự cố I/O.

Tại sao XFS vượt trội trong môi trường Production?

XFS sử dụng cấu trúc 64-bit với khả năng mở rộng (scalability) ấn tượng. Điểm khác biệt nằm ở cơ chế Allocation Groups (AG). XFS chia ổ đĩa thành các nhóm độc lập để xử lý song song. Nhờ đó, hệ thống giảm thiểu tình trạng nghẽn cổ chai khi có hàng trăm tiến trình cùng ghi dữ liệu.

Những ưu điểm thực dụng mà bạn cần quan tâm:

  • Journaling: Phục hồi trạng thái hệ thống cực nhanh sau khi mất điện đột ngột.
  • Online Resizing: Mở rộng dung lượng ngay khi ổ đĩa đang hoạt động. Bạn không cần dừng dịch vụ, đảm bảo uptime 24/7.
  • Tốc độ: XFS xử lý file lớn và các thư mục chứa hàng triệu file hiệu quả hơn hẳn ext4.

Lưu ý duy nhất: XFS không hỗ trợ thu nhỏ (shrink). Hãy tính toán kỹ phân vùng ngay từ đầu để tránh phiền phức về sau.

Thực hành quản trị với xfs_progs

Hầu hết bản cài CentOS Stream 9 đã có sẵn công cụ này. Nếu dùng bản Minimal, bạn hãy cài bổ sung bằng lệnh:

sudo dnf install xfs_progs -y

1. Soi chi tiết thông số với xfs_info

Luôn kiểm tra cấu trúc ổ đĩa trước khi thực hiện bất kỳ thay đổi nào. Lệnh này hiển thị kích thước block, số lượng AG và các tham số metadata.

# Kiểm tra qua thiết bị hoặc điểm gắn kết
sudo xfs_info /dev/sda1
sudo xfs_info /mnt/data

Thông thường bsize (block size) sẽ là 4096 bytes. Với các hệ thống lưu trữ video 4K hoặc database khổng lồ, việc tinh chỉnh block size lớn hơn lúc format có thể tăng tốc độ đọc ghi rõ rệt.

2. Mở rộng ổ đĩa “nóng” với xfs_growfs

Kịch bản rất quen thuộc: Ổ cứng server báo đỏ, bạn vừa thêm 500GB từ SAN hoặc mở rộng disk trên VMware. Với XFS, bạn chỉ mất vài giây để hệ thống nhận dung lượng mới mà không cần reboot.

Sau khi đã mở rộng phân vùng vật lý hoặc LVM, hãy chạy lệnh sau:

# Mở rộng hệ thống file tại mount point /data
sudo xfs_growfs /data

Kinh nghiệm thực tế: Hãy luôn chạy lvextend (nếu dùng LVM) trước. Sau đó mới dùng xfs_growfs để “nở” hệ thống file. Nếu làm ngược lại hoặc quên bước LVM, lệnh sẽ không có tác dụng.

3. Cứu dữ liệu với xfs_repair

Khi server sập nguồn và không thể mount ổ data, xfs_repair là vị cứu tinh. So với fsck, xfs_repair xử lý các phân vùng Terabyte nhanh hơn đáng kể nhờ kiến trúc đa luồng.

Quy tắc sắt: Tuyệt đối không chạy lệnh này khi phân vùng đang mount. Điều này có thể phá hủy dữ liệu vĩnh viễn.

# Bước 1: Unmount phân vùng lỗi
sudo umount /dev/sdb1

# Bước 2: Tiến hành sửa lỗi
sudo xfs_repair /dev/sdb1

Nếu lỗi nằm ở phân vùng root (/), bạn cần khởi động từ USB/ISO cứu hộ để thực hiện thao tác này.

4. Đảm bảo an toàn Snapshot bằng xfs_freeze

Khi cần tạo Snapshot máy ảo hoặc backup ở tầng Storage, tính toàn vẹn dữ liệu là ưu tiên số một. xfs_freeze sẽ tạm dừng mọi hoạt động I/O và đẩy dữ liệu từ RAM xuống đĩa cứng ngay lập tức.

# Đóng băng để bắt đầu snapshot
sudo xfs_freeze -f /mnt/data

# Sau khi snapshot xong, giải băng để hệ thống hoạt động lại
sudo xfs_freeze -u /mnt/data

Cấu hình tối ưu cho môi trường hiệu suất cao

Để XFS vận hành mượt mà nhất, mình thường điều chỉnh các tham số trong /etc/fstab. Hai tùy chọn dưới đây cực kỳ hữu ích cho các hệ thống chạy SSD:

  • noatime: Bỏ qua việc ghi lại thời gian truy cập file. Việc này giảm đáng kể thao tác ghi (write I/O) không cần thiết.
  • logbsize=256k: Tăng bộ đệm log trong bộ nhớ. Giá trị 256k giúp tăng tốc độ xử lý metadata khi tạo hoặc xóa hàng nghìn file nhỏ cùng lúc.

Cấu hình mẫu trong /etc/fstab:

/dev/mapper/data-lv  /data  xfs  defaults,noatime,logbsize=256k  0 0

Lời kết

Hiểu rõ XFS giúp bạn tự tin quản lý những hệ thống lưu trữ quy mô lớn. Dù XFS rất bền bỉ, nhưng đừng quên nguyên tắc sống còn: Luôn có phương án backup. Bạn có thể sử dụng xfsdump để sao lưu định kỳ các thay đổi quan trọng.

Hy vọng những trải nghiệm thực chiến này giúp bạn làm chủ CentOS Stream 9 tốt hơn. Nếu gặp các mã lỗi lạ khi dùng xfs_repair, hãy để lại bình luận phía dưới để mình cùng hỗ trợ nhé!

Share: