虚拟化技术xen的简介和安装

虚拟化技术的分类:

1,模拟:Emulation

? Qemu,PearPC,Bochs

2,完全虚拟化:Full Virtualization,Native Virtualization

? HVM:hardware virtualization machine

? vmware workstation,virtualBox,Parallels desktop(mac),KVM,xen

3,半虚拟化:pava-virtualization

? 必须修改guestOS的内核,让它知道自己不是允许在物理机器删上,而是允许在虚拟环境中。

? 使用hypercall调用物理机的cpu

? xen,UML(user-mode Linux)

4,容器虚拟化

? docker,openvz,LXC(linux container),libcontainer,virtuozzo,linux V Server

5,库级别虚拟化

? wine

xen

剑桥大学开发的开源vmm(virtual machine monitor),虚拟机监视器。

xen是安装在物理机器上的。

xen只控制物理机器的cpu和内存,I/O控制,交给了在它上面安装的第一个虚拟内核(叫dom0)。处理dom0的虚拟机叫:domU,在domU上的I/O操作,都是直接发给dom0,dom0再去操作硬件控制器。domU上的I/O接口叫frontend,dom0上的I/O叫backend。

组成部分:

  • xen hypervisor

    分配cpu,memory,interrupt

  • dom0:

    特权域,I/O分配

    • 网络设备

      net-front(guestOS),net-backend(dom0)

    • 块设备

      block-front(guestOS),block-backend(dom0)

    linux kernel:

    ? 2.6.37开始支持允许dom0

    ? 3.0对关键特性进行了优化

    提供管理domu的工具:

    ? 实现对虚拟机的添加,启动,快照,停止,删除等类似在,virtualBox上的操作。

  • domU:非特权域,根据虚拟化方式,有多种类型
    • PV:半虚拟化
    • HVM:硬件提供虚拟化支持,有的cpu提供虚拟化支持
    • PV ON HVM

xen的PV技术

不依赖于CPU的HVM特性,但要求guestOS的内核要做出修改,以达到知晓自己不是允许在物理机上。

运行于domu上的os:linux(2.6.24+),Netbsd,Freebsd,openSolaris

xen的HVM技术

依赖于Intel VT或AMD的AMD-V,还有依赖Qemu来模拟I/O设备

运行于domu上的os:几乎所有支持x86平台的

PV on HVM

cpu为HVM模式运行,I/O设备为PV模式运行。

运行于domu上的os:只要OS能驱动PV接口类型的IO设备(net-front,block-front)

xen的pv架构

xen的工具栈

  • xm/xend:在xen hypervisor的dom0中要启动xend服务。是最早的控制台,好像已经被弃用了。
  • xl:不需要启动xend服务。是轻量级的

下图是xm和xl的对比:

  • xe/xapi:提供了多xen管理的api,因此多用于cloud环境。

    上面的cloud环境:

    • xen server(也是linux内核)
    • XCP(xen cloud platform)
  • xenstore:为各个domainU提供的共享信息存储空间,有层级结构的名称空间,位于Dom0

统一的虚拟化管理工具

背景:虚拟化技术有xen,kvm,qemu等,每个虚拟化铲平都有自己的管理工具,学习这么多的管理工具太费劲了,所有就出现了一个救世主,virsh。它可以管理下面的3个虚拟化产品,只用一套命令即可。

virsh/libvirt:用python开发的图像化管理工具,类似VMware的图形界面,对应用户很友好。但是它必须启动libvirtd守护进程,也挺消耗资源。

RHCL对Xen的支持:

  • RHCL 5.7:默认的虚拟化技术是xen
  • RHCL 6+:仅支持kvm(红帽收购了以色列的kvm公司)

    Dom0上无法安装centos6+

    DomU上可以安装centos6+

如何在centos6+上安装xen?

1,编译3.0以上版本的内核,启动对Dom0的支持

2,编译xen程序

可以使用制作好的程序包项目:

  • xen4centos:xen官方专门为centos制作的rpm包
  • xen made easy

在Centos6.10上安装xen

1,去清华的yum源上找到xen的rpm下载网址,自己做一个repo文件(文件名为xen4.repo),指向那个地址即可

xen4.repo内容:注意url不要写错。

[xen4centos]
name=xen4 for centos 6
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/6.10/virt/x86_64/xen-410/
gpgcheck=0

2,yum install xen

由于要更新内核,所以有点慢。成功后,/boot目录下多了下面的文件。

# ls /boot/xen*
/boot/xen-4.10.4.36.g6cb1cb9c63-1.el6.config  /boot/xen-4.10.4.36.g6cb1cb9c63-1.el6.gz  /boot/xen.gz

3,修改/etc/grub.conf文件

修改前:

kernel /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rhgb quiet
initrd /initramfs-4.9.206-36.el6.x86_64.img

修改后:

kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin
module /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rhgb quiet
module /initramfs-4.9.206-36.el6.x86_64.img

修改内容:

  • 加了一行:kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin

    宣告说kernel已经不是centos了,而是我xen了,原来的kernel降级成module了。
    xen的命令行参数说明的官方文档

  • 把原来的2行,其中的第一行的kernel替换成module;第二行的initrd替换成module。

修改后的/etc/grub.conf文件

# 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,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_c610-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (4.9.206-36.el6.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M cpufrep=xen dom0_max_vcpus=2 dom0_vcpus_pin
        module /vmlinuz-4.9.206-36.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rhgb quiet
        module /initramfs-4.9.206-36.el6.x86_64.img
title CentOS 6 (2.6.32-754.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/mapper/vg_c610-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_c610/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c610/lv_root rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-754.el6.x86_64.img

4,重启系统

5,确认结果

# uname -r
4.9.206-36.el6.x86_64
# xl list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     2     r-----      28.2

发现内核升级了,并且在dom0上安装了centos,分配的内存是1024M,分配的cpu是2个。

正确的做法是在物理机器上安装xen,然后在xen上安装dom0和其他domu。

  • 安装xen之前的的学习环境是:物理机器上装的是window,在window上装的virtualbox,在virtualBox上装的是centos6(内核是2.6.32-754.el6.x86_64)。
  • 安装xen之后的的学习环境是:物理机器上装的是window,在window上装的virtualbox,在virtualBox上装的是xen,在xen上装的dom0,dom0里的系统是centos6(内核是4.9.206-36.el6.x86_64)。

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

原文地址:https://www.cnblogs.com/xiaoshiwang/p/12247551.html

时间: 2024-11-05 16:09:08

虚拟化技术xen的简介和安装的相关文章

VPS的虚拟化技术—-XEN,KVM,OPENVZ

市场上的VPS商家主要有 Xen ,KVM 和 OpenVZ 三种开源的虚拟化技术 Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达 100个满特征的操作系统.操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性).这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化. KVM(kernel-based Virtual Machine)的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版

基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具

1.Proxmox proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是我们选择它的原因.官方网站http://www.proxmox.com. Proxmox VE (Proxmox VirtualEnvironment) 是一个非常棒的集成OPENVZ[1]支持KVM[2]应用的环境.有方面易用的WEB界面,基于JAVA的UI和内核接口,可以登录到VM客户方便的操作

Linux虚拟化技术KVM、QEMU与libvirt的关系(转)

说明:个人理解,KVM是内核虚拟化技术,而内核是不能使用在界面上使用的,那么此时QEMU提供了用户级别的使用界面,相互辅助.当然,单独使用QEMU也是可以实现一整套虚拟机,不过QEMU+KVM基本是标配Linux虚拟机管理工具. 一.介绍: 主要分为三个部分.第一部分是虚拟化技术介绍:第二部分是KVM.QEMU与libvirt介绍,第三部分是对网卡的虚拟介绍. 第一部分: 这一部分是对当期存在的虚拟机技术进行简单的总结与讲解,很多是一句而过的.其实每一个技术都可以重新写出一篇内容丰富的博客,但是

浅析 hyper -- 下一代虚拟化技术?

容器技术的快速发展,挤占了传统虚拟机技术的很多地盘.没办法,在启动速度和运行性能上,容器实在有着太多的优势,而虚拟机技术的发展实在太过缓慢. 现在,受到容器技术的刺激,,推出了启动速度可以跟容器媲美的下一代虚拟化技术 -- hyper. 简介 简单的说,hyper = Hypervisor + Kernel + Docker Image,本质上还是一种虚拟机技术. hyper 将容器运行在了虚拟机里,只不过这个虚拟机是精简过的(基于 qboot),可以快速启动停止的虚拟机.目前,可以运行在 KV

dcos对虚拟化的影响,docker和虚拟化技术会怎么去选择?

---20160509运维之家新的论题--上午茶时间到喽,今天我们讨论的话题是:dcos对虚拟化的影响,docker和虚拟化技术会怎么去选择? 红颜醉小生: docker容器虚拟化可以提供更多的资源利用率 蝎: 现在的技术都在努力让上层应用和底层应用分开.用更为简便和兼容的中间系统来衔接.可以避免一以前经常遇到的软硬件的升级兼容问题.对于维护也应该是起了很大的简化作用.应该以后的虚拟化会完全成为这样的模式吧.作为中间的衔接.目前我们选择的是VMWARE虚拟化.因为应用的业务少.而且系统不一.多数

Xen虚拟化技术简介

Xen是 Red Hat Enterprise Linux 5 提供的新功能,通过Xen技术,可以让一台电脑同时执行多个操作系统,将计算机的效能发挥得淋漓尽致.本章将介绍 Xen 这个新功能的概念与实际配置的方法.1  Xen简介我们都知道,一个计算机中最重要也最昂贵的设备应该就是中央处理器(Central Processing Unit,CPU)了.现在计算机的中央处理器越来越快,除了增加频率外,中央处理器的架构也从单内核跃进到多内核.然而,中央处理器在大部分的时间都是闲置的.以"效能/成本&

KVM虚拟化技术(一)虚拟化简介

一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率. 虚拟化的类型: 全虚拟化 半虚拟化(涉及修改guestos内核,因此仅支持开源kernel的系统) 硬件辅助虚拟化(主板上开启虚拟化支持) 几种虚拟化软件简介 KVM 完全虚拟化 架构:寄居架构(linux

虚拟化技术之虚拟化技术介绍及Xen的应用实现

虚拟化技术是什么: 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源.这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制.一般所指的虚拟化资源包括计算能力和资料存储.--转自百度百科 为什么需要虚拟化:  虚拟化技术在近几年来非常的火热, 实际上在上个世纪60年代, 就已经有了虚拟化的实现.由于

Linux桌面虚拟化技术KVM介绍及其安装

KVM的简介: KVM,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使 用Linux自身的调度器迚行管理,所以相对亍Xen,其核心源码很少.KVM目前已成为学术界的主流VMM 之一.KVM的虚拟化需要硬件支持(如Intel VT技术戒者 AMD V技术).是基亍硬件的完全虚拟化.而 Xen 早期则是基亍软件模拟的 Para-Virtualization. Linux 内核的虚拟机(Kernel-based Virtual Machine).是