Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

каталог_статей:аппаратное_обеспечение:замена_диска_в_программном_raid1 [2012/11/19 11:38] (текущий)
Строка 1: Строка 1:
 +====== замена диска в программном raid1 ======
 +Применимость:​ Linux
 +
 +Слова для поиска:​ зеркало,​ сбойный диск
 +
 +----
 +===== Задача:​ =====
 +Вы получаете сообщения о росте ошибок диска от демона smartd или есть другие признаки,​ что один из дисков неисправен.
 +
 +Так или иначе требуется замена диска. ​
 +
 +Как это сделать без остановки сервера?​
 +
 +===== Решение:​ =====
 +
 +==== 1. Определение неисправного диска ====
 +Каждый час демон smartd проверяет счетчики ошибок если вы настроили его заранее. ​
 +Смотрите статью - [[мониторинг состояния дисков (smartd)]] ​
 +
 +Демон будет писать уведомления в логи и отправлять почтовые уведомления.
 +
 +Если уведомления о росте числа ошибок появляются несколько раз в день, то это причина для беспокойства.
 +
 +<code | пример сообщений в системном журнале>​
 +
 +Nov 19 12:25:02 server1 smartd[1949]:​ Device: /dev/sdb [SAT], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 82 to 83
 +Nov 19 12:25:02 server1 smartd[1949]:​ Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 118 to 119
 +
 +</​code>​
 +
 +Проверьте состояние массива
 +<​code>​
 +cat /​proc/​mdstat ​
 +Personalities : [raid1] ​
 +md2 : active raid1 sda3[0](F) sdb3[1]
 +      956741496 blocks super 1.2 [2/1] [_U]
 +      ​
 +md1 : active raid1 sda2[0](F) sdb2[1]
 +      19529656 blocks super 1.2 [2/1] [_U]
 +      ​
 +md0 : active raid1 sda1[0](F) sdb1[1]
 +      487412 blocks super 1.2 [2/1] [_U]
 +      ​
 +unused devices: <​none>​
 +
 +</​code>​
 +
 +
 +==== 2. Определение расположения диска ====
 +
 +Вы знаете,​ что, например,​ неисправен диск sda, но нужно определить какой именно диск называется sda, где он расположен физически.
 +
 +Для этого можно использовать команду ​
 +
 +  dd if=/dev/sdX of=/​dev/​null
 +
 +На указанном диске загорится лампочка активности. Если сбойный диск вообще мертв, идентифицируйте живой диск и методом исключения определите где мертвый. Главное знать точно где какой диск и не перепутать.
 +
 +==== Удаление поврежденного диска ====
 +
 +Не торопитесь сразу выдергивать диск. Лучше сперва вывести его из конфигурации массива. Выполните эти команды для каждого раздела и для каждого соответствующего раздела:​
 +
 +**Пометить диск как сбойный:​**
 +
 +  mdadm --manage /dev/mdX --fail /dev/sdbX
 +
 +**Отключить раздел:​**
 +
 +  mdadm --manage /dev/mdX --remove /dev/sdbX
 +
 +
 +<note warning>​Будьте крайне внимательны.</​note>​
 +
 +После удаления диска проверьте состояние массивов
 +
 +<​code|cat /​proc/​mdstat>​
 +
 +cat /​proc/​mdstat ​
 +Personalities : [raid1] ​
 +md2 : active raid1 sdb3[1]
 +      956741496 blocks super 1.2 [2/1] [_U]
 +      ​
 +md1 : active raid1 sdb2[1]
 +      19529656 blocks super 1.2 [2/1] [_U]
 +      ​
 +md0 : active raid1 sdb1[1]
 +      487412 blocks super 1.2 [2/1] [_U]
 +</​code>​
 +
 +//В этом примере остался в работе диск sdb.//
 +
 +Если Вы не уверены,​ что ваш сервер поддерживает Горячую Замену Дисков (Hot-Swap) нужно обязательно сервер выключить,​ вынуть неисправный диск и вставить исправный на его место и включить сервер. Если поддержка есть, то это можно сделать без отключения.
 +
 +==== Использование нового диска ====
 +
 +Оба диска должны иметь идентичные разделы и mbr
 +
 +Копирование MBR
 +
 +  dd if=/dev/sda of=/dev/sdb bs=512 count=1
 +<note warning>
 +НЕ ПЕРЕПУТАЙТЕ ИМЕНА ДИСКОВ</​note>​
 +
 +Надо скопировать таблицу разделов на новый диск этой командой:​
 +
 +  sfdisk -d /dev/sd? | sfdisk --Linux /dev/sdX
 +
 +Добавить каждый раздел нового диска в соответствующий массив:​
 +
 +  mdadm --manage /dev/mdX --add /dev/sdbX
 +
 +Убедиться что идет синхронизация
 +
 +<​code|Синхронизация>​
 +cat /​proc/​mdstat ​
 +Personalities : [raid1] ​
 +md2 : active raid1 sdb3[2] sda3[0]
 +      960744312 blocks super 1.2 [2/1] [U_]
 +      resync=DELAYED
 +      ​
 +md1 : active raid1 sdb2[2] sda2[0]
 +      15624120 blocks super 1.2 [2/1] [U_]
 +      [========>​............] ​ recovery = 44.1% (6902400/​15624120) finish=131.8min speed=1101K/​sec
 +      ​
 +md0 : active raid1 sdb1[2] sda1[0]
 +      390132 blocks super 1.2 [2/2] [UU]
 +</​code>​
 +
 +===== Смотрите также: =====
 +
 +  * [[howto:​мониторинг_состояния_дисков_smartd|]]
 +  * [[http://​www.howtoforge.com/​replacing_hard_disks_in_a_raid1_array|Replacing A Failed Hard Drive In A Software RAID1 Array]]
 +  * [[http://​www.websoftix.com/​Blog/​Recover-Software-Raid1-after-HDD-failure-on-Debian-Squeeze| Recover Software Raid1 after HDD failure on Debian Squeeze]]
 +  * [[http://​rus-linux.net/​nlib.php?​name=/​MyLDP/​sys-conf/​RAID1_CentOS.html|Настройка программного массива RAID1 на работающей системе CentOS 5.3]]
 +
 +---- 
 +Актуальность:​ 2012/11/19 10:39 
 +
 +{{tag>​raid}}