Việc lựa chọn một CPU cho ảo hóa và cấu hình nó đúng cách cũng không kém phần quan trọng như việc chọn các tài nguyên bộ nhớ, lưu trữ và mạng. Bởi vì một vi xử lý không phù hợp hoặc được cấu hình sai có thể ảnh hưởng đến ba thành phần còn lại. Tuy nhiên, việc lựa chọn CPU phù hợp cho các hạ tầng ảo hóa phụ thuộc vào nhiều yếu tố, gồm tập hợp các tính năng và thông số kỹ thuật phần cứng. Vậy chọn CPU nào tốt nhất cho hệ thống ảo hóa? Hãy cùng Shop máy chủ giải đáp vấn đề này ngày sau đây nhé.
Ảo hóa CPU là gì?
Ảo hóa CPU thực chất là quá trình trừu tượng hóa tài nguyên của vi xử lý vật lý (physical) thành một hoặc nhiều đơn vị luận lý (logical) mà sẽ có thể được gán cho các tải công việc khác nhau. Bên cạnh đó, các hệ điều hành có quyền truy cập trực tiếp đến tài nguyên phần cứng. Tuy nhiên, với ảo hóa, phần mềm được biết đến với cái tên hypervisor sẽ trừu tượng các tài nguyên đó để giúp người quản trị IT có thể cung cấp và sử dụng chúng hiệu quả hơn.
Ngoài ra, bạn có thể chỉ định một hoặc nhiều CPU ảo (vCPU) cho một máy ảo, phụ thuộc vào mức độ thiên về xử lý của các tải công việc. Các tài nguyên vi xử lý vật lý bên dưới là như nhau cho dù bạn sử dụng máy vật lý hay máy ảo. Khi đó, hypervisor sẽ trừu tượng hóa mỗi vCPU vật lý thành một hoặc nhiều CPU để có thể dễ dàng gán cho các workload. Hơn nữa, việc gán và phân bổ lại các tài nguyên đó dễ dàng hơn khi chúng được ảo hóa.
Các yếu tố cân nhắc để lựa chọn CPU cho hệ thống ảo hóa
So sánh giữa các dòng vi xử lý là AMD và Intel
Các loại vi xử lý, ví dụ như các loại do Intel và AMD cung cấp và các mục đích sử dụng cụ thể của chúng sẽ được phân biệt bằng các từ viết tắt đại diện cho các tập lệnh. Đồng thời, lệnh được phát triển để thực hiện các tác vụ tập trung vào ảo hóa của vi xử lý. Chẳng hạn như các triển khai Intel VT bao gồm VT-x, VT-i, VT-d và VT-c và AMD là AMD-V và AMD-Vi.
Một trong những cách tiếp cận tốt nhất để lựa chọn CPU phù hợp cho ảo hóa nằm ở việc xác định các tính năng cụ thể mà bạn cần triển khai trong môi trường ảo của mình. Bên cạnh đó, việc lựa chọn hypervisor và sự hỗ trợ của nó cho các vi xử lý cụ thể sẽ ảnh hưởng đến việc lựa chọn bộ xử lý cho ảo hóa.
Thêm một tính năng mà cả Intel và AMD đều cung cấp là giúp cách ly không gian bộ nhớ thông qua các no-execute (NX) và execute disable (XD) bit. Từ đó, giúp bảo vệ các máy ảo khỏi phần mềm độc hại. Các bit NX và XD sẽ đảm bảo rằng CPU từ chối chạy code trong các khu vực được bảo vệ.
Ngoài ra, các tính năng khác của CPU quan trọng đối với ảo hóa là các lệnh Load AH from Flags (LAHF) và Save AH to Flags (SAHF) cùng với các phần mở rộng ảo hóa. Trong đó, các lệnh LAHF and SAHF sẽ cho phép kiểm soát nội dung thanh ghi, trong khi các phần mở rộng ảo hóa sẽ cung cấp việc sử dụng tài nguyên tốt hơn. Chọn phần cứng phù hợp chính là bước đầu tiên để đảm bảo tải công việc ảo chạy ở hiệu suất cao nhất.
Tắt hyper-threading nhằm tăng cường hiệu suất
Bước tiếp theo chính là cách sử dụng CPU một cách tốt nhất. Việc xác định những tính năng nào cần tận dụng và những tính năng nào có thể dẫn đến các vấn đề về hiệu suất trong tương lai. Hyper-threading chính là một tính năng của CPU có chức năng tổ chức và “xếp lịch” cho các luồng ứng dụng. Tuy nhiên, nó không phải lúc nào cũng là cách hiệu quả nhất để cải thiện hiệu suất của bộ xử lý. Hyper-threading sẽ hoạt động như một đường dẫn thứ hai cho các bộ tập lệnh để tránh lãng phí tài nguyên.
Vấn đề của cách tiếp cận này là bản thân core CPU chỉ có một công cụ thực thi. Vì thế, có thể xảy ra tranh chấp tài nguyên, gây ra tắc nghẽn hiệu suất. Thay vì sử dụng hyper-threading, bạn hãy cân nhắc bỏ thêm một phần chi phí để có thêm nhiều core hơn khi mua CPU để ảo hóa. Đạt hiệu quả hơn nếu mua CPU nhiều core và vô hiệu hóa hyper-threading hơn là chia sẻ ít lỗi hơn giữa các tải công việc thông qua nó.
Việc giảm thiểu tài nguyên dư thừa (overhead) do ảo hóa với SLAT
Một vấn đề phổ biến khác với ảo hóa là lượng tài nguyên dư thừa yêu cầu để liên tục translate giữa không gian bộ nhớ vật lý và ảo. Lớp phần mềm mang sẽ tạo sự dư thừa có thể làm giảm tài nguyên khả dụng cho máy ảo chính là Second Level Address Translation (SLAT). Đây là một tính năng của bộ xử lý mà Intel gọi là Extended Page Tables và AMD gọi là Rapid Virtualization Indexing hoặc Nested Page Tables nhằm giảm các overhead đó. Điều này giúp cải thiện hiệu suất ảo hóa.
Ngoài ra, SLAT loại bỏ công việc lặp đi lặp lại bằng cách thêm cache cho các trang bảng mapping virtual-to-physical gần đây mà hypervisor đã tạo ra. Nếu như thông tin mapping đã tồn tại trong cache, thì các tài nguyên CPU và bộ nhớ là không cần thiết cho việc dịch. Mức độ overhead sẽ tiết kiệm được khác nhau tùy thuộc vào tải công việc cụ thể. Không những thế, một số hệ thống yêu cầu bạn bật hỗ trợ SLAT trong BIOS để tận dụng tính năng này.
Cung cấp đủ tài nguyên vCPU cho tải công việc trên VM hay không?
Tải công việc yêu thường cầu đòi hỏi một cách tiếp cận sáng tạo để phân bổ tài nguyên bộ xử lý và ảo hóa CPU. Nhận thấy, mọi ứng dụng và các yêu cầu tính toán của nó là khác nhau. Phần lớn các máy ảo hoạt động bình thường với một vCPU, nhưng đối với các khối lượng công việc đòi hỏi nhiều sức mạnh hơn. Ví dụ như máy chủ cơ sở dữ liệu hoặc email, bạn có thể cần đến bốn vCPU đôi khi còn nhiều hơn.
Để bắt đầu, hãy cung cấp đủ số lượng bộ xử lý ảo giống như yêu cầu của bộ xử lý vật lý mà ứng dụng cần. Nếu như ứng dụng yêu cầu hai CPU vật lý, hãy chỉ định hai vCPU cho nó và theo dõi hiệu suất để xem nó có cần thêm hay không. Bên cạnh đó, nếu khối lượng công việc đặc biệt khắt khe, hãy chỉ định vCPU từ các lõi khác nhau để cân bằng tải. Nhờ việc áp dụng các quy tắc affinity và anti-affinity có thể giúp chỉ định những CPU nào mà một máy đơn lẻ nên và không nên sử dụng.
Quan tâm đến thông số kỹ thuật phần cứng với các mục tiêu trong suy nghĩ
Khi lựa chọn một máy chủ vật lý để ảo hóa, hãy xem xét CPU, memory, storage và I/O network. Các yếu tố này là chìa khóa để hợp nhất máy chủ. Về thông số kỹ thuật của CPU, đánh giá số lượng core, cũng như kích thước cache bên trong và tốc độ xung nhịp.
Hãy xác định những gì bạn muốn đạt được với hạ tầng ảo của mình và loại khối lượng công việc bạn chạy khi chọn CPU cho ảo hóa. Nếu như mục tiêu chính là giảm footprint, hãy sử dụng với số lượng core lớn hơn thay vì tốc độ xung nhịp nhanh hơn. Mặc dù vậy, nếu hiệu suất tải công việc là mối quan tâm lớn hơn, thì tốc độ xung nhịp nhanh hơn và ít core hơn sẽ có ý nghĩa hơn.
Hơn nữa, việc thêm bộ nhớ và lưu trữ nhiều hơn cũng giúp hợp nhất máy chủ. Mặc dù vậy, kích thước bộ nhớ và lưu trữ phải đi liền theo nhu cầu của bạn để tránh lãng phí tài nguyên vật lý. Cuối cùng, hãy đảm bảo bạn có đủ băng thông mạng để đáp ứng khối lượng công việc ảo của mình.
Các CPU phổ biến cho ảo hóa
Hiện có ba nhà cung cấp vi xử lý chính là Intel, AMD và IBM. Dưới đây là một số CPU phổ biến nhất dành cho ảo hóa trong doanh nghiệp:
- Intel 3rd Gen Xeon Scalable processors: Các CPU series 5000 sẽ có từ 6 đến 40 nhân và 6 đến 80 luồng. Bronze chính là một lựa chọn tốt để triển khai các máy chủ cơ bản tại chỗ; Trong đó, Silver và Gold có tốc độ bộ nhớ và sức mạnh cao hơn, đồng thời cũng có nhiều tính năng bảo mật hơn và Platinum khả dụng cho các trung tâm dữ liệu cấp doanh nghiệp.
- AMD 3rd Gen EPYC processors: Các CPU series 7003 sẽ có từ 8 đến 64 nhân và 16 đến 128 luồng. Trong đó, AMD cũng cung cấp công cụ tính toán TCO ảo hóa máy chủ nhằm giúp bạn chọn vi xử lý đáp ứng tốt nhất nhu cầu của mình.
- IBM Power9 processors: Các vi xử lý Power9 sẽ có từ 4 đến 24 nhân và IBM sẽ cung cấp các tùy chọn scale-out và scale-up, sử dụng công nghệ I/O subsystem. Từ đó, nhằm tăng cường off-chip I/O và tương thích với phần lớn các tiêu chuẩn I/O, bao gồm NVIDIA NVLink 2.0, PCIe Gen4 và OpenCAPI.
Mong rằng bài viết này sẽ giúp bạn chọn và cấu hình một CPU tốt nhất cho hệ thống ảo hóa. Mặc dù vậy, vẫn còn nhiều điều cần biết về công nghệ của vi xử lý. Nếu có thắc mắc gì về vấn đề này hãy liên hệ ngay với shop máy chủ để được giải đáp nhé.