如何在Ubuntu 16.04 LTS无终端(显示器键鼠)服务器上安装KVM
基于内核的虚拟机(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