使用kvm在Ubuntu 18.04 LTS中设置无键鼠显示器虚拟化服务器

时间:2020-03-21 11:47:05  来源:igfitidea点击:

我们已经覆盖了Ubuntu 18.04无键鼠显示器服务器上的Oracle VirtualBox。

在本教程中,我们将讨论如何使用KVM和如何从远程客户端管理访客计算机的无头虚拟化服务器。
正如我们所知道的那样,KVM(基于内核的虚拟机)是一个开源,为Linux完全虚拟化。
使用KVM,可以轻松将任何Linux服务器转换为完整的虚拟化环境,以分钟为单位,并部署不同类型的VM,如GNU/Linux,* BSD,Windows等。

下载 - 免费电子书:"ubuntu比windows更好的6件事"

使用kvm在Ubuntu中设置无头虚拟化服务器

我在Ubuntu 18.04 LTS服务器上测试了本教程,但本教程将适用于其他Linux发行版,例如Debian,CentOS,Rhel和Scientific Linux。
此方法对于那些想要在没有任何图形环境的Linux服务器中设置简单虚拟化环境的方法将是完美的。

出于本教程的目的,我将使用两个系统。

KVM Virtualization Server:

  • 主机OS - Ubuntu 18.04 LTS最少服务器(无GUI)
  • 主机OS的IP地址:192.168.225.22/24
  • 客户操作系统(我们将在Ubuntu 18.04上托管):Ubuntu 16.04 LTS服务器

远程桌面客户端:

  • OS - Arch Linux

安装KVM.

首先,让我们检查我们的系统是否支持硬件虚拟化。
为此,请从终端运行以下命令:

$egrep -c '(vmx|svm)' /proc/cpuinfo

如果结果为零(0),则系统不支持硬件虚拟化,或者在BIOS中禁用虚拟化。
转到BIOS并检查虚拟化选项并启用它。

如果结果为1或者更多,系统将支持硬件虚拟化。
但是,在运行上述命令之前,我们仍然需要在BIOS中启用虚拟化选项。

或者,我们可以使用以下命令验证。
我们需要首先安装KVM,如下所述,以便使用此命令。

$kvm-ok

示例输出:

INFO: /dev/kvm exists
KVM acceleration can be used

如果我们获得以下错误,则仍然可以在KVM中运行访客计算机,但性能将非常差。

INFO: Your CPU does not support KVM extensions
INFO: For more detailed results, you should run this as root
HINT: sudo /usr/sbin/kvm-ok

此外,还有其他方法可以了解CPU是否支持虚拟化。
有关更多详细信息,请参阅以下教程。

  • 如何找到CPU是否支持虚拟化技术(VT)

接下来,安装KVM和其他必需的软件包以在Linux中设置虚拟化环境。

在Ubuntu和其他基于DEB的系统上,运行:

$sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker

一旦kvm安装,启动libvertd服务(如果尚未启动):

$sudo systemctl enable libvirtd
$sudo systemctl start libvirtd

创建虚拟机

所有虚拟机文件和其他相关文件都将存储在/var/lib/libvirt /下面。
ISO镜像的默认路径为/var/lib/libvirt/boot /。

首先,让我们看看是否有任何虚拟机。
要查看可用虚拟机列表,请运行:

$sudo virsh list --all

示例输出:

Id Name State
---------------------------------------------------

如上所述,现在没有可用的虚拟机。

现在,让我们包括一个。

例如,让我们创建Ubuntu 16.04虚拟机,具有512 MB 内存,1个CPU核心,8 GB HDD。

$sudo virt-install --name Ubuntu-16.04 --ram=512 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-16.04-vm1,size=8 --cdrom /var/lib/libvirt/boot/ubuntu-16.04-server-amd64.iso --graphics vnc

请确保在路径/var/lib/libvirt/boot /或者我们在上面命令中给出的任何其他路径中有Ubuntu 16.04 ISO镜像。

示例输出:

WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1
Starting install...
Creating domain... | 0 B 00:00:01 
Domain installation still in progress. Waiting for installation to complete.
Domain has shutdown. Continuing.
Domain creation completed.
Restarting guest.

让我们分解上面的命令,看看每个选项是否是多少。

  • --name:此选项定义虚拟名称的名称。在我们的情况下,VM的名称是Ubuntu-16.04.
  • --ram = 512:将512MB 内存分配给VM。
  • --vcpus = 1:表示VM中的CPU核心数。
  • --CPU主机:通过将Host的CPU的配置公开给Guest虚拟机来优化VM的CPU属性。
  • --hvm:请求完整的硬件虚拟化。
  • --disk路径:保存VM的HDD的位置和它的大小。在我们的示例中,我已经分配了8GB的HDD大小。
  • --CDROM:安装程序ISO图像的位置。请注意,我们必须在此位置具有实际的ISO镜像。
    • 图形VNC:允许VNC从远程客户端访问VM。

使用VNC客户端访问虚拟机

现在,转到远程桌面系统。
SSH到Ubuntu Server(虚拟化服务器),如下所示。

$ssh Hyman@theitroad

其中SK是我的Ubuntu Server的用户名,192.168.225.22是其IP地址。

运行以下命令以找出VNC端口号。
我们需要它可以从远程系统访问VM。

$sudo virsh dumpxml Ubuntu-16.04 | grep vnc

示例输出:

<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>

注意端口号5900.安装任何VNC客户端应用程序。
对于本教程,我将使用Tigervnc。
Tigervnc可在Arch Linux默认存储库中使用。
要在基于ARCH的系统上安装它,请运行:

$sudo pacman -S tigervnc

从具有VNC客户端应用程序的远程客户端系统键入以下SSH端口转发命令。

$ssh Hyman@theitroad -L 5900:127.0.0.1:5900

同样,192.168.225.22是我的Ubuntu Server(虚拟化服务器)IP地址。

然后,从Arch Linux(客户)打开VNC客户端。

键入localhost:5900在VNC服务器字段中,然后单击"连接"按钮。

然后开始将Ubuntu VM安装为我们在物理系统中的方式。

同样,我们可以根据服务器硬件规格设置多种虚拟机。

或者,我们可以使用Vior-Viewer Utility才能在访客计算机中安装操作系统。
VIST-VIEWER在最具Linux发行版的默认存储库中提供。
安装Viewer后,请运行以下命令以建立对VM的VNC访问权限。

$sudo virt-viewer --connect=qemu+ssh://192.168.225.22/system --name Ubuntu-16.04

管理虚拟机

使用Virsh Management用户界面管理从命令行管理VM非常有趣和有趣。
命令很容易记住。
让我们看到一些例子。

要查看正在运行的VM列表,请运行:

$sudo virsh list

或者,

$sudo virsh list --all

示例输出:

Id Name State
---------------------------------------------------
 2 Ubuntu-16.04 running

要启动VM,请运行:

$sudo virsh start Ubuntu-16.04

或者,我们可以使用VM ID启动它。

如上所述,Ubuntu 16.04虚拟机的ID为2.所以,为了启动它,只需指定它的ID就像下面。

$sudo virsh start 2

要重新启动VM,请运行:

$sudo virsh reboot Ubuntu-16.04

示例输出:

Domain Ubuntu-16.04 is being rebooted

暂停运行VM,运行:

$sudo virsh suspend Ubuntu-16.04

示例输出:

Domain Ubuntu-16.04 suspended

要恢复暂停的VM,请运行:

$sudo virsh resume Ubuntu-16.04

示例输出:

Domain Ubuntu-16.04 resumed

要关闭VM,请运行:

$sudo virsh shutdown Ubuntu-16.04

示例输出:

Domain Ubuntu-16.04 is being shutdown

要完全删除VM,请运行:

$sudo virsh undefine Ubuntu-16.04
$sudo virsh destroy Ubuntu-16.04

示例输出:

Domain Ubuntu-16.04 destroyed

有关更多选项,我建议我们查看man 页面。

$man virsh