使用kvm在Ubuntu 18.04 LTS中设置无键鼠显示器虚拟化服务器
我们已经覆盖了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