{"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\/et\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","title":{"rendered":"Virtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad? Osa 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere k\u00f5igile, jagame teiega teise osa postitusest \u201eVirtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad?\u201c Esimese osa saab lugeda <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">siit<\/a><\/noindex>. Tuletame meelde, et see postituste seeria on p\u00fchendatud uue kursuse <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/tjnD\/\">Linuxi administraator<\/a><\/noindex>, mis algab peagi.<\/p>\n<p><b>Kuidas j\u00e4lgida VFS-i eBPF-i ja bcc vahendite abil<\/b><\/p>\n<p>Lihtsaim viis m\u00f5ista, kuidas tuum opereerib failidega <code>sysfs<\/code> \u2013 on seda praktikas j\u00e4lgida ning k\u00f5ige lihtsam viis ARM64 j\u00e4lgimiseks on kasutada eBPF-d. eBPF (Berkeley Packet Filter l\u00fchend) koosneb virtuaalsest masinast, mis t\u00f6\u00f6tab <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/sites\/events\/files\/slides\/bpf_collabsummit_2015feb20.pdf\">tuumas<\/a><\/noindex>, mida privileegidega kasutajad saavad p\u00e4rida (<code>query<\/code>) k\u00e4surealt. Tuuma allikakoodid \u00fctlevad lugejale, mida tuum saab teha; eBPF-i vahendite k\u00e4itamine koormatud s\u00fcsteemis n\u00e4itab, mida tuum tegelikult teeb. <\/p>\n<p><img decoding=\"async\" alt=\"Virtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad? Osa 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>\u00d5nneks on eBPF-i kasutuselev\u00f5tt t\u00f5eliselt lihtne bcc <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\">bcc<\/a><\/noindex>, mis on saadaval paketina \u00fcldisest jaotusest <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/INSTALL.md\">Linux<\/a><\/noindex> ja on p\u00f5hjalikult dokumenteeritud <noindex><a rel=\"nofollow\" href=\"http:\/\/brendangregg.com\/ebpf.html\">Bernard Gregg'i poolt<\/a><\/noindex>. Vahendid <code>bcc<\/code> on Python\u2019i skriptid, millel on v\u00e4ikesed C koodil\u00f5igud, see t\u00e4hendab, et iga\u00fchel, kes tunneb m\u00f5lemat keelt, on lihtne neid kohandada. ccc <code>bcc\/tools<\/code> on 80 Python\u2019i skripti, nii et t\u00f5en\u00e4oliselt leiab arendaja v\u00f5i s\u00fcsteemiadministraator endale sobiva lahenduse. <br \/>\nKuna tahate pinnapealselt m\u00f5ista, millist t\u00f6\u00f6d VFS k\u00e4ivitatud s\u00fcsteemis teeb, proovige <code>vfscount<\/code> v\u00f5i <code>vfsstat<\/code>. See n\u00e4itab, et eeldatavalt toimuvad k\u00fcmned <code>vfs_open()<\/code> ja tema s\u00f5brad kutsuvad \u00fcles praktiliselt iga sekundi tagant.<\/p>\n<p><img decoding=\"async\" alt=\"Virtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad? Osa 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> on Python\u2019i skript, millel on C koodialamoodulid, mis lihtsalt loendavad VFS funktsioonikutsed.<\/p><\/blockquote>\n<p>Toome v\u00e4lja lihtsama n\u00e4ite ja vaatame, mis juhtub, kui sisestame USB-m\u00e4lupulga arvutisse ja s\u00fcsteem tuvastab selle.<\/p>\n<p><img decoding=\"async\" alt=\"Virtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad? Osa 2\" src=\"\/wp-content\/uploads\/2019\/04\/5c756fe1b6d4c5906631e5da24b59dca.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>eBPF abil saab n\u00e4ha, mis juhtub <code>\/sys<\/code>, kui USB-m\u00e4lupulk on sisse sisestatud. Siin on esitatud lihtne ja keeruline n\u00e4ide.<\/p><\/blockquote>\n<p>\u00dches \u00fclaltoodud n\u00e4ites <code>bcc<\/code> vahend <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/tools\/trace_example.txt\">trace.py<\/a><\/noindex> prindib s\u00f5numi, kui k\u00e4ivitatakse k\u00e4sk <code>sysfs_create_files()<\/code>. N\u00e4eme, et <code>sysfs_create_files()<\/code> oli k\u00e4ivitatud <code>kworker<\/code> puhvri vastuseks sellele, et m\u00e4lupulk oli sisestatud, aga milline fail selle k\u00e4igus loodi? Teine n\u00e4ide n\u00e4itab eBPF'i kogu j\u00f5udu. Siin <code>trace.py<\/code> v\u00e4ljastab tuuma j\u00e4lgimise (kernel backtrace) (valik -K) ja faili nime, mis on loodud <code>sysfs_create_files()<\/code>. \u00dcksikute avalduste sisestamine on C-kood, mis sisaldab kergesti \u00e4ratuntavat formaadistringi, mida pakub Pythoni skript, mis k\u00e4ivitab LLVM <i>just-in-time kompilaator<\/i>. See string kompileeritakse ja t\u00e4idetakse tuuma sees virtuaalses masinas. Funktsiooni t\u00e4ielik signatuur <code>sysfs_create_files()<\/code> peab olema teise k\u00e4su j\u00e4rgi reprodutseeritud, et formaadistring saaks viidata \u00fchele parameetrist. Vigade olemasolu selles C-koodi fragmentis toob kaasa tuntavad C-kompilaatori vead. N\u00e4iteks, kui parameeter -l on vahele j\u00e4etud, n\u00e4ete \"Failed to compile BPF text.\" Arendajad, kes tunnevad C-d ja Pythonit h\u00e4sti, leiavad t\u00f6\u00f6riistad <code>bcc<\/code> lihtsateks laiendamiseks ja muutmiseks.<\/p>\n<p>Kui USB-m\u00e4hi on \u00fchendatud, n\u00e4itab tuuma j\u00e4lgimine, et PID 7711 on voog <code>kworker<\/code>, mis l\u00f5i faili <code>\"events\"<\/code> ja <code>sysfs<\/code>. Vastavalt sellele, kutsega <code>sysfs_remove_files()<\/code> n\u00e4itab, et m\u00e4hi eemaldamine viis faili eemaldamiseni <code>events<\/code>, mis vastab viidatud lugemisotsustamise kontseptsioonile. Samas, vaadates <code>sysfs_create_link()<\/code> eBPF-i juures USB-m\u00e4hi \u00fchendamisel n\u00e4itab, et on loodud v\u00e4hemalt 48 s\u00fcmboolset linki.<\/p>\n<p>Mis siis on faili events m\u00f5te? Kasutades <noindex><a rel=\"nofollow\" href=\"http:\/\/northstar-www.dartmouth.edu\/doc\/solaris-forte\/manuals\/c\/user_guide\/cscope.html\">cscope<\/a><\/noindex> otsimiseks <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>, n\u00e4itab see, et ta kutsub <code>disk_add_events()<\/code>, ja kas <code>\"media_change\"<\/code>, v\u00f5i <code>v\u00f5i<\/code> \"eject_request\"<\/p>\n<p><b>v\u00f5ivad olla salvestatud s\u00fcndmuste faili. Siin tuuma plokkkiht teavitab userspace'i \"disk\" ilmumisest ja eemaldamisest. Pange t\u00e4hele, kui informatiivne on see uurimismeetod USB-m\u00e4hi \u00fchendamise n\u00e4itel v\u00f5rreldes katsetega m\u00f5ista, kuidas k\u00f5ik t\u00f6\u00f6tab ainult l\u00e4htekoodidest.<\/b><\/p>\n<p>Ainult lugemiseks m\u00f5eldud juurfailis\u00fcsteemid muudavad sisseehitatud seadmed v\u00f5imalikuks. <code>Muidugi ei l\u00fclita keegi teenust v\u00f5i oma arvutit v\u00e4lja, t\u00f5mmates pistiku seinast v\u00e4lja. Aga miks? K\u00f5ik see, et f\u00fc\u00fcsiliste salvestusseadmete peal olevad kinnitatud failis\u00fcsteemid v\u00f5ivad sisaldada edasi l\u00fckatud kirjeid ja andmestruktuurid, mis salvestavad nende olekud, ei pruugi s\u00fcnkroniseeruda salvestusseadme kirjetega. Kui see juhtub, peavad s\u00fcsteemi omanikud ootama j\u00e4rgmise laadimisega, et k\u00e4ivitada utiliiti<\/code> fsck filesystem-recovery and, in the worst case, lose data. <\/p>\n<p>Siiski, k\u00f5ik me teame, et paljud IoT seadmed, samuti ruuterid, termostaadid ja autod t\u00f6\u00f6tavad n\u00fc\u00fcd Linuxi all. Paljudel neist seadmetest pole praktiliselt kasutajaliidest ning nende \"puhtalt\" v\u00e4ljal\u00fclitamine ei ole v\u00f5imalik. Kujutage ette, et teie auto k\u00e4ivitub t\u00fchja akuga, kui juhtseade on <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.automotivelinux.org\/_media\/eg-rhsa\/agl_referencehardwarespec_v0.1.0_20171018.pdf\">Linux<\/a><\/noindex> alati \u00fcles ja alla. Kuidas s\u00fcsteem siis k\u00e4ivitub ilma pika <code>fsck<\/code>, kui mootor l\u00f5puks t\u00f6\u00f6le hakkab? Vastus on lihtne. Sisetooted toetuvad juurkataloogile <noindex><a rel=\"nofollow\" href=\"https:\/\/elinux.org\/images\/1\/1f\/Read-only_rootfs.pdf\">ainult lugemiseks<\/a><\/noindex> (l\u00fchendatult <code>ro-rootfs<\/code> (read-only root fileystem)). <\/p>\n<p><code>ro-rootfs<\/code> pakuvad palju eeliseid, mis on v\u00e4hem ilmsed kui autentsus. \u00dcks eelis on see, et pahavara ei saa kirjutada <code>\/usr<\/code> v\u00f5i <code>\/lib<\/code>, kuna \u00fckski Linuxi protsess ei saa sinna kirjutada. Teine on see, et suuresti muutmatu failis\u00fcsteem on kriitilise t\u00e4htsusega kaugseade toetamiseks, kuna abipersonal kasutab kohalikke s\u00fcsteeme, mis on nominaalselt identsed kohapealsete s\u00fcsteemidega. V\u00f5ib-olla on k\u00f5ige olulisem (aga ka k\u00f5ige petlikum) eelis see, et ro-rootfs sunnib arendajaid otsustama, millised s\u00fcsteemi objektid j\u00e4\u00e4vad muutumatuks, juba s\u00fcsteemi projekteerimise etapis. T\u00f6\u00f6 ro-rootfs-iga v\u00f5ib olla ebamugav ja valulik, nagu see sageli on const muutujate puhul programmeerimiskeeltes, kuid nende eelised katavad h\u00f5lpsasti lisakulud.<\/p>\n<p>Meetodi loomine <code>rootfs<\/code> ainult lugemiseks n\u00f5uab lisaponnistusi sissejuhatavate s\u00fcsteemide arendajatelt, ja siin tulebki m\u00e4ngu VFS. Linux n\u00f5uab, et failid oleksid <code>\/var<\/code> kirjutamiseks kergesti k\u00e4ttesaadavad, ning paljud populaarsed rakendused, mis k\u00e4ivitavad sissejuhatavaid s\u00fcsteeme, p\u00fc\u00fcavad tavaliselt luua konfiguratsiooni <code>dot-failid<\/code> ja <code>$HOME<\/code>. \u00dcks lahendus kodukausta konfiguratsioonifailide jaoks on tavaliselt nende eelnevalt genereerimine ja koostamine <code>rootfs<\/code>. \u00dcheks v\u00f5imaluseks on see, et seda montaa\u017e on eraldi osasse, mis on kirjutamiseks kergesti k\u00e4tess\u00e4adav, samas kui enda <code>\/var<\/code> mount on ainult lugemiseks. Teine populaarne alternatiiv on kasutada siduvaid v\u00f5i kattuvaid mount'e (bind or overlay mounts). <code>\/<\/code> installitakse ainult lugemiseks. Teine populaarne alternatiiv on sidumismountide v\u00f5i pealismountide (bind or overlay mounts) kasutamine.<\/p>\n<p><b>Seotud ja kattuvad montaa\u017eid, nende kasutamine konteinerites<\/b> <\/p>\n<p>K\u00e4su t\u00e4itmine <code>man mount<\/code> \u2013 parim viis teada saada seotud ja kattuvatest montaa\u017eidest, mis annavad arendajatele ja s\u00fcsteemiadministraatoritele v\u00f5imaluse luua failis\u00fcsteem \u00fches teed, ning seej\u00e4rel anda see rakendustele teises. Sisseehitatud s\u00fcsteemide jaoks t\u00e4hendab see v\u00f5imalust hoida faile <code>\/var<\/code> ainult lugemise \u00f5igusega v\u00e4lkm\u00e4luseadmest, kuid kattuva v\u00f5i seondumise montaa\u017ei tee kaudu <code>tmpfs<\/code> ja <code>\/var<\/code> k\u00e4ivitamisel v\u00f5imaldab rakendustel sinna m\u00e4rkmeid kirjutada (scrawl). J\u00e4rgmisel sissel\u00fclitamisel j\u00e4\u00e4b muudatused <code>\/var<\/code> kaotsi. Kattuv montaa\u017e loob \u00fchinemise <code>tmpfs<\/code> ja alloleva failis\u00fcsteemi vahel ning lubab teha n\u00e4iliselt muudatusi olemasolevates failides <code>ro-tootf<\/code> kui seotud montaa\u017e v\u00f5ib teha uusi t\u00fchi <code>tmpfs<\/code> kaustad n\u00e4htavaks kirjutamiseks <code>ro-rootfs<\/code> tee p\u00f5him\u00f5ttena. Samas kui <code>overlayfs<\/code> on \u00f5ige (<code>proper<\/code>) failis\u00fcsteemi t\u00fc\u00fcp, on seotud montaa\u017e rakendatud <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/filesystems\/sharedsubtree.txt\">VFS-nimede ruumis<\/a><\/noindex>.<\/p>\n<p>\u00dcksikasjaliku nakke- ja seondumise montaa\u017ei p\u00f5hjal ei ole \u00fcllatav, et <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/os\/docs\/latest\/kernel-modules.html\">Linuxi konteinerid<\/a><\/noindex> kasutavad neid aktiivselt. Vaatame, mis toimub, kui kasutame <noindex><a rel=\"nofollow\" href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/systemd-nspawn.html\">systemd-nspawn<\/a><\/noindex> konteineri k\u00e4ivitamiseks, kasutades t\u00f6\u00f6riista <code>mountsnoop<\/code> alates <code>bcc<\/code>.<\/p>\n<p>Kutsumine <code>system-nspawn<\/code> k\u00e4ivitab konteineri t\u00f6\u00f6tamise ajal <code>mountsnoop.py<\/code>.<\/p>\n<p>Vaatame, mis v\u00e4lja tuli:<\/p>\n<p>K\u00e4ivitamine <code>mountsnoop<\/code> \u201ekonteineri laadimise\u201d ajal n\u00e4itab, et konteineri t\u00f6\u00f6 keskkond s\u00f5ltub tugevalt seondumisest (Kuvatakse ainult pika v\u00e4ljundi algus).<\/p>\n<p>Siin <code>systemd-nspawn<\/code> toob valitud failid <code>procfs<\/code> ja <code>sysfs<\/code> k\u00fclalistelt konteinerisse teedena <code>rootfs<\/code>. Lisaks <code>MS_BIND<\/code> lipule, mis seab seondumise montaa\u017ei, m\u00e4\u00e4ravad m\u00f5ned teised lipud monteeritavas s\u00fcsteemis suhte muutuste vahel, mis toimuvad k\u00fclaliste nimederuumis ja konteineris. N\u00e4iteks v\u00f5ib seondumine kas j\u00e4tta muutused <code>\/proc<\/code> ja <code>\/sys<\/code> konteinerisse v\u00f5i varjata neid s\u00f5ltuvalt kutsest. <\/p>\n<p><b>Kokkuv\u00f5te<\/b><\/p>\n<p>Linuxi sisemise struktuuri m\u00f5istmine v\u00f5ib tunduda \u00fcletamatu \u00fclesandena, sest ise kerneli sees on tohutu hulgal koodi, k\u00f5rvale j\u00e4ttes Linuxi kasutajaliidese rakendused ja s\u00fcsteemi kutsumise liidesed C keeles, nagu <code>glibc<\/code>. \u00dcks viis edusamme saavutada on lugeda \u00fche alams\u00fcsteemi l\u00e4htekoodi, keskendudes s\u00fcsteemik\u00f5nede ja kasutajaruumi suunatud peade arusaamisele ning tuumade peamistele sisemistele liidestele, n\u00e4iteks tabelile. <code>file_operations<\/code>. Failitegevused j\u00e4rgivad p\u00f5him\u00f5tet \u201ek\u00f5ik on fail\u201d, seet\u00f5ttu on nende haldamine eriti nauditav. Tuuma l\u00e4htefailid keeles C asuvad \u00fclemise katalooge. <code>fs\/<\/code> esindavad virtuaalsete failis\u00fcsteemide rakendust, mis on kaitsekihina, pakkudes laialdast ja suhteliselt lihtsat \u00fchilduvust populaarsete failis\u00fcsteemide ja salvestusseadmitega. Lingitud ja \u00fclekattumiseks mountimine Linuxi nimede kaudu on VFS-i maagia, mis v\u00f5imaldab luua konteinerite ja ainult lugemiseks m\u00f5eldud juurkatalooge. Koos l\u00e4htekoodi uurimisega, tuuma eBPF ja selle liidesed <code>bcc<\/code><br \/>\n muudavad tuuma uurimise lihtsamaks kui kunagi varem.<\/p>\n<p>S\u00f5brad, palun kirjutage, kas see artikkel oli teile kasulik? V\u00f5ib-olla on teil m\u00f5ni kommentaar v\u00f5i t\u00e4helepanek? Need, keda huvitab kursus \u201eLinuxi administraator\u201d, ootame teid <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/u5Jw\/\">avatud uste p\u00e4ev<\/a><\/noindex>, mis toimub 18. aprillil.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">Esimene osa.<\/a><\/noindex><br \/>\n<br \/>Allikas: <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.1.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\" \/>\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\/et\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Linuxi virtuaalsed failis\u00fcsteemid: miks neid on vaja ja kuidas need t\u00f6\u00f6tavad? Osa 2 | ProHoster","description":"Tere k\u00f5igile, jagame teiega teise osa postitusest \u201eVirtuaalsed failis\u00fcsteemid Linuxis: miks need on vajalikud ja kuidas need t\u00f6\u00f6tavad?\u201c Esimese osa saab lugeda","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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","og:url":"https:\/\/prohoster.info\/et\/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\/et\/wp-json\/wp\/v2\/posts\/31333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=31333"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23299"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}