heartbeat+DRBD 高可用 双机热备
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 高可用 双机热备的更多相关文章
- 两台linux利用heartbeat+drbd 完美实现双机热备
一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以 ...
- 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】
一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的序列化机制,可以序列到 sqlserver,mysql,当然还可以在 ...
- Nginx+keepalived 高可用双机热备(主从模式/双主模式)
基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...
- Nginx+keepalived 高可用双机热备(主从模式)
环境:centos7.6 最小化安装 主:10.11.1.32 从:10.11.1.33 VIP:10.11.1.130 修改主节点主机名: hostnamectl set-hostname web_ ...
- MySQL双主+keepalived实现高可用实现(热备)
环境:centos6.7 最小化安装 192.168.100.152 master 主192.168.100.153 slave 从192.168.100.132 v_ip 浮动IP 配置ssh密码登 ...
- 双机热备的Quartz集群
sqlserver搭建高可用双机热备的Quartz集群部署[附源码] 一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz ...
- 云数据库Redis版256M双机热备款
云数据库Redis版是兼容Redis协议标准的.提供持久化的缓存式数据库服务,基于高可靠双机热备架构:全新推出的256M小规格款,适用于高QPS.小数据量业务,并支持免费全量迁移,完美服务于个人开发者 ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群
本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...
随机推荐
- 关于github在客户端不小心删除新仓库,重建后无法上传解决方法
不小心删除了如果直接在客户端重建一个不行,首先找出本地新仓库,删除,然后在重新再客户端建立一个. 但此时如果两仓库名字一样,会发现无法上传. 此时应该在网页打开github,点击进入之前删除的仓库(云 ...
- 【深度学习】keras + tensorflow 实现猫和狗图像分类
本文主要是使用[监督学习]实现一个图像分类器,目的是识别图片是猫还是狗. 从[数据预处理]到 [图片预测]实现一个完整的流程, 当然这个分类在 Kaggle 上已经有人用[迁移学习](VGG,Resn ...
- label联动checkbox
label联动checkbox时,若label包含在checkbox外层时label不需for属性,设置label的display属性为block时可以使整个div联动.
- Java多线程高并发学习笔记——阻塞队列
在探讨可重入锁之后,接下来学习阻塞队列,这边篇文章也是断断续续的写了很久,因为最近开始学ssm框架,准备做一个自己的小网站,后续可能更新自己写网站的技术分享. 请尊重作者劳动成果,转载请标明原文链接: ...
- IOS 中的JS
文章摘自: http://www.cocoachina.com/ios/20150127/11037.html JSContext/JSValue JSContext 即JavaScript代码的 ...
- 对抗栈帧地址随机化/ASLR的两种思路和一些技巧
栈帧地址随机化是地址空间布局随机化(Address space layout randomization,ASLR)的一种,它实现了栈帧起始地址一定程度上的随机化,令攻击者难以猜测需要攻击位置的地址. ...
- Ignatius and the Princess II
Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- C++求出旋转数组的最小数字
今天遇到这么一道题目,感觉很有意思,要记下来! 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4 ...
- git使用教程之了解git
1.理解git快照 快照的作用就相当于将旧文件所占的空间保留下来,并且保存一个引用,而新文件中会继续使用与旧文件内容相同部分的磁盘空间,不同部分则写入新的磁盘空间.git有一个HEAD指针,这个指针可 ...
- AngularJS学习篇(五)
AngularJS Scope(作用域) Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope ...