Уже довольно часто писал заяви в 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