С помощью горячей замены вы можете заменить диски (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.
- Вы можете узнать статус и серийные номера (данные запроса) с помощью следующей команды, например:
storcli /c0/eALL/sALL show all | egrep 'Device attributes|SN = | Intf | SATA'
- Если у дефектного диска еще нет статуса ‘offline’, установите его в ‘offline’ с помощью
storcli
:storcli /c0/e252/s0 set offline
- Теперь SSD отмечен как отсутствующий…
storcli /c0/e252/s0 set missing
- Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
- После того, как наша команда заменила диск, проверьте статус нового диска:
storcli /c0/eall/sall show
- Если восстановление не начнется само, запустите его вручную.
storcli /c0/e252/s0 start rebuild
- Найдите “StorCLI”. (Вы можете преобразовать пакет RPM в пакет deb, используя
- MegaCli64:
- Найдите MegaCli64. (Вы можете конвертировать пакет RPM в пакет deb с использованием
alien
и затем установить его). - Инструмент довольно терпим к записи параметров. Вы можете вводить параметры с или без дефиса, и регистр букв не имеет значения.
- Создайте псевдоним, чтобы использовать его легче:
alias megacli='/opt/MegaRAID/MegaCli/MegaCli64'.
В этом примере представим, что есть дефектный SSD в слоте 0.
- Вы можете узнать статус и серийные номера (данные запроса) с помощью следующей команды, например:
megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
- Если дефектный диск еще не имеет статуса (состояние прошивки) ‘offline’, MegaCli установит его в ‘offline’:
megacli pdoffline physdrv[252:0] a0
- Теперь SSD отмечен как отсутствующий…
megacli pdmarkmissing physdrv[252:0] a0
- …и подготовлен к обмену
megacli pdprprmv physdrv[252:0] a0
- Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
- После того, как наша команда заменила диск, проверьте статус нового диска:
megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
- Если восстановление не начнется само, запустите его вручную.
- Найдите MegaCli64. (Вы можете конвертировать пакет RPM в пакет deb с использованием
Контроллер Adaptec
Пример конфигурации: установка Debian на массив RAID 1 с двумя дисками.
- Вам понадобится инструмент командной строки
arcconf
. - Дефектный диск подключен к слоту 0.
- Вы можете узнать статус и серийные номера с помощью следующей команды, например:
arcconf getconfig 1 pd|egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
- Если у дефектного диска еще нет статуса ‘failed’, этот статус устанавливается.
arcconf setstate 1 device 0 0 ddd
- Теперь напишите запрос на поддержку через Robot и запросите обмен диском.
- После того, как наша команда заменила диск, проверьте статус нового диска:
arcconf getconfig 1 pd | egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
- Если восстановление не начнется само, запустите его вручную.
Программный RAID
В принципе, горячая замена также возможна для дисков на контроллере SATA. Операционная система распознает изменение состояния подключения на соответствующем контроллере и распознает новый диск сразу после подключения. Шаги, которые вам нужно предпринять, различаются в зависимости от операционной системы и конфигурации.
Ниже приведены некоторые примеры:
Важно: Это всего лишь примеры. Вам нужно настроить шаги, особенно параметры команд, под вашу конкретную систему!
Windows
Важно: С Windows нельзя горячо заменить загрузочный плекс. Поэтому вам нужно загрузить систему с целым плексом перед началом процесса горячей замены. (Microsoft также называет зеркалирование плексированием, поэтому “плекс” – это часть зеркалированного объема).
В следующем примере предположим, что сервер имеет стандартную установку Windows Server в режиме UEFI с двумя дисками и зеркалированием. Дефектный диск – это диск 1 (вторичный плекс). Система была запущена с первичного плекса.
- Удалите HDD/SSD из RAID.
В Диспетчере дисков (diskmgmt.msc) откройте контекстное меню тома C: и выберите “Удалить зеркалирование”.
- Прочтите серийный номер дефектного или целого HDD/SSD с помощью diskid32.exe.
- Сделайте запрос на поддержку и попросите нашу команду заменить диск (горячая замена).
- После того, как наша команда заменила диск, запустите diskpart.
- Подготовьте диск / создайте разделы на основе целого 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
- Раздел 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.
- Удалите дефектный 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
- Найдите серийный номер дефектного HDD/SSD:
- Например, с использованием
smartctl
из пакета smartmontools:smartctl -a /dev/ada1 |grep -i serial
- Или с использованием
camcontrol
:camcontrol identify /dev/ada1 |grep -i serial
- Теперь напишите запрос на поддержку через Robot и попросите о замене диска.
- После завершения замены скопируйте таблицу разделов с ada0 на ada1:
gpart backup ada0 | gpart restore ada1
ПРИМЕЧАНИЕ: На данный момент, кажется, есть ошибка в FreeBSD 11, которая мешает FreeBSD восстанавливать таблицу разделов, что может помешать загрузке с замененного диска. Если у вас возникла эта проблема, пожалуйста, обратитесь к посту на форуме FreeBSD.
- Добавьте разделы заменяемого HDD/SSD в gmirror:
gmirror insert boot ada1p1 gmirror insert swap ada1p2 gmirror insert root ada1p3
- Установите загрузочный код на заменяемом 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 обрабатываются согласно вышеуказанной процедуре).- Если вы хотите использовать 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
- Если вы используете метки 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
- Найдите серийный номер дефектного HDD/SSD:
- Если вы хотите использовать ZFS для зеркалирования, вам также нужно проверить состояние зеркала перед его заменой и, при необходимости, установить соответствующий раздел (в следующем примере gpt/root0) в автономный режим:
- Например, с использованием
smartctl
из пакета smartmontools:smartctl -a /dev/ada0 |grep -i serial
- Или с помощью
camcontrol
:camcontrol identify /dev/ada0 |grep -i serial
- Напишите запрос на поддержку через 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
- Затем отредактируйте метку GPT раздела ZFS (в данном случае третий, т.е. ada0p3) замененного диска (gpt/root0):
gpart modify -i 3 -l root0 ada0
- Новое устройство теперь может заменить отказавшую часть зеркала:
zpool replace zroot gpt/root0 zpool status -x all pools are healthy
Для подробной информации по настройке и управлению файловой системой ZFS см. документацию Oracle: Oracle ZFS Documentation (английский)