在Linux专用服务器上安装虚拟机

2020年12月31日19:37:25 发表评论 52 次浏览

请注意

此页面上的文本已由翻译软件翻译。我们的编辑人员的修订版本即将推出。

对于Ubuntu Server 14.04.x LTS

我们向你展示了如何在服务器客户机系统上安装Ubuntu和KVM, 以及如何通过(独立的)公共IP访问它们。

使用基于内核的虚拟机(KVM)是有意义的, 因为自Ubuntu 8.04以来, KVM一直是Ubuntu官方支持的虚拟化解决方案(在服务器领域是首选)。自2.6.20起, KVM内核模块也已成为Linux内核的正式组成部分。

步骤1检查先决条件

在开始安装之前, 请确保你的服务器满足使用KVM的技术要求:KVM需要支持在硬件级别进行虚拟化的服务器硬件。使用以下命令确定服务器上是否属于这种情况:

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

如果你在此处获得的值大于或等于1作为返回值, 则一切正常。如果不是这种情况, 请切换到其他软件-例如

虚拟盒子

.

如果要设置具有2 GB以上RAM的客户机系统, 则需要具有64位内核的主机系统。检查如下:

egrep -c ' lm ' /proc/cpuinfo

" 1"(或更高)表示你具有64位系统。在其他情况下, 则需要使用64位映像进行新安装。

步骤2安装KVM

安装所需的软件包:

apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

然后, 必须将用户添加到组kvm和libvirtd中:

adduser `id -un` kvm
adduser `id -un` libvirtd

由于该更改直到下一次登录后才会生效, 因此你现在必须短暂注销然后再次登录。

步骤3安装和配置来宾系统

完成KVM的安装后, 你可以设置(第一个)来宾(以相同方式创建其他人)。

步骤3.1提供存储空间

当前所有服务器映像均配备了逻辑卷管理器(LVM)。这样就可以创建可动态更改的分区(逻辑卷)。为了为你提供最大的灵活性, 交付时, 并非服务器的所有容量都已预先分区。例如, / var的初始大小仅为4GB。

例如, 以下命令将/ var增加20GB(如果你使用的服务器不带SSD选项, 请将" ssd"替换为" vg00"):

lvextend -L +20G /dev/ssd/var

之后, 必须将文件系统调整为新的大小:

resize2fs /dev/ssd/var
步骤3.2安装VM和OS

有许多工具可以简化虚拟机的设置。本指南使用virtinst软件包中包含的virt-inst工具:

apt-get install virtinst

重要的是(请参阅本手册开头的注意事项), 使用网络设置NAT创建VM, 但是该设置应与默认设置相对应。检查如下:

virsh net-dumpxml default
<network connections='3'>
<name>default</name>
<uuid>9eedf2c5-9ce2-43ea-9eaa-4a4e57902653</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>

以下命令创建一个VM, 并通过串行控制台将其连接到该VM。在那里, 你可以执行从分配的映像开始的来宾系统(此处为Ubuntu 14.04)的安装。

virt-install --name vm1 --ram 2048 --disk path=/var/lib/libvirt/images
/vm1.img, size=8 --vcpus 2 --os-type linux --os-variant ubuntutrusty --network
network=default --graphics none --console pty, target_type=serial --location /var/lib/libvirt
/boot/ubuntu-14.04-server-i386.iso --extra-args 'console=ttyS0, 115200n8 serial'
参数 含义
名称 虚拟机名称
2048 MB主内存  
磁碟 8 GB总磁盘空间(img)
vcpus 2个虚拟机虚拟核心
OS 操作系统类型(Linux, ubuntutrusty)
- 网络 在这种情况下, 默认情况下哪个网络属性"默认"代表NAT(绝对必要!)。
-图形 可能的图形设置
安装从串行控制台运行  
- 位置 ISO映像的路径

在更改来宾系统之前, 请确保将来会自动启动VM。通过按(Ctrl)+(+)退出虚拟控制台, 然后在主机上输入以下命令:

virsh -c qemu://system autostart vm1

然后使用以下命令切换回来宾系统:

virsh console vm1
步骤3.3配置网络(IPv4)

为了使来宾系统可以通过公共IP地址访问, 需要在来宾和主机系统上进行一些其他更改。

步骤3.3.1访客设置

注意:请按照以下步骤用你的地址替换示例IP 217.160.167.xxx(你可以在爱奥诺斯下服务器>IP地址)。

创建具有公共IPv4地址的以太网别名(例如eth0:0):

sudo vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
#----------------------------------------
auto eth0:0
iface eth0:0 inet static
address 217.160.167.xxx
broadcast 217.160.167.xxx
netmask 255.255.255.255
#---------------------------------------
步骤3.3.2主机上的设置

首先在内核中激活IP转发:

sudo sh -c "echo 1 /proc/sys/net/ipv4/ip forward"

现在需要到虚拟网络的路由:

route add -host 217.160.167.xxx dev virbr0

最后, 添加必要的防火墙规则:

iptables -I FORWARD 1 -t filter -d 217.160.167.xxx/32 -o virbr0 -j ACCEPT
iptables -I FORWARD 1 -t filter -s 217.160.167.xxx/32 -i virbr0 -j ACCEPT

为了使这些设置在下次重新启动后也处于活动状态, 请按如下所示将它们写入rc.local:

vi /etc/rc.local
#---------------------------------------------
while [ `ps -e | grep -c libvirtd` -lt 1 ]; do
sleep 1
done
sleep 10
# set up custom iptables rules.
iptables -I FORWARD 1 -t filter -d 217.160.167.xxx/32 -o virbr0 -j ACCEPT
iptables -I FORWARD 1 -t filter -s 217.160.167.xxx/32 -i virbr0 -j ACCEPT

# add static routes to the ip routing table

route add -host 217.160.167.xxx dev virbr0


) &amp;
#----------------------------------------------------------------------
exit 0
步骤3.4配置网络(IPv6)

你也可以使访客系统可用和/或通过IPv6。分配给你的IPv6子网位于爱奥诺斯在服务器> IP地址下。

以下步骤使用子网2001:8d8:91d:bd00 :: // 56的示例显示设置。

步骤3.4.1主机上的设置

通过注释掉/etc/sysctl.conf中的net.ipv6.conf.all.forwarding = 1行来启用IPv6转发:

vi /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
net.ipv6.conf.all.forwarding=1

然后, 必须重新配置接口eth0和virbr0。然后, 这些地址随后会自动分配给客户系统。

为简单起见, eth0获取IPv6子网允许的最小地址。在此示例中, 2001:08D8:091D:BD00:0000:0000:0000:0000:0000:0001:

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
address 2001:08D8:091D:BD00:0000:0000:0000:0001
netmask 64
post-up ip -6 route add fe80::1 dev eth0
post-up ip -6 route add default via fe80::1 dev eth0
post-down ip -6 route del default via fe80::1 dev eth0
post-down ip -6 route del fe80::1 dev eth0

在编辑virbr0之前, 请关闭虚拟网络:

virsh net-destroy default

现在, 输入Virbr0作为新子网的最小可能地址。在以下示例中, 这是2001:08D8:091D:BD01:0000:0000:0000:0000:0000:0001:

virsh net-edit default
<network>
<name>default</name>
<uuid>9eedf2c5-9ce2-43ea-9eaa-4a4e57902653</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:80:c9:68'/>
<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>
<ip family='ipv6' address='2001:08D8:091D:BD01:0000:0000:0000:00001' prefix='64'>
</ip>
</network>

为了使访客从该子网接收IPv6地址, 必须重新启动它:

virsh -c qemu://system reboot <name>

注意, 来宾系统现在有两个IPv6地址!现在, 配置如下所示:

ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:9a:17:3e
inet addr:192.168.122.159 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: 2001:8d8:91d:bd01:8982:6203:5146:27e9/64 Scope:Global
inet6 addr: 2001:8d8:91d:bd01:5054:ff:fe9a:173e/64 Scope:Global
inet6 addr: fe80::5054:ff:fe9a:173e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18 errors:0 dropped:3 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1811 (1.8 KB) TX bytes:2500 (2.5 KB)

在此示例中, 较低的地址(第4行)是固定IP地址。它由子网[2001:8d8:91d:bd01]和第二部分组成, 第二部分是从硬件地址派生的。较高的IPv6地址是部分随机生成的。访客系统现在可以在两个IP地址下唯一标识和访问。对于例如的可访问性Web服务器, 应使用较低/固定的IP。


内容

  • 步骤1检查先决条件
  • 步骤2安装KVM
  • 步骤3安装和配置来宾系统
  • 到达顶点
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: