一、简介gui

heartbeat的v2版本将v1中haresources配置文件使用GUI图形配置接口来配置高可用集群。更加便捷,直观。

二、准备条件和资源规划见上文http://www.cnblogs.com/jym1/p/8073164.html

三、heartbeat-gui配置

1、安装

解决依赖关系
[root@node1 heartbeat]# yum install libtool-ltdl -y
[root@node1 heartbeat]# yum install net-snmp-libs libnet PyXML pygtk2-libglade -y
[root@node1 heartbeat]# rpm -ivh heartbeat-pils-2.1.-.el6.x86_64.rpm
[root@node1 heartbeat]# rpm -ivh heartbeat-stonith-2.1.-.el6.x86_64.rpm
[root@node1 heartbeat]# yum -y localinstall heartbeat-2.1.-.el6.x86_64.rpm
安装gui
[root@node1 heartbeat]# yum -y localinstall heartbeat-gui-2.1.-.el6.x86_64.rpm
heartbeat 安装组件说明
    heartbeat 核心组件  *    
    heartbeat-devel 开发包    
    heartbeat-gui 图形管理接口 *    (这个必须安装,这篇博文重点讲解图形资源管理器)
    heartbeat-ldirectord 为lvs高可用提供规则自动生成及后端realserver健康状态检查的组件    
    heartbeat-pils 装载库插件接口 *    
    heartbeat-stonith 爆头接口 *
 
2、配置
复制配置文件至/etc/ha.d目录下
[root@node1 ~]# cp /usr/share/doc/heartbeat-2.1./{ha.cf,haresources,authkeys} /etc/ha.d/
配置认证文件
auth
# crc
sha1 XUcb+fkiktY49z6zVHTy2A
# md5 Hello! [root@node2 heartbeat-2.1.]# openssl rand -base64
XUcb+fkiktY49z6zVHTy2A== 配置ha.cf文件,定义集群的工作方式
定义日志文件位置(二选一) logfacility为将日志交由syslog管理
logfile /var/log/ha-log
#logfacility local0
多长时间发送一次心跳信息,默认为2秒
#keepalive
多长时间宣布某节点死亡,默认30秒
#deadtime
多长时间警告对方心跳信息延迟了,默认10秒
#warntime
第一次死去时间,避免因网络问题导致宣布死亡
#initdead
使用udp694端口传递心跳,并选择哪种方式传递心跳
#udpport
串行线缆传递心跳
#serial /dev/ttyS0 # Linux
#serial /dev/cuaa0 # FreeBSD
#serial /dev/cuad0 # FreeBSD .x
#serial /dev/cua/a # Solaris
串行线缆的工作频率
#baud
广播传递心跳
#bcast eth0 # Linux
#bcast eth1 eth2 # Linux
#bcast le0 # Solaris
#bcast le1 le2 # Solaris
多播传递心跳,网卡必须支持多播,ifconfig | grep MULTICAST
mcast eth0 225.0.0.1 #端口694,TTL为1,不允许回传为0
#启用网卡支持多播
[root@node1 ha.d]# ip link set eth0 multicast on 单薄传递心跳
#ucast eth0 192.168.1.2
自动故障转回
auto_failback on
指明节点
#node ken3
#node kathy
node node1
node node2
加入crm开启这行,on或者respawn都可以
crm on 指明网关为ping node设备(仲裁设备)
#ping 10.10.10.254
ping 192.168.0.1
指明一个组为ping node设备(仲裁设备)
#ping_group group1 10.10.10.254 10.10.10.253
指明节点间传送的压缩算法
compression bz2
指明节点间传送数据压缩的最小数据为2KB
compression_threshold 配置haresource文件,加入资源
node1 192.168.0.17//eth0/192.168.0.255 httpd

3、配置双节点

[root@node1 ha.d]# scp /etc/ha.d/{ha.cf,authkeys} node2:/etc/ha.d/
ha.cf % 10KB .3KB/s :
authkeys % .7KB/s :
[root@node1 ha.d]# scp /etc/ha.d/haresources node2:/etc/ha.d/
haresources % .8KB/s : 将认证文件的权限改为600
[root@node1 ha.d]# chmod authkeys ; ssh node2 'chmod 600 /etc/ha.d/authkeys ' 启动服务
[root@node1 ha.d]# service heartbeat start; ssh node2 'service heartbeat start'
logd is already running
Starting High-Availability services:
Done. logd is already running
Starting High-Availability services:
Done.

此时以禁用haresource资源管理器,下面使用gui界面配置资源

4、gui配置

因为gui需要用户密码登录,因此为hacluster设置密码
[root@node1 ~]# echo "linus" | passwd --stdin hacluster
Changing password for user hacluster.
passwd: all authentication tokens updated successfully. 将Resources配置文件通过脚本生成crm,可省略,crm会自动生成
[root@node2 crm]# cd /usr/lib64/heartbeat
[root@node2 heartbeat]# ./haresources2cib.py /etc/ha.d/haresources 因为gui需要图形化界面支持,所以安装KDE桌面,远程软件中xshell支持,CRT等不支持
xshell配置步骤如下
File --> Properties --> SSH --> Tunneling --> Forward X11 connections to下的Xmanager
[root@node1 ~]# yum groupinstall KDE Desktop -y
安装完毕后退出xshell,重新登录后即可 查看状态
[root@node2 ha.d]# crm_mon
命令行接口
[root@node2 ha.d]# crm_sh
/usr/sbin/crm_sh:: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
from popen2 import Popen3
crm # nodes
crm nodes # list
<node id="da321285-0881-449f-b249-d912a65c1954" uname="node2" type="normal"/>
<node id="0b161e79-35d1-44a9-a09a-e7ae7e80659d" uname="node1" type="normal"/>
crm nodes # status
<node_state id="da321285-0881-449f-b249-d912a65c1954" uname="node2" crmd="online" crm-debug-origin="do_lrm_query" shutdown="" in_ccm="true" ha="active" join="member" expected="member">
<node_state id="0b161e79-35d1-44a9-a09a-e7ae7e80659d" uname="node1" crmd="online" crm-debug-origin="do_lrm_query" shutdown="" in_ccm="true" ha="active" join="member" expected="member"> 查看端口与服务是否正常(所有节点一致)
[root@node1 ~]# ss -tunlp | grep heartbeat
udp UNCONN 225.0.10.1: *:* users:(("heartbeat",,),("heartbeat",,))
udp UNCONN *: *:* users:(("heartbeat",,),("heartbeat",,))
[root@node1 ~]# ss -tunlp | grep mgmtd
tcp LISTEN *: *:* users:(("mgmtd",,))
[root@node1 ~]# ps -ef | grep heartbeat
root : ? :: heartbeat: master control process
nobody : ? :: heartbeat: FIFO reader
nobody : ? :: heartbeat: write: mcast eth0
nobody : ? :: heartbeat: read: mcast eth0
nobody : ? :: heartbeat: write: ping 192.168.0.1
nobody : ? :: heartbeat: read: ping 192.168.0.1
: ? :: /usr/lib64/heartbeat/ccm
: ? :: /usr/lib64/heartbeat/cib
nobody : ? :: /usr/lib64/heartbeat/lrmd -r
nobody : ? :: /usr/lib64/heartbeat/stonithd
: ? :: /usr/lib64/heartbeat/attrd
: ? :: /usr/lib64/heartbeat/crmd
root : ? :: /usr/lib64/heartbeat/mgmtd -v
root : pts/ :: grep heartbeat 启动gui
[root@node1 ~]# hb_gui &

图形界面如下

输入密码登录

登录后界面如下

配置资源

loction,order,colocation是位置顺序序列的约束条件

定义组资源

之后在定义资源的时候选择加入组即可

定义约束关系(序列约束)

其余约束关系定义,位置约束要选明score

资源约束(3种类型):
    位置约束(locations):资源更倾向于哪个节点上 ,使用数值表示;    
        inf: 无穷大
        n: 表示数值,要对节点间的做比较来决定最后落在那个节点上(此处n为正值)
        -n: 同上,如果节点间的位置约束均为负值,则最后运行于接近正值的节点上
        -inf: 负无穷(只要有其它选择,就不会选择此节点 )
    排列约束(Colocations):资源运行在同一节点的倾向性;
        inf: 无限倾向于在一起
        -inf: 无限倾向于不在一起
    顺序约束(orders):资源启动次序及关闭次序;
位置约束说明
    ID:表示为约束记录起一个名字
    from to:表示那一个资源与那一个资源(此处写上面定义资源名字即可)
    score:在一起的可能性(也可以是数值,比如10,-10)
    INFINITY:webip必须要和webserver在一个节点上
    -INFINITY:webipbu不和webserver在一个节点上
     
一般来说,我们可以将资源定义为组,也可以将基本资源使用约束关系定义。
高可用集群启动顺序:webip --> webfilesystem(nfs)-->webserver

heartbeat-gui的更多相关文章

  1. CentOS6.5_x64上简单编译配置Heartbeat3.0.4

    Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理.即h ...

  2. Centos下使用Heartbeat实现集群[转]

    Linux 包括 CentOS 下高可用性(HA:High Availability)集群方案很多,而 Heartbeat 是比较常见和性价比比较高的一种。一、硬件及网络连接 群集一般需要2台以上服务 ...

  3. synapse socket总结三:心跳(Heartbeat)

    首先转载一篇关于心跳的博文解释: 所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已.代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到 ...

  4. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  5. 如何通过Git GUI将自己本地的项目上传至Github

    最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...

  6. git图像化界面GUI的使用

    GIT学习笔记 一.        基础内容 1.git是一个版本控制软件,与svn类似,特点是分布式管理,不需要中间总的服务器,可以增加很多分支. 2.windows下的git叫msysgit,下载 ...

  7. egret GUI 和 egret Wing 是我看到h5 最渣的设计

    一个抄袭FlexLite抄的连自己思想都没有,别人精髓都不懂的垃圾框架.也不学学MornUI,好歹有点自己想法. 先来个最小可用集合吧: 1. egret create legogame --type ...

  8. [C#] 走进异步编程的世界 - 在 GUI 中执行异步操作

    走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继<开始接 ...

  9. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  10. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

随机推荐

  1. POSTFIX服务简介

    传统的Sendmail将所有功能都集中在同一个程序里,这种结构我们称之为“单体式设计”(monolithic).Postfix采用专职负责的策略,不同的功能分别交由不同的专门程序处理,这种结构称为“模 ...

  2. Codeforces Round #118 (Div. 1) A. Plant

    A. Plant 题目链接:http://codeforces.com/problemset/problem/185/A 题意:一个植物会长,一开始是一个正三角形,每过一年,一个向上的正三角形会变成三 ...

  3. python的@classmethod和@staticmethod

    本文是对StackOverflow上的一篇高赞回答的不完全翻译,原文链接:meaning-of-classmethod-and-staticmethod-for-beginner Python面向对象 ...

  4. centos7虚拟机克隆

    第一步:克隆 打开VMware,确认已经完成安装配置的centos7虚拟机在关闭状态. 右键点击虚拟机,选择“管理”-“克隆” 原始虚拟机名称为“master”,IP地址为“192.168.80.10 ...

  5. JS获取当前网页大小以及屏幕分辨率等

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  6. python爬虫 (一) 爬虫基础了解,urllib

    • URL的含义: 统一资源定位符,结构: URL的格式由三部分组成: ①第一部分是协议(或称为服务方式). ②第二部分是存有该资源的主机IP地址(有时也包括端口号). ③第三部分是主机资源的具体地址 ...

  7. PAT 1121 Damn Single[简单]

    1121 Damn Single (25 分) "Damn Single (单身狗)" is the Chinese nickname for someone who is bei ...

  8. Portal系统中当切换学生时仍旧停留在当前页面的实现方法

    一.BaseController.cs文件 1.OnActionExecuting方法,该方法可以被各子Controller重写 protected override void OnActionExe ...

  9. SQL Server 数据分页查询

    最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...

  10. HDU 2191 珍惜现在,感恩生活(多重背包模板题)

    多重背包模板题 #include<iostream> #include<cstring> #include<algorithm> using namespace s ...