[Megoldva] ZFS root fájlrendszer kérdések (freebsd)

Fórumok

Freebsd rendszer, úgy tűnik, hogy egy zfs fájlrendszerben a root partícióval gondok adódtak:

zpool status -v kimenete:

  pool: zroot
 state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
  scan: scrub repaired 0B in 00:05:39 with 5 errors on Sun Feb  9 01:28:41 2025
config:

    NAME        STATE     READ WRITE CKSUM
    zroot       ONLINE       0     0     0
      nda0p4    ONLINE       4     0     0

errors: Permanent errors have been detected in the following files:

        zroot/ROOT/default:<0x2f897>
        zroot/ROOT/default@migrate:<0x2f897>
        zroot/iocage/jails/adguard/root:<0x39d96>
        /zroot/iocage/jails/adguard/root/usr/src/contrib/file/magic
        zroot/iocage/jails/adguard/root@migrate:/usr/src/contrib/file/README.md
        zroot/iocage/jails/adguard/root@migrate:<0x39d96>
        zroot/iocage/jails/adguard/root@migrate:/usr/src/contrib/file/magic

Egyébként meg ha a magic könyvtárat törölni akarom, akkor ezt kapom:

cd /zroot/iocage/jails/adguard/root/usr/src/contrib/file
rm -rf magic

rm: magic: Input/output error

Amúgy látszólag minden működik, a többi disk, amin adatok vannak rendben vannak (és ott raid van), és a scrub is szépen végigfut ratjuk. De szerencsére mentés is van.

Ez egy olcsó silicon power ssd, nem érte meg az egy évet. Sajnos nem is raid-ben van a root partíció, mert ez úgyis a "system" partíció, bármikor újrahúzom (de hülye vagyok, mennyire nincs időm/kedvem ehhez most éppen). Gondolom ezért érdemes ezt is duplán beletenni a gépbe.

Nem tudom, hogy a silicon power ssd-ket érdemes-e használni, lehet, hogy ez eddig bírta.
Arra gyanakszom, hogy lehetett 1-2 durvább feszültségingadozás, meg volt áramszünet is. Nem raktam a gép elé szünetmentest, vagy valamit ami védené (de nem vagyok ebben biztos, de ez volt az egyetlen furcsaság, ami történt).
Ki szoktam időnként takarítani a gépet, de ebben most vastagon állt a por, sikerült olyan helyre letennem. Nem lepődnék meg, ha ez okozna gondot.

Van esetleg valakinek ötlete, lehet ezzel valamit kezdeni, vagy ez az ssd kuka, rendszert újra kell húzni?
Meg lehet próbálni a root partíciót átköltöztetni másik ssd-re, vagy jobb ezt gyorsan újrahúzni?
Ilyesmire érdemes lehet valami jó toolt használni, hogy gyorsan újra lehessen húzni egy system particiót?
Normál SSD-t érdemes-e ilyen helyre betenni (vagy valamire figyelni kellett volna)?

Köszi szépen

Hozzászólások

Tekintsünk el attól, hogy újabb hibák jelennek meg (mert arra nem tudok semmit se mondani).

Ahol nincs fájlnév, ott metadata sérült. Ezekben az esetekben, csak a dataset destroy tud segíteni.
 

/zroot/iocage/jails/adguard/root/usr/src/contrib/file

ebben az esetben másolj le amit tudsz az adott dataset-ről és utána destroy

Nem szabad spórolni a root fájlrendszer alatti disken! Ez nekem is egy kemény lecke volt, mert amikor baj van, akkor sosincs idő/kedv újrahúzni, kiderül, hogy azóta voltak dolgok, amiket nem jegyeztem meg, és kellettek, sok apró pici módosítás, stb. Sosem szabad úgy hozzáállni, hogy "majd újrahúzom". Ha nem laborkörnyezet, aminek van egy forgatókönyve (esetleg scriptje), hogy kell feltelepíteni, akkor érdemes legalább egy RAID1-gyel számolni.

Viszont, a fájlrendszer sérüléseken ez nem biztos, hogy segít. Ha nem a disken szektorszinten sérült valami, hanem FS metaadat sérült, annál van esély, hogy a RAID szépen le fogja replikálni. Ezen csak a teljes root backup segít.

Ezt még esetleg nézd meg, igaz Solaris, de hátha a BSD alatt is van hasonló parancs: https://docs.oracle.com/cd/E19120-01/open.solaris/817-2271/gbbwl/index…

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-

Ezt az oldalt néztem tegnap este, sajnos nem segített.

Ha újra kell húznom, akkor szerintem ezt is raid-be teszem, tanultam belőle. Bár ott vannak kérdések, amit még meg kell néznem, hogy is kell: a boot partíció is ezen volt, azt is duplikálni kell, stb... Hogy bármelyik működjön önmagában is.

Pont ez az, hogy nem írtam fel mindent, és voltak kisebb beállítások. :) A desktop gépemet 10 perc alatt újrahúzom, de ezt nem. Most elkezdem róla lementegetni a config fájlokat, amik eszembe jutnak. :)

Köszi szépen.

FreeBSD installer tudom mirrort ZFSből és bootolni is tud róla (ez felel meg a raid1-nek).
ZFS hagyományos raid1-gyel ellentétben nem másolja, illetve terjeszti a hibás (meta)adatokat, mert mindenről checksum van.
Amíg 1 jó adat van, abból tudja a hibásat is javítani (ha a disk megdöglött azon persze csak átmenetileg segít amíg leköltözni kell róla).

FreeBSD installer tudom mirrort ZFSből és bootolni is tud róla

Akkor itt mindkét diskre csinál boot, efi, particiókat? (egy linux installálásnál ezt kézzel kellett megoldanom régen)

mármint lesz akkor egy nda1, ugyanazzal a struktúrával, mint az nda0?

gpart show 
=>       40  500118112  nda0  GPT  (238G)
         40     532480     1  efi  (260M)
     532520       1024     2  freebsd-boot  (512K)
     533544        984        - free -  (492K)
     534528    4194304     3  freebsd-swap  (2.0G)
    4728832  495388672     4  freebsd-zfs  (236G)
  500117504        648        - free -  (324K)

Szerk:

Wow, közben olvasom máshol is, ahol azt írják, hogy a telepítő tudja, és mindent megcsinál.

Szerk 2:

Megpróbálom úgy nem újratelepíteni, hogy beteszem az egyik SSD-t, és elkezdem átrakni rá a rendszert. A zroot-ot esetleg zfs send-del, receive-vel. Ha ez sikerül, akkor ki tudom cserélni a hibás ssd-t is (és utána már raid-be lehet tenni).- Ha ez nem jön össze valami miatt, akkor újrahúzom. :)

Köszi szépen

A végére reagálok:

mirrort csinálni nagyon egyszerű:

zpool attach zroot nda0p4 nda1p4

(feltételezve, hogy a régi zfs eszköz nda0p4 az új pedig nda1p4, gpart-tal tudod duplikálni két eszköz között a particiós táblát)
ezzel szerintem jobban jössz ki, mint egy send/recv. Ebben az esetben (azaz ha nem reinstall és telepítő megcsinálja) neked kell az új disket bootolhatóvá tenni,
de azt hiszem ez is viszonylag egyszerű (fejből nem emlékszem a pontos parancsra).

Újratelepítettem tegnap este (nem is volt akkora feladat, mint ahogy rákészültem, 2 óra alatt megvolt az egész). Nincs minden még a helyén, pl futottak rajta egyéb jail-ek, amiket még el kell indítani, de ezeket majd szépen sorban, ami kritikus volt, az működik.

Azért a freebsd elég ügyes, tényleg egyszerűen a telepítésnél feltette úgy a rendszert, hogy minden partíció tükrözve a helyén legyen, és duplán legyenek a boot dolgok is.

@cstamas, @hrgy84 Köszi szépen a segítséget.

Ha van elég disked, csinálj egy teljes gyökér fájlrendszer mentés a csatolt fs-ek es nehany rendszermappa nélkül (rsync -vax / dlaszlo@masikbox:/ide/mentek/mindent/ --exclude=/bin --exclude=/sbin --exclude=/usr/share/man --exclude=/lib --exclude=/lib64 --exclude=/usr/lib stb) aztan majd utolag mazsolazol. Ez megint az a kategoria, hogy "obazmeg, a xyz.conf -ot / izehoze.sh-t meg nem mentettem le, na akkor gugli, hogy ezt hogy is kell...". Sose bizz a sajat emlekeidben, atvernek.

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-