前言
本文简单介绍在最新CentOS 7.5.1810 X64操作系统安装和使用KVM虚拟机的过程,为安装方便,CentOS应选择安装Desktop相关gnome图形界面,全程使用root用户操作。
安装要求
- 检查BIOS,开启CPU VT支持
- 系统检查CPU硬件是否支持虚拟化指令:egrep ‘(vmx|svm)’ /proc/cpuinfo
- linux内核版本必须2.6.20以上,通过uname -r 查看
- 查看kvm模块是否加载:lsmod | grep kvm
非根用户使用kvm
新建用户组和用户kvm,修改/dev/kvm 的拥有组为kvm
对于新建设备同样需要设置拥有组为kvm,可以在/etc/udev/rules.d/40-permissions.rules,添加配置:KERNEL==“kvm”, GROUP=“kvm”
安装过程
简单介绍下需要安装的虚拟化工具:
- libvirt:虚拟机管理接口库,提供通用的API操作和管理虚拟机;
- virsh:虚拟机命令行管理工具,作为qemu-kvm命令和virt-manager的另一种方式,包含在libvirt-client软件包中;
- virt-manager:图形化管理工具
- virt-install:提供创建虚拟机的命令行工具,支持文本和图形安装,支持远程和自动化安装,含在python-virtinst软件包;
- guestfs:检验和修改虚拟机文件系统的命令行工具,在libguestfs-tools包中;
- gnome boxes: 简单的图形桌面虚拟化工具,提供在线安装虚拟机,可以方便安装和测试不同操作系统和应用,含在gnome-boxes软件包中
KVM虚拟机在Linux系实际上以多线程的进程形式存在,虚拟机监控程序通过libvirt api和工具进行管理,支持虚拟化Windows,Linux等多种操作系统。
// 查看CPU是否支持VT
# grep -E 'svm|vmx' /proc/cpuinfo
# yum install libvirt libvirt-daemon libvirt-python libguestfs-tools virt-install
# yum install qemu-kvm
// 启动KVM虚拟API接口服务
# systemctl enable libvirtd
# systemcctl start libvirtd
# systemctl status libvirtd
// 查看已安装的kvm内核模块
# lsmod | grep kvm // 显示kvm_intel,kvm模块
# modinfo kvm_intel
安装kvm虚拟机图形管理工具:
# yum install virt-viewer // 用来展示kvm虚拟机的图形终端显示
# yum install virt-manager // 虚拟机桌面管理工具,管理多个虚拟机信息
下载镜像,创建虚拟机:
由于我已经在虚拟机环境里面操作,为保证性能和快速实验,可以利用TinyCore Linux发行版,只有18MB左右。
# cd /home
# wget http://www.tinycorelinux.net/10.x/x86/release/TinyCore-current.iso
# mkdir /vm-images
# virt-install --name vm1 --ram=256 --vcpus=1 --disk path=/vm-images/vm1.img,size=5 --cdrom /home/TinyCore-current.iso --os-type=linux;
如果出现以下错误,是存放iso的目录,当前用户无读取权限导致,可以移到到合适的文件夹,例如 mv /home/TinyCore-current.iso /var/lib/libvirt/images/。
开始安装......
正在分配 'vm2.img' | 5.0 GB 00:00:00
ERROR 内部错误:process exited while connecting to monitor: 2019-07-13 06:59:49.548+0000: Domain id=2 is tainted: high-privileges
2019-07-13T06:59:50.292324Z qemu-kvm: -drive file=/home/k8s/TinyCore-current.iso,format=raw,if=none,id=drive-ide0-0-1,readonly=on: could not open disk image /home/k8s/TinyCore-current.iso: Could not open '/home/k8s/TinyCore-current.iso': Permission denied
正在删除磁盘 'vm2.img' | 0 B 00:00:00
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///system start vm2'
否则请重新开始安装。
打开图形虚拟机管理工具virt-manager,管理所有的虚拟机,可以新建、开启、删除、重启虚拟机等:
# virt-manager
下面尝试安装Ubuntu 19.04虚拟机,下载Ubuntu iso文件到/var/lib/libvirt/images/
# virt-install --name ubuntu --ram=1024 --vcpus=1 --disk path=/vm-images/ubuntu.img,size=15 --cdrom /var/lib/libvirt/images/ubuntu-19.04-live-server-amd64.iso --os-type=linux;
通过命令行管理虚拟机:
- 查看虚拟机列表: virsh list --all
- 启动虚拟机: virsh start ubuntu
- 暂停虚拟机: virsh suspend ubuntu
- 恢复虚拟机: virsh resume ubuntu
- 查看虚拟机信息:virsh dominfo ubuntu
- 关闭虚拟机:virsh shutdown ubuntu
- 自动开启虚拟机:virsh autostart ubuntu
- 关闭自动开启虚拟机:virsh autostart -disable ubuntu
- 克隆虚拟机:virt-clone --connect qemu:///system --original ubuntu --name ubuntu-clone --file /vm-images/ubuntu-clone.img
- 直接下电删除虚拟机:virsh destroy ubuntu-clone
- 移除虚拟机:virsh undefine ubuntu-clone,rm /vm-images/vm1-clone.img