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
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小时内删除。
发表评论