Назад | Перейти на главную страницу

какова наилучшая практика при надежном повторном сканировании дисков scsi в Linux?

Мне постоянно приходится вносить изменения в SAN, а это означает, что мне также постоянно приходится повторно сканировать шину scsi, чтобы мои различные изменения отражались на машинах, на которые я экспортировал диски.

В течение некоторого времени меня мучили различные аспекты повторного сканирования дисков в Linux.

Не в пользу Microsoft, но они действительно упростили процесс до единой команды, которая делает все и намного быстрее, чем их аналоги в Linux.

Я уже довольно давно использую команду rescan-scsi-bus.sh. Однако команду rescan-scsi-bus.sh обычно необходимо запускать несколько раз в зависимости от того, какие изменения были внесены. IE. Если путь был удален, мне нужно запустить rescan-scsi-bus.sh -f -a -r -m. Однако эта команда не будет сканировать диски на предмет переназначенных дисков и не будет сканировать диски с измененным размером. Чтобы получить ту же функциональность из rescan-scsi-bus.sh, мне приходится запускать команду несколько раз подряд, что может занять много времени (с большим количеством дисков 5 минут или около того, что составляет годы дольше, чем занимает окна.) Пример:

# If the disk was removed.. Even though we aren't syncing, rescan can still hang
# unless we remove the disks first.
rescan-scsi-bus.sh --nosync -f -a -r -m 
# Next, We scan for new disks.. Don't know why the last command can't do it at the same time..
rescan-scsi-bus.sh -a
# Look for remapped disks.
rescan-scsi-bus.sh --nosync -a -u
# Look for resized disks.. Once again.. We have to go through the entire list which can take a good O'l 1 minute.
rescan-scsi-bus.sh --nosync -a -s

Вопрос в том, есть ли лучшая политика для повторного сканирования дисков, чем запуск гамбита команд rescan-scsi-bus.sh?

Здесь требуется одна команда, которая удаляет диски и пути к дискам, которые были удалены, добавляет диски и пути, которые являются новыми, обновляет диски, которые были переназначены где-то в другом месте, собирает изменения в дисках, которые имеют новые размеры, и запускается в разумном количестве. времени (0-30 секунд) в ЛЮБОМ дистрибутиве Linux независимо от количества дисков или уровня нагрузки ввода-вывода, под которой находится система.

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

Вы можете использовать любой из следующих методов

iscsiadm -m session --rescan
iscsiadm -m session -r SID --rescan

При добавлении диска

echo "- - -" > /sys/class/scsi_host/hostX/scan

При расширении существующего диска

echo 1 > /sys/class/scsi_device/device/rescan