KVM 自己也有一些弱點,那就是相比裸金屬虛擬化架構的 Xen 、 VMware ESX 和 HyperV , KVM 是運行在 Linux 內核之上的寄居式虛擬化架構,會消耗比較多的計算資源;不過針對這一點, Intel 、 AMD 已經在處理器設計上有專門的VT-x 和 AMD-V 擴展,這種特性在每次硬件更新的時候也會更新,每每每次更新後都對虛擬化性能和速度上有明顯的提高,因此長遠來看,也不是什麼大問題。
KVM 的虛擬化須要硬件支持(須要處理器支持虛擬化:如 Intel 廠商的 Intel-VT ( vmx )技術&&AMD 廠商的 AMD-V ( svm )技術。是基於硬件的徹底虛擬化。而 Xen 早期則是基於軟件模擬的半虛擬化( Para-Virtualization ),新版本則是基於硬件支持的徹底虛擬化。但 Xen 自己有本身的進程調度器,存儲管理模塊等,因此代碼較爲龐大。
你當前的 CPU 是否支持 VT 技術?當不肯定你當前 CPU 是否支持 VT 技術時
1. 能夠在 windows 下使用 cpu-z 軟件來進行測試
2. 能夠在 Linux 下查看 CPU 的相信信息來肯定
CPU 虛擬化給咱們帶來了哪些好處?
CPU 的虛擬化技術能夠將單 CPU 模擬多 CPU 並行,容許一個平臺同時運行多個操做系統,而且應用程序均可以在相互獨立的空間內運行而互不影響,從而顯著提升計算機的工做效率。
虛擬化技術與多任務超線程的技術的區別?
虛擬化技術與多任務以及超線程技術是徹底不一樣的。多任務是指在一個操做系統中多個程序同時並行運行,而在虛擬化技術中,則能夠同時運行多個操做系統,並且每個操做系統中都有多個程序運行,每個操做系統都運行在一個虛擬的 CPU 或者是虛擬主機上;而超線程技術只是單 CPU 模擬雙 CPU 來平衡程序運行性能,這兩個模擬出來的 CPU 是不能分離的,只能協同工做
安裝kvm前準備工做
1. 肯定處理器有 VT
命令行: grep vmx /proc/cpuinfo (INTEL 芯片 )
grep svm /proc/cpuinfo (AMD 芯片 )
cat /proc/cpuinfo | grep -e vmx -e nx -e svm
不知道芯片的生產廠商則輸入:egrep '(vmx|svm)' /proc/cpuinfo
若是 flags:裏有 vmx 或者 svm 就說明支持 VT ;若是沒有任何的輸出,說明你的 cpu 不支持,將沒法成功安裝 KVM 虛擬機。
2. 當你硬件自己支持虛擬化,但查詢相應參數無果時,請檢查 BIOS 設定,確認你的 BIOS 中開啓了硬件支持虛擬化的功能!
將以下選項設爲Enabled
Intel(R) Virtualization Tech [Enabled]python
一、安裝 KVM 要求
(1)64bitCPU( 支持虛擬化 VT-x or AMD-V)
(2)2G 以上空閒內存,確認內存大小
grep -e MemTotal /proc/meminfo
free -m
(3)6GB 空閒存儲空間
二、安裝 KVM 並檢測
(1)YUM 安裝 KVMlinux
yum -y install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img
(2)YUM 安裝 KVM( 簡單版 )vim
yum install kvm virt-manager libvirt* -y
(3)若是沒法連入互聯網 , 可自行創建源來完成安裝並避免各類關聯。創建一個本地的 YUM 源:windows
< 掛載 RHEL 光盤 > #mount /dev/cdrom /mnt/cdrom < 創建 YUM 本地源 > #cd /etc/yum.repos.d #vim kvms.repo kvms.repo裏的內容 [kvms] name=Red Hat baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=0
也能夠上傳一個鏡像文件至宿主機上,進行僞文件系統掛載:服務器
mount -o loop -t iso9660 /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1810.iso /mnt
(4)kvm虛擬化所需組件介紹
kvm:核心套件
virt-manager:圖形化 KVM 管理軟件
libvirt:提供虛擬機與宿主相互通訊的機制
libvirt-python:容許使用 libvirt API
python-virtinst:CLI 下建立 KVM 的工具
libvirt-client:提供 client 訪問 kvm 服務器的機制 ,幷包含 virsh 命令進行 管理和控制VMs
qemu-kvm:提供用戶級 KVM 環境
qemu-img:VMs 磁盤管理
三、啓動 KVM
(1)modprobe kvm 加載 kvm 模塊
(2)lsmod | grep kvm 查看加載成功
(3)systemctl start libvirtd 啓動kvm
(4)systemctl status libvirtd 查看kvm狀態
四、啓動並檢測 KVM
virsh list --all
網絡
如出現
Id Name State
-------------------------------------------------------
則安裝成功架構
virsh list 表示列出已開機的虛擬機
五、在 GUI 模式下安裝虛擬機,啓動虛擬系統管理器工具
一、NAT ( 默認上網 ):虛擬機利用 host 機器的 ip 進行上網。對外顯示一個 ip;
virbr0 是 KVM 默認建立的一個 Bridge,其做用是爲鏈接其上的虛機網卡提供 NAT 訪問外網的功能,默認ip爲192.168.122.1oop
二、自帶的Bridge:將虛擬機橋接到 host 機器的網卡上 ,vm和 host 機器都經過 bridge 上網 . 對外有同網段的不通 ip,此種方式host卻不能和vm聯通
三、Linux Bridge:基本原理就是建立一個橋接接口 br0 ,在物理網卡和虛擬網絡接口之間傳遞數據。此種方式host也能夠和vm連通性能
Linux Bridge 是 Linux 上用來作 TCP/IP 二層協議交換的設備,其功能你們能夠簡單的理解爲是一個二層交換機或者 Hub。多個網絡設備能夠鏈接到同一個 Linux Bridge,當某個設備收到數據包時,Linux Bridge 會將數據轉發給其餘設備
(1)添加 br0 網卡的配置文件
cd /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-br0
(2)修改網卡配置文件
vim ifcfg-ens33
TYPE=Ethernet NAME=ens33 DEVICE=ens33 ONBOOT=yes BRIDGE=br0
vim ifcfg-br0
TYPE=Bridge NAME=br0 DEVICE=br0 ONBOOT=yes BOOTPROTO=none IPADDR=192.168.11.12 PREFIX=24(NETMASK=255.255.255.0) GATEWAY=192.168.11.2 DNS=192.168.11.2
(3)重啓host:reboot
(4)檢查
# ethtool br0
# brctl show
# ifconfig br0
#lsblk 命令用來查看block設備的信息
(1)首先經過命令 virt-manager 啓動圖形界面:
點下面的圖標建立虛機
(2)給虛機命名爲 kvm1,這裏選擇從哪裏啓動虛機。若是是安裝新的 OS,能夠選擇第一項。若是已經有安裝好的鏡像文件,選最後一項(以下圖)。
(3)接下來須要告訴 virt-manager 鏡像的位置,點擊 「Browser」
(4)須要在系統中上傳一個鏡像文件到屬主機上,放到 /var/lib/libvirt/images/ 目錄下,這是 KVM 默認查找鏡像文件的地方。
(5)爲虛擬機分配 CPU、內存和磁盤
(6)爲虛擬機命名,並在安裝前配置硬件參數,點擊「Finish」。網絡選擇三節課建立的br0網橋,點擊綠色「對勾」開始安裝
(7)控制檯彈出以下圖,安裝linux安裝步驟安裝便可:
virt-manager 能夠對虛機進行各類管理操做,界面直觀友好,很容易上手。 同時咱們也能夠用命令 virsh 管理虛機,好比查看宿主機上的虛機: