Làm chủ LVM trên CentOS Stream 9: Giải pháp quản lý ổ cứng linh hoạt cho Sysadmin

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

Nỗi ám ảnh mang tên “hết dung lượng” của Sysadmin

Hồi mới vào nghề, mình từng thức trắng đêm đến 3 giờ sáng chỉ vì một sai lầm ngớ ngẩn. Lúc đó, mình chia phân vùng theo kiểu truyền thống (Standard Partition), cấp 50GB cho thư mục /var. Chỉ sau 3 tháng vận hành, log file phình to khiến ổ đĩa báo đỏ 99%, làm sập toàn bộ dịch vụ database của khách hàng.

Để cứu vãn, mình phải tắt server, dùng Live CD để resize partition. Đây là một quy trình cực kỳ rủi ro và mất thời gian. Nếu ngày ấy mình dùng LVM (Logical Volume Manager), mọi thứ đã được giải quyết êm đẹp trong 5 phút với vài dòng lệnh mà không cần downtime giây nào.

Phân vùng truyền thống giống như việc bạn xây tường gạch cố định trong nhà. Muốn nới rộng phòng khách, bạn buộc phải đập tường xây lại. LVM thì khác. Nó giống như các vách ngăn di động, cho phép bạn thay đổi kích thước không gian lưu trữ một cách linh hoạt dựa trên một lớp ảo hóa giữa ổ cứng vật lý và hệ điều hành.

Ba khái niệm cốt lõi: PV, VG và LV

Đừng vội gõ lệnh ngay. Để sử dụng LVM hiệu quả trên CentOS Stream 9, bạn cần phân biệt rõ ba thành phần này qua ví dụ thực tế về việc quản lý đất đai:

  • Physical Volume (PV): Đây là các ổ cứng vật lý thô (như /dev/sdb). Hãy coi chúng là những mảnh đất riêng lẻ bạn vừa mua về.
  • Volume Group (VG): Một “bể chứa” khổng lồ gộp từ nhiều PV. Bạn gộp tất cả mảnh đất vào một sổ đỏ duy nhất. Lúc này, ranh giới giữa các ổ cứng vật lý sẽ biến mất.
  • Logical Volume (LV): Các phân vùng ảo được cắt ra từ VG để sử dụng. Đây chính là các phòng trong nhà. Bạn có thể nới rộng phòng này hoặc thu hẹp phòng kia tùy ý.

Thiết lập môi trường trên CentOS Stream 9

Mặc dù CentOS Stream 9 thường tự cấu hình LVM khi cài đặt, nhưng việc tự tay thiết lập trên một ổ cứng mới sẽ giúp bạn hiểu sâu hơn. Giả sử hệ thống vừa gắn thêm một ổ cứng /dev/sdb dung lượng 20GB.

Trước tiên, hãy kiểm tra danh sách ổ đĩa hiện có:

lsblk

Nếu thấy sdb xuất hiện và chưa có phân vùng nào, chúng ta đã sẵn sàng hành động.

Quy trình cấu hình LVM từng bước

Bước 1: Khởi tạo Physical Volume (PV)

Chúng ta cần khai báo cho hệ điều hành biết rằng ổ /dev/sdb sẽ tham gia vào hệ thống LVM.

sudo pvcreate /dev/sdb

Xác nhận lại trạng thái bằng lệnh pvs. Bạn sẽ thấy thiết bị đã sẵn sàng để đưa vào nhóm.

Bước 2: Tạo Volume Group (VG)

Tiếp theo, mình gom ổ /dev/sdb vào một nhóm chung đặt tên là vg_data.

sudo vgcreate vg_data /dev/sdb

Lợi thế ở đây là sau này nếu cần thêm 100GB, bạn chỉ cần mua ổ cứng mới, tạo PV rồi gộp vào vg_data này là xong.

Bước 3: Tạo Logical Volume (LV)

Bây giờ, hãy cắt ra 10GB từ “bể chứa” vg_data để tạo phân vùng lv_storage cho ứng dụng web.

sudo lvcreate -L 10G -n lv_storage vg_data

Thông số -L dùng để chỉ định dung lượng, còn -n dùng để đặt tên cho phân vùng ảo.

Bước 4: Định dạng Filesystem và sử dụng

XFS là lựa chọn hàng đầu về độ ổn định trên CentOS 9. Hãy định dạng phân vùng vừa tạo:

sudo mkfs.xfs /dev/vg_data/lv_storage

Cuối cùng, mount nó vào thư mục hệ thống để bắt đầu lưu trữ dữ liệu:

sudo mkdir /mnt/data
sudo mount /dev/vg_data/lv_storage /mnt/data

Để phân vùng không bị mất sau khi reboot, bạn hãy thêm dòng cấu hình vào /etc/fstab. Việc này đảm bảo hệ thống luôn tự động mount ổ đĩa khi khởi động.

Mở rộng dung lượng online: Tính năng đáng giá nhất

Hãy tưởng tượng web server của bạn đang chạy chiến dịch khuyến mãi và lượng ảnh upload tăng đột biến. Bạn cần tăng dung lượng từ 10GB lên 15GB ngay lập tức.

Thực hiện cực nhanh với 2 lệnh:

# 1. Nới rộng Logical Volume thêm 5GB
sudo lvextend -L +5G /dev/vg_data/lv_storage

# 2. Cập nhật kích thước cho Filesystem XFS
sudo xfs_growfs /mnt/data

Điểm tuyệt vời nhất là toàn bộ quá trình này diễn ra khi website vẫn đang hoạt động. Không cần restart, không cần bảo trì. Nếu dùng định dạng EXT4, bạn chỉ cần thay lệnh thứ hai thành resize2fs.

Giám sát hệ thống LVM chuyên nghiệp

Trong vận hành thực tế, mình luôn kiểm tra định kỳ bằng bộ ba lệnh: lvs (xem phân vùng ảo), vgs (xem dung lượng trống trong nhóm) và pvs (kiểm tra ổ cứng vật lý).

Nếu bạn ngại gõ lệnh, hãy cài đặt Cockpit. Đây là giao diện web mặc định trên CentOS 9. Tại mục “Storage”, bạn có thể kéo thanh trượt để resize phân vùng cực kỳ trực quan.

Lời kết

Sử dụng LVM không còn là một lựa chọn mà là tiêu chuẩn bắt buộc cho môi trường Production. Nó giúp bạn quản trị tài nguyên chủ động và chuyên nghiệp hơn.

Lời khuyên của mình là hãy luôn chọn LVM ngay từ bước cài đặt OS đầu tiên. Dù tốn thêm vài phút thiết lập ban đầu, nhưng nó sẽ cứu bạn khỏi những tình huống khẩn cấp trong tương lai. Chúc các bạn làm chủ hệ thống thành công!

Share: