首页 Linux网维 DRBD的编译安装与配置文档

DRBD的编译安装与配置文档

DRBD介绍DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案 DRBD Logo数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务…

DRBD介绍DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案 DRBD Logo数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)DBRD的核心功能通过。

Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃DBRD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈 DRBD编译安装 安装所需依赖:

yum -y install gcc kernel-devel kernel-headers flex 开始安装drbd,下载地址:http://oss.linbit.com/drbd/

安装用户空间工具: cd /tmp wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz tar xzf drbd-8.4.1.tar.gz

cd drbd-8.4.1 ./configure –prefix=/usr/local/drbd –with-km make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/

make install mkdir -p /usr/local/drbd/var/run/drbd cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d

chkconfig –add drbd chkconfig drbd on 安装drbd模块: cd drbd make clean make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/

cp drbd.ko /lib/modules/`uname -r`/kernel/lib/ depmod 注:usr/src/kernels/2.6.18-274.18.1.el5-i686/这个内核源码树路径需要根据自己的系统修改。

DRBD配置 建立分区 假如现在有第二块硬盘hdb,两个node都要分区 #fdisk /dev/hdb                                                      //准备为 hdb 建立分区 。

The number of cylinders for this disk is set to 20805.  There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:  1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs    (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n                                              //键入 n 表示要建立分区  Command action

e   extended     p   primary partition (1-4)  p                                                                    //键入 p 表示建立主要分区

Partition number (1-4): 1                                            //键入 1 为此主要分区代号  First cylinder (1-20805, default 1):                                 //开始磁柱值,按下 enter 即可

Using default value 1  Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805): //结束磁柱值,按下 enter 即可

Using default value 20805  Command (m for help): w                                              //键入 w 表示确定执行刚才设定

The partition table has been altered!  Calling ioctl() to re-read partition table.  Syncing disks.

 [root@node1 yum.repos.d]# partprobe                                  //使刚才的 partition table 变更生效

建立分区完成后使用指令 fdisk -l 确定 partition talbe 状态 #fdisk -l  Disk /dev/hda: 21.4 GB, 21474754560 bytes

255 heads, 63 sectors/track, 2610 cylinders  Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System  /dev/hda1   *           1          13      104391   83  Linux

/dev/hda2              14        2610    20860402+  8e  Linux LVM  Disk /dev/hdb: 10.7 GB, 10737377280 bytes

16 heads, 63 sectors/track, 20805 cylinders  Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot      Start         End      Blocks   Id  System  /dev/hdb1               1       20805    10485688+  83  Linux

建立分区完成后请建立 /db 目录 (Node1 及 Node2 都必须建立) #mkdir /db 建立drbd配置文件 主要定义两块global和resource 。

vi /usr/local/drbd/etc/drbd.conf 写入: include “drbd.d/global_common.conf”; include “drbd.d/*.res”;

vi /usr/local/drbd/etc/drbd.d/global_common.conf 写入: global {   usage-count yes;

} common {   net {     protocol C;   } } vi /usr/local/drbd/etc/drbd.d/r0.res

写入: resource r0 {   on node1 {     device    /dev/drbd1;     disk      /dev/hdb1;

address   192.168.1.101:7789;     meta-disk internal;   }   on node2 {

device    /dev/drbd1;     disk      /dev/hdb1;     address   192.168.1.103:7789;

meta-disk internal;   } } 设置hostname 根据上面的resource配置文件,需要对192.168.1.101和192.168.1.103分别设置hostname为node1和node2,设置方法如下:

vi /etc/sysconfig/network 修改HOSTNAME为node1 vi /etc/hosts 填入: 192.168.1.101 node1

192.168.1.103 node2 使node1 hostnmae临时生效 hostname node1 node2机器设置类似 设置resource。

以下操作需要在node1和node2操作 #modprobe drbd                                    //载入 drbd 模块 #lsmod|grep drbd                                  //确认 drbd 模块是否载入 。

drbd                  228528  0  #dd if=/dev/zero of=/dev/hdb1 bs=1M count=100     //把一些资料塞到 hdb 內 (否则 create-md 时有可能会出现错误)

#drbdadm create-md r0                             //建立 drbd resource  #drbdadm up r0                                  //启动 resource r0

查看node1和node2的状态应该类似下面的: cat /proc/drbd version: 8.4.1 (api:1/proto:86-100) GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:05:36

m:res  cs         ro                   ds                         p  mounted  fstype  0:r0   Connected  Secondary/Secondary  Inconsistent/Inconsistent  C

表明现在已经启动服务,但还没有设置同步(即需要设置Primary Node) 设置Primary Node 以下操作仅在node1执行 设置node1为primary node: drbdadm primary –force r0

再次查看node1的状态: #cat /proc/drbd version: 8.4.1 (api:1/proto:86-100) GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:47:37

1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–     ns:52892 nr:0 dw:0 dr:52892 al:0 bm:10 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

我们看到状态已经变成Primary/Secondary,即设置primary node成功 创建DRBD文件系统 以下操作仅在node1执行 上面已经完成了/dev/drbd1的初始化,现在来把/dev/drbd1格式化成ext3格式的文件系统。

#mkfs.ext3 /dev/drbd1 然后将/dev/drbd1挂载到之前创建的/db目录 #mount /dev/drbd1 /db 现在你只要把数据写入/db目录,drbd即会立刻把数据同步到备机192.168.1.103的/dev/hdb1分区上。

drbd同步测试 当在备机node2启动drbd时,它是无法挂载/dev/hdb1分区的,我们可以尝试写些数据到node1的目录/db上,然后停止node2的drbd drbdadm down r0 。

之后就可以把node2的/dev/hdb1挂载到目录/db mount -t ext3 /dev/hdb1 /db 我们就可以查看node2的/db目录是否有node1的数据。

手动切换主备机 我们可以把node1改变为备机,而node2改变为主机 在node1上操作: umount /dev/drbd1 drbdadm secondary r0 。

在node2上操作: drbdadm primary r0 此时应该已经切换成功

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 3182235786a

为您推荐

linux文件命令

linux文件命令

在 Linux 中,我们可以使用 `with open()` 语句和 `write()` 函数来写入文件。以下是一个简单...
linux的命令

linux的命令

以下是一个简单的 Linux 命令示例,该命令将显示当前日期和时间: “`c #include <st...
linux 命令

linux 命令

由于 Linux 命令是由 C 语言编写的,因此下面是一个简单的用中文编写的 Linux 命令示例,它将输出“Hello...
linux命令tar

linux命令tar

这个问题看起来有些模糊,我不确定您是想了解如何在 Linux 系统中使用 tar 命令,还是如何编写一个名为 tar 的...
linux压缩命令

linux压缩命令

Linux压缩命令:高效管理文件和目录 Linux操作系统提供了一系列强大的压缩命令,使您能够高效地管理文件和目录。无论...

发表回复

返回顶部