- 浏览: 110991 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
freerambo:
学习了,刚好解决了我的文件字符编码问题
java文件读写操作指定编码格式 -
ainishigai:
学习了啊
哥们儿你太好了 下次能发表多表插入 ...
Oracle 分页存储过程的实现
一. DRBD介绍
DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地
文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中.
本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会
保留有一份相同的数据,可以继续使用.
在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,
切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了.
DRBD的工作原理如下图:
+--------+ | 文件系统 | +--------+ | V +----------+ | 块设备层 | | (/dev/drbd1) | +----------+ | | | | V V +----------+ +-----------+ | 本地硬盘 | | 远程主机硬盘 | | (/dev/hdb1) | | (/dev/hdb1) | +----------+ +-----------+
二. DRBD的安装
从官方网站下载源码包:
www.drbd.org
我们在Turbolinux10.5上使用drbd-8.0.4版.分别在两台主机上安装DRBD:
# tar jxf drbd-8.0.4.tar.gz # cd drbd-8.0.4 # make # make install
make install执行之后:
drbd.ko被安装到/lib/modules/$KernelVersion/kernel/drivers/block下.
drbd相关工具(drbdadm,drbdsetup)被安装到/sbin下.
并会在/etc/init.d/下建立drbd启动脚本.
三. DRBD的配置
1.DRBD使用的硬盘分区
你需要为本地主机和远程主机,指定一个DRBD使用的硬盘分区.这两个分区的大小必须相同.
我们指定两台主机的/dev/hdb1分区作为DRBD的使用的分区.这两个分区大小都为300MB.
2.drbd.conf配置文件
DRBD运行时,会读取一个配置文件/etc/drbd.conf.这个文件里描述了DRBD设备与硬盘分区的映射关系,
和DRBD的一些配置参数.
下面是一个drbd.conf文件的简单示例:
<主机>Turbolinux 10.5操作系统,主机名为g105-1,IP地址为 10.0.1.2,DRBD分区为/dev/hdb1.
<备机>Turbolinux 10.5操作系统,主机名为g105-2,IP地址为 10.0.2.2,DRBD分区为/dev/hdb1.
# 是否参加DRBD使用者统计.默认是yes global { usage-count yes; } # 设置主备节点同步时的网络速率最大值,单位是字节. common { syncer { rate 1M; } } # 一个DRBD设备(即:/dev/drbdX),叫做一个"资源".里面包含一个DRBD设备的主备节点的 # 相关信息. # resource r0 { # 使用协议C.表示收到远程主机的写入确认后,则认为写入完成. protocol C; net { # 设置主备机之间通信使用的信息算法. cram-hmac-alg sha1; shared-secret "FooFunFactory"; } # 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置. on g105-1 { # /dev/drbd1使用的磁盘分区是/dev/hdb1 device /dev/drbd1; disk /dev/hdb1; # 设置DRBD的监听端口,用于与另一台主机通信 address 10.0.1.2:7898; meta-disk internal; } on g105-2 { device /dev/drbd1; disk /dev/hdb1; address 10.0.2.2:7898; meta-disk internal; } }
然后将这个drbd.conf文件分别复制到两台主机的/etc目录下.
3.DRBD的启动
在启动DRBD之前,你需要分别在两台主机的hdb1分区上,创建供DRBD记录信息的数据块.分别在
两台主机上执行:
[root@g105-1 /]# drbdadm create-md r0 [root@g105-2 /]# drbdadm create-md r0
“r0”是我们在drbd.conf里定义的资源名称.
现在我们可以启动DRBD了,分别在两台主机上执行:
[root@g105-1 /]# /etc/init.d/drbd start [root@g105-2 /]# /etc/init.d/drbd start
现在可以查看DRBD的状态,然后在g105-1主机上执行:
[root@g105-1 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30 1: cs:Connected st: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 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
”/proc/drbd”中显示了drbd当前的状态.第一行的st表示两台主机的状态,都是”备机”状态.
ds是磁盘状态,都是”不一致”状态.
这是由于,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.所以,我们需要初始化
一个主机.在g105-1上执行:
[root@g105-1 /]# drbdsetup /dev/drbd1 primary -o
现在再看一个g105-1上的DRBD状态:
[root@g105-1 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:42688 nr:0 dw:0 dr:42688 al:0 bm:2 lo:4 pe:0 ua:4 ap:0 [==>.................] sync'ed: 14.7% (262464/305152)K finish: 0:02:58 speed: 1,440 (1,292) K/sec resync: used:1/31 hits:2669 misses:3 starving:0 dirty:0 changed:3 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”.
在第3行,可以看到数据正在同步中,即主机正在将磁盘上的数据,传递到备机上.现在的进度是14.7%.
现在看一下g105-2上面的DRBD状态.
[root@g105-2 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-2, 2007-07-28 07:13:14 1: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r--- ns:0 nr:56608 dw:56608 dr:0 al:0 bm:3 lo:0 pe:0 ua:0 ap:0 [===>................] sync'ed: 20.0% (248544/305152)K finish: 0:02:57 speed: 1,368 (1,284) K/sec resync: used:0/31 hits:3534 misses:4 starving:0 dirty:0 changed:4 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
稍等一会,在数据同步完后,再查看一下g105-1的DRBD状态:
[root@g105-1 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:305152 nr:0 dw:0 dr:305152 al:0 bm:19 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:19053 misses:19 starving:0 dirty:0 changed:19 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
磁盘状态都是”实时”,表示数据同步完成了.
4.使用DRBD
你现在可以把主机上的DRBD设备挂载到一个目录上进行使用.备机的DRBD设备无法被挂载,因为它是
用来接收主机数据的,由DRBD负责操作.
在g105-1上执行:
[root@g105-1 /]# mount /dev/drbd1 /mnt/drbd1 [root@g105-1 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda3 9.3G 6.5G 2.4G 73% / /dev/hda1 99M 9.3M 85M 10% /boot none 249M 0 249M 0% /dev/shm /dev/drbd1 289M 11M 264M 4% /mnt/drbd1
现在,我们在drbd1目录里建立一个200M的文件:
[root@g105-1 /]# dd if=/dev/zero of=/mnt/drbd1/tempfile1.tmp bs=104857600 count=2
操作完成后,在g105-2(备机)上执行:
我们先停止DRBD
[root@g105-2 /]# /etc/init.d/drbd stop
现在,我们可以将hdb1进行挂载
[root@g105-2 /]# mount /dev/hdb1 /mnt/drbd1 [root@g105-2 /]# ls /mnt/drbd1 -hl total 201M drwx------ 2 root root 12K Jul 28 23:44 lost+found -rw-r--r-- 1 root root 200M Jul 29 00:20 tempfile1.tmp [root@g105-2 /]# umount /mnt/drbd1
可以看到,在主机g105-1上产生的文件tmpfile1.tmp,也完整的保存在备机g105-2的DRBD分区上.
这就是DRBD的网络RAID-1功能. 在主机上的任何操作,都会被同步到备机的相应磁盘分区上,达到数据备份的效果.
5.DRBD的主备机切换
有时,你需要将DRBD的主备机互换一下.可以执行下面的操作:
在主机上,先要卸载掉DRBD设备.
[root@g105-1 /]# umount /mnt/drbd1
将主机降级为”备机”.
[root@g105-1 /]# drbdadm secondary r0 [root@g105-1 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:13:14 1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r--- ns:0 nr:5 dw:5 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
现在,两台主机都是”备机”.
在备机g105-2上,将它升级为”主机”.
[root@g105-2 /]# drbdadm primary r0 [root@g105-2 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-2, 2007-07-28 07:13:14 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:0 nr:5 dw:5 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
现在,g105-2成为了”主机”.你可以把它的/dev/drbd1进行挂载和使用了.同样,数据会被同步到
g105-1上面.
发表评论
-
DRBD简介
2012-09-13 09:03 1883一、主要功能 DRBD实际上是一种块设备的实现, ... -
LVS的调度算法和三种工作模式
2012-08-23 16:24 1349转自:http://www.linu ... -
Crontab的格式
2012-08-21 22:54 895第1列分钟1~59 第2列小时1~23(0表示子夜 ... -
centos 5 .6安装NTP服务器
2012-08-21 22:30 1253为有些服务和实验需要多台机器的时间同步,所以就有了搭建NTP的 ... -
source /etc/profile命令
2012-08-19 21:17 1679在linux下安装海思交叉编译工具的时候,碰到个问题,本来 ... -
CentOS下JDK安装
2012-08-19 20:47 1346第一步:查看Linux自带的JDK是否已安装 (卸载centO ... -
RPM卸载包
2012-08-19 19:45 1560rpm –e ---- 做了什么事? 命令 rpm –e ( ... -
centos下修改hostname,ip,netmask,gateway,dns
2012-08-16 23:34 12921、修改hostname 配置文件:/etc/sysco ... -
GCC warnings about strict-aliasing
2012-08-16 21:29 1063warning: dereferencing type-pun ... -
LVS基本介绍
2012-08-13 23:18 943LVS是Linux Virtual Server的 ...
相关推荐
DRBD安装与配置 - 解压DRBD源码包: ``` tar xvzf drbd-8.2.6.tar.gz ``` - 进入目录并编译安装: ``` cd drbd-8.2.6 make makerpm ``` - 安装RPM包: ``` rpm -ivh dist/RPMS/i386/drbd-8.2.6-3.i386....
三、DRBD配置 1. 创建资源:创建一个DRBD资源配置文件,例如`/etc/drbd.d/r0.res`,内容如下: ``` resource r0 { protocol C; # 异步模式,适用于较远距离的节点间同步 startup { minor 0; disk /dev/sdb1; # ...
在单硬盘环境下,配置过程基本相同,但只需要将单一硬盘的分区信息添加到DRBD配置中。 配置完成后,启动DRBD服务,进行初始同步,并监控其状态以确保数据一致性。在主节点上,数据的写入会同时被复制到备节点,从而...
首先,让我们详细了解 DRBD 的安装和配置: 1. 安装 DRBD: 在 CentOS 或 RHEL 系统上,可以使用 `yum install` 命令安装必要的软件包,如 `kmod-drbd83` 和 `drbd83`。安装完成后,通过 `modprobe -i` 检查内核...
3. 配置DRBD资源:编写DRBD配置文件,定义存储资源,包括设备名、大小、网络接口等。 4. 初始化DRBD设备:使用`drbdadm create-md`命令创建并格式化DRBD设备。 5. 启动DRBD服务:用`drbdadm up`命令启动DRBD服务。...
在主从模式下,DRBD配置通常分为两部分:主节点和从节点。下面我们将详细介绍DRBD在主从模式下的配置步骤。 ### 一、系统环境准备 在开始配置之前,确保你的系统是支持DRBD的,例如这里提到的是CentOS 5.4 i386。...
总结来说,搭建DRBD+HEARTBEAT+MYSQL的高可用MySQL集群涉及多个步骤,包括DRBD的安装配置、HEARTBEAT的设置、MySQL的主从复制以及全面的测试验证。通过这样的部署,可以确保数据库服务的连续性和数据的安全性,对于...
2. **安装与配置**:安装DRBD需要在两台机器上分别安装相应的软件包,然后配置资源定义文件,包括数据设备、网络参数、同步模式等。配置文件中会定义资源名称、主/备角色、网络端口、数据块大小等关键参数。 3. **...
二、DRBD 内核模块安装与配置 在检查系统是否已安装DRBD模块时,可以使用`lsmod`命令。如果没有找到`drbd`模块,可以通过`modprobe drbd`来加载。若出现找不到模块的问题,可能需要重新编译内核。在配置内核时,应...
通过本文档,用户可以学习如何在 Centos5.6 x86_64 操作系统下安装和配置 DRBD、Heartbeat 和 MySQL,实现服务器平台的高可用性和高性能。 一、DRBD 的部署安装 DRBD(Distributed Replicated Block Device)是一...
Mysql+DRBD+heartbeat配置手册.docx
Mysql+DRBD+heartbeat配置手册.pdf
在开始DRBD配置之前,确保每台服务器(Primary和Secondary)都有正确的主机名设置至关重要。正确的主机名有助于简化后续步骤,并确保DRBD服务能正确识别各节点。 **步骤**: 1. **检查主机名**:在每台服务器上...
drbd双机配置 简单明了,适合初学者
LNH_MySQL 08-drbd软件的安装配置准备.mp4