Назад | Перейти на главную страницу

Восстановление Raid-массивов

Как я могу восстановить рейдовые массивы? Я использую Raid 1. В моем центре обработки данных говорится, что это необходимо исправить. Сначала я подумал, что жесткие диски неисправны из-за результата сканирования smartmoontools, но это не так.

команда:

cat / proc / mdstat

вывод:

Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sda1[0]
      2096064 blocks [2/2] [UU]

md1 : active raid1 sda2[0]
      524224 blocks [2/1] [U_]

md2 : active raid1 sda3[0]
      729952192 blocks [2/1] [U_]

unused devices: <none>

Мне нужно:

# mdadm /dev/md1 -r /dev/sdb2
# mdadm /dev/md2 -r /dev/sdb3
# mdadm /dev/md3 -r /dev/sdb4

а потом

# mdadm /dev/md1 -a /dev/sdb2
# mdadm /dev/md2 -a /dev/sdb3
# mdadm /dev/md3 -a /dev/sdb4 

Потеряю ли я данные или мой сервер отключится?

Вот результат для fdisk -l

Disk /dev/sda: 750.1 GB, 750156374016 bytes
64 heads, 32 sectors/track, 715404 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               2        2048     2096128   fd  Linux raid autodetect
/dev/sda2            2049        2560      524288   fd  Linux raid autodetect
/dev/sda3            2561      715404   729952256   fd  Linux raid autodetect

Disk /dev/sdb: 750.1 GB, 750156374016 bytes
64 heads, 32 sectors/track, 715404 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2        2048     2096128   fd  Linux raid autodetect
/dev/sdb2            2049        2560      524288   fd  Linux raid autodetect
/dev/sdb3            2561      715404   729952256   fd  Linux raid autodetect

Disk /dev/md2: 747.4 GB, 747471044608 bytes
2 heads, 4 sectors/track, 182488048 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md2 doesn't contain a valid partition table

Disk /dev/md1: 536 MB, 536805376 bytes
2 heads, 4 sectors/track, 131056 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md0: 2146 MB, 2146369536 bytes
2 heads, 4 sectors/track, 524016 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table

Вот вывод для smartctl -A / dev / sdb

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   111   100   006    Pre-fail  Always       -       38042073
  3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       7
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   073   060   030    Pre-fail  Always       -       24494887
  9 Power_On_Hours          0x0032   091   091   000    Old_age   Always       -       7935
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       7
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       4
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   062   052   045    Old_age   Always       -       38 (Min/Max 34/41)
194 Temperature_Celsius     0x0022   038   048   000    Old_age   Always       -       38 (0 26 0 0 0)
195 Hardware_ECC_Recovered  0x001a   032   026   000    Old_age   Always       -       38042073
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       101494372179726
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       3317006641
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       2924590852

Этот диск sdb выглядит так, будто он недалеко от сбоя. Хотя это не так официально пока не удалось, в нем осталось мало жизни.

195 Hardware_ECC_Recovered  0x001a   032   026   000    Old_age   Always       -       38042073

На этом диске было много восстанавливаемый ошибки чтения. Это означает, что он успешно восстановил данные с помощью исправления ошибок. Однако дело доходит до того, что, скорее всего, скоро безвозвратно ошибка чтения, при которой невозможно успешно восстановить данные на поврежденном или неисправном разделе диска. В этот момент вы ничего не можете сделать, и вам придется заменить диск.

Если ваша перестройка продолжает останавливаться в том же месте, вполне возможно, что диск уже вышел из строя в этой точке на пластинах и не сообщает об этом. Диски класса настольных ПК будут останавливаться и в течение нескольких минут или даже часов пытаться прочитать определенный сектор, если они выйдут из строя с первого раза, что приводит к такого рода вещам. А у вас наверное в этом "сервере" такой привод ...

На этом этапе вам следует заранее заменить этот диск, так как он скоро выйдет из строя, если не уже.

Кажется, что не хватает только половины зеркала. Так что проблем быть не должно, но вопрос в том, почему отсутствуют sumbirrors (sdbX)? Может быть, было бы неплохо проверить их перед повторным прикреплением к зеркалам.

mdadm --manage /dev/md1 --add /dev/sdb2
mdadm --manage /dev/md2 --add /dev/sdb3
mdadm --manage /dev/md3 --add /dev/sdb4

Когда у вас есть два тома, зеркально отображаемых с использованием RAID1, каждая копия имеет «счетчик активности», который обновляется, когда что-то изменяется внутри копии: таким образом система может понять, какой из них является наиболее актуальным в случае сбоя или другие вещи, которые снимают одно из двух.

Повторная синхронизация означает, что самая последняя версия копируется поверх более старой, которая «потеряла синхронизацию». Таким образом, отключенный жесткий диск или неисправный приведет к тому, что массив перейдет в «деградированный режим» (только одна копия в сети, без резервирования).

Из деградированного режима вы можете восстановить либо принудительную повторную синхронизацию, чтобы единственный активный раздел был клонирован в тот, который вы вернули для работы, либо заменить неисправный диск и предоставить новое пространство для массива, который будет клонирован в том же способ, описанный ранее.

Оба метода сохранят ваши данные нетронутыми, если вы не сделаете что-то неправильное с конфигурациями или с "хорошими" разделами, которые все еще живы =)

Я думаю, это хорошая идея сделать резервную копию ваших настроек рейда, прежде чем вы даже подумаете о том, чтобы с ними возиться =)

Что касается значений SMART, они мне кажутся вполне нормальными, помимо Hardware_ECC_Recovered, которое также обсуждается в других ответах.

В любом случае избегайте рассмотрения единственного значения, которое вы видите там, также проверьте, с какой скоростью оно изменяется. Однажды у меня были странные значения на диске, но они не ухудшились, они были стабильными. С другой стороны, хорошие значения SMART не являются доказательством идеального диска: на мой взгляд, они могут быть полезны для проверки износа диска из-за использования / старения, но они мало что могут сделать для предотвращения внезапных сбоев (например, вызванных механическими нагрузками, перегрев и т. д. - подумайте о неисправном кулере в серверной ..)

Удачи! знак равно