Inoder er en struktur til ad­mi­ni­stra­tion af fil­sy­ste­mer i Unix-lignende ope­ra­tiv­sy­ste­mer. I denne sam­men­hæng er inoder da­ta­ho­ve­det i ino­de­li­ster eller andre lignende datasæt, der in­de­hol­der metadata om gemte filer. Disse metadata in­de­hol­der op­lys­nin­ger såsom ad­gangs­ret­tig­he­der, gemmested, grupper, bruger-id’er samt tids­punk­tet for ændringer eller adgang til filen.

Hvad er en inode?

Inode er en for­kor­tel­se for »index node«. Det anvendes som en form for fil­hånd­te­ring, der har spillet en vigtig rolle siden ind­fø­rel­sen af Unix-ope­ra­tiv­sy­ste­mer­ne og de systemer, der er baseret på disse, såsom Linux eller macOS. Inodes’ ho­ved­funk­tion i fil­sy­ste­mer er at henvise til, ad­mi­ni­stre­re og lo­ka­li­se­re bestemte filer i systemet ved hjælp af unikke og ufor­an­der­li­ge inode-numre. Som en defineret da­ta­struk­tur beskriver og ad­mi­ni­stre­rer inodes spe­ci­fik­ke filer ved hjælp af metadata. Fil­sy­ste­mets type bestemmer, hvilke metadata der anvendes.

Selvom inoder ikke in­de­hol­der op­lys­nin­ger om selve filnavnet, in­de­hol­der de generelt følgende op­lys­nin­ger om filer og filblokke:

  • Type og ad­gangs­ret­tig­he­der
  • Antal hardlinks
  • Bruger-ID (UID)
  • Gruppe-ID (GID) eller GUI
  • Filens størrelse i byte
  • Dato for sidste ændring (mtime)
  • Dato for sidste sta­tus­æn­dring (ctime)
  • Dato for sidste adgang (atime)
  • Adresse på da­ta­blok­ke
  • In­di­rek­tions­blok­kens adresse
  • Antal links
  • Ver­sions­num­mer

Hvordan fungerer inoder?

Unix-systemer ad­mi­ni­stre­rer ikke sek­to­rer­ne i en disk­par­ti­tion ved hjælp af klynger, men bruger i stedet da­ta­blok­ke. I mod­sæt­ning til DOS-systemer, der bruger FAT-tabeller, anvendes inoder til at ad­mi­ni­stre­re og henvise til ka­ta­log­da­ta­e­ne. Hvis data lagres på hard­di­sken i faste da­ta­blok­ke, kan det hurtigt føre til, at filen over­skri­der blokkens kapacitet. Systemet finder derefter en anden ledig blok, hvor resten af filen kan gemmes. Det er her, inoder kommer ind i billedet.

Inoder sikrer, at data, der er gemt i systemet, kan findes ved hjælp af reference- og ka­ta­log­da­ta samt inoder og det unikke ino­de­num­mer. En stor fordel her er, at de ikke er afhængige af filnavnet. Hvis en fil kopieres og omdøbes, kan den stadig findes igen ved hjælp af det samme inode-nummer som den op­rin­de­li­ge fil. Dette er tilfældet med hardlinks, som oprettes af brugere med kom­man­do­en ln i Linux. Denne form for intern bogføring har den fordel, at inodes kan henvise til både originale filer og sik­ker­heds­ko­pi­er uden at optage mere hukom­mel­se.

Da inoder er kon­fi­gu­re­ret for­skel­ligt afhængigt af systemet, kan en fil overstige stør­rel­sen på de til­gæn­ge­li­ge inoder. I dette tilfælde henviser den op­rin­de­li­ge inode til en anden inode, som un­der­ti­den kaldes en indirekte blok, og som in­de­hol­der resten af me­ta­da­ta­e­ne.

Note

Da du fra starten har fastsat antallet af inoder, kan det under visse om­stæn­dig­he­der ske, at det til­gæn­ge­li­ge antal ikke er til­stræk­ke­ligt til et stort antal filer. I så fald skal fil­sy­ste­met om­struk­tu­re­res, så det rummer et større antal inoder.

Hvornår bruger man inodes?

Inoder bruges til at ad­mi­ni­stre­re og struk­tu­re­re fil­sy­ste­mer og anvendes både i private Linux-systemer og i ad­mi­ni­stre­re­de ser­vi­ce­løs­nin­ger. Brugere og virk­som­he­der, der søger cloud-løsninger til servere med Unix-lignende ope­ra­tiv­sy­ste­mer, har adgang til inode-da­ta­struk­tu­rer. Som med de fleste cloud-tjenester kan man, afhængigt af an­ven­del­sen, vælge mellem en offentlig cloud og en privat cloud.

Hvilke fil­sy­ste­mer un­der­støt­ter inoder?

Alle Unix-lignende ope­ra­tiv­sy­ste­mer, såsom Linux eller macOS, bruger inoder. Afhængigt af det un­der­støt­te­de filsystem kan inodernes struktur og sam­men­sæt­ning dog variere. Her anvendes ext2/ext3/ext4-systemer i form af ino­de­li­ster eller -tabeller som be­skri­ven­de da­ta­ho­ve­der. Ino­de­li­sten oprettes, når systemet kon­fi­gu­re­res, og kan ikke ændres ef­ter­føl­gen­de. Derudover optager ext4-inoder med 256 byte plads på hard­di­sken, og de kan ikke bruges på anden måde. I dette da­ta­sy­stem beskriver en inode i hvert tilfælde en fil eller et bibliotek i systemet ved hjælp af de metadata, der hører til dem.

Derudover findes der mere komplekse fil­sy­ste­mer som f.eks. XFS eller Btrfs, hvor inoder først oprettes, når der er brug for dem til at finde filer. I dette tilfælde oprettes der ingen lister eller tabeller, der in­de­hol­der inoder. En anden forskel i deres funk­tions­må­de ligger i skellet mellem disk-inoder og inoder, der bruges til at håndtere Linux-hukom­mel­sen (in-core-inoder).

Oversigt over vigtige inode-kom­man­do­er

Da der er en be­græns­ning på antallet af til­gæn­ge­li­ge inoder, afhængigt af fil­sy­ste­met, er det vigtigt at vide, hvordan man viser de anvendte inoder eller den plads, som inoder optager i systemet. Dette kan være nød­ven­digt, hvis der ikke er nok inoder til rådighed i systemet til andre filer.

Kommando til at vise anvendte områder i fil­sy­ste­met

Hvis du vil se, hvilke områder der bruges af inoder i fil­sy­ste­met, kan du bruge følgende kommando:

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

Kommando til at få et overblik over den aktuelle brug af inoder

Brug denne kommando for at se de inoder, der i øje­blik­ket er i brug i systemet:

df -ih
shell

For at få et overblik over brugen af inoder, herunder hvilket filsystem der er tale om, det samlede antal inoder, den aktuelle brug og hvilke inoder der er i brug, skal du indtaste denne kommando:

df -i
shell

Kommando til visning af bestemte inode-numre

For at få vist et fils spe­ci­fik­ke inode-nummer kan du bruge denne kommando:

ls -i
shell

Kommando til at vise alle filer til­hø­ren­de en inode

Hvis du vil vide, hvilke filer (herunder ori­gi­na­ler, kopier eller sik­ker­heds­ko­pi­er) der henvises til af en inode, skal du bruge følgende:

-inum
shell

Tips, hvis inodes er over­be­la­ste­de

En høj be­last­ning på inodes betyder ikke altid, at din hukom­mel­se er ved at løbe tør. Nogle gange kan den øgede brug af inodes skyldes meget små da­ta­mæng­der, såsom mid­ler­ti­di­ge TMP-filer, cacher eller sessioner. Problemet kan normalt løses ved au­to­ma­tisk at slette alle filer, der er mere end 14 dage gamle. For at gøre dette kan du køre et cron-job med følgende kommando:

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

Hvad sker der, hvis jeg har for få inoder?

Hvis du ikke har nok inoder til andre filer, kan du under visse om­stæn­dig­he­der begynde at opleve nogle af følgende problemer:

  • Pro­gram­mer går ned
  • Data går tabt
  • Up­lan­lag­te gen­star­ter
  • Processer går ned og gen­star­ter ikke
  • Planlagte processer starter ikke au­to­ma­tisk

Hvis din inode-kapacitet faktisk er opbrugt, anbefaler vi, at du frigør mere plads. Al­ter­na­tivt kan du gen­nem­fø­re den relativt tids­kræ­ven­de proces med at om­struk­tu­re­re fil­sy­ste­met og øge det maksimale antal inoder.

Gå til ho­ved­me­nu­en