The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Горячая замена IDE дисков в Linux (hot swap) (hotswap linux slackware ide disk)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: hotswap, linux, slackware, ide, disk,  (найти похожие документы)
From: Anton Borisov <[email protected]> Newsgroups: email Date: Mon, 9 Jan 2004 14:31:37 +0000 (UTC) Subject: Горячая замена IDE дисков в Linux (hot swap) К вопросу о горячей замены 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: [email protected]

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Spider (?), 15:04, 09/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Давно об отом мечтал, бум тестить.
    А на Фре такое возможно?
     
  • 1.2, Andrew (?), 16:34, 09/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно.
    man atacontrol
     
  • 1.3, Konstantin (?), 18:57, 09/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А на Винде?
     
  • 1.4, leroy (?), 19:42, 09/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно, только она зависнет :)
     
  • 1.5, Лысый Пень (?), 21:15, 09/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не зависает - опробовано на разных винтах и на 2000 и на ХР
     
     
  • 2.9, Ламер......судя по твоему изрению (?), 14:34, 10/01/2004 [^] [^^] [^^^] [ответить]  
  • +/
    мдя, брат, фантастику тебе писать, не иначе......
     
     
  • 3.10, iSom (?), 15:11, 10/01/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Последовательность действий в WinXP (x2k):

    подключение
    - воткнуть сигнальный кабель
    - воткнуть питание
    - запустить поиск оборудования

    отключение
    - в менеджере устройств удалить HDD
    - отключить питание
    - отключить сигнальный кабель

    все просто ... как грабли, проверено в течении двух лет

     

  • 1.6, devnull (?), 02:03, 10/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >не зависает - опробовано на разных винтах и на 2000 и на ХР

    пожалуста поподробнее, у меня зависала :-(

    где-то читал что советуют деинсталлировать ide драйвер перед кажд снятием

     
  • 1.7, Moralez (?), 08:29, 10/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну блин... я вот сколько ни спрашивал в конфах (фидошных в основном), ни разу мне не сказали: "да, нормально, так можно делать"... Хотелось бы поинтересоваться, какая у автора статистика? 20 успешных попыток? :-( без выгрузки модуля контроллера, подозреваю, до 50 можно и не дожить :-)
     
  • 1.8, adminchik (?), 12:07, 10/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм.... помнится, в стародавние времена, у меня на 2к такое прокатывало нормально, но это было на матери с чипом i440вх.... када поменял на i815 машинка замерзала намертво (висла). более я так не экспериментировал....  хотелось бы статистики побольше, желательно с описанием железа которое в этом принимало участие :)

    P.S. а никто не читал про подключение IDE к SATA!?!?!? тама енто уже намана прокатывает :) :) :)

     
  • 1.11, Vlad (?), 18:10, 10/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Постоянно так меняю винты под 2000/XP
    проверено на разных матерях/винтах,
    еще ниразу ничего не спалил :)
     
  • 1.12, Vlad (?), 18:14, 10/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    P.S. Один минус: под виндой при таком подключении
    не поднимается UDMA :(
     
  • 1.13, artem (?), 00:37, 11/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я пробовал такие чудеса на FreeBSD и матери с 430TX.
    Работает на ура и в принципе нет тут никакой мистики. Одна беда - выключать нужно весь канал, т.е. и master и slave... :(

    У меня только одно замечание на счет последовательности подключения кабелей.
    Я сначала подключаю питание а потом подключаю интерфейсный шлейф. Выключаю наоборот. И делаю это вот из каких соображений: 1) при подаче питания происходят т.н. "переходные процессы" и лучьше, когда они не передаются на шину; 2) все hotswap диски имеют в разьеме контакты питания длиннее интерфейсных по причине пункта 1. :)

    Про винды не знаю, думаю что зависание - следствие ошибок в конфигурации. Хотя мир виндовс туманен...

     
     
  • 2.15, urfin (?), 10:25, 12/01/2004 [^] [^^] [^^^] [ответить]  
  • +/
    дядя, а когда у тябя масдай "засыпает", он у тя питаловом не щелкает на винтах с подключеной шиной?!
     
     
  • 3.22, Сергей (??), 22:48, 13/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    При подключении питалова с уже подключенным IDE, первым может законтачить +5/+12В и до касания массы, ток будет йти по массе IDE шлейфа.
    С этих же соображений я подключаю первым питание и выдергиваю последним.
     

  • 1.14, Insane (?), 11:38, 11/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Под фрей работает железно!
    1. подключаем питание
    2. прдключаем шлейф
    3. детачим второй канал $atacontrol detach 1 если винт цепляли к нему..
    4. аттачим его заново $atacontrol attach 1 и видми что отдетектилось..
    Master:  ad2 <FUJITSU MPF3204AT/0028> ATA/ATAPI rev 5
    Slave:       no device present
    dmesg:
    stray irq 15
    ata1: [MPSAFE]
    ad2: DMA limited to UDMA33, non-ATA66 cable or device
    GEOM: create disk ad2 dp=0xc42dd270
    ad2: 19546MB <FUJITSU MPF3204AT> [39714/16/63] at ata1-master UDMA33
    удма как видно всеже включается...
    5. монтируем/заливаем/сливаем/размонтируем
    6. детачим канал снова $atacontrol detach 1
    dmesg:
    GEOM: destroy disk ad2 dp=0xc42dd270
    ad2: WARNING - removed from configuration
    7. отрываем от винта шлейф
    8. отрываем питание
    канал аттачим заново ежели на нем что-либо еще висит,
    если нет, то можно оставить его отключенным...
    Еще, как заметил мой тезка Артем переходные процессы
    имеют место быть... так что ИМХО порядок подключения/отключения
    шлейфов лучше не менять...
    Моя система FreeBSD 5.1-CURRENT CVS от 8 oct 03
     
  • 1.16, Norguhtar (?), 14:30, 14/01/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да конечно все замечательно. НО работает только для linux без devfsd если он есть то фиг. Почему ? Элементарно Ватсон! Поскольку нет там устройств надо ручками его создать :)
     
     
  • 2.17, Boris this is Doris (?), 21:36, 18/01/2004 [^] [^^] [^^^] [ответить]  
  • +/
    killall -1 devfsd пробывал?
    из man
    SIGHUP The  configuration  file  is re-read and any shared objects are reloaded.
    Then the mounted device tree is scanned and synthetic REGISTER events are
    generated for each leaf node.
     

  • 1.18, f0x (??), 14:54, 29/06/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не подскажет ли кто в OpenBSD можно такое сделать
     
  • 1.19, Михаил (??), 03:16, 27/06/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А для SATA как это сделать?
     
     
  • 2.20, bk (?), 18:31, 27/06/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >А для SATA как это сделать?
    а просто вставить и подмонтировать разве не работает?

     

  • 1.21, Михаил (??), 21:25, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    увы - работает но только если диск такой же конфигурации (размер и геометрия) а так подбирает данные от старого диска ну отсюда и глюки
    http://www.linuxquestions.org/questions/showthread.php?s=&postid=1718161#post
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру