PRE-INSTALL

kvm相关安装包及其作用
qemu-kvm        主要的KVM程序包
python-virtinst        创建虚拟机所需要的命令行工具和程序库
virt-manager        GUI虚拟机管理工具
virt-top        虚拟机统计命令
virt-viewer        GUI连接程序,连接到已配置好的虚拟机
libvirt        C语言工具包,提供libvirt服务
libvirt-client        为虚拟客户机提供的C语言工具包
virt-install        基于libvirt服务的虚拟机创建命令
bridge-utils        创建和管理桥接设备的工具

INSTALL


[root@master~]# yum install bridge-utils tunctl virt-manager virt-viewer kvm kmod-kvm qemu libvirt python-virtinst acpid  -y

#查看是否加载kvm模块
[root@master~]# lsmod|grep kvm
kvm_intel             138567  0
kvm                   441119  1 kvm_intel
#如果没有这两条,可以用"modprobe kvm"加载;
#相关命令"insmod;rmmod;modinfo"

#启动libvirtd
[root@master~]# systemctl start libvirtd;systemctl enable libvirtd
[root@master~]# systemctl list-unit-files|grep libvirtd
libvirtd.service                            enabled


NETWORK CONFIGURATION

#修改网卡文件ens33
[root@master~]# cd /etc/sysconfig/network-scripts/
[root@master network-scripts]# echo "BRIDGE=br0" >>ifcfg-ens33   #在ifcfg-e**原网卡文件中增加"BRIDGE=br0"

#新建网桥文件ifcfg-br0(网桥名称),增加内容如下
[root@master network-scripts]# vi ifcfg-br0
*************************************************
DEVICE=br0                                            
TYPE="Bridge"                                       #大小写敏感,所以必须是Bridge
BOOTPROTO="dhcp"
ONBOOT="yes"
DELAY="0"
STP="yes"                                                #这一行是来启动STP,和brctl命令行出来的结果有关
*************************************************

#重启NetworkManager及network服务:
[root@masternetwork-scripts]# systemctl restart NetworkManager
#当你手动修改了网卡文件后,需要重启NetworkManager服务来重新接管网络配置
#网卡配置文件和NetworkManager配置冲突时,解决方案:{1、重启NetworkManager;2、关闭NetworkManager}

[root@masternetwork-scripts]# systemctl restart network
[root@master network-scripts]# ip a                                                   #ip命令用来查看和管理ip信息
1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd00: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_fastmaster br0 state UP qlen 1000
    link/ether 00:0c:29:61:5c:1d brdff:ff:ff:ff:ff:ff
3:virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue stateDOWN
    link/ether 52:54:00:b6:45:5b brdff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255scope global virbr0
       valid_lft forever preferred_lft forever
4:virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0state DOWN qlen 500
    link/ether 52:54:00:b6:45:5b brdff:ff:ff:ff:ff:ff
6: br0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:61:5c:1d brdff:ff:ff:ff:ff:ff
    inet 192.168.0.170/24 brd 192.168.0.255scope global dynamic br0
       valid_lft 11979sec preferred_lft11979sec
    inet6 fe80::20c:29ff:fe61:5c1d/64 scopelink
       valid_lft forever preferred_lft forever
7: vnet0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0state UNKNOWN qlen 500
    link/ether fe:54:00:cb:63:b2 brdff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fecb:63b2/64 scope link
       valid_lft forever preferred_lft forever

#查看网桥连接
[root@master network-scripts]# brctl show                                               #brctl是一个网桥连接管理命令
bridge name     bridge id               STP enabled     interfaces  #如果上面不设置STP=yes,这里就会显示no
br0             8000.000c29615c1d       yes             ens33
                                                                                 vnet0
virbr0          8000.525400b6455b       yes             virbr0-nic


CLOSE SELINUX

[root@masternetwork-scripts]# setenforce 0
[root@masternetwork-scripts]# getenforce
Permissive
[root@masternetwork-scripts]#vi /etc/selinux/config
******************************************
SELINUX=permissive                                           #修改配置文件使其永久生效
******************************************


CREATE A VM

[root@master~]# mkdir -p /data/kvm
[root@master~]# virt-install --network bridge=br0 --name centos73 --ram 2048 --vcpus 1 --disk path=/data/kvm/centos73.img,size=16 --graphics none --location 'http://mirrors.163.com/centos/7.3.1611/os/x86_64/' --extra-args="console=tty0 console=ttyS0,115200" 
#详细每个参数的意义可以查看扩展资料
#安装过程会让你选择textmode 还是vnc,选择textmode继续安装吧
#如果网络会有问题的话,尽量选择用--cdrom /path/to/centos7.iso
#virt-install --network bridge=br0 --name centos73 --ram 2048 --vcpus 1 --disk path=/data/kvm/centos73.img,size=16 --graphics none --location 'http://mirrors.163.com/centos/7.3.1611/os/x86_64/' --extra-args="console=tty0 console=ttyS0,115200"