KVM虛擬化平臺搭建+理論


在這裏插入圖片描述

一、KVM虛擬化架構

KVM 自 Linux 2.6.20 版本後就直接整合到 Linux 內核, 它依託 CPU 虛擬化指令集(如Intel-VT、 AMD-V) 實現高性能的虛擬化支持。 由於與 Linux 內核高度整合, 因此在性能、安全性、 兼容性、 穩定性上都有很好的表現。
下面圖,描繪了 KVM 虛擬化架構,在 KVM 環境中運行的每一個虛擬化操作系統都將表現爲單個獨立的系統進程。 因此它可以很方便地與 Linux 系統中的安全模塊進行整合(SELinux) , 可以靈活地實現資源的管理及分配。
在這裏插入圖片描述

二、KVM組成

KVM Driver

  • 虛擬機創建
  • 虛擬機內存分配
  • 虛擬CPU寄存器讀寫
  • 虛擬CPU運行

QEMU(經過簡化與修改)

  • 模擬PC硬件的用戶控件組件
  • 提供I/O設備模型及訪問外設的途徑

三、KVM原理簡介

​ 廣義的 KVM 實際上包含兩部分, 一部分是基於 LINUX 內核支持的 KVM 內核模塊, 另一部分就是經過簡化和修改的 Qemu。
​ KVM 內核模塊模擬處理器和內存以支持虛擬機的運行,Qemu 主要處理 I/O 以及爲用戶提供一個用戶空間工具來進行虛擬機的管理。 兩者相互結合, 相輔相成, 構成了一個完整的虛擬化平臺。
請注意: Qemu 本身並不是 KVM 的一部分, Qemu 是一套完整的虛擬化解決方案, 是純軟件實現虛擬化, 包括處理器虛擬化、 內存虛擬化以及各種虛擬設備的模擬, 但因爲是純軟件模擬出來的, 所以 Qemu 的性能比較低

四、KVM 運行時的三種模式

客戶模式

  • 可以簡單理解成客戶機在操作系統運行中的模式, 客戶模式又分爲內核模式和用戶模式。

用戶模式

  • 爲用戶提供虛擬機管理的用戶空間工具以及代表用戶執行 I/O, Qemu 運行在這個模式之下。

內核模式

  • 模擬 CPU 以及內存, 實現客戶模式的切換, 處理從客戶模式的退出。 KVM 內核模塊運行在這個模式下
    在這裏插入圖片描述

五、KVM工作原理

用戶模式的 Qemu 利用接口 libkvm 通過 ioctl 系統調用進入內核模式。 KVMDriver 爲虛擬機創建虛擬 CPU 和虛擬內存, 然後執行 VMLAU·NCH 指令進入客戶模式, 裝載 Guest OS 並運行。 Guest OS 運行過程中如果發生中斷或者影子缺頁等異常, 將暫停 Guest OS 的運行並保存當前上下文退出到內核模式來處理這些異常。 內核模式處理這些異常時如果不需要 I/O則處理完成後重新進入客戶模式。 如果需要 I/O 則進入到用戶模式, 由 Qemu 來處理 I/O,處理完成後進入內核模式, 再進入客戶模式
在這裏插入圖片描述

六、案例

1、案例概述

公司部分 Linux 服務器利用率不高, 爲充分利用這些 Linux 服務器, 可以部署 KVM, 在物理機上運行多個業務系統。

例如, 在運行 Nginx 的服務器上部署 KVM, 然後在虛擬機上運行 Tomcat。

2、案例環境

使用一臺物理機器,安裝CentOS 7的64位系統(bdqn),test01是在宿主機kvm中安裝的虛擬機

主機 操作系統 IP地址 主要軟件
kvm Centos 7 192.168.100.46 KVM
test01 Centos 7 192.168.100.32 虛擬機

在這裏插入圖片描述

3、KVM虛擬化平臺部署

1)安裝系統

創建一個虛擬機 處理器數量2 每個處理器內核數2 處理器內核總數4 虛擬化Intel VT-X 選項√下內存大小爲8G 網絡橋接到VM1 聲卡和打印機移除 掛Centos 7.6 光盤 安裝點GNOME桌面 點開發工具 分區自動分配 網絡主機名 192.168.100.46/24 安裝操作系統

2)準備KVM環境

#關閉防火牆

[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# systemctl disable firewalld

#關閉核心防護

[root@kvm ~]# setenforce 0
[root@kvm ~]# sed -i '7s/enforcing/disabled/' /etc/sysconfig/selinux

#掛載光盤鏡像

[root@mfsmaster ~]# vim /etc/fstab
/dev/cdrom  /mnt  iso9660  defaults  0 0
[root@mfsmaster ~]# mount -a
[root@mfsmaster ~]# df -hT
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sda2      xfs        20G  3.4G   17G   17% /
devtmpfs       devtmpfs  898M     0  898M    0% /dev
tmpfs          tmpfs     912M     0  912M    0% /dev/shm
tmpfs          tmpfs     912M   18M  895M    2% /run
tmpfs          tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  174M  5.9G    3% /boot
tmpfs          tmpfs     183M  4.0K  183M    1% /run/user/42
tmpfs          tmpfs     183M   40K  183M    1% /run/user/0
/dev/sr0       iso9660   4.4G  4.4G     0  100% /mnt

#搭建yum倉庫

[root@mfsmaster ~]# cd /etc/yum.repos.d
[root@mfsmaster ~]# mkdir b
[root@mfsmaster yum.repos.d]# mv C* b
[root@mfsmaster yum.repos.d]# vim local.repo
[centos]
name=CentOS
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@mfsmaster yum.repos.d]# yum clean all
[root@mfsmaster yum.repos.d]# yum makecache

3)安裝KVM

[root@kvm ~]# yum groupinstall -y "GNOME Desktop"    #安裝 GNOME 桌面環境  如果裝了圖形界面不需要裝了
[root@kvm ~]# yum -y install qemu-kvm                //KVM 模塊
[root@kvm ~]# yum -y install qemu-kvm-tools         //KVM 調試工具,可不安裝
[root@kvm ~]# yum -y install virt-install           //構建虛擬機的命令行工具
[root@kvm ~]# yum -y install qemu-img             //qemu 組件,創建磁盤、 啓動虛擬機等
[root@kvm ~]# yum -y install bridge-utils           //網絡支持工具
[root@kvm ~]# yum -y install libvirt              //虛擬機管理工具
[root@kvm ~]# yum -y install virt-manager          //圖形界面管理虛擬機

[root@kvm ~]#  init 6               //重啓
[root@localhost ~]# cat /proc/cpuinfo | grep vmx          #查看CPU是否支持虛擬化
[root@localhost ~]# lsmod | grep kvm   #查看KVM模塊是否安裝

在這裏插入圖片描述
注意: 在使用 yum 安裝完桌面後執行 ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target 命 令 , 將 系 統 的 默 認 運 行 target 更 改 爲graphical.targe。 重啓後系統將進入圖形化界面。 若不執行上述命令更改系統的默認運行target, 重啓時可能報錯

[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

[root@localhost ~]# systemctl start libvirtd //開啓libvirtd服務
[root@localhost ~]# systemctl enable libvirtd //開機啓動libvirtd服務

4)設置KVM網絡

宿主服務器安裝完成 KVM, 首先要設定網絡, 在 libvirt 中運行 KVM 網絡有兩種方法:NAT 和 Bridge, 默認是 NAT。
關於兩種模式的說明:

  • 用戶模式: 即 NAT 方式, 這種方式是默認網絡, 數據包由 NAT 方式通過主機的接口進行傳送, 可以訪問外網, 但是無法從外部訪問虛擬機網絡。

  • 橋接模式:這種模式允許虛擬機像一臺獨立的主機一樣擁有網絡, 外部的機器可以直接訪問到虛擬機內部, 但需要網卡支持, 一般有線網卡都支持。

這裏以 Bridge(橋接) 爲例

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

在這裏插入圖片描述
#添加橋接網卡

[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

在這裏插入圖片描述
#重啓網卡

[root@kvm ~]# systemctl restart network
[root@kvm ~]# ifconfig

在這裏插入圖片描述
這時的網卡就到了bro0上了,地址是192.168.100.46

4、KVM管理

#創建KVM存儲和鏡像文件夾,並上傳鏡像

使用xftp或掛載均可上傳

[root@kvm ~]# mkdir -p /data_kvm/iso //上傳鏡像centos 7的鏡像
[root@kvm ~]# mkdir -p /data_kvm/store //虛擬機存儲

[root@kvm ~]# cd /data_kvm/iso/
CentOS-7-x86_64-DVD-1804-7.5.iso
[root@kvm ~]# virt-manager //圖形界面敲,打開虛擬系統管理器
也可以在應用程序中打開

在這裏插入圖片描述

1)創建存儲池

流程:雙擊打開QEMU/KVM–存儲–添加(左下角加號)–填寫名稱–前進–瀏覽–其他位置–計算機–data_kvm–store–打開–完成,使用相同方法創建鏡像存儲池,選擇的文件夾是/data_kvm/iso
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

#創建鏡像存儲池
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

#路徑選擇好後直接點擊完成

2)創建存儲卷

在這裏插入圖片描述

3)創建虛擬機

#打開虛擬系統管理器–右擊QEMU/KVM–選擇新建
在這裏插入圖片描述

#本地安裝介質–前進
在這裏插入圖片描述

#選擇使用ISO映像–瀏覽選擇剛剛創建的鏡像的存儲池中的鏡像–前進
在這裏插入圖片描述

#配置內存和CPU–前進
在這裏插入圖片描述

#選擇或創建自定義存儲-管理–選擇剛剛創建的存儲池中的存儲卷–前進
在這裏插入圖片描述

#點擊在安裝前自定義配置–選擇網絡(橋接)–完成
在這裏插入圖片描述

#點擊引導選項–勾選主機引導時啓動虛擬機–開始安裝–出現提示選擇是
在這裏插入圖片描述

接下來就與安裝centos系統步驟一致了,這裏就不在贅述了

在這裏插入圖片描述

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