云計算,簡單點理解就是以一個資源池的方式,彈性的提供可靠的計算,存儲資源。呈現(xiàn)給使用者的界面不再是具體的哪個 PC 或幾臺 PC ,而是一個統(tǒng)一的界面,需要多少資源等。
云計算的劃分
云服務(wù)上劃分
主要從服務(wù)包裝程度上劃分,包括了 SAAS, PAAS, IAAS 。前兩者都是包裝的程度要高一些。
云計算的應(yīng)用劃分
i. 集群計算,代表有 hadoop ,適用于那些大型計算類的數(shù)據(jù)挖掘,海量數(shù)據(jù)處理等。
ii. 云存儲,代表有 hdfs, swift
iii. 提供彈性的計算單元服務(wù),這類服務(wù)可以作為大網(wǎng)站的峰值期間彈性增加服務(wù),如 Amazon 的 EC2
目前 iii 主要是以虛擬機的方式提供對外服務(wù)的。
下面我們談?wù)勁c其相關(guān)的一些 虛擬化 管理軟件。
虛擬化管理軟件
目前主流的虛擬管理軟件分為兩個主流
淺包裝,他們對 KVM 或 XEN 進行了簡單的包裝,大部分如此,比如 convirture 和 XenServer 等。
全托管。稍微復雜些,對資源進行了集中式管理,對虛擬機資源分配提供黑盒式的服務(wù),如 Openstack 和Eucalyptus 。
這些軟件具體的安裝實現(xiàn)上又區(qū)分有 agent 和無 agent ,個人感覺差不多,所謂的無 agent 其實也是利用了linux 自帶的命令進行操作的,實質(zhì)上都是基于 KVM 和 XEN 的管理。
這些軟件提供給終用戶的功能:
虛擬機支持
OpenStack 和 Eucalyptus 只提供 VM 模板的方式,主控并不會記住具體運行該虛擬機是在那臺服務(wù)的那個IMAGE 上,所以在該虛擬機上所有修改在其關(guān)閉后會丟失(重啟后 OpenStack 會使用模板 EMI 根據(jù)某種算法重新運行在某臺機器上,之前那個會丟失了; Amazon 在這種情況下會自動為其另存一個 EMI)
其它的模板和console都支持
存儲支持
Eucalyptus 增加可以 mount 彈性存儲功能,這些存儲也是由 Eucalyptus 托管的,對用戶是透明的。
OpenStack 也提供了 mount彈性存儲。它的體系中也有額外獨立的存儲組件,目前 Swift 實現(xiàn)了這套功能。 提供了一套基于 rest API 的對象存儲方案(對存儲內(nèi)容有冗余功能,保證數(shù)據(jù)不因硬件問題而丟失)。這套東西是以一個獨立功能組件提供的,沒有依賴 OpenStack ,所以其它解決方案可以自由使用。
其它的軟件還沒有自帶的存儲組件
KVM 和 XEN
這些虛擬管理軟件都支持 KVM 和 XEN ,它們的虛擬化終都將物理機上通過KVM或XEN或其它虛擬化軟件來實現(xiàn)。
KVM和XEN的區(qū)別
XEN 比 KVM 性能更好
XEN 是半虛擬化,這樣更靠近硬件層,性能高;不足是需要定制的操作系統(tǒng),這樣靈活度不夠
TMEM 技術(shù)( Transcendent Memory ,超內(nèi)存技術(shù))等技術(shù),資源分配更具有彈性,當前不活躍的虛擬機占用資源不多,這樣同時支持的虛擬機更多,特別適合那些 UI 測試機;不足是隔離性不好,部分高帶寬應(yīng)用會影響其它人。
這些只是主要特點,很多細節(jié),比如網(wǎng)卡,備份等。
KVM 的優(yōu)點是隔離性更好,幾乎是獨占資源。