热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Xen虚拟机的安装方法

虚拟化技术是云计算实现弹性计算的核心技术。在构建云计算平台中,虚拟机的安装是基

     虚拟化技术是云计算实现弹性计算的核心技术。在构建云计算平台中,虚拟机的安装是基础。常用的虚拟机工具很多,如VMware、XEN、KVM、Virtual PC等,这些工具使得用户可以在单台物理PC上(称为宿主机)虚拟出多个虚拟机VM(Virtual machine),由于在每个VM上可以安装与宿主机不同的操作系统。因而可以实现在一台物理PC上模拟出多台安装有不同操作系统的“PC”。在云计算中,用户可以向云平台申请租用虚拟机,虚拟机的配置,如CPU的核数、主频,内存,存储容量等可以根据需要自己设定,并可动态修改。现有虚拟机工具多支持这些功能,然而很多工具如VMware、XEN-Server等提供的免费测试工具多只提供GUI接口,用户只能通过图形界面实现虚拟机的创建和配置,无法实现动态的配置,以至于构建的云平台退化为不具有弹性的“虚拟机平台”。

     Xen 是由剑桥大学开发的一款开放源代码虚拟机工具软件,支持虚拟机的各种配置和动态创建,最重要的是提供了丰富的用户管理接口。

     下面为安装过程。

1.1 Linux system:

Fedora 12 x86_64

测试PC:HP4321S联想笔记本电脑

SELinux is disabled. Please refer here for detail: Disabled SELinux on Fedora.

Disable SELINUX using your favorite editor to open the SELINUX configuration file. For example:

$:su      切换到root用户

vi /etc/selinux/config

Edit the configuration file so that SELINUX has the value of "disabled". It should look like the following:

SELINUX=disabled

ext3 is recommended for the file system of disk partition for /boot.

Update the system:

# yum update

The Xen and libvirt packages in Fedora should not be installed to avoid conflict.

# yum erase xen* libvirt
【版本
title Fedora (2.6.32.26-175.fc12.x86_64) 经过update后的版本
title Fedora (2.6.31.5-127.fc12.x86_64)   安装光盘版本
重启系统,从title Fedora (2.6.32.26-175.fc12.x86_64)登录,然后继续下面的任务】
1.2 Build and install Xen hypervisor and tools 1.2.1 Download Xen3.4.3 $ wget http://bits.xensource.com/oss-xen/release/3.4.3/xen-3.4.3.tar.gz
$ tar xf xen-3.4.3.tar.gz
1.2.2 Build Xen and tools

You may need to install packages depended by this. You can try this for solving the dependencies:

# yum install make gcc -y;
yum groupinstall "Development Libraries" -y;
yum groupinstall "Development Tools" -y;
yum install transfig texi2html
dev86 glibc-devel
e2fsprogs-devel gitk mkinitrd
iasl xz-devel bzip2-devel
pciutils-libs pciutils-devel
SDL-devel libX11-devel gtk2-devel
bridge-utils PyXML qemu-common
qemu-img mercurial -y

The we can make Xen and Xen tools: (xen-3.4.3目录下)

$ make xen
$ make tools
1.2.3 Install Xen and tools (xen-3.4.3目录下)
$ make install-xen
$ make install-tools
1.3 Build and install xenified Linux kernel 1.3.1 Download Linux kernel2.6.32.13
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.13.tar.bz2
$ tar xf linux-2.6.32.13.tar.bz2
1.3.2 Download2.6.32Xen patches v2
$ wget http://gentoo-xen-kernel.googlecode.com/files/xen-patches-2.6.32-2.tar.bz2
$ mkdir xen-patches-2.6.32-2
$ tar xf xen-patches-2.6.32-2.tar.bz2 -C xen-patches-2.6.32-2
1.3.3 Apply Xen patches

Apply all the patches downloaded above following the patch number.

You may need to install patch if it isn’t installed:

# yum install patch

This patch.sh script can be used (we assume the patch and the kernel are in the same directory):

patch.sh:

#!/bin/bash
for P in `ls ../xen-patches-2.6.32-2/6*.patch1 | sort`
do
    patch -p1 -s -i $P
    if [ $? = 0 ]; then
        echo $P applied
    else
        echo "Error processing "$P
        exit 1
    fi
done

Put this script into Linux source directory(linux-2.6.32.13目录下) and execute:

$ sh ./patch.sh

The structure of these directories are as follows:

▲注:结构如上图。按照patch脚本,Linux-2.6.32.13 和xen=patches-2.6.32-2放在同一个目录。

1.3.4 Configure Xenified Linux kernel

A working configuration file that I used can be downloaded directly from here:

config-for-xenified-linux-2.6.32.13    

Just download this file, put it into the kernel source code file directory(linux-2.6.32.13目录下) and rename it to .config.

Other than use my configuration file, you can also configure it by yourself by using “make menuconfig”.

Make sure you build the kernel with these components enabled:

Processor type and features  --->
 [*] Symmetric multi-processing support
 [*] Support sparse irq numbering
 [*] Enable Xen compatible kernel
Device Drivers  --->
 XEN  --->
 [*] Privileged Guest (domain 0)
 <*> Backend driver support (NEW)
 <*>   Block-device backend driver (NEW)
 <*>   Block-device tap backend driver (NEW)
 < >   Block-device tap backend driver 2 (NEW)
 <*>   Network-device backend driver (NEW)
 (8)     Maximum simultaneous transmit requests (as a power of 2) (NEW)
 [ ]     Pipelined transmitter (DANGEROUS) (NEW)
 < >     Network-device loopback driver (NEW)
 < >   PCI-device backend driver (NEW)
 < >   TPM-device backend driver (NEW)
    SCSI backend driver (NEW)
    USB backend driver (NEW)
  Block-device frontend driver
  Network-device frontend driver
    Network-device frontend driver acceleration for Solarflare NICs (NEW)
  SCSI frontend driver (NEW)
  USB frontend driver (NEW)
 [*]   Taking the HCD statistics (for debug) (NEW)
 [ ]   HCD suspend/resume support (DO NOT USE) (NEW)
 <*> User-space granted page access driver (NEW)
 <*> Framebuffer-device frontend driver (NEW)
 <*>   Keyboard-device frontend driver (NEW)
 [*] Disable serial port drivers (NEW)
 <*> Export Xen attributes in sysfs (NEW)
 (256) Number of guest devices (NEW)
 Xen version compatibility (no compatibility code)  --->
 [*] Place shared vCPU info in per-CPU storage (NEW)
1.3.5 Build kernel (linux-2.6.32.13目录下)
$ make -jX

X can be two times of the number of the processor. We use this to let make invoke compilation work in X-wayparallel.

1.3.6 Install modules and kernel (linux-2.6.32.13目录下)
# make modules_install install
【这一步执行时间很长,中间有停顿现象】
1.4 Configure grub

Add one entry for Xen in /boot/grub/grub.conf. This is an example entry:

# vi /boot/grub/grub.conf

title Xen3.4.3- Xenified Linux 2.6.32.13

  root (hd0,0)

  kernel /xen-3.4.3.gz cOnsole=vga vga=ask noreboot

  module /vmlinuz-2.6.32.13 ro root=/dev/mapper/VolGroup-LogVol_root noiswmd LANG=en_US.UTF-8 SYSFOnT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us

  module /initramfs-2.6.32.13.img

The root and other parameters may be different depending on the configuration.

# 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,7)

#          kernel /vmlinuz-version ro root=/dev/sda11

#          initrd /initrd-[generic-]version.img

#boot=/dev/sda

default=3

timeout=5

splashimage=(hd0,7)/grub/splash.xpm.gz

hiddenmenu

title Xen 3.4.3 -Xenified Linux 2.6.32.13

        root (hd0,7)

        kernel /xen-3.4.3.gz cOnsole=vga vga=ask noreboot

        module  /vmlinuz-2.6.32.13 ro root=UUID=7329a86e-6254-48ab-a084-69fed3fc6881 nomodeset LANG=en_US.UTF-8 SYSFOnT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet

        module /initramfs-2.6.32.13.img

title Fedora (2.6.32.26-175.fc12.x86_64)

        root (hd0,7)

        kernel /vmlinuz-2.6.32.26-175.fc12.x86_64 ro root=UUID=7329a86e-6254-48ab-a084-69fed3fc6881 nomodeset LANG=en_US.UTF-8 SYSFOnT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet

        initrd /initramfs-2.6.32.26-175.fc12.x86_64.img

title Fedora (2.6.31.5-127.fc12.x86_64)

        root (hd0,7)

        kernel /vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=UUID=7329a86e-6254-48ab-a084-69fed3fc6881 nomodeset LANG=en_US.UTF-8 SYSFOnT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet

        initrd /initramfs-2.6.31.5-127.fc12.x86_64.img

title Other

        rootnoverify (hd0,0)

        chainloader +1

1.5 Make Xend and Xendomains services automatically start when system boots
# cd /etc/init.d/
# chkconfig --add xend
# chkconfig --add xendomains

Check whether Xend and Xendomains services are automatically started in level 3-5:

# chkconfig --list | grep xend

It should be like this:

xend               0:off    1:off    2:off    3:on    4:on    5:on    6:off
xendomains         0:off    1:off    2:off    3:on    4:on    5:on    6:off
注:XEN的安装到此即可,然后重启,选择【Xen 3.4.3 - Xenified Linux 2.6.32.13】启动项。启动过程会提示某些部件失败,不用理会,登陆Fedora即可。
1.6 Enjoy the fun now!

After booting the system, you can try to use xm to check xen info

# xm info

Then xm command can be used to start up DomUs.

[root@czm003fedora12 czm]# xm info

host                   : czm003fedora12

release                :2.6.32.13

version                : #1 SMP Sun Oct 7 08:30:28 HKT 2012

machine                : x86_64

nr_cpus                : 4

nr_nodes               : 1

cores_per_socket       : 2

threads_per_core       : 2

cpu_mhz                : 2266

hw_caps                : bfebfbff:28000800:00000000:00000740:0098e3bd:00000000:00000001:00000000

virt_caps              : hvm

total_memory           : 1970

free_memory            : 121

node_to_cpu            : node0:0-3

node_to_memory         : node0:121

xen_major              : 3

xen_minor              : 4

xen_extra              : .3

xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

xen_scheduler          : credit

xen_pagesize           : 4096

platform_params        : virt_start=0xffff800000000000

xen_changeset          : unavailable

cc_compiler            : gcc version 4.4.4 20100630 (Red Hat4.4.4-10) (GCC)

cc_compile_by          : czm

cc_compile_domain      :

cc_compile_date        : Sun Oct  7 08:04:56 HKT 2012

xend_config_format     : 4

[root@czm003fedora12 czm]#

#xm list

[root@czm003fedora12 czm]# xm list

Name                          ID   Mem  VCPUs      State   Time(s)

Domain-0                      0    1824     4          r-----     80.2

[root@czm003fedora12 czm]#

至此,只是在物理PC上安装完XEN虚拟机监控器(可理解为宿主环境),要创建虚拟机还需要在宿主环境上上安装操作系统。


推荐阅读
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 本文探讨了Python类型注解使用率低下的原因,主要归结于历史背景和投资回报率(ROI)的考量。文章不仅分析了类型注解的实际效用,还回顾了Python类型注解的发展历程。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
author-avatar
CCTV2财经2677
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有