Рейтинг:0

Я хочу сбросить FC_HOST до того, как multipath попытается смонтировать из него пути

флаг ht

У меня есть двухпортовая карта HBA HPE SN1100Q 16G на моем сервере hpe proliant gen10, который подключен к системе хранения данных HPE 3par с прямым подключением. И происходят какие-то странные вещи. Я использую драйвер qla2xxx версии 10.01.00.19-k, встроенный в Ubuntu 20.04. Когда мои серверы перезагружаются, соединение между моим сервером и 3par становится недоступным. Но когда я сбрасываю свои fc_ports с помощью этой команды, соединение снова становится доступным.

эхо 1 > /sys/класс/fc_host/host7/issue_lip
эхо 1 > /sys/класс/fc_host/host9/issue_lip

Поэтому я хочу сбросить эти порты до того, как сервер попытается смонтировать пути. Для этого я написал сервис systemd и скрипт reset-hba. Но multipath пытается получить доступ к путям до того, как мой скрипт сбросил порты. Как я могу решить эту проблему?

Вот мой системный сервис:

[Ед. изм]
Description=Сброс портов hba при запуске
До = multipathd.service
 
[Оказание услуг]
Тип = ваншот
ExecStartPre=/sbin/modprobe -a qla2xxx
ExecStart=/bin/bash -c "/opt/hpe-hba/reset_hba_ports.sh"

[Установить]
WantedBy=sysinit.target

И мой скрипт сброса:

#/бин/баш

FC_HOST_PATH="/sys/класс/fc_host"

модзонд qla2xxx

до тех пор [ ! -z "$(ls $FC_HOST_PATH)" ]
делать
    спать 1
    echo "Ожидание хостов FC..."
сделано

echo "Выполняется сброс порта HBA..."
для хоста в $(ls $FC_HOST_PATH); сделать
    RPORT=$(ls $FC_HOST_PATH/$host/device/ | grep rport)
    TPORT=$(ls $FC_HOST_PATH/$host/device/$RPORT | цель grep)
    если [-z "${TPORT}" ]
    тогда
    echo "$host не подключен. Сброс порта FC"
        эхо 1 > /sys/class/fc_host/$host/issue_lip;
    фи
сделано

echo "Ожидание установления связи FC."
количество попыток = 0
в то время как [ $try_count -le 3 ]
делать
    ошибка=0
    для хоста в $(ls $FC_HOST_PATH)
    делать 
        RPORT=$(ls $FC_HOST_PATH/$host/device/ | grep rport)
        TPORT=$(ls $FC_HOST_PATH/$host/device/$RPORT | цель grep)
        echo "Целевой порт для $host: $TPORT"
        если [-z "${TPORT}" ]
        тогда
            echo "Порт HBA FC еще не готов. Цель недоступна! Ожидание 10 сек..."
            ошибка=1
            спать 5
        фи
    сделано
    если [ $err -eq 0 ]
    тогда
        сломать
    фи
    ((количество попыток++))
сделано

echo "Инициализация порта FC завершена!"

ДАТА=$(/usr/bin/дата)
эхо $DATE >> /opt/hpe-hba/last_run.txt

Ответить или комментировать

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