暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

centos6.6环境搭建heartbeat+drbd+mysql主主架构

让生活更美好8 2018-02-05
536

#网络拓扑图


1、分别配置主机名与hosts

a.nfs-1-1

hostname nfs-1-1

sed -i 's#HOSTNAME=brain#HOSTNAME=nfs-1-1#g' /etc/sysconfig/network


a.nfs-1-2

hostname nfs-1-2

sed -i 's#HOSTNAME=brain#HOSTNAME=nfs-1-2#g' /etc/sysconfig/network

退出重新登录


2、都要配置hosts

/bin/cp /etc/hosts /etc/hosts.bak001

sed -i '/^10.0.0/d' /etc/hosts

cat >>/etc/hosts<<eof

10.0.10.7 nfs-1-1

10.0.10.8 nfs-1-2

eof

tail -2 /etc/hosts

ping nfs-1-1

ping nfs-1-2

uname -n

特别强调:uname -n


3、添加路由

a.nfs-1-1

route add -host 10.0.10.8 dev eth1

route -n

echo '/sbin/route add -host 10.0.10.8 dev eth1'>>/etc/rc.local

b.nfs-1-2

route add -host 10.0.10.7 dev eth1

route -n

echo '/sbin/route add -host 10.0.10.7 dev eth1'>>/etc/rc.local


4、关闭防火墙

service iptables stop

service ip6tables stop

chkconfig iptables off

chkconfig ip6tables off

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

getenforce

5、时间同步

echo '#time sync' >>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root

crontab -l

准备完成


6、安装centos6.6heartbeat3.0软件

安装epel包

mkdir /home/brain/tool/ -p

cd /home/brain/tool

wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

rpm -qa |grep epel

yum search heartbeat

yum install heartbeat -y 

rpm -qa |grep heartbeat

报错:

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

解决:

处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。


8、配置文件模板所以地


更改两节点配置文件,从节点和主节点一样

a)更改ha.cf

cat >/etc/ha.d/ha.cf<<eof

# made by brain

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility local1


keepalive 2

deadtime 30

warntime 10

initdead 120


#bcast eth0

mcast eth1 225.0.0.18 694 1 0

auto_failback

node nfs-1-1

node nfs-1-2

crm no

eof

--------------

b)更改authkeys

cat >/etc/ha.d/authkeys<<eof

auth 1

1 sha1 8b373710bcf876edd91f281e50ed58ab

eof

----------

b)haresources

cat >/etc/ha.d/haresources<<eof

nfs-1-1 IPaddr::10.0.0.17/24/eth0

nfs-1-2 IPaddr::10.0.0.18/24/eth0

eof


chmod 600 /etc/ha.d//authkeys


9、检测heartbeat部署成果

/etc/init.d/heartbeat start

ip add |grep 10.0.0


故障模拟转移

停一个节点的服务,查看

/etc/init.d/heartbeat stop

ip add |grep 10.0.0

完成。


10、日志查看

tail -f /var/log/ha-debug


Centos6.6快速安装部署drbd8.6


#基础准备

#1、环境搭建

#双网卡,双硬盘


#2、基础环境配置

Centos6.6快速部署heartbeat3.0


#3、对硬盘分区

1、分区

#大于2T硬盘parted分区

#nfs-1-1

parted /dev/sdb mklabel gpt

parted /dev/sdb mkpart primary 0 1024

parted /dev/sdb mkpart primary 1025 2047  

parted /dev/sdb p


#nfs-1-2

parted /dev/sdb mklabel gpt

parted /dev/sdb mkpart primary 0 1024

parted /dev/sdb mkpart primary 1025 2047  

parted /dev/sdb p


#对新添加的磁盘快速分区方法:

echo -e "n\np\n1\n\n+10G\nn\n2\n\n+20G\nw" |fdisk /dev/sdb


#4、安装配置drbd(两台服务器配置基本一样)


cd /home/brain/tool

export LC_ALL=C

wget http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz  

ls drbd-8.4.4.tar.gz

tar xf drbd-8.4.4.tar.gz

cd drbd-8.4.4

mkdir /usr/local/drbd

./configure --prefix=/usr/local/drbd --with-km --with-heartbeat --sysconfdir=/etc/

ls -ld /usr/src/kernels/$(uname -r)/ 

make KDIR=/usr/src/kernels/$(uname -r)/

make install

cd drbd

cp drbd.ko /lib/modules/2.6.32-504.el6.x86_64/kernel/lib/

ln -s /usr/local/drbd/sbin/drbdadm /usr/sbin/drbdadm    

ln -s /usr/local/drbd/sbin/drbdmeta /usr/sbin/drbdmeta     

ln -s /usr/local/drbd/sbin/drbdsetup /usr/sbin/drbdsetup

-------------------------

yum安装方式

yum install -y drbd kmod-drbd84

-------------------------

#5、加载drbd到内核

lsmod |grep drbd

modprobe drbd

lsmod |grep drbd

echo 'modprobe drbd'>>/etc/rc.local

#也可以加载到drbd.modules 中

#echo "modprobe drbd >/dev/null 2>&1" >/etc/sysconfig/modules/drbd.modules

#6、drbd的配置文件

#cp /etc/drbd.conf /etc/drbd.conf.bak

vi /etc/drbd.conf

global {      

        usage-count  no;             

}

common {

protocol C;

disk {                         

          on-io-error detach;   

no-disk-flushes;

          no-md-flushes;       

        }

net {   

sndbuf-size 512K;

max-buffers 8000;

unplug-watermark 1024;

max-epoch-size 8000;         

    cram-hmac-alg sha1;       

    shared-secret "drbd";     

after-sb-0pri disconnect;

after-sb-1pri disconnect;  

rr-conflict disconnect;

        }

syncer {      

al-extents 517;                     

                rate 200M;   

                }

}

resource data {                                       

        on nfs-1-1 {                                                

                address         10.0.10.7:7788;                  

                disk            /dev/sdb1;                               

device /dev/drbd0;

                meta-disk /dev/sdb2 [0];   

        }       

        on nfs-1-2 {       

                address         10.0.10.8:7788;       

                disk            /dev/sdb1;

device /dev/drbd0;

                meta-disk /dev/sdb2 [0];                               

        }       

}




#7、始化DRBD元数据 两边操作

drbdadm create-md data

mkdir -p /usr/local/drbd/var/run/drbd

drbdadm up data

cat /proc/drbd


错误:

[root@nfs-1-1 drbd]# drbdadm up data

/usr/local/drbd/var/run/drbd: No such file or directory

/usr/local/drbd/var/run/drbd: No such file or directory

解决:

mkdir -p /usr/local/drbd/var/run/drbd

#或者用启动drbd  /etc/init.d/drbd start 

netstat -antlup|grep 7788 


#8、设置角色 nfs-1-1

drbdadm -- --overwrite-data-of-peer primary all

cat /proc/drbd

特别说明 :外部模式 也可以为内部模式


#9、挂载盘写数据 

mkdir /data

mkfs.ext4 /dev/drbd0

tune2fs -c -i /dev/drbd0


mount /dev/drbd0 /data

mount /dev/sdb2 /mnt

cd /data

touch `seq 10`

touch `seq 10 20`

#for n in `seq 10`; do cp /bin/cat brain$n; done


#10、查看数据

#nfs-1-2

mkdir -p /data

drbdadm down data

mount /dev/sdb1 /data

cd /data

ll

umount /data

drbdadm up data


如果卸载不掉,可以强制卸载

umount /data -lf


#11、drbd裂脑解决办法

a、 在从节点如下操作

modprobe drbd

drbdadm secondary data 

#上面不好使停heartbeat,/etc/init.d/heartbeat stop

drbdadm up data

drbdadm disconnect data

drbdadm -- --discard-my-data connect data

b、 在主节点master上,通过cat /proc/drbd查看状态,如果不是WFconnection状态,需要手动连接,

drbdadm connect data


#12、heartbeat 配合drbd启动

chkconfig drbd off

chkconfig –list drdb

成功配置drbd服务,并且能配合heartbeat服务进行主备切换。

cat /etc/ha.d/haresources

nfs-1-1 IPaddr::10.0.0.17/24/eth0:1 drbddisk::data Filesystem::/dev/drbd0::/data::ext4


#mysql安装安装依赖包

yum -y install gcc* gcc-c++* git autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* bison cmake make

#13 删除mysql用户和组-----------

userdel mysql

groupdel mysql

rpm -qa | grep mysql

service mysqld status

service mysqld stop

rpm -e --nodeps mysql-devel-5.1.73-3.el6_5.x86_64

rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64  

rpm -e --nodeps mysql-server-5.1.73-3.el6_5.x86_64

rpm -e --nodeps mysql-5.1.73-3.el6_5.x86_64

whereis mysql

find / -name mysql

rm -rf /usr/lib64/mysql

rm -rf /usr/lib64/mysql

rm -rf /usr/share/mysql/


#13.1mysql安装,二节点不初始化数据.两节点mysql用户的uid和gid要一样


cd /home/brain/tool/

tar xf mysql-5.5.57.tar.gz -C /usr/local/

cd /usr/local/

ln -s mysql-5.5.57/ mysql

groupadd -g 200 mysql

useradd -u 200 -r -g mysql mysql

cd mysql

chown -R mysql .

chgrp -R mysql .

mkdir /data/mysql

chown -R mysql.mysql /data/mysql/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=complex \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1

make -j 4

make install

chmod +x /usr/local/mysql/scripts/mysql_install_db

#挂载数据盘 nfs-1-1

/etc/init.d/drbd start

drbdadm -- --overwrite-data-of-peer primary all

cat /proc/drbd

mount /dev/drbd0 /data/

#mysql初始化数据

/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql


chown -R root .

cp support-files/my-medium.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld 

egrep 'datadir|basedir' /etc/my.cnf 

cat >temp.txt<<eof

datadir=/data/mysql

basedir=/usr/local/mysql

eof

sed -i '37 r temp.txt' /etc/my.cnf  


#设置mysql环境变量

echo 'PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile

source /etc/profile


#报错:

/usr/local/mysql/scripts/mysql_install_db.sh: line 325: @HOSTNAME@: command not found

WARNING: The host '' could not be looked up with resolveip.

解决:

#!/bin/sh 改为 #!/bin/bash


#手动切换drbd的主从

#nfs-1-1

umount /data/

drbdadm secondary all

#nfs-1-2

drbdadm  primary all

mount /dev/drbd0 /data/

ll /data/

#成功切换成主,mysql初始化数据也存在


#主启动数据库

/etc/init.d/mysqld start

#更改密码:

mysqladmin -u root -p password "123456"


[root@nfs-1-1 ~]# /etc/init.d/mysqld start

                                                         

#自动启动mysql

cat /etc/ha.d/haresources

nfs-1-1 IPaddr::10.0.0.17/24/eth0 drbddisk::data Filesystem::/dev/drbd0::/data::ext4 mysqld

nfs-1-2 IPaddr::10.0.0.18/24/eth0


#heartbeat的管理

chkconfig mysqld off

chkconfig heartbeat off

chkconfig drbd off


cat /etc/rc.local

modprobe drbd

/etc/init.d/drbd start

/etc/init.d/heartbeat start

#到这里heartbeat+drbd+mysql高可用环境就搭建结束了。


文章转载自让生活更美好8,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论