虛擬化技術KVM

来源:http://www.cnblogs.com/xiaocheche/archive/2017/09/28/7607747.html
-Advertisement-
Play Games

1》虛擬化技術: 電腦虛擬化技術是多種技術的綜合實現,它包括硬體平臺,操作系統,存儲以及網路等,簡單地說,虛擬化技術就是在單台主機上可以虛擬多個虛假主機,並可以在這些虛擬主機上運行不同的操作系統平臺,虛擬化技術的出現可以節約大量的硬體資源與能源消耗,降低資金成本,虛擬化現在已經是每個企業必有的項目 ...


1》虛擬化技術:
  電腦虛擬化技術是多種技術的綜合實現,它包括硬體平臺,操作系統,存儲以及網路等,簡單地說,虛擬化技術就是在單台主機上可以虛擬多個虛假主機,並可以在這些虛擬主機上運行不同的操作系統平臺,虛擬化技術的出現可以節約大量的硬體資源與能源消耗,降低資金成本,虛擬化現在已經是每個企業必有的項目;目前所提供的比較成熟的虛擬化解決方案主要有VMware,Xen,KVM以及Kyper-V,虛擬化技術通過Hypervisor動態模擬與分配電腦硬體資源給虛擬機操作系統,由於Hypervisor可以模擬多個硬體資源給Guest OS,因而對Guest OS而言,就像運行在獨立,真實的硬體資源上一樣,架構如下圖所示:
                    *****應用層*****
                **Guest OS Guest OS Guest OS**
                ****** Hypervisor(虛擬機監控器)***
                    *** 硬體層 ***

          1>VMware虛擬化技術:
      VMware是全球數據中心解決方案的領導品牌,它為我們提供了高性能,高可用,管理方便的虛擬機管理程式,是目前大多數企業虛擬化環境部署的首選方案,VMware虛擬化的工作原理是直接在電腦硬體或主機操作系統上插入一個精簡的軟體層,該軟體層包含一個以動態和透明方式分配硬體資源的虛擬化管理程式,多個操作系統可以同時運行在單台物理機上,彼此之間共用硬體資源;由於是將整台電腦(包括CPU,記憶體,操作系統和網路設備)封裝起來,因此,虛擬機可與所有標準的x86操作系統,應用程式和設備驅動程式完全相容,可以同時在單台電腦上安全運行多個操作系統和應用程式,每個操作系統和應用程式都可以在需要時訪問其所需的資源;
      VMware虛擬化產品最大的優勢在於其完善的虛擬化管理平臺以及可靠的基礎架構,為企業計算環境提供完善,穩定,可靠的虛擬技術;VMware虛擬化產品的不足主要包括:首先,VMware虛擬化技術主要針對的是x86架構,對於複雜的企業運算環境,VMware無法滿足所有電腦主機的需要,其次VMware在雲計算方面的發展略顯遲緩,在性能與容災方面表現不容,最後,VMware是商業產品,用戶需要為此支付大量的許可費用;

           2>Xen虛擬技術:
      Xen是由劍橋大學開發的開源虛擬機監控器,Xen的目標是在單台主機上運行上百台全功能的虛擬機,Xen支持半虛擬化與全虛擬化技術,半虛擬化技術的性能要比全虛擬化技術高很多,全虛擬化技術是通過中間層軟體模擬真實的硬體設備,最終虛擬機使用模擬設備時就需要中間層將相應的指令轉換為物理硬體指令進行操作,也就是說虛擬機無法直接發送操作指令給物理硬體,必須經過模擬軟體轉換代碼後才可以發送給物理硬體執行具體操作;而半虛擬化技術則可以實現部分虛擬機與部分硬體直接通信,虛擬機可以直接發送操作指令給部分硬體設備,這樣虛擬機的效率就可以提升很多倍,Xen的優勢在於開源且技術非常成熟,但隨著RedHat以及Ubuntu目前已經將系統預設的虛擬組件更新為KVM,所以Xen的市場已經開始受到影響;
   3>KVM虛擬化技術:
      KVM是基於x86架構上Linux操作系統的全虛擬化解決方案,由於KVM本身就工作於內核環境中,所以執行效率要比傳統意義上的虛擬化技術高很多,KVM虛擬化需要Intel VT或AMD-V技術的支持,可以使用下麵的命令確定本機CPU是否支持以上兩種虛擬化技術:
                    egrep ‘(vmx|svm)’ /proc/cpuinfo
      相對於Xen而言,KVM從Linux 2.6.20後已經集成到內核模塊中,使用Linux內核作為虛擬調度器管理虛擬機,更直接的硬體調度代表更高的效率,KVM核心代碼也非常簡訊精湛,未來KVM將會慢慢成為主流虛擬化技術;

2》KVM虛擬化應用案例:
  1>安裝KVM組件:
    安裝KVM組件需要先確保系統已經滿足了最低安裝要求,部署KVM虛擬化需要通過BIOS開啟CPU的虛擬化功能,確保至少6GB的磁碟剩餘空間以及2GB記憶體           空間,KVM虛擬機支持的存儲方式有:本地磁碟文件,物理磁碟分區,LVM分區,iSCSI磁碟,GFS2文件系統,光纖LUNs設備等;
    1)部署操作系統時安裝KVM組件:
        KVM虛擬化組件可以在安裝操作系統的過程中選擇Virtualization,Virtualization Client,VirtualizationPlatform,Virtualization Tools組件包;
        通過Kickstart方式安裝系統時需要在Kickstart配置文件中加入如下內容:
        @Virtualization
        @Virtualization-Client
        @Virtualization-Platform
        @Virtualization-Tools
    2)在現有的操作系統平臺上安裝虛擬化組件:
        配置YUM源後,可以直接通過組包來安裝虛擬化組件,列如如下命令:
        yum groupinstall “Virtualization Tools”

          2>創建虛擬機操作系統:
      系統中的虛擬化組件安裝完成後,就可以創建虛擬主機了,如果安裝了圖形環境,就可以用virt-manager命令開啟KVM管理器界面,單擊“NEW”按鈕創建                虛擬主機,也可以通過命令行工具virt-install命令直接安裝部署虛擬主機;
      1)使用圖形管理工具創建虛擬機:
        virt-manager是系統所提供的虛擬機管理程式,用來通過圖形創建以及管理虛擬機,下麵介紹virt-manager創建虛擬機的具體方法:
        第一步:在命令終端輸入virt-manager命令開啟圖形管理程式;

                                

                                   註意:kvm 安ERROR Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

            /etc/init.d/messagebus restart

                    第二步:選擇hypervisor並單擊“Connect”按鈕,連接hypervisor,預設為qemu,預設連接的是本機hypervisor,選擇Connect to remote host,在host框中輸入計                                  算機主機名或IP地址後,也可以連接其他主機的hypervisor;                                     

                             

                    第三步:單擊“Create a new virtua machine”按鈕,開啟新建虛擬機嚮導,新建虛擬機嚮導中將提示進行以下內容的設置;
          **虛擬機名稱以及安裝方式,安裝方式可以選擇ISO,光碟,PXE等方式;  

                               

                            **安裝介質路徑,選擇具體的光碟機或ISO文件路徑,以及操作系統類型;

                               

                             **配置記憶體與CPU參數;

                                

                                   **配置存儲參數,可以選擇創建新的虛擬存儲文件,也可以選擇使用已存在的存儲設備,預設虛擬機鏡像文件路徑為/var/lib/libvirt/images;

                                  

                                 **配置網路,架構以及其他硬體參數,網路選擇橋接可以實現虛擬機直接訪問外部網路; 虛擬機選擇橋接網路時,需要宿主主機創建一個共用的                                   橋接網路設備,也就是所謂的網橋,如果宿主主機的物理網卡名稱為eth0,則創建虛擬橋接設備的具體步驟如下:

                                  

                                 

                                   查看網卡橋接:

                                    

                                  

                    第四步:安裝部署虛擬機操作系統,虛擬主機部署完成後,可以通過硬體信息按鈕查看該虛擬機硬體的信息;

3》監控虛擬機操作系統:
  1>修改監控屬性:
    使用virt-manager的屬性視窗可以修改虛擬主機的性能監控屬性,開啟virt-manager程式後可以選擇Edit菜單下的Preferences子菜單,我們可以勾選Disk I/O與            Network I/O選項啟用磁碟與網路介面性能查詢功能;                 

              

             2>監控圖形:
      打開virt-manager程式,單擊view菜單下的字菜單,根據需要決定是否勾選CPU U撒個,Disk I/O, Network I/O,就可以顯示效果圖;

                

               3>查看虛擬機詳細信息:
        virt-manager還可以查看虛擬機連接的詳細信息 ,通過Edit菜單下的Condition Details,我們可以進一步查看hypervisor,真實主機CPU以及記憶體使用情                          況,虛擬網路設置,存儲池設置以及網路介面信息;    

                     

  4》虛擬存儲:
    KVM存儲池是被libvirt所管理的文件,目錄或存儲設備,存儲池可以位於本地,也可以通過網路共用,存儲池最終可以被虛擬主機所使用,預設libvirt使用基於目錄的存儲池設計,/var/lib/libvirt/images目錄就是預設的存儲池;本地存儲池可以是本地的一個目錄,磁碟設備,物理分區或LVM捲,但本地存儲池不適合於大規模產品部署,也不支持虛擬機遷移功能,網路共用存儲池使用標準的網路協議進行存儲設備的共用,它支持SAN,IP-SAN,NFS,GFS2等協議,在KVM虛擬化技術中 ,存儲池可以包含多個存儲捲,對虛擬主機而言,這些存儲捲將被識別為物理硬體存儲設備;
下麵將以目錄存儲以及共用NFS存儲為例,演示KVM存儲池及存儲捲的創建流程:
  1>創建基於目錄的虛擬存儲池與存儲捲:
    1)創建目錄:
       mkdir /var/lib/libvirt/test
    2)修改文件安全相關屬性:

                 

                  註意: 安裝semanage工具的方法:
        yum -y install policycoreutils-python

                 3)創建存儲池:
      virt-manager
      存儲池名稱為test,類型為基於目錄的存儲池,還需要輸入存儲池目錄的具體路徑;

                        

                        

                        

                    4)創建存儲捲:
        完成存儲池的創建後,我們就可以在池中創建存儲捲了,單擊選擇需要創建捲的存儲池,根據提示輸入捲名稱,格式類型,最大存儲空間,實際分配                          空間;

                         

                           

          2>為虛擬機添加使用存儲設備:
      存儲捲創建完成後,我們的虛擬機就可以使用這些捲了,通過虛擬機管理器選擇一個虛擬機雙擊打開控制視窗,點選設備列表,顯示設備列表,選擇“Add              Hardware”按鈕添加新的設備,在添加虛擬硬體視窗中選擇Storage存儲設備,因為我們已經為虛擬機創建好了存儲捲設備,因此我們選擇已經存在的存儲空間
            ,並輸入存儲捲的絕對路徑,進入虛擬機操作系統,通過fdisk查看磁碟信息將包含剛剛添加的存儲捲設備,標記為/dev/vdb;        

                

               下麵將演示如何在KVM虛擬化環境中創建基於NFS的存儲池以及存儲捲設備,這裡假設已經準備好了一臺NFS共用伺服器:
      1)創建存儲池:
           與基於目錄的存儲池類似,我們創建一個新的存儲池,第一步依然是填寫存儲池名稱以及類型;第二步根據實際情況填寫NFS伺服器主機名或IP地址                      (192.168.0.254),伺服器共用目錄(/nfs),本地掛載點(/var/lib/libvirt/nfs);

                        

                       

             2)創建邏輯捲:
      與基於目錄的存儲捲類似,我們通過“New Volume”按鈕創建存儲捲,根據提示輸入捲名,格式類型,最大存儲容量,分配存儲容量; 

                    

5》虛擬網路設置:
    KVM虛擬化使用一種稱為虛擬交換的技術實現虛擬機的網路互聯,虛擬交換是運行在宿主主機上的一個軟體結構,虛擬主機通過與這個虛擬交換進行直連實現與外界通信,當我們部署完成虛擬化環境後,libvirt進程會在宿主主機上自動創建一個預設的虛擬交換virbr0,我們可以通過ifconfig命令查看該虛擬交換設備的詳細信息;

           

               虛擬交換可以運行在NAT模式,路由模式與獨立模式,預設情況下libvirtd進程使用的是NAT作為虛擬交換的工作模式:
    NAT模式:NAT模式使用的是IP欺騙技術,該技術可以使虛擬主機使用宿主主機的IP地址與外部主機通信,此時虛擬主機之間不管是相同網段還是不同網段都                                 可以互相通信,但預設位於宿主主機外部的電腦設備不可以通虛擬交換設備連接的虛擬機通信,也就是說虛擬主機不可以連接真實機外面的其他                                主機;
    路由模式:路由模式虛擬交換將與真實設備的物理網路相連接,實現數據包的出站與入站,宿主主機將承擔路由的角色;
    獨立模式:獨立模式使每個虛擬交換設備都是一個獨立的網路,並且與宿主主機也是相互獨立的,連接在相同虛擬交換設備的虛擬主機是可以進行通信的;
      1>創建新的虛擬交換網路:

                             

                             

                             

                             

                             

                            

                     創建完虛擬交換後,所有的虛擬主機都可以添加虛擬網卡介面連接該虛擬設備,打開虛擬主機後,在硬體列表下方使用Add Hardware按鈕添加虛擬網路接               口,選擇Network網路設備,在右側填寫該網路介面需要連接的宿主主機的虛擬交換設備,除此之外,我們還需要填寫該虛擬主機MAC地址以及設備驅動方                   式;

                 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 概述 1 概述 阻止保存要求重新創建表的更改,場景是這樣的:假設資料庫中有一張員工表EmployeeInfo,如下所示: 其中有個欄位EmployeeBirthday,在設計表時,其類型誤設為VARCHAR類型,此時需要更改其數據類型,即VARCHAR類型更改為DateTime類型,SqlSer ...
  • 簡單的介紹一下,我使用MongoDB的場景。 我們現在的物聯網環境下,有部分數據,採樣頻率為2000條記錄/分鐘,這樣下來一天24*60*2000=2880000約等於300萬條數據,以後必然還會增加。之前資料庫使用的是mssql,對於資料庫的壓力很大,同時又需要保證歷史查詢的響應速度,這種情況下, ...
  • 原文發表於cu:2017-06-12 本文簡單介紹MySQL雙主複製原理及1個簡單是雙主複製驗證。 一.MySQL雙主複製原理 1. 雙主複製原理 master-master複製的兩台伺服器,既是master,又是另一臺伺服器的slave,本質上互為主從。 二.驗證環境 1. 操作系統 CentOS ...
  • 1.把需要的腳本下載放到/root 目錄下,然後運行本腳本即可自動化安裝lnmp環境: ...
  • CentOS安裝Python3.X 1、系統環境說明 2、安裝軟體說明 2.1 python軟體包版本3.5.2 2.2 軟體安裝目錄為/application、/home/oldboy/tools 存放源碼包 2.3 CentOS 6.4自帶2.6,所以為了方便區分,將python3.X安裝在/a ...
  • 換了台本子win7 64位,抽空做個雙系統,裝了下linux。 遇到開機問題:進linux可以正常使用,進win7花屏死機,初步估計是grub(此時的boot sector位grub)的問題,啟動器被破壞一種表現。 對應做了以下處理: 1、在linux下修改/boot/grub/gurb.cfg,把 ...
  • 1.查看Firewall 服務狀態 2.查看Firewall 的狀態 註意: firewalld預設配置文件有兩個:/usr/lib/firewalld/ (系統配置,儘量不要修改)和 /etc/firewalld/ (用戶配置地址) 先把ssh的埠改下 防止不能遠程操作了 3、開啟、重啟、關閉、 ...
  • PIC中檔系列單片機,每條指令14位,共有35條彙編指令,根據操作對象不同,可將其分為三類: 位元組操作類指令 位操作類指令 立即數與控制類操作指令 1、位元組操作類指令,以MOVF指令為例: 指令:MOVF f, d 說明: 功能:寄存器f值傳送; MOVF為助記符,即操作指令,大小寫均可; f代表文 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...