Hvis du har flere harddisker i ditt Linux-system, trenger du ikke å behandle dem alle som forskjellige lagringsenheter. Med Btrfs kan du veldig enkelt lage et lagringsbasseng ut av de harddiskene.
Under visse forhold kan du til og med aktivere speiling, slik at du ikke mister data på grunn av feil på harddisken. Med alt satt opp, kan du bare kaste alt du vil ha i bassenget og få mest mulig ut av lagringsplassen du har.
Det er ikke et GUI-konfigurasjonsverktøy som kan gjøre alt dette enklere (ennå), men det er fortsatt ganske enkelt å gjøre med kommandolinjen. Jeg går deg gjennom et enkelt oppsett for å bruke flere harddisker sammen.
Hva er Btrfs?
Btrfs (kalles B-tree filsystem, "Butter FS" eller "Better FS") er et kommende filsystem Ext4 vs. Btrfs: Hvorfor vi lager bryteren [Linux] Ext4 vs. Btrfs: Hvorfor vi lager bryteren [Linux] Helt ærlig er en av de siste tingene folk ser på, hvilket filsystem som brukes. Windows og Mac OS X-brukere har enda mindre grunn til å se, fordi de egentlig bare har én ... Les mer som inneholder mange forskjellige funksjoner på filsystemnivået som normalt bare er tilgjengelig som separate programvarepakker. Mens Btrfs har mange bemerkelsesverdige funksjoner (for eksempel filsystem snapshots), de to vi skal se på i denne artikkelen er lagringspuljering og speiling.
Hvis du ikke er sikker på hva et filsystem er, ta en titt på denne forklaringen av noen få filsystemer for Windows. Hva et filsystem er og hvordan du kan finne ut hva som kjører på diskene Hva et filsystem er og hvordan du kan finne ut Hva kjører på stasjonene dine Les mer. Du kan også sjekke ut denne fine sammenligningen av ulike filsystemer. Fra FAT til NTFS til ZFS: File Systems Demystified [MakeUseOf Forklarer] Fra FAT til NTFS til ZFS: File Systems Demystified [MakeUseOf Forklarer] Vet du virkelig hva harddisken din gjør når du les en fil fra den eller skriv en til den? Våre harddisker kan nå lagre massive datamengder, og det enorme rommet ... Les mer for å få en bedre forståelse av forskjellene mellom eksisterende filsystemer.
Btrfs betraktes fortsatt som "ikke stabil" av mange, men de fleste funksjoner er allerede stabile nok til personlig bruk - det er bare noen få utvalgte funksjoner der du kan oppleve noen utilsiktede resultater.
Mens Btrfs har som mål å være standard filsystem for Linux på et eller annet tidspunkt i fremtiden, er det fortsatt best å bruke ext4 for enkle harddiskoppsett eller for oppsett som ikke trenger lagringspooling og speiling.
Pooling dine stasjoner
For dette eksempelet skal vi bruke en fire harddiskoppsett. Det er to harddisker (/ dev / sdb og / dev / sdc) med 1TB hver og to andre harddisker (/ dev / sdd og / dev / sde) med 500GB for totalt fire harddisker med totalt 3TB lagring.
Du kan også anta at du har en annen harddisk (/ dev / sda) av noen vilkårlig størrelse som inneholder bootloader og operativsystem. Vi er ikke om oss selv om / dev / sda og kombinerer bare de fire andre harddiskene for ekstra lagringsformål.
Opprette et filsystem
For å opprette et Btrfs-filsystem på en av harddiskene dine, kan du bruke kommandoen:
sudo mkfs.btrfs /dev/sdb
Selvfølgelig kan du erstatte / dev / sdb med den faktiske harddisken du vil bruke. Herfra kan du legge til andre harddisker til Btrfs-systemet for å gjøre det til en enkelt partisjon som strekker seg over alle harddisker du legger til. Først må du montere den første Btrfs-harddisken ved hjelp av kommandoen:
sudo mount /dev/sdb /mnt
Kjør deretter kommandoene:
sudo mkfs.btrfs /dev/sdc mkfs.btrfs /dev/sdd mkfs.btrfs /dev/sde
Nå kan du legge dem til den første harddisken ved hjelp av kommandoene:
sudo btrfs device add /dev/sdc /mnt btrfs device add /dev/sdd /mnt btrfs device add /dev/sde /mnt
Hvis du hadde noen data lagret på den første harddisken, vil du at filsystemet skal balansere det ut blant alle de nylig lagt til harddiskene. Du kan gjøre dette med kommandoen:
sudo btrfs filesystem balance /mnt
Alternativt, hvis du vet før du selv begynner at du vil at et Btrfs-filsystem skal spenne over alle harddisker, kan du bare kjøre kommandoen:
sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde
Selvfølgelig er dette mye enklere, men du må bruke metoden som er nevnt ovenfor hvis du ikke legger dem alt på en gang.
Du vil merke at jeg brukte et flagg: "-d single". Dette er nødvendig fordi jeg ønsket en RAID 0-konfigurasjon (hvor dataene er delt mellom alle harddiskene, men ingen speiling oppstår), men "singel" -profilen er nødvendig når harddiskene er forskjellige størrelser. Hvis alle harddiskene var i samme størrelse, kunne jeg i stedet bruke flagget "-d raid0". "-d" -flagget, forresten, står for data og lar deg spesifisere datakonfigurasjonen du vil ha. Det er også et "-m" -flagg som gjør det samme for metadata.
I tillegg kan du også aktivere RAID 1 ved å bruke "-d raid1" som vil duplisere data på tvers av alle enheter. Hvis du bruker dette flagget under opprettelsen av Btrfs filsystem som strekker seg over alle harddisker, betyr det at du bare får 500 GB brukbart plass, som de tre andre harddiskene brukes til speiling.
Til slutt kan du aktivere RAID 10 med "-d raid10". Dette vil gjøre en blanding av både RAID 0 og RAID 1, så det gir deg 1, 5 TB brukbart mellomrom, da de to 1 TB harddiskene er parret i speiling og de to 500 GB harddiskene er parret i speiling.
Konvertere et filsystem
Hvis du har et Btrfs-filsystem som du vil konvertere til en annen RAID-konfigurasjon, gjøres det enkelt. Først må du montere filsystemet (hvis det ikke allerede er) ved hjelp av kommandoen:
sudo mount /dev/sdb1 /mnt
Kjør deretter kommandoen:
sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
Dette vil endre konfigurasjonen til RAID 1, men du kan erstatte det med hvilken konfigurasjon du vil ha (så lenge det faktisk er tillatt - for eksempel kan du ikke bytte til RAID 10 hvis du ikke har minst fire harddisker) . I tillegg er -mconvert-flagget valgfritt hvis du bare er bekymret for dataene, men ikke metadataene.
Hvis det oppstår feil på harddisken
Hvis en harddisk mislykkes, må du fjerne den fra filsystemet, slik at resten av de samlede stasjonene fungerer som de skal. Monter filsystemet med kommandoen:
sudo mount -o degraded /dev/sdb /mnt
Deretter fikser du filsystemet med:
sudo btrfs device delete missing /mnt
Hvis du ikke hadde RAID 1 eller RAID 10 aktivert, er data som var på den mislykkede harddisken, nå tapt.
Fjerne en harddisk fra filsystemet
Til slutt, hvis du vil fjerne en enhet fra et Btrfs filsystem, og filsystemet er montert på / mnt, kan du gjøre det med kommandoen:
sudo btrfs device delete /dev/sdc /mnt
Selvfølgelig, erstatt / dev / sdc med harddisken du vil fjerne. Denne kommandoen vil ta litt tid fordi det må flytte alle dataene fra harddisken som blir fjernet, og vil heller ikke mislykkes hvis det ikke er nok plass på de andre gjenværende harddiskene.
Automatisk montering
Hvis du vil at Btrfs-filsystemet skal monteres automatisk, kan du legge dette inn i / etc / fstab-filen din:
sudo /dev/sdb /mnt btrfs device=/dev/sdb, device=/dev/sdc, device=/dev/sdd, device=/dev/sde 0 0
Monter alternativer
En ekstra bonus tips! Du kan optimalisere Btrfs ytelse i filen / etc / fstab under monteringsalternativene for Btrfs filsystem. For store lagringsarrayer, er disse alternativene best: compress-force=zlib, autodefrag, nospace_cache
. Spesielt komprimere = zlib vil komprimere alle dataene slik at du får mest mulig ut av lagringsplassen du har. For posten kan SSD-brukere bruke disse alternativene: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache
. Disse alternativene går rett sammen med enhetsspesifikasjonene, så en komplett linje i / etc / fstab for SSD-brukere vil se ut som:
sudo /dev/sdb /mnt btrfs device=/dev/sdb, device=/dev/sdc, device=/dev/sdd, device=/dev/sde,
noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache 0 0
Hvor stor er lagringsbassenget ditt?
Btrfs er et fantastisk alternativ for lagringsplassering og speiling som er sikker på å bli mer populær når den anses å være helt stabil. Det ville heller ikke skade for at det skulle være en GUI for å gjøre konfigurasjonen enklere (i tillegg til enkelte distribusjonsinstallatører), men kommandoene du må bruke i terminalen, er enkle å forstå og anvende.
Hva er det største lagringsbassenget du kan lage? Tror du lagringsbassenger er verdt? Gi oss beskjed i kommentarene!
Bildekreditt: William Hook