Geymsla í Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Geymsla í Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Uppfærsla!. Í athugasemdunum stakk einn lesenda upp á að reyna Linstor (kannski er hann að vinna í því sjálfur) svo ég hef bætt við kafla um þessa lausn. Ég skrifaði líka færslu um hvernig á að setja það upp, vegna þess að ferlið er mjög ólíkt öðrum.

Satt að segja gafst ég upp og gafst upp Kubernetes (allavega í bili). Ég mun nota Heroku. Hvers vegna? Vegna geymslu! Hverjum hefði dottið í hug að ég myndi fikta meira við geymslu heldur en Kubernetes sjálft. ég nota Hetzner Cloudvegna þess að það er ódýrt og frammistaðan er góð og frá upphafi hef ég verið að dreifa klasa með því að nota Búgarðsmaður. Ég prófaði ekki stýrða Kubernetes þjónustu frá Google/Amazon/Microsoft/DigitalOcean, osfrv., osfrv., Vegna þess að ég vildi læra allt sjálfur. Ég er líka sparsöm.

Svo já, ég eyddi miklum tíma í að reyna að ákveða hvaða geymslu ég ætti að velja þegar ég var að meta mögulegan Kubernetes stafla. Ég kýs frekar opinn uppspretta lausnir, ekki aðeins vegna verðsins, heldur hef ég skoðað nokkra greidda valkosti af forvitni vegna þess að þeir eru með ókeypis útgáfur með takmörkunum. Ég hef skrifað niður nokkrar tölur úr nýlegum prófum þegar ég bar saman mismunandi valkosti og þær gætu verið áhugaverðar fyrir þá sem læra um Kubernetes geymslu. Þó ég hafi persónulega sagt bless við Kubernetes í bili. Ég vil líka nefna CSI bílstjóri, sem getur beint útvegað Hetzner Cloud bindi, en ég hef ekki prófað það ennþá. Ég skoðaði skýjahugbúnaðarskilgreinda geymslu vegna þess að ég þurfti afritun og getu til að festa viðvarandi bindi fljótt á hvaða hnút sem er, sérstaklega ef um bilanir í hnút er að ræða og aðrar svipaðar aðstæður. Sumar lausnir bjóða upp á skyndimyndir á tímapunkti og öryggisafrit utan staðar, sem er þægilegt.

Ég prófaði 6-7 geymslulausnir:

Opna EBS

Eins og ég sagði þegar í fyrri færsluEftir að hafa prófað flesta valkostina af listanum settist ég upphaflega á OpenEBS. OpenEBS er mjög auðvelt í uppsetningu og notkun, en satt að segja, eftir að hafa prófað með raunverulegum gögnum undir álagi, varð ég fyrir vonbrigðum með frammistöðu þess. Þetta er opinn uppspretta og verktaki er á eigin spýtur Slak rás alltaf mjög hjálpsamur þegar ég þurfti hjálp. Því miður hefur það mjög slæma frammistöðu miðað við aðra valkosti, þannig að prófanirnar þurfti að keyra aftur. OpenEBS er sem stendur með 3 geymsluvélar, en ég birti viðmiðunarniðurstöður fyrir cStor. Ég hef ekki tölur fyrir Jiva og LocalPV ennþá.

Í hnotskurn er Jiva aðeins hraðari og LocalPV er almennt hraður, ekki verri en diskaviðmiðið beint. Vandamálið með LocalPV er að aðeins er hægt að nálgast hljóðstyrkinn á hnútnum þar sem það var útbúið og það er engin afritun. Ég átti í vandræðum með að endurheimta öryggisafrit í gegnum Seglbátur á nýjan klasa vegna þess að hnútanöfnin voru önnur. Ef við tölum um öryggisafrit, þá hefur cStor viðbót fyrir Velero, þar sem þú getur tekið afrit af skyndimyndum á hverjum tíma, sem er þægilegra en öryggisafrit á skráarstigi með Velero-Restic. ég skrifaði nokkur handrit, til að auðvelda stjórnun afrita og endurheimta með þessari viðbót. Á heildina litið líkar mér mjög vel við OpenEBS, en frammistaða þess...

Hrókur

Rook er einnig opinn uppspretta og er frábrugðinn öðrum valmöguleikum á listanum að því leyti að hann er geymsluhljómsveitarmaður sem sinnir flóknum geymslustjórnunarverkefnum með mismunandi bakenda, t.d. ceph, EdgeFS og fleiri, sem einfaldar verkið mjög. Ég átti í vandræðum með EfgeFS þegar ég prófaði það fyrir nokkrum mánuðum, svo ég prófaði aðallega með Ceph. Ceph býður ekki aðeins upp á blokkageymslu, heldur einnig hlutgeymslu sem er samhæft við S3/Swift og dreifðu skráarkerfi. Það sem mér líkar við Ceph er hæfileikinn til að dreifa magngögnum á marga diska þannig að hljóðstyrkurinn getur notað meira pláss en rúmast á einum diski. Það er þægilegt. Annar flottur eiginleiki er að þegar þú bætir diskum við klasa, endurdreifir hann gögnum sjálfkrafa yfir alla diska.

Ceph er með skyndimyndir en eftir því sem ég best veit er ekki hægt að nota þær beint í Rook/Kubernetes. Að vísu fór ég ekki djúpt í þetta. En það eru engin afrit á staðnum, svo þú verður að nota eitthvað með Velero / Restic, en það eru aðeins afrit á skráarstigi, ekki skyndimyndir á tímapunkti. Það sem mér líkaði mjög við Rook var hversu auðvelt það er að vinna með Ceph - það felur næstum allt flókið efni og býður upp á verkfæri til að tala beint við Ceph til að leysa úr. Því miður, meðan á álagsprófinu á Ceph bindi stóð, hélt ég áfram að eiga í vandræðum með þetta vandamál, sem veldur því að Ceph verður óstöðugur. Það er ekki enn ljóst hvort þetta er galli í Ceph sjálfum eða vandamál í því hvernig Rook stjórnar Ceph. Ég fiktaði í minnisstillingunum og það lagaðist en vandamálið var ekki alveg leyst. Ceph hefur ágætis frammistöðu, eins og þú getur séð í viðmiðunum hér að neðan. Hann er líka með gott mælaborð.

Rancher Longhorn

Ég er mjög hrifin af Longhorn. Að mínu mati er þetta vænleg lausn. Að vísu viðurkenna verktaki sjálfir (Rancher Labs) að það hentar ekki enn fyrir vinnuumhverfið, og þetta sýnir sig. Hann er opinn uppspretta og hefur ágætis afköst (þó þeir hafi ekki fínstillt hann ennþá), en hljóðstyrkurinn tekur mjög langan tíma að tengjast hólfinu og í verstu tilfellum tekur það 15-16 mínútur, sérstaklega eftir að hafa endurheimt stórt öryggisafrit eða að uppfæra vinnuálagið. Það hefur skyndimyndir og afrit af þessum skyndimyndum á staðnum, en þær eiga aðeins við um bindi, svo þú þarft samt eitthvað eins og Velero til að taka öryggisafrit af öðrum auðlindum. Afrit og endurheimt eru mjög áreiðanleg, en ósæmilega hægt. Í alvöru, bara ótrúlega hægt. Örgjörvanotkun og kerfisálag hækka oft þegar unnið er með miðlungs magn af gögnum í Longhorn. Það er þægilegt mælaborð til að stjórna Longhorn. Ég er búinn að segja að mér líkar við Longhorn, en það þarf smá vinnu.

StorageOS

StorageOS er fyrsta greidda varan á listanum. Það er með þróunarútgáfu með takmarkaðri stýrðri geymslustærð upp á 500GB, en ég held að það sé ekki takmörkun á fjölda hnúta. Söludeildin sagði mér að kostnaðurinn byrji á $125 á mánuði fyrir 1 TB, ef ég man rétt. Það er undirstöðu mælaborð og þægilegur CLI, en eitthvað skrítið er að gerast með frammistöðu: í sumum viðmiðum er það alveg þokkalegt, en í hljóðstyrksálagsprófinu líkaði mér alls ekki hraðinn. Almennt séð veit ég ekki hvað ég á að segja. Þannig að ég skildi ekki mikið. Það eru engin afrit af staðnum hér og þú verður líka að nota Velero með Restic til að taka afrit af bindi. Það er skrítið, vegna þess að varan er greidd. Og verktaki var ekki fús til að hafa samskipti á Slack.

Robin

Ég lærði um Robin á Reddit frá tæknistjóra þeirra. Ég hafði aldrei heyrt um hann áður. Kannski vegna þess að ég var að leita að ókeypis lausnum, en Robin fær borgað. Þeir eru með ansi rausnarlega ókeypis útgáfu með 10TB geymsluplássi og þremur hnútum. Á heildina litið er varan alveg ágætis og hefur góða eiginleika. Það er frábært CLI, en það svalasta er að þú getur tekið skyndimynd af og tekið öryggisafrit af öllu forritinu (í auðlindavalinu er þetta kallað Helm útgáfur eða „flex apps“), þar á meðal magn og önnur úrræði, svo þú getur verið án Velero. Og allt væri dásamlegt ef ekki væri fyrir eitt lítið smáatriði: ef þú endurheimtir (eða „flytur inn“, eins og það er kallað í Robin) forriti á nýjan þyrping - til dæmis ef bati eftir hamfarir - endurreisnin, auðvitað virkar, en halda áfram að taka öryggisafrit af forritinu það er bannað. Þetta er einfaldlega ekki mögulegt í þessari útgáfu, eins og hönnuðir hafa staðfest. Þetta er vægast sagt skrítið, sérstaklega með hliðsjón af öðrum kostum (til dæmis ótrúlega hröð afrit og endurheimt). Hönnuðir lofa að laga allt fyrir næstu útgáfu. Árangur er almennt góður, en ég tók eftir því undarlega: ef ég keyri viðmiðið beint á bindi sem er tengt við hýsilinn, er leshraðinn mun hraðari en að keyra sama hljóðstyrk innan úr belgnum. Allar aðrar niðurstöður eru eins, en í orði ætti enginn munur að vera. Þó þeir séu að vinna í því var ég í uppnámi vegna vandamálsins með endurheimt og öryggisafrit - ég hélt að ég hefði loksins fundið viðeigandi lausn og ég var meira að segja til í að borga fyrir það þegar mig vantaði meira pláss eða fleiri netþjóna.

portworx

Ég hef ekki mikið að segja hér. Þetta er gjaldskyld vara, jafn flott og dýr. Frammistaðan er einfaldlega mögnuð. Þetta er besta vísbendingin hingað til. Slack sagði mér að verðlagning byrjar á $205 á mánuði á hnút, eins og það er skráð á GKE Marketplace Google. Ég veit ekki hvort það verður ódýrara ef þú kaupir beint. Ég hef samt ekki efni á því, svo ég var mjög, mjög vonsvikinn yfir því að forritaraleyfið (allt að 1 TB og 3 hnútar) er nánast gagnslaust með Kubernetes nema þú sért sáttur við kyrrstöðu. Ég var að vona að magnleyfið myndi sjálfkrafa niðurfæra í þróunaraðila í lok prufutímabilsins, en það gerðist ekki. Aðeins er hægt að nota forritaraleyfið beint með Docker og uppsetning í Kubernetes er mjög fyrirferðarmikil og takmörkuð. Auðvitað kýs ég frekar opinn hugbúnað en ef ég ætti peningana myndi ég örugglega velja Portworx. Enn sem komið er er árangur þess einfaldlega ekki í samanburði við aðra valkosti.

Linstor

Ég bætti þessum hluta við eftir birtingu færslunnar, þegar einn lesandi stakk upp á að prófa Linstor. Ég prófaði það og mér líkaði það! En við þurfum samt að kafa dýpra. Nú get ég sagt að frammistaðan er ekki slæm (ég bætti við viðmiðunarniðurstöðum hér að neðan). Í meginatriðum fékk ég sömu frammistöðu og diskurinn beint, án nokkurs kostnaðar. (Ekki spyrja hvers vegna Portworx er með betri tölur en drifviðmiðið beint. Ég hef ekki hugmynd. Galdur held ég.) Þannig að Linstor virðist mjög áhrifaríkur hingað til. Það er ekki svo erfitt að setja það upp, en það er ekki eins auðvelt og aðrir valkostir. Fyrst þurfti ég að setja upp Linstor (kjarnaeiningu og verkfæri/þjónustu) og stilla LVM fyrir þunnt úthlutun og skyndimyndastuðning utan Kubernetes, beint á hýsilinn, og búa síðan til úrræðin sem þarf til að nota geymslu frá Kubernetes. Mér líkaði ekki að það virkaði ekki á CentOS og ég þurfti að nota Ubuntu. Ekki hræðilegt, auðvitað, en svolítið pirrandi, vegna þess að skjölin (sem er frábært, við the vegur) nefna nokkra pakka sem ekki er hægt að finna í tilgreindum Epel geymslum. Linstor er með skyndimyndir, en ekki afrit af staðnum, svo hér þurfti ég aftur að nota Velero með Restic til að taka afrit af bindi. Ég myndi kjósa skyndimyndir í stað öryggisafrita á skráarstigi, en það má þola það ef lausnin er árangursrík og áreiðanleg. Linstor er opinn uppspretta en hefur greitt stuðning. Ef ég skil rétt er hægt að nota það án takmarkana, jafnvel þótt þú sért ekki með stuðningssamning, en það þarf að skýra það. Ég veit ekki hversu prófað Linstor er fyrir Kubernetes, en geymslulagið sjálft er utan Kubernetes og greinilega birtist lausnin ekki í gær, svo hún hefur líklega þegar verið prófuð við raunverulegar aðstæður. Er einhver lausn hér sem mun fá mig til að skipta um skoðun og fara aftur til Kubernetes? Ég veit ekki. Við þurfum enn að kafa dýpra og rannsaka endurtekningu. Látum okkur sjá. En fyrstu sýn er góð. Ég myndi örugglega kjósa að nota mína eigin Kubernetes klasa í stað Heroku til að hafa meira frelsi og læra nýja hluti. Þar sem Linstor er ekki eins auðvelt í uppsetningu og aðrir mun ég skrifa færslu um það fljótlega.

Viðmið

Því miður hélt ég ekki margar athugasemdir um samanburðinn því ég hélt að ég myndi ekki skrifa um hann. Ég hef aðeins niðurstöður úr grunnviðmiðum fio og aðeins fyrir staka hnútaklasa, svo ég hef ekki tölur fyrir endurteknar stillingar ennþá. En út frá þessum niðurstöðum geturðu fengið grófa hugmynd um hvers má búast við frá hverjum valkosti, vegna þess að ég bar þá saman á sömu skýjaþjónum, 4 kjarna, 16 GB af vinnsluminni, með 100 GB til viðbótar diski fyrir prófuð bindi. Ég keyrði viðmiðin þrisvar sinnum fyrir hverja lausn og reiknaði út meðalniðurstöðuna, auk þess sem ég endurstillti netþjónastillingarnar fyrir hverja vöru. Þetta er allt algjörlega óvísindalegt, bara til að gefa þér almenna hugmynd. Í öðrum prófum afritaði ég 38 GB af myndum og myndböndum úr bindi til að prófa lestur og ritun, en því miður vistaði ég ekki tölurnar. Í stuttu máli: Portworkx var miklu hraðari.

Fyrir magnviðmið notaði ég þessa upplýsingaskrá:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: dbench
spec:
  storageClassName: ...
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: batch/v1
kind: Job
metadata:
  name: dbench
spec:
  template:
    spec:
      containers:
      - name: dbench
        image: sotoaster/dbench:latest
        imagePullPolicy: IfNotPresent
        env:
          - name: DBENCH_MOUNTPOINT
            value: /data
          - name: FIO_SIZE
            value: 1G
        volumeMounts:
        - name: dbench-pv
          mountPath: /data
      restartPolicy: Never
      volumes:
      - name: dbench-pv
        persistentVolumeClaim:
          claimName: dbench
  backoffLimit: 4

Ég bjó fyrst til bindi með viðeigandi geymsluflokki og rak síðan verkið með fio á bak við tjöldin. Ég tók 1 GB til að áætla frammistöðuna og ekki bíða of lengi. Hér eru úrslitin:

Geymsla í Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Ég hef bent á besta gildið fyrir hvern mælikvarða í grænu og það versta í rauðu.

Ályktun

Eins og þú sérð stóð Portworx sig í flestum tilfellum betur en aðrir. En fyrir mig er það dýrt. Ég veit ekki hvað Robin kostar, en þeir eru með frábæra ókeypis útgáfu, þannig að ef þú vilt vöru sem greitt er fyrir geturðu prófað hana (vonandi laga þeir vandamálið með endurheimt og öryggisafrit fljótlega). Af þeim þremur ókeypis, átti ég minnst í vandræðum með OpenEBS, en frammistaða þess er afleit. Það er leitt að hafa ekki vistað fleiri niðurstöður, en ég vona að tölurnar og athugasemdirnar mínar hjálpi þér.

Heimild: www.habr.com

Bæta við athugasemd