Kas yra inodas? Jo funkcijos ir naudojimo paaiškinimas
Inodai – tai failų sistemų valdymo struktūra Unix tipo operacinėse sistemose. Šiame kontekste inodai – tai duomenų antraštės inodų sąrašuose ar kitose panašiose duomenų rinkiniuose, kuriuose saugomi failų metaduomenys. Šiuose metaduomenyse pateikiama tokia informacija kaip prieigos teisės, saugojimo vieta, grupės, vartotojo ID arba pakeitimų atlikimo ar prieigos prie failo laikas.
Kas yra inodas?
„Inode“ yra trumpinys nuo „index node“ (indekso mazgas). Tai failų tvarkymo būdas, kuris vaidina svarbų vaidmenį nuo pat Unix operacinių sistemų ir jų pagrindu sukurtų sistemų, tokių kaip Linux ar macOS, atsiradimo. Pagrindinė inodų funkcija failų sistemose – nurodyti, tvarkyti ir rasti tam tikrus failus sistemoje, naudojant unikalius ir nekintamus inodų numerius. Inodai, kaip apibrėžta duomenų struktūra, apibūdina ir tvarko konkrečius failus naudodami metaduomenis. Failų sistemos tipas lemia, kokie metaduomenys yra naudojami.
Nors pačiuose inoduose nėra informacijos apie failo pavadinimą, jie paprastai apima šią informaciją apie failus ir failų blokus:
- Tipas ir prieigos teisės
- Kietųjų nuorodų skaičius
- Vartotojo ID (UID)
- Grupės ID (GID) arba GUI
- Failo dydis baitais
- Paskutinio pakeitimo data (mtime)
- Paskutinio būsenos pakeitimo data (ctime)
- Paskutinio prieigos laikas (atime)
- Duomenų blokų adresas
- Netiesioginio kreipimosi bloko adresas
- Nuorodų skaičius
- Versijos numeris
Kaip veikia inodai?
Unix sistemos disko skaidinių sektorių nevaldo naudodamos klasterius, o naudoja duomenų blokus. Skirtingai nuo DOS sistemų, kurios naudoja FAT lenteles, katalogų duomenims valdyti ir nurodyti naudojami inodai. Jei duomenys kietajame diske saugomi nustatytų dydžių duomenų blokuose, tai gali greitai sukelti situaciją, kai failas viršija bloko talpą. Tuomet sistema suranda kitą laisvą bloką, kuriame išsaugo likusią failo dalį. Būtent čia į pagalbą ateina inodai.
Inodai užtikrina, kad sistemoje išsaugoti duomenys būtų randami naudojant nuorodų ir katalogų duomenis, taip pat pačius inodus ir unikalų inodo numerį. Didžiulis privalumas yra tai, kad jie nepriklauso nuo failo pavadinimo. Jei failas yra nukopijuotas ir pervadintas, jį vis tiek galima rasti naudojant tą patį inodo numerį kaip ir originalaus failo. Taip yra su kietosiomis nuorodomis, kurias vartotojai sukuria naudodami komandą „Linux in“. Šios vidinės apskaitos formos privalumas yra tai, kad inodai gali nukreipti tiek į originalius failus, tiek į atsargines kopijas, neužimant daugiau atminties.
Kadangi inodai sistemose nustatomi skirtingai, failo dydis gali viršyti turimų inodų talpą. Tokiu atveju pradinis inodas nukreipia į kitą inodą, kartais vadinamą netiesioginio nuorodos bloku, kuriame saugomi likę metaduomenys.
Kadangi inodų skaičių nustatėte iš pat pradžių, tam tikromis aplinkybėmis turimų inodų gali nepakakti dideliam failų skaičiui. Tokiu atveju failų sistemą reikės pertvarkyti, nustatant didesnį inodų skaičių.
Kada naudojami inodai?
Inodai naudojami failų sistemų tvarkymui ir struktūrizavimui; jie taikomi tiek privačiose „Linux“ sistemose, tiek valdomų paslaugų sprendimuose. Vartotojai ir įmonės, ieškančios debesų sprendimų serveriams su Unix tipo operacinėmis sistemomis, gali naudotis inodų duomenų struktūromis. Kaip ir daugelio debesų paslaugų atveju, priklausomai nuo naudojimo poreikių, galite rinktis viešąją arba privačiąją debesiją.
Kokios failų sistemos palaiko inodus?
Visos Unix tipo operacinės sistemos, pavyzdžiui, „Linux“ ar „macOS“, naudoja inodus. Tačiau, priklausomai nuo palaikomos failų sistemos, inodų struktūra ir sudėtis gali skirtis. Būtent čia „ext2“, „ext3“ ir „ext4“ sistemose inodų sąrašai arba lentelės naudojami kaip aprašomieji duomenų antraštės. Inodų sąrašas sukuriama sistemos nustatymo metu ir vėliau negali būti keičiama. Be to, 256 baitų dydžio ext4 inodai užima vietą kietajame diske ir negali būti naudojami jokiu kitu būdu. Šioje duomenų sistemoje inodas kiekvienu atveju apibūdina sistemos failą arba katalogą, naudodamas jiems priklausančius metaduomenis.
Be to, yra sudėtingesnių failų sistemų, pavyzdžiui, XFS ar BTRFS, kuriose inodai sukuriami tik tada, kai jų prireikia failams surasti. Šiuo atveju sąrašai ar lentelės, kuriose būtų saugomi inodai, nesukuriamos. Kitas jų veikimo skirtumas pasireiškia tarp disko inodų ir inodų, naudojamų Linux atminties apdorojimui (in-core inodai).
Svarbiausių inode komandų apžvalga
Kadangi priklausomai nuo failų sistemos yra nustatytas galimų inodų skaičiaus limitas, reikia žinoti, kaip sistemoje parodyti panaudotus inodus arba inodų užimamą vietą. Tai kartais būtina, jei sistemoje nepakanka inodų kitiems failams.
Komanda, skirta rodyti užimtą vietą failų sistemoje
Jei norite pamatyti, kokias sritis failų sistemoje užima inodai, galite naudoti šią komandą:
~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20shellKomanda, skirta peržiūrėti dabartinį inodų naudojimą
Norėdami pamatyti šiuo metu sistemoje naudojamus inodus, naudokite šią komandą:
df -ihshellNorėdami peržiūrėti inodų naudojimo apžvalgą, įskaitant informaciją apie failų sistemą, bendrą inodų skaičių, dabartinį naudojimą ir kokie inodai yra naudojami, įveskite šią komandą:
df -ishellKomanda, skirta rodyti konkrečius inodo numerius
Norėdami parodyti konkretaus failo inodo numerį, galite naudoti šią komandą:
ls -ishellKomanda, skirta parodyti visus inodo failus
Jei norite sužinoti, į kuriuos failus (įskaitant originalus, kopijas ar atsargines kopijas) nurodo inodas, naudokite šią komandą:
-inumshellPatarimai, jei inodų skaičius viršija ribą
Didelė inodų apkrova ne visada reiškia, kad baigiasi atmintis. Kartais padidėjusį inodų naudojimą galima paaiškinti pernelyg mažais duomenų kiekiais, pavyzdžiui, laikinaisiais TMP failais, talpyklomis ar sesijomis. Šią problemą paprastai galima išspręsti automatiškai ištrinant visus failus, kurių senumas viršija 14 dienų. Tam galite paleisti cron užduotį su šia komanda:
03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1shellKas nutiks, jei turėsiu per mažai inodų?
Jei neturite pakankamai inodų kitiems failams, tam tikromis aplinkybėmis galite pastebėti kai kuriuos iš šių reiškinių:
- Programos užstringa
- Duomenys prarandami
- Nenumatytas perkrovimas
- Procesai užstringa ir nepaleidžiami iš naujo
- Planuoti procesai nepradeda veikti automatiškai
Jei jūsų inodų talpa iš tikrųjų yra išnaudota, rekomenduojame atlaisvinti daugiau vietos. Kitaip galite imtis gana sudėtingo failų sistemos pertvarkymo proceso ir padidinti maksimalų inodų skaičių.