{"id":36984,"date":"2019-10-31T22:15:09","date_gmt":"2019-10-31T19:15:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/koe-chto-ob-inode\/"},"modified":"2019-10-31T22:15:09","modified_gmt":"2019-10-31T19:15:09","slug":"koe-chto-ob-inode","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/koe-chto-ob-inode","title":{"rendered":"Kilka s\u0142\u00f3w o inode","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cyklicznie, w celu przeprowadzki do CRU, rozmumiem si\u0119 w r\u00f3\u017cnych du\u017cych firmach, g\u0142\u00f3wnie z Petersburga i Moskwy na stanowisko DevOps. Zauwa\u017cy\u0142em, \u017ce w wielu firmach (w wielu dobrych firmach, na przyk\u0142ad w Yandexie) zadaj\u0105 dwa podobne pytania:<\/p>\n<ul>\n<li> co to jest inode;<\/li>\n<li> z jakich powod\u00f3w mo\u017cna otrzyma\u0107 b\u0142\u0105d zapisu na dysk (lub na przyk\u0142ad: dlaczego mo\u017ce zabrakn\u0105\u0107 miejsca na dysku, istota jest ta sama).\n<\/li>\n<\/ul>\n<p>\nJak to cz\u0119sto bywa, by\u0142em pewny, \u017ce dobrze znam ten temat, ale gdy tylko zacz\u0105\u0142em wyja\u015bnia\u0107 \u2013 pojawi\u0142y si\u0119 luki w mojej wiedzy. Aby usystematyzowa\u0107 swoje wiadomo\u015bci, wype\u0142ni\u0107 luki i wi\u0119cej si\u0119 nie zawstydza\u0107, pisz\u0119 ten artyku\u0142, mo\u017ce jeszcze komu\u015b si\u0119 przyda.<\/p>\n<p>Zaczn\u0119 \u00abod do\u0142u\u00bb, tzn. od twardego dysku (pendrive'\u00f3w, SSD i innych nowoczesnych rzeczy nie bierzemy pod uwag\u0119, dla przyk\u0142adu rozwa\u017camy ka\u017cdy stary dysk 20 lub 80 gigowy, poniewa\u017c tam rozmiar bloku wynosi 512 bajt\u00f3w).<\/p>\n<p>Twardy dysk nie potrafi adresowa\u0107 swojej przestrzeni bajt po bajcie, warunkowo jest ona podzielona na bloki. Numeracja blok\u00f3w zaczyna si\u0119 od 0. (nazywa si\u0119 to LBA, szczeg\u00f3\u0142y tutaj: <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/LBA\">ru.wikipedia.org\/wiki\/LBA<\/a><\/noindex>)<\/p>\n<p><img decoding=\"async\" alt=\"Kilka s\u0142\u00f3w o inode\" src=\"\/wp-content\/uploads\/2019\/08\/47036dc7ec2ed8c868fa1bcf044ba9ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nJak wida\u0107 na rysunku, bloki LBA oznaczy\u0142em jako poziom HDD. Nota bene, aby sprawdzi\u0107, jaki rozmiar bloku ma Tw\u00f3j dysk, mo\u017cesz to zrobi\u0107 w ten spos\u00f3b: <\/p>\n<pre><code class=\"bash\">root@ubuntu:\/home\/serp# blockdev --getpbsz \/dev\/sdb\n512<\/code><\/pre>\n<p>\nPoziom wy\u017cej jest partycja, jedna na ca\u0142y dysk (zn\u00f3w dla prostoty). Najcz\u0119\u015bciej stosuje si\u0119 dwa typy partycji: msdos i gpt. Odpowiednio msdos \u2013 stary format, obs\u0142uguj\u0105cy dyski do 2 TB, gpt \u2013 nowy format, zdolny adresowa\u0107 do 1 zettabajta 512-bajtowych blok\u00f3w. W naszym przypadku mamy partycj\u0119 typu msdos, jak wida\u0107 na rysunku, partycja zaczyna si\u0119 od bloku nr 1, zerowy za\u015b jest u\u017cywany dla MBR.<\/p>\n<p>W pierwszej partycji stworzy\u0142em system plik\u00f3w ext2, domy\u015blnie rozmiar bloku wynosi 4096 bajt\u00f3w, co r\u00f3wnie\u017c zosta\u0142o odzwierciedlone na rysunku. Rozmiar bloku systemu plik\u00f3w mo\u017cna sprawdzi\u0107 w ten spos\u00f3b:<\/p>\n<pre><code class=\"bash\">root@ubuntu:\/home\/serp# tune2fs -l \/dev\/sdb1\ntune2fs 1.42.9 (4-Feb-2014)\nNazwa woluminu systemu plik\u00f3w:   \nOstatnio zamontowany na:          \nUUID systemu plik\u00f3w:          a600bf40-f660-41f6-a3e6-96c303995479\nNumer magiczny systemu plik\u00f3w:  0xEF53\nWersja systemu plik\u00f3w:    1 (dynamiczny)\nFunkcje systemu plik\u00f3w:      ext_attr resize_inode dir_index filetype sparse_super large_file\nFlagi systemu plik\u00f3w:         signed_directory_hash\nDomy\u015blne opcje montowania:    user_xattr acl\nStan systemu plik\u00f3w:         czysty\nZachowanie w przypadku b\u0142\u0119d\u00f3w:          Kontynuuj\nTyp OS systemu plik\u00f3w:       Linux\nLiczba inode'\u00f3w:              65536\nLiczba blok\u00f3w:              261888\nZarezerwowana liczba blok\u00f3w:     13094\nWolne bloki:              257445\nWolne inode'y:              65525\nPierwszy blok:              0\nRozmiar bloku:               4096\nRozmiar fragmentu:            4096\nZarezerwowane bloki GDT:      63\nBlok\u00f3w na grup\u0119:         32768\nFragment\u00f3w na grup\u0119:      32768\nInode'\u00f3w na grup\u0119:         8192\nBlok\u00f3w inode na grup\u0119:   512\nSystem plik\u00f3w utworzony:       Pi\u0105tek 2 sierpnia  15:02:13 2019\nOstatni czas montowania:          n\/a\nOstatni czas zapisu:          Pi\u0105tek 2 sierpnia  15:02:14 2019\nLiczba monta\u017cy:              0\nMaksymalna liczba monta\u017cy:      -1\nOstatnia kontrola:             Pi\u0105tek 2 sierpnia  15:02:13 2019\nInterwa\u0142 kontroli:           0 ()\nZarezerwowane bloki uid:      0 (u\u017cytkownik root)\nZarezerwowane bloki gid:      0 (grupa root)\nPierwszy inode:              11\nRozmiar inode:               256\nWymagany dodatkowy rozmiar:     28\nPo\u017c\u0105dany dodatkowy rozmiar:      28\nDomy\u015blny hash katalogu:   half_md4\nZiarno hasha katalogu:      c0155456-ad7d-421f-afd1-c898746ccd76<\/code><\/pre>\n<p>\nSzukany przez nas parametr to \u201eRozmiar bloku\u201d.<\/p>\n<p>Teraz najciekawsze, jak odczyta\u0107 plik \/home\/serp\/testfile? Plik sk\u0142ada si\u0119 z jednego lub kilku blok\u00f3w systemu plik\u00f3w, w kt\u00f3rych przechowywane s\u0105 jego dane. Jak znale\u017a\u0107 go, znaj\u0105c nazw\u0119 pliku? Kt\u00f3re bloki odczyta\u0107?<\/p>\n<p>Tutaj przydaj\u0105 si\u0119 nam inode'y. W systemie plik\u00f3w ext2fs istnieje \u201etabela\u201d, w kt\u00f3rej zawarte s\u0105 informacje o wszystkich inode'ach. Liczba inode'\u00f3w w przypadku ext2fs jest ustalana w momencie tworzenia systemu plik\u00f3w. Potrzebne liczby sprawdzamy w parametrze \u201eLiczba inode'\u00f3w\u201d w wyj\u015bciu tune2fs, tzn. mamy ich 65536. W inode'ach przechowywane s\u0105 nam potrzebne informacje: lista blok\u00f3w systemu plik\u00f3w dla poszukiwanego pliku. Jak znale\u017a\u0107 numer inode dla wskazanego pliku?<\/p>\n<p>Zgodno\u015b\u0107 nazwy i numeru inode znajduje si\u0119 w katalogu, a katalog w ext2fs to plik specjalnego rodzaju, tzn. r\u00f3wnie\u017c ma sw\u00f3j numer inode. Aby prze\u0142ama\u0107 ten b\u0142\u0119dny kr\u0105g, dla katalogu g\u0142\u00f3wnego przypisano \u201esta\u0142y\u201d numer inode \u201e2\u201d. Zobaczmy zawarto\u015b\u0107 inode o numerze 2:<\/p>\n<pre><code class=\"bash\">root@ubuntu:\/# debugfs \/dev\/sdb1\ndebugfs 1.42.9 (4-Feb-2014)\ndebugfs:  stat \n\nInode: 2   Typ: katalog    Tryb:  0755   Flagi: 0x0\nGeneracja: 0    Wersja: 0x00000000:00000002\nU\u017cytkownik:     0   Grupa:     0   Rozmiar: 4096\nACL pliku: 0    ACL katalogu: 0\nLinki: 3   Liczba blok\u00f3w: 8\nFragment:  Adres: 0    Liczba: 0    Rozmiar: 0\n ctime: 0x5d43cb51:16b61bcc -- Pi\u0105tek 2 sierpnia  16:34:09 2019\n atime: 0x5d43c247:b704301c -- Pi\u0105tek 2 sierpnia  15:55:35 2019\n mtime: 0x5d43cb51:16b61bcc -- Pi\u0105tek 2 sierpnia  16:34:09 2019\ncrtime: 0x5d43b5c6:00000000 -- Pi\u0105tek 2 sierpnia  15:02:14 2019\nRozmiar dodatkowych p\u00f3l inode: 28\nBLOKI:\n(0):579\n\u0141\u0104CZNIE: 1<\/code><\/pre>\n<p>\nJak wida\u0107, potrzebny nam katalog znajduje si\u0119 w bloku o numerze 579. W nim znajdziemy numer w\u0119z\u0142a dla katalogu home, i tak dalej w \u0142a\u0144cuchu, a\u017c w katalogu serp zobaczymy numer w\u0119z\u0142a dla \u017c\u0105danego pliku. Je\u015bli kto\u015b chcia\u0142by sprawdzi\u0107, czy numer jest poprawny i czy znajduj\u0105 si\u0119 tam potrzebne informacje, nie jest to trudne. Robimy to:<\/p>\n<pre><code class=\"bash\">root@ubuntu:~# dd if=\/dev\/sdb1 of=\/home\/serp\/dd_image bs=4096 count=1 skip=579\n1+0 records in\n1+0 records out\n4096 bytes (4,1 kB) copied, 0,000184088 s, 22,3 MB\/s\nroot@ubuntu:~# hexdump -c \/home\/serp\/dd_image<\/code><\/pre>\n<p>\nW wyj\u015bciu mo\u017cna odczyta\u0107 nazwy plik\u00f3w w katalogu.<\/p>\n<p>Oto dotar\u0142em do g\u0142\u00f3wnego pytania: \u201ejakie mog\u0105 by\u0107 przyczyny b\u0142\u0119du zapisu\u201d?<\/p>\n<p>Oczywi\u015bcie tak si\u0119 stanie, je\u015bli nie pozostanie wolnych blok\u00f3w w systemie plik\u00f3w. Co mo\u017cna w tym przypadku zrobi\u0107? Opr\u00f3cz oczywistego \u201eusun\u0105\u0107 co\u015b niepotrzebnego\u201d, nale\u017cy pami\u0119ta\u0107, \u017ce w systemach plik\u00f3w ext2, 3 i 4 istnieje taka rzecz, jak \u201eReserved block count\u201d. Je\u015bli spojrzymy na wcze\u015bniejsz\u0105 list\u0119, mamy 13094 takich blok\u00f3w. To s\u0105 bloki dost\u0119pne do zapisu tylko dla u\u017cytkownika root. Ale je\u015bli trzeba szybko rozwi\u0105za\u0107 problem, jako rozwi\u0105zanie tymczasowe mo\u017cna uczyni\u0107 je dost\u0119pnymi dla wszystkich, w wyniku czego pojawi si\u0119 troch\u0119 wolnego miejsca:<\/p>\n<pre><code class=\"bash\">root@ubuntu:\/mnt# tune2fs -m 0 \/dev\/sdb1\ntune2fs 1.42.9 (4-Feb-2014)\nUstawienie procentu zarezerwowanych blok\u00f3w na 0% (0 blok\u00f3w)<\/code><\/pre>\n<p>\nTo znaczy, domy\u015blnie nie masz dost\u0119pu do zapisu 5% przestrzeni dyskowej, a bior\u0105c pod uwag\u0119 rozmiary nowoczesnych dysk\u00f3w, mo\u017ce to by\u0107 setki gigabajt\u00f3w.<\/p>\n<p>Co jeszcze mo\u017ce by\u0107? Mo\u017ce by\u0107 tak\u017ce sytuacja, gdy masz wolne bloki, a w\u0119z\u0142y si\u0119 sko\u0144czy\u0142y. Taka sytuacja zazwyczaj wyst\u0119puje, je\u015bli w twoim systemie plik\u00f3w znajduje si\u0119 wiele plik\u00f3w mniejszych ni\u017c rozmiar bloku systemu plik\u00f3w. Bior\u0105c pod uwag\u0119, \u017ce na jeden plik lub katalog przypada jeden inode, a mamy ich \u0142\u0105cznie (dla tego systemu plik\u00f3w) 65536 \u2014 sytuacja jest wi\u0119cej ni\u017c realna. Mo\u017cna to zobaczy\u0107 na przyk\u0142adzie wyniku polecenia df:<\/p>\n<pre><code class=\"bash\">serp@ubuntu:~$ df -hi\nFilesystem     Inodes IUsed IFree IUse% Mounted on\nudev             493K   480  492K    1% \/dev\ntmpfs            493K   425  493K    1% \/run\n\/dev\/xvda1       512K  240K  273K   47% \/\nnone             493K     2  493K    1% \/sys\/fs\/cgroup\nnone             493K     2  493K    1% \/run\/lock\nnone             493K     1  493K    1% \/run\/shm\nnone             493K     2  493K    1% \/run\/user\n\/dev\/xvdc1       320K  4,1K  316K    2% \/var\n\/dev\/xvdb1        64K   195   64K    1% \/home\n\/dev\/xvdh1       4,0M  3,1M  940K   78% \/var\/www\nserp@ubuntu:~$ df -h\nFilesystem      Size  Used Avail Use% Mounted on\nudev            2,0G  4,0K  2,0G   1% \/dev\ntmpfs           395M  620K  394M   1% \/run\n\/dev\/xvda1      7,8G  2,9G  4,6G  39% \/\nnone            4,0K     0  4,0K   0% \/sys\/fs\/cgroup\nnone            5,0M     0  5,0M   0% \/run\/lock\nnone            2,0G     0  2,0G   0% \/run\/shm\nnone            100M     0  100M   0% \/run\/user\n\/dev\/xvdc1      4,8G  2,6G  2,0G  57% \/var\n\/dev\/xvdb1      990M  4,0M  919M   1% \/home\n\/dev\/xvdh1       63G   35G   25G  59% \/var\/www<\/code><\/pre>\n<p>\nJak wida\u0107 na przyk\u0142adzie \/var\/www, liczba dost\u0119pnych blok\u00f3w systemu plik\u00f3w oraz liczba dost\u0119pnych i-node'\u00f3w znacznie si\u0119 r\u00f3\u017cni\u0105.<\/p>\n<p>Na wypadek, gdyby zabrak\u0142o inode'\u00f3w, trudno mi powiedzie\u0107, co zrobi\u0107, bo po prostu ich nie ma (je\u015bli si\u0119 myl\u0119, prosz\u0119 da\u0107 zna\u0107). Dlatego dla partycji, w kt\u00f3rych mno\u017c\u0105 si\u0119 ma\u0142e pliki, nale\u017cy m\u0105drze wybiera\u0107 system plik\u00f3w. Na przyk\u0142ad w btrfs inode'y nie mog\u0105 si\u0119 sko\u0144czy\u0107, poniewa\u017c nowe s\u0105 dynamicznie tworzone w razie potrzeby.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462849\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u0432 \u0426\u0420\u0421 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u0443\u044e\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u041f\u0438\u0442\u0435\u0440\u0430 \u0438 \u041c\u043e\u0441\u043a\u0432\u044b \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c DevOps. \u041e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 (\u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u044f\u043d\u0434\u0435\u043a\u0441\u0435) \u0437\u0430\u0434\u0430\u044e\u0442 \u0434\u0432\u0430 \u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 inode; \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a (\u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c\u0441\u044f \u043c\u0435\u0441\u0442\u043e \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27717,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36984","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=\"description\" content=\"\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u0432 \u0426\u0420\u0421 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u0443\u044e\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u041f\u0438\u0442\u0435\u0440\u0430 \u0438 \u041c\u043e\u0441\u043a\u0432\u044b \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c DevOps.\" \/>\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\/koe-chto-ob-inode\" \/>\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\u041a\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u0432 \u0426\u0420\u0421 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u0443\u044e\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u041f\u0438\u0442\u0435\u0440\u0430 \u0438 \u041c\u043e\u0441\u043a\u0432\u044b \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c DevOps.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/koe-chto-ob-inode\" \/>\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:15:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:09+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\udd47Co\u015b o inode'ach | ProHoster","description":"Od czasu do czasu, w zwi\u0105zku z przeprowadzk\u0105 do CRS, odbywam rozmowy w r\u00f3\u017cnych du\u017cych firmach, g\u0142\u00f3wnie z Petersburga i Moskwy na stanowisko DevOps.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/koe-chto-ob-inode","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\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode | ProHoster","og:description":"\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u0432 \u0426\u0420\u0421 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u0443\u044e\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u041f\u0438\u0442\u0435\u0440\u0430 \u0438 \u041c\u043e\u0441\u043a\u0432\u044b \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c DevOps.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/koe-chto-ob-inode","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:15:09+00:00","article:modified_time":"2019-10-31T19:15:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36984","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-22 05:38:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:35:27","updated":"2026-01-22 05:38:19","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\/36984","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=36984"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36984\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27717"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=36984"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=36984"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=36984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}