linux corosync+pacemaker+drbd+mysql配置安装详解

Linux corosync+pacemaker+drbd+mysql配置安装详解攻略

本攻略将介绍在Linux系统上使用corosync+pacemaker+drbd+mysql实现高可用性的配置方法。每个组件都有其特定的功能,这些功能可以实现高可用性,并确保在整个系统出现故障时系统可用。本攻略介绍的步骤如下:

  1. 安装并配置corosync
  2. 安装并配置pacemaker
  3. 安装并配置drbd
  4. 安装并配置mysql
  5. 测试

安装并配置corosync

corosync是用于群集,高可用性网络和集群通信用途的开源软件。它可以与pacemaker一起使用,以实现高可用性。在这里,我们将提供在CentOS 7上安装corosync的步骤。

  1. 下载与安装相应的RPM包
sudo yum install corosync corosynclib corosynclib-devel
  1. 编辑新增配置文件/etc/corosync/corosync.conf。

  2. 输入如下配置信息,并保存文件,内容如下:

# corosync.conf file configuration for two nodes
totem {
        version: 2
        secauth: off
        cluster_name: HA_clu
        transport: udpu
}

quorum {
        provider: corosync_votequorum
    expected_votes: 2
        two_node: 1
}

nodelist {
  node {
    ring0_addr: <NODE-1-IP-ADDRESS>
    nodeid: 1
    name: <hostname for Node 1>
  }
  node {
    ring0_addr: <NODE-2-IP-ADDRESS>
    nodeid: 2
    name: <hostname for Node 2>
  }
}
  1. 加载corosync服务并使其启动:
systemctl enable corosync
systemctl start corosync

安装并配置pacemaker

pacemaker是一个开源集群资源管理器。它可以管理多种类型的资源,并监控应用程序的状态变化。在这里,我们将介绍如何安装pacemaker。

  1. 在两个节点上安装pacemaker。
sudo yum install pacemaker pcs
sudo systemctl enable pacemaker
sudo systemctl start pacemaker
sudo systemctl enable pcsd
sudo systemctl start pcsd
  1. 创建pacemaker的HA的认证User和group,并分配密码:
sudo passwd hacluster
useradd -d /home/HAcluser -m hacluster
passwd hacluster
  1. 添加node1和node2认证数据到pcs:
sudo pcs cluster auth node1 node2 -u hacluster -p hacluster_password --force
  1. 创建pcmk配置:
sudo pcs cluster setup --start --name ha_cluster node1 node2
  1. 启动集群:
sudo pcs cluster start --all

安装并配置DRBD

DRBD(Distributed Replicated Block Device)是一种开源技术,可将块设备镜像同步到另一台服务器。在这里,我们将介绍如何安装和配置DRBD。

  1. 在两个节点上安装drbd:
sudo yum install kmod-drbd drbd-utils -y
  1. 确认节点同步和自动启动
# Step 1: Unload the DRBD module if it is already loaded
modprobe -r drbd

# Step 2: Clear metadata
sudo drbdadm create-md drbd_device

# Step 3: Load the drbd kernel module on node1
sudo modprobe drbd

# Step 4: Create the DRBD resource on node1
sudo drbdadm create-md r0

# Step 5: Start DRBD resource on node1
sudo drbdadm up r0

# Step 6: Set node1 as the primary node 
sudo drbdadm primary r0 --force

# Step 7: Manually synchronize data between both nodes. 
sudo drbdadm syncer r0
  1. 创建并配置DRBD资源的用户名和密码。
sudo passwd hacluster
  1. 创建并配置DRBD资源。
sudo drbdadm create-md <DRBD-DEVICE>
sudo systemctl enable drbd
sudo systemctl start drbd

安装并配置MySQL

在一个DRBD容器上,主要的服务是MySQL数据库。我们需要安装MySQL,进行必要的配置和设置。

  1. 在两个节点上安装MySQL。
sudo yum install mysql-server -y
  1. 配置MySQL主从同步。
sudo systemctl enable mysqld
sudo systemctl start mysqld
sudo mysql_secure_installation

mysql -u root -p

use mysql;
update user set password=PASSWORD("NEWPASSWORD") where User='root';
  1. 编辑my.cnf配置文件,添加以下配置:
bind-address=127.0.0.1
server-id = <DRBD-RESOURCE-ID>
log-bin = mysql-bin
binlog-format = ROW
binlog-do-db = DATABASE
  1. 将my.cnf配置文件复制到DRBD的主节点。
sudo scp /etc/my.cnf root@<DRBD-NODE-1-IP>:/etc/my.cnf
  1. 在DRBD的主节点上启动MySQL。
sudo systemctl start mysqld
  1. 导出MySQL的数据。
mysqldump -uroot -pMYSQL_ROOT_PASSWORD --all-databases --routines --triggers > db-backup.sql
  1. 在从节点上安装MySQL。
sudo yum install mysql-server -y
sudo systemctl enable mysqld
sudo systemctl start mysqld
  1. 复制从节点my.cnf文件到主节点,并在主节点配置my.cnf文件。
sudo scp /etc/my.cnf root@<DRBD-NODE-2-IP>:/etc/my.cnf
  1. 启用DRBD的复制,使从节点与主节点同步。
sudo drbdadm primary r0 --force
sudo mkfs.ext4 /dev/drbd0
sudo mount /dev/drbd0 /mnt

# Move the MySQL data files to the DRBD configuration directory
mv /var/lib/mysql/ /mnt/

# Symlink the MySQL data files to the location where MySQL expects the
# data directory.
ln -s /mnt/mysql /var/lib/mysql

sudo systemctl start mysqld

测试

  1. 确保MySQL版本处理正确。
mysql -V
  1. 创建数据库
mysqldump -uroot -pMYSQL_ROOT_PASSWORD --all-databases --routines --triggers > db-backup.sql
  1. 确保所有节点上的mysql实例都在运行。
sudo systemctl status mysqld
  1. 停止MySQL服务并卸载挂载点。
sudo systemctl stop mysqld
sudo umount /mnt
  1. 确认所有节点都漏掉了MySQL服务。
sudo systemctl status mysqld

本攻略介绍的是Linux中使用corosync、pacemaker、drbd和mysql实现高可用性的详细过程。所有的步骤都非常重要,且必须按照给定的顺序逐一执行。通过按照步骤操作,最终可以创建一个具有高可用性的MySQL环境。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux corosync+pacemaker+drbd+mysql配置安装详解 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 如何使用Python在MySQL中使用行级锁?

    在MySQL中,行级锁是一种用于控制并发访问的机制,它可以确保多个用户同时访问同一行时不会发生冲突。在Python中,可以使用MySQL连接来执行行级锁查询。以下是在Python使用行级锁的完整攻略,包括行级锁的基本语法、使用行级锁的例以及如何在Python中使用行。 行级锁的基本语法 在MySQL中,可以使用SELECT语句来获取行级锁。以下是行级锁的基语…

    python 2023年5月12日
    00
  • mysql连接查询、联合查询、子查询原理与用法实例详解

    mysql连接查询、联合查询、子查询原理与用法实例详解 连接查询 连接查询操作可以将多个表中的数据按照某些条件进行关联,获取到联合信息后进行数据展示。连接查询可以使用 join 或者其简化版本使用关键字 as 直接将表名称关联在一起。 JOIN JOIN 操作包括了 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER J…

    database 2023年5月22日
    00
  • Redis Zset类型跳跃表算法实现(JAVA)

      Redis 有序集合类型(zset) 底层核心实现的机制就是跳跃表   最近公司搞了技术分享的活动,正好快到我了,最近在研究Redis就说说redis实现的原理吧. 发现还是晚上脑子比较好使,建议看代码时候边看边画图 推荐画图工具 http://draw.io/ 首先定义一个双向链表的类       双向链表的流程图    跳跃表的结构图        …

    Redis 2023年4月12日
    00
  • SQL Server中Table字典数据的查询SQL示例代码

    查询Table(表)字典数据是SQL Server数据库管理中必不可少的一部分。Table字典数据的查询可以帮助我们了解表的结构、大小和关系,方便我们进行数据库维护和优化。下面是SQL Server中Table字典数据的查询SQL示例代码的完整攻略: 1.使用系统保存的存储过程查询Table字典数据的SQL示例代码 在SQL Server中,系统自带了sp_…

    database 2023年5月21日
    00
  • 使用Jedis操作Redis-使用Java语言在客户端操作—对Sorted-Sets的操作

        1 //对Sorted-Sets操作 2 /** 3 * Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。 4 * 它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。 5 * 然而需要额外指出…

    Redis 2023年4月12日
    00
  • SQL中Exists的用法

    当我们使用SQL查询语句时,经常会遇到需要判断某些条件是否存在的情况。在这种情况下,可以使用SQL中的Exists语句来进行判断。下面将详细讲解SQL中Exists的用法。 Exists语句是什么 Exists语句用于判断一个子查询是否返回结果。如果返回结果,则Exists语句返回TRUE,否则返回FALSE。Exists语句的基本用法如下: SELECT …

    database 2023年5月21日
    00
  • MySQL自定义函数简单用法示例

    下面我将为您讲解MySQL自定义函数的用法示例攻略,包含以下几个部分: 自定义函数介绍 MySQL中,自定义函数是一种用户自定义的函数,可以像系统自带函数一样被调用,方便用户在执行SQL语句时进行各类自定义操作。 自定义函数使用方法 2.1 创建自定义函数使用CREATE FUNCTION语句进行创建,一般包括函数名称、参数列表、返回值数据类型、函数体等四部…

    database 2023年5月22日
    00
  • Redis(四)——持久化方案(RDB和AOF使用)

    一、持久化的作用 1.什么是持久化 redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上 2.持久化的实现方式 快照:某时某刻数据的一个完成备份 -mysql的Dump -redis的RDB 写日志:任何操作记录日志,要恢复数据,只要把日志重新走一遍即可 -mysql的 Binlog -Hhase的 HLog -Redis的 AOF 二、RDB…

    Redis 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部