LINUX.ORG.RU
решено ФорумAdmin

Ищутся ГУРУ zfs. Поломал zfs, осваиваю насколько оно починябельное.

 ,


1

3

В общем поломал благодаря USB 3. Переставил местами 2 адаптера, у них были кабели разной длины, и вот один из них не смог нормально отработать с кабелем от другого. Делал банальный рсинк. В нгазначении получил что то типа:

  pool: T4T3S
 state: DEGRADED
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 464K in 06:48:46 with 8 errors on Sun Feb  9 07:12:55 202
5
config:

        NAME         STATE     READ WRITE CKSUM
        T4T3S        DEGRADED     0     0     0
          T4T3STORE  DEGRADED     0     0 41.7K  too many errors

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

        T4T3S/:Backup:<0x50700>
        /zfs/=T4T3S/:Backup/Hosts/HGST-750/Backup-241127=330(172)Gb/p8-zz750/zz-s64root/usr/share/doc/gcc-6-base/libstdc++/user/a09413.html


Естественно битые файлы - пустые.
Подумал что для начала надо их удалить.
Сделал список из файлов и произвёл над ними gzip -m
Всё как бы замечательно, но вот конструкции типа:
T4T3S/:Backup:<0x50700> - остались как ошибочные, при этом другими средствами они не видны.
Как бы удалить эти конструкции?
И что надо сделать после их удаления?
scrub?
а потом убрать флаг ошибки? Или как это делается?
Теоретически конечно я уже сделал рсинк на другой винт и можно этот переразметить и рсинкнут назад, но хочется освоить другой метод, да и рсинк 1.94T упакованных до 1.84T взад - опять будет идти 40+ часов. Можно конечно отрубить упаковку (Выигрыш всего 100G). Но всё же...

(250225-2300)P.S. Последовательность действий:
1. zpool status -v|tee errors.log
2. С помощью гугла нашел команды для преобразования полученного списка в список файлов с ошибками (errors.lst). По ходу удалив строки вида: T4T3S/:Backup:<0x2e2802> - ибо они не являются файлами
3. Если не путаю (память шалит) #zip -m badfiles.zip -@ <errors.lst и все битые файлы были упакованы в архив и удалены на разделе.
4. zpool status <POOL> -v|tee errors.log - Дал только строки вида: T4T3S/:Backup:<0x50700>
5. zpool scrub <POOL> - через 6 часов - 0 ошибок.
6. zpool clear <POOL>
Всё:
# zpool status T4T3S
  pool: T4T3S
 state: ONLINE
  scan: scrub repaired 16K in 06:01:52 with 0 errors on Tue Feb 25 21:27:33 2025
config:

	NAME         STATE     READ WRITE CKSUM
	T4T3S        ONLINE       0     0     0
	  T4T3STORE  ONLINE       0     0     0

errors: No known data errors


В файле badfiles.zip - список файлов которые надо восстановить из других источников.

Спасибо unC0Rr и undef которые советовали по сути, а не «учили» меня «как надо».

Отмечаю тред решенным!

★★★

Последнее исправление: cetjs2 (всего исправлений: 4)
Ответ на: комментарий от pekmop1024

Грохнуть корраптнутое, отформатировать в ext4, рсинкнуть на место. Забыть как про страшный сон.

Это все равно что голову в песок засунуть. Коррупция не исчезнет, если отказаться от ее обнаружения.

anonymous
()
Ответ на: комментарий от Lordwind

Я не очень понял какие диски в пуле. Если выведешь zpool status весь, будет лучше.

Нет смысла, там отдельный диск.

Сейчас я вижу там 1 диск возможно на GPT-разделе,

Именно так! И причём GPT раздел имеет имя и том zfs создавался через имя. Надеюсь это поможет при переподключениях через usb. Когда создавал тома через /dev/sdXY - иногда вылазили косяки (Хотя если быть точным - косяки вылезли в рейде на /dev/sdXY).

избыточности нет, а есть ссзб.

Зачем унижать? Я прекрасно понимаю,но пока не получается всё одним выстрелом. Может как нибудь удастся подобрать недорогую спецификацию с «холодным» процессором который сможет скажем 64Gb рамы и каким нибудь корпусом с вентилятором и местом под 3*3.5" винта и 2.5" SSD. Нужна такая конструкция - кушающая мало тока.
На меня «ЖАБА» накинулась после BMAX B1 PRO кушающего 15Ватт.
Основной комп лопает 250+ и года за 3 съедает цену BMAX (Учитывая что он уже лет 10 не отключался...).

Как бы удалить эти конструкции

Нормально - zpool replace.

Причём тут zpool replace? Я не знаю что это такое, но подозреваю - замена одного из носителей рейда.

Мусор - zpool detach.

А это зачем? Впрочем у меня даже и не зеркало.

Если ресильвер ломался и перезапускал, может такое остаться.

Это осталось от рсинка, при подключении через неудачный USB3 кабель.

Что же касается «избыточности», то всё в процессе осмысления.
Хочется и избыточности и чтобы тока лопало мало. Есть мысли по рейду, который будет рсинкнут на USB3 и подключен как рабочий к BMAX, а раз в неделю включать основной десктоп и заливать туда изменения. Оперативные данные можно держать на ЯДе, будет и бэкап и распределенный доступ.
Но пока всё это в процессе осмысления, а с ним у меня сложности в результате ЧМТ «несовместимой с жизнью». Пока стараюсь «прорваться» через всё это.

n0mad ★★★
() автор топика
Ответ на: комментарий от bigbit

Осваивать, «насколько оно починябельное», надо было до принятия решения об использования ZFS.

Обоснуй? По твоему алгоритму - надо пользоваться «надёжным старьём», ибо только про него известно всё.

n0mad ★★★
() автор топика
Ответ на: комментарий от Eulenspiegel

Тут опять бестолковый спор из разряда: «кто круче».

не, ты взял микроскоп и забиваешь гвозди.

Обоснуй? Почему «микроскоп»? Почему не «Кувалда»?

n0mad ★★★
() автор топика
Ответ на: комментарий от n0mad

По твоему алгоритму - надо пользоваться «надёжным старьём», ибо только про него известно всё.

Естественно. Если тебе важны данные, то надо пользоваться «надёжным старьём». Удивлен, что для тебя это открытие. Может быть, для тебя будет открытием и то, что если тебе важны данные, то надо делать бэкапы?

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

Может быть, для тебя будет открытием и то, что если тебе важны данные, то надо делать бэкапы?

  1. ZFS это энтерпрайзно, надёжно 🧐
  2. Что значит «restore pool from backup» на zpool import? 🤔
  3. Бэкапов нет! 🤡
  4. 🤯
anonymous
()
Ответ на: комментарий от anonymous

Может быть, для тебя будет открытием и то, что если тебе важны данные, то надо делать бэкапы?

ZFS это энтерпрайзно, надёжно 🧐
Что значит «restore pool from backup» на zpool import? 🤔
Бэкапов нет! 🤡

🤯

Сплошной трёп! Трепачи!
Тем временем:

  pool: T4T3S
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
	attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
	using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub repaired 16K in 06:01:52 with 0 errors on Tue Feb 25 21:27:33 2025
config:

	NAME         STATE     READ WRITE CKSUM
	T4T3S        DEGRADED     0     0     0
	  T4T3STORE  DEGRADED     0     0     0  too many errors

errors: No known data errors


Ключевая строка:

scan: scrub repaired 16K in 06:01:52 with 0 errors on Tue Feb 25 21:27:33 2025

теперь осталось: #zpool clear и всё!

  pool: T4T3S
 state: ONLINE
  scan: scrub repaired 16K in 06:01:52 with 0 errors on Tue Feb 25 21:27:33 2025
config:

	NAME         STATE     READ WRITE CKSUM
	T4T3S        ONLINE       0     0     0
	  T4T3STORE  ONLINE       0     0     0

errors: No known data errors


Перед этим я исполнил: #zpool status T4T3S -v|tee zpool-status-v.log
Затем доработал получившийся список и с его помощью удалил в zip все битые файлы. Теперь у меня есть и zip со списком всех битых файлов и в zfs нет ошибок. Непонятные ошмётки (какие то ошибочные элементы без имён) исправились с помощью zpool scrub.

Обновил исходное сообщение с порядком действий для решения.
Отмечаю тему решенной!
Спасибо unC0Rr и undef которые советовали по сути, а не «учили» меня «как надо».

n0mad ★★★
() автор топика
Последнее исправление: n0mad (всего исправлений: 1)