Hva er en inode? Funksjon og bruk forklart
Inoder er en administrasjonsstruktur for filsystemer i Unix-lignende operativsystemer. I denne sammenhengen er inoder datahodene i inodelister eller andre lignende datasett som inneholder metadata om lagrede filer. Disse metadataene inneholder opplysninger som tilgangsrettigheter, lagringssted, grupper, bruker-ID-er eller tidspunktet for endringer eller når filen ble åpnet.
Hva er en inode?
Inode er en forkortelse for «index node». Det brukes som en form for filhåndtering som har spilt en viktig rolle siden innføringen av Unix-operativsystemene og de som er basert på dette, som Linux eller macOS. Hovedfunksjonen til inoder i filsystemer er å referere til, administrere og finne bestemte filer i systemet ved hjelp av unike og uforanderlige inodenumre. Som en definert datastruktur beskriver og administrerer inoder bestemte filer ved hjelp av metadata. Hvilken type filsystem som brukes, avgjør hvilke metadata som benyttes.
Selv om inoder ikke inneholder opplysninger om selve filnavnet, inneholder de vanligvis følgende opplysninger om filer og filblokker:
- Type og tilgangsrettigheter
- Antall hardlenker
- Bruker-ID (UID)
- Gruppe-ID (GID) eller GUI
- Filens størrelse i byte
- Dato for siste endring (mtime)
- Dato for siste statusendring (ctime)
- Dato for siste tilgang (atime)
- Adresse til datablokker
- Adressen til indireksjonsblokken
- Antall lenker
- Versjonsnummer
Hvordan fungerer inoder?
Unix-systemer administrerer ikke sektorene i diskpartisjonene ved hjelp av klynger, men bruker i stedet datablokker. I motsetning til DOS-systemer som bruker FAT-tabeller, benyttes inoder til å administrere og referere til katalogdataene. Hvis data lagres på harddisken i faste datablokker, kan det raskt føre til at filen overskrider blokkens kapasitet. Systemet finner da en annen ledig blokk der resten av filen kan lagres. Det er her inodene kommer inn i bildet.
Inoder sikrer at data som er lagret i systemet, kan finnes ved hjelp av referanse- og katalogdata, samt inodene og det unike inodenummeret. En stor fordel her er at de ikke er avhengige av filnavnet. Hvis en fil kopieres og omdøpes, kan den fortsatt finnes igjen ved hjelp av det samme inodenummeret som den opprinnelige filen. Dette er tilfellet med hardlinks, som opprettes av brukere med Linux-kommandoen. Denne formen for intern bokføring har fordelen at inoder kan gå til både originale filer og sikkerhetskopier uten å ta opp mer minne.
Siden inoder er konfigurert forskjellig fra system til system, kan en fil overstige størrelsen på de tilgjengelige inodene. I slike tilfeller refererer den opprinnelige inoden til en annen inode, som noen ganger kalles en indireksjonsblokk, og som inneholder resten av metadataene.
Siden du fastsatte antallet inoder fra starten av, kan det hende at det tilgjengelige antallet ikke er tilstrekkelig for et stort antall filer under visse omstendigheter. I så fall må filsystemet omstruktureres med et større antall inoder.
Når bruker man inoder?
Inoder brukes til å administrere og strukturere filsystemer, og finnes både i private Linux-systemer og i administrerte tjenesteløsninger. Brukere og bedrifter som er på utkikk etter skyløsninger for servere med Unix-lignende operativsystemer, har tilgang til inode-datastrukturer. Som med de fleste skytjenester, og avhengig av bruksområdet, kan man velge mellom en offentlig sky eller en privat sky.
Hvilke filsystemer støtter inoder?
Alle Unix-lignende operativsystemer, som Linux eller macOS, bruker inoder. Avhengig av hvilket filsystem som støttes, kan imidlertid strukturen og sammensetningen av inodene variere. I ext2/ext3/ext4-systemer brukes inodelister eller -tabeller som beskrivende dataoverskrifter. Inodelisten opprettes når systemet konfigureres og kan ikke endres i etterkant. I tillegg opptar ext4-inoder med 256 byte plass på harddisken, og de kan ikke brukes på noen annen måte. I dette datasystemet beskriver en inode i hvert tilfelle en fil eller en katalog i systemet ved hjelp av metadataene som tilhører dem.
I tillegg finnes det mer komplekse filsystemer som xfs eller btrfs, der inoder først opprettes når det er behov for dem for å finne filer. I dette tilfellet opprettes det ingen lister eller tabeller som inneholder inoder. En annen forskjell i hvordan de fungerer, ligger i disk-inoder og inoder som brukes til å behandle Linux-minne (in-core-inoder).
Oversikt over viktige inode-kommandoer
Siden det finnes en begrensning på antall tilgjengelige inoder, avhengig av filsystemet, må du vite hvordan du kan vise hvilke inoder som er i bruk eller hvor mye plass inodene opptar i systemet. Dette kan være nødvendig hvis det ikke er nok ledige inoder i systemet til andre filer.
Kommando for å vise brukte områder i filsystemet
Hvis du vil se hvilke områder som brukes av inoder i filsystemet, kan du bruke følgende kommando:
~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20shellKommando for å få oversikt over gjeldende bruk av inoder
For å se hvilke inoder som for øyeblikket er i bruk i systemet, bruk denne kommandoen:
df -ihshellFor å få en oversikt over bruken av inoder, inkludert hvilket filsystem det gjelder, det totale antallet inoder, gjeldende bruk og hvilke inoder som er i bruk, skriver du inn denne kommandoen:
df -ishellKommando for å vise bestemte inode-numre
For å vise det spesifikke inodenummeret til en fil, kan du bruke denne kommandoen:
ls -ishellKommando for å vise alle filene til en inode
Hvis du vil vite hvilke filer (inkludert originaler, kopier eller sikkerhetskopier) en inode refererer til, kan du bruke følgende:
-inumshellTips hvis inoder er overbelastet
En høy belastning på inoder betyr ikke alltid at minnet ditt er i ferd med å gå tomt. Noen ganger kan økt bruk av inoder skyldes svært små datamengder, som midlertidige TMP-filer, hurtigbuffer eller økter. Problemet kan vanligvis løses ved å slette alle filer som er eldre enn 14 dager automatisk. For å gjøre dette kan du kjøre en cron-jobb med følgende kommando:
03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1shellHva skjer hvis jeg har for få inoder?
Hvis du ikke har nok inoder til andre filer, kan du under visse omstendigheter begynne å merke noen av følgende ting:
- Apper krasjer
- Data går tapt
- Uplanlagte omstarter
- Prosesser krasjer og starter ikke på nytt
- Planlagte prosesser starter ikke automatisk
Hvis inodekapasiteten din faktisk er oppbrukt, anbefaler vi at du frigjør mer kapasitet. Alternativt kan du gjennomføre den relativt tidkrevende prosessen med å omstrukturere filsystemet og øke det maksimale antallet inoder.