libvirt virsh入门
libvirt是红帽家写的一套虚拟化软件管理工具。
现在市面上有着大量的虚拟化软件,大至ESXi、Proxmox,小如LXC、QEMU,但这些工具提供了各自不同的接口,出现混用的情况将会十分麻烦。俗话说的好,没有什么是计算机工程无法解决的,如果有,那就加一个抽象层。而libvirt则提供了一个统一的接口,允许以相同的格式在不同底层平台上创建对应的虚拟实例,而这也可以说是红帽家OpenStack允许在混合云环境上搭建虚拟化平台的技术支柱之一。
既然libvirt叫做库而不是工具,那么意味着其使用方法更多地是在代码中调用,而非作为一套命令行工具由人工手动操作。然而咱作为普通用户,没有数据中心那个经济实力,一套OpenStack开下来很有可能一半内存就没了(单机内存占用8G起步),因而只能试着用用底层工具来自行创建和使用虚拟机了。
接下来将使用同样是libvirt包提供的virsh
及其衍生工具virt-install
来创建虚拟机。
首先是安装软件包:
sudo dnf install -y qemu-kvm libvirt virt-install
如果机器配置了图形界面的话,可以安装virt-viewer
包,执行virt-install
时可以直接给出窗口展示虚拟机的图形界面。由于我这里服务器没配图形界面,后面就都是用的vnc了。
由于virt-install
和qemu
的命令风格非常相似,因而可以参考我之前介绍qemu的文章,这里直接贴命令行了:
virt-install \
--virt-type=kvm \
--name win10 \
--ram 8192 \
--vcpus=4 \
--os-variant=win10 \
--boot cdrom \
--disk <Windows_ISOFILE>,device=cdrom,bus=sata,readonly=on \
--disk <VirtIO_ISOFILE>,device=cdrom,bus=sata,readonly=on \
--graphics vnc \
--disk path=<PATH_TO_STORE_IMAGE>,size=100,bus=virtio,format=qcow2
接下来是通过vnc远程连接虚拟机图形界面的流程。由于偷懒,这里选择不用安装客户端的novnc:
dnf install -y novnc
默认的vnc端口是5900,我们需要配置novnc连接到该端口,然后再从新端口提供novnc解析后的vnc客户端服务:
novnc_proxy --vnc localhost:5900 --listen 8443
这里选择了8443端口提供novnc服务,在浏览器中输入ip-端口组合即可通过浏览器访问虚拟机的vnc界面了。不过我这挺怪的,novnc的某些资源加载的时候会随机报404,只有反复刷新,等所有资源都被缓存好之后才能正常使用= =