Chinaunix首页 | 论坛 | 博客
  • 博客访问: 706638
  • 博文数量: 95
  • 博客积分: 1773
  • 博客等级: 上尉
  • 技术积分: 1653
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 23:28
文章分类
文章存档

2018年(2)

2017年(10)

2016年(7)

2015年(48)

2014年(2)

2013年(2)

2012年(2)

2011年(7)

2010年(7)

2009年(3)

2008年(1)

2007年(4)

分类: 服务器与存储

2011-05-11 13:25:44

    理论上DRBD+OCFS2 可以提供高可用的集群文件系统供集群节点间访问相互镜像的数据。为了在生产环境上实施前对其有效性进行测试,遂在VirtualBox环境下搭建了一个DRBD+OCFS2 测试,本文就对这一过程进行了纪录。
相关实验环境介绍
VirtualBox 主机:RHEL5.1
VirtualBox 版本:4.0.6
VirtualBox vms(两台)
           os:Debian6.0.1a ,采用debian-6.0.1a-i386-netinst.iso安装
           hd:  sda1 -----------7.5G ext3 /
                sda5 -----------512M swap
                sdb -----------100M (用作drbd块和ocfs2文件系统)
           net: HostOnly,模拟的intel 1000M网卡。
主要过程:
1. vms的安装,只安装了1个vms,另外一个采用导出再导入的方式安装,只是单独配置了网络,在HostOnly模式下,这两台vms才能互相通信(这个是后续测试的必要条件),因为默认HostOnly的vms上网络没有启动,所以需要配置网络,默认HostOnly下主机是vboxnet0,其地址是192.168.56.1,所以两个vms分别配置为
192.168.56.101(debian1)和192.168.56.102(debian2),两个vms的主机名称分别为debian1和debian2(这个在drbd配置中要用到),此外按要求安装drbd和ocfs2相应工具,可以配置好apt后采用apt-get的方式安装,分别是drbd8-utils和ocfs2-tools程序包。安装好后分别在vms中ping一下另外一台vms,保证网络互通。

2. drbd配置
    修改 /etc/drbd.d/global_common.conf 中
     
  1. syncer {
  2.                 rate 10M;#默认为1M,注意这里是10MBytes的意思,要和网卡能力等匹配。
  3.         }
    添加 /etc/drbd.d/r0.res文件,内容:
  1. resource r0 {
  2.    protocol C;
  3.    device /dev/drbd0;
  4.    disk /dev/sdb;
  5.    meta-disk internal;
  6.    startup {
  7.      become-primary-on both;
  8.    }
  9.    net {
  10.       allow-two-primaries;
  11.       after-sb-0pri discard-zero-changes;
  12.       after-sb-1pri discard-secondary;
  13.       after-sb-2pri disconnect;
  14.    }
  15.    on debian1 {
  16.       address 192.168.56.101:7898;
  17.    }
  18.    on debian2 {
  19.       address 192.168.56.102:7898;
  20.    }
  21. }
注意,两台vms都需要有以上配置。
在两个vms中执行:
  1. #drbdadm create-md r0
  2. #/etc/init.d/drbd start
  3. #cat /proc/drbd
输出是(类似,主要是有
 0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r----)
  1. version: 8.3.7 (api:88/proto:86-91)
  2. srcversion: EE47D8BF18AC166BE219757
  3.  0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r----
  4.     ns:17122 nr:658 dw:1371 dr:18276 al:5 bm:5 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
表明drbd已经成功启动,两个vms中drbd对应的设备都以主设备挂载了。至此drbd配置完成。

3. ocfs2 配置和挂载。
  依据
  1. #/etc/init.d/o2cb configure
配置好o2cb,另编辑产生/etc/ocfs2/cluster.conf,内容如下:
  1. node:
  2.    ip_port = 7777
  3.    ip_address = 192.168.56.101
  4.    number = 0
  5.    name = debian1
  6.    cluster = ocfs2
  7. node:
  8.    ip_port = 7777
  9.    ip_address = 192.168.56.102
  10.    number = 1
  11.    name = debian2
  12.    cluster = ocfs2
  13. cluster:
  14.    node_count = 2
  15.    name = ocfs2
启动o2cb和ocfs2服务。
另在其中一台vms中执行
  1. #mkfs.ocfs2 -N 2 -L ocfs2_drbd0 /dev/drbd0
来格式化好须挂载的设备(只需要在一台vms上执行,另外一台因为drbd会自动完成)。
至此实际上ocfs2也已经配置好了。
4.测试,在两台vms上分别执行
  1. #mount -t ocfs2 /dev/drbd0 /shared
把drbd+ocfs2分区分别挂载到/shared上,
a.(镜像测试)在一台vms上的/shared下产生的文件(目录),可以在另外一台vms对应位置访问到。可见自动镜像是成功的。
b.(单机故障)停在一台vms,在另外一台vms的/shared上进行相应操作,在停止的vms重新启动,并重新挂载了/dev/drbd0 到/shared上后,故障期间/shared上的操作反映出来了。可见这样的配置没有单点故障。

5.未做的测试(测试的不足):
   a.未进行读写效率测试,因为在VirtualBox下模拟,和生产环境区别很大,读写效率测试又受限于系统性能/磁盘性能以及网络性能。
   b.故障模拟不完整,比如没有模拟同时写相同文件(根据ocfs2,有读写锁,可能不能同时写)但存在突然断网下的写相同文件等问题。

6.参考文献


阅读(3838) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

gmzx_blog2011-05-12 14:55:56

写的真好啊,拜读了