Як пов’язані власні тести SMART з поганими блоками?


15

Інструмент smartctl дозволяє ініціювати довгий самотест ( smartctl -t long /dev/sda). Однак є також badblocksте, що я можу працювати на диску. Як вони пов'язані між собою? Якщо badblocks виявляє погані блоки, чи привід автоматично оновлює свої значення SMART (наприклад, оновлення кількості переселених секторів)? Чи можуть замінити погані блоки smartctl -t longчи навпаки?

Відповіді:


5

Я повинен не погодитися з voretaq7 - SMART - це не магія. Коли у вас є диск, і один з його секторів стає поганим, ви більше не зможете читати дані з нього. Тож цілком можливо мати нечитабельний файл на сучасному дисководі. SMART позначив би цей нечитабельний сектор як "Поточний процес очікування" та "Офлайн нерегульований", коли до нього вперше звертатимуться після відмови.

Але коли цей сектор буде записаний ще раз, то він буде перероблений на перезапис простору, без позначки і лічильник "Reallocated_Sector_Ct" збільшиться. Тоді цілий привід знову був би читабельним.

smartctl -t longтест є корисним - він перевірить весь провідний простір для нечитабельних секторів і введе журнал та позначить як "Поточний процес очікування" та "Офлайн-невикористовуваний" перший поганий сектор, який виник під час запуску. Я налаштовую свої сервери для виконання цього тривалого тестування раз на тиждень на кожному диску. Це не впливає занадто сильно на звичайні функції приводу, оскільки запити ОС завжди мають пріоритет перед SMART-скануванням.

Як і на сервері, я завжди запускаю диски в дзеркалах RAID1, тому коли довгий тест виявляє поганий сектор, я можу переписати його вміст, використовуючи дані з іншого диска в дзеркалі, змушуючи перерозподіляти.

badblocksтакож корисний іноді - наприклад, він перевірить весь диск і не зупиниться при першій помилці. Він може протестувати окремий розділ або будь-яку іншу частину диска. За допомогою нього можна швидко перевірити, чи не вдало перерозподілений поганий блок.


11

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

Через це теоретично вам слід повідомити про помилки SMART, перш ніж щось подібне badblocksпомітить (видимий для кінцевих користувачів) поганий сектор на диску.
На сучасних жорстких дисках будь-які видимі кінцевим користувачем погані сектори (про що може повідомити badblocksОС або автоматично виявлено) є остаточним задиханням і здриганням вмираючого диска.


У кінцевому підсумку SMART і badblocksпротестуйте дві різні, але пов'язані між собою речі:

SMART - це інструмент самоконтролю:

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

Наприклад: шпиндельний мотор зазвичай тягне 0,10 ампер, але тепер він малює 0,50 ампер - аномально високий малюнок, який може свідчити про зв'язування вала або пропадання постійної мастила на підшипниках. Врешті-решт мотор не зможе подолати опір і привід захопить.

Інший приклад: у накопичувача є 1000 блоків "перезавантаження" для боротьби з поганими секторами. Він використав 750 з них, і інженери, які створили накопичувач, визначили, що кількість повторних підказок вказує на щось внутрішньо неправильне (погана тарілка, похибка в старості, пошкоджена голова) - накопичувач повідомить про стан попереднього відмови, що дозволяє вам отримати час ваші дані вимкнено, поки не закінчиться простір для перезавантаження та не стануть видимими погані сектори.

SMART шукає більш ніж погані сектори - це більш всебічна оцінка стану здоров’я приводу. Ви можете мати попередження про відмову SMART на диску без поганих секторів і помилок читання / запису (наприклад, проблема мотора шпинделя, яку я описав вище).


badblocks - це інструмент із конкретною (застарілою) метою: знайти погані сектори.

badblocksПоходить з часу перед SMART та поганим переоснащенням сектору. Тоді ми знали, що на накопичувачах є недосконалості, але єдиний спосіб їх відображення, щоб запобігти випадковому збереженню даних, - це зробити стрес-тест на диску, викликати збій, а потім пам’ятати, щоб більше не вносити дані туди.

Я вважаю, що застаріла, тому що електроніка на сучасних накопичувачах вже робить те, що badblocksробить, всередині і в кілька тисяч разів швидше. badblocksв основному дозволяє старовинним накопичувачам, яким не вистачає досконалої електроніки, перемальовувати (або пропускати) сектори, які вийшли з ладу, але сучасні жорсткі диски вже виявляють несправні сектори та перекомпонують їх вам.

Теоретично ви можете використовувати badblocksдані, щоб перезавантажити (видимі) збої ОС, як якщо б ваш сучасний диск був старовинним диском Вінчестера, але це в кінцевому рахунку контрпродуктивно - Як я вже казав, будь-які погані сектори, виявлені badblocksна сучасному диску, є причиною відмови від весь привід як несправний (або збирається вийти з ладу).

Видимі погані сектори вказують на те, що накопичувач не має місця для перезавантаження, що є відносно рідкісним явищем для сучасних дисків, якщо вони старі (наближаються до кінця функціонального терміну) або несправні (погані тарілки / головки від заводу).


Отже, якщо запуск badblocksна диску перед тим, як розгорнути його у виробництві, змушує вас почувати себе краще, але якщо ваш диск був виготовлений у цьому столітті, і він показує видимий поганий сектор, вам слід покласти його в смітник (або зателефонувати в його гарантія). За мої гроші статус SMART та глибока захист - це краще використання мого часу, ніж перевірка дисків вручну.


1
Гаразд, це дуже добре пояснює різницю між SMART та badblocks. Але чи означає це, що моніторингу стану SMART достатньо, чи мені також доведеться раз у раз запускати довгі тести SMART, якщо я хочу, щоб попередження SMART спрацьовували правильно? Тобто я повинен бігати smartctl -t long /dev/sdaраз у раз, чи можу припустити, що smartd"автоматично" попередить мене про неминучі проблеми, не потребуючи нічого іншого налаштовувати?
Hongli Lai

Це рішення, яке ви можете приймати лише ви, однак SMART не розроблений для того, щоб вимагати ручного втручання (це "Просто працює", і ви, як правило, не повинні з цим возитися). Довіряйте вашому обладнання (принаймні, до цієї обмеженої міри), тому що якщо ви не можете довіряти своєму обладнання, ви можете також спакувати і піти додому.
voretaq7

2
"сучасні диски вже роблять те, що робить погані блоки, внутрішньо і в кілька тисяч разів швидше" badblocksчитає кожен байт з диска, перезаписує їх випадковими шаблонами, а потім повертає вихідні дані назад. SMART самотести не роблять цього. Це повинно очистити будь-які "очікувані" сектори, якщо я правильно розумію.
ендоліт

4
@endolith Тести не є прямими еквівалентами, але мета, яку вони виконують, рівнозначна (виявити та дозволити перекомпонування поганих секторів). Головним моїм пунктом був останній абзац: якщо ви хочете запускати погані блоки як дисковий тренажер (щоб побачити, чи можете ви спровокувати помилки SMART, оскільки це знаходить купу поганих блоків), перейдіть до цього, але якщо ви сьогодні запускаєте погані блоки з допомогою Намір потім завантажити список поганих блоків, щоб уникнути використання тих секторів (як ми це робили в кам'яну епоху). Ви робите це неправильно: Видимі погані сектори означають, що ви повинні зафіксувати привід у найближчому відро для сміття.
voretaq7

1
@Hashim Так, я вважаю, що корисно використовувати погані блоки, оскільки це очистить очікувані сектори.
ендоліт

5

Хороші відповіді на це питання є

/superuser//a/693065

/superuser//a/693064

На відміну від інших відповідей, я вважаю, що погані блоки не застаріли, але є дуже корисним інструментом. Одного разу я оновив свій ПК новим жорстким диском, і він почав працювати нестабільно. Мені знадобилося досить багато часу, щоб зрозуміти, завдяки поганим блокам, що на поверхні диска були дефекти. З тих пір я запускаю повні блоки запису в режимі запису (руйнуються!) Для кожного нового жорсткого диска, який я починаю використовувати, і ніколи більше не виникала ця проблема. Я настійно рекомендую

час sudo badblocks -swvo sdX.log / sev / sdX

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

Під час цього випробування погані блоки будуть відображені за допомогою накопичувача. Отже, "Перерозподілений кількість сектору" слід зазначити до і після тесту та порівняти його з порогом SMART, оскільки він щось розповість про стан здоров'я накопичувача.


2
Стрес-тестування нового приводу, поки він ще знаходиться на гарантії, - чудова ідея.
ендоліт

2

badblocks - це пережиток з давніх часів і не є суто корисним, він може знайти нечитабельний на даний момент сектор, але правильним, що стосується поганого сектора, є відновлення даних із резервного копіювання. Що можна зробити, якщо дані не були для вас критичними, це видалити пов'язаний файл і написати що-небудь в цьому місці, це дозволить диску перерозподілити сектор, якщо він вважає, що це потрібно, і продовжити роботу.

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

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

Якщо вам потрібно вибрати між двома, використовуйте smartctl -t до тих пір, як це буде мати кращий аналіз диска.

Я також можу запропонувати використовувати мою утиліту diskscan https://github.com/baruch/diskscan , вона працює як погані блоки, але намагається оцінити, чи є сектори, які йдуть погано, на кшталт сектору слабочуючих, який займає набагато довше читати. Це вказує на проблему, що розвивається з медіа, і в майбутніх версіях може також запропонувати автоматичну спробу допомогти диску вирішити цю проблему.


"Крім того, погані блоки фактично застаріли в цей день і вік, оскільки самі диски перерозподілять дані, і більше немає необхідності відображати погані блоки на рівні файлової системи." Не badblocksпідкреслює привід таким чином, як не робить SMART самотестів?
ендоліт

Ні. Badblocks виконають послідовне сканування диска. Це не краще, ніж dd, і буде таким самим, як і тест на самотесті.
Барух Навіть

badblocksзчитує кожен байт з диска, замінює його тестовими зразками, а потім записує вихідні дані на місце. SMART самотести - це аналогічні тести читання-запису?
ендоліт

1
Ну а переписування даних поганих блоків очистить будь-які "очікувані сектори" і змусить диск знову позначити їх як хороші або перерозподілити їх, правда?
ендоліт

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