首页 > linux > drbd+gfs2+lvm2

drbd+gfs2+lvm2

2010年5月31日 eric 发表评论 阅读评论

测试 drbd 的双向,以及 clvm 的同步。drbd + GFS2

OS  :   ubuntu-server 8.04.4

Cluster1  : 192.168.6.191
Cluster2  : 192.168.6.192

修改两个服务器 hosts

vim /etc/hosts
192.168.6.191   cluster1
192.168.6.192   cluster2

1.给两太机器安装drbd ,我就用懒人方式吧

apt-get install drbd8-utils

2.配置两台 cluster drbd

global {
    usage-count no;
}
common {
  syncer { rate 10M; }
}
resource r0 {

  protocol C;

  handlers {
    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";

    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";

    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
}
 startup {
    become-primary-on both;
  }

  disk {
    on-io-error   detach;
  }

  net {
    allow-two-primaries;
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
    rr-conflict disconnect;
  }

  syncer {
    rate 10M;

    al-extents 257;
  }

  on cluster1 {
    device     /dev/drbd0;
    disk       /dev/sdb;
    address    192.168.6.191:7788;
    flexible-meta-disk  internal;
  }

  on cluster2 {
    device    /dev/drbd0;
    disk      /dev/sdb;
    address   192.168.6.192:7788;
    meta-disk internal;
  }
}

分别在 两台 服务器上执行下面命令

drbdadm create-md r0
/etc/init.d/drbd restart
drbdsetup /dev/drbd0 primary -o
cat /proc/drbd
GIT-hash: b3fe2bdfd3b9f7c2f923186883eb9e2a0d3a5b1b build by phil@mescal, 2008-02-12 11:56:43
 0: cs:Connected st:Primary/Primary ds:UpToDate/UpToDate C r---
    ns:479232 nr:0 dw:0 dr:479232 al:0 bm:62 lo:0 pe:0 ua:0 ap:0
        resync: used:0/31 hits:29921 misses:31 starving:0 dirty:0 changed:31
        act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

3.在两台 cluster1 和 cluster2 上分别安装配置 cluster 服务

apt-get install redhat-cluster-suite
mkdir /etc/cluster
vim /etc/cluster/cluster.conf

<?xml version="1.0"?>

<cluster name="cluster" config_version="1">

  <!-- post_join_delay: number of seconds the daemon will wait before

                        fencing any victims after a node joins the domain

       post_fail_delay: number of seconds the daemon will wait before

                        fencing any victims after a domain member fails

       clean_start    : prevent any startup fencing the daemon might do.

                        It indicates that the daemon should assume all nodes

                        are in a clean state to start. -->

  <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>

  <clusternodes>

    <clusternode name="cluster1" votes="1" nodeid="1">

      <fence>

        <!-- Handle fencing manually -->

        <method name="human">

          <device name="human" nodename="cluster1"/>

        </method>

      </fence>

    </clusternode>

    <clusternode name="cluster2" votes="1" nodeid="2">

      <fence>

        <!-- Handle fencing manually -->

        <method name="human">

          <device name="human" nodename="cluster2"/>

        </method>

      </fence>

    </clusternode>

  </clusternodes>

  <!-- cman two nodes specification -->

  <cman expected_votes="1" two_node="1"/>

  <fencedevices>

    <!-- Define manual fencing -->

    <fencedevice name="human" agent="fence_manual"/>

  </fencedevices>

<rm>

  <!-- Similar to failover domains in RHEL3 -->

  <failoverdomains>

    <failoverdomain name="eric" ordered="1">

      <failoverdomainnode name="cluster1" priority="1"/>

      <failoverdomainnode name="cluster2" priority="1"/>

    </failoverdomain>

  </failoverdomains>

  <resources>

    <ip address="192.168.6.2" monitor_link="yes"/>

  </resources>

</rm>

</cluster>

分别在两台服务器 修改 lvm.conf
vim /etc/lvm/lvm.conf
注释掉 locking_type = 1
去掉下面三行的注释

locking_library = "liblvm2clusterlock.so"
locking_type = 2
library_dir = "/lib/lvm2"

同时在两台服务器重启 cluster 服务

/etc/init.d/cman restart
/etc/init.d/clvm restart

创建一个 500M 的 测试空间

Cluster1 $> pvcreate /dev/drbd0
Cluster1 $> vgcreate www /dev/drbd0
Cluster1 $> lvcreate -L500M -nwww www

在 cluster2 机器上看下是否同步

Cluster2 $> ls /dev/www/www
/dev/www/www

好了 是同步的。

6.创建 GFS2 文件系统

gfs2_mkfs -p lock_dlm -t cluster:www -j 2 /dev/www/www

分别在 cluster1 和 cluster2 上挂载 GFS2 文件系统

mount -t gfs2 /dev/www/www /mnt/

测试文件系统

cluster1 $> cd /mnt
cluster1 $> touch test
cluster1 $> touch aaa
cluster1 $> ls
aaa test

在 cluster2 上查看

Cluster2 $> ls
aaa test

说明正常,然后在 Cluster1 上编辑 test

Cluster1 $>vim test

然后在 Cluster2 上编辑 test
提示锁定

转载请注明:文章转载自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/174.html

分类: linux 标签: , ,
  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.