Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2295803
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2009-12-18 20:22:59

DRBD磁盘镜像小实验
 
2009.12.19 Tsengyia#126.com http://tsengyia.blog.chinaunix.net/ 
 
##############################################################
系统环境:RHEL5 [ 2.6.18-9.el5 ]
  host1(主机):IP地址:192.168.4.11   镜像分区:/dev/sdb1,40GB
  host2(备机):IP地址:192.168.4.12   镜像分区:/dev/sdb1,40GB
软件环境:
  RHEL5自带RPM包:
    kernel-headers-2.6.18-8.el5
    kernel-devel-2.6.18-8.el5
  需另下载的软件包:
    drbd-8.3.6.tar.gz   
                        
                        
##############################################################
一、安装drbd软件包(host1,host2)
  1. 安装内核开发环境(kernel-headers、kernel-devel)
      使用RHEL5光盘自带的RPM包
 
  2. 安装drbd软件包
[root@localhost ~]# tar zxvf drbd-8.3.6.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/drbd-8.3.6
[root@localhost drbd-8.3.6]# ./configure --prefix=/ --with-km        //--with-km表示安装为内核模块
[root@localhost drbd-8.3.6]# make
[root@localhost drbd-8.3.6]# make install
  3.调整drbd服务脚本
[root@localhost ~]# vi /etc/init.d/drbd      //在服务脚本的start)部分添加模块加载语句
……
case "$1" in
    start)
    insmod /lib/modules/2.6.18-8.el5/kernel/drivers/block/drbd.ko
    ……
[root@localhost ~]# chkconfig --add drbd     //添加给chkconfig、ntsysv管理
[root@localhost ~]# chkconfig --level 35 drbd on
 
 
二、建立/etc/drbd.conf配置文件(host1,host2)
    具体配置可参考dhcpd.conf文件中的注释或者man手册页
[root@localhost ~]# vi /etc/drbd.conf
global {  usage-count yes;  }                 //是否参加DRBD使用者统计
common {
    protocol C;                               //类型包括A、B、C三种,C表示收到远程主机的写入确认后,视为写入完成
    syncer { rate 100M; }                     //同步速率
}
resource r1 {
    device minor 1;
    meta-disk internal;
    net {
        cram-hmac-alg sha1;                   //设置网络传输加密算法
        shared-secret "secret string";        //认证字串
    }
    on host1 {                                //on 主机名
        device /dev/drbd1;                    //drbd设备
        disk /dev/sdb1;                       //对应的分区
        address 192.168.4.11:7801;            //IP地址及端口
    }
    on host2 {
        device /dev/drbd1;
        disk /dev/sdb1;
        address 192.168.4.12:7801;
    }
}
 

三、建立drbd设备,启动drbd服务(host1,host2)
  1. 建立md设备
[root@localhost ~]# drbdadm create-md r1
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
 
  2. 启动drbd服务程序
[root@localhost ~]# /etc/init.d/drbd start
 
  3. 确认drbd状态
[root@localhost ~]# cat /proc/drbd
version: 8.3.6 (api:88/proto:86-91)
GIT-hash: f3606c47cc6fcf6b3f086e425cb34af8b7a81bbf build by , 2009-12-18 13:28:03
  1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsisten C r----
     ns:0 nr:0 dw:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:4008024
  —— Secondary/Secondary 表示两个节点都处于辅助(从)状态
 
 
四、初始化Primary机(host1)
  1. 设为主导状态(同步发起端)
[root@localhost ~]# drbdsetup /dev/drbd1 primary -o
block drbd1: Forced to consider local data as UpToDate!
  —— //如需降级为备机,可执行umount /dev/drbd1 ;drbdadm secondary r1
 
  2. 再次确认host1的drbd状态
[root@localhost ~]# cat /proc/drbd
version: 8.3.6 (api:88/proto:86-91)
GIT-hash: f3606c47cc6fcf6b3f086e425cb34af8b7a81bbf build by , 2009-12-18 13:28:03
  1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsisten C r----
     ns:44608 nr:0 dw:0 dr:44608 al:0 bm:0 lo:0 pe:1 ua:0 ap:0 ep:1 wo:b oos:3963
         [>............] sync'ed: 2.3% (3921720/4008024)
         finish:3:06:44 speed: 340 (320) K/sec
  —— 表示正处于同步过程中
 
  3. 同步完成后,可再次确认drbd状态
[root@localhost ~]# cat /proc/drbd
version: 8.3.6 (api:88/proto:86-91)
GIT-hash: f3606c47cc6fcf6b3f086e425cb34af8b7a81bbf build by , 2009-12-18 13:28:03
  1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsisten C r----
     ns:4137868 nr:0 dw:129844 dr:4008242 al:49 bm:245 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
 

五、验证磁盘镜像结果(host2)
  1. host1主机中
[root@localhost ~]# mkfs -t ext3 /dev/sdb1
[root@localhost ~]# mkdir /mnt/sdb1
[root@localhost ~]# mount /dev/drbd1 /mnt/sdb1
[root@localhost ~]# ls > /mnt/sdb1/test.file
[root@localhost ~]# ls /mnt/sdb1
lost+found  test.file
 
  2. host2主机中
[root@localhost ~]# service drbd stop
[root@localhost ~]# mount /dev/sdb1 /mnt/sdb1
[root@localhost ~]# ls /mnt/sdb1
lost+found  test.file
阅读(1727) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~