簡介:KVM(kernel-based virtual machine,基於內核的虛擬主機),KVM自身是一個Linux內核模塊,當安裝有Linux系統的物理機裝載了KVM這個內核模塊后,可以在用戶空間創建虛擬機,但是每個虛擬機運行在Linux內核上的一個系統進程,可用kill命令殺死。
特性:嵌入到linux正式kenel(提高兼容性)
代碼級調用(提高性能)
創建的虛擬機為一個進程(便於管理)
開源模式,RedHat收購后提供商業支持
qumu+kvm--------》虛擬機:QEMU為一個開源的硬件模擬器項目,支持模擬支持的設備,缺點速度較慢;KVM為內核模塊,提供CPU和內存資源。
部署使用:
qumu-kvm:為KVM管理程序提供硬件模擬的軟件程序
libvirt-bin:管理虛擬化平台的軟件
bridge-utils:配置網絡橋接的命令行工具
virtinst:創建虛擬機的命令行工具
virt-manager:提供圖形界面,通過libvirt支持管理虛擬機的命令行工具
root@test:~# apt install qemu-kvm libvirt-bin bridge-utils virtinst virt-manager ##安裝完成后libvirtd自動啟動
創建虛擬磁盤:root@test:/data# qemu-img create -f qcow2 /data/Centos1.qcow2 20G
-f [raw/qcow2]:raw為全鏡像格式,特點是一次性分配預設空間,寫入速度快,方便轉換為其他格式,性能最優,但是占用空間大。
qcow2為稀疏格式,支持壓縮、快照、鏡像,更小的存儲空間(用多少占多少)
查看虛擬磁盤信息:root@test:/data# qemu-img info /data/Centos1.qcow2
創建虛擬機:root@test:/data# virt-install --name test-li --virt-type kvm --ram 1024 --cdrom /data/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/Centos1.qcow2 --network default --graphics vnc,listen=0.0.0.0 --noautoconsole
--name:虛擬機名稱
--noautoconsole:禁止自動連接至虛擬機的控制台;
--virt-type:虛擬機類型(kvm,xen,exsi)
執行完該命令后,qemu會開啟一個5900端口,使用VNC軟件連接,便可正常安裝虛擬機。
安裝完成后,因為使用默認網絡,所以虛擬機無法通過dhcp獲取IP地址,可自己手動配置:
在宿主機中安裝完成bridge-utils工具時已經默認生成一張虛擬網橋,在虛擬機配置一個與該IP在同一局域網的IP即可:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 ##主要修改以下幾項配置
BOOTPROTO=static IPADDR=192.168.122.2 NETMASK=255.255.255.0 GATEWAY=192.168.122.1 ONBOOT=yes
修改完成后重啟網絡,便可上網
克隆虛擬機:
查看被克隆虛擬機磁盤位置:root@test:/data# cat /etc/libvirt/qemu/test-li.xml | grep source
虛擬機需要處於關閉狀態:root@test:/data# virsh shutdown k8s-master
克隆虛擬機:root@test:/data# virt-clone -o k8s-master -n k8s1 -f /data/k8s1.qcow2
Virsh常用命令:
查看kvm虛擬機:root@test:/data# virsh list ##創建的虛擬機相關配置文件存放在/etc/libvirt/qemu下。
查看網絡列表:root@test:/data# virsh net-list
啟動虛擬機:root@test:~# virsh start test-li
正常關閉虛擬機:root@test:~# virsh shutdown test-li
強制關機:root@test:~# virsh destroy test-li
查看虛擬機配置信息:root@test:~# virsh dumpxml test-li
徹底刪除虛擬機:root@test:~# virsh undefine test-li