Annonse

Hvis du har flere harddisker i Linux-systemet ditt, trenger du ikke å behandle dem alle som forskjellige lagringsenheter. Med Btrfs kan du veldig enkelt lage et lagringsbasseng av harddiskene.

Under visse forhold kan du til og med aktivere speiling slik at du ikke mister dataene dine på grunn av harddiskfeil. Med alt oppsatt kan du bare kaste hva du vil i bassenget og utnytte den lagringsplassen du har mest mulig.

Det er ikke et GUI-konfigurasjonsverktøy som kan gjøre alt dette enklere (ennå), men det er fremdeles ganske enkelt å gjøre med kommandolinjen. Jeg vil lede deg gjennom et enkelt oppsett for å bruke flere harddisker sammen.

Hva er Btrfs?

Btrfs (kalt B-tre filsystem, "Butter FS" eller "Better FS") er et kommende filsystem Ext4 vs. Btrfs: Why We Make The Switch [Linux]Helt ærlig, noe av det siste folk ser på, er hvilket filsystem som brukes. Windows- og Mac OS X-brukere har enda mindre grunn til å se, fordi de egentlig bare har en ... Les mer som inneholder mange forskjellige funksjoner på filsystemnivå som normalt bare er tilgjengelige som separate programvarepakker. Selv om Btrfs har mange bemerkelsesverdige funksjoner (for eksempel øyeblikksbilder av filsystem), er de to vi skal se på i denne artikkelen lagringspooling og speiling.

instagram viewer

Hvis du ikke er sikker på hva et filsystem er, kan du se på denne forklaringen noen få filsystemer for Windows Hva et filsystem er, og hvordan du kan finne ut hva som kjører på stasjoneneHva er et filsystem, og hvorfor betyr det noe? Lær forskjellene mellom FAT32, NTFS, HPS +, EXT og mer. Les mer . Du kan også sjekke ut dette fint sammenligning av forskjellige filsystemer Fra FAT til NTFS til ZFS: File Systems DemystifiedUlike harddisker og operativsystemer kan bruke forskjellige filsystemer. Her er hva det betyr og hva du trenger å vite. Les mer for å få et bedre inntrykk av forskjellene mellom eksisterende filsystemer.

Btrfs anses fremdeles som "ikke stabil" av mange, men de fleste funksjoner er allerede stabile nok for personlig bruk - det er bare noen få utvalgte funksjoner der du kan få noen utilsiktede resultater.

Mens Btrfs har som mål å være standard filsystem for Linux på et tidspunkt i fremtiden, er det fortsatt best å bruke ext4 for enkeltoppsett av harddisker eller for oppsett som ikke trenger lagringspooling og speiling.

Samle dine stasjoner

For dette eksemplet skal vi bruke et fire harddiskoppsett. Det er to harddisker (/ dev / sdb og / dev / sdc) med 1 TB hver, og to andre harddisker (/ dev / sdd og / dev / sde) med 500 GB for totalt fire harddisker med totalt 3TB av lagring.

Du kan også anta at du har en annen harddisk (/ dev / sda) av en hvilken som helst vilkårlig størrelse som inneholder bootloader og operativsystem. Vi angår ikke oss selv om / dev / sda og kombinerer bare de fire andre harddiskene for ekstra lagringsformål.

Opprette et filsystem

btrfs_gparted
Hvis du vil lage 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 spenner over alle harddiskene du legger til. Monter først den første Btrfs-harddisken ved å bruke 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 å bruke kommandoene:

sudo btrfs device add / dev / sdc / mnt btrfs device add / dev / sdd / mnt btrfs device add / dev / sde / mnt

Hvis du hadde lagret noen data på den første harddisken, vil du at filsystemet skal balansere dem mellom alle de nylig tillagte harddiskene. Du kan gjøre dette med kommandoen:

sudo btrfs filsystembalanse / mnt

Alternativt, hvis du vet før du selv begynner at du vil at et Btrfs-filsystem skal spenne over alle harddisker, kan du ganske enkelt kjøre kommandoen:

sudo mkfs.btrfs -d singel / dev / sdb / dev / sdc / dev / sdd / dev / sde

Selvfølgelig er dette mye enklere, men du må bruke metoden som er nevnt over hvis du ikke legger til alle på en gang.

Du vil merke at jeg brukte et flagg: “-d singel”. Dette er nødvendig fordi jeg ønsket en RAID 0-konfigurasjon (der dataene er delt mellom alt det harde stasjoner, men ingen speiling oppstår), men den "enkle" profilen er nødvendig når harddiskene er forskjellige størrelser. Hvis alle harddiskene hadde samme størrelse, kunne jeg i stedet bruke flagget “-d raid0”. Flagget “-d” står forresten for data og lar deg spesifisere datakonfigurasjonen du ønsker. Det er også et "-m" -flagg som gjør nøyaktig det samme for metadata.

I tillegg til dette kan du også aktivere RAID 1 ved å bruke "-d raid1" som vil duplisere data på alle enheter, så bruk dette flagget under opprettelsen av Btrfs-filsystem som spenner over alle harddisker vil bety at du bare får 500 GB brukbar plass, som de tre andre harddiskene brukes til speiling.

Til slutt kan du aktivere RAID 10 ved å bruke “-d raid10”. Dette vil gjøre en blanding av både RAID 0 og RAID 1, så det vil gi deg 1,5 TB brukbar plass når de to 1 TB harddiskene er sammenkoblet i speiling og de to 500 GB harddiskene er sammenkoblet i speiling.

Konvertering av et filsystem

btrfs_harddiskstack
Hvis du har et Btrfs-filsystem som du vil konvertere til en annen RAID-konfigurasjon, er det enkelt gjort. Først må du montere filsystemet (hvis det ikke allerede er det) ved å bruke kommandoen:

sudo montering / dev / sdb1 / mnt

Deretter kjører du kommandoen:

sudo btrfs balanse start -dkonvert = raid1 -mconvert = raid1 / mnt

Dette vil endre konfigurasjonen til RAID 1, men du kan erstatte den med den konfigurasjonen du ønsker (så så lenge det faktisk er tillatt - for eksempel kan du ikke bytte til RAID 10 hvis du ikke har minst fire harde stasjoner). I tillegg er flagget -mconvert valgfritt hvis du bare er opptatt av dataene, men ikke metadataene.

Hvis harddiskfeil oppstår

Hvis en harddisk mislykkes, må du fjerne den fra filsystemet slik at resten av de samlede enhetene fungerer ordentlig. Monter filsystemet med kommandoen:

sudo mount -o degradert / dev / sdb / mnt

Fest deretter filsystemet med:

sudo btrfs enhet slette mangler / mnt

Hvis du ikke hadde RAID 1 eller RAID 10 aktivert, går 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 til / mnt, kan du gjøre det med kommandoen:

sudo btrfs-enhet slette / dev / sdc / mnt

Bytt selvfølgelig ut / dev / sdc med harddisken du vil fjerne. Denne kommandoen vil ta litt tid fordi den trenger å flytte alle dataene fra harddisken som blir fjernet, og vil på samme måte mislykkes hvis det ikke er nok plass på de andre gjenværende harddiskene.

Automatisk montering

btrfs_fstab
Hvis du vil at Btrfs-filsystemet skal monteres automatisk, kan du plassere dette i / etc / fstab-filen:

sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde 0 0

Monter alternativer

Ett bonustips til! Du kan optimalisere Btrfs ytelse i / etc / fstab-filen under monteringsalternativene for Btrfs-filsystemet. For store lagringsmatriser er disse alternativene best: komprimeringskraft = zlib, autodefrag, nospace_cache. Konkret vil komprimering = zlib komprimere alle dataene slik at du kan utnytte den lagringsplassen du har mest mulig. For posten kan SSD-brukere bruke disse alternativene: noatime, komprimere = lzo, ssd, kast, space_cache, autodefrag, inode_cache. Disse alternativene stemmer overens med enhetsspesifikasjonene, slik at en komplett linje i / etc / fstab for SSD-brukere ser ut som:

sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde,
noatime, komprimere = lzo, ssd, kast, space_cache, autodefrag, inode_cache 0 0

Hvor stor er lagringsbassenget ditt?

Btrfs er et fantastisk alternativ for lagring av basseng og speiling som garantert vil bli mer populært når det anses som helt stabilt. Det ville ikke skade at det er en GUI for å gjøre konfigurasjonen enklere (foruten i noen distribusjonsinstallatører), men kommandoene du må bruke i terminalen er enkle å forstå og bruke.

Hva er det største lagringsbassenget du kan lage? Synes du lagringsbassenger er verdt? Gi oss beskjed i kommentarene!

Bildekreditt: William Hook

Danny er senior ved University of North Texas som liker alle aspekter av open source programvare og Linux.