XFS

Jak defragmentovat systém souborů XFS

Jak defragmentovat systém souborů XFS
Fragmentace je dlouhodobým problémem, pokud jde o skladování. Vzniká, když z důvodu dlouhodobého používání dostane úložné médium bloky přidělených bloků s volným prostorem mezi nimi. K tomu dochází, protože různé programy vyžadují paměť v jiném pořadí a poté uvolňují paměť v různých časech. Mít bloky nepřiděleného prostoru mezi daty snižuje celkové dostupné místo na disku (účinnost úložiště) a také výkon disku, protože data nejsou uložena ve velkém sousedícím bloku, ale šíří se po disku.

Tento problém je patrný zejména u magnetických médií, i když tím trpí i SSD. Zkusme v tomto příspěvku defragmentovat souborový systém XFS.

Nastavení karantény

Nejprve jsem se rozhodl experimentovat se souborovým systémem XFS a místo práce s kritickými daty na disku jsem vytvořil testbench. Tento testbench je tvořen virtuálním počítačem Ubuntu, ke kterému je připojen virtuální disk poskytující surové úložiště. Můžete použít VirtualBox k vytvoření virtuálního počítače a poté vytvořit další disk pro připojení k virtuálnímu počítači

Stačí přejít do nastavení vašeho virtuálního počítače a pod Nastavení → Úložiště v sekci můžete přidat nový disk do řadiče SATA můžete vytvořit nový disk. Jak je uvedeno níže, ale ujistěte se, že je váš virtuální počítač vypnutý.

Po vytvoření nového disku zapněte virtuální počítač a otevřete terminál. Příkaz lsblk seznam všech dostupných blokovacích zařízení.

$ lsblk
sda 8: 0 0 60G 0 disk
├─sda1 8: 1 0 1M 0 díl
└─sda2 8: 2 0 60G 0 díl /
sdb 8:16 0 100G 0 disk
sr0 11: 0 1 1024M 0 rom

Kromě zařízení hlavního bloku sda, kde je nainstalován OS, je nyní nové zařízení sdb. Pojďme z něj rychle vytvořit oddíl a naformátovat jej pomocí souborového systému XFS.

Otevřete rozdělený nástroj jako uživatel root:

$ parted -a optimální / dev / sdb

Nejprve vytvořme tabulku oddílů pomocí mklabel, poté následuje vytvoření jediného oddílu z celého disku (který má velikost 107 GB). Vytvoření oddílu můžete ověřit jeho výpisem pomocí příkazu print:

(rozdělené) mklabel gpt
(rozděleno) mkpart primární 0 107
(rozdělený) tisk
(rozdělené) ukončit

Dobře, nyní pomocí lsblk vidíme, že pod zařízením sdb existuje nové blokové zařízení s názvem sdb1.

Naformátujeme toto úložiště jako xfs a připojíme jej do adresáře / mnt. Opět proveďte následující akce jako root:

$ mkfs.xfs / dev / sdb1
$ mount / dev / sdb1 / mnt
$ df -h

Poslední příkaz vytiskne všechny připojené souborové systémy a můžete zkontrolovat, zda je / dev / sdb1 připojen v / mnt.

Dále zde napíšeme spoustu souborů jako fiktivní data k defragmentaci:

$ dd if = / dev / urandom of = / mnt / myfile.počet txt = 1024 bs = 1024

Výše uvedený příkaz by zapsal soubor myfile.txt o velikosti 1 MB. Tento příkaz můžete automatizovat na jednoduchou smyčku for pomocí bash a vygenerovat více takových souborů. Pokud chcete, rozdělte je do různých adresářů. Smažte několik z nich náhodně. To vše proveďte uvnitř souborového systému xfs (připojeného na / mnt) a poté zkontrolujte fragmentaci. To vše je samozřejmě volitelné.

Defragmentujte svůj souborový systém

První věcí, kterou musíme udělat, je přijít na to, jak zkontrolovat míru fragmentace. Například souborový systém xfs, který jsme vytvořili dříve, byl na uzlu zařízení / dev / sdb. Ke kontrole úrovně fragmentace můžeme použít obslužný program xfs_db (znamená ladění xfs).

$ xfs_db -c frag -r / dev / sdb1

Příznak -c bere různé příkazy, mezi kterými je příkaz frag ke kontrole úrovně fragmentace. Příznak -r slouží k zajištění, že operace je zcela jen pro čtení.

Pokud zjistíme, že v tomto souborovém systému existuje nějaká fragmentace, spustíme v uzlu zařízení příkaz xfs_fsr:

$ xfs_fsr / dev / sdb1

Tento poslední příkaz je vše, co je k defragmentaci vašeho souborového systému, můžete jej přidat jako cronjob, který bude pravidelně sledovat váš souborový systém. Ale dělat to pro xfs má malý smysl. Alokace XFS na základě rozsahu zajišťuje, že problémy, jako je fragmentace, zůstanou na minimu.

Případy užití

Případy použití, kdy se musíte nejvíce starat o fragmentaci souborového systému, zahrnují aplikace, kde je zapisováno a přepisováno mnoho malých částí dat. Klasickým příkladem je databáze a databáze jsou proslulé tím, že ve vašem úložišti zůstávají spousty „děr“. Paměťové bloky nejsou souvisle zaplněny, čímž se v průběhu času zmenšuje a zmenšuje množství dostupného prostoru.

Problém nastává nejen z hlediska zmenšeného využitelného prostoru, ale také z hlediska sníženého počtu IOPS, které by mohly poškodit výkon vaší aplikace. Mít skript pro nepřetržité sledování úrovně fragmentace je konzervativní způsob údržby systému. Nechcete, aby automatický skript náhodně začal defragmentovat váš souborový systém, zvláště když je používán při špičkovém zatížení.

Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...
Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...