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实现应用层的负载均衡.这里大家都可 ...
随机推荐
- Linux.杀毒.Centos安装杀毒软件Clam
Linux系统用了几年, 甚少中毒 但前不久在阿里云的服务器被种马,折腾了几周才解决干净 感觉还是装个杀毒/马软件定期扫一扫比较稳妥, 这个Clam是免费的, 安装和配置办法记录如下: 已验证适用环境 ...
- 开发《WORD阅读器》小结(1)
这是一个相对原生的APP开发, 从GITHUB上下载了相应的框架,应该是至少2年以前的一个lovereader,是我能快速找到的为数不多的WORD阅读器的源码.应该是用ECLIPSE开发的,而我现在只 ...
- 汇总一些知名的 JavaScript 开发开源项目
汇总一些知名的 JavaScript 开发开源项目 转自:CTOLib , www.ctolib.com/topics-107352.html ggraph - 图形可视化的凌乱数据 这是一个建立 ...
- Akka(34): Http:Unmarshalling,from Json
Unmarshalling是Akka-http内把网上可传输格式的数据转变成程序高级结构话数据的过程,比如把Json数据转换成某个自定义类型的实例.按具体流程来说就是先把Json转换成可传输格式数据如 ...
- octave中的一些基本操作
1.矩阵的表示:v = [1 2 2] %表示1行3列的矩阵 v = [1; 2; 2] %表示3行1列的矩阵 v = [1 2; 2 3; 4 5] %3*2矩阵 size(v) % 求v的行与列 ...
- AJAX中使用post,get接收发送数据的区别
如何发起请求 xhr.send(); 备注: 如果是get方式,send()命令中不用写任何参数 传递的数据可以写在url中,服务器用$_GEET["参数名"]接收 如果是post ...
- GPU的线程模型和内存模型
遇见C++ AMP:在GPU上做并行计算 Written by Allen Lee I see all the young believers, your target audience. I see ...
- mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.pid) 的解决方法
出现问题的可能性 1.可能是/opt/mysql/data/数据目录mysql用户没有权限(修改数据目录的权限) 解决方法 :给予权限,执行 "chown -R mysql.mysql / ...
- java三级考试理论题
Java试卷 一.单项选择题: 1. 试题: 在WINDOWS环境下,ODBC在__A____中设置 A. 控制面板 B. 注册表 C. 浏览器 D. 写字板 2. 阅读以下描述: C <jsp ...
- 文本宽度的测量--measureText
HTML5中的canvas提供了文字宽度的测量方法: ctx.measureText(string).width var c=document.getElementById("myCanva ...