Virtual Machines in CSCC

對於”對PC產業稍微有所關注”的人來說
應該都注意到了這兩年CPU的發展重心漸漸移往多核心設計去了
詳細的原因(散熱、耗電)不是我這裡要講的,所以就先撇開不談

目前主流應該是雙核心,但四核心已經漸漸浮上檯面,八核心也蓄勢待發
但除了發燒級玩家以外,多數的 End-User事實上需要的僅僅是順利完成手上的工作罷了
即便對我這個電腦重度依賴症患者使用者來說
我仍舊寧願升級鍵盤螢幕滑鼠硬碟,也沒打算更新我整個電腦系統
手上的電腦系統還是停留在三年前的 AMD 單核心 CPU (Barton 2500+)
(即便我心中小惡魔早已蠢蠢欲動)

對於CSCC來說,為了消化年度預算改善使用者環境,更新伺服器硬體是每年的大事
並且因應兩系合併,對系計中的使用需求大增但是空間卻大幅緊縮
上個年度我們就盡可能的將伺服器換成機架式的 Server
因此現在進到系計中機房,就可以看到數櫃的 1U Server,其實還滿壯觀的 :-)
… 又扯遠了 …

雖然說空間滿重要的,對CSCC來說盡可能妥善利用機櫃空間非常有必要
但是新採購的機器幾乎都已經是雙核心架構的機種了,
是否真有能夠好好利用這些伺服器的應用呢? 事實上是少之又少!
除了幾個比較可能出現 heavy load 的服務之外
(如 Web Service 會碰上一年一度的網路程式設計)
多數的情況,直接拿三四年前的機種來做,也差不到哪裡去
放眼未來將會採購的四核、八核,甚至十六核心機種
如何更妥善的使用他們,一直是我在思考的問題

虛擬機器(Virtual Machine, 以下簡稱 VM)並不是一個非常新穎的概念
在一個原有的作業系統上,利用特殊的模擬軟體模擬出一個完整的電腦
並且在這個模擬的電腦上再 run 一個作業系統,就這麼個簡單的概念
早在 2001 年 Vmware Workstation 2.0.4 版的時候我就試驗過
但既然是模擬的,效能上有些打折扣也是必然的。

在 CPU Performance 上其實問題不大,一方面是 CPU 夠快了,
另一方面是很早開始軟體便支援將程式碼原封不動交給 CPU 做的功能。
然而在 I/O 上一直有效能不彰的問題,當然,記憶體用量也是個瓶頸
是故,先前一直沒考慮過將 Server 用 VM 來取代
直到最近,多核心設計普及,以及記憶體量&價突破我心中的尺
我決定重新評估虛擬機器的適用環境範圍。

納入考慮的,先是硬體的考量
若是有”純硬體”的 solution,那我會優先選擇
(指的是直接有一台機器,可以被設定/切分成多台虛擬機器來使用)
很可惜,似乎沒有 :-(

軟體(及作業系統)上的考量,首先是我不想以 M$ Windows 作為底層的系統
吃資源、大而無當,不符合我的 style,
更別說一個月發一次更新檔導致強迫的重開,Unix-Like OS 才是我喜歡的解
如此一來,XENVmwareQEMU 便成了我優先考量的軟體

在與 chenpc 等幾位助教做過多次嘗試之後,
我們暫時選擇以 Gentoo Linux + Vmware Server Free 作為實際評估的平台
緊急商請團長 (ycchang) 採購了一組試驗平台:
Intel Q6600 (OC 3.2GHz), Gigabyte G33-DS3R, Trancend DDR2-800 2G*4, 500W Power
佐以既有的 160G IDE HDD *1, 250G SATA HDD*4

較細部的設置:
Gentoo 裝在 160G IDE HDD, 每個 VM 則配給 768M Ram (預計升到 1G), 專屬 250G HDD *1
Guest OS 中,Linux 設定可以用 2 個虛擬 CPU, FreeBSD 則是 1 個 (2個會有支援度的問題,殘念)

目前系統已經建構完成,看起來也沒什麼大問題,預計測試一陣子後再來說說的感想。

Ps. 說不定就偷偷替換掉現在正在使用的工作站以求得更貼近真實的結果。 :-P
Ps2. 其實我對於虛擬機器(Virtual Machine)的描述並不夠 General, 但我認為這樣比較貼近我要講的應用。
Ps3. 我也不敢保證我寫的都對 or 恰當,懇請不吝指教,多提供些意見給我。

2 Responses to “Virtual Machines in CSCC”


Leave a Reply