`
happmaoo
  • 浏览: 4601619 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Xen:使用虚拟 Linux 来测试应用程序

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
Xen 是可用于 Linux™ 内核的一种虚拟化技术,让您可以像在现有环境中一样安装并测试新的升级,而不必担心破坏原有的系统。作者将向您介绍如何使用 Fedora Core 安装 Xen,不过,安装之后,在任何发行版本上的 Xen 中,所有程序运转起来都是相同的。了解 Linux 上的虚拟化,知道具有一个用于测试新软件的沙盒的好处,并练习在同一台 Linux 机器上运行多个虚拟机。
随着对现有软件的改进和 bug 修复,开源世界的变化永无止境。要保持软件总是升级到最新,这可能得作为一份专职的工作。升级软件最难处理的问题之一是:您永远不会真正知道升级完成后应用程序是否还能够工作。大部分软件打包系统都具备回滚功能,但通常只有这项功能还不够;理想情况下,您应该去测试这些新的升级,并在一个不会破坏任何东西的环境中去尝试它们。
就像玩耍的小孩子一样,您希望拥有一个属于自己的沙盒,在那里您可以随意做任何事情。
通常通过 虚拟化(Virtualization)(或者“沙盒(sandbox)”)将同一硬件上的应用程序和系统彼此隔离开来。从硬件模拟到完全硬件虚拟化,Linux 支持很多种不同形式的虚拟化。在不断增加的虚拟化技术列表中,Xen 是近来最引人注目的技术之一,它由剑桥大学开发。Xen 值得您关注,因为它具有空前的性能与安全性。
Xen 是在剑桥大学作为一个研究项目被开发出来的,它已经在开源社区中得到了极大的推动。Xen 是一款 半虚拟化(paravirtualizing) VMM(虚拟机监视器,Virtual Machine Monitor),这表示,为了调用系统管理程序,要有选择地修改操作系统,然而却不需要修改操作系统上运行的应用程序。虽然 VMWare 等其他虚拟化系统实现了完全的虚拟化(它们不必修改使用中的操作系统),但它们仍需要进行实时的机器代码翻译,这会影响性能。
由于 Xen 需要修改操作系统,所以您不能直接让当前的 Linux 内核在 Xen 系统管理程序中运行,除非它已经移植到了 Xen 架构。不过,如果当前系统可以使用新的已经移植到 Xen 架构的 Linux 内核,那么您就可以不加修改地运行现有的系统。
检查您的发行版本 —— 如果它不在这个列表中,那么您可能只能直接使用源代码。除了安装过程特定于发行版本之外,在任何发行版本上,Xen 中的所有工作都是相同的。
尽管软件包只是在最近才开始进行开发,但 Fedora 已经为大量 Xen 用户所使用。由于有很多人尝试在 Fedora 上使用 Xen,所以您可能成功地获得大量的在线帮助。
首先,为基础机器(base machine)进行最简化的服务器安装。这台基础机器是您的系统管理程序,将不会运行任何服务器应用程序。您将可以在运行于此机器之上的 Xen 服务器中安装所需要的软件包,所以现在不需要安装想要运行的应用程序。
系统开始运行后,您应该将其更新到 Fedora 的最新开发版本(称为 rawhide)。要完成此任务,请遍历 /etc/yum.repos.d/ 目录中的元素,将除了 fedora-devel.repo 以外的所有元素都改为 enabled=0;将 fedora-devel.repo 改为 enabled=1。
建立了 yum 储存库(repository)后,需要将机器更新到 rawhide,以便您可以开始使用最新发布的 Xen。
yum update
yum install xen kernel-xen0 kernel-xenU
然后,创建一个将要使用的虚拟文件系统。
mkdir -p /xen/base
dd if=/dev/zero of=/root/base.img bs=1M count=1 seek=1024
mkfs.ext3 /root/base.img
mount -o loop /root/base.img /xen/base
格式化并挂载 Xen 服务器文件系统之后,下一个步骤是安装必要的软件包,以便在这些软件包上运行某些程序。为了在 Xen 服务器上运行一个 Web 服务器,您应该安装一组 Web-server 软件包。(警告: 这将需要一段时间!您可以先运行 yum,然后出去散散步。)
yum --installroot=/xen/base -y groupinstall web-server \
--enablerepo=base --disablerepo=development
(现在应该去散步了。)
现在已经安装了所有需要的软件包,不过您应该去查看一个简单的 fstab 文件,这个文件会告知 Xen 服务器它们将要获得根(root)设备 sda1,将该设备作为根。根设备实际上是来自系统管理程序的一个虚拟的设备,但您的服务器不会知道这一点。
/dev/sda1 / ext3 defaults 1 1
none /dev/pts devptsgid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
将这个文件写入 /xen/base/etc/fstab。如果不是标准的 Fedora 安装,那么不会为您创建任何 fstab。预计 Fedora 的未来版本会包含处理此问题的工具。
最后,为了让系统正确地运行,您应该做一些处理。目前,Xen 使用 initrd 时仍然存在问题,所以,如果想要启动系统,则需要为自己创建一些设备代码。然后,为了让程序平稳运行,删除 TLS 程序库会有所帮助,因为目前它们与 Xen 冲突很严重。完成这个步骤后,可以卸载这个文件系统。
for i in console null zero ; do MAKEDEV -d /xen/base/dev -x $i ; done
mv /lib/tls /lib/tls.disabled
mv /xen/base/lib/tls /xeb/base/lib/tls.disabled
umount /xen/base/
运行 Xen
既然已经细心地手工建立起了客户系统,那么您现在就可以真正重新启动机器,开始使用 Xen 内核。您可能将会看到比平时多得多的打印输出,并且您还会看到关于 TLS 程序库(上一节中您删除的那个会出问题的程序库)的可怕的消息。
Xen 要求为运行的每个服务器准备配置文件。尽管您可以为所有服务器创建一个惟一的动态配置文件,但我还是建议您创建两个静态的配置文件,各用一个。如您所见,磁盘标签告诉服务器您的文件映像是 sda1 设备。也指定了您所使用的 xenU 内核,以及服务器客户将要获得的内存。
/etc/xen/base
kernel ="/boot/vmlinuz-2.6.10-1.1141_FC4xenU"
memory = 64
name = "BaseServer"
nics = 1
disk = ['file:/root/base.img,sda1,w']
root = "/dev/sda1 ro"
/etc/xen/test
kernel ="/boot/vmlinuz-2.6.10-1.1141_FC4xenU"
memory = 64
name = "TestServer"
nics = 1
disk = ['file:/root/test.img,sda1,w']
root = "/dev/sda1 ro"
要启动并运行服务器,首先要使用命令 xend start 启动 Xen 服务,然后使用命令 xm create base 通过基本配置文件创建 BaseServer。通过这些步骤,您将进入 Xen 客户系统中,可以看到该系统已经启动起来。不论何时,如果您想跳出客户系统控制台,那么按下 Ctrl-] 组合键就可以直接返回到系统管理程序控制台。
使用 Xen
现在您已经用了一些时间来编辑配置,并建立了运行两个 Xen 服务器的系统。所有这些艰苦的工作完成后,接下来做什么?
现在您拥有了一个系统的两个副本,它们运行相同内核,在同一台机器上被虚拟化。如果 BaseServer 代表的是您希望正常运行 Web 服务的稳定环境,那么 TestServer 代表的就是 Fedora rawhide 所提供的最新软件更新。您可以随意保持对 TestServer 系统的升级,尝试所有新版本的软件更新 —— 当您认为它足够稳定时,可以将 TestServer 作为 BaseServer 来运行。
设置 BaseServer
BaseServer
运行时,是修改将要运行的 httpd 服务的配置的好时机。您应该将 ssl.conf 文件移出 /etc/httpd/conf.d/ 目录,以此来停用 ssl;否则,您将需要为服务器生成证书。另外,可能需要向系统添加一个 apache 用户。
Xen 系统管理程序已经自动提供了一个可以使用的虚拟网络设备。如果您可以在这个设备上运行 dhcp,那么只需要执行 dhclient eth0,BaseServer 就会获得 IP 地址。
设置 TestServer
设置了 BaseServer 的配置之后,在 BaseServer 控制台中执行 poweroff 以关闭该实例。如果您已经从 BaseServer 注销,那么可以使用 xm console BaseServer 重新进入它。
现在,通过 cp /root/base.img /root/test.img 复制基础映像,以便获得同一文件系统的副本。当运行 xm create -c test 时,它会运行与 BaseServer 相同的服务器,但是它的名称是 TestServer。登录到 TestServer,然后像您在 安装 Xen那一节中所做的那样启用 rawhide 支持,然后运行 yum update。
TestServer 实例拥有与 BaseServer 完全相同的配置,但是您已经升级到了 Fedora rawhide 所必须具备的最新的软件包。在此,您可以查看 Web 站点是否仍然可用。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1373450


分享到:
评论

相关推荐

    linux 虚拟化 Xen 配置详解

    根据实际需求,例如仅用于安装应用程序,30GB通常足够。网络配置应选择桥接模式,这样虚拟机可以直接连接到物理网络,如同独立的物理机。 资源分配包括CPU和内存,对于NC(可能是某种服务器应用),分配6GB内存和4...

    Xen虚拟化技术.rar

    - **DomainU**:非特权虚拟机,运行用户的应用程序和操作系统。它们不直接访问硬件,而是通过Hypervisor和Domain0进行通信。 - **虚拟设备**:Xen提供虚拟网络、存储和其他设备,使得DomainU可以像使用物理设备一样...

    Linux 桌面玩家指南:07. Linux 中的 Qemu、KVM、VirtualBox、Xen 虚拟机体验 - 京山游侠 -

    它满足了桌面用户对虚拟机的需求,例如无阻碍运行图形密集型应用程序,以及方便地备份和移动虚拟硬盘镜像。 4. **Xen**: Xen是一种开源的类型一 hypervisor,它直接在硬件层面上运行,提供半虚拟化和全虚拟化两种...

    Linux上的虚拟化技术Xen初学者指南.docx

    2. 无硬件依赖:允许应用程序和操作系统对新硬件的移值测试 3. 多操作系统配置:以开发和测试为目的,同时运行多个操作系统 4. 内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一*立的机器...

    Xen与虚拟化

    实际应用案例中,腾讯公司和宝马集团都采用了Novell SUSE Linux Enterprise Server中的Xen虚拟化技术。腾讯通过Xen提高了硬件利用率,降低了扩展服务所需的硬件成本;而宝马集团则利用Xen提升了系统灵活性,优化了...

    Linux上的虚拟化技术Xen初学者指南.doc

    Linux上的虚拟化技术Xen是一种开源的para-virtualizing虚拟机监控程序,设计用于x86架构的系统。Xen可以在同一物理硬件上安全地运行多个虚拟机,它作为一个内核级的虚拟化程序,与操作系统紧密结合,因此资源消耗极...

    LINUX\SUSE Linux虚拟化配置

    - **测试与开发**:开发人员可以利用虚拟化环境快速构建和测试新的应用程序或服务。 - **教育与培训**:虚拟化技术还广泛应用于教育领域,为学生提供一个安全且隔离的学习环境。 #### 总结 SUSE Linux Enterprise ...

    基于Xen的嵌入式虚拟化技术研究.pdf

    3. **Xen虚拟化技术** Xen是由剑桥大学开发的开源虚拟化项目,以其轻量级和高效性受到关注。Xen支持全虚拟化和半虚拟化,特别适合于嵌入式环境。在ARM架构上,Xen能够实现嵌入式操作系统的半虚拟化,通过Hypercall...

    vmware和xen虚拟化管理程序之间的比较

    这使得多个操作系统和应用程序可以在同一台机器上并行运行,而彼此间互不影响。VMware和Xen是两种主流的虚拟化管理程序,它们在实现虚拟化的方式和特性上存在显著差异。 【VMware虚拟化】 VMware是一家提供全面...

    Xen 初学者指南,初学者看过来了

    - **通过配置文件来引导虚拟的操作系统**:使用 `xm create` 命令。 - **从终端或控制台登录正在运行的虚拟操作系统**:使用 `xm console` 命令。 - **存储正在运行的虚拟操作系统的状态及唤醒虚拟操作系统**:使用 ...

    Linux Virtualization with Xen

    Linux虚拟化技术在近年来得到了广泛的关注,特别是在Xen技术出现后。Xen是一个开源的虚拟化平台,由剑桥大学计算机实验室的Ian Pratt领导的团队最初开发,原本是Xenoserver项目的一部分,旨在构建公共基础设施以支持...

    XEN安装部署手册

    ### XEN安装部署手册知识点概览 #### 一、XEN概述 XEN是一种开源的虚拟化技术,广泛应用于Linux平台。它通过一种称为“监控器”(Hypervisor)的技术,可以...希望这些信息能帮助读者更好地理解和使用XEN虚拟化技术。

    linux虚拟机xen之v3.0用户手册[收集].pdf

    2. **硬件独立性**:允许旧应用程序和操作系统在新硬件上运行,解决兼容性问题。 3. **多操作系统配置**:用于开发或测试,同时运行多个操作系统环境。 4. **内核开发**:在虚拟环境中安全地进行内核测试和调试,...

    linux虚拟机xen之v3.0用户手册文.pdf

    Linux Xen V3.0 用户手册主要涵盖了Xen虚拟化技术的详细介绍,这是一款适用于x86处理器架构的Para-virtualizing虚拟机监控器,也称为系统管理程序(Hypervisor)。Xen允许在单一物理主机上高效运行多个虚拟机,且...

    Xen与KVM虚拟化方案的设计与性能评比1

    KVM 使用 Linux 内核作为虚拟化层,因此它可以充分利用Linux的成熟性和安全性。KVM 的优势在于与Linux的紧密集成,可以轻松地与其他Linux工具和服务结合,提供灵活的管理和扩展能力。此外,KVM 支持QEMU模拟硬件,...

    Xen hypervisor for auto

    - **第三方应用程序**:支持各种各样的应用程序,以提供更加丰富的用户体验。 - **外观定制**:允许用户根据个人喜好对界面进行定制。 - **车联网服务**:提供如导航、天气预报等服务,增强行车体验。 - **快速开发...

Global site tag (gtag.js) - Google Analytics