DRBD+HeartbeatV1+MySQL安装配置实例(转...正在学习)

来源:互联网 发布:信息搜集软件 编辑:程序博客网 时间:2024/05/16 23:53

fm:http://snda.itprofly.com/showtopic-54.aspx

 

DRBD+HeartbeatV1+MySQL安装配置实例(在RHEL 5.3上测试OK)
                             
1.系统说明与架设结构
说明:此方案解决两台做DB sever的机器做成软raid,实现数据的安全备份,同时也实现在两台机器上数据的同步与mysql服务HA。
采用第三方软件DRDB和Heartbeat做MySQL高可用性集群方案。DRBD用来维护数据的同步和冗余,Heartbeat负责HA处理.

2.系统安装软件准备
2.1OS
Redhat ENTERPRISE Linux5.3
2.2软件包
DRBD-8.3.2.tar.gz(下载地址:http://oss.linbit.com/drbd/8.3/drbd-8.3.2.tar.gz)
libnet-1.1.2.1-1.1.i386.rpm(http://mirror.centos.org/centos-5/5.4/extras/i386/RPMS/libnet-1.1.2.1-2.rf.i386.rpm)
MySQL-client-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-client-community-5.1.41-0.rhel5.i386.rpm
MySQL-server-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-server-community-5.1.41-0.rhel5.i386.rpm
MySQL-shared-community-5.1.41-0.rhel5.i386.Rpm(http://mirrors.sohu.com/mysql/MySQL-5.1/MySQL-shared-community-5.1.41-0.rhel5.i386.rpm
2.3服务器安装配置
两台配置基本相同的Server,必须要求每台服务器有相同大小的一个分区或逻辑卷。服务器重要配置信息如下:节点1:主机名为:DB_primary, IP地址:192.168.31.173(用于网络通讯),分区为要离出一部分空间。(在本实例中,10G的硬盘,5G安装系统,装好系统后再fdisk 对留空间进行分区,在分区格式中选0,本例对将要做raid的/dev/sda3分了2G空间。(建议熟悉PV,VG,LV的概念及fdisk的分区处理)
[root@localhost ~]# fdisk –l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start        End      Blocks  Id  System
/dev/sda1  *          1          13      104391  83  Linux
/dev/sda2              14        650    5116702+  8e  Linux LVM
/dev/sda3            651        894    1959930    0  Empty
节点2:主机名为:DB_secondary, 192.168.31.180分区为/dev/sda3,系统安装须求与DB_primary一样。
安装完系统后,两台机器都做以下配置:
1)#vi /etc/hosts
添加
192.168.31.173  DB_primary
192.168.31.180  DB_secondary
2) 关掉seliunx及相关不须要起动的服务
# vi /etc/sysconfig/selinux
SELINUX=disabled
#ntsysv
只选network sshd syslog,其他都取消,然后都reboot,到些系统安装配置完成

3.DRBD安装和配置
3.1DRBD安装
1)从http://oss.linbit.com/drbd/下载了源码包drbd-8.3.2.tar.gz,存放到/root/software
2)开始安装,以root用户执行以下命令
#cd /root/software
#tar -zxvf drbd-8.3.2.tar.gz
#cd drbd-8.3.2
#make
#make install
#insmod drbd/drbd.ko
#lsmod |grep drbd
3.2DRBD配置
3.2.1配置文件修改(两台机)
#vi /etc/drbd.conf  使文件成为
global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
protocol C;
        startup {
}
        disk {
                on-io-error  detach;
        }
        net {
        }
on db_primary {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address    192.168.31.173:7788;
    flexible-meta-disk  internal;
on db_secondary  {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address  192.168.31.180:7788;
    meta-disk internal;
  }
}
3.2.2Primary node和secondary node设置
1) 在DB_primary创建matadata:
#drbdadm create-md r0
2) 启动drbd:
#/etc/init.d/drbd start
3) 在DB_secondary创建matadata:
#drbdadm create-md r0
4) 启动drbd:
#/etc/init.d/drbd start
3) 设置DB_primary为主节点:
#drbdadm -- --overwrite-data-of-peer primary r0
4) 在DB_primary新设备上面创建文件系统
#mkfs.ext3 /dev/drbd0
5) 将文件系统mount上:
#mkdir /drbddata
#mount /dev/drbd0 /drbddata
查看创建情况:
#cat /proc/drbd
3.3测试(重要要了解主和从之间的切换关系,是以后处理故障的基础)
1)准备数据。在DB_primary192.168.31.173创建数据
#cd  /drbddata
#mkdir test
#cd test
#echo 123 >1
2)将DB_primary上umount文件系统,然后执行drbdadm secondary all,改成secondary模式:
# umount /drbddata
# drbdadm secondary r0
3)在服务器DB_secondary192.168.31.180上执行drbdadm primary r0 改成primary模式,再mount文件系统:
#drbdadm primary r0
#mount /dev/drbd0 /drbddata
检查在/drbddata文件下的test文件和子文件123是否已经完全同步到DB_secondary ,如果OK,数据已经同步好了。
3.4配置MySQL for DRBD
3.4.1MySQL安装
在两台机器上均用超级用户root登录,执行以下操作:
#rpm -ivh rpm -ivh MySQL-client-community-5.1.41-0.rhel5.i386.rpm  MySQL-shared-community-5.1.41-0.rhel5.i386.rpm MySQL-server-community-5.1.41-0.rhel5.i386.rpm
#/etc/init.d/mysql start
#netstat -lpn|grep 3306
说明mysql安装成功

3.4.2数据目录和my.cnf配置
DB_primary设置
第一步 关闭MySQL,清理InnoDB 文件,因为后面需要重新构建,然后移动数据目录到DRBD数据区域,并建立一个软链接。
#/sbin/service mysql stop
#rm -rf /var/lib/mysql/ib*
#mv -f /var/lib/mysql /drbddata/mysql_data
#ln -s /drbddata/mysql_data /var/lib/mysql
第二步 创建和配置my.cnf文件。
#cp /usr/share/mysql/my-huge.cnf /var/lib/mysql/my.cnf
第三步 增加一个root用户为所以有服务器可以连接的权限:
#mysql
Mysql>GRANT ALL PRIVILEGES ON *.* to root @’%’  IDENTIFIED BY '123';
上面这句是为业务服务添加的相关用户和密码
设置MySQL用户root的密码,以保证数据安全。
#/usr/bin/mysqladmin -u root password 'passwd'
然后关掉mysql在DB_primary的运行,转到DB_secondary
#/etc/init.d/mysql stop
将DB_primary上umount文件系统,然后执行drbdadm secondary all,改成secondary模式:
# umount /drbddata
# drbdadm secondary r0


DB_secondary设置
对于DB_secondary,只需要进行如下操作:
#/sbin/service mysql stop
#rm -rf /var/lib/mysql
#ln -s /drbddata/mysql_data /var/lib/mysql
3.3MySQL启动和关闭
3.3.1启动MySQL
#/etc/init.d/mysql start
此时须要密码,如果用刚才在DB_primary设置的密码可以登陆,说明mysql的运行OK,并且数据目录同步一致。
3.4.3测试
按照3.3的测试,把mysql转到DB_primary,如果能完成,说明对DRDB的工作情况已经了解。可以继续做下面的heartbert.
3.5Heartbeat软件和配置(两台机基本一样,注意细节地方有不同,已蓝色标记)
3.5.1Heartbeat安装
5.1.1安装libnet
#rpm -ivh libnet-1.1.2.1-1.1.i386.rpm
3.5.2安装heartbeat(直接用yum安装,在redhat上配置centos的yum源,如没有外网也可直接把相关的包下载下来rpm安装)
#wget http://sudone.com/download/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo
#rpm –import http://mirror.centos.org/centos-5/5.3/os/i386/RPM-GPG-KEY-CentOS-5
#yum install heartbeat*
3.5.3Heartbeat配置
3.5.3.1/etc/hc.d/authkeys配置
在/etc/hc.d/下增加文件authkeys,两台服务器内容配置一样,并且赋予600权限。
#cat > /etc/ha.d/authkeys
内容如下:
auth 1
1 crc
#chmod 600 /etc/ha.d/authkeys
3.5.3.2/etc/ha.d/ha.cf配置
在/etc/hc.d/下增加文件ha.cf,两台服务器内容配置一样,并且赋予600权限。
#vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 500ms
deadtime 10
warntime 5
initdead 30
udpport 694
bcast eth0
auto_failback off
node DB_primary
node DB_secondary
ping 192.168.31.200
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
deadping 5


3.5.3.3/etc/ha.d/haresources配置
在/etc/hc.d/下增加文件ha.cf,两台服务器内容配置基本一样,不同之处在于Node_name用hostname代替。192.168.31.200为虚拟IP,即对外提供服务的IP。
#vi /etc/ha.d/haresources
db_primary内容如下:db_primary 192.168.31.200 drbddisk Filesystem::/dev/drbd0::/drbddata::ext3 mysql
db_secondary 内容如下:db_secondary 192.168.31.200 drbddisk Filesystem::/dev/drbd0::/drbddata::ext3 mysql
/etc/ha.d/haresources配置完毕之后,需要拷贝两个文件到系统目录,操作如下:
#cp -rf /etc/ha.d/resource.d/drbddisk /etc/init.d
#cp -rf /etc/ha.d/resource.d/Filesystem /etc/init.d
3.5.3.4启动Heartbeat
先在db_primary上启动,然后在db_secondary上启动
#/etc/init.d/heartbeat start
用ifconfig能看到eth0:0的IP地址192.168.31.200即说明服务器启动,然后在db_secondary启动heartbeat服务此时DB_primary和DB_secondary和同时运行,DB_primary对外提供服务,DB_secondary standby。
4.模拟测试及处理问题流程
4.1 db_primary宕机或网络中断
4.1.1db_primary宕机
db_primary宕机,此时db_secondary直接接管服务,网络无缝切换,服务转到db_secondary上成为primary,如果db_primary开机后系统正常工作,此时在db_primary上运行drbdadm secondary r0,并启动heartbeat服务,那么原来的db_primary成为secondary.
4.1.2db_primary网络中断
db_primary网络中断几秒后,此时db_secondary直接接管服务,网络无缝切换,服务转到db_secondary上成为primary,如果db_primary接上网线后正常,此时在db_primary上运行drbdadm secondary r0,并启动heartbeat服务,那么原来的db_primary成为secondary.
4.1.3以上两种情况出现后服务器的主从切换
以上两种情况出现后都会导致原来的db_primary成为secondary,在我们了解的heartbeat的工作原理后,很容易对它们做主从的切换。此时只须要在db_secondary关闭heartbeat服务,使服务无缝切换到db_primary上,然后再在db_secondary启动heartbeat服务,使db_secondary成为standby.
4.2 db_secondary宕机或网络中断
此种情况发生后,如果机器重启后系统正常,只须执行drbdadm secondary r0并启动heartbeat服务,使其成为standby.


4.3机器宕机系统无法正常启动
无论是哪一台机器出现这种问题,请不要随意重启另一台正常工作的服务器,请参照db_secondary进行配置,请注意细节地方,分清db_secondary和db_primary.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 口红颜色太艳了怎么办 我在菲律宾想走怎么办 当国家流通货币不够用怎么办 苹果5s账号密码忘记怎么办 钢铁雄心3补给不足怎么办 灯外观颜色太难看了怎么办 被移民公司骗了怎么办 文明5大包锁区怎么办 鸭子被黄鼠狼叼走了怎么办 黄鼠狼再店了拉屎怎么办 我只有信用卡但是又想去嫖怎么办 瑞士退税单掉了怎么办 装了新风噪音大怎么办 意大利 护照被偷了怎么办 请问去意大利要怎么办护照 在意大利护照丢了怎么办 考研二战档案打回原籍怎么办 脸上的肉往下掉怎么办 眼镜带了往下掉怎么办 孩子捅别的孩子眼睛了怎么办 眼睛不小心捅伤怎么办 我的爸爸是小偷怎么办 违停罚款忘记交怎么办 顺风车无人接单怎么办 来例假腰特别疼怎么办 把人撞死了全责怎么办 朝鲜与美合作对付中国怎么办 申请美国大学gpa不够怎么办 武装突袭3有地雷怎么办 辐射4狗肉跟丢了怎么办 洛奇英雄传死绑S怎么办 在老挝遇到坏人带枪怎么办 买了sd卡卡槽塞不下怎么办 现役军人家庭被邻居欺服怎么办 地铁买票买多了怎么办 免税店买的东西转机怎么办 绿能电动车坏了怎么办? 永久单车收不到验证码怎么办 24速山地车档乱了怎么办 新电瓶车被偷了怎么办 汽车前风挡玻璃砸出洞怎么办