LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

Горячая замена IDE дисков в Linux (hot swap)
(Аппаратное обеспечение / Драйвера)


- Anton Borisov, 9.01.2004, Opennet.ru, оригинал -

К вопросу о горячей замены 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$ 

Теперь непосредственно об IDE-дисках, которые использовались.

hda: QUANTUM FIREBALLlct15 20, ATA DISK drive - это системный диск

hdb: FX4824T, ATAPI CD/DVD-ROM drive - это понятно, кто такой (сидит на
     том же канале, что и системный)

hdd: QUANTUM FIREBALL_TM3200A, ATA DISK drive - а это уже переносной
     диск, который непосредственно и участвовал в эксперименте.



Итак, делаем паузу для заявления.
--------------------------------------------------------------------
В IDE-дисках ATA-стандарта НЕ ПРЕДУСМОТРЕНО горячее подключение, 
поэтому вся отвественность за порчу оборудования лежит на вас.
--------------------------------------------------------------------

Однако, при грамотном подходе, можно и (иногда) нужно использовать
горячее подключение. Необходимо помнить последовательность операций:

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

Рассмотрим данный процесс более подробно.

Первые 2 пункта освещать подробно не имеет смысла, остановимся на
следующем, третьем пункте. 

Что же означает понятие сканирование шины? При старте системы, ядро
производит опрос устройств, сидящих на IDE-каналах (это порты 0x1f0,
0x170).

При исправных устройствах система получает от них паспорта, на основе
которых и делается вывод об их геометрии, названии, UDMA-свойствах и
т.д.

Если бы мы при старте задали параметры "ide0=noprobe", то сканирование
первого IDE-канала не было произведено. Зачем это нужно? Во-первых, при
наличии неисправного IDE-диска, который подключен к боксу, загрузиться
проблематично, а именно нельзя. Во-вторых, как в нашем случае, есть
возможность подключить дополнительный винт на ходу. Поэтому не будем
привязывать систему к конкретному винту, а скажем пропускать
сканирование.

Можно этого и не делать, а приступить сразу к сканированию.

Для этого нам потребуется пакет 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.

Т.е. определился подключенный диск. Отлично. Едем дальше.

/usr/sbin/hdparm -z /dev/hdd

Обновили (;) содержание разделов. Дальше дело техники - монтируется
необходимое устройство, производится запись и т.д.

Что же касается пункта #7, то, по желанию, можно производить
дерегистрацию канала, а можно не производить. Не забывая при этом
последовательность действий.

P.S. Стоит отметить следующее - использовалось стандартное ядро,
манипуляций с модулями ide-disk производить не обязательно.

Удачи!

Anton Borisov: a.borisov@tesv.tmb.ru

Просмотров: 1079  |  Рейтинг статьи: 5 (Голосов: 2).
5
Дата размещения статьи: 2004-01-22 16:48:31



5 последних поступлений в раздел Аппаратное обеспечение / Драйвера:

26.02.04: Настройка модема ZyXEL Omni 56K Plus в Linux через USB (В ядре Linux нет драйвера для модема ZyXEL Omni 56K Plus, но зато есть драйвер для ZyXEL Omninet, кот...)
20.02.04: Настройка мультимедийной клавиатуры (Необходимо ассоциировать имена с кодами клавиш. Преимущество данного метода заключается в том, что ва...)
07.02.04: USB ADSL модем. Часть 2 - Руководство по установке EciAdsl драйвера (EciAdsl - это свободно распространяемый Linux драйвер для подключения вашего компьютера к сети интерн...)
22.01.04: Переход на Linux 2.6 (Я потратил целый день, переводя свой Red Hat 9 на ядро 2.6. Этот документ не претендует на полноценно...)
22.01.04: Горячая замена IDE дисков в Linux (hot swap) (В IDE-дисках ATA-стандарта не предусмотрено горячее подключение, поэтому вся отвественность за порчу ...)

Комментарии:

Re: Горячая замена IDE дисков в Linux (hot swap) (Оценка: 0)
от Anonymous на 29.01.04
ну не знаю...попробовал...стоило все подключить и обратиться к тому винту, который стоял изначально, как тачка зависла :(

-- Anonymous


LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте