[ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)
目录
Openstack-Mitaka 高可用之 概述
Openstack-Mitaka 高可用之 环境初始化
Openstack-Mitaka 高可用之 Mariadb-Galera集群部署
Openstack-Mitaka 高可用之 Rabbitmq-server 集群部署
Openstack-Mitaka 高可用之 memcache
Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群
Openstack-Mitaka 高可用之 认证服务(keystone)
OpenStack-Mitaka 高可用之 镜像服务(glance)
Openstack-Mitaka 高可用之 计算服务(Nova)
Openstack-Mitaka 高可用之 网络服务(Neutron)
Openstack-Mitaka 高可用之 Dashboard
Openstack-Mitaka 高可用之 启动一个实例
Openstack-Mitaka 高可用之 测试
简介
使用Openstack计算服务来托管和管理云计算系统。Openstack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由python实现。
Openstack计算组件请求Openstack Identitiy服务进行认证;请求Openstack Image服务提供磁盘镜像;为Openstack dashboard提供用户和管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定。Openstack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。
Openstack计算服务由下列组件所构成:
(1) nova-api 服务:
接收和响应来自最终用户的计算API请求。此服务支持Openstack计算服务API,例如启动一个实例。
(2)nova-api-metadata 服务
接受来自虚拟机发送的元数据请求。
(3)nova-compute 服务
一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例,例如:
XenServer 的 XenAPI
KVM或QEMU的libvirt
过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后到数据库中更新它的状态。
(4)nova-scheduler 服务
拿到一个来自队列请求虚拟机实例,然后决定那台物理计算节点来运行它。简单的说,该服务通过算法来决定在哪个计算节点来启动虚拟机。
(5)nova-cert 模块
Nova-network worker守护进程
从队列中接受网络任务,并操作网络。执行任务。例如创建网桥的接口或者改变iptables的规则。该功能应该被网络服务neutron取代。
Nova-consoleauth 守护进程
授权控制台代理所提供的用户令牌。
Nova-novncproxy 守护进程
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
队列
一个守护进程间传递消息的组件。前面部署的rabbitmq-server
SQL数据库
存储构建时和运行时的状态,为云基础设施,包括有:
可用实例类型
使用中的实例
可用网络
项目
理论上,OpenStack计算可以支持任何和SQL-Alchemy所支持的后端数据库,通常使用SQLite3来做测试可开发工作,MySQL和PostgreSQL 作生产环境。
安装并配置控制节点
在安装和配置compute服务前,必须创建数据库服务的凭据以及API endpoints
[root@controller1 ~]# mysql -ugalera -pgalera -h 192.168.0.10
MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE nova;
Query OK, row affected (0.01 sec) MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'%' identified by 'nova';
Query OK, rows affected (0.00 sec) MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'nova';
Query OK, rows affected (0.01 sec) MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'%' identified by 'nova';
Query OK, rows affected (0.01 sec) MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'localhost' identified by 'nova';
Query OK, rows affected (0.01 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.00 sec)
创建nova用户
[root@controller1 ~]# . admin-openrc
[root@controller1 ~]# openstack user create --domain default --password-prompt nova #密码为 nova
[root@controller1 ~]# openstack role add --project service --user nova admin
创建nova服务实体
[root@controller1 ~]# openstack service create --name nova --description "OpenStack Compute" compute
创建compute服务API端点
[root@controller1 ~]# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
[root@controller1 ~]# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
[root@controller1 ~]# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s
安装并配置组件:
三个节点都需要安装:
# yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler [root@controller1 ~]# vim /etc/nova/nova.conf 以下部分是整个配置文件需要修改的地方: [DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:openstack@controller1:5672,openstack:openstack@controller2:5672,openstack:openstack@controller3:5672
auth_strategy = keystone
my_ip = 192.168.0.11
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
osapi_compute_listen=192.168.0.11
metadata_listen=192.168.0.11
metadata_listen=192.168.0.11 [api_database]
connection = mysql+pymysql://nova:nova@controller/nova_api
…
[database]
connection = mysql+pymysql://nova:nova@controller/nova
…
[glance]
api_servers = http://controller:9292
…
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller1:,controller2:,controller3:
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = nova
…
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
…
[vnc]
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip 拷贝到其他controller节点,注意修改my_ip 选项
[root@controller1 nova]# scp nova.conf controller2:/etc/nova/
nova.conf % 284KB .8KB/s :
[root@controller1 nova]# scp nova.conf controller3:/etc/nova/
nova.conf % 284KB .8KB/s :
拷贝到其他controller节点注意修改蓝色ip地址
同步数据库,忽略任何不推荐的信息
[root@controller1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
[root@controller1 ~]# su -s /bin/sh -c "nova-manage db sync" nova
WARNING: cell0 mapping not found - not syncing cell0.
/usr/lib/python2./site-packages/pymysql/cursors.py:: Warning: (, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release.')
result = self._query(query)
/usr/lib/python2./site-packages/pymysql/cursors.py:: Warning: (, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release.')
result = self._query(query)
Nova 一共有五个服务需要启动,建议一个一个启动,对照着日志查看是否存在报错。
[root@controller1 ~]# systemctl restart openstack-nova-consoleauth.service
[root@controller1 ~]# systemctl start openstack-nova-scheduler.service
[root@controller1 ~]# systemctl start openstack-nova-conductor.service
[root@controller1 ~]# systemctl start openstack-nova-novncproxy.service [root@controller1 ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller1 ~]# systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service | grep active | wc -l
Controller1 5个nova服务启动成功,然后拷贝nova.conf 到 controller2 controller3 启动服务,注意监听到本地。
安装和配置计算节点
注意:经过测试发现,使用Mitaka版本安装计算节点Mitaka源中的qemu-kvm和libvirt包存在BUG。
从这里开始,需要配置计算节点,计算节点为一台新的主机。
首先用本地yum源安装
yum install qemu-kvm libvirt* -y
然后在配置openstack本地源安装:
yum install openstack-nova-compute python-crypto -y
编辑/etc/nova/nova.conf 如下:
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller1,openstack:openstack@controller2,openstack:openstack@controller3
auth_strategy = keystone
my_ip = 192.168.0.31
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
…
[glance]
api_servers = http://controller:9292
…
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller1:,controller2:,controller3:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
…
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://192.168.0.10:6080/vnc_auto.html # 这里要写ip地址不能写主机名,因为是客户端调用。
查看主机是否支持虚拟化的硬件加速
[root@compute1 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
启动计算节点服务
[root@compute1 ~]# systemctl enable libvirtd.service openstack-nova-compute.service
[root@compute1 ~]# systemctl start libvirtd.service openstack-nova-compute.service
注意:在配置计算服务的时候,请先保持各节点之间时间同步,否则某些服务会down掉。
在任意controller节点上执行:
[root@controller1 ~]# . admin-openrc
[root@controller1 ~]# nova service-list
三个controller节点和一个compute节点服务都为 up 状态,服务正常。
[ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)的更多相关文章
- [ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- openstack cinder-volume 的高可用(HA)
http://blog.csdn.net/LL_JCB/article/details/51879378 为了保证云平台的稳定性,需要做很多部分的高可用.比如控制节点高可用.计算节点高可用.网络节点高 ...
- Centos7 install Openstack - (第四节)添加计算服务(Nova)
Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...
- 【openstack N版】——计算服务nova
一.openstack计算服务nova 1.1nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这 ...
- OpenStack实践系列④计算服务Nova
OpenStack实践系列④计算服务Nova 3.6 Nova控制节点的部署创建服务的凭证,完成下列步骤: 创建nova用户,并加入到service项目中,赋予admin权限 [root@node1 ...
- MaxCompute,基于Serverless的高可用大数据服务
摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了 ...
- 使用kuernetes提供高可用的logstash服务
在kubernetes集群中部署logstash步骤如下: 1:logstash安装文件(目前最新版本2.3.4): 2:编写Dockerfile及执行点脚本文件run.sh,并且修改logstash ...
- 搭建高可用的Redis服务,需要注意这些方面!
搭建高可用的Redis服务,需要注意这些方面! HorstXu 占小狼的博客 今天 ◎作者 | HorstXu www.cnblogs.com/xuning/p/8464625.html 基于内存的R ...
随机推荐
- cartographer 安装修改
装置:VLP16+IMU+单板机 目的:利用传感器数据,实现real time 的建模 结果:失败,但之前的步骤都正常,出问题的地方可能是imu出错. 稍后附上 launch文件,lua文件,urdf ...
- pyinstaller加密打包
pyinstaller -F -w --key=keys --clean --icon=imgs/xxx.ico xxx.py
- [转]Linux UDP严重丢包问题的解决
测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%.同等情形下Windows上测试,仅丢几条数据.形势严峻,必须解决.考虑可能是因为协议栈B ...
- LTE/EPC中,MME怎么找到UE的HSS的?
http://bbs.c114.net/forum.php?mod=viewthread&tid=486247 HSS---归属用户服务器,我的理解:一般来说只有一个,或者是一个分布式数据库. ...
- Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
资源可以用,但是安装完成后启动会报错:“要继续使用此程序,您必须应用最新的更新或使用新版本” 解决办法先修改你电脑时间为前一年(2017 1月),然后就可以打开xshell了,打开后"工具& ...
- php开发中处理emoji表情和颜文字的兼容问题
背景:随着手机的普及,现在移动开发很火爆,已经远远超过了pc端.在移动设备经常会发生用户发送的内容中包含emoji表情,在显示时就是乱码.一般是因为Mysql表设计时,都是用UTF8字符集的.把带有e ...
- 【python】python中的定义类属性和对像属性
python中变量是没有类型的可以绑定任意类型,但是在语法上不能声明变量. 那我们怎麽来声名一个变量呢? f=None 这样我们给着个变量绑定了以各None类型,我们随时可用重新绑定其它类型.这样我们 ...
- 51nod 1680区间求和 (dp+树状数组/线段树)
不妨考虑已知一个区间[l,r]的k=1.k=2....k=r-l+1这些数的答案ans(只是这一个区间,不包含子区间) 那么如果加入一个新的数字a[i](i = r+1) 则新区间[l, i]的答案为 ...
- poj 3422 洛谷P2045 K取方格数(方格取数加强版)
Description: 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来 ...
- myisam_sort_buffer_size vs sort_buffer_size
Q: I am MySQL on server with 6GB RAM. I need to know what is the difference between myisam_sort_buff ...