创建新虚拟机

现在我们可以使用“virt-install”命令来设置虚拟机。

程序的语法如下:

# virt-install --name=onitroad-vm \
--vcpus=1 \
--memory=1024 \
--cdrom=/tmp/debian-9.0.0-amd64-netinst.iso \
--disk size=5 \
--os-variant=debian8

首先,我们使用了--name选项:这是强制性的,它用于为新虚拟机分配一个名称。

下一个选项是--vcpus。 我们使用它来指定为客户提供的“虚拟CPU”的数量。

--memory选项用于指定内存大小

--cdrom让我们指定的路径,文件或者设备被用作虚拟CD-ROM :它可以是ISO图像,CDROM设备或者从中访问引导ISO镜像的URL。

--disk标志用于为客户配置媒体存储。
可以指定各种逗号分隔的选项,例如:size,用于指定GB和“路径”中的虚拟磁盘的大小,用于指定用于为磁盘用于用于磁盘的路径(如果)尚未存在)。
如果指定了此选项,则必须确保可访问目标路径并具有正确的SELinux上下文。

如果未指定“路径”选项,则如果以普通用户(kvm组成员)身份执行命令,则将在“$HOME/.local/share/libvirt/images”中创建磁盘;如果以root用户身份运行,则在/var/libvirt/images中创建磁盘。

接下来我们传递了--os variant选项。虽然这不是强制性的,但强烈建议使用它,因为它可以提高虚拟机的性能。该选项将尝试将来宾系统微调到特定的操作系统版本。如果未通过该选项,程序将尝试自动检测安装介质中的正确值。要获取可运行的所有受支持系统的列表,请执行以下操作:

$osinfo-query os

如果一切顺利,将会安装virt-viewer。 将出现一个窗口,显示客户操作系统安装程序。

系统引导时自动启动虚拟机

设置虚拟机在宿主机开机时自启动:

# virsh autostart onitroad-vm

要禁用此选项,我们运行:

# virsh autostart --disable onitroad-vm
如何创建和管理KVM虚拟机

克隆来宾系统

另一个实用程序,virt-clone可用于通过克隆现有虚拟机来创建新的虚拟机。

首先确保被克隆的来宾系统已关机, 然后再运行:

virt-clone \
--oroirnal=onitroad-vm \
--name=onitroad-vm-clone \
--file=/var/lib/libvirt/images/onitroad-vm.qcow2

这里的内容很容易理解:我们使用“--oroirnal”选项指定要克隆的客户机,并使用“--name”指定新客户机的名称。

查看克隆后的虚拟机:

# virsh list --all
 Id    Name                           State
---------------------------------------------------
 -     onitroad-vm                 shut off
 -     onitroad-vm-clone           shut off

virsh工具

virsh实用程序可用于与虚拟机交互。
例如,假设您想列出所有配置的来宾系统,使用virsh您只需运行:

# virsh list --all

无论它们是否正在运行,输出都将显示所有已配置的来宾系统的ID,名称和状态。

但如果你想改变一些访客机器参数怎么办?
我们可以使用virsh完成操作:

# virsh edit onitroad-vm

正如我们所看到的,输出是XML表示的虚拟机属性(在Virsh中叫做域) ,

例如,我们要修改vcpu的数量:

<vcpu placement='static'>1</vcpu>

新增一颗CPU

<vcpu placement='static'>2</vcpu>

修改后,重启虚拟机:

# virsh reboot onitroad-vm

现在如果我们在来宾系统中执行 lscpu命令,将可以看到增加的CPU数量。

初步设置

检查CPU是否支持虚拟化:

$cat /proc/cpuinfo

如果我们使用AMD处理器,看到“SVM”表示支持虚拟化
如果CPU是英特尔,则需要看到“VMX”。

确保所需的内核模块已加载:

# lsmod | grep kvm
kvm_intel             200704  0
kvm                   598016  1 kvm_intel
irqbypass              16384  1 kvm

可以看到除了“kVM模块”之外,也已经加载了“KVM_INTEL”。

如果模块未自动加载,则可以尝试使用modprobe命令手动加载它们:

# modprobe kvm_intel

最后,我们必须启动“LibVirtd”守护程序:

# systemctl enable --now libvirtd
日期:2020-07-07 20:56:14 来源:oir作者:oir