虛擬化介紹、以及kvm

什么是虛擬化?

在計算機領域中虛擬化,和我們平時說的虛擬化并沒有什么兩樣,說白了就是一個虛擬出來的東西罷了,并不是真實存在的。

虛擬化的歷史

虛擬化早在20實際60年代末,由IBM開發被命名為vmm(Virtual Machine Monitor)虛擬機監視器的軟件,我們知道那時候工藝技術并不發達,電腦也不像現在這樣屬于每家每戶的標配,IBM為了解決電腦使用的問題,就開發了此軟件,用于將一臺大型計算機硬件虛擬分為多個計算機,以提供多用戶對計算機的使用。

虛擬化介紹、以及kvm

此圖是一個標準虛擬化場景,硬件上方安裝一個操作系統(我們成為宿主機),由操作系統上安裝一個軟件(我們稱之為Hypervisor)創建出多個虛擬機(我們成為來賓主機),guest主機如果發起系統調用等特權指令的操作會被hypervisor接收,并轉換后交給host實現系統調用。

虛擬化的分類

半虛擬化:虛擬機明確的知道自己運行與虛擬機中,發起的所有系統調用被稱作為hypercall,由hypercall直接向硬件發出指令。

虛擬化介紹、以及kvm

完全虛擬化:又被稱為硬件輔助的虛擬化,其實還有一種被稱之為模擬化的東西,模擬化是什么呢?就是guest所有設備都是通過hypervisor模擬出來的,底層硬件和guest的硬件甚至可以完全不一樣,但是這樣就會多個上面提到的指令轉換的過程,這樣性能就大大被降低。為了解決這個問題,一些硬件廠商直接在硬件上提供了一些技術支持,例如我們知道cpu有個叫做運行環的概念,用戶空間的指令在環3上運行,如果有對硬件的操作,都是通過發起系統調用,由內核操作硬件來完成這類型的指令,是在環0上執行,支持硬件輔助的cpu會虛擬出一個叫環-1的東西,我們host的內核從此就在環-1上呆著了,cpu上的指令集依然在環0上,這時候如果guest發出一個系統調用,就會直接被cpu捕獲,再由cpu激活運行在環-1上的host內核來執行,這樣一來是不是就比前面說的模擬化性能大大提升啊~。(當然在這里只提到了cpu的虛擬化,甚至cpu的MMU和TLB的虛擬化都沒提到,還有內存的虛擬化,IO的虛擬化,這里就不多做介紹了

另外其實還有很多種虛擬化的分類,例如我們使用的tomcat 應用級別的虛擬化,還有現在的容器虛擬化(只隔離用戶空間,多個用戶空間共享內核空間)等等,但這些不是今天我們所說的重點。

看了對半虛擬化和完全虛擬化,如果我描述正常的話,相信你已經有個一點點概念了,半虛擬化無疑是運行性能應該是最好的,但是需要修改guest上的內核,以讓他知道自己運行在虛擬機的環境中,但是這又很難實現,畢竟修改內核也不是誰都會玩的虛擬化介紹、以及kvm,再說了有些系統閉源你根本沒法修改~。所以一般都使用的完全虛擬化類型。

再說kvm之前還必須提一下一個重要的軟件qemu,qemu本身是一款模擬軟件,可以模擬出各種硬件,xen和kvm都是依賴于qemu,IO設備一般有qemu模擬,cpu和內存一般就基于硬件輔助技術虛擬出來,qemu同時也是一款管理工具,但自身是一個比較底層的工具,底層也就意味著不好用。。。



kvm介紹

kvm有一家以色列的公司Qumranet開發,但后來被紅帽收購,已經被收錄至內核之中,想使用,我們直接在內核中加載此模塊,在用工具進行管理即可。

kvm依賴hvm硬件需要支持虛擬化技術,也就是我們上面提到的硬件輔助

kvm的管理工具

qemu:我們上文中提到的,但太過底層,所以不好用。

libvirt:有紅帽牽頭提出的項目,為所有虛擬化的場景中提供一個通用層,可管理所有虛擬化場景中的主機,但本身是作為一個守護進程運行在host主機上,所以較為重量級。

libvirt提供了幾個工具virsh 命令行管理工具,具有重多的子命令,用于管理guest(例如添加內存大小?。┖迷趲椭芎貌榭?,后文介紹,virt-install guest的管理工具用于創建guest主機等操作,另外還提供了一個圖形化的管理工具virt-manager,用于創建管理guest。

接著來看如何使用

虛擬化介紹、以及kvm

在vmwaer中勾選此項,并啟動系統。

[root@localhost ~]# cat /proc/cpuinfo            #進入系統后,查看cpu信息

虛擬化介紹、以及kvm

確保cpu支持虛擬化技術 intel為vmx  amd為svm

[root@localhost ~]# modinfo kvm            #查看當前系統是否有kvm模塊,如果有模塊的響應信息就代表OK了

[root@localhost ~]# modprobe kvm_intel        #裝載此模塊

[root@localhost ~]# ls /dev/kvm             #可以看到在設備目錄下有個叫kvm的設備。
/dev/kvm

至此。。我們的kvm裝完了,接著提供工具管理它就好。

[root@localhost ~]# yum install  libvirt                #安裝libvirt

[root@localhost ~]# systemctl start libvirtd            #啟動服務

[root@localhost ~]# yum install virt-manager        #安裝圖形化管理工具

著執行virt-manager就可以直接啟用圖形化接口了,記得要安裝linux圖形界面才行,如果還要遠程打開圖形化窗口記得ssh -X重新登錄(我這使用-X一直登錄不了,就直接在虛擬機上截圖看看吧)。

虛擬化介紹、以及kvm

看到這里有沒有很熟悉的感覺~,就跟我們用的vmwaer差不多,除了丑了點,接著就可以添加虛擬機,等等做修改處理了。

virsh的使用

virsh –help  可以看到有非常多的子命令,并且后面也有簡單的描述,比如我想使用attach-disk添加磁盤的命令,那么使用virsh attach-disk –help 就可以看到具體使用格式,以及支持的選項。

具體的就不演示了

到這里其實還有不少問題,比如網絡,磁盤,的虛擬化,用qemu-img模擬出一個磁盤,網絡的虛擬化等等。

自己本來也并未完全吸收,這里就不過多介紹了,不然就成了門外漢在這指手畫腳鬧笑話了,以后了解了,能組織出自己的語言,再來介紹。

另外自我認為,想要學習虛擬化的使用,難得不在部署上,在虛擬化的背后有太多的理論知識,那才是重點,就像開篇標紅出說的,了解那些才能真真知道虛擬化具體是咋回事,此篇就當寫著玩好了~~~



原創文章,作者:N24_Ghost,如若轉載,請注明出處:http://www.www58058.com/70784

(0)
N24_GhostN24_Ghost
上一篇 2017-03-08 14:33
下一篇 2017-03-08 15:11

相關推薦

  • Openssl——為你的信息保駕護航

    OpenSSL基礎 ·傳輸層協議:TCP,UDP,SCTP         port:進程地址,進程向內核注冊使用某端口(獨占) ·同一主機上的進程間通信:IPC,message queue,shm,semerphor ·不同主機上的進程間通信:socket  &nbs…

    Linux干貨 2016-09-22
  • Python之入門篇

    一、環境準備 環境準備 –> pyenv (安裝python解釋器,管理Python版本,管理python虛擬環境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干貨 2017-02-05
  • linux查找命令locate、find

    本次博主來介紹下超實用的查找命令,沒有查不到,只有做不到。 直接上干貨:查找命令:locate和find,常用find,我們重點介紹find locate 通過查詢系統上預建的文件索引數據庫全盤查找所需文件,locate是透過update程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在執行loacte時直接找該索引,查詢速度會較快,索引的構建是在系統…

    2017-08-12
  • 【N25第二周作業】Linux文件管理命令以及文件名通配glob

    1、Linux下的文件管理類命令使用方法和示例 Linux下的文件管理類命令有如下列舉的一些: 目錄管理命令:cd,pwd,ls,mkdir,rmdir,tree文件管理命令:touch,cp,mv,rm,stat查看:more,less,head,tail,cat,tac,lsattr,whereis,which權限:chmod,chown,chattr,…

    Linux干貨 2016-12-12
  • MySQL優化大全

     1. 優化SQL   1)通過show status了解各種sql的執行頻率         show status like 'Com_%'        了解 Com_select,Com_in…

    Linux干貨 2015-04-13
  • 運維自動化之系統安裝

    自動化安裝系統,cobbler的安裝使用

    Linux干貨 2018-01-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-13 23:23

    贊,有很多自己思考的地方~另外可以看下zstack~

欧美性久久久久