虚拟机创建的50个步骤以及100个知识点(仅作为个人笔记使用)
网上大侠们分享的资料都非常好,就看你会不会用,如何使用,再次对本文所引用资料的作者表示感谢,如有侵权,请告知。
大致过程
参考资料
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个知识点(仅作为个人笔记使用)相关推荐
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)
2019独角兽企业重金招聘Python工程师标准>>> 八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38: ...
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code ...
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)
二.nova-api 步骤3:nova-api接收请求 nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里 ...
- 大牛写的Openstack虚拟机创建细节
别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5) (1) http://www.cnblogs.com/popsuper1982/p/3927390.html (2) ht ...
- KVM虚拟机创建时绑定固定IP
解决问题: 使用dhcp,即使选择无限期,也出现虚拟机ip改变的情况 有网上资料通过修改dhcp配置文件完成,也是不错的思路 目的:不适用dhcp 第一步:制作模板镜像 https://editor. ...
- 虚拟机创建及安装ELK
虚拟机创建及安装ELK 作者:高波 归档:学习笔记 2018年5月31日 13:57:02 快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 C ...
- 【Ubuntu】虚拟机VirtualBox安装win7完整步骤
在Ubuntu16.04中使用VirtualBox安装win7,亲测可以完美使用; 完整步骤参见如下链接: 1.VirtualBox安装步骤:http://www.xitongcheng.com/ji ...
- 虚拟机在安装svn时 认证密码一直报错_研路同行|安装虚拟机到安装GAMIT教程步骤汇总...
(一路遇见,一路再见) 全文共计2258字,图片共计1张 用心阅读控制在10分钟 --今日图文-- Gamit/gLOBK软件是一款高精度GNSS数据处理软件,目前支持GPS/BDS/GLONASS/ ...
- 使用qmeu-img创建虚拟机[创建虚拟机,虚拟机快照]
本文主要介绍创建虚拟机的一般过程. 一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件. 创建虚拟机镜像 要在一台host上跑起一个虚拟机一般需要 ...
最新文章
- python爬虫实例-python爬虫实例大全
- mysql日期加减计算
- 使用ToughMySQL为ToughRADIUS系统提供数据存储
- 三年级神奇电子计算机教案,人教版小学三年级下册信息技术教案
- 前端学习(2036)vue之电商管理系统电商系统之将本地的文件合并
- “让数据用起来”:解读数据中台必备的4个核心能力
- [转载]多维数组与Json格式的转化
- BarTender怎样同时打印自动日期和流水号?
- nginx反向代理解决跨域
- 为什么会存在乱码?什么是编解码?为什么会有这么多字符集?
- 中国雅虎首页改版彻底与口碑网剥离
- 成就:优秀的管理者成就自己,卓越的管理者成就他人(读后感)
- 报错:Unhandled exception
- Linux I/O编程 实验内容
- Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享
- 机器学习中的聚类算法有哪几种?
- 牛客网最全在线笔试、编程攻略(建议收藏)
- 知识图谱技术原理介绍
- 行为模式(模板模式命令模式备忘录模式)
- doraemon的python(大更新) 实例讲解 图书管理系统的配置和应用
热门文章
- 自动驾驶真的会来得那么快吗:关于自动驾驶的7个疑问
- 从技术上解读大数据的应用现状和开源未来
- 2018 年最引人注目的科学时刻,《科学》杂志选出14 张年度最佳科学照片
- 李彦宏:人工智能会让这个世界变得更美好吗?YES AI DO!
- 一张图:AI领域里各领风骚的BAT三巨头
- 有生之年,人工智能会给世界带来什么变化?这里是现代机器人之父Rodney Brooks关于未来的预言
- 坐在隔壁的00后同事,让我看到了职场“反内卷”的希望
- 微隔离的红蔷薇在湾区创见的舞台绽放
- 从小护士到微软中国总经理,逆风飞扬的“打工皇后”吴士宏的传奇人生
- 漫画:设计模式之 “工厂模式”