安装 KVM
安装软件包
apt-get install -y qemu-kvm libvirt-bin bridge-utils
来自ubuntu.com 的包装说明:
- libvirt-bin 提供了 libvirtd,您需要使用 libvirt 管理 qemu 和 kvm 实例
- qemu-kvm(Karmic 及更早版本中的 kvm)是后端
- ubuntu-vm-builder 强大的命令行工具,用于构建虚拟机
- bridge-utils 提供了从您的网络到虚拟机的桥梁
将用户添加到组
adduser `id -un` libvirt
adduser `id -un` kvm
验证安装
virsh list --all
联网
配置网桥
您的网络接口应该立即使用 NetPlan 进行配置。由于安装了bridge-utils,您可以使用NetPlan 来完成剩下的工作。
在执行此操作之前,最好仔细检查您的 IPMI/IDRAC/ILO 是否正常工作。
# Example netplan config defining bridge
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
eno2:
dhcp4: no
bridges:
br0:
interfaces: [eno2]
addresses: ["10.1.0.14/24"]
gateway4: 10.1.0.1
mtu: 1500
nameservers:
addresses: ["10.1.0.154"]
parameters:
stp: true
forward-delay: 4
dhcp4: no
dhcp6: no
使用 virt-install 定义 VM
安装 virt-install - 它有点大,大约 160MB
apt-get install -y virtinst
可选 - 列出操作系统变量选项
apt-get install -y libosinfo-bin
osinfo-query os
创建虚拟机
--disk bus=: 'ide', 'scsi', 'usb', 'virtio' or 'xen'.
从现有的 qcow2 映像启动
virt-install \
--name MyImportedVM \
--description "Imported virtual machine" \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--os-type=linux \
--memory 8192 \
--vcpus=4 \
--disk path=/var/lib/libvirt/images/importedVM.qcow2,bus=virtio\
--boot hd \
--network bridge:br0,model=virtio
构建新的 Windows 虚拟机
Windows 在 KVM 上可能很困难,因为它不附带 Virtio 驱动程序。使用非 virtio 磁盘和网络仿真比较慢。事情变得更难了,因为virt-install 不允许您使用 --cdrom 两次。要一次挂载两个 iso 文件(以便可以安装 virtio 驱动程序),请使用 --disk 参数和 device=cdrom。还要确保使用 bus=ide 以便 Windows 在安装 virtio 驱动程序之前可以读取它。
可以在此处下载 virtio 驱动程序
virt-install \
--name Server2019 \
--description "Windows Server 2019 Template" \
--os-type=windows \
--memory 8192 \
--vcpus=4 \
--disk path=/var/lib/libvirt/images/windows2019.qcow2,bus=virtio,size=30 \
--disk /var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso,device=cdrom,bus=ide \
--disk /var/lib/libvirt/isos/virtio-win.iso,device=cdrom,bus=ide \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--network bridge=br0,model=virtio
- 通过 VNC 查看器安装操作系统时,不会显示任何驱动器。
- 单击“加载驱动程序”按钮,然后浏览到已安装的 virtio iso。
- 展开viostor文件夹并选择您的操作系统。单击amd64子目录。单击确定。
- RedHat VirtIO SCSI Controller 应该会出现,点击 Next
- 完成安装
安装完成后,服务器将关闭。
使用virsh edit删除磁盘编辑服务器:
virsh edit Server2019
选择您选择的编辑器(显然是 vim),然后移除引导cdrom盘。离开 virtio 一个,你仍然需要它。它看起来像这样:
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso'/>
<target dev='hda' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
使用virsh start以下方法重新打开它:
virsh start Server2019
修复其他驱动
现在已安装存储驱动程序,但网络驱动程序不存在。由于 VM 是通过 启动的--network bridge=br0,model=virtio,因此需要 VirtIO 驱动程序。不使用 virtio 网卡会导致一些非常糟糕的性能。
登录服务器并打开设备管理器。导航到“其他设备”。右键单击标记为网络驱动程序的问题并更新驱动程序。选择您的 virtio 磁盘并允许搜索子目录,它应该会找到驱动程序并为您安装。
对未识别的 PCI 设备执行相同操作,这将安装 VirtIO Baloon 驱动程序。
服务器现在可以使用了,或者可以制作成模板。如果您打算稍后将此服务器与 OpenStack 一起使用,请考虑从cloudbase-init安装 cloud -init。