Настройка и конфигурация аппаратного контроллера RAID Adaptec

Последнее изменение: Friday December 1st, 2023

Эта статья использует пример для описания необходимых шагов при замене неисправного диска в программном RAID (mdadm).

ВАЖНО: Все команды представлены только в качестве примера. Их нужно соответствующим образом адаптировать!

Пример сценария

Вот пример конфигурации:

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
      1822442815 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sda3[0] sdb3[1]
      1073740664 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      524276 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      33553336 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Всего четыре раздела:

  • /dev/md0 как swap
  • /dev/md1 как /boot
  • /dev/md2 как /
  • /dev/md3 как /home

/dev/sdb является неисправным диском в данном случае. Отсутствующий или неисправный диск показывается как [U_] и/или [_U]. Если массив RAID целый, то отображается [UU].

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0] sdb3[1](F)
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1](F)
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0] sdb1[1](F)
      33553336 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Изменения в программном RAID можно вносить при работающей системе. Если proc/mdstat показывает, что диск отказывает, как в приведенном примере, можно договориться о замене диска с нашими техниками поддержки (см. далее).

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0]
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0]
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0]
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0]
      33553336 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Удаление неисправного диска

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

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

Следующая команда показывает диски, входящие в массив:

# mdadm --detail /dev/md0

В некоторых случаях диск может быть частично неисправен, например, только /dev/md0 находится в состоянии [U_], тогда как все остальные устройства в состоянии [UU]. В этом случае команда

# mdadm /dev/md1 -r /dev/sdb2

завершится ошибкой, поскольку массив /dev/md1 в порядке.

В этом случае сначала нужно выполнить команду

# mdadm --manage /dev/md1 --fail /dev/sdb

Настройка и конфигурация аппаратного контроллера RAID Adaptec

 

Эта статья использует пример для описания необходимых шагов при замене неисправного диска в программном RAID (mdadm).

ВАЖНО: Все команды представлены только в качестве примера. Их нужно соответствующим образом адаптировать!

Пример сценария

Вот пример конфигурации:

 

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
      1822442815 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sda3[0] sdb3[1]
      1073740664 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      524276 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      33553336 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Всего четыре раздела:

  • /dev/md0 как swap
  • /dev/md1 как /boot
  • /dev/md2 как /
  • /dev/md3 как /home

/dev/sdb является неисправным диском в данном случае. Отсутствующий или неисправный диск показывается как [U_] и/или [_U]. Если массив RAID целый, то отображается [UU].

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0] sdb3[1](F)
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1](F)
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0] sdb1[1](F)
      33553336 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Изменения в программном RAID можно вносить при работающей системе. Если proc/mdstat показывает, что диск отказывает, как в приведенном примере, можно договориться о замене диска с нашими техниками поддержки (см. далее).

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0]
      1822442815 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0]
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0]
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0]
      33553336 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Удаление неисправного диска

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

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

Следующая команда показывает диски, входящие в массив:

# mdadm --detail /dev/md0

В некоторых случаях диск может быть частично неисправен, например, только /dev/md0 находится в состоянии [U_], тогда как все остальные устройства в состоянии [UU]. В этом случае команда

# mdadm /dev/md1 -r /dev/sdb2

завершится ошибкой, поскольку массив /dev/md1 в порядке.

В этом случае сначала нужно выполнить команду

# mdadm --manage /dev/md1 --fail /dev/sdb2

чтобы перевести RAID в состояние [U_].

Организация встречи с командой поддержки для замены неисправного диска

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

Подготовка нового диска

Оба диска в массиве должны иметь точно такое же разбиение на разделы. В зависимости от типа таблицы разделов, который вы используете (MBR или GPT), вам нужно использовать соответствующие утилиты для копирования таблицы разделов. Таблица разделов GPT обычно используется на дисках объемом более 2 ТБ (например, на HDD объемом 3 ТБ в формате EX4 и EX6).

Резервное копирование MBR/GPT

Перед копированием MBR/GPT на новый диск вам нужно сделать его резервную копию. Таким образом, если что-то пойдет не так во время копирования, вы сможете восстановить оригинал.

Резервное копирование с MBR

sfdisk --dump /dev/sda > sda_parttable_mbr.bak
sfdisk --dump /dev/sdb > sdb_parttable_mbr.bak
sfdisk --dump /dev/sdX > sdX_parttable_mbr.bak

Восстановление с MBR

sfdisk /dev/sda < sda_parttable_mbr.bak
sfdisk /dev/sdb < sdb_parttable_mbr.bak
sfdisk /dev/sdX < sdX_parttable_mbr.bak

Резервное копирование с GPT

sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --backup=sdX_parttable_gpt.bak /dev/sdX

Восстановление с GPT

sgdisk --load-backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sdb_parttable_gpt.bak /dev/sdb
sgdisk --load-backup=sdX_parttable_gpt.bak /dev/sdX

Диски с GPT

На диске существует несколько избыточных копий таблицы разделов (GPT), поэтому вам нужно использовать инструменты, поддерживающие GPT (например, parted или GPT fdisk), чтобы редактировать таблицу. Вы можете использовать инструмент sgdisk из GPT fdisk, чтобы легко скопировать таблицу разделов на новый диск. Вот пример копирования таблицы разделов с sda на sdb:

sgdisk --backup=sda_parttable_gpt.bak /dev/sda
sgdisk --load-backup=sda_parttable_gpt.bak /dev/sdb

Затем вам нужно присвоить диску новый случайный UUID:

sgdisk -G /dev/sdb

После этого вы можете добавить диск в массив. В качестве последнего шага необходимо установить загрузчик.

Диски с MBR

Вы можете просто скопировать таблицу разделов на новый диск, используя sfdisk.

# sfdisk -d /dev/sda | sfdisk /dev/sdb

где /dev/sda – исходный диск, а /dev/sdb – целевой диск.

(Дополнительно): Если разделы не обнаруживаются системой, то таблица разделов должна быть повторно считана из ядра:

# blockdev --rereadpt /dev/sdb

Естественно, вы также можете создать разделы вручную с использованием fdisk, cfdisk или других инструментов. Разделы должны иметь тип Linux raid autodetect (ID fd).

Интеграция нового диска

После того, как вы удалили неисправный диск и установили новый, вам нужно интегрировать его в массив RAID. Это необходимо сделать для каждого раздела.

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

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

# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb4[1] sda4[0]
      1028096 blocks [2/2] [UU]
      [==========>..........]  resync =  50.0% (514048/1028096) finish=97.3min speed=65787K/sec

md2 : active raid1 sdb3[1] sda3[0]
      208768 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
      2104448 blocks [2/2] [UU]

md0 : active raid1 sdb1[1] sda1[0]
      208768 blocks [2/2] [UU]

unused devices: <none>

Установка загрузчика

Поскольку серийный номер диска изменился, нам нужно создать новое отображение устройств с помощью GRUB2:

grub-mkdevicemap -n

Если вы выполняете эту операцию в загруженной системе, то для GRUB2 достаточно выполнить команду grub-install на новом диске. Например:

grub-install /dev/sdb

Для Grub1 (grub-legacy) в зависимости от того, какой диск был неисправным, вам может потребоваться выполнить дополнительные шаги.

  • Запустите консоль GRUB: grub
  • Укажите раздел, на котором расположен /boot: root (hd0,1) (/dev/sda2 = (hd0,1))
  • Установите загрузчик в MBR: setup (hd0)
  • Чтобы также установить загрузчик на второй диск:
    • Отобразите второй диск как hd0: device (hd0) /dev/sdb
    • Повторите шаги 2 и 3 точно так же (не изменяйте команды!)
  • Выйдите из консоли GRUB: quit
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/sdb
device (hd0) /dev/sdb
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)"...  26 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
#

Также выполните следующие привязки для установленной системы:

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

Затем выполните все вышеуказанные шаги установки GRUB в среде chroot. Можете безопасно проигнорировать предупреждение grub-install couldn't find physical volumes.

Was this article helpful?
Просмотры: 247

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Меню