0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是虛擬化技術

汽車電子技術 ? 來源:碼農與軟件時代 ? 作者:碼農與軟件時代 ? 2023-02-15 10:14 ? 次閱讀

成本是永恒的話題。

虛擬化的目標也是降低成本,體現(xiàn)為對IT資源的充分利用。

一、虛擬化發(fā)展脈絡

20世紀50~70年代,大型機應用廣泛。但也比較貴,如何節(jié)省成本成為考慮的因素。一種簡單的想法,多個終端用戶能夠共享同一大型機。

從時間的角度來考慮,就是將CPU時間劃分成非常小的時間片,每個時間片執(zhí)行不同用戶的工作任務,并通過輪詢的方式進行調度。這樣,表面上不同用戶的任務在同一硬件資源上都得到了執(zhí)行,本質上是后臺是“分時共享”大型機。20世紀60年代,IBM在其System/360中實現(xiàn)了該分時系統(tǒng),并在System/370正式命名為虛擬機。

20世紀80年代,硬件成本降低,虛擬化技術逐步被放棄。

20世紀90年代,Win-Intel聯(lián)盟、Linux操作系統(tǒng)的發(fā)展,x86服務器架構應用廣泛,成為服務器硬件設施的主流。但X86計算機架構,最早著眼于性能要求不高的場景,沒有考慮對虛擬化技術的支持。

人們在使用x86服務器時,為了滿足業(yè)務的需求,通常會對業(yè)務流程進行壓測,得到業(yè)務所需的x86服務器配置,這種配置往往采用按照業(yè)務最高的要求。這樣,在日常運行中,就會導致服務器的CPU利用率比較低,處于10%~30%之間,也就是服務器資源沒有得到充分利用。

隨后,各個公司推出了各種虛擬化解決方案:

  • VMware將虛擬化技術引入到x86服務器中,發(fā)布了ESX產(chǎn)品。
  • Xen虛擬化平臺由劍橋大學研究,成為開源虛擬化資源的代表。
  • 微軟推出Hyper-V。
  • Intel硬件虛擬化VT-x方案。

二、虛擬化概念與架構

虛擬化是什么?

IBM公司給出的定義比較有代表性:“虛擬化是資源的邏輯表示,它不受物理限制的約束?!?/p>

簡單地說,就將X86服務器硬件資源進行抽象,在其上構建一臺臺虛擬機。虛擬機與X86服務器沒有什么不同,可以安裝操作系統(tǒng),部署用戶APP并運行。

那么,如何實現(xiàn)虛擬化呢?

在硬件資源和虛擬機之間,需要有一個抽象層,向下對硬件進行抽象,向上提供人虛擬機,并確保這些虛擬機之間是獨立且隔離的。這個抽象層稱為虛擬機監(jiān)控器(Virtual Machine Monitor,VMM)。

圖片

通常情況下,將X86服務器上的操作系統(tǒng)稱為Host OS(宿主),將虛擬機的操作系統(tǒng)稱為Guest OS(客戶)。

根據(jù)VMM是否直接部署在硬件上,又分為宿主型、裸機型和混合型。

  • 宿主型:硬件資源仍由Host OS來管理,VMM是OS的內核,體現(xiàn)為一個進程。
  • 裸機型:VMM直接部署并運行在硬件上。
  • 混合型:宿主型和裸機型的融合。

根據(jù)虛擬的資源類型來劃分,虛擬化又可以分為計算虛擬化、存儲虛擬化和網(wǎng)絡虛擬化。

三、實現(xiàn)機制

前面提到,X86架構在初始設計時,并未考慮虛擬化的情況。這意味著后續(xù)硬件支持虛擬化時,必然采用打補丁的方式。

這里僅討論CPU虛擬化。

在x86架構的CPU指令集中,有Ring0、Ring2、Ring2、Ring3四個狀態(tài),其中,Ring0權限最高,操作系統(tǒng)擁有此權限,能夠直接管控所有資源。Ring3權限最低,應用程序擁有此權限。應用程序可以訪問自己權限內的硬件資源,不能訪問Ring0權限內的硬件資源。

圖片

從運行態(tài)上來看,虛擬機是x86服務器上的進程,擁有Ring3權限。不具有Host OS的Ring0權限,無法訪問整個硬件資源,此時如果直接訪問,則會被Host OS捕捉到并觸發(fā)異常,彈出警告窗口。

圖片

那么,如何才能Guest OS擁有Ring0權限呢?從x86架構的原始設計來看,不可能。

退一步,讓Guest OS自認為的擁有Ring0權限。這就需要底層VMM或者硬件做到“Guest OS自認為的權限”,以此來欺騙Guest OS。

先來看看VMM如何做?

一種方法是將欺騙進行到底。

Guest OS不做任何修改,依然是那個追風少年,VMM依然變成一個保姆,有求必應。但VMM也是有策略的:

針對一些不敏感的指令,VMM直接進行“翻譯”,調用Host OS,為Guest OS模擬出它所需要的包括CPU、磁盤、內存、網(wǎng)卡、顯卡等抽象硬件資源。

針對一些敏感指令,如reboot,VMM考慮到會影響整個x86服務器,則將進行“模擬”,轉換為只針對特定Guest OS 的reboot指令。

另一種是認清現(xiàn)實,就是一個虛擬機。

告知Guest OS一些細節(jié),Guest OS自身做一些調整,修改指令集中的敏感指令和核心態(tài)指令,使得Host OS能夠判斷出是誰要訪問硬件資源,從而提供相應的硬件抽象。

再來看看,硬件如何做?

原來x86架構包含4個權限的指令集,現(xiàn)在打補丁。引入VMX新模式:也就是Virtual Machine eXtension,包括根操作模式(VMX Root Operation)和非根操作模式(VMX Non-Root Operation)。

圖片

VMM運行在根操作模式,Guest OS運行在非根操作模式,具有Ring 0權限,可直接訪問硬件資源,同時,對于reboot等敏感指令,則由硬件輔助,直接切換到 VMM 執(zhí)行,轉換為只針對特定Guest OS 的指令。

這就是Intel的VT-x方案基本思想。

四、實現(xiàn)技術

虛擬化有很多實現(xiàn)技術,如KVM、Xen、VMware、Virtual Box、Hyper-V 等,這里僅介紹KVM。

KVM(Kernal-based Virtual Machine)是基于Linux內核的開源虛擬化方案。KVM提供CPU虛擬化、內存虛擬化,而I/O部分,則借助于QEMU實現(xiàn)( QEMU早于KVM )。

KVM虛擬化方案使用的是VT-x的VMX模式。其技術架構如下:

圖片

五、工具

針對眾多的虛擬化實現(xiàn)技術,云計算IaaS平臺通常采用兼容并包的策略,為了簡化處理,引入了中間適配層:libvirt。libvirt支持界面和CLI命令行的方式,如virsh、virt-manager。

圖片

事實上,現(xiàn)有的云計算框架平臺使用了libvirt的API 來管理虛擬機,如 OpenStack。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)

    關注

    37

    文章

    6825

    瀏覽量

    123333
  • 虛擬機
    +關注

    關注

    1

    文章

    917

    瀏覽量

    28202
  • x86服務器
    +關注

    關注

    0

    文章

    6

    瀏覽量

    4197
收藏 人收藏

    評論

    相關推薦

    解密VST2.0交換機虛擬技術

    近兩年隨著云計算、大數(shù)據(jù)、計算虛擬等等技術的興起,伴隨大家對“云”的向往,促使加快了網(wǎng)絡虛擬技術
    發(fā)表于 02-01 10:03 ?5427次閱讀

    Linux上的虛擬技術歷史回顧

    虛擬技術的應用十分廣泛. 當前虛擬技術主要關注于服務器的
    發(fā)表于 07-22 07:18

    幾種主要的虛擬技術有什么不同?

    虛擬技術作為建設綠色數(shù)據(jù)中心的一項重要技術,一直在不斷發(fā)展完善,其應用領域包括操作系統(tǒng)、服務器、存儲以及網(wǎng)絡。網(wǎng)絡的虛擬
    發(fā)表于 08-14 06:52

    ARM的虛擬技術是什么?如何去實現(xiàn)呢

    主流的操作系統(tǒng)都有一個假設,就是這個系統(tǒng)有一個特權模式之下的OS,之上在跑多個非特權模式的APP;而ARM的虛擬技術就是在同一個系統(tǒng)上共存多個操作系統(tǒng),實現(xiàn)這種虛擬
    發(fā)表于 05-09 09:55

    有關虛擬機及虛擬技術的幾點詮注

    虛擬機及虛擬技術給計算機應用注入了新的研究與開發(fā)點,同時也存在諸多不利因素。本文綜述了虛擬機及虛擬
    發(fā)表于 06-22 18:04 ?36次下載

    虛擬機及虛擬技術

    虛擬機及虛擬技術給計算機應用注入了新的研究與開發(fā)點,同時也存在諸多不利因素。本文綜述了虛擬機及虛擬
    發(fā)表于 09-07 10:15 ?13次下載

    CPU虛擬技術

    CPU虛擬技術              虛擬
    發(fā)表于 12-24 10:58 ?684次閱讀

    虛擬技術在云計算中的發(fā)展

    虛擬技術 是云計算實現(xiàn)的關鍵技術,通過虛擬可以為應用提供靈活可變、可擴展的服務。云計算的發(fā)展
    發(fā)表于 06-10 16:54 ?33次下載
    <b class='flag-5'>虛擬</b><b class='flag-5'>化</b><b class='flag-5'>技術</b>在云計算中的發(fā)展

    虛擬技術的發(fā)展趨勢

    本視頻主要詳細介紹了虛擬技術的發(fā)展趨勢,分別是平臺開放、連接協(xié)議標準虛擬
    的頭像 發(fā)表于 01-02 16:11 ?9235次閱讀

    虛擬技術的應用

    虛擬技術具有可以減少服務器的過度提供、提高設備利用率、減少IT的總體投資、增強提供IT環(huán)境的靈活性、可以共享資源等優(yōu)點,但虛擬
    的頭像 發(fā)表于 01-02 16:15 ?1.3w次閱讀

    虛擬技術有哪些

    本視頻主要詳細介紹了虛擬技術有哪些,分別有CPU虛擬、網(wǎng)絡虛擬
    的頭像 發(fā)表于 01-02 16:25 ?3.9w次閱讀

    虛擬技術的介紹以及它的優(yōu)勢分析

    虛擬技術,或稱虛擬技術,英文全文為:Virtualization,是一種資源管理技術
    的頭像 發(fā)表于 04-10 17:02 ?1.4w次閱讀

    虛擬技術是什么 虛擬技術介紹

    利用率的思路,從而實現(xiàn)簡化管理,優(yōu)化資源等目的的解決方案,就叫做虛擬技術?! ∫韵率且恍I(yè)界標準組織對虛擬的定義?!  ?/div>
    發(fā)表于 07-19 11:26 ?1次下載

    云計算中的虛擬技術應用

    云計算中的虛擬技術是一種將計算機物理實體(如服務器、存儲設備、網(wǎng)絡設備)通過軟件技術劃分為多個虛擬實體的
    的頭像 發(fā)表于 10-24 09:22 ?697次閱讀

    emc虛擬技術的應用場景

    在當今的數(shù)字化時代,企業(yè)面臨著數(shù)據(jù)爆炸式增長和業(yè)務需求不斷變化的挑戰(zhàn)。為了應對這些挑戰(zhàn),企業(yè)需要靈活、高效且可擴展的IT基礎設施。EMC虛擬技術正是在這樣的背景下應運而生,它通過將物理資源抽象
    的頭像 發(fā)表于 11-01 15:26 ?346次閱讀