一、KVM介紹
KVM,基於內核的虛擬機(英語:Kernel-based Virtual Machine,縮寫為 KVM),
是一種用於Linux內核中的虛擬化基礎設施,可以將Linux內核轉化為一個hypervisor。
KVM在2007年2月被導入Linux 2.6.20核心中,以可加載核心模塊的方式被移植到FreeBSD及illumos上。
KVM在具備Intel VT或AMD-V功能的x86平台上運行。它也被移植到S/390,PowerPC與IA-64平台上。在Linux內核3.9版中,加入ARM架構的支持。
KVM目前由Red Hat等廠商開發,對CentOS/Fedora/RHEL等Red Hat系發行版支持極佳。
二、KVM部署及使用
1.系統環境查詢
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhost ~]# uname -r 3.10.0-862.el7.x86_64 [root@localhost ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31 [root@localhost ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 8月 12 17:42:59 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... 8月 12 17:42:59 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. 8月 12 18:01:18 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon... 8月 12 18:01:19 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon. [root@localhost ~]# hostname -I 192.168.137.103 192.168.122.1
驗證CPU是否支持虛擬化,輸入有vmx或svm就支持,支持虛擬化則就支持KVM
[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm'
有vmx或svm內容輸出就支持,支持虛擬化則就支持KVM
查看是否加載KVM
[root@promote images]# lsmod | grep kvm
kvm_intel 174841 0
kvm 578518 1 kvm_intel
irqbypass 13503 1 kvm
已經加載,如果沒有加載,則執行以下命令,加載KVM
[root@localhost ~]#modprobe kvm
2.安裝KVM虛擬化軟件
安裝依賴包(使用本地yum源)
# yum install libvirt* virt-* qemu-kvm* -y
說明:
libvirt # 虛擬機管理
virt # 虛擬機安裝克隆
qemu-kvm # 管理虛擬機磁盤
啟動KVM
# systemctl start libvirtd.service
# systemctl status libvirtd.servic
2.安裝第一台KVM虛機
[root@localhost ~]# virt-install
--virt-type kvm
--os-type=linux
--os-variant rhel7
--name centos7
--memory 1024
--vcpus 1
--disk (虛擬硬盤絕對路徑),format=raw,size=10
--cdrom (iso鏡像文件絕對路徑)
--network network=default
--noautoconsole
注意:需要先將鏡像文件拷貝到 設置的路徑下
參數說明
參數 |
參數說明 |
--virt-type HV_TYPE |
要使用的管理程序名稱 (kvm, qemu, xen, ...) |
--os-type |
系統類型 |
--os-variant DISTRO_VARIANT |
在客戶機上安裝的操作系統,例如:'fedora18'、'rhel6'、'winxp' 等。 |
-n NAME, --name NAME |
客戶機實例名稱 |
--memory MEMORY |
配置客戶機虛擬內存大小 |
--vcpus VCPUS |
配置客戶機虛擬 CPU(vcpu) 數量。 |
--disk DISK |
指定存儲的各種選項。 |
-cdrom CDROM |
光驅安裝介質 |
-w NETWORK, --network NETWORK |
配置客戶機網絡接口。 |
--graphics GRAPHICS |
配置客戶機顯示設置。 |
虛擬化平台選項: |
|
-v, --hvm |
這個客戶機應該是一個全虛擬化客戶機 |
-p, --paravirt |
這個客戶機應該是一個半虛擬化客戶機 |
--container |
這個客戶機應該是一個容器客戶機 |
--virt-type HV_TYPE |
要使用的管理程序名稱 (kvm, qemu, xen, ...) |
--arch ARCH |
模擬 CPU 架構 |
--machine MACHINE |
機器類型為仿真類型 |
其它選項: |
|
--noautoconsole |
不要自動嘗試連接到客戶端控制台 |
--autostart |
主機啟動時自動啟動域。 |
--noreboot |
安裝完成后不啟動客戶機。 |
3.KVM虛機管理
virsh命令常用參數總結
參數 |
參數說明 |
基礎操作 |
|
list |
查看虛擬機列表,列出域 |
start |
啟動虛擬機,開始一個(以前定義的)非活躍的域 |
shutdown |
關閉虛擬機,關閉一個域 |
destroy(危險) |
強制關閉虛擬機,銷毀(停止)域 |
vncdisplay |
查詢虛擬機vnc端口號 |
配置管理操作 |
|
dumpxml |
導出主機配置信息 |
undefine |
刪除主機 |
define |
導入主機配置 |
domrename |
對虛擬機進行重命名 |
掛起與恢復 |
|
suspend |
掛起虛擬機 |
resume |
恢復虛擬機 |
自啟動管理 |
|
autostart |
虛擬機開機啟動 |
autostart --disable |
取消虛擬機開機啟動 |
以上參數通過 “virsh --help” 獲得。 |
查看虛擬機配置文件
[root@localhost ~]# cat /etc/libvirt/qemu/test01.xml
修改KVM虛擬機配置的方法
[root@localhost ~]# virsh edit test01 (使用該命令修改可以對文件進行語法校驗)