OpenStack云第二天

本文涉及的产品
对象存储 OSS,20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:

OpenStack云第二天

在OpenStack第一天文档翻译后,丁丁努力坚持每晚抽时间翻译OpenStack官方网站提供的安装与部署指南,本文翻译自官方安装与部署指南的前四章内容,前四章内容主要是对OpenStack整体安装步骤以及设计搭建环境进行概述,并未提及具体安装步骤,但对环境的设计与构思以及安装需求还是需要大家了解的。希望尽快写完第三天文档(安装认证服务)。

目录:

一、安装步骤概述

二、OpenStack术语

三、OpenStack结构

四、安装环境构思

一、走马看花-安装OpenStack预览

OpenStack Compute与Image服务结合就可以通过REST APIs访问虚拟服务器与镜像,Identity服务为OpenStack所有服务提供通用认证服务。如果你需要安装控制面板就必须有Identity服务的支持。OpenStack Object Storage服务不就提供了虚拟镜像的存储方式,更是一种基于云的存储系统,通过REST API我们可以保存、还原对象数据比如镜像或视频等等。我们先从Identity开始然后是Image与Compute服务,同时会有部署对象存储的话题。

主要有这么一些步骤:

    1.OpenStack目前支持平台预览:Red Hat Enterprise Linux, Scientific Linux, CentOS, Fedora, Debian, Ubuntu。

    2.安装Identity服务。

    3.配置Identity服务。

    4.安装镜像服务(Glance)。

    5.配置镜像服务

    6.安装Compute(Nova)。

    7.安装环境假设。

    8.配置Compute。

    9.使用MySQL创建并初始化Compute数据库。

    10.添加镜像。

    11.安装对象存储(Swift)。

    12.安装OpenStack控制面板(Dashboard)。

    13.通过控制面板添加密钥对。

    14.通过控制面板启动镜像并检验整个安装过程。

Compute与Image安装需求

硬件:OpenStack组件适用于标准的硬件设备。以下为满足Compute、Image、Object Storage服务所需最低配置要求:

2

操作系统:OpenStack当前有以下操作系统发行版本的软件包,CentOS,Debian,Fedora,RHEL,Ubuntu。软件由社区维护,可参考http://wiki.openstack.org/Packaging.

数据库:OpenStack Compute需要访问PostgreSQL或MySQL数据库,在安装OpenStack Compute的过程中你需要安装这样的数据库。Object Storage,容器与账户服务需要使用SQLite。

权限:需要使用root或拥有sudo权限的用户去安装OpenStack Compute,Image Service以及Object Storage。

NTP协议:你必须安装一个时间同步程序如NTP,在云环境中服务器节点间保持时间同步非常重要。

Compute网络规划:

为了是管理员了解访问APIs与虚拟机所需网络资源与IP规划,本节将为大家提供网络规划的建议。至少千兆网络是必须的。这里展示一下单个服务器的网络配置。

OpenStack Compute网络可以使用扁平式网络,DHCP以及VLAN,运行nova-network的服务器建议配置双网卡。

管理类网络设计:这个网络用来在云架构中不同服务器直接相互通讯,建议可以容纳255台主机的IP规划(CIDR/24)。

公共网络设计:这个网络为外网提供连接使用,互联网用户可以通过这些IP访问云服务。建议设计8个IP。

虚拟网络设计:为虚拟机设计私有IP地址。建议CIDR/24。

安装NTP

保持云中多台主机的时间同步,你需要安装NTP软件,在云环境的多节点中,以下为服务器配置的参考模版。

    1.安装软件

$ sudo yum install –y ntp

    2.配置服务端:在云控制节点上通过修改ntp.conf配置NTP服务器,然后启动服务。(原文中未设置服务端的具体设置,可google参考相关资料)

$ sudo service ntpd start

$ sudo chkconfig ntpd on

    3.配置NTP客户端,是compute节点与云控制节点同步时间,并将以下命令作为计划任务定期执行。

# ntpdate‘服务器IP’

# hwclock  -w

二、OpenStack术语

版本名

每一份OpenStack发行版本都有一个版本名称,版本名称按字母顺序增加(如:Diablo的下一个版本是Essex)。这些发行版本也有相应的版本号,但这个版本号不同于OpenStack Compute,OpenStack Object Storage的版本号,以下为版本名称列表:

OpenStack发行版本

从Cactus开始,OpenStack修改为六个月的开发周期,Folsom预计在2012年10月发布。

代码名称

每个OpenStack服务有一个代码名称,如镜像服务(Image Service)代码名称为Glance。以下为全部代码名称列表:

OpenStack Compute(代码名称:Nova)

OpenStack Networking(代码名称:Quantum)

OpenStack Object Storage(代码名称:Swift)

OpenStack Block Storage(代码名称:Cinder)

OpenStack Identity(代码名称:Keystone)

OpenStack Image Service(代码名称:Glance)

OpenStack Dashboard(代码名称:Horizon)

代码名称可以用来反应配置文件与命令工具的名称,如:认证服务(Identity Service)的配置文件名称为keystone.conf。

OpenStack服务与Linux服务

在Linux概念中,一个服务(也被称为守护进程)表示运行在后台监听特定端口并响应服务请求的单个程序。而OpenStack服务则表示的是若干Linux服务的集合,一个OpenStack服务需要开启多个Linux服务。如nova-compute与nova-scheduler两个Linux服务负责实施Compute服务。OpenStack还需要依赖与第三方的服务,如数据库(MySQL)以及消息服务(RabbitMQ、Qpid)。

本文档中,我们使用服务来表示底层的Linux服务以及高层的OpenStack服务。你需要通过上下文判断我们所说的服务是OpenStack服务(如:Image)还是Linux服务(如:glance-api)。

存储:对象,块,文件

许多云计算解决方案都要求使用远程存储。而存储的解决方案一般分为三类:对象存储、块存储以及文件存储。

当然有些存储解决方案同时支持多中类型。如:NexentaStor支持块存储与文件存储,GlusterFS支持文件存储与对象存储,Ceph Storage支持对象存储、块存储以及文件存储。

对象存储

在OpenStack中对象存储服务为Swif。

相关的概念:Amazon S3,Rackspace Cloud Files,Ceph Storage。

对于对象存储,所有的文件通过均HTTP接口展现。客户端在用户层上访问对象存储,操作系统并不清楚用户在使用的是远程存储。在OpenStack中,Object Storage提供了对象存储的功能。用户通过HTTP请求访问和修改文件。由于对象存储提供的数据访问接口是一种底层的抽象,所以人们常常会在对象存储的基础上构建基于文件的应用程序。例如,OpenStack Image Server就可以配置使用Object Storage作为后端存储。从对象存储提供HTTP接口后,它的另一个应用是作为静态网站内容(如:图片、多媒体文件等)的内容分发网络(CDN)解决方案。

块存储(SAN)

在OpenStack中提供块存储的是nova-volume。

相关概念:Amazon Elastic Block Store(EBS),Ceph RADOS Block Device(RBD),iSCSI

对于块存储,文件通过计算机底层总线展现如SCSI或ATA接口,这些接口可接入网络。块存储是SAN(存储区域网络)的同义词。客户端通过操作系统设备层访问数据:用户像挂载本地磁盘一样挂载远程设备(Linux中挂载命令为mount)。在OpenStack中,nova-volume服务提供了该项功能。

因为是作为本地磁盘加载,所以终端用户需要创建分区并格式化这些设备。这种设备同时仅可被单个用户挂载使用,所以块存储无法用来在虚拟机实例间作为共享数据之用。

文件存储(NAS)

OpenStack不提供文件存储的支持。

相关概念:NFS,Samba/CIFS,GlusterFS,Dropbox,Google Drive

对应文件存储,文件通过分布式的文件系统协议展现。文件存储与NAS(网络附加存储)是同义词。客户端通过操作系统中的文件系统层面访问数据:用户需要挂载远程文件系统访问数据。文件存储的例子有NFS与GlusterFS。操作系统需要安装适当的软件来访问远程文件系统。

目前,OpenStack不支持该类型的存储。但Gluster Storage connector for OpenStack可以使得OpenStack镜像服务使用GlusterFs文件系统作为后端存储。感兴趣的朋友可以参考:http://gluster.org/community/documentation//index.php/OSConnect

三、OpenStack结构

你可以把OpenStack Compute理解为结合现有Linux技术构建云计算环境的工具箱。

以下我们通过图例说明构建OpenStack Compute云环境的基础技术。圆形表示构成OpenStack Compute的Linux服务,矩形表示外部组件(不属于OpenStack项目),实线表示OpenStack组件与外部组件间的交互,虚线表示外部组件之间的交互。所有组成OpenStack Compute的服务都与后端消息队列(如:RabbitMQ,Qpid)以及后端数据库(如:MySQL)交互,这种交互图中没有连线。同时其他的一些非必须的外部组件技术同样不在该图示中展示,如:nova-api,OpenStack Identity以及OpenStack Image服务。

方案1:

方案2:

如图所示,多数外部组件可以有很多替代产品。

技术与软件:

技术与软件

nova-compute

nova-compute服务依靠虚拟化驱动管理虚拟机。默认驱动为libvirt,可以驱动KVM,但libvirt同样可以驱动其他hypervisor技术。如果你需要使用Xen云平台或XenServer,则Xen虚拟化技术使用单独的驱动。Open-iscsi用来挂载远程块设备,也被称为卷。Open-iscsi将远程设备当作与本地设备一样使用。

nova-network

nova-network服务依赖于一些Linux网络技术,它使用Linux桥接技术来连接虚拟机与物理主机。如果是运行在VLAN网络模式,这些桥设备可以通过Linux VLAN技术相关联。iptables负责安全策略实施与NAT功能。DNSmasq用来快速部署DNS服务器并为虚拟机实例分配IP地址、DNS等网络参数。

在未来的OpenStack发行版本中,nova-network的功能将被独立称为OpenStack的一个独立项目,代码名称为Quantum。

译者再次备注一下,OpenStack提供的手册文档是2012年4月31日,而目前根据OpenStack官网信息显示OpenStack Networking已经是一个独立的项目了。

nova-volume

默认,nova-volume服务使用LVM创建和管理本地卷,并使用IET或tgt通过iSCSI方式发布出去。nova-volume同样可以配置使用其他基于iSCSI的存储技术。

未来的OpenStack发行版本中,nova-volume的功能将被独立为OpenStack项目,代码名称为Cinder。

openstack-dashboard

openstack-dashboard是基于Django的应用程序,它默认运行在Apache Web服务器上。你可以使用memcache来改善它的性能。一个基于web的VNC客户端-novnc,使用novnc连接VNC控制台与KVM实例连接。

四、安装环境构思

OpenStack Compute有大量的配置选项,为了简化本安装指南,我们对需要部署的环境做了一些假设。

  • 你已经有了一些安装有Fedora17,RHEL6.2,Scientific Linux6.1或CentOS6发行版的compute节点。备注OpenStack同样支持Ubuntu,但本文档不做说明。
  • 你已经选定了一台作为云控制节点,它将除nova-compute外的所有服务(RabbitMQ,MySQL,Identity,Image,nova-api,nova-network,nova-scheduler,nova-volume)。
  • 云控制器的磁盘分区使用的是LVM。
  • 你的云控制器有一个LVM卷组(VG)名为”nova-volumes”共VM使用,你可以安装系统的使用创建,也可以在安装nova服务前使用剩余空间创建。
  • 确保你的主机名可以被正确的解析,另外如果你使用RabbitMQ作为后端消息队列或许会遇到些麻烦,Fedora默认使用Qpid作为消息队列。
  • 192.168.206.130是主机上eth0网卡的主IP地址。
  • 192.168.100.0/24作为虚拟主机的网络范围,通过桥接br100连接宿主主机。
  • FlatDHCP with a single network interface.
  • 使用KVM或Xen(XenServer or XCP)作为hypervisor。
  • 在RHEL上启用EPEL软件仓库,方法: $ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epelrelease-6-5.noarch.rpm


未完待续… …
转载时请务必以超链接形式标明出处,丁丁历险博客:http://manual.blog.51cto.com/3300438/967858


















本文转自丁丁历险51CTO博客,原文链接:http://blog.51cto.com/manual/967858 ,如需转载请自行联系原作者


相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
相关文章
|
Cloud Native API 虚拟化
“战疫”免费云迁移 -- VMware 迁 阿里云 3 步
2020年初,一场突如其来的疫情让原本祥和的新年气氛荡然无存。春节过后,状况并无好转,导致很多企业无法正常复工,对各行各业带来了巨大冲击。 此时,“上云“的巨大价值体现的淋漓尽致,企业管理者们也意识到业务只有跑在”云上“才能做到”永不下线,能够将对企业的影响降到最低。
1109 0
“战疫”免费云迁移 -- VMware 迁 阿里云 3 步
|
关系型数据库 MySQL 数据库
|
存储 Ubuntu Linux
|
MySQL 关系型数据库 API
|
网络安全 持续交付 Apache
初创公司如何实现 Ansible 多机房自动部署发布
本文讲的是初创公司如何实现 Ansible 多机房自动部署发布,一个完整的程序开发流程少不了部署发布这个环节,而部署发布是一个重复的过程,最基本的操作包含停止系统服务、更新软件包、重启系统服务,复杂的还需要做好监控
2357 0