當然不行啦。
如果你用過VMware的vSphere,微軟的Hyper-V或者CiTRIX的Xen Server,就會發現建立虛擬機器的時候,最大分配資源,是不能超過單臺物理機(宿主機、HOST)的物理資源的,無論CPU還是記憶體。
本來做虛擬化的初衷,就是為了在能夠保障系統的隔離性、獨立性的基礎上,降低資源的閒置率,盤活現有的硬體資源的。而之所以可以降低資源的閒置率,證明做虛擬化之前,資源是有閒置的。
也就是說如果原來5臺物理機,每臺的CPU與記憶體利用率才10%,那麼可以將這5臺物理機上面承載的業務遷移到5臺虛擬機器上面去,然後用1臺物理機來跑這5臺虛擬機器就可以了,CPU與記憶體利用率可能就跑個50%~60%,節省了4臺物理機。(當然,就需要增加了虛擬化軟體的成本)
但是,如果你的業務所需要的效能,1臺完整的物理機將資源全部給你都無法承載,或者只是剛好勉強能夠滿足,那麼還弄虛擬化來幹嘛?為什麼不直接用物理機來跑?
而如果單臺物理機資源都無法滿足,這個時候就只能透過兩種方式來解決了,一種是scale up,即提升配置,擴容物理機的配置,2CPU不夠就擴容到4CPU,128GB不夠就擴容到256GB記憶體。
另外一種是scale out,橫向擴容,就是有點像題目說的,透過多臺機器來做叢集/分散式部署,同時承載某個服務,實現資源的疊加,而不是簡單的將記憶體拼湊在一起。
例如資料庫,oracle的可以多臺機器做RAC叢集,mysql的可以透過mycat做多機讀寫分離,分表分庫。web應用,可以透過LVS或者nginx做負載均衡,都可以實現多臺物理機器資源合併提供服務的目的。
當然不行啦。
如果你用過VMware的vSphere,微軟的Hyper-V或者CiTRIX的Xen Server,就會發現建立虛擬機器的時候,最大分配資源,是不能超過單臺物理機(宿主機、HOST)的物理資源的,無論CPU還是記憶體。
本來做虛擬化的初衷,就是為了在能夠保障系統的隔離性、獨立性的基礎上,降低資源的閒置率,盤活現有的硬體資源的。而之所以可以降低資源的閒置率,證明做虛擬化之前,資源是有閒置的。
也就是說如果原來5臺物理機,每臺的CPU與記憶體利用率才10%,那麼可以將這5臺物理機上面承載的業務遷移到5臺虛擬機器上面去,然後用1臺物理機來跑這5臺虛擬機器就可以了,CPU與記憶體利用率可能就跑個50%~60%,節省了4臺物理機。(當然,就需要增加了虛擬化軟體的成本)
但是,如果你的業務所需要的效能,1臺完整的物理機將資源全部給你都無法承載,或者只是剛好勉強能夠滿足,那麼還弄虛擬化來幹嘛?為什麼不直接用物理機來跑?
而如果單臺物理機資源都無法滿足,這個時候就只能透過兩種方式來解決了,一種是scale up,即提升配置,擴容物理機的配置,2CPU不夠就擴容到4CPU,128GB不夠就擴容到256GB記憶體。
另外一種是scale out,橫向擴容,就是有點像題目說的,透過多臺機器來做叢集/分散式部署,同時承載某個服務,實現資源的疊加,而不是簡單的將記憶體拼湊在一起。
例如資料庫,oracle的可以多臺機器做RAC叢集,mysql的可以透過mycat做多機讀寫分離,分表分庫。web應用,可以透過LVS或者nginx做負載均衡,都可以實現多臺物理機器資源合併提供服務的目的。