请选择 进入手机版 | 继续访问电脑版

[LINUX] linux DRBD编译安装与设置 方法

[复制链接]
查看52 | 回复4 | 2021-9-5 02:27:25 | 显示全部楼层 |阅读模式

DRBD先容

DRBD是一个用软件实现的、无共享的、服务器之间镜像块装备 内容的存储复制办理 方案。 DRBD Logo数据镜像:及时 、透明、同步(全部 服务器都成功后返回)、异步(本地服务器成功后返回)。DBRD的核心功能通过Linux的内核实现,最靠近 体系 的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件体系 的崩溃。DBRD的位置处于文件体系 以下,比文件体系 更加靠近操作体系 内核及IO栈。

DRBD编译安装

安装所需依靠 : 

  1. yum -y install gcc kernel-devel kernel-headers flex
复制代码

开始安装drbd,下载地址:http://oss.linbit.com/drbd/

安装用户空间工具:

  1. cd /tmp
  2. wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz
  3. tar xzf drbd-8.4.1.tar.gz
  4. cd drbd-8.4.1
  5. ./configure --prefix=/usr/local/drbd --with-km
  6. make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/
  7. make install
  8. mkdir -p /usr/local/drbd/var/run/drbd
  9. cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
  10. chkconfig --add drbd
  11. chkconfig drbd on
复制代码

安装drbd模块:

  1. cd drbd
  2. make clean
  3. make KDIR=/usr/src/kernels/2.6.18-274.18.1.el5-i686/
  4. cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
  5. depmod
复制代码

注:usr/src/kernels/2.6.18-274.18.1.el5-i686/这个内核源码树路径必要 根据本身 的体系 修改。

DRBD设置

建立分区

假如现在 有第二块硬盘hdb,两个node都要分区。

  1. #fdisk /dev/hdb //准备为 hdb 建立分区
  2. The number of cylinders for this disk is set to 20805.
  3. There is nothing wrong with that, but this is larger than 1024,
  4. and could in certain setups cause problems with:
  5. 1) software that runs at boot time (e.g., old versions of LILO)
  6. 2) booting and partitioning software from other OSs
  7. (e.g., DOS FDISK, OS/2 FDISK)
  8. Command (m for help): n //键入 n 表示要建立分区
  9. Command action
  10. e extended
  11. p primary partition (1-4)
  12. p //键入 p 表示建立主要分区
  13. Partition number (1-4): 1 //键入 1 为此主要分区代号
  14. First cylinder (1-20805, default 1): //开始磁柱值,按下 enter 即可
  15. Using default value 1
  16. Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805): //结束磁柱值,按下 enter 即可
  17. Using default value 20805
  18. Command (m for help): w //键入 w 表示确定执行刚才设定
  19. The partition table has been altered!
  20. Calling ioctl() to re-read partition table.
  21. Syncing disks.
  22. [root@node1 yum.repos.d]# partprobe //使刚才的 partition table 变更生效
复制代码

建立分区完成后使用 指令 fdisk -l 确定 partition talbe 状态

  1. #fdisk -l
  2. Disk /dev/hda: 21.4 GB, 21474754560 bytes
  3. 255 heads, 63 sectors/track, 2610 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Device Boot Start End Blocks Id System
  6. /dev/hda1 * 1 13 104391 83 Linux
  7. /dev/hda2 14 2610 20860402+ 8e Linux LVM
  8. Disk /dev/hdb: 10.7 GB, 10737377280 bytes
  9. 16 heads, 63 sectors/track, 20805 cylinders
  10. Units = cylinders of 1008 * 512 = 516096 bytes
  11. Device Boot Start End Blocks Id System
  12. /dev/hdb1 1 20805 10485688+ 83 Linux
复制代码

建立分区完成后请建立 /db 目次 。 (Node1 及 Node2 都必须建立)

  1. #mkdir /db
复制代码

建立Drbd设置 文件

紧张 定义两块global和resource。

  1. vi /usr/local/drbd/etc/drbd.conf
复制代码
  1. 写入:
  2. include "drbd.d/global_common.conf";
  3. include "drbd.d/*.res";
  4. vi /usr/local/drbd/etc/drbd.d/global_common.conf
  5. 写入
  6. global {
  7. usage-count yes;
  8. }
  9. common {
  10. net {
  11. protocol C;
  12. }
  13. }
  14. vi /usr/local/drbd/etc/drbd.d/r0.res
  15. 写入
  16. resource r0 {
  17. on node1 {
  18. device /dev/drbd1;
  19. disk /dev/hdb1;
  20. address 192.168.1.101:7789;
  21. meta-disk internal;
  22. }
  23. on node2 {
  24. device /dev/drbd1;
  25. disk /dev/hdb1;
  26. address 192.168.1.103:7789;
  27. meta-disk internal;
  28. }
复制代码

设置Hostname

根据上面的resource设置 文件,必要 对192.168.1.101和192.168.1.103分别设置hostname为node1和node2,设置方法如下:

  1. vi /etc/sysconfig/network
  2. 修改HOSTNAME为node1
复制代码
  1. vi /etc/hosts
  2. 写入
  3. 192.168.1.101 node1
  4. 192.168.1.103 node2
复制代码

使node1 hostnmae暂时 见效

  1. hostname node1
复制代码

node2机器设置雷同 。

设置Resource

以下操作必要 在node1和node2操作。

  1. #modprobe drbd //载入 drbd 模块
  2. #lsmod|grep drbd //确认 drbd 模块是否载入
  3. drbd 228528 0
  4. #dd if=/dev/zero of=/dev/hdb1 bs=1M count=100 //把一些资料塞到 hdb 內 (否则 create-md 时有可能会出现错误)
  5. #drbdadm create-md r0 //建立 drbd resource
  6. #drbdadm up r0 //启动 resource r0
复制代码

查看node1和node2的状态应该雷同 下面的:

  1. cat /proc/drbd
  2. version: 8.4.1 (api:1/proto:86-100)
  3. GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:05:36
  4. m:res cs ro ds p mounted fstype
  5. 0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C
复制代码

表明现在 已经启动服务,但还没有设置同步(即必要 设置Primary Node)

设置Primary Node

以下操作仅在node1实行 。

设置node1为primary node:


drbdadm primary --force r0

  1. drbdadm primary --force r0
复制代码

再次查看node1的状态:

  1. #cat /proc/drbd
  2. version: 8.4.1 (api:1/proto:86-100)
  3. GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2012-02-12 06:47:37
  4. 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
  5. 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格式的文件体系 。

  1. #mkfs.ext3 /dev/drbd1
复制代码

然后将/dev/drbd1挂载到之前创建的/db目次 。

  1. #mount /dev/drbd1 /db
复制代码

现在 你只要把数据写入/db目次 ,drbd即会立刻 把数据同步到备机192.168.1.103的/dev/hdb1分区上。

Drbd同步测试

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

  1. drbdadm down r0
复制代码

之后就可以把node2的/dev/hdb1挂载到目次 /db

  1. mount -t ext3 /dev/hdb1 /db
复制代码

我们就可以查看node2的/db目次 是否有node1的数据。

手动切换主备机

我们可以把node1改变为备机,而node2改变为主机。

在node1上操作:

  1. umount /dev/drbd1
  2. drbdadm secondary r0
复制代码

在node2上操作:

  1. drbdadm primary r0
复制代码

此时应该已经切换成功。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 凌善慧 | 2021-9-12 19:01:16 | 显示全部楼层
admin楼主给脑残下了定义!
回复

使用道具 举报

avatar 敢想敢做敢拼 | 2021-9-19 22:20:19 | 显示全部楼层
有机会找admin楼主好好聊聊!
回复

使用道具 举报

avatar 宋751 | 2021-9-20 19:30:32 | 显示全部楼层
世界末日我都挺过去了,看到admin楼主我才知道为什么上帝留我到现在!
回复

使用道具 举报

avatar earth20011 | 2021-9-21 11:37:20 | 显示全部楼层
楼上的说的很好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则