Cách thức hoạt động của chế độ EVC của VMware: Tổng quan toàn diện
Nếu bạn đã quen thuộc với tính năng vMotion, có lẽ bạn còn nhớ rằng phương pháp được khuyến nghị là sử dụng cùng loại bộ xử lý trên tất cả các máy chủ ESXi để thực hiện di chuyển trực tiếp máy ảo (VM live migration). Nếu bạn muốn sử dụng các máy chủ có mẫu bộ xử lý khác nhau trong cụm, tốt nhất nên triển khai các bộ xử lý cùng thế hệ. Hơn nữa, yêu cầu nghiêm ngặt là các bộ xử lý phải do cùng một nhà sản xuất cung cấp, chẳng hạn như Intel hoặc AMD. Nếu không, bạn rất có thể sẽ gặp lỗi khi sử dụng vMotion.
VMware đã thiết kế phần mềm vSphere của họ để đối phó với các tình huống có thể xảy ra trong môi trường sản xuất, bao gồm việc mở rộng cụm bằng cách thêm các máy chủ mới có bộ xử lý khác nhau. Đây là một tình huống phổ biến – hãy tưởng tượng bạn có một cụm gồm 5 nút ESXi mà bạn đã mua cách đây 3 năm và bạn cần thêm hai nút nữa để chạy nhiều máy ảo hơn nhằm đáp ứng nhu cầu kinh doanh của mình. Các bộ xử lý mà bạn đã mua cách đây 3 năm hiện không còn được sản xuất và không còn được bán trên thị trường; bạn chỉ có thể mua các bộ xử lý thuộc dòng mới nhất. Không có lý do gì để lo lắng – bạn có thể sử dụng tính năng ” Các cụm có tính sẵn sàng cao ” trong vSphere, thêm các nút có bộ xử lý khác nhau và sử dụng vMotion để di chuyển trực tiếp máy ảo giữa các máy chủ có bộ xử lý khác nhau. Điều này có thể thực hiện được nhờ tính năng Enhanced vMotion Capability (EVC) có thể được kích hoạt cho các cụm trong VMware vSphere.
Nguyên lý hoạt động của chế độ VMware EVC
Mỗi thế hệ bộ xử lý mới đều tích hợp các bộ lệnh mới bên cạnh các bộ lệnh đã có sẵn trên thế hệ bộ xử lý trước đó. Các tính năng mới thường giúp cải thiện hiệu suất hoặc bảo mật cho các ứng dụng đang chạy. Ví dụ, các bộ xử lý thuộc thế hệ SkyLake có thêm một bộ lệnh mới (SGX) so với các bộ xử lý thuộc thế hệ Haswell. Hãy cùng xem xét các bộ lệnh của hai thế hệ bộ xử lý này và tìm hiểu chi tiết về chúng.
Haswell (2013) instruction sets:
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. TSX các lệnh này bị vô hiệu hóa thông qua microcode trên các bộ xử lý Haswell do một lỗi, trừ Haswell-EX.
SkyLake (2017) instruction sets:
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX , SGX, VT-x, VT-d.
Điều này có nghĩa là nếu bạn chọn mức tương thích Haswell trong cài đặt EVC, bộ lệnh SGX phải bị vô hiệu hóa (cụ thể hơn là bị che phủ) trên các máy chủ sử dụng bộ xử lý Skylake và do đó, tất cả các bộ xử lý sẽ hoạt động với cùng một bộ lệnh. Nhờ đó, bạn sẽ có một môi trường đồng nhất được tối ưu hóa cho việc di chuyển máy ảo (VM) bằng vMotion. Tính tương thích vMotion đồng nhất được đảm bảo bằng cách áp dụng cùng một cơ sở lệnh CPUID cho tất cả các VM chạy trên các máy chủ ESXi không có bộ xử lý đồng nhất. CPUID có thể được coi là một giao diện lập trình ứng dụng (API) cho bộ xử lý.
Mặt khác, các lợi ích của bộ lệnh SGX sẽ bị mất khi chế độ EVC Haswell được kích hoạt, nhưng mặt khác, hiệu suất của cụm hiện tại của bạn sẽ không bị giảm nếu bạn thêm các máy chủ có bộ xử lý mới hơn vào cụm. Nếu bạn thêm các máy chủ ESXi có bộ xử lý cũ hơn vào cụm hiện có, bạn có thể nhận thấy sự giảm hiệu suất trong một số trường hợp cụ thể.
Lưu ý: SGX (Software Guard Extensions) cho phép bạn tổ chức các đoạn mã và dữ liệu được bảo vệ (còn gọi là enclaves) để đảm bảo mức độ bảo vệ dữ liệu cao cho các ứng dụng đang chạy chống lại các cuộc tấn công của hacker. Các nhà phát triển sử dụng các lệnh SGX cho ứng dụng của họ có thể bảo vệ ứng dụng khỏi việc truy cập hoặc sửa đổi trái phép ngay cả khi ứng dụng tấn công có đặc quyền cao hơn.
Lưu ý: TSX (Transactional Synchronization Extensions) đảm bảo việc di chuyển phần lớn các tác vụ đang chạy để phân phối tài nguyên giữa các lõi bộ xử lý xuống cấp độ phần cứng (chính CPU). Nếu bộ xử lý không hỗ trợ các lệnh TSX, việc phân phối này sẽ được thực hiện ở cấp độ phần mềm bởi hệ điều hành và các ứng dụng. Nếu bộ lệnh TSX bị vô hiệu hóa trên bộ xử lý Haswell của bạn thông qua vi mã, bạn có thể cần thiết lập chế độ EVC ở cấp độ cũ hơn (Ivy Bridge).
Thông thường, các máy ảo đang chạy phải được tắt và khởi động lại để áp dụng các thiết lập chế độ EVC đã thay đổi. Nếu bạn sử dụng vCenter 4.1 trở lên, các máy ảo đang chạy trên máy chủ ESXi có bộ xử lý cũ nhất có thể không cần tắt nguồn (bạn có thể để chúng ở trạng thái đang chạy). Trong trường hợp này, chế độ EVC phải tương ứng với thế hệ của bộ xử lý cũ nhất đó. Các máy ảo chạy trên máy chủ ESXi có bộ xử lý với các tính năng CPU mới hơn phải được tắt nguồn trước khi kích hoạt chế độ EVC trên toàn bộ cụm. Khi máy chủ ESXi bị loại trừ khỏi cụm, nó tiếp tục hoạt động với chế độ EVC bị vô hiệu hóa.
Tương thích phiên bản VMware vSphere / CPU cho EVC
Chế độ EVC yêu cầu phụ thuộc vào các mẫu bộ xử lý và phiên bản của vCenter Server. Chế độ EVC trên phiên bản mới nhất của vCenter Server hỗ trợ các bộ xử lý mới nhất. Hãy cân nhắc sử dụng vCenter phiên bản mới nhất nếu bạn có các máy chủ với bộ xử lý thuộc thế hệ mới nhất. Trong bảng dưới đây, bạn có thể xem các kết hợp giữa thế hệ bộ xử lý Intel và phiên bản vCenter được hỗ trợ để xác định mức cơ sở EVC cho cụm máy chủ của môi trường.
Chế độ EVC phù hợp nhất được xác định bởi mẫu bộ xử lý cũ nhất của máy chủ ESXi trong cụm. Về mặt kỹ thuật, có thể chọn mức chế độ EVC cũ hơn (thấp hơn) so với thế hệ của bộ xử lý cũ nhất, nhưng thông thường không có lý do để thiết lập như vậy. Các phiên bản cũ của ESXi và vSphere hỗ trợ các bộ xử lý mới, nhưng mức cơ sở EVC tối đa được giữ nguyên ở mức của các bộ xử lý cũ hơn đã hoạt động khi phiên bản vSphere đó được phát hành và được coi là mới nhất có sẵn vào thời điểm đó.
Khi bạn thay đổi mức độ chế độ EVC, bạn nên tắt nguồn và bật lại các máy ảo đang chạy để áp dụng cài đặt cho các máy ảo đó; việc khởi động lại máy ảo là không đủ.
Hướng dẫn tương thích của VMware
Bạn có thể kiểm tra tính tương thích của bộ xử lý và chế độ EVC cao nhất có thể sử dụng cho máy chủ vCenter của mình trên trang web của VMware. Để kiểm tra tính tương thích, hãy mở trang Hướng dẫn tương thích VMware, chọn CPU series trong menu thả xuống (tức là (bạn đang tìm kiếm gì), trong danh sách Phiên bản phát hành sản phẩm , hãy chọn phiên bản ESXi của bạn; trong danh sách Dòng CPU , hãy nhấn giữ nút Ctrl và chọn các bộ xử lý được cài đặt trên các máy chủ ESXi của bạn (nhấp chuột trái). Sau khi đã chọn các thông số cần thiết, hãy nhấp vào nút CPU/EVC Matrix để xem bảng các chế độ EVC có sẵn cho các máy chủ ESXi của bạn. Trong ví dụ được hiển thị trên ảnh chụp màn hình bên dưới, các bộ xử lý ESXi 6.5 (được quản lý bởi vCenter 6.5), Intel Xeon E3-1500-v5, Xeon E5-4600-v3 và Xeon Platinum 8100 đã được chọn. Mức độ cao nhất của chế độ EVC được hỗ trợ bởi tất cả các bộ xử lý đã chọn là Intel Haswell Generation .
Yêu cầu
Để vMotion hoạt động đúng cách sau khi kích hoạt chế độ EVC, các yêu cầu sau phải được đáp ứng:
- Các bộ xử lý của tất cả các máy chủ ESXi phải là Intel hoặc AMD.
- Các tính năng ảo hóa bộ xử lý như Intel VT-x hoặc AMD-V phải được kích hoạt trong UEFI/BIOS của các máy chủ ESXi.
- Các máy chủ ESXi phải được quản lý bởi cùng một máy chủ vCenter.
- Các máy chủ ESXi phải được cấu hình để sử dụng vMotion.
Cách kích hoạt và cấu hình EVC
Sau khi đã nắm vững lý thuyết, hãy cùng xem xét việc cấu hình chế độ EVC trong thực tế. Bạn có thể cần tắt nguồn máy ảo (VM) trên máy chủ ESXi mà mức độ EVC cần được hạ cấp. Đảm bảo không có tính năng xử lý nào bị vô hiệu hóa trong UEFI/BIOS để tránh các vấn đề tiềm ẩn.
Mở VMware vSphere Web Client trong trình duyệt web bằng cách nhập địa chỉ IP của máy chủ vCenter vào thanh địa chỉ của trình duyệt. Truy cập vCenter > Hosts and clusters và chọn từng máy chủ ESXi để kiểm tra cấu hình CPU (bộ xử lý trung tâm). Trong ví dụ hiện tại, chúng ta xem xét hai máy chủ chạy ESXi 5.5 được thêm vào cụm và được quản lý bởi vCenter Server 5.5. Như bạn có thể thấy trên hình ảnh minh họa bên dưới, mô hình bộ xử lý của máy chủ ESXi đầu tiên là Intel Xeon E3110 và bộ xử lý được cài đặt trên máy chủ ESXi thứ hai là Intel Xeon X3430 .
Nếu các máy chủ ESXi đã được thêm vào cụm, hãy chọn cụm của bạn ( temp-cluster trong ví dụ của chúng tôi), nhấp vào tab Manage , sau đó mở tab Settings , chọn Configuration > VMware EVC và nhấp vào nút Edit .
Bây giờ, trước khi chọn chế độ EVC trong vCenter, hãy mở một tab mới trong trình duyệt web của bạn và truy cập Hướng dẫn tương thích VMware như đã trình bày ở trên trong bài viết này. Trong ví dụ hiện tại, chúng ta nên chọn ESXi 5.5 , Intel Xeon 31xx Series và Intel Xeon 34xx Series . Sau khi nhấp vào nút CPU/EVC Matrix , bạn có thể thấy trên ảnh chụp màn hình rằng Intel Penryn Generation cần được chọn trong cài đặt chế độ EVC.
Quay lại tab trình duyệt web có vSphere Web Client và mở cài đặt chế độ EVC cho cụm. Nhấp vào Enable EVC for Intel Hosts. Trong menu thả xuống của VMware EVC Mode, chúng ta nên chọn Intel Penryn Generation . Ở cuối cửa sổ, bạn sẽ thấy Validation succeeded trong phần Compatibility . Bây giờ bạn có thể nhấp vào OK để lưu cài đặt chế độ EVC.
Sau đó, trong phần VMware EVC, thông tin cho biết VMware EVC đã được bật sẽ được hiển thị. Nhấp vào Current CPUID Details để mở rộng phần chi tiết về các thanh ghi và giá trị mặt nạ.
Chế độ EVC cũng có thể được bật trong quá trình tạo cụm mới; VMware khuyến nghị phương pháp này như một thực hành được khuyến nghị. Việc bật chế độ EVC khi tạo cụm mới giúp tránh gặp phải các vấn đề liên quan đến việc tắt và di chuyển các máy ảo đang hoạt động trong cụm (như bạn nhớ, thông thường một máy ảo phải được tắt và khởi động lại để áp dụng các cài đặt EVC mới).
Che giấu CPUID
Ngoài chế độ EVC toàn cục được áp dụng cho tất cả các máy ảo và máy chủ ESXi trong toàn bộ cụm, vCenter Server cho phép bạn cấu hình các cờ CPUID thủ công cho một máy ảo tùy chỉnh. vCenter so sánh các thông số CPUID được đặt cho máy ảo với các thông số CPUID có sẵn trên máy chủ ESXi đích. Nếu các thông số này trùng khớp, việc di chuyển máy ảo bằng vMotion sẽ được phép. Tính năng che dấu CPUID ra đời trước tính năng chế độ EVC.
Để cấu hình mặt nạ CPUID cho một VM, thực hiện các thao tác sau:
Chọn VM cần thiết, nhấp chuột phải vào VM và chọn Edit Settings. Trong cửa sổ Edit Settings đã mở, mở Virtual Hardware > CPU, chọn CPUID mask, và nhấp vào Advanced.
Trong cửa sổ CPU Identification Mask , chọn chuỗi đăng ký cần thiết và nhấp vào giá trị để chỉnh sửa mặt nạ ở cấp độ bit. Nhấn nút Legend để xem ý nghĩa của từng ký tự được sử dụng để thiết lập mặt nạ.
Caution! Vui lòng không chỉnh sửa các mặt nạ trước khi bạn đã làm quen với Cơ sở kiến thức VMware hoặc hướng dẫn hỗ trợ của VMware. Việc chỉnh sửa các mặt nạ tương thích CPU theo cách thủ công có thể dẫn đến cấu hình máy ảo (VM) không được hỗ trợ. Ví dụ, các máy ảo Windows có thể gặp lỗi với màn hình xanh (BSOD).
Kiểm tra cấu hình chế độ EVC trong PowerCLI
Bạn có thể kiểm tra cấu hình chế độ EVC cho toàn bộ cụm và cho các máy ảo tùy chỉnh trong VMware PowerCLI bằng cách sử dụng lệnh:
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
Bạn cũng có thể kiểm tra mức EVC tối đa được hỗ trợ cho tất cả các máy chủ trong cụm của mình sau khi chạy lệnh:
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
Chế độ EVC cho từng máy ảo
Chế độ EVC được đề cập ở trên là một tùy chọn ở cấp độ cụm. VMware vSphere 6.7 cung cấp khả năng thiết lập chế độ EVC theo từng máy ảo, điều này có thể hữu ích cho việc di chuyển máy ảo giữa các cụm hoặc máy chủ vCenter khác nhau và mang lại sự linh hoạt cao hơn. Chế độ EVC theo từng máy ảo được thiết lập như một thuộc tính của cài đặt máy ảo và tăng cường tính linh hoạt trong việc quản lý các máy ảo cần di chuyển bằng vMotion. Phiên bản tương thích phần cứng của máy ảo phải là 14 trở lên. Cấu hình chế độ EVC theo từng VM được lưu trong tệp cấu hình VMX của VM dưới dạng các dòng chứa chuỗi ` featMask.vm.cpuid `. Khi một VM có cấu hình chế độ EVC theo từng VM được di chuyển, cấu hình EVC được lưu trong tệp VMX sẽ được di chuyển cùng với VM. Các thiết lập chế độ EVC theo từng VM có thể được thay đổi khi VM được tắt nguồn (tắt và bật lại VM để áp dụng các thiết lập chế độ EVC theo từng VM đã thay đổi).
Nếu bạn kích hoạt chế độ EVC theo từng VM cho một VM nằm trong cụm đã được cấu hình chế độ EVC toàn cục, chế độ EVC theo từng VM có thể bằng hoặc thấp hơn chế độ EVC được đặt cho toàn bộ cụm. Do đó, có thể cấu hình cả chế độ EVC toàn cục và chế độ EVC riêng cho từng VM cùng lúc. Sau khi nhân bản một VM, các cài đặt chế độ EVC riêng cho từng VM sẽ được nhân bản cùng với VM.
Để cấu hình chế độ EVC riêng cho từng VM, hãy mở trình khách VMware vSphere HTML5, truy cập Hosts and Clusters , sau đó chọn VM cần thiết. Mở tab Configure , chọn More > VMware EVC và nhấn Edit.
Cách kích hoạt chế độ EVC trong cụm mà không gây gián đoạn
Trong một số trường hợp, bạn có thể kích hoạt chế độ EVC cho toàn bộ cụm mà không gây gián đoạn cho VM (thông thường, các VM phải được tắt và khởi động lại để áp dụng cài đặt chế độ EVC của cụm). Điều này có thể thực hiện được nếu đáp ứng các yêu cầu sau:
- Các máy ảo đang chạy nằm trên máy chủ ESXi có bộ xử lý cũ nhất
- Chế độ EVC trong cụm được cấu hình để sử dụng bộ lệnh CPU phù hợp với thế hệ của bộ xử lý cũ nhất
Kích hoạt chế độ EVC cho máy ảo vCenter
Bạn có thể gặp phải tình huống sau đây, thường gặp trong môi trường VMware vSphere: vCenter Server is running as a VM on an ESXi host that must be added to a cluster for which the EVC mode is enabled.
Vấn đề là một máy chủ ESXi đang chạy các máy ảo (bao gồm cả máy ảo chạy vCenter) không thể được thêm vào cụm sau khi kích hoạt EVC cho đến khi tất cả các máy ảo được tắt. Mặt khác, máy ảo chạy vCenter là cần thiết để quản lý cụm, và chúng ta không thể tắt máy ảo vCenter vì nó đang được sử dụng ngay lúc này. Vấn đề này đặc biệt nghiêm trọng khi máy ảo vCenter đang chạy trên máy chủ ESXi có bộ xử lý mới hơn.
Lưu ý: Được khuyến nghị sử dụng một vSwitch tiêu chuẩn (không phải Distributed vSwitch) để kết nối máy ảo chạy vCenter với mạng trong trường hợp này.
A possible solution. Xem xét thuật toán có thể giúp bạn giải quyết vấn đề cho VMware vSphere 5.5:
- Di chuyển một máy chủ ESXi khác (không chạy máy ảo vCenter) vào cụm nếu cụm chưa có máy chủ ESXi nào. Các máy ảo trên máy chủ ESXi đang được di chuyển vào cụm phải được tắt nguồn.
- Tắt máy ảo đang chạy vCenter Server. Kết nối với máy chủ ESXi nơi máy ảo vCenter đang tồn tại bằng cách sử dụng VMware Host Client để hủy đăng ký máy ảo hoặc kết nối bằng trình khách SSH để sao chép tệp. Trong VMware Host Client, nhấp chuột phải vào máy ảo vCenter và chọn ” ” > “Unregister” . Sao chép thủ công tất cả tệp của máy ảo vCenter vào kho dữ liệu (datastore) kết nối với máy chủ ESXi mà bạn đã di chuyển vào cụm ở Bước 1. Nếu cả hai máy chủ ESXi đều sử dụng NFS hoặc iSCSI bộ nhớ chia sẻ , bạn không cần sao chép tệp máy ảo sang vị trí khác.
Lưu ý: Bạn có thể cần thiết lập địa chỉ MAC cho bộ điều hợp mạng ảo của máy ảo chạy vCenter Server một cách thủ công trước khi di chuyển máy ảo từ máy chủ ESXi này sang máy chủ ESXi khác.
- Đăng ký máy ảo vCenter trên máy chủ ESXi đã được di chuyển vào cụm (kết nối với máy chủ ESXi bằng VMware Host Client, mở kho dữ liệu, tìm các tệp của máy ảo vCenter, chọn tệp VMX, nhấp chuột phải vào tệp và chọn Đăng ký máy ảo ). Chạy máy ảo vCenter trên máy chủ ESXi này trong cụm. Đăng nhập vào vCenter bằng VMware vSphere Client để đảm bảo rằng bạn có thể quản lý môi trường vSphere của mình bằng vCenter. Bạn có thể cần phải tắt tạm thời Admission Control.
- Di chuyển máy chủ ESXi nguồn mà máy ảo vCenter ban đầu hoạt động sang cụm. Nếu cần, hãy tắt các máy ảo khác trên máy chủ ESXi đó trước khi di chuyển máy chủ.
Kết luận
Enhanced vMotion Capability (EVC) là một tính năng hữu ích của VMware vSphere, giúp duy trì khả năng mở rộng của cụm và cho phép bạn thêm các nút có bộ xử lý thuộc các thế hệ khác nhau vào cụm để thực hiện di chuyển máy ảo trực tiếp giữa các máy chủ ESXi bằng vMotion. Chế độ EVC ẩn các tính năng của bộ xử lý thế hệ mới để tạo ra một nền tảng thống nhất phù hợp với các tính năng của thế hệ bộ xử lý cũ nhất được sử dụng bởi các máy chủ ESXi trong cụm. Kết quả là, bạn có một môi trường đồng nhất nơi tất cả các bộ xử lý sử dụng cùng một bộ lệnh và các máy ảo đang chạy có thể di chuyển bằng vMotion. Một số lượng lớn khách hàng VMware sử dụng cụm đều sử dụng chế độ EVC. Được khuyến nghị kích hoạt chế độ EVC ngay từ giai đoạn tạo cụm để tránh các vấn đề tiềm ẩn liên quan đến việc thêm máy chủ ESXi và di chuyển các máy ảo đang chạy, bao gồm cả máy ảo chạy vCenter Server.
Dù bạn có sử dụng cụm hay không, đừng quên sao lưu các máy ảo VMware. NAKIVO Backup & Replication là giải pháp bảo vệ dữ liệu nhanh chóng, đáng tin cậy và chi phí hợp lý, có thể bảo vệ các máy ảo VMware của bạn ngay cả khi chúng đang di chuyển giữa các máy chủ ESXi trong cụm.











