Tuyệt chiêu dùng VMware Storage DRS (SDRS): Hết thời ‘trực đêm’ dọn rác Datastore

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

Nỗi lo đầy Disk lúc nửa đêm và ‘pha cứu thua’ từ Storage DRS

Kể từ khi mình quản trị cụm vSphere Production với hơn 200 VM, cơn ác mộng lớn nhất không phải lỗi phần cứng. Đó là cảnh báo “Datastore usage” nổ liên tục trên Telegram lúc 2 giờ sáng. Chỉ cần một con backup Veeam dở chứng tạo snapshot quá lớn, hoặc team Dev quên xóa disk tạm 50GB, là cả Datastore đỏ lừng, kéo theo nguy cơ treo cứng toàn bộ máy ảo.

Sau 6 tháng chạy Storage DRS (SDRS), mình thấy đây là người gác kho cực kỳ tận tụy. Nếu vSphere DRS giúp cân bằng CPU/RAM giữa các Host, thì SDRS lo việc điều phối dữ liệu (VMDK) giữa các Datastore. Nó đảm bảo không ổ nào ‘ăn không ngồi rồi’, cũng không ổ nào phải gồng gánh quá tải.

So sánh thực tế: Làm tay hay để máy tự chạy?

Trước khi bật SDRS, mình từng phân vân giữa việc làm “thợ vMotion thủ công” hay giao phó cho thuật toán. Thực tế vận hành cho thấy sự khác biệt rất lớn:

  • Quản lý Storage thủ công: Bạn phải canh màn hình vCenter như canh chứng khoán. Thấy ổ sắp đầy, bạn click chuột mỏi tay để chuyển VM đi chỗ khác. Cách này tạo cảm giác kiểm soát tốt nhưng cực kỳ tốn sức và dễ gây nghẽn cục bộ do tính toán sai dung lượng thực tế.
  • Dùng Storage DRS (Datastore Cluster): Bạn gom các Datastore cùng loại (như dàn SSD 1.92TB) vào một Cluster. vCenter sẽ tự động tính toán IOPS và dung lượng để đưa ra gợi ý di chuyển tối ưu nhất.

Bảng đối chiếu nhanh

Tiêu chí Storage vMotion Thủ công Storage DRS (SDRS)
Cân bằng dung lượng Chạy theo sự cố (Reactive) Ngăn chặn từ sớm (Proactive)
Độ trễ I/O (Latency) Gần như không thể theo dõi thủ công Tự động đo lường từng miligiây
Deploy máy ảo mới Phải tự tìm ổ trống nhất Hệ thống tự chỉ định vị trí tốt nhất

Được và mất sau 180 ngày ‘thử lửa’ trên môi trường Production

Dùng đồ xịn thì sướng, nhưng cũng có những cái bẫy khiến mình nếm mùi đau khổ. Anh em cần tỉnh táo trước khi nhấn nút Apply:

Ưu điểm đáng đồng tiền bát gạo

  • Tạm biệt tình trạng ‘ổ đói ổ no’: Không còn cảnh Datastore này thừa 2TB trong khi ổ bên cạnh chỉ còn 10GB hấp hối.
  • Xử lý nghẽn I/O trong nốt nhạc: Khi một con Database chạy báo cáo cuối tháng gây IOPS cao, SDRS sẽ nhận diện độ trễ (latency) tăng quá ngưỡng 15ms. Nó sẽ tự động move các VM ‘hiền lành’ khác sang Datastore khác để nhường đường cho Database.
  • Bảo trì không gián đoạn: Muốn rút một ổ cứng lỗi ra khỏi Storage? Chỉ cần bật Maintenance Mode, dữ liệu sẽ tự động di tản sạch sẽ sang các ổ còn lại trong Cluster.

Rủi ro cần lường trước

  • Vắt kiệt băng thông Network Storage: Di chuyển VMDK 500GB qua đường truyền 1Gbps là thảm họa. Bạn cần hạ tầng 10Gbps trở lên để SDRS hoạt động mượt mà.
  • Kén License: Tính năng này chỉ xuất hiện trên bản vSphere Enterprise Plus. Đây là rào cản tài chính lớn nhất.
  • Lỗi ‘bỏ trứng vào một giỏ’: Nếu không cấu hình Rules kỹ, SDRS có thể gom cả 3 Node của cụm SQL Cluster vào chung một Datastore vật lý. Nếu cái Storage đó tèo, coi như bạn mất trắng hệ thống.

Hướng dẫn triển khai Storage DRS chuẩn chỉ

Để bắt đầu, hãy tạo một Datastore Cluster theo các bước thực dụng sau:

Bước 1: Thiết lập Cluster

  1. Vào vSphere Client -> Storage view.
  2. Chuột phải vào Datacenter -> New Datastore Cluster.
  3. Đặt tên gợi nhớ như Tier1-SSD-Cluster và bật Turn ON Storage DRS.

Bước 2: Chọn chế độ tự động hóa

Đừng vội tin máy móc hoàn toàn. Hãy lưu ý:

  • Manual Mode: Hệ thống hiện thông báo đề xuất, bạn duyệt thì nó mới chạy. Mình khuyên nên để chế độ này trong 2 tuần đầu để kiểm chứng độ thông minh của nó.
  • Fully Automated: Khi đã tin tưởng, hãy để vCenter tự quyết định 100% để dành thời gian uống cafe.

Bước 3: Cấu hình ngưỡng Threshold (Cực kỳ quan trọng)

Đây là linh hồn của hệ thống để tránh việc di chuyển dữ liệu vô tội vạ:

  • Utilization Threshold: Mình thường để 80%. Chạm ngưỡng này là ‘báo động đỏ’ để SDRS ra tay.
  • I/O Latency Threshold: Với All-Flash, hãy hạ xuống 10ms. Nếu dùng HDD cơ cũ kỹ, hãy để 20-25ms để tránh hệ thống bị ‘loạn’ do báo ảo.
  • Imbalance Threshold: Đừng kéo thanh trượt quá nhạy. Nếu không, các máy ảo sẽ bị ‘ném’ qua lại liên tục, làm tốn băng thông lưu trữ một cách vô ích.

Mẹo giám sát nhanh bằng PowerCLI

Nếu giao diện Web quá chậm, mình thường dùng script để check nhanh tình trạng Cluster. Đoạn mã dưới đây giúp bạn biết ngay ổ nào đang đầy:

# Kết nối vCenter
Connect-VIServer -Server vcenter.itfromzero.vn

# Kiểm tra Cluster cụ thể
$dsCluster = Get-DatastoreCluster -Name "Tier1-SSD-Cluster"
$dsCluster | Get-Datastore | Select-Object Name, 
    @{Name="Capacity_GB"; Expression={[Math]::Round($_.CapacityGB,0)}}, 
    @{Name="Free_GB"; Expression={[Math]::Round($_.FreeSpaceGB,0)}}, 
    @{Name="Used_Percent"; Expression={[Math]::Round((($_.CapacityGB - $_.FreeSpaceGB)/$_.CapacityGB)*100,1)}}

# Xem có lệnh di chuyển nào đang chờ duyệt không
Get-SRMRecommendation -StorageDRSCluster $dsCluster

Chỉ số Used_Percent lệch nhau dưới 15% giữa các ổ là con số lý tưởng.

Bài học xương máu: Đừng trộn lẫn ‘Voi và Chuột’

Sai lầm lớn nhất của mình là gom chung SSD và HDD vào một Cluster. vCenter thấy HDD chậm nên liên tục đẩy VM sang SSD, làm SSD đầy cứng trong khi HDD thì bỏ hoang. Quy tắc vàng: Chỉ gom các Datastore có cùng tốc độ, cùng loại RAID.

Ngoài ra, hãy luôn dùng Anti-Affinity Rules cho các cặp máy ảo chạy Cluster (như Database Master-Slave). Điều này ép SDRS phải đặt chúng trên các Datastore vật lý khác nhau, đảm bảo an toàn tối đa cho dữ liệu.

Vận hành Storage DRS không khó, quan trọng là bạn hiểu hạ tầng của mình đến đâu. Chúc anh em cấu hình thành công và có những đêm ngon giấc!

Share: