工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表2010年12月的文章

使用OpenVZ构建Linux虚拟化解决方案

现在多数的主机虚拟系统是基于管理程序的(hypervisor-based),而基于容器的虚拟化(container-based)技术提供了另外一种虚拟化的途径。通过在一台物理机上创建并运行多个独立的容器,所有的容器都运行在预先安装的主操作系统之上,管理员可以在容器中创建虚拟机 (VM)。每个虚拟机的运行都是独立于其他容器中的虚拟机,通过这样的方式保障虚拟机的安全性。开源程序OpenVZ使用的就是这种虚拟机技术。下面我就来给大家讲一讲使用openvz构建linux虚拟化的解决方案。

 

OpenVZ实现虚拟化的方式完全不同于其他的开源虚拟化产品(如Xen和KVM)。跟其他虚拟化技术相比而言,OpenVZ有一点限制要求: 宿主机(host)和子系统(guest)都必须运行Linux,子系统可以支持不同版本的Linux。基于容器虚拟化技术的商业化产品 Parallels Virtuozzo Containers就是在OpenVZ的原理基础上实现的。

这种实现方式最大的优势就是它的性能。在OpenVZ中,所有通讯都是在Linux系统之间完成的,因此不需要复杂的翻译和转化过程。同时,它的安装方式也从根本上保证了高安全性,因为在不同的容器之间实现了完全的独立性。

 

安装

OpenVZ可以运行在Red Hat 和 Debian等主流Linux操作系统之上,目前还不支持Ubuntu。如下的安装过程是OpenVZ在Red Hat Linux系统下实现的。在64位操作系统中,安装过程支持通过Yum或RPM安装包的方式来完成。

1. 下载OpenVZ安装包:在开始安装前,下载库源文件(repository file),并把下载的文件放在”/etc/yum.repos.d”目录下。您可以使用如下的wget命令来下载库源文件。

wget http://download.openvz.org/openvz.repo

使用下面这条命令,您可以加载库源文件中的GPG key 校验码:

rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ

2. 安装OpenVZ内核。OpneVZ提供了不同的内核方式供选择,选择哪种内核取决于您的硬件条件及您将要创建的容器数量。首先是SMP内核,用于对称式 多处理器环境。支持高达到4GB的RAM及10到20个容器。第二种是”entnosplit” 内核,这种内核支持PAE (Physical Address Extension)技术,可以支持到高达64GB的RAM及10到30个容器。最后一种是Enterprise内核,这种方式同时支持SMP和PAE, 是多容器环境的最佳配置,最多可以同时运行20到30个容器。当在32位操作系统中安装OpenVZ时,选择合适内核形式对您而言是非常重要的。

如果您是在64位操作系统环境中安装,选择SMP内核就可以满足所有的需求。因为在64位的系统中不存在操作系统只能支持4GB缓存的限制(PAE技术本身就是为了解决缓存限制的问题)。如果您使用的64位操作系统,通过如下命令来安装内核:

yum install ovzkernel-smp

现在,OpenVZ内核已经安装并被自动加载到GRUB配置中。重启之后,OpenVZ内核会自动加载运行。

3. 在重启之前,您需要设置几个sysctl参数。请确保在列表1中设计涉及的所有参数设置都已经保存在”/etc/sysctl.conf”文件中

列表1 :. 在 /etc/sysctl.conf文件中需要设置的参数:

net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

4. 确保SELinux选项是关闭的。您可以通过在”/etc/sysconfig/selinux”文件中设置如下的值来关闭该选项:

SELINUX=disabled

5. 安装OpenVZ工具。用如下命令来实现:

yum install vzctl vzquota

6. 编辑”/etc/vz.conf”文件。如果您计划在虚拟机中使用的IP地址和宿主机的IP地址不在一个地址段中,就需要确保该文件包含如下参数:

NEIGHBOUR_DEVS=all

7. 重启系统,OpenVZ内核将激活。

openvz相关配置

缩主机与VPS的IP不同段时

#NEIGHBOUR_DEVS=detect
NEIGHBOUR_DEVS=all

Xen与OpenVZ技术性能测试及选购

下面的这篇翻译自hostingfu.com,Observer进行了翻译,本人进一步加了注释。

一、Openvz和Xen的技术规格分析

1.Xen与Openvz的区别

Xen和Openvz同样是虚拟化主机技术,区别在于Xen是半虚拟化技术,它并不是一个真正的虚拟机,而是相当于自己运行了一个内核的实例,可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。Openvz则是操作系统级别的虚拟化技术,是底层操作系统上的一层应用,这意味着易于理解和低权重开销,一般来说也意味着更优的性能。

这里有一个问题,可以看到实际上openvz因为免去了大量的公共开销,理论上来说性能会比xen更好。为什么大家都会认为openvz过分压榨性能呢?我认为是因为openvz配置起来比较灵活,给黑心 openvz服务商改低限制的机会。

比如mediatemple,号称512M内存的dv方案,kmemsize才12M,不了解的人看了512M觉得很哈皮啊,可是使用的时候一般这512M能分到你手里一半就不错了。此消彼长,所以才会有xen 能更好地利用机器性能的错觉。


2.Openvz的内核模型

首先当OpenVZ的主机说”256MB的保证”,它实际上意味着约232MB的”privvmpages”,14M的”kmemsize”和其他杂项资源。当应用程序调用 malloc()分配的内存将被添加到”privvmpages”。

当”privvmpages”超过限制,malloc()将失败并返回一个NULL。当主机服务器内存用光了,然后虚拟环境下的进程超过 “oomguarpages”的将被终止。

OpenVZ的内存管理方法既有问题也有优势。最大的问题之一是内存容量的应用程序使用的内存和应用程序实际上分配到的内存是不同的,不同的应用程序他们的差别可能会很大。以Java为例,它通常分配一大块的内存,但是,它可能只使用一小部分分配的内存。如果privvmpages受限,java会立即停止运行。调整参数可以解决一部分问题,但它处理得绝对没有Xen来得干净利落。事实上,几乎所有使用内存分配的应用程序都会受OpenVZ这个问题的影响。

/proc/meminfo 本身也有问题。虽然OpenVZ的已经为内存进行了虚拟,但是用”free”命令依然会返回主机的内存。这样就会使小内存的openvz的vps无法运行诸如java或者gcc编译这样的程序。

OpenVZ的内存模型的优点是, 它容易理解: 你几乎就只有privvmpages受限。与专用的服务器或Xen的服务器不一样的是,你的磁盘高速缓存和页面缓存并不计入您的总内存使用情况。因此,在一个没有过度销售的openvz主机上,由于拥有较大冗余的公共资源,它实际上可能会比同类规格的Xen的VPS表现更佳。

3.Xen的内存模型

Xen的系统模型更容易解释。256MB的Xen的VPS是就像一个256MB的专用服务器-该内存段是预留作VPS专用,没有其他VPS能够使用这部分内存,这就像一个真正的专用服务器。

此外,当内存不足时,VPS会使用Swap。一般每个VPS带有两倍大小的交换分区,当您的应用需要更多的内存,不常使用的页面从内存中被换出到交换分区,从而腾出使更多的房间。因此,256MB的Xen的VPS系统实际上共有768MB内存(256MB内存+ 512MB的交换空间),请相信我,交换空间是非常有用的,特别是处理突发的需求高峰时。

这么说来,Xen是永远远优于OpenVZ?不然,你的256MB的VPS理论可以使用高达768MB内存,而实际上内核,高速缓存,缓冲,他们都占用内存。这部分系统开销也是可观的。另外,Swap会严重降低性能。

4.稳定性和可预测性

当内存耗尽时,xen和openvz表现大相径庭。xen会把不常用的内存页面换入Swap,这将大大降低性能,当Swap也用尽,那么xen的系统会响应得越来越慢,就像一台真实的服务器一样。

而openvz一旦内存用尽,则会突然死亡:开不出新的程序,只能等待系统资源可用。更有甚者,本来运行的好好的程序也可能因为不断增长而超过限制,然后突然死亡。这就像开车开到70码,然后突然撞墙上了,一般会死得很惨。

毫无疑问这点上我倾向于xen技术,可预测,稳定。

5.结论

如果xen和openvz一样贵,我肯定选xen,因为可预测性,即使openvz打8折,我还是追求稳定。

上面的话总结一下,得出几个结论:

1、XEN比openvz主机对买家更有利,比如分配给你512M内存后,这一部分内存就从服务器上专门划给你了,别人将无法使用,而openvz则是共用内存,比如分配给你512M内存是指最大你能使用512M内存,比如你占用了200M内存,那么就只从物体内存中分配200M给你,所以卖家非常容易在服务器上面超卖!

2、openvz更高效,xen是硬件底层虚拟,更接近真实服务器,而openvz是操作系统虚拟,虚拟服务自身占用内存少,同样的程序执行效率更高!

3、如果购买openvz应看卖家是否会超卖,应选择良好声誉明确申明不会超卖的

4、如果购买xen主机,应同时关注swap大小

5、测试VPS主机性能使用Unixbench(很多人不知道),国外非常流行这个东西!

这是它的一些参数说明:

dhry2reg 内存的register性能
whetstone-double 双精度浮点性能
execl execl call性能
fstime 文件系统性能
fsbuffer 文件系统性能
fsdisk 文件系统性能
pipe 管道(pipe)的性能
context1 管道上下文切换的性能
spawn 创建进程的性能
shell shell并发性能
syscall 系统调用性能

6、VPS用途:服务器、软交换、代理和反向代理、离线BT下载等等

7、通常一般的使用条件下,两者性能应该相差不大。

同时VM类似openvz,共用内存,超卖的情况很是严重,在安全和性能的稳定方面要比xen的差一些,选购的时候这些一定要注意的,要相信在这个世界上,一分价钱一分货的道理在那都是通用的。

VPS推荐:

Openvz:

ramhost.us 介于牛A和牛C之间的一家VPS提供商,价格非常便宜,速度飞快,不过经常卖完了买不到,唯一一家在自家网站上提供服务器状态的厂家

Xen:

Hellohost 国内的一家,口碑不错,同时提供Openvz和Xen的VPS,512M 内存20G 硬盘1000G 月流量2 个 IP 地址OpenVZ 虚拟化只要49,虽然Xen主机只有一款512M 内存5000M 硬盘1000G 月流量1 个 IP 地址Xen主机也只要109,最重要的swap达到1G(你可以理解为有1.5G内存,尽管这么理解是不对的),Xen是不能超卖的,所以绝对的物美价廉!

英文原文:http://hostingfu.com/article/xen-or-openvz

HyperVM安装手记 OpenVZ篇

首先要说一说OpenVZ的安装
cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
yum install ovzkernel
即可完成安装。重启后,从http://download.lxlabs.com/?software=hypervm选择下载需要的安装脚本(master的地址为http://download.lxlabs.com/download/hypervm/production/hypervm-install-master.sh),在服务器上运行sh ./hypervm-install-master.sh –-virtualization-type=openvz
安装过程是会自动完成的,安装完HyperVM后init 6重启,然后通过浏览器访问http://<server address>:8888就能操作虚拟机了。

最后,推荐个关于OpenVZ安装的页面http://linux.chinaunix.net/docs/2006-11-13/3187.shtml

OpenVZ安装

OpenVZ 是唯一可用于unibilling生产用的服务器虚拟技术。目前全球有多套unibilling运行于OpenVZ container。经过3年多的VOIP连续运营生产,证实绝对可靠稳定。

在新的服务器上用如下步骤安装openVZ:

导入 OpenVZ yum源

cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm –import  http://download.openvz.org/RPM-GPG-Key-OpenVZ

下载openVZ内核及头文件安装包

mkdir -p /usr/src/files

cd /usr/src/files

wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab068.3/ovzkernel-2.6.18-164.11.1.el5.028stab068.3.i686.rpm

wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab068.3/ovzkernel-devel-2.6.18-164.11.1.el5.028stab068.3.i686.rpm

安装openVZ内核及头文件

rpm -ihv ovzkernel*.rpm

配置boot loader确保使用openVZ的内核启动

vi /etc/grub.conf

配置 sysctl

确保 /etc/sysctl.conf 文件中包含如下信息:

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

编辑完毕保存,运行如下命令使之生效:

sysctl -p

禁用 SELinux

修改 /etc/sysconfig/selinux 文件,使其包含信息:
SELINUX=disabled

重新启动linux

shutdown -r now

机器重新启动后,运行 uname -r检查是否已经是openVZ的内核

安装openvz工具集

yum install vzquota
yum install vzctl-lib
yum install vzctl
yum install vzyum
yum install vzpkg
yum install vzrpm43-python
yum install vzrpm44-python

启动OpenVZ服务

/sbin/service vz start

安装操作系统模板文件

查找系统中可用的操作系统模板
yum search vztmpl
[root@tpd620 /]# yum search vztmpl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror.ii.uib.no
* base: mirror.ii.uib.no
* extras: mirror.ii.uib.no
* openvz-kernel-rhel5: openvz.proserve.nl
* openvz-utils: openvz.proserve.nl
* updates: mirror.ii.uib.no
====================== Matched: vztmpl =======================
vztmpl-centos-4.i386 : OpenVZ template metadata for centos-4 i386.
vztmpl-fedora-7.i386 : OpenVZ template metadata for fedora-7 i386.
vztmpl-fedora-core-3.i386 : OpenVZ template metadata for fedora-core-3 i386.
vztmpl-fedora-core-4.i386 : OpenVZ template metadata for fedora-core-4 i386.
vztmpl-fedora-core-5.i386 : OpenVZ template metadata for fedora-core-5 i386.
vztmpl-fedora-core-6.i386 : OpenVZ template metadata for fedora-core-6 i386.
[root@tpd620 /]#

安装centos linux操作系统模板
yum install vztmpl-centos-4
为操作系统模板建立缓存
vzpkgcache

该命令将建立 centos-4-i386-minimal.tar.gz 和 centos-4-i386-default.tar.gz
vzpkgcache centos-4-i386-minimal 将只建立 centos-4-i386-minimal.tar.gz
vzpkgcache centos-4-i386-default 将只建立 centos-4-i386-default.tar.gz

查看系统中存在的操作系统缓存:
[root@c8 ~]# vzpkgls
centos-4-i386-default
centos-4-i386-minimal
建立OpenVZ节点container

准备配置文件
为方便起见,平分Host机器的内存和CPU
cd /etc/sysconfig/vz-scripts/
vzsplit -n 3 -f vps.mytest

上述命令将均分系统资源为3等份,产生一个例子配置文件
验证该文件的有效性:vzcfgvalidate ve-vps.mytest.conf-sample
创建节点VPS
vzctl create 112 --ostemplate centos-4-i386-minimal --config vps.mytest
配置该VPS
vzctl set 112 --hostname unibillingsrv1 --save
vzctl set 112 --ipadd 207.182.xxx.xxx --save
vzctl set 112 --userpasswd root:xxxxxxxxx
vzctl set 112 --nameserver 209.190.xxx.xxx --save
vzctl set 112 --onboot yes --save
vzctl start 112
vzctl exec 112 service sshd start
vzctl enter 112
vzctl stop 112
配置VPS硬盘容量等参数
grep DISK_QUOTA /etc/sysconfig/vz
df /vz
vi /etc/sysconfig/vz-scripts/112.conf

在该文件中添加 DISK_QUOTA=no
grep DISK_QUOTA /etc/sysconfig/vz-scripts/112.conf
vzctl stop 112

vzctl start 112
vzctl exec 112 df

vzctl set 112 --diskinodes 75000000:79000000 --save

vzctl set 112 --quotatime 600 --save

vzctl exec 112 df

vzctl exec 112 stat -f /

vzctl set 112 --quotaugidlimit 100 --save
vzctl stop 112
vzctl start 112

vzctl exec 112 rpm -q quota

vzyum 112 install quota

vzquota stat 112 -t
向新建的vps中安装yum等工具
vzyum 112 install yum

vzyum 112 install diffutils
错误处理
若vzctl enter进入节点时出现错误,或ssh无法进入节点,需要运行如下命令:
vzctl exec 112 "cd /dev; /sbin/MAKEDEV pty; /sbin/MAKEDEV tty; /sbin/MAKEDEV generic"

ntfsprogs

hyperVM安装

wget http://download.lxlabs.com/download/hypervm/production/hypervm-install-master.sh

sh hypervm-install-master.sh --install-type=slave --virtualization-type=xen --skip-ostemplate=true

可选

--virtualization-type=xen/openvz/NONE

--install-type=master/slave

 

不下载模板

--skip-ostemplate=true

 -------------

cd /usr/local/lxlabs/kloxo/httpdocs
#lphp.exe ../bin/common/resetpassword.php master new_password

 

XEN虚拟机在CentOS5下的安装和配置

XEN虚拟机在CentOS5下的安装和配置,本文默认使用root用户权限执行安装和配置有关命令参数的含义请使用—help的方式查看,对应参数请修改至合适自己的,主要是名字、网络和文件等参数。
一、安装xen
# yum –y install xen*
安装XEN需要的服务
# yum -y install kernel-xen*
安装XEN的相关内核
二、检查启动选项是否使用xen内核启动
1、检查xen内核文件
安装是否正常:文件位于/boot
# ls –lh /boot
total 9.5M
-rw-r–r– 1 root root 61K Mar 16 08:19 config-2.6.18-8.el5
-rw-r–r– 1 root root 60K Mar 16 09:27 config-2.6.18-8.el5xen
drwxr-xr-x 2 root root 1.0K Aug 15 14:47 grub
-rw——- 1 root root 1.5M Aug 13 17:18 initrd-2.6.18-8.el5.img
-rw——- 1 root root 1.5M Aug 15 14:47 initrd-2.6.18-8.el5xen.img
drwx—— 2 root root 12K Aug 13 17:15 lost+found
-rw-r–r– 1 root root 79K Apr 1 22:49 message
-rw-r–r– 1 root root 82K Mar 16 08:20 symvers-2.6.18-8.el5.gz
-rw-r–r– 1 root root 83K Mar 16 09:28 symvers-2.6.18-8.el5xen.gz
-rw-r–r– 1 root root 865K Mar 16 08:19 System.map-2.6.18-8.el5
-rw-r–r– 1 root root 848K Mar 16 09:27 System.map-2.6.18-8.el5xen
-rw-r–r– 1 root root 1.7M Mar 16 08:19 vmlinuz-2.6.18-8.el5
-rw-r–r– 1 root root 2.0M Mar 16 09:27 vmlinuz-2.6.18-8.el5xen
-rw-r–r– 1 root root 269K Mar 16 07:51 xen.gz-2.6.18-8.el5
-rwxr-xr-x 1 root root 595K Mar 16 09:43 xen-syms-2.6.18-8.el5
2、检查grub配置
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-8.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-8.el5
module /vmlinuz-2.6.18-8.el5xen ro root=LABEL=/
module /initrd-2.6.18-8.el5xen.img
title CentOS (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/
initrd /initrd-2.6.18-8.el5.img
修改其中的default=1为default=0,启用xen内核

3、重新启动计算机

4、重启后登录系统,检查XEN是否正常
4.1 执行# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 3919 4 r—– 16.9
出现上述结果表示xen启动正常
4.2 检查log:
#ls -lh /var/log/xen
total 8.0K
-rwxr-xr-x 1 root root 36 Aug 15 15:43 xend-debug.log
-rw-r–r– 1 root root 1.8K Aug 15 15:43 xend.log
# cat /var/log/xen/xend-debug.log
Nothing to flush.
Nothing to flush.
表示一切正常,我们的CentOS5中的XEN服务已经成功启动。至此,我们的CentOS5的宿主机已经安装就绪。
三、安装XEN的Linux客户机系统—CentOS 5.x

1、制作镜像文件
1.1 使用dd创建
#dd if=/dev/zero of=centos5.img bs=2k seek=4096k count=1
制作客户机主要磁盘
# dd if=/dev/zero of=swap.img bs=2k seek=512k count=1
制作客户机交换磁盘

2、创建配置文件

2.1 安装必须的工具
由于以前的安装是基于最小化安装,此时需要增加一个用于安装客户机系统的软件virt-manager,现在安装:
#yum –y install virt-manager
请注意由于此软件包为gnome下的图形管理程序,所以需要安装大量依赖包
此处流泪若干……忘记了这个包的名字,耽误时间2个小时……

2.2 开始安装客户机
# virt-install -n centos5 -r 512 –vcpus=2 –file=centos5.img –file=swap.img –nographics -l http://192.168.0.11/yum/ba
此时如果机器CPU支持VT技术会询问是否需要开启VT支持,一般选择no,如果支持的话选择yes,此时会要求输入光驱或光盘之类。
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no
Starting install…

2.3 启动客户机的安装程序
安装由于为远程的,文本方式,部分ssh客户端下可能会有一些乱,请尝试,此部分和一般网络安装操作系统无异,在此不再详细描述。
建议分区是swap用于交换分区,主分区一个boot一个根分区

2.4 补充说明安装源的制作(最简单的方法)
在一台安装了CentOS5的服务器上开启httpd服务,把CentOS5的DVD整盘复制到/var/www/html/yum/base下即可

2.5 配置文件
安装客户机完毕后会在/etc/xen下产生一个centos5的文件就是配置文件
参考配置文件centos5:
name = “centos5″
memory = “768″
disk = [ 'tap:aio:/opt/xen/centos5/centos5.img,xvda,w', 'tap:aio:/opt/xen/centos5/swap.img,xvdb,w', ]
vif = [ 'bridge=xenbr0', ]
bootloader=”/usr/bin/pygrub”
vcpus=2
on_reboot = ‘restart’
on_crash = ‘restart’

四、安装XEN的Windows客户机
前提:宿主计算机的CPU支持intel的VT或者AMD的amd-v,并且在BIOS中开启了对应的选项。

1、检查是否支持VT:
#xm info |grep xen_cap
xen_caps : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
# xm dmesg |grep -i vmxon
(XEN) VMXON is done
(XEN) VMXON is done
如果出现上述字段则计算机支持VT,否则很有可能是不支持或者BIOS禁用了。
也可以通过 xm dmesg或者cpuinfo等等方式查询,这里就不详细描述了。

2、为实现图形化远程安装开启vnc
#yum –y install vnc*
#vi /etc/xen/xend-config.sxp
编辑下列内容(请根据自己情况修改):
(vnc-listen ’192.168.0.xxx’)
(vncpasswd ‘password’)
此处的修改也可以在对应客户端的文件中修改,参后文。

3、重启计算机
其实应该不需要重启计算机,只需要重启xend的服务即可,但是很难重启服务成功,所以干脆重启:)

4、安装windows
安装前述步骤准备好磁盘镜像文件,传输win的iso文件后执行
#virt-install -n mini -r 768 –vcpus=2 –file=mini.img –vnc -v -c /opt/yum/pwinxp.iso
应该出现以下提示:
Starting install…
Unable to connect to graphical console; DISPLAY is not set. Please connect to localhost:5900
Domain installation still in progress. You can reconnect to the console to complete the installation process.
!!请注意此种方式比较适合宿主机开启xwin图形系统并且在宿主机上操作。

4.1 检查vnc的监听
# netstat -anp |grep 5900
tcp 0 0 192.168.0.xxx:5900 0.0.0.0:* LISTEN 2748/qemu-dm
出现上述结果表明vnc已经开启(此时远程宿主机不需要开启xwin)。
此处监听端口可能有所改变,默认为590X。

4.2 使用vnc客户端连接
建议使用realvnc客户端连接!ultravnc在连接后会出现刷屏的情况,几乎无法操作。密码为在第二步设置的密码或者在配置文件中设置的密码。

4.3安装windows
安装过程中如果停止在如下画面或者不断重启:
画面主要停止在starting windows…的蓝色界面上
此种问题一般是由于ACPI的问题,请在引导光盘启动后提示按F2或者F6的时候按下F7,禁用ACPI,或者使用以下配置文件mini.hvm直接强制 关闭:
import os, re
arch = os.uname()[4]
if re.search(’64′, arch):
arch_libdir = ‘lib64′
else:
arch_libdir = ‘lib’
kernel = “/usr/lib/xen/boot/hvmloader”
name = “mini”
builder = “hvm”
memory = “768″
shadow_memory = 8
disk = [ 'file:/opt/xen/mini/mini.img,hda,w', 'file:/opt/yum/pwinxp.iso,hdc:cdrom,r', ]
vif = [ 'type=ioemu,bridge=xenbr0', ]
device_model = “/usr/lib/xen/bin/qemu-dm”
kernel = “/usr/lib/xen/boot/hvmloader”
vnc=1
vnclisten=”192.168.0.xxx”
vncdisplay=1
vncpasswd=’password’
vncunused=1
apic=0
acpi=0
pae=1
boot=”dc”
vcpus=2
serial = “pty” # enable serial console
on_reboot = ‘restart’
on_crash = ‘restart’
请注意cdrom我们没有使用单独的
cdrom=”/opt/yum/en2003entsp2.iso”来配置,使用此会出现以下错误:
错误为cdrom启动错误,错误代码0002
快速启动vnc客户端查看启动信息(修改配置文件),请注意在第一次修改配置文件后安装会重启,请在重启前修正启动顺序为
boot=”c”
此时进入正常安装模式。以后可以去掉disk里面的cdrom选项或者修改,也可以添加删除磁盘信息。

5、其它说明
此种情况也可以用于安装linux类带xwin的系统;开启vnc仅仅是安装需求,一般情况下建议关闭!
Windows安装完毕后在客户机中安装远程控制软件如vnc或者radmin之类后关闭配置文件中的vnc选项,确保宿主机的安全。

Records:65123456789