您的位置:首页 > 运维架构

OpenStack基础环境(一)

2017-06-15 09:15 323 查看

openstack介绍

 openstack是一个云平台管理的项目,它不是一个软件。也就是说我们可以使用
openstack
来管理我们一个数据中心大量资源池。它里面包含了很多子
项目





openstack包含三大项:
计算
网络
存储

  openstack主要目标是来
简化资源
的管理和分配,把
计算
网络
存储
。三大项虚拟成
三大资源池
,例如需要计算资源我这里可以提供,需要网络资源这里也可以提供以及存储资源的需求,对外提供
api
,通过
api
进行交互
  openstack的设计基本上是按照
亚马逊
进行设置的,我们可以将
openstack
理解为开源版本的
aws
。因为它很多地方都参考
亚马逊
进行操作的,而且
openstack
的很多
api
跟亚马逊是相通的。
  openstack火起来的原因首先是
apache
旗下的开源软件,第二它是由
python
进行编写
(因为python比较简单,深受技术人员的喜欢)
openstack官方网站:http://www.openstack.org

openstack版本介绍




openstack版本是每
6
个月发布一次,每次版本的顺序按照
A-Z
进行排序。
那么我们应该如何选择版本呢?
  我们选择版本的时候,除了新版本的那些功能不得不用,那我们可以选择新的版本。其实我们可以选择稍微落后的一个版本。上述图不够准确,现在已经达到N版。国内openstack是从E班开始火的。因为E版本当时是比较完善的,国内openstack最火的时候是在G版的时候。现在国内不论是传统行业还是互联网行业都在使用openstack

openstack架构




服务名称项目名称描述
DasgviardHorizon基于Openstack API接口使用diango开发的Web管理
ComputeNova通过虚拟化技术提供计算资源池
NetworkingNeutron实现了虚拟机的网络资源管理。
Storage (存储)
Object StorageSwift对象存储,适用于“一次写入、多次读取”
Block StorageCinder块存储,提供存储资源池
ShareServices (共享服务)
Identify ServiceKeystone认证管理
Image ServiceGlance提供虚拟镜像的注册和存储管理
TelemetryCeilometer提供监控和数据采集、计量服务
Higher-level Services (高层服务)
OrchestrationHeat自动化部署的组件
Database ServiceTrove提供数据库应用服务



解释:这里面所有的服务都是围绕着
VM
进行提供服务的,虚拟机需要什么资源,我们就提供什么资源
  我们可以将服务分为
两大类
,一个是服务的
提供者
,一个是服务的
消费者
。提供者是我可以提供某个服务,消费者是我可以用到这个服务。
  openstack默认是没有
创建
虚拟机的功能,是通过调用
KVM
来创建虚拟机还可以调用
esxi
来创建虚拟机,总之openstack没有创建虚拟机的功能都是通过调用其他服务来进行操作。openstack就是一个框架,它可以调用其他的服务,所以openstack也就是一个
管理平台

Openstack服务介绍

MySQL
:为各个服务提供数据存储
RabbitMq
:为各个服务之间通信提供认证和服务注册
Keystone
:为各个服务器之间通讯提供认证和服务注册
Glance
:为虚拟机提供镜像管理
Nova
:为虚拟机提供计算资源
Neutron
:为虚拟机提供网络资源

Openstack环境准备-MySQL、RabbirMQ

中文文档:http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/
提示:这个中文文档是直接翻译过来的,所以会有很多不通顺的地方
特别提示:环境请和我保持一致!!!!!!!!保持一致!保持一致!保持一致!
本次我们安装Openstack M版,M版是在2016-4月发布的
环境
[root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-node1 ~]# uname -r3.10.0-327.36.2.el7.x86_64[root@linux-node1 ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.56.11 linux-node1.abcdocker.com192.168.56.12 linux-node2.abcdocker.com
安装时间同步
[root@linux-node1 ~]# yum install ntpdate -y[root@linux-node1 ~]# ntpdate time1.aliyun.com[root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai  #设置时区另一种设置时区方法[root@linux-node1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
提示: 生产环境中必须保证openstack节点时间同步,如果时间不同步是无法创建虚拟机的

openstack基础软件包安装

基础软件包需要在所有的
Openstack
节点上进行安装,包括
控制
节点和
计算
节点
1、安装EPEL仓库
[root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
2、安装Openstack仓库
[root@linux-node1 ~]# yum install -y centos-release-openstack-mitaka#安装完成后会在/etc/yum.repos.d/下生成CentOS-OpenStack-mitaka.repo
3、安装Openstack客户端
[root@linux-node1 ~]#  yum install -y python-openstackclient提示:会把openstack常用的客户端都进行安装
4、安装openstack SELinux管理包
yum install -y openstack-selinux
如果我们没有进行关闭
selinux
openstack-selinux
就会自动帮我们设置



RabbitMq在openstack几大用处
1.做服务之间相互通讯的工具
2.信息同步(异步执行)
如果没有
RabbitMq
服务之间将无法进行
通讯

提示:如果是生产环境,数据库是需要做备份的,否则数据库一挂数据将会丢失,openstack也将无法进行提供服务

安装数据库

[root@linux-node1 ~]# yum install -y mariadb mariadb-server python2-PyMySQLcentos7 默认安装mysql 会在/etc/my.cnf里面includedir /etc/my.cnf.d/ 所以我们需要将配置文件放在这个目录下就可以生效[root@linux-node1 ~]# cd /etc/my.cnf.d/[root@linux-node1 my.cnf.d]# vim openstack.cnf[mysqld]bind-address = 192.168.56.11   #监听的IP地址(也可以写0.0.0.0)default-storage-engine = innodb  #默认存储引擎[innodb]innodb_file_per_table       # 使用独享表空间max_connections = 4096          #最大连接数是4096 (默认是1024)collation-server = utf8_general_ci  #数据库默认校对规则character-set-server = utf8 #默认字符集

启动数据库

[root@linux-node1 ~]# systemctl start mariadb[root@linux-node1 ~]# systemctl enable mariadbCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
启动后我们需要进行检查
为了保证数据库服务的安全性,运行
mysql_secure_installation
脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码。
[root@linux-node1 ~]# mysql_secure_installation#它会帮我们删除测试数据库等
数据库安装完成后我们需要给我们后面所要用到的服务创建用户并进行授权
创建认证服务的数据库并进行授权
[root@linux-node1 ~]# mysql -uroot -p123456创建keystone数据库create database keystone;grant all on keystone.* to 'keystone'@'localhost' identified by 'keystone';grant all on keystone.* to 'keystone'@'%' identified by 'keystone';
创建镜像数据库并进行授权
创建glance数据库create database glance;grant all on glance.* to 'glance'@'%' identified by 'glance';grant all on glance.* to 'glance'@'localhost' identified by 'glance';
创建虚拟化数据库并进行授权
创建nova数据库create database nova;grant all on nova.* to 'nova'@'localhost' identified by 'nova';grant all on nova.* to 'nova'@'%' identified by 'nova';
因为Nova有2个项目,所以我们要创建2个数据库
创建nova-api数据库
create database nova_api;grant all on nova_api.* to 'nova_api'@'localhost' identified by 'nova_api';grant all on nova_api.* to 'nova_api'@'%' identified by 'nova_api';
提示:nova_api是新版本才有
创建网络资源管理数据库
create database neutron;grant all on neutron.* to 'neutron'@'%' identified by 'neutron';grant all on neutron.* to 'neutron'@'localhost' identified by 'neutron';
刷新
flush privileges;
安装消息队列
rabbitmq

[root@linux-node1 ~]# yum install rabbitmq-server -y消息队列的端口是5672
启动消息队列服务并将其配置为随系统启动:
[root@linux-node1 ~]# systemctl enable rabbitmq-server.service[root@linux-node1 ~]# systemctl start rabbitmq-server.service
因为我们一会要使用
openstack
,所以我们在
rabbitmq
上创建一个
openstack
用户
[root@linux-node1 ~]# rabbitmqctl add_user openstack openstack[root@linux-node1 ~]# rabbitmqctl add_user用户 密码
openstack
用户读写权限
[root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*".*分别代表配置、写入、读取
提示:如果rabbitmq没有启动说明主机名没有解析
开启rabbitmq监控插件
rabbitmq
有很多插件,我们可以使用
rabbitmq-plugins list
查看可用插件
rabbitmq_management
插件提供一个web界面,所以我们要将它开启
[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_managementrabbitmq启动之后会监听15672



访问路径:http://ip:15672
默认Username:guest
默认Password:guest

示例图



提示:这里不能使用
openstack
用户进行登陆,因为我们如果想使用openstack用户进行登陆还需要在
web
页面进行授权
现在我们就进行
rabbitmq
的管理界面了



默认有一个
http
api
,我们如果想监控 可以使用http的api进行监控。里面基本上想监控的东西都有,可以通过脚本来获取通过
url
来判断等。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件 数据中心 杨文