一、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 条评论