如何运行完全虚拟客户端(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密码,则会提示您输入该密码:
之后,您应该看到要安装的操作系统的安装程序。 只要按照向导的方式,就像是一个物理系统一样: