Inodi ir failu sistēmu pār­val­dī­bas struktūra Unix tipa ope­rē­tājsis­tē­mās. Šajā kontekstā inodi ir datu galvenes inodu sarakstos vai citos līdzīgos datu kopumos, kas satur metadatus par sa­gla­bā­ta­jiem failiem. Šie metadati ietver tādu in­for­mā­ci­ju kā piekļuves tiesības, sa­gla­bā­ša­nas vieta, grupas, lietotāju iden­ti­fi­ka­to­ri, kā arī laiku, kad tika veiktas izmaiņas vai kad notika piekļuve failam.

Kas ir inode?

„Inode“ ir sa­īsi­nā­jums no „index node“ (indeksa mezgls). To izmanto kā failu pār­val­dī­bas veidu, kam ir bijusi nozīmīga loma kopš Unix ope­rē­tājsis­tē­mu ie­vie­ša­nas un to uz tām balstīto sistēmu, piemēram, Linux vai macOS, pa­rā­dī­ša­nās. Galvenā funkcija, ko inodi pilda failu sistēmās , ir at­sauk­ties uz no­teik­tiem failiem sistēmā , pārvaldīt tos un atrast, iz­man­to­jot unikālus un ne­mai­nī­gus inodu numurus. Būdami definēta datu struktūra, inodi apraksta un pārvalda konkrētus failus, iz­man­to­jot metadatus. Failu sistēmas tips nosaka, kādi metadati tiek izmantoti.

Lai gan inodi paši nesatur in­for­mā­ci­ju par faila nosaukumu, tie parasti ietver šādu in­for­mā­ci­ju par failiem un failu blokiem:

  • Tips un piekļuves tiesības
  • Cietā saite skaits
  • Lietotāja ID (UID)
  • Grupas ID (GID) vai GUI
  • Faila izmērs baitos
  • Pēdējās izmaiņas datums (mtime)
  • Pēdējās statusa izmaiņas datums (ctime)
  • Pēdējās piekļuves datums (atime)
  • Datu bloku adrese
  • Netiešā bloka adrese
  • Saikņu skaits
  • Versijas numurs

Kā darbojas inodi?

Unix sistēmas diska no­da­lī­ju­mu sektorus ne­pār­val­da, iz­man­to­jot klas­te­ri­zā­ci­ju, bet gan datu blokus. Atšķirībā no DOS sistēmām, kurās tiek iz­man­to­tas FAT tabulas, di­rek­to­ri­ju datu pār­val­dī­bai un atsaucei tiek izmantoti inodi. Ja dati tiek saglabāti cietajā diskā noteiktos datu blokos, tas var ātri novest pie si­tuā­ci­jas, kad faila izmērs pārsniedz bloka atmiņu. Tad sistēma atrod citu pieejamu bloku, kurā saglabāt faila atlikušo daļu. Tieši šeit savu lomu sāk spēlēt inodi.

Inodi nodrošina, ka sistēmā sa­gla­bā­tos datus var atrast, iz­man­to­jot atsauces un katalogu datus, kā arī inodus un unikālo inoda numuru. Liela priekš­ro­cī­ba šeit ir tā, ka tie nav atkarīgi no faila nosaukuma. Ja fails tiek kopēts un pārdēvēts, to joprojām var atrast, iz­man­to­jot to pašu inodes numuru, kas bija ori­ģi­nā­la­jam failam. Tā ir gadījumā ar cietajām saitēm, kuras lietotāji izveido ar komandu Linux in. Šai iekšējās uzskaites formai ir tā priekš­ro­cī­ba, ka inodes var norādīt gan uz ori­ģi­nā­la­jiem failiem, gan uz dub­lē­ju­miem, ne­aiz­ņe­mot papildu atmiņu.

Tā kā inodi tiek kon­fi­gu­rē­ti atšķirīgi atkarībā no sistēmas, faila izmērs var pārsniegt pieejamo inodu izmēru. Šādā gadījumā sā­kot­nē­jais inods norāda uz citu inodu, ko dažkārt sauc par netiešo norādes bloku, kurā atrodas pārējie metadati.

Note

Tā kā inodu skaits tika noteikts jau sākumā, noteiktos apstākļos pie­eja­mais skaits var nebūt pie­tie­kams lielam failu skaitam. Šādā gadījumā failu sistēma būs jā­pārs­truk­tu­rē, pa­lie­li­not inodu skaitu.

Kad izmanto inodus?

Inodi tiek izmantoti failu sistēmu pār­val­dī­bai un struk­tu­rē­ša­nai, un tos lieto gan privātās Linux sistēmās, gan pār­val­dī­to pa­kal­po­ju­mu ri­si­nā­ju­mos. Lietotāji un uzņēmumi, kas meklē mā­koņ­pa­kal­po­ju­mu ri­si­nā­ju­mus serveriem ar Unix tipa ope­rē­tājsis­tē­mām, var piekļūt inodu datu struk­tū­rām. Tāpat kā lielākajā daļā mā­koņ­pa­kal­po­ju­mu un atkarībā no iz­man­to­ša­nas mērķa, jūs varat iz­vē­lē­ties publisko vai privāto mākoni.

Kuras failu sistēmas atbalsta inodus?

Visas Unix tipa ope­rē­tājsis­tē­mas, piemēram, Linux vai macOS, izmanto inodus. Tomēr atkarībā no at­bal­stī­tās failu sistēmas inodu struktūra un sastāvs var at­šķir­ties. Tieši šeit ext2/ext3/ext4 sistēmas inodu sarakstu vai tabulu veidā tiek iz­man­to­tas kā ap­rak­sto­šo datu galvenes. Inodu saraksts tiek izveidots sistēmas uz­stā­dī­ša­nas brīdī un vēlāk to nevar mainīt. Turklāt ext4 inodi ar 256 baitiem aizņem vietu cietajā diskā, un tos nevar izmantot citādi. Šajā datu sistēmā inods katrā gadījumā apraksta sistēmā esošu failu vai di­rek­to­ri­ju, iz­man­to­jot tiem pie­de­ro­šos metadatus.

Papildus tam pastāv arī sa­rež­ģī­tā­kas failu sistēmas, piemēram, XFS vai BTRFS, kurās inodi tiek izveidoti tikai tad, kad tie ir ne­pie­cie­ša­mi failu mek­lē­ša­nai. Šajā gadījumā netiek veidoti nekādi saraksti vai tabulas, kas satur inodus. Vēl viena atšķirība to darbībā ir saistīta ar diska inodiem un inodiem, kurus izmanto Linux atmiņas apstrādei (in-core inodi).

Svarīgāko inode komandu pārskats

Tā kā atkarībā no failu sistēmas pieejamo inodu skaits ir ie­ro­be­žots, ir jāzina, kā sistēmā parādīt iz­man­to­tos inodus vai inodu aizņemto vietu. Tas dažkārt ir ne­pie­cie­šams, ja sistēmā nav pie­tie­ka­mi daudz inodu citiem failiem.

Komanda, kas parāda iz­man­to­tās vietas failu sistēmā

Ja vēlaties parādīt, kuras zonas failu sistēmā izmanto inodi, varat izmantot šādu komandu:

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

Komanda, lai iegūtu pārskatu par pa­šrei­zē­jo inodu iz­man­to­ša­nu

Lai apskatītu sistēmā pašlaik iz­man­to­tos inodus, iz­man­to­jiet šo komandu:

df -ih
shell

Lai iegūtu pārskatu par inodu iz­man­to­ša­nu, tostarp par to, kurā failu sistēmā tie atrodas, kopējo inodu skaitu, pa­šrei­zē­jo iz­man­to­ša­nu un to, kuri inodi tiek izmantoti, ievadiet šo komandu:

df -i
shell

Komanda, lai parādītu konkrētus inodu numurus

Lai parādītu konkrēta faila inodes numuru, varat izmantot šo komandu:

ls -i
shell

Komanda, lai parādītu visus inodes failus

Ja vēlaties uzzināt, uz kuriem failiem (tostarp ori­ģi­nā­liem, kopijām vai dub­lē­ju­miem) atsaucas inode, iz­man­to­jiet šo komandu:

-inum
shell

Padomi gadījumā, ja inodi ir pār­slo­dzē­ti

Liela slodze uz inodiem ne vienmēr nozīmē, ka jums sāk trūkt atmiņas. Dažkārt inodu iz­man­to­ša­nas pieaugumu var iz­skaid­rot ar pārāk nelieliem datu apjomiem, piemēram, pagaidu TMP failiem, ke­šat­mi­ņām vai sesijām. Parasti šo problēmu var atrisināt, au­to­mā­tis­ki dzēšot visus failus, kas ir vecāki par 14 dienām. Lai to izdarītu, varat palaist cron uzdevumu ar šādu komandu:

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

Kas notiks, ja man būs pārāk maz inodu?

Ja jums nav pie­tie­ka­mi daudz inodu citiem failiem, noteiktos apstākļos varat sākt pamanīt kādu no šiem sim­pto­miem:

  • Prog­ram­mas avarē
  • Datu zudums
  • Ne­pa­re­dzē­tas pār­star­tē­ša­nas
  • Procesi avarē un ne­pa­lai­žas no jauna
  • Plānotie procesi ne­pa­lai­žas au­to­mā­tis­ki

Ja jūsu inodu ka­pa­ci­tā­te ir faktiski izsmelta, iesakām atbrīvot vairāk vietas. Al­ter­na­tī­vi varat veikt sa­lī­dzi­no­ši dar­bie­til­pī­gu failu sistēmas pār­struk­tu­rē­ša­nu un pa­lie­li­nāt maksimālo inodu skaitu.

Go to Main Menu