KVM介紹和安裝

KVM介紹

KVM(Kernel-Based Virtual Machines)是一個基於Linux內核的虛擬化技術, 可以直接將Linux內核轉換爲Hypervisor(系統管理程序)從而使得Linux內核能夠直接管理虛擬機, 直接調用Linux內核中的內存管理、進程管理子系統來管理虛擬機。

KVM是基於虛擬化擴展(Intel VT 或 AMD-V)的X86硬件,是Linux完全原生的全虛擬化解決方案。部分的準虛擬化支持,主要是通過準虛擬網絡驅動程序的形式用於Linux和Windows客戶機系統的。

KVM架構

在KVM架構中,虛擬機實現爲常規的Linux進程,由標準Linux調度程序進行調度。事實上,每個虛擬CPU顯示爲一個常規的Linux進程。這使KVM能夠享受Linux內核的所有功能。

在這裏插入圖片描述

在上圖中,左側部分是一個標準的Linux操作系統,可以是RHEL、Fedora、Ubuntu等。KVM內核模塊在運行時按需加載進入內核空間運行。KVM本身不執行任何模擬,需要用戶空間程序QEMU通過/dev/kvm接口設置一個客戶機虛擬服務器的地址空間。向它提供模擬的I/O,並將它的視頻顯示映射回宿主的顯示屏。

KVM加上QEMU後就是完整意義上的服務器虛擬化

  • KVM:運行在內核空間,提供CPU 和內存的虛級化,以及客戶機的 I/O 攔截。Guest 的 I/O 被 KVM 攔截後,交給 QEMU 處理。
  • QEMU:運行在用戶空間,提供硬件 I/O (磁盤,網卡,顯卡等)虛擬化,QEMU將KVM整合了進來,通過IOCTL調用 /dev/kvm,從而將CPU指令的部分交給內核模塊來做。

KVM技術棧

  • libvirt:操作和管理KVM虛機的虛擬化 API,使用 C 語言編寫,可以由 Python,Ruby, Perl, PHP, Java 等語言調用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
  • qemu-kvm:主要作用是實現進程管理
  • qemu-img:用來管理磁盤映像文件
  • Virsh:基於 libvirt 的 命令行工具 (CLI)
  • Virt-Manager:基於 libvirt 的 GUI 工具

安裝KVM

1、查看CPU是否支持KVM

 grep -Eo --color=auto "(vmx|svm)" /proc/cpuinfo

可以看到grep出來的內容,就說明支持kvm.

2、通過yum安裝

yum install libvirt virt-install qemu-kvm qemu-kvm-tools -y

3、啓動虛擬機管理工具libvirt並設置開機啓動

systemctl start libvirtd.service && systemctl enable libvirtd.service

通過ifconfig命令可以看到virbr0橋接網卡

在這裏插入圖片描述

4、創建虛擬機

4.0 關閉selinux並設置防火牆

1. vim /etc/selinux/config   ->   selinux=disabled
2. firewall-cmd --zone=public --add-port=5900/tcp --permanent

4.1 使用qemu命令創建一個10G的硬盤,硬盤的名稱爲:centos7

[root@localhost iso]# qemu-img create -f raw /data/centos7.raw 10G
Formatting '/data/centos7.raw', fmt=raw size=10737418240 

4.2 使用virt-install安裝虛擬機

[root@localhost iso]# virt-install --virt-type kvm --name centos7 --ram 1024 --cdrom=/data/iso/CentOS-7-x86_64-Minimal-1708.iso --disk path=/data/centos7.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

參數解釋:

--name    虛擬機名字
--ram     分配給虛擬機的內存,單位MB
--vcpus   分配給虛擬機的cpu個數
--cdrom   指定鏡像的全路徑
--disk    指定虛擬機img文件路徑,如果虛擬機使用lvm分區,這裏就指向到lvm的分區就行
--network 
   default   即nat,指定爲nat網絡地址轉換
   bridge    指定橋接網卡
   model     網卡模式
--graphics圖形參數

4.3 遠程連接進行安裝操作

這裏我安裝的虛擬機名字爲centos7,接下來查看其vnc端口:

ps aux | grep qemu | grep centos7

在這裏插入圖片描述

最小爲5900,那麼這裏指的就是5900這個端口。接下來通過在windows下使用vnc-viewer來連接192.168.189.133:5900,並輸入設置的密碼,即可進行安裝。安裝步驟和我們平時安裝操作系統的方法一樣

4.4 通過virsh管理虛擬機

#查看已安裝的虛擬機
virsh list --all

#啓動虛擬機
virsh start centos7

#關閉虛擬機
virsh shutdown centos7

#查看配置文件
/etc/libvirt/qemu/這個目錄下保存已經安裝虛擬機的信息。

#刪除虛擬機
virsh undefine centos7
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章