ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ืขืœ ืžื” ื ื“ื‘ืจ:
ื›ื™ืฆื“ ืœืคืจื•ืก ื‘ืžื”ื™ืจื•ืช ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืœืฉื ื™ ืฉืจืชื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืคืชืจื•ื ื•ืช drbd+ocfs2.

ืœืžื™ ื–ื” ื™ื•ืขื™ืœ:
ื”ืžื“ืจื™ืš ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ืœืžื ื”ืœื™ ืžืขืจื›ืช ื•ืœื›ืœ ืžื™ ืฉื‘ื•ื—ืจ ื‘ืฉื™ื˜ืช ื”ื˜ืžืขืช ืื—ืกื•ืŸ ืื• ืžืขื•ื ื™ื™ืŸ ืœื ืกื•ืช ืืช ื”ืคืชืจื•ืŸ.

ืœืื™ืœื• ื”ื—ืœื˜ื•ืช ืกื™ืจื‘ื ื• ื•ืœืžื”?

ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืื ื• ืžืชืžื•ื“ื“ื™ื ืขื ืžืฆื‘ ืฉื‘ื• ืื ื• ืฆืจื™ื›ื™ื ืœื™ื™ืฉื ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืขื ื‘ื™ืฆื•ืขื™ ืงืจื™ืื”-ื›ืชื™ื‘ื” ื˜ื•ื‘ื™ื ืขืœ ืืฉื›ื•ืœ ืื™ื ื˜ืจื ื˜ ืงื˜ืŸ. ื ื™ืกื™ื ื• ืืคืฉืจื•ื™ื•ืช ืฉื•ื ื•ืช ืœื”ื˜ืžืขืช ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืขื‘ื•ืจ ื”ืคืจื•ื™ืงื˜ื™ื ืฉืœื ื•, ืืš ืžืขื˜ื™ื ื”ืฆืœื™ื—ื• ืœืกืคืง ืื•ืชื ื• ื‘ื›ืžื” ืื™ื ื“ื™ืงื˜ื•ืจื™ื ื‘ื•-ื–ืžื ื™ืช. ืขื›ืฉื™ื• ื ื’ื™ื“ ืœืš ืœืžื”.

  • Glusterfs ืœื ืกื™ืคืง ืื•ืชื ื• ื‘ื‘ื™ืฆื•ืขื™ ืงืจื™ืื” ื•ื›ืชื™ื‘ื”; ื”ื™ื• ื‘ืขื™ื•ืช ื‘ืงืจื™ืื” ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืžืกืคืจ ืจื‘ ืฉืœ ืงื‘ืฆื™ื, ื•ื”ื™ื” ืขื•ืžืก ื’ื‘ื•ื” ืขืœ ื”ืžืขื‘ื“. ื ื™ืชืŸ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ื‘ืงืจื™ืืช ืงื‘ืฆื™ื ืขืœ ื™ื“ื™ ื’ื™ืฉื” ืืœื™ื”ื ื™ืฉื™ืจื•ืช ืžื”ืœื‘ื ื”, ืืš ื–ื” ืœื ืชืžื™ื“ ื™ืฉื™ื ื•ื‘ื“ืจืš ื›ืœืœ ืื™ื ื• ื ื›ื•ืŸ.

  • Ceph ืœื ืื”ื‘ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืžื•ื’ื–ืžืช, ืฉืขืœื•ืœื” ืœื”ื–ื™ืง ื‘ืคืจื•ื™ืงื˜ื™ื ืขื 2-4 ืฉืจืชื™ื, ื‘ืžื™ื•ื—ื“ ืื ื”ืคืจื•ื™ืงื˜ ืžืชื•ื—ื–ืง ืœืื—ืจ ืžื›ืŸ. ืฉื•ื‘, ื™ืฉื ืŸ ืžื’ื‘ืœื•ืช ื‘ื™ืฆื•ืขื™ื ื—ืžื•ืจื•ืช ืžืืœืฆื•ืช ืื•ืชื ื• ืœื‘ื ื•ืช ืืฉื›ื•ืœื•ืช ืื—ืกื•ืŸ ื ืคืจื“ื™ื, ื›ืžื• ืขื ื’ืœื•ืกื˜ืจืคื™ื.

  • ืฉื™ืžื•ืฉ ื‘ืฉืจืช NFS ืื—ื“ ืœื™ื™ืฉื•ื ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืžืขืœื” ืฉืืœื•ืช ื‘ืžื•ื ื—ื™ื ืฉืœ ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช.

  • s3 ื”ื•ื ืคืชืจื•ืŸ ืคื•ืคื•ืœืจื™ ืžืฆื•ื™ืŸ ืขื‘ื•ืจ ืžื’ื•ื•ืŸ ืžืกื•ื™ื ืฉืœ ืžืฉื™ืžื•ืช, ืื‘ืœ ื–ื” ืœื ืžืขืจื›ืช ืงื‘ืฆื™ื, ืžื” ืฉืžืฆืžืฆื ืืช ื”ื™ืงืคื”.

  • lsyncd. ืื ื›ื‘ืจ ื”ืชื—ืœื ื• ืœื“ื‘ืจ ืขืœ "ืžืขืจื›ื•ืช ืฉืื™ื ืŸ ืงื‘ืฆื™ื", ืื– ื›ื“ืื™ ืœืขื‘ื•ืจ ืขืœ ื”ืคืชืจื•ืŸ ื”ืคื•ืคื•ืœืจื™ ื”ื–ื”. ืœื ืจืง ืฉื”ื•ื ืœื ืžืชืื™ื ืœื”ื—ืœืคื” ื“ื• ื›ื™ื•ื•ื ื™ืช (ืื‘ืœ ืื ืืชื” ื‘ืืžืช ืจื•ืฆื”, ืื– ืืชื” ื™ื›ื•ืœ), ื–ื” ื’ื ืœื ืขื•ื‘ื“ ื‘ื™ืฆื™ื‘ื•ืช ืขืœ ืžืกืคืจ ืจื‘ ืฉืœ ืงื‘ืฆื™ื. ืชื•ืกืคืช ื ื—ืžื“ื” ืœื›ืœ ื”ืขื ื™ื™ืŸ ื”ื™ื ืฉื”ื•ื ื—ื“ ื—ื•ื˜ื™. ื”ืกื™ื‘ื” ื”ื™ื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ื”ืชื•ื›ื ื™ืช: ื”ื™ื ืžืฉืชืžืฉืช ื‘-inotify ื›ื“ื™ ืœื ื˜ืจ ืื•ื‘ื™ื™ืงื˜ื™ ืขื‘ื•ื“ื”, ืื•ืชื ื”ื™ื ืžืงืฆื” ื‘ืขืช ื”ื”ืคืขืœื” ื•ื‘ืžื”ืœืš ืกืจื™ืงื” ืžื—ื“ืฉ. rsync ืžืฉืžืฉ ื›ืืžืฆืขื™ ื”ื”ืขื‘ืจื”.

ืžื“ืจื™ืš: ื›ื™ืฆื“ ืœืคืจื•ืก ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืขืœ ื‘ืกื™ืก drbd+ocfs2

ืื—ื“ ื”ืคืชืจื•ื ื•ืช ื”ื ื•ื—ื™ื ืœื ื• ื”ื™ื” ื”ืงื™ืฉื•ืจ ocfs2+drbd. ื›ืขืช ื ืกืคืจ ืœื›ื ื›ื™ืฆื“ ืชื•ื›ืœื• ืœืคืจื•ืก ื‘ืžื”ื™ืจื•ืช ืื—ืกื•ืŸ ืžืฉื•ืชืฃ ืœืฉื ื™ ืฉืจืชื™ื ืขืœ ื‘ืกื™ืก ืžืกื“ ื ืชื•ื ื™ื ืฉืœ ืคืชืจื•ื ื•ืช. ืื‘ืœ ืงื•ื“ื ื›ืœ, ืงืฆืช ืขืœ ื”ืจื›ื™ื‘ื™ื:

DRBD - ืžืขืจื›ืช ืื—ืกื•ืŸ ืžื”ืคืฆืช ืœื™ื ื•ืงืก ื”ืจื’ื™ืœื” ื”ืžืืคืฉืจืช ืœืฉื›ืคืœ ื ืชื•ื ื™ื ื‘ื™ืŸ ืฉืจืชื™ื ื‘ื‘ืœื•ืงื™ื. ื”ื™ื™ืฉื•ื ื”ืขื™ืงืจื™ ื”ื•ื ืœื‘ื ื•ืช ืื—ืกื•ืŸ ืกื•ื‘ืœื ื™ ืœืชืงืœื•ืช.

OCFS2 - ืžืขืจื›ืช ืงื‘ืฆื™ื ื”ืžืกืคืงืช ืฉื™ืžื•ืฉ ืžืฉื•ืชืฃ ื‘ืื•ืชื• ืื—ืกื•ืŸ ืขืœ ื™ื“ื™ ืžืกืคืจ ืžืขืจื›ื•ืช. ื›ืœื•ืœ ื‘ื”ืคืฆืช ืœื™ื ื•ืงืก ื•ื”ื•ื ืžื•ื“ื•ืœ ืœื™ื‘ื” ื•ื›ืœื™ ืžืจื—ื‘ ืžืฉืชืžืฉ ืœืขื‘ื•ื“ื” ืขื ื”-FS. OCFS2 ื™ื›ื•ืœ ืœืฉืžืฉ ืœื ืจืง ืขืœ DRBD, ืืœื ื’ื ืขืœ iSCSI ืขื ืžืกืคืจ ื—ื™ื‘ื•ืจื™ื. ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืื ื• ืžืฉืชืžืฉื™ื ื‘-DRBD.

ื›ืœ ื”ืคืขื•ืœื•ืช ืžื‘ื•ืฆืขื•ืช ื‘ืฉืจืช ืื•ื‘ื•ื ื˜ื• 18.04 ื‘ืชืฆื•ืจื” ืžื™ื ื™ืžืœื™ืช.

ืฉืœื‘ 1. ื”ื’ื“ืจ ืืช DRBD:

ื‘ืงื•ื‘ืฅ /etc/drbd.d/drbd0.res ืื ื• ืžืชืืจื™ื ืืช ืžื›ืฉื™ืจ ื”ื—ืกื™ืžื” ื”ื•ื•ื™ืจื˜ื•ืืœื™ ืฉืœื ื• /dev/drbd0:

resource drbd0 {
    syncer { rate 1000M; }
    net {
        allow-two-primaries;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
    }
    startup { become-primary-on both; }
    on drbd1 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.192:7789;
}
    on drbd2 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.193:7789;
}
}

ืžื˜ื”-ื“ื™ืกืง ืคื ื™ืžื™ - ื”ืฉืชืžืฉ ื‘ืื•ืชื ื”ืชืงื ื™ ื—ืกื™ืžื” ื›ื“ื™ ืœืื—ืกืŸ ืžื˜ื ื ืชื•ื ื™ื
ืžื›ืฉื™ืจ /dev/drbd0 - ื”ืฉืชืžืฉ ื‘-/dev/drbd0 ื‘ืชื•ืจ ื”ื ืชื™ื‘ ืœืืžืฆืขื™ ื”ืื—ืกื•ืŸ ืฉืœ drbd.
ื“ื™ืกืง /dev/vdb1 - ื”ืฉืชืžืฉ ื‘-/dev/vdb1
ืกื™ื ื›ืจื•ืŸ { ืฉื™ืขื•ืจ 1000M; } - ื”ืฉืชืžืฉ ื‘ืจื•ื—ื‘ ืคืก ืฉืœ ืขืจื•ืฅ ื’ื™ื’ื”-ื‘ื™ื˜
ืืคืฉืจ-ืฉื ื™-ืคืจื™ื™ืžืจื™ื– - ืืคืฉืจื•ืช ื—ืฉื•ื‘ื” ื”ืžืืคืฉืจืช ืงื‘ืœืช ืฉื™ื ื•ื™ื™ื ื‘ืฉื ื™ ืฉืจืชื™ื ืจืืฉื™ื™ื
after-sb-0pri, after-sb-1pri, after-sb-2pri - ืืคืฉืจื•ื™ื•ืช ื”ืื—ืจืื™ื•ืช ืœืคืขื•ืœื•ืช ื”ืฆื•ืžืช ื›ืืฉืจ ืžื–ื•ื”ื” ืžื•ื— ืžืคื•ืฆืœ. ืคืจื˜ื™ื ื ื•ืกืคื™ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืชื™ืขื•ื“.
ืœื”ื™ื•ืช-ืจืืฉื™-ืขืœ ืฉื ื™ื”ื - ืžื’ื“ื™ืจ ืืช ืฉื ื™ ื”ืฆืžืชื™ื ืœืจืืฉื•ื ื™.

ื‘ืžืงืจื” ืฉืœื ื•, ื™ืฉ ืœื ื• ืฉื ื™ VM ื–ื”ื™ื ืœื—ืœื•ื˜ื™ืŸ, ืขื ืจืฉืช ื•ื™ืจื˜ื•ืืœื™ืช ื™ื™ืขื•ื“ื™ืช ืขื ืชืคื•ืงื” ืฉืœ 10 ื’ื™ื’ื”-ื‘ื™ื˜.

ื‘ื“ื•ื’ืžื” ืฉืœื ื•, ืฉืžื•ืช ื”ืจืฉืช ืฉืœ ืฉื ื™ ืฆืžืชื™ ืืฉื›ื•ืœ ื”ื drbd1 ื•-drbd2. ืœื”ืคืขืœื” ืชืงื™ื ื”, ืขืœื™ืš ืœื”ืชืื™ื ืืช ื”ืฉืžื•ืช ื•ื›ืชื•ื‘ื•ืช ื”-IP ืฉืœ ืžืืจื—ื™ื ื‘-/etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

ืฉืœื‘ 2. ื”ื’ื“ืจ ืฆืžืชื™ื:

ื‘ืฉื ื™ ื”ืฉืจืชื™ื ืื ื• ืžืจื™ืฆื™ื:

drbdadm create-md drbd0

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

ืื ื—ื ื• ืžืงื‘ืœื™ื ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ืืชื” ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืกื ื›ืจื•ืŸ. ื‘ืฆื•ืžืช ื”ืจืืฉื•ืŸ ืืชื” ืฆืจื™ืš ืœื‘ืฆืข:

drbdadm primary --force drbd0

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืžืฆื‘:

cat /proc/drbd

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ื ื”ื“ืจ, ื”ืกื ื›ืจื•ืŸ ื”ืชื—ื™ืœ. ื ื—ื›ื” ืขื“ ื”ืกื•ืฃ ื•ืจื•ืื™ื ืืช ื”ืชืžื•ื ื”:

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ืฉืœื‘ 3. ื”ืชื—ืœ ืกื ื›ืจื•ืŸ ื‘ืฆื•ืžืช ื”ืฉื ื™:

drbdadm primary --force drbd0

ืื ื—ื ื• ืžืงื‘ืœื™ื ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ื›ืขืช ื ื•ื›ืœ ืœื›ืชื•ื‘ ืœ-drbd ืžืฉื ื™ ืฉืจืชื™ื.

ืฉืœื‘ 4. ื”ืชืงืŸ ื•ื”ื’ื“ืจ ืืช ocfs2.

ื ืฉืชืžืฉ ื‘ืชืฆื•ืจื” ื“ื™ ื˜ืจื™ื•ื•ื™ืืœื™ืช:

cluster:
     node_count = 2
     name = ocfs2cluster

node:
     number = 1
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.192
     name = drbd1

node:
     number = 2
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.193
     name = drbd2

ืฆืจื™ืš ืœืจืฉื•ื ืืช ื–ื” /etc/ocfs2/cluster.conf ื‘ืฉื ื™ ื”ืฆืžืชื™ื.

ืื ื• ื™ื•ืฆืจื™ื FS ื‘-drbd0 ื‘ื›ืœ ืฆื•ืžืช:

mkfs.ocfs2 -L "testVol" /dev/drbd0

ื›ืืŸ ื™ืฆืจื ื• ืžืขืจื›ืช ืงื‘ืฆื™ื ืขื ื”ืชื•ื•ื™ืช testVol ืขืœ drbd0, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืคืจืžื˜ืจื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ.

ืื—ืกื•ืŸ ืืฉื›ื•ืœื•ืช ืขื‘ื•ืจ ืืฉื›ื•ืœื•ืช ืื™ื ื˜ืจื ื˜ ืงื˜ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ drbd+ocfs2

ื‘-/etc/default/o2cb ืืชื” ืฆืจื™ืš ืœื”ื’ื“ื™ืจ (ื›ืžื• ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœื ื•)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

ื•ื”ืคืขืœ ื‘ื›ืœ ืฆื•ืžืช:

o2cb register-cluster ocfs2cluster

ืœืื—ืจ ืžื›ืŸ ื ืคืขื™ืœ ื•ื ื•ืกื™ืฃ ืืช ื›ืœ ื”ื™ื—ื™ื“ื•ืช ืฉืื ื• ืฆืจื™ื›ื™ื ืœื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

ื—ืœืง ืžื–ื” ื›ื‘ืจ ื™ืคืขืœ ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื”ืชืงื ื”.

ืฉืœื‘ 5. ื”ื•ืกืฃ ื ืงื•ื“ื•ืช ื”ืจื›ื‘ื” ืœ-fstab ื‘ืฉื ื™ ื”ืฆืžืชื™ื:

/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0

ืžึทื“ืจึดื™ืš /media/shared ื™ืฉ ืœื™ืฆื•ืจ ืื•ืชื• ืžืจืืฉ.

ื›ืืŸ ืื ื• ืžืฉืชืžืฉื™ื ื‘ืืคืฉืจื•ื™ื•ืช noauto, ืžื” ืฉืื•ืžืจ ืฉื”ืงื•ื‘ืฅ ืœื ื™ื•ืขืœื” ื‘ื”ืคืขืœื” (ืื ื™ ืžืขื“ื™ืฃ ืœืขืœื•ืช ืงื‘ืฆื™ ืจืฉืช ื“ืจืš systemd) ื•ื‘-heartbeat=local, ื›ืœื•ืžืจ ืฉื™ืžื•ืฉ ื‘ืฉื™ืจื•ืช heartbeat ื‘ื›ืœ ืฆื•ืžืช. ื™ืฉ ื’ื ืคืขื™ืžื•ืช ืœื‘ ื’ืœื•ื‘ืœื™ื•ืช, ืฉืžืชืื™ื ื™ื•ืชืจ ืœืืฉื›ื•ืœื•ืช ื’ื“ื•ืœื™ื.

ื”ื‘ื ืืชื” ื™ื›ื•ืœ ืœืขืœื•ืช /media/shared ื•ืœื‘ื“ื•ืง ืกื ื›ืจื•ืŸ ืชื•ื›ืŸ.

ื‘ื•ืฆืข! ื›ืชื•ืฆืื” ืžื›ืš, ืื ื• ืžืงื‘ืœื™ื ืคื—ื•ืช ืื• ื™ื•ืชืจ ืื—ืกื•ืŸ ืกื•ื‘ืœื ื™ ืœืชืงืœื•ืช ืขื ืžื“ืจื’ื™ื•ืช ื•ื‘ื™ืฆื•ืขื™ื ื ืื•ืชื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”