本發明涉及計算機,具體涉及一種服務器的上電開機方法、裝置、計算機設備及存儲介質。
背景技術:
1、服務器是在網絡環境中為客戶機提供某種服務的專用計算機,擴展性很強,可以連接大量的高速串行計算機擴展總線(peripheral?component?interconnect?express,pcie)設備,比如nvme硬盤、pcie網卡、圖形處理單元(graphics?processing?unit,gpu)等。對于復合型服務器來說,復合型服務器包括機頭和機尾兩部分,機頭通過智能平臺管理接口(intelligent?platform?management?interface,ipmb)總線訪問機尾,機尾與機頭設有獨立電源。
2、為了保證復合型服務器正常開機,需要要求機尾先正常開機,機頭才可以正常開機。但這種方式,在機尾出現故障或ipmb總線故障時,會導致機頭無法正常開機,進而導致整個服務器無法使用。
技術實現思路
1、有鑒于此,本發明提供了一種服務器的上電開機方法、裝置、計算機設備及存儲介質,以解決因機尾出現故障或ipmb總線故障導致的機頭無法正常開機,進而導致整個服務器無法使用的問題。
2、第一方面,本發明提供了一種服務器的上電開機方法,應用于第一基板管理控制器(baseboard?management?controller,bmc),第一bmc設置在機尾服務器上,第一bmc處于啟動狀態;該方法包括:在第一bmc是機尾服務器接通電源線的首次啟動的情況下,讀取機尾服務器的復雜可編程邏輯器件(complex?programmable?logic?device,cpld)中第一寄存器中存儲的校驗值,校驗值指示機尾服務器的通用基板(universal?baseboard,ubb)固件是否完成校驗。
3、若預設時間段內讀取的校驗值均指示ubb固件未完成校驗,則將第一數值寫入機尾服務器的cpld中第二寄存器,第一數值用于指示機尾服務器的cpld控制機尾服務器不上電開機,并將第二數值寫入第三寄存器,第二數值用于指示機尾服務器上電開機失敗。
4、響應于來自機頭服務器發送的第一指令,讀取第三寄存器中存儲的第二數值,并將第二數值傳輸到機頭服務器,第一指令用于機頭服務器獲取機尾服務器的上電開機狀態,并進行上電開機。
5、基于上述第一方面提供的方法,可以在第一bmc是機尾服務器接通電源線的首次啟動的情況下,讀取機尾服務器的cpld中第一寄存器中存儲的校驗值,若預設時間段內讀取的校驗值均指示ubb固件未完成校驗,則將指示機尾服務器的cpld控制機尾服務器不上電開機的第一數值寫入第二寄存器,并指示機尾服務器的cpld將機尾服務器上電開機失敗對應的第二數值寫入第三寄存器,響應于來自機頭服務器發送的第一指令,將第三寄存器中存儲的第二數值傳輸到機頭服務器,以使機頭服務器獲取機尾服務器的上電開機狀態,以進行上電開機。
6、由于在ubb固件未完成校驗的情況下,機尾服務器無法進行上電開機,而第一bmc可以將機尾服務器上電開機失敗的信息存儲在機尾服務器的cpld的第三寄存器中,并傳輸給機頭服務器,使得機頭服務器在獲取機尾服務器上電開機失敗的信息的情況下,仍然可以進行上電開機。這種方式,可以避免由于ubb固件進行校驗時對機尾服務器進行上電導致的上電開機失敗,并導致機頭服務器也開機失敗,整個服務器無法使用的問題。
7、在一種可選的實施方式中,該方法還包括:在第一bmc不是機尾服務器接通電源線的首次啟動的情況下,將第三數值寫入第二寄存器,第三數值用于指示機尾服務器的cpld控制機尾服務器上電開機,并將第四數值寫入第三寄存器,第四數值用于指示機尾服務器上電開機成功;響應于來自機頭服務器發送的第一指令,讀取第三寄存器中存儲的第四數值,并將第四數值傳輸到機頭服務器。
8、基于上述方法,在第一bmc不是機尾服務器接通電源線的首次啟動的情況下,即第一bmc只是重啟,并非是接通電源線的首次啟動,即ubb固件已完成校驗,因此,可以將第三數值寫入第二寄存器,指示機尾服務器的cpld控制機尾服務器上電開機,并在機尾服務器上電開機后,機尾服務器的cpld將機尾服務器上電開機成功的信息寫入第三寄存器,便于后續機頭服務器獲取機尾服務器上電開機狀態。
9、在一種可選的實施方式中,該方法還包括:若預設時間段內讀取到校驗值指示ubb固件完成校驗,則記錄ubb固件上電成功日志,并將第三數值寫入第二寄存器。
10、基于上述方法,可以在ubb固件完成校驗的情況下,記錄ubb固件上電成功日志,便于后續機頭服務器或機尾服務器無法上電開機時,管理人員進行排查故障原因。
11、第二方面,本發明提供了一種服務器的上電開機方法,應用于第二基板管理控制器bmc,第二bmc設置在機頭服務器上,機頭服務器處于阻塞上電開機狀態;該方法包括:發送第一指令到機尾服務器上設置的第一bmc,第一指令用于獲取機尾服務器的上電開機狀態;在第一指令執行成功的情況下,接收機尾服務器傳輸的第二數值,第二數值用于指示機尾服務器上電開機失敗;在機尾服務器上電開機失敗情況下,獲取機尾服務器接通電源的上電時長;在上電時長大于等于預設閾值的情況下,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
12、基于上述第二方面提供的方法,可以發送第一指令到機尾服務器上設置的第一bmc,并接收機尾服務器的上電開機失敗的信息,并在機尾服務器上電開機失敗情況下,獲取機尾服務器接通電源的上電時長,在上電時長大于等于預設閾值的情況下,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
13、由于在上電時長大于等于預設閾值的情況下,即機尾服務器長時間處于無法開機狀態時,解除機頭服務器處于阻塞上電開機狀態,設置機頭服務器處于允許上電開機狀態,使得機頭服務器在獲取機尾服務器上電開機失敗的信息的情況下,仍然可以進行上電開機。這種方式,可以避免由于ubb固件進行校驗時對機尾服務器進行上電導致的上電開機失敗,并導致機頭服務器也開機失敗,整個服務器無法使用的問題。
14、在一種可選的實施方式中,該方法包括:在第一指令未執行成功的情況下,獲取第一指令的執行次數;在執行次數小于等于第一閾值的情況下,發送第一指令到第一bmc,直至執行次數大于第一閾值或第一指令執行成功。
15、在執行次數大于第一閾值的情況下,判斷是否記錄有獲取機尾服務器的上電開機狀態失敗的日志;若未記錄有獲取機尾服務器的上電開機狀態失敗的日志,則記錄獲取機尾服務器的上電開機狀態失敗的日志,并停止發送第一指令到第一bmc;或者,若記錄有獲取機尾服務器的上電開機狀態失敗的日志,則停止發送第一指令到第一bmc。
16、在停止發送第一指令到第一bmc后,獲取機尾服務器接通電源的上電時長;在上電時長小于預設閾值的情況下,發送第一指令到第一bmc,直至上電時長大于等于預設閾值或第一指令執行成功;在上電時長大于等于預設閾值的情況下,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
17、基于上述方法,可以在較長時間內無法獲取機尾服務器接通電源的上電開機狀態的情況下,仍然可以設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。避免由于機尾服務器與機頭服務器通信失敗、無法獲取機尾服務器接通電源的上電開機狀態并導致機頭服務器也開機失敗,整個服務器無法使用的問題。
18、在一種可選的實施方式中,該方法還包括:在第一指令執行成功的情況下,接收機尾服務器傳輸的第四數值,第四數值用于指示機尾服務器上電開機成功;在機尾服務器上電開機成功情況下,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
19、基于上述方法,在機尾服務器上電開機成功后,接收機尾服務器傳輸的機尾服務器上電開機成功的信息,解除機頭服務器處于阻塞上電開機狀態,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
20、第三方面,本發明提供了一種服務器的上電開機裝置,應用于第一基板管理控制器bmc,第一bmc設置在機尾服務器上,第一bmc處于啟動狀態;該裝置包括:收發模塊,用于在第一bmc是機尾服務器接通電源線的首次啟動的情況下,讀取機尾服務器的cpld中第一寄存器中存儲的校驗值,校驗值指示機尾服務器的通用基板ubb固件是否完成校驗。
21、處理模塊,用于若預設時間段內讀取的校驗值均指示ubb固件未完成校驗,則將第一數值寫入機尾服務器的cpld中第二寄存器,第一數值用于指示機尾服務器的cpld控制機尾服務器不上電開機,并將第二數值寫入第三寄存器,第二數值用于指示機尾服務器上電開機失敗。
22、收發模塊,用于若響應于來自機頭服務器發送的第一指令,讀取第三寄存器中存儲的第二數值,并將第二數值傳輸到機頭服務器,第一指令用于機頭服務器獲取機尾服務器的上電開機狀態,并進行上電開機。
23、第四方面,本發明提供了一種服務器的上電開機裝置,應用于第二基板管理控制器bmc,第二bmc設置在機頭服務器上,機頭服務器處于阻塞上電開機狀態;裝置包括:收發模塊,用于發送第一指令到機尾服務器上設置的第一bmc,第一指令用于獲取機尾服務器的上電開機狀態;收發模塊,還用于在第一指令執行成功的情況下,接收機尾服務器傳輸的第二數值,第二數值用于指示機尾服務器上電開機失敗;收發模塊,還用于在機尾服務器上電開機失敗情況下,獲取機尾服務器接通電源的上電時長;處理模塊,用于在上電時長大于等于預設閾值的情況下,設置機頭服務器處于允許上電開機狀態,使得機頭服務器進行上電開機。
24、第五方面,本發明提供了一種計算機設備,包括:存儲器和處理器,存儲器和處理器之間互相通信連接,存儲器中存儲有計算機指令,處理器通過執行計算機指令,從而執行上述第一方面或其對應的任一實施方式的服務器的上電開機方法。
25、第六方面,本發明提供了一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機指令,計算機指令用于使計算機執行上述第一方面或其對應的任一實施方式的服務器的上電開機方法。
26、第七方面,本技術還提供了一種包含指令的計算機程序產品,當其在計算機上運行時,使得計算機執行上述各方面所述的方法。