一、安装kvm及其相关组件
1. 验证CPU是否支持KVM;如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
egrep '(vmx|svm)' /proc/cpuinfo
2. 关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled
3. 最小安装的CentOS安装一些最基本的包(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)
yum install epel-release net-tools vim unzip zip wget ftp -y
4. 安装KVM及其依赖项(合起来yum会报错)
yum install qemu-kvm -y
yum install libvirt -y
yum install virt-install -y
yum install bridge-utils -y
5. 验证安装结果,下图说明已经成功安装了
lsmod | grep kvm
6. 开启kvm服务,并且设置其开机自动启动
systemctl start libvirtd
systemctl enable libvirtd
7. 查看状态操作结果,如下图所示,说明运行情况良好
systemctl status libvirtd systemctl is-enabled libvirtd
8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(注:不要备在当前目录以及子目录下,其他目录随意)
添加ifcfg-br0
BOOTPROTO="static"
DEFROUTE="yes"
#NAME="ens33"
#UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="br0"
ONBOOT="yes"
IPADDR=10.0.0.130
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=8.8.4.4
BOOTPROTO="static"
NM_CONTROLLED="no"
UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"
重启网络服务,使用 ifconfig 验证操作结果,多了一块网卡br0。
注意:宿主机需要安装acpid服务才能实现 宿主机shell中关闭虚拟机(virsh shutdown vm0)
二、用vnc viewer安装虚拟机 (注意:使用root账户)
1. 准备操作系统安装镜像文件,在本文中将使用和宿主环境一样的CentOS7.3,把该文件放到 /home/kvm/iso.d/ 目录下
2. 创建虚拟机文件存放的目录
mkdir -p /home/kvm/img.d
3. 使用 virt-install 创建虚拟机
4. 打开防火墙上的5910端口
firewall-cmd --zone=public --add-port=5910/tcp --permanent
firewall-cmd --reload
5. 下载VNC Viewer, 使用VNC Viewer连接该虚拟机(kvm自带vnc-server,所以只需下载vnc viewer即可),进行虚拟机操作系统的安装,
6. 安装完CentOS,系统要求重启,这时候虚拟机没有重启(也不知是因为什么问题),VNC也连不上,先在宿主机上查看虚拟机状态
virsh list --all
7. 手动启动虚拟机, 再次使用VNC连接,发现已经可以连进去了
virsh start vm0
8. 其余virsh操作
virt-clone -o vm0 -n vm1 -f /home/img.d/vm1.qcow2
virsh edit vm1 (一般都是更改vnc接口)
virsh shutdown vm0(关机)
virsh undefine vm0 (删除虚拟机,但虚拟机文件要手动删除)
克隆之前要确保源虚拟机关闭,命令:
virsh shutdown centos-dfy
2、克隆命令:
virt-clone -o centos-dfy -n centos-dfy01 -f /home/kvm/img.d/centos-dfy01.qcow2
命令解释:
将centos-dfy 克隆,新的虚拟机名称为centos-dfy01,镜像存储路径为/home/kvm/img.d/centos-dfy01.qcow2
3、编辑新虚拟机
virsh edit centos-dfy01
修改其vnc端口
查找/vnc
4、打开新虚拟机
virsh start centos-dfy01
virsh list #显示本地活动虚拟机
virsh list –all #显示本地所有的虚拟机(活动的+不活动的)
virsh define ubuntu.xml #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start ubuntu #启动名字为ubuntu的非活动虚拟机
virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend ubuntu # 暂停虚拟机
virsh resume ubuntu # 启动暂停的虚拟机
virsh shutdown ubuntu # 正常关闭虚拟机
virsh destroy ubuntu # 强制关闭虚拟机
virsh dominfo ubuntu #显示虚拟机的基本信息
virsh domname 2 # 显示id号为2的虚拟机名
virsh domid ubuntu # 显示虚拟机id号
virsh domuuid ubuntu # 显示虚拟机的uuid
virsh domstate ubuntu # 显示虚拟机的当前状态
virsh dumpxml ubuntu # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem ubuntu 512000 #给不活动虚拟机设置内存大小
virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数
virsh edit ubuntu # 编辑配置文件(一般是在刚定义完虚拟机之后)