Nadat u een Btrfs RAID hebt gemaakt, kunt u meer opslagapparaten aan de RAID toevoegen om de RAID uit te breiden. Maar zodra u meer opslagapparaten aan de RAID hebt toegevoegd, zal Btrfs de bestaande gegevens/metagegevens/systeemgegevens niet automatisch naar de nieuwe opslagapparaten verspreiden. Het is dus mogelijk dat u niet de gewenste doorvoer (lees-/schrijfsnelheid) uit de RAID haalt en dat de nieuwe opslagapparaten mogelijk niet worden gevuld met de vereiste redundante gegevens. Het is dus mogelijk dat de RAID-array het gewenste aantal schijffouten niet overleeft.
Om deze problemen op te lossen, biedt het Btrfs-bestandssysteem een ingebouwde balanceringstool. Het Btrfs-balanshulpprogramma verspreidt de gegevens/metagegevens/systeemgegevens van de bestaande opslagapparaten van de RAID naar de nieuw toegevoegde opslagapparaten.
In dit artikel laat ik je zien hoe je het Btrfs-balanshulpprogramma kunt gebruiken om de gegevens/metadata/systeemgegevens van de bestaande opslagapparaten van de RAID te verspreiden naar de nieuw toegevoegde opslagapparaten. Dus laten we beginnen!
Afkortingen
INVAL - Redundante reeks goedkope/onafhankelijke schijven
MB - Megabyte
NL - Gigabyte
Vereisten
Om dit artikel te volgen, heb je een werkende Btrfs RAID of multi-apparaat setup nodig.
Ik heb een Btrfs RAID gemaakt in RAID-0 configuratie met 4 opslagapparaten sdb, sdc, sdd, en sde.
Zoals je kunt zien, is het Btrfs-bestandssysteem toegewezen 1 GB schijfruimte voor data1 256 MB schijfruimte voor metagegevens2, en 4 MB schijfruimte voor systeemgegevens3 van elk van de opslagapparaten in de RAID.
Over 18.75 GB uit 20 GB is nog steeds niet toegewezen4 van elk van de opslagapparaten van de RAID.
$ sudo btrfs bestandssysteemgebruik /data
Een script schrijven om willekeurige bestanden te genereren
Om u te laten zien hoe het Btrfs-balanshulpprogramma werkt, moeten we enkele willekeurige bestanden genereren om het Btrfs-bestandssysteem te vullen. Laten we een shellscript maken dat precies dat doet.
Maak een nieuw shellscript genfiles.sh in de /usr/local/bin/ directory als volgt:
$ sudo nano /usr/local/bin/genfiles.sh
Typ de volgende regels codes in de genfiles.sh shell-script.
#!/bin/bashterwijl het waar is
Doen
FILENAME=$(uuidgen)
echo "[Creëren] $FILENAME"
dd if=/dev/random of=$FILENAME bs=1M count=256 status=progress
echo "[Gemaakt] $FILENAME"
gedaan
Als u klaar bent, drukt u op
De genfiles.sh shell-script voert een oneindige terwijl lus.
terwijl het waar isDoen
# andere codes
gedaan
De volgende regel genereert een UUID met behulp van de uuidgen commando en slaat de UUID op in de BESTANDSNAAM variabele.
De volgende regel drukt een bericht af op de console vóór het bestand: BESTANDSNAAM is gegenereerd.
De volgende regel genereert een nieuw willekeurig bestand: BESTANDSNAAM de ... gebruiken dd opdracht. Het bestand zal 256 MB groot zijn.
De volgende regel drukt een bericht af op de console na het bestand BESTANDSNAAM is gegenereerd.
Voeg uitvoertoestemming toe aan de genfiles.sh shell-script als volgt:
$ sudo chmod +x /usr/local/bin/genfiles.sh
De genfiles.sh shellscript zou nu toegankelijk moeten zijn zoals elk ander commando command.
$ welke genfiles.sh
Willekeurige bestanden genereren in het Btrfs-bestandssysteem
We willen willekeurige bestanden genereren in de Btrfs RAID. Laten we zeggen dat de Btrfs RAID is gemonteerd op de /gegevens map.
Navigeer naar de /gegevens directory waar de Btrfs RAID als volgt is aangekoppeld:
$ cd /gegevens
Zoals je kunt zien, zijn er op dit moment geen bestanden beschikbaar in mijn Btrfs RAID.
$ ls -lh
Om enkele willekeurige bestanden in de huidige werkmap te genereren (/gegevens directory in dit geval), voer de genfiles.sh shell-script als volgt:
$ sudo-genbestanden.sh
De genfiles.sh shellscript moet beginnen met het genereren van willekeurige bestanden in de /gegevens map.
De genfiles.sh script genereert willekeurige bestanden. Laat het script een paar minuten draaien, zodat het ongeveer 2-3 GB schijfruimte van de Btrfs RAID vult.
Wanneer u de wilt stoppen genfiles.sh shell-script, druk op
Zoals u kunt zien, worden enkele willekeurige bestanden gegenereerd in de Btrfs RAID.
$ ls -lh
Zoals u kunt zien, heeft de Btrfs RAID 2 GB toegewezen aan elk van de opslagapparaten die aan de RAID zijn toegevoegd. Voorheen wees de Btrfs RAID 1 GB toe van elk van de opslagapparaten die aan de RAID werden toegevoegd.
De niet-toegewezen schijfruimte is teruggebracht van 18.75 GB naar 17.75 GB in alle opslagapparaten van de RAID.
$ sudo btrfs bestandssysteemgebruik /data
Een ander opslagapparaat toevoegen aan de Btrfs RAID
Om u te laten zien hoe u een Btrfs RAID balanceert na het toevoegen van een nieuw opslagapparaat, moet u er een nieuw opslagapparaat aan toevoegen.
Ik heb een nieuwe HDD toegevoegd sdf op mijn computer, die ik wil toevoegen aan de Btrfs RAID gemonteerd op de /gegevens map. Laten we eens kijken hoe het te doen.
$ sudo lsblk -e7
Navigeer naar een andere map (i.e., HUIS map) van de /gegevens map als volgt:
$ cd
Het opslagapparaat toevoegen sdf naar de Btrfs RAID gemonteerd op de /gegevens map, voer de volgende opdracht uit:
$ sudo btrfs apparaat toevoegen /dev/sdf /data
Zoals u kunt zien, is het opslagapparaat sdf wordt toegevoegd aan de Btrfs RAID. De RAID-grootte is toegenomen van 80 GB naar 100 GB.
$ sudo btrfs bestandssysteemgebruik /data
Balanceren van de Btrfs RAID
Zoals u kunt zien, is het nieuw toegevoegde opslagapparaat (sdf) van de RAID (gemonteerd op de /gegevens directory) heeft 20 GB niet-toegewezen, en de andere opslagapparaten (sdb, sdc, sdd, sde, enz.) hebben 17.75 GB niet-toegewezen.
$ sudo btrfs bestandssysteemgebruik /data
De gegevens1, metagegevens2, en systeemgegevens3 zijn alleen beschikbaar op de bestaande opslagapparaten van de RAID, niet op het nieuw toegevoegde opslagapparaat.
Om de gegevens, metagegevens en systeemgegevens op alle opslagapparaten van de RAID (inclusief het nieuw toegevoegde opslagapparaat) die op de /gegevens map, voer de volgende opdracht uit:
$ sudo btrfs saldo start --volledige saldo /data
Het kan even duren om de gegevens, metagegevens en systeemgegevens op alle opslagapparaten van de RAID te verspreiden als deze veel gegevens bevat.
Zodra de opslagapparaten van de RAID goed gebalanceerd zijn, zou u het volgende bericht moeten zien:.
Zoals u kunt zien, heeft het nieuw toegevoegde opslagapparaat, nadat de balansbewerking is voltooid, een gelijke hoeveelheid niet-toegewezen schijfruimte als de andere opslagapparaten van de RAID.
Na de balansbewerking wordt een gelijke hoeveelheid schijfruimte als de andere opslagapparaten van de RAID toegewezen voor de gegevens, metagegevens en systeemgegevens van het nieuw toegevoegde opslagapparaat (sdf) van de RAID.
Conclusie
In dit artikel heb ik het doel van het Btrfs-balanshulpprogramma besproken, evenals hoe een Btrfs RAID- of multi-apparaat bestandssysteem te balanceren na het toevoegen van nieuwe opslagapparaten aan de RAID of multi-apparaat bestandssysteem.