OpenStack做为当前发展势头迅猛的云计算开源项目,去年进行了一些了解,如今有空回来进行一些补充记录,当时实战的版本是那会最新版本,固然如今已经更新了好几版了,不过仍是那句话“这些丝绝不影响,了解这个事物的本质,继续...”python
做为一个对OpenStack是何物彻底不知道,对“云计算”也是仅仅了解泛泛的我,要啃OpenStack这个骨头,先得了解OpenStack究竟是什么,他提供了什么功能,他能为我作什么,若是将我们本身的存储设备为做为其存储后端,如何快速解决以上问题。先从了解OpenStack开始,进行初探。mysql
从OpenStack的官网上看到,它开发了一个devstack的东东,给广大初识OpenStack的亲们带来了服音。由于OpenStack安装和部署比较麻烦,大多数安装下来可能须要数周,对于初认openstack的开发人员,因此可使用devstack,快速部署一个openstack的环境用于入门。下面就以安装devstack入手来谈谈。git
1、安装sql
root@ubuntu-fy:~# uname -a数据库
Linux ubuntu-fy 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linuxubuntu
帮助1:执行./stack.sh时,中间遇到过几回报错,打开报错的信息中指向的文件,提示权限不够,从新切换到root用户后,执行create-stack-user.sh;su stack;./stack.sh经过了。后端
帮助2:执行./stack.sh时,因为须要下载不少组件,若是网速比较弱弱,可能会下载超时,执行失败,可尝试从新执行该命令。centos
a) python组件、mysql、rabbit等。安全
b) openstack组件;网络
c) 其它依赖库。
openstack各模块及依赖的服务并未开机自启,所以重启系统无openstack没法使用,所以,须要启动全部依赖的服务(方法待调研),或者从新执行./stack.sh。
帮助:中间遇到过UI没法访问的状况,后来执行屡次./rejoin-stack.sh后,UI能够访问了,具体没法访问的缘由,及解决方法是否与rejoin-stack.sh脚本有关,尚不清楚。
未成功,未研调缘由。所以,建议选择以上操做系统,安装会比较顺利。
2、初探openstack功能
openstack最为主要的功能都是围绕建立虚拟机实例服务的,其核心项目,都是为了提供更多功能用于维护及管理虚拟机实例。从WEB页面提供的功能来看,他将功能主要分为了三类:项目、管理员、身份。下面按照我认识本系统的顺序来讲说这几类功能。
devstack是的目的是用于给开发人员初识openstack,因此使用devstack搭建的openstack系统,集成了openstack的主要功能,非所有功能的集合。另外,经过UI操做的全部配置,如建立的虚拟机,并未写入配置文件,因此重启后,配置再也不生效。
使用为本项目分配的配额来管理虚拟机实例。主要有如下功能。
该项目在openstack中,经过镜像这个模块的方式,提供其功能。所谓镜像,即虚拟机的一个软件系统。
帮助:对于该功能的理解,在咱们使用vmware时,建立虚拟机是先一步步指定硬件,再设置启动盘的软件镜像。而openstack建立虚拟机的思路是,先建立虚拟机的软件系统镜像,再指定该镜像要启动几个虚拟机。启动虚拟机时再配置其硬件环境。
该项目包括:
运行镜像,即启动云主机后,一台虚拟机即开始按照指定的硬件及软件进行建立,建立完虚拟机后,能够实例模块,看到此设备,并可对此设备进行一些操做。
一、云硬盘:
a) 空白云硬盘:openstack默认使用lvm建立一个vg,用于建立云硬盘,选择空白云硬盘,指定云硬盘大小后,会在vg上建立一个指定大小的lv,作为云硬盘。
b) 镜像:选择openstack中建立的镜像作为云硬盘,那么会将镜像安装到云硬盘中,再主机一旦选择启动设备为该云硬盘,那么便可从该镜像的系统启动。
c) 云硬盘:选择已存有数据的云硬盘建立新的云硬盘,至关将选择的云硬盘的数据同步一份到新建的云硬盘上。
二、云硬盘类型:
建立云硬盘时指定的是一个云硬盘类型,即一个虚拟的组,该组中的实际块设备能够是一个vg,也但是多个vg,便可以随时动态扩展。选择了云硬盘类型而且指定了云硬盘大小后,会根据必定的策略建立一个指定大小lv,这时云硬盘对应的物理设备就是lv。
openstack系统能够供多个用户同时使用(即不一样用户建立属于本身的虚拟机),不一样用户能够进行的操做时,权限及能够分配的配额限制也有可能不一样,因此,须要提供一个叫作Keystone的模块,用来管理用户的权限角色及可以使用配额。
项目:
建立不一样的项目,并设置该项目的配额,便可以建立多少个镜像,多少实例,多少云硬盘,可使用多少内存,等等。
用户:
建立不一样用户,定义该用户的角色(即它能够涉及到的管理权限)。如普通_member_或admin,同时指定该用户它可管理的项目。
综上,使用openstack提供的任意功能时,都须要以用户的身份登陆到WEB页面中。多个用户共同使用同一系统,须要合理分配物理资源,及管理权限。那么,项目就是用来负责管理配额,即划分资源。项目中的用户,可拥有不一样权限来使用这些资源。一个用户也可管理多个项目,但有一主项目,即该用户登陆系统后,默认显示的项目。
身份(Identity)中提到,每一个用户都有本身的角色,如admin,即管理员。他除了能够管理本身的项目(如在项目分配的配额内建立镜像、实例等),还能够管理openstack系统。
一、 查看全部项目使用了openstack物理环境的多少物理资源(内存、磁盘空间等)
二、 查看虚拟机管理器的使用状况。全部项目建立的虚拟机都是由openstack的虚拟机管理程序统一管理的,查看虚拟机管理器的虚拟内核(CPU核数),内存,磁盘空间使用状况。
三、 查看系统信息:
a) 运行了哪些服务,即便用了哪些核心项目(模块)。
b) 计算服务运行状态(待研究细节)。
c) 块存储服务运行状态(待研究细节)。
四、 管理全部镜像、实例、云主机类型、云硬盘、主机集合、默认值等。
该模块是可向openstack提供云硬盘,即虚拟机真正存放数据的物理设备,也是咱们后续须要重点关注和使用的模块。
2、OpenStack主要功能概述
完成了以上两步后,对于OpenStack有了初步了解,那么,如今总结一下其主要功能及模块。
openstack最终就是要给用户提供虚拟机服务,减小实体机的安装维护成本,其全部功能都是围绕这个目标服务的,都是为了使该目标的使用更为丰富。
如下是主要模块的功能:
模块/项目 |
模块/项目名 |
功能 |
计算Compute |
Nova |
即虚拟机,也就是openstack的终极目标。 |
镜像Image |
Glance |
给nova提供镜像服务,即管理虚拟机的软件镜像。 |
块存储Block |
Cinder |
提供云硬盘给nova,即为虚拟机提供真正的物理存储空间。 |
身份Indentity |
Keystone |
提供全部组件的认证,即全部功能的使用必须通过认证。 |
网络管理Network |
Neutron |
给nova提供网络支持,即管理虚拟机IP地址等。 |
UI界面Dashboard |
Horizon |
提供WEB页面管理功能,即openstack的管理系统。 |
…… |