openstack学习之知识准备

本文档旨在为OpenStack的学习提供必要的知识准备,鼓励读者根据个人兴趣选择深入学习的方向,利用丰富的在线资源进行自我提升。
列举一下个人学习openstack过程中涉及到的知识点,供同学们参考。了解这些知识,对学习openstack的代码有很大帮助。

python
openstack使用pthon开发的,所以pthon知识是必不可少的。python是一种脚本(python)语言,对于习惯了使用传统的编译型语言的同学,可以开始有点不适应,需要慢慢习惯。

python的学习:
1) 语法学习
这个是最简单的阶段,网上有很多教程,也有很多书籍可供参考。学习方法也很多,不同经验的人学习起来差别也比较大。如果是编程牛人,可能都不用一个时,就搞定了。

2) 学习标准库和第三方库的使用
python自带了非常多的标准库,基本涵盖了常用的功能。随python安装的手册(python manuals)对标准库有详尽的介绍。除了标准库,openstack中使用了大量的第三方库,为了掌握openstack的代码,也需要了解这些库的使用。每个openstack项目都有一个requirements.txt文件,列出了使用的第三方库。

对这些库的学习,可以边看openstack代码边学习。

3) 编写代码+阅读代码
实践永远是最重要的。阅读代码对提升水平也是大有帮助。推荐阅读标准库的实现代码。个人认为每种语言的标准库实现,都能充分展示该语言的特点,标准库的设计也基本都是大师手笔。最经典的例子当属C++的STL(标准模板库),代表了泛型编程(generic programming)的最高水平。

4) 总结python编程惯例
随着对python代码的逐渐熟悉,经验的逐渐积累,可以慢慢的总结出一些python编程的常用惯例(idioms),编程风格。这个阶段需要不断的总结反思,认识逐步深化。当然对牛人来说,可以略过了。

5)了解python的实现原理
深入学习python语言的工作原理,内部实现。学习cpython的代码。

6)超越python
到了这个阶段,基本上就不受编程语言的束缚了。超越语言,总结思想,以最合适的方式解决问题。难就难在什么是合适,需要经验的积累,系统的反思,才能领悟。当然到达这个水平,不一定要学python,学任何语言都没有问题,殊途同归。

这个学习过程不仅适用于python,任何语言都可以。这个学习过程不是线性的过程,而是反复迭代的过程,认识水平也是循环上升。有一天我们可能也会感受到“众里寻他千百度,默认回首那人就在灯火阑珊处”。大道至简!

虚拟化
虚拟化技术是Iaas的核心技术。虚拟化技术包含了3个方面:服务器虚拟化,网络虚拟化和存储虚拟化。

服务器虚拟化的核心就是hypervisor。hypervisor可以再一台机器上模拟出多台机器,每台机器有自己独立的CPU,内存及IO设备。
hypervisor的实现方式:
模拟方式(emulation):解释方式执行指令。代表项目是bochs.
direct execution: 普通指令直接在宿主CPU上执行,特权指令需要特殊处理。代表项目是qemu(没有kvm加速),早期vmware的产品。
硬件辅助 + direct execution: 普通指令直接在宿主CPU上执行,特权指令会自动陷入到hypervisor中(由硬件来实现)。代表项目qemu + kvm, vmware的各种产品。

网络虚拟化的核心是关键就是虚拟交换机(virtual ethernet bridging or VEB)。在博文《openstack学习之neutron_架构》中有所介绍。

存储虚拟化
主流技术有传统的SAN(使用FibreChannel, iSCSI, FCoE等协议)和各种分布式存储系统。openstack支持SheepDog,GlusterFS等。

libvirt
libvirt是有redhat开发的一个虚拟化管理统一接口。qemu,xen和vmware esxi都支持libvirt管理接口。opensack中对qemu(kvm)和xen的管理都是通过libvirt实现。libvirt主要通过一个xml文件管理虚拟资源。具体请参考http://libvirt.org/

REST
rest是目前主流的web service实现方式,opensack api都是采用rest方式实现。python中针对web应用定义了wsgi规范,openstack中的rest实现都遵照了wsgi规范来实现。在博文《openstack学习之各种API》中对rest api有所介绍。

rpc与amqp
openstack中的大多数服务时间都是通过rpc来通信,rpc在openstack中的作用至关重要。openstack中的rpc是通过消息系统实现的(采用AMQP协议)。关于RPC的实现在博文《openstack学习之RPC》《openstack学习之RPC服务实现分析》有所介绍。

db访问
openstack中db访问使用SQLAlchemy。SQLAlchemy是针对python的OR映射工具(Object Relational Mapping),类似于Java中的JAP(JPA是一个规范,需要实现,如hibernate)


大家可以针对自己感兴趣的点深入学习,网上有很多参考资料。

一、Virtual Box的安装 1、安装Virtual Box 2、 Virtual Box网络设定 3、 安装操作系统 二、 环境预配置 1、 网路设置 2、 分别修改三个虚拟机的主机名 3、 主机地址映射配置 4、 禁用selinux 5、 CentOS6本地yum源配置 注:先加载镜像 6、 NTP安装服务 三、 本地源制作 1. Centos6.6本地base、extra源制作 2. 本地base、extra源制作 3. 本地epel、openstack源制作 4. ftp服务安装 5. 修改yum源仓库指向文件 四、 keystone安装(上) 1. 安装Mysql服务 2. 安装rabbitmq消息队列 3. 为nova,neutron,cinder.heat创建用户并授权 五、 keystone安装(下) 1. 创建库和授权 2. 创建库和授权 3. 生成PKI认证所需要的证书文件 4. 同步keystone数据库,生成keystone所需的表 5. 启动keystone服务和校验服务状态 6. 创cron任务,配置定期清理过期的token 7. keystone创建user,tenant,role和endpoint 六、 Glance安装 1. Glance的安装 2. 配置glance-api服务 3. 配置glance-registry服务 4. 启动并校验glance服务 57 七、 Nova安装 59 1. nova的安装与配置 59 2. 安装和配置nova 60 八、 Neutron安装 63 1. neutron的安装与配置 63 2.Neutron使用二层组件 66 3. 配置OVS二层插件 67 4. 配置nova支持neutron 67 5. 启动neutron-server服务 68 6. 重启nova服务和neutron联动 69 7. 重启neutron-server 69 8. controller0上校验neutron的配置 69 九、 Horizon安装 71 1. Horizon组件的安装与配置 71 十、 Compute0安装nova 74 1. nova的安装与配置(compute0-10.20.0.30) 74 2. nova的安装与配置 75 十一、 Compute0安装neutron 78 1. neutron的安装与配置(compute0) 78 十二、 Network0安装neutron 83 1. neutron的安装与配置 83 十三、 新建网络 91 1. 配置安全组规则 91 2. 新建网络 92 3 .创建云主机 99 4 .分配浮动ip 101 十四、 心得体会 107
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值