初识 OpenStack

OpenStack是一个由NASA和Rackspace合作发起的开源云操作系统,它是一个可以控制整个数据中心的计算、存储、网络等资源的管理平台。OpenStack支持几乎所有类型的云环境,目标是提供实施简单、可大规模扩展、标准统一的云计算管理平台。

OpenStack系统由一些可以独立安装和配置的关键服务组成。这些服务根据需求者的需要组合起来一起工作,其中包括计算,身份认证,镜像,对象存储,仪表盘,块存储,网络,测量,部署和数据库服务等。OpenStack通过这些互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务都提供了相应的API集成起来很方便。

OpenStack

主要服务

OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。核心的OpenStack服务有以下一些:

  • 计算(Compute):Nova。OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑。

  • 身份服务(Identity Service):Keystone。为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。

  • 镜像服务(Image Service):Glance。是一套虚拟机镜像发现、注册、检索系统。

  • 对象存储(Object Storage):Swift。提供一种分布式、持续虚拟对象存储,具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。

  • 仪表盘 (Dashboard):Horizon。是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。

  • 网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。

  • 块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务。

  • 部署编排 (Orchestration):Heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。

  • 数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。

安装

安装OpenStack相对来说比较费劲,涉及到内容很多。我们还是通过github上的一个脚本来安装,以Ubuntu 14.04 LTS为例,使用OpenShit脚本,网上还有很多脚本可用比如Devstack、Fuel、OneStack、Stackops,有兴趣的可以搜搜。

  • 先来更新一下ubuntu。

    1
    2
    3
    $ sudo apt-get update
    $ sudo apt-get upgrade
    $ sudo reboot
  • 通过git来获取一下OpenShit,最好用root权限来试。

1
2
3
$ su root
$ git clone https://github.com/windworst/openshit.git
$ cd openshit
  • 修改配置文件setting.conf,将配置文件中的IP地址设置为本机的,这个是必须的。用户名密码根据自己的情况设定,不做修改也可以,系统运行会使用这个配置文件中的密码。

    1
    sudo vi setting.conf
  • 安装配置生效,需要的时间比较长,耐心等等。

    1
    2
    $ echo y | ./openshit.sh --all install #安装过程中需要选yes都用echo直接选着yes了。
    $ ./openshit.sh --all config #根据配置文件修改配置。

OpenStack

  • 查看安装结果。

    1
    2
    $source admin-env.sh
    $nova service-list
  • 打开浏览器,输入http://10.0.2.15/horizon(注意修改为本机IP或者直接用localhost),可以看到浏览器界面:

OpenStack

附录-Openshit命令

可以通过./openshit.sh等命令来对openstack各个组件进行操作。

  • 安装或卸载所有组件

./openshit.sh –all install/uninstall

  • 安装或卸载cinder[块存储]

./openshit.sh cinder install/uninstall

  • 安装或卸载 [图形界面管理]

./openshit.sh dashboard install/uninstall

  • 安装或卸载 [镜像管理]

./openshit.sh glance install/uninstall

  • 安装或卸载 [身份认证]

./openshit.sh keystone install/uninstall

  • 安装或卸载 [数据库]

./openshit.sh mysql install/uninstall

  • 安装或卸载 [网络服务]

./openshit.sh neutron install/uninstall

  • 安装或卸载 [计算]

./openshit.sh nova install/uninstall

  • 安装或卸载 [nova-network]

./openshit.sh nova-network linstall/uninstall

  • 安装或卸载 [消息队列]

./openshit.sh rabbitmq install/uninstall

  • 配置命令

./openshit.sh –all config

  • 清除

./openshit.sh –all clean