Contents [hide]

写在前面

 物理CPU核数为12,能虚拟多少虚拟核的机器?openstack的默认使用nova hypersisor-stats获取到的vcpus值就是24(超线程),而虚拟内核和机器的内核数不是一一对应的。

openstack的自有设置

 openstack的配置文件/etc/nova/nova.conf中有配置
#cpu_allocation_ratio=16.0
#disk_allocation_ratio=1.0
#ram_allocation_ratio=1.5

分别的都是真实内核和虚拟内核(16:1),真实内存和虚拟内存(1.5:1),真实磁盘盒虚拟磁盘(1:1)的比例,说明openstack是清楚的表示我们的vcpus应该是一个虚拟内核数,而不是计算节点的真实内核数。

解决办法

按照openstack提供的patch解决:https://review.openstack.org/#/c/93168/ 其实主要原理就是将我们的配置文件的值*真实内核,内存,得到我们的vcpu,vmemory,vdisk.

最终解决办法

没有按照官方的解决办法,因为官方的解决版本测试版本不正确。使用我们自己的解决办法。 实际解决办法: 在/usr/lib/python2.6/site-package/nova/api/openstack/compute/contrib/hypervisors.py的 245行加上:

stats['vcpus'] = int(stats['vcpus']*10)
stats['memory_mb'] = int(stats['memory_mb']*1.2

143行加上:

hyp_dict['vcpus'] = int(hyp_dict['vcpus'])*10
hyp_dict['memory_mb'] = int(hyp_dict['memory_mb'])*1.2

重启所有控制节点的nova-api服务,然后再查看结果,执行结果:

[root@node-5 nova]# nova hypervisor-show 1
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hypervisor_hostname | node-12.domain.tld |
| cpu_info | {"vendor": "Intel", "model": "SandyBridge", "arch": "x86_64", "features": ["pdpe1gb", "osxsave", "dca", "pcid", "pdcm", "xtpr", "tm2", "est", "smx", "vmx", "ds_cpl", "monitor", "dtes64", "pbe", "tm", "ht", "ss", "acpi", "ds", "vme"], "topology": {"cores": 6, "threads": 2, "sockets": 1}} |
| free_disk_gb | 1167 |
| hypervisor_version | 1002001 |
| disk_available_least | 1105 |
| local_gb | 3667 |
| free_ram_mb | -62869 |
| id | 1 |
| vcpus_used | 125 |
| hypervisor_type | QEMU |
| local_gb_used | 2500 |
| memory_mb_used | 256512 |
| memory_mb | 193643 |
| current_workload | 0 |
| vcpus | 240 |
| running_vms | 21 |
| service_id | 25 |
| service_host | node-12.domain.tld |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

可以看到,1这个计算节点的vcpus数目成了240.

OpenStack 物理资源问题的更多相关文章

  1. java 物理资源回收 finally与try

    java垃圾回收机制不会回收任何物理资源(磁盘文件.数据库连接.网络连接),垃圾回收机制只能回收堆内存中对象所占用的内存. 方法一使用finally块,在finally块中写入资源回收代码,如下: p ...

  2. (资源)OpenStack IRC资源

    OpenStack的IRC频道列表 如何在浏览器上进入OpenStack的频道(具体的频道可以参考前面的频道列表) 频道聊天日志和会议日志 这里我使用mIRC而不是浏览器接入IRC,OpenStack ...

  3. (转) Nova是如何统计OpenStack资源

    引言 运维的同事常常遇到这么四个问题: Nova 如何统计 OpenStack 计算资源? 为什么 free_ram_mb, free_disk_gb 有时会是负数? 即使 free_ram_mb, ...

  4. 关于OpenStack的学习路线及相关资源汇总

    首先我们想学习openstack,那么openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更 ...

  5. 部署 DevStack - 每天5分钟玩转 OpenStack(17)

    本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作 ...

  6. 【转】《从入门到精通云服务器》第六讲—OpenStack基础

    前五期的<从入门到精通云服务器>受到了广泛好评,收到留言,有很多读者对云计算相关的技术非常感兴趣.应观众要求,我们这期要安利一条纯技术内容.准备好瓜子.花生,随小编一起进入OpenStac ...

  7. 初识openstack

    <1>虚拟化技术的功能和特点 多个虚拟机运行在一台物理服务器上,虚拟机之间共享物理资源,虚拟机可以分别安装不同的操作系统,应用程序相互隔离. 虚拟化技术的优势:虚拟机的操作系统和应用程序不 ...

  8. 搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)

    在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率. 因为是我们自己学习用的实验环境,C ...

  9. OpenStack 企业私有云的若干需求(3):多租户和租户间隔离(multi-tenancy and isolation)

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

随机推荐

  1. C# HttpWebRequest 绝技

    http://www.sufeinet.com/thread-6-1-1.html 万能框架.分布式......

  2. 如何去掉word的背影图片?

    从网上下载下来的word资料总有背影图片,看的人很烦,网上有一些去除背景图片的方法,我找到一个不用去背景图片也行的方法:先选View,再选Draft,背景图片就正在最上面显示了,这时候你也可以选中图片 ...

  3. c# ini file

    ini文件主要用于保存配置.之前一直以为是当作普通文本进行操作,读取里面的内容,再自己解析读取的文本.后来发现已经有写好的api函数:WritePrivateProfileString()和GetPr ...

  4. Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. An example is the root-to-leaf path1->2->3which represents the number123. Find the total sum of a

    class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public class ...

  5. 给JBoss种蛊分析

    JBoss又发现漏洞了,安全圈儿为之一紧. 知道创宇安全研究团队再次本着科普的情怀收集跟JBoss安全相关的材料,为安全行业再出一把力. 这里先给JBoss正下名.通常所说的JBoss,全称是JBos ...

  6. python_GUI

    1. 需要安装wxPython软件 2.  GUI(图形用户界面)代码的编写顺序 备注: 1. 加入面板和布局管理器,可以使得组件的位置和大小更加灵活 3. 示例: #encoding=utf-8 i ...

  7. hadoop NameNode 手动HA

    官网配置地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWit ...

  8. Add Digits

    Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...

  9. iOS -Swift 3.0 -String(字符串常规用法)

    // // ViewController.swift // Swift-String // // Created by luorende on 16/9/10. // Copyright © 2016 ...

  10. Array.prototype.slice && Array.prototype.splice 用法阐述

    目的 对于这两个数组操作接口,由于不理解, 往往被误用, 或者不知道如何使用.本文尝试给出容易理解的阐述. 数组 什么是数组? 数组是一个基本的数据结构, 是一个在内存中依照线性方式组织元素的方式, ...