Btrfs (uttalad "Butter F S") är ett avancerat filsystem för Linux som kan fungera över flera hårddiskar och stöder olika feltoleransmodeller som RAID 0, RAID 1 och RAID 10. Btrfs har varit i utveckling sedan 2008 och det är vad som är känt som ett "copy on write" filsystem vilket innebär att när data ändras i ett block, kommer blocket att kopieras ett nytt block skrivet till skivan med de ändrade ändringarna. Det betyder att block aldrig ändras men det skapas ganska nya block och de gamla blocken återanvänds senare. Detta har fördelar för prestanda, speciellt när man säkerställer konsistens och integritet (även efter strömavbrott).

Om du antar att du har ett Linux-system som redan körs (förmodligen använder ext4) men du vill lägga till några hårddiskar och använda Btrfs så är det här vad du behöver göra. Först måste du installera Btrfs-verktygen. På Ubuntu:

 sudo apt-get install btrfs-verktyg 

Förutsatt att /dev/sda är huvudskivan med Linux installerad på den och du vill använda två nya skivor /dev/sdb och /dev/sdc, är nästa steg att skapa btrfs-filsystemet på dessa skivor.

 sudo mkfs.btrfs -m raid1 -d raid1 / dev / sdb / dev / sdc 

-d raid1 berättar för btrfs att använda RAID 1-spegling för data. Det innebär att det kommer att finnas minst två kopior av varje bit data, var och en på en annan enhet. Det är faktiskt möjligt att använda mer än två hårddiskar i en RAID 1-speglingskonfiguration. I sådana fall kommer btrfs att se till att minst en annan disk har en kopia av data. Informationen om data inklusive filnamn och filbehörigheter etc lagras i det som kallas metadata. -m raid1 berättar btrfs att använda RAID 1-spegling för metadata också. Precis som spegling för data, säkerställer användandet av spegling för metadata att informationen om filerna är lagrad på minst två diskar. Om någon av diskarna har befintliga partitionstabeller (och eventuellt data) använder du -f alternativet för att tvinga mkfs.btrfs att skriva över.

Nu när filsystemet har skapats kan det monteras med det normala mount kommandot:

 sudo mount / dev / sdb / mybtrfs 

Where /mybtrfs är katalogen där du vill montera filsystemet.

Vid det här laget kommer det nya filsystemet att listas av kommandot df -h . På mitt testsystem är /dev/sdb och /dev/sdc 100 GB vardera. På ett traditionellt RAID 1-system skulle det resulterande filsystemet vara listat som bara 100 GB, eftersom en skiva används för att duplicera data. Detta är inte så med btrfs. Eftersom skivor av olika storlekar kan användas i vilken kombination som helst, visar btrfs den totala storleken. Det finns dock ett kommando som ger mer information:

 sudo btrfs filsystem df / mybtrfs 

Detta kommer att visa den verkliga diskanvändningen för ett btrfs-filsystem inklusive det utrymme som tas av de faktiska data på filsystem och metadata.

" sudo btrfs filesystem show " är också användbart eftersom det kommer att lista de enskilda enheterna som används i filsystemet tillsammans med deras totala storlek och utrymme som används.

Det sista steget är att redigera /etc/fstab för att automatiskt montera btrfs-filsystemet vid start. För att göra så redigerar du filen och lägger till följande rad:

 / dev / sdb / mybtrfs btrfs standard 0 0 

Du kan få den universellt unika identifieraren för btrfs-filsystemet med sudo btrfs filesystem show . Att montera med uuid istället för enhetens namn skulle göra /etc/fstab raden något så här:

 UUID = 7911f7a9-cd03-48ef-8dca-27550d6039f4 / mybtrfs btrfs standard 0 0 

Om du har mer frågor, var god fråga i kommentaren nedan.