1.什麼是虛擬化html
虛擬化,是指經過虛擬化技術將一臺計算機虛擬爲多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每一個邏輯計算機可運行不一樣的操做系統,而且應用程序均可以在相互獨立的空間內運行而互不影響,從而顯著提升計算機的工做效率。前端
2.什麼是虛擬化技術ios
虛擬化技術是一套解決方案。完整的狀況須要CPU、主板芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操做系統自己。即便只是CPU支持虛擬化技術,在配合VMM的軟件狀況下,也會比徹底不支持虛擬化技術的系統有更好的性能。docker
3.虛擬化的類型數據庫
全虛擬化(Full Virtualization)
全虛擬化也成爲原始虛擬化技術,該模型使用虛擬機協調guest操做系統和原始硬件,VMM在guest操做系統和裸硬件之間用於工做協調,一些受保護指令必須由Hypervisor(虛擬機管理程序)來捕獲處理。全虛擬化的運行速度要快於硬件模擬,可是性能方面不如裸機。
安全
半虛擬化(Para Virtualization)
半虛擬化是另外一種相似於全虛擬化的技術,它使用Hypervisor分享存取底層的硬件,可是它的guest操做系統集成了虛擬化方面的代碼。該方法無需從新編譯或引發陷阱,由於操做系統自身可以與虛擬進程進行很好的協做。半虛擬化須要guest操做系統作一些修改,使guest操做系統意識到本身是處於虛擬化環境的,可是半虛擬化提供了與原操做系統相近的性能。
服務器
1.OpenStack:開源管理項目
OpenStack是一個旨在爲公共及私有云的建設與管理提供軟件的開源項目。它不是一個軟件,而是由幾個主要的組件組合起來完成一些具體的工做。OpenStack由如下五個相對獨立的組件構成:網絡
2.KVM(Kernel-based Virtual Machine)基於內核的虛擬機
KVM是集成到Linux內核的Hypervisor,是X86架構且硬件支持虛擬化技術(Intel VT或AMD-V)的Linux的全虛擬化解決方案。它是Linux的一個很小的模塊,利用Linux作大量的事,如任務調度、內存管理與硬件設備交互等。
KVM最大的好處就在於它是與Linux內核集成的,因此速度很快。
架構
3.VMWare (Virtual Machine ware)
VMWare (Virtual Machine ware)是一個「虛擬PC」虛擬機管理管理軟件。它的產品可使你在一臺機器上同時運行二個或更多Windows、DOS、LINUX系統。與「多啓動」系統相比,VMWare採用了徹底不一樣的概念。多啓動系統在一個時刻只能運行一個系統,在系統切換時須要從新啓動機器。VMWare是真正「同時」運行,多個操做系統在主系統的平臺上,就象標準Windows應用程序那樣切換。並且每一個操做系統你均可以進行虛擬的分區、配置而不影響真實硬盤的數據,你甚至能夠經過網卡將幾臺虛擬機用網卡鏈接爲一個局域網,極其方便。安裝在VMware操做系統性能上比直接安裝在硬盤上的系統低很多,所以,比較適合學習和測試。負載均衡
1.設計
VMware軟件套件是自底向上的架構,下端邊界爲虛擬機管理器。像VMware的vSphere和vCloud director產品都是依賴於免費的ESX(i) 虛擬機管理器, ESX(i)虛擬機管理器爲他們提供了很是優秀的部署架構。
VMware的軟件系統是封閉的,而且軟件的發展路線是徹底遵循VMware本身的發展目標,用戶或消費者在此方面沒有任何控制權。
OpenStack做爲一個開源系統,沒有任何一家單獨的公司在控制OpenStack的發展路線。
2.功能
(1)VMware vMotion
vMotion是vSphere DRS、DPM和主機維護三大功能的合集。其中虛擬機動態遷移容許將一臺虛擬機在零關機的狀況下由一臺宿主機遷移到另外一臺上,這本來是須要共享存儲的支持的,但在vSphere 5.1中,VMware已經不須要經過共享存儲實現動態遷移了。當一臺虛擬機由一個宿主機遷移到另外一個上時,虛擬機的內存狀態和數據都要同步遷移過去。若是是共享存儲的狀況,實際上數據是不須要進行遷移的,只須要變化指向數據存儲的連接而已。這在加速了遷移速度的同時也減小了在複製過程當中網絡的負載。
(2)OpenStack 動態遷移
KVM動態遷移容許一個虛擬機由一個虛擬機管理器遷移到另外一個,說的詳細一點,你能夠來來回回將一臺虛擬機在AMD架構主機與Intel架構主機上進行遷移,可是須要注意的是,64位的虛擬主機只能被遷移到64位的宿主機上,可是32位的則有32位和64位兩種選擇。在動態遷移過程當中,不能再對虛擬機進行操做,可是虛擬機內的用戶仍是能夠在虛擬機內部繼續進行工做的。KVM主要仍是依賴於共享存儲,某種程度上,這相對來講是須要一些資金投入的。
(3)OpenStack塊存儲遷移
在OpenStack當中,KVM支持塊存儲遷移,這也就是說虛擬機遷移不是必須須要共享存儲的支持的。在塊遷移的場景下,虛擬機的內存狀態與數據都將被遷移,可是遷移操做也須要消耗兩端的CPU資源而且操做花費時間較比共享存儲來講要長一些。在某些用戶場景當中,若是咱們比較關注於主機的可維護性,而且不想花費過多經費,那麼應用塊存儲遷移將是好的解決方案。同時,若是在沒有共享存儲的環境中,咱們想對計算節點進行內核維護、安全升級,那麼保證虛擬機服務不被打斷,塊存儲遷移也是理想選擇。
(4)VMware DRS 和 DPM
基於vMotion,DRS能夠動態監控虛機機及宿主機的當前使用情況,而且爲宿主機的負載均衡提供支持。
基於vMotion, DPM將虛擬機從低負載宿主機遷移掉,而且關閉以達到減小電能損耗。當負載增加,DPM將宿主機重啓,而且部署新的虛擬機以知足負載須要。
(5)OpenStack調度器
OpenStack包含了對於compute和volume的調度器,經過一系列的管理員設定的規則參數和過濾器,OpenStack調度器將虛擬機部署到合適的宿主機上。在過濾器方面,調度器是很是靈活的,用戶能夠本身完成JSON格式的過濾器,而且過濾器還包含不少預約義的過濾器。雖然OpenStack調度器很是靈活,可是仍是不能徹底替代DRS,緣由以下:
(6)High Availability(高可用)
在vSphere中,虛擬機級別的高可用性是容許在虛擬機或者ESX(i)主機出錯時,在不一樣宿主機部署相同的虛擬機。這裏不要和容錯(FT)機制混淆,高可用的意義在於當有一些東西出錯了,能夠在必定時間內自我修復。高可用是在硬件出問題的時候保證虛擬機的正常個工做,若是真的出錯了,那麼只能在不一樣的ESX(i)主機上啓動虛擬機,這也可能形成服務的中斷。
目前並無官方聲明OpenStack支持虛擬機級別的高可用性,這個特性在Folsom版本被提出,可是後續又被放棄了。目前OpenStack有一個孵化項目Evacuate, 其做用是爲OpenStack提供虛擬機級別高可用支持。
(7)Fault Tolerance(容錯)
VMware容錯機制是經過監控虛擬機的狀態和全部變化,將這些變化同步到第二臺備份ESX(i)服務器之上。容錯的概念在於不管是主仍是從宿主機出現問題,只要一方能正常工做,那麼宿主機上的虛擬機都保持正常工做。
在OpenStack中沒有針對於容錯的功能,而且截至目前也沒有計劃去完成這些功能。將來,KVM也再也不支持鏡像操做功能。
OpenStack和Docker之間是很好的互補關係。Docker的出現能讓IaaS層的資源使用得更加充分,由於Docker相對虛擬機來講更輕量,對資源的利用率會更加充分。
Docker主要針對Paas平臺,是以應用爲中心。OpenStack主要針對Iaas平臺,以資源爲中心,能夠爲上層的PaaS平臺提供存儲、網絡、計算等資源。
第四層主要有Heat、Magnum、Sahara、Solum和Murano等,其中Heat主要提供orchestration服務,Magnum主要提供容器服務,Sahara主要提供大數據服務,咱們能夠經過Sahara很方便地部署Hadoop、Spark集羣。Solum主要提供應用開發的服務,而且能夠提供一些相似於CI/CD的功能。Muarno主要提供應用目錄的服務,相似於App Store,就是用戶能夠把一些經常使用的應用發佈出來供其餘用戶去使用。最右邊是Kolla,Kolla的主要功能是容器化全部的OpenStack服務,便於OpenStack安裝部署和升級。
主要包括Nova、Heat、Magnum、Sahara、Solum、Murano和Kolla等。由圖3得知,和Docker相關的大部分項目都在PaaS和SaaS層。
(1)Nova Docker Driver
這個Driver是OpenStack和Docker的第一次集成,主要是把Docker做爲一種新的Hypervisor來處理,把全部的Container當成VM來處理。提供了一個Docker的Nova Compute Driver,集成很簡單,經過Docker REST API來操做Container。
(2)Heat Docker Driver
由於Nova Docker Driver不能使用Docker的一些高級功能,因此社區就想了另外一個方法,和Heat去集成。
由於Heat採用的也是插件模式,因此就在Heat實現了一個新的Resource,專門來和Docker集成。這個Heat插件是直接經過REST API和Docker交互的,不須要和Nova、Cinder和Neutron等來進行交互。
(3)Magnum
在OpenStack和Docker集成的過程當中,咱們發現從OpenStack現有的項目中,找不到一個很好的集成點,雖然和Nova、Heat都作了集成的嘗試,但缺點很明顯,因此社區就開始了一個新的專門針對Docker和OpenStack集成的項目Magnum,用來提供容器服務。
Mangum的主要目的是提供Container服務的,它同時還能夠和多個Docker集羣管理系統集成,包括K8S、Swarm、CoreOS等。和這幾個平臺集成的主要緣由是能讓用戶能夠很方便地經過OpenStack雲平臺來集成K8S、CoreOS、Swarm這些已經很成型的Docker集羣管理系統,促進Docker和OpenStack生態系統的融合。
(4)Murano
Murano是Mirantis貢獻的,而且也進了OpenStack Namespace。也和K8S集成了,用戶能夠經過Murano使用K8S的功能,能夠經過Murano部署Pod、Service、Replication Controller等。Murano主要是在OpenStack基礎上提供應用目錄服務。Muarno和Solum之間實際上是有關係的,Solum主要是用來開發應用的,Solum把應用開發完後,能夠經過Murano來發布。用戶能夠經過Murano挑選本身須要的應用服務,經過應用服務組合構建本身的應用。
參考文章:
http://www.4u4v.net/shen-du-jie-xi-docker-he-openstack-xi-tong-ji-cheng.html