[ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)

目录

Openstack-Mitaka 高可用之 概述
    Openstack-Mitaka 高可用之 环境初始化
    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署
    Openstack-Mitaka 高可用之 memcache
    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群
    Openstack-Mitaka 高可用之 认证服务(keystone)
    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

[[email protected] ~]# mysql -ugalera -pgalera -h 192.168.0.10
MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE DATABASE nova;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on nova_api.* to ‘nova‘@‘%‘ identified by ‘nova‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova_api.* to ‘nova‘@‘localhost‘ identified by ‘nova‘;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all privileges on nova.* to ‘nova‘@‘%‘ identified by ‘nova‘;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all privileges on nova.* to ‘nova‘@‘localhost‘ identified by ‘nova‘;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

创建nova用户

[[email protected] ~]# . admin-openrc
[[email protected] ~]# openstack user create --domain default   --password-prompt nova    #密码为 nova
[[email protected] ~]# openstack role add --project service --user nova admin

创建nova服务实体

[[email protected] ~]# openstack service create --name nova   --description "OpenStack Compute" compute

创建compute服务API端点

[[email protected] ~]# openstack endpoint create --region RegionOne   compute public http://controller:8774/v2.1/%\(tenant_id\)s
[[email protected] ~]# openstack endpoint create --region RegionOne   compute internal http://controller:8774/v2.1/%\(tenant_id\)s
[[email protected] ~]# 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

[[email protected] ~]# vim /etc/nova/nova.conf

以下部分是整个配置文件需要修改的地方:

[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]: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:[email protected]/nova_api
…
[database]
connection = mysql+pymysql://nova:[email protected]/nova
…
[glance]
api_servers = http://controller:9292
…
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller1:11211,controller2:11211,controller3:11211
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 选项
[[email protected] nova]# scp nova.conf controller2:/etc/nova/
nova.conf                                                                                                                  100%  284KB 283.8KB/s   00:00
[[email protected] nova]# scp nova.conf controller3:/etc/nova/
nova.conf                                                                                                                  100%  284KB 283.8KB/s   00:00

拷贝到其他controller节点注意修改蓝色ip地址

同步数据库,忽略任何不推荐的信息

[[email protected] ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
[[email protected] ~]# su -s /bin/sh -c "nova-manage db sync" nova
WARNING: cell0 mapping not found - not syncing cell0.
/usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, 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.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u‘Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release.‘)
  result = self._query(query)

Nova 一共有五个服务需要启动,建议一个一个启动,对照着日志查看是否存在报错。

[[email protected] ~]# systemctl restart  openstack-nova-consoleauth.service
[[email protected] ~]# systemctl start  openstack-nova-scheduler.service
[[email protected] ~]# systemctl start   openstack-nova-conductor.service
[[email protected] ~]# systemctl start   openstack-nova-novncproxy.service

[[email protected] ~]# systemctl enable openstack-nova-api.service   openstack-nova-consoleauth.service openstack-nova-scheduler.service   openstack-nova-conductor.service openstack-nova-novncproxy.service
[[email protected] ~]# 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
5

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:[email protected],openstack:[email protected],openstack:[email protected]
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:11211,controller2:11211,controller3:11211
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地址不能写主机名,因为是客户端调用。

查看主机是否支持虚拟化的硬件加速

[[email protected] ~]# egrep -c ‘(vmx|svm)‘ /proc/cpuinfo
2

启动计算节点服务

[[email protected] ~]# systemctl enable libvirtd.service openstack-nova-compute.service
[[email protected] ~]# systemctl start libvirtd.service openstack-nova-compute.service

注意:在配置计算服务的时候,请先保持各节点之间时间同步,否则某些服务会down掉。

在任意controller节点上执行:

[[email protected] ~]# . admin-openrc
[[email protected] ~]# nova service-list

三个controller节点和一个compute节点服务都为 up 状态,服务正常。

时间: 2024-08-28 15:10:24

[ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)的相关文章

Openstack之路(四)计算服务Nova

Nova的概述 Nova是Openstack云中的计算组织控制器.支持Openstack云中实例(Instances)生命周期的所有活动都由Nova处理.这样使得Nova成为一个负责管理计算资源.网络.认证.所需可扩展性的平台.但是Nova自身并没有提供任何虚拟化能力,相反它使用Libvirt API来与被支持的Hypervisors交互.Nova通过一个与Amazon Web Services(AWS)EC2 API兼容的Web Services API来对外提供服务. Nova的组件 Nov

[ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 Rabbitmq-server 集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-M

OpenStack 计算服务Nova [四]

OpenStack 计算服务Nova [四] openstack 时间:2016年11月28日 Nova简介: Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-compute,把除了nova-compute叫做控制节点.nova-compute是创建虚拟机的,只是创建虚拟机,所有的控制都在另一台上. nova有非常多的组件(服务) Nova服务介绍 AP

Centos7 install Openstack - (第四节)添加计算服务(Nova)

Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方文档配置 官方文档地址: http://docs.openstack.org/juno/install-guide/install/yum/content/# 0x01. Install and configure controller node (在控制节点安装配置一下内容) 一) 配置基本环境

MaxCompute,基于Serverless的高可用大数据服务

2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的"阿里云栖开发者沙龙大数据技术专场"走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了MaxCompute,基于Serverless的高可用大数据服务,以及MaxCompute低计算成本背后的秘密. 以下内容根据演讲视频以及PPT整理而成. 一.什么是MaxCompute Big Data in Alibaba首先为大家介绍阿里巴巴大数据技术的一些相关背景.正如下图所示,阿里巴巴

高性能高可用的微服务框架TarsGo的腾讯实践

conference/2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰.pdf at master · gopherchina/conferencehttps://github.com/gopherchina/conference/blob/master/2019/2.3%20%E9%AB%98%E6%80%A7%E8%83%BD%E9%AB%98%E5%8F%AF%E7%94%A8%E7%9A%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%A1%86%E6

controller上安装计算服务nova

1.3.4.image的服务管理 glance image-create命令 glance image-create命令用于添加新的虚拟机镜像至glance中,glance image-update 命令用于修改已经完成更新的镜像的属性信息. image-create命令至少要接收三个参数:--name .--container_format.--disk_format. 其中--disk_format用于指明磁盘镜像文件的格式,包括raw,qcow2,vhd,vmdk,iso,vdi,aki,

OpenStack 计算服务 Nova部署(七)

介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-compute,把除了nova-compute叫做控制节点.nova-compute是创建虚拟机的,只是创建虚拟机,所有的控制都在另一台上. nova组件(服务) API:负责接受和响应外部请求.支持OpenStack API,EC2 API Cert:负责身份认证EC2 Scheduler:用于云主

OpenStack(kilo版本)计算服务Nova的安装部署

OpenStack计算服务是基础设施即服务(IaaS)系统的主要组成部分.OpenStack计算服务使用Keystone来执行其身份验证,使用Horizon作为其管理接口,并使用Glance提供其镜像服务. 一.OpenStack 计算服务包含的组件 图1.1. OpenStack Nova组件 二.OpenStack计算节点基本环境配置 1.配置主机名和网络信息1.1配置主机名 [email protected]:~# vim /etc/hostname compute1 1.2 配置IP地址