如何在Ubuntu 14.04 LTS无终端(显示器键鼠)服务器上安装KVM
基于内核的虚拟机(KVM)是Linux内核的虚拟化模块,可将其转变为虚拟机监控程序。
如何安装KVM,将来宾操作系统设置为非图形Ubuntu Linux 14.04 LTS服务器的后端虚拟化技术?
您可以使用KVM使用虚拟机来运行多个操作系统,例如Windows,* BSD,Linux发行版。
每个虚拟机都有其专用磁盘,图形卡,网卡等。
什么是hypervisor?
KVM是创建和运行虚拟机的管理程序(hypervisor)。
运行管理程序的服务器称为主机。
每个虚拟机都称为来宾计算机。
使用KVM,您可以运行多种操作系统,例如CentOS,OpenBSD,FreeBSD,未修改的MS-Windows。
在Ubuntu Linux 14.04 LTS上安装KVM的步骤
- 主机服务器位于远程数据中心,它是无终端(显示器键鼠)服务器。
- 本教程中的所有命令都在基于ssh的会话中执行。
- 您需要一个vnc客户端来安装客户机操作系统。
- 在本教程中,您将学习如何在Ubuntu上安装KVM软件以及如何使用KVM设置您的第一个来宾VM。
找出服务器是否能够运行硬件加速的KVM虚拟机
您需要使用" kvm-ok"命令来确定服务器是否可以托管硬件加速的KVM虚拟机。
首先使用以下apt-get命令安装cpu-checker软件包:
$ sudo apt-get install cpu-checker
接下来,运行以下命令:
$ sudo kvm-ok
输出示例:
INFO: /dev/kvm exists KVM acceleration can be used
在Ubuntu Linux上安装kvm
执行以下apt-get命令以安装kvm和相关软件:
$ sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils
默认配置位置
- 默认目录:
/var/lib/libvirt /
- 用于安装的ISO镜像:
/var/lib/libvirt/boot /
- VM安装目录:
/var/lib/libvirt/images /
- LVM/LXC/qemu的Libvirt配置目录:
/etc/libvirt /
有关VM的默认联网的更多信息
默认网络称为默认网络。
要列出网络,请执行:
$ sudo virsh net-list
输出示例:
Name State Autostart Persistent --------------------------------------------------------- default active yes yes
有关网络信息,请执行:
$ sudo virsh net-info default
输出示例:
Name: default UUID: 1c0abaa3-8d17-45b5-85e9-c0d48cec94f9 Active: yes Persistent: yes Autostart: yes Bridge: virbr0
要以XML格式转储网络信息,请执行:
$ sudo virsh net-dumpxml default
输出示例:
<network connections='1'> <name>default</name> <uuid>1c0abaa3-8d17-45b5-85e9-c0d48cec94f9</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network>
创建一个CentOS Linux VM
首先,获取CentOS Linux 7.x DVD ISO文件:
$ cd /var/lib/libvirt/boot/ $ sudo wget http://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso $ ls
输出示例:
CentOS-7-x86_64-Minimal-1511.iso install58.iso
要供应新的虚拟机,请使用virt-install命令。
在此示例中,我创建一个具有1GB RAM,1个CPU内核和20GB磁盘空间的CentOS 7.x VM,执行:
$ sudo virt-install \ --virt-type=kvm \ --name centos7 \ --ram 1024 \ --vcpus=1 \ --os-variant=rhel7 \ --hvm \ --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1511.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/centos7.img,size=20,bus=virtio
输出示例:
Starting install... Allocating 'centos7.img' | 20 GB 00:00 Creating domain... | 0 B 00:00 WARNING Unable to connect to graphical console: virt-viewer not installed. Please install the 'virt-viewer' package. Domain installation still in progress. You can reconnect to the console to complete the installation process.
virt安装选项
--virt-type = kvm
:使用kvm作为管理程序来安装CentOS7 guest虚拟机。--name centos7
:新的访客虚拟机实例的名称。--ram 1024
:分配给来宾实例的内存(以兆字节为单位)。--vcpus = 1
:为访客配置的虚拟cpus数。--os-variant = rhel7
:针对特定的操作系统变型优化来宾配置。使用virt-install --os-variant list
查看完整的操作系统列表。--hvm
:请求使用完全虚拟化。--cdrom =/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1511.iso
:文件或设备用作完全虚拟化来宾的虚拟CD-ROM设备。它可以是ISO镜像或CDROM设备的路径。--network network = default,model = virtio
:将客户连接到主机网络。在此示例中,使用称为virtio的nic模型连接到名为default的主机中的虚拟网络。--graphics vnc
:在客户机中设置虚拟控制台,并将其导出为主机中的VNC服务器。这对于我们的无终端(显示器键鼠)服务器很有用。--disk path =/var/lib/libvirt/images/centos7.img,size = 20,bus = virtio
:指定用作来宾存储的媒体。 /var/lib/libvirt/images/centos7.img存储介质的路径,如果创建新的存储并将磁盘总线类型设置为virtio,则要使用的大小(20 GB)。
有关VNC和无终端(显示器键鼠)服务器的说明
这是无终端(显示器键鼠)服务器,即没有本地接口或GUI的服务器。
没有监视器或外围设备,例如键盘和鼠标连接到此服务器。
要继续安装,您需要从自己的笔记本电脑或台式机上使用vnc客户端。
要查找有关vnc服务器端口的信息,请执行:
$ sudo virsh dumpxml centos7 | grep vnc
输出示例:
<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
请记下端口值(即5901)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
访问来宾域VNC控制台
输入以下SSH端口转发命令:
$ ssh [email protected] -L 5901:127.0.0.1:5901
其中:
- ssh [email protected]在server1.theitroad.local主机上建立到远程KVM主机的SSH会话。
-L
开始本地端口转发。5901:127.0.0.1:5901
设置隧道,即通过Internet传递流量以访问远程服务器127.0.0.1和端口5901。
一旦建立了ssh隧道,就可以将VNC客户端指向自己的127.0.0.1(localhost)地址和端口5901,如下所示:
通过SSH访问KVM guest虚拟机的VNC控制台
您应该看到CentOS Linux 7 guest虚拟机安装屏幕,如下所示:
CentOS 7 guest虚拟机安装
只需按照屏幕上的说明安装CentOS7。
一段时间后,CentOS 7已成功安装在我的服务器上并可以使用。
继续并单击重新启动按钮。
远程服务器关闭了与我们的VNC客户端的连接。
执行以下命令来首次启动VM:
$ sudo virsh start centos7
输出示例:
Domain centos7 started
验证一下:
$ sudo virsh list
输出示例:
Id Name State --------------------------------------------------- 3 puffy running 5 centos7 running
再次使用SSH客户端设置隧道,并使用VNC客户端通过vnc服务器访问CentOS 7虚拟机。
并且,在Ubuntu Linux 14.04 LTS服务器之上,您拥有一个运行KVM的CentOS 7虚拟机。
在默认配置中,CentOS 7来宾操作系统将有权访问网络服务,但对网络上的其他计算机或Internet而言是不可见的。