kwm是基于内核的虚拟机,内建于linux中的开源虚拟化技术,docker是隔离程序的容器,kvm是隔离每个用户,kvm存在与linux内核2.6.20及以上版本中,下面记载一下kvm的安装配置过程

安装kvm

cpu要支持并开启VT-x/amd-v 虚拟化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
yum groupinstall "GNOME Desktop" -y #桌面环境
yum install qemu-kvm -y      #KVM模块
yum install qemu-kvm-tools -y        #KVM调试工具
yum install virt-install -y      #构建虚拟机的命令工具
yum install qemu-img -y      #qemu组件,创建磁盘,启动虚拟机
yum install bridge-utils -y      #网络支持工具
yum install libvirt -y       #虚拟机管理工具
yum install virt-manager -y      #图像化管理虚拟机
systemctl start libvirtd
systemctl enable libvirtd

配置网络

进入/etc/sysconfig/network-scripts cp -p ifcfg-ens33 ifcfg-br0 修改ifcfg-ens33

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost network-scripts]# cat ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c0dbe0e9-1bf2-4fc4-9741-62977d68bdee"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.66.3"
PREFIX="24"
GATEWAY="192.168.66.2"
DNS1="192.168.66.2"
IPV6_PRIVACY="no"
BRIDGE=br0 #插入BRIDGE=br0

修改br0

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost network-scripts]# cat ifcfg-br0 
TYPE="bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
DEVICE="br0"
ONBOOT="yes"
IPADDR="192.168.66.3"
PREFIX="24"
GATEWAY="192.168.66.2"
DNS1="192.168.66.2"
IPV6_PRIVACY="no"

重启网络服务

1
service network restart

查看是否生效,原本的网卡ip会到br0上

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:6a:04:30 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:6a:04:30 brd ff:ff:ff:ff:ff:ff
    inet 192.168.66.3/24 brd 192.168.66.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::6c68:624c:aa7e:3fd8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:ad:04:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:ad:04:d4 brd ff:ff:ff:ff:ff:ff
9: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:60:9e:b0 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe60:9eb0/64 scope link 
       valid_lft forever preferred_lft forever

准备镜像

添加一个硬盘

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@localhost ~]# ls /dev/ |grep sd
sda
sda1
sda2
sdb #sdb为新添加的硬盘

[root@localhost ~]# fdisk /dev/sdb #磁盘分区
[root@localhost ~]# mkfs /dev/sdb1 #格式化
[root@localhost ~]# mkdir /test
[root@localhost ~]# mount /dev/sdb1 /test
[root@localhost test]# mkdir iso disk
[root@localhost iso]# wget http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

阿里centos7镜像

1
[root@localhost ~]# virt-manager

最后配置

编辑->连接详情->存储 添加我们刚才创建的iso和disk存储池