解決Openstack windows創建虛擬機只顯示兩2個CPU


解決Openstack 創建虛擬機只有兩個CPU

現在在部署OpenStack之后會發現按照配額運行Linux的虛擬機沒有問題,但是運行windows的虛擬機會發現如果配置2個以上的核則無法識別,windows server也最多支持到4個核。無法滿足很多業務的需求,但到底是什么原因造成了這樣的現象呢?本文將解釋這種現象,並且說明解決的辦法。

socket,core和thread的概念

在理解這個概念之前,我們需要首先了解下CPU架構的概念。以物理服務器為例,現在的服務器都成為多路服務器,一般可以有多個CPU插槽,而每個CPU又有多個核,每個核可以超線程運行。所以socket即代表服務器的插槽數,core代表每個CPU的核數,thread代表每個核的線程數。

Windows對於socket的支持

Windows系統對於socket的支持各不相同。一般,桌面版的如win7這些最大支持兩路CPU,也就是socket為2。而服務器最大支持四路CPU,即socket為4。

先創建一個虛擬機模板,然后再使用下面的命令;然后再dashboard中更新元數據。再用這個模板去創建新的虛擬機就可以了。

設置vm的cpu toplogy。 max limit類型的設置也可以通過image 屬性來設置.

$ nova flavor-key FLAVOR-NAME set hw:cpu_sockets=FLAVOR-SOCKETS
$ nova flavor-key FLAVOR-NAME set hw:cpu_cores=FLAVOR-CORES
$ nova flavor-key FLAVOR-NAME set hw:cpu_threads=FLAVOR-THREADS
$ nova flavor-key FLAVOR-NAME set hw:cpu_max_sockets=FLAVOR-SOCKETS
$ nova flavor-key FLAVOR-NAME set hw:cpu_max_cores=FLAVOR-CORES
$ nova flavor-key FLAVOR-NAME set hw:cpu_max_threads=FLAVOR-THREADS
 
# FLAVOR-NAME    模板的名稱
# sockets x cores x threads = 總vcpu數
# sockets    # 標識cpu的插槽數,根據操作系統能支持的主板cpu數量來填。
# cores      # cpu的核心數
# threads    # 線程。

Where:

FLAVOR-SOCKETS—(Integer) The number of sockets for the guest VM. By this is set to the number of vCPUs requested.
FLAVOR-CORES—(Integer) The number of cores per socket for the guest VM. By this is set to 1.
FLAVOR-THREADS—(Integer) The number of threads per core for the guest VM. By this is set to 1.

或者是使用在線擴容的方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM