Inodi so struktura za upra­vlja­nje da­to­teč­nih sistemov v ope­ra­cij­skih sistemih tipa Unix. V tem kontekstu so inodi po­dat­kov­ni glavi v seznamih inodov ali drugih podobnih zbirkah podatkov, ki vsebujejo me­ta­po­dat­ke o shra­nje­nih datotekah. Ti me­ta­po­dat­ki vsebujejo in­for­ma­ci­je, kot so pravice dostopa, mesto shra­nje­va­nja, skupine, upo­rab­ni­ške iden­ti­fi­ka­cij­ske številke ter čas, ko so bile izvedene spremembe ali ko je bil dostop do datoteke.

Kaj je inod?

Inode je okrajšava za »index node« (indeksni vozlišče). Uporablja se kot oblika upra­vlja­nja datotek, ki ima pomembno vlogo že od uvedbe ope­ra­cij­skih sistemov Unix in tistih, ki temeljijo na njem, kot sta Linux ali macOS. Glavna naloga inodov v da­to­teč­nih sistemih je skli­ce­va­nje na določene datoteke v sistemu , njihovo upra­vlja­nje in iskanje z uporabo edin­stve­nih in ne­spre­men­lji­vih številk inodov. Ker gre za opre­de­lje­no po­dat­kov­no strukturo, inodi opisujejo in upra­vlja­jo posamezne datoteke s pomočjo me­ta­po­dat­kov. Vrsta da­to­teč­ne­ga sistema določa, kateri me­ta­po­dat­ki se upo­ra­blja­jo.

Čeprav inodi sami po sebi ne vsebujejo podatkov o imenu datoteke, na splošno vsebujejo naslednje podatke o datotekah in da­to­teč­nih blokih:

  • Vrsta in dostopne pravice
  • Število trdih povezav
  • ID upo­rab­ni­ka (UID)
  • ID skupine (GID) ali GUI
  • Velikost datoteke v bajtih
  • Datum zadnje spremembe (mtime)
  • Datum zadnje spremembe statusa (ctime)
  • Datum zadnjega dostopa (atime)
  • Naslov po­dat­kov­nih blokov
  • Naslov po­sre­dne­ga bloka
  • Število povezav
  • Številka različice

Kako delujejo inodi?

Unix sistemi ne upra­vlja­jo sektorjev diskovnih particij s pomočjo zdru­že­va­nja v skupine, temveč upo­ra­blja­jo po­dat­kov­ne bloke. Za razliko od sistemov DOS, ki upo­ra­blja­jo tabele FAT, se za upra­vlja­nje in skli­ce­va­nje na podatke v imenikih upo­ra­blja­jo inodi. Če so podatki na trdem disku shranjeni v določenih po­dat­kov­nih blokih, lahko hitro pride do tega, da datoteka preseže velikost bloka. Sistem nato poišče drug raz­po­lo­žljiv blok, v katerega shrani pre­o­sta­nek datoteke. Tu pridejo v igro inodi.

Inodi za­go­ta­vlja­jo, da je mogoče podatke, shranjene v sistemu, najti s pomočjo re­fe­renč­nih in imeniških podatkov ter inodov in njihove edin­stve­ne številke. Velika prednost tega je, da se ne zanašajo na ime datoteke. Če se datoteka kopira in pre­i­me­nu­je, jo je še vedno mogoče najti z isto številko inoda kot pri izvirni datoteki. Tako je v primeru trdih povezav, ki jih ustvarijo upo­rab­ni­ki z ukazom Linux in. Ta oblika no­tra­nje­ga vodenja evidence ima to prednost, da inodi lahko vodijo tako do izvirnih datotek kot do var­no­stnih kopij, ne da bi zasedali več po­mnil­ni­ka.

Ker so inodi v različnih sistemih na­sta­vlje­ni različno, lahko datoteka presega velikost raz­po­lo­žlji­vih inodov. V tem primeru prvotni inod napotuje na drug inod, ki se včasih imenuje blok po­sre­do­va­nja in vsebuje preostale me­ta­po­dat­ke.

Note

Ker ste obseg inodov določili že na začetku, se lahko v nekaterih oko­li­šči­nah zgodi, da raz­po­lo­žlji­vih inodov ne bo dovolj za veliko število datotek. V tem primeru bo treba datotečni sistem pre­u­re­di­ti tako, da bo vseboval večje število inodov.

Kdaj se upo­ra­blja­jo inodi?

Inodi se upo­ra­blja­jo za upra­vlja­nje in struk­tu­ri­ra­nje da­to­teč­nih sistemov ter se upo­ra­blja­jo tako v zasebnih sistemih Linux kot tudi v rešitvah za upra­vlja­ne storitve. Upo­rab­ni­ki in podjetja, ki iščejo rešitve v oblaku za strežnike z ope­ra­cij­ski­mi sistemi tipa Unix, imajo dostop do po­dat­kov­nih struktur inodov. Kot pri večini storitev v oblaku in odvisno od namena uporabe lahko izberete javni ali zasebni oblak.

Kateri datotečni sistemi podpirajo inode?

Vsi unixovski ope­ra­cij­ski sistemi, kot sta Linux ali macOS, upo­ra­blja­jo inode. Vendar se lahko struktura in sestava inodov spre­mi­nja­ta glede na podprti datotečni sistem. Pri sistemih ext2/ext3/ext4 se v obliki seznamov ali tabel inodov upo­ra­blja­jo kot opisni po­dat­kov­ni glavi. Seznam inodov se ustvari ob na­sta­vi­tvi sistema in ga kasneje ni mogoče spre­me­ni­ti. Poleg tega inodi ext4 z 256 bajti zasedajo trdi disk in jih ni mogoče uporabiti na noben drug način. V tem po­dat­kov­nem sistemu inod v vsakem primeru opisuje datoteko ali imenik v sistemu z uporabo me­ta­po­dat­kov, ki jim pripadajo.

Poleg tega obstajajo tudi bolj zapleteni datotečni sistemi, kot sta xfs ali btrfs, v katerih se inodi ustvarijo šele takrat, ko so potrebni za iskanje datotek. V tem primeru se ne ustvar­ja­jo nobeni seznami ali tabele, ki bi vsebovale inode. Druga razlika v njihovem delovanju je v razliki med inodi na disku in inodi, ki se upo­ra­blja­jo za obdelavo po­mnil­ni­ka v sistemu Linux (in-core inodi).

Pregled pomembnih ukazov za inode

Ker je število raz­po­lo­žlji­vih inodov odvisno od da­to­teč­ne­ga sistema, morate vedeti, kako prikazati število po­ra­blje­nih inodov ali prostora, ki ga ti zasedajo v sistemu. To je včasih potrebno, če v sistemu ni dovolj inodov za nove datoteke.

Ukaz za prikaz zasedenih področij v da­to­teč­nem sistemu

Če želite prikazati, kateri prostori v da­to­teč­nem sistemu so zasedeni z inodi, lahko uporabite naslednji ukaz:

~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20
shell

Ukaz za prikaz pregleda trenutne porabe inodov

Če želite videti inode, ki se trenutno upo­ra­blja­jo v sistemu, uporabite ta ukaz:

df -ih
shell

Če želite pridobiti pregled nad porabo inodov, vključno s podatki o da­to­teč­nem sistemu, skupnem številu inodov, trenutni porabi in o tem, kateri inodi so v uporabi, vnesite naslednji ukaz:

df -i
shell

Ukaz za prikaz določenih številk inodov

Če želite prikazati natančno številko inoda datoteke, lahko uporabite ta ukaz:

ls -i
shell

Ukaz za prikaz vseh datotek v inodu

Če želite vedeti, na katere datoteke (vključno z izvirniki, kopijami ali var­no­stni­mi kopijami) se nanaša inod, uporabite naslednje:

-inum
shell

Nasveti v primeru pre­o­bre­me­nje­no­sti inodov

Visoka obre­me­ni­tev inodov ne pomeni nujno, da vam zmanjkuje po­mnil­ni­ka. Včasih je povečano število inodov posledica preveč majhnih količin podatkov, kot so začasne datoteke v mapi TMP, pred­po­mnil­ni­ki ali sejne datoteke. Težavo je običajno mogoče rešiti z av­to­mat­skim brisanjem vseh datotek, starejših od 14 dni. Za to lahko izvedete cron nalogo z na­sle­dnjim ukazom:

03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1
shell

Kaj se zgodi, če imam premalo inodov?

Če nimate dovolj inodov za druge datoteke, boste v določenih oko­li­šči­nah morda opazili naslednje:

  • Apli­ka­ci­je se sesujejo
  • Izguba podatkov
  • Ne­na­čr­to­va­ni ponovni zagoni
  • Procesi se sesujejo in se ne ponovno zaženejo
  • Na­čr­to­va­ni procesi se ne zaženejo samodejno

Če je vaša zmo­glji­vost inodov dejansko izčrpana, vam pri­po­ro­ča­mo, da ustvarite več prostega prostora. Al­ter­na­tiv­no lahko izvedete razmeroma zamuden postopek pre­struk­tu­ri­ra­nja da­to­teč­ne­ga sistema in povečate največje število inodov.

Go to Main Menu