KVM好好玩!!!!
伤脑子,肝爆了
WebVirtMgr,一款优秀的Web管理QEMU-KVM(以下简称KVM)程序,具体多优秀不说了,反正你们都知道(笑)
这个面板风格得体,简洁大方,外貌可以给9分,但操作上只能得3分(不然本篇没啥好水的了 )
简单介绍开KVM教程
▼首先,登录
▼点击进被控端(也就是libvirt宿主机)
由于这是生产环境,已经有一个虚拟机,咱不管他,继续
这里解释一下,服务器有俩硬盘,一个SSD 一个HDD,SSD装了系统,预计未来会有虚拟机要跑,所以也挂载上去了,HDD内放了系统镜像以及虚拟机文件,所以iso核HDD的大小是一样的,记住,除了iso外,剩下两个都可以创建VM盘
▼添加一个VM盘
▼如下设置
▼这就创建好VM盘了
▼回来,创建虚拟机
▼配置~~~
▼按照图上配置系统镜像(系统镜像全部上传到iso文件夹,就是那个无法创建VM盘的那个)
▼Power ON!
▼用VNC连接
接下来就和日常安装系统一样辣,不过这里有个坑,在创建虚拟机的时候有个VirtIO选项,该选项勾上就是使用SCSI模式,取消勾选就是使用IDE模式,SCSI模式性能比IDE模式性能好,但是安装Windows使用SCSI需要加载驱动
▼加载SCSI驱动方法如下
(换了一台机子截图,之前的机子跑着渲染,卡的生活不能自理)
复制粘贴进去以下代码
<disk type='file' device='floppy'>
<driver name='qemu' type='raw'/>
<source file='/home/hdd/KVM/ISOs/virtio-win.vfd'/>
<backingStore/>
<target dev='fda' bus='fdc'/>
<alias name='fdc0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
####WARNING####
*在<source file=”/>中里面的驱动文件路径是你的服务器上驱动文件的绝对路径
####WARNING####
▼然后等到这一步你会发现还是识别不到磁盘(手动滑稽)
▼点击一下
▼点击浏览
▼双击这个软盘驱动器
▼再打开里面的AMD64文件夹(因为我的系统是64位,32位的打开i386文件夹)
▼会有4个文件夹
win2008r2选择win7
win2012选择win8
win2012r2选择win8.1
win2016/win2019选择win10
我的是2012r2,所以选win8.1
▼然后就可以扫出来驱动了
上面的Ethernet Adapter是网卡驱动,下面的SCSI controller是硬盘驱动,全装上
搞定,接下来就是和平常装系统一样了
▼进来辣
接下来开启远程权限,不会就去谷狗
▼接下来克隆VM
推荐VM盘和VM名称一样,方便管理
▼克隆成功
接下来到端口映射时间
在ssh界面下,用root权限执行
vim /etc/libvirt/qemu/VM名称.xml
我这里是Mustang22.xml
打开后,拉到最底有个 <qemu:commandline>标签,在里面插入或修改
▼插入端口映射代码
<qemu:commandline>
........
<qemu:arg value='user,hostfwd=tcp::3391-:3389'/>
........
</qemu:commandline>
其中,在前面的端口是外网端口,在后面的端口是内网端口,端口映射不能重复
之后在ssh中输入
virsh define /etc/libvirt/qemu/Mustang22.xml
这样就OK辣
接下来更改处理器配置
一般来说,比如你当时输入了8个vCPU,通常在任务管理器看到的情况是这样的
▼8路i7
一些程序没办法利用8路机器,所以我们要改成1插槽(Socket)8核心(Core)
同样的,咱需要修改.xml文件
<qemu:commandline>
........
<qemu:arg value='8,sockets=1,cores=8,threads=1'/>
........
</qemu:commandline>
sockets为插槽数量,cores为核心数量,threads为线程数量,三个数相乘就是在任务管理器所能看到的框框数量
*如果无法添加<qemu:commandline>
这个参数,是因为XML头部的问题,把
<domain type='kvm'>
改为
<domain type='kvm' id='33' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
即可
**改了后会发生很多报错,要逐一排查,我说下最关键几个,关于cirrus视频监视器的错误
这个为什么会出错我没找原因,但是解决方法很简单
将
<video>
<model type='cirrus' vram='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video
改为
<video>
<model type='cirrus' vram='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
</video
即可,这个是pci总线地址的问题。
发表评论