一、KVM概述
KVM是Kernel Virtual Machine的簡寫,目前Linux發行版必須在64位的系統環境才能運行KVM,同時硬件需要支持VT技術。
1、案例前置知識點
KVM自Linux2.6.20版本後就直接整合到Linux內核,它依託CPU虛擬化指令集(如Intel-VT、AMD-V)實現高性能的虛擬化支持。由於與Linux內核高度整合,因此在性能、安全性、兼容性、穩定性上都有很好的表現。
下圖是一個簡單的KVM虛擬化架構,在KVM環境中運行的每個虛擬化操作系統都將表現位單個獨立的系統進程。因此它可以 很方便地與Linux系統中的安全模塊進行整合(SELinux),可以靈活地實現資源的管理及分配。
二、實施案例
1、環境需求:
- Centos操作系統3臺;
- Windiws 7操作系統1臺;
所需鏡像和工具請訪問:https://pan.baidu.com/s/1fPhMgWJAjnmgJI5w267QCA
提取碼:7x2p
2、編輯虛擬機支持虛擬化
1)修改處理器爲2個,勾選虛擬化引擎
2)檢查CPU是否支持虛擬化
[root@centos01 ~]# cat /proc/cpuinfo | grep vmx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch epb tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch epb tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
3、安裝KVM所需軟件
[root@centos01 ~]# ln -sf /lib/systemd/system/graphical.target
/etc/systemd/system/default.target
<!--將命令行改爲圖形化運行,重啓虛擬機即可生效-->
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
<!--刪除系統自動yum源-->
[root@centos01 ~]# mount /dev/cdrom /mnt/ <!--掛載操作系統光盤-->
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos01 ~]# rpm -qa | grep qemu-kvm <!--檢查kvm模塊是否安裝-->
qemu-kvm-1.5.3-141.el7.x86_64
qemu-kvm-common-1.5.3-141.el7.x86_64
[root@centos01 ~]# rpm -qa | grep qemu-kvm-tools<!--檢查kvm調試工具是否安裝-->
[root@centos01 ~]# yum -y install qemu-kvm-tools <!--安裝調試工具-->
[root@centos01 ~]# rpm -qa | grep qemu-kvm-tools<!--檢查kvm調試工具是否安裝成功-->
qemu-kvm-tools-1.5.3-141.el7.x86_64
[root@centos01 ~]# rpm -qa | grep virt-install
<!--檢查創建虛擬機工具是否安裝-->
[root@centos01 ~]# yum -y install virt-install <!--安裝創建虛擬機工具-->
[root@centos01 ~]# rpm -qa | grep virt-install<!--檢查創建虛擬機工具是否安裝成功-->
virt-install-1.4.1-7.el7.noarch
[root@centos01 ~]# rpm -qa | grep qemu-img<!--檢查磁盤管理工具是否安裝-->
qemu-img-1.5.3-141.el7.x86_64
[root@centos01 ~]# rpm -qa | grep bridge-utils<!--檢查網絡工具是否安裝-->
bridge-utils-1.5-9.el7.x86_64
[root@centos01 ~]# rpm -qa | grep libvirt<!--檢查虛擬機管理工具是否安裝-->
libvirt-daemon-driver-qemu-3.2.0-14.el7.x86_64
libvirt-client-3.2.0-14.el7.x86_64
libvirt-daemon-driver-interface-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-disk-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-core-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-mpath-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-iscsi-3.2.0-14.el7.x86_64
libvirt-daemon-kvm-3.2.0-14.el7.x86_64
libvirt-daemon-driver-nodedev-3.2.0-14.el7.x86_64
libvirt-gconfig-1.0.0-1.el7.x86_64
libvirt-daemon-driver-storage-rbd-3.2.0-14.el7.x86_64
libvirt-daemon-driver-storage-scsi-3.2.0-14.el7.x86_64
libvirt-libs-3.2.0-14.el7.x86_64
libvirt-daemon-driver-network-3.2.0-14.el7.x86_64
libvirt-daemon-driver-nwfilter-3.2.0-14.el7.x86_64
libvirt-glib-1.0.0-1.el7.x86_64
libvirt-daemon-driver-storage-gluster-3.2.0-14.el7.x86_64
libvirt-daemon-3.2.0-14.el7.x86_64
libvirt-daemon-config-network-3.2.0-14.el7.x86_64
libvirt-gobject-1.0.0-1.el7.x86_64
libvirt-daemon-driver-storage-logical-3.2.0-14.el7.x86_64
libvirt-python-3.2.0-3.el7.x86_64
libvirt-daemon-driver-secret-3.2.0-14.el7.x86_64
[root@centos01 ~]# rpm -qa | grep virt-manager<!--檢查圖形管理虛擬機工具是否安裝-->
virt-manager-common-1.4.1-7.el7.noarch
[root@centos01 ~]# yum -y install virt-manager<!--安裝圖形管理虛擬機工具-->
[root@centos01 ~]# rpm -qa | grep virt-manager
<!--檢查圖形管理虛擬機工具是否安裝成功-->
virt-manager-1.4.1-7.el7.noarch
virt-manager-common-1.4.1-7.el7.noarch
[root@centos01 ~]# lsmod | grep kvm <!--檢查虛擬化模塊是否開啓-->
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
[root@centos01 ~]# systemctl start libvirtd <!--啓動虛擬化服務-->
[root@centos01 ~]# systemctl enable libvirtd <!-設置開機自動啓動-->
4、使用WinSCP工具導入鏡像
1)使用winSCP將操作系統光盤導入到虛擬化管理器中(工具請訪問網盤自行提取)
2)輸入IP地址和用戶名密碼,登錄即可
3)跳過警告即可
4)導入操作系統
5)驗證是否上傳成功
[root@centos01 ~]# pwd <!--查看當前位置-->
/root
[root@centos01 ~]# ls <!--驗證是否上傳成功-->
anaconda-ks.cfg CentOS-7.4-x86_64-1708.iso initial-setup-ks.cfg
5、虛擬化管理器創建虛擬機
1)打開虛擬化管理器
[root@centos01 ~]# virt-manager
2)創建新的虛擬機
3)瀏覽操作系統光盤
4)選擇光盤
5)保持默認,單擊前進即可
6)自定義內存大小
7)自定義磁盤大小
8)自定義虛擬機名稱,單擊完成即可
9)選擇第一行,回車鍵開始安裝
10)開始初始化配置
11)安裝完成,重啓虛擬機
12)接受許可協議
13)創建賬戶
14)賬戶設置密碼
三、虛擬化的基本管理使用
1)查看虛擬機運行狀態
[root@centos01 ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
2 centos running
2)關閉虛擬機
[root@centos01 ~]# virsh shutdown centos
域 centos 被關閉
3)啓動虛擬機
[root@centos01 ~]# virsh start centos
域 centos 已開始
4)設置虛擬機開機自動啓動
[root@centos01 ~]# virsh autostart centos
域 centos標記爲自動開始
5)強制關閉虛擬機
[root@centos01 ~]# virsh destroy centos
域 centos 被刪除
1、掛起和恢復虛擬機
1)掛起虛擬機
[root@centos01 ~]# virsh suspend centos
域 centos 被掛起
2)恢復掛起的虛擬機
[root@centos01 ~]# virsh resume centos
域 centos 被重新恢復
2、備份恢復虛擬機
1)備份虛擬機
[root@centos01 ~]# virsh dumpxml centos > /etc/libvirt/qemu/centos01.xml
2)刪除虛擬機
[root@centos01 ~]# virsh undefine centos
域 centos 已經被取消定義
3)查看備份的虛擬機
[root@centos01 ~]# cd /etc/libvirt/qemu/
[root@centos01 qemu]# ls
autostart centos01.xml networks
4)恢復虛擬機
[root@centos01 qemu]# virsh define centos01.xml
定義域 centos(從 centos01.xml)
5)查看恢復虛擬機的運行狀態
[root@centos01 ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
4 centos running
6)修改虛擬機配置文件的兩種方法
[root@centos01 ~]# vim /etc/libvirt/qemu/centos.xml
[root@centos01 ~]# virsh edit centos
3、克隆和快照
1)克隆虛擬機
[root@centos01 ~]# virsh shutdown centos
域 centos 被關閉
[root@centos01 ~]# virt-clone -o centos -n centos02 -f /var/lib/libvirt/images/centos02.qcow2
正在分配 'centos02.qcow2' | 30 GB 00:11
成功克隆 'centos02'。
2)創建快照
[root@centos01 ~]# virsh snapshot-create centos
已生成域快照 1574274181
3)恢復快照
[root@centos01 ~]# virsh snapshot-revert centos 1574274181
4)查看快照
[root@centos01 ~]# virsh snapshot-list centos
名稱 生成時間 狀態
------------------------------------------------------------
1574274181 2019-11-21 02:23:01 +0800 shutoff
5)刪除快照
[root@centos01 ~]# virsh snapshot-delete centos 1574274181
已刪除域快照 1574274181
[root@centos01 ~]# virsh snapshot-list centos
名稱 生成時間 狀態
------------------------------------------------------------
—————— 本文至此結束,感謝閱讀 ——————