Linux corosync+pacemaker+drbd+mysql配置安装详解攻略
本攻略将介绍在Linux系统上使用corosync+pacemaker+drbd+mysql实现高可用性的配置方法。每个组件都有其特定的功能,这些功能可以实现高可用性,并确保在整个系统出现故障时系统可用。本攻略介绍的步骤如下:
- 安装并配置corosync
- 安装并配置pacemaker
- 安装并配置drbd
- 安装并配置mysql
- 测试
安装并配置corosync
corosync是用于群集,高可用性网络和集群通信用途的开源软件。它可以与pacemaker一起使用,以实现高可用性。在这里,我们将提供在CentOS 7上安装corosync的步骤。
- 下载与安装相应的RPM包
sudo yum install corosync corosynclib corosynclib-devel
-
编辑新增配置文件/etc/corosync/corosync.conf。
-
输入如下配置信息,并保存文件,内容如下:
# 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>
}
}
- 加载corosync服务并使其启动:
systemctl enable corosync
systemctl start corosync
安装并配置pacemaker
pacemaker是一个开源集群资源管理器。它可以管理多种类型的资源,并监控应用程序的状态变化。在这里,我们将介绍如何安装pacemaker。
- 在两个节点上安装pacemaker。
sudo yum install pacemaker pcs
sudo systemctl enable pacemaker
sudo systemctl start pacemaker
sudo systemctl enable pcsd
sudo systemctl start pcsd
- 创建pacemaker的HA的认证User和group,并分配密码:
sudo passwd hacluster
useradd -d /home/HAcluser -m hacluster
passwd hacluster
- 添加node1和node2认证数据到pcs:
sudo pcs cluster auth node1 node2 -u hacluster -p hacluster_password --force
- 创建pcmk配置:
sudo pcs cluster setup --start --name ha_cluster node1 node2
- 启动集群:
sudo pcs cluster start --all
安装并配置DRBD
DRBD(Distributed Replicated Block Device)是一种开源技术,可将块设备镜像同步到另一台服务器。在这里,我们将介绍如何安装和配置DRBD。
- 在两个节点上安装drbd:
sudo yum install kmod-drbd drbd-utils -y
- 确认节点同步和自动启动
# 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
- 创建并配置DRBD资源的用户名和密码。
sudo passwd hacluster
- 创建并配置DRBD资源。
sudo drbdadm create-md <DRBD-DEVICE>
sudo systemctl enable drbd
sudo systemctl start drbd
安装并配置MySQL
在一个DRBD容器上,主要的服务是MySQL数据库。我们需要安装MySQL,进行必要的配置和设置。
- 在两个节点上安装MySQL。
sudo yum install mysql-server -y
- 配置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';
- 编辑my.cnf配置文件,添加以下配置:
bind-address=127.0.0.1
server-id = <DRBD-RESOURCE-ID>
log-bin = mysql-bin
binlog-format = ROW
binlog-do-db = DATABASE
- 将my.cnf配置文件复制到DRBD的主节点。
sudo scp /etc/my.cnf root@<DRBD-NODE-1-IP>:/etc/my.cnf
- 在DRBD的主节点上启动MySQL。
sudo systemctl start mysqld
- 导出MySQL的数据。
mysqldump -uroot -pMYSQL_ROOT_PASSWORD --all-databases --routines --triggers > db-backup.sql
- 在从节点上安装MySQL。
sudo yum install mysql-server -y
sudo systemctl enable mysqld
sudo systemctl start mysqld
- 复制从节点my.cnf文件到主节点,并在主节点配置my.cnf文件。
sudo scp /etc/my.cnf root@<DRBD-NODE-2-IP>:/etc/my.cnf
- 启用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
测试
- 确保MySQL版本处理正确。
mysql -V
- 创建数据库
mysqldump -uroot -pMYSQL_ROOT_PASSWORD --all-databases --routines --triggers > db-backup.sql
- 确保所有节点上的mysql实例都在运行。
sudo systemctl status mysqld
- 停止MySQL服务并卸载挂载点。
sudo systemctl stop mysqld
sudo umount /mnt
- 确认所有节点都漏掉了MySQL服务。
sudo systemctl status mysqld
本攻略介绍的是Linux中使用corosync、pacemaker、drbd和mysql实现高可用性的详细过程。所有的步骤都非常重要,且必须按照给定的顺序逐一执行。通过按照步骤操作,最终可以创建一个具有高可用性的MySQL环境。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux corosync+pacemaker+drbd+mysql配置安装详解 - Python技术站