TWI597953B - 具故障轉移能力的快速周邊元件互連網路系統與操作方法 - Google Patents

具故障轉移能力的快速周邊元件互連網路系統與操作方法 Download PDF

Info

Publication number
TWI597953B
TWI597953B TW104139259A TW104139259A TWI597953B TW I597953 B TWI597953 B TW I597953B TW 104139259 A TW104139259 A TW 104139259A TW 104139259 A TW104139259 A TW 104139259A TW I597953 B TWI597953 B TW I597953B
Authority
TW
Taiwan
Prior art keywords
host
pcie
management host
switch
management
Prior art date
Application number
TW104139259A
Other languages
English (en)
Other versions
TW201720103A (zh
Inventor
李肇棠
涂政君
闕志克
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW104139259A priority Critical patent/TWI597953B/zh
Priority to CN201510952025.6A priority patent/CN106776159B/zh
Priority to EP15202047.5A priority patent/EP3173937B1/en
Priority to US14/983,580 priority patent/US9760455B2/en
Publication of TW201720103A publication Critical patent/TW201720103A/zh
Application granted granted Critical
Publication of TWI597953B publication Critical patent/TWI597953B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Description

具故障轉移能力的快速周邊元件互連網路系統與操作方法
本揭露是有關於一種快速周邊元件互連(以下稱PCIe)裝置,且特別是有關於一種具故障轉移能力的快速周邊元件互連網路系統與操作方法。
快速周邊元件互連(Peripheral Component Interconnect Express,PCIe)是由PCI特別興趣小組(PCI Special Interest Group,PCI-SIG)開發的工業標準計算機擴展技術(industry standard computer expansion technology)。PCIe最初被設計為一個局部匯流排互聯技術(local bus interconnect technology),用於連接一台機器內的CPU、GPU和I/O設備,並從此進展而成為具有點至點鏈接(point-to-point links)、逐中繼段流量控制(hop-by-hop flow control)、端至端的重發(end-to-end retransmission)等特徵的一個完全成熟的交換網路(switched network)。PCIe亦可作為多板之間的被動背板互連(passive backplane interconnect among booards),以及用以連接機器與外部設備(例如存儲盒)的擴展接口。
PCIe網路是具有串行點對點全雙工通道(serial point-to-point full duplex lanes)的交換式網路。PCIe設備通過由一個或多個通道所組成的鏈路而連接到此PCIe網路。近日,利用PCIe介面將多個服務器(servers)或虛擬化I/O設備(virtualized I/O devices)互連的擴展PCIe已經成為一個有趣的可能性。例如,PCIe的應用可以進一步擴展到機架內部互連(intra-rack interconnect)。PCIe交換機可以取代標準的機架頂部(top of rack,TOR)乙太網交換機(Ethernet switch),也就是PCIe可以在同一機架內連接多個主機(hosts,例如服務器)。被允許連接到PCIe交換機的輸入輸出(I/O)設備可以分享於同一個機架內所有服務器。機架中的所有服務器之間亦可以通過PCIe鏈路(PCIe links)彼此進行通信。
延伸PCIe到多服務器環境帶來了幾個新的挑戰。傳統的PCIe架構的主要限制是,在任何時間點,每一個PCIe域只有一個活動的根複合(active root complex)。其結果是沒有兩個服務器被允許共存於相同的PCIe域。為了PCIe成為機架內部主機間通信互連的可行系統,需要額外的故障轉移(fail-over)機制,以確保在任何單一控制平台(control plane)和資料平台(data plane)故障的情況下網路操作仍能繼續進行。
本揭露提供一種快速周邊元件互連(以下稱PCIe)網路系統與其操作方法,在PCIe網路環境中具有故障轉移(fail-over)能力。
本揭露的實施例提供一種PCIe網路系統,包括第一管理主機、PCIe交換機、第一非透明橋以及第二非透明橋。PCIe交換機的第一上游埠電性耦接至第一管理主機。第一非透明橋配置於PCIe交換機,用以電性耦接至第一計算主機的第一PCIe埠。第一非透明橋可以將第一計算主機的第一PCIe埠耦接到第一管理主機。第二非透明橋配置於PCIe交換機,用以電性耦接至第一計算主機的第二PCIe埠。第二非透明橋可以將第一計算主機的第二PCIe埠耦接到第一管理主機。
本揭露的實施例提供一種PCIe網路系統的操作方法,包括:配置第一管理主機;配置PCIe交換機,其中PCIe交換機的第一上游埠電性耦接至第一管理主機;配置第一非透明橋於PCIe交換機,用以電性耦接至第一計算主機的第一PCIe埠;配置第二非透明橋於PCIe交換機,用以電性耦接至第一計算主機的第二PCIe埠;由第一非透明橋將第一計算主機的第一PCIe埠耦接到第一管理主機;以及由第二非透明橋將第一計算主機的第二PCIe埠耦接到第一管理主機。
本揭露的實施例提供一種PCIe網路系統,包括PCIe交換機、第一管理主機、第二管理主機以及第一非透明橋。第一管 理主機電性耦接至PCIe交換機的第一上游埠。第二管理主機電性耦接至PCIe交換機的第二上游埠。第一非透明橋配置於PCIe交換機,用以電性耦接至第一計算主機的PCIe埠。當第一管理主機管理PCIe交換機時,第一非透明橋可以將第一計算主機的PCIe埠耦接到第一管理主機。當第二管理主機檢測到第一管理主機故障時,第二管理主機進行故障轉移程序以取代第一管理主機來管理PCIe交換機,使得第一非透明橋將第一計算主機的PCIe埠改耦接到第二管理主機。
本揭露的實施例提供一種PCIe網路系統的操作方法,包括:配置PCIe交換機;配置第一管理主機,其中第一管理主機電性耦接至PCIe交換機的第一上游埠;配置第二管理主機,其中第二管理主機電性耦接至該PCIe交換機的第二上游埠;以及配置第一非透明橋於PCIe交換機,用以電性耦接至第一計算主機的PCIe埠;當第一管理主機管理PCIe交換機時,由第一非透明橋將第一計算主機的PCIe埠耦接到第一管理主機;以及當第二管理主機檢測到第一管理主機故障時,由第二管理主機進行故障轉移程序以取代第一管理主機來管理PCIe交換機,使得第一非透明橋將第一計算主機的PCIe埠改耦接到第二管理主機。
基於上述,本揭露實施例所述PCIe網路系統與操作方法提出了一個基於容錯PCIe的區域網路架構(fault-tolerant PCIe-based area network architecture),其中結合了故障轉移機制。所述PCIe網路系統與操作方法採取了PCIe架構特性的有效優 點,並顯著減少了由PCIe根複合(PCIe root complex)或PCIe鏈路/開關(PCIe link/switch)的故障所造成的服務中斷時間(service disruption time)。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧PCIe網路系統
110‧‧‧PCIe交換機
111‧‧‧第一上游埠
112‧‧‧第二上游埠
121‧‧‧第一管理主機
122‧‧‧第二管理主機
123‧‧‧乙太網路
131‧‧‧第一計算主機
132‧‧‧第二計算主機
133‧‧‧第三計算主機
134‧‧‧第四計算主機
141‧‧‧第一非透明橋
142‧‧‧第二非透明橋
143‧‧‧第三非透明橋
144‧‧‧第四非透明橋
145‧‧‧第五非透明橋
146‧‧‧第六非透明橋
147‧‧‧第七非透明橋
148‧‧‧第八非透明橋
151‧‧‧第一乙太網路介面卡
152‧‧‧第二乙太網路介面卡
161、162‧‧‧PCIe埠
CH1、CH2、MH‧‧‧本地記憶體位址
CH1’、CH2’、MH’、CH1”、CH2”、MH”‧‧‧延伸記憶體位址
S410、S420、S510~540、S541~S544‧‧‧步驟
VS1‧‧‧第一虛擬交換機
VS2‧‧‧第二虛擬交換機
圖1是依照本揭露實施例說明一種快速周邊元件互連(PCIe)網路系統的電路方塊圖。
圖2與圖3是依照本揭露一實施例說明圖1所示管理主機、計算主機與計算主機的記憶體位址空間示意圖。
圖4是依照本揭露實施例說明圖1所示PCIe網路系統的操作方法的流程示意圖。
圖5是依照本揭露另一實施例說明圖1所示PCIe網路系統的操作方法的流程示意圖。
圖6是依照本揭露實施例說明圖5所示步驟S540的詳細流程示意圖。
圖7是依照本揭露實施例說明圖1所示管理主機的操作時序示意圖。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
周邊元件互連(Peripheral Component Interconnect,PCI)標準允許匯流排表現得像橋(bridge),其將局部處理器匯流排與周邊元件隔離,從而允許電腦的中央處理單元(CPU)較快速地運行。PCI的後繼標準被稱為快速PCI(PCI Express,簡稱為PCIe)。PCIe提供較高的性能,並維持與現有PCI應用的軟體相容性。與PCI相比,具三個層(交易層(transaction layer)、資料連結層(data link layer)和實體層(physical layer))的PCIe協議(protocol)更為複雜。在交易層中,PCIe以由時間分離的請求與回應來實施分割交易(split transactions)。資料連結層對由交易層產生的交易層分組(TLP)排序,確保經由確認協議(acknowledgement protocol)而在兩個端點之間可靠地遞送TLP,並要求對未確認的/壞的(unacknowledged/bad)TLP進行重放(replay),且初始化並管理流量控制信用。實體層規格劃分為對應於電氣規格和邏輯規格的兩個子層。
在PCIe系統中,根複合裝置(root complex device)將處理器和記憶體子系統連接到包括一個或一個以上交換裝置的PCIe交換結構(Switch Fabrics)。PCIe是使用點對點架構。類似於PCI系統中的主橋(host bridge)。根複合裝置(管理主機)產生如處理器行為的交易請求。根複合裝置的功能可實現為離散裝置,或可與處理器集成。
下述諸實施例將提出基於容錯PCIe的區域網路架構(fault-tolerant PCIe-based rack area network architecture),其中結合了故障轉移機制。下述諸實施例採取了PCIe架構特性的有效優點,以顯著減少由PCIe根複合(PCIe root complex)或PCIe鏈路/開關(PCIe link/switch)的故障所造成的服務中斷時間(service disruption time)。在操作原型的實證測試顯示,PCIe根複合故障對資料平台零影響,並會為控制平台招致小幅的服務中斷時間。對於冗餘PCIe資料路徑,PCIe鏈路/開關故障所導致的服務中斷時間主要來自於目標端點(target end-point)的故障檢測(failure detection)與位址重映射(address re-mapping)相關的延遲。
下述諸實施例將巧妙地利用非透明橋(non-transparent bridge,NTB)。非透明橋被設計成隔離PCIe域,但提供了記憶體位址轉譯(memory address translation),以便於從一個PCIe域存取在另一個PCIe域中的資源。非透明橋是一種標準PCIe設備,故不再贅述。
圖1是依照本揭露實施例說明一種快速周邊元件互連 (PCIe)網路系統100的電路方塊圖。PCIe網路系統100包括PCIe交換機110、第一管理主機121、第二管理主機122、第一計算主機131、第二計算主機132、第三計算主機133、第四計算主機134、第一非透明橋141、第二非透明橋142、第三非透明橋143、第四非透明橋144、第五非透明橋145、第六非透明橋146、第七非透明橋147以及第八非透明橋148。圖1所示管理主機的數量、計算主機的數量與非透明橋的數量可以依據設計需求來決定,而不限於圖1所示數量。依照應用需求,PCIe網路系統100可以被應用在服務器機架中,或應用於其他環境中。基於PCIe的多主機機架區域網路架構(PCIe-based multi-host rack area networking architecture)的關鍵構件是機架頂部(top of rack,TOR)交換機。在機架中的每個機器或計算主機(例如服務器)通過兩個獨立的PCIe擴充卡和兩條PCIe電纜連接到這個PCIe交換機的兩個埠,並且以PCIe向機架內的其他計算主機進行通訊,而且通過機架頂部交換機(PCIe交換機)的乙太網埠(例如第一乙太網網路介面卡151與第二乙太網網路介面152)向機架外的機器進行通訊。
PCIe交換機110的第一上游埠(upstream port)111電性耦接至第一管理主機121。PCIe交換機110的第二上游埠(upstream port)112電性耦接至第二管理主機122。PCIe網路系統100設置了兩個管理主機,分別為第一管理主機121與第二管理主機122,一個作為主管理主機(master management host,MMH),另一個作為備援管理主機(backup management host,BMH)。主管理主機與 備援管理主機的角色並非固定於第一管理主機121與第二管理主機122。舉例來說,在初始狀態下,第一管理主機121可以作為PCIe交換機110的PCIe域的根複合,亦即扮演主管理主機;第二管理主機122扮演備援管理主機。當第一管理主機121出現故障時,第二管理主機122可以進行「故障轉移程序」(容後詳述)以取代第一管理主機121來管理PCIe交換機110。完成「故障轉移程序」後,第二管理主機122的角色從備援管理主機變為主管理主機,而第一管理主機121的角色從主管理主機變為備援管理主機。第一管理主機121與第二管理主機122之間用點至點乙太網鏈接(point-to-point Ethernet link)123來相互連接。點至點乙太網鏈接123可以載有記憶體狀態同步和心跳(memory state synchronization and heartbeats)。
第一至第八非透明橋141~148分別配置於PCIe交換機110。第一非透明橋141可以電性耦接至第一計算主機131的第一PCIe埠。第二非透明橋142可以電性耦接至第一計算主機131的第二PCIe埠。第三非透明橋143可以電性耦接至第二計算主機132的第一PCIe埠。第四非透明橋144可以電性耦接至第二計算主機132的第二PCIe埠。第五非透明橋145可以電性耦接至第三計算主機133的第一PCIe埠。第六非透明橋146可以電性耦接至第三計算主機133的第二PCIe埠。第七非透明橋147可以電性耦接至第四計算主機134的第一PCIe埠。第八非透明橋148可以電性耦接至第四計算主機134的第二PCIe埠。第一非透明橋141可以將 第一計算主機131的第一PCIe埠耦接到第一管理主機121或第二管理主機122。第二非透明橋142可以將第一計算主機131的第二PCIe埠耦接到第一管理主機121或第二管理主機122。其餘第三至第八非透明橋143~148可以參照非第一與第二透明橋141~142的相關說明而類推。
圖2與圖3是依照本揭露一實施例說明圖1所示第一管理主機121、第一計算主機131與第二計算主機132的記憶體位址空間示意圖。在此假設第一管理主機121作為PCIe交換機110的PCIe域的根複合,亦即扮演主管理主機。第一管理主機121的全域記憶體位址空間被定義多個位址區間,如圖2所示。這些位址區間中的一個位址區間被分配作為第一管理主機121的本地記憶體位址MH(如圖2所示斜線網底處)。PCIe交換機110的第一管理主機121將每個連接的機器(例如圖1所示第一至第四計算主機131~134)的主記憶體映射到第一管理主機121的全域記憶體位址空間(實體記憶體位址空間)。例如圖2所示,第一計算主機131的本地主記憶體位址CH1以及第二計算主機132的本地主記憶體位址CH2分別被映射到第一管理主機121的全域記憶體位址空間中的延伸記憶體位址CH1’以及CH2’。除此之外,第一計算主機131的本地主記憶體位址CH1以及第二計算主機132的本地主記憶體位址CH2還被額外地被映射到第一管理主機121的全域記憶體位址空間中的延伸記憶體位址CH1”以及CH2”。
例如(但不限於此),假設連接至PCIe交換機110的每 台機器(包括管理主機)具有本地記憶體32GB。第一管理主機121將第i個連接的機器的本地記憶體映射到第一管理主機121的全域記憶體位址空間32GB+(i-1)*32GB至32GB+i*32GB的範圍,以及將第i個連接的機器的本地記憶體額外地映射到第一管理主機121的全域記憶體位址空間1TB+32GB+(i-1)*32GB至1TB+32GB+i*32GB的範圍。
第一管理主機121公開其全域記憶體位址空間給每一個連接PCIe交換機110的機器。第一計算主機131的全域記憶體位址空間被定義多個位址區間,第二計算主機132的全域記憶體位址空間亦被定義多個位址區間,如圖3所示。第一計算主機131的這些位址區間中的一個位址區間被分配作為第一計算主機131的本地記憶體位址CH1(如圖3所示斜線網底處)。第二計算主機132的這些位址區間中的一個位址區間被分配作為第二計算主機132的本地記憶體位址CH2(如圖3所示斜線網底處)。然後,連接至PCIe交換機110的每個機器(例如第一計算主機131與第二計算主機132)將第一管理主機121的整個實體位址空間(全域記憶體位址空間)映射到各自的延伸記憶體位址空間的範圍,如圖3所示。
第一管理主機121的延伸記憶體位址CH1’可以通過PCIe交換機110的第一非透明橋141映射到第一計算主機131的本地記憶體位址CH1。第一管理主機121可以使用延伸記憶體位址CH1’(位址區間)經由PCIe交換機110的第一非透明橋141存取 位於第一計算主機131的本地記憶體位址CH1的資源。第一管理主機121的延伸記憶體位址CH1”可以通過PCIe交換機110的第二非透明橋142映射到第一計算主機131的相同的本地記憶體位址CH1。第一管理主機121可以使用延伸記憶體位址CH1”(位址區間)經由PCIe交換機110的第二非透明橋142存取位於第一計算主機131的本地記憶體位址CH1的資源。第一管理主機121對其他計算主機(例如第二計算主機132)的存取操作可以參照第一管理主機121對第一計算主機131的存取操作的相關說明而類推,故不再贅述。第一管理主機121將每一個連接的機器的本地實體位址空間映射至在全域位址空間中的兩個獨立區域,從而提供兩個獨立的路徑以到達/存取每個連接的機器的資源。
第一計算主機131的延伸記憶體位址MH’通過PCIe交換機110的第一非透明橋141映射到第一管理主機121的本地記憶體位址MH。第一計算主機131可以使用其本身實體位址空間中的延伸記憶體位址MH’(位址區間)經由PCIe交換機110的第一非透明橋141存取位於第一管理主機121的本地記憶體位址MH的資源。第一計算主機131的延伸記憶體位址MH”通過PCIe交換機110的第二非透明橋142映射到第一管理主機121的相同的本地記憶體位址MH。因此,第一計算主機131還可以使用其本身實體位址空間中的延伸記憶體位址MH”(位址區間)經由PCIe交換機110的第二非透明橋142存取位於第一管理主機121的本地記憶體位址MH的資源。其他計算主機(例如第二計算主機132)對第一 管理主機121的存取操作可以參照第一計算主機131的相關說明而類推,故不再贅述。
例如(但不限於此),假設連接至PCIe交換機110的每台機器(包括管理主機)具有本地記憶體32GB。連接至PCIe交換機110的計算主機(例如第一計算主機131)可以藉由讀取或寫入其本地實體記憶體位址範圍64GB+(i-1)*32GB至64GB+i*32GB來存取第i個連接的機器(例如第二計算主機132)的本地記憶體。換言之,一個連接PCIe交換機110的機器可以通過低於32GB的範圍(直接地)存取其本地記憶體,或通過高於64GB的範圍(間接通過第一管理主機121的實體位址空間)存取其自身的本地記憶體。假設有50台機器連接於PCIe交換機110,包括第一管理主機121。然後,每一個連接的機器(例如第一計算主機131)能看到的實體記憶體1600GB,包括在自己的機器所具有本地記憶體32GB(零跳,zero hop),在第一管理主機121所具有記憶體32GB(一跳,one hop),以及在其他連接的機器(例如第二計算主機132)所具有記憶體1536GB(兩跳,two hops)。因此,PCIe交換機110可以將所有連接的機器的實體記憶體轉移到一個全域性記憶池(global memory pool)。
舉例來說,第一計算主機131的延伸記憶體位址CH2’通過PCIe交換機110的第一非透明橋141映射到第一管理主機121的延伸記憶體位址CH2’,而第一管理主機121的此延伸記憶體位址CH2’通過PCIe交換機110的第三非透明橋143映射到第二計 算主機132的本地記憶體位址CH2。第一計算主機131可以使用此延伸記憶體位址CH2’(位址區間)經由PCIe交換機110的第一非透明橋141與第一管理主機121來存取位於第二計算主機132的本地記憶體位址CH2的資源。除此之外,第一計算主機131的延伸記憶體位址CH2”可以通過PCIe交換機110的第二非透明橋142映射到第一管理主機121的延伸記憶體位址CH2”,以及第一管理主機121的此延伸記憶體位址CH2”通過PCIe交換機110的第四非透明橋144映射到第二計算主機132的相同的本地記憶體位址CH2。因此,第一計算主機131可以使用延伸記憶體位址CH2”(位址區間)經由PCIe交換機110的第二非透明橋142與第一管理主機121來存取位於第二計算主機132的本地記憶體位址CH2的資源。
系統初始化(System Initialization):當PCIe交換機110啟動時,其管理主機(例如第一管理主機121)可以列舉(enumerate)所有連接到PCIe交換機110的相關設備,包括乙太網路介面卡(例如第一乙太網路介面卡151與第二乙太網路介面卡152)和非透明橋埠(例如第一至第八非透明橋141~148)。第一乙太網路介面卡151經由PCIe纜線連接至PCIe交換機110的PCIe埠161,而第二乙太網路介面卡152經由PCIe纜線連接至PCIe交換機110的PCIe埠162。然後,藉由編程(programming)在PCIe交換機110的非透明橋埠(例如第一至第八非透明橋141~148)上的基底位址寄存器(Base Address Register,BAR)、記憶體轉譯暫存器(memory translation register)和裝置識別碼轉譯表(device ID translation table)來設定上述記憶體位址映射(詳參圖2與圖3的相關說明)。最後,第一管理主機121也可以暴露了關於乙太網路介面卡(例如第一乙太網路介面卡151與第二乙太網路介面卡152)的實體記憶體位址範圍給所有連接的機器,以便他們能直接與這些網路介面卡互動。為了使連接PCIe交換機110的機器可以在不相互干擾的方式下存取這些網路介面卡(例如第一乙太網路介面卡151與第二乙太網路介面卡152),第一管理主機121可以從具有單根輸入輸出虛擬化(single-root IO Virtualization,以下稱SRIOV)能力的第一乙太網路介面卡151與第二乙太網路介面卡152分配一個或多個虛擬功能(virtual function,VF)給每一台機器。這個虛擬功能分配機制需要一種特殊的PCIe驅動器,以被安裝在連接的機器中。為了容忍任何單一網路介面卡故障,一個連接的機器可以從不同乙太網網路介面卡(例如第一乙太網路介面卡151與第二乙太網路介面卡152)請求多個虛擬功能。
因為連接到PCIe交換機110的每個機器可以定址到同一交換機的每個其他機器的每個實體記憶頁(physical memory page),資料保全和安全性(data security and safety)成為一個關鍵問題。更具體地,PCIe交換機110必須保證僅當明確允許時,連接到PCIe交換機110的機器才能夠存取全域性記憶池中的遠端實體記憶頁。PCIe交換機110利用輸入輸出記憶體管理單元 (input-output memory management unit,以下稱IOMMU)提供這種安全保障。當一台機器上的PCIe設備存取這台機器的實體記憶體時,IOMMU使用一個IOMMU映射表而將存取操作所指定的地址轉換到機器的實體記憶體位址空間。當一個PCIe操作的目標位址不匹配IOMMU映射表中的任何條目時,此PCIe操作被拒絕並中止。習知IOMMU是為了防止在一個機器中的一個虛擬功能損壞在同一台機器的另一個虛擬功能。於本實施例中,IOMMU將被重新利用在PCIe交換機110,以防止一台實體機器(例如第一計算主機131)在沒有另一實體機器(例如第二計算主機132)允許的情況下存取所述另一實體機器(例如第二計算主機132)的主記憶體。
PCIe交換機110要求管理主機(例如第一管理主機121)作為第一個啟動機器。在第一管理主機121列舉了(enumerating)所有設備之後,其餘的計算主機可以啟動。PCIe交換機110的故障轉移機制實現為非透明橋的驅動器和SRIOV乙太網網路介面卡的驅動器的註冊回調函數(registered callback function)。在接收到一個錯誤時,PCIe先進錯誤報告(advanced error reporting,AER)驅動器首先識別錯誤報告設備,並調用相應設備的驅動器的相應註冊回調函數。
故障檢測(Failure Detection):為了檢測和回應PCIe鏈路/交換機的故障,PCIe交換機110利用在每一個計算主機和管理主機的PCIe先進錯誤報告 (AER)機制。由於PCIe網路系統100包含多個PCIe域,在每個PCIe域中,PCIe網路系統100啟用PCIe先進錯誤報告服務驅動器(PCIe AER service driver)可快速檢測任何在該PCIe域的故障。對於每一個計算主機和管理主機,在接收到錯誤信息時,他們的根複合(root complex)產生帶有錯誤報告設備識別碼(ID)的一個中斷,而此錯誤資訊被記錄到相應的先進錯誤報告擴展容量結構(AER Extended Capacity Structure)中。通過先進錯誤報告(AER),如圖2與圖3所示,每個計算主機可以監控其兩個相關聯的非透明橋,以及管理主機可以在主PCIe域中監視所有的PCIe端點(PCIe end-points),包括所有的PCIe埠、交換機和乙太網路介面卡。
每當處理先進錯誤報告(AER)驅動器檢測到錯誤時,它將檢測到的錯誤報告給管理主機(例如第一管理主機121),管理主機從所有的計算主機(例如第一至第四計算主機131~134)集中收集所有錯誤報告,並在必要時,通知受影響的計算主機以便採取適當的故障恢復操作(failure recovery action),例如:改變路線(switching routes)。只要每個計算主機具有至少一個功能性PCIe擴展器(functioning PCIe extender)和非透明橋埠,計算主機被認為是可到達/存取管理主機。因此,對於任何單一故障,管理主機(例如第一管理主機121)總是能夠從計算主機收集錯誤報告,並且要求非分離帶外通信(no separate out-of-band communication)以故障恢復。
主/次位址空間(Primary/Secondary Address Space):因為同一個計算主機(例如第一計算主機131)通過主非透明橋(primary Non-Transparent Bridge,例如第一非透明橋141)和次非透明橋(secondary Non-Transparent Bridge,例如第二非透明橋142)連接到PCIe交換機110,PCIe網路系統100將每個計算主機的本地實體記憶體空間映射到由管理主機擁有的全域記憶體空間中的兩個不同的記憶體位址範圍,例如圖2與圖3所示。假定機架具有總共32個服務器(計算主機),每個服務器為其主記憶體和MMIO(memory-mapped input output)裝置消耗了32GB的本地記憶體位址空間。通過再次將每個連接的機器的主記憶體映射到次非透明橋所使用的實體記憶體位址空間,PCIe網路系統100把次位址範圍放置於高於1TB(僅為示例,不限於此),並且公開其次實體記憶體位址空間給每一個連接的機器,如圖3所示。因此,第一管理主機121將第i個連接的機器的本地記憶體映射到在全域性記憶池中的兩個不同的實體位址範圍,形成了主非透明橋設備的32GB+(i-1)*32GB至32GB+i*32GB的位址範圍和次非透明橋設備的1T+32GB+(i-1)*32GB至1T+32GB+i*32GB的另一個位址範圍。然後每個連接的機器(計算主機)將管理主機的主實體位址空間0至1TB(由主非透明橋所用)以及管理主機的次實體位址空間1TB至2TB(由次非透明橋所用)映射至其本地實體位址空間32GB以上的範圍。
用這種設置,一個連接的機器(例如第一計算主機131) 可以使用兩個獨立的路徑(其一路徑通過主第一非透明橋141,另一路徑通過次第二非透明橋142)來存取另一個連接機器(例如第二計算主機132)的本地記憶體。舉例來說(但不限於此),假設連接至PCIe交換機110的每台機器(包括管理主機)具有本地記憶體32GB。從第一計算主機131讀或寫本地實體記憶體位址96GB至128GB範圍(即延伸記憶體位址CH2’)內的記憶體請求可以經過主第一非透明橋141及其鍊接而到第二計算主機132的本地記憶體位址CH2。第一計算主機131讀或寫本地實體記憶體位址範圍的1T+96GB至1T+128GB範圍(即延伸記憶體位址CH2”)內的記憶體請求可以經過次第二非透明橋142及其連接線到達第二計算主機132的本地記憶體位址CH2。現代的64位元服務器(計算主機)至少支持48位元或256TB實體位址。假設每台服務器擁有實體記憶體64GB,此256TB的實體位址空間可以支持多達2048個服務器(每個服務器消耗2個非透明橋埠)。
資料平台容錯(Data Plane Fault Tolerance):每個計算主機在由管理主機所管理的全域存儲空間中佔用了兩個實體位址範圍,這兩個實體位址範圍的使用策略可採用下述不同設計,即活性-消極設計(Active-Passive Design)與活性-活性設計(Active-Active Design)。
活性-消極設計:即使每個計算主機在由管理主機所管理的全域存儲空間中佔用了兩個實體位址範圍,在任何時間點上,所述兩個實體位址範圍僅有一個是活性,因此兩個非透明橋的一 個被使用。在此配置中,每當在計算主機或管理主機中的一個PCIe先進錯誤報告(AER)驅動器被調用時,它首先檢查是否所報告的錯誤是不可校正和致命的(fatal)。如果它確實是不可校正和致命的錯誤,故障轉移程序(fail-over procedure)會被觸發。故障轉移程序(fail-over procedure)的作為如下:1、將無法糾正的和致命的錯誤報告到管理主機;2、使用關聯於相應非透明橋的門鈴(doorbell)與暫存(scratchpad)機制將有關的主要位址空間的故障通知所有的計算主機,如此這些計算主機可以切換到次位址空間;3、修改管理主機的IOMMU,使得在管理主機的PCIe域中發起的缺陷管理區域(Defect Management Area,簡稱DMA)操作還可以切換到次位址空間。每個計算主機維護實體記憶體地址的列表,使用它來存取遠端計算主機的資源,包括主記憶體或MMIO設備。當管理主機發送出PCIe故障轉移的通知,每個計算主機以此列表進行商議來修改他們以使用在次位址空間中的對口。例如,在接收到PCIe故障轉移通知時,第二計算主機132將其對第一計算主機131從64G至96G(延伸記憶體位址CH1’)改變到1T+64G至1T+96GB(延伸記憶體位址CH1”)(僅為示例,不限於此)。在第二計算主機132中對1T+64G記憶體存取被轉換為在第一管理主機121中對1T+32G記憶體(延伸記憶體位址CH1”)存取,並使用管理主機域中第一計算主機131的次非透明橋的BAR。類似地,管理主機維護實體記憶體地址的類似列表(用於由駐留在管理主機的PCIe域中的I/O設備發起的DMA操作的目 標)。當故障轉移,管理主機與此列表協商以修改其IOMMU中的相關條目,以使用在次位址空間中的對口(counterparts)。在活性-消極設計的優點是簡單:只有一個全域變量是需要維護系統狀態。然而,在此設計中,許多鏈接利用不足。此外,在一個計算主機中的任何單一非透明橋/鏈接故障將導致所有的計算主機切換到它們的次非透明橋/鏈路,即使它們的主非透明橋/鏈接工作得很好。
活性-活性設計:資料平台容錯的主動-主動設計允許可以同時使用計算主機的主要和次要位址空間。每個計算主機維護遠端實體記憶體地址的列表(其儲存其他計算主機的資源),並且管理主機維護DMA實體記憶體地址的列表(它的I/O設備使用於DMA操作)。無論何時,PCIe錯誤將觸發PCIe故障轉移,每個計算主機商議於遠程實體記憶體地址的列表,以及只修改那些受故障轉移影響的部份;並且管理主機商議於DMA實體記憶體地址的列表,以及只修改那些在IOMMU中受故障轉移影響的部份。在此設計中,PCIe故障轉移的範圍可能是主位址空間的一個部分,而不是整個主位址空間。因此,在任何時間點,一些計算主機只能通過其次位址空間而被訪問,而其他計算主機可能通過主要與次要位址空間而被訪問。
綜上所述,圖4是依照本揭露實施例說明圖1所示PCIe網路系統100的操作方法的流程示意圖。步驟S410配置第一管理主機121與PCIe交換機110,其中PCIe交換機110的第一上游埠 111電性耦接至第一管理主機121。步驟S410還配置第一非透明橋141與第二非透明橋142於PCIe交換機110。第一非透明橋141可以電性耦接至第一計算主機131的第一PCIe埠,而第二非透明橋142可以電性耦接至第一計算主機131的第二PCIe埠。於步驟S420中,第一非透明橋141可以將第一計算主機131的第一PCIe埠耦接到第一管理主機121,而第二非透明橋142可以將第一計算主機131的第二PCIe埠耦接到第一管理主機121。
控制平台容錯(Control Plane Fault Tolerance):PCIe交換機110的第一管理主機121與第二管理主機122可響應於所連接機器的實體記憶體至實體位址空間的映射,並且用於以安全的方式將其實體位址空間,包括與其PCIe設備(例如:網路介面卡)相關聯的位址範圍,暴露給所連接的機器。在每個PCIe設備的位址分配後,管理主機將配置在PCIe層階(PCIe hierarchy)中的每個點對點(P2P)橋的路由表(routing table),以使PCIe封包可相應轉發。一旦管理主機完成這種設置,其作用變得可見(在它的PCIe設備樹中的變化,即PCIe端點的添加或刪除)。管理主機不涉及在各PCIe端點之間的點對點(peer-to-peer)資料傳輸。事實上,當管理主機故障,只要保持在P2P橋中的路由狀態,PCIe端點可以繼續交換彼此的資料。因此,當管理主機發生故障,則沒有必要從這樣的故障立即恢復,特別是因為因管理主機故障的習知恢復程序需要所有PCIe端點的全系統的重啟(system-wide restart)。本揭露下述實施例將介紹無縫的管理主機 故障轉移,以減少控制平台的中斷。
圖5是依照本揭露另一實施例說明圖1所示PCIe網路系統100的操作方法的流程示意圖。步驟S510配置了PCIe交換機110、第一管理主機121與第二管理主機122。其中,第一管理主機121電性耦接至PCIe交換機110的第一上游埠111,而第二管理主機122電性耦接至PCIe交換機110的第二上游埠112。步驟S510還配置了第一非透明橋141於PCIe交換機110。第一非透明橋141可以電性耦接至第一計算主機131的PCIe埠。於步驟S520中,第一管理主機121管理PCIe交換機110,且第一非透明橋141將第一計算主機131的PCIe埠耦接到第一管理主機121。於步驟S530中,第二管理主機122可以檢測第一管理主機121是否故障。當第二管理主機122檢測到第一管理主機121故障時,第二管理主機122進行故障轉移程序以取代第一管理主機121來管理PCIe交換機110,以及第一非透明橋141將第一計算主機131的PCIe埠改耦接到第二管理主機122(步驟S540)。
為了實現無縫的管理主機故障轉移,PCIe網路系統100設置了兩個管理主機,第一管理主機121與第二管理主機122,其中一個作為主管理主機(master management host),另一個作為備援管理主機(backup management host)。主管理主機和備援管理主機之間可以用點對點(point-to-point)乙太網路123相連接,它帶有記憶體狀態同步和心跳(memory state synchronization and heartbeats)。此外,主管理主機通過專用鏈路同步地複製修改以下 狀態到備援管理主機:1、初始PCIe設備掃描和列舉(PCIe device scanning and enumeration)的結果,其中包括實體位址範圍的分配,中斷號等;2、在其PCIe域中的基底位址寄存器(BAR)的內容、轉譯寄存器的內容、設備ID轉換表的內容、非透明橋埠的IOMMU的內容;3、對連接的機器支持單根IO虛擬化(SRIOV)的PCIe設備的虛擬功能(virtual function,VF)的分配;4、在其域中的PCIe設備驅動器的內部狀態。
PCIe交換機110可以被劃分為多個虛擬交換機(virtual switches),這些虛擬交換機可以獨立使用。例如,PCIe網路系統100將PCIe交換機110靈活劃分為兩個虛擬交換機,第一虛擬交換機VS1與第二虛擬交換機VS2。第一虛擬交換機VS1具有第一上游埠111,而第一管理主機121連接到第一虛擬交換機VS1的第一上游埠111。第二虛擬交換機VS2具有第二上游埠112,而第二管理主機122連接到第二虛擬交換機VS2的第二上游埠112。在初始狀態下,假設第一管理主機121管理PCIe交換機110,PCIe交換機110的所有下游埠被分配給第一虛擬交換機VS1,而第二虛擬交換機VS2只有一個埠(第二上游埠112)。因此當第一管理主機121管理PCIe交換機110時,第一虛擬交換機VS1連接第一管理主機121與所有其他PCIe設備(例如第一至第四計算主機131~134)。當第二管理主機122檢測到第一管理主機121故障時,第二管理主機122進行故障轉移程序以取代第一管理主機121來管理PCIe交換機110。
圖6是依照本揭露實施例說明圖5所示步驟S540的詳細流程示意圖。於圖6所示實施例中,步驟S540所述故障轉移程序包含了子步驟S541~S544。當第二管理主機122檢測到第一管理主機121故障時,步驟S541會被執行。當主管理主機故障,於步驟S541中,第二管理主機122控制PCIe交換機110以使第一虛擬交換機VS1的所有下游埠改分配給第二虛擬交換機VS2,而第一虛擬交換機VS1只有第一上游埠111。藉由將所有PCIe設備(除了第一管理主機121)從第一虛擬交換機VS1重新分配至第二虛擬交換機VS2,第二管理主機122可以接管PCIe交換機110。重新分配允許第二虛擬交換機VS2形成一個新的PCIe層階。埠重新分配的關鍵性質是,當從第一虛擬交換機VS1切換到第二虛擬交換機VS2時,橋的路由表的狀態(bridges’ routing table states)不改變。事實上,只有最高階橋需要將他的第一上游埠111(連接到第一管理主機121)更新/切換至另一第二上游埠112(連接到第二管理主機122)。其結果是,改變了上游埠組態不影響在PCIe下游埠之間的點對點通信(peer-to-peer communication)。
PCIe橋的路由狀態包含一個連續的位址範圍(覆蓋其下游埠),而帶有超出此範圍的目的地位址的任何封包將被轉發到上游埠,所以改變上游埠不影響在PCIe端點之間的點對點通信。此外,由於第二管理主機122具有的PCIe相關狀態完全相同於第一管理主機121的PCIe相關狀態,當增加或刪除PCIe設備時,或當分配或釋放PCIe資源時,第二管理主機122可以立即恢復控制 平台的服務。PCIe網路系統100利用了Linux的暫停/恢復能力(suspend/resume facility)。當使用暫停操作時,整個系統的狀態(包括驅動器的狀態)都經快照(snapshotted)並保存到磁碟中。
具體而言,無論是第一管理主機121和第二管理主機122都必須有三個磁碟分區以保持三種不同的核心映像(kernel images):控制器核心映像(controller kernel image)、模板核心映像(template kernel image)以及運行核心映像(running kernel image)。控制器核心用於啟動(boot up)管理主機,以便管理其他兩個核心映像。模板核心用於保持在發生故障後可以重複使用的金核心映像(golden kernel image)。在所有PCIe設備驅動器初始化後,從執行系統的暫停指令來創建模板核心。運行核心是第一管理主機121與第二管理主機122執行管理主機功能所運行的核心。在開始時,第一管理主機121與第二管理主機122的控制器映像是相同於他們的模板映像,而第一管理主機121與第二管理主機122的運行映像是空的。
圖7是依照本揭露實施例說明圖1所示第一管理主機121與第二管理主機122的操作時序示意圖。圖7所示橫軸表示時間,圖7所示上半部繪示第一管理主機121與第一虛擬交換機VS1的操作狀態變化情形,而圖7所示下半部繪示第二管理主機122與第二虛擬交換機VS2的操作狀態變化情形。如圖7所示,為了創建第二管理主機122的模板映像,所有PCIe設備(除了第一管理主機121)初始連接至第二虛擬交換機VS2,以及第二管理主機 122從模板核心映像啟動(boots-up),直到它的所有PCIe設備驅動器被初始化。然後,第二管理主機122暫停其模板映像分區,然後自我重新啟動(這一次從控制器核心映像啟動),然後將模板映像磁碟分區複製到運行映像磁碟分區。然後,第二管理主機122再次重新啟動(這次從控制器核心映像),以監控第一管理主機121的狀況。從這個角度上,第二管理主機122使用心跳消息(heartbeat messages)監控第一管理主機121的狀況。
在第二管理主機122結束模板核心並從控制器核心映像重新啟動時,所有的PCIe設備(除了第二管理主機122)被重新分配到第一虛擬交換機VS1,並且第一管理主機121從模板核心映像啟動並繼續運行,直到它的所有的PCIe設備驅動器被初始化。然後,第一管理主機121暫停其模板映像分區並且重新啟動(這一次從控制器核心映像啟動),然後將模板核心映像磁碟分區複製到運行核心映像磁碟分區。然後第一管理主機121再次重新啟動(這次從運行核心映像),整個系統開始工作,而第一管理主機121擔任PCIe的管理工作(根複合)。總之,第一管理主機121的第一次暫停/重新啟動是為了創建模板核心映像並複製它,而第一管理主機121的第二次重新啟動是為了使系統投入運行。
當第二管理主機122檢測到第一管理主機121出現故障時,第二管理主機122指示第一虛擬交換機VS1的所有其他成員(除了第一管理主機121)加入第二虛擬交換機VS2,以及使用第二管理主機122的運行核心映像自我重新啟動(步驟S542)。由於 第二管理主機122的運行核心映像已經包含所有必要的PCIe設備驅動器的狀態(如上所述),因此第二管理主機122可以管理在第二虛擬交換機VS2的PCIe域中的PCIe設備和非透明橋,而無需重新設定他們。在第二管理主機122自我重新啟動之前,第一虛擬交換機VS1的成員必須重新分配給第二虛擬交換機VS2,否則重新啟動會失敗,因為在運行核心映像中的設備驅動器無法找到其相應的設備。在第二管理主機122重新啟動的期間,控制平台的服務被中斷。第一管理主機121使用控制器核心映像自我重新啟動,然後將它的模板核心映像磁碟分區複製到運行核心映像磁碟分區(步驟S543)。在完成複製後,第一管理主機121從控制器核心映像重新啟動,以不斷監測的第二管理主機122的狀況(步驟S544)。
值得注意的是,在不同的應用情境中,第一管理主機121、第二管理主機122、第一非透明橋141及/或第二非透明橋142的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的軟體(或韌體)可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述軟體(或韌體)。所述軟體(或韌體)可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。另外,本揭露的系統、裝置和方法可以通過硬體和軟體的組合來實現。
綜上所述,本揭露諸實施例所述PCIe網路系統100與操作方法提出了一個基於容錯PCIe的區域網路架構,其中結合了故障轉移機制。所述PCIe網路系統100與操作方法採取了PCIe架構特性的有效優點,並顯著減少了由PCIe根複合或PCIe鏈路/開關的故障所造成的服務中斷時間。依照應用需求,PCIe網路系統100可以被應用在服務器機架中作為機架頂部(top of rack,TOR)交換機,或應用於其他環境中。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧PCIe網路系統
110‧‧‧PCIe交換機
111‧‧‧第一上游埠
112‧‧‧第二上游埠
121‧‧‧第一管理主機
122‧‧‧第二管理主機
123‧‧‧乙太網路
131‧‧‧第一計算主機
132‧‧‧第二計算主機
133‧‧‧第三計算主機
134‧‧‧第四計算主機
141‧‧‧第一非透明橋
142‧‧‧第二非透明橋
143‧‧‧第三非透明橋
144‧‧‧第四非透明橋
145‧‧‧第五非透明橋
146‧‧‧第六非透明橋
147‧‧‧第七非透明橋
148‧‧‧第八非透明橋
151‧‧‧第一乙太網路介面卡
152‧‧‧第二乙太網路介面卡
161、162‧‧‧PCIe埠

Claims (36)

  1. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括:一第一管理主機;一PCIe交換機,其中該PCIe交換機的一第一上游埠電性耦接至該第一管理主機;一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一第一PCIe埠,其中該第一非透明橋用以將該第一計算主機的該第一PCIe埠耦接到該第一管理主機;以及一第二非透明橋,配置於該PCIe交換機,用以電性耦接至該第一計算主機的一第二PCIe埠,其中該第二非透明橋用以將該第一計算主機的該第二PCIe埠耦接到該第一管理主機。
  2. 如申請專利範圍第1項所述的PCIe網路系統,其中該第一管理主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一計算主機的一本地記憶體位址,以及該第一管理主機的一第二延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第一計算主機的該本地記憶體位址。
  3. 如申請專利範圍第1項所述的PCIe網路系統,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一本地記憶體位址,以及該第一計算主機的一第二延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第一管理主機的該本地記憶體位址。
  4. 如申請專利範圍第1項所述的PCIe網路系統,其中該第一管理主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一管理主機的本地記憶體位址,該第一管理主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一計算主機的本地記憶體位址的資源,以及該第一管理主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋存取位於該第一計算主機的該本地記憶體位址的資源。
  5. 如申請專利範圍第1項所述的PCIe網路系統,其中該第一計算主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一計算主機的本地記憶體位址,該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一管理主機的本地記憶體位址的資源,以及該第一計算主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋存取位於該第一管理主機的該本地記憶體位址的資源。
  6. 如申請專利範圍第1項所述的PCIe網路系統,更包括:一第三非透明橋,配置於該PCIe交換機,用以電性耦接至一第二計算主機的一第一PCIe埠,其中該第三非透明橋用以將該第二計算主機的該第一PCIe埠耦接到該第一管理主機;以及一第四非透明橋,配置於該PCIe交換機,用以電性耦接至該第二計算主機的一第二PCIe埠,其中該第四非透明橋用以將該第 二計算主機的該第二PCIe埠耦接到該第一管理主機。
  7. 如申請專利範圍第6項所述的PCIe網路系統,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一第二延伸記憶體位址,該第一管理主機的該第二延伸記憶體位址通過該PCIe交換機的該第三非透明橋映射到該第二計算主機的一本地記憶體位址,該第一計算主機的一第三延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第一管理主機的一第四延伸記憶體位址,以及該第一管理主機的該第四延伸記憶體位址通過該PCIe交換機的該第四非透明橋映射到該第二計算主機的該本地記憶體位址。
  8. 如申請專利範圍第6項所述的PCIe網路系統,其中該第一計算主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一計算主機的本地記憶體位址,該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋與該第一管理主機存取位於該第二計算主機的本地記憶體位址的資源,以及該第一計算主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋與該第一管理主機存取位於該第二計算主機的該本地記憶體位址的資源。
  9. 如申請專利範圍第1項所述的PCIe網路系統,更包括:一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠,其中當該第二管理主機檢測到該第一管理主機故障時,該第 二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機。
  10. 如申請專利範圍第9項所述的PCIe網路系統,其中該PCIe交換機被劃分為多個虛擬交換機,該些虛擬交換機中的一第一虛擬交換機具有該第一上游埠,該些虛擬交換機中的一第二虛擬交換機具有該第二上游埠,其中當該第一管理主機管理該PCIe交換機時,該PCIe交換機的所有下游埠被分配給該第一虛擬交換機,而該第二虛擬交換機只有該第二上游埠。
  11. 如申請專利範圍第10項所述的PCIe網路系統,其中該故障轉移程序包括:由該第二管理主機控制該PCIe交換機以使該第一虛擬交換機的所有下游埠改分配給該第二虛擬交換機,而該第一虛擬交換機只有該第一上游埠;由該第二管理主機使用該第二管理主機的一運行核心映像自我重新啟動;由該第一管理主機使用該第一管理主機的一控制器核心映像自我重新啟動,以及將該第一管理主機的一模板核心映像複製為該第一管理主機的一運行核心映像;以及由該第一管理主機使用該第一管理主機的該控制器核心映像自我重新啟動,以及監視該第二管理主機的狀況。
  12. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括: 配置一第一管理主機;配置一PCIe交換機,其中該PCIe交換機的一第一上游埠電性耦接至該第一管理主機;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第一計算主機的一第一PCIe埠;配置一第二非透明橋於該PCIe交換機,用以電性耦接至該第一計算主機的一第二PCIe埠;由該第一非透明橋將該第一計算主機的該第一PCIe埠耦接到該第一管理主機;以及由該第二非透明橋將該第一計算主機的該第二PCIe埠耦接到該第一管理主機。
  13. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,其中該第一管理主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一計算主機的一本地記憶體位址,以及該第一管理主機的一第二延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第一計算主機的該本地記憶體位址。
  14. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一本地記憶體位址,以及該第一計算主機的一第二延伸記憶體位址通過該PCIe交 換機的該第二非透明橋映射到該第一管理主機的該本地記憶體位址。
  15. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,更包括:將該第一管理主機的一全域記憶體位址空間定義為多個位址區間;將該第一管理主機的該些位址區間中的一第一位址區間分配作為該第一管理主機的本地記憶體位址;由該第一管理主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一計算主機的本地記憶體位址的資源;以及由該第一管理主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋存取位於該第一計算主機的該本地記憶體位址的資源。
  16. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,更包括:將該第一計算主機的一全域記憶體位址空間定義為多個位址區間;將該些位址區間中的一第一位址區間分配作為該第一計算主機的本地記憶體位址;由該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一管理主機的本 地記憶體位址的資源;以及由該第一計算主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋存取位於該第一管理主機的該本地記憶體位址的資源。
  17. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,更包括:配置一第三非透明橋於該PCIe交換機,用以電性耦接至一第二計算主機的一第一PCIe埠;配置一第四非透明橋於該PCIe交換機,用以電性耦接至該第二計算主機的一第二PCIe埠;由該第三非透明橋將該第二計算主機的該第一PCIe埠耦接到該第一管理主機;以及由該第四非透明橋將該第二計算主機的該第二PCIe埠耦接到該第一管理主機。
  18. 如申請專利範圍第17項所述的PCIe網路系統的操作方法,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一第二延伸記憶體位址,該第一管理主機的該第二延伸記憶體位址通過該PCIe交換機的該第三非透明橋映射到該第二計算主機的一本地記憶體位址,該第一計算主機的一第三延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第一管理主機的一第四延伸記憶體位址,以及該第一管理主機的該第四延伸記憶體位址通過該PCIe交 換機的該第四非透明橋映射到該第二計算主機的該本地記憶體位址。
  19. 如申請專利範圍第17項所述的PCIe網路系統的操作方法,更包括:將該第一計算主機的一全域記憶體位址空間定義為多個位址區間;將該些位址區間中的一第一位址區間分配作為該第一計算主機的本地記憶體位址;由該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋與該第一管理主機存取位於該第二計算主機的本地記憶體位址的資源;以及由該第一計算主機使用該些位址區間中的一第三位址區間經由該PCIe交換機的該第二非透明橋與該第一管理主機存取位於該第二計算主機的該本地記憶體位址的資源。
  20. 如申請專利範圍第12項所述的PCIe網路系統的操作方法,更包括:配置一第二管理主機,其中該第二管理主機電性耦接至該PCIe交換機的一第二上游埠;以及當該第二管理主機檢測到該第一管理主機故障時,進行一故障轉移程序以由該第二管理主機取代該第一管理主機來管理該PCIe交換機。
  21. 如申請專利範圍第20項所述的PCIe網路系統的操作方法,更包括:將該PCIe交換機劃分為多個虛擬交換機,其中該些虛擬交換機中的一第一虛擬交換機具有該第一上游埠,該些虛擬交換機中的一第二虛擬交換機具有該第二上游埠;以及當該第一管理主機管理該PCIe交換機時,將該PCIe交換機的所有下游埠分配給該第一虛擬交換機,其中該第二虛擬交換機只有該第二上游埠。
  22. 如申請專利範圍第21項所述的PCIe網路系統的操作方法,其中該故障轉移程序包括:由該第二管理主機控制該PCIe交換機以使該第一虛擬交換機的所有下游埠改分配給該第二虛擬交換機,而該第一虛擬交換機只有該第一上游埠;由該第二管理主機使用該第二管理主機的一運行核心映像自我重新啟動;由該第一管理主機使用該第一管理主機的一控制器核心映像自我重新啟動,以及將該第一管理主機的一模板核心映像複製為該第一管理主機的一運行核心映像;以及由該第一管理主機使用該第一管理主機的該控制器核心映像自我重新啟動,以及監視該第二管理主機的狀況。
  23. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括: 一PCIe交換機;一第一管理主機,電性耦接至該PCIe交換機的一第一上游埠;一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠;以及一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;其中當該第一管理主機管理該PCIe交換機時,該第一非透明橋用以將該第一計算主機的該PCIe埠耦接到該第一管理主機;其中當該第二管理主機檢測到該第一管理主機故障時,該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;以及其中該第一管理主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一管理主機的本地記憶體位址,以及該第一管理主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一計算主機的本地記憶體位址的資源。
  24. 如申請專利範圍第23項所述的PCIe網路系統,其中該第一管理主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一計算主機的一本地記憶體位址。
  25. 如申請專利範圍第23項所述的PCIe網路系統,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一本地記憶體位址。
  26. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括:一PCIe交換機;一第一管理主機,電性耦接至該PCIe交換機的一第一上游埠;一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠;以及一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;其中當該第一管理主機管理該PCIe交換機時,該第一非透明橋用以將該第一計算主機的該PCIe埠耦接到該第一管理主機;其中當該第二管理主機檢測到該第一管理主機故障時,該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;以及其中該第一計算主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一計算主機的本地記憶體位址,該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於 該第一管理主機的本地記憶體位址的資源。
  27. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括:一PCIe交換機;一第一管理主機,電性耦接至該PCIe交換機的一第一上游埠;一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠;一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;以及一第二非透明橋,配置於該PCIe交換機,用以電性耦接至一第二計算主機的一PCIe埠;其中當該第一管理主機管理該PCIe交換機時,該第一非透明橋用以將該第一計算主機的該PCIe埠耦接到該第一管理主機,以及該第二非透明橋用以將該第二計算主機的該PCIe埠耦接到該第一管理主機;其中當該第二管理主機檢測到該第一管理主機故障時,該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機,以及使得該第二非透明橋將該第二計算主機的該PCIe埠改耦接到該第二管理主機;以及其中該第一計算主機的一第一延伸記憶體位址通過該PCIe 交換機的該第一非透明橋映射到該第一管理主機的一第二延伸記憶體位址,該第一管理主機的該第二延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第二計算主機的一本地記憶體位址。
  28. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括:一PCIe交換機;一第一管理主機,電性耦接至該PCIe交換機的一第一上游埠;一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠;一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;以及一第二非透明橋,配置於該PCIe交換機,用以電性耦接至一第二計算主機的一PCIe埠;其中當該第一管理主機管理該PCIe交換機時,該第一非透明橋用以將該第一計算主機的該PCIe埠耦接到該第一管理主機,以及該第二非透明橋用以將該第二計算主機的該PCIe埠耦接到該第一管理主機;其中當該第二管理主機檢測到該第一管理主機故障時,該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe 埠改耦接到該第二管理主機,以及使得該第二非透明橋將該第二計算主機的該PCIe埠改耦接到該第二管理主機;以及其中該第一計算主機的一全域記憶體位址空間被定義多個位址區間,該些位址區間中的一第一位址區間被分配作為該第一計算主機的本地記憶體位址,該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋與該第一管理主機存取位於該第二計算主機的本地記憶體位址的資源。
  29. 一種快速周邊元件互連(以下稱PCIe)網路系統,包括:一PCIe交換機;一第一管理主機,電性耦接至該PCIe交換機的一第一上游埠;一第二管理主機,電性耦接至該PCIe交換機的一第二上游埠;以及一第一非透明橋,配置於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;其中當該第一管理主機管理該PCIe交換機時,該第一非透明橋用以將該第一計算主機的該PCIe埠耦接到該第一管理主機;其中當該第二管理主機檢測到該第一管理主機故障時,該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機; 其中該PCIe交換機被劃分為多個虛擬交換機,該些虛擬交換機中的一第一虛擬交換機具有該第一上游埠,該些虛擬交換機中的一第二虛擬交換機具有該第二上游埠,其中當該第一管理主機管理該PCIe交換機時,該PCIe交換機的所有下游埠被分配給該第一虛擬交換機,而該第二虛擬交換機只有該第二上游埠;以及其中該故障轉移程序包括:由該第二管理主機控制該PCIe交換機以使該第一虛擬交換機的所有下游埠改分配給該第二虛擬交換機,而該第一虛擬交換機只有該第一上游埠;由該第二管理主機使用該第二管理主機的一運行核心映像自我重新啟動;由該第一管理主機使用該第一管理主機的一控制器核心映像自我重新啟動,以及將該第一管理主機的一模板核心映像複製為該第一管理主機的一運行核心映像;以及由該第一管理主機使用該第一管理主機的該控制器核心映像自我重新啟動,以及監視該第二管理主機的狀況。
  30. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括:配置一PCIe交換機;配置一第一管理主機,其中該第一管理主機電性耦接至該PCIe交換機的一第一上游埠;配置一第二管理主機,其中該第二管理主機電性耦接至該 PCIe交換機的一第二上游埠;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第一非透明橋將該第一計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機檢測到該第一管理主機故障時,由該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;將該第一管理主機的一全域記憶體位址空間定義為多個位址區間;將該些位址區間中的一第一位址區間分配作為該第一管理主機的本地記憶體位址;以及由該第一管理主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋存取位於該第一計算主機的本地記憶體位址的資源。
  31. 如申請專利範圍第30項所述的PCIe網路系統的操作方法,其中該第一管理主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一計算主機的一本地記憶體位址。
  32. 如申請專利範圍第30項所述的PCIe網路系統的操作方法,其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交 換機的該第一非透明橋映射到該第一管理主機的一本地記憶體位址。
  33. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括:配置一PCIe交換機;配置一第一管理主機,其中該第一管理主機電性耦接至該PCIe交換機的一第一上游埠;配置一第二管理主機,其中該第二管理主機電性耦接至該PCIe交換機的一第二上游埠;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第一非透明橋將該第一計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機檢測到該第一管理主機故障時,由該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;將該第一計算主機的一全域記憶體位址空間被定義多個位址區間;將該些位址區間中的一第一位址區間被分配作為該第一計算主機的本地記憶體位址;以及由該第一計算主機使用該些位址區間中的一第二位址區間經 由該PCIe交換機的該第一非透明橋存取位於該第一管理主機的本地記憶體位址的資源。
  34. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括:配置一PCIe交換機;配置一第一管理主機,其中該第一管理主機電性耦接至該PCIe交換機的一第一上游埠;配置一第二管理主機,其中該第二管理主機電性耦接至該PCIe交換機的一第二上游埠;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第一非透明橋將該第一計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機檢測到該第一管理主機故障時,由該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;配置一第二非透明橋於該PCIe交換機,用以電性耦接至一第二計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第二非透明橋將該第二計算主機的該PCIe埠耦接到該第一管理主機;以及當該第二管理主機取代該第一管理主機來管理該PCIe交換 機時,由該第二非透明橋將該第二計算主機的該PCIe埠改耦接到該第二管理主機;其中該第一計算主機的一第一延伸記憶體位址通過該PCIe交換機的該第一非透明橋映射到該第一管理主機的一第二延伸記憶體位址,該第一管理主機的該第二延伸記憶體位址通過該PCIe交換機的該第二非透明橋映射到該第二計算主機的一本地記憶體位址。
  35. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括:配置一PCIe交換機;配置一第一管理主機,其中該第一管理主機電性耦接至該PCIe交換機的一第一上游埠;配置一第二管理主機,其中該第二管理主機電性耦接至該PCIe交換機的一第二上游埠;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第一計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第一非透明橋將該第一計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機檢測到該第一管理主機故障時,由該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機; 配置一第二非透明橋於該PCIe交換機,用以電性耦接至一第二計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第二非透明橋將該第二計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機取代該第一管理主機來管理該PCIe交換機時,由該第二非透明橋將該第二計算主機的該PCIe埠改耦接到該第二管理主機;將該第一計算主機的一全域記憶體位址空間定義為多個位址區間;將該些位址區間中的一第一位址區間分配作為該第一計算主機的本地記憶體位址;以及由該第一計算主機使用該些位址區間中的一第二位址區間經由該PCIe交換機的該第一非透明橋與該第一管理主機存取位於該第二計算主機的本地記憶體位址的資源。
  36. 一種快速周邊元件互連(以下稱PCIe)網路系統的操作方法,包括:配置一PCIe交換機;配置一第一管理主機,其中該第一管理主機電性耦接至該PCIe交換機的一第一上游埠;配置一第二管理主機,其中該第二管理主機電性耦接至該PCIe交換機的一第二上游埠;配置一第一非透明橋於該PCIe交換機,用以電性耦接至一第 一計算主機的一PCIe埠;當該第一管理主機管理該PCIe交換機時,由該第一非透明橋將該第一計算主機的該PCIe埠耦接到該第一管理主機;當該第二管理主機檢測到該第一管理主機故障時,由該第二管理主機進行一故障轉移程序以取代該第一管理主機來管理該PCIe交換機,使得該第一非透明橋將該第一計算主機的該PCIe埠改耦接到該第二管理主機;將該PCIe交換機劃分為多個虛擬交換機,其中該些虛擬交換機中的一第一虛擬交換機具有該第一上游埠,該些虛擬交換機中的一第二虛擬交換機具有該第二上游埠;以及當該第一管理主機管理該PCIe交換機時,將該PCIe交換機的所有下游埠分配給該第一虛擬交換機,其中該第二虛擬交換機只有該第二上游埠;其中該故障轉移程序包括:由該第二管理主機控制該PCIe交換機以使該第一虛擬交換機的所有下游埠改分配給該第二虛擬交換機,而該第一虛擬交換機只有該第一上游埠;由該第二管理主機使用該第二管理主機的一運行核心映像自我重新啟動;由該第一管理主機使用該第一管理主機的一控制器核心映像自我重新啟動,以及將該第一管理主機的一模板核心映像複製為該第一管理主機的一運行核心映像;以及 由該第一管理主機使用該第一管理主機的該控制器核心映像自我重新啟動,以及監視該第二管理主機的狀況。
TW104139259A 2015-11-25 2015-11-25 具故障轉移能力的快速周邊元件互連網路系統與操作方法 TWI597953B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW104139259A TWI597953B (zh) 2015-11-25 2015-11-25 具故障轉移能力的快速周邊元件互連網路系統與操作方法
CN201510952025.6A CN106776159B (zh) 2015-11-25 2015-12-17 具有故障转移的快速外围元件互连网络系统与操作方法
EP15202047.5A EP3173937B1 (en) 2015-11-25 2015-12-22 Pcie network system with fail-over capability and operation method thereof
US14/983,580 US9760455B2 (en) 2015-11-25 2015-12-30 PCIe network system with fail-over capability and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104139259A TWI597953B (zh) 2015-11-25 2015-11-25 具故障轉移能力的快速周邊元件互連網路系統與操作方法

Publications (2)

Publication Number Publication Date
TW201720103A TW201720103A (zh) 2017-06-01
TWI597953B true TWI597953B (zh) 2017-09-01

Family

ID=55168095

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104139259A TWI597953B (zh) 2015-11-25 2015-11-25 具故障轉移能力的快速周邊元件互連網路系統與操作方法

Country Status (4)

Country Link
US (1) US9760455B2 (zh)
EP (1) EP3173937B1 (zh)
CN (1) CN106776159B (zh)
TW (1) TWI597953B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139327A1 (zh) 2014-03-21 2015-09-24 华为技术有限公司 失效切换方法、装置和系统
US10191878B2 (en) * 2016-05-11 2019-01-29 Tolefonaktiebolaget LM Ericsson (Publ) High availability of PCIe devices under multiple processors to provide redundancy
US10482050B2 (en) * 2016-11-09 2019-11-19 Qualcomm Incorporated Link role determination in a dual-mode Peripheral Component Interconnect express (PCIe) device
US10795842B2 (en) * 2017-05-08 2020-10-06 Liqid Inc. Fabric switched graphics modules within storage enclosures
US10599600B2 (en) * 2017-06-16 2020-03-24 Western Digital Technologies, Inc. Peripheral Component Interconnect Express (PCIe) switching for multi-host computing system deployments
CN107766181B (zh) * 2017-09-12 2021-04-20 中国电子科技集团公司第五十二研究所 一种基于PCIe非透明桥的双控制器存储高可用子系统
US10599461B2 (en) * 2017-09-19 2020-03-24 Microsoft Technology Licensing, Llc Nested hypervisor memory virtualization
US10523457B2 (en) 2017-12-21 2019-12-31 Industrial Technology Research Institute Network communication method, system and controller of PCIe and Ethernet hybrid networks
TWI679861B (zh) 2018-09-06 2019-12-11 財團法人工業技術研究院 控制器、調整封包通信規則的方法及網路通信系統
US10956287B2 (en) 2018-09-18 2021-03-23 International Business Machines Corporation Failover mechanism with minimized packet losses
TWI704460B (zh) * 2019-01-19 2020-09-11 神雲科技股份有限公司 叢集式系統中維持記憶體共享方法
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
US10909054B2 (en) * 2019-04-26 2021-02-02 Samsung Electronics Co., Ltd. Method for status monitoring of acceleration kernels in a storage device and storage device employing the same
TWI732233B (zh) * 2019-06-24 2021-07-01 竹北動力股份有限公司 控制系統和控制方法
WO2021168758A1 (zh) * 2020-02-27 2021-09-02 华为技术有限公司 一种基于PCIe的通信方法及装置
US11106607B1 (en) * 2020-03-31 2021-08-31 Dell Products L.P. NUMA-aware storage system
US11698878B1 (en) * 2020-04-12 2023-07-11 Peraton Labs Inc. Highspeed shared-memory optical network interfaces and topology
US11449456B2 (en) * 2020-06-02 2022-09-20 Microchip Technology Inc. System and method for scheduling sharable PCIe endpoint devices
CN112799991B (zh) * 2021-01-07 2022-12-20 牛芯半导体(深圳)有限公司 Pcie交换芯片
US11550722B2 (en) * 2021-03-02 2023-01-10 Ati Technologies Ulc Method, system, and apparatus for supporting multiple address spaces to facilitate data movement
CN115334015B (zh) * 2022-07-04 2024-04-02 深圳市国微电子有限公司 基于PCIe交换芯片的虚拟交换模式控制方法
CN117827726A (zh) * 2024-03-06 2024-04-05 井芯微电子技术(天津)有限公司 非透明桥传输的实现方法、装置、电子设备和存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748478B1 (en) * 2000-12-27 2004-06-08 Intel Corporation System function configurable computing platform
US8051211B2 (en) 2002-10-29 2011-11-01 Cisco Technology, Inc. Multi-bridge LAN aggregation
JP4256693B2 (ja) 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
TWI234072B (en) 2003-10-09 2005-06-11 Mitac Int Corp Fault-tolerance RAID controller
US8176204B2 (en) 2005-03-11 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for multi-host sharing of a single-host device
US20060274647A1 (en) 2005-06-02 2006-12-07 Broadcom Corporation Dynamic port failover
US20070253329A1 (en) * 2005-10-17 2007-11-01 Mo Rooholamini Fabric manager failure detection
US7395367B2 (en) * 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
CN101052013B (zh) * 2007-05-22 2011-09-28 杭州华三通信技术有限公司 一种网络设备内部管理通道实现的方法及系统
CN101102197B (zh) * 2007-08-10 2010-06-09 北京理工大学 基于交换机的可扩展dspeed-dsp_q6455信号处理板
US20090063894A1 (en) 2007-08-29 2009-03-05 Billau Ronald L Autonomic PCI Express Hardware Detection and Failover Mechanism
US7913106B2 (en) 2007-12-18 2011-03-22 International Business Machines Corporation Failover in a host concurrently supporting multiple virtual IP addresses across multiple adapters
US7934033B2 (en) 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
JP5074457B2 (ja) 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
CN101631083B (zh) * 2009-08-07 2012-04-04 成都市华为赛门铁克科技有限公司 设备接管方法和装置及双控系统
US8463934B2 (en) * 2009-11-05 2013-06-11 Rj Intellectual Properties, Llc Unified system area network and switch
US8677068B2 (en) * 2010-06-18 2014-03-18 Lsi Corporation Scalable storage devices
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8645746B2 (en) 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US20130179722A1 (en) * 2012-01-06 2013-07-11 Glen Smith Ring topology for compute devices
WO2014027416A1 (ja) * 2012-08-17 2014-02-20 富士通株式会社 情報処理装置、及び情報処理装置の制御方法
US9086919B2 (en) * 2012-08-23 2015-07-21 Dell Products, Lp Fabric independent PCIe cluster manager
US9298648B2 (en) * 2013-05-08 2016-03-29 Avago Technologies General Ip (Singapore) Pte Ltd Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch
US9280371B2 (en) 2013-07-10 2016-03-08 International Business Machines Corporation Utilizing client resources during mobility operations
KR102033112B1 (ko) * 2013-07-15 2019-10-16 한국전자통신연구원 Pci 익스프레스 스위치 장치 및 그의 접속 제어 방법
US9672167B2 (en) * 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains
US9195552B2 (en) * 2014-02-05 2015-11-24 Futurewei Technologies, Inc. Per-function downstream port containment
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US9734115B2 (en) * 2014-11-18 2017-08-15 Industrial Technology Research Institute Memory mapping method and memory mapping system
US10102169B2 (en) * 2015-08-10 2018-10-16 Microsemi Solutions (U.S.), Inc. System and method for port migration in a PCIE switch

Also Published As

Publication number Publication date
US20170147456A1 (en) 2017-05-25
US9760455B2 (en) 2017-09-12
EP3173937A1 (en) 2017-05-31
CN106776159B (zh) 2019-12-20
EP3173937B1 (en) 2018-08-22
TW201720103A (zh) 2017-06-01
CN106776159A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
TWI597953B (zh) 具故障轉移能力的快速周邊元件互連網路系統與操作方法
JP7474766B2 (ja) 高信頼性フォールトトレラントコンピュータアーキテクチャ
US8346997B2 (en) Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
US8141093B2 (en) Management of an IOV adapter through a virtual intermediary in an IOV management partition
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
JP5016028B2 (ja) メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
TWI522816B (zh) 應用伺服器至非依電性隨機存取記憶體之路徑選取技術
JP6098778B2 (ja) 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
KR20110000748A (ko) 공유 i/o 시스템에서의 리셋 변환 방법, 컴퓨터 판독 가능한 매체 및 컴퓨터 시스템
US10782898B2 (en) Data storage system, load rebalancing method thereof and access control method thereof
WO2017167106A1 (zh) 存储系统
WO2017162178A1 (zh) 对存储系统的访问控制方法及装置
TWI773152B (zh) 伺服器與應用於伺服器的控制方法
JP4182948B2 (ja) フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
CN115203095A (zh) PCIe装置及其操作方法
JP2003330626A (ja) 常時稼働コントローラ相互接続を介してのコントローラ通信
Tu et al. Seamless fail-over for PCIe switched networks
JP4165499B2 (ja) コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法
TWI766590B (zh) 伺服器及相關的控制方法
CN113342260A (zh) 伺服器与应用于伺服器的控制方法
CN113342257A (zh) 伺服器及相关的控制方法