网上大侠们分享的资料都非常好,就看你会不会用,如何使用,再次对本文所引用资料的作者表示感谢,如有侵权,请告知。

大致过程


参考资料

Icehouse 创建Instance代码分析

http://www.cnblogs.com/popsuper1982/p/3800426.html

http://www.cnblogs.com/popsuper1982/p/3927390.html

http://www.cnblogs.com/popsuper1982/p/3930350.html

http://www.cnblogs.com/popsuper1982/p/3931783.html

http://www.cnblogs.com/popsuper1982/p/3932330.html

http://www.cnblogs.com/popsuper1982/p/3932821.html

Request Flow for Provisioning Instance in Openstack(http://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-openstack/),如果被墙挡住了,我转到了[转]Request Flow for Provisioning Instance in Openstack

Understanding OpenStack Authentication: Keystone PKI (https://www.mirantis.com/blog/understanding-openstack-authentication-keystone-pki/)

[转]Understanding OpenStack Authentication: Keystone PKI

数字证书原理(http://blog.sina.com.cn/s/blog_44ee37cd01016r1h.html)

这些概念都是了解SSL和https的必须的,而且我们在部署Openstack的时候,所有的服务最好也部署成HTTPS的。

下面这两篇文章会帮你更好的了解SSL

http://httpd.apache.org/docs/2.2/ssl/ssl_intro.html

http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication

对于Openssl,推荐下面的链接

http://pages.cs.wisc.edu/~zmiller/ca-howto/如果被墙屏蔽了可以访问How To Setup a CA

Openssl的证书操作

对于certtool,推荐libvirt的官方文档,讲的非常的形象具体

http://wiki.libvirt.org/page/TLSSetup

keystone除了authentication的功能,还有authorization。

对于访问控制Access Control,发现有多种http://en.wikipedia.org/wiki/Access_control,而Openstack采用的是Role Based Access Control RBAC。

其中在V2中采用的每个Service下面的policy.json文件,访问控制是每个Service自己决策的。后来在V3中,除了policy.json文件,还可以将Policy在数据库中创建,实现了keystone的统一管理。

推荐下面的文章

Customizing OpenStack RBAC policies

[转] Customizing OpenStack RBAC policies

Mandatory Access Control (MAC)在Openstack中也有应用,就是对Libvirt对Host文件的访问控制AppArmor。当你使用virsh命令进行操作的时候,如果发现自己是root,但是还没有权限,八成就是它的原因了。

推荐http://ubuntuforums.org/showthread.php?t=1008906

[转] Introduction to AppArmor

Keystone V3中的概念就比较多了,也相对复杂,文档较少,比较推荐下面的文章。

http://www.florentflament.com/blog/setting-keystone-v3-domains.html

[转]Setting Keystone v3 domains

如果有人问我,看懂各个Service代码的钥匙是什么,我必须说,是paste文件,看懂了这个文件,就很容易找到对应的入口代码。对于Paste,我推荐

WSGI and Paste

http://pythonpaste.org/deploy/

http://indico.cern.ch/event/44/session/9/#all其中Developing Applications with the Web Server Gateway Interface

nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里面实现的。然而有时候,我们希望实现distributed rate-limiting,从而Turnstile是一个不错的选择。

https://github.com/klmitch/turnstile
http://pypi.python.org/pypi/turnstile

openstack nova 基础知识——Quota(配额管理)

http://www.sebastien-han.fr/blog/2012/09/19/openstack-play-with-quota/

有关nova的database schema参考下面的文章

http://www.prestonlee.com/2012/05/03/openstack-nova-essex-mysql-database-schema-diagram-and-sql/

MySQL的HA有下面几种方式:

http://dev.mysql.com/doc/mysql-ha-scalability/en/index.html

要想系统的学习Mysql replication,推荐下面的这本书

《MySQL High Availability Tools for Building Robust Data Centers》

参考下面的两篇文章

http://www.sebastien-han.fr/blog/2012/04/08/mysql-galera-cluster-with-haproxy/

http://www.sebastien-han.fr/blog/2012/04/01/mysql-multi-master-replication-with-galera/

要弄懂Pacemaker,推荐读《SUSE high availability guide》

https://www.suse.com/documentation/sle_ha/singlehtml/book_sleha/book_sleha.html

本人做了一些笔记和实验,请参考

High Availability手册(1): 环境

High Availability手册(2): 架构

High Availability手册(3): 配置

有关nova-conductor的文章

http://cloudystuffhappens.blogspot.com/2013/04/understanding-nova-conductor-in.html

在Openstack中,RPC的发送是通过RabbitMQ

RabbitMQ可以通过Pacemaker进行HA,当然也可以搭建自己的RabbitMQ Cluster

学习RabbitMQ当然首推《RabbitMQ in Action》

本人也做了一些笔记

RabbitMQ in Action (1): Understanding messaging

RabbitMQ in Action (2): Running and administering Rabbit

RabbitMQ in Action(5): Clustering and dealing with failure

还没完全读完,敬请谅解

当然Openstack中对于RabbitMQ的使用,一篇很好的文章是

NOVA源码分析——NOVA中的RabbitMQ解析

本人也对RPC的调用过程进行了代码分析

Openstack中RabbitMQ RPC代码分析

request_spec中的第一个信息就是p_w_picpath的properties信息,尤其是当你想支持多种Hypervisor的时候,Xen的p_w_picpath, KVM的p_w_picpath, Hyper-V的p_w_picpath各不相同,如何保证p_w_picpath跑在正确的Hypervisor上?在p_w_picpath里面这种hypervisor_type property就很必要。

请阅读下面的文章http://www.cloudbase.it/filtering-glance-p_w_picpaths-for-hyper-v/

在Openstack文档中,这个例子很好的展示了host aggregates和Flavor extra_specs的配合使用

http://docs.openstack.org/trunk/config-reference/content/section_compute-scheduler.html

neutron创建network执行的那些命令

http://www.cnblogs.com/popsuper1982/p/3849822.html

多个router和多个network

http://www.cnblogs.com/popsuper1982/p/3835466.html

在Openstack里面,对于KVM,应用到的Image格式主要是两种RAW和qcow2,

raw格式简单,容易转换为其他的格式。需要文件系统的支持才能支持sparse file,性能相对较高。

qcow2是动态的,相对于raw来说,有下列的好处:

  • 即便文件系统不支持sparse file,文件大小也很小

  • Copy on write

  • Snapshot

  • 压缩

  • 加密

具体的格式和特点,参考下面的文章

QEMU KVM libvirt手册(4) – p_w_picpaths

[转] The QCOW2 Image Format

创建一个p_w_picpath,有多种方法

一种方法是通过virt-install,讲hard disk设为一个p_w_picpath文件, 从CDROM启动一个虚拟机,按照正常的安装流程来,最后操作系统安装好,p_w_picpath再经过qemu-img进行处理,压缩,最终形成p_w_picpath。

参考文章

QEMU KVM libvirt 手册(1)

当然现在有了更先进的方法,就是libguestfs,它可以轻松基于已有版本的p_w_picpath创建一个你想要的p_w_picpath,就是virt-builder

参考文章

libguestfs手册(3): virt命令

当然一个可以在Openstack里面使用的p_w_picpath,绝不是仅仅安装一个操作系统那么简单。

在OpenStack Virtual Machine Image Guide中详细写了一个Linux Image的各种需求

说完了创建p_w_picpath,还需要了解修改p_w_picpath,我们的文件注入,就是对p_w_picpath的修改。

有三种方式:通过mount一个loop device,通过qemu的network block device,或者最先进的,通过libguestfs

总结成了一篇文章

如何修改p_w_picpath文件

对于qemu-nbd,有文章

QEMU KVM Libvirt手册(6) – Network Block Device

对于libguestfs,我也写了一些笔记

libguestfs手册(1): 架构

libguestfs手册(2):guestfish command

libguestfs手册(3): virt命令

对于文件注入,有文章

nova file injection

对于如何打snapshot,分多种,有文章

QEMU KVM Libvirt手册(5) – snapshots

Snapshot Types

External Snapshot management

[转] External(and Live) snapshots with libvirt

[转] Snapshotting with libvirt for qcow2 p_w_picpaths

QEMU KVM libvirt 手册(3) - Storage Media

QEMU KVM Libvirt手册(7): 硬件虚拟化

QEMU KVM Libvirt手册(8): 半虚拟化设备virtio

machine参数是总线Architecture,通过qemu-system-x86_64 --machine ?查看,default就是参数中的值。

accel=kvm说明虚拟化使用的是kvm

cpu表示处理器的参数以及处理器的一些flags,可以使用命令qemu-system-x86_64 --cpu ?查看

smp是对称多处理器,

-smp 1,sockets=1,cores=1,threads=1

qemu仿真了一个具有1个vcpu,一个socket,一个core,一个threads的处理器。

socket, core, threads是什么概念呢

(1)socket就是主板上插cpu的槽的数目,也即管理员说的”路“
(2)core就是我们平时说的”核“,即双核,4核等
(3)thread就是每个core的硬件线程数,即超线程

在Openstack中,neutron的很多网络功能都是由openvswitch实现的,因而本人专门研究了一下openvswitch,参考下面的文章

OpenFlow学习笔记

Openvswitch手册(1)

Openvswitch手册(2)

Openvswitch手册(3)

Openvswitch手册(4)

[转]Comparing sFlow and NetFlow in a vSwitch

[转]Rapidly detecting large flows, sFlow vs. NetFlow/IPFIX

Openvswitch手册(5)

Openvswitch手册(6)

Openvswitch手册(7)

Openvswitch手册(8)

Openvswitch手册(9)

Openvswtich 学习笔记

对于网络的管理,有很多好的工具可以使用

[转] iptables

HTB Linux queuing discipline manual - user guide笔记

iproute2学习笔记

tcpdump

[转]Linux操作系统tcpdump抓包分析详解

[转] IPTables for KVM Host

[转] Firewall and network filtering in libvirt

[转] XEN, KVM, Libvirt and IPTables

http://tldp.org/HOWTO/Traffic-Control-HOWTO/

http://rlworkman.net/howtos/iptables/iptables-tutorial.html

转载于:https://blog.51cto.com/benshitong/1686227

虚拟机创建的50个步骤以及100个知识点(仅作为个人笔记使用)相关推荐

  1. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)

    2019独角兽企业重金招聘Python工程师标准>>> 八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38: ...

  2. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)

    还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code ...

  3. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)

    二.nova-api 步骤3:nova-api接收请求 nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里 ...

  4. 大牛写的Openstack虚拟机创建细节

    别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5) (1) http://www.cnblogs.com/popsuper1982/p/3927390.html (2) ht ...

  5. KVM虚拟机创建时绑定固定IP

    解决问题: 使用dhcp,即使选择无限期,也出现虚拟机ip改变的情况 有网上资料通过修改dhcp配置文件完成,也是不错的思路 目的:不适用dhcp 第一步:制作模板镜像 https://editor. ...

  6. 虚拟机创建及安装ELK

    虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    标题3 C ...

  7. 【Ubuntu】虚拟机VirtualBox安装win7完整步骤

    在Ubuntu16.04中使用VirtualBox安装win7,亲测可以完美使用; 完整步骤参见如下链接: 1.VirtualBox安装步骤:http://www.xitongcheng.com/ji ...

  8. 虚拟机在安装svn时 认证密码一直报错_研路同行|安装虚拟机到安装GAMIT教程步骤汇总...

    (一路遇见,一路再见) 全文共计2258字,图片共计1张 用心阅读控制在10分钟 --今日图文-- Gamit/gLOBK软件是一款高精度GNSS数据处理软件,目前支持GPS/BDS/GLONASS/ ...

  9. 使用qmeu-img创建虚拟机[创建虚拟机,虚拟机快照]

    本文主要介绍创建虚拟机的一般过程. 一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件. 创建虚拟机镜像 要在一台host上跑起一个虚拟机一般需要 ...

最新文章

  1. python爬虫实例-python爬虫实例大全
  2. mysql日期加减计算
  3. 使用ToughMySQL为ToughRADIUS系统提供数据存储
  4. 三年级神奇电子计算机教案,人教版小学三年级下册信息技术教案
  5. 前端学习(2036)vue之电商管理系统电商系统之将本地的文件合并
  6. “让数据用起来”:解读数据中台必备的4个核心能力
  7. [转载]多维数组与Json格式的转化
  8. BarTender怎样同时打印自动日期和流水号?
  9. nginx反向代理解决跨域
  10. 为什么会存在乱码?什么是编解码?为什么会有这么多字符集?
  11. 中国雅虎首页改版彻底与口碑网剥离
  12. 成就:优秀的管理者成就自己,卓越的管理者成就他人(读后感)
  13. 报错:Unhandled exception
  14. Linux I/O编程 实验内容
  15. Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
  16. 机器学习中的聚类算法有哪几种?
  17. 牛客网最全在线笔试、编程攻略(建议收藏)
  18. 知识图谱技术原理介绍
  19. 行为模式(模板模式命令模式备忘录模式)
  20. doraemon的python(大更新) 实例讲解 图书管理系统的配置和应用

热门文章

  1. 自动驾驶真的会来得那么快吗:关于自动驾驶的7个疑问
  2. 从技术上解读大数据的应用现状和开源未来
  3. 2018 年最引人注目的科学时刻,《科学》杂志选出14 张年度最佳科学照片
  4. 李彦宏:人工智能会让这个世界变得更美好吗?YES AI DO!
  5. 一张图:AI领域里各领风骚的BAT三巨头
  6. 有生之年,人工智能会给世界带来什么变化?这里是现代机器人之父Rodney Brooks关于未来的预言
  7. 坐在隔壁的00后同事,让我看到了职场“反内卷”的希望
  8. 微隔离的红蔷薇在湾区创见的舞台绽放
  9. 从小护士到微软中国总经理,逆风飞扬的“打工皇后”吴士宏的传奇人生
  10. 漫画:设计模式之 “工厂模式”