- 浏览: 1303955 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (351)
- Java General (37)
- .net General (2)
- Linux Toy (55)
- Oracle (81)
- Mysql (11)
- Programer Career (12)
- Oh, my living ! (2)
- Shell Script (8)
- Web Service (0)
- Linux Server (22)
- Php/Python/Perl (3P) (2)
- Javascript General (5)
- Saleforce Apex Dev (2)
- Web General (5)
- Xen & VM tech. (17)
- PSP (13)
- OpenSolaris (34)
- php (1)
- RAI/flex/action script (16)
- asterisk/CTI (7)
- 交互设计 (6)
- English (3)
- Lucene (1)
最新评论
-
GuolinLee:
markmark
JVM调优总结 -Xms -Xmx -Xmn -Xss -
di1984HIT:
写的太好啊。
JVM调优总结 -Xms -Xmx -Xmn -Xss -
javajdbc:
javajdbc 写道
JVM调优总结 -Xms -Xmx -Xmn -Xss -
javajdbc:
...
JVM调优总结 -Xms -Xmx -Xmn -Xss -
alvin198761:
非常感谢,国外的被封杀了,你这里还有一份
How to Convert An Image-Based Guest To An LVM-Based Guest
一直想做基于linux的双机热备,一直没有时间和机会。一直以为只要做双机热备的实验就必须两台机器外接一个存储。甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以实现双机热备。直到一个月以前设计存储方案的时候部门老大给了一个国外的链接介绍drbd+nfs实现nfs的热备方案的时候,我的眼前一亮,这不就是我一直想做的不依靠存储实现热备的解决方案吗?
先来纠正一下自己的错误认识吧,没接触keepalived和heartbeat的时候,道听途说的认为keepalived出现以后就没有必要再用heartbeat了。在仔细学习了这两个传奇人物以后发现:keepavled是专门为高可用的集群而诞生的,而heartbeat生是双机热备的人死是双机热备的死人。
好了,说说本文实现的原理吧。大体来说就是heartbeat+drbd。heartbeat自是不用说,用它来实现资源的统一调度;而drbd就是本文的重头戏。这一个什么东东呢?官方的东东咱就不说了。用咱们自己的话说,就是实现两台机器的两块硬盘的实时完整复制(drbd即磁盘镜像)。它的出现,解决了两台机器做双机时的数据一致性问题。
ok,废话半天,说一下本文的实现环境:
os:ubuntu9.04
ip1:192.168.1.11 drbd1
ip2:192.168.1.12 drbd2
disk:/dev/sdb1(一个8G的分区)
通过drbd,挂在每台机器上的sdb1这块分区将成为咱们“存储”。let's go !
++++++现在开始两台机器配置一样++++++
1.设定hosts
vi /etc/hosts
192.168.1.11 drbd1
192.168.1.12 drbd2
注意:比如在1.11这台机器上。drbd1是你执行hostname命令看到的,而不是随手一写的哟:)
2.安装并配置drbd
1).安装drbd。
你可以去http://oss.linbit.com/drbd/下载最新的版本。本文为了方便直接从ubuntu的源进行安装
apt-get install drbd8-utils
2).创建配置文件
如果用apt-get或者yum的方式安装的话,会默认创建配置文件,而编译安装则不会。不管直接清空或改名,写入以下内容。
vi /etc/drbd.conf
common {
syncer { rate 10M; } #速率
}
resource r0 {
protocol C;
disk { on-io-error detach; }
on drbd1 { #drbd1为第一台机器的机器名
device /dev/drbd0; #创建的虚拟资源
disk /dev/sdb1; #实际的物理分区,一定要注意,是一个单独的分区,而且是未经格式化的
address 192.168.1.11:7788; #第一台机器的ip地址,及通讯端口
meta-disk internal; #类型,局域网
}
on drbd2 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.12:7788;
meta-disk internal;
}
}
3)创建资源
drbdadm create-md r0 #r0为刚才配置文件里的资源名
会提示三个疑问,如果你英文还可以的话,可以阅读一下,不然的话,直接回车。在终点你会看到
success
:)
4)启动drbd服务
/etc/init.d/drbd start
cat /proc/drbd
你应该可以看到
注意里面我标注的"Secondary/Secondary"意思是说现在这块盘是从盘,主盘不知道。
++++++现在开始只在drbd1上操作++++++
5)初始化网络硬盘
drbdsetup /dev/drbd0 primary -o
cat /proc/drbd
你会发现现在已经是"Primary/Secondary"了,而且已经开始同步硬盘状态。
为了实时的查看同步情况,你可以在drbd1上执行
watch -n1 cat /proc/drbd
同步还在进行
经过一段时间的等待,你会发现成功完成!
同步完成以后,在drbd2上查看硬盘状态
注意磁盘状态是:"Secondary/Primary"
格式化网络磁盘
6)设置drbd开机启动
在两台机器上都执行
chkconfig drbd on
7)手工测试drbd是不是正常工作
在drbd1上建立3个文件
在drbd2上验证结果
ok,我们现在已经确定drbd是正常工作的了。也相信在这么细致的介绍下,你已经熟悉了它是怎么工作了。我们现在有了“网络存储”了。下一步就是让一个东东帮我们调度资源了。简单的几步配置有请heartbeat出场
3.配置heartbeat
1)安装heartbeat
apt-get install heartbeat
2)配置heartbeat
vi /etc/heartbeat/ha.cf
logfacility local0
keepalive 2
deadtime 10
auto_failback off
bcast eth0
node drbd1 drbd2
vi /etc/heartbeat/haresources
drbd1 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3
vi authkeys
auth 3
3 md5 abc
chmod 600 authkeys
3)相同的配置复制到drbd2
scp authkeys haresources ha.cf root@192.168.1.12:/etc/heartbeat/
4)确保服务都是正常运行的
/etc/init.d/drbd start
/etc/init.d/heartbeat start
5)切换测试
通过cat /proc/drbd查看drbd的状态或者mount查看/mnt是不是已经挂载确定资源所在的机器。然后在那台机器的/mnt新建立一些文件并停掉那台机器上的heartbeat。看另一台机器上/mnt是不是被自动挂载了呢?里面是不是有刚创建的文件?good luck!
总结:基本两台linux实现的双机热备到此就要结束了。回顾一下环境:两台机器;两块独立的分区,最好是一样大,只分区,而没有格式化;linux操作系统;drbd网络磁盘;heartbeat实现资源调度;好像就这么多东西吧。可能您要说了,看完这篇文章,一点实际意义都没有,因为只是实现了共享磁盘。哈哈,我要说,要想发挥威力就要仔细的看一下heartbeat的资源调度了,有了这位大管家,还有啥实现不了的服务呢
发表评论
-
扩大虚拟机硬盘空间的方法
2010-11-18 07:53 2101虚拟机是Xen,但同样适用于KVM. 虚拟机硬盘格式为raw. ... -
挂载虚拟机镜像文件里的 LVM 逻辑分区
2010-10-08 10:52 2262如果按照 “在 CentOS ... -
apache 设置中的两个指令 EnableMMAP/EnableSendfile
2010-06-29 21:18 13958apache 中的目录为 windows 共享文件夹时,出 ... -
squid server
2010-03-25 23:01 1506For fine control you may need t ... -
lvm on xen
2010-03-25 22:18 1486Moving a Xen Guest into an LVM ... -
apache 的模块安装
2010-01-23 13:18 3669Apache HTTP服务器是一个模块化的软件,管理员可以通过 ... -
redmine & ruby 在ubuntu 上的安装笔记
2009-12-05 11:07 2475edmine & ruby 在ubuntu 上的安装笔 ... -
windows 无盘机,更新主机名.
2009-11-11 22:03 1337同用一个镜像的无盘机,开机后更新主机名. 写个run. ... -
如何用ssh挂载远程目录
2008-10-30 11:09 1612如何用ssh挂载远程目录 ... -
How to userspace l7 filter on Ubuntu
2008-10-23 08:00 2831How to userspace l7 filter on ... -
Ubuntu 中 apache2+tomcat+mod_jk
2008-09-05 07:45 23261. 分别下载jdk和tomcat, 不建议使用源里的包,因为 ... -
Virtual Hosting With Proftpd And MySQL (Incl. Quot
2008-07-07 17:48 1754This document describes how ... -
Differences Between NFS and iSCSI
2008-06-27 09:44 1376NFS and iSCSI provide funda ... -
Ssh 无密码登录的怪问题
2008-06-23 14:21 1780今天为做Oracle RAC 做ssh的免密码登陆,出现也这个 ... -
dovecot + postfix + postfixadmin 建立mail服务器中的几个事项
2008-05-27 22:48 13683我是新手! 第一次建 ... -
在UBUNTU里安装SquirrelMail邮件服务器
2008-05-27 10:24 2541我没有在UBUNTU里安装过S ... -
查看 apache2 安装了哪些模块
2008-05-26 15:23 5282root@ubuntu-idc:/# apache2ctl - ... -
使用mod_cband管理Apache 2带宽和流量
2008-02-28 22:24 1897About the module mod_cband is ... -
Apache 1.3 基于IP限制带宽
2008-02-28 14:17 1750安装步聚: /usr/local/apache/bin/ ... -
ruby on rails应用性能优化之道
2008-01-24 11:54 3544JavaEye网站从2006年9月11 ...
相关推荐
SpringBoot项目中利用Redis实现系统双活_双机热备,在定时器环境实现双机热备
双机热备 双机热备 双机热备 双机热备 双机热备 双机热备
双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备双机热备...
双机热备软件,高可用性工具软件,双机热备工具软件,能够监控目标系统的连通性。在目标系统意外停机时,添加虚拟ip并执行启动脚本
双机热备方案及双机热备软件选择
高可用性工具软件,双机热备工具软件,能够监控目标系统的连通性。在目标系统意外停机时,添加虚拟ip并执行启动脚本,接替目标系统的工作,实现双机热备和高可用性的功能。
Centos 7.4 DHCP 双机热备 配置文档。
HUAWEI-Ensp模拟器上实现双机热备(传统方式),适合学生在做实验时遇到错误查看是否命令有错误。
这份文档是我在实际工作当中总结而来,希望能帮助在数据库双机热备方面有困惑的开发人员。
企业级应用 keepalived 实现 双机热备
文档详细描述了使用heartbeat在Redhat下实现双机热备的方法,供参考。
虚拟机配置+群集配置+tomcat服务器实现双机热备
NULL 博文链接:https://xticfc.iteye.com/blog/2181407
双机热备解决方案双机热备解决方案双机热备解决方案双机热备解决方案
要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库...
用友U8软件双机热备解决方案 双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式。
这是说明如何使用Linux进行双机热备的资料
详细介绍了常见双机热备实现方式以及在各个方案中进行选择
基于Linux的双机热备系统研究与设计.pdf