OpenStack初始化浅析

目前的OpenStack的部署工具已经很完备了,尤其是Kolla,至少可以满足目前的各种需求。在部署安装的问题解决后,我们对日后如何用好OpenStack就需要做一下研究。这里整理一下目前所关注和思考的问题,也是OpenStack交付给用户时我们要回答的问题。

CPU和内存超分比例

经常有人问我,一台机器可以虚拟出多少台虚拟机。对于这个问题,我的答案永远都是:It depends。完全取决于你,从1个到100,都是可能的。

OpenStack默认的CPU超分比例是16:0,内存是1.5:0。那么在生产环境如何配置呢?这个需要认真考虑,不同的OpenStack使用场景确实区别很大。

对于开发环境,16倍的超分比例,很可能也跑的很好。内存也可以超分。而目前看到的生产环境中,稳妥的做法是4:0超分比例,内存不超分,这样的做法比较普遍。

这里面要简单介绍一下KVM计算CPU超分的计算方式。一颗物理CPU,是12Core,超线程,那么就是24Core,如果我们不做任何的超分,1.0,那么就是24个Core,创建4core的虚拟机,可以创建6个。如果我在参数里设置的CPU超分比例是4.0,那么就有24*4=96core,对于4core的虚拟机,我就可以创建出24个。

CPU和内存预留

对于计算节点的CPU和内存,需要保留多少,尤其现在超融合架构下,保留多少比较合适,都是比较争议的问题,不同的软件版本,不同的硬件条件,结果都会不同。

对于超融合架构,采用SSD,以前是需要专门做CPU的预留和绑定,不过现在好像很少人谈及这个问题。不过一般习惯,大家都是内存保留4G,现在内存比较便宜,4G内存跑计算节点各种服务,问题不大。

CPU的预留多少给主机使用,这个参数很多环境下都不设置,不做任何的保留。

Flavor

一般开始的时候,很少考虑Flavor该如何设置,不过真正使用起来,Flavor问题其实很多,因为一旦Flavor有虚拟机使用,你就无法删除和修改,这样如果你对flavor做任何操作,都会导致虚拟机产生各种问题。因此OpenStack默认初始化的Flavor,在实际中应该做调整。

目前OpenStack支持StartFragment 专门租户设置特别flavor,所以我们建议生产环境设置2个flavor

1.    4Core+8G内存

2.    8Core+16G内存

3.    1Core+2G内存

第三个flavor,主要目的是测试使用。日常用户使用2个flavor应该就足够了。

这个其实也需要考虑主机的内存到底多少是最合适。如果机器是512G内存,16G内存的虚拟机可以创建32个,减掉系统保留内存,30个虚拟机是没啥问题的。

对于core来说,我们就需要240个Core。如果一个CPU是15个Core,超分比例是4,那么就基本够用。从成本角度,15个Core的CPU很贵,通常12Core的CPU比较合算。

镜像

这个很重要,不过过去私有云的镜像制作都很不正规,导致很多问题。一个Linux的OpenStack镜像,其实是需要做很多工作,用户用起来才会感觉好用。

1.    上传镜像,必须指定内存和硬盘的最小要求,这样可以避免很多用户出错

2.    上传qcow2,转换成raw格式

3.    只提供最小化安装的linux镜像(centos 7.2,centos 7.3,Ubuntu 16.04)

4.    集成qemu agent

5.    关闭selinux

6.    不设置wap分区

7.    加快ssh速度,设置ssh不用dns

8.    指定源,加快速度

9.    可以设置密码

对于OpenStack特殊服务,例如ironic,sahara,trove,其实还需要特殊的定制的镜像。

镜像上传,只能让管理员上传。

租户和计费

很多情况下,为了方便,创建用户时都分配管理员权限,导致很多管理问题。还是应该要求一个租户一个用户对应。这样好管理,不能那么随意。

对于租户,要启用计费系统才能了解到资源是如何消耗掉的。

(0)

相关推荐

  • OpenStack之日志详细介绍

    OpenStack日志                 最近做项目用到OpenStack,由于刚刚开始使用,有很多错误,然后查询日志,抽空把日志系统的资料整理下来,大家可以看下. 日志对于一个稳定的系统来说相当重要,对于OpenStack这样一个大型的系统,日志当然也是必不可少,理解Openstack系统的日志对于保证OpenStack环境稳定非常重要.对于出现系统错误,查看日志是一个很好的习惯. OpenStack通过生成大量日志信息来帮助排查系统安装运行期间出现的问题,接下来介绍几个常见服务

  • 一步一步教你安装openstack(图文)

    openstack,安装的门槛比较高,而且相当麻烦,很多的安装文档作者省了不少安装步骤.这对初学的人带来了很大的麻烦,也许作者轻易节省一步,就会创成后面的安装失败.而且初学者由于对openstack不是很了解,错误无法排查,因此很多人都在中途放弃对openstack的学习.其实有一个安装工具可以快速的安装openstack,不需要了解openstack各个组件的之间的关系,只需鼠标轻轻一点,就可以完成对openstack的安装:而且还有诸多功能,如对openstack健康检查,查看节点日志等.

  • CentOS系统中一键安装Openstack图文教程

    前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下: 用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫packsta

  • openstack 重启的服务命令整理总结

    openstack重启的服务命令集合 最近公司项目需要使用Openstack   由于Openstack 重启服务命令比较多,于是就在网上找了下资料,整理下来,希望能帮助到读者! 重启openstack的整个服务 openstack-service restart 1. 重启dashboard service httpd  restart service memcached restart 2. 重启 ceilometer 2.1 cinder service mongod restart 2.

  • Fuel 30 分钟快速安装OpenStack(图文教程)

    一直以来,对于openstack 的初学者来讲,安装往往是入门的头大难题.在E版本之前,要搭建一个基本能用的openstack 环境那是相当麻烦,自己要装机,自己搞源,自己照着文档敲命令,又没有靠谱的文档,官方给出的文档依旧有好多坑,还有语言问题往往用上好几天时间都装不起来,慢慢地就丧失了学习openstack 的信心! 不过后来情况有了很大改观,从E版本开始,以后安装过程简化许多,文档质量提高不少.尽管如此对于初学者还讲还是比较复杂,其实很多时候,很多人只是想体会一下openstack,完全不

  • CentOS 6.4下安装部署OpenStack云计算平台的方法

    前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个): 1.计算 (Compute) - Nova: 2.网络和地址管理 - Neutron: 3.对象存储 (Object) - Swift: 4.块存储 (Block) - Cinder: 5.身份 (Identity) - keystone: 6.镜像 (Image) - Glan

  • Fuel快速安装OpenStack图文教程

    1 介绍 1.1关于 Mirantis Mirantis,一家很牛逼的openstack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM, Rackspace).相对于其他几个社区发行版,Fuel的版本节奏很快,平均每两个月就能提供一个相对稳定的社区版. 1.2Fuel 是什么? Fuel 是一个为openstack 端到端"一键部署"设计的工具,其功能含盖自动的PXE方式的操作系统安装,DHCP服务,Orchestrati

  • OpenStack初始化浅析

    目前的OpenStack的部署工具已经很完备了,尤其是Kolla,至少可以满足目前的各种需求.在部署安装的问题解决后,我们对日后如何用好OpenStack就需要做一下研究.这里整理一下目前所关注和思考的问题,也是OpenStack交付给用户时我们要回答的问题. CPU和内存超分比例 经常有人问我,一台机器可以虚拟出多少台虚拟机.对于这个问题,我的答案永远都是:It depends.完全取决于你,从1个到100,都是可能的. OpenStack默认的CPU超分比例是16:0,内存是1.5:0.那么

  • linux系统的初始化配置浅析

    一.网络的初始化 1.ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 子网掩码 [root@localhost /]# ifconfig eno16777736 192.168.100.112/24 1.ip地址的修改(永久生效) 修改/etc/sysconfig/network-scripts 目录下的网卡文件 [root@localhost /]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

  • Kotlin浅析延迟初始化与密封类的实现方法

    目录 一.lateinit延迟初始化关键字 二.使用密封类优化代码 一.lateinit延迟初始化关键字 Kotlin中很多语法特性,如变量不可变,变量不可为空,等等 这些特性都是为了尽可能地保证程序安全而设计的,比如你的类中存在很多全局变量实例,为了保证它们的能够满足Kotlin的空指针检查语句标准,你不得不做非空判断保护,即使你非常确定它们不会为空. 下面距离看一下 : class MainActivity : AppCompatActivity() { private var s: Str

  • 浅析C++中结构体的定义、初始化和引用

    定义:结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构. 声明一个结构体类型的形式是: 复制代码 代码如下: struct Student{      //声明一个结构体类型Student  int num;         //声明一个整形变量num  char name[20];   //声明一个字符型数组name  char sex;        //声明一个字符型变量sex  int age;         //声明一个整形变量age  float

  • 浅析jQuery Mobile的初始化事件

    jQuery Mobile 包括一个初始化事件,该事件甚至会先于 jQuery 的 document.ready 事件进行加载.jQuery Mobile 实际上在文档对象本身上触发其初始化事件,第一个触发的事件是mobileinit. 当Jquery Mobile开始执行时,他就会在document对象上触发mobileinit 事件,因为mobileinit事件是在加载后马上触发,所以你需要在Jquery Mobile加载之前绑定你的事件处理函数,所以我建议你如下安排你的js引用顺序 <sc

  • iOS经验之初始化方法中不该设置self.view的属性浅析

    前言 iOS初始化方法包括系统默认的和自定义的,常见系统初始化方法有init, initWithFrame:, initWithNibName:bundle:等,自定义则是各式各样.日常iOS项目开发过程中,我们经常在类的初始化方法中初始化接下来类需要用到的一些必要的数据或界面. 本文主要介绍的是关于iOS初始化方法不设置self.view属性的相关内容,属于 iOS小经验系列:累积平时看起来简单,但容易忽视的小经验,各路大佬敬请回避. 正文: 有个小伙伴新写了一个NextViewControl

  • c#构造初始化的顺序浅析

    这个很基础的知识,但我至今才意识到它.想想也很失败. 直接上代码:很简单 复制代码 代码如下: public class Base    {        int i=0; public Base()        {            System.Console.WriteLine("我是基类构造器");        } } class Program    {        static void Main(string[] args)        {          

  • jQuery的初始化与对象构建之浅析

    小结一下: 1.整个类库定义在一匿名函数中,杜绝了全局变量的产生: 2.将undefined 作为缺失的参数传递,防止了undefined 变量的污染: 3.可以看出$(...) 实际上返回的是jQuery.fn.init 对象的实例,随后将该对象的prototype 指向了jQuery.prototype (语句jQuery.fn.init.prototype = jQuery.fn),因此产生的实例共享着jQuery.prototype 里的方法和属性且实现了链式编程的操作: 4.最后通过w

  • JavaScript中闭包之浅析解读(必看篇)

    JavaScript中的闭包真心是一个老生常谈的问题了,最近面试也是一直问到,我自己的表述能力又不能完全支撑起来,真是抓狂.在回来的路上,我突然想到了一个很简单的事情,其实我们在做项目时候,其实就经常用到闭包的,可是面试问的时候,回答又往往是我们经常搜到的答案,唉 不管是应付面试 还是真的想学点东西 ,我也用自己的理解跟大家分享一下,书面化就避免不了了的. 1.闭包是什么? 红宝书中曰:"是指有权访问另外一个函数作用域中的变量的函数." 简单的说,JavaScript允许使用内部函数-

  • 浅析java 的 static 关键字用法

    本篇浅析java中static的用法,主要五个方面:静态成员变量,静态方法,静态块,静态内部类,静态导包. 首先还是一张表格说一下静态对象和非静态对象的区别: 静态对象 非静态对象 归属 类共同具有 类的各个实例独立拥有 内存分配 内存空间上固定的 附属类分配 分配空间顺序 优先分配静态对象空间 优先分配静态对象空间,初始化也一样 1 静态变量,静态方法,静态块 静态对象,静态方法都是在原对象和方法上加上static关键字修饰,表示类可以直接调用这些,而不需要实例化后再调用.具有的好处是: 1-

随机推荐