虛擬化與雲計算有什麼區別?

虛擬化技術與現流行的大數據Hadoop技術有什麼區別,解決的是一類問題么?
虛擬化技術是否都適用於並行計算,分散式大數據存儲和檢索?


雲計算是個概念,而不是具體技術。
虛擬化是一種具體技術,指把硬體資源虛擬化,實現隔離性、可擴展性、安全性、資源可充分利用等特點的產品。
CPU虛擬化的技術:Intel的VT-x,AMD的AMD-V。
虛擬化的軟體:VMWare,Hyper-V,Xen,KVM,OpenVZ等

目前雲計算,大多是依賴虛擬化,通過把多台伺服器實體虛擬化後,構成一個資源池,實現共同計算,共享資源。也就是現在所謂「雲計算」,其實這個詞提出來之前,過去的「伺服器集群」就已經實現這些功能了,只不過沒有現在那麼先進而已。


先直接引用wik上的原話吧:

Cloud Computing is the result of evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take bene?t from all of these technologies, without the need for deep knowledge about or expertise with each one of them. The cloud aims to cut costs, and help the users focus on their core business instead of being impeded by IT obstacles.


The main enabling technology for cloud computing is virtualization.


再補充一下自己的認識,雲計算通常可能從兩個方面理解:

一是將IT作為一種服務的業務模式,如AWS、阿里雲,其目標是讓IT未來像水和電一樣隨時隨地、簡單方便的使用,並按使用量收費;

二是IT自身的一種演進和優化,其目標是提高效率和降低成本,或者說用一種成本可接受的方式解決越來越複雜的業務問題,例如海量數據的存儲和分析、超高並發訪問(如雙11或12306)等。


虛擬化作為一種技術,可以幫助雲計算實現以上目標:資源分配更加靈活、資源利用率更高。同時技術成熟、對上層應用也基本不影響,因此被廣泛使用,甚至在很多時候虛擬化成為了雲計算的代名詞。


感謝邀請。

感覺LZ問這個問題是因為對業界中的虛擬化、雲計算、Hadoop這些概念理解不清。如果單純為了回答LZ的疑問,以上各位的回復也基本能夠滿足了。我在這裡僅僅想強調一下,虛擬化技術和雲計算這兩個概念對應的現實環境中的問題是不同的。
虛擬化技術(尤其是桌面虛擬化),主要的目的是:

  1. 提高硬體資源的利用率
  2. 提高運維、管理的效率

雲計算(尤其是LZ提到的Hadoop)的主要目的是:

  1. 在合理的時間內,對海量的數據進行分析,找出背後的規律和趨勢

所以總的來說,LZ之所以產生這樣的疑問,是因為你不清楚這些「解決方案」對應的「用戶需求」是什麼,之所以存在這兩個領域,是因為有2個問題,你只要弄清楚問題是什麼,這些概念理解起來也是挺直接的。對於這種概念,最忌諱的就是死記硬背,因為那樣你很快就會被一堆的專有名詞、英文縮寫所淹沒。

最後說句題外話,基本上所有你搞不懂的技術術語、專有名詞背後,都會有一個不是技術領域的需求,這個需求才是你需要首先了解的「根本性需求」,而只有你認識到這些「非技術領域」的問題(或者叫需求),才能算是對這個領域真正開始入門了。執著於純技術層面,其實無法真正的解決問題。


虛擬化技術與現流行的大數據Hadoop技術有什麼區別,解決的是一類問題么?
虛擬化主要解決資源利用率,資源提供的自動擴展。有伺服器(compute)虛擬化(kvm/xen/lxc等),存儲虛擬化,網路虛擬化。原來的數據中心伺服器整合就利用了大量的虛擬化。現在的雲計算模式也以虛擬化技術為基礎,特別是IAAS層。但云計算本質是效用計算,按需付費,因此SAAS也可以不基於虛擬化來實現。
Hadoop就是用來解決google類似的大數據的分析引入的計算框架。(mapreduce和分散式存儲)。你可以把這些東西放在虛擬化環境里的。
虛擬化技術是否都適用於並行計算,分散式大數據存儲和檢索?
這裡得區分是什麼的虛擬化。如上,有伺服器虛擬化,存儲虛擬化,網路虛擬化。現在流行軟體定義網路,軟體定義存儲,廣義的說,這也算是虛擬化技術的應用。
並行計算是一種計算模式。可以基於虛擬化技術來實現。lerlang就是採用vm的方式來表示多進程。但是也可以在硬體上實現。


虛擬化是手工作坊,雲計算是現代化工廠。
虛擬化是磚石,雲計算是磚石建起的大廈。
虛擬化,尤其是以前狹義所指的計算虛擬化,考慮的是單設備上物理資源的拆分和虛化。
虛擬化要走向雲計算,需要解決兩個問題。
一是狹義虛擬化向廣義虛擬化的升級,資源不再限定於計算,而要通盤解決網路、存儲甚至安全資源的虛擬化。
二是從單點的資源管理,上升到大集群的資源管理。在平台穩定、高可用的前提下,還要保證高效、靈活、大規模可擴展。
無數販賣虛擬化主機的vps廠商,都會死在轉型雲計算(特指IaaS)的半道上,瓶頸就在於這兩點。
真正能做好這兩點的雲計算廠商,少之又少。


雲計算不是一個技術問題,而是一個運維問題。任何經營雲計算服務的公司都會跟你說,把東西host在我這,別的你就不用管了,除了程序出問題你自己debug以外。除了這個以外,你還可以通過臨時加錢來臨時得到計算資源,不需要為了搞定高峰期而在平時做出浪費。這兩個目標基本上是雲計算所想要達到的。


後來就出了PAAS啊,SAAS各種ASS,哦不,AAS,這只是概念炒作了。


雲計算和虛擬化技術相關度不大。

雲計算是業務模式,是產業形態,它不是一種具體的技術。比如IaaS,PaaS和SaaS都是雲計算的表現形式,是三種不同的業務模式。

虛擬化技術是一種具體的技術,以主機虛擬化為例(也就是物理機上跑虛擬機),所採用的虛擬化技術有KVM、Xen和VMware的那套。歷年來得RedHat大力支持,現在KVM已佔大頭並風頭正勁。另外值得一提的是VMware那套數年前已經開發,其主機系統不是Linux而是自主的vmkernel,得知此事時我感嘆於VMware的底層技術實力。

把雲計算和虛擬化混淆起來,可能是因為只考慮到雲計算的IaaS場景。


虛擬化是技術,雲計算是社會分工

雲計算的底層IAAS會用到虛擬化這一技術


感謝邀請,很久不來知乎了,不過樓上各位講的很清楚了,雲計算是業務模式範疇,而虛擬化是具體技術範疇,我就不多說了:)


其實就是發動機和汽車的關係。


  1. 雲計算的技術中有一項重要技術,即虛擬化,雲平台在虛擬化的基礎上增加了自動化、彈性伸縮、SLA等級等其他特性
  2. 其實透過表面看實質,物理數據中心、虛擬化、雲平台,最終給提供出來的無非是操作系統和應用服務

謝邀
其實樓上都說得都挺對了,我頂多總結下


雲計算是一種服務;虛擬化和分散式系統都是用來實現雲計算的關鍵技術之一。
目前來講虛擬化主要常用兩個核心技術:伺服器虛擬化,與應用虛擬化
目前來講分散式系統主要用到的兩個核心技術:分散式存儲,與分散式計算


雲計算可以理解為一種租借式的服務,即你可以對IT系統內部的原理什麼都不懂,也不需要買到手,但是隨時可以使用公共的IT資源為自己服務,比如baidu,比如QQ,比如163郵箱

我認為對虛擬化技術最好的定義就是可以讓IT系統的物理拓撲圖與邏輯拓撲圖無關,即解耦
我們暫時以商用虛擬化系統vmware舉例
為了實現拓撲解耦,它做的第一點就是讓一台機器可以同時跑多個操作系統,即虛擬機,而且虛擬機還可以在物理機間來迴轉移,高可用,這樣我們的操作系統就從物理機上徹底解放出來了,你可以把同一個虛擬機隨時放到其他物理機上,實現了對硬體的高效資源利用,和系統的高度靈活,解除了大量人工勞動,便於實現大規模系統的方便管理,這種就是伺服器虛擬化(vSphere)
光系統分開還不行,你有時還需要各種方式訪問虛擬機系統,於是你就會是用遠程桌面等方式去訪問這些後台的虛擬機,這種就是應用虛擬化(view)
當然還有網路虛擬化,存儲虛擬化等各種其他虛擬化技術正在慢慢成長,不過相對於前兩者無論是商用還是開源,都還不太成熟,暫不討論。

我認為對分散式系統比較合適的定義是把所有IT資源看成為一個整體來使用,而不是去獨立的看某個機器某個系統,即資源池
我們暫時以開源Hadoop為例
為實現將IT資源變成整體,它要做到的第一點就是將一個巨大的文件拆開放在多個地方,你可以用一大堆很普通的計算機用網路連在用來存放這一個巨型文件,這樣即使很多很小硬碟的機器也可以通過連在一起當成一個很大的存儲空間來用,這種就是分散式存儲(HDFS)
光文件存放合在一起不行,計算能力也要合在一起,所以它還要滿足一個任務分給多個物理機來處理,這樣即便一堆老破電腦,通過這種方式連在一起,只要足夠多,也能當超級計算機用,這種就使分散式計算(MapReduce)
當然Hbase等其他的技術也在逐漸成熟,總的來講都是為了解決建立巨型資源池需要的技術。

由此可以看出虛擬化主要是把大塊拆成小塊兒,分散式系統主要是把小塊組合成大塊兒,IT資源經過這樣的揉碎再組合,變成了一個十分靈活的系統,在這幾個基本技術的基礎上,在通過某種調度和經營,就可以實現雲計算的服務模式了。

所以,這並不是概念炒作~


樓主問了四個主流的不同層次方向的IT技術概念;

虛擬化主要是優化提高硬體資源利用率; 比如原來伺服器硬體利用率只有10%的伺服器,通過虛擬化,可以部署多幾個系統,複合利用,可以提高利用率達到70%,充分利用空閑資源; 其它的很多特性只是附加的(雖然也很重要實用),比如方便遷移、管理等;

至於雲計算,強調是是按需(動態)分配,需要用多少就用多少;比如雙11前後幾天,電商部門需要比平時10倍的訪問量,那就可以在那幾天增加10倍的資源,過完又釋放相關資源,而不是以前按最高性能要求來購買硬體,減少浪費;藉助虛擬化(但不是必須)可以更加方便實現此目的; 其它特性,如服務自助,服務計量化,包括不同包裝特性(IaaS,PaaS,Saas)只是在此基礎上的增強派生而已;

至於大數據,其實和上述兩個概念是完全不相關,不同層次的東西;只是雲計算能夠讓大數據操作更加節省成本;大數據是數據分析/挖掘的進一步發展,強項是分析非結構化數據,特點是得到相關性;

hadoop是大數據實現的一種工具,就好像windows至於操作系統,office之於辦公軟體,都是主流普及,但不能因此說操作系統就是windows,辦公軟體就是office, 其實還很多選擇;

----------------------------------------------------------------------------------------

發現後來有人改了問題,我的回答和現在的提問不完全對得上;

問: 虛擬化技術與現流行的大數據Hadoop技術有什麼區別,解決的是一類問題么?

幾乎是完全不同的技術應用; IT是分層的,如底層是硬體(又分網路設備,主機,存儲;當然還可以再分基礎環境,如配電,空調),上一層是虛擬系統(如果沒有虛擬系統就直接是操作系統),再上是操作系統,再上是基礎應用系統(如 weblogic, tomcat,hadoop), 再上是應用系統;

所以,提問的是東西是在不同的層級上面,如網路IOS的7層協議,在不同的層是解決不同問題的,直接進行比較意義不大;

問:虛擬化技術是否都適用於並行計算,分散式大數據存儲和檢索?

從我的知識來說,這兩個又完全是不同的東西,企業級的應用來說,虛擬化和並行計算並沒有一點關係;並行計算大部分是在基礎應用系統上實現,少部分在操作系統上實現(或者由硬體GPU或特製的CPU提供專用支持) ;還沒聽過企業級有在虛擬化(的內核)實現並行計算的;

虛擬化和並行計算解決的問題是相反的,虛擬化是一台硬體設備資源過剩,可以分一部分資源給別的系統使用,進而優化硬體資源的使用效率; 而並行計算解決的是一台硬體設備無法提供所需要的資源(計算資源,存儲資源...),所以需要聯合多台硬體設備資源來解決,以提高計算速度或存儲容量之類;

將一些「基礎應用系統」安裝到操作系統,操作系統運行於虛擬化環境,基本都是可行的,現實也很多這種部署方法,主要的目的是簡化部署和系統維護管理;


根據這個問題,我發表一下個人觀點:

虛擬化,是指通過虛擬化技術將一台計算機虛擬為多台邏輯計算機。在一台計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

虛擬化使用軟體的方法重新定義劃分IT資源,可以實現IT資源的動態分配、靈活調度、跨域共享,提高IT資源利用率,使IT資源能夠真正成為社會基礎設施,服務於各行各業中靈活多變的應用需求。

虛擬化: 是一個廣義的術語,是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一個為了簡化管理,優化資源的解決方案。如同空曠、通透的寫字樓,整個樓層沒有固定的牆壁,用戶可以用同樣的成本構建出更加自主適用的辦公空間,進而節省成本,發揮空間最大利用率。這種把有限的固定的資源根據不同需求進行重新規劃以達到最大利用率的思路,在IT領域就叫做虛擬化技術。

虛擬化技術可以擴大硬體的容量,簡化軟體的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平台同時運行多個操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

虛擬化技術與多任務以及超線程技術是完全不同的。多任務是指在一個操作系統中多個程序同時並行運行,而在虛擬化技術中,則可以同時運行多個操作系統,而且每一個操作系統中都有多個程序運行,每一個操作系統都運行在一個虛擬的CPU或者是虛擬主機上;而超線程技術只是單CPU模擬雙CPU來平衡程序運行性能,這兩個模擬出來的CPU是不能分離的,只能協同工作。

下面我們來了解一下雲計算:

雲計算 (cloud computing)是基於互聯網的相關服務的增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。雲是網路、互聯網的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示互聯網和底層基礎設施的抽象。因此,雲計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這麼強大的計算能力可以模擬核爆炸、預測氣候變化和市場發展趨勢。用戶通過電腦、筆記本、手機等方式接入數據中心,按自己的需求進行運算。

雲計算的特點:

(1) 超大規模

「雲」具有相當的規模,Google雲計算已經擁有100多萬台伺服器, Amazon、IBM、微軟、Yahoo等的「雲」均擁有幾十萬台伺服器。企業私有雲一般擁有數百上千台伺服器。「雲」能賦予用戶前所未有的計算能力。

(2) 虛擬化

雲計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自「雲」,而不是固定的有形的實體。應用在「雲」中某處運行,但實際上用戶無需了解、也不用擔心應用運行的具體位置。只需要一台筆記本或者一個手機,就可以通過網路服務來實現我們需要的一切,甚至包括超級計算這樣的任務。

(3) 高可靠性

「雲」使用了數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性,使用雲計算比使用本地計算機可靠。

(4) 通用性

雲計算不針對特定的應用,在「雲」的支撐下可以構造出千變萬化的應用,同一個「雲」可以同時支撐不同的應用運行。

(5) 高可擴展性

「雲」的規模可以動態伸縮,滿足應用和用戶規模增長的需要。

(6) 按需服務

「雲」是一個龐大的資源池,你按需購買;雲可以像自來水,電,煤氣那樣計費。

(7) 極其廉價

由於「雲」的特殊容錯措施可以採用極其廉價的節點來構成雲,「雲」的自動化集中式管理使大量企業無需負擔日益高昂的數據中心管理成本,「雲」的通用性使資源的利用率較之傳統系統大幅提升,因此用戶可以充分享受「雲」的低成本優勢,經常只要花費幾百美元、幾天時間就能完成以前需要數萬美元、數月時間才能完成的任務。

雲計算可以徹底改變人們未來的生活,但同時也要重視環境問題,這樣才能真正為人類進步做貢獻,而不是簡單的技術提升。

(8) 潛在的危險性

雲計算服務除了提供計算服務外,還必然提供了存儲服務。但是雲計算服務當前壟斷在私人機構(企業)手中,而他們僅僅能夠提供商業信用。對於政府機構、商業機構(特別像銀行這樣持有敏感數據的商業機構)對於選擇雲計算服務應保持足夠的警惕。一旦商業用戶大規模使用私人機構提供的雲計算服務,無論其技術優勢有多強,都不可避免地讓這些私人機構以「數據(信息)」的重要性挾制整個社會。對於信息社會而言,「信息」是至關重要的。另一方面,雲計算中的數據對於數據所有者以外的其他用戶雲計算用戶是保密的,但是對於提供雲計算的商業機構而言確實毫無秘密可言。所有這些潛在的危險,是商業機構和政府機構選擇雲計算服務、特別是國外機構提供的雲計算服務時,不得不考慮的一個重要的前提。


經過仔細比較,大家不難發現其實虛擬化和雲計算的關係以及他們的一些區別, 如果有朋友能讀完,辛苦了,也謝謝大家對我的支持,順便打一下小廣告,感興趣的小夥伴可以了解一下CloudIn雲英 - 專業的雲主機,雲伺服器,雲硬碟,雲安全等IaaS及PaaS服務提供商。


很久以前,人們不懂得怎樣把建築分成許多房間,一幢建築就只有一個房間,所以那時候沒有旅館。

虛擬化幫助人們在房子裡面造房子/分房間,雲計算就是旅館。

你說砌牆和旅館有啥區別呢?


虛擬化是雲計算的基礎技術,一台一台的伺服器需要先進行虛擬化才能合理使用伺服器硬體資源。
雲計算是一個運維,SLA,計費等方面的綜合工程。有些必須要虛擬化提供的功能,數據信息進行。
比如7*24小時不停機,需要通過虛擬化提供的功能;虛擬機資源利用情況,需要虛擬化提供數據信息;虛擬機的產生及刪除需要虛擬化平台的功能;


比如說大片要特效的,使用這個雲和自己做伺服器節省多少成本是不是最直觀


題主以下問了三個非常重要又非常複雜的問題。我隨便扯了,反正匿名,說的不對就評論一下,我會樂意修改並回答問題。

虛擬化與雲計算有什麼區別?

首先,我非常反感將雲計算歸為一個可以炒作的概念,如果這樣的話,甚至可以將傳統伺服器/客戶端模式,無盤工作站等等技術都歸類為雲計算。

雲計算是有確切定義的,通常的定義是能夠實現對配置好的計算資源進行普適地,按
需地的共享訪問的模型。顯然,雲計算是一個模型而不是概念。

很明顯,傳統的伺服器/客戶端模式,並不是雲計算,因為用戶訪問的是特定的服務而不是計算資源。無盤工作站也不是,用戶並不能按需的共享訪問計算資源,無盤工作站的計算資源都是預先配置的。

那麼雲計算的邊界在哪裡呢?打個比方,百度雲盤,如果只是上傳下載,那麼百度雲就很難看成一個雲計算的服務,如果像dropbox一樣是用同步盤模式,那麼百度雲就是一種雲存儲的服務,因為用戶使用的是百度雲的計算(存儲)資源,而不是簡單的數據倉庫。

那麼虛擬化技術又是什麼呢?虛擬化是將一種資源封裝並虛擬成按需的虛擬資源的技術。

實際上虛擬化技術遠遠要比雲計算出現的早,有多早,60年代的IBM S360就能提供完整虛擬操作系統。那為什麼最近十年變成如此重要的技術呢?

因為服務本身的複雜度增加和分散式處理的流行,使得傳統的計算集群很難講硬體資源與需求進行最優化的分割。比如,一個簡單的網站通常有web伺服器,應用伺服器和資料庫伺服器,實際上很多時候這三種伺服器的計算負載是不均衡和動態變化的,由於通常不能將服務進程在三種進程間進行移動,一旦最初的服務集群建成,三種不同的伺服器部署好,就無法得到再對三種不同伺服器之間進行較為有效的調度。

對於不同應用在集群中的調度,虛擬化技術是一種非常合適的技術。虛擬化將所有的物理主機虛擬成大大小小的虛擬機,所以三種不同的伺服器可以很方便的進行配置,而不也能拘泥於最初計算機集群的配置。

後來虛擬化技術就逐漸成為學術界的研究熱點,這個時候其實雲計算還在萌芽階段。

實際上,平心而論,雲計算的出現使得虛擬化技術真正得到了最好的應用。

兩者的結合簡直是天衣無縫。

雲計算需要對計算資源進行按需的共享,這個是非常複雜的問題。首先,計算資源並不是同構的,多種不同硬體是無法按需共享的。其次,計算資源並不能隨便分割。第三,分割後的計算資源必須非常完備的隔離。

虛擬化技術基本上解決了以上問題。

實際上,虛擬化是可以不同層次的,但系統虛擬化是最乾脆的,就是把各種伺服器,硬體,直接全虛擬了,這樣做的好處就是,上次對計算資源打包的時候,足夠的靈活,提供的雲計算服務層次也最豐富。所以,最成功的雲計算服務商,無論是IaaS,PaaS還是SaaS,其實底層都會用系統虛擬化技術。

為什麼Hadoop也被看成雲計算呢,我也不知道,Hadoop其實就是個數據處理集群系統。當然,在雲計算的莽荒時代,還有框計算呢。當年某家大公司的人教訓我,雲計算不需要虛擬化技術,然後這家公司到現在都沒有成型的雲計算服務,只能靠賣排名和全家桶賺錢。當然,google的compute engine也不是特別成功就是(貴)。

虛擬化技術與現流行的大數據Hadoop技術有什麼區別,解決的是一類問題么?

虛擬化技術與Hadoop解決的不是一類問題。Hadoop是MapReduce的開源實現。
MapReduce是Google為了在大量網頁數據中找到最合適的結果反饋給用戶,並拋棄傳統資料庫技術,在廉價商用集群上構建的一個計算模型。解決的就是大規模數據的分散式處理和計算的問題。

虛擬化技術是將計算資源虛擬成虛擬計算資源的技術,解決的是計算資源如何有效的分割和打包的問題。


虛擬化技術是否都適用於並行計算,分散式大數據存儲和檢索?

當然適用,Amazon的S3說到底就是這麼回事。凡是在雲計算環境中實現的各種計算,基本上都是虛擬機上跑的,自然就用到了虛擬化技術。


謝邀
虛擬化是一種具體的技術實現,例如:伺服器虛擬化、桌面虛擬化、網路虛擬化、存儲虛擬化等
雲計算可以理解為是一種商業模式,有私有雲、公有雲、混合雲等
兩者的關係:
虛擬化技術是實現雲計算的一種,但是雲計算並不僅僅只有虛擬化一種實現方式
虛擬化:針對的是一切物理基礎架構的
並行計算,分散式計算等等題目中提到的那些技術:可以運行在虛擬化之後的硬體平台上,也可以運行在傳統的物理架構平台上
大數據Hadoop技術:針對的是數據
這些技術綜合起來或者只採用其中幾種,都可以作為雲計算服務提供給客戶


謝邀。
區別就是:雲計算時一種服務模式。虛擬化是架構雲服務時,基礎架構層所採用的技術。


推薦閱讀:

硬體虛擬化的原理是什麼?
虛擬化承載層是什麼意思?
一個膽小怕事的人怎麼去做應用虛擬化軟體的銷售?

TAG:雲計算 | NoSQL | Hadoop | 虛擬化 | 大數據 |