#网络拓扑图
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高可用环境就搭建结束了。