{"id":37528,"date":"2019-10-31T22:18:10","date_gmt":"2019-10-31T19:18:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor\/"},"modified":"2019-10-31T22:18:10","modified_gmt":"2019-10-31T19:18:10","slug":"hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor","title":{"rendered":"Przechowalnie w Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Przechowalnie w Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor\" src=\"\/wp-content\/uploads\/2019\/08\/304037eee8371c64de73ae0fc42f05ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Aktualizacja!<\/strong>. W komentarzach jeden z czytelnik\u00f3w zasugerowa\u0142 spr\u00f3bowa\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linbit.com\/en\/linstor\/\">Linstor<\/a><\/noindex> (mo\u017cliwe, \u017ce sam nad nim pracuje), wi\u0119c doda\u0142em sekcj\u0119 na ten temat. Napisa\u0142em r\u00f3wnie\u017c <noindex><a rel=\"nofollow\" href=\"http:\/\/vitobotta.com\/2019\/08\/07\/linstor-storage-with-kubernetes\/\">post o tym, jak go zainstalowa\u0107<\/a><\/noindex>, poniewa\u017c proces znacznie r\u00f3\u017cni si\u0119 od innych.<\/p>\n<p><\/p>\n<p>Szczerze m\u00f3wi\u0105c, si\u0119 podda\u0142em i zrezygnowa\u0142em z <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/\">Kubernetes<\/a><\/noindex> (przynajmniej na razie). B\u0119d\u0119 korzysta\u0142 z <noindex><a rel=\"nofollow\" href=\"https:\/\/www.heroku.com\/\">Heroku<\/a><\/noindex>. Dlaczego? Z powodu przechowywania! Kto by pomy\u015bla\u0142, \u017ce b\u0119d\u0119 sp\u0119dza\u0107 wi\u0119cej czasu na zarz\u0105dzaniu magazynami ni\u017c samym Kubernetesem. U\u017cywam <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hetzner.com\/cloud\">Hetzner Cloud<\/a><\/noindex>, poniewa\u017c to niedrogie i ma dobr\u0105 wydajno\u015b\u0107, a od samego pocz\u0105tku wdra\u017ca\u0142em klastry za pomoc\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/rancher.com\/\">Rancher<\/a><\/noindex>. Nie pr\u00f3bowa\u0142em zarz\u0105dzanych us\u0142ug Kubernetes od Google\/Amazon\/Microsoft\/DigitalOcean itp., poniewa\u017c chcia\u0142em wszystko nauczy\u0107 si\u0119 samodzielnie. A poza tym oszcz\u0119dzam.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Wi\u0119c tak, sp\u0119dzi\u0142em mn\u00f3stwo czasu na pr\u00f3bie ustalenia, kt\u00f3re magazynowanie wybra\u0107, gdy rozwa\u017ca\u0142em mo\u017cliwy stos na Kubernetes. Wol\u0119 rozwi\u0105zania z otwartym kodem \u017ar\u00f3d\u0142owym, nie tylko ze wzgl\u0119du na cen\u0119, ale te\u017c zbada\u0142em kilka p\u0142atnych mo\u017cliwo\u015bci z ciekawo\u015bci, poniewa\u017c maj\u0105 bezp\u0142atne wersje z ograniczeniami. Zanotowa\u0142em kilka danych z ostatnich test\u00f3w, gdy por\u00f3wnywa\u0142em r\u00f3\u017cne opcje, co mo\u017ce zainteresowa\u0107 tych, kt\u00f3rzy badaj\u0105 magazynowanie w Kubernetes. Chocia\u017c osobi\u015bcie jak na razie po\u017cegna\u0142em si\u0119 z Kubernetesem. Chcia\u0142bym jeszcze wspomnie\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hetznercloud\/csi-driver\">o sterowniku CSI<\/a><\/noindex>, w kt\u00f3rym mo\u017cna bezpo\u015brednio przygotowywa\u0107 wolumeny Hetzner Cloud, ale jeszcze go nie przetestowa\u0142em. Bada\u0142em chmurowe magazyny definiowane programowo, poniewa\u017c potrzebowa\u0142em replikacji i mo\u017cliwo\u015bci szybkiego pod\u0142\u0105czania trwa\u0142ych wolumen\u00f3w na dowolnym w\u0119\u017ale, szczeg\u00f3lnie w przypadku awarii w\u0119z\u0142\u00f3w i innych podobnych sytuacji. Niekt\u00f3re rozwi\u0105zania oferuj\u0105 migawki z okre\u015blonego momentu i kopie zapasowe off-site, co jest wygodne.<\/p>\n<p><\/p>\n<p>Przetestowa\u0142em 6\u20137 rozwi\u0105za\u0144 do przechowywania:<\/p>\n<p><\/p>\n<h3 id=\"openebshttpsopenebsio\"><noindex><a rel=\"nofollow\" href=\"https:\/\/openebs.io\/\">OpenEBS<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>Jak ju\u017c wspomnia\u0142em <noindex><a rel=\"nofollow\" href=\"http:\/\/vitobotta.com\/2019\/07\/03\/openebs-tips\/\">w poprzednim po\u015bcie<\/a><\/noindex>, testuj\u0105c wi\u0119kszo\u015b\u0107 opcji z listy, pocz\u0105tkowo skupi\u0142em si\u0119 na OpenEBS. OpenEBS jest bardzo prosty w instalacji i u\u017cytkowaniu, ale szczerze m\u00f3wi\u0105c, po testach z rzeczywistymi danymi pod obci\u0105\u017ceniem, jego wydajno\u015b\u0107 mnie rozczarowa\u0142a. To open source, a programi\u015bci na swoim <noindex><a rel=\"nofollow\" href=\"https:\/\/openebs-community.slack.com\/\">kanale Slack<\/a><\/noindex> zawsze bardzo pomagali, gdy potrzebowa\u0142em wsparcia. Niestety, ma bardzo nisk\u0105 wydajno\u015b\u0107 w por\u00f3wnaniu do innych opcji, wi\u0119c musia\u0142em przeprowadzi\u0107 testy ponownie. Obecnie OpenEBS ma 3 silniki magazynowania, ale publikuj\u0119 wyniki benchmarku dla cStor. Na razie nie mam danych dla Jiva i LocalPV.<\/p>\n<p><\/p>\n<p>M\u00f3wi\u0105c w skr\u00f3cie, Jiva jest nieco szybsza, a LocalPV jest bardzo szybki, nie gorszy ni\u017c benchmark dysku bezpo\u015brednio. Problem z LocalPV polega na tym, \u017ce dost\u0119p do niego mo\u017cna uzyska\u0107 tylko na tym w\u0119\u017ale, na kt\u00f3rym zosta\u0142 przygotowany, a replikacji w og\u00f3le nie ma. Mia\u0142em pewne problemy z przywracaniem kopii zapasowej przez <noindex><a rel=\"nofollow\" href=\"https:\/\/velero.io\/\">Velero<\/a><\/noindex> na nowym klastrze, poniewa\u017c nazwy w\u0119z\u0142\u00f3w r\u00f3\u017cni\u0142y si\u0119. Je\u015bli chodzi o kopie zapasowe, cStor ma <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openebs\/velero-plugin\">plugin do Velero<\/a><\/noindex>, kt\u00f3ry pozwala na wykonanie off-site kopii zapasowych z momentem czasowym, co jest wygodniejsze ni\u017c kopie zapasowe na poziomie plik\u00f3w z Velero-Restic. Napisa\u0142em <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vitobotta\/velero-openebs-backup\">kilka skrypt\u00f3w<\/a><\/noindex>, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u0430\u043c\u0438 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u044d\u0442\u0438\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f OpenEBS, \u043d\u043e \u0432\u043e\u0442 \u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c&#8230;<\/p>\n<p><\/p>\n<h3 id=\"rookhttpsrookio\"><noindex><a rel=\"nofollow\" href=\"https:\/\/rook.io\/\">Rook<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>Rook r\u00f3wnie\u017c ma otwarty kod \u017ar\u00f3d\u0142owy, a w por\u00f3wnaniu do innych opcji na li\u015bcie wyr\u00f3\u017cnia si\u0119 tym, \u017ce jest orkiestratorem magazyn\u00f3w, kt\u00f3ry wykonuje z\u0142o\u017cone zadania zarz\u0105dzania magazynem z r\u00f3\u017cnymi backendami, takimi jak <noindex><a rel=\"nofollow\" href=\"https:\/\/ceph.io\/\">Ceph<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/edgefs.io\/\">EdgeFS<\/a><\/noindex> i inne, co znacznie upraszcza prac\u0119. Mia\u0142em problemy z EfgeFS, gdy testowa\u0142em go kilka miesi\u0119cy temu, wi\u0119c g\u0142\u00f3wnie testowa\u0142em z Ceph. Ceph oferuje nie tylko magazyn blokowy, ale r\u00f3wnie\u017c magazyn obiektowy, zgodny z S3\/Swift i rozproszonym systemem plik\u00f3w. Co mi si\u0119 podoba w Ceph, to mo\u017cliwo\u015b\u0107 rozprzestrzenienia danych woluminu na kilku dyskach, aby wolumin m\u00f3g\u0142 wykorzysta\u0107 wi\u0119cej miejsca na dysku, ni\u017c mie\u015bci si\u0119 na jednym dysku. To wygodne. Jeszcze jedn\u0105 fajn\u0105 funkcjonalno\u015bci\u0105 jest to, \u017ce po dodaniu dysk\u00f3w do klastra dane s\u0105 automatycznie redistribuowane na wszystkich dyskach.<\/p>\n<p><\/p>\n<p>W Ceph s\u0105 migawki, ale, jak s\u0105dz\u0119, nie mo\u017cna ich bezpo\u015brednio u\u017cywa\u0107 w Rook\/Kubernetes. Prawda, nie zag\u0142\u0119bia\u0142em si\u0119 w to szczeg\u00f3lnie. A zdalnych kopii zapasowych brak, wi\u0119c trzeba b\u0119dzie u\u017cy\u0107 czego\u015b z Velero\/Restic, ale tam s\u0105 tylko kopie zapasowe na poziomie plik\u00f3w, a nie migawki w punkcie w czasie. Za to w Rook bardzo podoba\u0142a mi si\u0119 \u0142atwo\u015b\u0107 pracy z Ceph \u2013 prawie wszystkie skomplikowane rzeczy s\u0105 ukryte, a tak\u017ce oferuje narz\u0119dzia do komunikacji z Ceph bezpo\u015brednio w celu rozwi\u0105zywania problem\u00f3w. Niestety, podczas stres-testu wolumen\u00f3w Ceph ca\u0142y czas mia\u0142em <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rook\/rook\/issues\/3132\">ten problem<\/a><\/noindex>, przez kt\u00f3ry Ceph staje si\u0119 niestabilny. Na razie nie jest jasne, czy to b\u0142\u0105d w samym Ceph, czy problem w tym, jak Rook zarz\u0105dza Ceph. Pokombinowa\u0142em z ustawieniami pami\u0119ci i by\u0142o lepiej, ale problem ostatecznie nie zosta\u0142 rozwi\u0105zany. Ceph ma niez\u0142\u0105 wydajno\u015b\u0107, co wida\u0107 w benchmarkach poni\u017cej. Ma tak\u017ce dobry panel monitorowania.<\/p>\n<p><\/p>\n<h3 id=\"rancher-longhornhttpsgithubcomlonghornlonghorn\"><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/longhorn\/longhorn\">Rancher Longhorn<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>Bardzo lubi\u0119 Longhorn. Uwa\u017cam, \u017ce to obiecuj\u0105ce rozwi\u0105zanie. Prawda, sami deweloperzy (Rancher Labs) przyznaj\u0105, \u017ce na razie nie nadaje si\u0119 do \u015brodowiska produkcyjnego, co wida\u0107. Ma otwarty kod \u017ar\u00f3d\u0142owy i niez\u0142\u0105 wydajno\u015b\u0107 (cho\u0107 optymalizacj\u0105 jeszcze si\u0119 nie zaj\u0119li), ale wolumeny \u0142\u0105cz\u0105 si\u0119 z podami bardzo d\u0142ugo, a w najgorszych przypadkach trwa to 15\u201316 minut, szczeg\u00f3lnie po przywr\u00f3ceniu du\u017cej kopii zapasowej lub aktualizacji obci\u0105\u017cenia roboczego. Ma migawki i zdalne kopie zapasowe tych migawek, ale dotycz\u0105 one tylko wolumen\u00f3w, wi\u0119c nadal b\u0119dziecie potrzebowa\u0107 czego\u015b jak Velero dla kopii zapasowych innych zasob\u00f3w. Kopie zapasowe i przywracanie s\u0105 bardzo niezawodne, ale niesamowicie wolne. Na powa\u017cnie, po prostu absurdalnie wolne. Wykorzystanie zasob\u00f3w procesora i obci\u0105\u017cenie systemu cz\u0119sto skacz\u0105 przy pracy z \u015brednimi ilo\u015bciami danych w Longhorn. Jest wygodny panel monitorowania do zarz\u0105dzania Longhorn. Ju\u017c m\u00f3wi\u0142em, \u017ce lubi\u0119 Longhorn, ale trzeba nad nim solidnie popracowa\u0107.<\/p>\n<p><\/p>\n<h3 id=\"storageoshttpsstorageoscom\"><noindex><a rel=\"nofollow\" href=\"https:\/\/storageos.com\/\">StorageOS<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>StorageOS to pierwszy p\u0142atny produkt na li\u015bcie. Ma wersj\u0119 dla deweloper\u00f3w z ograniczon\u0105 wielko\u015bci\u0105 zarz\u0105dzanej pami\u0119ci masowej do 500 GB, ale liczba w\u0119z\u0142\u00f3w, jak s\u0105dz\u0119, nie jest ograniczona. W dziale sprzeda\u017cy powiedziano mi, \u017ce cena zaczyna si\u0119 od 125 USD miesi\u0119cznie za 1 TB, je\u015bli dobrze pami\u0119tam. Tam znajduje si\u0119 podstawowy panel monitorowania i wygodne CLI, ale z wydajno\u015bci\u0105 dzieje si\u0119 co\u015b dziwnego: w niekt\u00f3rych benchmarkach jest ca\u0142kiem przyzwoita, ale w te\u015bcie obci\u0105\u017ceniowym pr\u0119dko\u015b\u0107 zupe\u0142nie mi si\u0119 nie podoba\u0142a. Generalnie, nie wiem, co o tym powiedzie\u0107. Dlatego nie zag\u0142\u0119bia\u0142em si\u0119 w to szczeg\u00f3lnie. Nie ma tu kopii zapasowych off site i trzeba b\u0119dzie r\u00f3wnie\u017c u\u017cy\u0107 Velero z Restic do tworzenia kopii zapasowych wolumin\u00f3w. Dziwne, poniewa\u017c produkt jest p\u0142atny. A programi\u015bci nie palili si\u0119 do rozmowy na Slacku.<\/p>\n<p><\/p>\n<h3 id=\"robinhttpsrobinio\"><noindex><a rel=\"nofollow\" href=\"https:\/\/robin.io\/\">Robin<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>O Robinie dowiedzia\u0142em si\u0119 na Redditi od ich dyrektora technicznego. Wcze\u015bniej nigdy o nim nie s\u0142ysza\u0142em. Mo\u017ce to dlatego, \u017ce szuka\u0142em darmowych rozwi\u0105za\u0144, a Robin jest p\u0142atny. Maj\u0105 do\u015b\u0107 hojn\u0105 wersj\u0119 darmow\u0105 z 10 TB pami\u0119ci i trzema w\u0119z\u0142ami. Og\u00f3lnie rzecz bior\u0105c, produkt jest naprawd\u0119 godny uwagi i z fajnymi funkcjami. Posiada \u015bwietne CLI, a najlepsze jest to, \u017ce mo\u017cna wykona\u0107 zrzut i backup ca\u0142ej aplikacji (w selektorze zasob\u00f3w nazywa si\u0119 to wydaniami Helm lub \u201eflex apps\u201d), w tym wolumin\u00f3w i innych zasob\u00f3w, wi\u0119c mo\u017cna obej\u015b\u0107 si\u0119 bez Velero. I wszystko by\u0142oby wspania\u0142e, gdyby nie jeden ma\u0142y szczeg\u00f3\u0142: je\u015bli przywracasz (lub \u201eimportujesz\u201d, jak to nazywaj\u0105 w Robinie) aplikacj\u0119 na nowym klastrze \u2013 na przyk\u0142ad w przypadku przywracania po awarii \u2013 przywracanie oczywi\u015bcie dzia\u0142a, ale kontynuowanie backupu aplikacji jest niemo\u017cliwe. W tej wersji po prostu nie da si\u0119 tego zrobi\u0107, co potwierdzili deweloperzy. Jest to, delikatnie m\u00f3wi\u0105c, dziwne, zw\u0142aszcza bior\u0105c pod uwag\u0119 inne zalety (na przyk\u0142ad niesamowicie szybkie kopie zapasowe i przywracanie). Deweloperzy obiecuj\u0105 to naprawi\u0107 w nast\u0119pnej wersji. Wydajno\u015b\u0107 og\u00f3lnie jest dobra, ale zauwa\u017cy\u0142em pewn\u0105 dziwno\u015b\u0107: je\u015bli uruchomi\u0107 benchmark bezpo\u015brednio na woluminie pod\u0142\u0105czonym do hosta, pr\u0119dko\u015b\u0107 odczytu jest znacznie wy\u017csza ni\u017c w tym samym woluminie, lecz wewn\u0105trz poda. Wszystkie pozosta\u0142e wyniki s\u0105 identyczne, ale teoretycznie nie powinno by\u0107 r\u00f3\u017cnicy. Cho\u0107 nad tym pracuj\u0105, rozczarowa\u0142em si\u0119 problemem z przywracaniem i backupem \u2013 mia\u0142em wra\u017cenie, \u017ce w ko\u0144cu znalaz\u0142em odpowiednie rozwi\u0105zanie i by\u0142em got\u00f3w za to zap\u0142aci\u0107, gdybym potrzebowa\u0142 wi\u0119cej miejsca lub wi\u0119cej serwer\u00f3w.<\/p>\n<p><\/p>\n<h3 id=\"portworxhttpsportworxcom\"><noindex><a rel=\"nofollow\" href=\"https:\/\/portworx.com\/\">Portworx<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>Nie mam tu wiele do powiedzenia. To p\u0142atny produkt, jednocze\u015bnie klasyczny i drogi. Wydajno\u015b\u0107 jest po prostu niesamowita. Na razie to najlepszy wska\u017anik. W Slacku powiedziano mi, \u017ce cena zaczyna si\u0119 od 205 USD miesi\u0119cznie za w\u0119ze\u0142, co wskazano w GKE Marketplace Google. Nie wiem, czy by\u0142oby taniej, kupuj\u0105c bezpo\u015brednio. W ka\u017cdym razie, nie mog\u0119 sobie na to pozwoli\u0107, wi\u0119c by\u0142em bardzo rozczarowany, \u017ce licencja dewelopera (do 1 TB i 3 w\u0119z\u0142\u00f3w) jest praktycznie bezu\u017cyteczna w Kubernetes, chyba \u017ce zadowalasz si\u0119 statycznym przygotowaniem. Mia\u0142em nadziej\u0119, \u017ce licencja korporacyjna automatycznie zostanie zmieniona na poziom dewelopera na koniec okresu pr\u00f3bnego, ale tak si\u0119 nie sta\u0142o. Licencj\u0119 dewelopera mo\u017cna u\u017cywa\u0107 tylko bezpo\u015brednio z Dockerem, a konfiguracja w Kubernetes jest bardzo skomplikowana i ograniczona. Oczywi\u015bcie preferuj\u0119 oprogramowanie open source, ale gdybym mia\u0142 pieni\u0105dze, na pewno wybra\u0142bym Portworx. Jak na razie jego wydajno\u015b\u0107 jest po prostu niezr\u00f3wnana z innymi opcjami.<\/p>\n<p><\/p>\n<h3 id=\"linstorhttpswwwlinbitcomenlinstor\"><noindex><a rel=\"nofollow\" href=\"https:\/\/www.linbit.com\/en\/linstor\/\">Linstor<\/a><\/noindex><\/h3>\n<p><\/p>\n<p>Doda\u0142em t\u0119 sekcj\u0119 po publikacji posta, kiedy jeden z czytelnik\u00f3w zasugerowa\u0142, by spr\u00f3bowa\u0107 Linstor. Spr\u00f3bowa\u0142em i bardzo mi si\u0119 spodoba\u0142o! Ale musz\u0119 jeszcze to dok\u0142adniej zbada\u0107. Na razie mog\u0119 powiedzie\u0107, \u017ce wydajno\u015b\u0107 jest niez\u0142a (wyniki benchmark\u00f3w doda\u0142em poni\u017cej). W zasadzie uzyska\u0142em tak\u0105 sam\u0105 wydajno\u015b\u0107 jak dla dysku bezpo\u015brednio, zupe\u0142nie bez strat. (Nie pytajcie, dlaczego Portworx ma lepsze wyniki ni\u017c benchmark dysku bezpo\u015brednio. Nie mam poj\u0119cia. Magia, prawdopodobnie.) Tak wi\u0119c Linstor wydaje si\u0119 bardzo efektywny. Instalacja nie jest jako\u015b szczeg\u00f3lnie trudna, ale nie jest tak \u0142atwa jak inne opcje. Musia\u0142em najpierw zainstalowa\u0107 Linstor (modu\u0142 j\u0105dra i narz\u0119dzia\/us\u0142ugi) oraz skonfigurowa\u0107 LVM do thin provisioning i obs\u0142ugi snapshot\u00f3w poza Kubernetes, bezpo\u015brednio na ho\u015bcie, a nast\u0119pnie stworzy\u0107 zasoby potrzebne do korzystania z pami\u0119ci masowej w Kubernetes. Nie podoba\u0142o mi si\u0119, \u017ce nie dzia\u0142a\u0142o na CentOS i musia\u0142em u\u017cy\u0107 Ubuntu. Oczywi\u015bcie to nie jest wielka tragedia, ale jest troch\u0119 irytuj\u0105ce, poniewa\u017c w dokumentacji (kt\u00f3ra zreszt\u0105 jest \u015bwietna) wspomniano o kilku pakietach, kt\u00f3rych nie mo\u017cna znale\u017a\u0107 w podanych repozytoriach Epel. W Linstor s\u0105 snapshoty, ale nie ma kopii zapasowych off-site, wi\u0119c zn\u00f3w musia\u0142em u\u017cy\u0107 Velero z Restic do tworzenia kopii zapasowych wolumen\u00f3w. Wola\u0142bym mie\u0107 snapshoty zamiast kopii zapasowych na poziomie plik\u00f3w, ale to mo\u017cna znie\u015b\u0107, je\u015bli rozwi\u0105zanie jest wydajne i niezawodne. Linstor ma otwarty kod \u017ar\u00f3d\u0142owy, ale dost\u0119pne s\u0105 p\u0142atne wsparcie. Je\u015bli dobrze rozumiem, mo\u017cna go u\u017cywa\u0107 bez ogranicze\u0144, nawet je\u015bli nie masz umowy o wsparcie, ale to trzeba potwierdzi\u0107. Nie wiem, na ile Linstor jest sprawdzony dla Kubernetes, ale sam poziom przechowywania znajduje si\u0119 poza Kubernetes i, s\u0105dz\u0105c po wszystkim, rozwi\u0105zanie nie pojawi\u0142o si\u0119 wczoraj, wi\u0119c prawdopodobnie zosta\u0142o ju\u017c przetestowane w warunkach rzeczywistych. Czy istnieje jakie\u015b rozwi\u0105zanie, kt\u00f3re sk\u0142oni\u0142oby mnie do przemy\u015blenia sprawy i powrotu do Kubernetes? Nie wiem, nie jestem pewien. Musz\u0119 jeszcze to zbada\u0107, sprawdzi\u0107 replikacj\u0119. Zobaczymy. Ale pierwsze wra\u017cenie jest pozytywne. Zdecydowanie wola\u0142bym u\u017cywa\u0107 w\u0142asnych klastr\u00f3w Kubernetes zamiast Heroku, aby zyska\u0107 wi\u0119cej swobody i nauczy\u0107 si\u0119 czego\u015b nowego. Poniewa\u017c instalacja Linstor nie jest tak prosta jak w przypadku innych, wkr\u00f3tce napisz\u0119 o tym post.<\/p>\n<p><\/p>\n<h3 id=\"benchmarki\">Benchmarki<\/h3>\n<p><\/p>\n<p>Niestety, zachowa\u0142em ma\u0142o danych por\u00f3wnawczych, poniewa\u017c nie pomy\u015bla\u0142em, \u017ce b\u0119d\u0119 o tym pisa\u0107. Mam tylko wyniki podstawowych benchmark\u00f3w fio i tylko dla klastr\u00f3w z jednym w\u0119z\u0142em, wi\u0119c obecnie nie mam danych dla konfiguracji replikowanych. Jednak na podstawie tych wynik\u00f3w mo\u017cna uzyska\u0107 przybli\u017cone wyobra\u017cenie o tym, czego mo\u017cna si\u0119 spodziewa\u0107 od ka\u017cdej opcji, poniewa\u017c por\u00f3wnywa\u0142em je na tych samych serwerach w chmurze, 4 rdzenie, 16 GB pami\u0119ci RAM, z dodatkowym dyskiem 100 GB do testowanych wolumen\u00f3w. Przeprowadzi\u0142em benchmarki trzykrotnie dla ka\u017cdego rozwi\u0105zania i obliczy\u0142em \u015bredni wynik, dodatkowo resetuj\u0105c ustawienia serwera dla ka\u017cdego produktu. Wszystko to nie jest naukowe, po prostu aby da\u0107 wam og\u00f3lny obraz. W innych testach kopiowa\u0142em 38 GB zdj\u0119\u0107 i film\u00f3w z wolumenu i na wolumin, aby przetestowa\u0107 odczyt i zapis, ale niestety nie zachowa\u0142em tych danych. Kr\u00f3tko m\u00f3wi\u0105c: Portworx by\u0142 znacznie szybszy.<\/p>\n<p><\/p>\n<p>Do benchmarku wolumen\u00f3w u\u017cy\u0142em tego manifestu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kind: PersistentVolumeClaim\napiVersion: v1\nmetadata:\n  name: dbench\nspec:\n  storageClassName: ...\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n---\napiVersion: batch\/v1\nkind: Job\nmetadata:\n  name: dbench\nspec:\n  template:\n    spec:\n      containers:\n      - name: dbench\n        image: sotoaster\/dbench:latest\n        imagePullPolicy: IfNotPresent\n        env:\n          - name: DBENCH_MOUNTPOINT\n            value: \/data\n          - name: FIO_SIZE\n            value: 1G\n        volumeMounts:\n        - name: dbench-pv\n          mountPath: \/data\n      restartPolicy: Never\n      volumes:\n      - name: dbench-pv\n        persistentVolumeClaim:\n          claimName: dbench\n  backoffLimit: 4<\/code><\/pre>\n<p><\/p>\n<p>Najpierw stworzy\u0142em wolumen z odpowiedni\u0105 klas\u0105 magazynu, a nast\u0119pnie uruchomi\u0142em zadanie z fio w tle. Wzi\u0105\u0142em 1 GB, aby oszacowa\u0107 wydajno\u015b\u0107 i nie czeka\u0107 zbyt d\u0142ugo. Oto wyniki:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/nm\/i_\/4h\/nmi_4holmvcqehuigcoespgeure.png\"><img decoding=\"async\" alt=\"Przechowalnie w Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor\" src=\"\/wp-content\/uploads\/2019\/08\/41e91c4e299759817bba6a2a8e9ff14e.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Zaznaczy\u0142em najlepsz\u0105 warto\u015b\u0107 dla ka\u017cdego wska\u017anika na zielono, a najgorsz\u0105 na czerwono.<\/p>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Podsumowanie<\/h3>\n<p><\/p>\n<p>Jak wida\u0107, w wi\u0119kszo\u015bci przypadk\u00f3w Portworx wypad\u0142 lepiej od innych. Ale dla mnie jest zbyt drogi. Nie wiem, ile kosztuje Robin, ale maj\u0105 \u015bwietn\u0105 wersj\u0119 darmow\u0105, wi\u0119c je\u015bli potrzebujesz p\u0142atnego produktu, mo\u017cesz spr\u00f3bowa\u0107 (mam nadziej\u0119, \u017ce wkr\u00f3tce naprawi\u0105 problemy z przywracaniem i kopiami zapasowymi). Z trzech darmowych mia\u0142em najmniej problem\u00f3w z OpenEBS, ale jego wydajno\u015b\u0107 jest kiepska. Szkoda, \u017ce nie zachowa\u0142em wi\u0119cej wynik\u00f3w, ale mam nadziej\u0119, \u017ce przedstawione liczby i moje komentarze pomog\u0105.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/464987\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435!. \u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445 \u043e\u0434\u0438\u043d \u0438\u0437 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c Linstor (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043d \u0441\u0430\u043c \u043d\u0430\u0434 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442), \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0440\u0430\u0437\u0434\u0435\u043b \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438. \u0415\u0449\u0435 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0441\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u0441\u0434\u0430\u043b\u0441\u044f \u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 Kubernetes (\u0432\u043e \u0432\u0441\u044f\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u043e\u043a\u0430). \u0411\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Heroku. \u041f\u043e\u0447\u0435\u043c\u0443? [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0432 Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Magazyny w Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0432 Kubernetes: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor | ProHoster","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/hranilishha-v-kubernetes-openebs-vs-rook-ceph-vs-rancher-longhorn-vs-storageos-vs-robin-vs-portworx-vs-linstor","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:10+00:00","article:modified_time":"2019-10-31T19:18:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37528","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:13:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:25:26","updated":"2026-01-23 18:13:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=37528"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37528\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/28163"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=37528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=37528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=37528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}