分散型分布式計算系統的制作方法
【技術領域】
[0001]本發明總體上涉及計算機系統,并且更具體而言涉及用于操作聯網的設備或節點的分布式系統的技術。
【背景技術】
[0002]為了提供分布式文件系統的大小和帶寬的可擴展性,傳統的存儲系統將文件的存儲分散在分布式存儲系統中的多個存儲節點上。傳統上,雖然存儲節點中的文件存儲已經被散布,但是,文件系統的管理、處理以及文件元數據被集中在控制節點或任務管理節點中。
[0003]在傳統的分布式文件系統中,用于定位文件系統內的數據的方法已經使用被當作“帶外”或者不由通常用于訪問文件系統的協議支持的機制。帶外機制的一個示例用在ParaScale?分布式存儲平臺中。在ParaScale?分布式存儲平臺中,集中式任務管理器或主設備打開經由網絡文件系統(NFS)導出的掛載點上的文件,使用“stat”操作來獲得關于文件的關鍵信息,并且接著使用文件的關鍵信息、接收到的諸如為服務器的地址之類的數據位置的可擴展標記語言(XML)信息來在控制節點上傳送數據位置服務。ParaScale?平臺的客戶端接著能夠使用服務器的地址來啟動數據任務。
[0004]如上所記載的,傳統的分布式文件系統使用負責協調所有節點上的任務的集中式任務管理器。典型地,任務管理器引導其他節點執行任務。雖然這樣的配置允許以已知順序來執行任務,但是,如果任務管理器故障,則分布式文件系統的彈性(resiliency)將受損,因為任務管理器必須在能夠啟動附加的任務之前從故障中恢復。進而,待定任務的日志傳統上已經放置在共享永久性存儲器上或者在多個節點之間被復制。因此,任務管理器造成作為針對分布式文件系統的單個故障點的問題。
[0005]在分布式系統中,系統中的節點的IP地址分配傳統上由動態主機配置協議(DHCP)處理。如果在分布式系統中存在虛擬機,則DHCP造成的問題在于DHCP—般性地向網絡中的所有系統分配IP地址。結果,DHCP中存在關于對能夠被容易地隔離以僅向存在于分布式系統中的虛擬機提供IP地址的DHCP服務器進行配置的問題。
【發明內容】
[0006]本發明的實施方式總體上涉及一種分布式計算機系統,并且更具體而言,涉及用于在分布式存儲系統(這里“集群”)中管理任務的發出的技術,包括用于確定應該啟動特定任務的分布式存儲系統中的位置、創建具有可靠IP地址的虛擬機的任務、以及分布式存儲系統中的任務的錯誤恢復的技術。
[0007]鑒于傳統分布式系統中的問題,在本發明的某些實施方式中,配置集群以使得任務能夠從集群中的任意節點向集群中的任意其他或所有其他節點發出,并且能夠以彈性和容錯特性來存儲和執行任務。例如,集群采用一致(consensus)算法,諸如用于實現容錯分布式系統的Paxos算法,由此能夠以已知順序在集群中的每個節點、節點的子集或所有節點上分發和處理任務。在某些實施方式中,如果節點由于故障等而脫機,并且為脫機節點定義了任務,則當節點回到在線(例如,從故障中恢復)時必須運行該任務。通過使用一致算法,待定任務作為一個或多個有序消息而從集群中的任意節點啟動并且廣播到集群中的所有節點。例如,可以使用諸如為這里通過引用并入的“Paxos Made Simple SIGACT News,第32卷,第4期(2001年12月),第51-58頁,Leslie Lamport”中描述的一致算法、或者其變型的一致算法。結果,之前的實施方式有利地提供了允許容錯和節點彈性的分散型分布式系統。
[0008]另外,在本發明的其他實施方式中,當在集群中的節點上啟動開啟虛擬機(VM)的任務時,包含虛擬機的具體特性的配置文件被引用,該配置文件包括將由虛擬機使用的介質接入控制(MAC)地址。根據本發明的各種實施方式,將由虛擬機使用的IP地址被編碼在MAC地址中。結果,VM能夠被給予不與集群中使用的其他IP地址沖突的諸如為IPv4的IP地址,并且不需要依賴于動態主機配置協議(DHCP)服務器來嘗試向虛擬機分配IP地址。結果,前述實施方式有利地允許使用MAC地址作為從主機節點通過管理程序(hypervisor)向虛擬機通信IP地址的管道來為虛擬機設置IP地址。
[0009]再進一步地,在本發明的又一實施方式中,文件系統具有其中每個文件具有對應的映射文件的、擴展的命名空間,該對應的映射文件具有指定該文件在集群中的數據位置的特殊擴展。通過擴展命名空間以包括用以指定映射文件的特殊擴展,能夠使用典型地用于訪問存儲在文件系統中的數據的諸如為網絡文件系統(NFS)v3.1的協議來在文件系統中訪問映射文件。然而,映射文件在文件系統的正常目錄列表中會不可見。結果,前述實施方式有利地允許使用用于訪問數據自身的相同的機制來訪問集群中的數據的位置信息。
【附圖說明】
[0010]圖1為根據本發明的實施方式的集群式計算機系統的框圖。
[0011]圖2為根據本發明的實施方式的客戶端的框圖。
[0012]圖3為根據本發明的實施方式的節點的框圖。
[0013]圖4為根據本發明的實施方式的節點的存儲設備的詳細框圖。
[0014]圖5為根據本發明的實施方式的節點的信道板的框圖。
[0015]圖6為根據本發明的實施方式的節點的處理器板的框圖。
[0016]圖7為根據本發明的實施方式的節點的驅動板的框圖。
[0017]圖8A、8B以及SC為根據本發明的實施方式的客戶端對文件系統的訪問的框圖。
[0018]圖9A、9B以及9C為根據本發明的實施方式的節點的存儲設備的框圖。
[0019]圖1O為根據本發明的實施方式的節點的功能框圖。
[0020]圖1lA為根據本發明的實施方式的管理表。
[0021 ]圖1IB為根據本發明的實施方式的任務日志。
[0022]圖12為根據本發明的實施方式的節點的網絡層、任務隊列層以及執行層的抽象框圖。
[0023]圖13為根據本發明的實施方式的UUID分配過程。
[0024]圖14為根據本發明的實施方式的任務執行過程。
[0025]圖15為根據本發明的實施方式的節點重啟過程。
[0026]圖16示出了根據本發明的實施方式的經編碼的MAC地址的結構。
[0027]圖17為根據本發明的實施方式的IP地址編碼示圖。
[0028]圖18為根據本發明的實施方式的管理程序層、MAC/IP層以及虛擬機層的抽象框圖。
[0029]圖19為根據本發明的實施方式的配置過程。
[0030]圖20為根據本發明的實施方式的文件系統的框圖。
[0031]圖21為根據本發明的實施方式的文件、映射文件以及位置響應的示圖。
[0032]圖22示出了根據本發明的實施方式的文件與映射文件之間的關系。
[0033]圖23為根據本發明的實施方式的用于更新文件屬性和元數據的處理流程。
[0034]圖24為根據本發明的實施方式的客戶端對映射文件的訪問的處理流程。
[0035]圖25為根據本發明的實施方式的客戶端對映射文件的訪問的更詳細的處理流程。
【具體實施方式】
[0036]這里所討論的實施方式為本發明的一個或多個示例的闡述。由于本發明的這些實施方式參照附圖來描述,這里所描述的方法和/或具體結構的各種修改和適應可以變得對本領域技術人員顯而易見。依賴于本發明的教導的所有這樣的修改、適應、或變形被認為是在本發明的范圍內。由此,本描述和附圖不應該被認為是限制意義,因為理解到本發明決不限于僅僅其中所示的實施方式。
[0037]集群式計算機系統
[0038]根據各種實施方式,諸如為集群式存儲系統的可擴展的分布式計算機系統(這里稱作“集群”)將文件系統中的文件的命名空間和元數據屬性與文件的實際數據內容分離。在一個實施方式中,可以實現為服務器的一個或多個節點負責處理文件的命名空間、元數據、以及位置信息。另外,節點負責訪問文件系統中的文件并且還可以負責提供物理存儲空間。每個節點典型地采用無共享(shared-nothing)的架構,意指每個節點具有至少一個對應的存儲設備,該對應的存儲設備為本地的或通過存儲區域網(SAN)等而附加的,且不被集群中的其他節點共享。
[0039]在根據某些實施方式的集群中,文件系統自身橫跨集群,并且不物理地關聯到集群內的特別的節點或者節點的子集。因此,集群能夠在多個維度上縮放。可以添加節點,從而縮放用于伺服存儲在文件系統中的文件的容量和帶寬。每個節點可以提供處理能力和存儲能力兩者。此外,可以添加節點以在集群中重分發操作的負載。
[0040]在某些實施方式中,用戶(例如,客戶端計算機系統)可以使用工業標準協議而不修改掛載文件系統,從節點訪問集群內的文件,以及執行集群中和/或集群上的其他任務。在某些實施方式中,集群提供全局命名空間,其允許用戶查看整個文件系統而不論用于訪問文件系統的節點。
[0041]因此,在本發明的一個實施方式中的分布式無共享存儲系統包括存儲與在文件系統中的多個文件相關聯的元數據、對象標識符、以及位置信息的節點;以及存儲該多個文件的多個節點。集群中的節點能夠從客戶端接收針對文件系統中的文件的請求并且確定集群內的文件的位置。節點與其他節點通信以確定與文件相關聯的元數據、對象標識符、以及位置信息。節點接著使用從集群接收的元數據、對象標識符、以及位置信息來訪問文件系統中的文件,以伺服來自客戶端的請求。
[0042]圖1為根據本發明的實施方式的分布式計算機系統(例如,集群)100的圖示。集群100包括客戶端110和120、節點130、140、150、160、以及170。客戶端110和120、以及節點130、140、150、160、以及170使用通信網絡180而能夠通信地耦合。可選地,可以有一個或多個連接客戶端110和120與節點130、140、150、160、以及170的網絡。
[0043]一般而言,客戶端110和120為諸如為個人計算機(PC)、工作站、膝上型計算機、個人數字助理(PDA)、服務器、大型主機等等的計算機系統。客戶端110和120被配置成使用諸如為NFS、CIFS、HTTP、FTP等等的文件訪問協議來訪問遠程文件和文件系統。適于實現客戶端110和120的計算機系統的一個示例在圖2中示出。
[0044]節點130、140、150、160、以及170可以為PC、工作站、服務器、大型主機等等。節點在本地文件系統、網絡附加存儲(NAS)、存儲區域網絡(SAN)、數據庫等等上存儲與文件系統中的文件相關聯的信息。節點還可以用本地文件系統和數據庫的組合來存儲與文件系統中的文件相關聯的信息。適于實現節點130、140、