• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      服務器啟動過程檢測PCIe設備丟失及恢復的功能實現(xiàn)

      2024-01-24 08:52:09鄭媛康艷麗孫建英
      電腦知識與技術 2023年34期
      關鍵詞:恢復服務器

      鄭媛 康艷麗 孫建英

      摘要:在服務器系統(tǒng)中,PCIe設備已成為不可或缺的組成部分,由于各種原因,會遇到非常低概率的PCIe設備在啟動過程丟失問題,對服務器的正常運行造成嚴重的影響。服務器啟動過程的檢測PCIe設備丟失及恢復的功能,通過檢測PCIe設備在啟動過程中的鏈路訓練結果,實現(xiàn)對設備丟失情況的監(jiān)測,并在發(fā)現(xiàn)設備丟失時采取相應的恢復措施,經實驗驗證,該方法可以有效提高服務器的運行穩(wěn)定性和可靠性,避免因PCIe設備丟失而造成的損失。

      關鍵詞:服務器;啟動過程;PCIe;丟失檢測;恢復

      中圖分類號:TP306? ? ? ? 文獻標識碼:A

      文章編號:1009-3044(2023)34-0091-03

      開放科學(資源服務)標識碼(OSID)

      0 引言

      隨著云計算和大數(shù)據(jù)的快速發(fā)展,數(shù)據(jù)中心服務器數(shù)量呈爆發(fā)式增長。PCIe設備是服務器中的重要組成部分,PCIe千兆萬兆網(wǎng)卡設備支撐大型局域網(wǎng);PCIe磁盤陣列卡提高了存儲容量及存儲性能;圖形處理器GPU提供了更強大的圖片處理能力;還有HBA[1]卡,HCA[2]卡,固態(tài)硬盤(NVMe) ,新興的智能網(wǎng)卡[3](SmartNIC) 等。它們的穩(wěn)定性對服務器的正常運行有著至關重要的影響。然而,由于各種原因,如硬件故障、驅動程序錯誤或兼容性問題等,PCIe設備可能會出現(xiàn)丟失情況,一旦發(fā)生將嚴重影響系統(tǒng)的穩(wěn)定性和可靠性。

      在服務器的硬件系統(tǒng)中,UEFI平臺是一種新的固件接口標準,取代了傳統(tǒng)的BIOS,實現(xiàn)開機啟動過程對服務器主板上硬件以及各種輸入輸出設備的初始化、設備驅動程序和配置管理程序等,為計算機提供最底層的硬件設置和控制,可以為PCIe設備的故障檢測提供最直接信息,為故障恢復提供最快速的修復方法。

      1 啟動過程中PCIe設備檢測現(xiàn)狀

      目前,在服務器啟動過程中,UEFI固件代碼會檢測PCIe設備降速降帶寬故障和AER錯誤,使用封裝的IPMI命令,通過服務器主板上帶外管理固件BMC (Baseboard Management Controller,基板管理控制器)連接的KCS[4]接口,將PCIe故障上報給BMC,記錄故障信息到BMC SEL[5]日志中。但是,啟動過程沒有及時預警或上報PCIe設備丟失情況,多數(shù)情況都是啟動到系統(tǒng)下才能發(fā)現(xiàn)有PCIe設備丟失故障。啟動過程中的低概率PCIe設備丟失問題由于發(fā)生概率比較低,分析驗證耗時長,收效甚微,對服務器生產和用戶運維都會有很大影響。因此,如何快速準確地檢測低概率PCIe設備的丟失情況并采取相應的恢復措施成為一個重要的問題。

      2 啟動過程中PCIe設備丟失原因分析

      在服務器啟動過程,PCIe設備丟失問題多數(shù)跟PCIe鏈路訓練[6](Link Training) 出現(xiàn)問題有關。PCIe設備的鏈路訓練是由PCIe鏈路物理層[7]的鏈路訓練狀態(tài)機(LTSSM[8]) 自動完成,PCIe鏈路雙方通過自動協(xié)商鏈路速率和帶寬,調節(jié)發(fā)送和接收參數(shù),從而使得PCIe鏈路達到最佳信號質量。

      以英特爾X86服務器為例,最新X86服務器處理器集成IO(Integrated IO,以下簡稱IIO) 提供PCIe根端口,可以配置X2,X4,X8,X16等帶寬,提供GEN1、GEN2、GEN3、GEN4、GEN5速率支持。UEFI固件中的英特爾參考代碼IIO的初始化部分,分為IIO早期鏈路訓練和IIO后期鏈路訓練兩個階段。IIO早期鏈路訓練階段之前,UEFI固件先要根據(jù)主板硬件設計,主要配置IIO PCIe根端口的帶寬,IIO早期鏈路訓練階段,為PCIe根端口在鏈接訓練之前進行鏈路時鐘,鏈路均衡值等相關寄存器設置,啟動PCIe根端口的鏈接訓練。IIO后期鏈路訓練階段開始時,所有PCIe的根端口鏈路訓練已經完成,該階段主要任務是為PCIe設備枚舉、資源分配及加載驅動程序之前配置所有PCIe接口,初始化IIO DMI和PCIe根端口相關PCI配置空間寄存器。

      在IIO后期鏈路訓練階段開始時,輪詢所有IIO PCIe根端口,檢查鏈路狀態(tài)。讀取PCIe根端口配置空間鏈路狀態(tài)寄存器(Link Status Register) ,如果檢查到bit[3:0]當前鏈路速值(Current Link Speed) 和 bit[9:4] 協(xié)商鏈路帶寬值(Negotiated Link Width) 為非零值,而bit[13] 數(shù)據(jù)鏈路層鏈路激活值(Data Link Layer Link Active) 值(該位表示數(shù)據(jù)鏈路控制和管理狀態(tài)機的狀態(tài),返回值為1表示設備正常工作的狀態(tài),否則返回0) 為零,表示該PCIe根端口鏈路訓練沒有完成,IIO參考代碼當前操作是將該PCIe根端口隱藏,后續(xù)不再對該PCIe端口進行枚舉及分配PCIe相關資源,從而出現(xiàn)服務器啟動階段PCIe設備丟失的情況。

      3 PCIe設備丟失檢測及恢復功能設計

      為了解決啟動過程中因鏈路訓練導致PCIe設備低概率丟失問題,對英特爾IIO參考代碼部分進行了改進。在IIO后期鏈路訓練階段開始時,讀取PCIe鏈路訓練相關寄存器信息,如果發(fā)現(xiàn)PCIE鏈路失敗,在服務器啟動階段屏幕顯示,并向BMC發(fā)送告警信息,記錄到BMC SEL日志中。然后對PCIe設備發(fā)送熱重置命令,重新進行PCIe鏈路訓練,如果嘗試多次熱重置命令不能使PCIe鏈路恢復,再通過執(zhí)行重啟系統(tǒng)命令的方式來恢復。

      3.1 PCIe設備丟失檢測及恢復功能原理

      在IIO后期鏈路訓練階段開始,輪詢讀取PCIe根端口鏈路狀態(tài)寄存器值時:

      1) 判斷當前IIO PCIe根端口鏈路PCI配置空間鏈路狀態(tài)寄存器的當前鏈路速率值和協(xié)商鏈路帶寬值是否為0。如果為0,說明該根端口沒有接入PCIe設備,繼續(xù)輪詢下一個;如果不為0,判斷數(shù)據(jù)鏈路層鏈路激活值是否為0,如果不為0,說明IIO PCIe根端口和PCIe設備鏈路訓練完成,繼續(xù)輪詢下一個;如果為0,PCIE鏈路訓練沒有完成,該PCIe根端口沒有激活。

      2) 在這種數(shù)據(jù)鏈路層鏈路激活值為0情況下:

      ①首先通過編寫代碼將鏈路失敗PCIe根端口的BDF(Bus,Device,F(xiàn)unction,總線號,設備號,功能號)信息,紅色字體顯示到屏幕進行預警。用戶通過查看屏幕顯示及時了解到具體的PCIe設備有出現(xiàn)鏈路訓練失敗情況。

      ②其次將對應當前PCIe根端口的BDF信息通過跟BMC約定自定義命令格式,通過IPMI命令發(fā)送給BMC,記錄具體PCIe根端口鏈路訓練失敗情況到BMC SEL日志,便于后面用戶檢查SEL告警日志。

      ③然后增加功能代碼對鏈路訓練失敗PCIe根端口進行恢復操作,嘗試對當前PCIe根端口的橋控制寄存器(Bridge Control Register) 的bit[6]二次總線復位值(Secondary Bus Reset) 去寫1,通過軟件方式讓該PCIe根端口觸發(fā)熱重置,重新進行鏈路訓練。

      ④PCIe鏈路訓練是PCIe根端口和PCIe設備之間物理層的硬件行為,UEFI固件設置等待時間,待PCIe鏈路訓練完成,再去判斷當前PCIe根端口的鏈路狀態(tài)寄存器中數(shù)據(jù)鏈路層鏈路激活值是否為1,同時讀取當前鏈路速率值和協(xié)商鏈路帶寬值是否達到該設備的預期值,即該PCIe設備是否達到支持的標稱速率和帶寬。如果條件不滿足,則嘗試再次對該PCIe根端口熱重置,再次進行鏈路訓練。

      ⑤對該PCIe根端口熱重置3次后,如果其數(shù)據(jù)鏈路層鏈路激活值仍為0, 或讀取當前鏈路速率值和協(xié)商鏈路帶寬值一直沒有達到預期設置,再次記錄PCIe設備鏈路訓練失敗情況到BMC SEL日志,UEFI固件通過執(zhí)行ResetSystem命令讓系統(tǒng)重啟,重新跑IIO初始化階段,恢復PCIe設備重新識別。

      ⑥如果熱重置后,PCIe根端口的數(shù)據(jù)鏈路層鏈路激活值為1,當讀取當前鏈路速率值和協(xié)商鏈路帶寬值也達到預期設置,繼續(xù)輪詢其他 PCIe根端口。

      3) 所有IIO PCIe根端口輪詢結束,服務器啟動過程繼續(xù)執(zhí)行。服務器啟動過程中,對PCIe設備丟失檢測和恢復,具體流程圖如圖1所示。

      3.2 PCIe設備丟失檢測及恢復功能驗證

      針對PCIe設備丟失問題驗證,設計兩個實驗來驗證功能的有效性。

      首先在研發(fā)實驗室搭建服務器驗證機臺,將導入PCIe設備丟失檢測及恢復功能的UEFI固件版本更新到待驗證服務器上。通過對服務器啟動過程中PCIe設備注錯測試,驗證該功能是否可以有效解決PCIe設備丟失后再恢復的問題。

      然后對實際故障服務器機器進行驗證,將復現(xiàn)過啟動過程中PCIe設備丟失問題的PCIe設備和主板等設備搭建服務器測試機器一共3臺,進行穩(wěn)定性測試驗證。先用測試機器跑穩(wěn)定性驗證跑出PCIe設備丟失問題,再將導入PCIe設備丟失檢測及恢復功能的UEFI固件版本更新到待測服務器機器上,然后再進行穩(wěn)定性驗證。BMC SEL解析日志記錄到的PCIe根端口鏈路失敗的日志如圖2所示。

      4 結論

      歷時數(shù)月,通過模擬注錯和實際搭建PCIe丟卡服務器測試機器長達數(shù)十萬次穩(wěn)定性驗證,實驗結果表明,該PCIe設備丟失檢測及恢復功能設計能夠有效檢測上報PCIe設備的丟失情況,并對PCIe設備進行恢復鏈路訓練,讓PCIe設備重新被識別,保證了服務器系統(tǒng)的穩(wěn)定性和可靠性,對工廠服務器生產測試和用戶運維管理具有一定的應用價值。

      參考文獻:

      [1] 俞則人,柴小麗,陸偉.基于FPGA的光纖通道HBA卡設計與實現(xiàn)[J].信息技術,2015,39(10):206-209.

      [2] 謝林甫.面向InfiniBand控制器的PCI Express接口設計實現(xiàn)[D].成都:電子科技大學,2016.

      [3] 王祎晨.一種ARM架構SOC智能網(wǎng)卡設計及路由優(yōu)化方法[J].中國科技信息,2023(5):85-87.

      [4] 汪濤.服務器基本輸入輸出系統(tǒng)和基板管理控制器之間紅魚接口的設計實現(xiàn)[J].信息記錄材料,2022,23(3):154-156.

      [5] 楊金穎,高文煒,羅雪,等.基于VPX平臺的國產BMC設計與實現(xiàn)[J].微電子學與計算機,2021,38(8):80-86.

      [6] 王齊.PCI Express 體系結構導讀[M].北京:機械工業(yè)出版社,2010.

      [7] 張亮.PCIe總線物理層的設計與驗證[D].西安:西安電子科技大學,2013.

      [8] 布達科.PCI Express系統(tǒng)體系結構標準教材[M].田玉敏,譯.北京:電子工業(yè)出版社,2005.

      【通聯(lián)編輯:代影】

      猜你喜歡
      恢復服務器
      通信控制服務器(CCS)維護終端的設計與實現(xiàn)
      得形忘意的服務器標準
      知識產權(2016年8期)2016-12-01 07:01:13
      產后優(yōu)質護理服務對產婦滿意度的影響
      NUB恢復ORACLE數(shù)據(jù)庫
      利用存儲系統(tǒng)恢復服務器系統(tǒng)
      計算機網(wǎng)絡安全服務器入侵與防御
      服務器操作系統(tǒng)可信加固技術研究
      湖北電力(2016年10期)2016-04-25 07:55:55
      關于Linux的視頻服務器開發(fā)與實現(xiàn)分析
      河南科技(2014年18期)2014-02-27 14:14:43
      積分刷刷刷-FTP服務器篇
      固安县| 三门峡市| 兴隆县| 宁城县| 张家港市| 弥渡县| 道真| 余江县| 河西区| 肥东县| 紫阳县| 六安市| 泸西县| 灵川县| 华阴市| 定兴县| 中阳县| 永善县| 吉木萨尔县| 陆丰市| 正镶白旗| 临潭县| 四子王旗| 柘荣县| 仁布县| 潍坊市| 高平市| 宜兴市| 石狮市| 武功县| 台中县| 广东省| 崇左市| 克东县| 乐清市| 临沧市| 晴隆县| 普安县| 津市市| 云林县| 蒙山县|