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 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 is Btrfs?
Btrfs (B-tree bestandssysteem genoemd, “Boter FS”, of “Betere FS”) is een aankomend bestandssysteem Ext4 versus Btrfs: Waarom we de switch maken [Linux] Ext4 versus Btrfs: waarom we de switch maken [Linux] Eerlijk gezegd is een van de laatste dingen waar mensen naar kijken, welk bestandssysteem 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 Wat is een bestandssysteem en waarom zijn ze van belang? Leer de verschillen tussen FAT32, NTFS, HPS +, EXT en meer. Lees verder . Je kunt ook deze leuke vergelijking van verschillende bestandssystemen bekijken. Van FAT naar NTFS naar ZFS: Bestandssystemen die van FAT worden gedemystificeerd Naar NTFS naar ZFS: bestandssystemen gedemystificeerd Verschillende harde schijven en besturingssystemen kunnen verschillende bestandssystemen gebruiken. Dit is wat dat betekent en wat je moet weten. Lees meer om een beter beeld te krijgen van de verschillen tussen bestaande bestandssystemen.
Btrfs wordt nog steeds overwogen “niet stabiel” door velen, maar de meeste functies zijn al stabiel genoeg voor persoonlijk gebruik - het zijn slechts enkele selecte functies waar u onbedoelde resultaten tegen kunt komen.
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 enkele harddrivesets of voor setups waarvoor geen pooling en mirroring van opslag nodig is.
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 1TB en twee andere harde schijven (/ dev / sdd en / dev / sde) met 500GB voor een totaal van vier harde schijven met een totaal van 3TB 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
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 bestandsysteem balans / 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 de “single” 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 kunnen gebruiken “-d raid0”. De “-d” vlag staat trouwens voor gegevens en biedt u de mogelijkheid om de gewenste gegevensconfiguratie op te geven. Er is ook een “-m” vlag die exact hetzelfde doet voor metadata.
Daarnaast kunt u ook het inschakelen van RAID 1 inschakelen “-d raid1” waardoor 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 u slechts 500 GB bruikbare ruimte krijgt, omdat de drie andere harde schijven worden gebruikt voor het spiegelen.
Ten slotte kunt u met behulp van RAID 10 inschakelen “-d raid10”. Dit zal een mix van zowel RAID 0 als RAID 1 doen, dus het geeft je 1,5 TB bruikbare ruimte, aangezien de twee 1 TB-harde schijven in een mirroring-combinatie zijn gepaarde en de twee harde schijven van 500 GB zijn gekoppeld in mirroring.
Een bestandssysteem converteren
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 degradeerde / dev / sdb / mnt
Herstel het bestandssysteem vervolgens met:
sudo btrfs device delete missing / mnt
Als u RAID 1 of RAID 10 niet hebt ingeschakeld, gaan alle gegevens die zich op de defecte harde schijf bevonden, verloren.
Een harde schijf verwijderen van het bestandssysteem
Als u ten slotte een apparaat uit een Btrfs-bestandssysteem wilt verwijderen en het bestandssysteem is gemount naar / 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. Dit commando zal enige tijd duren omdat het alle gegevens van de verwijderde harde schijf moet verplaatsen, en zal ook mislukken als er niet genoeg ruimte is op de andere resterende harde schijven.
Automatische montage
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: comprimeren 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 orde kunnen SSD-gebruikers deze opties gebruiken: noatime comprimeren = LZO, ssd, verwerp, 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 comments!
Image Credit: William Hook