<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 重新进入它。
TestServer 实例拥有与 BaseServer 完全相同的配置,但是您已经升级到了 Fedora rawhide 所必须具备的最新的软件包。在此,您可以查看 Web 站点是否仍然可用。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1373450
相关推荐
根据实际需求,例如仅用于安装应用程序,30GB通常足够。网络配置应选择桥接模式,这样虚拟机可以直接连接到物理网络,如同独立的物理机。 资源分配包括CPU和内存,对于NC(可能是某种服务器应用),分配6GB内存和4...
- **DomainU**:非特权虚拟机,运行用户的应用程序和操作系统。它们不直接访问硬件,而是通过Hypervisor和Domain0进行通信。 - **虚拟设备**:Xen提供虚拟网络、存储和其他设备,使得DomainU可以像使用物理设备一样...
它满足了桌面用户对虚拟机的需求,例如无阻碍运行图形密集型应用程序,以及方便地备份和移动虚拟硬盘镜像。 4. **Xen**: Xen是一种开源的类型一 hypervisor,它直接在硬件层面上运行,提供半虚拟化和全虚拟化两种...
2. 无硬件依赖:允许应用程序和操作系统对新硬件的移值测试 3. 多操作系统配置:以开发和测试为目的,同时运行多个操作系统 4. 内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一*立的机器...
实际应用案例中,腾讯公司和宝马集团都采用了Novell SUSE Linux Enterprise Server中的Xen虚拟化技术。腾讯通过Xen提高了硬件利用率,降低了扩展服务所需的硬件成本;而宝马集团则利用Xen提升了系统灵活性,优化了...
Linux上的虚拟化技术Xen是一种开源的para-virtualizing虚拟机监控程序,设计用于x86架构的系统。Xen可以在同一物理硬件上安全地运行多个虚拟机,它作为一个内核级的虚拟化程序,与操作系统紧密结合,因此资源消耗极...
- **测试与开发**:开发人员可以利用虚拟化环境快速构建和测试新的应用程序或服务。 - **教育与培训**:虚拟化技术还广泛应用于教育领域,为学生提供一个安全且隔离的学习环境。 #### 总结 SUSE Linux Enterprise ...
3. **Xen虚拟化技术** Xen是由剑桥大学开发的开源虚拟化项目,以其轻量级和高效性受到关注。Xen支持全虚拟化和半虚拟化,特别适合于嵌入式环境。在ARM架构上,Xen能够实现嵌入式操作系统的半虚拟化,通过Hypercall...
这使得多个操作系统和应用程序可以在同一台机器上并行运行,而彼此间互不影响。VMware和Xen是两种主流的虚拟化管理程序,它们在实现虚拟化的方式和特性上存在显著差异。 【VMware虚拟化】 VMware是一家提供全面...
- **通过配置文件来引导虚拟的操作系统**:使用 `xm create` 命令。 - **从终端或控制台登录正在运行的虚拟操作系统**:使用 `xm console` 命令。 - **存储正在运行的虚拟操作系统的状态及唤醒虚拟操作系统**:使用 ...
Linux虚拟化技术在近年来得到了广泛的关注,特别是在Xen技术出现后。Xen是一个开源的虚拟化平台,由剑桥大学计算机实验室的Ian Pratt领导的团队最初开发,原本是Xenoserver项目的一部分,旨在构建公共基础设施以支持...
### XEN安装部署手册知识点概览 #### 一、XEN概述 XEN是一种开源的虚拟化技术,广泛应用于Linux平台。它通过一种称为“监控器”(Hypervisor)的技术,可以...希望这些信息能帮助读者更好地理解和使用XEN虚拟化技术。
2. **硬件独立性**:允许旧应用程序和操作系统在新硬件上运行,解决兼容性问题。 3. **多操作系统配置**:用于开发或测试,同时运行多个操作系统环境。 4. **内核开发**:在虚拟环境中安全地进行内核测试和调试,...
Linux Xen V3.0 用户手册主要涵盖了Xen虚拟化技术的详细介绍,这是一款适用于x86处理器架构的Para-virtualizing虚拟机监控器,也称为系统管理程序(Hypervisor)。Xen允许在单一物理主机上高效运行多个虚拟机,且...
KVM 使用 Linux 内核作为虚拟化层,因此它可以充分利用Linux的成熟性和安全性。KVM 的优势在于与Linux的紧密集成,可以轻松地与其他Linux工具和服务结合,提供灵活的管理和扩展能力。此外,KVM 支持QEMU模拟硬件,...
- **第三方应用程序**:支持各种各样的应用程序,以提供更加丰富的用户体验。 - **外观定制**:允许用户根据个人喜好对界面进行定制。 - **车联网服务**:提供如导航、天气预报等服务,增强行车体验。 - **快速开发...