Mis on inood? Selle funktsioon ja kasutusviis
Inodid on Unix-laadsete operatsioonisüsteemide failisüsteemide haldusstruktuur. Selles kontekstis on inodid andmepealkirjad inodiloendites või muudes sarnastes andmekogumites, mis sisaldavad salvestatud failide metaandmeid. Need metaandmed sisaldavad sellist teavet nagu juurdepääsuõigused, salvestusasukoht, rühmad, kasutaja-ID-d või muudatuste tegemise aeg või failile juurdepääsu aeg.
Mis on inood?
Inode on lühend sõnast „index node“ (indeksisõlm). Seda kasutatakse failihalduse vahendina, mis on mänginud olulist rolli alates Unixi operatsioonisüsteemide ja sellel põhinevate süsteemide, nagu Linux või macOS, kasutuselevõtust. Inode’ide peamine ülesanne failisüsteemides on viidata teatud failidele, neid hallata ja leida süsteemis, kasutades selleks unikaalseid ja muutumatuid inode’i numbreid. Inode’id on kindlaksmääratud andmestruktuurid, mis kirjeldavad ja haldavad konkreetseid faile metaandmete abil. Failisüsteemi tüüp määrab, milliseid metaandmeid kasutatakse.
Kuigi inoodid ei sisalda otseselt failinime, sisaldavad need üldjuhul järgmist teavet failide ja failiblokkide kohta:
- Tüüp ja juurdepääsuõigused
- Kõvakettalinkide arv
- Kasutaja ID (UID)
- Grupi ID (GID) või GUI
- Faili suurus baitides
- Viimase muudatuse kuupäev (mtime)
- Viimase staatuse muutmise kuupäev (ctime)
- Viimase juurdepääsu kuupäev (atime)
- Andmeplokkide aadress
- Kaudse viite ploki aadress
- Lingide arv
- Versiooni number
Kuidas inoodid töötavad?
Unix-süsteemid ei halda kettapartitsiooni sektoreid klastrite abil, vaid kasutavad selleks andmeplokke. Erinevalt DOS-süsteemidest, mis kasutavad FAT-tabeleid, kasutatakse kataloogide andmete haldamiseks ja viitamiseks inode’e. Kui andmed salvestatakse kõvakettale kindlate andmeplokkidena, võib see kiiresti viia olukorrani, kus fail ületab ploki mahu. Sel juhul otsib süsteem teise vaba ploki, kuhu faili ülejäänud osa salvestada. Siin tulevadki mängu inode’ed.
Inoodid tagavad, et süsteemi salvestatud andmeid on võimalik leida nii viite- ja kataloogandmete kui ka inoodide ja unikaalse inoodinumbri abil. Suur eelis on siin see, et need ei sõltu failinimest. Kui faili kopeeritakse ja ümber nimetatakse, saab selle ikkagi uuesti leida, kasutades sama inode numbrit kui originaalfailil. Nii on see ka kõvakettalinkide puhul, mida kasutajad loovad Linuxi käsuga in. Sellisel sisemisel arvestusviisil on see eelis, et inodid suunavad nii originaalfailidele kui ka varukoopiatele, ilma et see võtaks rohkem mälu.
Kuna inoodid on süsteemiti erinevalt seadistatud, võib fail ületada olemasolevate inoodide mahu. Sellisel juhul viitab algne inood teisele inoodile, mida nimetatakse mõnikord ka kaudseks plokiks ja mis sisaldab ülejäänud metaandmeid.
Kuna inoodide arv määrati kindlaks juba alguses, võib see teatavatel juhtudel osutuda ebapiisavaks suure hulga failide jaoks. Sellisel juhul tuleb failisüsteemi ümber korraldada, et suurendada inoodide arvu.
Millal kasutatakse inode’e?
Inode’e kasutatakse failisüsteemide haldamiseks ja struktureerimiseks ning neid rakendatakse nii eraviisilistes Linuxi süsteemides kui ka hallatavate teenuste lahendustes. Kasutajad ja ettevõtted, kes otsivad pilvelahendusi Unix-laadsetel operatsioonisüsteemidel töötavatele serveritele, saavad kasutada inode’i andmestruktuure. Nagu enamiku pilveteenuste puhul, sõltuvalt kasutusotstarbest on võimalik valida avalik või erapilv.
Millised failisüsteemid toetavad inode’e?
Kõik Unix-põhised operatsioonisüsteemid, nagu Linux või macOS, kasutavad inode’e. Sõltuvalt toetatud failisüsteemist võivad inode’ide struktuur ja ülesehitus siiski erineda. Ext2/ext3/ext4-süsteemides kasutatakse inode’ide nimekirju või tabeleid kirjeldavate andmete päistena. Inode-nimekiri luuakse süsteemi seadistamisel ja seda ei saa hiljem muuta. Lisaks sellele võtavad 256-baidised ext4-inodid kõvakettal ruumi ja neid ei saa muul viisil kasutada. Selles andmesüsteemis kirjeldab inode igal juhul süsteemis olevat faili või kataloogi, kasutades neile kuuluvaid metaandmeid.
Lisaks on olemas keerukamad failisüsteemid, nagu xfs või btrfs, kus inoodid luuakse alles siis, kui neid on vaja failide leidmiseks. Sel juhul ei looda inoode sisaldavaid nimekirju ega tabeleid. Veel üks erinevus nende toimimises seisneb kettainoodide ja Linuxi mälu töötlemiseks kasutatavate inoodide (in-core inoodid) vahel.
Ülevaade olulistest inode-käskudest
Kuna failisüsteemist sõltuvalt on kasutatavate inoodide arv piiratud, peate teadma, kuidas kuvada süsteemis kasutatud inoode või inoodide poolt hõivatud ruumi. See on mõnikord vajalik, kui süsteemis ei ole teiste failide jaoks piisavalt vabu inoode.
Käsk failisüsteemis kasutatud alade kuvamiseks
Kui soovite näha, milliseid alasid kasutavad failisüsteemi inoodid, võite kasutada järgmist käsku:
~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20shellKäsk praeguse inoodide kasutuse ülevaate saamiseks
Süsteemis hetkel kasutusel olevate inoodide vaatamiseks kasuta järgmist käsku:
df -ihshellInode’ide kasutamise ülevaate saamiseks, sealhulgas selle kohta, millises failisüsteemis need asuvad, inode’ide koguarvu, praeguse kasutuse ja millised inode’id on kasutusel, sisestage järgmine käsk:
df -ishellKäsk kindlate inoodinumbrite kuvamiseks
Faili konkreetse inoodi numbri kuvamiseks võid kasutada järgmist käsku:
ls -ishellKäsk inoodi kõikide failide kuvamiseks
Kui soovid teada, millistele failidele (sh originaalidele, koopiatele või varukoopiatele) viitab inood, kasuta järgmist:
-inumshellNõuanded inoodide ülekoormuse korral
Suur koormus inoodidele ei tähenda alati, et mälu hakkab otsa saama. Mõnikord võib inoodide kasutuse suurenemise põhjuseks olla liiga väikesemahulised andmed, nagu ajutised TMP-failid, vahemälud või sessioonid. Probleemi saab tavaliselt lahendada, kustutades automaatselt kõik failid, mis on vanemad kui 14 päeva. Selleks võid käivitada cron-ülesande järgmise käsuga:
03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1shellMis juhtub, kui mul on liiga vähe inode’e?
Kui teie süsteemis pole teiste failide jaoks piisavalt inode’e, võite teatud tingimustel märgata mõnda järgmistest nähtustest:
- Rakendused kukuvad kokku
- Andmed lähevad kaduma
- Planeerimata taaskäivitused
- Protsessid kukuvad kokku ega taaskäivitu
- Planeeritud protsessid ei käivitu automaatselt
Kui teie inoodide maht on tõepoolest ammendunud, soovitame teil vaba ruumi juurde luua. Teise võimalusena võite alustada suhteliselt töömahukat protsessi, mille käigus ümberkorraldatakse failisüsteem ja suurendatakse inoodide maksimaalset arvu.