Как я заставляю Linux распознать новый SATA/dev/sda диск, в котором я заменил в горячем режиме без перезагрузки?

Один путь состоял бы в том, чтобы иметь Ваш сайт на двух различных серверах, затем иметь монитор сайта в третьем местоположении, которое контролирует соединение с основным сервером (где Ваш DNS обычно указывает). Если это обнаруживает, что сайт снижается, имейте монитор, выполняют сценарий или поражают URL обновления динамического поставщика DNS (такого как DtDNS [которым я управляю], или DynDNS.com) с IP-адресом Вашего сервера резервного копирования, указанного для Вашего домена/имени хоста. Это обновит DNS рекордный и прямой трафик к Вашему резервному веб-серверу. Когда основной сайт назад онлайн, контроль может запустить другой скрипт или URL, который отложит "реальный" IP.

Одному ключу здесь нужно было разместить DNS в поставщике, который имеет API в их систему так, чтобы Ваш домен мог быть обновлен быстро, и это сохраняет TTL достаточно низко так, чтобы посетители были перенаправлены относительно быстро.

Другой - это, сайт должен контролироваться с внешней стороны, объективного местоположения. Вы не можете выполнить контроль на том же веб-сервере, как сайт идет. Если целый сервер понизится, то метод контроля/обновления пойдет право вниз с ним.

41
задан 10 August 2015 в 09:58
12 ответов

Если Ваш контроллер SATA поддерживает замену в горячем режиме, он должен "просто работать (TM)".

Для принуждения пересканирования на ШИНЕ SCSI (каждый порт SATA показывает ШИНОЙ SCSI) и находят новые диски, Вы будете использовать:

echo "0 0 0" >/sys/class/scsi_host/host<n>/scan

На вышеупомянутом <n> является Номер шины.

43
ответ дан 28 November 2019 в 19:43
  • 1
    Извините, никакая радость; выполнение той команды только инициировало то же автоматическое пересканирование, которое инициировано, когда я первоначально включаю диск. Спасибо, хотя! –  hakamadare 15 July 2009 в 23:04
echo "- - -" >/sys/class/scsi_host/host<n>/scan
       ^ ^
        \_\_______ note spaces between the dashes.
18
ответ дан 28 November 2019 в 19:43

Как насчет этого (кажется, работает в Ubuntu):

sudo partprobe

7
ответ дан 28 November 2019 в 19:43

Вот то, почему я должен был перезагрузить компьютер...

Я просто заменил свой/dev/sdc в горячем режиме. Я использовал scsiadd-r 3 0 0 для выключения старого диска перед вытаскиванием его. Затем после установки нового диска новый диск не появился как/dev/sdc, а скорее как/dev/sdd. После перезагрузки диск вновь появился бы как/dev/sdc снова.

Таким образом, это кажется работами замены в горячем режиме хорошо, это может быть просто, что/dev/sd* больше не является тем же.

Это могло быть решением Вашей проблемы?

2
ответ дан 28 November 2019 в 19:43

Для работы горячего подключения у вас должен быть загружен модуль acpiphp.

[root@example ~]# modprobe acpiphp

очевидно, если вы хотите, чтобы это работало при загрузке, вам нужно будет настроить его для загрузки во время загрузки - один из способов - создать / отредактировать /etc/rc.modules (который вызывается rc.sysinit) и добавить строку:

modprobe acpiphp

помните, если вы создаете этот файл в chmod + x it, как это называется таким образом.

0
ответ дан 28 November 2019 в 19:43

Мой DVD на моем компьютере с Fedora 16 подключен к интерфейсу SATA. Она была заперта и не открывалась и не закрывалась. Запустив partprobe от имени root, мой cdrom / DVD снова заработал. Я считаю, что это поможет на другой машине, где у меня периодически возникают проблемы с горячей заменой. Спасибо!

1
ответ дан 28 November 2019 в 19:43

Когда диск выходит из строя при некоторых обстоятельствах, Linux не поймет, что вы фактически вытащили его из массива. Если у вас возникла эта проблема (как у меня сегодня утром), вы можете сделать следующее:

echo 1 > /sys/block/<devnode>/device/delete

Например, в моем случае / dev / sda не удалось, и я не хотел перезагружать сервер, поэтому я сделал:

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

После Я сделал это, новый диск (который на самом деле уже был добавлен физически) был сразу виден.

Если он не виден в этот момент, вы также можете сделать это для принудительного повторного сканирования:

echo "- – -" > /sys/class/scsi_host/host<n>/scan

Это "- - - "- это символы подстановки для канала, идентификатора и LUN соответственно, поэтому вы можете ограничить сканирование некоторым подмножеством, если хотите, указав вместо этого числа.

Перед тем, как начать, вы также можете:

readlink /sys/block/<devnode>

Который покажет вам путь с правильным номером хоста, чтобы проверить / proc / scsi / scsi на исчезновение после удаления.

12
ответ дан 28 November 2019 в 19:43

У вас есть контроллер Fusion-MPT SAS - это RAID-контроллер начального уровня. Если вы не используете его для RAID, он все равно может обеспечивать бесполезный уровень препятствий / абстракции.

Возможно, вам придется ткнуть RAID-контроллер с помощью mpt-status или lsiutil, чтобы заставить его сканировать шину.

http://hwraid.le-vert.net/wiki/LSIFusionMPT содержит большое количество документации, но я не могу сказать, что проверил ее.

1
ответ дан 28 November 2019 в 19:43

В некоторых случаях может потребоваться включить горячую замену в BIOS материнской платы и / или контроллера SATA. Это полностью зависит от производителя и модели обоих, но если у вас есть встроенные контроллеры SATA, которые должны поддерживать горячую замену, то стоит прочесать BIOS материнской платы. Карты SATA могут иметь или не иметь свои собственные настройки BIOS, многие карты более низкого уровня не имеют, но карты серверного уровня обычно имеют.

Если я правильно помню, мне это нужно было с рядом материнских плат Gigabyte, и возможно некоторые другие марки. Он мне нужен для работы лотка SATA с возможностью горячей замены; с отключенной функцией удаление диска не вызывало проблем, но новый диск не регистрировался до перезагрузки. Включение этого параметра сработало должным образом, диски, которые были помещены в лоток, немедленно раскрутились и стали доступны для ОС.

1
ответ дан 28 November 2019 в 19:43

Не могу поверить, что никто еще не упомянул AHCI... Ваш SATA-контроллер должен быть в режиме AHCI, чтобы включить горячую замену. Проверьте это, посмотрев на драйвер, который вы используете:

root@peter:~ # find /sys -name sdk
/sys/devices/pci0000:00/0000:00:11.0/ata5/host4/target4:0:0/4:0:0:0/block    /sdk
/sys/block/sdk
/sys/class/block/sdk

root@peter:~ # readlink /sys/devices/pci0000:00/0000:00:11.0/driver
../../../bus/pci/drivers/ahci

root@peter:~ # lspci -k | less
[... big long output... search for ahci or your pci address, or use the awk below ...]

root@peter:~ # lspci -k | awk '$1 == "00:11.0" {x=1}; x && /in use/ {print $0; exit}'
    Kernel driver in use: ahci

Посмотрите, как там написано "ahci".

Если нет, просто включите его в вашем BIOS. Также, некоторые BIOSы, особенно на серверах или UEFI, имеют настройку "Hot Swap = enabled/disabled" на каждый диск, которую вы также должны включить, если она существует.

.
6
ответ дан 28 November 2019 в 19:43

Я знаю, что это старый вопрос, но я добился определенного успеха, о котором не сообщалось в других местах. Была похожая проблема с Dell Precision 380 сегодня.В конце концов он заработал, выполнив некоторые комбинации следующих действий:

echo "- - -" > /sys/class/scsi_host/host2/scan
echo 1 > /sys/class/scsi_device/2:0:0:0/device/reset
echo 1 > /sys/devices/pci0000:00/0000:00:1f.2/rescan
echo 1 > /sys/devices/pci0000:00/0000:00:1f.2/reset

ПРЕДУПРЕЖДЕНИЕ: Это может также нарушить работу других устройств ATA в системе. Если вы смонтировали файловые системы на этих устройствах, это, скорее всего, плохо кончится. Моя ситуация не волновала, но ваша могла.

В настоящее время мне неизвестно, какие из вышеперечисленных команд необходимы и в каком порядке. Некоторые команды, возможно, придется повторить. Если бы мне пришлось угадывать, я бы сказал делать в указанном выше порядке, а затем еще раз сканировать scsi_host в конце. В своих исследованиях я сделал еще немало.

Первая команда (scsi_host scan) сообщает промежуточному уровню SCSI сканировать все шины на предмет новых / измененных устройств. Вторая команда пытается сбросить целевой SCSI (дисковое устройство). Последние два работают с драйвером для самого контроллера AHCI.

Я нашел рассматриваемые элементы в основном путем подробного изучения и смелых экспериментов.

Вы можете сопоставить узлы scsi_device с маркой и моделью устройства с помощью (используя grep для печати имена файлов перед содержимым):

grep . /sys/class/scsi_device/*/device/model

Первой цифрой идентификатора устройства SCSI должен быть номер scsi_host. Затем вы можете сопоставить узлы scsi_host с узлами их устройств с помощью:

ls -l /sys/class/scsi_host

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

Надеюсь, это поможет.

1
ответ дан 28 November 2019 в 19:43

Только что получил новую систему с горячей заменой. У меня были диски в двух из трех слотов, но ни один из них не был найден с помощью какой-либо техники, которую я мог найти. Решение оказалось таким: введите настройки -> Дополнительно -> Конфигурация SATA -> Включить SATA = Включено. Ранее для этого было установлено значение «Авто».

0
ответ дан 6 May 2020 в 23:23

Теги

Похожие вопросы