Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man aktiverar lagringspooling och spegling med Btrfs för 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 av dessa hårddiskar.

Under vissa förhållanden kan du till och med aktivera spegling så att du inte förlorar dina data på grund av hårddiskfel. Med allt inrett kan du bara slänga vad du vill i poolen och utnyttja det förvaringsutrymme du har på bästa sätt.

Det finns inget GUI-konfigurationsverktyg som kan göra allt detta enklare (ännu), men det är fortfarande ganska enkelt 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 som innehåller många olika funktioner på filsystemsnivå som normalt bara är tillgängliga som separata mjukvarupaket. Även om Btrfs har många anmärkningsvärda funktioner (såsom ögonblicksbilder av filsystemet), är de två vi ska ta en titt på i den här artikeln lagringspooling och spegling.

Om du inte är säker på vad ett filsystem är, ta en titt på den här förklaringen av några filsystem för Windows. Du kan också kolla in den här trevliga jämförelsen av olika filsystem för att få en bättre uppfattning om skillnaderna mellan befintliga filsystem.

Btrfs anses fortfarande vara “inte stabilt” av många, men de flesta funktioner är redan tillräckligt stabila för personligt bruk — det är bara ett fåtal utvalda funktioner där du kan stöta på oavsiktliga resultat.

Även om Btrfs siktar på att vara standardfilsystemet för Linux någon gång i framtiden, är det fortfarande bäst att använda ext4 för enstaka hårddiskinställningar eller för inställningar som inte behöver lagringspooling och spegling.

Samla dina enheter

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

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

Relaterad  Huawei Nova 5 Series och Honor 20S startar EMUI 10.1 Closed Beta-rekrytering

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 faktiska 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 till en enda partition som sträcker sig över alla hårddiskar som du lägger till. Montera först den första Btrfs-hårddisken med kommandot:

sudo mount /dev/sdb /mnt

Kör sedan kommandona:

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 hjälp av kommandona:

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

Om du hade en del data lagrad på den första hårddisken, vill du att filsystemet ska balansera ut det bland alla nyligen tillagda hårddiskar. Du kan göra detta med kommandot:

sudo btrfs filesystem balance /mnt

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

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

Naturligtvis är detta mycket enklare, men du måste använda metoden som nämns ovan om du inte lägger till alla på en gång.

Du kommer att märka 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 upp mellan alla hårddiskar men ingen spegling sker), men den “enda” profilen behövs när hårddiskarna är olika stora. Om alla hårddiskar hade samma storlek skulle jag istället kunna använda flaggan “-d raid0”. “-d”-flaggan står förresten för data och låter dig ange vilken datakonfiguration 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 denna flagga 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.

Relaterad  Hur man stoppar Windows 10 från att automatiskt ansluta till ett Wi-Fi-nätverk

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ändbart utrymme eftersom de två 1 TB hårddiskarna är ihopkopplade i spegling och de två 500 GB hårddiskarna är ihopparade i spegling.

Konvertera ett filsystem

Om du har ett Btrfs-filsystem som du vill konvertera till en annan RAID-konfiguration är det enkelt att göra. Montera först filsystemet (om det inte redan är det) 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 den med vilken konfiguration du vill (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 flaggan -mconvert valfri om du bara är orolig för data men inte metadata.

Om hårddiskfel uppstår

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

sudo mount -o degraded /dev/sdb /mnt

Fixa sedan filsystemet med:

sudo btrfs device delete missing /mnt

Om du inte hade RAID 1 eller RAID 10 aktiverat, är all data som fanns på den trasiga 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 till /mnt, kan du göra det med kommandot:

sudo btrfs device delete /dev/sdc /mnt

Naturligtvis, byt ut /dev/sdc med hårddisken du vill ta bort. Det här kommandot kommer att ta lite tid eftersom det måste flytta all 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.

Relaterad  Xbox Game Pass: Hitman Trilogy tillgängligt i januari 2022 i prenumeration

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 device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0 0

Monteringsalternativ

Ännu ett bonustips! Du kan optimera Btrfs prestanda i din /etc/fstab-fil under monteringsalternativen för Btrfs-filsystemet. För stora lagringsmatriser är dessa alternativ bäst:

compress-force=zlib,autodefrag,nospace_cache

. Specifikt kommer compress=zlib att komprimera all data så att du kan utnyttja det lagringsutrymme du har på bästa sätt. För ordens skull 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 komplett rad i /etc/fstab för SSD-användare skulle se ut så här:

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 förvaringspool?

Btrfs är ett fantastiskt alternativ för lagringspooling och spegling som säkerligen kommer att bli mer populärt när det bedöms vara helt stabilt. Det skulle inte heller skada att det finns ett GUI för att göra konfigurationen enklare (förutom i vissa distributionsinstallatörer), men kommandona du måste använda i terminalen är lätta att förstå och tillämpa.

Vilken är den största förvaringspoolen du kan göra? Tycker du att förvaringspooler är värt besväret? Låt oss veta i kommentarerna!

Bildkredit: William Hook

Om författaren

Danny Stieben (480 artiklar publicerade)

Danny är senior vid University of North Texas som tycker om alla aspekter av programvara med öppen källkod och Linux.

Mer från Danny Stieben

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera