web-dev-qa-db-ja.com

drbdはマウントポイントを同期しません

仮想ボックスでcentoOS6.3を使用してdrbdを学習しようとしていますが、node1とnode2の2つのvmが構成されています。ファイルを、node1の/ dev/drbd0であるマウントポイント/ dataにコピーしますが、 node2の/ data

これが設定です

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";

global {
    # do not participate in online usage survey
    usage-count no;
}

resource data {

    # write IO is reported as completed if it has reached both local
    # and remote disk
    protocol C;

    net {
        # set up peer authentication
        cram-hmac-alg sha1;
        shared-secret "s3cr3tp@ss";
        # default value 32 - increase as required
        max-buffers 512;
        # highest number of data blocks between two write barriers
        max-Epoch-size 512;
        # size of the TCP socket send buffer - can Tweak or set to 0 to
        # allow kernel to autotune
        sndbuf-size 0;
    }

    startup {
        # wait for connection timeout - boot process blocked
        # until DRBD resources are connected
        wfc-timeout 30;
        # WFC timeout if peer was outdated
        outdated-wfc-timeout 20;
        # WFC timeout if this node was in a degraded cluster (i.e. only had one
        # node left)
        degr-wfc-timeout 30;
    }

    disk {
        # the next two are for safety - detach on I/O error
        # and set up fencing - resource-only will attempt to
        # reach the other node and fence via the fence-peer
        # handler
         #on-io-error detach;
         #fencing resource-only;
        # no-disk-flushes; # if we had battery-backed RAID
        # no-md-flushes; # if we had battery-backed RAID
        # ramp up the resync rate
        # resync-rate 10M;
    }
    handlers {
        # specify the two fencing handlers
        # see: http://www.drbd.org/users-guide-8.4/s-pacemaker-fencing.html
        fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
        after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
    }
    # first node
    on node1 {
        # DRBD device
        device /dev/drbd0;
        # backing store device
        disk /dev/sdb;
        # IP address of node, and port to listen on
        address 192.168.1.101:7789;
        # use internal meta data (don't create a filesystem before
        # you create metadata!)
        meta-disk internal;
    }
    # second node
    on node2 {
        # DRBD debice
        device /dev/drbd0;
        # backing store device
        disk /dev/sdb;
        # IP address of node, and port to listen on
        address 192.168.1.102:7789;
        # use internal meta data (don't create a filesystem before
        # you create metadata!)
        meta-disk internal;
    }
}

これが猫/ proc/drbdです

cat: /proc/data: No such file or directory
[root@node1 /]# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2013-09-27 16:00:43
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:543648 nr:0 dw:265088 dr:280613 al:107 bm:25 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:7848864
    [>...................] sync'ed:  6.5% (7664/8188)M
    finish: 7:47:11 speed: 272 (524) K/sec

ノード1の/ dataにファイルをコピーしましたが、ノード2の/ dateにファイルが見つかりません。誰か助けてくれますか?

node1のdrbdステータス

[root@node1 /]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2013-09-27 16:00:43
m:res   cs          ro                 ds                     p  mounted  fstype
0:data  SyncSource  Primary/Secondary  UpToDate/Inconsistent  C  /data    ext3
...     sync'ed:    8.1%               (7536/8188)M
1
hkguile

間違っていることを証明してください。ただし、IIRCでは、ノードの1つに同時にマウントできるのはFSのみです。ノードを同期させ、/ dataをアンマウントします。切り替えて、node2にマウントします。すべてのデータが表示されます。

2
vautee

DRBDは、Distributed Replicated BlockDeviceを意味します。ファイルシステムではありません。

プライマリノードにファイルを書き込むと、ファイルシステムは書き込み操作を発行します。すぐ下のレイヤーで、DRBDはこれらの書き込みがセカンダリノードに複製されることを確認します。セカンダリノードの場合、これらの書き込みはデータブロックとして表示されます。ファイルを表示するには、通常、パーティションをプライマリノードでアンマウントし、セカンダリノードにマウントする必要があります。

しかし、あなたが達成したいことに対する解決策があります。このためには、クラスターファイルシステムが必要になります。このようなファイルシステムを使用すると、パーティションを2つのノードに同時にマウントできます。 ext4などの一般的に使用されるファイルシステムでは、これは不可能です。

DRBD上で機能するこのようなクラスターファイルシステムの例は、OCFS2です。このファイルシステムを使用し、パーティションを両方のサーバーに同時にマウントするには、DRBDリソースをデュアルプライマリモードで構成する必要があります。これは、プライマリノードがないことを意味します。両方のノードが同時にリソースに書き込むことができます。クラスタファイルシステムは、書き込まれるデータに一貫性があることを確認します。

3
Oliver