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

1
задан 16 January 2019 в 06:36
1 ответ

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

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
0
ответ дан 4 December 2019 в 03:20

Теги

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