Що таке check consistency, linux на м’якій покрівлі

Суть в тому, що будь-масив не абсолютно надійний (навіть якщо все справно).

Наприклад проблеми кабельної системи можу привести до некоректного запису даних на млинці (хоча як правило вони звичайно компенсуються в процесі передачі).

Набагато гірші справи зі збоями харчування. Вирубання електрики або відмову БП (а часто і ребут) під час інтенсивної записи можуть привести до невідповідності блоків даних і парить.

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

Ну і, природно, в процесі роботи жоден диск не застрахований від бед блоків. Контролер про них нічого не знає до тих пір, поки не полізе в той блок, що може бути дуже рідко.

Чим це загрожує. А все дуже просто. Якщо раптом відмовить диск, то при наявності неконсістентних даних, в процесі ребілд на новий диск інформація буде записана з помилками, і ніхто не буде про це знати! Якщо ж є реальні, а не логічні збої (бед блоки), ребілд просто не пройде (ця ситуація повторювалася вже стільки разів, що у мене мату не вистачає). Тобто гвинт поміняли, а масив як був напівдохлі, так і є. І це ще добре, якщо ребілд не піде - гірше, якщо пройде, але з прихованими помилками (Ви будете перебувати в помилкової впевненості - доки півень не дзьобне).
Найголовніше - НІХТО НЕ ЗМОЖЕ такий масив відновити. Тільки бекап-рестор того, що ще можна прочитати.

Тому періодична перевірка БУДЬ-ЯКОГО масиву рівнів 1, 5, 6, 10, 50 - річ просто ОБОВ'ЯЗКОВА. Якщо звичайно Вас цікавить результат (С).

Що робить консістенсі чек. Він - а) Новомосковскет поверхню дисків, що входять в масив, б) звіряє блоки ширяє і блоки даних (або просто блоки даних в разі рейд1 і 10).

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

Ось власне. Це зовсім не страшилка, а вельми злісна правда життя.

PS. Так ще. Консістенсі чек обов'язково треба робити ПЕРЕД операціями рестрайпінга (зміни рівня масиву) і експанда (додавання дисків в масив).