如何在Ubuntu 16.04 LTS无终端(显示器键鼠)服务器上安装KVM

时间:2020-01-09 10:41:03  来源:igfitidea点击:

基于内核的虚拟机(KVM)是Linux内核的虚拟化模块,可将其转变为虚拟机监控程序。
如何使用桥接网络安装KVM,将来宾操作系统设置为非图形Ubuntu Linux 16.04 LTS服务器的后端虚拟化技术?
您可以使用KVM使用虚拟机来运行多个操作系统,例如Windows,\ * BSD,Linux发行版。
每个虚拟机都有其专用磁盘,图形卡,网卡等。

在Ubuntu Linux 16.04 LTS无终端(显示器键鼠)服务器上安装KVM的步骤

步骤1:安装kvm

执行以下apt-get命令/apt命令:

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

步骤2:验证KVM安装

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

步骤3:配置桥接网络

$ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2015
$ sudo vi /etc/network/interfaces

编辑/追加如下:

auto br0
iface br0 inet static
         address 10.18.44.26
         netmask 255.255.255.192
         broadcast 10.18.44.63
         dns-nameservers 10.0.80.11 10.0.80.12
         # set static route for LAN
	 post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1
	 post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1
         bridge_ports eth0
         bridge_stp off
         bridge_fd 0
         bridge_maxwait 0
 
# br1 setup with static wan IPv4 with ISP router as a default gateway
auto br1
iface br1 inet static
         address 208.43.222.51
         netmask 255.255.255.248
         broadcast 208.43.222.55
         gateway 208.43.222.49
         bridge_ports eth1
         bridge_stp off
         bridge_fd 0
         bridge_maxwait 0

保存并关闭文件。
重新启动网络服务,执行:

$ sudo systemctl restart networking

验证一下:

$ sudo brctl show

步骤4:创建您的第一个虚拟机

我将创建一个CentOS 7.x VM。
首先,获取CentOS 7.x最新的ISO镜像:

$ cd /var/lib/libvirt/boot/
$ sudo wget https://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso

创建CentOS 7 VM

在此示例中,我用2GB RAM,2个CPU内核,2个nic(1个用于lan,1个用于wan)和40GB磁盘空间创建CentOS 7.x VM,执行:

$ sudo virt-install \
--virt-type=kvm \
--name centos7 \
--ram 2048 \
--vcpus=2 \
--os-variant=centos7.0 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1708.iso \
--network=bridge=br0,model=virtio \
--network=bridge=br1,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

要通过ssh从另一个终端配置vnc登录并执行:

$ sudo virsh dumpxml centos7 | grep vnc
<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>

您还可以使用以下命令:

$ sudo virsh vncdisplay centos7

请记下端口值(即5901)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
从客户端/桌面执行以下SSH端口转发命令:

$ ssh [email protected] -L 5901:127.0.0.1:5901

一旦建立了ssh隧道,就可以将VNC客户端指向自己的127.0.0.1(localhost)地址和端口5901,如下所示:
VNC客户端完成CentOS 7.x安装

您应该看到CentOS Linux 7来宾安装屏幕,如下所示:

在基于KVM的VM上安装CentOS 7.x

现在,只需按照屏幕上的说明进行操作,然后安装CentOS 7 VM。
安装完成后,继续并单击重新启动按钮。
远程服务器关闭了与我们的VNC客户端的连接。
您可以通过KVM客户端重新连接以配置服务器的其余部分,包括基于SSH的会话或防火墙。

创建FreeBSD 10.x或11.x VM

在此示例中,我创建具有2GB RAM,2个CPU内核,2个nic(1个用于lan和1个用于wan)和40GB磁盘空间的FreeBSD 10 VM,执行:

$ cd /var/lib/libvirt/boot/
$ sudo wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-disc1.iso
$ sudo virt-install \
--virt-type=kvm \
--name freebsd \
--ram 2048 \
--vcpus=2 \
--os-variant=freebsd11.1 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/FreeBSD-11.1-RELEASE-amd64-disc1.iso \
--network=bridge=br0,model=virtio \
--network=bridge=br1,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/freebsd10.qcow2,size=40,bus=virtio,format=qcow2

在此示例中,我用1GB RAM(可扩展至2GB),1个vCPU核心(可扩展至2vCPU),1 nic和40GB磁盘空间创建FreeBSD 11 VM,执行:

$ sudo virt-install \
--virt-type=kvm \
--name freebsd \
--memory=1024,maxmemory=2048 \
--vcpus=1,maxvcpus=2 \
--os-variant=freebsd10.0 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/FreeBSD-11.0-RELEASE-amd64-disc1.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/freebsd11.qcow2,size=40,bus=virtio,format=qcow2

要通过ssh从另一个终端配置vnc登录并执行:

$ sudo virsh dumpxml freebsd | grep vnc
<graphics type='vnc' port='5902' autoport='yes' listen='127.0.0.1'>

请记下端口值(即5902)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
从客户端/桌面执行以下SSH端口转发命令:

$ ssh [email protected] -L 5902:127.0.0.1:5902

一旦建立了ssh隧道,就可以将VNC客户端指向自己的127.0.0.1(localhost)地址和端口5902,以继续进行FreeBSD 10.3的安装。

创建OpenBSD 5.9 VM

在此示例中,Im创建具有2GB RAM,2个CPU内核,2个nic(1个用于lan,1个用于wan)和40GB磁盘空间的OpenBSD 5.9 VM,执行:

$ cd /var/lib/libvirt/boot/
$ sudo wget https://mirror.esc7.net/pub/OpenBSD/6.2/amd64/install62.iso
$ sudo virt-install \
--virt-type=kvm \
--name openbsd \
--ram 2048 \
--vcpus=2 \
--os-variant=openbsd5.8 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/install62.iso \
--network=bridge=br0,model=virtio \
--network=bridge=br1,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/openbsd59.qcow2,size=40,bus=virtio,format=qcow2

要通过ssh从另一个终端配置vnc登录并执行:

$ sudo virsh dumpxml openbsd | grep vnc
<graphics type='vnc' port='5903' autoport='yes' listen='127.0.0.1'>

请记下端口值(即5903)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
从客户端/桌面执行以下SSH端口转发命令:

$ ssh [email protected] -L 5903:127.0.0.1:5903

一旦建立了ssh隧道,就可以将VNC客户端指向自己的127.0.0.1(localhost)地址和端口5903,以继续进行OpenBSD 5.9安装。

创建Debian 9.x VM

在此示例中,我用2GB RAM,2个CPU内核,2个nic(1个用于lan,1个用于wan)和40GB磁盘空间创建Debian 8.5 VM,执行:

$ cd /var/lib/libvirt/boot/
$ sudo wget http://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-9.3.0-amd64-DVD-1.iso
$ sudo virt-install \
--virt-type=kvm \
--name=debina9 \
--ram=2048 \
--vcpus=2 \
--os-variant=debian8 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/debian-9.3.0-amd64-DVD-1.iso \
--network=bridge=br0,model=virtio \
--network=bridge=br1,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

要通过ssh从另一个终端配置vnc登录并执行:

$ sudo virsh dumpxml debian8 | grep vnc
<graphics type='vnc' port='5904' autoport='yes' listen='127.0.0.1'>

请记下端口值(即5904)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
从客户端/桌面执行以下SSH端口转发命令:

$ ssh [email protected] -L 5904:127.0.0.1:5904

建立ssh隧道后,可以将VNC客户端指向自己的127.0.0.1(localhost)地址和端口5904,以继续进行Debian Linux 8.5安装。

有用的命令

让我们看一些有用的命令。

查找可接受的操作系统变体列表

$ osinfo-query os | less
$ osinfo-query os | grep debian
$ osinfo-query os | grep freebsd

列出正在运行的虚拟机/域

$ sudo virsh list

Shutodwn一个名为openbsd的虚拟机/域

$ sudo virsh shutdown openbsd

启动一个名为openbsd的虚拟机/域

$ sudo virsh start openbsd

挂起一个名为openbsd的虚拟机/域

$ sudo virsh suspend openbsd

重新启动(软安全重启)一个名为openbsd的虚拟机/域

$ sudo virsh reboot openbsd

重置(硬重置/不安全)名为openbsd的虚拟机/域

$ sudo virsh reset openbsd

删除/删除一个名为openbsd的虚拟机/域

$ sudo virsh undefine openbsd
$ sudo virsh destroy openbsd

查看virsh命令类型的完整列表

$ virsh help | less
$ virsh help | grep reboot