如何运行全虚拟化客户(HVM)与Xen 3.2在Debian Lenny(x86_64)

如何运行完全虚拟客户端(HVM)与Xen 3.2 Debian Lenny(x86_64)

版本1.0
作者:Falko Timme

本指南介绍如何在Debian Lenny x86_64主机系统上使用Xen 3.2设置完全虚拟化的guest虚拟机(HVM)。 HVM代表H ardware虚拟机; 要设置这样的客人,您需要一个支持硬件虚拟化的CPU(Intel VT或AMD-V)。 硬件虚拟化允许您安装未修改的guest虚拟机系统(与需要修改guest虚拟机内核的半虚拟化相反); 这样,您不仅可以虚拟化OpenSource操作系统,如Linux和BSD,还可以像Windows这样的封闭源操作系统,您无法修改内核。

要了解有关不同虚拟化技术的更多信息,请查看此VMware白皮书: http : //www.vmware.com/files/pdf/VMware_paravirtualization.pdf

本文档不附带任何形式的保证! 我不会保证这将为您工作!

1初步说明

我假设您在Debian Lenny上使用Xen 3.2系统,根据本教程第2章设置: 使用Xen进行虚拟化Debian Lenny(AMD64)

请注意, 与半虚拟化相比完全虚拟化具有性能损失

我在本指南中使用磁盘映像来存储虚拟机。 我无法使HVM使用真正的分区或逻辑卷(LVM) - 客户端看不到硬盘驱动器。 我不知道是否可以使用具有HVM的物理设备,我在网络上找不到任何东西。 如果您知道如何以及如何完成,请给我一条线。 谢谢!

您需要一个支持硬件虚拟化的CPU来安装HVM guest虚拟机。 这是您如何查明CPU是否支持硬件虚拟化(安装Xen!之后):

xm dmesg | grep -i hvm

如果你得到一些东西,那么你很幸运 如果命令不打印,只返回到提示符,那么您的CPU不支持硬件虚拟化。

在AMD-V处理器上,输出如下:

server1:~# xm dmesg | grep -i hvm
(XEN) HVM: SVM enabled
server1:~#

安装Xen 之前,您可以了解您的CPU是否支持硬件虚拟化:

egrep '(vmx|svm)' --color=always /proc/cpuinfo

2安装第一个HVM访客

我现在要创建客户xen1.example.com 。 首先,我们需要为它创建一个硬盘驱动器映像,例如:

dd if=/dev/zero of=/home/xen1.example.com.img bs=1024k count=4000

(这样可以创建大小约为4GB的图像,如果想要更大的图像,只需增加计数开关。)

我们可以从插入CD驱动器的CD / DVD或从您下载的ISO映像安装客人。 您还可以从这样的CD / DVD创建ISO映像(在本示例中,我创建了Ubuntu 8.10 Server AMD64 CD的ISO映像):

dd if=/dev/cdrom of=/home/ubuntu8_10_server_amd64.iso

接下来,我们创建文件/etc/xen/xen1.example.com.cfg

vi /etc/xen/xen1.example.com.cfg
import os, re
arch = os.uname()[4]

kernel = "/usr/lib/xen-default/boot/hvmloader"

builder='hvm'

memory = 512
shadow_memory = 8
name = "xen1.example.com"
vif = [ 'type=ioemu, bridge=eth0' ]
disk = [ 'file:/home/xen1.example.com.img,xvda,w', 'file:/home/ubuntu8_10_server_amd64.iso,xvdc:cdrom,r' ]
#disk = [ 'file:/home/xen1.example.com.img,xvda,w', 'phy:/dev/cdrom,xvdc:cdrom,r' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"

sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncpasswd='youcl'
stdvga=0
serial='pty'
usbdevice='tablet'

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

(如果要从ISO映像安装,请使用第一个磁盘行,如果要从CD或DVD安装,请使用第一个磁盘行。)

boot =“dc”使得虚拟机将首先从CD / DVD或ISO映像引导,然后从硬盘启动,如果没有CD。 重要的是,首次启动虚拟机时,CD驱动器是第一个启动设备。

vnc = 1使我们能够使用VNC客户端连接到guest虚拟机。 vnclisten =“0.0.0.0”使主机在所有接口上监听VNC连接(默认情况下仅监听本地主机,这使得远程VNC连接不可能)。 在vncpasswd行中,您可以设置VNC连接的密码; 如果你不想要一个密码,只需使用vncpasswd =''

之后,我们可以为我们的客人服务:

xm create /etc/xen/xen1.example.com.cfg

如果你跑

netstat -tap

您会注意到主机正在监听端口5900 (VNC):

server1:/etc/xen# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:5900                  *:*                     LISTEN      24492/qemu-dm
tcp        0      0 *:42991                 *:*                     LISTEN      2293/rpc.statd
tcp        0      0 *:sunrpc                *:*                     LISTEN      2282/portmap
tcp        0      0 *:ssh                   *:*                     LISTEN      2987/sshd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      2803/exim4
tcp        0      0 server1.example.com:ssh 192.168.0.2:4399        ESTABLISHED 4134/2
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      2987/sshd
server1:/etc/xen#

我们现在可以使用VNC客户端连接到该端口的客户端。 在Windows上,您可以安装TightVNC ; 在Ubuntu上,已经有一个VNC客户端应用程序> Internet>远程桌面查看器

单击连接按钮,然后键入Xen主机的IP,然后键入端口号(例如192.168.0.100:5900 ):

如果您在guest虚拟机的配置文件中指定了VNC密码,则会提示您输入该密码:

之后,您应该看到要安装的操作系统的安装程序。 只要按照向导的方式,就像是一个物理系统一样:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏