К вопросу о горячей замене IDE HDD в Linux 2.4
В последнее время приходится часто работать с аппаратурой, поддерживающей аппаратную замену (это на серверах), а вот с горячей заменой на персональных компьютерах плотно сталкиваться не приходилось. Тем не менее, опишу сам процесс. В наличии имеется linux-box с установленным slackware 9.1; ядро, используемое по умолчанию — bare.z, версия — Linux version 2.4.22 (root@midas) (gcc version 3.2.3) #6 Tue Sep 2 17:43:01 PDT 2003; Информация об оборудовании :
bash-2.05b$ /sbin/lspci 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02) 00:0c.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08) 00:0e.0 Ethernet controller: Standard Microsystems Corp [SMC] 83C170QF (rev 06) 01:01.0 VGA compatible controller: S3 Inc. Savage 4 (rev 04)
bash-2.05b$ cat /proc/ide/drivers ide-scsi version 0.93 ide-floppy version 0.99.newide ide-cdrom version 4.59-ac1 ide-disk version 1.17 ide-default version 0.9.newide bash-2.05b$
- hda: QUANTUM FIREBALLlct15 20, ATA DISK drive — это системный диск
- hdb: FX4824T, ATAPI CD/DVD-ROM drive — это понятно, кто такой (подключен к тому же каналу, что и системный диск)
- hdd: QUANTUM FIREBALL_TM3200A, ATA DISK drive — а это уже переносной диск, который непосредственно и участвовал в эксперименте.
- подключается шлейф свободного канала
- подключается питание к диску горячей замены
- производится сканирование шины
- монтируется нужный раздел
- производим запись с/на нужный раздел/накопитель
- размонтируется раздел
- отключается шина/дерегистрация канала
- отключается питание от диска горячей замены
- отключается шлейф
Первые 2 пункта освещать подробно не имеет смысла, остановимся на следующем, третьем пункте.
Что же означает понятие «сканирование шины»? При старте системы, ядро производит опрос устройств, сидящих на IDE-каналах (это порты 0x1f0, 0x170).
При исправных устройствах система получает от них паспорта, на основе которых и делается вывод об их геометрии, названии, UDMA-свойствах и т.д.
Если бы мы при старте задали параметры «ide0=noprobe», то сканирование первого IDE-канала не было произведено. Зачем это нужно? Во-первых, при наличии неисправного IDE-диска, который подключен к боксу, загрузиться проблематично, а именно нельзя. Во-вторых, как в нашем случае, есть возможность подключить дополнительный диск на ходу. Поэтому не будем привязывать систему к конкретному HDD, а потребуем пропускать сканирование.
Можно этого и не делать, а приступить сразу к сканированию.
Для этого нам потребуется пакет hdparm. Поехали!
/usr/sbin/hdparm -R 0x170 0 0 /dev/hda
Означает зарегистрировать IDE-интерфейс по порту 0x170 для устройства /dev/hda. Обращаю ваше внимание, что для меня самого любопытно будет узнать, почему именно таким образом происходит инициализация второго канала. В итоге в /var/log/syslog появляются строчки:
Jan 6 19:16:49 ab kernel: hdd: QUANTUM FIREBALL_TM3200A, ATA DISK drive Jan 6 19:16:49 ab kernel: ide1 at 0x170-0x177,0x376 on irq 15 Jan 6 19:16:49 ab kernel: hdd: attached ide-disk driver.
Обновили содержание разделов. Дальше дело техники — монтируется необходимое устройство, производится запись и т.д.
Что же касается пункта #7, то, по желанию, можно производить дерегистрацию канала, а можно и не производить. Не забывайте при этом последовательность действий.
P.S. Стоит отметить следующее — использовалось стандартное ядро, манипуляции с модулями ide-disk производить не обязательно.
Горячая замена Sata3 в Linux
Ктонибудь этим занимался ? Вопрос возник по ходу работы с софт raid .
>Стандарт SATA не предусматривает горячую замену активного устройства
Внимание на слово «АКТИВНОГО». То есть сначала надо устройство отмонтировать командой umount, а потом отключать. Всего лишь
По поводу порядка отключения кабелей — скорее перестраховка для облегчения запуска контроллера.
Горячая замена работает, начиная с самого первого SATA
Нормально всё, только устройство освободи чтоб его система не юзала и можешь делать что в голову взбредет.
Получается, что мы отмонтируем устройство и вперед ?
Ход мысли - Софт Raid 10 , винт вызывает подозрения 1) Выводим его из массива 2) Отмонтируем его (если нужно) 3) Извлекаем 4) Вставляем новый винт , готовим его и вводим в массив Итог заменв диска без остановки работы
На первый взляд всё ок , есть ли какие подводные камни?
Делал по этому мануалу на работающем сервере 3 раза: http://habrahabr.ru/blogs/linux/102387/
Проблем не было
Главное не забыть диск из рейда вытащить!
У меня контроллер IDE шный рак подхватывал без перезагрузки. Правда с горячим отключением были проблемы.
Ход мысли - Софт Raid 10 , винт вызывает подозрения 1) Выводим его из массива 2) Отмонтируем его - umount & sync /dev/sd(имя раздела ) 3) Удаляем ус-во echo 1 >/sys/block/sd(имя раздела )/device/delete 4)Физически удаляем диск 5) Вставляем новый винт echo "- - -" >/sys/class/scsi_host/hostX/scan Мы не можем «добавить» устройство, мы можем отдать контроллеру команду «перечитать» список устройств, подключенных к тому или иному порту. Если там найдётся что-то интересное, ядру дадут знать. X — номер шины, совпадает с номером SATA порта на материнской плате. Если не знаете, можете смело делать для всех хостов по очереди, ничего, кроме небольшого лага в дисковых операциях, незаметного для софта и файловой системы, это не даст. echo "- - -" >/sys/class/scsi_host/hostX/scan 6) готовим его и вводим в массив Итог замена диска без остановки работы
зачем отмонтировать? если он не в массиве, значит он не исползуется
Добавление нового диска в Linux систему на горячую.
Добавление жесткого диска
При необходимости добавить жесткий диск в Linux систему, например в Centos «на горячую», т.е. без выключения и перезагрузки сервера, необходимо сделать следующее:
Нужно послать команду ядру системы перечитать устройства:
Где «Х» — номер шины, совпадает с номером SATA порта на материнской плате. Если не известен номер порта, то можно указывать по очереди от 0 до, как правило 4. Ничего страшного не произойдет.
Количество хостов (шин), можно посмотреть командой:
Находим нужный нам раздел и запоминаем его UUID. Затем открываем файл /etc/fstab, и добавляем в конец следующую строчку (не забываем, что последняя строка в файле должна быть всегда пустой!):
Где «/backup» — место, куда монтируем, «ext4 » — тип файловой систему монтируемого диска.
Примонтировать диск можно еще и так командой mount (но не рекомендуется так делать!):
где «ntfs » — тип файловой систему монтируемого диска
Если у Вас Centos 7, то для монтирования NTFS системы предварительно необходимо выполнить команды:
Удаление жесткого диска
Если возникает необходимость удалить жесткий диск из системы «на горячую», не выключая сервер,, то достаточно послать команду:
Где «Х» — это буква устройства, sda, sdb, etc).
Данная команда является низкоуровневой и она не проверяет кеш и статус примонтированности. Более правильно будет предварительно отмонтировать устройство командой
Горячая замена HDD при программном RAID
Добрый день. Использую Raspberry Pi 4 в качестве NAS устройства. Год опыта использования показывают хорошие результаты, более чем доволен. Но вот задался вопросом. В случае какого-то сбоя, проблемы с одним из жестких дисков или его замены, как правильно его будет отключить и подключить новый? Не просто же вытягивать?
Современные контроллеры умеют в горячую замену. Главное питание подключай последним и отключай первым.
Современные контроллеры умеют в горячую замену.
Имеется ввиду контроллеры на HDD? У меня Western Digital Red Plus.
Главное питание подключай последним и отключай первым.
Понял. А программно никакого сбоя не будет ?
лучше не надо у меня так пару штук на полочке лежат , контроллер навернулся в дисках .
На FreeBSD через camcontrol можно отключить питание.
для SATA/SCSI устройств подключенных через CAM — аналогично, используется другая утилита # ищем наше устройство camcontrol devlist # для добавления нового (соответственно удаления старого) усройства camcontrol stop daN camcontrol eject daN camcontrol rescan all (или нужную шину увиденную в camcontrol devlist) camcontrol inquiry daN camcontrol start daN # с «плохим» устройством делаем ужасные вещи, сбрасываем шину camcontrol reset daN
SATA рассчитан на горячую замену. RAID, в нормальных условиях, от отказа HDD не умирает. Ну а дальше как пойдёт, лучший вариант конечно — это когда HDD не на шлейфах, а в жёсткой корзинке, тогда и за очерёдностью отсоединения контактов следить не надо. Ну и у mdadm есть команды вывода устройства из массива, можно заранее сделать.
В режиме AHCI(а режим IDE compatibility сейчас используют только в очень специфических случаях) горячая замена на SATA предусмотрена. Порядок отключения тут уже упомянули. Диск автоматически добавляется в массив при наличии метаданных, которых на новом чистом диске естественно не будет. В mdadm есть ключ для замены сбойного диска на новый(—re-add)