Opslach yn Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Opslach yn Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Update!. Yn 'e opmerkingen suggerearre ien fan' e lêzers om te besykjen Linstor (miskien wurket er der sels oan) dat ik haw in rubryk tafoege oer dizze oplossing. Ik skreau ek post oer hoe't jo it ynstallearje, omdat it proses is hiel oars as de rest.

Om earlik te wêzen, ik joech op en joech op Kubernetes (teminsten foar no). Ik sil brûke Heroku. Wêrom? Fanwege opslach! Wa soe hawwe tocht dat ik soe tink mear mei opslach as mei Kubernetes sels. ik brûk Hetzner Cloudom't it goedkeap is en de prestaasjes goed binne en fan it begjin ôf haw ik klusters ynset mei help fan Rancher. Ik besocht net beheare Kubernetes-tsjinsten fan Google/Amazon/Microsoft/DigitalOcean, ensfh., ensfh., Om't ik alles sels leare woe. Ik bin ek sober.

Dat ja, ik haw in protte tiid bestege oan it besykjen om te besluten hokker opslach te kiezen doe't ik in mooglike Kubernetes-stapel evaluearre. Ik leaver iepen boarne-oplossingen, net allinich fanwegen de priis, mar ik haw út nijsgjirrigens in pear betelle opsjes ûndersocht, om't se fergese ferzjes hawwe mei beheiningen. Ik haw wat sifers fan resinte tests opskreaun doe't ik ferskate opsjes fergelike, en se kinne fan belang wêze foar dyjingen dy't leare oer Kubernetes-opslach. Hoewol ik persoanlik foar no ôfskied naam fan Kubernetes. Ik wol ek neame CSI bestjoerder, dy't Hetzner Cloud-volumes direkt kinne foarsjen, mar ik haw it noch net besocht. Ik seach nei wolksoftware-definieare opslach, om't ik replikaasje nedich wie en de mooglikheid om persistente folumes fluch op elke knooppunt te montearjen, foaral yn gefal fan knooppunten en oare ferlykbere situaasjes. Guon oplossingen biede punt-yn-tiid snapshots en off-site backups, wat handich is.

Ik hifke 6-7 opslachoplossingen:

Iepenje EBS

Sa't ik al sei yn in foarige postNei't ik de measte opsjes út 'e list testte, haw ik my yn earste ynstânsje fêstige op OpenEBS. OpenEBS is heul maklik te ynstallearjen en te brûken, mar om earlik te wêzen, nei it testen mei echte gegevens ûnder lading, wie ik teloarsteld mei syn prestaasjes. Dit is iepen boarne, en de ûntwikkelders binne op har eigen Slach kanaal altyd heul behelpsum as ik help nedich wie. Spitigernôch hat it heul minne prestaasjes yn ferliking mei oare opsjes, sadat de tests opnij moatte wurde útfierd. OpenEBS hat op it stuit 3 opslachmotoren, mar ik pleatse benchmarkresultaten foar cStor. Ik haw noch gjin nûmers foar Jiva en LocalPV.

Yn in notedop, Jiva is in bytsje flugger, en LocalPV is oer it algemien fluch, net slimmer dan de skiif benchmark direkt. It probleem mei LocalPV is dat it folume allinich tagonklik wurde kin op it knooppunt wêr't it waard taret, en d'r is hielendal gjin replikaasje. Ik hie wat problemen te herstellen in reservekopy fia Sailboat op in nij kluster omdat de node nammen wiene oars. As wy prate oer backups, cStor hat plugin foar Velero, wêrmei't jo op in punt yn 'e tiid backups meitsje kinne fan snapshots op in stuit, wat handiger is as backups op triemnivo mei Velero-Restic. Ik skreau ferskate skripts, om it makliker te meitsjen om backups en restauraasjes te behearjen mei dizze plugin. Oer it algemien hâld ik echt fan OpenEBS, mar syn prestaasjes ...

Roek

Rook is ek iepen boarne en ferskilt fan 'e rest fan' e opsjes op 'e list yn dat it is in opslach orkestrator dy't fiert komplekse opslach behear taken mei ferskillende backends, bgl. ceph, EdgeFS en oaren, dy't gâns simplifies it wurk. Ik hie problemen mei EfgeFS doe't ik besocht it in pear moannen lyn, dus ik hifke benammen mei Ceph. Ceph biedt net allinnich blok opslach, mar ek foarwerp opslach kompatibel mei S3 / Swift en ferspraat triem systeem. Wat ik leuk oer Ceph is de mooglikheid om folumegegevens oer meardere skiven te fersprieden, sadat it folume mear skiifromte kin brûke dan op ien skiif past. It is noflik. In oare koele eigenskip is dat as jo tafoegje skiven oan in kluster, it automatysk redistributed gegevens oer alle skiven.

Ceph hat snapshots, mar sa fier as ik wit, se kinne net brûkt wurde direkt yn Rook / Kubernetes. Wier, ik bin hjir net djip yn gien. Mar d'r binne gjin backups fan 'e side, dus jo moatte wat brûke mei Velero / Restic, mar d'r binne allinich backups op bestânnivo, gjin momintopnamen. Wat ik echt leuk oer Rook wie hoe maklik it is om te wurkjen mei Ceph - it ferberget hast alle yngewikkelde guod en biedt ark om direkt mei Ceph te praten foar probleemoplossing. Spitigernôch, tidens de stresstest fan Ceph-volumes, bleau ik problemen mei dit probleem, wêrtroch't Ceph ynstabyl wurdt. It is noch net dúdlik oft dit in brek is yn Ceph sels of in probleem yn 'e manier wêrop Rook Ceph beheart. Ik tink mei it ûnthâld ynstellings, en it waard better, mar it probleem waard net hielendal oplost. Ceph hat fatsoenlike prestaasjes, lykas jo kinne sjen yn 'e benchmarks hjirûnder. It hat ek in goed dashboard.

Rancher Longhorn

Ik hâld echt fan Longhorn. Neffens my is dit in kânsrike oplossing. Wier, de ûntwikkelders sels (Rancher Labs) jouwe ta dat it noch net geskikt is foar de wurkomjouwing, en dit docht bliken. It is iepen boarne en hat fatsoenlike prestaasjes (hoewol't se it noch net hawwe optimalisearre), mar de folumes duorje in heul lange tiid om te ferbinen mei de pod, en yn 'e slimste gefallen duorret it 15-16 minuten, benammen nei it herstellen fan in grutte reservekopy of it opwurdearjen fan de wurkdruk. It hat snapshots en off-site backups fan dizze snapshots, mar se jilde allinich foar folumes, dus jo sille noch wat nedich wêze as Velero om oare boarnen te backupjen. Reservekopy en weromsette binne heul betrouber, mar ûnfatsoenlik stadich. Serieus, gewoan ongelooflijk stadich. CPU-gebrûk en systeembelêsting spike faak as jo wurkje mei in middelgrutte hoemannichte gegevens yn Longhorn. D'r is in handich dashboard om Longhorn te behearjen. Ik haw al sein dat ik Longhorn leuk fyn, mar it moat wat wurk.

StorageOS

StorageOS is it earste betelle produkt op 'e list. It hat in ûntwikkeldersferzje mei in beheinde behearde opslachgrutte fan 500GB, mar ik tink net dat d'r in limyt is op it oantal knopen. De ferkeapôfdieling fertelde my dat de kosten begjinne by $ 125 per moanne foar 1 TB, as ik my goed herinner. D'r is in basisdashboard en in handige CLI, mar der bart wat frjemds mei de prestaasjes: yn guon benchmarks is it frij fatsoenlik, mar yn 'e folume-stresstest fûn ik de snelheid hielendal net leuk. Yn it algemien, ik wit net wat te sizzen. Dat ik begriep eins net folle. D'r binne hjir gjin backups fan 'e side en jo sille ek Velero moatte brûke mei Restic om folumes te backupjen. It is nuver, want it produkt wurdt betelle. En de ûntwikkelders wiene net entûsjast om te kommunisearjen op Slack.

Robin

Ik learde oer Robin op Reddit fan har technyske direkteur. Ik hie noch nea fan him heard. Miskien omdat ik socht nei fergese oplossingen, mar Robin wurdt betelle. Se hawwe in frij romhertich fergese ferzje mei 10TB oan opslach en trije knopen. Oer it algemien is it produkt frij fatsoenlik en hat moaie funksjes. D'r is in geweldige CLI, mar it coolste ding is dat jo de heule applikaasje kinne snapshotje en reservekopy meitsje (yn 'e boarneselektor wurdt dit Helm-releases of "flex apps") neamd), ynklusyf folumes en oare boarnen, sadat jo sûnder Velero kinne dwaan. En alles soe prachtich wêze as net foar ien lyts detail: as jo in applikaasje weromsette (of "ymportearje", sa't it hjit yn Robin) op in nij kluster - bygelyks yn it gefal fan herstel fan in ramp - de restauraasje, fansels, wurket, mar fierder in reservekopy fan de applikaasje is it ferbean. Dit is gewoan net mooglik yn dizze release, lykas de ûntwikkelders hawwe befêstige. Dit is, om it myld te sizzen, frjemd, foaral sjoen de oare foardielen (bygelyks ongelooflijk rappe backups en weromsette). De ûntwikkelders tasizze alles te reparearjen troch de folgjende release. Prestaasje is oer it algemien goed, mar ik fernaam in nuverens: as ik de benchmark direkt op in folume útfiere dat oan 'e host is ferbûn, is de lêssnelheid folle flugger dan itselde folume fanút de pod te rinnen. Alle oare resultaten binne identyk, mar yn teory soe d'r gjin ferskil wêze moatte. Hoewol't se wurkje oan it, Ik wie oerstjoer oer it probleem mei weromsette en reservekopy - ik tocht dat ik hie lang om let fûn in geskikte oplossing, en ik wie sels ree om te beteljen foar it doe't ik nedich mear romte of mear tsjinners.

portworx

Ik haw hjir net folle te sizzen. Dit is in betelle produkt, like cool en djoer. De foarstelling is gewoan geweldich. Dit is de bêste yndikator oant no ta. Slack fertelde my dat prizen begjinne by $ 205 per moanne per knooppunt, lykas fermeld yn Google's GKE Marketplace. Ik wit net oft it sil wêze goedkeaper as jo keapje direkt. Ik kin dat yn elts gefal net betelje, dus ik wie heul, heul teloarsteld dat de ûntwikkelderslisinsje (oant 1 TB en 3 knopen) praktysk nutteloos is mei Kubernetes, útsein as jo tefreden binne mei statyske foarsjenning. Ik hope dat de folume lisinsje automatysk soe downgrade nei ûntwikkelder oan 'e ein fan' e proefperioade, mar dat barde net. De ûntwikkelderslisinsje kin allinich direkt brûkt wurde mei Docker, en konfiguraasje yn Kubernetes is heul omslachtig en beheind. Fansels, ik leaver iepen boarne, mar as ik hie it jild, Ik soe grif kieze Portworx. Oant no is de prestaasjes gewoan net te fergelykjen mei oare opsjes.

Linstor

Ik haw dizze seksje tafoege nei de publikaasje fan 'e post, doe't ien lêzer suggerearre Linstor te besykjen. Ik besocht it en ik vond it leuk! Mar wy moatte noch djipper grave. No kin ik sizze dat de prestaasjes net min binne (ik haw de benchmarkresultaten hjirûnder tafoege). Yn essinsje krige ik deselde prestaasje as de skiif direkt, sûnder overhead. (Freegje net wêrom Portworx hat bettere sifers as de drive benchmark direkt. Ik haw gjin idee. Magic, ik tink.) Sa Linstor liket hiel effektyf oant no ta. It is net sa dreech om te ynstallearjen, mar it is net sa maklik as oare opsjes. Earst moast ik Linstor (kernelmodule en ark / tsjinsten) ynstallearje en LVM konfigurearje foar tinne foarsjenning en snapshot-stipe bûten Kubernetes, direkt op 'e host, en dan de boarnen oanmeitsje dy't nedich binne om opslach fan Kubernetes te brûken. Ik mocht net leuk dat it net wurke op CentOS en ik moast Ubuntu brûke. Net ferskriklik, fansels, mar in bytsje ferfelend, om't de dokumintaasje (dat is poerbêst, trouwens) neamt ferskate pakketten dy't net te finen binne yn 'e oantsjutte Epel-repositories. Linstor hat snapshots, mar gjin off-site backups, dus hjir moast ik wer Velero brûke mei Restic om folumes te backupjen. Ik soe leaver snapshots ynstee fan backups op triemnivo, mar dit kin tolerearre wurde as de oplossing performant en betrouber is. Linstor is iepen boarne, mar hat betelle stipe. As ik it goed begryp, kin it sûnder beheiningen brûkt wurde, sels as jo gjin stipekontrakt hawwe, mar dit moat dúdlik wurde. Ik wit net hoe testen Linstor is foar Kubernetes, mar de opslachlaach sels is bûten Kubernetes en, blykber, ferskynde de oplossing juster net, dus it is wierskynlik al hifke yn echte omstannichheden. Is d'r hjir in oplossing dy't my fan gedachten feroarje sil en weromgean nei Kubernetes? Ik wit net. Wy moatte noch djipper grave en replikaasje studearje. Litte wy sjen. Mar de earste yndruk is goed. Ik soe perfoarst leaver myn eigen Kubernetes-klusters brûke ynstee fan Heroku om mear frijheid te hawwen en nije dingen te learen. Om't Linstor net sa maklik te ynstallearjen is as oaren, sil ik der gau in post oer skriuwe.

Benchmarks

Spitigernôch haw ik net folle oantekeningen hâlden oer de fergeliking, om't ik net tocht dat ik der oer skriuwe soe. Ik haw allinich resultaten fan 'e basisfio-benchmarks en allinich foar klusters fan ien knooppunt, dus ik haw noch gjin nûmers foar replike konfiguraasjes. Mar út dizze resultaten kinne jo in rûch idee krije fan wat te ferwachtsjen fan elke opsje, om't ik se fergelike op deselde wolkservers, 4-kearnen, 16 GB RAM, mei in ekstra 100 GB-skiif foar de testen folumes. Ik rûn de benchmarks trije kear foar elke oplossing en berekkene it gemiddelde resultaat, plus ik reset de serverynstellingen foar elk produkt. Dit is allegear folslein ûnwittenskiplik, gewoan om jo in algemien idee te jaan. Yn oare tests kopiearre ik 38 GB fan foto's en fideo's út it folume om lêzen en skriuwen te testen, mar, helaas, ik haw de nûmers net bewarre. Koartsein: Portworkx wie folle flugger.

Foar de folumebenchmark brûkte ik dit manifest:

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

Ik makke earst in folume mei de passende opslachklasse en rûn doe de baan mei fio efter de skermen. Ik naam 1 GB om de prestaasjes te skatten en net te lang te wachtsjen. Hjir binne de resultaten:

Opslach yn Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Ik haw de bêste wearde foar elke metrik yn grien markearre en de minste yn read.

konklúzje

Sa't jo sjen kinne, die Portworx yn 'e measte gefallen better dan oaren. Mar foar my is it djoer. Ik wit net hoefolle Robin kostet, mar se hawwe in geweldige fergese ferzje, dus as jo in betelle produkt wolle, kinne jo it besykje (hooplik reparearje se it probleem mei weromsette en backups gau). Fan 'e trije fergese, hie ik de minste problemen mei OpenEBS, mar de prestaasjes binne ôfgryslik. It is spitich dat ik net mear resultaten bewarre haw, mar ik hoopje dat de sifers en myn opmerkingen jo sille helpe.

Boarne: www.habr.com

Add a comment