菜鸟学Linux 第088篇笔记 配置heartbeat基于crm管理

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

菜鸟学Linux 第088篇笔记 配置heartbeat基于crm管理





内容总览

上节回顾

CIB Cluster Information Base

/usr/lib/hearbeat下的文件解析

组播地址

配置heartbeat 基于crm来进行资源管理

基于gui的方式来实现集群的配置

基于hb v2, crm来实现MySQL高可用集群






上节回顾

web

vip,http,filesystem



HA services




Resource Type

primitive (native)

group

clone

STONITH (Shot The Other Node In The Head)

Cluster Filesystem

dlm: Distributed Lock Manager

master/slave

drbd: distribution replicated block device 



资源粘性

资源是否倾向于留在当前节点

正数:乐意

负数:离开


资源约束

location

colocation

order



heartbeat

authkeys

ha.cf

node

keepalive

bcast,mcast,ucast(先其一)

haresource


HA:

时间同步

ssh互信

主机名称要与uname -n保持一致,并通过/etc/hosts解析




CIB Cluster Information Base 集群信息库

同haresources配置文件




/usr/lib/hearbeat下的文件解析

ha_propagate 当某台节点上的资源信息配置文件更改,用来将其同步其它节点使用的

haresources2cib.by 用来将/etc/ha.d/haresources所配置的资源转换为xml格式 并存放

   至/var/lib/heartbeat/crm目录下

send_arp 当节点间资源切换时用来发广播自问自答,自己的节点再回复广播(mac变更)

pengine (policy engine) 计算

tengine (transaction engine) 协调

quorumd 法定票数

lrmd (local resource manager)

ccm (cluster configuration manager) 管理cib提供的专用管理工具




CRM (Cluster Resource Manager)

为那些非ha-aware的应用程序提供调用的基础平台

提供命令行式的交互来管理资源、配置等


crmd 进程  提供一个管理的API

提供GUI接口

提供CLI接口


crm --> pacemaker 管理功能变得非常强大



组播


原理简介


  组播报文的目的地址使用D类IP地址, 范围是从224.0.0.0到239.255.255.255。D类

址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径

是从地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP网络中传输。然而在

ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都

加入 到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组

中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和

离开组播组。



组播组分类

  组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为

永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久

组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使

用的ip组播地址,可以被临时组播组利用。

  224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不

做分配,其它地址供路由协议使用;

  224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;

  224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内

有效;

  239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。



常用预留组播地址

  列表如下:

  224.0.0.0 基准地址(保留)

  224.0.0.1 所有主机的地址 (包括所有路由器地址)

  224.0.0.2 所有组播路由器的地址

  224.0.0.3 不分配

  224.0.0.4 dvmrp 路由器

  224.0.0.5 ospf 路由器

  224.0.0.6 ospf dr

  224.0.0.7 st 路由器

  224.0.0.8 st 主机

  224.0.0.9 rip-2 路由器

  224.0.0.10 Eigrp 路由器

  224.0.0.11 活动代理

  224.0.0.12 dhcp 服务器/中继代理

  224.0.0.13 所有pim 路由器

  224.0.0.14 rsvp 封装

  224.0.0.15 所有cbt 路由器

  224.0.0.16 指定sbm

  224.0.0.17 所有sbms

  224.0.0.18 vrrp

  以太网传输单播ip报文的时候,目的mac地址使用的是接收者的mac地址。但是在传

输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使

用的是组播mac地址。组播mac地址是和组播ip地址对应的。

iana(internet assigned number authority)规定,组播mac地址的高24bit为0x01005e

,mac 地址的低23bit为组播ip地址的低23bit。

  由于ip组播地址的后28位中只有23位被映射到mac地址,这样就会有32个ip组播地址

映射到同一mac地址上。




配置heartbeat 基于crm来进行资源管理

crm respawn 在ha.cf添加此条则表示要基于crm来管理资源


配置后将其配置文件同步到其它节点

# /usr/lib/heartbeat/ha_propagate



配置heartbeat 使用组播发送 心跳信息 (在生产环境中建议使用此种方式)



基于gui的方式来实现集群的配置 (注意一定要连接到DC的节点上)

heartbeat-gui 需要安装此rpm包

调用heartbeat-gui需要使用账号密码,安装heartbeat会自动创建该账号,

只需要修改其密码即可  hacluster账号

# passwd hacluster


运行图形窗口的heartbeat-gui(前提你的远程访问接口得支持,xmanager支持)

# hb_gui &

参数解析

linux-ha

with quorum 具有法定票数

No Quorum Policy 无法定票数所采取的动作 stop(默认) igonre freeze

Symmetric Cluster 对称自动流转 非对称需要指定流转

Stonith Action

Default Resource Stickiness

Default Resource Failure Stickiness

Is Managed Default 是否可管理

Cluster Delay


Advanced


Resources

add

native

IPaddr::192.168.11.100/16/eth0

gruop

location

order

colocation





定义组可以将资源都限定放到同一个节点中(资源的顺序即为启动资源的顺序)


定义资源的约束也可以做限定,限定其运行的节点,启动顺序等

先添加单个资源








基于hb v2, crm来实现MySQL高可用集群


nfs, samba, iscsi


NFS: MySQL app, data


/etc/my.cnf --> /etc/mysql/mysql.cnf

$MYSQL_BASE

--default-extra-file=


node1 uid gid mysql, mysql


3台电脑 两台ha  一台nfs


nfs ip 192.168.11.105

ha1 ip 192.168.11.101

ha2 ip 192.168.11.102



        1. 在nfs系统里创建lvm (logical volume manager)分区

         pvcreate

         vgcreate

         lvcreate -L #G -n name vg-name

        

         将lvm添加到开机挂载 /etc/fstab

         /dev/myvg/mydata /mydata ext3 defaults 0 0

        

         # mkdir /mydata

         # mount -a

        

        

        2. 创建mysql用户mysql组 id 3306 (注意ha也要创建相同ID的mysql)

         groupadd -g gid g-name

         useradd -u uid -g g-name -s /sbin/nologin -M mysql

        

         mkdir /mydata/data

         chown -R mysql.mysql /mydata/data

        

        

        3. 建立nfs共享目录

         vim /etc/exports

         /mydata/data 192.168.11.101/32(no_root_squash,rw),192.168.11.102(rw)

         (切记要配置no_root_squash要不然mysql初始化无法进行)

         exportfs -arv

        

         ha手动先测试是否可以挂载,并可以进行读写

         先创建相同的mysql组id和mysq用户id 

         然后再进行挂载测试 可以先给mysql一个家目录 测试可以写操作后 再改为不可登录 

         测试成功后umount

        

        4. ha1配置二进制mysql安装初始化

         安装和初始化这里不细说前边章节有详细安装过程

        

         注意先将nfs目录挂载至本地再执行如下选项 测试成功后将挂载再次umount

        

         配置/etc/my.cnf

         datadir = /mydata/data

         innodb_file_per_table = 1

        

         添加mysql服务脚本时,,切记不要让其开机自动启动

         chkconfig --add mysql

         chkconfig mysql off

        

         ha2只需要安装二进制mysql软件和将nfs目录挂载即可

         复制ha1上的配置文件my.cnf mysql服务脚本

         如果测试完成没有问题后将mysql服务关闭,并umount

        

        

        5.基于hb_gui来配置mysql的高可用

        ha mysql

         vip, mysql, filesystem

        

         vip --> filesystem --> mysqld

        

         # ha_gui &

         个人使用的xmanager必须是可以远程启动图形客户端的远程访问软件

        

         将其配置为同一个组 注意启动的前后顺序

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1893786如需转载请自行联系原作者


Winthcloud

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
6天前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
15 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
1天前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
8天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
11天前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
14天前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
9 1
|
15天前
|
Unix Shell Linux
技术笔记:linux中SIGHUP与nohup的关系
技术笔记:linux中SIGHUP与nohup的关系
12 1
|
15天前
|
域名解析 网络协议 Linux
Linux系统下DNS配置指南
Linux系统下DNS配置指南
27 1
|
7天前
|
网络协议 Linux 开发工具
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
|
7天前
|
Ubuntu Linux
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re