XFS

Oprava systému XFS

Oprava systému XFS
Systémy súborov sú postavené na úložných zariadeniach. Existujú radiče RAID a diskové radiče, z ktorých každý prevádzkuje svoj vlastný malý kúsok firmvéru. Existujú kešky na zlepšenie výkonu. Existujú disky s rôznymi veľkosťami sektorov a sú disky, ktoré vykazujú inú veľkosť sektora v závislosti od toho, ako kladiete otázku.

Vďaka toľkým rôznym častiam, ktoré tvoria typický ukladací zásobník, je zázrak, že vôbec niečo funguje. Veci však väčšinou fungujú dobre. Niekoľkokrát, keď sa niečo pokazí, potrebujeme pomocné programy ako xfs_repair, aby sme sa dostali z neporiadku.

Pri písaní súboru a výpadku napájania alebo pri panike jadra sa môžu veci pokaziť. Aj dáta, ktoré na disku nečinne sedia, sa môžu časom rozpadnúť z dôvodu zmeny fyzickej štruktúry pamäťových prvkov, čo sa nazýva bit rot. Vo všetkých prípadoch potrebujeme mechanizmus na:

  1. Kontrola údajov, ktoré sa čítajú, sú rovnaké ako údaje, ktoré boli zapísané naposledy. Implementuje sa to tak, že pre každý blok údajov máme kontrolný súčet a pri načítaní údajov porovnáme kontrolný súčet pre tento blok. Ak sa kontrolný súčet zhoduje, údaje sa nezmenili
  2. Spôsob, ako rekonštruovať poškodené alebo stratené údaje, či už zo zrkadlového bloku, alebo z paritného bloku.

Nastavenie karantény

Poďme nastaviť testbench na spustenie opravy xfs namiesto použitia skutočných diskov s cennými údajmi. Ak už máte poškodený súborový systém, môžete túto časť preskočiť a preskočiť doprava na ďalšiu. Tento testovací stôl je tvorený virtuálnym počítačom Ubuntu, ku ktorému je pripojený virtuálny disk poskytujúci nespracované úložisko. Môžete použiť VirtualBox na vytvorenie VM a potom vytvoriť ďalší disk na pripojenie k VM.

Stačí prejsť do nastavení vášho VM a pod Nastavenia → Úložisko v časti môžete pridať nový disk do radiča SATA môžete vytvoriť nový disk. Ako je uvedené nižšie, ale uistite sa, že je váš VM vypnutý.

Po vytvorení nového disku zapnite VM a otvorte terminál. Príkaz lsblk zoznam všetkých dostupných blokovacích zariadení.

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

Okrem zariadenia hlavného bloku sda, kde je nainštalovaný OS, je tu nové zariadenie sdb. Poďme z neho rýchlo vytvoriť oddiel a naformátovať ho pomocou súborového systému XFS.

Otvorte rozdelený nástroj ako užívateľ root:

$ parted -a optimálne / dev / sdb

Vytvorme najskôr tabuľku oddielov pomocou programu mklabel, potom nasleduje vytvorenie jedného oddielu z celého disku (ktorý má veľkosť 107 GB). Vytvorenie oddielu môžete skontrolovať uvedením jeho zoznamu pomocou príkazu print:

(rozdelené) mklabel gpt
(rozdelené) mkpart primárne 0 107
(rozdelená) tlač
(rozdelený) ukončiť

Dobre, teraz pomocou lsblk vidíme, že pod zariadením sdb je nové blokové zariadenie s názvom sdb1.

Naformátujeme toto úložisko ako xfs a pripojíme ho do adresára / mnt. Opäť urobte tieto akcie ako root:

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

Posledný príkaz vytlačí všetky pripojené súborové systémy a môžete skontrolovať, či je / dev / sdb1 pripojený na / mnt.

Ďalej tu napíšeme veľa súborov ako fiktívne údaje na defragmentáciu:

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

Vyššie uvedený príkaz by zapísal súbor myfile.Txt o veľkosti 1 MB. Ak chcete, môžete automaticky vygenerovať viac takýchto súborov, rozložiť ich do rôznych adresárov vo vnútri súborového systému xfs (pripojeného na / mnt) a potom skontrolovať fragmentáciu. Použite na to bash alebo python alebo iný obľúbený skriptovací jazyk.

Kontrola a oprava chýb

Porušenie údajov sa môže bez vášho vedomia potichu vkradnúť na vaše disky. Ak sa dátový blok nenačíta a kontrolný súčet sa neporovná, môže sa chyba zobraziť v nesprávnom čase. Keď sa niekto pokúša získať prístup k údajom, v reálnom čase. Namiesto toho je dobré často vykonávať dôkladné skenovanie všetkých dátových blokov na kontrolu zhnitia bitov alebo iných chýb.

Obslužný program xfs_scrub má vykonať túto úlohu za váš. Táto experimentálna funkcia, čiastočne inšpirovaná príkazom scrub OpenZFS, je k dispozícii iba na xfsprogs verzie 4.15.1-1ubuntu1, ktoré nie je stabilným vydaním. Ak chybu zistí nesprávne, mohlo by vás to namiesto opravy opraviť, aby ste poškodili údaje! Ak s ním však chcete experimentovať, môžete ho použiť na pripojenom súborovom systéme pomocou príkazu:

$ xfs_scrub / dev / sdb1

Predtým, ako sa pokúsite opraviť poškodený súborový systém, musíte ho najskôr odpojiť. To má zabrániť aplikáciám v neúmyselnom zápise do súborového systému, keď má zostať sám.

$ umount / dev / sdb1

Oprava chýb je rovnako jednoduchá ako spustenie:

$ xfs_repair / dev / sdb1

Základné metadáta sa vždy uchovávajú ako viac kópií, aj keď nepoužívate RAID a ak sa niečo stalo so superblokom alebo inódmi, potom tento príkaz môže s najväčšou pravdepodobnosťou vyriešiť tento problém za vás.

Ďalšie kroky

Ak vidíte poškodenie dát často (alebo dokonca raz, ak máte spustené niečo kritické), zvážte výmenu diskov, pretože to môže byť skorý indikátor disku, ktorý sa chystá zomrieť.

Ak zlyhá radič alebo sa karta RAID vzdala životnosti, potom žiadny softvér na svete nemôže opraviť súborový systém za vás. Nechcete drahé účty za obnovu dát a ani dlhé prestoje, takže dávajte pozor na tieto disky SSD a rotujúce platne!

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...
Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...