
Update!. Yn 'e opmerkingen suggerearre ien fan' e lêzers om te besykjen (miskien wurket er der sels oan) dat ik haw in rubryk tafoege oer dizze oplossing. Ik skreau ek , omdat it proses is hiel oars as de rest.
Om earlik te wêzen, ik joech op en joech op (teminsten foar no). Ik sil brûke . Wêrom? Fanwege opslach! Wa soe hawwe tocht dat ik soe tink mear mei opslach as mei Kubernetes sels. ik brûk om't it goedkeap is en de prestaasjes goed binne en fan it begjin ôf haw ik klusters ynset mei help fan . 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 , 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:
Sa't ik al sei Nei'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 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 op in nij kluster omdat de node nammen wiene oars. As wy prate oer backups, cStor hat , 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 , 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 ...
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. , 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 , 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.
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 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.
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.
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.
Ik haw dizze seksje tafoege nei't de post publisearre wie, doe't in lêzer foarstelde om Linstor te besykjen. Ik haw it besocht en fûn it leuk! Mar ik moat noch wat mear ûndersyk dwaan. Foar no kin ik sizze dat de prestaasjes aardich goed binne (ik haw de benchmarkresultaten hjirûnder tafoege). Eins krige ik deselde prestaasjes as mei in direkte skiifbenchmark, sûnder overhead. (Freegje net wêrom't de sifers fan Portworx better binne as de direkte skiifbenchmark. Ik haw gjin idee. Magy, tink ik.) Dus, Linstor liket oant no ta tige effektyf. It ynstellen is net echt lestich, mar it is net sa maklik as oare opsjes. Earst moast ik Linstor ynstallearje (kernelmodule en ark/tsjinsten) en LVM ynstelle foar tinne foarsjenning en snapshot-stipe bûten Kubernetes, direkt op 'e host, en dan de boarnen oanmeitsje dy't nedich binne om de opslach fan Kubernetes te brûken. Ik wie net bliid dat it net wurke op CentOS en moasten brûke UbuntuIt is fansels gjin grut probleem, mar it is in bytsje ferfelend, om't de dokumintaasje (dy't trouwens poerbêst is) ferskate pakketten neamt dy't net beskikber binne yn 'e oantsjutte Epel-repositories. Linstor hat snapshots, mar gjin off-site backups, dus ik moast Velero mei Restic opnij brûke foar folumebackups. Ik soe leaver snapshots hawwe as backups op bestânsnivo, mar dat is tolerearber as de oplossing performant en betrouber is. Linstor is iepen boarne, mar d'r is betelle stipe. As ik it goed begriep, kinne jo it sûnder beheiningen brûke, sels as jo gjin stipekontrakt hawwe, mar ik soe dat moatte kontrolearje. Ik wit net hoe hifke Linstor is foar Kubernetes, mar de opslachlaach sels is bûten Kubernetes, en it liket derop dat it al in skoft bestiet, dus it is wierskynlik al hifke yn echte omstannichheden. Is hjir in oplossing dy't my fan gedachten feroarje soe en werom nei Kubernetes soe wikselje? Ik wit it net. Ik moat wat mear grave en leare oer replikaasje. Wy sille sjen. Mar de earste yndruk is goed. Ik soe perfoarst leaver myn eigen Kubernetes-klusters brûke ynstee fan Heroku foar mear frijheid en om nije dingen te learen. Om't Linstor net sa maklik te ynstallearjen is as oaren, sil ik dêr gau in berjocht 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: 4Ik 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:
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
