Jakmile vytvoříte Btrfs RAID, můžete do pole RAID přidat další úložná zařízení a rozšířit tak pole RAID. Ale jakmile přidáte více úložných zařízení do pole RAID, Btrfs nebude automaticky šířit stávající data / metadata / systémová data na nová úložná zařízení. Je možné, že z pole RAID nedostanete požadovanou propustnost (rychlost čtení / zápisu) a nemusí být schopen naplnit nová úložná zařízení požadovanými redundantními daty. Pole RAID tedy nemusí přežít požadovaný počet selhání disků.
K vyřešení těchto problémů poskytuje souborový systém Btrfs integrovaný vyrovnávací nástroj. Obslužný program Btrfs balance rozšíří data / metadata / systémová data stávajících úložných zařízení RAID na nově přidaná úložná zařízení.
V tomto článku vám ukážu, jak použít nástroj Btrfs balance k šíření dat / metadat / systémových dat stávajících úložných zařízení RAID na nově přidaná úložná zařízení. Pojďme tedy začít!
Zkratky
NÁLET - Redundantní pole levných / nezávislých disků
MB - Megabajt
GB - Gigabyte
Předpoklady
Chcete-li sledovat tento článek, musíte mít funkční nastavení RAID Btrfs nebo nastavení pro více zařízení.
Vytvořil jsem Btrfs RAID v RAID-0 konfigurace pomocí 4 úložných zařízení sdb, sdc, SD D, a sde.
Jak vidíte, souborový systém Btrfs byl přidělen 1 GB místa na disku pro data1 256 MB místa na disku pro metadata2, a 4 MB místa na disku pro system-data3 z každého úložného zařízení v poli RAID.
O 18.75 GB mimo 20 GB je stále nepřiděleno4 z každého úložného zařízení RAID.
$ sudo btrfs využití / data souborového systému
Psaní skriptu pro generování náhodných souborů
Abychom vám ukázali, jak funguje nástroj pro vyvážení Btrfs, musíme vygenerovat několik náhodných souborů k vyplnění souborového systému Btrfs. Pojďme vytvořit shell skript, který dělá právě to.
Vytvořte nový genfiles skriptu prostředí.sh v adresáři / usr / local / bin / takto:
$ sudo nano / usr / local / bin / genfiles.sh
Zadejte následující řádky kódů do genfiles.sh shell skript.
#!/ bin / bashi když je to pravda
dělat
FILENAME = $ (uuidgen)
echo "[Vytváření] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M count = 256 status = progress
echo "[Vytvořeno] $ FILENAME"
Hotovo
Až budete hotovi, stiskněte
The genfiles.sh shell skript běží nekonečně zatímco smyčka.
i když je to pravdadělat
# další kódy
Hotovo
Následující řádek generuje UUID pomocí uuidgen příkaz a uloží UUID do NÁZEV SOUBORU proměnná.
Následující řádek vytiskne zprávu na konzole před souborem NÁZEV SOUBORU je generován.
Následující řádek generuje nový náhodný soubor NÁZEV SOUBORU za použití dd příkaz. Soubor bude mít velikost 256 MB.
Následující řádek vytiskne po souboru zprávu na konzole NÁZEV SOUBORU je generován.
Přidejte oprávnění ke spuštění do genfiles.sh shell skript takto:
$ sudo chmod + x / usr / local / bin / genfiles.sh
The genfiles.sh shell skript by nyní měl být přístupný jako všechny ostatní příkazy.
$ které genfiles.sh
Generování náhodných souborů v souborovém systému Btrfs
Chceme generovat náhodné soubory v Btrfs RAID. Řekněme, že Btrfs RAID je namontován na /data adresář.
Přejděte na /data adresář, do kterého je připojen Btrfs RAID, následujícím způsobem:
$ cd / data
Jak vidíte, v mém Btrfs RAID momentálně nejsou k dispozici žádné soubory.
$ ls -lh
Generování náhodných souborů v aktuálním pracovním adresáři (/data v tomto případě), spusťte genfiles.sh shell skript takto:
$ sudo genfiles.sh
The genfiles.sh shell skript by měl začít generovat náhodné soubory v /data adresář.
The genfiles.sh skript generuje náhodné soubory. Nechte skript několik minut běžet, aby zaplnil asi 2–3 GB místa na disku Btrfs RAID.
Pokud chcete zastavit genfiles.sh shell skript, stiskněte
Jak vidíte, některé náhodné soubory jsou generovány v Btrfs RAID.
$ ls -lh
Jak vidíte, Btrfs RAID přidělil 2 GB z každého úložného zařízení přidaného do RAID. Dříve Btrfs RAID přidělil 1 GB z každého úložného zařízení přidaného k RAID.
Nepřidělené místo na disku bylo sníženo z 18.75 GB na 17.75 GB ve všech úložných zařízeních pole RAID.
$ sudo btrfs využití / data souborového systému
Přidání dalšího úložného zařízení do pole Btrfs RAID
Abychom vám ukázali, jak vyvážit Btrfs RAID po přidání nového úložného zařízení, musíte do něj přidat nové úložné zařízení.
Přidal jsem nový pevný disk sdf do mého počítače, který chci přidat k Btrfs RAID namontovanému na /data adresář. Uvidíme, jak na to.
$ sudo lsblk -e7
Přejděte do jiného adresáře (i.E., DOMOV adresář) z /data adresář takto:
$ cd
Chcete-li přidat úložné zařízení sdf na Btrfs RAID namontovaný na /data adresáře, spusťte následující příkaz:
$ sudo btrfs zařízení přidat / dev / sdf / data
Jak vidíte, úložné zařízení sdf je přidán do Btrfs RAID. Velikost pole RAID se zvýšila z 80 GB na 100 GB.
$ sudo btrfs využití / data souborového systému
Vyrovnávání Btrfs RAID
Jak vidíte, nově přidané úložné zařízení (sdf) RAID (namontovaný na /data adresář) má nepřiděleno 20 GB a ostatní úložná zařízení (sdb, sdc, SD D, sde, atd.) mít 17.75 GB nepřiděleno.
$ sudo btrfs využití / data souborového systému
Data1, metadata2, a systémová data3 jsou k dispozici pouze na stávajících úložných zařízeních RAID, nikoli na nově přidaném úložném zařízení.
Chcete-li rozložit data, metadata a systémová data na všechna úložná zařízení RAID (včetně nově přidaného úložného zařízení) připojených k /data adresáře, spusťte následující příkaz:
$ sudo btrfs zůstatek start - plný zůstatek / data
Rozložení dat, metadat a systémových dat na všechna úložná zařízení RAID může chvíli trvat, pokud obsahuje hodně dat.
Jakmile jsou úložná zařízení RAID správně vyvážena, měla by se zobrazit následující zpráva.
Jak můžete vidět, po dokončení operace vyvážení má nově přidané úložné zařízení stejné množství nepřiděleného místa na disku jako ostatní úložná zařízení RAID.
Po operaci vyvážení je pro data, metadata a systémová data z nově přidaného úložného zařízení přiděleno stejné množství místa na disku jako ostatní úložná zařízení RAID (sdf) pole RAID.
Závěr
V tomto článku jsem diskutoval o účelu nástroje Btrfs Balance, jak vyvážit Btrfs RAID nebo souborový systém pro více zařízení po přidání nových úložných zařízení do RAID nebo souborového systému pro více zařízení.