Kas ir inode? Tās funkcijas un pielietojums
Inodi ir failu sistēmu pārvaldības struktūra Unix tipa operētājsistēmās. Šajā kontekstā inodi ir datu galvenes inodu sarakstos vai citos līdzīgos datu kopumos, kas satur metadatus par saglabātajiem failiem. Šie metadati ietver tādu informāciju kā piekļuves tiesības, saglabāšanas vieta, grupas, lietotāju identifikatori, kā arī laiku, kad tika veiktas izmaiņas vai kad notika piekļuve failam.
Kas ir inode?
„Inode“ ir saīsinājums no „index node“ (indeksa mezgls). To izmanto kā failu pārvaldības veidu, kam ir bijusi nozīmīga loma kopš Unix operētājsistēmu ieviešanas un to uz tām balstīto sistēmu, piemēram, Linux vai macOS, parādīšanās. Galvenā funkcija, ko inodi pilda failu sistēmās , ir atsaukties uz noteiktiem failiem sistēmā , pārvaldīt tos un atrast, izmantojot unikālus un nemainīgus inodu numurus. Būdami definēta datu struktūra, inodi apraksta un pārvalda konkrētus failus, izmantojot metadatus. Failu sistēmas tips nosaka, kādi metadati tiek izmantoti.
Lai gan inodi paši nesatur informāciju par faila nosaukumu, tie parasti ietver šādu informāciju 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 nodalījumu sektorus nepārvalda, izmantojot klasterizāciju, bet gan datu blokus. Atšķirībā no DOS sistēmām, kurās tiek izmantotas FAT tabulas, direktoriju datu pārvaldībai un atsaucei tiek izmantoti inodi. Ja dati tiek saglabāti cietajā diskā noteiktos datu blokos, tas var ātri novest pie situācijas, 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ā saglabātos datus var atrast, izmantojot atsauces un katalogu datus, kā arī inodus un unikālo inoda numuru. Liela priekšrocī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, izmantojot to pašu inodes numuru, kas bija oriģinālajam 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šrocība, ka inodes var norādīt gan uz oriģinālajiem failiem, gan uz dublējumiem, neaizņemot papildu atmiņu.
Tā kā inodi tiek konfigurēti atšķirīgi atkarībā no sistēmas, faila izmērs var pārsniegt pieejamo inodu izmēru. Šādā gadījumā sākotnējais inods norāda uz citu inodu, ko dažkārt sauc par netiešo norādes bloku, kurā atrodas pārējie metadati.
Tā kā inodu skaits tika noteikts jau sākumā, noteiktos apstākļos pieejamais skaits var nebūt pietiekams lielam failu skaitam. Šādā gadījumā failu sistēma būs jāpārstrukturē, palielinot inodu skaitu.
Kad izmanto inodus?
Inodi tiek izmantoti failu sistēmu pārvaldībai un strukturēšanai, un tos lieto gan privātās Linux sistēmās, gan pārvaldīto pakalpojumu risinājumos. Lietotāji un uzņēmumi, kas meklē mākoņpakalpojumu risinājumus serveriem ar Unix tipa operētājsistēmām, var piekļūt inodu datu struktūrām. Tāpat kā lielākajā daļā mākoņpakalpojumu un atkarībā no izmantošanas mērķa, jūs varat izvēlēties publisko vai privāto mākoni.
Kuras failu sistēmas atbalsta inodus?
Visas Unix tipa operētājsistēmas, piemēram, Linux vai macOS, izmanto inodus. Tomēr atkarībā no atbalstītās failu sistēmas inodu struktūra un sastāvs var atšķirties. Tieši šeit ext2/ext3/ext4 sistēmas inodu sarakstu vai tabulu veidā tiek izmantotas kā aprakstošo datu galvenes. Inodu saraksts tiek izveidots sistēmas uzstādīšanas 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 direktoriju, izmantojot tiem piederošos metadatus.
Papildus tam pastāv arī sarežģītākas failu sistēmas, piemēram, XFS vai BTRFS, kurās inodi tiek izveidoti tikai tad, kad tie ir nepieciešami failu meklēšanai. Š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 ierobežots, ir jāzina, kā sistēmā parādīt izmantotos inodus vai inodu aizņemto vietu. Tas dažkārt ir nepieciešams, ja sistēmā nav pietiekami daudz inodu citiem failiem.
Komanda, kas parāda izmantotā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 20shellKomanda, lai iegūtu pārskatu par pašreizējo inodu izmantošanu
Lai apskatītu sistēmā pašlaik izmantotos inodus, izmantojiet šo komandu:
df -ihshellLai iegūtu pārskatu par inodu izmantošanu, tostarp par to, kurā failu sistēmā tie atrodas, kopējo inodu skaitu, pašreizējo izmantošanu un to, kuri inodi tiek izmantoti, ievadiet šo komandu:
df -ishellKomanda, lai parādītu konkrētus inodu numurus
Lai parādītu konkrēta faila inodes numuru, varat izmantot šo komandu:
ls -ishellKomanda, lai parādītu visus inodes failus
Ja vēlaties uzzināt, uz kuriem failiem (tostarp oriģināliem, kopijām vai dublējumiem) atsaucas inode, izmantojiet šo komandu:
-inumshellPadomi gadījumā, ja inodi ir pārslodzēti
Liela slodze uz inodiem ne vienmēr nozīmē, ka jums sāk trūkt atmiņas. Dažkārt inodu izmantošanas pieaugumu var izskaidrot ar pārāk nelieliem datu apjomiem, piemēram, pagaidu TMP failiem, kešatmiņām vai sesijām. Parasti šo problēmu var atrisināt, automātiski 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>&1shellKas notiks, ja man būs pārāk maz inodu?
Ja jums nav pietiekami daudz inodu citiem failiem, noteiktos apstākļos varat sākt pamanīt kādu no šiem simptomiem:
- Programmas avarē
- Datu zudums
- Neparedzētas pārstartēšanas
- Procesi avarē un nepalaižas no jauna
- Plānotie procesi nepalaižas automātiski
Ja jūsu inodu kapacitāte ir faktiski izsmelta, iesakām atbrīvot vairāk vietas. Alternatīvi varat veikt salīdzinoši darbietilpīgu failu sistēmas pārstrukturēšanu un palielināt maksimālo inodu skaitu.