CentOS 6 上的 Xen 4虚拟化之Windows XP Guests的安装

知识点:
虚拟化的分类
安装Xen虚拟机的硬件要求
安装命令virt-install
安装全虚拟化Windows XP实例

虚拟化的分类
Xen虚拟化分为半虚拟化Para-Virtualization(又叫超虚拟化)和全虚拟化Full-Virtualization,主要按照Guest的硬件仿真程度来区分。半虚拟化使用了一个hypervisor 来实现对底层硬件的共享访问,将与虚拟化有关的代码集成到了操作系统本身中,不再需要重新编译或捕获特权指令,操作系统本身在虚拟化进程中会相互紧密协作。半虚拟化需要修改Guest的操作系统,但是却与不经过虚拟化的操作系统性能是最接近的。全虚拟化也称为原始虚拟化,即将所有硬件都虚拟化,使用hypervisor直接与裸设备进行和操作系统交互,一些特定的指令必须在hypervisor中进行处理,需要hypervisor捕获特权指令;全虚拟化不需要更改操作系统,但是操作系统需要支持底层硬件。

所以在安装Xen虚拟机时,我们需要确认虚拟机的类型。如果要安装Win服务器,则服务器必须是全虚拟化,如果是Liunx,则半虚拟化更好。

Xen虚拟机的硬件要求
Xen的半虚拟化硬件要求为:
64位CPU支持 32位CPU必须支持PAE

Xen的全虚拟化硬件要求为:
AMD CPU支持AMD-V(svm)和Intel CPU支持Intel VT (vmx)

Intel VT(vmx)和AMD’s AMD-V(svm)这些信息,可以使用cat /proc/cpuinfo查看(linxu内核>=2.6.16)。

安装命令virt-install
安装XEN实例所需的几个包:
[root@host ~]# yum -y install virt-manager virt-viewer libvirt tigervnc-server
– 介绍几个包
virt-manager — 虚拟管理工具,是RedHat共享的一个开源虚拟化管理软件,它是用Python编写的GUI程序,底层使用了Libvirt对各类Hypervisor进行管理。
virt-viewer — 图形终端
tigervnc-server(CentOS6)/vnc-server(CentOS5) — vnc服务端
libvirt 这个是管理xen的api,在redhat6系统中,官方的这个包已经不支持xen,并且是0.9版的需要更高版本的iptables支持,所以libvirt需要编译安装。如果直接使用默认的会出现问题。

我们需要使用图形化,所以需要配置vnc服务,上面已经安装好tigervnc-server

此外服务端还需要安装一个窗口管理程序来取得一个功能齐全的图像式桌面。举个例说,你可以用 yum groupinstall "GNOME Desktop Environment" 这个指令来安装 Gnome 桌面及所需的组件。其它受欢迎的桌面环境包括 KDE 及 XFCE-4.4。XFCE 比 Gnome 及 KDE 更为轻量,而且已收录在 extras 软件库内。

不过,如果你一切从简,又或者只在测试,你只须令命 yum 安装一个简单的 XTERM 客户端:
# yum install xterm

注意,我们只是安装图形相关的程序包,并不是让系统启动于图形模式。

在虚拟化中,把运行运行虚拟机服务器称为host,把虚拟机称为guest。安装guest系统默认使用virt-install工具创建磁盘为raw格式,利用virt-install工具来安装.无GUI使用virt-install安装guest,有图形界面用virt-manager工具当你的CentOS没有桌面环境时,可以使用virt-install命令安装

virt-install是一个使用“libvirt” hypervisor 管理库构建新虚拟机的命令行工具,此工具使用串行控制台,SDL(Simple DirectMedia Layer)图形或者VNC客户端/服务器,支持基于命令行和图形安装。

[root@Xen ~]# virt-install –help
usage: virt-install --name NAME --ram RAM STORAGE INSTALL [options]
普通选项:
-n 指定guest名称
-r 指定guest的内存
--vcpus 指定guest的虚拟cpu的个数
--os-type= 指定guest的操作系统类型 'windows' 'linux' 'unix'
--host-device= 指定附加的物理机硬件
全虚拟化的特殊选项:
--sound 指定sound仿真
--noapic 指定为全虚拟化guest显示APIC
--noacpi 指定为全虚拟化guest显示ACPI
虚拟化类型选项:
-v --hvm 指定guest为完全虚拟化guest
-p --paravirt 指定guest为半虚拟化guest
--accelerate 指定使用内核加速功能
安装方法选项:
-c CDROM ,--cdrom=CDROM 使用CD-ROM安装媒介
-l LOCATION, --location=LOCATION 指定安装的源
eg:nfs:host:/path,http://host/path, ftp://host/path
--pxe 指定通过网卡启动,使用PXE协议安装
-import 在已存在的磁盘介质上构建guest
-x EXTRA, --extra-args=EXTRA 通过--location传递给内核启动时的附加参数
存储配置选项:
--disk= 指定存储做为磁盘(磁盘/分区)
-f FILE_PATH, --file=FILE_PATH 指定使用文件做为磁盘介质
-s DISKSIZE, --file-size=DISKSIZE 指定做为磁盘介质文件大小(如果还没有创建,单位:Gbytes)
--nodisks 不为guest设定任何磁盘
网络配置选项:
-b BRIDGE, --bridge=BRIDGE 指定桥接,默认桥接
-w NETWORK, --network=NETWORK 指定NAT转发到物理网络
-m MAC, --mac=MAC 指定MAC地址,默认随机
--nonetworks 不创建网络连接
图形化配置选项:
--vnc 使用VNC做为图像支持
--vncport=VNCPORT 指定VNC端口

安装时,半虚拟化和全虚拟化的最大区别是:半虚拟化时需要进行网络安装,即必须通过NFS、HTTP、FTP安装,全虚拟化可以直接上传iso到Xen服务器,-c指定iso存放的路径来安装。

安装命令为:

1.
virt-install -p –n vm01 –r 1024 –f /appsdata/vms/vm01.img –s 40 –l nfs:10.247.0.220:/mnt –m AA:BB:CC:DD:EE:FF –-vnc

安装半虚拟化名称为vm01的Guest,内存为1024M,磁盘40G存放为/appsdata/vms/vm01.img,用NFS导出安装文件,指定网卡MAC为AA:BB:CC:DD:EE:FF ,使用vnc

2.
virt-install -v -n vm2003 -f /appsdata/vms/vm2003.img -r 386 -s 5 -c /appsdata/iso/en_win_srv_2003.iso -w –vnc

安装全虚拟化名称为vm2003的Guest,内存为386M,磁盘为5G存放为/appsdata/vms/vm2003.img,指定ISO位置为/appsdata/iso/en_win_srv_2003.iso,网络为NAT方式,使用vnc

3.安装全虚拟化Windows XP实例
接下来,我就来安装一个全虚拟化的WindowsXP。
Windows内核无法定制,不支持xen的半虚拟化,因此,必须得到CPU和主板的硬件虚拟化支持,如果所用平台不支持硬件虚拟化,那么安装将失败。
只有在全虚拟化下才能安装Windows,这就需要有硬件支持,并在BIOS中开启Virtualization Technology的选项。
在安装Xen之前,可以用以下命令检查CPU是否支持全虚拟化:
Intel CPU:
grep vmx /proc/cpuinfo --color=always

AMD CPU:
grep svm /proc/cpuinfo --color=always

若有输出,说明支持全虚拟化。
在安装了Xen之后,以上命令不起作用,因为已经Xen屏蔽了。需要用以下命令:
grep hvm /sys/hypervisor/properties/capabilities --color=always

若有输出,则说明支持全虚拟化,可以安装Windows,以下是我电脑的输出:
xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p

4.使用virt-install安装
交互式安装

virt-install --prompt

命令安装
[root@Xen ~]# virt-install -n XP_71 -r 768 --vcpus=2 --file=/home/xen/XP_71.img --vnc -v -c /home/WINXPSP3_CN_266_0106.iso --network=bridge:br0 -s 10

输完命令后的几种情况:

提示错误,需要virt-viewer用来显示,但是安装进程已经运行,稍后可以执行virt-viewer查看(检查virt-viewer是否安装)
远程安装时,卡到Escape character is ^]位置不动,没法显示
Creating storage file… | 5.0 GB 00:00
Creating domain… | 0 B 00:00
Connected to domain c
Escape character is ^]

远程执行virt-viewer,不能显示
(virt-viewer:10164): Gtk-WARNING **: cannot open display:
Thu, 17 Nov 2011 18:19:53 DEBUG Domain state after install: 1
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

后面的错误指示virt-viewer 不能通过 5911连接vnc,这与vnc的设置有关,但是这不影响虚拟机继续安装操作系统和运行,通过这个错误可以看到virt-install在生产虚拟机的最后调用virt-viewer打开虚拟机图形界面,进行操作系统的安装,可以通过vnc或者virt-manager打开虚拟机图形界面,继续完成guest操作系统的安装即可,vnc可以安装realVNC。
通过vnc客户端或者virt-manager连接到新建立的虚拟机,继续进行虚拟机内操作系统的安装,安装过程与在物理机上安装相同,不再赘述。安装完操作系统后,就像拥有了另一台机器一样,通过VNC远程连接(如果装的是Windows操作系统,也可以使用RDP进行连接,就windows那个远程桌面连接)可以进行相关操作了。

– 注意,我们这里都采用命令方式,当然创建磁盘等一系列文件之后安装OS我们还是到图形界面交互方式进行。
– 这里交互安装OS,更确切地说字符安装OS忽略。
– 另外,第一次安装完点restart虚拟机并不会自动重启,我们需要手动去执行。
– 我们在主机器上最好做好基本的操作,比如disable selinux、disable iptables等。

5.通过图形界面安装
为实现图形化远程安装开启vnc
建议远程安装时,在服务器安装vnc-server,连接到服务器进行操作

[root@Xen ~]# yum install vnc-server –y #CentOS 5上的安装
[root@Xen ~]# yum install tigervnc-server –y #CentOS 6上的安装
[root@Xen ~]# service vncserver start #启动
[root@Xen ~]# chkconfig vncserver on
[root@Xen ~]# vncserver #授权,第一次执行时,要求输入root(可以为其他用户,默认执行此命令的用户)用来VNC的密码
New 'Xen:3 (root)' desktop is Xen:3 #此处为第3个VNC窗口
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/Xen:3.log

编辑 /etc/sysconfig/vncservers,并在文件底部加入以下内容。
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 640x480"

关闭防火墙
# /sbin/service iptables stop

然后使用VNC客户端连接。
下载VNC客户端:http://www.tightvnc.com/download.html#stable

登录到终端,使用virt-vewer继续安装:
[root@Xen ~]# virt-viewer vm2003
然后继续安装,安装过程和普通的安装一样,VNC下的F8需要键入Shift+F8.

系统安装中需要重启,但是只会关机,无法自己启动,此时需要手动启动Guest,并使用virt-viewer继续安装。

--说明:术语“domain”指虚拟机

输入此命令后,将进入安装界面,安装过程中会提示插入安装光盘,此时需要虚拟光驱的支持:
virt-manager
输入此命令后,会弹出virt-manager工具的GUI,选择Hardware标签,硬件类型为IDE CDROW,配置虚拟光驱路径为/home/WinXP-ISO/WinXP.iso即可;

此后的步骤就和正常安装过程一样了。

重启后可能会报错,是因为ISO文件加载错误,此时需要更改配置文件(xen4.2系统的配置文件不知道在哪个位置,目前按网上说的在目录/etc/xen/都找不到),将ISO文件正确加载。

6、使用virt-manager图形管理界面安装
可以通过在终端中输入virt-manager启动图形管理界面

7、控制 DomU 虚拟机器
通过 libvirt,你可利用图像化应用程序(virt-manager)或文字应用程序(virsh)来控制 DomU 虚拟机器。
这些应用程序可以位于 DomU 虚拟机器所身处的 Dom0 上(本地控制),它们也可以位于不同的机器上并连接到 DomU(远程控制)。
不论是通过远程或本地连接,两种工具的实际操作都是相同。
有关远程 virt-manager 或远程 virsh 的连接,你必须设置 libvirt 才能用这两个工具来进行远程访问

8、克隆出两台guest os:

# virt-clone -o template -n vm01 -f /data/xen/vm01.img
# virt-clone -o template -n vm02 -f /data/xen/vm02.img
– 克隆虚拟机之后需要做
必须做:
修改HOSTNAME
修改IP
修改/etc/hosts
修改root密码
可选择性做:
service sendmail stop
chkconfig sendmail off
按需添加网卡
按需添加磁盘
等等

好了,此处的Guest安装就说到这里。

安装过程中遇到的问题及解决方法

virt-manager界面出现"口口"乱码
解决方法:
#yum install dejavu-lgc-sans-fonts

参考资料:
1、XEN虚拟化之Guests的安装:http://asearcher.info/index.php/xen%E8%99%9A%E6%8B%9F%E5%8C%96%E4%B9%8Bguests%E7%9A%84%E5%AE%89%E8%A3%85/
2、virt-install 使用说明:http://blog.csdn.net/starshine/article/details/6998189
3、VNC-Server:http://wiki.centos.org/zh/HowTos/VNC-Server
4、How to install VNC server on CentOS 6:http://rbgeek.wordpress.com/2012/06/26/how-to-install-vnc-server-on-centos-6/
5、如何配置TightVNC进行远程访问:http://qsfwy.iteye.com/blog/243486
6、CentOS 6 的 Xen4 Libvirt:http://wiki.centos.org/zh/HowTos/Xen/Xen4QuickStart/Xen4Libvirt

发表评论?

0 条评论。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据