互聯網十萬個為什么之什么是虛擬化?

虛擬化是在一臺物理計算機上同時運行多個虛擬操作系統實例的技術。虛擬操作系統上運行的這些實例被稱為虛擬機(Virtual Machine)或者客戶機(Guest Machine)。每個虛擬機都具備完整的硬件抽象,包括CPU、內存、網絡適配器和磁盤等,它們可以獨立運行在自己的操作系統和應用程序,互不干擾。

為什么需要虛擬化?

虛擬化技術提供了更靈活、高效和可管理的計算環境,適應了現代計算需求的變化和復雜性。其必要性體現在以下幾個方面。

  • 提升資源利用率:虛擬化通過在一臺物理計算機上同時運行多個虛擬機,每個虛擬機運行獨立的應用負載,可以有效地提升硬件資源的利用率,進而降低成本。
  • 屏蔽硬件差異: 憑借虛擬化對底層硬件的抽象,使得虛擬機可以在不同的硬件平臺上運行而無需修改,從而使得在不同環境中輕松部署和管理應用負載成為可能。
  • 提供資源隔離能力: 虛擬化技術確保每個虛擬機都被隔離開來,互不干擾。這種資源隔離性使得在同一臺物理機上運行的不同應用或服務可以相互獨立地操作,提高了系統的穩定性和安全性,在多個租戶共享同一臺物理機的情況下這個能力尤為重要。
  • 部署的靈活性:虛擬化允許快速創建、復制和部署虛擬機,大大減少了新系統或應用程序的部署時間。這對于應對業務需求的變化或快速擴展計算能力至關重要。

虛擬化和容器化的區別是什么?

從整體來看:

  • 虛擬化提供給客戶的是一個完整的虛擬計算環境,客戶指定虛擬機的規格和操作系統鏡像,在此基礎上部署自己的業務應用程序和模塊。
  • 容器化是應用程序級別的虛擬化,通過將應用程序及其部署、運行所依賴的庫、配置整體打包成容器鏡像,可以實現應用程序的跨平臺部署和運行。

從資源隔離的視角來看:

  • 虛擬化提供操作系統級別的硬件隔離,從CPU到內存再到操作系統,不同虛擬機之間完全隔離。
  • 容器化提供了進程級別的軟件隔離,容器之間共享操作系統的內核和系統資源,通過命名空間和控制組實現了邏輯上的互相獨立。

但在實際應用中,虛擬化和容器化可以互相為正交關系。即客戶可以購買虛擬機并在虛擬機上部署自己的容器化業務,也可以直接購買彈性容器實例 ECI(Elastic Container Instance)等虛擬機容器實例(一臺虛擬機上只運行一個容器),兼容容器化運維體驗的同時擁有硬件級別隔離的安全能力。

虛擬化有哪些實際應用?

一個簡單的場景,客戶A需要一個g7i.2xlarge的suse系統來運行它的Java類在線應用,客戶B需要一個g7i.4xlarge的Windows Server來運行Sqlserver,我們可以將這兩個實例裝箱到一臺宿主機上運行,A和B客戶因為運行了兩套完全獨立的操作系統和應用,他們之間的底層資源在硬件層面也是通過虛擬化達到完全隔離,所以兩個業務不會互相干擾。另一方面,他們按需做了業務的部署和算力容量的分配,從而使得各自以及整體的資源利用率能夠盡可能的最大化。

虛擬化的技術原理是什么?

本質上,虛擬化技術通過了硬件或者軟件提供了資源模擬資源隔離兩個最基礎的能力,在此基礎上可以構建豐富的功能,并不斷優化性能與穩定性體驗。

  • 資源模擬

    宿主機的某些硬件資源具有全局性和唯一性,因此虛擬機不能直接訪問,否則會影響宿主機的穩定性。當虛擬機執行訪問該資源的指令時,Hypervisor會通過截獲模擬的方式完成虛擬機的指令執行。設備模擬的實現機制可以從兩個維度分類。

    • 從實現主體來看,分為軟件虛擬化和硬件輔助虛擬化。前者完全由軟件模擬設備行為,存在一定的性能損耗,后者將功能部分卸載或者完全卸載到硬件,因此有更好的性能。
    • 從Guest是否感知的視角來看,分為全虛擬化和半虛擬化。前者無需客戶感知底層是物理機和虛擬機,后者可以讓Guest明確感知底層的虛擬化架構和能力,因此可以對設備模擬的實現進行優化或者模擬現實不存在的設備,帶來更好的虛擬化性能。
  • 資源隔離

    資源隔離是云計算提供多租能力的基礎,利用虛擬化技術可以提供CPU隔離、內存隔離、存儲隔離和網絡隔離的能力,確保客戶的業務數據安全。

    • CPU和內存隔離一般基于CPU廠商提供的硬件輔助虛擬化能力來實現。以Intel平臺為例,通過VT-x技術為每個vCPU構建獨立的運行狀態集,不同虛擬機之間無法獲取對方的vCPU狀態,也無法影響宿主機的運行。通過EPT(Extended Page Tables)技術為每個虛擬機構建兩級頁表翻譯機制,第二級頁表只能由Hypervisor來創建,確保不同虛擬機可以訪問的物理內存被嚴格隔離。
    • 存儲隔離和網絡隔離有多種實現方式。阿里云基于CIPU芯片實現了云盤和彈性網卡的硬件卸載,通過IOMMU保證了云盤、網卡的IO請求只能訪問所屬虛擬機的內存。存儲虛擬化系統提供虛擬機粒度的IO通道、存儲協議棧、存儲介質全鏈路的數據和QoS隔離能力。網絡虛擬化系統支持虛擬機粒度的網絡帶寬、PPS(Packets Per Second)的QoS(Quality of Service)隔離。不同虛擬網絡(VPC)內的虛擬機實例處于不同的路由平面無法直接進行通信,從而保證了VPC的隔離性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17180.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17180.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17180.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【408精華知識】時鐘周期、機器周期、總線周期、指令周期、存取周期還傻傻分不清?

在做題時,我們經常能遇到關于“周期”的表述,比如時鐘周期、機器周期、總線周期、指令周期、存取周期,類似的表述讓我們很容易迷茫,那么接下來我們就看看它們到底是什么、有什么區別? 周期特點時鐘周期也稱為CPU時鐘周…

圖片數據增強-resize(不同插值)、各種模糊

各種不同的模糊處理 import os import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍歷文件夾下的所有文件for filename in os.listdir(input_folder_path):# 檢查文件類型是否為圖片if filename.endswith(.jpg) or filename.endswith(.jpeg) or …

手算示例:在神經網絡中進行后門攻擊及驗證

手算示例:在神經網絡中進行后門攻擊及驗證 一、神經網絡架構二、初始化參數三、數據集干凈數據(原始數據)帶后門數據(污染數據) 訓練步驟四、示例前向傳播(干凈數據)計算損失(干凈數…

每天五分鐘深度學習框架pytorch:tensor張量的維度轉換大全

本文重點 在深度學習中比較讓人頭疼的一點就是矩陣的維度,我們必須構建出符合神經網絡維度的矩陣,只有將符合要求的矩陣放到神經網絡中才可以運行神經網絡,本節課程我們將學習以下tensor中維度的變化。 view和shape View和shape,這兩個方法可以完成維度的變換操作,而且使…

【C語言實現TCP通信】

要在C語言中實現TCP通信,您可以遵循以下步驟: 創建Socket:使用socket()函數創建套接字,指定協議族為AF_INET(IPv4)或AF_INET6(IPv6),類型為SOCK_STREAM表示使用TCP協議。…

【相機標定系列】【相機模型】SLAM 中常用的相機模型畸變模型總結

Overview 魚眼鏡頭的成像原理分類: Dioptric cameras,通過透鏡來實現,主要是折射 Catadioptric cameras,使用一個標準相機加一個面鏡(Shaped mirror) polydioptric camera,通過多個相機重疊視…

npm的基本命令和用法

1. 安裝與初始化 安裝npm 首先,確保你的系統中已安裝了Node.js,因為npm隨Node.js一同分發。訪問Node.js官網下載并安裝適合你操作系統的版本。安裝完成后,在終端或命令提示符中輸入以下命令來驗證安裝: 1$ node -v 2$ npm -v …

[STM32-HAL庫]ADC采集-DMA中斷采集-平均值濾波-STM32CUBEMX開發-HAL庫開發系列-主控STM32F103C8T6

目錄 一、前言 二、實現步驟 1.STM32CUBEMX配置 2.Keil工程程序設計 三、結語 一、前言 本文通過STM32CUBEMX實現對ADC的數據采集和濾波操作,幫助各位開發者完成與模擬量輸入的采集工作。 二、實現步驟 1.STM32CUBEMX配置 以STM32F103C8T6為例,打開S…

3D 生成重建015-nerf2mesh從神經輻射場中提取mesh和紋理!

3D 生成重建015-nerf2mesh從神經輻射場中提取mesh和紋理! 文章目錄 0 論文工作1 論文方法2 效果 0 論文工作 NeRF2Mesh 提出了一種從多視角 RGB 圖像重建紋理表面網格的新方法。它克服了傳統 NeRF 模型的局限性,由于其隱式表示,傳統 NeRF 模…

高斯分步正態分布

高斯分布,也稱為正態分布(Normal Distribution),是統計學和概率論中最重要的分布之一。它由德國數學家卡爾弗里德里希高斯(Carl Friedrich Gauss)首先系統研究并命名。以下是關于高斯分布的詳細介紹&#x…

基于 Pre-commit 的 Python項目代碼風格統一實踐

背景信息 統一代碼風格首先需要定義參照的規范,每個團隊可能會有自己的規范,我們選擇的規范是 yapf mypy isort,如果保證所有的研發人員都遵循相關規范呢? 鼓勵 IDE 中對應的插件的安裝,通過直接對應的插件&#x…

bootstrap實現天平效果

之前提到了,最近,孩子的幼兒園讓家長體驗“半日助教活動”,每個家長需要講授15-20分鐘的課程。作為一名程序員,實在沒有能教的課程,只能做了一個小游戲,帶著小朋友們熟悉數字。 在上一章博客中&#xff0c…

【讀書】讀書筆記——理科生的視角:底層邏輯+數學之美

1,底層邏輯1(看清這個世界的底牌) 劉潤 著 0)什么是底層邏輯? 底層邏輯是:事物之間共同點、變化背后不變的東西事;看清事物的本質,才能在復雜變化中從根本上解決問題。 1&#x…

【Java繼承】(超級詳細!!!)

【Java繼承】(超級詳細!!!) 1、 繼承的概念2 、繼承的語法3、 父類成員訪問3.1 子類中訪問父類的成員變量3.2 子類中訪問父類的成員方法 4、 super關鍵字5 、子類的構造方法6、 繼承關系上的執行順序7、protected 關鍵…

ubuntu20.04安裝后配置:wifi、屏幕亮度、Nvidia驅動等

文章目錄 一、安裝時最好用英語,否則Downloads等home下文件夾是中文二、安裝后開機無法進入系統圖形界面三、清理不必要軟件,更新系統四、屏幕亮度、Nvidia驅動五、wifi 一、安裝時最好用英語,否則Downloads等home下文件夾是中文 安裝完再在…

error: ‘address‘ in ‘class school‘ does not name a type school:: address = “

錯誤代碼 class school{ public:string name;static string address; public:static string getAddress(){return address;} };school::address "南京路";原因 school::address “南京路”;前面未加類型,導致編譯錯誤 解決 class school{ public:stri…

選項卡式小部件QTabWidget

文章目錄 1. 詳細介紹2. 常用屬性3. 信號4. 常用函數5. 官方示例Tab Dialog QTabWidget提供一堆選項卡式小部件。 1. 詳細介紹 選項卡式部件提供一個選項卡欄和一個用于顯示與每個選項卡相關的頁面的頁面區域。 默認情況下,選項卡欄顯示在頁面區域上方,…

Vue.js - 計算屬性與偵聽器 【0基礎向 Vue 基礎學習】

文章目錄 計算屬性 computedcomputed 的使用方法computed 與 method 的區別計算屬性完整寫法 watch 偵聽器(監視器)簡單寫法 → 簡單類型數據,直接監視完整寫法 → 添加額外配置項 計算屬性 computed computed 的使用方法 **概念&#xff1…

web題解,基礎知識鞏固(qsnctf)

1.文章管理系統 1)打開題目,把它頁面翻完了,沒看懂它有啥用 2)看了看源碼,也是一樣的,沒找到有用的東西 3)想著可能還是在隱藏文件里找,那我就直接用dirsearch掃掃看 4)…

初識C++ · 模擬實現vector

目錄 前言: 1 部分簡單函數的實現 2 push_back和pop_back 3 reserve和resize 4 Print_vector 5 insert和erase 6 拷貝構造 7 構造 8 賦值 9 memcpy的問題 10 迭代器失效 前言: 繼上文模擬實現了string之后,接著就模擬實現vector&…