heartbeat+DRBD 高可用 双机热备

原创博文http://www.cnblogs.com/elvi/p/7658109.html

## heartbeat+DRBD 高可用 双机热备
# 环境centos6
# 测试演练 # 虚拟机添加10G硬盘
# 添加网卡,作为数据传输
#主机
VIP 192.168.18.80
web1
192.168.18.11
192.168.99.11(心跳线)
192.168.100.11(数据传输)
web2
192.168.18.12
192.168.99.12
192.168.100.12
vim /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
BOOTPROTO="static"
IPADDR=192.168.100.12
NETMASK=255.255.255.0
ONBOOT="yes"
#
ifup eth2
uname -r #关闭防火墙 #分区
#fdisk快速分区
#echo -e "n\np\n1\n+10G\nn\np\n2\n\n+20G\nw" | fdisk /dev/sdb
fdisk -l
fdisk /dev/sdb
p
n +8G w
#备节点、状态分区 不需要格式化
mkfs.ext4 /dev/sdb1
e2label /dev/sdb1 /data #给分区标签 #
#安装 DRBD
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum install drbd kmod-drbd84 -y
#内核加载
lsmod |grep drbd
modprobe drbd #加载DRBD模块到内核
modprobe -l | grep -i drbd
echo "modprobe drbd" >>/etc/rc.local ##开机自动加载
#yum install kernel-devel -y #模板
ll /etc/drbd.d/
#配置
vim /etc/drbd.conf
global {
usage-count no;
}
common {
syncer {
rate 200M;
verify-alg crc32c;
}
}
resource webdata {
protocol C; disk {
on-io-error detach;
}
on web1 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.100.11:;
meta-disk /dev/sdb2[];
}
on web2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.100.12:;
meta-disk /dev/sdb2[];
}
} #drbd初始化与启动
drbdadm create-md webdata
drbdadm up webdata
/etc/init.d/drbd start
#将第一个节点置为primary
drbdadm -- --overwrite-data-of-peer primary webdata
#drbdsetup /dev/drbd0 primary -o #查看同步完成状态
cat /proc/drbd
#磁盘挂载(仅primary节点),Secondary挂载需要先drbdadm down data -->mount /dev/sdb1 /data
mkdir /data
mount /dev/drbd0 /data
df -l #验证同步
#主节点创建文件
echo $(date +%Y-%m-%d-%H%M%S)>>/data/test.txt
cat /data/test.txt
#备节点停用服务,挂载分区查看
drbdadm down webdata
mount /dev/sdb1 /data
ll /data
cat /data/test.txt
#备节点启用
umount /dev/sdb1
drbdadm up webdata
cat /proc/drbd #DRBD主备节点切换
#主:卸载分区,设置为备节点
umount /dev/drbd0
drbdadm secondary webdata #(all)
#备:设置为主节点,挂载分区
drbdadm primary webdata #(all)
mount /dev/drbd0 /data # DRBD脑裂后的处理
#从节点上切换成secondary,并放弃该资源的数据:
drbdadm secondary alldrbdadm -- --discard-my-data connect all
drbdadm -- --overwrite-data-of-peer primary data #设置主节点同步数据到备节点
#重新连接资源
drbdadm down webdata
drbdadm connect webdata
drbdadm up webdata
drbdadm primary all #主
drbdadm secondary all #备 #+ heartbeat高可用
vim /etc/ha.d/haresources
#web1 IPaddr::192.168.18.80//eth0 nginx
web1 IPaddr::192.168.18.80//eth0 nginx drbddisk::webdata Filesystem::/dev/drbd0::/data::ext4
#主节点 ,解除磁盘挂载,重启heartbeat服务
umount /dev/drbd0
service heartbeat stop
service heartbeat start
#备节点启动heartbeat
service heartbeat start
#查看服务
ip add | grep eth0
mount|grep data
cat /proc/drbd #主备切换验证
service heartbeat stop #主,停止服务
#查看备节点服务
ip add | grep eth0
mount|grep data
cat /proc/drbd
service heartbeat restart #主,启动服务 #备节点实际容量变小调整
/etc/init.d/drbd stop
e2fsck -f /dev/sdb1
resize2fs /dev/sdb1 #增加主机测试(主备/usr/share/nginx/html主页文件不同)
ln -s /usr/share/nginx/html /data/html
vim /etc/nginx/conf.d/test.conf
server {
listen ;
server_name test.com;
location / {
root /data/html;
index index.html index.htm index.php;
}
}
#重启服务
service heartbeat stop
service heartbeat start
#本机访问,修改本机hosts文件C:\Windows\System32\drivers\etc
192.168.18.80 test.com
#浏览器访问域名 test.com ##NFS
#服务端配置
mkdir /data/share
#vim /etc/exports
echo "/data/share 192.168.18.0/24(rw,no_root_squash)">>/etc/exports
/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
#客户端
showmount -e 192.168.18.80 #查看共享
service rpcbind start
mkdir -p /data/share
umount /data/share
mount -t nfs 192.168.18.80:/data/share /data/share
#查看测试
mount|grep /data/share
echo $(date +%Y-%m-%d-%H%M%S)>>/data/share/nfs.txt
cat /data/share/nfs.txt
##开机挂载
echo "192.168.18.80:/data/share /data/share nfs defaults 0 0">>/etc/fstab #heartbeat+drbd+nfs配置
vim /etc/ha.d/haresources
web1 IPaddr::192.168.18.80//eth0 nginx drbddisk::webdata Filesystem::/dev/drbd0::/data::ext4 nfs
showmount -e localhost
#主备切换验证 …… mount|grep /data/share
echo $(date +%Y-%m-%d-%H%M%S)>>/data/share/nfs.txt
cat /data/share/nfs.txt
showmount -e localhost mount|grep data
ip add | grep eth0
cat /proc/drbd service heartbeat stop
service heartbeat start
service heartbeat restart # 参考
#http://blog.csdn.net/lt53130640688/article/details/50152615
#http://www.cnblogs.com/wsl222000/p/5777382.html

heartbeat+DRBD 高可用 双机热备的更多相关文章

  1. 两台linux利用heartbeat+drbd 完美实现双机热备

    一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以 ...

  2. 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】

    一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的序列化机制,可以序列到 sqlserver,mysql,当然还可以在 ...

  3. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

    基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...

  4. Nginx+keepalived 高可用双机热备(主从模式)

    环境:centos7.6 最小化安装 主:10.11.1.32 从:10.11.1.33 VIP:10.11.1.130 修改主节点主机名: hostnamectl set-hostname web_ ...

  5. MySQL双主+keepalived实现高可用实现(热备)

    环境:centos6.7 最小化安装 192.168.100.152 master 主192.168.100.153 slave 从192.168.100.132 v_ip 浮动IP 配置ssh密码登 ...

  6. 双机热备的Quartz集群

    sqlserver搭建高可用双机热备的Quartz集群部署[附源码]   一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz ...

  7. 云数据库Redis版256M双机热备款

    云数据库Redis版是兼容Redis协议标准的.提供持久化的缓存式数据库服务,基于高可靠双机热备架构:全新推出的256M小规格款,适用于高QPS.小数据量业务,并支持免费全量迁移,完美服务于个人开发者 ...

  8. Keepalived+LVS+nginx双机热备

    Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...

  9. keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

    本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...

随机推荐

  1. canvas画布标签

    最近良师益友整理一些canvas的资料,加强学习了解! 当你创建一个<canvas>元素后,就拥有了它的绘图上下文. 一.简单图形 1.getContext()方法 为了在canvas上绘 ...

  2. 为什么使用 Bootstrap

    移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式 浏览器支持:所有的主流浏览器都支持 Bootstrap 容易上手:只要您具备 HTML 和 CSS 的基础知识 ...

  3. vue之地址栏#号问题

    mode的两个值 histroy:当你使用 history 模式时,URL 就像正常的 url,例如 http://jsapng.com/lms/,也好看! hash:默认'hash'值,但是hash ...

  4. MySQL数据库储存bit类型的值报错

    当我们储存bit类型的值时,不能直接写入数字 上图中的画圈部分就是bit类型,若是直接填入"1"或"0"等等就会报错,如下: 这时候,我们要看bit(M)的M值 ...

  5. 4本相见恨晚的Linux入门书籍

    有读者问可否推荐一些 Linux 入门书籍,刚好在知乎也看到类似的问题,几个零碎的命令难以在 Linux 环境中存活,如果要真正形成自己的知识体系,还是要靠阅读专业书籍来积累.Linux 对后端开发是 ...

  6. Problem P

    题意:FJ养牛,他想知道中间的牛是那一头: 思路:这道题有点水,思路就不写了 #include #include #include #define maxn 10005 using namespace ...

  7. D - MUH and Cube Walls

    D. MUH and Cube Walls   Polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant ...

  8. ASP.NET Core的身份认证框架IdentityServer4(1)-特性一览

    IdentityServer4是ASP.NET Core的一个包含OpenID和OAuth 2.0协议的框架.OpenID和OAuth 的区别请看 https://www.zhihu.com/ques ...

  9. 用python模拟登录(解析cookie + 解析html + 表单提交 + 验证码识别 + excel读写 + 发送邮件)

    老婆大人每个月都要上一个网站上去查数据,然后做报表. 为了减轻老婆大人的工作压力,所以我决定做个小程序,减轻我老婆的工作量. 准备工作 1.tesseract-ocr 这个工具用来识别验证码,非常好用 ...

  10. SimpleMembership续

    自上篇SimpleMembership之后,好久不用,也没有研究,最近把以前写的老程序改进下,原有用户系统升级为SimpleMembership,在升级的过程中发现还有许多问题,经过几天的试验,小有收 ...