MOSIX

MOSIX是Linux核心集群計算的功能之一。它支持的作業系統平台有BSD/OS 和Linux,它允許任意多個基於X86/Pentium的伺服器和工作站協同工作。在MOSIX集群環境中,用戶無需對應用程式進行修改,或將應用程式與庫連線起來,或將應用程式分配到不同的節點上運行。

MOSIX為Linux核心增添了集群計算的功能。它支持的作業系統平台有BSD/OS 和Linux,它允許任意多個基於X86/Pentium的伺服器和工作站協同工作。在MOSIX集群環境中,用戶無需對應用程式進行修改,或將應用程式與庫連線起來,或將應用程式分配到不同的節點上運行。MOSIX會自動將這些工作透明地交給別的節點來執行。
MOSIX的核心是適應性的資源管理算法,它對各節點的負載進行監測並做出相應的回應,從而提高所有進程的整體性能。它使用搶先的進程遷移方法來在各節點中分配和再分配進程,從而充分利用所有的資源。適應性的資源管理算法具體上又包括適應性的負載平衡算法、記憶體引導算法和檔案I/O的最佳化算法。這些算法都對集群中的資源使用情況的變化做出回響。如:節點上的不平衡的負載分布或由於記憶體不足而導致的過多的磁碟換入換出。在這種情況下,MOSIX將進程從一個節點遷移到另外一個節點上,從而來均衡負載或將進程遷移到有足夠的記憶體空間的節點上。
由於MOSIX是在Linux的核心中實現的,因此它的操作對應用程式而言是完全透明的。可以用它來定義不同的集群類型,這些集群中的機器可以相同也可以不同。
與Turbocluster、Linux Virtual Server、Lsf等集群系統不同的是,MOSIX集群中的每個節點既是主節點又是服務節點,不存在主控節點。對於那些在本地節點創建的進程而言,該節點就是一個主節點;對於那些從遠方節點遷移過來的進程而言,該節點就是服務節點。這意味著可以在任意時刻向集群中增加節點或從集群中刪除節點,而不會對正在運行的進程產生不良的影響。MOSIX的另外一個特性就是它的監測算法能夠監測每個節點的速度、負載、可用記憶體、IPC 以及I/O rate 。系統使用這些信息來決定將進程傳送到哪個具體的節點上。當在某個節點上創建了一個進程以後,該進程就在這個節點上執行。當該節點的負載超過了一定的閥值以後,就將該進程透明地遷移到別的節點上繼續執行。
MOSIX檔案系統採用直接檔案系統訪問的方法,它可以允許遷移到別的節點的進程在本地進行I/O操作。這樣就減少了需要進行I/O操作的進程與創建該進程的節點之間的通訊,從而允許這些進程更加自由地在集群中的節點中進行遷移。MOSIX檔案系統使所有節點都可以像訪問本地檔案系統一樣透明地訪問其它節點上的所有目錄和檔案。
一個低端的MOSIX配置可以包含通過乙太網連線起來的多台PC機。一個較大的配置可以包含通過快速乙太網連線起來的多台工作站和伺服器。高端的MOSIX配置可以包含通過Gigabit-Ethernet連線起來的多台SMP 或非SMP工作站和伺服器。
MOSIX檔案系統
MOSIX集群使用了自己的檔案系統MFS檔案系統。MFS將集群中的所有檔案系統和目錄都看作是一個檔案系統,而且它提供了對所有節點上的所有檔案系統的統一訪問,它還通過只提供一個cache保證了cache的一致性。
MFS包含了許多位於不同節點上的檔案子樹,因此它就允許對多個檔案進行並行操作和cache一致性。
在MOSIX集群中進行進程遷移時,如果此進程主要占用的是CPU資源,則遷移此進程對於提供系統性能是非常有效的,但是如果此進程需要進行大量的I/O操作,則遷移進程非常不利。這是因為每個I/O操作都需要與該進程原來所處的節點進行通訊。
因此MFS增加了對DFSA(Direct File System Acess)的支持。DFSA的目的就是讓那些需要進行大量I/O操作的進程遷移到遠端節點上,該遠端節點擁有大多數I/O操作將會涉及到的檔案,因此大多數的I/O操作都能在遠端節點上完成,而且在遠端節點上可以通過本地訪問來訪問數據。如果一個系統調用是節點無關的,此系統調用就會在遠端節點上執行,否則就在本地執行。MFS比其它網路檔案系統優越的地方就是它允許使用本地檔案系統,這樣就減少了進程和檔案伺服器之間的通訊開銷。

相關詞條

熱門詞條

聯絡我們