{"id":3104,"date":"2016-08-25T12:10:01","date_gmt":"2016-08-25T10:10:01","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=3104"},"modified":"2016-08-25T12:10:01","modified_gmt":"2016-08-25T10:10:01","slug":"instalacja-klastra-ceph-jewel-na-ubuntu-16-lts-z-wykorzystaniem-zfs","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=3104","title":{"rendered":"Instalacja klastra Ceph Jewel na Ubuntu 16 LTS z wykorzystaniem ZFS"},"content":{"rendered":"<p align=\"justify\">Pami\u0119ci masowe definiowane programowo (SDS) rozwijaj\u0105 si\u0119 w osza\u0142amiaj\u0105cym tempie. W tej chwili mamy ju\u017c do wyboru ca\u0142\u0105 mas\u0119 rozwi\u0105za\u0144 np. VMware vSAN, <a href=\"https:\/\/vm.piszki.pl\/emc-scaleio-instalacja-i-konfiguracja-w-systemie-linuks\/\">EMC ScaleIO<\/a> (kt\u00f3re bazuje na Ceph), GlusterFS, XtreemeFS czy w ko\u0144cu Ceph. Niestety, jak do tej pory \u017cadne z tych rozwi\u0105za\u0144 nie wspiera natywnie takich funkcji jak deduplikacja (jedynie vSAN 6.2 wspiera deduplikacj\u0119 i kompresj\u0119). W tym artykule poka\u017c\u0119 jak zainstalowa\u0107, na trzech nodach, klaster Ceph Jewel (czyli najnowszy stabilny) oparty na dyskach (OSD) sformatowanych za pomoc\u0105 ZFS. \u0179r\u00f3d\u0142em ZFS jest system Solaris (i firma SUN Microsystems, aktualnie Oracle), jest on w pe\u0142ni przeportowany na system Linuks. Po raz pierwszy te\u017c uzyska\u0142 pe\u0142ne wsparcie w systemie Ubuntu 16 LTS. Celem tego \u0107wiczenia jest przetestowanie deduplikacji w SDS (kt\u00f3r\u0105 wspiera ZFS) i sprawdzenie czy jest to mo\u017cliwe. Pami\u0119tajcie jednak, Ceph oficjalnie nie wspiera OSD na ZFS.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/dedupe.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"dedupe\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/dedupe_thumb.png\" alt=\"dedupe\" width=\"186\" height=\"133\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Testowy klaster sk\u0142ada si\u0119 z trzech wirtualnych maszyn z zainstalowanym Ubuntu 16 LTS (ich nazwy to uaceph1, uaceph2, uaceph3), pierwszy serwer b\u0119dzie pe\u0142ni\u0142 rol\u0119 serwera administracyjnego. Zanim zaczniemy, musimy spreparowa\u0107 odpowiedni\u0105, startow\u0105 konfiguracj\u0119 na wszystkich nodach klastra. Dotyczy to dodania \u017ar\u00f3de\u0142 APT, poprawnego skonfigurowania proxy (je\u015bli korzystamy) oraz utworzenia u\u017cytkownika za pomoc\u0105 kt\u00f3rego b\u0119dziemy nadzorowali instalacj\u0119 i prac\u0119 klastra Ceph (ssh). Dodatkowo musimy skonfigurowa\u0107 rozwi\u0105zywanie nazw nod\u00f3w, robimy to albo poprzez DNS albo poprzez pliki \/etc\/hosts (wszystkie hosty musz\u0105 by\u0107 w tej samej sieci i musz\u0105 si\u0119 pinga\u0107 poprzez kr\u00f3tkie nazwy).\u00a0 Dodajemy \u017ar\u00f3d\u0142a APT (na ka\u017cdym serwerze):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0001.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph0001\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0001_thumb.png\" alt=\"ceph0001\" width=\"517\" height=\"56\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Konfigurujemy u\u017cytkownika (na ka\u017cdym nodzie), w moim przypadku b\u0119dzie to pulab. Konfigurujemy dla u\u017cytkownika klucze ssh (ssh-keygen z pustym has\u0142em) i za pomoc\u0105 polecenia ssh-copy-id transferujemy klucz na wszystkie pozosta\u0142e nody (ssh-copy-id nazwa_hosta). W katalogu .ssh u\u017cytkownika tworzymy plik config w kt\u00f3rym podajemy parametry po\u0142\u0105cze\u0144:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0002.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph0002\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0002_thumb.png\" alt=\"ceph0002\" width=\"345\" height=\"243\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u015bli korzystamy z serwera proxy to w pliku \/etc\/apt\/apt.conf podajemy dyrektyw\u0119 Acquire::http::Proxy http:\/\/ugproxy1.pulab.local:8080; i dodatkowo proxy musi by\u0107 wpisane w pliku \/etc\/environments.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0003.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph0003\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph0003_thumb.png\" alt=\"ceph0003\" width=\"340\" height=\"81\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Jeszcze raz, zanim zaczniecie dalsz\u0105 konfiguracj\u0119 upewnijcie si\u0119, \u017ce wszystkie nody nawzajem rozwi\u0105zuj\u0105 swoje nazwy (d\u0142ugie i kr\u00f3tkie). Za\u0142o\u017cony przez Was u\u017cytkownik mo\u017ce wykonywa\u0107 ssh bez loginu i has\u0142a na wszystkie nody oraz \u017ce na ka\u017cdym nodzie macie zsynchronizowany czas (to bardzo wa\u017cne). Je\u015bli wszystko jest ok, to na pierwszym serwerze (administracyjnym) instalujemy pakiet ceph-deploy.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph001.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph001\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph001_thumb.png\" alt=\"ceph001\" width=\"512\" height=\"207\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Z poziomu u\u017cytkownika administracyjnego tworzymy katalog (jego nazwa jest automatycznie nazw\u0105 klastra Ceph), wewn\u0105trz tego katalogu wydajemy polecenie:<\/p>\n<p>ceph-deploy new serwer1 serwer2 serwer3 (wa\u017cne aby poda\u0107 wszystkie hosty)<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph002.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph002\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph002_thumb.png\" alt=\"ceph002\" width=\"509\" height=\"550\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">W ten spos\u00f3b tworzymy inicjaln\u0105 konfiguracj\u0119, na tym etapie dodajemy do pliku ceph.conf wszystkie linie zaczynaj\u0105c od public network. Wpisy dotycz\u0105ce konfiguracji OSD s\u0105 specyficzne dla wymog\u00f3w wsp\u00f3\u0142dzia\u0142ania z ZFS (opr\u00f3cz pool default size).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph003.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph003\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph003_thumb.png\" alt=\"ceph003\" width=\"511\" height=\"417\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Gdy mamy przygotowany plik konfiguracyjny, wydajemy polecenie instalacji klastra na wszystkich nodach. Instalacja trwa do\u015b\u0107 d\u0142ugo, je\u015bli przerwie si\u0119 na jednym z serwer\u00f3w, mo\u017cemy j\u0105 uruchomi\u0107 jeszcze raz tylko dla wybranego serwera.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph004.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph004\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph004_thumb.png\" alt=\"ceph004\" width=\"510\" height=\"34\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Po zainstalowaniu pakiet\u00f3w uruchamiamy stworzenie inicjalnej konfiguracji dla wszystkich monitor\u00f3w.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph005.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph005\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph005_thumb.png\" alt=\"ceph005\" width=\"508\" height=\"36\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Na tym etapie mamy skonfigurowany i dzia\u0142aj\u0105cy klaster Ceph bez pod\u0142\u0105czonych dysk\u00f3w (OSD). Przy konfigurowaniu OSD u\u017cyjemy ZFS kt\u00f3rego nie wspiera skrypt ceph-deploy, od tego momentu wszystkie kroki wykonamy r\u0119cznie i na ka\u017cdym serwerze osobno. Zaczynamy od wydania polecenia \u201cceph osd create\u201d, numer kt\u00f3ry zostanie zwr\u00f3cony to ID danego OSD (kt\u00f3rym b\u0119dziemy pos\u0142ugiwali si\u0119 w dalszej konfiguracji).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph006.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph006\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph006_thumb.png\" alt=\"ceph006\" width=\"369\" height=\"257\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Do ka\u017cdego serwera mam dodane dwa dodatkowe dyski, na OSD przeznaczam \/dev\/sdb. Na tym dysku tworzymy pul\u0119 ZFS, pula obejmuje ca\u0142y dysk i jest jednocze\u015bnie systemem plik\u00f3w (FS), mo\u017cemy w ramach jednej puli stworzy\u0107 wiele FS (ale tutaj nie jest to potrzebne). Za pomoc\u0105 polecenia zfs set mountpoint montujemy dysk w katalogu zgodnym z OSD ID, obrazek poni\u017cej przedstawia konfiguracj\u0119 z serwera drugiego (uaceph2).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph007.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph007\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph007_thumb.png\" alt=\"ceph007\" width=\"510\" height=\"189\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Poleceniem ceph-osd \u2013i (ID OSD) \u2013mkfs \u2013 mkkey tworzymy system plik\u00f3w Ceph i klucz autoryzacyjny. System plik\u00f3w w serwerze powinien wygl\u0105da\u0107 tak jak ten:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph008.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph008\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph008_thumb.png\" alt=\"ceph008\" width=\"509\" height=\"267\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">W kolejnym kroku sprawdzamy uprawnienia \/var\/lib\/ceph\/osd\/ceph-ID na ka\u017cdym serwerze, je\u015bli w\u0142a\u015bciciel jest innych ni\u017c u\u017cytkownik ceph to zmieniamy na poprawne.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph009.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph009\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph009_thumb.png\" alt=\"ceph009\" width=\"509\" height=\"191\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">R\u0119cznie startujemy (aktywujemy) poszczeg\u00f3lne OSD na ka\u017cdym nodzie (systemctl start ceph-osd@ID), poleceniem \u201cceph osd tree\u201d sprawdzamy czy OSD wstaj\u0105 poprawnie.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph010.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph010\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph010_thumb.png\" alt=\"ceph010\" width=\"506\" height=\"272\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Na koniec sprawdzamy status ca\u0142ego klastra, powinni\u015bmy otrzyma\u0107 HEALTH_OK.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph011.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph011\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph011_thumb.png\" alt=\"ceph011\" width=\"508\" height=\"146\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Gratuluj\u0119, mamy funkcjonuj\u0105cy klaster Ceph oparty na dyska z systemem plik\u00f3w ZFS. Mo\u017cemy przyst\u0105pi\u0107 do test\u00f3w, b\u0119d\u0119 korzysta\u0142 z wolumenu blokowego RBD, dlatego dodaj\u0119 do ceph.conf linijk\u0119 rbd_default_features = 3 (kernel w Ubuntu 16 LTS nie wpiera wszystkich rozwi\u0105za\u0144 z Ceph Jewel), now\u0105 konfiguracj\u0119 rozsy\u0142amy poleceniem \u201cceph-deploy admin serwer1 serwer2 serwer3\u201d. W kolejnym kroku tworzymy zas\u00f3b blokowy poleceniem rbd create:<\/p>\n<p align=\"justify\"><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph014.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph014\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph014_thumb.png\" alt=\"ceph014\" width=\"505\" height=\"362\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u015bli zas\u00f3b plikowy, to musi by\u0107 sformatowany, tutaj u\u017cyty zosta\u0142 ext4. Mamy tutaj swoist\u0105 incepcj\u0119, g\u0142\u00f3wne dyski OSD zosta\u0142y sformatowane ZFS a wolumeny z nich wystawiane EXT (mo\u017cna na odwr\u00f3t). Klient dostaje standardowy dysk kt\u00f3ry mo\u017ce sformatowa\u0107 dowolnym FS, natomiast po stronie SDS mo\u017cemy w\u0142\u0105czy\u0107 globalnie deduplikacj\u0119 lub kompresj\u0119 i b\u0119dzie to prze\u017aroczyste dla klienta. Zamontowany FS:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph015.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph015\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph015_thumb.png\" alt=\"ceph015\" width=\"511\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Czas na test, dysk RBD zape\u0142ni\u0142em dziewi\u0119cioma obrazami ova maszyny wirtualnej (ka\u017cdy wielko\u015bci 1GB) i kilkunastoma obrazami ISO. Przed w\u0142\u0105czeniem deduplikacji zasoby prezentuj\u0105 si\u0119 tak:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph018.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph018\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph018_thumb.png\" alt=\"ceph018\" width=\"502\" height=\"362\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Teraz przechodzimy do deduplikacji, najpierw upewnimy si\u0119 \u017ce nie jest w\u0142\u0105czona i czy warto j\u0105 w\u0142\u0105czy\u0107.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph022.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph022\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph022_thumb.png\" alt=\"ceph022\" width=\"513\" height=\"368\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Nie jest w\u0142\u0105czona, polecenie zdb \u2013S stara si\u0119 zasymulowa\u0107 warto\u015bci jakie uzyskamy po w\u0142\u0105czeniu, warto\u015b\u0107 wyliczona to dedup = 2.18, czyli \u015bmia\u0142o mo\u017cna w\u0142\u0105czy\u0107 deduplikacj\u0119. W przypadku ZFS jest to niezwykle proste, ustawiamy parametr dedup=on i czekamy.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph023.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph023\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph023_thumb.png\" alt=\"ceph023\" width=\"508\" height=\"108\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Je\u017celi czekanie nas znudzi, to w ramach przy\u015bpieszania mo\u017cemy usun\u0105\u0107 dane i wgra\u0107 je ponownie. Generalnie, deduplikacja dzia\u0142a znakomicie na obszarze ca\u0142ego klastra Ceph:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph024.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"ceph024\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2016\/08\/ceph024_thumb.png\" alt=\"ceph024\" width=\"505\" height=\"183\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Gdzie mo\u017cemy zastosowa\u0107 tak\u0105 konfiguracj\u0119? Na przyk\u0142ad w <a href=\"https:\/\/www.proxmox.com\/en\/\">Proxmox VM<\/a> kt\u00f3ry wspiera i ZFS i Ceph. W\u0142\u0105czenie deduplikacji w SDS, gdzie dane s\u0105 zwielokrotniane, mo\u017ce przynie\u015b\u0107 bardzo du\u017ce oszcz\u0119dno\u015bci przestrzeni dyskowej.<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Pami\u0119ci masowe definiowane programowo (SDS) rozwijaj\u0105 si\u0119 w osza\u0142amiaj\u0105cym tempie. W tej chwili mamy ju\u017c do wyboru ca\u0142\u0105 mas\u0119 rozwi\u0105za\u0144 np. VMware vSAN, EMC ScaleIO (kt\u00f3re bazuje na Ceph), GlusterFS, XtreemeFS czy w ko\u0144cu Ceph. Niestety, jak do tej pory &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=3104\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[45],"tags":[103,105,104],"class_list":["post-3104","post","type-post","status-publish","format-standard","hentry","category-poradniki","tag-ceph","tag-sds","tag-zfs"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":2,"sum_votes":6},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3104"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3104"}],"version-history":[{"count":7,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3104\/revisions"}],"predecessor-version":[{"id":3125,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3104\/revisions\/3125"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}