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

系统
什么是虚拟机呢?可能大家知道VMWARE吧,是的,Xen就是类似这样的程序,比如我们可以在Fedora 上虚拟安装和使用Slackware、Debian、Gentoo ... ... 等发行版。

本文约定;

虚拟平台是指能支持运行Xen的真实安装的操作系统;

虚拟操作系统:是指在虚拟平台上安装和虚拟运行的操作系统;

比如我在Slackware 中安装了Xen,那Slackware就是虚拟平台,通过虚拟平台就可以虚拟其它操作系统了;比如通过Slackware来虚拟Debian、Fedora ... ...
  

1、什么是Xen;
  

Xen 是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序 ”,是为x86架构的机器而设计的。Xen 可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少。
  

什么是虚拟机呢?可能大家知道VMWARE吧,是的,Xen就是类似这样的程序,比如我们可以在Fedora 上虚拟安装和使用Slackware、Debian、Gentoo ... ... 等发行版。因为Xen是基于内核的,相对VMWARE 来说,它占用的系统资源也就是VMWARE的百分之几左右。Xen是不是更有优势呢?只有您实践了才知道。这也是我写本文的最主要原因;
  

1.1 Xen的特性;
  

        虚拟机的性能更接近真实硬件环境)
  在真实物理环境的平台和虚拟平台间自由切换)
  在每个客户虚拟机支持到 32个虚拟CPU,通过 VCPU热插拔)
  支持PAE指令集的x86/32, x86/64平台
  通过Intel 虚拟支持VT的支持来用虚拟原始操作系统(未经修改的)支持(包括Microsoft Windows)
  优秀的硬件支持.支持几乎所有的Linux设备驱动
  1.2 Xen的应用范围;
  服务器整合:在虚拟机范围内,在一台物理主机上安装多个服务器, 用于演示及故障隔绝;
  无硬件依赖:允许应用程序和操作系统对新硬件的移值测试;
  多操作系统配置:以开发和测试为目的,同时运行多个操作系统;
  内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一台独立的机器;
  集群运算:和单独的管理每个物理主机相比较,在VM级管理更加灵活,在负载均衡方面,更易于控制,和隔离;
  为客户操作系统提供硬件技术支持:可以开发新的操作系统, 以得益于现存操作系统的广泛硬件支持,比Linux;
  

1.3 Xen的操作系统支持和硬件支持;
  

2、Xen的一点理论基础;
  

基于Xen的操作系统,有多个层,最底层和最高特权层是 Xen程序本身。Xen 可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中实现。在Xen的术语中,Domain由Xen控制,以高效的利用CPU的物理资源。每个客户操作系统可以管理它自身的应用。这种管理包括每个程序在规定时间内的响应到执行,是通过Xen调度到虚拟机中实现。
  

当Xen启动运行后,第一个虚拟的操作系统,就是Xen本身,我们通过xm list,会发现有一个Domain 0的虚拟机。Domain 0 是其它虚拟主机的管理者和控制者,Domain 0 可以构建其它的更多的Domain ,并管理虚拟设备。它还能执行管理任务,比如虚拟机的体眠、唤醒和迁移其它虚拟机。
  

一个被称为xend的服务器进程通过domain 0来管理系统,Xend 负责管理众多的虚拟主机,并且提供进入这些系统的控制台。命令经一个命令行的工具通过一个HTTP的接口被传送到xend。

【编辑推荐】

  1. Linux系统下配置Netware服务器方法
  2. 嵌入式设备上的 Linux 系统开发
  3. 深度介绍Linux内核是如何工作的(1)
责任编辑:张燕妮 来源: it168
相关推荐

2009-12-25 10:05:00

Linux虚拟化Xen虚拟化

2022-09-05 15:36:39

Linux日志记录syslogd

2022-04-24 15:21:01

MarkdownHTML

2022-07-22 13:14:57

TypeScript指南

2010-06-13 11:13:38

UML初学者指南

2024-01-12 14:37:29

智能家居人工智能

2022-10-10 15:28:45

负载均衡

2023-07-03 15:05:07

预测分析大数据

2021-05-10 08:50:32

网络管理网络网络性能

2023-07-28 07:31:52

JavaScriptasyncawait

2022-03-28 09:52:42

JavaScript语言

2010-08-26 15:47:09

vsftpd安装

2018-10-28 16:14:55

Reactreact.js前端

2023-01-27 14:50:45

2023-02-10 08:37:28

2012-03-14 10:56:23

web app

2023-04-26 13:49:52

2021-05-06 09:00:00

JavaScript静态代码开发

2018-09-10 08:20:16

Ubuntu LinuGitGitHub

2009-11-18 09:30:43

点赞
收藏

51CTO技术栈公众号