Hoe Storage Pooling en Mirroring met behulp van Btrfs voor Linux inschakelen

Als u meerdere harde schijven in uw Linux-systeem hebt, hoeft u ze niet als verschillende opslagapparaten te behandelen. Met Btrfs kunt u gemakkelijk een opslagpool maken van die harde schijven.

Als u meerdere harde schijven in uw Linux-systeem hebt, hoeft u ze niet als verschillende opslagapparaten te behandelen.  Met Btrfs kunt u gemakkelijk een opslagpool maken van die harde schijven.
Advertentie

Als u meerdere harde schijven in uw Linux-systeem hebt, hoeft u ze niet allemaal als verschillende opslagapparaten te behandelen. Met Btrfs kunt u heel eenvoudig een opslagpool maken van die harde schijven.

Onder bepaalde omstandigheden kunt u zelfs mirroring inschakelen, zodat u uw gegevens niet kwijtraakt door een defect van de harde schijf. Met alles ingesteld, kunt u gewoon wat u maar wilt in het zwembad gooien en optimaal gebruikmaken van de opslagruimte die u heeft.

Er is geen GUI-configuratiehulpprogramma dat dit alles (nog) gemakkelijker kan maken, maar het is nog steeds vrij eenvoudig te doen met de opdrachtregel. Ik zal je door een eenvoudige installatie leiden voor het samen gebruiken van verschillende harde schijven.

Wat zijn Btrfs?

Btrfs (genaamd B-tree bestandssysteem, "Butter FS", of "Better FS") is een aankomend bestandssysteem Ext4 versus Btrfs: Waarom we de switch [Linux] Ext4 versus Btrfs maken: Waarom we de switch maken [Linux] Eerlijk gezegd is een van de laatste dingen waar mensen naar kijken, het bestandssysteem dat wordt gebruikt. Windows- en Mac OS X-gebruikers hebben nog minder reden om te kijken, omdat ze eigenlijk maar één ... Lees meer dat veel verschillende functies bevat op bestandsniveau, normaal gesproken alleen beschikbaar als afzonderlijke softwarepakketten. Hoewel Btrfs veel opmerkelijke functies heeft (zoals momentopnamen van het bestandssysteem), zijn de twee die we in dit artikel gaan bekijken, opslag poolen en spiegelen.

Als je niet zeker weet wat een bestandssysteem is, bekijk deze uitleg van een paar bestandssystemen voor Windows Wat een bestandssysteem is en hoe je kunt achterhalen wat op je schijven draait Wat een bestandssysteem is en hoe je erachter kunt komen Wat draait op uw schijven Lees meer. Je kunt ook deze leuke vergelijking van verschillende bestandssystemen bekijken. Van FAT naar NTFS naar ZFS: File Systems Demystified [MakeUseOf Explains] Van FAT naar NTFS To ZFS: File Systems Demystified [MakeUseOf Explains] Weet je echt wat je harde schijf doet wanneer je een bestand ervan lezen of er een bestand naar schrijven? Onze harde schijven kunnen nu enorme hoeveelheden gegevens opslaan, en die enorme ruimte ... Lees meer om een ​​beter beeld te krijgen van de verschillen tussen bestaande bestandssystemen.

Btrfs wordt door velen nog steeds als "niet stabiel" beschouwd, maar de meeste functies zijn al stabiel genoeg voor persoonlijk gebruik - het zijn slechts enkele selecte functies waarmee u onbedoelde resultaten kunt tegenkomen.

Hoewel Btrfs op enig moment in de toekomst het standaardbestandssysteem voor Linux wil zijn, is het nog steeds het beste om ext4 te gebruiken voor afzonderlijke harde schijf-setups of voor setups die geen pooling en mirroring van opslag vereisen.

Uw schijven poolen

Voor dit voorbeeld gaan we een installatie van vier harde schijven gebruiken. Er zijn twee harde schijven (/ dev / sdb en / dev / sdc) met elk 1 TB en twee andere harde schijven (/ dev / sdd en / dev / sde) met 500 GB voor een totaal van vier harde schijven met een totaal van 3 TB van opslag.

Je kunt ook aannemen dat je een andere harde schijf hebt (/ dev / sda) van een willekeurige grootte die je bootloader en besturingssysteem bevat. We houden ons niet bezig met / dev / sda en combineren alleen de andere vier harde schijven voor extra opslagdoeleinden.

Een bestandssysteem maken

btrfs_gparted
Om een ​​Btrfs-bestandssysteem op een van je harde schijven te maken, kun je de opdracht gebruiken:

sudo mkfs.btrfs /dev/sdb

Natuurlijk kunt u / dev / sdb vervangen door de daadwerkelijke harde schijf die u wilt gebruiken. Hier kunt u andere harde schijven aan het Btrfs-systeem toevoegen om er één enkele partitie van te maken die zich uitstrekt over alle harde schijven die u toevoegt. Monteer eerst de eerste Btrfs-harde schijf met behulp van de opdracht:

sudo mount /dev/sdb /mnt

Voer vervolgens de opdrachten uit:

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

Nu kunt u ze toevoegen aan de eerste harde schijf met behulp van de opdrachten:

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

Als u wat gegevens op de eerste harde schijf had opgeslagen, wilt u dat het bestandssysteem dit uitwisselt tussen alle nieuw toegevoegde harde schijven. U kunt dit doen met de opdracht:

sudo btrfs filesystem balance /mnt

Als alternatief, als je al weet voordat je begint, wil je dat een Btrfs-bestandssysteem over alle harde schijven gaat, kun je gewoon de opdracht uitvoeren:

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

Natuurlijk is dit veel eenvoudiger, maar je moet de hierboven genoemde methode gebruiken als je ze niet allemaal in één keer toevoegt.

Je zult merken dat ik een vlag gebruikte: "-d single". Dit is nodig omdat ik een RAID 0-configuratie wilde (waarbij de gegevens over alle harde schijven worden verdeeld maar er geen spiegeling optreedt), maar het "enkele" profiel is nodig wanneer de harde schijven verschillende grootten hebben. Als alle harde schijven dezelfde grootte zouden hebben, zou ik in plaats daarvan de vlag "-d raid0" kunnen gebruiken. De "-d" -markering staat overigens voor gegevens en biedt u de mogelijkheid om de gewenste gegevensconfiguratie op te geven. Er is ook een vlag "-m" die precies hetzelfde doet voor metadata.

Daarnaast kun je ook RAID 1 inschakelen met "-d raid1", waarbij gegevens op alle apparaten worden gedupliceerd, dus het gebruik van deze vlag tijdens het maken van het Btrfs-bestandssysteem dat alle harde schijven omvat, zou betekenen dat je slechts 500 GB bruikbare ruimte krijgt, omdat de drie andere harde schijven worden gebruikt voor spiegeling.

Ten slotte kunt u RAID 10 inschakelen met "-d raid10". Dit zal een mix van zowel RAID 0 als RAID 1 doen, dus het geeft je 1, 5 TB bruikbare ruimte, omdat de twee 1TB harde schijven gepaard zijn met spiegelen en de twee harde schijven van 500 GB gepaard gaan met spiegelen.

Een bestandssysteem converteren

btrfs_harddiskstack
Als u een Btrfs-bestandssysteem hebt dat u naar een andere RAID-configuratie wilt converteren, kunt u dat eenvoudig doen. Monteer eerst het bestandssysteem (als dat nog niet het geval is) met de opdracht:

sudo mount /dev/sdb1 /mnt

Voer vervolgens de opdracht uit:

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

Hiermee wordt de configuratie gewijzigd in RAID 1, maar u kunt deze vervangen door de configuratie die u wilt (mits deze daadwerkelijk is toegestaan ​​- u kunt bijvoorbeeld niet overschakelen naar RAID 10 als u niet ten minste vier harde schijven hebt) . Bovendien is de vlag -mconvert optioneel als u zich alleen zorgen maakt over de gegevens maar niet over de metagegevens.

Als er een harde-schijfstoring optreedt

Als een harde schijf uitvalt, moet u deze van het bestandssysteem verwijderen, zodat de overige gepoolde schijven correct werken. Koppel het bestandssysteem met de opdracht:

sudo mount -o degraded /dev/sdb /mnt

Herstel het bestandssysteem vervolgens met:

sudo btrfs device delete missing /mnt

Als u RAID 1 of RAID 10 niet had ingeschakeld, zijn alle gegevens die zich op de defecte harde schijf bevonden, nu verloren.

Een harde schijf verwijderen van het bestandssysteem

Als u ten slotte een apparaat uit een Btrfs-bestandssysteem wilt verwijderen en het bestandssysteem is gekoppeld aan / mnt, kunt u dit doen met de opdracht:

sudo btrfs device delete /dev/sdc /mnt

Vervang natuurlijk / dev / sdc door de harde schijf die u wilt verwijderen. Deze opdracht zal enige tijd duren, omdat alle gegevens van de verwijderde harde schijf moeten worden verplaatst en ook zullen mislukken als er niet genoeg ruimte is op de andere resterende harde schijven.

Automatische montage

btrfs_fstab
Als u wilt dat het Btrfs-bestandssysteem automatisch wordt gemount, kunt u dit in uw / etc / fstab-bestand plaatsen:

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

Opties monteren

Nog een bonus tip! Je kunt de prestaties van Btrfs optimaliseren in je / etc / fstab-bestand onder de mount-opties voor het Btrfs-bestandssysteem. Voor grote opslagarrays zijn deze opties het beste: compress-force=zlib, autodefrag, nospace_cache . Concreet comprimeren = zlib comprimeert alle gegevens, zodat u het meeste gebruik kunt maken van de opslagruimte die u hebt. Voor de goede noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache kunnen SSD-gebruikers deze opties gebruiken: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache . Deze opties gaan samen met de apparaatspecificaties, dus een complete regel in / etc / fstab voor SSD-gebruikers ziet er als volgt uit:

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

Hoe groot is uw opslagpool?

Btrfs is een fantastische optie voor poolen en spiegelen van opslagmedia die zeker populairder zal worden zodra deze volledig stabiel wordt geacht. Het zou ook geen kwaad als er een GUI zou zijn om de configuratie eenvoudiger te maken (behalve in sommige distributie-installatieprogramma's), maar de opdrachten die u in de terminal moet gebruiken, zijn eenvoudig te begrijpen en toe te passen.

Wat is de grootste opslagpool die je zou kunnen maken? Denkt u dat storage pools de moeite waard zijn? Laat het ons weten in de reacties!

Image Credit: William Hook

In this article