Замена жесткого диска, software raid 1, mdadm

Материал из poiuty wiki
Перейти к: навигация, поиск

Диагностировать состояние жесткого диска можно с помощью утилиты smartmontools.

apt-get install smartmontools
yum install smartmontools

Пример использования. Здесь все показатели в норме.
В основном, нужно обращать внимание на Reallocated_Sector_Ct. Чем оно больше - тем хуже. Если быстро растет, значит диск скоро умрет.

# smartctl -A /dev/sda
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-042stab094.7] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
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     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       80
  3 Spin_Up_Time            0x0007   100   100   024    Pre-fail  Always       -       411
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       5
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   140   140   020    Pre-fail  Offline      -       26
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       1829
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       5
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       5
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       5
194 Temperature_Celsius     0x0002   206   206   000    Old_age   Always       -       29 (Min/Max 20/38)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

Убедимся, что RAID1 работает нормально. Если же нет, проверяем данные на дисках, и на всякий случай - делаем резервную копию.

#cat /proc/mdstat

md1 : active raid1 sda2[0] sdb2[1] 2929739071 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1] 524276 blocks super 1.2 [2/2] [UU]
unused devices:

Если сервер стоит в дата-центре, тогда нужно узнать его серийный номер (SerialNo) неисправного диска.

# hdparm -i /dev/sda

/dev/sda:

 Model=HGST HUS724020ALA640, FwRev=MF6OAA70, SerialNo=PN2134P6K0NZ1X
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56
 BuffType=DualPortCache, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907029168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode


Далее связываемся с технической поддержкой дата-центра, сообщаем серийный номер диска, данные с smartctl и договариваемся о замене диска.
Как только диск поменяют, заходим на сервере и добавляем его в RAID1. Сначала определяем какой диск работает.

sfdisk -d /dev/sdb или sfdisk -d /dev/sda

Новый диск ответит
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdX: unrecognized partition table type

Скопируем таблицу разделов.

sgdisk -R /dev/sdX /dev/sdXY
sgdisk -G /dev/sdX

Начнем процесс синхронизации (кол-во /dev/mdN смотреть по cat /proc/mdstat).

mdadm /dev/md0 -a /dev/sdX1
mdadm /dev/md1 -a /dev/sdX2

Теперь ждем и не выключаем сервер. Наблюдать за процессом синхронизации можно так watch cat /proc/mdstat
Главное не перепутайте жесткие диски.

fail.png

И последнее что нужно сделать - поставить grub-install /dev/sdX, где X - новый диск.