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
modprobe drbd
drbdadm up drbd0
cat /proc/drbd
Nou jwenn sa ki annapre yo:
Ou ka kòmanse senkronizasyon. Sou premye ne ou bezwen egzekite:
drbdadm primary --force drbd0
Ann gade estati a:
cat /proc/drbd
Gwo, senkronizasyon te kòmanse. Nou tann jiska lafen epi wè foto a:
Etap 3. Kòmanse senkronizasyon sou dezyèm ne:
drbdadm primary --force drbd0
Nou jwenn sa ki annapre yo:
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.
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