Score:0

ฉันต้องการรีเซ็ต FC_HOST ก่อนที่มัลติพาธจะพยายามเมานต์พาธจากมัน

ธง ht

ฉันมีการ์ด HPE SN1100Q 2 พอร์ต 16G HBA บนเซิร์ฟเวอร์ hpe proliant gen10 ของฉันซึ่งเชื่อมต่อกับอุปกรณ์จัดเก็บข้อมูลโดยตรง HPE 3par และมีเรื่องแปลกๆ เกิดขึ้น ฉันใช้ไดรเวอร์ qla2xxx เวอร์ชัน 10.01.00.19-k ซึ่งมาพร้อมในตัวใน Ubuntu 20.04 เมื่อเซิร์ฟเวอร์ของฉันรีสตาร์ท การเชื่อมต่อระหว่างเซิร์ฟเวอร์ของฉันกับ 3par จะไม่สามารถเข้าถึงได้ แต่เมื่อฉันรีเซ็ต fc_ports ด้วยคำสั่งนี้ การเชื่อมต่อสามารถเข้าถึงได้อีกครั้ง

เสียงสะท้อน 1 > /sys/class/fc_host/host7/issue_lip
เสียงสะท้อน 1 > /sys/class/fc_host/host9/issue_lip

ดังนั้นฉันต้องการรีเซ็ตพอร์ตนี้ก่อนที่เซิร์ฟเวอร์จะพยายามเมานต์พาธ ฉันเขียน systemd service และ reset-hba script สำหรับสิ่งนี้ แต่หลายเส้นทางพยายามเข้าถึงเส้นทางก่อนที่สคริปต์ของฉันจะรีเซ็ตพอร์ต ฉันจะแก้ไขปัญหานี้ได้อย่างไร

นี่คือบริการ systemd ของฉัน:

[หน่วย]
Description=รีเซ็ตพอร์ต hba เมื่อเริ่มต้น
ก่อน=multipathd.service
 
[บริการ]
Type=วันช็อต
ExecStartPre=/sbin/modprobe -a qla2xxx
ExecStart=/bin/bash -c "/opt/hpe-hba/reset_hba_ports.sh"

[ติดตั้ง]
ต้องการโดย=sysinit.target

และสคริปต์การรีเซ็ตของฉัน:

#/ถังขยะ/ทุบตี

FC_HOST_PATH="/sys/class/fc_host"

ม็อดโพรบ qla2xxx

จนกระทั่ง [ ! -z "$(ls $FC_HOST_PATH)" ]
ทำ
    นอน1
    echo "กำลังรอเจ้าภาพ FC..."
เสร็จแล้ว

echo "รีเซ็ตพอร์ต HBA อยู่ระหว่างดำเนินการ..."
สำหรับโฮสต์ใน $(ls $FC_HOST_PATH);do
    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"
try_count=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 ]
    แล้ว
        หยุดพัก
    ไฟ
    ((try_count++))
เสร็จแล้ว

echo "พอร์ต FC init คอมไพล์แล้ว!"

DATE=$(/usr/bin/วันที่)
echo $DATE >> /opt/hpe-hba/last_run.txt

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา