Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Ki sa nou pral pale sou:
Ki jan yo byen vit deplwaye depo pataje pou de sèvè ki baze sou solisyon drbd+ocfs2.

Ki moun sa a pral itil pou:
Leson patikilye a pral itil pou administratè sistèm yo ak nenpòt moun ki chwazi yon metòd aplikasyon depo oswa ki vle eseye solisyon an.

Ki desizyon nou te refize e poukisa?

Souvan nou fè fas ak yon sitiyasyon kote nou bezwen aplike depo pataje ak bon pèfòmans lekti-ekri sou yon ti gwoup entènèt. Nou te eseye divès opsyon pou aplike depo pataje pou pwojè nou yo, men kèk te kapab satisfè nou sou plizyè endikatè alafwa. Koulye a, nou pral di w poukisa.

  • Glusterfs pa t 'satisfè nou ak lekti ak ekri pèfòmans; te gen pwoblèm ak lekti similtane nan yon gwo kantite dosye, e te gen yon gwo chaj sou CPU a. Pwoblèm nan ak lekti fichye yo ta ka rezoud pa aksè yo dirèkteman nan brik, men sa a pa toujou aplikab epi li jeneralman kòrèk.

  • Ceph pa t 'renmen konpleksite a twòp, ki ka danjere sou pwojè ak 2-4 serveurs, espesyalman si pwojè a imedyatman konsève. Yon fwa ankò, gen limit pèfòmans grav ki fòse nou bati grap depo separe, menm jan ak glusterfs.

  • Sèvi ak yon sèl sèvè NFS pou aplike depo pataje soulve kesyon an tèm de tolerans fay.

  • s3 se yon solisyon ekselan popilè pou yon seri sèten travay, men li se pa yon sistèm dosye, ki diminye sijè ki abòde li yo.

  • lsyncd. Si nou te deja kòmanse pale sou "sistèm ki pa dosye," Lè sa a, li la vo ale sou solisyon popilè sa a. Se pa sèlman li pa apwopriye pou echanj de-fason (men si ou reyèlman vle, Lè sa a, ou kapab), li tou pa travay estab sou yon gwo kantite dosye. Yon adisyon bèl nan tout bagay la se ke li se yon sèl-threaded. Rezon ki fè la se nan achitekti pwogram nan: li itilize inotify pou kontwole objè travay, ke li asiyen nan demaraj ak pandan resanning. rsync yo itilize kòm mwayen transfè a.

Tutorial: ki jan yo deplwaye depo pataje ki baze sou drbd+ocfs2

Youn nan solisyon ki pi pratik pou nou se te lyen an ocfs2+drbd. Koulye a, nou pral di w ki jan ou ka byen vit deplwaye depo pataje pou de serveurs ki baze sou yon baz done solisyon. Men, anvan, yon ti kras sou eleman yo:

DRBD - yon sistèm depo ki soti nan distribisyon estanda Linux ki pèmèt ou repwodui done ant serveurs nan blòk. Aplikasyon prensipal la se bati depo toleran fay.

OCFS2 - yon sistèm dosye ki bay itilizasyon pataje menm depo a pa plizyè sistèm. Enkli nan distribisyon Linux epi li se yon modil nwayo ak zouti espas itilizatè pou travay ak FS la. OCFS2 ka itilize pa sèlman sou DRBD, men tou sou iSCSI ak plizyè koneksyon. Nan egzanp nou an nou itilize DRBD.

Tout aksyon yo fèt sou sèvè ubuntu 18.04 nan yon konfigirasyon minim.

Etap 1. Konfigure DRBD:

Nan dosye /etc/drbd.d/drbd0.res nou dekri aparèy blòk vityèl nou an /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 entèn — sèvi ak menm aparèy blòk yo pou estoke metadata
aparèy /dev/drbd0 — sèvi ak /dev/drbd0 kòm chemen an nan volim drbd la.
disk /dev/vdb1 - sèvi ak /dev/vdb1
syncer { to 1000M; } - sèvi ak bandwidth chanèl gigabit
pèmèt-de-primè - yon opsyon enpòtan ki pèmèt chanjman yo dwe aksepte sou de sèvè prensipal yo
apre-sb-0pri, apre-sb-1pri, apre-sb-2pri - opsyon ki responsab pou aksyon ne yo lè yo detekte splitbrain. Ou ka jwenn plis detay nan dokiman an.
vin-prensipal-sou tou de — mete tou de nœuds nan prensipal.

Nan ka nou an, nou gen de VM absoliman idantik, ak yon rezo vityèl dedye ak yon Pleasant 10 gigabit.

Nan egzanp nou an, non rezo de nœuds gwoup yo se drbd1 ak drbd2. Pou bon operasyon, ou bezwen matche ak non yo ak adrès IP nan gen tout pouvwa a nan /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Etap 2. Mete kanpe nœuds:

Sou tou de sèvè nou kouri:

drbdadm create-md drbd0

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Nou jwenn sa ki annapre yo:

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Ou ka kòmanse senkronizasyon. Sou premye ne ou bezwen egzekite:

drbdadm primary --force drbd0

Ann gade estati a:

cat /proc/drbd

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Gwo, senkronizasyon te kòmanse. Nou tann jiska lafen epi wè foto a:

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Etap 3. Kòmanse senkronizasyon sou dezyèm ne:

drbdadm primary --force drbd0

Nou jwenn sa ki annapre yo:

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Koulye a, nou ka ekri drbd soti nan de serveurs.

Etap 4. Enstale ak konfigirasyon ocfs2.

Nou pral sèvi ak yon konfigirasyon san patipri trivial:

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

Li bezwen ekri nan /etc/ocfs2/cluster.conf sou tou de nœuds.

Nou kreye yon FS sou drbd0 sou nenpòt ne:

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

Isit la nou te kreye yon sistèm fichye ak etikèt testVol sou drbd0, lè l sèvi avèk paramèt default yo.

Depo Cluster pou ti gwoup entènèt ki baze sou drbd+ocfs2

Nan /etc/default/o2cb ou bezwen mete (tankou nan fichye konfigirasyon nou an)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

epi egzekite sou chak ne:

o2cb register-cluster ocfs2cluster

Lè sa a, nou limen epi ajoute tout inite nou bezwen pou autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Kèk nan sa a pral deja ap kouri pandan pwosesis konfigirasyon an.

Etap 5. Ajoute pwen mòn nan fstab sou tou de nœuds:

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

Anyè /medya/pataje li dwe kreye davans.

Isit la nou itilize opsyon noauto yo, ki vle di ke fichye a pa pral monte nan demaraj (mwen prefere monte fichye rezo via systemd) ak batman kè = lokal, ki vle di lè l sèvi avèk sèvis batman kè a sou chak ne. Genyen tou batman kè mondyal, ki pi apwopriye pou gwo grap.

Apre sa ou ka monte /medya/pataje epi tcheke senkronizasyon kontni.

Fè! Kòm yon rezilta, nou jwenn plis oswa mwens depo tolerans ak évolutivité ak pèfòmans desan.

Sous: www.habr.com

Add nouvo kòmantè