TWI704460B - 叢集式系統中維持記憶體共享方法 - Google Patents

叢集式系統中維持記憶體共享方法 Download PDF

Info

Publication number
TWI704460B
TWI704460B TW108102115A TW108102115A TWI704460B TW I704460 B TWI704460 B TW I704460B TW 108102115 A TW108102115 A TW 108102115A TW 108102115 A TW108102115 A TW 108102115A TW I704460 B TWI704460 B TW I704460B
Authority
TW
Taiwan
Prior art keywords
computer node
memory
transparent bridge
disconnected
driver
Prior art date
Application number
TW108102115A
Other languages
English (en)
Other versions
TW202028993A (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 TW108102115A priority Critical patent/TWI704460B/zh
Priority to US16/740,853 priority patent/US10853297B2/en
Publication of TW202028993A publication Critical patent/TW202028993A/zh
Application granted granted Critical
Publication of TWI704460B publication Critical patent/TWI704460B/zh

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

一種叢集式系統中維持記憶體共享方法,藉由一叢集式系統來實施,該叢集式系統包括一電腦節點及另一經由非透明橋接與該電腦節點連接以共享記憶體的電腦節點,該方法包含以下步驟:(A)該電腦節點驗證其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態;(B)當驗證出處於斷線狀態時,該電腦節點傳送一重新初始化該記憶體的重置請求至一驅動程式;(C)該電腦節點經由所執行的驅動程式回應於該重置請求執行一重置程序,以產生一初始化結果;及(D)當該電腦節點收到來自該另一電腦節點的初始化結果時,該電腦節點執行一共享設定程序。

Description

叢集式系統中維持記憶體共享方法
本發明是有關於一種記憶體共享方法,特別是指一種於叢集式系統中維持記憶體共享方法。
叢集式系統(clustered system)是由兩個以上的電腦節點集合而成,這些電腦會分享儲存裝置並連接起來高度緊密地共同作業以完成計算工作。在叢集式系統中,兩電腦節點間可使用非透明橋接(Non-Transparent Bridge,簡稱NTB)技術來實現該等電腦節點間的記憶體共享,以達成該等電腦節點間快速且大量溝通訊息的目的。在叢集式系統中,採用NTB技術,需仰賴運行於該等電腦節點之周邊元件互連(Peripheral Component Interconnect Express,簡稱PCIe)切換器(Switch)中之韌體,及運行於該等電腦節點之作業系統中之核心與相關於PCIe switch的驅動程式協同運作來達成,且皆是在系統初始化階段來完成該等電腦節點間的記憶體共享。
當該等電腦節點中之其中一電腦節點重置時(亦即,其中一電腦節點發生異常,而被置換為新的電腦節點,或是因發生異常而重新開機,又或是其中一電腦節點被熱插拔後又重新被安裝回該叢集式系統),現有技術並沒有對此一例外狀況規範相關處理行為,因此該等電腦節點所建立之相關於共享記憶體的設定將會因其中一方的重置而遺失,因而導致該等電腦節點間的通訊失效(亦即,該等電腦節點間的連接狀態處於斷線狀態),且後續該等電腦節點亦無法主動修復兩者間的連接狀態。
因此,本發明的目的,即在提供一種自動偵測叢集式系統中同儕電腦節點是否重置,並自動修復兩電腦節點間之連接狀態以維持記憶體共享的於叢集式系統中維持記憶體共享方法。
於是,本發明於叢集式系統中維持記憶體共享方法,藉由一叢集式系統來實施,該叢集式系統包括一電腦節點及另一經由非透明橋接與該電腦節點連接以共享記憶體的電腦節點,每一電腦節點包括一中央處理器、一記憶體、一由該中央處理器所執行且運行於一使用者空間的應用程式、一由該中央處理器所執行且運行於一核心空間的驅動程式,及一電連接該中央處理器且執行一韌體的周邊元件互連切換器,該方法包含:(A)藉由該電腦節點經由所執行的應用程式驗證其與該 另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態;(B)當該電腦節點驗證出其與該另一電腦節點間之非透明橋接的連接狀態處於斷線狀態時,該電腦節點經由所執行的應用程式傳送一指示該驅動程式重新初始化該記憶體的重置請求至該驅動程式;(C)藉由該電腦節點經由所執行的驅動程式回應於該重置請求執行一相關於重新初始化該記憶體的重置程序,以產生一相關於該記憶體的初始化結果;及(D)當該電腦節點收到來自該另一電腦節點,且相關於其自身之記憶體的初始化結果時,該電腦節點經由所執行的驅動程式執行一相關於共享該等記憶體的共享設定程序。
本發明的功效在於:藉由該電腦節點主動經由所執行的應用程式驗證其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態,當該電腦節點驗證出該等電腦節點間處於斷線狀態時,自動請求該驅動程式執行相關於重新初始化該記憶體的該重置程序,並在收到來自該另一電腦節點的初始化結果後執行該共享設定程序,以達成自動修復兩電腦節點間之連接狀態以維持記憶體共享的目的。
1:電腦節點
11:中央處理器
12:記憶體
13:周邊元件互連切換器
21:步驟
30~34:步驟
301~305:子步驟
501~502:子步驟
601~602:子步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:圖1是一方塊圖,說明實施本發明於叢集式系統中維持記憶體共享方法之第一實施例的一叢集式系統;圖2是一流程圖,說明本發明於叢集式系統中維持記憶體共享方法之第一實施例的一記憶體共享運作程序;圖3是一流程圖,說明本發明於叢集式系統中維持記憶體共享方法之第一實施例的一記憶體共享維持程序;圖4是一流程圖,說明一電腦節點如何驗證其與另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態;圖5是一流程圖,說明該電腦節點如何偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態;圖6是一流程圖,說明該電腦節點如何偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態;及圖7是一示意圖,示意出每一電腦節點中用於執行一應用程式、一驅動程式,及一韌體的硬體。
參閱圖1,本發明於叢集式系統中維持記憶體共享方法的第一實施例,藉由一叢集式系統來實施。該叢集式系統包括一電腦 節點1及另一經由非透明橋接與該電腦節點1連接以共享記憶體12的電腦節點1,每一電腦節點1包括一中央處理器11、一電連接該中央處理器11的記憶體12、一由該中央處理器11所執行且運行於一作業系統之使用者空間的應用程式、一由該中央處理器11所執行且運行於一作業系統之核心空間的驅動程式,及一電連接該中央處理器11且執行一韌體的周邊元件互連切換器13。每一周邊元件互連切換器13包括一用於執行該韌體的處理器131、一電連接該處理器131的暫存器132,及一組電連接該處理器131與該暫存器132的串行器/解串器133(SerDes)。該電腦節點1之周邊元件互連切換器13的串行器/解串器133經由通道(Lane)與該另一電腦節點1之周邊元件互連切換器13的串行器/解串器133通訊。值得一的是,對該電腦節點1而言,該另一電腦節點1為該電腦節點1的同儕電腦節點1,而對該另一電腦節點1而言,該電腦節點1為該另一電腦節點1的同儕電腦節點1。在本實施例中,每一記憶體12例如為一主記憶體。參閱圖7,圖7示意出每一電腦節點中用於執行該應用程式、該驅動程式,及該韌體的硬體。
以下將配合本發明於叢集式系統中維持記憶體共享方法之第一實施例,來說明該叢集式系統中各元件的運作細節。本實施例依序包含有一記憶體共享運作程序及一記憶體共享維持程序。
值得一提的是,於該叢集式系統的建置初期,該等電腦 節點1即可透過習知的方式經由非透明橋接完成兩者間記憶體12的共享。惟,當該叢集式系統之其中一電腦節點1重置時,將導致該等電腦節點1間的通訊失效,而本發明之技術特徵係在於如何維持叢集式系統中該等電腦節點1間之記憶體12共享,對於該叢集式系統之建置初期,該等電腦節點1如何進行記憶體12共享的相關設置步驟不於此詳細贅述。而在該叢集式系統初次完成該等電腦節點1間之記憶體12共享的程序後,該叢集式系統被配置來進行該記憶體共享運作程序。
參閱圖1與圖2,該叢集式系統實施本發明於叢集式系統中維持記憶體共享方法之記憶體共享運作程序。該記憶體共享運作程序說明了在初始時,該叢集式系統中之電腦節點1於經由非透明橋接建立好彼此共享記憶體12的狀態下,會進行的相關步驟。
在步驟21中,在該電腦節點1及該另一電腦節點1間之非透明橋接的連接狀態非處於斷線狀態下,該另一電腦節點1在一更新間隔時間週期性地改變一儲存於其記憶體12中的待更新資料。在本實施例中,該待更新資料例如為一預定數字,該另一電腦節點1對該待更新資料每次的改變可實作為每次將該預定數字進行加一的方式。實作上,可將上述待更新資料的更新步驟編程於該另一電腦節點1的應用程式或驅動程式中,以使得該另一電腦節點1經由所執行的應用程式或驅動程式週期性地更新該待更新資料。
參閱圖1與圖3,該叢集式系統實施本發明於叢集式系統中維持記憶體共享方法之記憶體共享維持程序,並包含以下步驟。
在步驟30中,該電腦節點1經由所執行的應用程式驗證其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。當該電腦節點1驗證出其與該另一電腦節點1間之非透明橋接的連接狀態非處於斷線狀態時,流程進行步驟31;當該電腦節點1驗證出其與該另一電腦節點1間之非透明橋接的連接狀態處於斷線狀態時,流程進行步驟32。
參閱圖1與圖4,值得特別說明的是,步驟30包含以下子步驟。
在子步驟301中,該電腦節點1經由所執行的應用程式偵測其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。當該電腦節點1偵測出其與該另一電腦節點1間之非透明橋接的連接狀態處於斷線狀態時,流程進行步驟302;當該電腦節點1偵測出其與該另一電腦節點1間之非透明橋接的連接狀態非處於斷線狀態時,流程進行子步驟305。另外值得特別說明的是,在本實施例所提供的一實施方式中,該電腦節點1係藉由所執行的應用程式判定當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料是否不同,以偵測其與該另一電腦節點1間之非透明橋接的連接狀態 是否處於斷線狀態。若當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料不同,則該電腦節點1偵測出其與該另一電腦節點1間之非透明橋接的連接狀態非處於斷線狀態;若當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料相同,則該電腦節點1偵測出其與該另一電腦節點1間之非透明橋接的連接狀態處於斷線狀態。
然而,參閱圖1與圖5,在本實施例所提供的另一實施方式中,子步驟301還包含以下子步驟。
在子步驟501中,該電腦節點1經由所執行的應用程式傳送一相關於其與該另一電腦節點1間之非透明橋接的連接狀態的詢問請求至該驅動程式,以使該驅動程式回應於該詢問請求將其所偵測到之一指示出與該另一電腦節點1間之非透明橋接之連接狀態的連線資料回傳至該應用程式。其中,該電腦節點1係藉由所執行的驅動程式根據當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料,來偵測出該連線資料。若當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料不同,則該電腦節點1偵測出其與該另一 電腦節點1間之非透明橋接的連接狀態非處於斷線狀態,進而產生指示出該電腦節點1與該另一電腦節點1間之連接狀態非處於斷線狀態的該連線資料;若當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料相同,則該電腦節點1偵測出其與該另一電腦節點1間之非透明橋接的連接狀態處於斷線狀態,進而產生指示出該電腦節點1與該另一電腦節點1間之連接狀態處於斷線狀態的該連線資料。
在此實施方式中,該電腦節點1藉由所執行的驅動程式以該更新間隔時間週期性地根據當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料,來偵測出該連線資料,藉此,該電腦節點1可即時地更新其所偵測到的該連線資料,以準確地驗證其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態;然而,該電腦節點1亦可藉由所執行的驅動程式以一大於等於該更新間隔時間的偵測間隔時間週期性地根據當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料,來偵測出該連線資料(亦即,一旦該電腦節點1藉由所執行的驅動程式收到來自該應用程式的詢問請求時,該電腦節點1即根據當前自該另一電腦節點1之記憶體12所讀 取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料,來偵測出該連線資料)。
在子步驟502中,該電腦節點1經由所執行的應用程式在接收到來自該驅動程式的連線資料後,根據該連線資料判定其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。
又或者,在本實施例所提供的另一實施方式中,該電腦節點1藉由所執行的驅動程式以該更新間隔時間週期性地根據當前自該另一電腦節點1之記憶體12所讀取到之待更新資料與前一次自該另一電腦節點1之記憶體12所讀取到之待更新資料,來偵測出該連線資料,且該電腦節點1藉由所執行的驅動程式在偵測到指示出該電腦節點1與該另一電腦節點1間之連接狀態處於斷線狀態的該連線資料後,傳送一指示出與該另一電腦節點1間之非透明橋接已斷線的斷線通知至該應用程式。該電腦節點1藉由所執行的應用程式判定是否接收到來自該驅動程式且由該驅動程式所偵測之該斷線通知,以偵測其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。
在子步驟302中,該電腦節點1經由所執行的應用程式將一計數值加一,並判定該計數值是否大於等於一預設值。當該電腦節點1判定出該計數值小於該預設值時,流程進行步驟303;當該電腦節點1判定出該計數值大於等於該預設值時,流程進行步驟 304。在本實施例中,該預設值為3,然而,在本發明之其他實施例中,該預設值亦可為2或大於3之數值,並不以此為限,藉由判定該計數值是否大於等於該預設值,可多次地判定該電腦節點1與該另一電腦節點1間之連接狀態是否處於斷線狀態,進而確認該電腦節點1與該另一電腦節點1間之連接狀態確實處於斷線狀態,而非硬體不穩定所造成的暫時斷線,因硬體不穩定而造成的暫時斷線,可能很快就能恢復連線,因而該電腦節點1在停留該偵測間隔時間後重新判定該電腦節點1與該另一電腦節點1間之連接狀態是否處於斷線狀態時,可能就會判定出該電腦節點1與該另一電腦節點1間之連接狀態已恢復為連線狀態的情況,藉此可避免該電腦節點1過度敏感而將因硬體不穩定而造成的暫時斷線判定成確實斷線,導致該電腦節點1與該另一電腦節點1進行不必要之記憶體共享設定程序。
在步驟303中,該電腦節點1經由所執行的應用程式計數該偵測間隔時間後,回到步驟301。
在步驟304中,該電腦節點1經由所執行的應用程式重設該計數值,並驗證出其與該另一電腦節點1間之非透明橋接的連接狀態處於斷線狀態,接著續行步驟32。
在子步驟305中,該電腦節點1經由所執行的應用程式重設該計數值,接著續行步驟31。
在步驟31中,該電腦節點1計數一預設時間後,回到步 驟30,其中該預設時間也大於等於該更新間隔時間。
在步驟32中,該電腦節點1經由所執行的應用程式傳送一指示該驅動程式重新初始化該記憶體12的重置請求至該驅動程式。
在步驟33中,該電腦節點1經由所執行的驅動程式回應於該重置請求執行一相關於重新初始化該記憶體12的重置程序,以產生並傳送一相關於該記憶體12的初始化結果至該另一電腦節點1。
在步驟34中,當該電腦節點1收到來自該另一電腦節點1,且相關於其自身之記憶體12的初始化結果時,該電腦節點1經由所執行的驅動程式執行一相關於共享該等記憶體12的共享設定程序。值得一提的是,該電腦節點1經由所執行的驅動程式而執行的重置程序及共享設定程序,與該叢集式系統之建置初期所進行的記憶體12共享設置流程中所執行的重置程序及共享設定程序相同。
值得特說明的是,在該另一電腦節點1重置(亦即,該另一電腦節點1被置換為新的電腦節點,或是該另一電腦節點1被熱插拔後又重新被安裝回該叢集式系統)後,該另一電腦節點1即會重新執行該重置程序,以產生另一相關於該另一電腦節點1之記憶體12的初始化結果並傳送至該電腦節點1。而該另一電腦節點1在接收到來自該電腦節點1,且相關於其自身之記憶體12的初始化結果 時,該另一電腦節點1也會經由所執行的驅動程式執行一相關於共享該等記憶體12的共享設定程序,藉此,即可完成兩電腦節點1間之記憶體12的共享。在進行記憶體的共享時,該等電腦節點皆須進行該重置程序及共享設定程序方能順利完成兩電腦節點1間之記憶體12的共享,若僅有一方進行該重置程序是無法達成記憶體共享之效果。
本發明於叢集式系統中維持記憶體共享方法之第二實施例也是藉由該叢集式系統來實施,並包含下列步驟。該第二實施例大致上是與該第一實施例相同,相同之處不在贅言,其中不同之處在於:該第二實施例並不會執行步驟21,而子步驟301包含一子步驟601及一子步驟602。
參閱圖1與圖6,本發明於叢集式系統中維持記憶體共享方法之第二實施例的步驟301包含以下步驟。
在子步驟601中,該電腦節點1經由所執行的應用程式透過該驅動程式傳送一相關於其與該另一電腦節點1間之非透明橋接的連接狀態的詢問請求至該韌體,以使該韌體回應於該詢問請求將其所偵測到之一指示出與該另一電腦節點1間之非透明橋接之連接狀態的連線資料透過該驅動程式回傳至該應用程式。其中,該電腦節點1的周邊元件互連切換器13係藉由所執行的韌體根據一暫存於該周邊元件互連切換器13之暫存器132中,且相關於其與該另一電 腦節點1間之非透明橋接的連接狀態的狀態資料,來偵測出該連線資料,在此實施方式中,該周邊元件互連切換器13藉由所執行的韌體直接去讀取該暫存器132的狀態資料,並將其作為該連線資料透過該驅動程式回傳至該應用程式。值得一提的是,該周邊元件互連切換器13的暫存器132與串行器/解串器133實體連接,當該等電腦節點1間的通訊斷線時,該暫存器132的狀態資料即會反應出該等電腦節點1間的連接狀態處於斷線狀態;當該等電腦節點1間的通訊處於連線暢通時,該暫存器132的狀態資料亦會反應出該等電腦節點1間的連接狀態非處於斷線狀態,其中,儲存於該暫存器132的狀態資料係藉由與該暫存器132電連接的該處理器131來維護。
在子步驟602中,該電腦節點1經由所執行的應用程式在接收到來自該韌體的連線資料後,根據該連線資料判定其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。
又或者,在本實施例所提供的另一實施方式中,該電腦節點1的周邊元件互連切換器13係藉由所執行的韌體以該偵測間隔時間或更新間隔時間週期性地讀取該狀態資料,且該電腦節點1的周邊元件互連切換器13係藉由所執行的韌體在讀取到指示出該電腦節點1與該另一電腦節點1間之連接狀態處於斷線狀態的該狀態資料後,透過該驅動程式傳送一指示出與該另一電腦節點1間之非透明橋接已斷線的斷線通知至該應用程式。該電腦節點1係藉由所 執行的應用程式判定是否透過該驅動程式接收到來自該韌體且由該韌體所偵測之指示出與該另一電腦節點1間之非透明橋接已斷線的該斷線通知,以偵測其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態。
綜上所述,本發明於叢集式系統中維持記憶體共享方法,藉由該電腦節點1主動經由所執行的應用程式驗證其與該另一電腦節點1間之非透明橋接的連接狀態是否處於斷線狀態,當該電腦節點1驗證出該等電腦節點1間處於斷線狀態時,自動請求該驅動程式執行相關於重新初始化該記憶體12的該重置程序,並在收到來自該另一電腦節點1的初始化結果後執行該共享設定程序,藉此,即便該另一電腦節點1重置時(亦即,該另一電腦節點1發生異常,而被置換為新的電腦節點,或是因發生異常而重新開機,又或是該另一電腦節點1被熱插拔後又重新被安裝回該叢集式系統),該電腦節點1可自動判斷其與該另一電腦節點1的連接狀態,並重新連接,以達成自動修復兩電腦節點1間之連接狀態以維持記憶體12共享的目的。此外,該電腦節點1於驗證其與該另一電腦節點1間之連接狀態時,可透過所執行的應用程式直接週期性地根據當前所讀取到之待更新資料與前一次所讀取到之待更新資料來偵測連接狀態,或是透過所執行的應用程式週期性地詢問由該驅動程式所偵測出的該連線資料來判定,甚至是,透過該驅動程式主動傳送斷線通 知至該應用程式,而使該應用程式藉由判定是否接收到該斷線通知以判定連接狀態,又或是,透過所執行的應用程式週期性地透過該驅動程式詢問由該韌體所偵測出的該連線資料來判定,甚至是,藉由該韌體透過該驅動程式主動傳送斷線通知至該應用程式,而使該應用程式藉由判定是否接收到該斷線通知以判定連接狀態,故確實能達成本發明的目的。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
31~34·· 步驟  

Claims (9)

  1. 一種於叢集式系統中維持記憶體共享方法,藉由一叢集式系統來實施,該叢集式系統包括一電腦節點及另一經由非透明橋接與該電腦節點連接以共享記憶體的電腦節點,每一電腦節點包括一中央處理器、一記憶體、一由該中央處理器所執行且運行於一使用者空間的應用程式、一由該中央處理器所執行且運行於一核心空間的驅動程式,及一電連接該中央處理器且執行一韌體的周邊元件互連切換器,該方法包含以下步驟: (A)藉由該電腦節點經由所執行的應用程式驗證其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態; (B)當該電腦節點驗證出其與該另一電腦節點間之非透明橋接的連接狀態處於斷線狀態時,該電腦節點經由所執行的應用程式傳送一指示該驅動程式重新初始化該記憶體的重置請求至該驅動程式; (C)藉由該電腦節點經由所執行的驅動程式回應於該重置請求執行一相關於重新初始化該記憶體的重置程序,以產生一相關於該記憶體的初始化結果;及 (D)當該電腦節點收到來自該另一電腦節點,且相關於其自身之記憶體的初始化結果時,該電腦節點經由所執行的驅動程式執行一相關於共享該等記憶體的共享設定程序。
  2. 如請求項1所述的於叢集式系統中維持記憶體共享方法,在該步驟(A)之後,還包含一步驟(E),當該電腦節點驗證出其與該另一電腦節點間之非透明橋接的連接狀態非處於斷線狀態時,該電腦節點計數一預設時間後,回到步驟(A)。
  3. 如請求項1所述的於叢集式系統中維持記憶體共享方法,其中,步驟(A)包含以下子步驟: (A-1)藉由該電腦節點經由所執行的應用程式偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態; (A-2)當該電腦節點偵測出其與該另一電腦節點間之非透明橋接的連接狀態處於斷線狀態時,該電腦節點經由所執行的應用程式將一計數值加一,並判定該計數值是否大於等於一預設值; (A-3)當該電腦節點判定出該計數值小於該預設值時,該電腦節點經由所執行的應用程式計數一偵測間隔時間後,重複步驟(A-1); (A-4)當該電腦節點判定出該計數值大於等於該預設值時,該電腦節點經由所執行的應用程式重設該計數值,並驗證出其與該另一電腦節點間之非透明橋接的連接狀態處於斷線狀態;及 (A-5)當該電腦節點偵測出其與該另一電腦節點間之非透明橋接的連接狀態非處於斷線狀態時,該電腦節點經由所執行的應用程式重設該計數值,並計數一預設時間後,重複步驟(A-1)。
  4. 如請求項3所述的於叢集式系統中維持記憶體共享方法,還包含一步驟: (F)在該電腦節點及該另一電腦節點間之非透明橋接的連接狀態非處於斷線狀態下,該另一電腦節點在一小於等於該偵測間隔時間的更新間隔時間週期性地改變一儲存於其記憶體中的待更新資料; 其中,在步驟(A-1)中,該電腦節點係藉由所執行的應用程式判定當前自該另一電腦節點之記憶體所讀取到之待更新資料與前一次自該另一電腦節點之記憶體所讀取到之待更新資料是否不同,以偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態。
  5. 如請求項3所述的於叢集式系統中維持記憶體共享方法,其中,步驟(A-1)包含以下子步驟: (A-1-1)藉由該電腦節點經由所執行的應用程式傳送一相關於其與該另一電腦節點間之非透明橋接的連接狀態的詢問請求至該驅動程式,以使該驅動程式回應於該詢問請求將其所偵測到之一指示出與該另一電腦節點間之非透明橋接之連接狀態的連線資料回傳至該應用程式;及 (A-1-2)藉由該電腦節點經由所執行的應用程式在接收到來自該驅動程式的連線資料後,根據該連線資料判定其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態。
  6. 如請求項5所述的於叢集式系統中維持記憶體共享方法,還包含一步驟: (F)在該電腦節點及該另一電腦節點間之非透明橋接的連接狀態非處於斷線狀態下,該另一電腦節點在一小於等於該偵測間隔時間的更新間隔時間週期性地改變一儲存於其記憶體中的待更新資料; 其中,在步驟(A-1-1)中,該電腦節點係藉由所執行的驅動程式根據當前自該另一電腦節點之記憶體所讀取到之待更新資料與前一次自該另一電腦節點之記憶體所讀取到之待更新資料,以偵測出該連線資料。
  7. 如請求項3所述的於叢集式系統中維持記憶體共享方法,其中,在步驟(A-1)中,該電腦節點係藉由所執行的應用程式判定是否接收到來自該驅動程式且由該驅動程式所偵測之一指示出與該另一電腦節點間之非透明橋接已斷線的斷線通知,以偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態。
  8. 如請求項3所述的於叢集式系統中維持記憶體共享方法,其中,步驟(A-1)包含以下子步驟: (A-1-1)藉由該電腦節點經由所執行的應用程式透過該驅動程式傳送一相關於其與該另一電腦節點間之非透明橋接的連接狀態的詢問請求至該韌體,以使該韌體回應於該詢問請求將其所偵測到之一指示出與該另一電腦節點間之非透明橋接之連接狀態的連線資料透過該驅動程式回傳至該應用程式;及 (A-1-2)藉由該電腦節點經由所執行的應用程式在接收到來自該韌體的連線資料後,根據該連線資料判定其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態。
  9. 如請求項3所述的於叢集式系統中維持記憶體共享方法,其中,在步驟(A-1)中,該電腦節點係藉由所執行的應用程式判定是否透過該驅動程式接收到來自該韌體且由該韌體所偵測之一指示出與該另一電腦節點間之非透明橋接已斷線的斷線通知,以偵測其與該另一電腦節點間之非透明橋接的連接狀態是否處於斷線狀態。
TW108102115A 2019-01-19 2019-01-19 叢集式系統中維持記憶體共享方法 TWI704460B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW108102115A TWI704460B (zh) 2019-01-19 2019-01-19 叢集式系統中維持記憶體共享方法
US16/740,853 US10853297B2 (en) 2019-01-19 2020-01-13 Method for maintaining memory sharing in a computer cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108102115A TWI704460B (zh) 2019-01-19 2019-01-19 叢集式系統中維持記憶體共享方法

Publications (2)

Publication Number Publication Date
TW202028993A TW202028993A (zh) 2020-08-01
TWI704460B true TWI704460B (zh) 2020-09-11

Family

ID=71608925

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108102115A TWI704460B (zh) 2019-01-19 2019-01-19 叢集式系統中維持記憶體共享方法

Country Status (2)

Country Link
US (1) US10853297B2 (zh)
TW (1) TWI704460B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112910981B (zh) * 2021-01-27 2022-07-26 联想(北京)有限公司 一种控制方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066430A1 (en) * 2010-09-09 2012-03-15 Stephen Dale Cooper Use of pci express for cpu-to-cpu communication
US20150186310A1 (en) * 2013-12-30 2015-07-02 Paul S. Levy Systems and methods for automatic root port to non-transparent bridge switching for a pci express interconnect architecture
TW201720103A (zh) * 2015-11-25 2017-06-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
CN107734037A (zh) * 2017-10-19 2018-02-23 郑州云海信息技术有限公司 一种nas集群和数据访问方法
TW201826122A (zh) * 2016-12-31 2018-07-16 美商英特爾股份有限公司 用於異質計算之系統,方法,及設備

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950228A (en) * 1997-02-03 1999-09-07 Digital Equipment Corporation Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables
US8909862B2 (en) * 2009-06-30 2014-12-09 Intel Corporation Processing out of order transactions for mirrored subsystems using a cache to track write operations
JP2012133405A (ja) * 2009-07-24 2012-07-12 Hitachi Ltd ストレージ装置及びそのデータ転送制御方法
US8463934B2 (en) * 2009-11-05 2013-06-11 Rj Intellectual Properties, Llc Unified system area network and switch
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
US8458413B2 (en) * 2010-10-27 2013-06-04 International Business Machines Corporation Supporting virtual input/output (I/O) server (VIOS) active memory sharing in a cluster environment
JP5833756B2 (ja) * 2012-03-23 2015-12-16 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置
TW201411358A (zh) * 2012-09-10 2014-03-16 Accusys Inc 透過PCIe介面連接於一主機系統的儲存裝置和方法
US9519606B2 (en) * 2013-07-22 2016-12-13 GigaIO Networks, Inc. Network switch
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.
US10303646B2 (en) * 2016-03-25 2019-05-28 Microsoft Technology Licensing, Llc Memory sharing for working data using RDMA
US10402361B2 (en) * 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066430A1 (en) * 2010-09-09 2012-03-15 Stephen Dale Cooper Use of pci express for cpu-to-cpu communication
US20150186310A1 (en) * 2013-12-30 2015-07-02 Paul S. Levy Systems and methods for automatic root port to non-transparent bridge switching for a pci express interconnect architecture
TW201720103A (zh) * 2015-11-25 2017-06-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
TW201826122A (zh) * 2016-12-31 2018-07-16 美商英特爾股份有限公司 用於異質計算之系統,方法,及設備
CN107734037A (zh) * 2017-10-19 2018-02-23 郑州云海信息技术有限公司 一种nas集群和数据访问方法

Also Published As

Publication number Publication date
US10853297B2 (en) 2020-12-01
TW202028993A (zh) 2020-08-01
US20200233826A1 (en) 2020-07-23

Similar Documents

Publication Publication Date Title
JP6383839B2 (ja) リモートkvmセッションに使用する方法、記憶装置及びシステム
US10404690B2 (en) Authentication-free configuration for service controllers
EP2951963B1 (en) Failover in response to failure of a port
US8566635B2 (en) Methods and systems for improved storage replication management and service continuance in a computing enterprise
US11392417B2 (en) Ultraconverged systems having multiple availability zones
US20170102952A1 (en) Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os)
TWI581592B (zh) 用於配線連接之方法及配線連接系統
US20100162045A1 (en) Method, apparatus and system for restarting an emulated mainframe iop
US20170031694A1 (en) System and method for remote system configuration managment
US20080263255A1 (en) Apparatus, System, and Method For Adapter Card Failover
TW200923661A (en) Improved remote universal serial bus access method
EP2888864B1 (en) System and method for ensuring internet protocol (ip) address and node name consistency in a middleware machine environment
US11953976B2 (en) Detecting and recovering from fatal storage errors
US20080263391A1 (en) Apparatus, System, and Method For Adapter Card Failover
TWI604304B (zh) 電子裝置及其檢測方法
TWI704460B (zh) 叢集式系統中維持記憶體共享方法
US8032791B2 (en) Diagnosis of and response to failure at reset in a data processing system
US9003068B2 (en) Service channel for connecting a host computer to peripheral devices
US10049058B2 (en) Method for resolving a cable mismatch in a target device
TWI547873B (zh) 端點伺服器的控制模組及其韌體更新方法
CN111666231B (zh) 于丛集式系统中维持存储器共享方法
JP2020086538A (ja) 計算機システム、及びデバイス管理方法