Përvoja e shfrytëzimit të CEPH

Kur kurset e dhënave tejkalojnë kapacitetin e një disku, është koha të mendojmë për RAID. Në fëmijëri, shpesh dëgjoja nga të rriturit: "një ditë RAID do të shkojnë në të kaluarën, ruajtjet objekt do të pushtojnë botën, dhe ti as nuk e di çfarë është CEPH". Prandaj, hapi i parë në jetën time të pavarur ishte krijimi i klasterit tim. Qëllimi i eksperimentit ishte të njihej me strukturën e brendshme të ceph dhe të kuptohen kufijtë e aplikimit të tij. Sa e arsyeshme është implementimi i ceph në biznesin e mesëm dhe në atë të vogël? Pas disa viteve të përdorimit dhe disa humbjeve të pakthyeshme të të dhënave, kuptova nuancat që nuk janë gjithmonë të njëanshme. Karakteristikat e CEPH krijojnë pengesa për përhapjen e tij të gjerë, dhe për këtë arsye eksperimentet ranë në një çizme të vështirë. Më poshtë është përshkrimi i të gjitha hapave të kaluara, rezultati i marrë dhe përfundimet e arritura. Nëse njerëz të ditur ndajnë përvojën e tyre dhe shpjegojnë disa pika, do të isha mirënjohës.

Shënim: komentuesit e vunë në dukje gabime të rënda në disa supozime, që kërkojnë rishikimin e gjithë artikullit.

Strategjia CEPH

Klasteri CEPH bashkon një numër të caktuar K disqesh me madhësi të rastësishme dhe ruan të dhënat mbi to, duke dyfishuar çdo copë (4 MB siç është e paracaktuar) një numër të caktuar N herë.

Le tĂ« shqyrtojmĂ« rastin mĂ« tĂ« thjeshtĂ« me dy disqe identike. MĂ«nyra pĂ«r ta pĂ«rmbledhur Ă«shtĂ« tĂ« krijohet RAID 1 ose njĂ« klaster me N=2 — rezultati do tĂ« jetĂ« i njĂ«jtĂ«. NĂ«se ka tre disqe, dhe ato janĂ« me madhĂ«si tĂ« ndryshme, atĂ«herĂ« krijimi i njĂ« klasteri me N=2 Ă«shtĂ« i lehtĂ«: njĂ« pjesĂ« e tĂ« dhĂ«nave do tĂ« jetĂ« nĂ« disqet 1 dhe 2, njĂ« pjesĂ« nĂ« 1 dhe 3, dhe njĂ« pjesĂ« nĂ« 2 dhe 3, ndĂ«rsa RAID nuk Ă«shtĂ« i mundur (mund tĂ« krijohet njĂ« RAID i tillĂ«, por do tĂ« ishte njĂ« pĂ«rmbysje). NĂ«se ka mĂ« shumĂ« disqe, Ă«shtĂ« e mundur krijimi i RAID 5; CEPH ka njĂ« analog nĂ« erasure_code, i cili Ă«shtĂ« nĂ« kundĂ«rshtim me konceptet e hershme tĂ« zhvilluesve dhe pĂ«r kĂ«tĂ« arsye nuk shqyrtohet. RAID 5 supozon qĂ« ka njĂ« numĂ«r tĂ« vogĂ«l disqesh, dhe tĂ« gjithĂ« ata janĂ« nĂ« gjendje tĂ« mirĂ«. NĂ« rast tĂ« dĂ«shtimit tĂ« njĂ«rit, disqet e tjera duhet tĂ« mbahen deri nĂ« momentin kur disku tĂ« zĂ«vendĂ«sohet dhe tĂ« dhĂ«nat tĂ« rikuperohen mbi tĂ«. NdĂ«rsa CEPH, kur N>=3, inkurajon pĂ«rdorimin e disqeve tĂ« vjetra; nĂ« veçanti, nĂ«se mbahen disa disqe tĂ« mirĂ« pĂ«r ruajtjen e njĂ« kopje tĂ« tĂ« dhĂ«nave, dhe dy-tre kopje tĂ« tjera ruhen nĂ« njĂ« numĂ«r tĂ« madh disqesh tĂ« vjetra, informacioni do tĂ« jetĂ« nĂ« sigurim, pasi ndĂ«rsa disqet e reja janĂ« nĂ« gjendje tĂ« mirĂ«, nuk ka probleme; dhe nĂ«se ndonjĂ«ra prej tyre dĂ«mtohet, dĂ«shtimi i njĂ«kohshĂ«m i tre disqeve me njĂ« jetĂ«gjatĂ«si tĂ« mbetur prej mĂ« shumĂ« se pesĂ« vjetĂ«sh, idealisht nga serverĂ« tĂ« ndryshĂ«m — Ă«shtĂ« njĂ« ngjarje jashtĂ«zakonisht erare.

NĂ« shpĂ«rndarjen e kopjeve ka njĂ« nuancĂ«. Nga e drejta, supozohet se tĂ« dhĂ«nat ndahen nĂ« mĂ« shumĂ« grupe shpĂ«rndarjeje PG (~rreth 100 pĂ«r disk), secila prej tĂ« cilave kopjohet nĂ« disa disqe. Supozoni se K=6, N=2, atĂ«herĂ« nĂ« rastin e dĂ«shtimit tĂ« dy disqeve tĂ« rastit, tĂ« dhĂ«nat humben me siguri, pasi sipas teorisĂ« sĂ« probabilitetit, do tĂ« gjejĂ« tĂ« paktĂ«n njĂ« PG qĂ« do tĂ« vendoset saktĂ«sisht nĂ« kĂ«ta dy disqe. Dhe humbja e njĂ« grupi bĂ«n tĂ« paarsyeshme tĂ« gjitha tĂ« dhĂ«nat nĂ« pool. NĂ«se disqet ndahen nĂ« tri çifte dhe lejohet ruajtja e tĂ« dhĂ«nave vetĂ«m nĂ« disqe brenda njĂ« çifti, atĂ«herĂ« njĂ« shpĂ«rndarje e tillĂ« Ă«shtĂ« gjithashtu e qĂ«ndrueshme ndaj dĂ«shtimit tĂ« njĂ« disku tĂ« vetĂ«m, por nĂ« rastin e dĂ«shtimit tĂ« dyve, probabiliteti i humbjes sĂ« tĂ« dhĂ«nave nuk Ă«shtĂ« 100%, por vetĂ«m 3/15, dhe madje nĂ« rastin e dĂ«shtimit tĂ« tre disqeve — vetĂ«m 12/20. Prandaj, entropia nĂ« shpĂ«rndarjen e tĂ« dhĂ«nave nuk kontribuon nĂ« qĂ«ndrueshmĂ«rinĂ« ndaj dĂ«shtimeve. Gjithashtu vĂ«rejmĂ« se pĂ«r njĂ« server skedarĂ«sh, memoria e lirĂ« operative e rrit ndjeshĂ«m shpejtĂ«sinĂ« e pĂ«rgjigjes. Sa mĂ« shumĂ« memorie tĂ« ketĂ« nĂ« secilĂ«n nyje, dhe sa mĂ« shumĂ« memorie tĂ« ketĂ« nĂ« tĂ« gjitha nyjet — aq mĂ« e shpejtĂ« do tĂ« jetĂ«. Ky Ă«shtĂ« njĂ« avantazh i pa dyshim pĂ«r klastern pĂ«rpara njĂ« serveri tĂ« vetĂ«m dhe, mĂ« shumĂ«, NAS-it harduerik, ku Ă«shtĂ« instaluar njĂ« sasi shumĂ« e vogĂ«l memorie.

Prandaj, del qĂ« CEPH — Ă«shtĂ« njĂ« mĂ«nyrĂ« e mirĂ« me investime minimale nga pajisjet e vjetra pĂ«r tĂ« krijuar njĂ« sistem tĂ« besueshĂ«m pĂ«r ruajtjen e tĂ« dhĂ«nave me dhjetĂ«ra TB me mundĂ«si zgjerimi (kĂ«tu, sigurisht, do tĂ« nevojiten kosto, por tĂ« vogla nĂ« krahasim me sistemet komerciale tĂ« ruajtjes).

Implementimi i klasterit

Për eksperimentin, do të marrim një kompjuter të shkarkuar Intel DQ57TM + Intel core i3 540 + 16 GB RAM. Katër disqe prej 2 TB do të organizohen në një ngjashmëri RAID10, pas provës së suksesshme do të shtojmë nyjen e dytë dhe aq shumë disqe të tjera.

InstalojmĂ« Linux. Distribucioni duhet tĂ« ketĂ« mundĂ«si personalizimi dhe stabilitet. Debian dhe Suse pĂ«rmbushin kĂ«to kĂ«rkesa. Suse ka njĂ« instalues mĂ« fleksibĂ«l, qĂ« lejon çaktivizimin e çdo paketi; fatkeqĂ«sisht, nuk kam arritur tĂ« kuptoj se cilĂ«t mund tĂ« hiqen pa dĂ«mtuar sistemin. InstalojmĂ« Debian pĂ«rmes debootstrap buster. Opsioni min-base instalon njĂ« sistem jo-funksional, ku mungojnĂ« disa drejtues. Diferenca nĂ« madhĂ«si krahasuar me versionin e plotĂ« nuk Ă«shtĂ« aq e madhe sa tĂ« merremi me tĂ«. Duke qenĂ« se puna bĂ«het nĂ« njĂ« makinĂ« fizike, dĂ«shirojmĂ« tĂ« bĂ«jmĂ« snapshot-e, si nĂ« makinat virtuale. Kjo mundĂ«si ofrohet nga LVM ose btrfs (ose xfs, ose zfs — ndryshimi nuk Ă«shtĂ« i madh). Snapshottet e LVM nuk janĂ« pika e tij e fortĂ«. InstalojmĂ« btrfs. Dhe ngarkuesi — nĂ« MBR. Nuk ka kuptim tĂ« mbushim diskun me 50 MB pĂ«r njĂ« ndarje FAT, kur mund ta futim nĂ« njĂ« zonĂ« prej 1 MB tĂ« tabelĂ«s sĂ« ndarjeve dhe tĂ« ndajmĂ« gjithĂ« hapĂ«sirĂ«n pĂ«r sistemin. Zuri 700 MB nĂ« disk. Sa ishte instalimi bazĂ« i SUSE — nuk e mbaj mend, mendoj se ishte rreth 1.1 ose 1.4 GB.

Instalojmë CEPH. Injorojmë versionin 12 në depozitat debian dhe e lidhim direkt nga faqja me 15.2.3. Pasojmë udhëzimet në seksionin "instalojmë CEPH manualisht" me këto sqarime:

  • Para lidhjes me depozitĂ«n, Ă«shtĂ« e nevojshme tĂ« instalojmĂ« gnupg wget ca-certificates.
  • Pas lidhjes me depozitĂ«n, por para instalimit tĂ« klustrit, Ă«shtĂ« lĂ«nĂ« jashtĂ« instalimi i paketeve: apt -y —no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr.
  • NĂ« momentin e instalimit tĂ« CEPH, pĂ«r arsye tĂ« panjohura do tĂ« pĂ«rpiqet tĂ« instalohet lvm2. NĂ« parim, nuk Ă«shtĂ« problem, por instalimi pĂ«rfundon me dĂ«shtim, prandaj CEPH gjithashtu nuk do tĂ« instalohet.

    Ky patch ndihmoi:

    cat <> /var/lib/dpkg/status
    Package: lvm2
    Status: install ok installed
    Priority: important
    Section: admin
    Installed-Size: 0
    Maintainer: Debian Adduser Developers 
    Architecture: all
    Multi-Arch: foreign
    Version: 113.118
    Description: No-install
    EOF
    

Përmbledhje e klustrit

ceph-osd — Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r ruajtjen e tĂ« dhĂ«nave nĂ« disk. PĂ«r çdo disk nis njĂ« shĂ«rbim rrjeti, i cili pranon dhe ekzekuton kĂ«rkesat pĂ«r lexim ose shkrim nĂ« objekte. NĂ« disk krijohen dy ndarje. NjĂ«ra prej tyre pĂ«rmban informacion rreth klasterit, numrit tĂ« disku, si dhe çelĂ«sat pĂ«r klasterin. Ky informacion me madhĂ«si 1KB krijohet njĂ« herĂ« kur shtohet disku dhe nuk kam parĂ« ndonjĂ«herĂ« qĂ« tĂ« ndryshojĂ«. NĂ« ndarjen e dytĂ« nuk ka sistem skedari dhe ruhen tĂ« dhĂ«na binarĂ« CEPH. Instalimi automatik nĂ« versionet e kaluar krijonte njĂ« ndarje xfs me madhĂ«si 100MB pĂ«r informacionin shĂ«rbimor. Kam konvertuar diskun nĂ« MBR dhe kam ndarĂ« vetĂ«m 16MB — shĂ«rbimi nuk ankohet. Mendoj se pa probleme xfs mund tĂ« zĂ«vendĂ«sohej edhe me ext. Kjo ndarje montuar nĂ« /var/lib/
, ku shĂ«rbimi lexon informacionin mbi OSD, si dhe gjen lidhjen me pajisjen bllokuese, ku ruhen tĂ« dhĂ«nat binarĂ«. Teorikisht, mund tĂ« vendosen menjĂ«herĂ« ndihmĂ«sit nĂ« /var/lib/
, ndĂ«rsa disku tĂ« dedikohet plotĂ«sisht pĂ«r tĂ« dhĂ«na. Kur krijohet OSD pĂ«rmes ceph-deploy, automatikisht krijohet njĂ« rregull pĂ«r montimin e ndarjes nĂ« /var/lib/
, si dhe i caktohen tĂ« drejtat pĂ«rdoruesit ceph pĂ«r leximin e pajisjes bllokuese tĂ« nevojshme. Kur instaloni manualisht, kjo duhet bĂ«rĂ« vetĂ«, nĂ« dokumentacion nuk thuhet asgjĂ« pĂ«r kĂ«tĂ«. Gjithashtu, Ă«shtĂ« e dĂ«shirueshme tĂ« specificohetParametri osd memory target, qĂ« tĂ« mjaftojĂ« kujtesa fizike.

ceph-mds. NĂ« nivelin e ulĂ«t, CEPH Ă«shtĂ« njĂ« ruajtĂ«s objektiv. MundĂ«sia e ruajtjes bllokuese reduktohet nĂ« ruajtjen e çdo blloku 4MB si njĂ« objekt. Po e njĂ«jta parim funksionon edhe pĂ«r ruajtjen e skedarĂ«ve. Krijohen dy pule: njĂ« pĂ«r metadat, njĂ« tjetĂ«r pĂ«r tĂ« dhĂ«na. Ato bashkohen nĂ« njĂ« sistem skedari. NĂ« kĂ«tĂ« moment krijohet njĂ« lloj regjistrimi, prandaj nĂ«se hoqet sistemi i skedarĂ«ve, por mbahen tĂ« dy pule, atĂ«herĂ« nuk do tĂ« jetĂ« e mundur ta riktheni atĂ«. Ekziston njĂ« procedurĂ« pĂ«r nxjerrjen e skedarĂ«ve sipas bllokĂ«ve, nuk e kam testuar. PĂ«r qasjen nĂ« sistemin e skedarĂ«ve Ă«shtĂ« pĂ«rgjegjĂ«s shĂ«rbimi ceph-mds. PĂ«r çdo sistem skedari nevojitet njĂ« kopje e veçantĂ« e shĂ«rbimit. Ka njĂ« opsion "indeks", i cili lejon krijimin e njĂ« strukture tĂ« ngjashme me disa sisteme skedarĂ«sh nĂ« njĂ« — gjithashtu nuk Ă«shtĂ« testuar.

cĐ”ph-mon — kjo shĂ«rbim mban hartĂ«n e klastri. Kjo pĂ«rfshin informacionin mbi tĂ« gjithĂ« OSD, algoritmin e shpĂ«rndarjes sĂ« PG nĂ« OSD dhe, mĂ« e rĂ«ndĂ«sishmja, informacionin mbi tĂ« gjitha objektet (detajet e kĂ«tij mekanizmi mĂ« janĂ« tĂ« paqarta: ka njĂ« katalog /var/lib/ceph/mon/.../store.db, nĂ« tĂ« cilin ndodhet njĂ« skedar i madh — 26MB, dhe nĂ« klasĂ«r ka 105K objekte, kĂ«shtu qĂ« del pak mĂ« shumĂ« se 256 byte pĂ«r objekt,- mendoj se monitori mban njĂ« listĂ« tĂ« tĂ« gjitha objekteve dhe PG, nĂ« tĂ« cilat ato ndodhen). DĂ«mtimi i kĂ«tij katalogu shkakton humbjen e tĂ« dhĂ«nave nĂ« klasĂ«r. Nga kjo del pĂ«rfundimi se CRUSH tregon si PG janĂ« tĂ« shpĂ«rndara nĂ« OSD, ndĂ«rsa si objektet janĂ« tĂ« shpĂ«rndara nĂ« PG — ruhet nĂ« qendĂ«r brenda bazĂ«s sĂ« tĂ« dhĂ«nave, pavarĂ«sisht se si zhvilluesit tentojnĂ« tĂ« shmangin kĂ«tĂ« fjalĂ«. Si pasojĂ«, pĂ«rveç kĂ«saj, nuk mund tĂ« instalojmĂ« sistemin nĂ« njĂ« flash drive nĂ« mĂ«nyrĂ«n RO, pasi nĂ« bazĂ«n e tĂ« dhĂ«nave bĂ«het regjistrim i vazhdueshĂ«m, nevojitet njĂ« disk shtesĂ« pĂ«r kĂ«to (me siguri jo mĂ« shumĂ« se 1 GB), pĂ«r mĂ« tepĂ«r, nevojitet nĂ« kohĂ« reale njĂ« kopje e kĂ«saj baze. NĂ«se ka disa monitorĂ«, atĂ«herĂ« qĂ«ndrueshmĂ«ria e sistemit sigurohet automatikisht, por nĂ« rastin tonĂ«, monitori Ă«shtĂ« njĂ«, maksimumi — dy. Ekziston njĂ« procedurĂ« teorike pĂ«r rikthimin e monitorit mbi bazĂ«n e tĂ« dhĂ«nave OSD, e kam pĂ«rdorur tri herĂ« pĂ«r arsye tĂ« ndryshme, dhe tri herĂ« nuk kishte as mesazhe gabimi, as tĂ« dhĂ«na. FatkeqĂ«sisht, ky mekanizĂ«m nuk funksionon. Ose ne shfrytĂ«zojmĂ« njĂ« particion miniaturik nĂ« OSD dhe krijojmĂ« RAID pĂ«r ruajtjen e tĂ« dhĂ«nave, gjĂ« qĂ« sigurisht do tĂ« ndikojĂ« shumĂ« keq nĂ« performancĂ«, ose ofrojmĂ« tĂ« paktĂ«n dy media fizike tĂ« besueshme, preferohet USB, pĂ«r tĂ« mos zĂ«nĂ« portet.

rados-gw — eksporton ruajtjen e objekteve pĂ«rmes protokollit S3 dhe tĂ« ngjashmĂ«ve. Krijon shumĂ« pool-e, nuk Ă«shtĂ« e qartĂ« pĂ«r çfarĂ«. Nuk kam eksperimentuar shumĂ«.

ceph-mgr — gjatĂ« instalimit tĂ« kĂ«saj shĂ«rbimi aktivizohen disa module. NjĂ« prej tyre Ă«shtĂ« autoscale i cili nuk mund tĂ« çaktivizohet. Ai pĂ«rpiqet tĂ« mbajĂ« numrin e saktĂ« tĂ« PG/OSD. NĂ«se dĂ«shiron tĂ« menaxhosh raportin manualisht, mund tĂ« ndalosh shkallĂ«zimin pĂ«r secilin pool, por nĂ« kĂ«tĂ« rast, moduli bie me ndarjen me 0, dhe statusi i klastrit bĂ«het ERROR. Moduli Ă«shtĂ« shkruar nĂ« python, dhe nĂ«se komenton rreshtin pĂ«rkatĂ«s, kjo çon nĂ« çaktivizimin e tij. Detajet nuk mĂ« shkojnĂ« ndĂ«rmend.

Lista e burimeve të përdorura:

Instalimi i CEPH
Rikthimi në rast të një dështimi të plotë të monitorit

Listat e skripteve:

Instalimi i sistemit përmes debootstrap

blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/

chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat < /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat <> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers 
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install

Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers 
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF

exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

Krijimi i cluster-it

apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon

echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat < /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF

ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
anceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status

# dashboard

apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1

Shtimi i OSD (pjesa)

apt install ceph-osd

osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02  block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnum

CV

Avantazhi kryesor tregtar i CEPH është CRUSH - algoritmi i llogaritjes së vendndodhjes së të dhënave. Monitorët e shpërndajnë këtë algoritëm te klientët, pas së cilës klientët kërkojnë drejtpërdrejt nga nodi i nevojshëm dhe OSD. CRUSH siguron mungesën e centralizimit. Ai është një skedë e vogël që në fakt mund të printohet dhe të vishet në mur. Praktika ka treguar se CRUSH nuk është një hartë e plotë. Nëse shkatërrohen dhe rindërtohen monitorët, duke ruajtur të gjithë OSD dhe CRUSH, kjo nuk është e mjaftueshme për rikuperimin e klasterit. Nga ky vlerësim del se çdo monitor mban disa metadata rreth të gjithë klasterit. Edhe pse volumi i vogël i këtyre metadata nuk imponon kufizime mbi madhësinë e klasterit, kërkon sigurinë e ruajtjes së tyre, gjë që përjashton kursimin e hapësirës së diskut përmes vendosjes së sistemit në një flash dhe përjashton klasterët me më pak se tre nodet. Politika agresive e zhvilluesve lidhur me funksionalitetet opsionale. Shumë larg minimalizmit. Dokumentacioni është në nivelin: "për atë që ekziston, jemi falënderues, por mjaft të varfër". Qasja ndaj shërbimeve në nivel të ulët është parashikuar, por dokumentacioni ofron shumë pak në këtë çështje, prandaj është më shumë jo se po. Gati asnjë mundësi për rikuperimin e të dhënave nga një situatë jashtzakonisht të paplanifikuar.

Opsionet e mundshme për veprime të mëtejshme: të heqim dorë nga CEPH dhe të përdorim një sistem të zakonshëm shumë-disk me btrfs (ose xfs, zfs), të shqyrtojmë informacionin e ri mbi CEPH që do të mundësojë përdorimin e tij në kushtet e caktuara, ose si një rritje të kualifikimit, të shkruajmë një ruajtje tonë.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster