Как выполнить горячую замену

Последнее изменение: Thursday November 23rd, 2023

С помощью горячей замены вы можете заменить диски (HDD/SSD), пока система работает, чтобы минимизировать простой сервера в случае отказа диска. Пожалуйста, прочтите эту статью, чтобы помочь вам подготовиться и выполнить обмен дисками в режиме горячей замены.

Совместимость

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

Вы можете проверить, поддерживает ли ваш сервер горячую замену на Robot. Перейдите на сервер и нажмите вкладку “Поддержка”. Затем в новом окне нажмите внизу “Техническая поддержка”. В разделе “С какой технической проблемой вы столкнулись?” выберите “Сломан диск”. Теперь прокрутите вниз, пока не увидите “Варианты замены”. Если у вас есть опция “Замена во время работы системы”, то ваш сервер поддерживает горячую замену.

Важные заметки

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

Процедура

Аппаратный RAID

Если вы используете контроллер RAID с сервером, вы можете заменить диски с помощью горячей замены; это верно для всех операционных систем. В настоящее время у нас есть контроллеры RAID Adaptec и LSI.

Для запроса замены диска напишите запрос на поддержку, как обычно, через свой аккаунт.

Приведены некоторые примеры:

Важно: Это всего лишь примеры. Вам необходимо адаптировать шаги и особенно параметры команд под ВАШУ конкретную систему!

Контроллер LSI

Пример конфигурации: установка Debian на массив RAID 1 с двумя SSD. Для этого доступны инструменты командной строки MegaCli64 и StorCLI.

  • StorCLI:
    • Найдите “StorCLI”. (Вы можете преобразовать пакет RPM в пакет deb, используя alien, а затем установить его).
    • Создайте псевдоним для упрощения использования:
      alias storcli='/opt/MegaRAID/storcli/storcli64'

    В этом примере предположим, что есть дефектный SSD в слоте 0.

    1. Вы можете узнать статус и серийные номера (данные запроса) с помощью следующей команды, например:
      storcli /c0/eALL/sALL show all | egrep 'Device attributes|SN = | Intf | SATA'
    2. Если у дефектного диска еще нет статуса ‘offline’, установите его в ‘offline’ с помощью storcli:
      storcli /c0/e252/s0 set offline
    3. Теперь SSD отмечен как отсутствующий…
      storcli /c0/e252/s0 set missing
    4. Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
    5. После того, как наша команда заменила диск, проверьте статус нового диска:
      storcli /c0/eall/sall show
    6. Если восстановление не начнется само, запустите его вручную.
      storcli /c0/e252/s0 start rebuild
  • MegaCli64:
    • Найдите MegaCli64. (Вы можете конвертировать пакет RPM в пакет deb с использованием alien и затем установить его).
    • Инструмент довольно терпим к записи параметров. Вы можете вводить параметры с или без дефиса, и регистр букв не имеет значения.
    • Создайте псевдоним, чтобы использовать его легче:
      alias megacli='/opt/MegaRAID/MegaCli/MegaCli64'.

    В этом примере представим, что есть дефектный SSD в слоте 0.

    1. Вы можете узнать статус и серийные номера (данные запроса) с помощью следующей команды, например:
      megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
    2. Если дефектный диск еще не имеет статуса (состояние прошивки) ‘offline’, MegaCli установит его в ‘offline’:
      megacli pdoffline physdrv[252:0] a0
    3. Теперь SSD отмечен как отсутствующий…
      megacli pdmarkmissing physdrv[252:0] a0
    4. …и подготовлен к обмену
      megacli pdprprmv physdrv[252:0] a0
    5. Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
    6. После того, как наша команда заменила диск, проверьте статус нового диска:
      megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
    7. Если восстановление не начнется само, запустите его вручную.

Контроллер Adaptec

Пример конфигурации: установка Debian на массив RAID 1 с двумя дисками.

  • Вам понадобится инструмент командной строки arcconf.
  • Дефектный диск подключен к слоту 0.
  1. Вы можете узнать статус и серийные номера с помощью следующей команды, например:
    arcconf getconfig 1 pd|egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
  2. Если у дефектного диска еще нет статуса ‘failed’, этот статус устанавливается.
    arcconf setstate 1 device 0 0 ddd
  3. Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
  4. После того, как наша команда заменила диск, проверьте статус нового диска:
    arcconf getconfig 1 pd | egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
  5. Если восстановление не начнется само, запустите его вручную.

Программный RAID

В принципе, горячая замена также возможна для дисков на контроллере SATA. Операционная система распознает изменение состояния подключения на соответствующем контроллере и распознает новый диск сразу после подключения. Шаги, которые вам нужно предпринять, различаются в зависимости от операционной системы и конфигурации.

Ниже приведены некоторые примеры:

Важно: Это всего лишь примеры. Вам нужно настроить шаги, особенно параметры команд, под вашу конкретную систему!

Windows

Важно: С Windows нельзя горячо заменить загрузочный плекс. Поэтому вам нужно загрузить систему с целым плексом перед началом процесса горячей замены. (Microsoft также называет зеркалирование плексированием, поэтому “плекс” – это часть зеркалированного объема).

В следующем примере предположим, что сервер имеет стандартную установку Windows Server в режиме UEFI с двумя дисками и зеркалированием. Дефектный диск – это диск 1 (вторичный плекс). Система была запущена с первичного плекса.

  1. Удалите HDD/SSD из RAID.

В Диспетчере дисков (diskmgmt.msc) откройте контекстное меню тома C: и выберите “Удалить зеркалирование”.

  1. Прочтите серийный номер дефектного или целого HDD/SSD с помощью diskid32.exe.
  2. Сделайте запрос на поддержку и попросите нашу команду заменить диск (горячая замена).
  3. После того, как наша команда заменила диск, запустите diskpart.
  4. Подготовьте диск / создайте разделы на основе целого HDD/SSD.
  • Если заменяемый HDD/SSD не обнаруживается:
    DISKPART> rescan
  • Отобразите диск:
    DISKPART> list disk
  • Если дефектный диск отображается как M1 (отсутствует):
    DISKPART> select disk M1
    DISKPART> delete disk
  • Преобразуйте сменный диск в динамическое устройство с GPT.
  • Создайте и отформатируйте раздел EFI и назначьте ему букву диска E.
  • Добавьте HDD/SSD в зеркало C и дождитесь завершения синхронизации.
    DISKPART> select disk 1
    DISKPART> convert gpt
    DISKPART> create partition efi size=200
    DISKPART> format fs=fat32 quick
    DISKPART> assign letter=e
    DISKPART> convert dynamic
    DISKPART> select volume c
    DISKPART> add disk 1 wait
  • Назначьте букву x разделу EFI целого HDD/SSD.
    DISKPART> select disk 0
    DISKPART> select part 1
    DISKPART> assign letter=x
    DISKPART> exit
  1. Раздел EFI и загрузчик:В этом примере разделам EFI были назначены следующие буквы диска: x: существующий раздел EFI e: новый созданный раздел EFI на заменяемом диске
  • Прежде всего, вы должны сохранить системное BCD-запоминающее устройство (здесь в файле BCD_backup в текущем каталоге), чтобы вы могли отменить любые изменения позже с помощью bcdedit /import:
    bcdedit /export BCD_backup
  • Рекурсивно скопируйте раздел EFI, пропустив BCD-память и папку System Volume Information:
    robocopy x:\ e:\ * /e /copyall /dcopy:t /xf BCD.* /xd "System Volume Information"
  • Теперь экспортируйте системную BCD-память на заменяемый диск с помощью bcdedit:
    bcdedit /export e:\EFI\Microsoft\Boot\BCD

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

В некоторых случаях может потребоваться внесение дополнительных изменений в BCD-память (например, если еще осталась отдельная запись о запуске). Дополнительную информацию можно найти по адресу: http://download.microsoft.com/download/6/E/E/6EE26977-FAA0-41CC-8BDA-7A0C5E6EB9CC/Configuring%20Disk%20Mirroring%20for%20Windows%20Server%202012.docx.

FreeBSD

  • gmirror + UFS:Пример конфигурации: установка FreeBSD с использованием UFS и gmirror со следующими массивами:
    /dev/mirror/boot (ada0p1 + ada1p1)
    /dev/mirror/swap (ada0p2 + ada1p2)
    /dev/mirror/root (ada0p3 + ada1p3)

    Дефектный HDD/SSD – ada1.

    1. Удалите дефектный HDD/SSD из RAID.
    • Проверьте состояние:
      gmirror status
    • Отключите разделы дефектного HDD/SSD при необходимости:
      gmirror deactivate boot ada1p1
      gmirror deactivate swap ada1p2
      gmirror deactivate root ada1p3
    • “Забудьте” разделы дефектного HDD/SSD:
      gmirror forget boot
      gmirror forget swap
      gmirror forget root
    1. Найдите серийный номер дефектного HDD/SSD:
    • Например, с использованием smartctl из пакета smartmontools:
      smartctl -a /dev/ada1 |grep -i serial
    • Или с использованием camcontrol:
      camcontrol identify /dev/ada1 |grep -i serial
    1. Теперь напишите запрос на поддержку через Robot и попросите о замене диска.
    2. После завершения замены скопируйте таблицу разделов с ada0 на ada1:
      gpart backup ada0 | gpart restore ada1

    ПРИМЕЧАНИЕ: На данный момент, кажется, есть ошибка в FreeBSD 11, которая мешает FreeBSD восстанавливать таблицу разделов, что может помешать загрузке с замененного диска. Если у вас возникла эта проблема, пожалуйста, обратитесь к посту на форуме FreeBSD.

    1. Добавьте разделы заменяемого HDD/SSD в gmirror:
      gmirror insert boot ada1p1
      gmirror insert swap ada1p2
      gmirror insert root ada1p3
    2. Установите загрузочный код на заменяемом HDD/SSD:
      gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
  • ZFSПример конфигурации: установка FreeBSD с использованием ZFS со следующими массивами:
    /dev/mirror/boot (ada0p1 + ada1p1)
    /dev/mirror/swap (ada0p2 + ada1p2)

    Пул ZFS zroot с зеркалированием через gpt/root0 (метка GPT для ada0p3) и gpt/root1 (метка GPT для ada1p3)

    Дефектный HDD/SSD – ada0.

    (Два зеркала gmirror boot и swap обрабатываются согласно вышеуказанной процедуре).

    1. Если вы хотите использовать ZFS для зеркалирования, вам также нужно проверить состояние зеркала перед его заменой и, при необходимости, установить соответствующий раздел (в следующем примере gpt/root0) в автономный режим:
      zpool status
       pool: zroot
      state: ONLINE
       scan: none requested
      config:
             NAME           STATE     READ WRITE CKSUM
             zroot          ONLINE       0     0     0
               mirror-0     ONLINE       0     0     0
                 gpt/root0  ONLINE       0     0     0
                 gpt/root1  ONLINE       0     0     0
      zpool offline zroot gpt/root0
      zpool status
       pool: zroot
      state: DEGRADED
      status: One or more devices has been taken offline by the administrator.
             Sufficient replicas exist for the pool to continue functioning in a
             degraded state.
      action: Online the device using 'zpool online' or replace the device with
             'zpool replace'.
       scan: none requested
      config:
             NAME                     STATE     READ WRITE CKSUM
             zroot                    DEGRADED     0     0     0
               mirror-0               DEGRADED     0     0     0
                 8894732708877724737  OFFLINE      0     0     0  was /dev/gpt/root0
                 gpt/root1            ONLINE       0     0     0
      
      gmirror deactivate boot ada0p1
      gmirror deactivate swap ada0p2
      gmirror forget boot
      gmirror forget swap
    2. Если вы используете метки GPT, как в примере, вы можете узнать привязку к диску с помощью gpart:
      gpart list | grep -Egg 'geom|label'
      Geom name: ada0
      label: boot0
      label: swap0
      label: root0
      Geom name: ada1
      label: boot1
      label: swap1
      label: root1
    3. Найдите серийный номер дефектного HDD/SSD:
  • Например, с использованием smartctl из пакета smartmontools:
    smartctl -a /dev/ada0 |grep -i serial
  • Или с помощью camcontrol:
    camcontrol identify /dev/ada0 |grep -i serial
  1. Напишите запрос на поддержку через Robot и попросите нашу команду заменить диск. Убедитесь включить правильный серийный номер диска. После замены передайте таблицу разделов с помощью gpart, восстановите зеркало gmirror и установите загрузочный код:
    gpart backup ada1 | gpart restore ada0
    gmirror insert boot ada0p1
    gmirror insert swap ada0p2
    gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
  2. Затем отредактируйте метку GPT раздела ZFS (в данном случае третий, т.е. ada0p3) замененного диска (gpt/root0):
    gpart modify -i 3 -l root0 ada0
  3. Новое устройство теперь может заменить отказавшую часть зеркала:
    zpool replace zroot gpt/root0
    zpool status -x
    all pools are healthy

Для подробной информации по настройке и управлению файловой системой ZFS см. документацию Oracle: Oracle ZFS Documentation (английский)

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

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.

Меню