Panyimpenan ing Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Panyimpenan ing Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Nganyari!. Ing komentar, salah sawijining pembaca nyaranake nyoba Linstor (Mungkin dheweke nggarap dhewe) mula aku wis nambah bagean babagan solusi iki. Aku uga nulis kirim carane nginstal, amarga prosese beda banget karo liyane.

Jujur, aku pasrah lan nyerah Kubernetes (paling ora kanggo saiki). Aku bakal nggunakake Heroku. Kenging punapa? Amarga saka panyimpenan! Sapa sing bakal ngira yen aku bakal luwih akeh nyimpen tinimbang karo Kubernetes dhewe. Aku nggunakake Awan Hetzneramarga iku inexpensive lan kinerja apik lan saka awal aku wis deploying kluster nggunakake Peternak. Aku ora nyoba ngatur layanan Kubernetes saka Google/Amazon/Microsoft/DigitalOcean, etc., etc, amarga aku pengin sinau kabeh dhewe. Aku uga hemat.

Dadi ya, aku ngenteni akeh wektu kanggo mutusake panyimpenan sing kudu dipilih nalika ngevaluasi tumpukan Kubernetes. Aku luwih seneng solusi open source, ora mung amarga saka rega, nanging aku wis katon menyang sawetara opsi mbayar metu saka penasaran amarga padha duwe versi free karo watesan. Aku wis jotted mudhun sawetara nomer saka tes anyar nalika aku dibandhingake opsi beda, lan padha bisa dadi kapentingan kanggo sing sinau babagan panyimpenan Kubernetes. Senajan aku pribadi wis pamitan kanggo Kubernetes kanggo saiki. Aku uga pengin sebutno driver CSI, sing bisa langsung nyedhiyakake volume Hetzner Cloud, nanging aku durung nyoba. Aku katon menyang panyimpenan maya software-ditetepake amarga aku mbutuhake réplikasi lan kemampuan kanggo cepet Gunung volume terus-terusan ing sembarang simpul, utamané ing cilik saka gagal simpul lan kahanan liyane padha. Sawetara solusi nawakake snapshot point-in-time lan serep saka situs, sing trep.

Aku nyoba 6-7 solusi panyimpenan:

OpenEBS

Kaya sing wis dakkandhakake ing kirim sadurungeSawise nyoba paling akeh pilihan saka dhaptar, aku pisanan manggon ing OpenEBS. OpenEBS gampang banget kanggo nginstal lan nggunakake, nanging jujur, sawise nyoba karo data nyata ing beban, aku kuciwa karo kinerja. Iki minangka sumber terbuka, lan pangembang dhewe Saluran slack tansah mbiyantu nalika aku butuh pitulung. Sayange, kinerja sing kurang apik dibandhingake karo pilihan liyane, mula tes kasebut kudu ditindakake maneh. OpenEBS saiki duwe 3 mesin panyimpenan, nanging aku ngirim asil benchmark kanggo cStor. Aku durung duwe nomer kanggo Jiva lan LocalPV.

Cekakipun, Jiva punika sethitik luwih cepet, lan LocalPV umume cepet, ora Samsaya Awon saka pathokan disk langsung. Masalah karo LocalPV yaiku volume mung bisa diakses ing simpul sing disiapake, lan ora ana replikasi. Aku duwe sawetara masalah mulihake serep liwat Sailboat ing kluster anyar amarga jeneng simpul beda. Yen kita pirembagan bab serep, cStor wis plugin kanggo Velero, kanthi sampeyan bisa nggawe serep jepretan ing njaba situs ing sawijining wektu, sing luwih trep tinimbang serep tingkat file kanthi Velero-Restic. Aku nulis sawetara script, supaya luwih gampang ngatur serep lan mulihake nganggo plugin iki. Sakabèhé, aku seneng OpenEBS, nanging kinerja ...

Rook

Rook uga mbukak sumber lan beda-beda saka liyane saka opsi ing dhaftar ing iku orkestrasi panyimpenan sing nindakake tugas Manajemen panyimpenan Komplek karo backends beda, f.eks. ceph, EdgeFS lan liyane, kang nemen simplifies karya. Aku duwe masalah karo EfgeFS nalika nyoba sawetara wulan kepungkur, mula aku nyoba utamane karo Ceph. Ceph ora mung nawakake panyimpenan pemblokiran, nanging uga panyimpenan obyek kompatibel karo S3 / Swift lan sistem file mbagekke. Sing dakkarepake babagan Ceph yaiku kemampuan nyebarake data volume ing pirang-pirang disk supaya volume bisa nggunakake ruang disk luwih akeh tinimbang sing cocog ing disk siji. Wis nyaman. Fitur keren liyane yaiku yen sampeyan nambah disk menyang kluster, data kasebut kanthi otomatis nyebarake ing kabeh disk.

Ceph wis jepretan, nanging minangka adoh aku ngerti, padha ora bisa digunakake langsung ing Rook / Kubernetes. Bener, aku ora mlebu jero babagan iki. Nanging ora ana serep ing situs, dadi sampeyan kudu nggunakake Velero / Restic, nanging mung ana serep tingkat file, dudu snapshot ing wektu. Apa aku seneng banget babagan Rook yaiku carane gampang nggarap Ceph - ndhelikake meh kabeh barang sing rumit lan nawakake alat kanggo ngobrol karo Ceph kanthi langsung kanggo ngatasi masalah. Sayange, sajrone tes stres volume Ceph, aku terus ngalami masalah masalah iki, sing nyebabake Ceph dadi ora stabil. Iku durung cetha apa iki bug ing Ceph dhewe utawa masalah ing cara Rook ngatur Ceph. Aku tinkered karo setelan memori, lan dadi luwih apik, nanging masalah iki ora rampung ditanggulangi. Ceph nduweni kinerja sing apik, kaya sing sampeyan deleng ing benchmark ing ngisor iki. Uga nduweni dashboard sing apik.

Rancher Longhorn

Aku pancene seneng Longhorn. Ing mratelakake panemume, iki solusi janjeni. Bener, pangembang dhewe (Rancher Labs) ngakoni yen durung cocok kanggo lingkungan kerja, lan iki nuduhake. Iku mbukak sumber lan nduweni kinerja prayoga (sanajan durung optimized iku durung), nanging volume njupuk wektu dawa banget kanggo nyambung menyang pod, lan ing kasus paling awon njupuk 15-16 menit, utamané sawise mulihake serep gedhe utawa nganyarke beban kerja. Nduwe gambar asli lan serep saka situs kasebut, nanging mung ditrapake kanggo volume, dadi sampeyan isih butuh kaya Velero kanggo nggawe cadangan sumber daya liyane. Gawe serep lan mulihake banget dipercaya, nanging ora sopan. Serius, mung luar biasa alon. Panggunaan CPU lan beban sistem asring mundhak nalika nggarap data kanthi jumlah medium ing Longhorn. Ana dashboard trep kanggo ngatur Longhorn. Aku wis ngandika sing aku Longhorn, nanging perlu sawetara karya.

StorageOS

StorageOS minangka produk mbayar pisanan ing dhaptar. Wis versi pangembang karo ukuran panyimpenan ngatur winates 500GB, nanging aku ora mikir ana watesan ing nomer kelenjar. Departemen sales marang kula sing biaya wiwit ing $125 saben sasi kanggo 1 TB, yen aku elinga bener. Ana dashboard dhasar lan CLI sing trep, nanging ana sing aneh karo kinerja: ing sawetara benchmark cukup prayoga, nanging ing tes stres volume aku ora seneng karo kacepetan. Umumé, aku ora ngerti apa sing kudu dakkandhakake. Dadi aku ora ngerti banget. Ora ana serep situs ing kene lan sampeyan uga kudu nggunakake Velero karo Restic kanggo nggawe serep volume. Iku aneh, amarga produk wis mbayar. Lan pangembang ora kepengin banget komunikasi ing Slack.

Robin

Aku sinau babagan Robin ing Reddit saka direktur teknis. Aku durung tau krungu bab dheweke sadurunge. Mungkin amarga aku nggoleki solusi gratis, nanging Robin dibayar. Dheweke duwe versi gratis sing apik banget kanthi panyimpenan 10TB lan telung simpul. Sakabèhé, prodhuk iki cukup prayoga lan nduweni fitur sing apik. Ana CLI sing apik, nanging sing paling apik yaiku sampeyan bisa nggawe serep lan nggawe serep kabeh aplikasi (ing pamilih sumber iki diarani rilis Helm utawa "aplikasi fleksibel"), kalebu volume lan sumber daya liyane, supaya sampeyan bisa nindakake tanpa Velero. Lan kabeh bakal apik yen ora kanggo siji rinci cilik: yen sampeyan mulihake (utawa "impor", kaya sing diarani Robin) aplikasi ing kluster anyar - contone, ing acara Recovery saka bilai - pemugaran, mesthi, dianggo, nanging terus gawe serep aplikasi iku pareng. Iki mung ora bisa ditindakake ing rilis iki, amarga pangembang wis dikonfirmasi. Iki, kanggo sijine iku mildly, aneh, utamané considering kaluwihan liyane (contone, luar biasa cepet serep lan mulihake). Pangembang janji bakal ndandani kabeh kanthi rilis sabanjure. Kinerja umume apik, nanging aku weruh keanehan: yen aku mbukak pathokan langsung ing volume sing dipasang ing host, kacepetan maca luwih cepet tinimbang mbukak volume sing padha saka polong. Kabeh asil liyane padha, nanging ing teori mesthine ora ana bedane. Senajan lagi digunakake ing, Aku iki upset bab masalah karo mulihake lan serep - Aku wis pungkasanipun nemu solusi cocok, lan aku malah gelem mbayar nalika aku needed liyane papan utawa server liyane.

portworx

Aku ora kudu ngomong akeh ing kene. Iki minangka produk mbayar, padha kelangan lan larang. Kinerja mung apik tenan. Iki minangka indikator paling apik nganti saiki. Slack ngandhani yen rega diwiwiti $ 205 saben wulan saben simpul, kaya sing kadhaptar ing Pasar GKE Google. Aku ora ngerti yen bakal luwih murah yen sampeyan tuku langsung. Aku ora bisa mbayar, mula aku kuciwa banget amarga lisensi pangembang (nganti 1 TB lan 3 kelenjar) ora ana gunane karo Kubernetes kajaba sampeyan seneng karo penyediaan statis. Aku ngarep-arep yen lisensi volume bakal mudhun kanthi otomatis menyang pangembang ing pungkasan periode nyoba, nanging ora kedadeyan. Lisensi pangembang mung bisa digunakake langsung karo Docker, lan konfigurasi ing Kubernetes banget rumit lan winates. Mesthi, aku luwih seneng mbukak sumber, nanging yen aku duwe dhuwit, aku mesthi milih Portworx. Nganti saiki, kinerja mung ora dibandhingake karo pilihan liyane.

Linstor

Aku nambah bagean iki sawise publikasi kirim, nalika siji maca disaranake nyoba Linstor. Aku nyoba lan aku seneng! Nanging kita isih kudu digali luwih jero. Saiki aku bisa ngomong yen kinerja ora ala (aku nambahake asil pathokan ing ngisor iki). Ateges, aku entuk kinerja sing padha karo disk langsung, tanpa nduwur sirah. (Aja takon apa Portworx wis nomer luwih saka pathokan drive langsung. Aku ora idea. Piandel, Aku guess.) Dadi Linstor misale jek banget efektif supaya adoh. Ora angel nginstal, nanging ora gampang kaya pilihan liyane. Pisanan aku kudu nginstal Linstor (modul kernel lan alat / layanan) lan ngatur LVM kanggo provisioning lancip lan support snapshot njaba Kubernetes, langsung ing inang, lan banjur nggawe sumber daya needed kanggo nggunakake panyimpenan saka Kubernetes. Aku ora seneng yen ora bisa digunakake ing CentOS lan aku kudu nggunakake Ubuntu. Ora elek, mesthine, nanging rada ngganggu, amarga dokumentasi (sing apik banget, kanthi cara) nyebutake sawetara paket sing ora bisa ditemokake ing repositori Epel sing ditemtokake. Linstor duwe jepretan, nanging ora nggawe serep ing situs, mula aku kudu nggunakake Velero karo Restic kanggo nggawe serep volume. Aku luwih seneng gambar jepretan tinimbang serep file-level, nanging iki bisa ditrima yen solusi kasebut performant lan dipercaya. Linstor mbukak sumber nanging wis mbayar dhukungan. Yen aku ngerti kanthi bener, bisa digunakake tanpa watesan, sanajan sampeyan ora duwe kontrak dhukungan, nanging iki kudu dijlentrehake. Aku ora ngerti carane Linstor dites kanggo Kubernetes, nanging lapisan panyimpenan dhewe ing njaba Kubernetes lan, ketoke, solusi ora katon wingi, supaya mbokmenawa wis dites ing kahanan nyata. Apa ana solusi ing kene sing bakal ngowahi pikiranku lan bali menyang Kubernetes? Aku ora ngerti. Kita isih kudu digali luwih jero lan sinau replikasi. Ayo ndeleng. Nanging kesan pisanan apik. Aku mesthi luwih seneng nggunakake kluster Kubernetes dhewe tinimbang Heroku supaya luwih bebas lan sinau babagan anyar. Wiwit Linstor ora gampang kanggo nginstal liyane, Aku bakal nulis kirim bab iku rauh.

pathokan

Sayange, aku ora nyimpen akeh cathetan babagan perbandingan amarga aku ora mikir bakal nulis babagan iki. Aku mung duwe asil saka pathokan fio dhasar lan mung kanggo kluster simpul siji, supaya aku ora duwe nomer kanggo konfigurasi replicated durung. Nanging saka asil kasebut, sampeyan bisa ngerteni apa sing bakal dikarepake saka saben pilihan, amarga aku mbandhingake ing server maya sing padha, 4 intine, 16 GB RAM, kanthi tambahan 100 GB disk kanggo volume sing diuji. Aku mlayu benchmarks kaping telu kanggo saben solusi lan ngetung asil rata-rata, plus aku ngreset setelan server kanggo saben produk. Iki kabeh pancen ora ilmiah, mung kanggo menehi ide umum. Ing tes liyane, aku nyalin 38 GB foto lan video saka volume kanggo nyoba maca lan nulis, nanging, sayang, aku ora nyimpen nomer kasebut. Singkat: Portworkx luwih cepet.

Kanggo benchmark volume aku nggunakake manifest iki:

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

Aku pisanan digawe volume karo kelas panyimpenan cocok lan banjur mbukak proyek karo fio konco sing pemandangan. Aku njupuk 1 GB kanggo ngira kinerja lan ora ngenteni suwene. Mangkene asile:

Panyimpenan ing Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Aku wis nyorot nilai paling apik kanggo saben metrik ing ijo lan sing paling awon ing abang.

kesimpulan

Kaya sing sampeyan ngerteni, umume Portworx nindakake luwih apik tinimbang liyane. Nanging kanggo kula iku larang. Aku ora ngerti carane akeh biaya Robin, nanging padha duwe gedhe free versi, supaya yen sampeyan pengin produk mbayar, sampeyan bisa nyoba (mugia padha ndandani masalah karo mulihake lan serep rauh). Saka telung free, Aku duwe masalah paling karo OpenEBS, nanging kinerja abysmal. Sayange aku ora nyimpen asil liyane, nanging aku ngarep-arep nomer lan komentar bakal mbantu.

Source: www.habr.com

Add a comment