Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Peb yuav tham txog dab tsi:
Yuav ua li cas sai sai xa cov kev sib koom cia rau ob lub servers raws li drbd + ocfs2 kev daws teeb meem.

Qhov no yuav pab tau rau leej twg:
Cov kev qhia yuav muaj txiaj ntsig zoo rau cov thawj coj hauv lub cev thiab txhua tus neeg uas xaiv cov txheej txheem khaws cia lossis xav sim cov tshuaj.

Peb tsis kam txiav txim siab dabtsi thiab vim li cas?

Feem ntau peb tau ntsib nrog qhov xwm txheej uas peb yuav tsum tau siv kev sib koom ua ke nrog kev nyeem ntawv-sau tau zoo ntawm lub vev xaib me me. Peb tau sim ntau yam kev xaiv rau kev siv kev sib koom ua ke rau peb cov haujlwm, tab sis ob peb muaj peev xwm txaus siab rau peb ntawm ntau qhov ntsuas ib zaug. Tam sim no peb mam li qhia koj vim li cas.

  • Glusterfs tsis txaus siab rau peb nrog kev nyeem ntawv thiab kev sau ntawv; muaj teeb meem nrog kev nyeem ib txhij ntawm cov ntaub ntawv ntau, thiab muaj kev thauj khoom siab ntawm CPU. Qhov teeb meem nrog kev nyeem cov ntaub ntawv tuaj yeem daws tau los ntawm kev nkag mus ncaj qha los ntawm cib, tab sis qhov no tsis yog ib txwm siv tau thiab feem ntau tsis raug.

  • Ceph tsis nyiam qhov nyuaj heev, uas tuaj yeem ua rau muaj kev phom sij rau cov haujlwm nrog 2-4 servers, tshwj xeeb tshaj yog tias qhov project yog tom qab khaws cia. Ib zaug ntxiv, muaj cov kev txwv loj uas yuam kom peb tsim cov khoom sib cais, xws li glusterfs.

  • Siv ib tus neeg rau zaub mov NFS los siv kev sib koom ua ke ua rau muaj lus nug txog kev ua txhaum cai.

  • s3 yog ib qho kev daws teeb meem zoo tshaj plaws rau qee yam ntawm cov dej num, tab sis nws tsis yog cov ntaub ntawv kaw lus, uas ua rau nws cov peev txheej.

  • lsyncd ua. Yog tias peb twb tau pib tham txog "tsis yog cov ntaub ntawv", ces nws tsim nyog mus dhau qhov kev daws teeb meem nrov no. Tsis tsuas yog nws tsis haum rau kev sib pauv ob txoj kev (tab sis yog tias koj xav tau tiag tiag, ces koj tuaj yeem ua tau), nws kuj tsis ua haujlwm ruaj khov ntawm ntau cov ntaub ntawv. Ib qho zoo ntxiv rau tag nrho cov khoom yog tias nws yog ib txoj xov. Yog vim li cas yog nyob rau hauv lub architecture ntawm qhov kev pab cuam: nws siv inotify los saib xyuas cov khoom ua hauj lwm, uas nws assigns thaum pib thiab thaum lub sij hawm rescanning. rsync yog siv los ua qhov hloov pauv nruab nrab.

Tutorial: yuav ua li cas rau deploy sib koom cia raws li drbd + ocfs2

Ib qho kev daws teeb meem yooj yim tshaj plaws rau peb yog qhov txuas ocfs2+ drbd. Tam sim no peb yuav qhia koj li cas koj tuaj yeem xa sai sai rau kev sib koom ua ke rau ob lub servers raws li kev daws teeb meem database. Tab sis ua ntej, me ntsis txog cov khoom:

DRBD - lub kaw lus cia los ntawm tus qauv Linux faib uas tso cai rau koj rov luam cov ntaub ntawv ntawm cov servers hauv cov blocks. Daim ntawv thov tseem ceeb yog tsim kom muaj kev cia siab rau kev ua txhaum.

OCFS 2 - cov ntaub ntawv kaw lus uas muab kev sib koom siv tib yam cia los ntawm ntau lub tshuab. Muaj nyob rau hauv Linux faib thiab yog cov ntsiav module thiab cov cuab yeej siv rau kev ua haujlwm nrog FS. OCFS2 tuaj yeem siv tsis yog dhau DRBD, tab sis kuj dhau iSCSI nrog ntau qhov kev sib txuas. Hauv peb qhov piv txwv peb siv DRBD.

Txhua qhov kev ua tau ua tiav ntawm ubuntu server 18.04 hauv kev teeb tsa tsawg.

Kauj ruam 1. Configure DRBD:

Hauv cov ntaub ntawv /etc/drbd.d/drbd0.res peb piav qhia peb lub tshuab thaiv virtual /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;
}
}

meta-disk sab hauv - siv tib lub thaiv cov cuab yeej los khaws cov metadata
ntaus /dev/drbd0 - siv /dev/drbd0 raws li txoj hauv kev rau drbd ntim.
disk /dev/vdb1 - siv /dev/vdb1
syncer { tus nqi 1000M; } - siv gigabit channel bandwidth
pub-ob-primaries - ib qho kev xaiv tseem ceeb uas tso cai rau kev hloov pauv tau txais ntawm ob lub servers thawj
tom qab-sb-0pri, tom qab-sb-1pri, tom qab-sb-2pri - cov kev xaiv ua lub luag haujlwm rau cov node kev ua thaum kuaj pom pom. Xav paub ntau ntxiv tuaj yeem pom hauv cov ntaub ntawv.
ua-primary-ntawm ob qho tib si - teeb tsa ob lub nodes rau thawj.

Nyob rau hauv peb cov ntaub ntawv, peb muaj ob tug zoo tib yam VMs, nrog ib tug mob siab rau virtual network nrog ib tug throughput ntawm 10 gigabits.

Hauv peb qhov piv txwv, lub npe network ntawm ob pawg nodes yog drbd1 thiab drbd2. Txhawm rau ua haujlwm kom raug, koj yuav tsum ua raws cov npe thiab IP chaw nyob ntawm cov tswv hauv /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Kauj ruam 2. Teeb nodes:

Hauv ob lub servers peb khiav:

drbdadm create-md drbd0

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Peb tau txais cov hauv qab no:

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Koj tuaj yeem pib synchronization. Ntawm thawj node koj yuav tsum tau ua:

drbdadm primary --force drbd0

Cia peb saib ntawm qhov xwm txheej:

cat /proc/drbd

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Zoo heev, synchronization tau pib. Peb tos kom txog thaum kawg thiab saib daim duab:

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Kauj ruam 3. Pib synchronization ntawm lub thib ob ntawm:

drbdadm primary --force drbd0

Peb tau txais cov hauv qab no:

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Tam sim no peb tuaj yeem sau rau drbd los ntawm ob lub servers.

Kauj ruam 4. Nruab thiab teeb tsa ocfs2.

Peb yuav siv cov kev teeb tsa tsis tseem ceeb:

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

Nws yuav tsum tau sau cia rau hauv /etc/ocfs2/cluster.conf ntawm ob lub nodes.

Peb tsim FS ntawm drbd0 ntawm txhua qhov ntawm:

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

Ntawm no peb tsim cov ntaub ntawv kaw lus nrog daim ntawv lo testVol ntawm drbd0, siv lub neej ntawd tsis.

Cluster cia rau cov vev xaib me me raws li drbd+ocfs2

Hauv /etc/default/o2cb koj yuav tsum tau teeb tsa (raws li hauv peb cov ntaub ntawv teeb tsa)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

thiab khiav ntawm txhua qhov node:

o2cb register-cluster ocfs2cluster

Tom qab ntawd peb qhib thiab ntxiv tag nrho cov units peb xav tau autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Qee qhov no yuav tau ua haujlwm thaum lub sijhawm teeb tsa.

Kauj ruam 5. Ntxiv cov ntsiab lus mount rau fstab ntawm ob lub nodes:

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

Phau ntawv /media/shared nws yuav tsum tau tsim ua ntej.

Ntawm no peb siv cov kev xaiv noauto, uas txhais tau hais tias cov ntaub ntawv yuav tsis raug mounted thaum pib (Kuv nyiam mount cov ntaub ntawv network ntawm systemd) thiab heartbeat = hauv zos, uas txhais tau tias siv lub plawv dhia kev pab cuam ntawm txhua qhov ntawm. Kuj tseem muaj lub plawv dhia thoob ntiaj teb, uas tsim nyog rau cov pawg loj.

Tom ntej no koj tuaj yeem mount /media/shared thiab xyuas cov ntsiab lus synchronization.

Ua tiav! Raws li qhov tshwm sim, peb tau txais ntau dua lossis tsawg dua qhov ua txhaum-tho cia nrog scalability thiab kev ua tau zoo.

Tau qhov twg los: www.hab.com

Ntxiv ib saib