Kenny00
@Kenny00

Почему mdadm не переходит в degraded при bad-блоке на одном из дисков?

Собственно, есть RAID 5 из 6 дисков, построен на mdadm.
До определённого времени всё работало успешно, но при попытке забрать файлы, контрольная сумма копий отличалась.
Методом проверки поверхности дисков, было выяснено, что диск /dev/sda посыпался.

smartctl -a /dev/sda
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   253   253   021    Pre-fail  Always       -       950
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       116
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   001   001   000    Old_age   Always       -       73628
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       114
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       57
193 Load_Cycle_Count        0x0032   001   001   000    Old_age   Always       -       7888761
194 Temperature_Celsius     0x0022   113   094   000    Old_age   Always       -       37
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       47
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   155   080   000    Old_age   Offline      -       12120

Собственно, уже 47 Reallocated_Sector
А mdadm по статусам ничего не сообщает, как будто всё нормально.

cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md127 : active raid5 sda3[0] sdf3[5] sde3[4] sdd3[3] sdc3[2] sdb3[1]
      9743319040 blocks super 1.2 level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]

md1 : active raid10 sda2[0] sdf2[5] sde2[4] sdd2[3] sdc2[2] sdb2[1]
      1566720 blocks super 1.2 512K chunks 2 near-copies [6/6] [UUUUUU]

md0 : active raid1 sda1[0] sdf1[5] sde1[4] sdd1[3] sdc1[2] sdb1[1]
      4190208 blocks super 1.2 [6/6] [UUUUUU]


mdadm --detail /dev/md127

/dev/md127:
           Version : 1.2
     Creation Time : Mon Mar 16 21:27:21 2020
        Raid Level : raid5
        Array Size : 9743319040 (9291.95 GiB 9977.16 GB)
     Used Dev Size : 1948663808 (1858.39 GiB 1995.43 GB)
      Raid Devices : 6
     Total Devices : 6
       Persistence : Superblock is persistent

       Update Time : Wed May 26 09:57:02 2021
             State : clean
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 64K

Consistency Policy : unknown

              Name : 33ea55f9:RAID-5-0  (local to host 33ea55f9)
              UUID : 04d214c4:ee331e6a:74ca0a04:5e846481
            Events : 148

    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3
       2       8       35        2      active sync   /dev/sdc3
       3       8       51        3      active sync   /dev/sdd3
       4       8       67        4      active sync   /dev/sde3
       5       8       83        5      active sync   /dev/sdf3


Отсюда 2 вопроса:
Почему состояние тогда unknown в Consistency Policy?
Почему mdadm не переходит в degraded при bad-блоке на одном из дисков?
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@MechanID
Админ хостинг провайдера
Смарт диска и mdadm это разные вещи, mdadm будет выбрасывать диск из массива когда напорется на неконсистентность, такие ошибки пишутся в dmesg, также можно посмотреть счетчик ошибок в /sys/block/mdХ/md/mismatch_cnt

Для проверки состояния массива можно запустить проверку (просто сканирывание на наличие ошибок)
echo check > /sys/block/mdХ/md/sync_action

исправление ошибок можно запустить
echo repair > /sys/block/mdХ/md/sync_action
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У вас 47 Current_Pending_Sector, а не Reallocated_Sector_Ct.
Это значит, что была одна неудачная попытка чтения или записи в эти секторы. Само по себе такое состояние ошибкой не считается. Если будет ещё одна неудачная попытка, то тогда HDD попытается переместить сектор. Увеличится счётчик попыток перемещения (Reallocated_Event_Count) и, при удачном перемещении, счётчик перемещённых секторов (Reallocated_Sector_Ct).
Если же повторная попытка будет успешной, то с сектора снимется пометка подозрительного.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы