Nova 关键配置

scheduler_default_filter = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ImagePropertiesFilter, JsonFilter, EcuFilter, CoreFilter

nova-scheduler 可用的过滤器, Retry 是用来跳过已经尝试创建但是失败的计算节点,防止重调度死循环;AvailabilityZone 是过滤那些用户指定的 AZ 的,防止用户的虚拟机创建到未指定的 AZ 里面;Ram 是过滤掉内存不足的计算节点;Core 是过滤掉 VCPU 数量不足的计算节点;

宿主资源隔离

vcpu_pin_set = 4-$

虚拟机vCPU的绑定范围,可以防止虚拟机争抢宿主机进程的CPU资源,建议预留前几个物理CPU,把后面的所有CPU分配给虚拟机使用,可以配合cgroup或者内核启动参数来实现宿主进程不占用虚拟机使用的哪些CPU资源

cpu_allocation_ratio = 4.0

物理CPU超售比例,默认是16倍,超线程也算作一个物理CPU

ram_allocation_ratio = 1.0

内存分配超售比例,默认是1.5倍,生产环境不建议开启超售

reserved_host_memory_mb = 4096

内存预留量,这部分内存不能被虚拟机使用

reserverd_host_disk_mb = 10240

磁盘预留空间,这部分空间不能被虚拟机使用

multi_host = True

是否开启nova-network的多节点模式,如果需要多节点部署,则该项需要设置为True

验证

校验虚拟机的vCPU亲和性,检查CPU是否成功隔离,创建一个虚机,然后通过libvirt参看

1
2
3
4
5
6
7
8
9
10
11
12
$ virsh list
Id Name State
----------------------------------------------------
42 instance-00000553 running
43 instance-00000596 running

$ virsh vcpuinfo 42
VCPU: 0
CPU: 4
State: running
CPU time: 324210.2s
CPU Affinity: ----yyyyyyyyyyyyyyyyyyyyyyyyyyyy

这就说明,虚拟机的vCPU对物理CPU的前四个核非亲和,他一般就会在后面的物理CPU中调度执行各种服务。

Openstack私有云

Openstack作为一个基于存储,网络,计算虚拟化技术上的IaaS管理平台,使大家可以方便获取自己需要的计算和存储资源.

云主机

云主机服务是云计算中最基础的服务,像传统物理机一样,云主机可以实时的添加或删除网卡,硬盘,更改主机CPU/内存等,也可以通过VNC终端在无网络下管理云主机.

核心概念

  • 云主机(Instance)
    指一个镜像在制定CPU和内存配置下运行的一台云主机,具有一般主机的正常功能

  • 镜像(Image)
    是云主机使用的根分区或系统盘,用户可以快速地通过镜像复制出一台云主机,免除了传统冗长的装机过程.

  • 配置(Flavor)
    配置是指CPU和内存的某个配置,在Openstack原生UI中如果需要创建一个云主机,必须指定一个配置.

  • 安全组(Security Group)
    指针对云主机的虚拟网卡的安全策略. 安全组包含一组白名单安全组规则,一个安全组规则允许某一特定数据包流入,流出虚拟网卡.

  • 密钥(Key Pair)
    用于Linux云主机安全地通过SSH登录时使用.

Read More

1. 前言

  随着IT技术的发展,云计算以不可逆转的方式掀起了新的IT产业变革,相比较传统的IT的计算,云计算有以下的巨大优势

  1. 可以使用大量的商用机器代替价格昂贵的大型机器,大大降低IT基础建设成本
  2. 云的分布式架构提供了更高的弹性和扩展性
  3. 虚拟化大大提高了IT管理的效率,降低的IT管理的难度

2. 目的

  1. 提高公司IT资产的利用率,提高IT的管理效率。使更多的人可以快速获取所需要的资源。
  2. 提供研发云平台,促进公司产品与云平台的兼容,帮助联影快速的构建所有类型的应用,包括移动应用,Web应用和Restful API
  3. 基于云平台,提供基于Hadoop和spark大数据计算平台,为公司大数据提供基础设施的支持平台。

Read More

emacs 查询帮助的方法

学习,从动手开始;高手,从学会学习开始。

查询当前模式下有哪些按键绑定

  1. C-h m 可以详细的显示当前模式下有哪些按键绑定
  2. C-x C-h 查询所有以C-x开头的按键绑定
  3. C-c C-h 查询所有以C-c开口的按键绑定

查询特定的按键绑定

  1. C-h c 提示用户输入一个按键组合,给出这个组合绑定了什么命令
  2. C-h k 同上,但是提示信息更加的详细

查询C-h c 绑定了什么命名 C-h c C-h c 显示绑定了 describe-key-briefly
如果启用的Viper mode,C-h可能被绑定到另外的键,这时候可以使用F1来代替C-h

查询某个命令的绑定按键

  1. C-h w 按键组合 或者 M-x where-is

    例如查询where is绑定了什么按键可以 C-h w where-is

Read More

编者按:

除了金山的公有云采用OpenStack构建外,小米的私有云平台同样采用OpenStack建设。目前的小米集群分布在多个IDC、数千台虚拟机,服务公司几十个产品线的线上和线下业务,这篇实践就是由为小米OpenStack项目负责人潘晓东带来的干货分享。

正文:

小米目前内部建设的是高可用的私有云平台,为全公司提供统一的云服务平台。提供弹性的资源分配和部署方式,同时提高资源的分配和管理效率。减少服务资源的交付周期。为此小米定了四大目标:

  • 稳定第一:支撑公司多条产品线业务,力求稳定
  • 性能优化:尽快可能的降低虚拟机的资源消耗,保证虚拟机的性能
  • 内网互通:虚拟机需要和公司其他主机互联互通。对其他主机透明
  • 业务定制:OpenStack需要和公司其他系统互通(监控和主机信息)

小米OpenStack项目概况

小米基于这四点做了私有云平台,有着数千台VM的OpenStack集群,稳定服务公司线上线下业务一年多时间,数据说明如下:

*可用度达到99.99%。运行16个月,2次故障,分别是GlusterFS和OpenvSwitch引发的问题:1.GlusterFS的bug有可能导致文件系统被置为Readonly,据说bug目前已经修复;2.在广播风暴的情况下,OpenvSwith由于起软件性能的问题,最有可能被打死,这个问题是所有的软网桥(包括VMware)都存在的问题;

  • 目前使用率:平均40%(物理机利用率),1虚12;
  • 覆盖度:小米所有产品线;
  • 业务类型:开发,测试,线上(线下70%)。

Read More

git常用技能总结,原文链接 http://wuchong.me/blog/2015/03/30/git-useful-skills/

学习使用 Git 已经一年有余,一些常用技能也用的炉火纯青了,但偶尔碰到一些生僻的技能,总是需要去 Google,第二次用时又忘了。所以这是一篇我自认为比较重要的 Git 技能表,主要供自己查阅使用,反复查阅能够加深印象,提升技能熟练度。如果你是还不知道 Git 是什么,建议先阅读廖雪峰的Git教程

工作流

Git 最核心的一个概念就是工作流。工作区(Workspace)是电脑中实际的目录;暂存区(Index)像个缓存区域,临时保存你的改动;最后是版本库(Repository),分为本地仓库和远程仓库。下图真是一图胜千言啊,就无耻盗图了。

Git Flow

Read More

OpenStack 简介

  OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算、存储、网络。由于以 Apache 协议发布,自 2010 年项目成立以来,超过 200 个公司加入了 OpenStack 项目,其中包括 AT&T、AMD、Cisco、Dell、IBM、Intel、Red Hat 等。目前参与 OpenStack 项目的开发人员有 17,000+,来自 139 个国家,这一数字还在不断增长中。
  OpenStack 兼容一部分 AWS 接口,同时为了提供更强大的功能,也提供 OpenStack 风格的接口(RESTFul API)。和其他开源 IaaS 相比,架构上松耦合、高可扩展、分布式、纯 Python 实现,以及友好活跃的社区使其大受欢迎,每半年一次的开发峰会也吸引了来自全世界的开发者、供应商和客户。
  OpenStack 的主要子项目有:

  • Compute(Nova)提供计算虚拟化服务,是 OpenStack 的核心,负责管理和创建虚拟机。它被设计成方便扩展,支持多种虚拟化技术,并且可以部署在标准硬件上。
  • Object Storage(Swift)提供对象存储服务,是一个分布式,可扩展,多副本的存储系统。
  • Block Storage(Cinder),提供块存储服务,为 OpenStack 的虚拟机提供持久的块级存储设备。支持多种存储后端,包括 Ceph,EMC 等。
  • Networking(Neutron)提供网络虚拟化服务,是一个可拔插,可扩展,API 驱动的服务。
  • Dashboard 提供了一个图形控制台服务,让用户方便地访问,使用和维护 OpenStack 中的资源
  • Image(glance)提供镜像服务,它旨在发现,注册和交付虚拟机磁盘和镜像。支持多种后端。
  • Telemetry(Ceilometer)提供用量统计服务,通过它可以方便地实现 OpenStack 计费功能。
  • Orchestration(Heat)整合了 OpenStack 中的众多组件,类似 AWS 的 CloudFormation,让用户能够通过模板来管理资源。
  • Database(Trove)基于 OpenStack 构建的 database-as-a-service。

Read More

什么是vagrant

vagrant是一款构建虚拟开发环境的功能。可以使用vagrant封装一个标准的linux开发环境,然后分发给开发团队的成员。这样其他成员就可以在自己喜欢的桌面系统进行开发,而代码执行却可以在统一的环境,非常的便利。

vagrant环境准备

  1. 安装 virtualBox
  2. 下载安装vagrant
  3. 下载官方封装好的基础镜像 (比如ubuntu)
  4. 添加镜像到vagrant $ vagrant box add trusty /path/to/trusty.box

初始化开发环境

1
2
3
$ cd ~/dev
$ vagrant init trusty
$ vagrant up

看到终端显示启动完成以后,就可以通过ssh登录到虚拟机了

1
2
$ vagrant ssh 
$ cd /vagrant # 切换到开发目录,这里的目录对应host机器上的~/dev目录

Read More

前言

  本文以Ubuntu 14.04为例来介绍如何创建windows的openstack虚拟机镜像。安装之前的装备工作包括
  1. 准备一个windows 2008的iso文件
  2. 下载virtio-win的驱动文件
  3. 下载cloud-init的安装程序

创建镜像磁盘

创建一个windows镜像磁盘,raw格式,大小为15G

1
$ qemu-img create -f qcow2 winServer2008.img 15G

Read More