KVM虛擬化(KVM簡介和KVM安裝)

KVM

虛擬化架構分類

  1. 寄居虛擬化架構:指在宿主操做系統之上安裝和運行虛擬化程序,依賴於宿主操做系統對設備的支持和物理資源的管理。
  2. 裸金屬虛擬化架構:指直接在硬件上面安裝虛擬化軟件,再在其上安裝操做系統和應用,依賴虛擬層內核和服務器控制檯進行管理。
  3. 操做系統虛擬化架構:在操做系統層面增長虛擬服務器功能。操做系統虛擬化架構把單個的操做系統劃分爲多個容器,使用容器管理器來進行管理。
    宿主操做系統負責在多個虛擬服務器(即容器)之間分配硬件資源,而且讓這些服務器彼此獨立。
  4. 混合虛擬化架構:將一個內核級驅動器插入到宿主操做系統內核。這個驅動器做爲虛擬硬件管理器來協調虛擬機和宿主操做系統之間的硬件訪問。

參考於https://yq.aliyun.com/articles/693512python

按虛擬對象分類

  • 服務器虛擬化:經過虛擬化軟件,在一個服務器上虛擬出多個服務器,每
    個服務器都有本身的操做系統,每一個系統相互獨立,互不影響。充分利用
    硬件資源,安全(應用之間互不影響)。
  • 存儲虛擬化:硬件上的存儲設備整合爲一個大的存儲設備,然後根據須要
    進行分配。
  • 網絡虛擬化:經過軟件實現網絡設備造成網絡虛擬化,虛擬機之間進行數
    據傳輸使用虛擬交換機。
  • 桌面虛擬化:早期爲遠程桌面,將用戶的操做環境和系統的運行環境進行
    分離,如今爲將用戶,應用,操做系統,調用時調用不一樣的內容拼湊成一
    個虛擬桌面。
  • 應用虛擬化:運行環境與應用程序進行封裝,使應用程序脫離框架庫和操
    做系統。

KVM簡介

  • KVM --- 全稱是基於內核的虛擬機(Kernel-based Virtual Machine)
  • KVM是一個開源軟件,基於內核的虛擬化技術,實際是嵌入系統的一個虛擬化模塊,經過優化內核來使用虛擬技術,該內核模塊使得 Linux 變成了一個Hypervisor,虛擬機使用 Linux 自身的調度器進行管理。
  • KVM 是基於虛擬化擴展(Intel VT 或者 AMD-V)的 X86 硬件的開源的 Linux 原生的全虛擬化解決方案。KVM 中,虛擬機被實現爲常規的 Linux 進程,由標準 Linux 調度程序進行調度;虛機的每一個虛擬 CPU 被實現爲一個常規的 Linux 進程。這使得 KMV 可以使用 Linux 內核的已有功能。可是,KVM 自己不執行任何硬件模擬,須要客戶空間程序經過 /dev/kvm 接口設置一個客戶機虛擬服務器的地址空間,向它提供模擬的 I/O,並將它的視頻顯示映射回宿主的顯示屏。目前這個應用程序是 QEMU。

Linux 上的用戶空間、內核空間、虛擬機

  • Guest:客戶機系統,包括CPU(vCPU)、內存、驅動(Console、網卡、I/O 設備驅動等),被 KVM 置於一種受限制的 CPU 模式下運行。
  • KVM:運行在內核空間,提供CPU 和內存的虛級化,以及客戶機的 I/O 攔截。Guest 的 I/O 被 KVM 攔截後,交給 QEMU 處理。
  • QEMU:修改過的爲 KVM 虛機使用的 QEMU 代碼,運行在用戶空間,提供硬件 I/O 虛擬化,經過IOCTL /dev/kvm 設備和 KVM 交互。

KVM模塊和管理工具

KVM有一個內核模塊叫 kvm.ko,只用於管理虛擬 CPU 和內存。IO 的虛擬化,就交給 Linux 內核和qemu來實現。linux

Libvirt:是 KVM 的管理工具。Libvirt 除了能管理 KVM 這種 Hypervisor,還能管理 Xen,VirtualBox 等。OpenStack 底層也使用 Libvirt。安全

Libvirt 包含 3 個東西:後臺 daemon 程序 libvirtd、API 庫和命令行工具 virsh服務器

  1. libvirtd是服務程序,接收和處理 API 請求;
  2. API 庫使得其餘人能夠開發基於 Libvirt 的高級工具,好比 virt-manager,這是個圖形化的 KVM 管理工具,後面咱們也會介紹;
  3. virsh 是咱們運維工程師常常要用的 KVM 命令行工具。做爲 KVM 和 OpenStack 的實施人員,virsh 和 virt-manager 是必定要會用的。

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]

第二步:yum下載 可用本地鏡像源架構

yum install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img -y

##其中:
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框架

modprobe kvm       #加載 kvm 模塊
lsmod | grep kvm    #查看加載成功
systemctl status libvirtd
systemctl start libvirtd   
systemctl enable libvirtd

第四步:檢測運維

virsh list --all

#如出現:
Id Name State
-------------------------------------------------------
則安裝成功

相關文章
相關標籤/搜索