{"id":31333,"date":"2019-10-31T21:40:44","date_gmt":"2019-10-31T18:40:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\/"},"modified":"2019-10-31T21:40:44","modified_gmt":"2019-10-31T18:40:44","slug":"virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","title":{"rendered":"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebrse jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb? Pjesa 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve, po ndajm\u00eb me ju pjes\u00ebn e dyt\u00eb t\u00eb publikimit \"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebr \u00e7far\u00eb jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb?\" Pjes\u00ebn e par\u00eb mund ta lexoni <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">k\u00ebtu<\/a><\/noindex>. Kujtojm\u00eb, kjo seri publikimesh \u00ebsht\u00eb lidhur me lancimin e nj\u00eb fluksi t\u00eb ri t\u00eb kursit <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/tjnD\/\">\u00abAdministrator Linux\u00bb<\/a><\/noindex>, i cili do t\u00eb filloj\u00eb shum\u00eb shpejt.<\/p>\n<p><b>Si t\u00eb v\u00ebzhgoni VFS me mjetet e eBPF dhe bcc<\/b><\/p>\n<p>M\u00ebnyra m\u00eb e thjesht\u00eb p\u00ebr t\u00eb kuptuar si operon b\u00ebrthama me skedar\u00ebt <code>sysfs<\/code> \u00ebsht\u00eb t\u00eb shikoni k\u00ebt\u00eb n\u00eb praktik\u00eb, dhe m\u00ebnyra m\u00eb e leht\u00eb p\u00ebr t\u00eb v\u00ebzhguar ARM64 \u00ebsht\u00eb t\u00eb p\u00ebrdorni eBPF. eBPF (shkurtim p\u00ebr Berkeley Packet Filter) p\u00ebrb\u00ebhet nga nj\u00eb makin\u00eb virtuale q\u00eb funksionon n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/sites\/events\/files\/slides\/bpf_collabsummit_2015feb20.pdf\">b\u00ebrtham\u00eb<\/a><\/noindex>, t\u00eb cil\u00ebn p\u00ebrdoruesit me privilegje mund ta k\u00ebrkojn\u00eb (<code>query<\/code>) nga komanda e rreshtit. Burimet e b\u00ebrthamos tregojn\u00eb lexuesit se \u00e7far\u00eb mund t\u00eb b\u00ebj\u00eb b\u00ebrthama; ekzekutimi i mjeteve eBPF n\u00eb nj\u00eb sistem t\u00eb ngarkuar tregon se \u00e7far\u00eb b\u00ebrthama realisht b\u00ebn. <\/p>\n<p><img decoding=\"async\" alt=\"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebrse jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb? Pjesa 2\" src=\"\/wp-content\/uploads\/2019\/04\/95443cd3b1562b03eb43bf5fd229c508.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Fatmir\u00ebsisht, fillimi i p\u00ebrdorimit t\u00eb eBPF \u00ebsht\u00eb mjaft i leht\u00eb me ndihm\u00ebn e mjeteve <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\">bcc<\/a><\/noindex>, t\u00eb cilat jan\u00eb t\u00eb disponueshme si paketa nga shp\u00ebrndarja e zakonshme <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/INSTALL.md\">Linux<\/a><\/noindex> dhe jan\u00eb dokumentuar n\u00eb detaje <noindex><a rel=\"nofollow\" href=\"http:\/\/brendangregg.com\/ebpf.html\">nga Bernard Gregg.<\/a><\/noindex>Mjetet <code>bcc<\/code> \u2013 jan\u00eb skripte n\u00eb Python me disa pjes\u00eb kodi n\u00eb C, q\u00eb do t\u00eb thot\u00eb se \u00e7do kush q\u00eb njeh t\u00eb dyja gjuh\u00ebt mund t'i modifikoj\u00eb leht\u00ebsisht ato. N\u00eb <code>bcc\/tools<\/code> ka 80 skripte Python, dhe kjo do t\u00eb thot\u00eb se ka shum\u00eb mund\u00ebsi q\u00eb nj\u00eb zhvillues ose administrator sistemi t\u00eb jet\u00eb n\u00eb gjendje t\u00eb gjej\u00eb di\u00e7ka t\u00eb p\u00ebrshtatshme p\u00ebr t\u00eb zgjidhur detyr\u00ebn. <br \/>\nP\u00ebr t\u00eb marr\u00eb nj\u00eb p\u00ebrmbledhje t\u00eb pakt\u00ebn t\u00eb sip\u00ebrfaqshme t\u00eb asaj q\u00eb b\u00ebjn\u00eb VFS n\u00eb sistemin e nisur, provoni <code>vfscount<\/code> ose <code>vfsstat<\/code>. Kjo do t\u00eb tregoj\u00eb, p\u00ebr shembull, se dhjet\u00ebra thirrje <code>vfs_open()<\/code> dhe \"miqt\u00eb e tij\" ndodhin praktikisht \u00e7do sekond\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebrse jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb? Pjesa 2\" src=\"\/wp-content\/uploads\/2019\/04\/3479caa65696a29831f00e48782e48b3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p><code>vfsstat.py<\/code> \u00ebsht\u00eb nj\u00eb skript n\u00eb Python, me disa pjes\u00eb kodi n\u00eb C, q\u00eb thjesht num\u00ebron thirrjet e funksioneve VFS.<\/p><\/blockquote>\n<p>Le t\u00eb japim nj\u00eb shembull m\u00eb trivial dhe t\u00eb shohim se \u00e7far\u00eb ndodh kur ne lidhemi nj\u00eb USB dhe sistemi e zbulon at\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebrse jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb? Pjesa 2\" src=\"\/wp-content\/uploads\/2019\/04\/5c756fe1b6d4c5906631e5da24b59dca.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>Me ndihm\u00ebn e eBPF, mund t\u00eb shohim se \u00e7far\u00eb ndodh n\u00eb <code>\/sys<\/code>, kur lidhet nj\u00eb USB. K\u00ebtu \u00ebsht\u00eb nj\u00eb shembull i thjesht\u00eb dhe nj\u00eb tjet\u00ebr m\u00eb kompleks.<\/p><\/blockquote>\n<p>N\u00eb shembullin e treguar m\u00eb lart, <code>bcc<\/code> mjetin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/tools\/trace_example.txt\">trace.py<\/a><\/noindex> jep nj\u00eb mesazh kur ekzekutohet komanda <code>sysfs_create_files()<\/code>. Ne shohim se <code>sysfs_create_files()<\/code> u ekzekutua nga <code>kworker<\/code> rrjedh\u00ebs n\u00eb p\u00ebrgjigje t\u00eb asaj q\u00eb USB u fut, por cili skedar u krijua? Shembulli i dyt\u00eb tregon t\u00eb gjitha fuqit\u00eb e eBPF. K\u00ebtu <code>trace.py<\/code> tregon nj\u00eb gjurm\u00eb t\u00eb p\u00ebrmbysur t\u00eb b\u00ebrtham\u00ebs (kernel backtrace) (opsioni -K) dhe emrin e skedarit q\u00eb u krijua. <code>sysfs_create_files()<\/code>Futja n\u00eb th\u00ebnie t\u00eb vetme \u00ebsht\u00eb kodi n\u00eb C, q\u00eb p\u00ebrfshin nj\u00eb varg formati t\u00eb leht\u00eb p\u00ebr t'u njohur, i cila sigurohet nga nj\u00eb skript Python q\u00eb ekzekuton LLVM. <i>kompilues just-in-time.<\/i>Ky varg ai e kompilon dhe ekzekuton n\u00eb nj\u00eb makin\u00eb virtuale brenda b\u00ebrtham\u00ebs. N\u00ebnshkrimi i plot\u00eb i funksionit <code>sysfs_create_files ()<\/code> duhet t\u00eb riprodhohet n\u00eb komand\u00ebn e dyt\u00eb, q\u00eb t\u00eb mund t\u00eb referohet n\u00eb nj\u00eb nga parametrat. Gabimet n\u00eb k\u00ebt\u00eb fragment kodi n\u00eb C d\u00ebrgojn\u00eb n\u00eb gabime t\u00eb njohura t\u00eb kompilatorit C. P\u00ebr shembull, n\u00ebse parametri -l \u00ebsht\u00eb i harruar, do t\u00eb shihni \"D\u00ebshtoi p\u00ebr t\u00eb kompiluar tekstin BPF.\" Zhvilluesit q\u00eb njohin mir\u00eb C dhe Python do t'i gjejn\u00eb mjetet <code>bcc<\/code> t\u00eb thjeshta p\u00ebr t'u zgjeruar dhe ndryshuar.<\/p>\n<p>Kur USB-in futet, gjurma e p\u00ebrmbysur e b\u00ebrtham\u00ebs do t\u00eb tregoj\u00eb se PID 7711 \u00ebsht\u00eb rrjedha <code>kworker<\/code>, q\u00eb krijoi skedarin <code>\"events\"<\/code> n\u00eb <code>sysfs<\/code>. P\u00ebrkat\u00ebsisht, thirrja me <code>sysfs_remove_files()<\/code> do t\u00eb tregoj\u00eb se heqja e nj\u00ebsis\u00eb ka \u00e7uar n\u00eb heqjen e skedarit <code>events.<\/code>, q\u00eb p\u00ebrputhet me konceptin e p\u00ebrgjithsh\u00ebm t\u00eb num\u00ebrimit t\u00eb lidhjeve. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, shikimi <code>sysfs_create_link ()<\/code> me eBPF gjat\u00eb p\u00ebrfshirjes s\u00eb nj\u00eb disku USB do t\u00eb tregoj\u00eb se jan\u00eb krijuar t\u00eb pakt\u00ebn 48 lidhje simbolike.<\/p>\n<p>Pra, \u00e7far\u00eb kuptimi ka skedari events? P\u00ebrdorimi <noindex><a rel=\"nofollow\" href=\"http:\/\/northstar-www.dartmouth.edu\/doc\/solaris-forte\/manuals\/c\/user_guide\/cscope.html\">cscope<\/a><\/noindex> p\u00ebr k\u00ebrkimin <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/block\/genhd.c#n665\">__device_add_disk()<\/a><\/noindex>, tregon se ajo th\u00ebrret <code>disk_add_events ()<\/code>, dhe ose <code>\"media_change\"<\/code>, ose <code>\"eject_request\"<\/code> mund t\u00eb regjistrohen n\u00eb skedarin e ngjarjeve. K\u00ebtu, shtresa bllokuese e b\u00ebrtham\u00ebs informon userspace p\u00ebr shfaqjen dhe nxjerrjen e \"diskut\". Vini re se sa informuese \u00ebsht\u00eb ky metod\u00eb eksplorimi n\u00eb shembullin e p\u00ebrfshirjes s\u00eb nj\u00eb disku USB krahas p\u00ebrpjekjeve p\u00ebr t\u00eb kuptuar se si funksionon gjith\u00e7ka ekskluzivisht nga burimet e kodit.<\/p>\n<p><b>Sistemet e skedar\u00ebve root vet\u00ebm p\u00ebr lexim b\u00ebjn\u00eb t\u00eb mundshme pajisjet e integruara.<\/b><\/p>\n<p>Sigurisht, askush nuk e ndalon serverin ose kompjuterin e tij duke e t\u00ebrhequr priz\u00ebn nga sht\u00ebpia. Por pse? Sepse sistemi i instaluar i skedar\u00ebve n\u00eb pajisjet fizike t\u00eb ruajtjes mund t\u00eb ket\u00eb sh\u00ebnime t\u00eb shtyra dhe strukturat e t\u00eb dh\u00ebnave q\u00eb regjistrojn\u00eb gjendjen e tyre mund t\u00eb mos sinkronizohen me sh\u00ebnimet n\u00eb ruajtje. Kur ndodh kjo, pronar\u00ebt e sistemit duhet t\u00eb presin ngarkimin e ardhsh\u00ebm p\u00ebr t\u00eb aktivizuar utilitarin. <code>fsck filesystem-recovery<\/code> dhe, n\u00eb rastin m\u00eb t\u00eb keq, p\u00ebr t\u00eb humbur t\u00eb dh\u00ebnat. <\/p>\n<p>Megjithat\u00eb, t\u00eb gjith\u00eb ne e dim\u00eb se shum\u00eb pajisje IoT, si dhe routerat, termostatet dhe automjetet tani punojn\u00eb me Linux. Shumica e k\u00ebtyre pajisjeve praktikisht nuk kan\u00eb nd\u00ebrfaqe p\u00ebrdoruesi dhe nuk ka asnj\u00eb m\u00ebnyr\u00eb p\u00ebr t'i ndalur ato \"past\u00ebr\". Paraqitni nj\u00eb makin\u00eb me nj\u00eb bateri t\u00eb shkarkuar, kur energjia e pajisjes kontrolluese \u00ebsht\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.automotivelinux.org\/_media\/eg-rhsa\/agl_referencehardwarespec_v0.1.0_20171018.pdf\">Linux<\/a><\/noindex> p\u00ebrher\u00eb duke u l\u00ebkundur lart-posht\u00eb. Si ndodh q\u00eb sistemi ngarkohet pa nj\u00eb periudh\u00eb t\u00eb gjat\u00eb <code>fsck<\/code>, kur motori p\u00ebrfundimisht fillon t\u00eb punoj\u00eb? Dhe p\u00ebrgjigja \u00ebsht\u00eb e thjesht\u00eb. Pajisjet e integruara mb\u00ebshteten n\u00eb sistemin e skedar\u00ebve rr\u00ebnj\u00ebsor <noindex><a rel=\"nofollow\" href=\"https:\/\/elinux.org\/images\/1\/1f\/Read-only_rootfs.pdf\">t\u00eb lexuesh\u00ebm vet\u00ebm<\/a><\/noindex> (p\u00ebr shkurtim <code>ro-rootfs<\/code> (sistemi i skedar\u00ebve rr\u00ebnj\u00ebsor t\u00eb lexuesh\u00ebm). <\/p>\n<p><code>ro-rootfs<\/code> ofrojn\u00eb shum\u00eb p\u00ebrfitime q\u00eb jan\u00eb m\u00eb pak t\u00eb dukshme se sa autenticiteti. Nj\u00eb nga p\u00ebrfitimet \u00ebsht\u00eb se malware nuk mund t\u00eb shkruaj n\u00eb <code>\/usr<\/code> ose <code>\/lib<\/code>, n\u00ebse asnj\u00eb proces Linux nuk mund t\u00eb shkruaj atje. Nj\u00eb tjet\u00ebr \u00ebsht\u00eb se nj\u00eb sistem dosjesh kryesisht t\u00eb pandryshuesh\u00ebm \u00ebsht\u00eb thelb\u00ebsor p\u00ebr mb\u00ebshtetje n\u00eb terren t\u00eb pajisjeve t\u00eb larg\u00ebta, pasi stafi ndihm\u00ebs p\u00ebrdor sisteme lokale q\u00eb jan\u00eb emra nominal t\u00eb barabart\u00eb me sistemet n\u00eb vend. Ndoshta, p\u00ebrfitimi m\u00eb i r\u00ebnd\u00ebsish\u00ebm (por edhe m\u00eb i pashmangsh\u00ebm) \u00ebsht\u00eb se ro-rootfs i detyron zhvilluesit t\u00eb vendosin se cilat objekte sistemike do t\u00eb jen\u00eb t\u00eb pandryshueshme q\u00eb n\u00eb faz\u00ebn e projektimit t\u00eb sistemit. Punimi me ro-rootfs mund t\u00eb jet\u00eb i pak\u00ebndsh\u00ebm dhe i dhimbsh\u00ebm, si\u00e7 ndodh shpesh me variablat const n\u00eb gjuh\u00ebt e programimit, por p\u00ebrfitimet e tyre e kompensojn\u00eb leht\u00ebsisht kostot shtes\u00eb.<\/p>\n<p>Krijimi <code>rootfs<\/code> leximi i vet\u00ebm k\u00ebrkon disa p\u00ebrpjekje t\u00eb tjera nga zhvilluesit e sistemeve t\u00eb integruara, dhe pik\u00ebrisht k\u00ebtu hyn n\u00eb sken\u00eb VFS. Linux k\u00ebrkon q\u00eb skedar\u00ebt n\u00eb <code>\/var<\/code> ishin\u00eb t\u00eb disponueshme p\u00ebr shkruar, dhe, p\u00ebr m\u00eb tep\u00ebr, shum\u00eb aplikacione t\u00eb njohura q\u00eb drejtojn\u00eb sistemet e integruara do t\u00eb p\u00ebrpiqen t\u00eb krijojn\u00eb konfigurime <code>dot-files<\/code> n\u00eb <code>$HOME<\/code>. Nj\u00eb nga zgjidhjet p\u00ebr skedar\u00ebt e konfigurimit n\u00eb katalogun e sht\u00ebpis\u00eb zakonisht \u00ebsht\u00eb gjenerimi i tyre paraprak dhe nd\u00ebrtimi n\u00eb <code>rootfs<\/code>. P\u00ebr <code>\/var<\/code> nj\u00eb nga qasjet e mundshme \u00ebsht\u00eb ta montoni at\u00eb n\u00eb nj\u00eb seksion t\u00eb ve\u00e7ant\u00eb, t\u00eb disponuesh\u00ebm p\u00ebr shkruar, nd\u00ebrsa vet\u00eb <code>\/<\/code> monitohet vet\u00ebm p\u00ebr lexim. Nj\u00eb alternativ\u00eb e njohur tjet\u00ebr \u00ebsht\u00eb p\u00ebrdorimi i montimeve t\u00eb lidhura ose mbulues (bind or overlay mounts).<\/p>\n<p><b>Montimet e lidhura dhe mbulues, p\u00ebrdorimi i tyre nga kontejner\u00ebt<\/b> <\/p>\n<p>Ekzekutimi i komand\u00ebs <code>man mount<\/code> \u00ebsht\u00eb m\u00ebnyra m\u00eb e mir\u00eb p\u00ebr t\u00eb m\u00ebsuar p\u00ebr montimet e lidhura dhe mbulues, t\u00eb cilat u japin zhvilluesve dhe administrator\u00ebve t\u00eb sistemeve mund\u00ebsin\u00eb p\u00ebr t\u00eb krijuar nj\u00eb sistem skedari n\u00eb nj\u00eb rrug\u00eb, dhe pastaj ta ofrojn\u00eb at\u00eb aplikacioneve n\u00eb nj\u00eb tjet\u00ebr. P\u00ebr sistemet e integruara, kjo do t\u00eb thot\u00eb mund\u00ebsin\u00eb p\u00ebr t\u00eb ruajtur skedar\u00ebt n\u00eb <code>\/var<\/code> n\u00eb nj\u00eb memorie flash, e cila \u00ebsht\u00eb vet\u00ebm p\u00ebr lexim, por montimi i mbuluar ose i lidhur i nj\u00eb rruge nga <code>tmpfs<\/code> n\u00eb <code>\/var<\/code> n\u00eb ngarkim do t\u00eb lejoj\u00eb aplikacionet t\u00eb shkruajn\u00eb sh\u00ebnime atje (scrawl). N\u00eb p\u00ebrfshirjen e ardhshme ndryshimet n\u00eb <code>\/var<\/code> do t\u00eb humbasin. Montimi i mbivendosur krijon nj\u00eb lidhje mes <code>tmpfs<\/code> dhe sistemit t\u00eb skedar\u00ebve n\u00ebntok\u00ebsor dhe lejon t\u00eb b\u00ebhen duksh\u00ebm ndryshime n\u00eb skedar\u00ebt ekzistues n\u00eb <code>ro-tootf<\/code> nd\u00ebrsa montimi lidh\u00ebs mund t\u00eb b\u00ebj\u00eb dosje t\u00eb reja t\u00eb zbraz\u00ebta <code>tmpfs<\/code> t\u00eb dukshme si t\u00eb disponueshme p\u00ebr shkrim n\u00eb <code>ro-rootfs<\/code> rrug\u00ebt. Nd\u00ebrsa <code>overlayfs<\/code> \u00ebsht\u00eb tipi i duhur (<code>proper<\/code>) i sistemit t\u00eb skedar\u00ebve, montimi lidh\u00ebs \u00ebsht\u00eb zbatuar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/filesystems\/sharedsubtree.txt\">hap\u00ebsir\u00ebn em\u00ebrore VFS<\/a><\/noindex>.<\/p>\n<p>Duke u bazuar n\u00eb p\u00ebrshkrimin e montimit t\u00eb mbivendosur dhe atij lidh\u00ebs, askush nuk habitet q\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/os\/docs\/latest\/kernel-modules.html\">kontejner\u00ebt Linux<\/a><\/noindex> i p\u00ebrdorin aktivisht ato. Le t\u00eb shohim se \u00e7far\u00eb ndodh kur p\u00ebrdorim <noindex><a rel=\"nofollow\" href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/systemd-nspawn.html\">systemd-nspawn<\/a><\/noindex> p\u00ebr t\u00eb nisur nj\u00eb konteiner, duke p\u00ebrdorur mjetin <code>mountsnoop<\/code> nga <code>bcc<\/code>.<\/p>\n<p>Thirrja <code>system-nspawn<\/code> nis nj\u00eb konteiner gjat\u00eb operimit <code>mountsnoop.py<\/code>.<\/p>\n<p>Le t\u00eb shohim se \u00e7far\u00eb dol\u00ebn;<\/p>\n<p>Fillimi <code>mountsnoop<\/code> gjat\u00eb \"ngarkimit\" t\u00eb konteinerit, tregon se mjedisi i ekzekutimit t\u00eb konteinerit \u00ebsht\u00eb duksh\u00ebm i varur nga montimi lidh\u00ebs (Tregohet vet\u00ebm fillimi i daljes s\u00eb gjat\u00eb).<\/p>\n<p>K\u00ebtu <code>systemd-nspawn<\/code> siguron skedar\u00ebt e p\u00ebrzgjedhur n\u00eb <code>procfs<\/code> dhe <code>sysfs<\/code> t\u00eb host-it n\u00eb konteiner si rrug\u00eb n\u00eb <code>rootfs<\/code>. P\u00ebrve\u00e7 <code>MS_BIND<\/code> flam\u00ebs, e cila vendos montimin e lidhjes, disa flamuj t\u00eb tjer\u00eb n\u00eb sistemin e montimit p\u00ebrcaktojn\u00eb marr\u00ebdh\u00ebnien midis ndryshimeve n\u00eb hap\u00ebsir\u00ebn em\u00ebrore t\u00eb hostit dhe kontejnerit. P\u00ebr shembull, montimi i lidhjes mund t\u00eb kaloj\u00eb ndryshimet n\u00eb <code>\/proc<\/code> dhe <code>\/sys<\/code> kontejner, ose t'i fsheh ato n\u00eb var\u00ebsi t\u00eb thirrjes. <\/p>\n<p><b>P\u00ebrfundimi<\/b><\/p>\n<p>Kuptimi i brendsh\u00ebm t\u00eb Linux-it mund t\u00eb duket si nj\u00eb detyr\u00eb e pamundur, pasi vet\u00eb b\u00ebrthama p\u00ebrmban nj\u00eb sasi t\u00eb madhe kodi, duke l\u00ebn\u00eb p\u00ebrjashtim aplikacionet e hap\u00ebsir\u00ebs p\u00ebrdoruese t\u00eb Linux-it dhe nd\u00ebrfaqet e thirrjeve sistemore n\u00eb bibliotekat n\u00eb gjuh\u00ebn C, si <code>glibc<\/code>. Nj\u00eb nga m\u00ebnyrat p\u00ebr t\u00eb p\u00ebrparuar \u00ebsht\u00eb t\u00eb lexoni kodin burimor t\u00eb nj\u00eb n\u00ebn sistemi t\u00eb b\u00ebrtham\u00ebs me fokus n\u00eb kuptimin e thirrjeve sistemore dhe titujve t\u00eb drejtuar n\u00eb hap\u00ebsir\u00ebn e p\u00ebrdoruesit, si dhe nd\u00ebrfaqet kryesore t\u00eb brendshme t\u00eb b\u00ebrtham\u00ebs, p\u00ebr shembull, tabela <code>file_operations<\/code>. Operacionet e skedar\u00ebve sigurojn\u00eb parimin \"gjith\u00e7ka \u00ebsht\u00eb skedar\", k\u00ebshtu q\u00eb menaxhimi i tyre \u00ebsht\u00eb ve\u00e7an\u00ebrisht i k\u00ebndsh\u00ebm. Skedar\u00ebt burimor\u00eb t\u00eb b\u00ebrtham\u00ebs n\u00eb gjuh\u00ebn C ndodhen n\u00eb katalogun e nivelit m\u00eb t\u00eb lart\u00eb <code>fs\/<\/code> p\u00ebrfaq\u00ebsojn\u00eb implementimin e sistemeve virtuale t\u00eb skedar\u00ebve, t\u00eb cilat jan\u00eb nj\u00eb shtres\u00eb mbules\u00eb q\u00eb ofron nj\u00eb kompatibilitet t\u00eb gjer\u00eb dhe relativisht t\u00eb thjesht\u00eb me sistemet e njohura t\u00eb skedar\u00ebve dhe pajisjet e ruajtjes. Montimi me lidhje dhe mbivendosje p\u00ebrmes hap\u00ebsirave emrash n\u00eb Linux \u00ebsht\u00eb magjia e VFS, e cila b\u00ebn t\u00eb mundur krijimin e kontejner\u00ebve dhe sistemeve t\u00eb skedar\u00ebve t\u00eb leximit vet\u00ebm. N\u00eb kombinim me studimin e kodit burimor, mjeti i b\u00ebrtham\u00ebs eBPF dhe nd\u00ebrfaqja e tij <code>bcc<\/code><br \/>\n e b\u00ebjn\u00eb studimin e b\u00ebrtham\u00ebs m\u00eb t\u00eb thjesht\u00eb se kurr\u00eb.<\/p>\n<p>Shok\u00eb, na shkruani n\u00ebse ky artikull ishte i dobish\u00ebm p\u00ebr ju? Ndoshta keni ndonj\u00eb koment apo v\u00ebrejtje? P\u00ebr ata q\u00eb jan\u00eb t\u00eb interesuar n\u00eb kursin \"Administratori Linux\", ju ftojm\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/u5Jw\/\">dit\u00ebn e hapur<\/a><\/noindex>, i cili do t\u00eb zhvillohet m\u00eb 18 prill.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">Pjesa e par\u00eb.<\/a><\/noindex><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/447748\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31333","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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439\" \/>\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\/sq\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442? \u0427\u0430\u0441\u0442\u044c 2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\" \/>\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-31T18:40:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:40:44+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\udd47Sistemat e virtualizuar t\u00eb skedar\u00ebve n\u00eb Linux: pse i nevojiten dhe si funksionojn\u00eb? Pjesa 2 | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve, po ndajm\u00eb me ju pjes\u00ebn e dyt\u00eb t\u00eb publikimit \"Sistemet virtuale t\u00eb skedar\u00ebve n\u00eb Linux: p\u00ebrse jan\u00eb t\u00eb nevojshme dhe si funksionojn\u00eb?\" Pjesa e par\u00eb mund t\u00eb lexohet k\u00ebtu. Kujtojm\u00eb, kjo seri publikimesh \u00ebsht\u00eb e lidhur me nisjen e nj\u00eb fluksi t\u00eb ri n\u00eb kursin \"Administratori Linux\", i cili do t\u00eb filloj\u00eb shum\u00eb shpejt. Si t\u00eb monitoroni VFS me mjete eBPF dhe bcc M\u00eb e thjeshta","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442? \u0427\u0430\u0441\u0442\u044c 2 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","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-31T18:40:44+00:00","article:modified_time":"2019-10-31T18:40:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31333","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-21 05:41:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:18:40","updated":"2026-01-21 05:41:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=31333"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/23299"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=31333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=31333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=31333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}