CentOS7安装KVM

介绍

KVM是是个开源的系统虚拟化模块,自内核2.6.20之后集成在各个Linux的主要发行版中。

也就是创建虚拟机的一个工具。

安装

1 关闭防火墙,关selinux

为了方便,防火墙先关闭

1
2
3
4
# systemctl stop firewalld
# systemctl disable firewalld
# vi /etc/selinux/config
# setenforce 0

2 安装工具包

1
# yum install -y net-tools -y epel-release

3 安装kvm相关软件包

1
# yum install qemu-kvm libvirt virt-install bridge-utils libvirt-python libguestfs-tools virt-manager virt-viewer virt-top kvm  xauth -y

4 编辑网卡,创建网桥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
BOOTPROTO=none
NM_CONTROLLED=no
DEVICE=ens34
ONBOOT=yes
BRIDGE=br0
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.100.101
NETMASK=255.255.255.0
# systemctl restart network

5 添加镜像到系统中

1
2
# mkdir -p /data/IaaS/ISO/CentOS/
# mv /opt/CentOS-7-x86_64-DVD-1511.iso /data/IaaS/ISO/CentOS/

6 查看kvm模块是否加载(如果没有则执行modprobe kvm)

1
2
3
# lsmod |grep kvm
# virsh -c qemu:///system list (查看虚拟机,等同于virsh list --all)
# virsh list

7 开启端口转发

1
# echo 1 > /proc/sys/net/ipv4/ip_forward

8 查看virsh版本号

1
# virsh version

9 修改vnc监听端口,并重启libvirtd,并开机自启

1
2
3
# vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
# systemctl restart libvirtd

10 创建镜像存放地址

1
2
3
4
# mkdir -p /data/IaaS/Storage/Primary
# qemu-img create -o compat=0.10 -f qcow2 /data/IaaS/Storage/Primary/centos7.qcow2 10G
# qemu-img info /data/IaaS/Storage/Primary/centos7.qcow2
# virt-install --connect=qemu:///system --name centos7 --ram 1024 --vcpus=1 --disk path=/data/IaaS/Storage/Primary/centos7.qcow2,device=disk,format=qcow2,bus=virtio,cache=none,size=100 --cdrom /data/IaaS/ISO/CentOS/CentOS-7-x86_64-DVD-1511.iso --graphics vnc,password=000000,port=5901 --network bridge=br0,model=virtio,model=e1000 --os-type=linux --virt-type=kvm --accelerate --network bridge=br0 –noautoconsole

11到这步虚拟机就起来了,可以通过vnc软件连接物理机ip+5901端口连接虚拟机了

img

12 如果之前忘记修改vnc_listen的地址,则无法连接到vnc,需要修改vnc监听端口并重启libvirtd。这时候重启虚拟机就行

1
virsh reboot centos7

13 virsh 相关命令

删除虚拟机

1
virsh undefine centos7

查看虚拟机列表

1
virsh list –all

开机自动启动

1
virsh autostart centos7

关闭开机自启

1
virsh autostart –disable centos7

关闭虚拟机

1
virsh shutdown centos7

开启虚拟机

1
virsh start centos7

重启虚拟机(关机状态无法重启,需要用start命令)

1
virsh reboot centos7

彻底删除虚拟机

1
2
virsh destroy centos7
virsh undefined centos7 (最后删除虚拟机文件)

挂起虚拟机

1
virsh suspend centos7

恢复挂起的虚拟机

1
virsh resume centos7

启动虚拟机并进入该虚拟机

1
virsh start centos7 --console