Що означає постійну помилку ZFS?


18

Деякі permanent errorsповідомили про моє zpool сьогодні.

  pool: seagate3tb
 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: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        seagate3tb  ONLINE       0     0    28
          sda       ONLINE       0     0    56

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

        /mnt/seagate3tb/Install.iso
        /mnt/seagate3tb/some-other-file1.txt
        /mnt/seagate3tb/some-other-file2.txt

Редагувати: я впевнений, що ці CKSUMзначення точні. Я редагував дані і, можливо, помилявся на них. Можливо, їх було 0. На жаль, я не можу знайти остаточну відповідь у своїх замітках, і помилки вирішені зараз, тому я не впевнений, але все інше точно / відображає те, про що звітував zpool.

/mnt/seagate3tb/Install.iso є одним із прикладних файлів, які повідомляються про постійну помилку

Ось де я плутаюсь. Якщо я порівнюю "постійно помилки" Install.isoз резервною копією того самого файлу в іншій файловій системі, вони виглядають однаково.

shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso

Файли здаються однаковими. Більше того, файл працює чудово. Якщо я використовую його в додатку, він поводиться так, як я цього очікував.

Як зазначено в документах :

Помилки корупції даних завжди є фатальними.

Але грунтуючись на моїх підтвердженнях рудиментарних файлів, я не впевнений, що розумію визначення fatal.

статус: на одному чи декількох пристроях сталася помилка, що призвела до пошкодження даних. Програми можуть вплинути.

дія: Відновіть відповідний файл, якщо можливо. В іншому випадку відновіть весь пул із резервного копіювання.

Можливо, мені чогось не вистачає, але, наскільки я можу сказати, файл здається прекрасним, і він потребує відновлення, а також не виявляє пошкодження, незважаючи на рекомендацію від ZFS.

Я бачив інші статті з тією ж помилкою , але мені ще не знайти відповіді на моє запитання.

Яка постійна помилка з файлом? Чи є проблема нижчого рівня з файлом, який мені просто не видно? Якщо так, то чому це не буде виявлено shasumрізницею у файлі a?

З точки зору лайперсона, я не бачу нічого, що б вказувало на помилку з цим файлом.


У вас є знімки?
ewwhite

3
Чи не буду я вас вітати на сервері ServerFault, оскільки ніхто інший цього не сказав? Це здається мені чудовим першим питанням, і я сподіваюся, що він продовжує отримувати повчальні відповіді. Я сподіваюся, що ви вирішите триматися навколо СФ та сприяти подальшому.
MadHatter

Дякую @MadHatter! Я вдячний за ваш добрий прийом і, безумовно, буде триматися навколо SF. Я вже додав його до свого короткого списку спільнот SE.
Буде Хейлі

Відповіді:


22

Формулювання zpool statusдещо оманливе. Постійна помилка (в цьому контексті) вказує на те, що сталася помилка вводу-виводу та була введена в журнал помилок SPA (Pool Pool Allocator) для цього пулу. Це не обов'язково означає, що існує непоправна корупція даних.

Що ви повинні зробити, це запустити zpool scrubна басейн. Коли скраб завершиться, журнал помилок SPA повернеться і більше не відображатиметься помилок до скрабу. Якщо скраб не виявить жодних помилок, то zpool statusбільше не з’являтиметься «постійних» помилок.

Щодо документації, то йдеться про те, що таким чином реєструються лише "фатальні помилки". Фатальна помилка - це помилка вводу / виводу, яку не вдалося автоматично виправити ZFS, і тому вона була піддана застосуванню як невдалий ввід / вивід. На противагу цьому, якщо введення / виведення негайно було повторно повторено, або якщо логічне введення / виведення було задоволено надлишковим пристроєм, воно не вважатиметься фатальною помилкою і, отже, не буде зареєстровано як помилка пошкодження даних.

Фатальна помилка не обов'язково означає постійну втрату даних, вона просто означає, що в той момент її не вдалося виправити до її поширення до програми. Наприклад, нещільний кабель або поганий контролер можуть спричинити тимчасові фатальні помилки, які ZFS описав би як "постійні". Чи справді це проблема, залежить від характеру вводу-виводу та від того, чи програма може відновити помилки вводу-виводу.

EDIT: Повністю погоджуйтесь з @bahamat, що вам слід якомога швидше інвестувати у надмірність.


Журнал помилок SPA, який повідомляє про це як "постійне", справді здається трохи оманливим. zpool scrubЗробив саме те , що ви запропонували @ тому-Шо, і ваше пояснення має сенс. Я більше не бачу жодних "постійних помилок" на цьому масиві після скрабу. Я не думав про фатальні помилки в контексті невдалого читання. Я думаю, що це, напевно, була тимчасовою помилкою вводу / виводу для читання, як ви пропонуєте. Я також повністю згоден з необхідністю резервування.
Буде Хейлі

Томе, ти давно не бачив тебе. З поверненням.
the wabbit

7

Постійна помилка означає, що у файлі сталася помилка контрольної суми і не було достатньо реплік для відновлення. Це означає, що принаймні один зчитується повернутих пошкоджених даних через помилку вводу / виводу. Якщо хто-небудь отримав прочитане, то написав би його назад до того самого файлу диска, у вас зараз виникне непоправне пошкодження даних.

Дивлячись на конфігурацію пулу, схоже, що у вас немає надмірності. Це дуже небезпечно. Ви не отримаєте будь-який з самовідновлюються переваги ZFS, але він буде мати можливість сказати вам , коли було пошкодження даних. Зазвичай ZFS автоматично і мовчки виправить пошкоджені показання, але у вашому випадку це не зможе. Також схоже на те, що ви вже працювали, zpool clearтому що CKSUMкількість рахунків призначена 0для обох дисків.

На жаль, без реплік насправді немає способу знати.


2
Чи не було б zpool clearтакож очистити повідомлення про помилку, а не лише помилки? Дивно, що повідомлення зберігається, але помилок не відображається.
користувач121391

2
Мої вибачення. Я випустив файли зі списку постійних помилок для конфіденційності. Редагуючи цей результат, я також керував підрахунками CKSUM і втратив цінний контекст. Я відредагував питання, щоб відобразити реальність. @ user121391
Буде Хейлі

У такому випадку, якщо показані вами цифри є правильними, ви, ймовірно, десь маєте апаратну помилку. Оскільки обидва диски показують, що CKSUM countsце може бути контролер, кабель або будь-яке спільне обладнання між двома дисками. Можливо також, що обидва диски виходять з ладу. У будь-якому випадку це підкреслює необхідність додавання надмірності ASAP та перевірки зазначених файлів на предмет корупції.
bahamat

ОП, схоже, не має надмірності; vdev має 56 помилок CKSUM, а пул - 28 помилок CKSUM. Тож я не впевнений, на що ви зверталися "обома дисками" у попередньому коментарі. Я погоджуюсь з вашою думкою щодо значення надмірності.
CVn

Ти маєш рацію. Я неправильно прочитав назву пулу так, ніби це був інший диск. Дякуємо, що вказали на це.
bahamat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.