openstack是什么?
渣翻译:openstack是一个操控巨量计算,存储以及网络资源池的云操作系统,所有这些都能通过一个web接口的dashboard给予管理员操作并授权普通用户调度资源
原文:
What is OpenStack? OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
openstack从诞生到现在,陆陆续续发布了13个版本,依次ABCD...的首字母命名,现在最新的版本是M,Mitaka。
根据官方的新闻稿,OpenStack的第13个版本――Mitaka聚焦于可管理性、可扩展性和终端用户体验三方面。用比较通俗的话来说,Mitaka的三大特色分别是:
第一,云部署和云管理者更简便了。作为一个 云平台 ,用户最关心的一是部署,让云计算系统快速上线;二是管理方便,云计算系统建立后,方便管理那是对用户而言和吃饭睡觉一样重要的事情。
第二,可扩展性持续改进。用户如果要增加更多的应用,就需要更多的硬件,要求方便增加计算能力,这种可扩展性就凸显出来了。Mitaka版本中可以处理更大的负载和更为复杂的横向扩展。
第三,提升用户的体验。Mitaka版本表明,开源社区正在致力于提升云的用户体验,这些用户体验不仅包括云运营者的体验,还包括了那些正在开发,或是正在云资源上部署应用的终端用户的体验。
参考: http://www.soft6.com/news/201604/11/302379.html
比如openstackclient这个通用命令行工具,虽然还没有完全集成所有组件的命令,但是很大一部分操作通过openstackclient就能搞定,再也不用镜像用glance xxx,虚拟机用nova xxx这种独立的命令了,直接openstack image 或者openstack flavor xxx就OK了
关于openstack架构的文章
OpenStack的架构详解
http://os.51cto.com/art/201205/336386.htm
了解了openstack是什么以及发布的一些信息之后就简单上手了,如果还是对openstack没有一个直观的认识,觉得太抽象,那么可以借助诸如devstack,rdo等一键安装部署工具,快速的部署一套openstack,在简单的使用之后就可以着手手动的安装了,如果不手动安装一遍,那么总觉得不够透彻,不管是故障处理还是配置文件的配置,总会吃不准,所以第二部应该是安装
官方文档写得及其精致,参考,如下
Installation Guide for openSUSE Leap 42.1 and SUSE Linux Enterprise Server 12 SP1
Installation Guide for Red Hat Enterprise Linux 7 and CentOS 7
Installation Guide for Ubuntu 14.04 (LTS)
个人基于官方文档半翻译,半借鉴的文章,一定程度就是copy^_^,因为官方文档写得足够好了,参考
在centos7上安装openstack mitaka版本
http://youerning.blog.51cto.com/10513771/1769358
在安装的过程中自然不是一定一次性成功的,因为光是复制粘贴我都觉得看着有点眼花,遇到错误其实在一定程度上是好事,只有反复的对比相应的参数以及命令才能对其加深认识,再者很重要的一点就是,在安装前一定要有个全局的认识,不然出错了也不知道看哪个组件的日志,总得来说解决故障的两个方法就是,查看错误日志,以及google了。
过了安装的坎之后就是各组件的深入了解了。但是在此之前,应该首先了解各组件之间或者或openstack的通用技术,以及虚拟化。
虚拟化在一定意义上算得上云计算的核心吧。
了解虚拟化的什么呢?
虚拟化的实现方式
虚拟化工具
openstack的相关实现
下面是一些虚拟化相关文章
虚拟化解决方案大比拼 - 51CTO.COM
云计算:虚拟化技术―― 介绍
虚拟化技术概览
图解openstack-虚拟化与云服务
了解openstack的那些通用技术呢?
OpenStack的设计原则:项目之间通过RESTful API进行通信;项目内部通过,不同服务进程之间通过消息总线进行通讯
消息总线,消息队列
ORM(SQLAlchemy)以及数据库
RESTful API和WSGI
eventlet
openstack通用库
下面是一些相关文章
OpenStack消息队列AMQP基础知识
RabbitMQ从入门到精通
SQLAlchemy介绍――OpenStack的数据库开发基础
SQLAlchemy指南(tutorial)
RESTful与Openstack
RESTful API 设计指南
理解Python WSGI
Python高并发的网络编程库:eventlet
openstack nova 基础知识――eventlet
最后就是现在的核心项目
nova, neutron, swift, cinder, keystone, glance
关于它们的相关文章就不赘述了,推荐一本书,非常用心的一本书。
《Open Stack设计与实现》
当然了,更建议先看这一本书,其实看了这本书,上面很多知识都囊括在其中了。
至此,理论知识,部署经验基本上有了一定得储备了,那么下一步就是用户操作。其中包括,Dashboard,command-line,Python-SDK,HOT使用。
最好的文章一定在docs.openstack.org
参考: http://docs.openstack.org/user-guide/
官方文章好的不要不要的,所以这里也就不赘述了,中文相关的文章不是写得太片面就是不实时。
再就是维护管理,这可能也是对于运维工程师最重要的一步了。
这一部分主要着重与以下几个方面。
一: 对于各组件的维护,操作,故障处理。
二: 高可用
三: 生产环境操作
四: 安全
五: 配置优化
六: 架构设计
七: 网络
最后就是开发了。
一: API
二: 开发
总结:总得来说学习如何一样东西都是从浅到深的过程,但是怎么学,怎么从浅到深还是需要一个路线的,这里谈的是个人的学习路线,仅作参考。
openstack的官方文档实在是大而全,精致而又详细。所以不管作为参考资料还是学习资源都是最有价值的资源了。