OVN HA 实验

ovn-northd服务是集中式方案,集群中所有的ovn-controller服务都连接到ovn-northd,这样ovn-northd可能会引起单点故障的问题,所以OVN用在生产环境前需要考虑ovn-northd服务HA问题,

这里记录的OVN社区ovn-northd服务的HA方案。

Corosync + Pacemaker

corosync +pacemaker使用原理,可参见文档 http://blog.csdn.net/rzhzhz/article/details/7104135

ovn-northd HA 搭建过程

下面步骤搭建三个节点组成的ovn-northd HA的环境:

系统版本: CentOS7

host: 192.168.10.143  192.168.10.146  192.168.10.147

vip : 192.168.10.200

1.安装相关组件

 1 # 安装 corosync,pacemaker
 2 yum install corosynclib corosync
 3 yum install pacemaker-libs pacemaker-cluster-libs pacemaker-cli pacemaker   # 快速安装 yum install corosync pacemaker -y
 4
 5 #安装 crmsh(命令方式管理corosync +pacemaker)
 6 yum install crmsh-scripts-3.0.0-2.2.noarch.rpm python-parallax-1.0.1-29.1.noarch.rpm  crmsh-3.0.0-2.2.noarch.rpm
 7
 8 # 安装OVN组件
 9 yum install openvswitch
10 yum install openvswitch-ovn-common openvswitch-ovn-central

2. 配置服务(192.168.10.143)

 1 # 配置corosync + pacemaker
 2 ## 编辑 /etc/corosync/corosync.conf
 3 totem {
 4         version: 2
 5
 6         crypto_cipher: aes128
 7         crypto_hash: sha1
 8         secauth: on
 9
10         interface {
11                 ringnumber: 0
12                 bindnetaddr: 192.168.10.0
13                 mcastaddr: 239.255.1.1
14                 mcastport: 5405
15                 ttl: 1
16         }
17 }
18
19 nodelist {
20         node {
21                 ring0_addr: 192.168.10.143
22                 nodeid: 1
23         }
24         node {
25                 ring0_addr: 192.168.10.146
26                 nodeid: 2
27         }
28         node {
29                 ring0_addr: 192.168.10.147
30                 nodeid: 3
31         }
32 }
33
34 logging {
35         fileline: off
36         to_stderr: no
37         to_logfile: yes
38         logfile: /var/log/cluster/corosync.log
39         to_syslog: yes
40         debug: off
41         timestamp: on
42         logger_subsys {
43                 subsys: QUORUM
44                 debug: off
45         }
46 }
47
48 quorum {
49         provider: corosync_votequorum
50 }
51
52
53 # 生成authkey
54 corosync-keygen
55
56 # 配置ovn-northd服务
57 ##在/etc/openvswitch/目录创建ovnnb-active.conf  ovnsb-active.conf  ovn-northd-db-params.conf
58 echo ‘tcp:192.168.10.200:6641‘  >  /etc/openvswitch/ovnnb-active.conf
59 echo ‘tcp:192.168.10.200:6642‘  >  /etc/openvswitch/ovnsb-active.conf
60 echo ‘--ovnnb-db=tcp:192.168.10.147:6641 --ovnsb-db=tcp:192.168.10.147:6642‘ > /etc/openvswitch/ovn-northd-db-params.conf
61
62
63 # *将上面生成的文件copy到192.168.10.146、192.168.10.147
64
65 # 启动各个节上的corosync + pacemaker服务
66 systemctl enable corosync pacemaker
67 systemctl start corosync pacemaker

3. 命令管理corosync + pacemaker

crm_mon查看节点是否加入集群

crm configure 配置方法:

方法1:

 1 #crm configure
 2 property stonith-enabled=false
 3 primitive ovndb_servers ocf:ovn:ovndb-servers params master_ip="192.168.10.200" op start interval="0s" timeout="30s" op stop interval="0s" timeout="20s" op promote interval="0s" timeout="50s" op demote interval="0s" timeout="50s" op monitor interval="10s" timeout="20s"
 4 primitive ovnip ocf:heartbeat:IPaddr2 params ip="192.168.10.200" cidr_netmask="24" op start interval="0s" timeout="20s" op stop interval="0s" timeout="20s" op monitor interval="10s" timeout="20s"
 5 ms ovndb_servers-master ovndb_servers meta notify="true"
 6 colocation colocation-ovndb_servers-master-ovnip-INFINITY inf: ovndb_servers-master:Started ovnip:Master
 7 order order-ovnip-ovndb_servers-master-mandatory inf: ovnip:start ovndb_servers-master:start
 8 verify
 9 commit
10 bye

方法2:

 1 crm configure load repalce /root/ovndb-ha.conf
 2
 3 # ovndb-ha.conf内容如下:
 4 primitive ovndb_servers ocf:ovn:ovndb-servers params master_ip="192.168.10.200" op start interval="0s" timeout="30s" op stop interval="0s" timeout="20s" op promote interval="0s" timeout="50s" op demote interval="0s" timeout="50s" op monitor interval="10s" timeout="20s"
 5 primitive ovnip ocf:heartbeat:IPaddr2 params ip="192.168.10.200" cidr_netmask="24" op start interval="0s" timeout="20s" op stop interval="0s" timeout="20s" op monitor interval="10s" timeout="20s"
 6 ms ovndb_servers-master ovndb_servers meta notify="true"
 7 colocation colocation-ovndb_servers-master-ovnip-INFINITY inf: ovndb_servers-master:Started ovnip:Master
 8 order order-ovnip-ovndb_servers-master-mandatory inf: ovnip:start ovndb_servers-master:start
 9 property stonith-enabled=false
10 #property no-quorum-policy=ignore

自动加载配置:

1 crm configure save  ./ovndb-ha.conf
2 crm configure load replace ./ovndb-ha.conf
3 crm erase

*注意节点先启动 openvswitch.service!

crm_mon 显示各节点的状态

* 注 ovn-northd service HA:

1 #/usr/lib/ocf/resource.d/ovn/ovndb-servers
2 MANAGE_NORTHD_DEFAULT="yes"

参考文档:

http://docs.openvswitch.org/en/latest/topics/ovsdb-replication/

http://blog.csdn.net/rzhzhz/article/details/7104135

https://magedu.org/2016/04/23/corosync-pacemaker-mariadb/

https://mail.openvswitch.org/pipermail/ovs-dev/2016-October/324024.html

时间: 2024-12-18 06:48:07

OVN HA 实验的相关文章

【伊利丹】Hadoop2.0 NN HA实验记录

1.关于Hadoop2.2.0中HA的介绍 NameNode 简称: NN DateNode 简称: DN JournalNode  简称: JN Zookeeper  简称: ZK 从上面的图里,我们可以知道HA的大致架构: 01.利用共享存储来在两个NN之间同步元数据信息. 在NN中有两个重要的文件:一个是fsimage,一个是edits,其中fsimage指的是元数据镜像文件,存在磁盘中用来保持文件系统的目录树,然而edits指的是元数据操作日志,针对目录树的修改操作,被写入共享存储系统中

Hadoop2 namenode HA + 联邦 + Resource Manager HA 实验

实验的Hadoop版本为2.5.2,硬件环境是5台虚拟机,使用的均是CentOS6.6操作系统,虚拟机IP和hostname分别为: 192.168.63.171    node1.zhch 192.168.63.172    node2.zhch 192.168.63.173    node3.zhch 192.168.63.174    node4.zhch 192.168.63.175    node5.zhch ssh免密码.防火墙.JDK这里就不在赘述了.虚拟机的角色分配是: node

neutron routers HA 实验

测试环境: 5个节点(( controller,2  network,2 compute nodes)) 采用VXLAN+Linux Bridge 确定所有的neutron和nova服务都在运行 Nova service-list Neutron agent-list 2. 创建2个networks a)         neutron net-create private neutron subnet-create –name private-subnet private 10.0.0.0/2

【甘道夫】NN HA 对于 Client 透明的实验

之前转载过一篇[伊利丹]写的NN HA实验记录,该博客描述了主备NN透明切换的过程,也就是说,当主NN挂掉后,自动将备NN切换为主NN了,Hadoop集群正常运行. 今天我继续做了一个实验,目的是实现NN的切换不会对Client端程序造成影响,即NN切换对Client透明. 首先,很重要的一点: 要保证core-site.xml中的 <property> <name>fs.defaultFS</name> <value>hdfs://hadoop-clust

HA高可用实验报错

做HA实验时,启动heartbeat出现错误: ERROR: Client child command [/usr/lib/heartbeat/ipfail] is not executable ERROR: Heartbeat not started: configuration error. ERROR: Configuration error, heartbeat not started. 因为Linux是64位的,ha.cf 配置文件里 /usr/lib/heartbeat/ipfail

Linux 之HA集群酌置

HA(高可用 High avaiilable)集群 Web1 提供服务,如果1主宕机了,2备就可以马上启用,这样有用户这端没有任何影响. 在架构的时候要配置一条心跳线来传递信息.流动IP 也是就是VIP,是主从对外共同的IP. [[email protected] ~]# iptables -F [[email protected] ~]# getenforce Disabled [[email protected] ~]# vim /etc/hosts #在主上编译上 10.72.4.21 L

【甘道夫】Hadoop2.2.0 NN HA详细配置+Client透明性试验【完整版】

引言: 前面转载过一篇团队兄弟[伊利丹]写的NN HA实验记录,我也基于他的环境实验了NN HA对于Client的透明性. 本篇文章记录的是亲自配置NN HA的详细全过程,以及全面测试HA对客户端访问透明性的全过程,希望对大家有帮助. 实验环境: Hadoop2.2.0的4节点集群,ZK节点3个(ZK节点数最好为奇数个),hosts文件和各节点角色分配如下: hosts: 192.168.66.91 master 192.168.66.92 slave1 192.168.66.93 slave2

OVN Base flow L2/L3 forwarding

OVN 支持分布式逻辑路由器,每个计算节点都有逻辑路由器的实例,模型和 neutron 的 DVR 类似.OVN 目前只实现了一些基本的路由功能,比如路由查找,路由报文的转发还有动态 ARP,路由类型只支持直连路由,静态路由,动态路由没有计划支持. OVN 为每个 router interface 创建一对 OVS patch port,一个 patch port 连 logical switch,另一个连 logical router,和传统网络的拓扑一致.如下图所示,logical rout

HA高可用 遇到的错误

做HA实验时,启动heartbeat出现错误: ERROR: Client child command [/usr/lib/heartbeat/ipfail] is not executable ERROR: Heartbeat not started: configuration error. ERROR: Configuration error, heartbeat not started. 因为Linux是64位的,ha.cf 配置文件里 /usr/lib/heartbeat/ipfail