Làm chủ VMware SPBM: Quản lý lưu trữ máy ảo theo chính sách thay vì thủ công

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Vấn đề: Khi quản lý lưu trữ trở thành cơn ác mộng

Hồi mới tiếp quản cụm VMware cluster với 8 host ESXi và hơn 200 máy ảo (VM), mình từng rơi vào cảnh “loạn” lưu trữ. Hệ thống lúc đó là một hỗn hợp gồm All-Flash NVMe cho Database và dàn HDD 7.2K RPM để lưu trữ file. Mỗi khi tạo VM mới, mình phải lục lại bảng Excel để xem Datastore nào còn trống, cái nào chạy RAID 10, cái nào chạy RAID 5.

Quản lý thủ công như vậy cực kỳ rủi ro. Chỉ cần một đồng nghiệp chuyển nhầm VM Database sang ổ HDD chậm chạp, hệ thống sẽ nghẽn cổ chai ngay. Tệ hơn, vCenter không hề đưa ra cảnh báo nào về việc sai lệch hiệu năng này. Đó là lúc mình nhận ra Storage Policy Based Management (SPBM) không còn là tùy chọn, mà là bắt buộc.

Tại sao bạn nên triển khai SPBM ngay?

Thiếu SPBM, vCenter coi mọi Datastore như những chiếc thùng chứa dữ liệu giống hệt nhau. SPBM cho phép bạn gán “trí thông minh” vào đó. Thay vì chọn đích danh Datastore A hay B, bạn chỉ cần yêu cầu: “Tôi muốn VM này chạy trên SSD và phải có tính dự phòng cao”. Hệ thống sẽ tự động tìm vị trí đáp ứng đúng tiêu chuẩn. Nếu Datastore xảy ra sự cố khiến chính sách không còn được đảm bảo, vSphere sẽ báo đỏ để bạn xử lý kịp thời.

Cấu hình Storage Policy dựa trên Tagging (Cho SAN/NAS truyền thống)

Với các hệ thống dùng Storage ngoài qua FC hoặc iSCSI, sử dụng Tags là cách hiệu quả nhất để phân loại. Dưới đây là quy trình mình thường áp dụng trong thực tế.

Bước 1: Phân loại Datastore bằng Tag

Đừng để các Datastore nằm lộn xộn. Hãy bắt đầu bằng việc dán nhãn cho chúng.

  1. Vào vSphere Client, chọn Tags & Custom Attributes.
  2. Tạo Category mới tên là Storage_Performance.
  3. Tạo hai Tag: Gold_Tier (cho SSD) và Silver_Tier (cho HDD).
  4. Tại mục Storage, chuột phải vào từng Datastore và chọn Assign Tag để gắn nhãn tương ứng.

Bước 2: Định nghĩa “luật chơi” với VM Storage Policy

Đây là bước bạn thiết lập các tiêu chuẩn cho máy ảo.

  1. Truy cập Policies and Profiles -> VM Storage Policies -> Create.
  2. Đặt tên dễ nhớ như Critical_DB_Policy.
  3. Trong phần Policy structure, hãy tích chọn Enable rules for “Tag based” storage.
  4. Tại tab Tag based usage, chọn Category Storage_Performance và Tag Gold_Tier.
  5. Kiểm tra danh sách Datastore tương thích ở phần Storage compatibility để đảm bảo cấu hình đúng.

Bước 3: Áp dụng chính sách cho máy ảo

Khi triển khai VM, tại mục Storage, hãy chọn Policy bạn vừa tạo thay vì để mặc định. vSphere sẽ tự động lọc bỏ các Datastore không đạt chuẩn, giúp bạn tránh chọn nhầm vào các ổ đĩa chậm.

# Kiểm tra nhanh danh sách Policy bằng PowerCLI
Get-SpbmStoragePolicy | Select Name, Description

# Gán Policy cho VM bằng script để tiết kiệm thời gian
$vm = Get-VM "Production_DB_01"
$policy = Get-SpbmStoragePolicy -Name "Critical_DB_Policy"
Set-SpbmEntityConfiguration -Configuration $vm -StoragePolicy $policy

Nâng tầm quản lý với vSAN Policy

Nếu đang chạy vSAN, SPBM còn mạnh mẽ hơn thế. Bạn có thể can thiệp sâu vào cách dữ liệu được ghi xuống đĩa cứng.

Kinh nghiệm của mình là dùng RAID-1 (Mirroring) cho các ứng dụng cần độ trễ thấp nhất. Ngược lại, với các VM làm môi trường Test hoặc File Server, hãy dùng RAID-5 (Erasure Coding). RAID-5 giúp bạn tiết kiệm tới 33% dung lượng so với RAID-1 mà vẫn đảm bảo an toàn dữ liệu.

Lưu ý: Việc chuyển đổi từ RAID-1 sang RAID-5 sẽ gây tốn tài nguyên I/O để tính toán lại dữ liệu. Bạn nên thực hiện thay đổi này vào khung giờ thấp điểm (ví dụ sau 10 giờ tối) để tránh làm chậm ứng dụng.

Giám sát tính tuân thủ (Compliance)

Tính năng “đáng đồng tiền bát gạo” nhất của SPBM là khả năng tự giám sát. Bạn không cần phải đoán xem VM có đang nằm đúng chỗ hay không.

  • Compliant: VM đang nằm đúng vị trí và hưởng đúng chính sách bạn đã đề ra.
  • Non-compliant: Dữ liệu đang nằm sai chỗ hoặc Datastore gặp sự cố (đầy ổ đĩa, mất kết nối).

Để quét toàn bộ các VM đang vi phạm chính sách, mình thường dùng dòng lệnh PowerCLI này:

# Tìm các VM đang ở trạng thái Non-compliant
Get-VM | Get-SpbmEntityConfiguration | Where-Object {$_.ComplianceStatus -ne "Compliant"}

Lời kết từ kinh nghiệm thực chiến

Nhiều người nghĩ SPBM chỉ dành cho các Datacenter khổng lồ. Thực tế, ngay cả với cụm 3 host nhỏ, SPBM vẫn là cứu cánh.

Có lần, một Storage Controller của mình bị lỗi khiến tính năng dự phòng phần cứng tạm thời mất hiệu lực. Nhờ SPBM, vCenter ngay lập tức cảnh báo trạng thái Out of Date cho các VM quan trọng. Mình chỉ mất vài phút để di chuyển chúng sang vùng an toàn nhờ gợi ý chính xác từ Policy. Nếu quản lý thủ công, chắc chắn mình đã bỏ sót vài VM và rủi ro mất dữ liệu lúc đó là cực lớn.

Hãy coi SPBM như một người gác đền tận tụy. Bạn chỉ cần thiết lập luật lệ một lần, và nó sẽ đảm bảo mọi thứ vận hành đúng quỹ đạo mãi mãi.

Share: