1       实验环境

  • Openstack juno版本,一个controller(计算节点也在这个物理节点上)和一个网络节点network
  • 使用haproxy作为代理软件
  • 使用pacemaker作为资源管理工具
  • 因为这里只用这两个节点做实验所以这两个节点即作为openstack节点同事也作为ha的主从节点

2       安装配置haproxy

分别在controller和network上安装

2.1       安装

执行 yum install haproxy –y

2.2       配置

修改 /etc/haproxy/haproxy.cfg,如图:

Global为默认:

主要是添加如下内容:

listen nova_compute_api_cluster  172.16.1.5:8774

balance source

option tcpka

option httpchk

option tcplog

server controller 172.16.1.75:8774 weight 1 check inter 10s rise 2 fall 5

server network 172.16.1.74:8774 weight 1 check inter 10s rise 2 fall 5

listen status 172.16.1.5:8001

stats enable

stats uri /stats

stats auth  admin:123456

stats realm Global\statistic

编辑文件/etc/sysctl.d/haproxy.conf,添加net.ipv4.ip_nonlocal_bind = 1

3       安装和配置pacemaker

在controller和network上都要安装

3.1       安装

执行yum install pacemaker  corosync  pcs  fence-agents-all –y

修改hacluster密码,执行passwd hacluster

执行systemctl enable pcsd.service pacemaker.service corosync.service和systemctl start pcsd.service

3.2       配置

在控制节点执行

pcs cluster auth controller network

pcs cluster setup --start --name openstack-cluster controller network

pcs cluster enable –all

检查一下状态,执行如下命令:

corosync-cfgtool -s

corosync-cmapctl | grep members

pcs status corosync

pcs status

3.3       集群属性设置

执行如下命令:

pcs property set stonith-enabled=false

pcs property set no-quorum-policy=ignore

pcs resource defaults resource-stickiness=100

crm_verify -L –V

3.4       Vip设置

pcs resource create ClusterIP-01 ocf:heartbeat:IPaddr2 ip=172.16.1.78 cidr_netmask=24 op monitor interval=5s

pcs resource create HAproxy systemd:haproxy op monitor interval=5s

pcs resource group add HAproxyIPs ClusterIP-01

pcs constraint colocation add HAproxy HAproxyIPs INFINITY

pcs constraint order HAproxyIPs then HAproxy

3.5       查看crm状态

crm_mon -1

出错,修改一个keystone endpoint, nova的endpoint要使用vip,进入数据修改keystone数据库,执行update endpoint set url='http://172.16.1.78:8774/v2.0enant_id)s' where url='http://controller:8774/v2.0/%(tenant_id)s';

3.6       登录http://172.16.1.78:8001/stats

查看一下界面如下,可以看到正常登录,到此nova-api的HA就完成了。

openstack实现nova-api的HA的更多相关文章

  1. openstack 用nova API 指定 compute node 创建 instance

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  2. openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)

    目录 目录 Nova API Nova API 的执行过程 novaclient 将 Commands 转换为标准的HTTP请求 PasteDeploy 将 HTTP 请求路由到具体的 WSGI Ap ...

  3. OpenStack:安装Nova

    >安装Nova1. 安装# apt-get install nova-novncproxy novnc nova-api \  nova-ajax-console-proxy nova-cert ...

  4. OpenStack之Nova模块

    Nova简介 nova和swift是openstack最早的两个组件,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,no ...

  5. 云计算与OpenStack(虚拟机Nova篇)

    <云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...

  6. Openstack之Nova创建虚机流程分析

    前言        Openstack作为一个虚拟机管理平台,核心功能自然是虚拟机的生命周期的管理,而负责虚机管理的模块就是Nova. 本文就是openstack中Nova模块的分析,所以本文重点是以 ...

  7. 玩转Openstack之Nova中的协同并发(一)

    玩转Openstack之Nova中的协同并发(一) 前不久参加了个Opnstack的Meetup,其中有一个来自EasyStack的大大就Nova中的协同并发做了一番讲解,有所感触,本想当天就总结一下 ...

  8. OpenStack核心组件-nova计算服务

    1. nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...

  9. openstack部署nova

    controller 一.创建nova数据库,并设置权限及远程登录 mysql -u root -p CREATE DATABASE nova_api; CREATE DATABASE nova; C ...

  10. openstack核心组件--nova计算服务(3)

    一.nova介绍:       Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova ...

随机推荐

  1. Java学习之路 第四篇 oop和class (面向对象和类)

    本人水平有限,创作本文是为了记录学习和帮助初学者学习,欢迎指正和补充 一.面向对象编程的设计概述 很多同学都在学校学了电脑的编程,现在的书籍大部分都是oop面向对象编程,一个很抽象的的名字,比较难以理 ...

  2. oracle索引INdex

    索引是与表相关的一种可选择数据库对象.索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息. 索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的.然而 ...

  3. iOS对象(字典或数组)转化为JSon字符串

    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; [dictionary setValue:@"he ...

  4. 软件测试人员需要精通的开发语言(5)--- Python

    Python语言,也算是后起之秀,多平台的应用也让它成为万能的脚本语言,应用于各种架构各种工具,得到广泛应用.而且如今比较火热的行业,软件爬虫,多半是用Python开发的.因为Python是一种开放源 ...

  5. HUD3689 Infinite monkey theorem

    Infinite monkey theorem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

  6. cmake的外部编译

    1 什么是外部编译 就是让源码文件和cmake生成的工程文件分开,将cmake生成的工程文件放在一个单独的目录下面. 2 怎样进行外部编译 第一,单独建立一个目录,这个目录在source code目录 ...

  7. HTML 学习笔记 JQuery(锋利的JQuery 代码)

    一 制作简单的导航栏 <html> <head> <meta charset="UTF-8"> <title></title& ...

  8. 新版本ADT创建Android项目无法自动生成R文件解决办法

    本人使用的是ADT是Version 23.0.2,支持Android 6.0之后的系统环境,最高版本23,在创建Android项目的时候,每次创建项目选择“Compile With”低于6.0版本的时 ...

  9. 在tomcat下直接访问Html报错,说找不到资源(404)

    今天由于工作需要,想把一个html直接放到tomcat(干净的tomcat,没有做过任何修改.)下进行访问,然后根据经验就直接在webapps下创建了个文件夹test,然后把需要的test.html拷 ...

  10. java多线程系列 JUC原子类 CAS及原子类

    根据数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicInteg ...