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

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

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, “Smör FS”, eller “Bättre FS”) är ett kommande filsystem Ext4 vs Btrfs: Varför vi gör omkopplaren [Linux] Ext4 vs Btrfs: Varför gör vi omkopplaren [Linux] Ärligt talat är en av de sista sakerna människor tittar på vilket filsystem 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 att lagra pool och spegla.

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 körs på dina enheter Vad är ett filsystem och varför spelar de roll? Lär dig skillnaderna mellan FAT32, NTFS, HPS +, EXT och mer. 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: Filsystem Demystified från FAT till NTFS till ZFS: Filsystem Demystified Olika hårddiskar och operativsystem kan använda olika filsystem. Här är vad det betyder och vad du behöver veta. Läs mer för att få en bättre uppfattning om skillnaderna mellan befintliga filsystem.

Btrfs övervägs fortfarande “inte stabil” av många, men de flesta funktioner är redan stabila nog för personligt bruk - det är bara några utvalda 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


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-enhet lägg till / dev / sdc / mnt btrfs-enhet lägg till / dev / sdd / mnt btrfs-enhet lägg till / 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 balans / 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 enkelt / 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 singel”. Detta är nödvändigt eftersom jag ville ha en RAID 0-konfiguration (där data delas mellan alla hårddiskar men ingen spegling uppstår), men “enda” profil 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”. De “-d” flaggan förresten står 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, så att använda den här flaggan under skapandet av Btrfs-filsystemet som spänner över alla hårddiskar skulle innebära att du bara får 500 GB användbart utrymme, eftersom 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 ihopkopplade i spegling och de två 500 GB hårddiskarna är ihopkopplade i spegling.

Konvertera ett filsystem


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 balans 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 degraderad / dev / sdb / mnt

Fixera sedan filsystemet med:

sudo btrfs-enhet radera saknas / 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-enhet radera / 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 alla data från hårddisken som tas bort, och kommer också att misslyckas om det inte finns tillräckligt med utrymme på de andra återstående hårddiskarna.

Automatisk montering


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

sudo / dev / sdb / mnt btrfs-enhet = / dev / sdb, enhet = / dev / sdc, enhet = / dev / sdd, enhet = / 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: komprimera-kraft = 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, komprimera = LZO, ssd, kassera, 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-enhet = / dev / sdb, enhet = / dev / sdc, enhet = / dev / sdd, enhet = / dev / sde,
noatime, compress = lzo, ssd, kasta bort, 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 finns en 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 förstå 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