目錄
- 一、虛擬化概述
- 1.虛擬化的特性
- 1.1 優點:
- 1.2 缺點:
- 2.kvm簡介
- 3.kvm作用
- 4.kvm虛擬化架構的三種模式
- 5.kvm作業流程
- 6.虛擬化型別
- 二、實驗
- 1.查看cpu是否支持虛擬化
- 2.創建本地yum源
- 3.下載kvm所需組件
- 4.設定開啟啟動界面的顯示模式
- 5.設定KVM網路
- 5.1 使用bridge網橋模式部署
- 5.2 重啟網卡,查看
- 6.KVM的部署與管理
- 6.1 創建kvm管理目錄
- 6.2 上傳鏡像到鏡像池里
- 6.3 創建存盤池
- 6.4 創建鏡像池
- 6.5 創建虛擬機
- 小結
一、虛擬化概述
1.虛擬化的特性
1.1 優點:
- 集中化管理,可以遠程管理,維護
- 提高硬體利用率,虛擬化解決了物力資源利用率低,削峰填谷
- 動態調整機器/資源配置,虛擬化把系統的應用程式和服務硬體分離、提高了靈活性
- 高可靠性,可部署額外的功能和方案,可提高透明負載均衡、遷移、恢復復制等應用環境
1.2 缺點:
- 前期高額費用
- 降低硬體利用率,特定場景-例如極度吃資源的應用不一定適合虛擬化
- 更大的錯誤影響面,本地物理機down機會導致虛擬機均不可用,同時可能虛擬機中檔案全部損壞
- 實施配置復雜、管理復雜
- 一定的限制性,虛擬化技術涉及各種限制,必須與支持/兼容虛擬化的服務器、應用程式及供應商結合使用
- 安全性,虛擬化技術自身的安全隱患
2.kvm簡介
- Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,是RHEL 5.4推出的最新虛擬化技術,目前紅帽只支持在64位的RHEL l5.4以上運行KVM,同時硬體需要支持VT技術,必須在64位bit環境中使用KVM,
- KVM的虛擬化需要硬體支持(如Intel VT技識訓者AMD V技術),是基于硬體的完全虛擬化,而Xen早期則是基于軟體模擬的Para-Virtualization,新版本則是基于硬體支持的完全虛擬化,命令查看是否支持VT,cat /proc/cpuinfo | grep ‘vmx’
- KVM的前身是QEMU,08年被紅帽收購并獲得一項技術hypervisor,不過RedHat的KVM被認為是將成為未來Linux hypervisor的主流,
3.kvm作用
- 提高物理服務器的資源利用率
- 可以批量部署
- 實作實時快照技術
- 支持克隆技術
- 可以實作虛擬機的離線遷移和動態遷移
- 可以將資源動態調整
4.kvm虛擬化架構的三種模式
- 客戶模式(guestOS):VM中的OS為GuestOS,客戶機在作業系統中運行的模式,客戶機分為內核模式和用戶模式
- 用戶模式:為用戶提供虛擬機管理的用戶空間工具以及代表用戶執行I/O,Qemu作業在此模式下
l- inux內核模式:模擬CPU、 記憶體,實作客戶模式切換,處理從客戶模式的推出,KVM即運行在此模式下
5.kvm作業流程
- 用戶模式的Qemu利用介面libkvm通過ioctl系統呼叫進入內核模式,KVM驅動為虛擬機創建虛擬CPU和虛擬記憶體
- 然后執行VMLAU :NCH指令進入客戶模式,裝載Guest OS并運行,Guest OS運行程序中如果發生例外,則暫停Guest OS的運行并保存當前狀態同時退出到內核模式來處理這些例外
- 內核模式處理這些例外時如果不需要I/o則處理完成后重新進入客戶模式,如果需要I/o則進入到用戶模式,則由Qemu 來處理I/O, 處理完成后進入內核模式,再進入客戶模式
6.虛擬化型別
- 全虛擬化:
將物理硬體資源全部通過軟體的方式抽象化,最后進行呼叫使用的方法:使用hypervisor(VMM)軟體,其原理是在底層硬體和服務器之間建立一個抽象層,而基于核心的虛擬機是面向Linux系統的開源產品hypervisor(VMM)可以捕捉CPU的指令,為指令訪問硬體控制器和外設充當中介, - 半虛擬化:
需要修改作業系統(以軟體形式模擬物理硬體功能+物理硬體資源的加強型支持) - 直通:直接使用物理硬體資源(需要支持,還不完善)
二、實驗
實驗環境
centos7.6 8G 6核 300G
1.查看cpu是否支持虛擬化


2.創建本地yum源
[root@localhost ~]# vim /etc/fstab //永久掛載光碟
/dev/cdrom /mnt iso9660 defaults 0 0
[root@localhost ~]# mount -a //使組態檔生效
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@localhost ~]# df -h //查看是否掛載成功
檔案系統 容量 已用 可用 已用% 掛載點
/dev/sda3 293G 5.2G 288G 2% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 174M 841M 18% /boot
tmpfs 781M 4.0K 781M 1% /run/user/42
tmpfs 781M 20K 781M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
[root@localhost ~]# vim /etc/ssh/sshd_config //將dns反向決議關掉,讓客戶端連接服務器更快
UseDNS no //取消DNS注釋,改為NO
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv CentOS-* bak
[root@localhost yum.repos.d]# ls
bak epel.repo
[root@localhost yum.repos.d]# vim epel.repo //創建本地yum源
[local]
name=kvm
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# mv epel.repo local.repo
[root@localhost yum.repos.d]# yum clean all && yum repolist //清除快取并加載新的yum源
已加載插件:fastestmirror, langpacks
正在清理軟體源: local
Cleaning up list of fastest mirrors
Other repos take up 1.2 G of disk space (use --verbose for details)
已加載插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
(1/2): local/group_gz | 166 kB 00:00:00
(2/2): local/primary_db | 3.1 MB 00:00:00
源標識 源名稱 狀態
local kvm 4,021
repolist: 4,021
[root@localhost yum.repos.d]#
3.下載kvm所需組件
[root@localhost yum.repos.d]# yum -y install qemu-kvm-tools.x86_64 qemu-kvm virt-install qemu-img bridge-utils libvirt virt-manager
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
軟體包 10:qemu-kvm-tools-1.5.3-160.el7.x86_64 已安裝并且是最新版本 //安裝KVM除錯工具,可不安裝
軟體包 10:qemu-kvm-1.5.3-160.el7.x86_64 已安裝并且是最新版本 //安裝KVM模塊
軟體包 virt-install-1.5.0-1.el7.noarch 已安裝并且是最新版本 //構建虛擬機的命令列工具
軟體包 10:qemu-img-1.5.3-160.el7.x86_64 已安裝并且是最新版本 //qemu組件,創建磁盤、啟動虛擬機等
軟體包 bridge-utils-1.5-9.el7.x86_64 已安裝并且是最新版本 //網路支持工具
軟體包 libvirt-4.5.0-10.el7.x86_64 已安裝并且是最新版本 //虛擬機管理工具
軟體包 virt-manager-1.5.0-1.el7.noarch 已安裝并且是最新版本 //圖形界面管理虛擬機
[root@localhost yum.repos.d]# lsmod | grep kvm //查看kvm模塊是否安裝
kvm_amd 2177212 0
kvm 586948 1 kvm_amd
irqbypass 13503 1 kvm
[root@localhost yum.repos.d]#
4.設定開啟啟動界面的顯示模式
[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
5.設定KVM網路
KVM網路的兩種模式:
①NAT:默認設定,資料包由NAT方式通過主機的介面進行傳送,可以訪問外網,但是無法從外部訪問虛擬機網路
②網橋:這種模式允許虛擬機像一臺獨立的主機一樣擁有網路,外部的機器可以直接訪問到虛擬機內部,但需要網卡支持(一般有線網卡都支持)
5.1 使用bridge網橋模式部署
[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=56ae07f6-d0ca-40c4-9450-452d3dfae832
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.30.7
#NETMASK=255.255.255.0
#GATEWAY=192.168.30.2
#DNS1=114.114.114.114
BRIDGE=br0
[root@localhost network-scripts]# cat ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.30.7
NETMASK=255.255.255.0
GATEWAY=192.168.30.2
5.2 重啟網卡,查看
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:59:84:37 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fe59:8437/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:1f:75:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:1f:75:63 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:59:84:37 brd ff:ff:ff:ff:ff:ff
inet 192.168.30.7/24 brd 192.168.30.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe59:8437/64 scope link
valid_lft forever preferred_lft forever
6.KVM的部署與管理
6.1 創建kvm管理目錄
[root@localhost ~]# mkdir -p /data_kvm/iso //創建KVM存盤鏡像的目錄
[root@localhost ~]# mkdir -p /data_kvm/store //創建存盤池的目錄
6.2 上傳鏡像到鏡像池里
[root@localhost ~]# cd /data_kvm/iso/
[root@localhost iso]# ls
CentOS-7-x86_64-DVD-1810-7.6.iso
[root@localhost iso]# ll
總用量 4481024
-rw-r--r-- 1 root root 4588568576 8月 18 22:13 CentOS-7-x86_64-DVD-1810-7.6.iso
[root@localhost iso]#
6.3 創建存盤池





創建存盤卷

6.4 創建鏡像池


6.5 創建虛擬機



選擇最小化安裝即可




ping不通,因為kvm沒有開啟路由轉發功能
root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //臨時開啟路由轉發功能

正常訪問
小結
虛擬化型別
全虛擬化:將物理硬體資源全部通過軟體的方式抽象化,最后進行呼叫
半虛擬化:需要修改作業系統(以軟體形式模擬物理硬體功能+物理硬體資源的加強型支持)
直通:直接使用物理硬體資源(需要支持,還不完善)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295289.html
標籤:其他
上一篇:驅動模塊環境
