Puncte:0

Vreau să resetați un FC_HOST înainte ca multipath să încerce să monteze căi de pe acesta

drapel ht

Am un card HBA HPE SN1100Q 2port 16G pe serverul meu hpe proliant gen10 care este conectat la atașarea directă de stocare HPE 3par. Și se întâmplă niște lucruri ciudate. Folosesc versiunea de driver qla2xxx 10.01.00.19-k, care este încorporată în ubuntu 20.04. Când serverele mele repornesc, conexiunea dintre serverul meu și 3par devine inaccesibilă. Dar când îmi resetez fc_ports cu această comandă, conexiunea este accesibilă din nou.

echo 1 > /sys/class/fc_host/host7/issue_lip
echo 1 > /sys/class/fc_host/host9/issue_lip

Așa că vreau să resetez aceste porturi înainte ca serverul să încerce să monteze căile. Am scris un service systemd și un script de resetare-hba pentru asta. Dar mai multe căi încearcă să acceseze căile înainte ca scriptul meu să reseta porturile. Cum pot rezolva această problemă?

Iată serviciul meu de sistem:

[Unitate]
Descriere=Resetați porturile hba la pornire
Înainte=multipathd.service
 
[Serviciu]
Type=onehot
ExecStartPre=/sbin/modprobe -a qla2xxx
ExecStart=/bin/bash -c „/opt/hpe-hba/reset_hba_ports.sh”

[Instalare]
WantedBy=sysinit.target

Și scriptul meu de resetare:

#/bin/bash

FC_HOST_PATH="/sys/class/fc_host"

modprobe qla2xxx

pana cand [ ! -z „$(ls $FC_HOST_PATH)” ]
do
    somn 1
    echo „Se așteaptă gazdele FC...”
Terminat

echo „Resetarea portului HBA în curs...”
pentru gazdă în $(ls $FC_HOST_PATH);do
    RPORT=$(ls $FC_HOST_PATH/$gazdă/dispozitiv/ | grep rport)
    TPORT=$(ls $FC_HOST_PATH/$gazdă/dispozitiv/$RPORT | țintă grep)
    dacă [ -z „${TPORT}” ]
    atunci
    echo „$host nu este conectat. Se resetează portul FC”
        echo 1 > /sys/class/fc_host/$host/issue_lip;
    fi
Terminat

echo "Se așteaptă stabilirea comunicării FC."
try_count=0
în timp ce [ $try_count -le 3 ]
do
    eroare=0
    pentru gazdă în $(ls $FC_HOST_PATH)
    do 
        RPORT=$(ls $FC_HOST_PATH/$gazdă/dispozitiv/ | grep rport)
        TPORT=$(ls $FC_HOST_PATH/$gazdă/dispozitiv/$RPORT | țintă grep)
        echo „Portul țintă pentru $host este $TPORT”
        dacă [ -z „${TPORT}” ]
        atunci
            echo „Portul HBA FC nu este încă gata. Ținta nu este disponibilă! Se așteaptă 10 secunde...”
            eroare=1
            somn 5
        fi
    Terminat
    dacă [ $err -eq 0 ]
    atunci
        pauză
    fi
    ((try_count++))
Terminat

echo "Port FC init complated!"

DATE=$(/usr/bin/date)
echo $DATE >> /opt/hpe-hba/last_run.txt

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.