Cách chia tài nguyên cpu trong ảo hóa

Nếu có bao giờ trải nghiệm các tính năng trong Hyper-V thì ắc hẳn bạn sẽ nhận thấy rằng Hyper-V rất được ưu ái trong việc đưa ra rất nhiều tính linh hoạt khi nói đến vấn đề phân chia nguồn tài nguyên CPU cho hệ thống máy ảo bên trên.Nhưng mọi sự vật sự việc đều có mặt tốt và mặt không tốt và vấn đề này đối với Hyper-V cũng vậy. Tốt ở chỗ Hyper-V cho phép người quản trị kiểm soát được tình hình ,quản lý điều khiển phân phối nguồn tài nguyên hệ thống nhưng tồn tại một vấn đề “bad” là có thể dẫn đến tình trạng thiếu thốn năng lực xử lý.

Sự ánh xạ của các CPU ảo

Một trong những lý do tại sao Hyper-V lại lịnh hoạt trong vấn đề phân bố nguồn tài nguyên CPU khả năng của các phiên bản Windows được xây dựng trên Windows NT Kernel hoặc một số biến thể khác hổ trợ được ít nhất 2 CPU. Mỗi máy tình được sản xuất ngày nay có thể mang trong nó nhiều CPU và có cả trường hợp nhiều CPU với mỗi CPU chứa nhiều nhân CPU con trong đó.

Điều này có ý nghĩa rất lớn rằng bạn sẽ linh động hơn trong việc quyết định bao nhieu nhân CPU bạn muốn phân chia cho mỗi hệ điều hành máy khách. Bây giờ bạn hãy quan sát hình 1, bạn hoàn toàn có thể thấy rằng Hyper-V cho phép chúng ta quyết định có bao nhiêu vi xử lý ảo hay đơn giản là bao nhieu CPU ảo bạn muốn cấp cho hệ điều hành máy khách này. Trước khi chúng ta bắt đầu làm việc này thì bạn cần phải hiểu rằng khi ban cấp nguồn tài nguyên CPU cho một máy ảo, hành động này không phải là gán một nhân CPU vật lý cho nó mà chính xác là một nhân CPU ảo về mật luận lý hay còn gọi là logic.

Cách chia tài nguyên cpu trong ảo hóa

Hình 1 : Hộp thoại cấu hình CPU ảo của một máy ảo trong Hyper-V

Hyper-V cho phép chúng ta quyết định có bao nhiêu CPU ảo sẽ được cấp cho một máy ảo . Tất nhiên CPU ảo ở đây không phải là đại diện cho một CPU vật lý hoặc một nhân CPU vật lý thật trên máy chủ có nghĩa là không phải máy chủ bạn có 1 CPU thì ở đây bạn chỉ được chọn 1 CPU. Thật ra chúng ta có thể gắn tối đa là 4 do Hyper-V hỗ trợ và còn phải xem hệ điều hành máy khách có support được bao nhiêu nữa ví dụ dụ như XP mà bạn gắn 4 CPU là “quá tay”. Và các chuyên gia Microsoft cũng khuyến cáo chúng ta về việc nên cố gắng duy trì tình trạng 1 – 1 tức là nếu bạn có 4 nhân CPU vật lý thì trên máy chủ Hyper-V bạn cũng nên đảm bảo tại một thời điểm chỉ nên dùng 4 nhân ảo thôi mặc dù hoàn toàn bạn có thể cung cấp hơn. quay lại với việc 4 nhân CPU thật thì bạn được đề nghị là nên có 3 máy ảo mỗi máy chạy 1 nhân còn 1 nhân còn lai là dành cho host (parent) hoặc là 1 máy ảo 2 nhân và 1 máy ảo 1 nhân tùy thuộc vào bạn thôi trên đây chỉ là đề xuất để có hiệu xuất khả quan nhất.

Chú ý: nhân ở đây tôi hay đề cập là core trong CPU, Hyper-V tính theo core vật lý chứ không tính theo CPU vật lý vì 1 CPU hiện tại hoàn toàn có thể có 2 core, 4 core và cả 8 core. tiếp theo là Hyper-V chỉ nhận và xử lý được tối đa là 64 core vật lý thôi ở bản R2 và có thể được 24 sau khi cai hostfix ở phiên bản đầu( lỡ tôi có nhớ nhầm thì báo )

Thôi giờ chúng ta quay lại tiếp tục vấn đề. Cái vụ này đã hình thành nhiều câu hỏi nhưng chủ yếu xoay quanh vấn đề là “Tại sao Microsoft lại cho phép chúng ta có nhiều CPU ảo nhiều hơn số nhân CPU thật sự chúng ta đang có?” Nan giải rồi đây nhưng đừng lo có câu hỏi thì chắc phải có câu trả lời thôi. Câu trả lời có 2 lý do chính được đặt ra. Đầu tiên tùy trường hợp triển khai các nhau mà chúng ta sẽ cần tạo bao nhieu máy ảo cần thiết đề dùng có khi bạn dựng môi trường LAB và những máy ảo của Lab cũ còn đó và bạn tạo máy ảo cho Lab mới tiếp tục. Nhưng tôi chắc chắn là chúng không thể nào cùng được hoạt động tại một thời điểm. Đặt ra trường hợp tôi có một máy Hyper-V dùng làm lab trên đó chưa 15 máy ảo khác nhau. Mặc dù vậy không bao giờ có hơn 3 hoặc 4 máy ảo chạy một lúc. Cũng như việc chúng ta xai VM vậy tạo ra thì cả đống mà đâu phải chạy một lúc một thời điểm đâu nào. Thật tế thi xài nhiều hơn cái thực cái vốn có là không thể. Dù là Hyper-V thì ảo hóa cũng giới hạn.

Một lý do khác cho vấn đề cho phép tạo nhiều CPU ảo, như chúng đã đã biết ý tưởng ảo hóa là xuất phát từ việc tối ưu hóa phần cứng tách rời lệ thuộc cho phép nhiều máy ảo chạy trên một máy thật. Tuy nhiên một số máy ảo giữ vai trò dịch vụ nhưng lại chiếm rất ít thời gian xử lý của CPU. Ví dụ dẽ hiểu hơn là trong một hệ thống domain vừa và nhỏ, DNS server và DHCP server tieu thụ tài nguyên CPU khá ít vì thế chúng ta hoàn toàn có thể tao thêm máy ảo để chạy. Vấn đề này liên quan chủ yếu là khả năng tính toán khả năng CPU sao cho hợp lý với các máy ảo đang chạy trên đó.

Nếu bạn có nhiều máy ảo, mỗi máy chỉ chiếm 1 ít thời gian của CPU thì về mặt lý thuyết có thể nhận được ngay với việc có nhiều bộ xử lý ảo tương ứng với một CPU lõi đơn. Thực sự Microsoft cũng chưa có công bố chính thức về vấn đề chạy được nhiều là có thể nhưng chạy được bao nhiêu thì chưa rõ. Và phải chắc chắn giữ yêu cầu là dành 1 nhân CPU cho máy host (phân vùng parent).Bạn cũng nên ghi nhớ rằng nếu bạn đang phân chia một lõi CPU giữa nhiều máy ảo, bạn sẽ mất một số khả năng xử lý của lõi để các chi phí liên quan đến quản lý nhiều máy ảo.

Kết luận

Một điều cần nhớ là nêu bạn giữ ý tưởng phân bố tài nguyên CPU trong mội turong72 Hyper-V thì bạn cũng cần phải xem xét giới hạn của hệ điều hành trong máy ảo. VI dụ Windows XP giới hạn xử lý ở 2 nhân CPU. Bạn có thể xem thêm ở link sau http://msdn.microsoft.com/en-us/library/cc768529.aspx.