KVM虚拟化集群技术概述

合集下载

KVM虚拟化集群技术概述

KVM虚拟化集群技术概述

KVM虚拟化集群技术概述KVM虚拟化集群技术概述一、虚拟化集群介绍、设计思路及架构使用虚拟化集群的目标是克服单机虚拟化的局限性,利用技术手段提高虚拟机可用性,最终达到业务不中断或者减少中断时间,确保业务数据更安全的目标。

1. 虚拟化集群介绍1)什么是虚拟化集群虚拟机集群最显著的特征是有共享存储,因为有了共享存储,虚拟机就可以实现非常快速的在线迁移,并在虚拟化层配置高可用。

笔者在生产环境使用的集群有两种存储方式,基于商业存储和基于开源分布式文件系统。

2)虚拟化集群的高可用和基于应用层高可用的区别高可用是经常用到的运维技术,在系统、网络、数据库、Web业务等各个应用层面都有使用。

高可用技术是指至少有主备两个节点,当主节点故障的时候,迅速切换到备用节点。

为了避免备用节点误判,有时候还有第三个节点,或者主节点和备用节点共同能访问到的存储空间,用于做仲裁判断。

应用层面的高可用还有一个特点,就是一般都有浮动IP,当切换发生的时候,IP从主节点漂移到备用节点。

应用层面的高可用一般切换时间比较快,从几毫米到几秒中,同时应用层面的高可用一般需要专用软件,比如常用的Keepalived,Heartbeat 等。

虚拟化层面的高可用是虚拟机系统层面的高可用,即当一台计算节点故障的时候,在另外一台计算节点上自动将故障节点上的虚拟机启动起来。

注意如果虚拟机上的业务不能做到开机自启动,即使虚拟机自动启动了,并不能保证业务层面的自动恢复!另外还有一个问题,就是即使虚拟机启动起来了,当启动到一半虚拟机的系统卡住了,也不能及时恢复业务!虚拟化层的高可用一般业务恢复实际是系统重启的时间,加上业务开机自启动的时间,通常是分钟级别。

虽然虚拟化层高可用有业务不能恢复的风险,业务恢复时间也相对比较长,但是虚拟化层高可用有个非常巨大的优势,就是不需要在应用层面配置,大大的拓宽了高可用的适用范围,使原来在应用层难以使用高可用技术的应用,也能做到高可用,尤其是在某些专用的软件领域。

详解虚拟化技术QEMU-KVM入门

详解虚拟化技术QEMU-KVM入门

详解虚拟化技术QEMU-KVM⼊门⼀.QEMU、KVM、QEMU-KVMQEMU提供⼀系列的硬件模拟设备(CPU,⽹卡,磁盘等),客户机指令都需要QEMU翻译,因⽽性能较差。

KVM是linux内核提供的虚拟化,可以⽤来进⾏vCPU的创建与运⾏,虚拟内存的地址空间分配,指令执⾏效率较⾼,但缺少IO设备的虚拟化。

QEMU-KVM就是KVM与QEMU的结合,KVM负责CPU虚拟化+内存虚拟化,QEMU模拟其它IO设备。

⼆.安装并创建虚拟机安装qemu-kvm软件faramita2016@linux-l9e6:~> zypper install qemu-kvm // Ubuntu系统使⽤apt-get install qemu-kvm创建qcow2格式虚拟机磁盘⽂件faramita2016@linux-l9e6:~> qemu-img create -f qcow2 vdisk.img 5G // 磁盘⼤⼩5G使⽤debian镜像安装虚拟机,order=dc优先使⽤CD-ROW(d),后使⽤硬盘(c),内存默认128m,使⽤-m 512指定faramita2016@linux-l9e6:~> qemu-kvm -cpu host -cdrom debian-9.4.0.iso -hda vdisk.img -boot order=dc三.设置虚拟机使⽤⽹桥bridge模式宿主机中执⾏,qemu-bridge-helper增加当前⽤户可执⾏权限,⽤来⾃动添加⽹络后端tap设备faramita2016@linux-l9e6:~> sudo chmod o+x /usr/lib/qemu-bridge-helper宿主机中执⾏,-net nic为虚拟机创建nic⽹卡(⽹络前端),-net bridge指定宿主机中使⽤⽹桥(⽹络后端)faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 // 指定⽹桥br0虚拟机中执⾏,编辑/etc/network/interfaces,设置静态IProot@debian:~# vi /etc/network/interfaces# The primary network interfaceallow-hotplug ens3#iface ens3 inet dhcpiface ens3 inet staticaddress 10.0.0.8netmask 255.0.0.0gateway 10.0.0.1hwaddress ether 52:54:00:12:34:56 // 设置mac地址,前3组不变root@debian:~# ifup ens3 // 打开ens3⽹络接⼝,ifdown关闭⽹络接⼝root@debian:~# /etc/init.d/networking restart // 重启⽹络服务虚拟机中执⾏,编辑/etc/resolv.conf,设置DNSroot@debian:~# vi /etc/resolv.confnameserver 8.8.8.8 // Google DNS四.设置虚拟机为⾮图形模式虚拟机中执⾏,编辑/etc/default/grub⽂件,添加console=ttyS0启动参数root@debian:~# vi /etc/default/grubGRUB_DEFAULT=0 // 默认启动项GRUB_TIMEOUT=0 // 默认菜单项停留时间GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`GRUB_CMDLINE_LINUX_DEFAULT="quiet" // 默认内核启动参数GRUB_CMDLINE_LINUX="console=ttyS0" // ⼿动添加内核启动参数,添加console=ttyS0虚拟机中执⾏,更新grub配置,并重启root@debian:~# update-grubroot@debian:~# shutdown -h nowa.宿主机中执⾏,添加-nographic参数创建虚拟机,当前shell前台创建虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -nographicb.宿主机中执⾏,添加-display none -daemonize参数创建虚拟机,当前shell后台创建虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -display none -daemonize五.以只读⽅式启动虚拟机a.创建⼀个快照⽤qemu-img命令创建⼀个原始镜像的快照faramita2016@linux-l9e6:~> qemu-img create -f qcow2 -b vdisk.img snapshot.img使⽤快照⽂件启动虚拟机faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda snapshot.img -net nic -net bridge,br=br0 -nographicb.使⽤临时快照原理:创建⼀个临时快照,虚拟机启动之后,⾃动删除快照⽂件faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

kvm虚拟化技术实战与原理解析pdf

kvm虚拟化技术实战与原理解析pdf

kvm虚拟化技术实战与原理解析pdf KVM虚拟化技术实战与原理解析KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它通过利用Linux内核来创建和管理虚拟机,同时提供了高性能和快速的虚拟化环境。

本文将重点介绍KVM虚拟化技术的实战应用和原理解析。

一、KVM虚拟化技术概述KVM虚拟化技术是一种基于硬件的全虚拟化解决方案,它允许将一台物理机划分为多个虚拟机,并在每个虚拟机中运行不同的操作系统和应用程序。

KVM利用了Linux内核的虚拟化模块(KVM模块)来创建和管理虚拟机,并通过QEMU(Quick Emulator)提供了对虚拟硬件设备的模拟。

二、KVM虚拟化技术的实战应用1. 虚拟化服务器KVM虚拟化技术可以将一台物理服务器划分为多个虚拟服务器,每个虚拟服务器都具有独立的操作系统和资源。

这样可以提高服务器的利用率,节省硬件成本,并简化服务器的管理和维护。

同时,KVM 虚拟化技术还支持虚拟机的热迁移和快照功能,方便进行故障恢复和资源调度。

2. 云计算平台KVM虚拟化技术是目前主流的云计算平台使用的关键技术之一。

通过KVM虚拟化技术,云服务提供商可以将一台物理服务器划分为多个虚拟机,为不同用户提供独立的计算资源。

这样可以实现资源的弹性分配和动态扩缩容,提高云服务的灵活性和可扩展性。

3. 虚拟化桌面环境KVM虚拟化技术可以将一台物理桌面主机划分为多个虚拟桌面环境,每个虚拟桌面环境都具有独立的操作系统和应用程序。

这样可以实现桌面资源的集中管理和统一部署,减少用户端的硬件要求,并提高桌面环境的安全性和稳定性。

三、KVM虚拟化技术的原理解析1. KVM模块KVM虚拟化技术利用了Linux内核的虚拟化模块(KVM模块)来实现和管理虚拟机。

KVM模块利用虚拟化扩展技术,将物理机的处理器和内存虚拟化为多个虚拟机,每个虚拟机都能够独立运行不同的操作系统和应用程序。

2. QEMU在KVM虚拟化技术中,QEMU提供了对虚拟硬件设备的模拟。

KVM虚拟化(一)——介绍与简单使用

KVM虚拟化(一)——介绍与简单使用

KVM虚拟化(一)——介绍与简单使用KVM(Kernel-based Virtual Machine)是一种基于Linux内核的开源虚拟化技术,它允许在一台物理服务器上运行多个虚拟机。

KVM使用了Linux内核的虚拟化扩展,支持x86、x86-64、ARM等处理器架构。

KVM的核心思想是将Linux内核转化为一个虚拟化的管理层,这个管理层被称为Hypervisor。

Hypervisor负责管理虚拟机的创建、销毁和调度,同时它也负责为虚拟机提供一些虚拟设备,如虚拟CPU、虚拟内存、虚拟磁盘等。

KVM虚拟机运行在用户空间下,由Linux内核作为宿主机。

KVM的优势包括:1.性能高效:由于KVM直接运行在硬件上,因此虚拟机与宿主机几乎没有性能差异。

2. 安全可靠:KVM利用Linux内核的安全机制,可以隔离虚拟机之间,提供更高的安全性。

3. 灵活性:KVM虚拟机能够支持多种操作系统,如Linux、Windows、FreeBSD等。

4. 易于管理:KVM提供了丰富的管理工具,如virsh和virt-manager,可以方便地创建、配置和监控虚拟机。

下面我们来看一下KVM的简单使用。

首先需要确认宿主机是否支持KVM虚拟化。

可以通过以下命令来确认:```shellegrep -c '(vmx,svm)' /proc/cpuinfo```如果输出结果大于0,则表示宿主机支持KVM虚拟化。

接下来,我们需要安装KVM软件包。

在大多数Linux发行版中,kvm 和libvirt已经默认安装。

如果没有安装,可以通过以下命令来安装:```shellsudo apt-get install qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils```安装完成后,我们可以通过以下命令来确认KVM是否安装成功:```shellvirsh list```如果输出结果是空的,则表示KVM安装成功。

KVM集中管理解决方案

KVM集中管理解决方案

KVM集中管理解决方案KVM(kernel-based virtual machine)是一种基于Linux内核的虚拟化技术,它可以将一台物理主机划分为多个虚拟机,并在每个虚拟机中运行独立的操作系统。

KVM虚拟化技术的主要优势之一是其能够提供高性能和低延迟的虚拟化环境。

然而,对于大规模的KVM部署来说,有效地管理和监控虚拟机变得非常重要。

因此,为了解决这个问题,可以采用一些KVM集中管理解决方案。

1. oVirt:oVirt是一个开源的虚拟化管理平台,它提供了对KVM虚拟机进行集中管理的功能。

oVirt提供了一个基于Web的管理界面,允许管理员轻松地创建和配置虚拟机、存储和网络资源。

此外,oVirt还提供了高级功能,如虚拟机迁移、负载均衡和自动化任务等。

2. Proxmox VE:Proxmox VE是一个基于KVM和LXC的虚拟化管理平台,它提供了一个易于使用的Web界面,用于管理和监控KVM虚拟机。

Proxmox VE支持高可用性集群、存储集成和备份/恢复功能,使管理员能够轻松地管理大规模的KVM虚拟化环境。

3. Kimchi:Kimchi是一个简单而轻量级的虚拟化管理工具,它专为管理KVM虚拟机而设计。

Kimchi提供了一个基于Web的用户界面,允许管理员远程管理和监控KVM虚拟机。

它还支持虚拟机的创建、删除、启动和停止等操作。

4. Virt-Manager:Virt-Manager是一个基于GTK+的图形化管理工具,用于管理KVM虚拟机。

Virt-Manager提供了一个用户友好的界面,允许管理员对虚拟机进行创建、配置和监控。

此外,Virt-Manager还支持虚拟机的迁移、快照和克隆等操作。

以上这些KVM集中管理解决方案都提供了一种简单而有效的方式来管理和监控大规模的KVM虚拟机环境。

无论您是一个小型企业还是一个大型数据中心,这些解决方案都可以帮助您更好地利用和管理KVM虚拟化技术。

根据您的需求和预算,您可以选择适合您的解决方案,并开始构建一个高性能、可靠和易于管理的虚拟化环境。

KVM 介绍(2):CPU 和内存虚拟化

KVM 介绍(2):CPU 和内存虚拟化

学习KVM 的系列文章:(1)介绍和安装(2)CPU 和内存虚拟化(3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton)(4)I/O PCI/PCIe设备直接分配和SR-IOV(5)libvirt 介绍(6)Nova 通过libvirt 管理QEMU/KVM 虚机(7)快照(snapshot)(8)迁移(migration)1. 为什么需要CPU 虚拟化X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。

x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。

Ring 是指CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之……就Linux+x86 来说,操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别 Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等等。

应用程序的代码运行在最低运行级别上ring3上,不能做受控操作。

如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。

这个过程也称作用户态和内核态的切换。

那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在ring0 的,客户操作系统就不能也在ring0 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。

所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。

虚机怎么通过VMM 实现Guest CPU 对硬件的访问,根据其原理不同有三种实现技术:1. 全虚拟化2. 半虚拟化3. 硬件辅助的虚拟化1.1 基于二进制翻译的全虚拟化(Full Virtualization with Binary Translation)客户操作系统运行在 Ring 1,它在执行特权指令时,会触发异常(CPU的机制,没权限的指令会触发异常),然后VMM 捕获这个异常,在异常里面做翻译,模拟,最后返回到客户操作系统内,客户操作系统认为自己的特权指令工作正常,继续运行。

KVM的工作原理

KVM的工作原理

KVM的工作原理KVM是一种虚拟化技术,全称为Kernel-based Virtual Machine,它允许将一台物理主机分割成多个虚拟机,每个虚拟机都可以运行独立的操作系统和应用程序。

KVM的工作原理是通过在Linux内核中实现虚拟化功能,将虚拟机监视器(VMM)嵌入到内核中,使得虚拟机可以直接访问硬件资源。

KVM的工作原理可以分为以下几个关键步骤:1.硬件虚拟化支持:KVM依赖于处理器的硬件虚拟化扩展,如Intel的VT-x和AMD的AMD-V。

这些扩展提供了虚拟化所需的指令集和特权级别,使得虚拟机可以在一个受限的环境中运行。

2.虚拟化模块加载:在Linux内核中,KVM模块负责将物理主机转变为虚拟机监视器。

当KVM模块被加载时,它会创建一个特殊的设备文件/dev/kvm,用于与用户空间的虚拟机管理程序进行通信。

3.虚拟机创建:当用户空间的虚拟机管理程序(如QEMU)启动时,它会通过与KVM模块的交互来创建一个虚拟机。

虚拟机管理程序会为虚拟机分配必要的资源,如内存、CPU和设备模拟器。

4.虚拟机运行:一旦虚拟机创建完成,它就可以在物理主机上运行。

KVM模块负责将虚拟机的指令转发给物理处理器,并对虚拟机的访问硬件资源进行隔离和管理。

5.设备模拟器:KVM通过设备模拟器来模拟虚拟机对硬件设备的访问。

设备模拟器将虚拟机对设备的请求转发给物理主机上的实际设备,并将设备的响应传递回虚拟机。

6.内存管理:KVM使用一种称为“二级页表”的技术来管理虚拟机的内存。

物理主机上的内存被分成小块,每个虚拟机都有自己的页表来映射虚拟地址到物理地址。

7.虚拟机迁移:KVM支持虚拟机的迁移,即将虚拟机从一台物理主机迁移到另一台物理主机上。

这通过将虚拟机的状态保存到磁盘上,然后在目标主机上恢复虚拟机的状态来实现。

总结起来,KVM的工作原理是通过在Linux内核中实现虚拟化功能,将物理主机分割成多个虚拟机,并提供对硬件资源的访问和管理。

KVM介绍

KVM介绍

一项目背景为公司其他部门提供的虚拟机运行在Vmware,Citrix的产品上,它们各自都是由相应的客户端管理虚拟机。

为了能够通过WEB方式对虚拟机进行统一化管理,我们开始寻找已有产品的官方解决方案,但是Vmware,Citrix官方的虚拟化WEB管理工具都是需要付费购买。

本身Vmware,Citrix的产品也不是开源的,从公司的利益以及其他技术方面的角度考虑,我们将采用开源的虚拟化平台软件来完全更换现有的商用虚拟化平台软件。

二开源虚拟化管理程序的选用熟知的开源虚拟化管理程序有XEN和KVM两种。

1.XEN介绍XEN是一个开放源代码的虚拟机管理程序。

由剑桥大学开发,它打算在单个计算上运行多达128个具有完全功能的操作系统。

在旧的处理器上运行XEN,操作系统必需进行显式地修改以在XEN上运行。

这使得XEN无需特殊硬件平台支持,就能达到高性能的虚拟化。

XEN通过一种叫做半虚拟化的技术获得高性能的表现。

在比较旧的硬件平台上,没有CPU的虚拟化支持,XEN可以通过半虚拟化获得比较高的性能。

半虚拟化使用虚拟机管理程序分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟化管理程序进行很好地协作,半虚拟化技术的优点是性能高,特别是I/0方面,但是操作系统需要进行更改,用户体验方面不强。

XEN也支持全虚拟化技术。

全虚拟化技术也称为原始虚拟化技术。

它使用虚拟机协调客户操作系统和原始硬件。

全虚拟化最大的优点是操作系统不需经过任何修改,但是性能方面不如半虚拟化。

2.KVM介绍KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机。

KVM项目代表下一代开源虚拟化。

该项目的目标是通过建立在先前的技术和充分利用当今的硬件条件下创造出一个现代的虚拟化管理程序。

KVM以一种可加载模块的方式移植到linux内核中,它将linux 转换成一种可以裸机安装的虚拟化管理程序。

精品课件-KVM虚拟化技术基础与实践-第一章

精品课件-KVM虚拟化技术基础与实践-第一章

第1章 虚拟化与云计算
XEN与VMware等基本类似,主要不同之处是需要改动内核, 但都是通过软件模拟硬件层,然后在模拟出来的硬件层上 安装完整的操作系统,然后在操作系统上跑应用。其核心 思想可以用“模拟”两个字来概括,即用软的模拟硬的, 并能实现异构操作系统的互操作。 第四个阶段:是近几年开始出现或者被人注意的虚拟化技 术,主要有芯片级的虚拟化、操作系统的虚拟化和应用层 的虚拟化。
第1章 虚拟化与云计算
CPU虚拟化: VMware通过CPU虚拟化技术解决的难题是如何在一个操作 系统实例中运行多个应用。实现这一任务的困难之处在于 每一个应用都与操作系统之间有着密切的依赖关系。一个 应用通常只能运行于特定版本的操作系统和中间件之上, 这就是Windows用户常常提到的“DLL地狱”。因此,大多 数用户只能在一个Windows操作系统实例上运行一种应用, 操作系统实例独占一台物理服务器。
虚拟化与云计算
虚拟化概述 虚拟化概念分类 主流虚拟化产品概述
第1章 虚拟化与云计算
1.1 虚拟化概述
1.1.1 云计算概念及其体系结构 1、云计算的概念
狭义的云计算是指IT基础设施的交付和使用模式,指 通过网络以按需、易扩展的方式获得所需的IT基础设施。 云计算厂商通过分布式计算和虚拟化技术搭建数据中心或 超级计算机,以免费或按需租用的方式向技术开发者或者 企业用户提供数据存储、分析以及科学计算等服务。
第1章 虚拟化与云计算
1.1.4 虚拟化与云计算的关系 云计算其实是包含了许多核心技术的概念,比如
虚拟化、并行计算、分布式数据库、分布式存储等。其中 虚拟化技术是云计算的基石,是云计算服务得以实现的最 关键的技术。通过虚拟化技术可以将各种硬件、软件、操 作系统、存储、网络以及其他IT资源进行虚拟化,并纳入 到云计算管理平台进行管理。这样一来,IT能力都可以转 变为可管理的逻辑资源,通过互联网可以把这些资源像水、 电和天然气一样提供给最终用户,以实现云计算的最终目 标。

KVM虚拟化技术

KVM虚拟化技术

KVM虚拟化技术能够在单个服务器硬件平台上运行多个虚拟机(vm)的能力在如今的it基础架构中实现了了成本、系统管理和灵活性等方面的优势。

在单个硬件平台上托管多个虚拟机,可减少硬件开支并帮助最大限度降低基础架构成本,比如能耗和制冷成本。

将操作方式不同的系统作为虚拟机整合在一个硬件平台上,可简化通过管理层(比如开源虚拟化库(libvirt))和基于它的工具(比如图形化的虚拟机管理器(vmm))对这些系统的管理工作。

虚拟化还提供了如今面向服务的高可用性it操作中所需的操作灵活性,支持将正在运行的虚拟机从一个物理主机迁移到另一个主机,以满足硬件或物理场所问题的需要,或者通过负载平衡最大限度提高性能,或者应对日益增长的处理器和内存需求。

开源桌面虚拟化应用程序(如VirtualBox)允许用户甚至小型企业(中小型企业单位或中小型企业)环境在单个物理系统上运行多个虚拟机。

然而,VirtualBox等虚拟化环境在桌面或服务器系统上作为客户端应用程序运行。

企业计算环境需要一个更接近物理硬件(“裸机”)的高性能、面向服务器的虚拟化环境,它支持虚拟机的执行,而操作系统开销要少得多。

裸机虚拟化机制可以更好地管理硬件资源,并充分利用大多数64位x86和PowerPC处理器内置的虚拟化硬件支持。

裸机虚拟化机制使用一个称为虚拟机管理程序的小操作系统,来管理和计划虚拟机以及相关的资源。

裸机虚拟机管理程序称为type1虚拟机管理程序。

两种最流行的裸机开源虚拟化技术是kernelvirtualmachine(kvm)和xen。

尽管xen和kvm各有自己的优点和爱好者,但kvm的流行度和复杂度在不断增加,它现在已成为大多数linux发行版的推荐默认虚拟化机制。

比较KVM和Xenxen虚拟化环境在传统上提供了linux系统上性能最高的开源虚拟化技术。

xen使用一个虚拟机管理程序来管理虚拟机和相关的资源,还支持半虚拟化,这可在“知道”自己已实现虚拟化的虚拟机中提供更高的性能。

KVM:驶入虚拟化快车道:Linux内核虚拟化KVM详解

KVM:驶入虚拟化快车道:Linux内核虚拟化KVM详解
的开 发缩 短 了这方 面 的 差距 。最 新 的 I n t e l 解 KVM 的 一些 特 性 。一 旦 完 成 W i n d o ws 1 . 1 e ) 。注意测试硬件的处理器是 I n t e l
V T( 虚 拟技 术 ,V i r t u a l i z a t i o n T e c h n o l o g y ) 系 统的 安 装 ,W i n d o ws 客 户机 甚 至 可以 在 E 6 6 0 0( 图2 、3 ) 。 和A MD S V M( 安全 虚 拟 机 ,S e c u r e Vi r - 未 经修 改 的 Q E Mu上运 行 , 而 且 重 新编 译 t u a l Ma c h i n e ) 从硬 件 上 支持 了虚 拟技 术 , 可 以 发现 k q e mu和 KVM 比单 独 的
案 如 Xe n, O p e n VZ和 V s e r v e r , 它们 都
图 1
P CMa r k 2 0 0 2 CP U
基 于其 它的 方法 , 都 在努 力集 成到 L i n u x
内核 之 中 ,但 KVM 成 了最 后 的 赢 家 。 在 KVM 模 型 中 , 每 一个 虚 拟机 都 是
维普资讯
Op e n S 。 u r c e 圈ห้องสมุดไป่ตู้
L i n u x内核虚 拟化 K V M详解
当 KV M集成到 L i n u x官方内核 当中 ,它将变成一个 日用品 。
口 宋 吉广
L i n u x 2 . 6 . 2 0内核 包含 一 个全 新 的 虚 拟 技 术 : KVM( Ke r n e l - b a s e d Vi r t u a l Ma c h i n e ) ,全 称 为基 于 内核 的 虚拟 机 。 它 很 友好 , 稳 定和 高 性 能 。 KVM 发 布到 网 上后 , 很 容 易就 赶 上 其 它 的 虚 拟 化 解 决 方

服务器虚拟化技术了解KVM、Xen、VMware等常见方案

服务器虚拟化技术了解KVM、Xen、VMware等常见方案

服务器虚拟化技术了解KVM、Xen、VMware等常见方案服务器虚拟化技术是当今互联网时代中不可或缺的重要技术之一,它可以帮助企业提高服务器资源的利用率,降低硬件成本,简化管理维护,提高灵活性和可靠性。

在众多的服务器虚拟化技术中,KVM、Xen和VMware是比较常见的方案。

本文将对这三种常见的服务器虚拟化技术进行介绍和比较,帮助读者更好地了解它们的特点和适用场景。

一、KVM(Kernel-based Virtual Machine)KVM是一种基于Linux内核的开源虚拟化技术,它将Linux内核转变为一个虚拟化的hypervisor,可以让Linux作为主机操作系统来运行多个虚拟机。

KVM支持硬件虚拟化,可以充分利用现代处理器的虚拟化扩展功能,提供接近原生性能的虚拟化体验。

KVM的优点:1. 性能优秀:KVM利用硬件虚拟化技术,可以实现接近原生性能的虚拟化,适合对性能要求较高的应用场景。

2. 安全可靠:KVM作为Linux内核的一部分,得到了广泛的社区支持和更新,具有较高的安全性和稳定性。

3. 成本低廉:KVM是开源软件,免费使用,可以帮助企业降低虚拟化成本。

KVM的缺点:1. 管理复杂:KVM的管理工具相对较为简陋,对于初学者来说可能需要一定的学习成本。

2. 生态相对较弱:相比商业虚拟化解决方案,KVM的生态系统相对较弱,可能无法提供完善的支持和解决方案。

二、XenXen是一种开源的虚拟化软件,最初由剑桥大学开发,后来成为Linux Foundation的项目之一。

Xen采用裸机hypervisor的架构,可以在硬件和操作系统之间提供一个独立的虚拟化层,实现多个虚拟机的隔离运行。

Xen的优点:1. 高性能:Xen采用裸机hypervisor的设计,可以实现接近原生性能的虚拟化,适合对性能要求较高的应用场景。

2. 安全稳定:Xen具有较高的安全性和稳定性,可以提供可靠的虚拟化环境。

3. 灵活性:Xen支持多种虚拟化模式,可以根据不同的需求选择适合的虚拟化方式。

KVM虚拟化技术方案详解

KVM虚拟化技术方案详解
3. KVM特性功能介绍
第23页
I/O虚拟化 - 设备拓扑、设备语义
设备拓扑
PCIe SATA Disk
USB host controller PCIe
USB
USB Device
Processor
Memory
Intel QuickPath Interconnect
Display
PCIe IOH
NIC
– 若有可共享4k页,大页拆成4k小页共享
Windows 零页内存
价值:节省内存,提高虚拟机密度 Tradeoff: CPU vs Memory space
VCPU 运行/退出处理
I/O操作
非I/O操作 退出处理
ioctl返回 Heavyweight exit I/O操作模拟
客户虚拟机 Guest模式 非根模式
KVM Kernel模式 根模式,特权级0
Qemu User模式 根模式,特权级3
第14页
虚拟化层开销
虚拟化层的指令都运行在root模式,vm exit和vm entry之间的指令周期可以当作虚拟化层开销。
中断
第24页
I/O虚拟化原理 - 虚拟化问题
I/O虚拟化需要解决两个问题 设备发现:
需要控制各虚拟机能够访问的设备;
访问截获:
通过I/O端口或者MMIO对设备的访问; 设备通过DMA与内存进行数据交换;
第25页
KVM I/O设备虚拟化 - 全模拟
用软件完全模拟一个特定的设备
保持一样的软件接口,如:PIO、MMIO、 DMA、中断等
Vhost-blk架构
第28页
Mbits / %CPU usec 1 8 21 35 64

Openvz,Xen,Kvm三种虚拟化技术介绍

Openvz,Xen,Kvm三种虚拟化技术介绍

OpenVZ介绍OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。

OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。

与VMware这种虚拟机和Xen虚拟化技术相比,OpenVZ的host OS和guest OS都必需是Linux(虽然在不同的虚拟环境里可以用不同的Linux发行版)。

但是,OpenVZ 声称这样做有性能上的优势。

根据OpenVZ网站的说法,使用OpenVZ与使用独立的服务器相比,性能只会有1-3%的损失。

Xen介绍Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。

它打算在单个计算机上运行多达100个满特征的操作系统。

操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。

这使得Xen无需特殊硬件支持(Xen HVM必须要CPU 支持虚拟化特征),就能达到高性能的虚拟化。

Kvm介绍KVM是Kernel Virtual Module的简写。

KVM是红帽5.4发行版中推出的最新虚拟化技术。

KVM是进入Linux内核的虚拟化项目,它刚刚起步,还不为众人所熟知。

但随着RedHat下一步推广KVM力度的加大,相信不久的将来KVM会逐渐占据市场的主要位置。

现在所说的虚拟化,一般都是指在CPU硬件支持基础之上的虚拟化技术。

KVM也同hyper-V、Xen一样依赖此项技术。

没有CPU硬件虚拟化的支持,KVM是无法工作的。

准确来说,KVM是Linux的一个模块。

可以用modprobe去加载KVM模块。

加载了模块后,才能进一步通过其他工具创建虚拟机。

但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去作事情:还必须有一个用户空间的工具才行。

这个用户空间的工具,开发者选择了已经成型的开源虚拟化软件QEMU。

说起来QEMU也是一个虚拟化软件。

kvm原理

kvm原理

kvm原理KVM原理。

KVM是一种开源的虚拟化技术,它允许在一台物理服务器上同时运行多个虚拟机。

KVM的全称是Kernel-based Virtual Machine,它是基于Linux内核的虚拟化解决方案。

KVM利用了Linux内核中的虚拟化技术,通过将物理服务器的资源划分成多个虚拟环境,使得每个虚拟机都可以独立运行操作系统和应用程序。

KVM的核心原理是利用虚拟化扩展(Intel VT或AMD-V)来实现虚拟机的运行。

在KVM中,物理服务器上的Linux内核充当了Hypervisor的角色,它负责管理和分配物理服务器的资源,并为每个虚拟机提供虚拟的硬件接口。

这样,每个虚拟机就可以像独立的物理服务器一样运行自己的操作系统和应用程序。

在KVM中,虚拟机的创建和管理是通过一组内核模块和用户空间工具来实现的。

首先,用户可以使用命令行工具(如virsh和qemu)或者图形界面工具(如virt-manager)来创建和配置虚拟机。

然后,KVM利用QEMU(Quick Emulator)来模拟虚拟机的硬件环境,包括处理器、内存、磁盘和网络设备等。

最后,KVM通过内核模块来管理虚拟机的运行,包括调度虚拟机的运行、处理虚拟机的中断和异常等。

KVM的虚拟化性能非常高,这得益于它与Linux内核的紧密集成。

由于KVM直接运行在物理服务器的内核空间中,因此它可以直接访问物理服务器的硬件资源,而无需经过额外的中间层。

这使得KVM的虚拟化性能接近于原生性能,可以满足大部分企业级应用的性能要求。

除了高性能之外,KVM还具有良好的安全性和稳定性。

由于KVM直接运行在Linux内核中,因此它能够充分利用Linux内核的安全性和稳定性特性。

同时,KVM也支持硬件辅助虚拟化技术,可以提供更加安全和稳定的虚拟化环境。

总的来说,KVM是一种高性能、安全和稳定的虚拟化解决方案。

它利用了Linux内核的虚拟化技术,可以在一台物理服务器上同时运行多个虚拟机,为企业提供了灵活的虚拟化部署方案。

kvm虚拟化介绍

kvm虚拟化介绍

kvm虚拟化介绍⼀、虚拟化分类1、虚拟化,是指通过虚拟化技术将⼀台计算机虚拟为多台逻辑计算机。

在⼀台计算机上同时运⾏多个逻辑计算机,每个逻辑计算机可运⾏不同的操作系统,并且应⽤程序都可以在相互独⽴的空间内运⾏⽽互相不影响,从⽽显著提⾼计算机的⼯作效率。

虚拟化使⽤软件的⽅法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活调度、跨域共享,提⾼ IT 资源利⽤率,使 IT 资源能够真正成为社会基础设施,服务于各⾏各业中灵活多变的应⽤需求。

2、虚拟化层次种类:(1)完全虚拟化 --- 最流⾏的虚拟化⽅法使⽤名为 hypervisor 的⼀种软件,在虚拟服务器和底层硬件之间建⽴⼀个抽象层。

VMware 和微软的VirtualPC 是代表该⽅法的两个商⽤产品,⽽基于核⼼的虚拟机 (KVM) 是⾯向 Linux 系统的开源产品hypervisor 可以捕获 CPU 指令,为指令访问硬件控制器和外设充当中介。

因⽽,完全虚拟化技术⼏乎能让任何⼀款操作系统不⽤改动就能安装到虚拟服务器上,⽽它们不知道⾃⼰运⾏在虚拟化环境下。

主要缺点是, hypervisor 给处理器带来开销(2)准虚拟化 --- 完全虚拟化是处理器密集型技术,因为它要求 hypervisor管理各个虚拟服务器,并让它们彼此独⽴。

减轻这种负担的⼀种⽅法就是,改动客户端操作系统,让它以为⾃⼰运⾏在虚拟环境下,能够与hypervisor 协同⼯作。

这种⽅法就叫准虚拟化 (para-virtualization)Xen 是开源准虚拟化技术的⼀个例⼦。

操作系统作为虚拟服务器在 Xen hypervisor 上运⾏之前,它必须在核⼼层⾯进⾏某些改变。

因此, Xen 适⽤于 BSD 、 Linux 、 Solaris 及其他开源操作系统,但不适合对像Windows 这些专有的操作系统进⾏虚拟化处理,因为它们⽆法改动。

准虚拟化技术的优点是性能⾼。

经过准虚拟化处理的服务器可与hypervisor 协同⼯作,其响应能⼒⼏乎不亚于未经过虚拟化处理的服务器。

kvm虚拟化技术原理

kvm虚拟化技术原理

kvm虚拟化技术原理
KVM(Kernel-based Virtual Machine)是一种基于内核的虚拟化技术,可以在一台主机上运行多个虚拟机。

KVM的原理主要包括以下几个方面:
1. 虚拟化扩展:KVM利用了处理器的虚拟化扩展,如Intel的VT(Virtualization Technology)和AMD的AMD-V(AMD Virtualization)来提供硬件层面的虚拟化支持。

这些扩展使得KVM可以在用户空间运行虚拟机,而不需要修改操作系统代码。

2. 虚拟设备模拟:KVM模拟了多种虚拟设备,包括磁盘、网络、图形、键盘等。

虚拟机可以像使用真实硬件一样使用这些设备,并通过KVM与宿主机进行通信。

3. 虚拟机监控器(VMM):KVM利用Linux内核的虚拟化功能作为虚拟机监控器(也被称为Hypervisor),负责管理虚拟机的创建、销毁、调度等操作,并提供虚拟机与宿主机之间的隔离。

4. 虚拟机管理:KVM可以通过一组管理工具,如libvirt、virsh等来管理虚拟机。

这些工具提供了一种便捷的途径来创建、删除、迁移虚拟机,以及对虚拟机进行性能监控和管理。

综上所述,KVM利用处理器的虚拟化扩展来提供硬件层面的虚拟化支持,通过模拟虚拟设备和运行在内核空间的虚拟机监
控器来实现虚拟化。

这种基于内核的虚拟化技术使得KVM可以在一台主机上运行多个虚拟机,并为这些虚拟机提供灵活的管理和隔离能力。

kvm虚拟化面试题

kvm虚拟化面试题

kvm虚拟化面试题KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它能够将Linux内核转化为一个虚拟机监视器。

本文将介绍KVM虚拟化的一些面试题,旨在帮助读者更好地理解和掌握这一技术。

一、KVM的概述KVM是一种基于Linux内核的全虚拟化解决方案,它充分利用x86架构的硬件虚拟化扩展,使得虚拟机的性能接近于原生物理机。

KVM通过将Linux内核转化为Hypervisor(虚拟机管理程序),为虚拟机提供了硬件级别的虚拟化支持。

二、KVM的工作原理1. KVM内核模块KVM使用Linux内核模块(kvm.ko)来提供虚拟化的核心功能。

这个内核模块充当了Hypervisor的角色,它直接与硬件进行交互,为虚拟机提供资源管理和调度等功能。

2. QEMUQEMU是一个开源的模拟器和虚拟机管理器,它与KVM结合使用,为虚拟机提供I/O设备模拟、磁盘和网络的管理等功能。

KVM利用QEMU来实现完整的虚拟化环境。

3. 虚拟机监视器(VMM)KVM利用虚拟机监视器实现对虚拟机的管理和控制。

VMM负责管理虚拟机的生命周期、分配物理资源、虚拟化设备等。

三、KVM虚拟化的优势1. 性能接近原生机KVM利用硬件虚拟化扩展,使得虚拟机性能接近于原生物理机。

相比其他虚拟化技术,KVM在性能上具有较大优势。

2. 简化管理KVM使用Linux内核作为虚拟机管理程序,使得管理虚拟机变得更加简单。

管理员可以使用熟悉的工具和命令行来管理虚拟机。

3. 弹性扩展KVM支持动态添加和删除虚拟机,可以根据实际需求进行弹性扩展。

这使得资源利用更加高效,也减少了系统管理的复杂性。

四、KVM虚拟化的应用场景1. 服务器虚拟化KVM虚拟化技术在服务器领域得到广泛应用。

它可以将一台物理服务器划分为多个虚拟机,实现多租户的隔离和资源的动态分配。

2. 云计算KVM作为一种成熟的虚拟化技术,被广泛应用于云计算平台。

KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍

KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍

KVM虚拟化技术之virt-manager使⽤及KVM虚拟化平台⽹络模型介绍⼀.使⽤virt-manager创建和管理虚拟机1.使⽤VNC Viewer连接进⼊虚拟化平台主机2.打开终端输⼊virt-manager命令启动virt-manager虚拟机管理界⾯#virt-manager3.通过virt-manager安装CentOS 6.6的虚拟机点击如图所⽰图标新建虚拟机:选择PXE引导,我的⽹络内存在⼀个系统⾃动化部署服务器:选择操作系统类型和版本:设置内存和CPU个数:设置硬盘⼤⼩,这⾥采⽤动态扩展磁盘空间⽅式:忽略这个错误,由于是虚拟磁盘,不⽤担⼼空间,只需要保证系统空间不会超过物理磁盘实际空间:勾选选项是可以查看配置在安装前:我们可以在这个界⾯进⾏设置,我这⾥就不设置了,直接点击Begin Installation:我们选择安装个基本的系统:进⼊安装了:可以观察安装时Virt-manager界⾯的情况:可以知晓虚拟机正在运⾏,可以查看CPU的使⽤情况:安装完成后如图;关闭虚拟机,在虚拟机输⼊关机指令即可将虚拟机关闭;基于virt-manager创建管理虚拟机就完成了,很简单的。

下⾯的实验我们还是使⽤cirros轻量级的linux系统。

⼆.KVM虚拟化平台的⽹络模型1.⽹络模型介绍⼀般虚拟机虚拟⽹络的设置主要包括三种⽅式。

主要如下:NAT模式也有⼈称此种模式为host模式。

在这种模式下虚拟机可以理解成没有⾃⼰的独⽴⽹卡。

所有访问虚拟机的请求其实是直接发送给宿主机,然后通过访问宿主机转发到虚拟机上的。

相应的虚拟机访问其他⽹络,也是先转发到宿主机然后在转发出去。

对于宿主机之外的⽹络,是不知道该虚拟机存在的。

Bridge模式桥接模式是使⽤⽐较多的模式,它是虚拟机拥有⾃⼰的独⽴⽹卡和IP,然后通过借⽤宿主机的⽹卡对外连接⽹络。

它把宿主机的⽹卡当作了⼀种桥,通过这个桥连接外⽹的世界。

在这种模式下,可以简单的理解成虚拟机和宿主机是两个不同的机器,有独⽴IP可以相互访问。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

KVM虚拟化集群技术概述一、虚拟化集群介绍、设计思路及架构使用虚拟化集群的目标是克服单机虚拟化的局限性,利用技术手段提高虚拟机可用性,最终达到业务不中断或者减少中断时间,确保业务数据更安全的目标。

1. 虚拟化集群介绍1) 什么是虚拟化集群虚拟机集群最显著的特征是有共享存储,因为有了共享存储,虚拟机就可以实现非常快速的在线迁移,并在虚拟化层配置高可用。

笔者在生产环境使用的集群有两种存储方式,基于商业存储和基于开源分布式文件系统。

2) 虚拟化集群的高可用和基于应用层高可用的区别高可用是经常用到的运维技术,在系统、网络、数据库、Web 业务等各个应用层面都有使用。

高可用技术是指至少有主备两个节点,当主节点故障的时候,迅速切换到备用节点。

为了避免备用节点误判,有时候还有第三个节点,或者主节点和备用节点共同能访问到的存储空间,用于做仲裁判断。

应用层面的高可用还有一个特点,就是一般都有浮动IP ,当切换发生的时候,IP 从主节点漂移到备用节点。

应用层面的高可用一般切换时间比较快,从几毫米到几秒中,同时应用层面的高可用一般需要专用软件,比如常用的Keepalived ,Heartbeat 等。

虚拟化层面的高可用是虚拟机系统层面的高可用,即当一台计算节点故障的时候,在另外一台计算节点上自动将故障节点上的虚拟机启动起来。

注意如果虚拟机上的业务不能做到开机自启动,即使虚拟机自动启动了,并不能保证业务层面的自动恢复!另外还有一个问题,就是即使虚拟机启动起来了,当启动到一半虚拟机的系统卡住了,也不能及时恢复业务!虚拟化层的高可用一般业务恢复实际是系统重启的时间,加上业务开机自启动的时间,通常是分钟级别。

虽然虚拟化层高可用有业务不能恢复的风险,业务恢复时间也相对比较长,但是虚拟化层高可用有个非常巨大的优势,就是不需要在应用层面配置,大大的拓宽了高可用的适用范围,使原来在应用层难以使用高可用技术的应用,也能做到高可用,尤其是在某些专用的软件领域。

其实虚拟机层高可用和应用层面高可用并不矛盾,在虚拟机的系统里面,也可以配置应用层面的高可用,做这样的配置的时候,注意主备节点放置到不同宿主机上!3) 虚拟化集群后端存储的使用最早的时候,笔者在生产环境使用的集群都是以机柜为单位的小集群,主要因为笔者一直搭建的是私有云,在IDC 机房里面机柜都是要计算费用的,为了充分利用资源,合理节省成本,笔者私有云一个设计思想就是能够按照机柜,灵活扩展或者伸缩。

后来随着虚拟化的规模扩大,也进行了一些基于开源分布式文件系统集群的搭建,基于开源分布式文件系统的集群,规模可以更大,扩展性更好,适用于KVM的开源分布式文件系统在第9章、第10章都有详细的介绍。

开源的虚拟化管理平台,本书第11 章、第12 章、第13 章有详细介绍,所以本章不再介绍开源分布式文件系统及管理平台。

2. 使用虚拟化集群的优势虚拟化集群相对于单机虚拟化,有以下几点优势:q 快速的在线迁移(Live Migration) ,设备、系统维护造成的业务计划内停机时间减少到零。

q 高可用(HA) ,一台计算节点故障,上面的虚拟机可以很快在其他计算节点上启动运行起来,极大缩短计划外停机时间。

q 动态资源调度,业务负载发生变化引起计算节点压力分布不均匀时,可手动或者自动平衡物理机负载。

也可在整体压力较低的时间段,将虚拟机集中在部分计算节点上,将不用的计算节点临时关闭,达到节能的目标。

q 业务快速部署,集群将资源池化,通过和管理平台结合,在集群的容量范围内,业务部署的速度非常快。

q 数据更安全,后端存储采用冗余度更高的商业存储,或者分布式文件系统,数据可靠性可以达到99.99%以上。

q 网络速度、可靠性更高,集群网络采用冗余架构,网络设备、网络连接都是双冗余,网络速度更高,可靠性也更高,单台网络设备、单根网线、单个网卡故障都不会引起网络中断。

提示:1) 什么是计划内停机与计划外停机计划内停机是指可预期可计划的停机,比如定期的维护,提前通告的维护。

计划外停机是指突发事件引起的停机事件,比如硬件故障,网络DDO攻击等。

一般计划内停机因为是提前预知的,会做好预防措施,不会有数据丢失,对业务的损失是比较小的。

计划外停机则因为是突发事件,对业务的损失要大很多。

运维的重要职责之一就是通过技术手段减少计划外和计划内停机时间,对虚拟化来说,虚拟化集群能够做到在线虚拟机迁移,并且是全冗余设计,需要计划内硬件和软件维护的时候,可以做到计划内停机时间为零。

当宿主机发生紧急硬件故障的时候,虚拟机可以很快在其他宿主机上开起来,所以虚拟化集群也能有效降低计划外停机。

2) 在线迁移并不是灾备手段在线迁移实际迁移的是虚拟机的内存,当宿主机发生故障的时候,虚拟机的内存信息已经丢失了,这时候是不能再去做虚拟机的在线迁移的。

所以在线迁移解决的是有计划的维护问题,比如要升级宿主机内存,可以将宿主机上的虚拟机在线迁移到其他宿主机上,内存升级完成后,在将虚拟机在线迁移回来。

3. 集群设计及架构1) 虚拟化集群设计为保证虚拟机的尽量的在线时间,灵活的扩展,虚拟化集群的设计需要满足以下要求:q 有共享存储,虚拟机能够在线迁移;q 通过增加计算节点、存储、网络设备可以横向扩展;q 没有单点故障,计算节点有多个,商业存储为双控制器,分布式文件系统镜像写多份,网络设备冗余;q 性能满足要求,并且通过增加设备,性能可以扩展2) 虚拟化集群的架构一套虚拟化集群体系包括以下组成部分:q 若干计算节点,承载虚拟机的计算、内存、网络资源q 管理节点及管理平台,管理虚拟机的镜像,虚拟机生成、维护、销毁的生命周期,虚拟机的调度;q 后端存储,存储虚拟机镜像存放;q 网络设备。

二、虚拟化集群技术方案1. 前端计算虚拟化集群前端计算节点可以使用普通机架式服务器,也可以使用刀片服务器。

1) 机架式服务器做为计算节点的优缺点机架式服务器做为计算节点的优点是:q 架构简单,安装配置方便;q 扩展节点数量和升级较为容易q 成本有一定的优势缺点是:q 随着节点数量的增多,占用的机柜空间也在增大,单机柜服务器密度低;q 网络结构复杂,每台服务器有公网、私网、存储网;q 交换机端口数量多,接线容易出错。

2) 刀片服务器做为计算节点的优缺点使用刀片服务器作为计算节点的优点是:q 刀片服务器内置交换机,可以灵活的配置网络;q 刀片服务器连线简单,占有交换机端口数量少,网络非常简洁; q 单位机柜服务器密度大;q 功耗低;q 刀片服务器冗余电源和风扇,冗余交换模块,是全冗余的架构。

使用刀片服务器的缺点是:q 成本较高;q 配置复杂,安装配置需要专业的知识;q 往往需要改造机柜电源,并受限于机柜最高电流。

另外目前还有一种多节点服务器,就是在1U或者2U的空间里面,能够容纳2到4台服务器,这些服务器很像是刀片服务器,共享电源和机框,但是网络接口独立。

多节点服务器密度介于机架式服务器和刀片服务器之间,使用上和机架式服务器完全一样。

服务器的配置选型,根据笔者的经验,选择比较高的配置,虽然初期投入高,但是长远看,因为能够容纳更多的虚拟机,其实是节省成本的。

宿主机在运行一段时间后,往往会发现内存是瓶颈,所以开始配置的时候,内存尽量配置大一些。

具体宿主机如何选型在第15 章已经有详细的介绍,本章就不重复介绍了。

3. 后端存储技术方案虚拟化集群的后端存储可以使用商业存储和分布式文件系统,商业存储有三类:NAS、IP SAN、FC SAN。

1)NAS 共享存储NAS(NETWORK ATTACHED STORAG即网络附加存储,网络上直接挂接的存储设备,相当于一个网络文件共享服务器。

测试环境可以用一台普通的主机模拟NAS只要这台主机有自己的磁盘和文件系统,并且对外提供访问文件系统的接口。

最常见的NAS有Linux 下的NFS和windows 下的CIFS。

2)IP SAN 共享存储SAN(STORAGE AREA NETWOR即存储区域网络,主要是基于TCP/IP的网络来实现数据存取,即传输介质为IP网络。

通过IP网络将计算计算节点和存储设备连接起来,计算节点通过发送BlockI/O 的请求到存储设备,最常见的就是用ISCSI 技术,计算节点通过SCSI 协议发出读取数据的请求,并用TCP/IP包封装SCSI包,就可以再TCP/IP 网络中进行传输,即SCSI over TCP/IP 。

测试环境也可以用普通服务器模拟ISCSI 存储。

3)F C 存储FC(Fibre Channel 光纤通道)SAN类似于IP SAN,只是以光纤作为传输介质,性能较高,目前使用最广。

计算节点上安装光纤接口的HBA(Host BusAdapter,提供服务器内部的I/O通道与存储系统的I/O通道之间的物理连接)卡,为了冗余HBA卡一般有两块,分别接两台光纤交换机, 存储一般有两个控制器, 也分别接两台光纤交换机, 达到全容易的目标。

FC SAN计算节点直接将I/O请求通过FC网络发送到存储设备,性能非常高。

4)生产环境如何选择存储类型在实际部署的生产环境中,选择存储类型,取决于以下几个因素:q 业务性能及可靠性需求q 预算q 运维对技术熟悉程度一般来说,对性能要求非常高的业务,使用FCSAN存储,FCSAN 存储也是成本最高的一种方案。

如果业务性能需要稍低,可以使用NAS IP SAN的存储,NAS IP SAN的存储是性价比比较高的方式。

如果业务主要是CPU消耗型的,可以考验使用分布式文件系统,本书第9章介绍的DRBD GlusterFS,第10章介绍的CEPH工作都很稳定,但是性能相对比较低,很适合CPU消耗型的虚拟机。

关于NFS和ISCSI,业内一直有争论,NFS配置简单,但是因为是应用层的协议,有人认为性能低,其实商业存储做了许多优化,性能也不见得比ISCSI 差。

如何选择主要取决于预算、运维的技术习惯、具体的存储品牌型号,笔者生产环境喜欢使用ISCSI 存储。

内容仅供参考。

相关文档
最新文档