person

已经在开发一个Libvirt管理小工具,集成一个API来自动化售卖服务器。在此记录一些过程中遇到的问题/解法。希望能帮到后来者~

RAW格式转Qcow2

​​‌‌​​​‌‌​‌​​‌‌‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​‌​‌‍‌​‌‌​‌​​‍‌​‌​‌​​‌‍‌​‌‌​​‌​‍​‌‌‌‌​​‌‌​‌​​‌​‌‍​​‌‌‌​‌​​‌​​​​​‍​‌​‌‌​​‌‌‌​‌​​‌‍​‌‌‌​​​‌‌‌​‌​‌‌​‍​‌​‌​​​‌​‌​‌‌‌​‍​​‌‌​‌​​​​‌‌​‌​‍​‌‌‌​‌​​​‌​​‌‌‌‌‍​​‌‌‌‌‌‌‌‌​‌​​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​‌​​​​‍‌​​​‌​‌​‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​‌​‌‌​‍‌​​‌​​‌​‍‌​​‌‌​‌​‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌‌​‍‌‌​​​‌‌​‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌​‍‌‌​​‌‌‌​‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌‌‌​‌‍‌​​‌​​‌‌‍‌​​‌​​​​‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​​‌​‌‌‍‌​​‌​‌‌​‍‌​​‌​​‌​‍‌​​‌‌​‌​‍‌​​​‌​​​‍‌​​‌​‌​​‍‌‌​‌​​​‌‍‌​​‌‌‌​​‍‌​​‌​​​‌‍‌​‌​​​‌‌‍‌​​‌‌​‌​‍‌​​​​‌‌‌‍‌​​​‌‌‌‌‍‌​‌​​​‌‌‍‌‌​​‌​​‌‍‌‌​​‌​‌​‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌‍​​‌‌‌‌‌‌‌‌‌‌​‌‍‌​‌​‌​‌‌‍‌​​‌​‌‌​‍‌​​‌​​‌​‍‌​​‌‌​‌​‍‌​‌​‌​‌‌‍‌​​​‌‌​‌‍‌​​‌‌​‌​‍‌​​‌‌​‌​‍‌​‌​‌‌​​‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​‌‌​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​​‍​​​‌‌​‌‌​‌‌​‌‌‌‍​​‌‌​​​‌​‌‌‌‌​​‍​​‌‌‌​‌‌​‌‌‌‌‌‌‍​​‌‌​​​‌‌‌‌​‌‌​

qemu-img convert -f raw -O qcow2 <RAW> <Qcow2>
即可转换。这条命令来自IBM社区这篇文章讲的很好,顺带解析了一下两者。

修改虚拟机XML

之前一直是 virsh edit VM 进行修改,但是发现修改之后似乎只是临时生效。
修改虚拟机XML建议直接修改源文件,然后再次define。

虚拟化网卡问题

一开始模板创建出来的系统网卡似乎有问题。查阅资料得知是VirtIO相关驱动Windows没有自带,因为对网络要求不是非常高,直接修改model type为 e1000 即可免驱识别网卡。
<model type='e1000'/>

虚拟机最高分辨率只有1024x768

这是因为默认分配的显存很小,网上查阅资料是修改显卡类型然后增大显存,但是qxl方案似乎会导致我VNC无法连接,故多试了几个,得出使用vga方案并扩大显存可以实现我需要的。
<model type='vga' vram='65536' heads='1' primary='yes'/>

VNC鼠标定位有问题

鼠标类型绝对运动和相对运动的问题。
修改鼠标配置为 <input type='tablet' bus='usb'/>
即可解决问题

Windows7最高只支持2个CPU

一开始发现在设备管理器内有,但是任务管理器没有展示出来,发现多出来的核心确实是没有使用上。
了解到Windows7这类是家用系统,最高只支持2个Socket,通俗的讲就是插槽啦(xd)
修改CPU的配置

<cpu mode='host-passthrough'>
        <topology sockets='2' cores='4' threads='2'/>
    </cpu>

使其每1个socket支持4个核心(默认是1socket一个核心)
并且是CPU直通。
cores应该在创建虚拟机时计算定义。我的写法是
round(vCPU/2)四舍五入(虚拟核心/2)

未完待续(其实是不希望再有坑的)

新评论