{"id":40729,"date":"2020-02-03T14:42:16","date_gmt":"2020-02-03T11:42:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage"},"modified":"2020-02-03T14:42:16","modified_gmt":"2020-02-03T11:42:16","slug":"kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage","title":{"rendered":"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ten artyku\u0142 ma na celu pom\u00f3c w wyborze odpowiedniego rozwi\u0105zania oraz zrozumieniu r\u00f3\u017cnic pomi\u0119dzy takimi systemami SDS jak Gluster, Ceph i Vstorage (Virtuozzo).<\/p>\n<p>W tek\u015bcie znajduj\u0105 si\u0119 odniesienia do artyku\u0142\u00f3w z bardziej szczeg\u00f3\u0142owym om\u00f3wieniem poszczeg\u00f3lnych problem\u00f3w, dlatego opisy b\u0119d\u0105 maksymalnie zwi\u0119z\u0142e, koncentruj\u0105c si\u0119 na kluczowych aspektach bez zb\u0119dnych s\u0142\u00f3w i wprowadzenia, kt\u00f3re mo\u017cna \u0142atwo znale\u017a\u0107 w internecie. <\/p>\n<p>Rzeczywi\u015bcie, poruszane tematy wymagaj\u0105 odpowiedniego tonu tekstu, ale w dzisiejszym \u015bwiecie coraz wi\u0119cej os\u00f3b nie lubi zbyt du\u017co czyta\u0107))), dlatego mo\u017cna szybko przeszuka\u0107 i podj\u0105\u0107 decyzj\u0119, a je\u015bli co\u015b jest niejasne, mo\u017cna skorzysta\u0107 z odno\u015bnik\u00f3w lub poszuka\u0107 niezrozumia\u0142ych s\u0142\u00f3w))), a ten artyku\u0142 stanowi przezroczysty wst\u0119p do tych g\u0142\u0119bokich temat\u00f3w, pokazuj\u0105c kluczowe punkty ka\u017cdego rozwi\u0105zania.<\/p>\n<h3>Gluster<\/h3>\n<p>\nZacznijmy od Gluster, kt\u00f3ry jest szeroko stosowany przez producent\u00f3w hiper-zwirtualizowanych platform z SDS opartych na open source do \u015brodowisk wirtualnych. Mo\u017cna go znale\u017a\u0107 na stronie RedHat w sekcji storage, gdzie oferowane s\u0105 dwa warianty SDS: Gluster lub Ceph.<\/p>\n<p>Gluster sk\u0142ada si\u0119 z zestawu translator\u00f3w \u2013 us\u0142ug, kt\u00f3re wykonuj\u0105 wszystkie zadania zwi\u0105zane z dystrybucj\u0105 plik\u00f3w itd. Brick to us\u0142uga obs\u0142uguj\u0105ca jeden dysk, Volume \u2013 to tom (pul) \u0142\u0105cz\u0105cy te bricki. Nast\u0119pnie znajduje si\u0119 us\u0142uga dystrybucji plik\u00f3w za pomoc\u0105 funkcji DHT (distributed hash table). Us\u0142uga Sharding nie b\u0119dzie opisana tutaj, poniewa\u017c w poni\u017cej zamieszczonych linkach b\u0119d\u0105 dost\u0119pne opisy zwi\u0105zanych z ni\u0105 problem\u00f3w.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/0c54588b5b09c9069ffbd0c5161c5e34.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodczas zapisu plik ca\u0142kowicie trafia do bricka, a jego kopia jest r\u00f3wnolegle zapisywana na bricku na drugim serwerze. Nast\u0119pnie drugi plik b\u0119dzie zapisywany w drugiej grupie sk\u0142adaj\u0105cej si\u0119 z dw\u00f3ch brick\u00f3w (lub wi\u0119cej) na r\u00f3\u017cnych serwerach.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <br \/>\nJe\u015bli pliki maj\u0105 mniej wi\u0119cej ten sam rozmiar i tom b\u0119dzie sk\u0142ada\u0142 si\u0119 tylko z jednej grupy, wszystko dzia\u0142a w porz\u0105dku, ale w innych warunkach wyst\u0105pi\u0105 nast\u0119puj\u0105ce problemy: <\/p>\n<ul>\n<li>miejsce w grupach jest wykorzystywane nier\u00f3wnomiernie, co zale\u017cy od rozmiar\u00f3w plik\u00f3w. Je\u015bli w grupie nie ma wystarczaj\u0105co miejsca na zapisanie pliku \u2014 otrzymasz b\u0142\u0105d, plik nie zostanie zapisany i nie zostanie ponownie przypisany do innej grupy;<\/li>\n<li>podczas zapisu jednego pliku IO odbywa si\u0119 tylko w jednej grupie, inne s\u0105 nieaktywne;<\/li>\n<li>nie mo\u017cna uzyska\u0107 IO dla ca\u0142ego tomu przy zapisie jednego pliku;<\/li>\n<li>Og\u00f3lna koncepcja wydaje si\u0119 mniej wydajna z powodu braku rozdzielenia danych na bloki, co umo\u017cliwia \u0142atwiejsze balansowanie i rozwi\u0105zanie problemu r\u00f3wnomiernego rozk\u0142adu, a nie jak obecnie, gdy plik jest w ca\u0142o\u015bci umieszczany w bloku.<\/li>\n<\/ul>\n<p>\nZ oficjalnego opisu <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gluster.org\/en\/latest\/Quick-Start-Guide\/Architecture\/\">architektury<\/a><\/noindex> pojawia si\u0119 r\u00f3wnie\u017c zrozumienie, \u017ce gluster dzia\u0142a jak magazyn plik\u00f3w na klasycznym sprz\u0119towym RAID. Podejmowano pr\u00f3by rozwijania (shardingu) plik\u00f3w na bloki, ale jest to wszystko dodatkowe, co narzuca straty wydajno\u015bci do ju\u017c istniej\u0105cego podej\u015bcia architektonicznego, a tak\u017ce stosowanie takich og\u00f3lnie dost\u0119pnych komponent\u00f3w z ograniczeniem wydajno\u015bci jak Fuse. Brakuje us\u0142ug metadanych, co ogranicza mo\u017cliwo\u015bci wydajno\u015bci i odporno\u015bci na awarie magazynu podczas rozdzielania plik\u00f3w na bloki. Lepsze wyniki wydajno\u015bci mo\u017cna zaobserwowa\u0107 w konfiguracji \u201eDistributed Replicated\u201d, a liczba w\u0119z\u0142\u00f3w powinna wynosi\u0107 co najmniej 6, aby zorganizowa\u0107 niezawodn\u0105 replik\u0119 3 z optymalnym rozk\u0142adem obci\u0105\u017cenia.<\/p>\n<p>Te wnioski s\u0105 r\u00f3wnie\u017c zwi\u0105zane z opisem do\u015bwiadcze\u0144 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/croccloudteam\/blog\/353666\/\">Gluster<\/a><\/noindex> i podczas por\u00f3wnania z <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/croccloudteam\/blog\/430474\/\">Ceph<\/a><\/noindex>, a tak\u017ce istnieje opis do\u015bwiadcze\u0144, kt\u00f3re prowadz\u0105 do zrozumienia tej bardziej wydajnej i bardziej niezawodnej konfiguracji <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/forum\/general\/13316001\">\u201eReplicated Distributed\u201d.<\/a><\/noindex><br \/>\n<img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/6868ddf69e18bec0b50ae5aeba74440d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa obrazku przedstawione jest rozk\u0142ad obci\u0105\u017cenia podczas zapisu dw\u00f3ch plik\u00f3w, gdzie kopie pierwszego pliku rozmieszczane s\u0105 na trzech pierwszych serwerach, kt\u00f3re s\u0105 po\u0142\u0105czone w grupie volume 0, a trzy kopie drugiego pliku s\u0105 umieszczane w drugiej grupie volume1 z trzech serwer\u00f3w. Ka\u017cdy serwer ma jeden dysk.<\/p>\n<p>Og\u00f3lny wniosek jest taki, \u017ce mo\u017cna u\u017cywa\u0107 Gluster, ale z zrozumieniem, \u017ce b\u0119d\u0105 ograniczenia w wydajno\u015bci i odporno\u015bci na awarie, kt\u00f3re stwarzaj\u0105 trudno\u015bci w okre\u015blonych warunkach rozwi\u0105za\u0144 hiperkonwergentnych, gdzie zasoby s\u0105 r\u00f3wnie\u017c potrzebne do obci\u0105\u017ce\u0144 obliczeniowych \u015brodowisk wirtualnych. <\/p>\n<p>S\u0105 r\u00f3wnie\u017c pewne wska\u017aniki wydajno\u015bci Gluster, kt\u00f3re mo\u017cna osi\u0105gn\u0105\u0107 w okre\u015blonych warunkach, ograniczaj\u0105c si\u0119 w <noindex><a rel=\"nofollow\" href=\"http:\/\/moo.nac.uci.edu\/~hjm\/Performance_in_a_Gluster_Systemv6F.pdf\"> odporno\u015bci na awarie.<\/a><\/noindex><\/p>\n<h3>Ceph<\/h3>\n<p>\nTeraz rozwa\u017cmy Ceph z opisu architektury, kt\u00f3re uda\u0142o mi si\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/313644\/\">znale\u017a\u0107.<\/a><\/noindex> Jest r\u00f3wnie\u017c por\u00f3wnanie pomi\u0119dzy <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/croccloudteam\/blog\/430474\/\">Glusterfs a Ceph<\/a><\/noindex>, gdzie mo\u017cna od razu zrozumie\u0107, \u017ce Ceph najlepiej wdra\u017ca\u0107 na oddzielnych serwerach, poniewa\u017c jego us\u0142ugom potrzebne s\u0105 wszystkie zasoby sprz\u0119towe przy obci\u0105\u017ceniach. <\/p>\n<p>Architektura <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/mimic\/architecture\/\">Ceph<\/a><\/noindex> jest bardziej skomplikowany ni\u017c Gluster i posiada takie us\u0142ugi jak us\u0142ugi metadanych, ale ca\u0142y zestaw komponent\u00f3w jest do\u015b\u0107 skomplikowany i nie bardzo elastyczny do u\u017cycia w rozwi\u0105zaniach wirtualizacyjnych. Dane s\u0105 przechowywane w blokach, co wygl\u0105da na bardziej wydajne, ale w hierarchii wszystkich us\u0142ug (komponent\u00f3w) wyst\u0119puj\u0105 straty i op\u00f3\u017anienia przy okre\u015blonych obci\u0105\u017ceniach i warunkach awaryjnych, na przyk\u0142ad nast\u0119puj\u0105ce. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/431536\/\">artyku\u0142.<\/a><\/noindex><\/p>\n<p>Z opisu architektury sercem systemu jest CRUSH, dzi\u0119ki kt\u00f3remu wybierane jest miejsce na przechowywanie danych. Nast\u0119pnie wchodzi PG \u2014 jest to najbardziej skomplikowana abstrakcja (logiczna grupa) do zrozumienia. PG s\u0105 potrzebne, aby CRUSH by\u0142 bardziej efektywny. G\u0142\u00f3wnym celem PG jest grupowanie obiekt\u00f3w w celu zmniejszenia zu\u017cycia zasob\u00f3w, zwi\u0119kszenia wydajno\u015bci i skalowalno\u015bci. Adresowanie obiekt\u00f3w bezpo\u015brednio, indywidualnie, bez ich grupowania w PG by\u0142oby bardzo kosztowne. OSD \u2013 to us\u0142uga dla ka\u017cdego pojedynczego dysku.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/b7d59066a01db9bbb55bbd87c6e5053a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/a86622bc051ab820d42a8aa08a3fc759.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKlaster mo\u017ce mie\u0107 jeden lub wi\u0119cej pul danych o r\u00f3\u017cnych przeznaczeniach i z r\u00f3\u017cnymi ustawieniami. Puli dziel\u0105 si\u0119 na grupy rozmieszczania. W grupach rozmieszczania przechowywane s\u0105 obiekty, do kt\u00f3rych maj\u0105 dost\u0119p klienci. Na tym poziomie logicznym si\u0119 ko\u0144czy, a zaczyna fizyczny, poniewa\u017c ka\u017cda grupa rozmieszczania jest przypisana do jednego g\u0142\u00f3wnego dysku i kilku dysk\u00f3w-replik (ich liczba zale\u017cy od czynnika replikacji puli). Innymi s\u0142owy, na poziomie logicznym obiekt jest przechowywany w konkretnej grupie rozmieszczania, a na poziomie fizycznym \u2014 na dyskach, kt\u00f3re s\u0105 do niej przypisane. Przy tym dyski fizycznie mog\u0105 znajdowa\u0107 si\u0119 w r\u00f3\u017cnych w\u0119z\u0142ach lub nawet w r\u00f3\u017cnych centrach danych.<\/p>\n<p>W tej schemacie grupy umieszczania wygl\u0105daj\u0105 jak niezb\u0119dny poziom dla elastyczno\u015bci ca\u0142ego rozwi\u0105zania, ale jednocze\u015bnie jak zb\u0119dne ogniwo w tym \u0142a\u0144cuchu, co nieuchronnie nasuwa my\u015bli o utracie wydajno\u015bci. Na przyk\u0142ad, przy zapisie danych system musia\u0142by dzieli\u0107 je na te grupy, a potem na poziomie fizycznym na g\u0142\u00f3wny dysk i na dyski dla replik. To znaczy, \u017ce funkcja haszuj\u0105ca dzia\u0142a podczas wyszukiwania i wstawiania obiekt\u00f3w, ale istnieje efekt uboczny \u2013 s\u0105 to bardzo du\u017ce wydatki i ograniczenia przy przebudowie hasha (przy dodawaniu, usuwaniu dysku). Innym problemem hasha jest \u015bci\u015ble ustalone rozmieszczenie danych, kt\u00f3rych nie mo\u017cna zmienia\u0107. To znaczy, \u017ce je\u015bli jaki\u015b dysk do\u015bwiadcza zwi\u0119kszonego obci\u0105\u017cenia, system nie ma mo\u017cliwo\u015bci zapisania danych na innym dysku, poniewa\u017c funkcja haszuj\u0105ca obliguje do rozmieszczenia danych wed\u0142ug ustalonej zasady, niezale\u017cnie od tego, jak \u017ale dysk sobie radzi, dlatego Ceph zu\u017cywa du\u017co pami\u0119ci przy przebudowie grup PG w przypadku samonaprawy lub zwi\u0119kszania pojemno\u015bci. Wniosek jest taki, \u017ce Ceph dzia\u0142a dobrze (cho\u0107 powoli), ale tylko wtedy, gdy nie ma skalowania, awarii i aktualizacji.<\/p>\n<p>Oczywi\u015bcie istniej\u0105 sposoby na zwi\u0119kszenie wydajno\u015bci poprzez cache'owanie i tiering pami\u0119ci podr\u0119cznej, ale wymaga to dobrego sprz\u0119tu i wci\u0105\u017c b\u0119d\u0105 wyst\u0119powa\u0107 straty. Generalnie Ceph wydaje si\u0119 bardziej kusz\u0105cy ni\u017c Gluster w produktach produkcyjnych. R\u00f3wnie\u017c korzystaj\u0105c z tych produkt\u00f3w, nale\u017cy uwzgl\u0119dni\u0107 istotny czynnik \u2013 to wysoki poziom kompetencji, do\u015bwiadczenia i profesjonalizmu ze szczeg\u00f3lnym naciskiem na Linuxa, poniewa\u017c bardzo wa\u017cne jest, aby wszystko by\u0142o poprawnie wdro\u017cone, skonfigurowane i utrzymane, co nak\u0142ada jeszcze wi\u0119ksz\u0105 odpowiedzialno\u015b\u0107 i obci\u0105\u017cenie na administratora. <\/p>\n<h3>Vstorage<\/h3>\n<p>\nArchitektura staje si\u0119 jeszcze bardziej interesuj\u0105ca w przypadku <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/virtuozzo\/blog\/334724\/\">Virtuozzo storage (Vstorage)<\/a><\/noindex>, kt\u00f3r\u0105 mo\u017cna u\u017cywa\u0107 wsp\u00f3lnie z hipernadzorc\u0105 na tych samych w\u0119z\u0142ach, na tym samym <noindex><a rel=\"nofollow\" href=\"http:\/\/samag.ru\/archive\/article\/3794\">sprz\u0119cie<\/a><\/noindex>, ale bardzo wa\u017cne jest, aby wszystko poprawnie skonfigurowa\u0107, aby osi\u0105gn\u0105\u0107 dobr\u0105 wydajno\u015b\u0107. To znaczy, \u017ce wdro\u017cenie takiego produktu z pude\u0142ka na jakiejkolwiek konfiguracji, bez uwzgl\u0119dnienia rekomendacji zgodnie z architektur\u0105, b\u0119dzie bardzo \u0142atwe, ale nie wydajne.<\/p>\n<p>Jakie us\u0142ugi mog\u0105 wsp\u00f3\u0142istnie\u0107 w przechowywaniu obok hypervisora kvm-qemu? To zaledwie kilka us\u0142ug, w kt\u00f3rych znalaz\u0142a si\u0119 kompaktowa, optymalna hierarchia komponent\u00f3w: us\u0142uga klienta montowana przez FUSE (zmodyfikowana, nie open source), us\u0142uga metadanych MDS (us\u0142uga metadanych), us\u0142uga blok\u00f3w danych Chunk service, kt\u00f3ra na poziomie fizycznym odpowiada jednemu dyskowi i na tym koniec. Je\u015bli chodzi o pr\u0119dko\u015b\u0107, optymalnie u\u017cywa\u0107 zduplikowan\u0105 schem\u0119 z dwoma replikami, ale je\u015bli wykorzysta\u0107 pami\u0119\u0107 podr\u0119czn\u0105 i logi na dyskach SSD, to kodowanie odporne na zak\u0142\u00f3cenia (erase coding lub raid6) mo\u017cna ca\u0142kiem nie\u017ale przyspieszy\u0107 w hybrydowym schemacie lub nawet lepiej na all flash. Przy EC (erase coding) pewnym minusem jest to, \u017ce przy zmianie jednego bloku danych konieczne jest przeliczenie sum parzysto\u015bci. Aby obej\u015b\u0107 straty przy tej operacji, Ceph zapisuje w EC w trybie od\u0142o\u017conym, co mo\u017ce prowadzi\u0107 do problem\u00f3w z wydajno\u015bci\u0105 przy pewnych zapytaniach, gdy na przyk\u0142ad potrzeba obliczy\u0107 wszystkie bloki, a w przypadku Virtuozzo Storage zapis zmienionych blok\u00f3w odbywa si\u0119 przy u\u017cyciu podej\u015bcia 'log-structured file system', co minimalizuje koszty oblicze\u0144 parzysto\u015bci. Aby przybli\u017cy\u0107 opcje przyspieszenia pracy przy EC i bez niego, s\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.virtuozzo.com\/products\/virtuozzo-storage\/storage-calculator\">kalkulator.<\/a><\/noindex> \u2013 liczby mo\u017cna otrzyma\u0107 przybli\u017cone, zale\u017cy to od wsp\u00f3\u0142czynnika dok\u0142adno\u015bci producenta sprz\u0119tu, ale wynik oblicze\u0144 bardzo pomaga w zaplanowaniu konfiguracji.<\/p>\n<p>Prosta schemat komponent\u00f3w przechowywania nie oznacza, \u017ce te komponenty nie poch\u0142aniaj\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.virtuozzo.com\/virtuozzo_7_installation_guide\/preparing-for-installation\/planning-storage-cli.html#hardware-requirements\">zasob\u00f3w sprz\u0119towych,<\/a><\/noindex> ale je\u015bli wcze\u015bniej wszystkie wydatki zostan\u0105 dok\u0142adnie obliczone, mo\u017cna liczy\u0107 na wsp\u00f3\u0142prac\u0119 obok hypervisora. <br \/>\nIstnieje schemat por\u00f3wnania zu\u017cycia zasob\u00f3w sprz\u0119towych przez us\u0142ugi Ceph i Virtuozzo storage.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/27de0ab0cc61c2fab6d741bc3105b6cc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli wcze\u015bniej por\u00f3wnywanie Gluster i Ceph mo\u017cna by\u0142o przeprowadzi\u0107 wed\u0142ug starych artyku\u0142\u00f3w, wybieraj\u0105c najwa\u017cniejsze w\u0105tki, to z Virtuozzo jest trudniej. Artyku\u0142\u00f3w o tym produkcie nie jest tak du\u017co i informacje mo\u017cna czerpa\u0107 tylko z dokumentacji na <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.virtuozzo.com\/master\/index.html\">angielskim<\/a><\/noindex> lub po rosyjsku, je\u015bli rozwa\u017ca\u0107 Vstorage jako magazyn u\u017cywany w niekt\u00f3rych rozwi\u0105zaniach hiperzwirtualnych w takich firmach jak <noindex><a rel=\"nofollow\" href=\"http:\/\/rosplatforma.ru\/#downloads\">Rospplatforma<\/a><\/noindex> i Acronis.<\/p>\n<p>Postaram si\u0119 pom\u00f3c w opisaniu tej architektury, wi\u0119c tekst b\u0119dzie nieco d\u0142u\u017cszy, ale aby samodzielnie zrozumie\u0107 dokumentacj\u0119, potrzebujesz du\u017co czasu, a posiadan\u0105 dokumentacj\u0119 mo\u017cna wykorzysta\u0107 jedynie jako podr\u0119cznik, przegl\u0105daj\u0105c spis tre\u015bci lub szukaj\u0105c po s\u0142owach kluczowych. <\/p>\n<p>Rozwa\u017cmy proces zapisu w hybrydowej konfiguracji sprz\u0119towej z powy\u017cej opisanymi komponentami: zapis rozpoczyna si\u0119 na tym w\u0119\u017ale, z kt\u00f3rego zosta\u0142 zainicjowany przez klienta (us\u0142uga punktu montowania FUSE), jednak komponent g\u0142\u00f3wnej us\u0142ugi metadanych (MDS) oczywi\u015bcie skieruje klienta bezpo\u015brednio do odpowiedniej us\u0142ugi chunk (us\u0142ugi przechowywania blok\u00f3w CS), co oznacza, \u017ce MDS nie bierze udzia\u0142u w procesie zapisu, a jedynie kieruje do odpowiedniego serwisu chunk. Og\u00f3lnie mo\u017cna por\u00f3wna\u0107 zapis do rozlewania wody po beczkach. Ka\u017cda beczka to blok danych o pojemno\u015bci 256MB.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00f3tka por\u00f3wnanie architektury SDS lub poszukiwanie odpowiedniej platformy do przechowywania (GlusterVsCephVsVirtuozzoStorage)\" src=\"\/wp-content\/uploads\/2020\/02\/8f10333f1573226fbb50a40377eafc93.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo znaczy, \u017ce jeden dysk to pewna liczba takich beczek, wi\u0119c obj\u0119to\u015b\u0107 dysku dzielona przez 256MB. Ka\u017cda kopia jest rozlewana na jeden w\u0119ze\u0142, druga niemal r\u00f3wnocze\u015bnie na inny w\u0119ze\u0142 itd. Je\u015bli mamy trzy repliki i s\u0105 dyski SSD do buforowania (do odczytu i dziennik\u00f3w zapisu), to potwierdzenie zapisu nast\u0119puje po zapisaniu dziennika w SSD, a r\u00f3wnoleg\u0142e przesy\u0142anie z SSD kontynuuje si\u0119 na HDD w tle. W przypadku trzech replik zatwierdzenie zapisu nast\u0119puje po potwierdzeniu od SSD trzeciego w\u0119z\u0142a. Mo\u017ce si\u0119 wydawa\u0107, \u017ce sum\u0119 pr\u0119dko\u015bci zapisu trzech SSD mo\u017cna podzieli\u0107 na trzy i otrzymamy pr\u0119dko\u015b\u0107 zapisu jednej repliki, ale zapis kopii odbywa si\u0119 r\u00f3wnolegle, a op\u00f3\u017anienie sieci zwykle jest wy\u017csze ni\u017c w przypadku SSD, a w rzeczywisto\u015bci wydajno\u015b\u0107 zapisu b\u0119dzie zale\u017ca\u0142a od sieci. W zwi\u0105zku z tym, aby zobaczy\u0107 rzeczywiste IOPS nale\u017cy prawid\u0142owo obci\u0105\u017cy\u0107 ca\u0142y Vstorage zgodnie z <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.virtuozzo.com\/pdf\/virtuozzo_infrastructure_platform_3_benchmarking_guide.pdf\">metodyk\u0105<\/a><\/noindex>, to znaczy testowa\u0107 rzeczywiste obci\u0105\u017cenie, a nie pami\u0119\u0107 i cache, gdzie nale\u017cy uwzgl\u0119dni\u0107 odpowiedni rozmiar bloku danych, liczb\u0119 w\u0105tk\u00f3w itd. <\/p>\n<p>Wymieniony powy\u017cej dziennik zapisu na SSD dzia\u0142a tak, \u017ce gdy tylko dane do niego trafi\u0105, s\u0105 natychmiast odczytywane przez serwis i zapisywane na HDD. Serwis\u00f3w metadanych (MDS) jest kilka na klaster, a ich liczba jest okre\u015blana przez kworum, kt\u00f3re dzia\u0142a wed\u0142ug algorytmu Paxos. Z punktu widzenia klienta punkt montowania FUSE to folder pami\u0119ci klastra, kt\u00f3ry jest jednocze\u015bnie widoczny dla wszystkich w\u0119z\u0142\u00f3w klastra. Ka\u017cdy w\u0119ze\u0142 ma zamontowanego klienta na tej zasadzie, dlatego ka\u017cdemu w\u0119z\u0142owi dost\u0119pne jest to przechowywanie.<\/p>\n<p>Dla wydajno\u015bci ka\u017cdego z powy\u017cej opisanych podej\u015b\u0107 bardzo wa\u017cne jest, na etapie planowania i wdra\u017cania, prawid\u0142owe skonfigurowanie sieci, w kt\u00f3rej zbalansowanie odbywa si\u0119 dzi\u0119ki agregacji oraz odpowiednio dobranej przepustowo\u015bci kana\u0142u sieciowego. W agregacji kluczowe jest w\u0142a\u015bciwe dobranie trybu haszowania i rozmiar\u00f3w ramki. Istnieje r\u00f3wnie\u017c znacz\u0105ca r\u00f3\u017cnica w por\u00f3wnaniu do powy\u017cej opisanych SDS, jest to FUSE z technologi\u0105 fast path w Virtuozzo Storage. Ten, opr\u00f3cz zmodyfikowanego FUSE, w przeciwie\u0144stwie do innych rozwi\u0105za\u0144 open source, znacznie zwi\u0119ksza IOPS i pozwala na skalowanie zar\u00f3wno horyzontalne, jak i pionowe. W por\u00f3wnaniu do wy\u017cej opisanych architektur, ta wydaje si\u0119 by\u0107 bardziej wydajna, ale za t\u0119 przyjemno\u015b\u0107 nale\u017cy oczywi\u015bcie wykupi\u0107 licencje, w przeciwie\u0144stwie do Ceph i Gluster. <\/p>\n<p>Podsumowuj\u0105c, mo\u017cna wyr\u00f3\u017cni\u0107 czo\u0142ow\u0105 tr\u00f3jk\u0119: pierwsze miejsce pod wzgl\u0119dem wydajno\u015bci i niezawodno\u015bci zajmuje Virtuozzo Storage, drugie Ceph, a trzecie Gluster. <\/p>\n<p>Kryteria, wed\u0142ug kt\u00f3rych wybrano Virtuozzo Storage: to optymalny zestaw komponent\u00f3w architektury, zmodyfikowany FUSE z fast path, elastyczny zestaw konfiguracji sprz\u0119towej, mniejsze zu\u017cycie zasob\u00f3w oraz mo\u017cliwo\u015b\u0107 wsp\u00f3\u0142dzielenia z obliczeniami\/wirtualizacj\u0105, co czyni go idealnym do rozwi\u0105za\u0144 hiper-konwergentnych, w sk\u0142ad kt\u00f3rych wchodzi. Drugie miejsce zajmuje Ceph, poniewa\u017c jest to bardziej wydajna architektura w por\u00f3wnaniu do Gluster, dzi\u0119ki operowaniu blokami oraz bardziej elastycznymi scenariuszami i mo\u017cliwo\u015bci\u0105 pracy w bardziej rozbudowanych klastrach.<\/p>\n<p>W planach jest ch\u0119\u0107 napisania por\u00f3wnania mi\u0119dzy vSAN, Space Direct Storage, Vstorage i Nutanix Storage, testowania Vstorage na sprz\u0119cie HPE, Huawei, a tak\u017ce scenariuszy integracji Vstorage z zewn\u0119trznymi systemami pami\u0119ci masowej, dlatego je\u015bli artyku\u0142 przypad\u0142 Ci do gustu, fajnie by\u0142oby uzyska\u0107 od Ciebie opinie, kt\u00f3re mog\u0142yby wzmocni\u0107 motywacj\u0119 do pisania nowych artyku\u0142\u00f3w z uwzgl\u0119dnieniem Twoich uwag i sugestii.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/486392\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 SDS \u043a\u0430\u043a Gluster, Ceph \u0438 Vstorage (Virtuozzo). \u0412 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0435\u043c \u0442\u0435\u0445 \u0438\u043b\u0438 \u0438\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043a\u0440\u0430\u0442\u043a\u0438\u043c\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0435\u0439 \u0432\u043e\u0434\u044b \u0438 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":40730,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-40729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 SDS \u043a\u0430\u043a Gluster, Ceph \u0438 Vstorage (Virtuozzo). \u0412 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435.\" \/>\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\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b SDS \u0438\u043b\u0438 \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f (GlusterVsCephVsVirtuozzoStorage) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 SDS \u043a\u0430\u043a Gluster, Ceph \u0438 Vstorage (Virtuozzo). \u0412 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage\" \/>\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=\"2020-02-03T11:42:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-03T11:42:16+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\udd47Kr\u00f3tka analiza architektury SDS lub poszukiwanie odpowiedniej platformy pami\u0119ci masowej (GlusterVsCephVsVirtuozzoStorage) | ProHoster","description":"Artyku\u0142 ten zosta\u0142 napisany, aby pom\u00f3c w wyborze odpowiedniego rozwi\u0105zania oraz zrozumieniu r\u00f3\u017cnic mi\u0119dzy takimi SDS, jak Gluster, Ceph i Vstorage (Virtuozzo). W tek\u015bcie znajduj\u0105 si\u0119 linki do artyku\u0142\u00f3w z wi\u0119ksz\u0105 ilo\u015bci\u0105 informacji.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage","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\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b SDS \u0438\u043b\u0438 \u043f\u043e\u0438\u0441\u043a \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f (GlusterVsCephVsVirtuozzoStorage) | ProHoster","og:description":"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 SDS \u043a\u0430\u043a Gluster, Ceph \u0438 Vstorage (Virtuozzo). \u0412 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435.","og:url":"https:\/\/prohoster.info\/pl\/blog\/kratkoe-sravnenie-arhitektury-sds-ili-poisk-podhodyashhej-platformy-hraneniya-glustervscephvsvirtuozzostorage","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":"2020-02-03T11:42:16+00:00","article:modified_time":"2020-02-03T11:42:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"40729","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:32:40","updated":"2022-09-29 09:23:33","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\/40729","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=40729"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/40729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/40730"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=40729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=40729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=40729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}