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 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 installerat kan du bara kasta vad du vill i poolen och utnyttja det lagringsutrymme du har mest.
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 kommer att leda dig genom 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 vi byter [Linux]Helt ärligt, en av de sista saker som människor tittar på är vilket filsystem som används. Windows- och Mac OS X-användare har ännu mindre anledning att titta, eftersom de egentligen bara har en ... Läs mer
som innehåller många olika funktioner på filsystemnivå som normalt bara finns som separata programvarupaket. Även om Btrfs har många anmärkningsvärda funktioner (till exempel snapshots för filsystem), är de två vi ska titta på i den här artikeln lagringspooler och spegling.Om du inte är säker på vad ett filsystem är, titta 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ör på dina enheterVad är ett filsystem och varför spelar de någon roll? Lär dig skillnaderna mellan FAT32, NTFS, HPS +, EXT och mer. Läs mer . Du kan också kolla in det här trevliga jämförelse av olika filsystem Från FAT till NTFS till ZFS: File Systems DemystifiedOlika 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 bild av skillnaderna mellan befintliga filsystem.
Btrfs anses fortfarande som "inte stabilt" av många, men de flesta funktioner är redan tillräckligt stabila för personligt bruk - det är bara några få funktioner där du kan stöta på några oavsiktliga resultat.
Även om Btrfs syftar till 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 lagringspooler och spegling.
Samla dina enheter
I det här exemplet kommer vi att använda en fyra hårddiskinstallation. 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 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 operativsystem. Vi berör oss inte om / dev / sda och kombinerar bara de fyra andra 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 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. Först montera 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 till 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 några data lagrade på den första hårddisken, vill du att filsystemet ska balansera det mellan alla de nyligen tillagda hårddiskarna. Du kan göra detta med kommandot:
sudo btrfs filsystembalans / mnt
Alternativt, om du vet innan du ens börjar att du vill att ett Btrfs-filsystem ska spänna över alla hårddiskar, kan du helt enkelt köra kommandot:
sudo mkfs.btrfs -d singel / dev / sdb / dev / sdc / dev / sdd / dev / sde
Naturligtvis är detta mycket lättare, men du måste använda metoden som nämns ovan om du inte lägger till dem 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 informationen är uppdelad mellan allt hårt enheter men ingen spegling inträffar), men "enda" -profilen behövs när hårddiskarna är olika storlekar. Om alla hårddiskar hade samma storlek, skulle jag istället kunna använda flaggan “-d raid0”. Flaggan “-d” 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 du använder denna flagga under skapandet av Btrfs-filsystem 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 gör en blandning av både RAID 0 och RAID 1, så det ger dig 1,5 TB användbart utrymme eftersom de två 1TB-hårddiskarna är ihopkopplade i spegling och de två 500 GB-hårddiskarna är parade i spegling.
Konvertera ett filsystem
Om du har ett Btrfs-filsystem som du vill konvertera till en annan RAID-konfiguration görs det enkelt. Först montera filsystemet (om det inte redan är) med kommandot:
sudo montera / 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 den med vilken konfiguration du vill (så så länge det faktiskt är tillåtet - till exempel kan du inte byta till RAID 10 om du inte har minst fyra hårda enheter). Dessutom är flaggan -mconvert valfri om du bara är orolig för data men inte metadata.
Om hårddisken misslyckas
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 degraderad / dev / sdb / mnt
Fixa sedan filsystemet med:
sudo btrfs-enhet radera saknas / mnt
Om du inte har aktiverat RAID 1 eller RAID 10 går data som fanns på den misslyckade hårddisken nu förlorade.
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
Byt naturligtvis 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 information 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 device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde 0 0
Montera alternativ
Ett bonustips till! 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 komprimerar compress = zlib all data så att du kan utnyttja det lagringsutrymme du har mest. För posten kan SSD-användare använda dessa alternativ: noatime, compress = lzo, ssd, kassera, 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:
sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde,
noatime, compress = lzo, ssd, kassera, space_cache, autodefrag, inode_cache 0 0
Hur stor är din lagringspool?
Btrfs är ett fantastiskt alternativ för lagring av pooler och spegling som säkert kommer att bli mer populärt när det anses vara helt stabilt. Det skulle inte skada att det finns ett GUI för att underlätta konfigurationen (förutom i vissa distributionsinstallatörer), men kommandona du måste använda i terminalen är enkla att förstå och tillämpa.
Vad är den största lagringspool du kan göra? Tycker du att lagringsbassänger är värda? Låt oss veta i kommentarerna!
Bildkredit: William Hook
Danny är senior vid University of North Texas som tycker om alla aspekter av open source-programvara och Linux.