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

yizhihongxing

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日

相关文章

  • 详解MySQL主从复制及读写分离

    详解MySQL主从复制及读写分离攻略 概述 MySQL主从复制和读写分离是MySQL数据库的高可用性和性能优化的常用手段。主从复制可以帮助我们实现数据备份和数据可靠性并提高读写性能,读写分离能够分担主数据库的读压力,优化读取性能。本文将详细讲解MySQL主从复制和读写分离的配置方法及注意事项。 MySQL主从复制 什么是MySQL主从复制? MySQL主从复…

    database 2023年5月19日
    00
  • MySQL 删除数据库中重复数据方法小结

    MySQL 删除数据库中重复数据方法小结 在实际开发过程中,经常会遇到需要删除数据库中的重复数据的情况。本文将介绍如何使用MySQL来删除数据库中重复的数据。 方法一:使用DISTINCT DISTINCT关键字可以用于返回唯一不同的值,我们可以使用它来找出重复的数据,并将它们删除掉。 DELETE FROM table_name WHERE column_…

    database 2023年5月21日
    00
  • SQL SERVER编写存储过程小工具

    首先我们需要明确“SQL Server编写存储过程小工具”的概念,它是指一种帮助我们编写SQL Server存储过程的工具,它可以显著提高我们编写存储过程的效率和准确性。下面,我将为您提供一份完整的攻略,包括以下几个步骤: 安装SQL Server编写存储过程小工具 打开SQL Server编写存储过程小工具 创建存储过程 编写存储过程 测试存储过程 保存存…

    database 2023年5月21日
    00
  • DB2编程序技巧 (八)

    DB2编程技巧第八篇,讲述了如何在多个查询之间共享临时表。这个技巧可以提高数据库的性能,在复杂查询时有效降低查询时间和资源消耗。全文分为以下几个部分: 1. 什么是临时表? 在DB2数据库中,临时表是一个可在内存中和/或磁盘上创建的表,它存在于会话期间或直到连接关闭。临时表适合存储临时数据,如子查询的结果集、中间结果集或其他临时数据。临时表的好处是,它们只能…

    database 2023年5月19日
    00
  • ThinkPHP中关联查询实例

    ThinkPHP中关联查询实例 ThinkPHP的关联查询功能可以让我们更加便捷、灵活的进行数据查询操作。具体来说,我们可以通过关联查询对多张数据表进行联合查询,得到更加具有实际意义和完整性的数据结果集。下面,我来为大家详细讲解如何使用ThinkPHP进行关联查询操作。 1. 基本概述 ThinkPHP中的关联查询主要有两种: 一对一关联 一对多关联 在关联…

    database 2023年5月21日
    00
  • minio安装部署及使用的详细过程

    下面我就来给您介绍一下“minio安装部署及使用的详细过程”的完整攻略: 一、安装minio 1.获取并解压minio二进制文件 wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio 2.运行minio ./minio server /data 二、使用m…

    database 2023年5月22日
    00
  • MySQL5.6安装步骤图文详解

    下面是“MySQL5.6安装步骤图文详解”的完整攻略。 环境准备 在开始安装MySQL5.6之前,请确保您的系统已经满足以下要求: 操作系统:Linux、Windows、macOS其中的一个。 硬件配置:至少512MB内存,1GB以上推荐。 安装包:MySQL5.6的安装包,可以从官方网站下载。 安装步骤 下载安装包 首先,从MySQL官网下载MySQL5.…

    database 2023年5月22日
    00
  • mybatis中Oracle参数为NULL错误问题及解决

    问题描述: 在使用MyBatis操作Oracle数据库时,如果Mapper文件中的参数值为NULL,则会出现SQL异常,例如: Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式 The error may exist in com/exampl…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部