Ceph

Benchmark Ceph Cluster Performance¶

yksi yleisimmistä kuulemistamme kysymyksistä on ” Miten tarkistan, onko klusterini toiminnassa maksimiteholla?”. Ei ihme enää-tässä oppaassa opastamme sinua joidenkin työkalujen avulla, joita voit käyttää Ceph-klusterisi vertailuun.

HUOM: tämän artikkelin ideat perustuvat Sebastian Hanin blogikirjoitukseen, Telekomcloudin blogikirjoitukseen ja Ceph-kehittäjien ja-insinöörien panoksiin.

Hanki perustason Suoritustilastot¶

pohjimmiltaan esikuva-analyysi on pelkkää vertailua. Et tiedä, jos Ceph cluster suorittaa alle par ellet ensin tunnistaa, mikä sen suurin mahdollinen suorituskyky on. Joten, ennen kuin aloitat vertailuanalyysin klusteristasi, sinun on saatava perustason suorituskykytilastot Ceph-infrastruktuurin kahdelle pääkomponentille: levyille ja verkolle.

vertaile levyjäsi¶

yksinkertaisin tapa vertailla levyjäsi on DD. Käytä seuraavaa komentoa tiedoston lukemiseen ja kirjoittamiseen, muistaen lisätä Oflag-parametrin ohittaaksesi levyn sivun välimuistin:
shell> dd if=/dev/zero of=here bs=1G count=1 oflag=direct

huomaa viimeinen tilasto, joka ilmaisee levyn suorituskyvyn MB / s. Tee tämä testi jokaiselle klusterisi levylle ja huomioi tulokset.

vertaile verkkoasi¶

toinen keskeinen Ceph-klusterin suorituskykyyn vaikuttava tekijä on verkon läpimeno. Hyvä työkalu tähän on iperf, joka käyttää asiakas-palvelin-yhteyttä TCP-ja UDP-kaistanleveyden mittaamiseen.

iperf: n voi asentaa apt-get install iperf: llä tai yum install iperf: llä.

iperf on asennettava vähintään kahteen klusterin solmuun. Sitten, yhdellä solmuista, Käynnistä iperf-palvelin käyttäen seuraavaa komentoa:

shell> iperf -s

toisessa solmussa Käynnistä asiakas seuraavalla komennolla muistaen käyttää iperf-palvelinta isännöivän solmun IP-osoitetta:

shell> iperf -c 192.168.1.1

huomaa kaistanleveystilasto Mbitteinä / S, koska se ilmaisee verkon tukeman maksimisuorituksen.

nyt kun sinulla on joitakin perusnumeroita, voit aloittaa Ceph-klusterisi vertailuanalyysin nähdäksesi, antaako se sinulle samanlaisen suorituskyvyn. Benchmarking voidaan suorittaa eri tasoilla: voit suorittaa matalan tason benchmarking tallennusklusteri itse, tai voit suorittaa korkeamman tason benchmarking Keskeiset rajapinnat, kuten lohko laitteet ja objekti yhdyskäytävät. Seuraavissa jaksoissa käsitellään kutakin näistä lähestymistavoista.

huomaa: ennen kuin suoritat vertailukohtia seuraavissa osioissa, pudota kaikki välimuistit käyttämällä tällaista komentoa:
shell> sudo echo 3 | sudo tee /proc/sys/vm/drop_caches && sudo sync

viite Ceph-Varastointiklusteri¶

Ceph sisältää rados bench-komennon, joka on suunniteltu erityisesti Rados-varastointiklusterin vertailuun. Voit käyttää sitä, luoda varastointi allas ja sitten käyttää rados penkki suorittaa kirjoittaa vertailuarvo, kuten alla.

Rados-komento sisältyy Ceph: n kanssa.

shell> ceph osd pool create scbench 128 128
shell> rados bench -p scbench 10 write --no-cleanup

tämä luo uuden poolin nimeltä “scbench” ja suorittaa sitten kirjoitusvertailun 10 sekunnin ajan. Huomaa — no-cleanup vaihtoehto, joka jättää jälkeensä joitakin tietoja. Lähtö antaa hyvän indikaattorin siitä, kuinka nopeasti klusteri voi kirjoittaa tietoja.
käytettävissä on kahdenlaisia lukuvertailuja: SEQ peräkkäisille lukemille ja rand satunnaisille lukemille. Lukuvertailun suorittamiseksi käytä alla olevia komentoja:
shell> rados bench -p scbench 10 seq
shell> rados bench -p scbench 10 rand

Voit myös lisätä-T-parametrin lukujen ja kirjoitusten samanaikaisuuden lisäämiseksi (oletusarvo 16 säiettä), tai-b-parametrin muuttaaksesi kirjoitettavan objektin kokoa (oletusarvo 4 MB). Se on myös hyvä idea ajaa useita kopioita tämän vertailuarvon eri pooleja, miten suorituskyky muuttuu useita asiakkaita.
kun olet saanut tiedot, voit alkaa verrata klusterin luku-ja kirjoitustilastoja aiemmin tehtyihin levyarvoihin, tunnistaa, kuinka paljon suoritusvajetta on (jos on), ja alkaa etsiä syitä.
voit puhdistaa write benchmarkista jääneen vertailutiedon tällä komennolla:

shell> rados -p scbench cleanup

*

Jos pidät Ceph block-laitteista, on olemassa kaksi työkalua, joilla voit vertailla niiden suorituskykyä. Ceph sisältää jo RBD bench-komennon, mutta voit käyttää myös suosittua I/O-benchmarking-työkalua fio, joka on nyt sisäänrakennettu RADOS-estolaitteiden tueksi.

rbd-komento sisältyy Cephin kanssa. RBD-tuki fio: ssa on suhteellisen uusi, joten sinun täytyy ladata se arkistosta ja sitten kääntää ja asentaa se käyttäen_ configure & & make & & make install_. Huomaa, että sinun täytyy asentaa librbd-dev kehityspaketti apt-get install librbd-dev tai yum install librbd-dev ennen Fio: n kokoamista, jotta voit aktivoida sen RBD-tuen.

ennen kuin käytät jompaakumpaa näistä työkaluista, luo kuitenkin lohkolaite alla olevien komentojen avulla:
shell> ceph osd pool create rbdbench 128 128
shell> rbd create image01 --size 1024 --pool rbdbench
shell> sudo rbd map image01 --pool rbdbench --name client.admin
shell> sudo /sbin/mkfs.ext4 -m0 /dev/rbd/rbdbench/image01
shell> sudo mkdir /mnt/ceph-block-device
shell> sudo mount /dev/rbd/rbdbench/image01 /mnt/ceph-block-device

RBD bench-write-komento luo sarjan peräkkäisiä kirjoituksia kuvaan ja mittaa kirjoituksen läpimenon ja latenssin. Tässä esimerkki:

shell> rbd bench-write image01 --pool=rbdbench

tai, voit käyttää fio benchmark oman lohko laite. Esimerkki rbd.Fio template on mukana Fio-lähdekoodissa, joka suorittaa 4K-satunnaisen kirjoitustestin RADOS-blokkilaitetta vastaan librbd: n kautta. Huomaa, että sinun täytyy päivittää malli oikeat nimet altaan ja laitteen, kuten alla.

ioengine=rbd
clientname=admin
pool=rbdbench
rbdname=image01
rw=randwrite
bs=4k

iodepth=32

suorita sitten Fio seuraavasti:
shell> fio examples/rbd.fio

*

kun on kyse Ceph-objekti-yhdyskäytävän vertailuanalyysistä, älä katso pidemmälle kuin swift-bench, joka on OpenStack Swiftin mukana tuleva benchmarking-työkalu. Swift-bench-työkalu testaa Ceph-klusterisi suorituskykyä simuloimalla client PUT-ja GET-pyyntöjä ja mittaamalla niiden suorituskykyä.

swift-penkin voi asentaa käyttämällä pip install swift && pip install swift-penkkiä.

käyttääksesi swift-benchiä sinun on ensin luotava yhdyskäytävän käyttäjä ja aliohjaaja, kuten alla on esitetty:
shell> sudo radosgw-admin user create --uid="benchmark" --display-name="benchmark"
shell> sudo radosgw-admin subuser create --uid=benchmark --subuser=benchmark:swift
--access=full
shell> sudo radosgw-admin key create --subuser=benchmark:swift --key-type=swift
--secret=guessme
shell> radosgw-admin user modify --uid=benchmark --max-buckets=0

luo seuraavaksi Swift-bench-asetustiedosto asiakkaan palvelimelle, kuten alla. Muista päivittää todennusosoite vastaamaan Ceph-objekti-yhdyskäytävän todennusosoitetta ja käyttää oikeaa käyttäjänimeä ja tunnistetietoja.

auth = http://gateway-node/auth/v1.0
user = benchmark:swift
key = guessme
auth_version = 1.0

voit nyt suorittaa vertailukohdan alla. Käytä-c-parametria säätääksesi samanaikaisten yhteyksien määrää (tässä esimerkissä käytetään 64) ja-s-parametria säätääksesi kirjoitettavan objektin kokoa (tässä esimerkissä käytetään 4K-objekteja). -N ja-g parametrit ohjaavat kohteiden määrää laittaa ja saada vastaavasti.
shell> swift-bench -c 64 -s 4096 -n 1000 -g 100 /tmp/swift.conf

vaikka swift-bench mittaa suorituskykyä kohteiden lukumääränä sekunnissa, se on tarpeeksi helppoa muuntaa tämä MB/s kertomalla kunkin objektin koolla. Sinun tulisi kuitenkin varoa vertaamasta tätä suoraan aiemmin hankkimiisi levyn suorituskykyä koskeviin lähtötilastoihin, koska näihin tilastoihin vaikuttavat myös monet muut tekijät, kuten:

  • replikaation taso (ja latenssikustannukset)
  • full data journal kirjoittaa (joissakin tilanteissa offset by journal data coalescing)
  • fsync OSDs: llä tietoturvallisuuden takaamiseksi
  • metadata overhead tietojen säilyttämistä varten Rados
  • latenssi yläpuolella (verkko, Ceph jne.) tekee readaheadista tärkeämmän

tip: Kun kyse on object gateway-suorituskyvystä, ei ole kovaa ja nopeaa sääntöä, jonka avulla voit helposti parantaa suorituskykyä. Joissakin tapauksissa Ceph-insinöörit ovat pystyneet saamaan perustasoa paremman suorituskyvyn älykkäillä välimuistin tallennusstrategioilla, kun taas toisissa tapauksissa object gateway-suorituskyky on ollut pienempi kuin levyn suorituskyky latenssin, fsync: n ja metadatan yläpuolella.

johtopäätös¶

Ceph-klusterin vertailuun on saatavilla useita välineitä eri tasoilla: levy, verkko, klusteri, laite ja yhdyskäytävä. Sinun pitäisi nyt olla jonkin verran tietoa siitä, miten lähestyä benchmarking prosessi ja alkaa tuottaa suorituskykyä tietoa klusterin. Onnea!

Vastaa

Sähköpostiosoitettasi ei julkaista.