Mysql+Heartbeat+DRBD
Linux
(适用操作系统:CentOS5)
————————————————————————
完成人员:
李凯翔
完成日期:
2011-06-30
Qq;
17501444
Linuxtone ID:
SharkShow
Google talk:
Net.SharkShow@gmail
————————————————————————
加粗字体为命令.淡蓝 加粗是显示内容 是注释
一. 实验要求
Mysql+heartbeat+DRBD高可用性(主.备).
Mysql = 数据库
DRBD = 类似网络RAID-1功能写入本地的文件会通过网络以相同方式写在另一文件系统
Heartbeat = 状态监控平滑冗余
二. 实验拓扑
三. 系统环境
操作系统:CentOs 5.5 (关闭selinux及iptables)
相关软件:Mysql 、heartbeat 、drbd83 、kmod-drbd83 .
网络要求:所有服务器位于同一VLan机器无特殊要求
四. 地址规划
名称
IP地址
db_a
主mysql
VIP 192.168.1.88 /24
Eth0: 192.168.1.10 /24
Eth1: 8.8.8.1/24
db_b
备mysql
Eth0: 192.168.1.20 /24
Eth1: 8.8.8.2 /24
五. 安装软件
1. 更新yum源(将yum源替换成中国科大的yum源或mirrors的源)
# cd /pos.d'                         
# 进入yum源目录
# po{,.bak}
# 修改默认网络源的名字使其不生效
# wget /soft/po 
# 下载中科大源
# wget mirrors.163/.po   
# 下载mirrors-163源
# wget mirrors.sohu/po  
# 下载mirrors-sohu源
注意:三个源任选一个就好.我是使用163的
2. Yum安装mysql / heartbeat / drbd / kmod-drbd
>>>Yum>>###
# yum y install mysql                        # 安装mysql                y安装时自动确认
# yum y install heartbeat*                # 安装heartbeat所有的        y安装时自动确认
# yum y install drbd83                    # 安装drbd83.             y安装时自动确认
# yum y install kmod-drbd83                # 安装kmod-drbd83        y安装时自动确认
3. 安装heartbeat
yum安装heartbeat会出现这个错误:
useradd: user hacluster exists
error: %pre(heartbeat-2.1.s.i386) scriptlet failed, exit status 9
error: install: %pre scriptlet failed (2), skipping heartbeat-2.1.s
不用理他,在用yum安装一次 就处理好了
4. 两台机器查看heartbeat是否安装全
# rpm -qa | grep "heartbeat"                # 查看安装包是否完整.应该是6个
5. 网络配置
cat >>/etc/hosts <<SharkShow
>192.168.1.10    db_a                        #添加db_a的解析
>192.168.1.20    db_b                        #添加db_b的解析
>SharkShow
一. 配置DRBD
1. 修改drbd配置文件
vim /f
global {
usage-count yes;            #是否参加DRBD使用者统计.默认是yes
}
common {
syncer {rate 100M;}        #设置主设备节点同步时的网络速率最大值.drbd83支持最大900M
}
resource r1 {                    #这里定义的是名字.接下来创建DRBD设备时需要指定r1.
protocol C;                #使用协议C.表示收到远程主机的写入确认后,则认为写入完成.
startup {
}
disk {
on-io-error detach;            #当磁盘有错误时,不连接
安装mysql时start service失败}
net {
cram-hmac-alg sha1;            #设置主备设备之间通信使用的信息算法.       
shared-secret SharkShow;
}
on db_a {                        # 每个主机的说明以on开头,后面是主机名在{}内的是配置.
device    /dev/drbd1;            # 今后生成使用的设备名;不用和实际分区号一样.不过最好规范
disk        /dev/sdb1;            # 该节点上用于存放数据的分区号
address    192.168.1.10:7898    ;    # 该节点的IP地址
meta-disk internal;            # meta data信息存放方式网络
}
on db_b {                    # 每个主机的说明以on开头,后面是主机名在{}内的是配置
device    /dev/drbd1;            # 今后生成使用的设备名;不用和实际分区号一样.不过最好规范
disk    /dev/sdb1;            # 该节点上用于存放数据的分区号
address    192.168.1.20:7898;    # 该节点的IP地址
meta-disk internal;            # meta data信息存放方式网络
}
}
2. 配置完毕后使用scp传到备服务器上.文件必须完全一直否则DRBD服务无法启动
scp /f root@192.168.1.20:/etc/    #提示信息输yes ; 然后输入密码
3. 在创建DRBD设备之前先执行3实际分区;
3 /dev/sdb1            # 创建文件系统并格式化.drbd支持ext2/ext3/XFS/JFS/reiserFS
4. 为了防止创建DRBD出错对实际分区执行如下命令
dd if=/dev/zero bs=1M count=1 of=/dev/sdb1;sync           
5. 在两台服务器上都执行如下命令创建DRBD设备
drbdadm create-md r1            #“r1"是我们在f里定义
Writing
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
6. 开启两台服务器上都开启DRBD服务
/etc/init.d/drbd start           
7. 在两台服务器上查看是否创建了DRBD设备
ls lhd /dev/drbd1   
brw-r----- 1 root disk 147, 1 Jul  1 04:07 /dev/drbd1
8. 查看DRBD状态
cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash:d78846e52224fd00562f7c225bcc25b2d422321d    build    by s.org, 2010-06-04 08:04:09
1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:20964116       
/proc/drbd/中显示了DRBD当前的状态.
ro:显示两台主机的状态.都是“备机/备机.ds:是磁盘状态.都是“不一致/不一致
9. 在db_a上执行下命令升为主机的命令
drbdadm primary all
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by s.org, 2010-06-04 08:04:09
1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
ns:65252 nr:0 dw:0 dr:73056 al:0 bm:3 lo:1 pe:13 ua:244 ap:0 ep:1 wo:b oos:20899252
[>....................] sync'ed:  0.4% (20408/20472)M delay_probe: 5
finish: 0:10:41 speed: 32,432 (32,432) K/sec
ro:显示两台主机的状态.主机/备机 ds:是磁盘状态.都是“upTodate/不一致
可以看出[>....................] sync'ed: 正在同步了已经进度 0.4%
二. 配置heartbeat
(主要就是配置三个文件:ha.cf 、haresources和authkeys)
1. 配置ha.cf
# vim /etc/ha.d/ha.cf
配置选项如下
debugfile /var/log/ha-debug    #指定heartbeat调试日志文件存放的位置
logfile /var/log/ha-log            #指定heartbeat运行系统日志存放的位置
logfacility local0                #日志记录等级
keepalive 2                       #指定多久检测一次心跳heartbeat 本实验2秒

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论