nova

libvirt 的 create 和 define 使用场景

前言

libvirt 中创建虚拟机有两种模式:“易失的“ 和 ”持久化”。“易失的”虚拟机使用 virsh create 命令创建,这种虚拟机下电之后,虚拟机就不见了,libvirt 中的 XML 配置文件也会丢失,所以是易失的。“持久化”的虚拟机使用 virsh define 命令创建,虚拟机下电后,libvirt 仍然保存着虚拟机的配置信息,可以随时重新上电,开启虚拟机。

libvirt 中对 define 是这么说明的,特别注意后半句”如果虚拟机已经运行,那么会在下一次启动时生效“。… 查看详细

OpenStack RPC Queues

说明

文本分析的 OpenStack 版本为 Kilo (2015.1.0),不过社区关于 RPC 架构的设计十分经典,在四年多的时间内基本没有变化,所以有必要在此记录。

表格有四列:

  • Exchange: 队列的 Exchange,后缀是 fanout 的 Exchange 为 fanout 类型;标记(topic)的为 topic 类型。
  • Queue: 队列的名字。
  • Routing Key: 队列的 Routing Key,一般和队列名一样。但是 fanout 的 routing key 比较特殊,为去掉 fanout_{uuid} 后的字符串。
  • Service: 申明此队列的服务,一般是
查看详细

OpenStack Todo List

OpenStack 做为开源的 IaaS 服务,从 2010 年到 2015 年,已经走过了 5 个年头,我们看到了开源的力量,全世界各大 IT 巨头加入 OpenStack 生态系统,希望将 OpenStack 打造成云计算的 Linux。

开源意味着开放源码,但是有了源码不意味着有了一切。和任何开源项目一样,如果你想使用 OpenStack,虽有源码,可能还需要解决:二次开发,测试,打包,制定上/下线流程,容量规划,网络设计,部署架构设计,自动化运维……各种问题。… 查看详细

OpenStack Nova IO Weigher

在 OpenStack Kilo 版本中,Nova 新增了一个调度的砝码,叫做 IoOpsWeigher,官方特性说明这里。这个砝码让调度器会考虑宿主机的 IO 情况。但是这里的 IO 并不是宿主机真正的 IO ,而是 OpenStack 的一些 IO 密集型控制操作导致的 IO 负载。

Nova 中是这么统计 IO 情况的:计算这个主机上所有 vm_states == BUILDING 的虚拟机,以及 task_stateRESIZE_MIGRATING, REBUILDING, RESIZE_PREP, IMAGE_SNAPSHOT, IMAGE_BACKUP, UNSHELVING, RESCUING其中之一的虚拟机,这些虚拟机的个数就是当前这台主机的… 查看详细

OpenStack Tricks And Reminders

OpenStack 是一个庞大的项目,包含越来越多的子项目,安装、配置、维护也越发复杂。和任何开源项目一样,总会有各种各样的坑在等着新人去挖掘。文本记录着生产环境中遇到的 OpenStack 各种奇奇怪怪的问题,这些问题往往不成体系,无需单独撰文,所以零散的记录在这里。

连接数

生产环境中使用的是 MySQL, RabbitMQ作为外部依赖,如果没有做好集群,最好配置完善的监控,保证不会达到这些服务的连接数上限,否则会突然发现… 查看详细