千家信息网

keeplive+mysql+drbd高可用架构安装步骤

发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于RAID1数据镜像,通常配合keepalived、hea
千家信息网最后更新 2024年09月23日keeplive+mysql+drbd高可用架构安装步骤

DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于RAID1数据镜像,通常配合keepalived、heartbeat等HA软件来实现高可用性。
DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能,当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中。
本地(master)与远程主机(backup)的保证实时同步,如果本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据。

一、实施环境

系统版本:CentOS 6.5
DRBD版本: drbd-8.3.15
Keepalived:keepalived-1.1.15
Master:192.168.10.128
Backup:192.168.10.130

二、初始化配置
1) 在128、130两台服务器/etc/hosts里面都添加如下配置:
192.168.149.128 node1
192.168.149.130 node2
2) 优化系统kernel参数,直接上sysctl.conf配置如下:

net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296net.ipv4.tcp_max_tw_buckets = 10000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.netdev_max_backlog = 262144net.core.somaxconn = 262144net.ipv4.tcp_max_orphans = 3276800net.ipv4.tcp_max_syn_backlog = 262144net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_syn_retries = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_fin_timeout = 1net.ipv4.tcp_keepalive_time = 30net.ipv4.ip_local_port_range = 1024 65530net.ipv4.icmp_echo_ignore_all = 1

3)两台服务器分别添加一块设备,用于DRBD主设备存储,我这里为/dev/sdb 20G硬盘;
执行如下命令:

mkfs.ext3 /dev/sdb ;dd if=/dev/zero of=/dev/sdb bs=1M count=1;sync

三、DRBD安装配置

Yum方式安装:
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum -y install drbd83* kmod-drbd83 ; modprobe drbd
源码安装方式:
http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz
./configure --prefix=/usr/local/drbd --with-km
make KDIR=/usr/src/kernels/2.6.32-504.el6.x86_64/
make install
cp drbd/drbd.ko /lib/modules/`uname -r`/kernel/lib/
Yum方式和源码方式都需要执行:modprobe drbd 加载DRBD模块。
安装完成并加载drbd模块后,vi修改/etc/drbd.conf配置文件,内容如下:

global {usage-count yes;}common {syncer { rate 100M; }}resource r0 {protocol C;startup {}disk {on-io-error detach;#size 1G;}net {}on node1 {device /dev/drbd0;disk /dev/sdb;address 192.168.10.128:7898;meta-disk internal;}on node2 {device /dev/drbd0;disk /dev/sdb;address 192.168.10.130:7898;meta-disk internal;}}

配置修改完毕后执行如下命令初始化:
drbdadm create-md r0 ;/etc/init.d/drbd restart ;/etc/init.d/drbd status
如下图:

以上步骤,需要在两台服务器都执行,两台都配置完毕后,在node2从上面执行如下命令:/etc/init.d/drbd status 看到如下信息,表示目前两台都为从,我们需要设置node1为master,命令如下:

drbdadm -- --overwrite-data-of-peer primary all
mkfs.ext4 /dev/drbd0
mkdir /app ;mount /dev/drbd0 /app

自此,DRBD配置完毕,我们可以往/app目录写入任何东西,当master出现宕机或者其他故障,手动切换到backup,数据没有任何丢失,相当于两台服务器做网络RAID1。

四、Keepalived配置

wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz ; tar -xzvf keepalived-1.1.15.tar.gz ;cd keepalived-1.1.15 ; ./configure ; make ;make install
DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ ; cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ ;
mkdir -p /etc/keepalived ; cp $DIR/sbin/keepalived /usr/sbin/
两台服务器均安装keepalived,并进行配置,首先在node1(master)上配置,keepalived.conf内容如下:

! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL}vrrp_script check_mysql {script "/data/sh/check_mysql.sh"interval 5}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 52priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100}track_script {check_mysql}}

然后创建check_mysql.sh检测脚本,内容如下:

#!/bin/shA=`ps -C mysqld --no-header |wc -l`if[ $A -eq 0 ];then/bin/umount /app/drbdadm secondary r0killall keepalivedfi添加node2(backup)上配置,keepalived.conf内容如下:! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL}vrrp_sync_group VI{group {VI_1}notify_master /data/sh/master.shnotify_backup /data/sh/backup.sh}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 52priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100}}

创建master.sh检测脚本,内容如下:

#!/bin/bashdrbdadm primary r0/bin/mount /dev/drbd0 /app//etc/init.d/mysqld start

创建backup.sh检测脚本,内容如下:

#!/bin/bash/etc/init.d/mysqld stop/bin/umount /dev/drbd0drbdadm secondary r0

发生脑裂恢复步骤如下:

Master执行命令:
drbdadm secondary r0
drbdadm -- --discard-my-data connect r0
drbdadm -- --overwrite-data-of-peer primary all
Backup上执行命令:
drbdadm secondary r0
drbdadm connect r0

配置 数据 主机 内容 命令 服务器 服务 系统 方式 文件 网络 脚本 设备 检测 步骤 相同 功能 故障 模块 源码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库怎么设置支持中文 易方达笔试题目 软件开发 时间紧迫数据库怎么迁移 广东前端软件开发机构 软件开发系统平台有什么 宁波自动量化交易软件开发培训 湖南米水互联网科技有限公司 审计网络安全意识淡薄 怎么修改数据库的位置 数据库的考试试卷及答案 银行数据库安全性措施 网络安全重保怎么做 app重置数据库 咋快速打开数据库 网络安全技术实验目的 是不是要先安装数据库才可以解压 深圳互联网教育科技公司 软件开发等级 p级 上海适合用什么地图软件开发 分布式数据库系统于戈版二手 塔式服务器比机架服务器更为主流 冕宁县网络安全监察部门地址 网络安全公司哪个工资高 信息与网络安全的推荐信 数据库复制技术现状 没有服务器可以处理这个请求 如皋无忧网络技术排名靠前 查看数据库文件 初创科技互联网公司 软件开发专业的前景与方向
0