一、KVM简介

略过,不知道的自己百度。

二、通过yum安装kvm

1、检查cpu是否支持虚拟化

egrep'(vmx|svm)'--color=always /proc/cpuinfo

看到vmx或者svm就行,没有的话进bios开启VT-X

2、关闭SELinux

# 将 /etc/sysconfig/selinux 中的SELinux=enforcing修改为 SELinux=disabled  
vim /etc/sysconfig/selinux 

3、yum安装

必要开发工具包:

yum install epel-release net-tools vim unzip zip wget ftp -y 

kvm的包:

 yum -y install kvm qemu-kvm qemu-kvm-tools   

管理kvm的包:

yum -y install python-virtinst libvirt bridge-utils virt-manager virt-viewer virt-v2v libguestfs-tools libvirt-python virt-install 

安装vnc(连接虚拟机用):

yum -y install vnc-server tigervnc tigervnc-server

4、启动kvm

# 开启kvm服务,并设置开机启动  

systemctl start libvirtd.service  

systemctl enable libvirtd.service  

# 查看操作结果,出现Active:active(running)字样则说明运行情况良好  

systemctl status libvirtd  

systemctl is-enabled libvirtd  

三、配置虚拟网卡创建网桥

touch /etc/sysconfig/network-scripts/ifcfg-br0 
vi /etc/sysconfig/network-scripts/ifcfg-br0

在ifcfg-br0添加:

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=公网IP
NETMASK=公网IP掩码
GATEWAY=公网IP网关
DNS1=101.6.6.6
PREFIX=24

接下来修改一下你自己的网卡配置,我的网卡是eno1

 vi /etc/sysconfig/network-scripts/ifcfg-eno1

修改几个地方:

BRIDGE="br0"
ONBOOT="yes"
BOOTPROTO=none
# 然后将下面的内容注释掉
# IPADDR=192.168.1.10
# GATEWAY=192.168.1.1
# DNS1=192.168.1.1
# NETMASK=255.255.255.0
# PREFIX=24
# 因为要设置桥接,这几项IP地址等原来的配置信息必须关闭,在br0配置文件中再设置

其他不变
保存之后重启network服务

 systemctl restart network.service 

出现上图所示br0 桥接情况说明配置成功

四、虚拟机安装

1、创建磁盘

创建类型为raw的磁盘,还有另外两种格式img和qcow2,区别后面补充

  qemu-img create -f raw /opt/kvm_win10.raw 100G  

2、检查磁盘是否创建成功

qemu-img info /opt/kvm_win10.raw   
如图所示创建磁盘成功

3、Windows系统的安装

virt-install  --virt-type kvm  --name win10  --vcpus 16  --memory 28672  --cdrom /data/downloads/SW_DVD5_Win_Pro_10_64BIT_ChnSimp_MLF_X21-50131.iso  --boot cdrom  --network bridge=br0,model='e1000'  --graphics vnc,listen=0.0.0.0,port=5900  --disk path=/opt/kvm_win10.raw,bus='ide'  --noautoconsole  --os-type=windows
virt-install \
--virt-type kvm \
--name win10 \
--vcpus 16 \
--memory 28672 \
--cdrom /data/downloads/SW_DVD5_Win_Pro_10_64BIT_ChnSimp_MLF_X21-50131.iso \
--boot cdrom \
--network bridge=br0,model='e1000' \
--graphics vnc,listen=0.0.0.0,port=5900 \
--disk path=/opt/kvm_win10.raw,bus='ide' \
--noautoconsole \
--os-type=windows

然后进vnc ip:5900装机就行啦,注意windows安装之后重启,需要手动用命令行启动 虚拟机

4、windows只能识别两个CPU核心的问题

使用上述命令创建的虚拟机应该有16个cpu核心才对,但是任务管理器只有两个。

其原因是,Windows 除了server版最多只支持两个CPU 插槽(socket),而每个socket内可以有多个core。kvm缺省时默认每个CPU模拟一个socket,导致系统无法使用这么多socket,必须修改虚拟机CPU的topology,限制socket数量在2以内,增加每个socket的cpu核心数,这样才能让windows使用超过2个CPU。

解决办法:

virsh edit your_vm_name

找到<cpu>相关内容,添加下面内容

  <cpu>
  <topology sockets='1' cores='8' threads='16'/>
  </cpu>

另外注意修改<vcpu placement=’static’>16</vcpu>中的vcpu数量与上面的sockets cores threads 对应一致

修改完成后启动虚拟机即可

五、虚拟机管理—命令行方式

1.virsh命令使用

virsh list                 # 查看在运行的虚拟机  
virsh dumpxml vm-name # 查看kvm虚拟机配置文件
virsh edit vm-name # 修改虚拟机的配置文件(部分选项修改以后start虚拟机就可以生效)
virsh start vm-name # 启动kvm虚拟机
virsh shutdown vm-name # 正常关机
virsh destroy vm-name # 非正常关机,强制关闭虚拟机(相当于物理机直接拔掉电源)
virsh undefine vm-name # 删除vm的配置文件
ls /etc/libvirt/qemu # 查看删除结果,Centos-6.6的配置文件被删除,但磁盘文件不会被删除
virsh define file-name.xml # 根据配置文件定义虚拟机
virsh suspend vm-name # 挂起,终止
virsh resumed vm-name # 恢复被挂起的虚拟机
virsh autostart vm-name # 开机自启动vm
virsh console <虚拟机名称> # 连接虚拟机

2.彻底删除虚拟机的方法

1、虚拟机启动的情况下先关闭虚拟机

virsh destroy vm-name  

2、删除vm配置文件

virsh undefine vm-name  

3、查看删除结果(是否删除了配置文件),如果没有vm-name.xml文件则删除成功

ls /etc/libvirt/qemu  

4、删除虚拟机磁盘(安装的时候创建的kvm.raw文件)

rm /opt/kvm.raw 

六、虚拟机快照、克隆、恢复

七、挂载磁盘及文件共享

八、虚拟机优化

九、遇到的坑及解决办法

1、windows只能识别两个CPU核心的问题

使用上述命令创建的虚拟机应该有16个cpu核心才对,但是任务管理器只有两个。

其原因是,Windows 除了server版最多只支持两个CPU 插槽(socket),而每个socket内可以有多个core。kvm缺省时默认每个CPU模拟一个socket,导致系统无法使用这么多socket,必须修改虚拟机CPU的topology,限制socket数量在2以内,增加每个socket的cpu核心数,这样才能让windows使用超过2个CPU。

解决办法:

virsh edit your_vm_name

找到<cpu>相关内容,添加下面内容

  <cpu>
  <topology sockets='1' cores='8' threads='16'/>
  </cpu>

另外注意修改<vcpu placement=’static’>16</vcpu>中的vcpu数量与上面的sockets cores threads 对应一致

修改完成后启动虚拟机即可

解决办法:

修改/etc/libvirt/qemu下虚拟机配置文件xml:

找到<cpu>相关内容,添加下面内容

  <cpu>

  <topology sockets=’1′ cores=’8′ threads=’16’/>

  </cpu>

主要修改<vcpu placement=’static’>16</vcpu>中的vcpu数量

修改完成后重启虚拟机即可

十、总结

慢慢来,kvm就是一个天坑。

上了控制面板就能玩VPS云服务了,你说刺不刺激。

参考文章:

https://blog.csdn.net/lixingfu1009/article/details/80676794

https://www.cnblogs.com/Yemilice/p/8080688.html

https://wenku.baidu.com/view/bcc78670c4da50e2524de518964bcf84b8d52d51.html


0 条评论

发表评论