Så här aktiverar du lagringspolning och spegling med hjälp av Btrfs för Linux

Om du har flera hårddiskar i ditt Linux-system behöver du inte behandla dem som olika lagringsenheter. Med Btrfs kan du enkelt skapa en lagringspool från dessa hårddiskar.

Om du har flera hårddiskar i ditt Linux-system behöver du inte behandla dem som olika lagringsenheter.  Med Btrfs kan du enkelt skapa en lagringspool från dessa hårddiskar.
Annons

Om du har flera hårddiskar i ditt Linux-system behöver du inte behandla dem alla som olika lagringsenheter. Med Btrfs kan du mycket enkelt skapa en lagringspool ut ur dessa hårddiskar.

Under vissa omständigheter kan du även aktivera spegling så att du inte kommer att förlora dina data på grund av hårddiskfel. Med allt upprättat kan du bara kasta allt du vill ha i poolen och utnyttja mest lagringsutrymme du har.

Det finns inte ett GUI-konfigurationsverktyg som kan göra allt detta lättare (ännu), men det är fortfarande ganska lätt att göra med kommandoraden. Jag går igenom en enkel installation för att använda flera hårddiskar tillsammans.

Vad är Btrfs?

Btrfs (kallat B-tree-filsystem, "Butter FS" eller "Better FS") är ett kommande filsystem Ext4 vs. Btrfs: Varför gör vi omkopplaren [Linux] Ext4 vs Btrfs: Varför gör vi omkopplaren [Linux] Ärligt talat är ett av de sista sakerna folk tittar på, vilket filsystem som används. Windows och Mac OS X-användare har ännu mindre anledning att titta på, eftersom de verkligen bara har en ... Läs mer som innehåller många olika funktioner på filsystemnivå som normalt endast är tillgängliga som separata mjukvarupaket. Medan Btrfs har många anmärkningsvärda funktioner (till exempel filsystem snapshots), kommer de två som vi ska titta på i den här artikeln lagringspooling och spegling.

Om du inte är säker på vad ett filsystem är, ta en titt på denna förklaring av några filsystem för Windows Vad ett filsystem är och hur du kan ta reda på vad som körs på dina enheter Vad ett filsystem är och hur du kan ta reda på det Vad som går på dina enheter Läs mer. Du kan också kolla in den här fina jämförelsen mellan olika filsystem. Från FAT till NTFS till ZFS: File Systems Demystified [MakeUseOf Explains] Från FAT till NTFS till ZFS: File Systems Demystified [MakeUseOf Explains] Har du verkligen vet vad din hårddisk gör när du läs en fil från den eller skriv en till den? Våra hårddiskar kan nu lagra massiva datamängder och det massiva utrymmet ... Läs mer för att få en bättre uppfattning om skillnaderna mellan befintliga filsystem.

Btrfs betraktas fortfarande som "inte stabil" av många, men de flesta funktioner är redan stabila nog för personligt bruk - det är bara några få funktioner där du kan stöta på några oavsiktliga resultat.

Medan Btrfs syftar till att vara standardfilsystemet för Linux vid något tillfälle i framtiden, är det fortfarande bäst att använda ext4 för enstaka hårddiskuppsättningar eller för uppställningar som inte behöver lagringspooling och spegling.

Pooling Your Drives

För det här exemplet kommer vi att använda en fyra hårddiskuppsättning. Det finns två hårddiskar (/ dev / sdb och / dev / sdc) med 1TB vardera och två andra hårddiskar (/ dev / sdd och / dev / sde) med 500GB för totalt fyra hårddiskar med totalt 3TB lagring.

Du kan också anta att du har en annan hårddisk (/ dev / sda) av någon godtycklig storlek som innehåller din startladdare och operativsystem. Vi berör inte oss själva om / dev / sda och kombinerar enbart de andra fyra hårddiskarna för extra lagringsändamål.

Skapa ett filsystem

btrfs_gparted
För att skapa ett Btrfs-filsystem på en av dina hårddiskar kan du använda kommandot:

sudo mkfs.btrfs /dev/sdb

Naturligtvis kan du ersätta / dev / sdb med den aktuella hårddisken du vill använda. Härifrån kan du lägga till andra hårddiskar till Btrfs-systemet för att göra det en enda partition som spänner över alla hårddiskar som du lägger till. Först montera du den första Btrfs-hårddisken med kommandot:

sudo mount /dev/sdb /mnt

Kör sedan kommandon:

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

Nu kan du lägga till dem på den första hårddisken med kommandon:

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

Om du hade några data lagrade på den första hårddisken, vill du att filsystemet balanserar det bland alla nya hårddiskar. Du kan göra detta med kommandot:

sudo btrfs filesystem balance /mnt

Alternativt, om du vet innan du ens börjar att du vill att ett Btrfs-filsystem ska spännas över alla hårddiskar, kan du helt enkelt köra kommandot:

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

Det här är naturligtvis mycket lättare, men du måste använda den ovan angivna metoden om du inte lägger till dem på en gång.

Du märker att jag använde en flagga: "-d single". Detta är nödvändigt eftersom jag ville ha en RAID 0-konfiguration (där data delas mellan alla hårddiskar men ingen spegling sker), men "singel" -profilen behövs när hårddiskarna har olika storlekar. Om alla hårddiskar var lika stora kunde jag istället använda flaggan "-d raid0". "-d" -flaggan står för närvarande för data och låter dig ange datakonfigurationen du vill ha. Det finns också en "-m" -flagga som gör exakt samma sak för metadata.

Förutom detta kan du också aktivera RAID 1 med "-d raid1" som kommer att duplicera data över alla enheter. Om du använder denna flagga under skapandet av Btrfs-filsystem som spänner över alla hårddiskar skulle det innebära att du bara får 500 GB användbar plats, som de tre andra hårddiskarna används för spegling.

Slutligen kan du aktivera RAID 10 med "-d raid10". Detta kommer att göra en blandning av både RAID 0 och RAID 1, så det ger dig 1, 5 TB användbar plats eftersom de två 1TB-hårddiskarna är ihopspeglade och de två 500 GB hårddiskarna är ihopkopplade i spegling.

Konvertera ett filsystem

btrfs_harddiskstack
Om du har ett Btrfs-filsystem som du vill konvertera till en annan RAID-konfiguration, kan du enkelt göra det. Först montera filsystemet (om det inte redan är) med kommandot:

sudo mount /dev/sdb1 /mnt

Kör sedan kommandot:

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

Detta kommer att ändra konfigurationen till RAID 1, men du kan ersätta det med vilken konfiguration du vill ha (så länge det faktiskt är tillåtet - till exempel kan du inte byta till RAID 10 om du inte har minst fyra hårddiskar) . Dessutom är -mconvert-flaggan valfri om du bara är bekymrad över data men inte metadata.

Om fel på hårddisk uppstår

Om en hårddisk misslyckas måste du ta bort den från filsystemet så att resten av de sammanslagna enheterna fungerar som de ska. Montera filsystemet med kommandot:

sudo mount -o degraded /dev/sdb /mnt

Fixera sedan filsystemet med:

sudo btrfs device delete missing /mnt

Om du inte hade RAID 1 eller RAID 10 aktiverad, är data som saknades på den felaktiga hårddisken nu förlorad.

Ta bort en hårddisk från filsystemet

Slutligen, om du vill ta bort en enhet från ett Btrfs-filsystem och filsystemet är monterat på / mnt kan du göra det med kommandot:

sudo btrfs device delete /dev/sdc /mnt

Naturligtvis, ersätt / dev / sdc med hårddisken du vill ta bort. Det här kommandot tar lite tid eftersom det måste flytta all data från hårddisken som tas bort, och det kommer också att misslyckas om det inte finns tillräckligt med utrymme på de andra återstående hårddiskarna.

Automatisk montering

btrfs_fstab
Om du vill att Btrfs-filsystemet ska monteras automatiskt kan du placera detta i din / etc / fstab-fil:

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

Montera alternativ

En extra bonus tips! Du kan optimera Btrfs prestanda i din / etc / fstab-fil under mountalternativen för Btrfs-filsystemet. För stora lagringsarrayer är dessa alternativ bäst: compress-force=zlib, autodefrag, nospace_cache . Specifikt komprimera = zlib komprimerar all data så att du kan utnyttja det lagringsutrymme du har mest utnyttjat. För posten kan SSD-användare använda dessa alternativ: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache . Dessa alternativ går rätt tillsammans med enhetsspecifikationerna, så en fullständig rad i / etc / fstab för SSD-användare skulle se ut:

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

Hur stor är din lagringsutrymme?

Btrfs är ett fantastiskt alternativ för lagringspooling och spegling som säkerligen blir mer populär när den anses vara helt stabil. Det skulle inte skadas för att det skulle vara ett GUI för att göra konfigurationen enklare (förutom i vissa distributionsinstallatörer), men de kommandon som du måste använda i terminalen är lätta att greppa och tillämpa.

Vad är den största lagringspoolen du kan göra? Tror du att lagringsbassängerna är värda? Låt oss veta i kommentarerna!

Bildkrediter: William Hook

In this article