Корректная замена SATA дисков на горячую в linux

// Июль 31st, 2013 // harware, linux, RAID, recovery

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

Как извлечь диск из рейда md можно узнать здесь.

После этого сбросить весь кэш контроллера, т.е. провести синхронизацию данных на диске до актуальной:

sync

Извлечь устройство командой:

echo 1 >/sys/block/sdX/device/delete

где sdX — имя диска, например sda, sdb, sdc…
или по номеру контроллера:

echo 1 > /sys/bus/scsi/devices/targetX:0:0/X:0:0:0/delete

Теперь можно физически извлечь диск и заменить на новый.
Новый диск автоматически не появится, для этого нужно сделать сброс контроллера, после переинициализации найдется новый диск:

echo "- - -" >/sys/class/scsi_host/hostX/scan

где Х номер шины, можно узнать из dmesg место где стоял старый диск (host’ы нумеруются с 0, а не с 1, а в dmesg ata устройства нумеруются с 1). Если расположение диска неизвестно — можно сделать для всех хост-контроллеров, ничего страшного не произойдет, данные не потеряются, файловая система не поломается, возможен только небольшой лаг в доступе к активным дискам.

2 комментария to “Корректная замена SATA дисков на горячую в linux”

  1. dehnli:

    Какой при этом должен стоять в БИОСе режим работы SATA-контроллеров, IDE или AHCI?

    • Без разницы, IDE или AHCI представление на низком уровне, но в обоих случая они будут принимать родные SATA команды.

Leave a Reply