แ แแแ แแแกแแฃแแ แแแ:
แ แแแแ แกแฌแ แแคแแ แแแแแแแแแกแแ แกแแแ แแ แแแฎแกแแแ แแแ แแ แ แกแแ แแแ แแกแแแแก drbd+ocfs2 แแแแแฌแงแแแขแแแแแแแแก แกแแคแฃแซแแแแแ.
แแแกแแแแก แแฅแแแแ แแก แกแแกแแ แแแแแ:
แแแแแแแแแ แกแแกแแ แแแแแ แแฅแแแแ แกแแกแขแแแแก แแแแแแแกแขแ แแขแแ แแแแกแแแแก แแ แงแแแแแกแแแแก, แแแแช แแ แฉแแแก แจแแแแฎแแแก แแแแฎแแ แชแแแแแแแก แแแแแแก แแ แกแฃแ แก แกแชแแแ แแแแแกแแแแแ.
แ แ แแแแแฌแงแแแขแแแแแแแแ แแแฅแแแ แฃแแ แ แแ แ แแขแแ?
แฎแจแแ แแ แฉแแแ แแแฌแงแแแแแ แกแแขแฃแแชแแแก, แ แแแแกแแช แฉแแแ แแแญแแ แแแแ แกแแแแแ แ แแแฎแกแแแ แแแแก แแแแแ แแแ แแแ แแ แฌแแแแแฎแแ-แฌแแ แแก แจแแกแ แฃแแแแแ แแชแแ แ แแแ แแแแกแขแแ แแ. แฉแแแ แแชแแแแ แกแฎแแแแแกแฎแแ แแแ แแแแขแแแ แฉแแแแ แแ แแแฅแขแแแแกแแแแก แกแแแ แแ แกแแชแแแแก แแแแฎแแ แชแแแแแแแกแแแแก, แแแแ แแ แ แแแแแแแแแ แจแแซแแ แแ แแแ แแฃแแแ แ แแแแแแแแ แแแแแแแขแแ แแก แแแแแแงแแคแแแแแ. แแฎแแ แฉแแแ แแแขแงแแแ แ แแขแแ.
- แแแฃแกแขแแ แคแแแ แแ แแแแแแแงแแคแแแแแแ แแแแฎแแแกแ แแ แฌแแ แแก แจแแกแ แฃแแแแแ; แแงแ แแ แแแแแแแแ แแแแ แ แแแแแแแแแ แคแแแแแแแก แแ แแแ แแฃแแ แฌแแแแแฎแแแกแแก แแ แแงแ แแแฆแแแ แแแขแแแ แแแ CPU-แแ. แคแแแแแแแก แฌแแแแแฎแแแก แแ แแแแแแ แจแแแซแแแแ แแแแแแ แแแก แแแแแ แฃแจแฃแแแแ แแแฃแ แแแแ แฌแแแแแแ, แแแแ แแ แแก แงแแแแแแแแก แแ แแแแแแงแแแแแ แแ แแแแแแแ แแ แแกแฌแแ แแ.
- Ceph-แก แแ แแแแฌแแแ แแแแแญแแ แแแแฃแแ แกแแ แแฃแแ, แ แแแแแแช แจแแแซแแแแ แกแแแแแแ แแงแแก 2-4 แกแแ แแแ แแก แแฅแแแ แแ แแแฅแขแแแแ, แแแแกแแแฃแแ แแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแ แแแฅแขแ แจแแแแแแแจแ แจแแแแ แฉแฃแแแแแ. แแกแแ แแ แแกแแ, แแ แกแแแแแก แแฃแจแแแแแก แกแแ แแแแฃแแ แจแแแฆแฃแแแแแ, แ แแแแแแแช แแแแแซแฃแแแแก แแแแจแแแแ แชแแแแ แกแแชแแแแก แแแแกแขแแ แแแ, แ แแแแ แช แแแฃแกแขแแ แคแแแ.
- แแ แแ NFS แกแแ แแแ แแก แแแแแงแแแแแ แกแแแ แแ แแแฎแกแแแ แแแแก แแแแกแแฎแแ แชแแแแแแแแ แแแแแแก แแแแฎแแแแก แจแแชแแแแแก แขแแแแ แแแขแแแแก แแแแแกแแแ แแกแแ.
- s3 แแ แแก แจแแกแแแแจแแแแ แแแแฃแแแ แฃแแ แแแแแฌแงแแแขแ แแแแชแแแแแแก แแแ แแแแฃแแ แกแแแฅแขแ แแกแแแแก, แแแแ แแ แแก แแ แแ แแก แคแแแแฃแ แ แกแแกแขแแแ, แ แแแแแแช แแแแฌแ แแแแก แแแก แคแแ แแแแแก.
- lsyncd. แแฃ แฉแแแ แฃแแแ แแแแแฌแงแแ แกแแฃแแแ แ "แแ แแคแแแแแก แกแแกแขแแแแแแ", แแแจแแ แฆแแ แก แแ แแแแฃแแแ แฃแแ แแแแแฌแงแแแขแแก แแแแแฎแแแแ. แแก แแ แ แแฎแแแแ แแ แแ แแก แจแแกแแคแแ แแกแ แแ แแฎแ แแแ แแแชแแแแกแแแแก (แแแแ แแ แแฃ แแแแแแแแแ แแกแฃแ แ, แแแจแแ แจแแแแซแแแแ), แแก แแกแแแ แแ แแฃแจแแแแก แกแขแแแแแฃแ แแ แคแแแแแแแก แแแ แ แแแแแแแแแแ. แแแแแ แแแแแแก แกแแกแแแแแแแ แแแแแขแแแ แแก แแ แแก, แ แแ แแก แแ แแก แแ แแซแแคแ. แแแแแแ แแ แแแ แแแแก แแ แฅแแขแแฅแขแฃแ แแจแแ: แแก แแงแแแแแก inotify-แก แกแแแฃแจแแ แแแแแฅแขแแแแก แแแแแขแแ แแแแแกแแแแก, แ แแแแแแกแแช แแแแญแแแก แแแจแแแแแกแแก แแ แฎแแแแฎแแแ แกแแแแแ แแแแก แแ แแก. rsync แแแแแแงแแแแแ แ แแแแ แช แแแแแชแแแแก แกแแจแฃแแแแแ.
แกแแฎแแแแซแฆแแแแแแ: แ แแแแ แแแแแแแแแกแแ แกแแแ แแ แแแฎแกแแแ แแแ drbd+ocfs2-แแ แแแคแฃแซแแแแฃแแ
แฉแแแแแแแก แแ แ-แแ แแ แงแแแแแแ แแแกแแฎแแ แฎแแแแแ แแแแแกแแแแแ แแงแ แแแฃแแ ocfs2+drbd. แแฎแแ แฉแแแ แแแขแงแแแ, แแฃ แ แแแแ แจแแแแซแแแแ แกแฌแ แแคแแ แแแแแแแแกแแ แกแแแ แแ แกแแชแแแ แแ แ แกแแ แแแ แแกแแแแก แแแแแฌแงแแแขแแแแแแแแก แแแแแชแแแแ แแแแแก แกแแคแฃแซแแแแแ. แแแแ แแ แแแ แแแแ, แชแแขแ แ แแ แแแแแแแแแขแแแแก แจแแกแแฎแแ:
DRBD - แจแแแแฎแแแก แกแแกแขแแแ แกแขแแแแแ แขแฃแแ Linux แแแกแขแ แแแฃแชแแแแแ, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแแ แแ แแแแแชแแแแแ แกแแ แแแ แแแก แจแแ แแก แแแแแแแจแ. แแแแแแ แ แแ แแแ แแแ แแ แแก แจแแชแแแแแก แขแแแแ แแแขแฃแแ แกแแชแแแแก แจแแฅแแแ.
OCFS2 - แคแแแแฃแ แ แกแแกแขแแแ, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แแ แแ แแ แแแแแ แกแแชแแแแก แกแแแ แแ แแแแแงแแแแแแก แ แแแแแแแแ แกแแกแขแแแแก แแแแ . แจแแแแก Linux แแแกแขแ แแแฃแชแแแจแ แแ แแ แแก แแแ แแแแก แแแแฃแแ แแ แแแแฎแแแ แแแแแก แกแแแ แชแแก แแแกแขแ แฃแแแแขแแแ FS-แแแ แแฃแจแแแแแกแแแแก. OCFS2 แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แ แแฎแแแแ DRBD-แแ, แแ แแแแ iSCSI-แแ แแ แแแแแ แแแแจแแ แแ. แฉแแแแก แแแแแแแแจแ แฉแแแ แแแงแแแแแ DRBD.
แงแแแแ แแแฅแแแแแแ แจแแกแ แฃแแแแฃแแแ ubuntu แกแแ แแแ แแ 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
แกแแแแแ แ { แกแแฎแจแแ แ 1000 แ; } - แแแแแแงแแแแ แแแแแแแขแแแแ แแ แฎแแก แแแแขแแ แแแ
แแแจแแแแ-แแ แ-แแ แแแแแ แ - แแแแจแแแแแแแแแ แแแ แแแแขแ, แ แแแแแแช แกแแจแฃแแแแแแก แแซแแแแก แชแแแแแแแแแแก แแแฆแแแแก แแ แซแแ แแแแ แกแแ แแแ แแ
after-sb-0pri, after-sb-1pri, after-sb-2pri - แแแ แแแแขแ แแแ, แ แแแแแแแช แแแกแฃแฎแแกแแแแแแแแ แแ แแแ แแแแแซแแก แฅแแแแแแแแแ, แ แแแแกแแช แแแแแแแแแแแแ splitbrain. แแแแแขแแแแแ แแแขแแแแแ แจแแแแซแแแแ แแฎแแแแ แแแแฃแแแแขแแชแแแจแ.
แแแฎแแแก-แแแ แแแแแแ-แแ แแแแแ โ แแงแแแแแก แแ แแแ แแแแแซแก แแแ แแแแแ.
แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแแฅแแก แแ แ แแแกแแแฃแขแฃแ แแ แแแแแขแฃแ แ VM, แแแแแงแแคแแแ แแแ แขแฃแแแฃแ แ แฅแกแแแแ, แ แแแแแก แแแแขแแ แฃแแแ แแแแแแแ 10 แแแแแแแขแ.
แฉแแแแก แแแแแแแแจแ, แแ แ แแแแกแขแแ แฃแแ แแแแแซแแก แฅแกแแแแก แกแแฎแแแแแแ drbd1 แแ drbd2. แกแแแแแแแ แแฃแจแแแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแแแจแแ แแ แฐแแกแขแแแแก แกแแฎแแแแแ แแ IP แแแกแแแแ แแแแ /etc/hosts-แจแ.
10.10.10.192 drbd1
10.10.10.193 drbd2
แแแแแฏแ 2. แแแแแซแแแแก แแแงแแแแแ:
แแ แแแ แกแแ แแแ แแ แแแฃแจแแแแ:
drbdadm create-md drbd0
modprobe drbd
drbdadm up drbd0
cat /proc/drbd
แฉแแแ แแแฆแแแ แจแแแแแแก:
แจแแแแซแแแแ แแแแฌแงแแ แกแแแฅแ แแแแแแชแแ. แแแ แแแ แแแแแซแแ แแฅแแแ แฃแแแ แจแแแกแ แฃแแแ:
drbdadm primary --force drbd0
แแแแแ แจแแแฎแแแแ แกแขแแขแฃแกแก:
cat /proc/drbd
แแแ แแแ, แกแแแฅแ แแแแแแชแแ แแแแฌแงแ. แแแแแแแแแ แแแแแแแ แแ แแแแฎแแแ แกแฃแ แแแก:
แแแแแฏแ 3. แแแแฌแงแแ แกแแแฅแ แแแแแแชแแ แแแแ แ แแแแแซแแ:
drbdadm primary --force drbd0
แฉแแแ แแแฆแแแ แจแแแแแแก:
แแฎแแ แฉแแแ แจแแแแแซแแแ แแแแฌแแ แแ 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 on drbd0, แแแแฃแแแกแฎแแแแ แแแ แแแแขแ แแแแก แแแแแงแแแแแแ.
/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
แแแ แแฅแขแแ แแ /แแแแแ/แแแแแแ แแแฃแแ แแก แฌแแแแกแฌแแ แฃแแแ แจแแแฅแแแแก.
แแฅ แแแงแแแแแ noauto แแคแชแแแแก, แ แแช แแแจแแแแก, แ แแ แคแแแแ แแ แแฅแแแแ แแแแแแขแแแแแฃแแ แแแจแแแแแกแแก (แแแ แฉแแแแแ แฅแกแแแแก แคแแแแแแแก แแแแแแขแแแแแ systemd-แแก แกแแจแฃแแแแแแ) แแ heartbeat=local, แ แแช แแฃแแแกแฎแแแแก แแฃแแแกแชแแแแก แกแแ แแแกแแก แแแแแงแแแแแแก แแแแแแฃแ แแแแแซแแ. แแกแแแ แแ แกแแแแแก แแแแแแแฃแ แ แแฃแแแกแชแแแ, แ แแแแแแช แฃแคแ แ แจแแกแแคแแ แแกแแ แแแแ แแขแแแแแกแแแแก.
แจแแแแแ แจแแแแซแแแแ แแแแแแขแแแแแ /แแแแแ/แแแแแแ แแแฃแแ แแ แจแแแแแฌแแแ แจแแแแแ แกแแก แกแแแฅแ แแแแแแชแแ.
แจแแกแ แฃแแแแฃแแแ! แจแแแแแแ, แฉแแแ แแแฆแแแ แแแข-แแแแแแแแ แจแแชแแแแแก แขแแแแ แแแข แกแแชแแแก แแแกแจแขแแแฃแ แแแแ แแ แฆแแ แกแแฃแแ แจแแกแ แฃแแแแแ.
แฌแงแแ แ: www.habr.com