Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

Abin da za mu yi magana akai:
Yadda ake saurin tura ma'ajiyar rabawa don sabar guda biyu dangane da mafitacin drbd+ocfs2.

Wanene wannan zai zama da amfani ga:
Koyawan zai zama da amfani ga masu gudanar da tsarin da duk wanda ya zaɓi hanyar aiwatar da ajiya ko yana son gwada mafita.

Waɗanne shawarwari ne muka ƙi kuma me ya sa?

Sau da yawa muna fuskantar yanayin da muke buƙatar aiwatar da ajiyar ajiya tare da kyakkyawan aikin karantawa akan ƙaramin rukunin yanar gizo. Mun gwada zaɓuɓɓuka daban-daban don aiwatar da ma'ajin da aka raba don ayyukanmu, amma kaɗan ne suka iya gamsar da mu akan alamu da yawa lokaci guda. Yanzu za mu gaya muku dalilin.

  • Glusterfs bai gamsar da mu da aikin karatu da rubutu ba; akwai matsaloli tare da karatun lokaci guda na babban adadin fayiloli, kuma akwai babban nauyi akan CPU. Ana iya magance matsalar karatun fayilolin ta hanyar samun damar su kai tsaye daga tubali, amma wannan ba koyaushe ake amfani da shi ba kuma gabaɗaya kuskure ne.

  • Ceph ba ya son hadaddun da ya wuce kima, wanda zai iya zama cutarwa akan ayyukan tare da sabobin 2-4, musamman idan an kiyaye aikin daga baya. Bugu da ƙari, akwai ƙayyadaddun ƙayyadaddun ayyuka waɗanda ke tilasta mana gina ƙungiyoyin ajiya daban, kamar tare da glusterfs.

  • Yin amfani da uwar garken NFS guda ɗaya don aiwatar da ajiyar da aka raba yana haifar da tambayoyi dangane da haƙurin kuskure.

  • s3 sanannen sanannen bayani ne don takamaiman ayyuka, amma ba tsarin fayil ba ne, wanda ke rage iyakokinsa.

  • lsyncd. Idan mun riga mun fara magana game da "tsarin da ba fayil ba," to yana da kyau mu wuce wannan sanannen bayani. Ba wai kawai bai dace da musanya ta hanyoyi biyu ba (amma idan kuna son gaske, to, zaku iya), Hakanan baya aiki da ƙarfi akan babban adadin fayiloli. Kyakkyawan ƙari ga duka abu shine cewa yana da zaren guda ɗaya. Dalilin yana cikin tsarin gine-ginen shirin: yana amfani da inotify don saka idanu akan abubuwan aiki, wanda ke ba da izini a farawa da lokacin sake dubawa. Ana amfani da rsync azaman hanyar canja wuri.

Koyarwa: yadda ake tura ma'ajin da aka raba bisa drbd+ocfs2

Ɗayan mafita mafi dacewa a gare mu shine hanyar haɗin gwiwa ocfs2+drbd. Yanzu za mu gaya muku yadda zaku iya hanzarta tura ma'ajiyar ajiya don sabar guda biyu bisa tushen bayani. Amma da farko, kadan game da sassan:

DRBD - tsarin ajiya daga daidaitaccen rarraba Linux wanda ke ba ku damar kwafin bayanai tsakanin sabobin a cikin tubalan. Babban aikace-aikacen shine don gina ma'ajiya mai jurewa kuskure.

Farashin OCFS2 - tsarin fayil wanda ke ba da damar amfani da ma'ajin guda ɗaya ta tsarin da yawa. Haɗe a cikin rarraba Linux kuma ƙirar kwaya ce da kayan aikin sararin amfani don aiki tare da FS. Ana iya amfani da OCFS2 ba kawai akan DRBD ba, har ma akan iSCSI tare da haɗin kai da yawa. A cikin misalinmu muna amfani da DRBD.

Ana yin duk ayyuka akan uwar garken ubuntu 18.04 a cikin ƙaramin tsari.

Mataki 1. Sanya DRBD:

A cikin fayil ɗin /etc/drbd.d/drbd0.res mun kwatanta na'urar toshewar mu /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 na ciki - yi amfani da toshe na'urori iri ɗaya don adana metadata
na'urar /dev/drbd0 - yi amfani da /dev/drbd0 azaman hanyar zuwa ƙarar drbd.
disk /dev/vdb1 - amfani /dev/vdb1
syncer {kudi 1000M; } - yi amfani da bandwidth tashar gigabit
yarda-biyu-primaries - muhimmin zaɓi wanda ke ba da damar karɓar canje-canje akan sabar farko guda biyu
bayan-sb-0pri, bayan-sb-1pri, bayan-sb-2pri - zaɓuɓɓukan da ke da alhakin ayyukan kumburi lokacin da aka gano tsaga kwakwalwa. Ana iya samun ƙarin cikakkun bayanai a cikin takaddun.
zama-primary-kan biyu - saita nodes biyu zuwa firamare.

A cikin yanayinmu, muna da VM guda biyu masu kama da juna, tare da keɓaɓɓiyar hanyar sadarwa mai mahimmanci tare da kayan aiki na gigabits 10.

A cikin misalinmu, sunayen hanyar sadarwa na nodes ɗin tari biyu sune drbd1 da drbd2. Don aikin da ya dace, kuna buƙatar daidaita sunaye da adiresoshin IP na runduna a /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Mataki 2. Sanya nodes:

A kan duka sabobin muna aiki:

drbdadm create-md drbd0

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Muna samun masu zuwa:

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

Kuna iya fara aiki tare. A kumburin farko kuna buƙatar aiwatarwa:

drbdadm primary --force drbd0

Mu kalli matsayin:

cat /proc/drbd

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

Mai girma, an fara aiki tare. Muna jira har zuwa ƙarshe kuma mu ga hoton:

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

Mataki 3. Fara aiki tare akan kumburi na biyu:

drbdadm primary --force drbd0

Muna samun masu zuwa:

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

Yanzu za mu iya rubuta zuwa drbd daga sabobin biyu.

Mataki 4. Shigar kuma saita ocfs2.

Za mu yi amfani da tsari maras muhimmanci:

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

Yana buƙatar a rubuta shi a ciki /etc/ocfs2/cluster.conf a duka nodes.

Muna ƙirƙirar FS akan drbd0 akan kowane kumburi:

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

Anan mun ƙirƙiri tsarin fayil tare da alamar testVol akan drbd0, ta amfani da sigogin tsoho.

Ma'ajiyar tari don ƙananan gungu na yanar gizo dangane da drbd+ocfs2

A / sauransu/default/o2cb kuna buƙatar saita (kamar yadda yake cikin fayil ɗin sanyi)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

kuma aiwatar akan kowane kumburi:

o2cb register-cluster ocfs2cluster

Sa'an nan kuma mu kunna kuma mu ƙara duk raka'o'in da muke buƙatar aiki ta atomatik:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Wasu daga cikin wannan za su kasance suna gudana yayin aiwatar da saitin.

Mataki na 5. Ƙara wuraren tsaunuka zuwa fstab akan nodes biyu:

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

Jagora /media/shared dole ne a ƙirƙira shi a gaba.

Anan muna amfani da zaɓuɓɓukan noauto, wanda ke nufin cewa fayil ɗin ba zai kasance ba a farawa (Na fi son ɗaga fayilolin cibiyar sadarwa ta hanyar systemd) da bugun zuciya = gida, wanda ke nufin amfani da sabis na bugun bugun zuciya akan kowane kumburi. Hakanan akwai bugun zuciya na duniya, wanda ya fi dacewa da manyan gungu.

Na gaba za ku iya hawa /media/shared kuma duba aiki tare da abun ciki.

Anyi! Sakamakon haka, muna samun ƙarin ko žasa ma'ajiyar jure laifi tare da scalability da ingantaccen aiki.

source: www.habr.com

Add a comment