什么是服务器虚拟化?

什么是服务器虚拟化?,第1张

说到虚拟服务器,就涉及到一个概念,那就是服务器虚拟化。那么什么是服务器虚拟化呢?

将服务器的物理资源抽象为逻辑资源,一个服务器变成几台甚至上百台相互隔离的虚拟服务器。我们不再受限于物理边界,而是让CPU、内存、磁盘、I/O等硬件成为可以动态管理的资源池,从而提高资源利用率,简化系统管理,实现服务器集成,使 IT 更能适应业务变化——-这就是服务器虚拟化。

一、虚拟化技术有其优势

它解决了内存和I/O等硬件瓶颈,但也带来了安全隐患。例如,它破坏了正常的网络架构,导致虚拟服务器受到攻击或出现某种情况。

虚拟服务器也会受到影响;可能会导致系统服务器过载。如果服务器过载到一定程度,可能会导致各个虚拟服务器的运行程序过慢,影响客户的使用。

更严重的还可能导致物理服务器系统崩溃,给客户造成不可估量的损失;还会使虚拟机失去安全保护,服务器被攻击的几率大大增加,虚拟机补丁带来的安全风险。

二、服务器虚拟化系统

虚拟机的优势之一是降低了服务器的供电和散热成本,同时让操作更简单、更安全、更方便用户来管理服务器。

此外,部署虚拟机比部署物理机要快得多。您可以在几秒钟内克隆或部署一个新的虚拟服务器,从而不断变化和适应不同的业务需求

同时,为了使企业数据更安全,虚拟化服务器可以在多个服务器上运行一个应用程序服务器,这意味着当一台服务器出现故障或受到攻击时,它可以继续在另一台服务器上运行。

同一个应用程序最大限度地减少了服务器中断的可能性。

主机级别的方案中通常只是虚拟化直连主机的存储,当然也有一些可以部署在一个SAN环境中的多台存储子系统上。

早先的存储虚拟化产品常用于简化内部磁盘驱动器和服务器外部直连存储的空间分配,以及支持应用集群。Veritas Volume Manager和Foundation Suite就是首批这类解决方案,这类方案使得存储扩展,以及为应用程序和文件服务器提供空间更为简单快速。

随着存储需求的增长远远超过直连存储所能提供的范围,存储虚拟化逐渐成为存储阵列中的一种容量提供方式。而容量持续增长以及诸如iSCSI等小型IT组织负担得起的共享存储技术的出现又使得存储虚拟化技术也融合进基于网络的设备和运行在通用硬件的软件里。

不过现今的服务器和桌面虚拟化技术兴起给存储虚拟化技术带来了新的生机,而基于主机的存储虚拟化技术正在逐渐回归。服务器虚拟化平台必需要基于共享存储体系架构来实现一些关键特性,比如VMware的vMotion和Distributed Resource Schedule (DRS)。通过传统的SAN架构自然可以实现这种共享存储体系架构,不过越来越多的IT组织开始寻求更简单的方式来实现共享存储。基于主机的虚拟化技术就是方式之一。

诸如VMware之类的服务器虚拟化供应商认为存储是妨碍虚拟化技术大规模普及的瓶颈之一。这些Hypervisor供应商已经实现了处理器和内存资源的抽象,实现更好的控制并提高资源利用率,他们自然而然也会希望这样控制存储。不过将存储控制功能整合到主机服务器端,称之为“存储Hypervisor”时会带来一些潜在的问题。处理一些在虚拟服务器和虚拟桌面环境中至关重要的存储服务,诸如快照、克隆和自动精简配置时,会严重影响主机服务器的性能。

Virsto的解决方案

Virsto开发出了一款软件解决方案,安装在每台主机服务器上(无论是一台虚拟机或Hypervisor上的过滤驱动器)并在主存储上创建一个虚拟化层,称为Virsto存储池。其同时创建一个高性能磁盘或者固态存储区域,成为“vLog”。读操作会直接指向主存储,不过写操作会通过vLog进行,这会给请求的虚拟机或应用程序发回一个确认。然后vLog将这些写操作异步地分布写入主存储,从而减少对写性能的影响。该存储池可以容纳多至4层的存储方式,包括固态存储和各类型的磁盘驱动器。

和缓存的工作方式类似,vLog通过在存储前端降低耦合度改善了存储性能,降低了后端存储的延迟。其同时将前端主机的随机写操作变为顺序方式,实现后端存储的最佳性能。基于Virsto主机的存储虚拟化软件实现了以上这些功能。

虚拟存储设备

基于主机的存储虚拟化的另一项应用实例是虚拟存储设备(VSA)

VSA是运行在虚拟机上的存储控制器,其虚拟化统一集群中的主机所直接连接的存储。VSA提供一个主机使用的简易的存储共享体系架构,并支持高可用性、虚拟机迁移,并改善存储提供方式。对于很多企业,这种方式可以替代原本需要建立并管理传统SAN或NAS来支持虚拟服务器和桌面的体系架构。

vSphere Storage Appliance。VMware的vSphere Storage Appliance以一个虚拟机的方式运行,从在2个或3个节点集群中,每个ESX/ESXi主机所直连的DAS存储中,创建一个共享存储池。VMware VSA提供每个节点的RAID保护,并在同一集群的各个节点之间提供镜像保护。虽然从技术角度上看,VMware VSA是一个基于文件的体系架构,不过其亦为集群中每台主机提供数据块级别的存储虚拟化,并用户可以从这种部署方式中获取和基于数据块的共享存储一样的收益。

HP的LeftHand Virtual SAN Appliance。虽然和VMware VSA的功能类似,P4000 VSA软件可以支持每台主机直连DAS以外的方式。其还允许使用iSCSI或FC SAN等外部存储来创建共享存储池。这就意味着可以将如何可用的存储,本地存储或用于容灾的异地存储,转变为LeftHand存储节点。P4000t提供快照和自动精简配置,并且支持Hyper-V和VMware。

DataCore的SANsymphony-V。DataCore的解决方案是通过在一个虚拟机中部署其SANsymphony软件来整合其它各个VMware,Hyper-V或XEN主机的直连存储,形成共享存储池。SANsymphony-V可以和HP的解决方案那样虚拟化外部的网络存储,并且该软件可以在迁移到传统的共享存储体系架构时部署在外部服务器上。SANsymphony-V同时提供各类存储服务,譬如快照、自动精简配置、自动化分层和远程复制。

FalconStor的NSS Virtual Appliance。FalconStor的Network Storage Server Virtual Appliance(NSSVA)是该公司NASS硬件产品中唯一支持的VMware版本,用网络上其它主机的直连存储创建一个虚拟存储池。和DataCore和LeftHand的解决方案类似,该存储池可以扩展到网络上任何可用的iSCSI存储上。该NSS Virtual Appliance包括快照、自动精简配置、读/写缓存、远程复制和卷分层等存储功能。

基于主机的存储虚拟化解决方案是目前大多使用在虚拟化服务器和虚拟化桌面环境中,用以实现环境的高可用性特性,以及改善存储性能、利用率和管理效率。

虚拟化改变了计算机使用存储的方式。就像物理机器抽象成虚拟机(VM:Virtual Machine)一样,物理存储设备也被抽象成虚拟磁盘(Virtual Disk)。今天我们就来聊聊虚拟化存储(Storage Virtualization)技术,究竟虚拟磁盘是怎样实现的?

虚拟磁盘的实现

我们知道,服务器扩展存储的手段主要有直连存储(DAS)、存储区域网络(SAN)和网络附加存储(NAS)这三种类型。那么哪种存储类型可以用来实现虚拟磁盘呢?

在虚拟化环境中,类似VMWare这样的虚拟机管理程序hypervisor,要同时给很多VM分配存储空间。这个过程中,我们需要先把物理存储资源重新划分成虚拟磁盘,然后再分配给VM。

显然我们不能用DAS方式把物理磁盘直连到VM上,如果这样,需要的物理磁盘就太多了。SAN是以逻辑单元(LUN:Logic Unit)的形式提供存储资源,但是虚拟环境中VM的数量是很大的,而且伦的数量不足以支持这么多虚拟磁盘。

更重要的是,虚拟磁盘是为大量VM共享的,由于VM需要随时创建、删除或迁移,所以需要在迁移VM时共享存储空间,只有原始数据不会丢失。DAS还是SAN,都不适合共享存储。

考虑到资源分配以及共享的问题,虚拟机管理程序以NAS的方式实现虚拟磁盘。VMware通常使用VMFS(虚拟机文件系统)或NFS协议实现虚拟磁盘,VMFS文件系统是专门针对虚拟机环境协议。

每一个虚拟机的数据实际上是一堆文件,及最重要的文件的虚拟磁盘文件(VMDK文件),也有交换分区文件(VSWP文件,等价交换),非易失性存储器(NVRAM的文件相当于BIOS),等等。每个VM对虚拟磁盘的IO操作实际上是对虚拟磁盘文件的读写操作。

设计、施工、和虚拟服务器环境和优化,允许多个虚拟机访问集成的集群存储池,从而大大提高了资源的利用率。使用和实现资源共享,管理员可以直接从更高的效率和存储利用率中获益。

那么我们如何在云计算中使用虚拟磁盘呢?

实例存储

最主要的一种使用虚拟磁盘的方式就是实例存储,每个VM都是虚拟机的一个实例,虚拟机管理程序在每个实例中提供一个仿真硬件环境,它包括CPU、内存和磁盘。这样,虚拟磁盘就是虚拟机实例的一部分,就像物质世界。删除VM后,虚拟磁盘也将被删除。

在这个实例存储模型中,虚拟磁盘与虚拟机之间的存储关系,事实上,它是DAS存储。但是虚拟磁盘的底层实现,我们说,它是以NAS的方式实现的。虚拟机管理程序的作用是存储VM层的存储模型,这是从实施协议分离(VMFS或NFS)的虚拟机的低层。

VMFS协议实现了存储资源的虚拟化,再分配各VMs

卷存储

实例存储有它的限制,开发人员通常希望分离实例数据,例如OS和安装的一些服务器应用程序和用户数据,这样重建VM的时候可以保留用户的数据。

这个需求衍生出另外一种存储模型:卷存储。卷是存储的主要单元,相当于虚拟磁盘分区。它不是虚拟机实例的一部分,它可以被认为是虚拟机的外部存储设备。

该卷可以从一个VM卸载,然后附加到另一个VM。通过这种方式,我们实现了实例数据与用户数据的分离。OpenStack的煤渣是一个体积存储的实现。

除了实例存储和卷存储之外,最后我们还提到另一种特殊的虚拟存储:对象存储。

对象存储

很多云应用需要在不同的VM之间共享数据,它常常需要跨越多个数据中心,而对象存储可以解决这个问题。在前一篇文章中的云计算IaaS管理平台的基本功能是什么?》中曾经提到过对象存储。

在对象存储模型中,数据存储在存储段(bucket)中,桶也可以被称为“水桶”,因为它字面意思。我们可以用硬盘来类推,对象像一个文件,而存储段就像一个文件夹(或目录)。可以通过统一资源标识符(URI:统一资源标识符)找到对象和存储段。

对象存储的核心设计思想实际上是虚拟化,它是文件的物理存储位置,如卷、目录、磁盘等,虚拟化是木桶,它将文件虚拟化为对象。对于应用层,简化了对数据访问的访问,屏蔽了底层存储技术的异构性和复杂性。

对象存储模型

NAS与对象存储各有所长

当然你也许会问,NAS存储技术也是一个可以解决数据共享的问题吗?由于对象存储的大小和成本优势,许多云环境使用对象存储而不是NAS。

因为对象存储将跨多个节点传播,最新数据并不总是可用的 因此,对象存储的数据一致性不强。如果有强一致性的要求,然后你可以使用NAS。目前,在云计算环境中,NAS和对象存储是共存的。

和NAS一样,对象存储也是软件体系结构,而不是硬件体系结构。应用程序通过REST API直接访问对象存储。公共对象存储包括:Amazon S3和OpenStack的Swift。

结语

在实际的云平台应用中,我们需要根据自己的实际情况来合理运用不同的虚拟化存储技术。

对于非结构化的静态数据文件,如音视频、图片等,我们一般使用对象存储。

对于系统镜像以及应用程序,我们需要使用云主机实例存储或者卷存储。

对于应用产生的动态数据,我们一般还需要利用云数据库来对数据进行管理。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/303595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存