系統簡介
設想這樣一台 linux 伺服器: 根分區是唯讀,非常安全,即使 root 賬戶也無可奈何,因為根分區是唯讀。這個唯讀根分區(或者稱為定製的一個作業系統),實際上是獨立的用戶端伺服器通過網路從一個中控節點掛載的一份作業系統鏡像,這樣可以集中控制作業系統,並且任何修改都是即時生效的,當然也允許用戶端伺服器有特性的檔案存在,例如 etc 下的某些設定檔,這個系統是用我們耳熟的 bootp,tftp,nfs,dhcp 這些服務搭建起來的。
核心單點
中控節點是一個單點,儲存了一個或者多個定製的作業系統,提供如上所述的各種服務,如果有單點故障,會導致整個叢集都癱瘓。所以需要有備機即時同步資料,並且使用虛 IP 來提供服務,這裡採用了開源的 linux-ha 下的 heartbeat 和 drbd 服務來避免單點故障,主備機自動切換啟動服務,實現秒級的自動遷移,資料是 DRBD 即時同步的。
特性優點
集中,只維護一個作業系統
即時,任何修改都是即時生效的
安全,root 賬戶都無可奈何啦
例外,允許特性檔案存在
適用情境
MMORPG 類似的服務
伺服器端只提供計算和資料庫服務
安全等級很高
root 使用者登入機器也不能幹壞事了,非常安全。
其他場合
這麼一個古靈精怪的系統總有其他用武之地吧!
搭建步驟
drbd 和 heartbeat 的部署
重新編譯核心
定做作業系統
tftp 服務
dhcp 服務
nfs 服務
pxe 網卡
step by step…
詳細步驟省略,這幾種服務的官網可以查到相關的詳情。
【重點提示】
I. 編譯核心:
module 參數編譯的只能在核心啟動之後才會工作, 所以我們需要選擇 y.
把 nfs 編譯到核心裡,支援 Root file system on NFS 等
如何讓 var tmp 正常,不然很多系統內建的服務啟動失敗。
Ramdisk: 把 var tmp 目錄放到記憶體裡
II. 啟動系統:
帶上 mac 地址出發吧!
開機,網卡引導; 自動尋找 DHCP 服務;
2. 下載我們編譯的核心檔案。
通過 dhcp 和 tftp 來下載定製的核心檔案。
3. 定位自己的 IP,啟動作業系統。
4. 把 var,tmp 放到記憶體裡。
5. 登入作業系統
順利啟動完畢,可以登入進去了!
6. 看看 Root on NFS 是怎麼個掛載法。
7. 試試 rm –rf / 吧!