Linux горячая замена дисков

К вопросу о горячей замене 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 — а это уже переносной диск, который непосредственно и участвовал в эксперименте.

  1. подключается шлейф свободного канала
  2. подключается питание к диску горячей замены
  3. производится сканирование шины
  4. монтируется нужный раздел
  5. производим запись с/на нужный раздел/накопитель
  6. размонтируется раздел
  7. отключается шина/дерегистрация канала
  8. отключается питание от диска горячей замены
  9. отключается шлейф

Первые 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)

Источник

Читайте также:  Discord for linux fedora
Оцените статью
Adblock
detector