Как я делал заявку в Hetzner на замену диска в рейде

Уже довольно часто писал заяви в Hetzner на замену дисков в рейде и в этой статье опишу один из случаев.

И так, однажды утром, после выпадения диска из рейда, mdadm прислал мне сообщение на email.

Я посмотрел состояние рейдов:

cat /proc/mdstat

Отобразилась информация (как видно — выпал первый диск):

Personalities : [raid1] [raid6] [raid5] [raid4] 
md2 : active raid6 sdc3[5] sdd3[3] sdb3[1]
      208218112 blocks super 1.0 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
      
md1 : active raid1 sdc2[5] sdd2[3] sdb2[1] sda2[4](F)
      524224 blocks super 1.0 [4/3] [_UUU]
      
md0 : active raid1 sdc1[5] sdd1[3] sdb1[1]
      12582784 blocks super 1.0 [4/3] [_UUU]

Посмотрел какие диски присутствуют в системе:

fdisk -l | grep '/dev/sd'

В моем случае были — sdb, sdc, sdd, а sda отсутствовал:

Disk /dev/sdc: 120.0 GB, 120034123776 bytes
/dev/sdc1               1        1567    12582912+  fd  Linux raid autodetect
/dev/sdc2            1567        1633      524288+  fd  Linux raid autodetect
/dev/sdc3            1633       14594   104109528+  fd  Linux raid autodetect
Disk /dev/sdd: 1500.3 GB, 1500301910016 bytes
/dev/sdd1               1        1567    12582912+  fd  Linux raid autodetect
/dev/sdd2            1567        1633      524288+  fd  Linux raid autodetect
/dev/sdd3            1633       14594   104109528+  fd  Linux raid autodetect
Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
/dev/sdb1               1        1567    12582912+  fd  Linux raid autodetect
/dev/sdb2            1567        1633      524288+  fd  Linux raid autodetect
/dev/sdb3            1633       14594   104109528+  fd  Linux raid autodetect

Убедился в том что диск не видит система:

smartctl -x /dev/sda
Smartctl open device: /dev/sda failed: No such device

Чтобы сделать заявку на замену диска, необходимо сообщить серийный номер нерабочего диска, если диск не видит система, тогда нужно сообщить серийные номер всех рабочих дисков.
Заявку я создавал через сайт robot.your-server.de

Посмотрим серийные номера рабочих дисков:

smartctl -x /dev/sdb
smartctl -x /dev/sdc
smartctl -x /dev/sdd

У меня отобразилась подобная информация:

...
=== START OF INFORMATION SECTION ===
Model Family:     SandForce Driven SSDs
Device Model:     Corsair CSSD-F120GB2
Serial Number:    10446526320009980370
LU WWN Device Id: 5 000000 009980370
Firmware Version: 1.1
User Capacity:    120,034,123,776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 6
Local Time is:    Tue Nov 20 21:40:16 2018 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, NOT FROZEN [SEC1]
...

В моих случаях Hetzner выполнял замену дисков примерно в течении получаса, бесплатно на б/у SSD, примерно пяти летней давности.

После того как диск заменен, посмотрим видит ли его система и разобьем аналогично установленному:

fdisk -l | grep '/dev/sd'
sfdisk -d /dev/sdc | sfdisk --force /dev/sda

Далее необходимо добавить диск в свои рейды и дождаться синхронизации:

mdadm /dev/md0 -a /dev/sda1
cat /proc/mdstat
mdadm /dev/md1 -a /dev/sda2
cat /proc/mdstat
mdadm /dev/md2 -a /dev/sda3
cat /proc/mdstat

Теперь осталось установить GRUB2:

grub-install /dev/sda
update-grub

Или GRUB1 (hd0 это /dev/sda, hd0,1 — /dev/sda2):

cat /boot/grub/device.map
grub
device (hd0) /dev/sda
root (hd0,1)
setup (hd0)
quit

У меня использовался GRUB1, по этому я установил его:

grub
Probing devices to guess BIOS drives. This may take a long time.
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> device (hd0) /dev/sda
device (hd0) /dev/sda
grub> root (hd0,1)
root (hd0,1)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  27 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+27 p (hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit

Готово.

PS. Приведу пример резервного копирования MBR/GPT:

sfdisk --dump /dev/sda > sda_parttable_mbr.bak
sfdisk /dev/sda < sda_parttable_mbr.bak
sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sda

Смотрите также мою статью:
Решение проблемы с выпавшими дисками mdadm

Оставьте комментарий

Добавить комментарий