操作系统版本:CentOS Linux release 7.5.1804 (Core)



内核版本:3.10.0-862.el7.x86_64



 



1、安装



安装以下软件。
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install vnc -y



 



2、启动服务



启动kvm服务。
service libvirtd start



 



3、配置宿主机网卡,创建br桥



cd /etc/sysconfig/network-scripts/

此处假设宿主机网卡名称为ifcfg-enp1s0。复制创建br0配置文件。
cp ifcfg-enp1s0 ifcfg-br0



 



 配置br0桥。



 vim ifcfg-br0



   配置内容如下:


TYPE=Bridge  
  
 
  

        BOOTPROTO=static 
  
 
  

        BROWSER_ONLY=no 
  
 
  

        DEFROUTE=yes 
  
 
  

        DEVICE=br0 
  
 
  

        ONBOOT=yes 
  
 
  

        IPADDR=192.168.43.205 
  
 
  

        NETMASK=255.255.255.0 
  
 
  

        GATEWAY=192.168.43.1 
  
 
  

        DNS1=114.114.114.114



  解析如下:



  

TYPE=Bridge:说明网卡模式为桥接模式 
  
 
  

        BOOTPROTO=static:使用静态ip配置 
  
 
  

        IPADDR=192.168.43.205:ip地址 
  
 
  

        NETMASK=255.255.255.0:子网掩码 
  
 
  

        GATEWAY=192.168.43.1:网关 
  
 
  

        DNS1=114.114.114.114:设置dns



 配置ifcfg-enp1s0网卡。



 vim ifcfg-enp1s0



 



 配置内容如下:


TYPE=Ethernet 
  
 
  

        DEVICE=enp1s0 
  
 
  

        ONBOOT=yes 
  
 
  

        BRIDGE=br0


  解析:



TYPE=Ethernet:网卡类型为以太网卡 
  
 
  

      BRIDGE=br0:指明桥接网卡名称


 



重启网卡服务。



service network restart



 

4、创建虚拟机。



4.1、创建硬盘,此处使用qcow2作为硬盘格式。



qemu-img create -f qcow2 /data/vitual-img/kvm-mysql-18.18.100.4-data.img 500G

解析:
    create -f qcow2:创建磁盘并指定硬盘文件系统格式
    /data/vitual-img/kvm-mysql-18.18.100.4-data.img:指定硬盘文件存储目录
    500G:指定硬盘大小



 



4.2、创建虚拟机



virt-install --name kvm-liushaoqiang-192.168.40.91 --ram 32768 --vcpus=4 --cdrom /data/iso/CentOS-7-x86_64-Minimal-1804.iso --disk path=/data/vitual-img/kvm-liushaoqiang-192.168.40.91-system.img,format=qcow2,bus=virtio --bridge=br0 --vnc --vncport=5992 --vnclisten=0.0.0.0

解析:
    --name kvm-liushaoqiang-192.168.40.91:指定创建虚拟机的名称
    --ram 32768:指定虚拟机内存,默认按MB计算
    --vcpus=4:指定虚拟机cpu核心数量
    --cdrom /data/iso/CentOS-7-x86_64-Minimal-1804.iso:指定启动文件,以cdrom iso镜像启动
    --disk path=/data/vitual-img/kvm-liushaoqiang-192.168.40.91-system.img,size=40,format=qcow2,bus=virtio:指定磁盘位置,格式为qcow2,虚拟化方式为virtio(半虚拟化方式)
    --bridge=br0:指定网络模式为桥接,桥接网卡为br0
    --vnc --vncport=5992 --vnclisten=0.0.0.0:指定虚拟机远程vnc地址以及端口



执行完以上命令后,即可使用vnc连接宿主机的地址以及vncport进行虚拟机的安装。此处列出操作系统安装步骤。



 



5、kvm常用命令



以下命令均在虚拟机的宿主机上执行。

5.1、强制关闭虚拟机



virsh destroy kvm-mysql-18.18.100.4

解析:
kvm-mysql-18.18.100.4:虚拟机名称,不是虚拟机的hostname。



5.2、彻底删除虚拟机



virsh undefine kvm-mysql-18.18.100.4



5.3、关闭虚拟机



virsh shutdown kvm-mysql-18.18.100.4

备注:需要在虚拟机上安装acpid,同时启动该服务。否则无法使用virsh shutdown远程关闭虚拟机。



5.4、启动虚拟机



virsh start kvm-mysql-18.18.100.4



5.5、查看虚拟机列表



virsh list --all

解析:
list:不加--all无法查看该宿主机上所有虚拟机,只能列出当前处于运行状态的虚拟机
--all:列出该宿主机上所有虚拟机



5.6、虚拟机新增磁盘



virsh attach-disk --domain kvm-mysql-18.18.100.4 --source /data/vitual-img/kvm-mysql-18.18.100.4-data.img --target sda --cache none

解析:
--domain kvm-mysql-18.18.100.4:指定虚拟机名称
--source /data/vitual-img/kvm-mysql-18.18.100.4-data.img:指定要挂载的磁盘目录以及所在位置
--target sda:指明该磁盘挂载的虚拟机之后,在虚拟机上的磁盘位置
--cache none:无缓存

备注:
1、只有raw模式的磁盘才可直接挂载,qcow2格式的磁盘需要远程映射才可挂载。
2、系统重启,使用该命令挂载磁盘会丢失。



5.7、虚拟机卸载磁盘



virsh detach-disk kvm-mysql-18.18.100.4 --target sda

解析:
kvm-mysql-18.18.100.4:指定虚拟机名称
--target sda:指明虚拟机上磁盘挂载点



5.8、查看img磁盘信息



qemu-img info kvm-mysql-18.18.100.4-data.img



5.9、在虚拟机关闭状态下,将文件复制到虚拟机内部



virt-copy-in -d kvm-mysql-18.18.100.4 change_ip.sh /etc/rc.d

解析:
-d kvm-mysql-18.18.100.4:指定虚拟机名称
change_ip.sh:在宿主机上的文件名称,建议使用绝对地址
/etc/rc.d:虚拟机内部目录