一. 简单介绍

在openstack私有云平台的应用场景中,涉及多台虚拟机实例进行高可用的绑定,这里我们需要在云平台中提供一个IP给高可用场景切换,这里介绍keepalived + allow_address_pairs实现虚拟机的高可用

二.创建port和指定vip

[root@openstack01 ~]# neutron net-list
+--------------------------------------+-------------+----------------------------------+------------------------------------------------------+
| id | name | tenant_id | subnets |
+--------------------------------------+-------------+----------------------------------+------------------------------------------------------+
| 0fbab9a2-9838-43f9-b1a3-0302ee53eb70 | virtual-net | c1f5a356a4f549bb90234c05d60e0a35 | d09ba832-6734-42e7-b127-00114bbbbe83 10.0.0.0/24 |
| f2cbbf07-bb60-4ef8-acdd-bee4a793b51b | public1 | c1f5a356a4f549bb90234c05d60e0a35 | b5614524-96c2-4f5f-9507-a95a1627ac4d 192.168.30.0/24 |
+--------------------------------------+-------------+----------------------------------+------------------------------------------------------+

这里找出virtual-net对应的id号( 0fbab9a2-9838-43f9-b1a3-0302ee53eb70)

创建port和绑定内部IP:

[root@openstack01 ~]# neutron port-create --fixed-ip ip_address=10.0.0.150 0fbab9a2-9838-43f9-b1a3-0302ee53eb70
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Created a new port:
+-----------------------+-----------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+-----------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | |
| binding:host_id | |
| binding:profile | {} |
| binding:vif_details | {} |
| binding:vif_type | unbound |
| binding:vnic_type | normal |
| created_at | 2018-09-28T01:15:18Z |
| description | |
| device_id | |
| device_owner | |
| extra_dhcp_opts | |
| fixed_ips | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.150"} |
| id | 715d39e9-8341-4124-a8e4-3a4e2700ee36 |
| mac_address | fa:16:3e:f0:2b:85 |
| name | |
| network_id | 0fbab9a2-9838-43f9-b1a3-0302ee53eb70 |
| port_security_enabled | True |
| project_id | c1f5a356a4f549bb90234c05d60e0a35 |
| revision_number | 6 |
| security_groups | 8da47344-9c63-4229-b89a-b653afad65b6 |
| status | DOWN |
| tags | |
| tenant_id | c1f5a356a4f549bb90234c05d60e0a35 |
| updated_at | 2018-09-28T01:15:19Z |
+-----------------------+-----------------------------------------------------------------------------------+

注意:ip_address是keepalived的vip,后面的字符串是virtual-net对应的id

创建完毕后,我们可以看到端口的信息显示unbound未绑定的。下面我们将这个端口信息更新到对应的虚拟机中。

三. 更新端口信息到对应的实例



如上图所示,有两台虚拟机,对应的IP地址分别为10.0.0.13和10.0.0.6,这里我们将上面创建的端口信息更新到这两台实例中去:

查看对应IP端口port的ID信息:

[root@openstack01 ~]# neutron port-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------+----------------------------------+-------------------+--------------------------------------------------------------------------------------+
| id | name | tenant_id | mac_address | fixed_ips |
+--------------------------------------+--------+----------------------------------+-------------------+--------------------------------------------------------------------------------------+
| 35d83ee9-e574-45a3-9193-bdd746102807 | | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:e2:42:ad | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.2"} |
| 468bf092-324e-4c0d-a7f7-603f19b388fc | | | fa:16:3e:b3:19:92 | {"subnet_id": "b5614524-96c2-4f5f-9507-a95a1627ac4d", "ip_address": "192.168.30.57"} |
| 52da60be-e2d1-47b6-8d84-8634bd3a18f8 | | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:0c:50:55 | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.6"} |
| 715d39e9-8341-4124-a8e4-3a4e2700ee36 | | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:f0:2b:85 | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.150"} |
| a6632ddd-588c-46f2-ad98-edb4a3b5dda3 | | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:fe:e2:67 | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.1"} |
| a9629c47-cf80-40d3-864f-f3ce9c7fe7ca | | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:ff:90:81 | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.13"} |
| da2afbf5-33c4-48ca-8ab3-136d48628631 | | | fa:16:3e:08:af:07 | {"subnet_id": "b5614524-96c2-4f5f-9507-a95a1627ac4d", "ip_address": "192.168.30.53"} |
| dc993931-499b-440e-9980-4f8e7ceb6cb4 | | | fa:16:3e:87:32:bf | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.5"} |
| e97c25fe-f08b-4230-9ccf-e34f0a2e5d4b | | | fa:16:3e:d0:d5:85 | {"subnet_id": "b5614524-96c2-4f5f-9507-a95a1627ac4d", "ip_address": "192.168.30.52"} |
| e9841b66-17d4-4a7d-8f74-e27b33d24d6d | | | fa:16:3e:da:c0:96 | {"subnet_id": "b5614524-96c2-4f5f-9507-a95a1627ac4d", "ip_address": "192.168.30.51"} |
| f33564a2-37b2-4df8-a14f-ce2c31402f25 | port-1 | c1f5a356a4f549bb90234c05d60e0a35 | fa:16:3e:dc:1c:d3 | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.50"} |
+--------------------------------------+--------+----------------------------------+-------------------+--------------------------------------------------------------------------------------+

更新虚拟机10.0.0.13端口信息:

[root@openstack01 ~]# neutron port-update a9629c47-cf80-40d3-864f-f3ce9c7fe7ca --allowed_address_pairs list=true type=dict ip_address=10.0.0.150
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Updated port: a9629c47-cf80-40d3-864f-f3ce9c7fe7ca

更新虚拟机10.0.0.6的端口信息:

[root@openstack01 ~]# neutron port-update 52da60be-e2d1-47b6-8d84-8634bd3a18f8 --allowed_address_pairs list=true type=dict ip_address=10.0.0.150
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Updated port: 52da60be-e2d1-47b6-8d84-8634bd3a18f8

上面的操作完成后,我们可以通过下面的命令查看更新的端口信息:

[root@openstack01 ~]# neutron port-show a9629c47-cf80-40d3-864f-f3ce9c7fe7ca
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+-----------------------+----------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+----------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | {"ip_address": "10.0.0.150", "mac_address": "fa:16:3e:ff:90:81"} |
| binding:host_id | openstack01 |
| binding:profile | {} |
| binding:vif_details | {"port_filter": true, "datapath_type": "system", "ovs_hybrid_plug": true} |
| binding:vif_type | ovs |
| binding:vnic_type | normal |
| created_at | 2018-09-28T01:18:09Z |
| description | |
| device_id | 59cdecdd-2e42-48cc-b76f-29d8fee78183 |
| device_owner | compute:nova |
| extra_dhcp_opts | |
| fixed_ips | {"subnet_id": "d09ba832-6734-42e7-b127-00114bbbbe83", "ip_address": "10.0.0.13"} |
| id | a9629c47-cf80-40d3-864f-f3ce9c7fe7ca |
| mac_address | fa:16:3e:ff:90:81 |
| name | |
| network_id | 0fbab9a2-9838-43f9-b1a3-0302ee53eb70 |
| port_security_enabled | True |
| project_id | c1f5a356a4f549bb90234c05d60e0a35 |
| revision_number | 12 |
| security_groups | 8da47344-9c63-4229-b89a-b653afad65b6 |
| status | ACTIVE |
| tags | |
| tenant_id | c1f5a356a4f549bb90234c05d60e0a35 |
| updated_at | 2018-09-28T01:27:54Z |
+-----------------------+----------------------------------------------------------------------------------+

我们可以看到虚拟机端口信息已经更新了10.0.0.150的IP信息和MAC地址。

四. 绑定浮动IP

  • 在实际的应用场景中,我们需要将虚拟机绑定一个浮动IP来提供给外部的业务访问,这里需要将浮动IP绑定到keepalived 的VIP对应的端口上

  • 将分配的浮动IP绑定到keepalived的vip端口上:

OpenStack之Neutron分配VIP提供给两台虚拟机做高可用的更多相关文章

  1. vmware中两台虚拟机互相访问

    hosts文件   简单说,就是本来访问某个机器是通过其ip,在hosts文件中给ip对应一个名字,那么就可以通过名字来替代ip去访问该机器了(名字显然比ip好记) 环境:宿主机win10系统,安装了 ...

  2. 问题解决:两台虚拟机不能互相ping通的原因

    要是两台虚拟机能够PING通下列要求缺一不可:1.你所设置的虚拟网络的网络号不能跟外面你正在使用的真实的网络号一样2.防火墙必须关闭3.你设置的那俩台虚拟机必须在同一网段内4.两台虚拟机的主机名不能相 ...

  3. [译] 企业级 OpenStack 的六大需求(第 1 部分):API 高可用、管理和安全

    全文包括三部分: 第一部分:API 高可用和管理以及安全模型 第二部分:开放架构和混合云兼容 第三部分:弹性架构和全球交付 引言 OpenStack 是构造企业级私有云的非常理想的基础.它立志成为新一 ...

  4. 基于keepalived 实现VIP转移,lvs,nginx的高可用

    转自:http://www.tuicool.com/articles/eu26Vz 一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VI ...

  5. 解决两台虚拟机互ping可通,但connect失败

    问题描述: 在UNP一书中实例中,采用两台不同的虚拟机.即一台虚拟机作为服务端,另外一台虚拟机作为客户端. 现象: 两台电脑各自互ping可通 客户端访问local可行 客户机访问服务端报错:No r ...

  6. VMware两台虚拟机之间文件共享

    虚拟机A的文件拷贝到虚拟机B scp[参数][原路径][目标路径] eg: scp -r root@192.168.0.172:/home/rookie/下载/ /home/rooookie/下载/ ...

  7. mininet:使用vxlan连接两台虚拟机的网络topo

    需改虚拟机的网络适配器,将其改为host-only 尝试ping宿主机ip地址,此时能够ping同与虚拟机相连的虚拟网卡ip地址,无法ping同其他网卡ip地址 在虚拟机和宿主机中创建网络topo 在 ...

  8. OpenStack高可用方案及配置

    1  OpenStack高可用介绍 1.1  无状态和有状态服务 无状态服务指的是该服务接收的请求前后之间没有相关关系,接收并处理完该请求后不保存任何状态,在OpenStack的服务中常见的无状态服务 ...

  9. heartbeat单独提供高可用服务

    本文目录:1.简介2.安装heartbeat 2.1 编译安装Heartbeat3.heartbeat相关配置文件 3.1 配置文件ha.cf 3.2 配置文件authkeys 3.3 配置文件har ...

随机推荐

  1. Nginx技术研究系列7-Azure环境中Nginx高可用性和部署架构设计

    前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...

  2. Zeu.js

    一个生成各种 GIF 动画的 JavaScript 类库,非常适合用于让你的数据展示变得更加地生动.使用起来也非常简单,有数据展示需求的同学可以尝试一下.https://shzlw.github.io ...

  3. SpringBoot使用HttpClient远程调用

    一. Get请求 try { //拼接url url = url+"access_token="+token+"&department_id=1&fetc ...

  4. Docker Swarm 介绍 or 工作原理

    Docker Swarm 介绍 Swarm 简介 Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swar ...

  5. Guitar Pro特殊符号讲解之附点音符

    今天要讲解Guitar Pro里附点音符的作用,附点音符也是大家在编曲做谱的时候,经常需要使用的一个符号,它在Guitar Pro分为附点和双附点. 附点:记在音符符头右边的圆点,用以增长音符的时值. ...

  6. 关于Could not read pom.xml和No plugin found for prefix 'tomcate7' in the current project

    当时出现的错误:  有大神知道我这个错误怎么解决吗[ERROR] No plugin found for prefix 'tomcate7' in the current project and in ...

  7. FFT 快速傅里叶变换 学习笔记

    FFT 快速傅里叶变换 前言 lmc,ikka,attack等众多大佬都没教会的我终于要自己填坑了. 又是机房里最后一个学fft的人 早背过圆周率50位填坑了 用处 多项式乘法 卷积 \(g(x)=a ...

  8. Linux文件结构

    /: 根目录,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者. /bin: bin 就是二进制(binary)英文缩写.在一般的系统当中,都可以在这个目录下找到 ...

  9. JS中for in 与 for of

    // 数组var A=[4,6,74,67]; for in:拿到的是数组下标 for (let i in A){ console.log(i); } //0,1,2,3 for of:拿到的是数组元 ...

  10. Kafka学习之二 Kafka安装和使用

    部署环境Linux(Centos 6.5),JDK 1.8.0,zookeeper-3.4.12,kafka_2.11-2.0.0. 1. 单机环境     官方建议使用JDK 1.8版本,因此本文使 ...