Kelių įrenginių „Btrfs“ failų sistemoje arba „Btrfs RAID“, atsižvelgiant į failų sistemos konfigūraciją, gali būti kelios duomenų / metaduomenų blokų, saugomų skirtingose saugojimo įrenginių vietose, pridėtų prie „Btrfs“ failų sistemos, kopijos. Kai „Btrfs“ šveitimo įrankis randa sugadintą duomenų / metaduomenų bloką, jis ieško visų saugyklų, pridėtų prie „Btrfs“ failų sistemos, duomenų kopijų kopijų. Aptikus duomenų / metaduomenų bloko kopiją, sugadintų duomenų / metaduomenų blokas perrašomas teisingu duomenų / metaduomenų bloku. Taip „Btrfs“ šveitimo įrankis taiso sugadintus duomenų / metaduomenų blokus kelių įrenginių „Btrfs“ failų sistemoje arba „Btrfs RAID“.
Šiame straipsnyje parodysiu, kaip naudoti „Btrfs“ šveitimo įrankį ieškant ir taisant sugadintus duomenis / metaduomenų blokus kelių įrenginių „Btrfs“ failų sistemoje arba „Btrfs RAID“. Taigi, pradėkime.
Santrumpos
REIDAS - Perteklinis nebrangių / nepriklausomų diskų rinkinys
GB - Gigabaitų
Būtinos sąlygos
Norėdami sekti šį straipsnį, turite turėti veikiančią kelių įrenginių „Btrfs“ failų sistemą arba „Btrfs RAID“.
Aš sukūriau „Btrfs RAID“ RAID-1 konfigūracija (pritvirtinta prie / duomenys katalogas) naudojant 4 atminties įrenginius SDB, SDK, sdd, ir sde, kaip matote toliau pateiktoje ekrano kopijoje. Šį „Btrfs RAID“ naudosiu „Btrfs“ šveitimo demonstravimui šiame straipsnyje.
$ sudo btrfs failų sistemos naudojimas / duomenys
Jei jums reikia pagalbos diegiant „Btrfs“ failų sistemą „Ubuntu“, peržiūrėkite mano straipsnį „Btrfs“ diegimas ir naudojimas „Ubuntu 20“.04 LTS.
Jei jums reikia pagalbos diegiant „Btrfs“ failų sistemą „Fedora“, žiūrėkite mano straipsnį „Btrfs“ diegimas ir naudojimas „Fedora 33“.
Jei jums reikia pagalbos kuriant „Btrfs RAID“, patikrinkite mano straipsnį Kaip nustatyti Btrfs RAID.
Fiktyvių failų generavimas „Btrfs“ failų sistemoje
Norėdami parodyti, kaip veikia „Btrfs“ šveitimo įrankis, turime sugeneruoti kelis atsitiktinius failus, kad užpildytume „Btrfs“ failų sistemą. Sukurkime apvalkalo scenarijų, kuris tai ir daro.
Sukurkite naują apvalkalo scenarijų genfiles.sh viduje konors / usr / local / bin / katalogą taip:
$ sudo nano / usr / local / bin / genfiles.sh
Įveskite šias kodų eilutes genfiles.sh apvalkalo scenarijus.
#!/ bin / basho tiesa
padaryti
FILENAME = $ (uuidgen)
aidas „[Kuriama] $ FILENAME“
dd jei = / dev / = $ FILENAME atsitiktinis bs = 1M skaičius = 256 statusas = pažanga
aidas „[Sukurta] $ FILENAME“
padaryta
Baigę paspauskite
The genfiles.sh apvalkalo scenarijus veikia be galo kol kilpa.
o tiesapadaryti
# kiti kodai
padaryta
Šioje eilutėje sukuriamas UUID naudojant uuidgen komandą ir saugo UUID FAILO PAVADINIMAS kintamasis.
Šioje eilutėje prieš failą atspausdinamas pranešimas konsolėje FAILO PAVADINIMAS yra generuojamas.
Ši eilutė sukuria naują atsitiktinį failą FAILO PAVADINIMAS naudojant dd komandą. Failas bus 256 MB dydžio.
Šioje eilutėje spausdinamas pranešimas konsolėje po failo FAILO PAVADINIMAS yra generuojamas.
Pridėti vykdymo leidimą genfiles.sh apvalkalo scenarijus:
s
The genfiles.sh „shell“ scenarijus dabar turėtų būti prieinamas kaip ir visos kitos komandos.
$ kurios genfiles.sh
Sugeneruokime kelis atsitiktinius failus Btrfs RAID, sumontuotame / duomenys kataloge.
Eikite į / duomenys katalogas, kuriame prijungtas „Btrfs RAID“, yra toks:
$ cd / duomenys
Kaip matote, šiuo metu mano „Btrfs RAID“ failų nėra.
$ ls -lh
Norėdami sukurti keletą atsitiktinių failų dabartiniame darbo kataloge (/ duomenys šiuo atveju), paleiskite genfiles.sh apvalkalo scenarijus:
$ sudo genfiles.sh
The genfiles.sh apvalkalo scenarijus turėtų pradėti kurti atsitiktinius failus / duomenys kataloge.
The genfiles.sh scenarijus generuoja atsitiktinius failus. Leiskite scenarijui veikti keletą minučių, kad jis užpildytų apie 2–3 GB „Btrfs RAID“ disko vietos.
Kai norite sustabdyti genfiles.sh apvalkalo scenarijų, paspauskite
Kaip matote, kai kurie atsitiktiniai failai yra sugeneruoti Btrfs RAID.
$ ls -lh
Aš sukūriau apie 13 GB atsitiktinių failų Btrfs RAID, sumontuotame / duomenys katalogą, kaip matote toliau pateiktoje ekrano kopijoje.
$ sudo du -sh / data
Darbas su „Btrfs“ šveitimo įrankiu
Šiame skyriuje aš jums parodysiu, kaip naudoti „Btrfs“ šveitimo įrankį. Pradėkime.
Galite pradėti šveitimo procesą Btrfs failų sistemoje, sumontuotoje / duomenys katalogą su šia komanda:
$ sudo btrfs šveitimas pradžia / duomenys
Btrfs šveitimo procesas turėtų būti pradėtas Btrfs failų sistemoje, sumontuotoje / duomenys kataloge.
Galite pamatyti „Btrfs“ šveitimo proceso, vykdomo „Btrfs“ failų sistemoje, įdiegtoje, būseną / duomenys katalogą taip:
$ sudo btrfs šveitimo būsena / duomenys
Kaip matote, „Btrfs“ šveitimo procesas vis dar yra bėgimas.
„Btrfs“ failų sistemos ar „Btrfs RAID“, kuriame yra daug failų, šveitimas užtruks ilgai.
Baigus „Btrfs“ šveitimo procesą, būsena turėtų būti pakeista į baigtas, kaip matote toliau pateiktoje ekrano kopijoje.
$ sudo btrfs šveitimo būsena / duomenys
Taip pat galite pamatyti kiekvieno saugojimo įrenginio, pridėto prie „Btrfs“ failų sistemos (montuojamos / duomenys katalogas) atskirai taip:
$ sudo btrfs šveitimo būsena -d / duomenys
Aš jums sakiau, kad „Btrfs“ šveitimo procesas užtrunka ilgai, kol baigiasi didelė „Btrfs“ failų sistema. Vienas didelis „Btrfs“ šveitimo įrankio privalumas yra tas, kad jo procesą galima bet kada sustabdyti ir atnaujinti.
Pažiūrėkime, kaip sustabdyti ir atnaujinti „Btrfs“ šveitimo procesą.
Pirmiausia pradėkite naują „Btrfs“ šveitimo procesą „Btrfs“ failų sistemoje, sumontuotoje / duomenų kataloge, taip:
$ sudo btrfs šveitimas pradžia / duomenys
Norėdami atšaukti arba pristabdyti „Btrfs“ šveitimo procesą, kuris šiuo metu veikia „Btrfs“ failų sistemoje, įdiegtoje / duomenys kataloge, vykdykite šią komandą:
$ sudo btrfs šveitimas atšaukti / duomenys
Vykdomas „Btrfs“ šveitimo procesas turėtų būti atšauktas arba pristabdytas.
Kaip matote, „Btrfs“ šveitimo būsena yra nutrauktas. Taigi „Btrfs“ šveitimo procesas nebevykdomas.
$ sudo btrfs šveitimo būsena / duomenys
Norėdami atnaujinti atšauktą ar pristabdytą „Btrfs“ šveitimo procesą, vykdykite šią komandą:
$ sudo btrfs šveitimo aprašymas / duomenys
„Btrfs“ šveitimo procesas turėtų būti atnaujintas.
Kaip matote, „Btrfs“ šveitimo būsena yra dabar bėgimas. Taigi „Btrfs“ šveitimo procesas atnaujinamas.
$ sudo btrfs šveitimo būsena / duomenys
Baigus „Btrfs“ šveitimo procesą, „Btrfs“ šveitimo būsena turėtų būti pakeista į baigtas.
$ sudo btrfs šveitimo būsena / duomenys
Išvada
Šiame straipsnyje aš parodžiau, kaip dirbti su „Btrfs“ šveitimo įrankiu, norint rasti ir pataisyti sugadintus „Btrfs“ kelių įrenginių failų sistemos arba RAID duomenų / metaduomenų blokus. Parodžiau, kaip atšaukti / pristabdyti ir atnaujinti „Btrfs“ šveitimo procesą, kai jis taip pat bus pradėtas.