Dheweke ora apik kanggo sampeyan

Gegayutan karo popularitas Rook sing saya akeh, aku pengin ngomong babagan pitfalls lan masalah sing nunggu sampeyan ing dalan.

Babagan kula: Pengalaman administrasi ceph saka versi palu, pangadeg komunitas t.me/ceph_ru ing telegram.

Supaya ora dadi unfounded, aku bakal ngrujuk marang kiriman sing ditampa dening Habr (dinilai kanthi rating) babagan masalah karo ceph. Aku uga nemoni akeh masalah ing kiriman kasebut. Pranala menyang materi sing digunakake ana ing pungkasan kiriman.

Ing kirim babagan Rook, kita sebutno ceph kanggo alesan - Rook ateges ceph kebungkus kubernetes, kang tegese iku warisan kabeh masalah. Ayo dadi miwiti karo masalah ceph.

Nyederhanakake manajemen kluster

Salah sawijining kaluwihan Rook yaiku gampang ngatur ceph liwat kuberentes.

Nanging, ceph ngemot luwih saka 1000 paramèter kanggo konfigurasi, nalika ing wektu sing padha, liwat rook kita mung bisa nyunting minoritas.

Tuladha ing Luminous
> ceph daemon mon.a config show | wc -l
1401

Rook dipanggonke minangka cara sing trep kanggo nginstal lan nganyari ceph
Ora ana masalah karo nginstal ceph tanpa Rook - playbook ansible ditulis ing 30 menit, nanging ana akeh masalah karo nganyari.

Kutipan saka kiriman Krok

Conto: crush tubles ora bisa digunakake kanthi bener sawise nganyari saka hummer dadi permata

> ceph osd crush show-tunables
{
...
"straw_calc_version": 1,
"allowed_bucket_algs": 22,
"profile": "ora dingerteni",
"optimal_tunables": 0,
...
}

Nanging sanajan ing versi cilik ana masalah.

Conto: Update 12.2.6 nggawa kluster menyang negara err kesehatan lan kondisi rusak PG
ceph.com/releases/v12-2-8-released

Aja nganyari, ngenteni lan nyoba? Nanging kita koyone nggunakake Rook kanggo penak nganyari, antarane liyane.

Kompleksitas klompok pemulihan bencana ing Rook

Conto: OSD tiba kanthi akeh kesalahan ing sikile. Sampeyan Suspect sing masalah ing salah siji paramèter ing config, sampeyan pengin ngganti config kanggo daemon tartamtu, nanging ora bisa amarga sampeyan duwe kubernetes lan DaemonSet.

Ora ana alternatif. ceph marang osd.Num injectargs ora bisa - OSD ngapusi.

Kesulitan debug

Sawetara persiyapan lan tes kinerja mbutuhake nyambungake langsung menyang soket osd daemon. Ing kasus Rook, sampeyan kudu nemokake wadhah sing dikarepake, banjur mlebu, golek alat sing ilang kanggo debug lan kesel banget.

Kesulitan ngunggahake OSD kanthi urutan

Conto: OSD tiba ing OOM, rebalance diwiwiti, sawise sing ing ngisor iki tiba.

Solusi: Angkat OSD siji-sijine, enteni nganti rampung kalebu ing kluster lan angkat sing sabanjure. (Rincian liyane ing laporan Ceph. Anatomi bilai).

Ing kasus instalasi baremetal, iki ditindakake kanthi tangan; ing kasus Rook lan siji OSD saben simpul, ora ana masalah tartamtu; masalah karo ngangkat alternatif bakal muncul yen OSD> 1 saben simpul.

Mesthi, padha bisa ditanggulangi, nanging kita nggunakake Rook kanggo menakake iku, nanging njaluk liyane kerumitan.

Kesulitan milih watesan kanggo setan ceph

Kanggo instalasi baremetal saka ceph, cukup gampang kanggo ngetung sumber daya sing dibutuhake kanggo kluster - ana rumus lan riset kasedhiya. Yen sampeyan nggunakake CPU banget, sampeyan isih kudu mbukak sawetara tes kinerja kanggo mangerteni apa Numa, nanging isih luwih gampang saka Rook.

Ing cilik saka Rook, saliyane watesan memori sing bisa diwilang, sampeyan duwe pitakonan nyetel watesan CPU.

Lan ing kene sampeyan kudu kerja keras karo tes kinerja. Yen sampeyan ngedhunake watesan, sampeyan bakal entuk kluster alon; yen sampeyan nyetel unlim, sampeyan bakal entuk panggunaan CPU aktif sajrone rebalancing, sing bakal duwe efek ala ing aplikasi sampeyan ing kubernetes.

Masalah Jaringan v1

Kanggo ceph dianjurake kanggo nggunakake jaringan 2x10GB. Siji kanggo lalu lintas klien, liyane kanggo kabutuhan layanan ceph (rebalance). Yen sampeyan manggon karo ceph ing baremetal, mula divisi iki gampang dikonfigurasi, yen sampeyan manggon karo Rook, banjur divisi dening jaringan bakal nyebabake masalah, amarga ora saben konfigurasi kluster ngidini sampeyan nyedhiyakake rong jaringan sing beda menyang polong. .

Masalah Jaringan v2

Yen sampeyan ora gelem misahake jaringan, banjur nalika ngimbangi maneh, lalu lintas ceph bakal macet kabeh saluran lan aplikasi sampeyan ing kubernetes bakal alon utawa kacilakan. Sampeyan bisa nyuda kacepetan ceph rebalancing, nanging banjur amarga rebalancing dawa sampeyan entuk risiko tambah saka simpul kapindho tiba metu saka kluster liwat disk utawa OOM, lan wis dijamin diwaca mung kanggo kluster.

Long rebalance - lags aplikasi dawa

Kutipan saka kiriman Ceph. Anatomi saka bilai.

Tes kinerja kluster:

Operasi nulis kanthi ukuran 4 KB mbutuhake 1 ms, kinerja 1000 operasi / detik ing 1 utas.

Operasi 4 MB (ukuran obyek) njupuk 22 ms, kinerja 45 operasi / detik.

Akibaté, nalika siji domain saka telung gagal, klompok ing negara degradasi kanggo sawetara wektu, lan setengah saka obyek panas disebarake ing versi beda, banjur setengah saka operasi nulis bakal miwiti karo Recovery dipeksa.

Kita ngetung wektu pemulihan sing dipeksa kira-kira - nulis operasi menyang obyek sing rusak.

Pisanan kita maca 4 MB ing 22 ms, nulis 22 ms, banjur ing 1 ms kita nulis 4 KB saka data nyata. Total 45 ms saben operasi nulis menyang obyek rusak ing SSD, nalika kinerja standar 1 ms - gulung 45-melu ing kinerja.

Sing luwih dhuwur persentase obyek sing rusak, kabeh dadi luwih elek.

Pranyata kacepetan rebalancing kritis kanggo operasi bener saka kluster.

Setelan server khusus kanggo ceph

ceph bisa uga mbutuhake tuning host tartamtu.

Conto: setelan sysctl lan JumboFrame sing padha, sawetara setelan kasebut bisa mengaruhi muatan sampeyan.

Kebutuhan nyata kanggo Rook tetep dadi pitakonan

Yen sampeyan ana ing awan, sampeyan duwe panyimpenan saka panyedhiya awan, sing luwih trep.

Yen sampeyan ana ing server sampeyan dhewe, banjur ngatur ceph bakal luwih trep tanpa kubernetes.

Apa sampeyan nyewa server saka sawetara hosting murah? Banjur sampeyan bakal seneng-seneng karo jaringan, telat lan bandwidth, sing jelas duwe pengaruh negatif marang ceph.

Total: Ngleksanakake kuberentes lan ngleksanakake panyimpenan minangka tugas sing beda-beda kanthi input sing beda lan opsi solusi sing beda-beda - nyawiji tegese nggawe perdagangan sing bisa mbebayani kanggo siji utawa liyane. Bakal angel banget kanggo nggabungake solusi kasebut sanajan ing tahap desain, lan isih ana wektu operasi.

Dhaptar literatur bekas:

Posting #1 Nanging sampeyan ngomong Ceph ... apa dheweke pancen apik?
Posting #2 Ceph. Anatomi saka bilai

Source: www.habr.com

Add a comment