Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Unsa ang atong hisgutan:
Giunsa ang dali nga pag-deploy sa gipaambit nga pagtipig alang sa duha nga mga server nga gibase sa mga solusyon sa drbd + ocfs2.

Alang kang kinsa kini mapuslanon:
Ang tutorial mahimong mapuslanon alang sa mga tigdumala sa sistema ug bisan kinsa nga mopili sa pamaagi sa pagpatuman sa pagtipig o gusto nga mosulay sa usa ka solusyon.

Unsa nga mga desisyon ang among gibalibaran ug ngano?

Kasagaran kita nag-atubang sa usa ka sitwasyon diin kinahanglan natong ipatuman ang shared storage nga adunay maayo nga read-write performance sa gamay nga web cluster. Among gisulayan ang lain-laing gipaambit nga mga implementasyon sa pagtipig alang sa among mga proyekto, apan pipila ra ang nakatagbaw kanamo sa daghang mga paagi sa usa ka higayon. Karon sultihan ka namo kung ngano.

  • Ang Glusterfs wala mohaum kanamo sa pagbasa ug pagsulat nga pasundayag, adunay mga problema sa dungan nga pagbasa sa daghang mga file, adunay taas nga pagkarga sa CPU. Ang problema sa pagbasa sa mga file mahimong masulbad pinaagi sa pag-access niini direkta sa mga tisa, apan kini dili kanunay nga magamit ug kasagaran sayup.

  • Dili gusto ni Ceph ang sobra nga pagkakomplikado, nga mahimong makadaot sa mga proyekto nga adunay 2-4 nga mga server, labi na kung ang proyekto pagkahuman gipadayon. Sa makausa pa, adunay mga seryoso nga mga limitasyon sa pasundayag, nga nagpugos kanimo sa paghimo og bulag nga mga cluster sa pagtipig, sama sa mga glusterfs.

  • Ang paggamit sa usa ka server sa nfs aron ipatuman ang gipaambit nga pagtipig nagpatunghag mga isyu sa mga termino sa pagtugot sa sayup.

  • s3 mao ang usa ka maayo kaayo nga popular nga solusyon alang sa usa ka piho nga lain-laing mga buluhaton, apan kini dili usa ka file system, nga pig-ot ang sakup.

  • lsyncd. Kung nagsugod na kami sa paghisgot bahin sa "non-file system", nan takus nga moagi niining popular nga solusyon. Dili lamang kini dili angay alang sa duha ka paagi nga pagbinayloay (apan kung gusto nimo, mahimo nimo), dili usab kini molihok nga lig-on sa daghang mga file. Ang usa ka nindot nga pagdugang sa tanan mao nga kini single-threaded. Ang hinungdan naa sa arkitektura sa programa: gigamit niini ang inotify aron ma-monitor ang mga butang sa trabaho nga gibitay sa pagsugod ug kung nag-rescan. Ang pagbalhin medium mao ang rsync.

Tutorial: Giunsa ang pag-deploy sa shared storage base sa drbd+ocfs2

Usa sa labing kombenyente nga solusyon alang kanamo mao ang link ocfs2+drbd. Karon ipakita namon kanimo kung giunsa nimo dali nga ma-deploy ang gipaambit nga pagtipig alang sa duha nga mga server sa database sa solusyon. Apan una, gamay bahin sa mga sangkap:

DRBD - usa ka sistema sa pagtipig gikan sa standard nga pag-apod-apod sa Linux, nga nagtugot kanimo sa pagkopya sa datos tali sa mga bloke sa server. Ang nag-unang aplikasyon mao ang pagtukod sa mga tipiganan nga dili matugot sa sayup.

OCFS2 - usa ka sistema sa file nga naghatag ug gipaambit nga paggamit sa parehas nga pagtipig sa daghang mga sistema. Nalakip kini sa pag-apod-apod sa Linux ug usa ka kernel module ug toolkit sa userspace alang sa pagtrabaho kauban ang FS. Ang OCFS2 mahimong magamit dili lamang sa DRBD, apan usab sa iSCSI nga adunay daghang mga koneksyon. Sa among pananglitan, gigamit namon ang DRBD.

Ang tanan nga mga aksyon gihimo sa ubuntu server 18.04 sa usa ka gamay nga pagsumpo.

Lakang 1. I-set up ang DRBD:

Sa file /etc/drbd.d/drbd0.res among gihulagway ang among virtual block device /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;
}
}

internal nga meta-disk - gamita ang parehas nga block device para sa pagtipig sa metadata
device /dev/drbd0 - gamita ang /dev/drbd0 isip agianan padulong sa drbd volume.
disk /dev/vdb1 - gamit ang /dev/vdb1
syncer {rate 1000M; } - gamit ang gigabit bandwidth
pagtugot-duha-primaries - usa ka hinungdanon nga kapilian nga nagtugot sa mga pagbag-o nga madawat sa duha nga panguna nga mga server
pagkahuman-sb-0pri, pagkahuman-sb-1pri, pagkahuman-sb-2pri β€” mga kapilian nga responsable alang sa mga aksyon sa node kung ang usa ka splitbrain nakit-an. Ang dugang nga mga detalye makita sa dokumentasyon.
mahimong-primary-sa duha - nagbutang sa duha ka mga node sa panguna.

Sa among kaso, kami adunay duha ka hingpit nga managsama nga mga VM, nga adunay usa ka gipahinungod nga virtual network nga adunay bandwidth nga 10 gigabits.

Sa among pananglitan, ang mga ngalan sa network sa duha ka cluster node mao ang drbd1 ug drbd2. Alang sa husto nga operasyon, gikinahanglan nga ipares ang mga ngalan ug ip address sa mga host sa /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Lakang 2. I-set up ang mga node:

Sa duha ka mga server, pagdagan:

drbdadm create-md drbd0

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Atong makuha ang mosunod:

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Mahimo nimong sugdan ang pag-sync. Sa una nga node kinahanglan nimo buhaton:

drbdadm primary --force drbd0

Atong tan-awon ang kahimtang:

cat /proc/drbd

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Nindot, nagsugod na ang pag-sync. Naghulat kami sa katapusan ug makita ang litrato:

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Lakang 3. Sugdi ang pag-synchronize sa ikaduhang node:

drbdadm primary --force drbd0

Atong makuha ang mosunod:

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Karon makasulat na kami sa drbd gikan sa duha ka mga server.

Lakang 4. Pag-instalar ug pag-configure sa ocfs2.

Gigamit namon ang usa ka gamay nga pag-configure:

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

Kinahanglan kini isulat sa /etc/ocfs2/cluster.conf sa duha ka node.

Naghimo kami usa ka FS sa drbd0 sa bisan unsang node:

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

Dinhi naghimo kami usa ka filesystem nga gimarkahan nga testVol sa drbd0 gamit ang default nga mga parameter.

Cluster storage alang sa gagmay nga web clusters base sa drbd+ocfs2

Sa /etc/default/o2cb kinahanglang itakda (sama sa among configuration file)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

ug ipatuman sa matag node:

o2cb register-cluster ocfs2cluster

Dayon atong i-on ug idugang sa autorun ang tanan nga mga yunit nga atong gikinahanglan:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Ang uban niini modagan na sa proseso sa pag-setup.

Lakang 5. Idugang ang mga mount point sa fstab sa duha ka node:

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

Direktoryo /media/gipaambit ug kinahanglang mugnaon daan.

Dinhi gigamit namon ang mga kapilian nga noauto, nga nagpasabut nga ang filesystem dili ma-mount sa pagsugod (Mas gusto nako nga i-mount ang mga file sa network pinaagi sa systemd) ug heartbeat=local, nga nagpasabut nga ang serbisyo sa heartbeat gigamit sa matag node. Adunay usab global heartbeat, nga mas angay alang sa dagkong mga pungpong.

Sunod, mahimo nimong i-mount /media/gipaambit ug susiha ang pag-sync sa sulod.

Nahimo na! Ingon usa ka sangputanan, nakakuha kami labi ka daghan o dili kaayo matugoton nga pagtipig sa sayup nga adunay kakusgon ug desente nga pasundayag.

Source: www.habr.com

Idugang sa usa ka comment