Trần Lê Uyên Thy
Intern
I. Mở đầu
Ở bài trước, DRS và HA đã được giới thiệu ở mức cấu hình cơ bản. Nhưng trong vận hành thực tế, phần lớn sự cố liên quan đến hai tính năng này không nằm ở việc “bật hay tắt”, mà ở chỗ hiểu sai cách chúng phản ứng khi có sự cố. HA không chỉ xử lý “host chết”; nó còn phân biệt host bị cô lập mạng, host mất kết nối với primary, và thậm chí cả trường hợp ứng dụng bên trong VM treo nhưng VM vẫn “sống”. DRS không chỉ cân bằng tải; các rule áp đặt lên nó có thể xung đột với chính HA trong tình huống khẩn cấp.Phần này đi sâu vào bốn mảng: các loại failure mà HA nhận diện và phản ứng tương ứng; admission control với các policy khác nhau; DRS rule (VM-VM và VM-Host) cùng những giới hạn cần biết; và EVC - cơ chế đảm bảo vMotion hoạt động xuyên các thế hệ CPU.
II. Nội dung
1. Failure Types trong vSphere HA
vSphere HA phân biệt ba loại host failure, và mỗi loại có cách xử lý khác nhau.Failure (host ngừng hoạt động): Primary host giám sát secondary host qua heartbeat mạng mỗi giây. Khi không nhận được heartbeat, primary không kết luận ngay. Nó kiểm tra thêm hai thứ: secondary có đang trao đổi heartbeat với datastore không, và có phản hồi ICMP ping đến management IP không. Nếu cả hai đều thất bại, host được xem là đã chết, và VM trên đó được restart trên host khác.
Isolation (host bị cô lập mạng): Host vẫn chạy, nhưng không còn thấy traffic từ các HA agent khác trên management network. Host tự ping đến các địa chỉ isolation của cluster; nếu cũng thất bại, nó tự tuyên bố bị cô lập. Primary host theo dõi các VM trên host bị cô lập. Nếu primary thấy VM bị power off và primary chịu trách nhiệm về chúng, nó sẽ restart chúng .
Partition (host mất kết nối với primary): Host vẫn có thể đang trao đổi heartbeat với datastore, nhưng mất liên lạc với primary. Primary tiếp tục giám sát thay vì kết luận failure ngay.
Ngoài ba loại trên, còn có VM Monitoring và Application Monitoring. VM Monitoring dùng heartbeat từ VMware Tools để phát hiện guest OS treo. Nếu không có heartbeat trong khoảng failure interval, HA kiểm tra thêm I/O activity (mặc định 120 giây) trước khi reset VM, tránh reset nhầm khi VM vẫn đang hoạt động nhưng bận. Application Monitoring yêu cầu SDK riêng để gửi heartbeat từ ứng dụng cụ thể.
VM Component Protection (VMCP) xử lý trường hợp datastore accessibility failure — host mất đường truy cập đến một datastore cụ thể. Phản ứng có thể từ tạo alarm đến restart VM trên host khác, yêu cầu ESXi 6.0 trở lên.
2. Admission Control
Admission control quyết định cluster giữ lại bao nhiêu dung lượng dự phòng để có thể failover khi host gặp sự cố. Có bốn policy chính.Cluster resource Percentage: Đây là policy được khuyến nghị trong hầu hết trường hợp. Nó chỉ định phần trăm CPU và memory của cluster được giữ lại làm capacity dự phòng. Ví dụ, cluster 4 host, muốn chịu được 1 host failure, đặt 25% (tương đương 1/4). Ưu điểm: đơn giản, hoạt động nhất quán khi cluster thay đổi kích thước.
Slot Policy (powered-on VMs): Tính toán dựa trên slot - một “khe” đủ chứa một VM có reservation lớn nhất trong cluster. Số slot còn trống quyết định có cho phép bật thêm VM không. Policy này có thể lãng phí nếu cluster có một VM reservation rất lớn, vì mọi slot đều phải đủ lớn cho VM đó.
Dedicated Failover Hosts: Chỉ định một hoặc nhiều host cụ thể làm host dự phòng. Các host này bị DRS bỏ qua khi đưa ra khuyến nghị, và admission control chặn việc đặt VM lên chúng . Cách này đảm bảo tài nguyên dự phòng tuyệt đối nhưng lãng phí nếu không có sự cố.
Disabled. Tắt admission control. VM vẫn có thể bật dù vi phạm giới hạn availability. Chỉ dùng khi thực sự hiểu rủi ro.
Đi kèm admission control là Performance Degradation Percentage - mức suy giảm hiệu năng chấp nhận được trong lúc failover. Giá trị này ảnh hưởng đến cách tính toán dung lượng dự phòng.
3. DRS Rules
DRS rule chia làm hai loại chính: VM-VM và VM-Host .VM-VM Affinity: Giữ các VM được chọn chạy trên cùng một host. Dùng khi các VM có quan hệ phụ thuộc hoặc cần giao tiếp độ trễ thấp.
VM-VM Anti-Affinity: Giữ các VM được chọn chạy trên các host khác nhau. Dùng cho các cặp VM redundancy (domain controller, database replica) - nếu một host chết, không mất cả hai.
VM-Host Affinity: Áp dụng giữa một nhóm VM (VM DRS group) và một nhóm host (host DRS group). Có thể là “must run on” (bắt buộc) hoặc “should run on” (ưu tiên) .
Một điểm cực kỳ quan trọng: vSphere HA không tuân theo VM-VM affinity rule. Điều này có nghĩa là khi HA failover, nó có thể tách các VM lẽ ra phải ở cùng nhau, hoặc đặt các VM lẽ ra phải tách ra lên cùng một host . Giải pháp là dùng VM-Host rule thay vì VM-VM rule trong các trường hợp cần HA tôn trọng ràng buộc. Ví dụ với Windows Server Failover Cluster, các WSFC VM phải nằm trong cùng VM DRS group, gắn với host DRS group bằng rule “Must run on hosts in group” - và số host trong group nên giới hạn ở hai để tránh phân tán ngoài ý muốn khi HA recovery .
Rule cũng có thể bị vi phạm tạm thời. Khi rule mới được thêm vào mà trạng thái hiện tại không thỏa mãn, DRS sẽ cố gắng sửa chữa, nhưng không đảm bảo ngay lập tức. Kiểm tra tab DRS > Faults để xem rule nào đang bị vi phạm và lý do .
4. EVC (Enhanced vMotion Compatibility)
EVC giải quyết một vấn đề cụ thể: vMotion yêu cầu CPU của source và destination host phải tương thích về instruction set. Nếu cluster có các host dùng CPU khác thế hệ (ví dụ Intel Haswell và Skylake), vMotion giữa chúng có thể thất bại vì VM đang chạy với các instruction mà CPU cũ không hỗ trợ.EVC hoạt động bằng cách mask CPUID - che giấu các instruction mới hơn khỏi guest OS, để tất cả VM trong cluster chỉ thấy một baseline CPU thống nhất . Khi thêm host mới với CPU mạnh hơn vào cluster EVC, các instruction vượt baseline sẽ bị ẩn đi. Kết quả: VM có thể migrate tự do giữa các host mà không lo lỗi CPU.
Khuyến nghị chung là bật EVC ngay từ đầu, vì bật sau này trong môi trường đang chạy (brownfield) phức tạp hơn nhiều - cần tắt VM hoặc host để thay đổi baseline . EVC có overhead gần như bằng không đối với hạ tầng, nhưng có thể cứu bạn khỏi việc phải rebuild cluster sau này khi muốn thêm host mới.
Từ vSphere 6.7, có thêm Per-VM EVC. Thay vì là thuộc tính của cluster, EVC mode trở thành thuộc tính của từng VM, được lưu trong file .vmx và đi theo VM khi migrate sang cluster khác . Per-VM EVC yêu cầu hardware version 14 trở lên, và chỉ có thể thay đổi khi VM tắt. Khi cả cluster EVC và per-VM EVC cùng tồn tại, per-VM EVC không được vượt quá baseline của cluster .
III. Kết luận
Phần nâng cao của HA/DRS xoay quanh việc hiểu rõ giới hạn và thứ tự ưu tiên của từng cơ chế.HA phân biệt failure, isolation, và partition - ba tình huống có cách xử lý khác nhau, và phản ứng mặc định (restart VM) không phải lúc nào cũng đúng nếu không được cấu hình kỹ. Admission control là nơi đánh đổi giữa “dùng hết tài nguyên” và “có dự phòng khi sự cố”; không có policy nào tốt cho mọi trường hợp, nhưng Cluster resource Percentage là điểm khởi đầu hợp lý cho hầu hết cluster.
DRS rule là công cụ mạnh nhưng có một điểm mù nguy hiểm: HA không tôn trọng VM-VM affinity. Bất kỳ ràng buộc nào sống còn khi có sự cố đều nên được biểu diễn bằng VM-Host rule thay vì VM-VM rule.
EVC là khoản đầu tư phòng ngừa. Bật từ đầu gần như miễn phí; bật sau này có thể là một dự án riêng. Với cluster có nhiều thế hệ CPU, EVC không phải tùy chọn - nó là điều kiện để vMotion hoạt động đúng như thiết kế.
IV. Nguồn Tham Khảo
docs.vmware.com/en/VMware-vSphere/8.0/vsphere-esxi-vcenter-801-availability-guide.pdf#2#9#2Đang tải…
techdocs.broadcom.com
Đang tải…
www.vmware.com
Đang tải…
techdocs.broadcom.com
Bài viết liên quan
Được quan tâm
Bài viết mới