Короткий ответ
Rebuild не стартует, пока контроллер не считает новый диск членом того же DG, что vd0. Три проверки: (1) нет ли Foreign на вставленном диске, (2) State = пригоден к rebuild (не UBad, не меньший размер, не WD/4Kn конфликт), (3) политика auto-rebuild / hot spare включена. Не лечите это create vd и не import foreign, пока не поняли, чей это metadata.
Сначала состав degraded и слот. Потом эта статья.
Симптомы и как отличить
Типичная картина:
- старый Failed извлечён, новый в том же
252:3; vd0остаётся Dgrd часами;- новый PD:
UGood,UBad,ForeignилиJBOD; - HPE: диск
Unassigned, LD не вRecovering.
| Видно | Не «забыли нажать rebuild» |
|---|---|
| Rbld 1–99% | идёт, просто медленно |
| Copyback после spare | это не rebuild на новый слот, spare ещё в DG |
| Диск не в инвентаре | контроллер не видит |
| ZFS resilver 0 | другой стек: zpool status tank |
Возможные причины
- Foreign metadata на б/у диске.
- Auto-rebuild выключен, hot spare нет — диск так и останется UGood.
- Ёмкость меньше оригинального member.
- UBad: новый диск сразу с media error или не прошёл prepare.
- Несовместимый сектор (512n vs 4Kn) / SAS vs SATA в этом VD.
- Rebuildrate = 0 или контроллер в CC/patrol, очередь отложила rebuild (реже).
- HPE: диск не в той array (A/B), add drives ушёл бы в другой LD.
Диагностика
1. Состояние PD и VD
storcli /c0/vall show
storcli /c0/eall/sall show
storcli /c0 show all | grep -iE 'rebuild|foreign|auto'Ищите Auto Rebuild, Foreign Config, State нового слота. storcli /c0/v0 show rebuild — если «No rebuild» / пусто, процесса нет.
2. Foreign
storcli /c0/fall showPreview (если поддерживает ваша версия):
storcli /c0/fall import previewСмотрите, какой DG/VD предлагает foreign. Если это конфиг другого сервера — вам не import, а очистка foreign на этом диске.
3. Размер и интерфейс
Сравните Size нового и соседей Onln. Модель: SAS 12G vs SATA в одном DG — зависит от контроллера; многие MegaRAID это запрещают.
4. HPE
ssacli ctrl slot=0 show config
ssacli ctrl slot=0 ld all show detail
ssacli ctrl slot=0 pd all show detailСтатус LD должен стать Recovering после появления диска в том же bay. Если диск Unassigned и LD Interim Recovery — контроллер не подхватил member.
Политика:
ssacli ctrl slot=0 show | grep -i rebuild5. Ubuntu видит два диска вместо одного VD
Значит вы смотрите не hardware rebuild, а mdadm/ZFS. cat /proc/mdstat и zpool status tank — не смешивайте инструкции.
Решение
Сценарий A. Foreign на новом диске, vd0 живой
Нужно убрать чужие метаданные с вставленного диска, не трогая Onln члены.
Типичный путь MegaRAID: storcli /c0/fall delete очищает foreign таблицу. После диск должен стать UGood. Затем auto-rebuild либо явное включение в missing row DG.
Не делайте create vd r5 ... на оставшихся дисках плюс новый.
Сценарий B. UGood, foreign нет, auto-rebuild off
Включите политику (синтаксис storcli: set autorebuild=on на контроллере) либо назначьте диск spare / replace missing согласно man вашей версии. GUI контроллера: «Mark as global hot spare» на время, либо Replace.
Проверьте rebuild rate не нулевой:
storcli /c0 show rebuildrate0 означает «не тратить I/O на rebuild» — процесс не двинется под нагрузкой и иногда не стартует.
Сценарий C. UBad сразу после вставки
Другой слот / другой диск. Если в другом bay диск Onln, а в этом любой диск UBad — backplane. Если диск UBad в любом слоте — брак, RMA.
Сценарий D. HPE не Recovering
Reseat в том же 1I:1:3. Подтвердите, что это не expand (add drives как увеличение n дисков). Для missing member замена в тот же bay. Firmware Smart Array и диск — из матрицы HPE.
Сценарий E. ZFS resilver не стартует
Это не storcli. После zpool replace tank OLD NEW должен появиться resilver. Если устройство NEW уже в пуле или OPEN — ошибка CLI. Force import здесь ни при чём.
Как проверить, что проблема устранена
storcli /c0/v0 show rebuild
storcli /c0/eall/sall showПоявился Rbld и процент растёт между двумя снятиями с интервалом 5–10 минут. VD ещё Dgrd — это нормально до конца. HPE: Rebuilding с процентом.
Нет новых Foreign после delete.
Если не помогло
- Процент есть, но 0.01%/час — переходите к статье про долгий rebuild (нагрузка, URE, huge HDD).
- Контроллер требует reboot для принятия PD — спланируйте, vd0 на одном диске риска (RAID 1/5).
- JBOD mode на контроллере: диск отдан ОС, RAID его не возьмёт, пока не снять JBOD.
- Несовместимый 4Kn: только диск того же logical sector, что DG.
Профилактика
- Новые диски — wipe только если точно б/у с чужим RAID; на новых enterprise foreign редкость.
- Держать autorebuild on + хотя бы один GHS.
- Не таскать диски между серверами «как запас» без очистки foreign на стенде.
- Документировать, что
vd0= какие слоты.
FAQ
Можно ли import foreign «на всякий случай»?
Нет, если vd0 уже на этом контроллере. Import нужен, когда переставили все диски массива на новый контроллер и VD пропал.
Delete foreign сотрёт vd0?
Команда целится в foreign table. Опасность — ошибиться контроллером /c1 vs /c0 или импортировать вместо delete. Смотрите fall show до любой destructive.
Почему HPE пишет «waiting for rebuild» без процента?
Часто CC/expand в очереди или rebuildpriority=low при 100% VM. Проверьте, что диск уже member, не Unassigned.
Нужен ли тот же firmware диска?
Желательно из списка совместимости. Смешение «какой купили в магазине» на SAS RAID — частый UBad.
storcli start rebuild — безопасно?
start rebuild на конкретном PD, который уже в DG и Offln, — штатный пинок. start rebuild не заменяет create array. Не запускайте на единственном живом диске RAID 0.