Sådan aktiverer du lagerbassering og spejling ved hjælp af Btrfs for Linux

Hvis du har flere harddiske i dit Linux-system, behøver du ikke behandle dem som forskellige lagerenheder. Med Btrfs kan du nemt oprette en oplagringsbassin ud af disse harddiske.

Hvis du har flere harddiske i dit Linux-system, behøver du ikke behandle dem som forskellige lagerenheder.  Med Btrfs kan du nemt oprette en oplagringsbassin ud af disse harddiske.
Reklame

Hvis du har flere harddiske i dit Linux-system, behøver du ikke at behandle dem alle som forskellige lagerenheder. Med Btrfs kan du meget nemt oprette en opbevaringsbassin ud af disse harddiske.

Under visse omstændigheder kan du endda aktivere spejling, så du ikke mister dine data på grund af harddiskfejl. Når alt er sat op, kan du bare smide det, du vil have i poolen, og få mest muligt ud af det lagerplads, du har.

Der er ikke et GUI-konfigurationsprogram, der kan gøre alt dette nemmere (endnu), men det er stadig ret nemt at gøre med kommandolinjen. Jeg vil gå igennem et simpelt setup for at bruge flere harddiske sammen.

Hvad er Btrfs?

Btrfs (kaldet B-tree filsystem, "Butter FS" eller "Better FS") er et kommende filsystem Ext4 vs. Btrfs: Hvorfor vi laver kontakten [Linux] Ext4 vs. Btrfs: Hvorfor vi laver kontakten [Linux] Helt ærligt er en af ​​de sidste ting folk ser på, hvilket filsystem der bruges. Windows og Mac OS X-brugere har endnu mindre grund til at se, fordi de virkelig kun har en ... Læs mere, der indeholder mange forskellige funktioner på filsystemniveauet, som normalt kun er tilgængelige som separate softwarepakker. Mens Btrfs har mange bemærkelsesværdige funktioner (f.eks. Filsystem snapshots), vil de to, vi tager et kig på i denne artikel, opbevare pooling og spejling.

Hvis du ikke er sikker på, hvad et filsystem er, skal du kigge på denne forklaring af et par filsystemer til Windows Hvad et filsystem er og hvordan du kan finde ud af, hvad der kører på dine drev Hvad et filsystem er, og hvordan du kan finde ud af det Hvad kører på dine drev Læs mere. Du kan også tjekke denne nice sammenligning af forskellige filsystemer Fra FAT til NTFS til ZFS: Filsystem Demystified [MakeUseOf Forklarer] Fra FAT til NTFS til ZFS: Filsystem Demystified [MakeUseOf Forklarer] Ved du virkelig hvad din harddisk gør, når du læse en fil fra den eller skrive en til den? Vores harddiske kan nu gemme massive mængder data, og det massive rum ... Læs mere for at få en bedre ide om forskellene mellem eksisterende filsystemer.

Btrfs betragtes stadig som "ikke stabil" af mange, men de fleste funktioner er allerede stabile nok til personlig brug - det er kun nogle få udvalgte funktioner, hvor du måske støder på nogle utilsigtede resultater.

Mens Btrfs har til hensigt at være standardfilsystemet til Linux på et eller andet tidspunkt i fremtiden, er det stadig bedst at bruge ext4 til opsætninger af enkelt harddisk eller til opsætninger, der ikke kræver opbevaring af pool og spejling.

Pooling af dine drev

I dette eksempel skal vi bruge en fire harddisk opsætning. Der er to harddiske (/ dev / sdb og / dev / sdc) med 1TB hver og to andre harddiske (/ dev / sdd og / dev / sde) med 500GB for i alt fire harddiske med i alt 3TB af lagerpladsen.

Du kan også antage, at du har en anden harddisk (/ dev / sda) af en vilkårlig størrelse, som indeholder din bootloader og operativsystem. Vi er ikke bekymret for os / dev / sda og kombinerer kun de fire andre harddiske til ekstra lagringsformål.

Oprettelse af et filsystem

btrfs_gparted
For at oprette et Btrfs-filsystem på en af ​​dine harddiske, kan du bruge kommandoen:

sudo mkfs.btrfs /dev/sdb

Selvfølgelig kan du erstatte / dev / sdb med den aktuelle harddisk, du vil bruge. Herfra kan du tilføje andre harddiske til Btrfs-systemet for at gøre det til en enkelt partition, der spænder over alle harddiske, som du tilføjer. Først skal du montere den første Btrfs-harddisk ved hjælp af kommandoen:

sudo mount /dev/sdb /mnt

Kør derefter kommandoerne:

sudo mkfs.btrfs /dev/sdc mkfs.btrfs /dev/sdd mkfs.btrfs /dev/sde

Nu kan du tilføje dem til den første harddisk ved hjælp af kommandoerne:

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

Hvis du havde nogle data gemt på den første harddisk, vil du have filsystemet til at afbalancere det blandt alle de nyligt tilføjede harddiske. Du kan gøre dette med kommandoen:

sudo btrfs filesystem balance /mnt

Alternativt, hvis du ved, før du selv begynder at du vil have et Btrfs-filsystem til at spænde over alle harddiske, kan du blot køre kommandoen:

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

Det er selvfølgelig meget nemmere, men du skal bruge den ovenfor nævnte metode, hvis du ikke tilføjer dem alle på én gang.

Du vil bemærke, at jeg brugte et flag: "-d single". Dette er nødvendigt, fordi jeg ønskede en RAID 0-konfiguration (hvor dataene er delt mellem alle harddiske, men ingen spejling forekommer), men "single" -profilen er nødvendig, når harddiske er forskellige størrelser. Hvis alle harddiske var af samme størrelse, kunne jeg i stedet bruge flaget "-d raid0". "-d" -flagget står i stedet for data og giver dig mulighed for at angive den ønskede datakonfiguration. Der er også et "-m" -flag, der gør det samme for metadata.

Udover dette kan du også aktivere RAID 1 ved hjælp af "-d raid1", som vil duplikere data på tværs af alle enheder. Hvis du bruger dette flag under oprettelsen af ​​Btrfs filsystem, der spænder over alle harddiske, ville det betyde, at du kun får 500 GB brugt plads, som de tre andre harddiske bruges til spejling.

Endelig kan du aktivere RAID 10 ved hjælp af "-d raid10". Dette vil gøre en blanding af både RAID 0 og RAID 1, så det giver dig 1, 5 TB brugbart rum, da de to 1TB harddiske er parret i spejling og de to 500 GB harddiske er parret i spejling.

Konvertering af et filsystem

btrfs_harddiskstack
Hvis du har et Btrfs-filsystem, som du gerne vil konvertere til en anden RAID-konfiguration, gøres det nemt. Først monterer filsystemet (hvis det ikke allerede er) ved hjælp af kommandoen:

sudo mount /dev/sdb1 /mnt

Kør derefter kommandoen:

sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

Dette ændrer konfigurationen til RAID 1, men du kan erstatte det med den ønskede konfiguration (så længe det faktisk er tilladt - du kan f.eks. Ikke skifte til RAID 10, hvis du ikke har mindst fire harddiske) . Desuden er -mconvert-flag er valgfrit, hvis du bare er bekymret for dataene, men ikke metadataene.

Hvis der opstår en harddiskfejl

Hvis en harddisk fejler, skal du fjerne den fra filsystemet, så resten af ​​de samlede drev fungerer korrekt. Monter filsystemet med kommandoen:

sudo mount -o degraded /dev/sdb /mnt

Derefter reparere filsystemet med:

sudo btrfs device delete missing /mnt

Hvis du ikke havde RAID 1 eller RAID 10 aktiveret, er alle data, der var på den mislykkede harddisk, nu tabt.

Fjernelse af en harddisk fra filsystemet

Endelig, hvis du vil fjerne en enhed fra et Btrfs filsystem, og filsystemet er monteret til / mnt, kan du gøre det med kommandoen:

sudo btrfs device delete /dev/sdc /mnt

Udskift naturligvis / dev / sdc med den harddisk, du vil fjerne. Denne kommando vil tage lidt tid, fordi det er nødvendigt at flytte alle data fra harddisken, der fjernes, og det vil heller ikke lykkes, hvis der ikke er plads på de resterende harddiske.

Automatisk montering

btrfs_fstab
Hvis du vil have Btrfs-filsystemet installeret automatisk, kan du placere dette i din / etc / fstab-fil:

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

Mount Options

En ekstra bonus tip! Du kan optimere Btrfs ydeevne i din / etc / fstab-fil under mount mulighederne for Btrfs filsystem. For store opbevaringsarrayer er disse muligheder bedst: compress-force=zlib, autodefrag, nospace_cache . Specielt komprimere = zlib vil komprimere alle dataene, så du kan få mest muligt ud af det lagerplads, du har. Til posten kan SSD-brugere bruge disse muligheder: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache . Disse muligheder går ret sammen med enhedsspecifikationerne, så en komplet linje i / etc / fstab for SSD-brugere vil se ud:

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 din opbevaringsbassin?

Btrfs er en fantastisk mulighed for opbevaring af pool og spejling, der helt sikkert bliver mere populær, når det anses for helt stabilt. Det ville heller ikke skade, at der var en GUI til at gøre konfigurationen nemmere (udover i nogle distributionsinstallatører), men de kommandoer, du skal bruge i terminalen, er nemme at forstå og anvende.

Hvad er den største opbevaringsbassin, du kan lave? Tror du opbevaringsbassiner er umagen værd? Lad os vide i kommentarerne!

Billedkredit: William Hook

In this article