LINUX 的 XEN 和 KVM 到底区别在什么地方？ LINUX 的 XEN 和 KVM 到底区别在什么地方？ kvm 是 linux 的内核的一个 module，而 xen 是一个 linux 的应用。 目前 xen 和 kvm 都支持虚拟化和半虚拟化。 kvm 必须 CPU 支持虚拟化，而 xen 都可以。 kvm 的 I/O 性能比较强。 xen 较为老旧，后期发展没有 kvm 迅猛。 kvm 集成到了不少 linux 的发行版中，使用门槛较低。xen 与 linux 的整合度没那么高。 两者整体性测试,xen 略优于 kvm. 性能隔离度上,kvm 做的比 xen 要好的多. 增容性方面,kvm 到 21 个, 兼容性就跪了.xen 在这方面有良好的表现. 建议百度一下以下几个关键字：半虚拟化与全虚拟化的区别，intel 的 VT-X 技术，影子页表及 EPT KVM 是一个全虚拟化的解决方案。可以在 x86 架构的计算机上实现虚拟化功能。但 KVM 需要 CPU 中虚拟化功能的支持，只可在具有虚拟化支持的 CPU 上运行，即具有 VT 功能的 Intel CPU 和具有 AMD-V 功能的 AMD CPU。 【以上整理自知乎】 Xen 与 KVM 的比较 Xen 是 Linux 下的一个虚拟化解决方案，但由于被 Citrix 收购后，变成了和红帽企业版一样了，卖服务收取费用，Redhat 从 rhel6.0 开始已经从内核中把 XEN 踢出去了，全心投入开发免费的 KVM，虽然市场上老用户还在用 Xen, 但相信 kvm 会逐步占领大面积的市场，必竟有 redhat 做为强大支持源。 Xen 的实现方法是运行支持 Xen 功能的 kernel，这个 kernel 是工作在 Xen 的控制之下，叫做 Domain0，使用这个 kernel 启动机器后，你可以在这个机器上使用 qemu 软件，虚拟出多个系统。Xen 的缺点是如果你需要更新 Xen 的版本，你需要重新编译整个内核，而且，稍有设置不慎，系统就无法启动。 相比较，KVM 就简化的多了。它不需要重新编译内核，也不需要对当前 kernel 做任何修改，它只是几个可以动态加载的.ko 模块。它结构更加精简、代码量更小。所以，出错的可能性更小。并且在某些方面，性能比 Xen 更胜一筹。 KVM 和 Xen 虚拟化平台对比分析 一、 概述 Xen 是一个开放源代码虚拟机监视器，由剑桥大学开发。其目标是为了实现在单个计算机上运行 128 个有完全功能的操作系统。在旧（无虚拟硬件）的处理器上执行 Xen，操作系统必须进行显式地修改（“移植”）以在 Xen 上运行（但是提供对用户应用的兼容性）。这使得 Xen 无需特殊硬件支持，就能达到高性能的虚拟化。2013 年 4 月,Linux 基金会宣布 Xen 成为 Linux 基金会合作项目。 KVM，全称为 Kernel-based Virtual Machine（基于内核的虚拟机），是一种用于 Linux 内核中的虚拟化基础设施。KVM 目前支持 Intel VT 及 AMD-V 的原生虚拟技术。KVM 在 2007 年 2 月被导入 Linux 2.6.20 核心中。 本文分别从架构原理、相关技术和各自优势来对比分析 Xen 和 KVM 虚拟化平台，并讲述了对这两种虚拟化技术发展趋势的看法。 二、架构和原理 Xen 通过 hypervisor 软件层来访问物理硬件，实现在一台单独的计算机上运行多个各自独立彼此隔离的子操作系统。hypervisor 指挥硬件访问和协调来自各子操作系统的请求。 在 Xen 环境中，主要有两个组成部分。 一个是虚拟机监控器（VMM），也叫 hypervisor。Hypervisor 层硬件与虚拟机之间，最先被载入到硬件的第一层。 Hypervisor 载入就可部署虚拟机。在 Xen 中，虚拟机叫做 Domain。在这些虚拟机中，Domain0 具有很高的特权, 负责一些专门的工作。由于 hypervisor 中不包含任何与硬件对话的驱动，也没有与管理员对话的接口，这些驱动就由 domain0 来提供了。通过 domain0，管理员可以利用一些 Xen 工具来创建其它虚拟机（DomainU）。这些 domainU 属于无特权 domain。 而 KVM 是基于 Linux 环境的开源虚拟化解决方案，其思想是在 Linux 内核的基础上添加虚拟机管理模块，重用 Linux 内核中已经完善的进程调度、内存管理与硬件设备交互等部分，使之成为一个可以支持运行虚拟机的 Hypervisor。因此，KVM 并不是一个完善的模拟器，而只是一个提供虚拟化功能的内核插件，具体的模拟器工作是借助工具（QEMU）来完成。 三、相关技术 Xen 同时支持全虚拟化和半虚拟化 (修改过的客户机能有更好的性能)。Intel 对 Xen 贡献修改以支持其 VT-X Vanderpool 架构扩展。如果主系统支持 Vanderpool 或者 Pacifica 扩展（Intel 和 AMD 对本地支持虚拟化的扩展），这项技术将允许未修改的客作业系统运行在 Xen 虚拟机中。事实上，那意味著性能的提升，并且你可以在没有进行任何协议不允许的修改的情况下对 Windows 进行虚拟。而且，通过可以半虚拟化的技术获得高性能，甚至在某些与传统虚拟技术极度不友好的架构上（x86），Xen 也有上佳的表现。与那些传统通过软件模拟实现硬件的虚拟机不同，在 Intel VT-X 支持下 3.0 版本之前的 Xen 需要系统的来宾权限，用来和 Xen API 进行连接。Xen 目前可以运行在 x86 系统上，并正在向 x86_64、IA64、PPC 移植。移植到其他平台从技术上是可行的，未来有可能会实现。 KVM 是一个全虚拟化的解决方案。可以在 x86 架构的计算机上实现虚拟化功能。但 KVM 需要 CPU 中虚拟化功能的支持，只可在具有虚拟化支持的 CPU 上运行，即具有 VT 功能的 Intel CPU 和具有 AMD-V 功能的 AMD CPU。它包含一个为处理器提供底层虚拟化 可加载的核心模块 KVM.ko（KVM-intel.ko 或 KVM-AMD.ko）。KVM 还需要一个经过修改的 QEMU 软件（qemu-KVM），作为虚拟机上层控制和界面。KVM 能在不改变 linux 或 windows 镜像的情况下同时运行多个虚拟机，（它的意思是多个虚拟机使用同一镜像）并为每一个虚拟机配置个性化硬件环境（网卡、磁盘、图形适配器）。在主流的 Linux 内核，如 2.6.20 以上的内核均已包含了 KVM 核心。 四、优势对比 1.Xen 的优势 可用资源：Xen 的问世要比 KVM 早 4 年之久（两者分别是 2003 年和 2007 年）。比较容易找到精通 Xen 的 IT 技术人员，更容易让这些技术人员接受 Xen 相关的培训、更容易得到 Xen 的咨询帮助以及获得 Xen 证书。 平台支持：Xen 在新版本中支持更多的主机和客体工作环境，包括泛虚拟化技术、硬件辅助支持以及修改过或未修改过的客体操作系统。 可管理性： Xen 具有一个更加宽泛的第三方配给、备份、存储管理、P2V、容量规划、性能监控、进程自动化、安全和其它管理规则的社区。 实施： Xen 的运行和管理都是在较低级别的（Ring 0）。对于新虚拟机创建，客体机器并不需要像 KVM 那样共享内存块、CPU 指令或者任何底层的 Linux 操作系统（虽然偶尔也会越权）。 支持动态迁移： Xen 支持非中断的动态迁移，可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间。 性能： Xen 具有更好的处理性能（接近于本地处理），支持一个客体虚拟机的数量呈线性增长，可以支持 30 个以上工作负载同时运行。 2.Xen 的缺点 Xen 是一个安装在 Linux 内核下层的一个产品。其工作环境的补丁包不能够和 Linux 内核兼容。 Xen 使用泛虚拟化技术需要修改操作系统，默认 Windows 的安装并不支持泛虚拟化工作环境。 Xen 不能良好的与 Linux 内核整合，将会使 Linux 内核的负担越来越重。 3.KVM 优势 KVM 是 Linux 内核的一部分，KVM 在 Linux 内核内部部署，可以很容易控制虚拟化进程。 KVM 更加灵活。由于操作系统直接和整合到 Linux 内核中的虚拟化管理程序交互，所以在任何场景下都可以直接和硬件进行交互，而不需要修改虚拟化的操作系统。 KVM 在 Ret Hat 的大力支持下，将会使虚拟化技术的后来者——KVM 同 Xen 一样功能齐全。 4.KVM 缺点 KVM 不如 Xen 技术成熟，并且缺少某些关键特性，如动态迁移和泛虚拟化支持。 五、发展趋势的看法 Xen 同时支持全虚拟化和半虚拟化 (修改过的客户机能有更好的性能). KVM 当前不支持半虚拟化。而且 KVM 就是所有新生技术在发展中都会面临的难题：技术不成熟。KVM 的出现不过三四年时间，在可用资源、平台支持、管理工具、实施经验方面不能与 Xen 相比。目前 KVM 还缺少某些关键特性，例如存储的动态迁移。性能方面，Xen 支持一个客体虚拟机的数量呈线性增长，可以支持 30 个以上工作负载同时运行。KVM 随着工作负载的增加性能逐渐下降。所以就目前来看，Xen 在各方面都占有优势。同时，Xen 成为 Linux 基金会项目。但是 KVM 得到了 Ret Hat 的大力支持，将会使其功能更加齐全
目前XenServer版本XenServer 6.1 客户端XenCenter连接显示XenServer 6.1 客户端XenCenter连接显示版本XenServer 6.1 下vm（模拟写入数据到Linux和Windows）XenServer 6.1 下vm（模拟写入数据到Linux和Windows）XenServer 6.1 主控台XenServer 6.1 关机XenServer 6.1 关机XenServer 6.1 添加XenServer 7.6镜像XenServer 6.1 拍快照 避免失败 无法回滚XenServer 6.1 设置开机启动加载7.6的镜像XenServer 6.1 设置开机启动加载7.6的镜像XenServer 6.1 设置开机启动加载7.6的镜像XenServer 6.1 升级到 XenServer 7.6 设置键盘和语言XenServer 6.1 升级到 XenServer 7.6 提示将会升级或安装系统或恢复系统 XenServer 6.1 升级到 XenServer 7.6 License协议XenServer 6.1 升级到 XenServer 7.6 选择升级XenServer 6.1 升级到 XenServer 7.6 提示你升级需要创建一个备份（备份动作会清除你之前的备份）XenServer 6.1 升级到 XenServer 7.6 安装介质XenServer 6.1 升级到 XenServer 7.6 验证安装源XenServer 6.1 升级到 XenServer 7.6 验证成功XenServer 6.1 升级到 XenServer 7.6 开始安装XenServer 6.1 升级到 XenServer 7.6 备份XenServer 6.1 升级到 XenServer 7.6 开始安装XenServer 6.1 升级到 XenServer 7.6 提示你需要安装额外的其他包XenServer 6.1 升级到 XenServer 7.6 安装过程中XenServer 6.1 升级到 XenServer 7.6 安装完成,提示重启XenServer 6.1 升级到 XenServer 7.6 安装完成 开始重启显示主菜单XenServer 6.1 升级到 XenServer 7.6 安装完成，进入主控台，显示已经升级到XenServer7.6XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接，查看之前保存的数据XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接，查看之前保存的数据如果要回滚到之前的Xen版本，重新按照上面步骤执行即可，到选择执行回退即可 目前XenServer版本 XenServer 6.1 客户端XenCenter连接显示 XenServer 6.1 客户端XenCenter连接显示版本 XenServer 6.1 下vm（模拟写入数据到Linux和Windows） XenServer 6.1 下vm（模拟写入数据到Linux和Windows） XenServer 6.1 主控台 XenServer 6.1 关机 XenServer 6.1 关机 XenServer 6.1 添加XenServer 7.6镜像 XenServer 6.1 拍快照 避免失败 无法回滚 XenServer 6.1 设置开机启动加载7.6的镜像 XenServer 6.1 设置开机启动加载7.6的镜像 XenServer 6.1 设置开机启动加载7.6的镜像 XenServer 6.1 升级到 XenServer 7.6 设置键盘和语言 XenServer 6.1 升级到 XenServer 7.6 提示将会升级或安装系统或恢复系统 XenServer 6.1 升级到 XenServer 7.6 License协议 XenServer 6.1 升级到 XenServer 7.6 选择升级 XenServer 6.1 升级到 XenServer 7.6 提示你升级需要创建一个备份（备份动作会清除你之前的备份） XenServer 6.1 升级到 XenServer 7.6 安装介质 XenServer 6.1 升级到 XenServer 7.6 验证安装源 XenServer 6.1 升级到 XenServer 7.6 验证成功 XenServer 6.1 升级到 XenServer 7.6 开始安装 XenServer 6.1 升级到 XenServer 7.6 备份 XenServer 6.1 升级到 XenServer 7.6 开始安装 XenServer 6.1 升级到 XenServer 7.6 提示你需要安装额外的其他包 XenServer 6.1 升级到 XenServer 7.6 安装过程中 XenServer 6.1 升级到 XenServer 7.6 安装完成,提示重启 XenServer 6.1 升级到 XenServer 7.6 安装完成 开始重启显示主菜单 XenServer 6.1 升级到 XenServer 7.6 安装完成，进入主控台，显示已经升级到XenServer7.6 XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接 XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接，查看之前保存的数据 XenServer 6.1 升级到 XenServer 7.6 升级完成，并用XenCenter连接，查看之前保存的数据 如果要回滚到之前的Xen版本，重新按照上面步骤执行即可，到选择执行回退即可
Vmware模拟安装 Citrix XenServer 6.1.0 系统架构图 XenServer服务器的系统需求 [CPU] 一或多个 64 位元 x86 CPU，至少 1.5 GHz，(建议使用 2 GHz 或更快的多核心) CPU 若要支持执行 Windows 的 VM，需要具有 “一 "或 “多个" CPU 的 Intel VT 或 AMD-V 64 位元 x86 系统 (注意：要执行 Windows VM，需在 XenServer 主机上 “启用虚拟化的硬件支持 ") [RAM] 至少 2 GB (建议使用 4 GB 或 以上) [磁盘空间] 空间容量 至少有 16 GB 磁盘空间 (建议使用 60 GB 磁盘空间) 的本机连接储存装置 (PATA、SATA、SCSI) 安装系统 XenServer 主机控制网域 会建立 “两个 " 4 GB 的磁盘分割区 [参考连结 (查询 XenServer 的硬体需求) http://hcl.vmd.citrix.com ] [网络] 100 Mbit/s 或更快的 NIC (建议使用多个 NIC，以达到更好效果) 若要达到更快的 P2V 和汇出 / 汇入资料传输以及 VM 即时移转， (建议使用 1 GB 以上的 NIC) 安装 XenServer 6.1.0 点选 Create a New Virtual Machine 点选 Next 点选 Workstation 12.0 点选 Next 选择 I will install the operating system later. 点选 Next 点选 Other 点选 Other 64-bit 点选 Next 输入 虚拟机名称 (XenServer88) 选择 存放位置 点选 Next 选择 Next 输入 2048 MB (2 GB) 点选 Next [Ps. 官方建议 内存容量 4 GB 以上] 点选 Use bridged networking 点选 Next 点选 Next 点选 Next 点选 Create a new virtual disk 点选 Next 输入 Disk Size (500 GB) 选择 Split virtual disk into multiple files (未来移转方便使用) 点选 Next 选择 Browse (存放磁碟位置 .vmdk) 点选 Next 点选 Finish 点选 XenServer88 点选 Settings (右键) 选择 Hardware 点选 Processors 勾选 Virtualize Intel VT-x/EPT or AMD-V/RVI 点选 OK [Ps. 让 CPU 支持 Virtualize Intel VT-x/EPT or AMD-V/RVI 选项] [因将 XenServer 安装至 VMware Workstation 中 形成 虚拟平台结构 (Nested) ] 点选 XenServer88 点选 Close Tab (右键) 开启 档桉总管 输入 XenServer88 (VMware 组态设定值 位置) 点选 XenServer88.vmx (右键) 点选 记事本 输入 hypervisor.cpuid.v0 = “FALSE" 输入 mce.enable = “TRUE" 点选 档桉 (储存档桉) 点选 Open with VMware Workstation [挂载 XenServer CD] 点选 XenServer88 点选 Settings 选择 CD/DVD (IDE) 选择 Use ISO image file (安装 XenServer-6.1-install-cd.iso) 点选 OK 点选 XenServer88 点选 Power (Start Up Guest) 等候 自动执行 选择 键盘模式 ([qwerty] us ) 点选 Ok 点选 Ok [Ps. 确认安装 XenServer 6.1.0] 点选 Accept EULA [Ps. 接受证书许可协议] 点选 sda – 500 GB 点选 Enable thin provisioning (Optimized storage for XenDesktop) 点选 Ok [Ps. 选择 虚拟机储存磁碟位置 (目前有一颗内接硬碟) ] [建议将 Enable thin provisioning 启用 (未来有关 XenDesktop 应用在资料的储存 效能最佳化) ] [但注意 系统会自动建立 “2 个 4GB 磁碟分割区 " 提供 Control Domain 功能使用] 选择 Local Media 选择 Ok 点选 Yes [Ps. 是否要连同补充套件一并安装 (如非购买付费授权) 点选 No ] 点选 Skip verification (跳过验证) 点选 Verify installation source (验证安装来源) 点选 Ok [Ps. 是否要针对目前的安装媒体进行检查 (确保安装过程中发生问题) ] 等候 验证 Base Pack 出现 completed successfully : no problems were found. 点选 Ok 输入 root (Password) 点选 Ok [Ps. 密码必须自少 六个字以上] 选择 Static configuration (静态 IP) 输入 192.168.110.88 (IP) 输入 255.255.255.0 (Subnet mask) 输入 192.168.110.254 (Gateway) 点选 Ok 输入 XenServer88 (Hostname) 输入 192.168.110.70 (DNS Server IP Address) 点选 Ok 选择 Asia (地理位置 时区设定) 点选 Ok 选择 Taipei (城市 时区设定) 点选 Ok 选择 Using NTP (选择透过网际网路的 NTP 伺服器 自动校对) 点选 Ok 输入 tw.pool.ntp.org 点选 Ok [ 参考地区 http://www.pool.ntp.org/zone/asia ] 选择 Install XenServer [Ps. 最后确认 可以点选 Back 进行修改 否则进行安装] 等候 安装开始进行 等候 进行安装 Base Pack 点选 Skip [Ps. 目前并没有此套件的安装媒体] [Ps. 如点选 Ok 会说明没有需要安装的档桉 点选 Back] 等候 完成安装 点选 Ok [Ps. 安装完成 进行 Reboot (重新启动服务器) ] 确认 重新开机中 等候 开机 等候 开机中 等候 正在执行程序 等候 正在启用 确认 状态完成 (Status Diskplay) 确认 XenServer 6.1.0 版本 确认 192.168.110.88 (IP) 点选 Local Command Shell [查询 Linux Kernel 版本] 输入 uname -a [Ps. 确认 Linux XenServer 2.6.32.43-0.4.1.xs1.6.10.734.170748xen] [查询 XenServer 相关提示资讯] 输入 cat /etc/issue [Ps. 确认 Citrix XenServer Host 6.1.0] [查询 XenServer 完整系统版本资讯] 输入 lsb_release -a [查询 uuid] 输入 xe host-list [查询 New Disk ID] 输入 ll //dev/disk/by-id [安装 XenServer 主控台 (XenServer78) ] 开启 Internet Explorer 输入 http://192.168.110.88/ (Citrix Systems Inc. XenServer 6.1.0) (XenServer88) 点选 XenCenter installer [解决 安全性设定不容许下载档桉] 点选 确定 点选 设定 (网际网路选项) 点选 安全性 点选 网际网路 (自订等级) 点选 下载 (档桉下载) 确认 启用 点选 确定 点选 是 输入 https://192.168.110.88/ 点选 XenCenter installer 点选 储存 (XenCenter.msi) (48.5 MB) 点选 XenCenter 点选 Next [Ps. 欢迎安装 Citrix XenCenter 安装精灵] 点选 Next [Ps. 也可以选择 All Users] 点选 Install 等候 安装中 点选 Finish 点选 开始 确认 新增 Citrix XenCenter 点选 Citrix XenCenter 等候 开启应用程式中 点选 Yes [Ps.(说明) 需要定期连线至 XenServer 检查和更新最新版本 ] 点选 Help (About XenCenter) 确认 XenCenter version 6.1 版本 点选 OK 参考网址: https://keycats.com/2015/11/01/%E5%BB%BA%E7%BD%AE-citrix-xenserver-6-1-0-%E8%A8%AD%E5%AE%9A%E5%AE%89%E8%A3%9D-xencerver/ 文章作者 明哥 文章地址 https://www.pvcreate.com/index.php/archives/187/ 创建时间 2019-02-20 关注订阅 微信订阅号 开源项目 https://gitee.com/lookingdreamer 工具市场 https://gitee.com/lookingdreamer/SPPPOTools