一直以来,脚本程序采用Shell语言进行开发是首选,但是为便于管理,提高开发效率本系统中所有脚本均采用面向对象的Python语言进行开发,以此来实现自动化运维的目的。
2. 相关技术
2.1 概述
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件相互协作完成具体工作。不同的组件实现不同的功能组件之间独立存在通过通信机制相互之间进行通信,进而为云平台提供服务。
这种组件式的开发方式,使得服务的提供方式更加灵活,用户可以根据自己的需要选择合适的服务组件进行安装[5]。
2.2 OpenStack云平台
⑴ 组件介绍
OpenStack组件主要包括Nova,Keystone,Glance,Horizon,Cinder,Swift等等。其中Keystone服务负责用户身份的认证,Glance服务负责管理服务端镜像,Nova服务负责分配与操作虚拟机,Horizon服务提供Web用户界面简化用户对平台的操作方式,Cinder服务提供云存储服务,Swift服务负责对象存储。
⑵ 服务核心
OpenStack服务以数据库为核心,服务组件的数据记录都存储在数据库中,各个组件之间通过Linux的通信软件进行通信,使组件间相互协作,提供OpenStack云平台管理服务。
⑶ 虚拟机分配
搭建好OpenStack云平台的控制结点后,在另一台计算机上安装Nova计算功能,充当计算结点,通过KVM虚拟化技术分配虚拟机,虚拟机可以通过SSH进行远程登录。
平台组件如图所示:
图2.1 各个组件间的通信图
在图2.1中,核心组件工作方式:Keystone服务对用户身份进行认证,通过引用Glance服务上的系统镜像,使用 Nova服务提供的接口创建虚拟机。这三个服务组件是整个平台中最关键的。安装完成后可以通过命令行方式创建及使用虚拟机。
2.3 LVM(逻辑卷管理)
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制[6]。
普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具。但这些方法只是权宜之计,未从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解。用户在无需停机的情况下可以方便地调整各个分区大小[7]。 OpenStack的云服务高可用性实践(3):http://www.youerw.com/jisuanji/lunwen_46812.html