Inodai – tai failų sistemų valdymo struktūra Unix tipo ope­ra­ci­nė­se sistemose. Šiame kontekste inodai – tai duomenų antraštės inodų sąrašuose ar kitose panašiose duomenų rin­ki­niuo­se, kuriuose saugomi failų me­ta­duo­me­nys. Šiuose me­ta­duo­me­ny­se pa­tei­kia­ma tokia in­for­ma­ci­ja 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 ope­ra­ci­nių sistemų ir jų pagrindu sukurtų sistemų, tokių kaip Linux ar macOS, at­si­ra­di­mo. Pag­rin­di­nė inodų funkcija failų sistemose – nurodyti, tvarkyti ir rasti tam tikrus failus sistemoje, naudojant unikalius ir ne­kin­ta­mus inodų numerius. Inodai, kaip apibrėžta duomenų struktūra, apibūdina ir tvarko konk­re­čius failus naudodami me­ta­duo­me­nis. Failų sistemos tipas lemia, kokie me­ta­duo­me­nys yra naudojami.

Nors pačiuose inoduose nėra in­for­ma­ci­jos apie failo pa­va­di­ni­mą, jie paprastai apima šią in­for­ma­ci­ją 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
  • Pas­ku­ti­nio pakeitimo data (mtime)
  • Pas­ku­ti­nio būsenos pakeitimo data (ctime)
  • Pas­ku­ti­nio prieigos laikas (atime)
  • Duomenų blokų adresas
  • Ne­tie­sio­gi­nio krei­pi­mo­si bloko adresas
  • Nuorodų skaičius
  • Versijos numeris

Kaip veikia inodai?

Unix sistemos disko skaidinių sektorių nevaldo nau­do­da­mos klas­te­rius, o naudoja duomenų blokus. Skir­tin­gai 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 pri­va­lu­mas yra tai, kad jie ne­pri­klau­so nuo failo pa­va­di­ni­mo. Jei failas yra nu­ko­pi­juo­tas ir per­va­din­tas, jį vis tiek galima rasti naudojant tą patį inodo numerį kaip ir ori­gi­na­laus failo. Taip yra su kie­to­sio­mis nuo­ro­do­mis, kurias var­to­to­jai sukuria naudodami komandą „Linux in“. Šios vidinės apskaitos formos pri­va­lu­mas yra tai, kad inodai gali nukreipti tiek į ori­gi­na­lius failus, tiek į at­sar­gi­nes kopijas, neužimant daugiau atminties.

Kadangi inodai sistemose nustatomi skir­tin­gai, failo dydis gali viršyti turimų inodų talpą. Tokiu atveju pradinis inodas nukreipia į kitą inodą, kartais vadinamą ne­tie­sio­gi­nio nuorodos bloku, kuriame saugomi likę me­ta­duo­me­nys.

Note

Kadangi inodų skaičių nustatėte iš pat pradžių, tam tikromis ap­lin­ky­bė­mis turimų inodų gali nepakakti dideliam failų skaičiui. Tokiu atveju failų sistemą reikės per­tvar­ky­ti, nustatant didesnį inodų skaičių.

Kada naudojami inodai?

Inodai naudojami failų sistemų tvarkymui ir struk­tū­ri­za­vi­mui; jie taikomi tiek pri­va­čio­se „Linux“ sistemose, tiek valdomų paslaugų spren­di­muo­se. Var­to­to­jai ir įmonės, ieš­kan­čios debesų sprendimų ser­ve­riams su Unix tipo ope­ra­ci­nė­mis sis­te­mo­mis, gali naudotis inodų duomenų struk­tū­ro­mis. Kaip ir daugelio debesų paslaugų atveju, pri­klau­so­mai nuo naudojimo poreikių, galite rinktis viešąją arba pri­va­čią­ją debesiją.

Kokios failų sistemos palaiko inodus?

Visos Unix tipo ope­ra­ci­nės sistemos, pa­vyz­džiui, „Linux“ ar „macOS“, naudoja inodus. Tačiau, pri­klau­so­mai nuo pa­lai­ko­mos 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 ap­ra­šo­mie­ji 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ą, nau­do­da­mas jiems pri­klau­san­čius me­ta­duo­me­nis.

Be to, yra su­dė­tin­ges­nių failų sistemų, pa­vyz­dž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, ne­su­ku­ria­mos. Kitas jų veikimo skirtumas pa­si­reiš­kia tarp disko inodų ir inodų, naudojamų Linux atminties ap­do­ro­ji­mui (in-core inodai).

Svar­biau­sių inode komandų apžvalga

Kadangi pri­klau­so­mai nuo failų sistemos yra nu­sta­ty­tas galimų inodų skaičiaus limitas, reikia žinoti, kaip sistemoje parodyti pa­nau­do­tus 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 20
shell

Komanda, skirta per­žiū­rė­ti dabartinį inodų naudojimą

Norėdami pamatyti šiuo metu sistemoje nau­do­ja­mus inodus, naudokite šią komandą:

df -ih
shell

Norėdami per­žiū­rė­ti inodų naudojimo apžvalgą, įskaitant in­for­ma­ci­ją apie failų sistemą, bendrą inodų skaičių, dabartinį naudojimą ir kokie inodai yra naudojami, įveskite šią komandą:

df -i
shell

Komanda, skirta rodyti konk­re­čius inodo numerius

Norėdami parodyti konk­re­taus failo inodo numerį, galite naudoti šią komandą:

ls -i
shell

Komanda, skirta parodyti visus inodo failus

Jei norite sužinoti, į kuriuos failus (įskaitant ori­gi­na­lus, kopijas ar at­sar­gi­nes kopijas) nurodo inodas, naudokite šią komandą:

-inum
shell

Patarimai, jei inodų skaičius viršija ribą

Didelė inodų apkrova ne visada reiškia, kad baigiasi atmintis. Kartais pa­di­dė­ju­sį inodų naudojimą galima pa­aiš­kin­ti pernelyg mažais duomenų kiekiais, pa­vyz­džiui, lai­ki­nai­siais TMP failais, tal­pyk­lo­mis ar sesijomis. Šią problemą paprastai galima išspręsti au­to­ma­tiš­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>&1
shell

Kas nutiks, jei turėsiu per mažai inodų?

Jei neturite pa­kan­ka­mai inodų kitiems failams, tam tikromis ap­lin­ky­bė­mis galite pastebėti kai kuriuos iš šių reiškinių:

  • Programos užstringa
  • Duomenys pra­ran­da­mi
  • Ne­nu­ma­ty­tas per­kro­vi­mas
  • Procesai užstringa ir ne­pa­lei­džia­mi iš naujo
  • Planuoti procesai nepradeda veikti au­to­ma­tiš­kai

Jei jūsų inodų talpa iš tikrųjų yra išnaudota, re­ko­men­duo­ja­me at­lais­vin­ti daugiau vietos. Kitaip galite imtis gana sudėtingo failų sistemos per­tvar­ky­mo proceso ir padidinti maksimalų inodų skaičių.

Go to Main Menu