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日

相关文章

  • oracle 批量删除表数据的几种方法

    Oracle 批量删除表数据的几种方法 在 Oracle 数据库中,我们可以使用以下几种方法批量删除表数据: TRUNCATE TABLE DELETE 通过 PL/SQL 编写存储过程实现删除 1. TRUNCATE TABLE TRUNCATE TABLE 是一种快速删除表数据的方法,其会直接清空表中的所有数据。但是, TRUNCATE TABLE 操作…

    database 2023年5月21日
    00
  • 详解redis集群选举机制

    详解Redis集群选举机制攻略 什么是Redis集群? Redis集群是Redis的分布式高可用解决方案,它支持自动分片、节点间复制以及故障转移等特性。Redis集群是由多个节点组成的,每个节点负责存储一定数据,同时也负责维护集群的状态和协调各个节点之间的数据交换。 Redis集群选举机制 在Redis集群中,每个节点都可以扮演以下三种角色之一: 主节点:负…

    database 2023年5月22日
    00
  • mysql数据库操作_高手进阶常用的sql命令语句大全 原创

    MySQL数据库操作 – 高手进阶常用的SQL命令语句大全 前言 MySQL是目前最流行的关系型数据库管理系统之一,它的功能强大,功能丰富,可以广泛应用于各种类型的Web应用程序和网站。本文将讲解MySQL数据库操作中的高手进阶常用的SQL命令语句大全,方便开发者更好地理解和应用这些常用命令。 创建数据库 创建一个名称为”testdb”的数据库: CREAT…

    database 2023年5月21日
    00
  • SQL Server 2016的数据库范围内的配置详解

    SQL Server 2016的数据库范围内的配置详解 本篇攻略将详解SQL Server 2016的数据库范围内的配置,包括数据库级别的配置、文件组和文件级别的配置以及数据页级别的配置等多个方面。 数据库级别的配置 在SQL Server 2016中,我们可以通过以下方式对数据库进行配置: 1. 配置自动关闭数据库选项 我们可以设定数据库在空闲一段时间后自…

    database 2023年5月19日
    00
  • 如何使用Python实现数据库中数据的全文检索?

    以下是使用Python实现数据库中数据的全文检索的完整攻略。 数据库中数据的全文检索简介 在数据库中,全文检索是指根据关键字检索查询。在Python中,可以使用pymysql连接到MySQL数据库,并使用SELECT语句实现全文检索。 步骤1:连接数据库 在Python中,可以使用pymysql连接MySQL数据库。以下是连接到MySQL的基本语法: imp…

    python 2023年5月12日
    00
  • 数据库系统和数据仓库的区别

    数据库系统(Database System)指的是包含了数据存储、管理和查询等功能的信息系统,由数据库和数据库管理系统(DBMS)组成,是存储、管理和维护数据的关键技术,用于解决数据管理中的问题。而数据仓库(Data Warehouse)则是一种特殊类型的数据库,用于支持企业级业务分析和决策。 下面分别从数据模型、数据源、查询方式和数据分析四个方面分析数据库…

    database 2023年3月27日
    00
  • Linux下启动Oracle服务和监听程序步骤

    启动Oracle服务和监听程序是在Linux下安装和配置Oracle数据库之后需要操作的重要步骤,以下是完整的步骤攻略: 1. 启动Oracle服务 1.1 进入Oracle用户 进入Oracle用户,一般为oracle用户,如果你使用的是其他的用户,可以根据实际情况进行替换。 su – oracle 1.2 启动Oracle服务 通过Oracle提供的脚本…

    database 2023年5月18日
    00
  • redis调优 — 内存碎片

    最近查看了一下redis运行状况,发现公司测试服务器的redis内存不太够用,但是实际占用内存的数据量其实不大,以前也没有这种情况,之前在cache层新增了一个防刷积分任务的逻辑才会这样,搜索一下原因,发现原来是产生了大量的内存碎片。 首先,查看redis的内存状态,要用info memory指令   2018-06-01_110028.png ps:(这个…

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