Cluster
經典集群問題的解決方案
這是一個多步驟的問題,所以請耐心等待。
我正在考慮建構一個小型(10 - 20 個節點)集群。但是,我希望普通程序(不是為集群設計的)能夠利用額外的處理速度。在最理想的情況下,我希望能夠在整個集群上執行單個管理程序。據我所知,這個問題沒有一個好的解決方案可以讓一個普通的程序在集群上執行得更快。
因此,我正在集思廣益,我將如何設計這樣一個系統,以及嘗試是否可行。似乎集群的固有問題是移動數據比處理數據需要更多時間。(即,將問題從一個節點轉移到另一個節點需要 2 秒,但在第一個節點上解決它只需要 1 秒。)但是,我已經想到了一個可能的解決方案。
我們只是說理論上集群中的所有節點都可以從同一個磁碟啟動。因此,他們都可以直接訪問相同的數據和相同的程序。其次,我們假設可以修改 Linux 核心,將每個新命令發送到不同的從節點,無限循環通過所有節點。鑑於這兩個條件,使用者可以登錄到主節點的終端並以正常(非面向集群)格式執行命令,但命令的負載將或多或少均勻地分佈在整個集群中。
因此,通過介紹,這是我的兩個問題:
- 是否有可能創建一個所有電腦都從一個磁碟(可能是 NAS)啟動的環境? (我知道 PXE,但據我所知,它不提供持久儲存,它只託管作業系統。)如果目前可能,怎麼做?
- 是否可以修改核心以將每個新命令委託給單獨的節點? (這可以通過修改 bash 二進製文件而不是核心本身來完成 - 我不確定。)如果是這樣,請說明如何。
這是我在 Stack Exchange 上嘗試過的最複雜的問題,所以我希望人們在評論中提出問題。然而,如果這個解決方案能夠真正實施,它可能會徹底改變虛擬化。
是否有可能創建一個所有電腦都從一個磁碟(可能是 NAS)啟動的環境?(我知道 PXE,但據我所知,它不提供持久儲存,它只託管作業系統。)
當然,PXE 與 NFS 安裝共享的組合用於持久儲存。
是否可以修改核心以將每個新命令委託給單獨的節點?
是的。
很簡單,對吧?沒有那麼多。
您應該問的問題是:這樣做需要做多少工作?
已經有公司在這個問題上工作了 30 年,投入了數十億美元,但問題還沒有解決。這並不是說它無法解決,但這是一個非常複雜的問題。