OpenStack实战(一)
OpenStack作为当前发展势头迅猛的云计算开源项目,去年进行了一些了解,现在有空回来进行一些补充记录,当时实战的版本是那会最新版本,当然现在已经更新了好几版了,不过还是那句话“这些丝毫不影响,了解这个事物的本质,继续...”
作为一个对OpenStack是何物完全不知道,对“云计算”也是仅仅了解泛泛的我,要啃OpenStack这个骨头,先得了解OpenStack到底是什么,他提供了什么功能,他能为我做什么,如果将咱们自己的存储设备为作为其存储后端,如何快速解决以上问题。先从了解OpenStack开始,进行初探。
从OpenStack的官网上看到,它开发了一个devstack的东东,给广大初识OpenStack的亲们带来了服音。因为OpenStack安装和部署比较麻烦,大多数安装下来可能需要数周,对于初认openstack的开发人员,所以可以使用devstack,快速部署一个openstack的环境用于入门。下面就以安装devstack入手来谈谈。
一、安装
1.1 安装ubuntu操作系统。
- 因为centos6.0版本太低,不支持openstack,官方说明上标明centos6.5上安装openstack有操作文档,但在docs.openstack.org上找到的文档是基于centos7的(也许有centos6.5的旧文档),另外,ubuntu官方关于云计算及openstack也有大量的说明及帮助信息,基于此,最终选择了ubuntu操作系统。
- 初次使用ubuntu系统,安装的是目前最新版本ubuntu-14.04.1-server-amd64(intel/amdx86_64)版本。
- 安装时,未注意,没有设置root密码,只创建了用户fy及密码。开机后,su passwd root,设置root密码后,通过SSH使用root用户无法直接登录,必须使用fy用户,登录后,再切换到root用户(估计是SSH考虑到安全性,将root登录禁了,没有看相关配置文件确认这个)。
- 系统信息:
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/Linux
1.2 下载devStack
- devstack是什么。因为OpenStack安装和部署比较麻烦,对于初认openstack的开发人员,由于devstack提供了很多openstack可配置项,所以可以使用devstack,快速部署一个openstack的环境用于入门。devstack提供了一个脚本,直接执行脚本,直接完成安装。所以,开始选择了devstack来了解什么是openstack。http://docs.openstack.org/developer/devstack/
- 使用apt-get install git。(apt-get相当于centos的yum)
- git clone https://git.openstack.org/openstack-dev/devstack(openstack项目在GitHub上维护,使用git命令下载,git类似于svn)
- 使用git clone第一次下载失败,报错(error: RPC failed; result=56, HTTP code = 200iB | 1024 bytes/s),网上查可能是git buffer不够?第二次尝试下载成功。当前目录下devstck目录,共7.5M。
- 执行./stack.sh,报错。不允许使用root帐户来操作。必须使用” /root/devstack/tools/create-stack-user.sh”脚本,来创建一个non-root用户。脚本执行后,在/opt下创建了一个stack用户(/home下,汗。。。)。
- 切换到stack用户安装。cp -r devstack /opt/stack; su stack; ./stack.sh。输入几个密码(大概是一些组件,如数据库和openstack核心组件的访问密码),开始刷刷刷安装。
1.3 安装devstack
帮助1:执行./stack.sh时,中间遇到过几次报错,打开报错的信息中指向的文件,提示权限不够,重新切换到root用户后,执行create-stack-user.sh;su stack;./stack.sh通过了。
帮助2:执行./stack.sh时,由于需要下载很多组件,如果网速比较弱弱,可能会下载超时,执行失败,可尝试重新执行该命令。
- devstack安装的主要组件
a) python组件、mysql、rabbit等。
b) openstack组件;
c) 其它依赖库。
1.4 重启系统恢复devstack
openstack各模块及依赖的服务并未开机自启,因此重启系统无openstack无法使用,因此,需要启动所有依赖的服务(方法待调研),或者重新执行./stack.sh。
帮助:中间遇到过UI无法访问的情况,后来执行多次./rejoin-stack.sh后,UI可以访问了,具体无法访问的原因,及解决方法是否与rejoin-stack.sh脚本有关,尚不清楚。
1.5 centos6.5下安装
未成功,未研调原因。因此,建议选择以上操作系统,安装会比较顺利。
二、初探openstack功能
openstack最为主要的功能都是围绕创建虚拟机实例服务的,其核心项目,都是为了提供更多功能用于维护及管理虚拟机实例。从WEB页面提供的功能来看,他将功能主要分为了三类:项目、管理员、身份。下面按照我认识本系统的顺序来说说这几类功能。
devstack是的目的是用于给开发人员初识openstack,所以使用devstack搭建的openstack系统,集成了openstack的主要功能,非全部功能的集合。另外,通过UI操作的所有配置,如创建的虚拟机,并未写入配置文件,所以重启后,配置不再生效。
2.1 项目
使用为本项目分配的配额来管理虚拟机实例。主要有以下功能。
2.1.1 镜像(Image):Glance
该项目在openstack中,通过镜像这个模块的方式,提供其功能。所谓镜像,即虚拟机的一个软件系统。
帮助:对于该功能的理解,在我们使用vmware时,创建虚拟机是先一步步指定硬件,再设置启动盘的软件镜像。而openstack创建虚拟机的思路是,先创建虚拟机的软件系统镜像,再指定该镜像要启动几个虚拟机。启动虚拟机时再配置其硬件环境。
该项目包括:
- 创建、删除、查看镜像的功能;
- 其重要功能就是运行镜像,即启动云主机,即创建一个虚拟机实例,在此可以指定虚拟机的硬件配置,包括内存、CPU核数、磁盘大小、磁盘类型,如云硬盘等。
2.1.2 实例(即虚拟机)
运行镜像,即启动云主机后,一台虚拟机即开始按照指定的硬件及软件进行创建,创建完虚拟机后,可以实例模块,看到此设备,并可对此设备进行一些操作。
2.1.3 云硬盘
1、云硬盘:
a) 空白云硬盘:openstack默认使用lvm创建一个vg,用于创建云硬盘,选择空白云硬盘,指定云硬盘大小后,会在vg上创建一个指定大小的lv,做为云硬盘。
b) 镜像:选择openstack中创建的镜像做为云硬盘,那么会将镜像安装到云硬盘中,再主机一旦选择启动设备为该云硬盘,那么即可从该镜像的系统启动。
c) 云硬盘:选择已存有数据的云硬盘创建新的云硬盘,相当将选择的云硬盘的数据同步一份到新建的云硬盘上。
2、云硬盘类型:
创建云硬盘时指定的是一个云硬盘类型,即一个虚拟的组,该组中的实际块设备可以是一个vg,也可是多个vg,即可以随时动态扩展。选择了云硬盘类型并且指定了云硬盘大小后,会根据一定的策略创建一个指定大小lv,这时云硬盘对应的物理设备就是lv。
2.2 身份(Identity):Keystone
openstack系统可以供多个用户同时使用(即不同用户创建属于自己的虚拟机),不同用户可以进行的操作时,权限及可以分配的配额限制也有可能不同,所以,需要提供一个叫做Keystone的模块,用来管理用户的权限角色及可使用配额。
项目:
创建不同的项目,并设置该项目的配额,即可以创建多少个镜像,多少实例,多少云硬盘,可以使用多少内存,等等。
用户:
创建不同用户,定义该用户的角色(即它可以涉及到的管理权限)。如普通_member_或admin,同时指定该用户它可管理的项目。
综上,使用openstack提供的任意功能时,都需要以用户的身份登录到WEB页面中。多个用户共同使用同一系统,需要合理分配物理资源,及管理权限。那么,项目就是用来负责管理配额,即划分资源。项目中的用户,可拥有不同权限来使用这些资源。一个用户也可管理多个项目,但有一主项目,即该用户登录系统后,默认显示的项目。
2.3 管理员
身份(Identity)中提到,每个用户都有自己的角色,如admin,即管理员。他除了可以管理自己的项目(如在项目分配的配额内创建镜像、实例等),还可以管理openstack系统。
1、 查看所有项目使用了openstack物理环境的多少物理资源(内存、磁盘空间等)
2、 查看虚拟机管理器的使用情况。所有项目创建的虚拟机都是由openstack的虚拟机管理程序统一管理的,查看虚拟机管理器的虚拟内核(CPU核数),内存,磁盘空间使用情况。
3、 查看系统信息:
a) 运行了哪些服务,即使用了哪些核心项目(模块)。
b) 计算服务运行状态(待研究细节)。
c) 块存储服务运行状态(待研究细节)。
4、 管理所有镜像、实例、云主机类型、云硬盘、主机集合、默认值等。
2 cinder
该模块是可向openstack提供云硬盘,即虚拟机真正存放数据的物理设备,也是我们后续需要重点关注和使用的模块。
二、OpenStack主要功能概述
完成了以上两步后,对于OpenStack有了初步了解,那么,现在总结一下其主要功能及模块。
openstack最终就是要给用户提供虚拟机服务,减少实体机的安装维护成本,其所有功能都是围绕这个目标服务的,都是为了使该目标的使用更为丰富。
以下是主要模块的功能:
模块/项目 |
模块/项目名 |
功能 |
计算Compute |
Nova |
即虚拟机,也就是openstack的终极目标。 |
镜像Image |
Glance |
给nova提供镜像服务,即管理虚拟机的软件镜像。 |
块存储Block |
Cinder |
提供云硬盘给nova,即为虚拟机提供真正的物理存储空间。 |
身份Indentity |
Keystone |
提供所有组件的认证,即所有功能的使用必须经过认证。 |
网络管理Network |
Neutron |
给nova提供网络支持,即管理虚拟机IP地址等。 |
UI界面Dashboard |
Horizon |
提供WEB页面管理功能,即openstack的管理系统。 |
…… |
OpenStack实战(一)的更多相关文章
- openstack实战部署
简介:Openstack系统是由几个关键服务组成,他们可以单独安装,这些服务根据你的云需求工作在一起,这些服务包括计算服务.认证服务.网络服务.镜像服务.块存储服务.对象存储服务.计量服务.编排服务和 ...
- about云资源汇总指引V1.4:包括hadoop,openstack,nosql,虚拟化
hadoop资料 云端云计算2G基础课程 (Hadoop简介.安装与范例) 炼数成金3G视频分享下载 虚拟机三种网络模式该如何上网指导此为视频 Hadoop传智播客七天hadoop(3800元)视频, ...
- 零基础学习openstack【完整中级篇】及openstack资源汇总
1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事 ...
- openstack部署安装
OpenStack实战 准备环境 controller 10.0.0.11 compute1 10.0.0.31 常用服务端口 mariadb:3306 memcached:11211 消息队列:56 ...
- vmware的硬件选项里有关于虚拟化引擎的选项(虚拟机支持硬件虚拟化)
前一阵子在使用陈沙克老师的博客安装devstack的时候就有一个疑问: 使用vmware创建虚拟机时,硬件选项里有关于虚拟化引擎的选项到底都代表了什么意思? Intel VT-x/EPT和AMD-V ...
- 2019年最新老男孩高性能Web架构与自动化运维架构视频教程
课程目录L001-老男孩架构15期-Web架构之单机时代L002-老男孩架构15期-Web架构之集群时代L003-老男孩架构15期-Web架构之dnsL004-老男孩架构15期-Web架构之缓存体系L ...
- 网易OpenStack部署运维实战
OpenStack自2010年项目成立以来,已经有超过200个公司加入了 OpenStack 项目,目前参与 OpenStack 项目的开发人员有 17,000+,而且这些数字还在增加,作为一个开源的 ...
- OpenStack 部署运维实战
http://www.ibm.com/developerworks/cn/cloud/library/1408_zhangxl_openstack/#icomments 本文为您介绍了网易公司基于 O ...
- openStack开源云repo db local or on-line 实战部署之Ruiy王者归来
preface/pre,获取OpenStack核心模块组件及其子组件包(当前仅针对centos6*)及其依赖包 eg,picture
随机推荐
- ubuntu14.04 wifi驱动安装
重装linux后,一直搜不到wlan0,无法启动wifi,经过重重努力,终于成功,在此简单记录一下. 1. 查看网卡类型: ~$ lspci -nn -d 14e4: :]: Broadcom Cor ...
- oracle 树形SQL
oracle树形sql查询实例分析 通过此SQL语句 [sql] select * from tree 查看原始数据如下: 我们要想得到如下的一个树形查询结果如下图所示(包含 R ...
- 新找到的一款字体 fantasque-sans-mono
http://www.ipreferjim.com/2015/03/your-ides-font-matters-fantasque-sans-mono/
- tomcat服务器不输出访问日志
有时候一个WEB服务作为接口部署在tomcat下,因为访问很频繁,导致/var/log/tomcat7下的访问日志急剧膨胀,影响服务器的性能. 在这里我的方法是关闭访问日志,关闭方法为将访问日志的输出 ...
- windows远程桌面端口修改
远程桌面服务所使用的通信协议是Microsoft定义RDP(Reliable Data Protocol)协议,RDP协议的TCP通信端口号是3389.为了安全起见,我们常需要更改其端口. 运行注册表 ...
- 【转】SQL Server 查询表的记录数(3种方法,推荐第一种)
--SQL Server 查询表的记录数 --one: 使用系统表. SELECT object_name (i.id) TableName, rows as RowCnt FROM sysindex ...
- (转)C# SSL-X509使用
X.509 给出的鉴别框架是一种基于公开密钥体制的鉴别业务密钥管理.一个用户有两把密钥:一把是用户的专用密钥(简称为:私钥),另一把是其他用户都可得到和利用的公共密钥(简称为:公钥).该鉴别框架允许用 ...
- vmstat 命令详解 转载
vmstat 命令详解 procs:r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程 memoyswap-->现时可用的交换 ...
- Android——android:gravity 和 android:layout_Gravity
LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内 ...
- 日期:Date
API--- java.util.Date:日期类,月份从0-11: 日期对象和毫秒值之间的转换. 1,日期对象转成毫秒值.Date类中的getTime方法. 2,如何将获取到的毫秒值转成具体的日期呢 ...