分享

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

 zhaohuijiang 2017-03-04

【编者按】

本文成稿于2015年6月7日,也是《软件定义存储:原理、实践与生态》一书的第2章'软件定义存储(SDS)之发展'的一部分。现在略有修改。

本文阐述了软件定义存储发展的三个阶段:抽象、池化和自动化,并在池化篇中,详细剖析了存储虚拟化的分类和现状。在自动化篇里介绍了存储自动化与DCOS或Hypervisor的结合。

---Begin---

从广义来看,其实拿物理盘做RAID,然后在其之上划LUN,呈现给OS,这也是一种存储虚拟化。

存储虚拟化往前还可以溯源到IBM AIX LVM(逻辑卷管理器),和HP EVA的vDisk技术。HP的EVA技术,准确说是源于Compaq,甚至是DEC的VA,在当时的存储界,非常厉害和前瞻的技术。

大约在2004、2005年左右,新兴的存储厂商Compellent和EqualLogic(这两个公司后来被DELL收购)、3PAR和LeftHand(这两个公司后来被HP收购)、XIV(后来被IBM收购)、Pillar(后来被Oracle收购)的块级存储虚拟化,打破了以往 RAID Group的限制,支持精简配置(Thin Provisioning)的功能,无需预先分配物理空间,实现写多少分配多少空间的机制。

下面我们系统、全面地介绍一下存储虚拟化,以SNIA的阐述为主。

一、SNIA对存储虚拟化的解释

SNIA认为,存储虚拟化通过对存储(子)系统或存储服务的内部功能进行抽象、隐藏或隔离,使存储或数据的管理与应用、服务器、网络资源的管理分离,从而实现应用和网络的独立管理。对存储服务和设备进行虚拟化,能够在对下一层存储资源进行扩展时进行资源合并、降低实现的复杂度。存储虚拟化可以在系统的多个层面实现。

SNIA提供的存储虚拟化模型(如下图),包括三部分:

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图1 SNIA存储虚拟化模型

1、虚拟化什么

针对不同的存储设备和数据形态,有多种形式的虚拟化资源:虚拟数据块、虚拟磁盘、虚拟磁带或磁带库、虚拟文件系统或者其他虚拟设备。

2、在哪里虚拟化

存储虚拟化可以在不同的层面上进行。

(1)基于主机/服务器的虚拟化

主要用途:使服务器的存储空间可以跨越多个异构的磁盘阵列,常用于在不同磁盘阵列之间做数据镜像保护。

实现方式:一般由操作系统下的逻辑卷管理软件完成(安装客户端软件),不同操作系统的逻辑卷管理软件也不相同。

常见产品:IBMAIX LVM,Linux LVM,VeritasVolume Manager等

(2)基于网络的虚拟化

主要用途:异构存储系统整合和统一数据管理。

实现方式:通过在存储域网(SAN)中添加虚拟化引擎实现。

常见产品: EMC VPLEX、IBM SVC、飞康FreeStor 、EMC Invista

(3)存储子系统虚拟化

主要用途:在磁盘阵列内部实现灵活调用存储资源。

实现方式:块级虚拟化,精简配置等。

常见产品:DELL EqualLogic、DELL Compellent、HP 3PAR、HP LeftHand、IBMXIV、Oracle Pillar等。

3、如何进行虚拟化

根据数据流与虚拟化引擎的相对关系,可以分为以下两种。

(1) 带内 In-Band

是目前使用最多的方式,它可以在存储系统、网络、主机、文件系统上实现。

(2) 带外 Out-of-Band需要在存储网络(SAN)上实现。二、 SNIA 之存储标准化建议:SMI-S

有时,会有人误以为软件定义存储就是类似IBM SVC、EMC VPLEX这类基于网络的存储虚拟化,而实际上它是存储虚拟化的一部分,是软件定义存储非常小的一部分。

基于网络的存储虚拟化,能够跨越异构的磁盘阵列,在更大的范围,如数据中心内,形成一个大的存储资源池,统一分配和监控来自不同存储厂商的存储资源。

当我们讨论池化,也即异构存储之间的管理的时候,一定会涉及到存储标准化,只有当大家开放的接口遵循共同的标准(也即规范)的时候,也就是用相同的“语言”对话时,才有可能被调用、被管理。

随着用户的数据不断增加,为了不被单一厂商锁定,规模较大的用户的存储网络往往包含了来自多个存储厂商的外置磁盘阵列,每个阵列都有自己的存储管理软件,这些阵列之间缺乏互联互通,管理复杂度增加。为了解决这一个问题,十五年前(也就是早在2002年),SNIA(全球网络存储工业协会)就提出了存储管理建议规范SMI-S(Storage Management Initiative Specification),希望在存储网络中的存储设备和管理软件之间提供标准化的通信方式,从而使存储管理实现厂商无关性,使得存储管理系统能够实现鉴别、分类、监控和控制物理及逻辑资源的能力,提高管理效率、降低管理成本,促进存储的发展。

SMI-S是一种中间件性质的规范,定义了存储管理软件和受管对象之间的交互机制。它提供了多种特性以简化SAN的管理。首先,在SMI-S标准中定义了统一的数据模型,使用基于Web的企业管理(Web-Based Enterprise Management,WBEM)技术和公共信息模型规范(Common Information Model, CIM) ,SMI-S的代理可以与交换机、磁盘阵列等各种支持CIM的设备进行交互,获取其管理相关的数据并返回给请求方。使用SMI-S可以免除设计管理数据传输机制的麻烦,对各种设备和组件直接进行带内或带外的管理,甚至两者并用。SMI-S还提供了基于HTTP的CMI-XML传输机制,以增强适用性。

SNIA对于SMI-S标准寄予了很高的期望,跨越的版图非常宏伟。从下图(摘自《Storage Management from SMI-S to Management Frameworks》),可以看出来,它希望做到,存储管理软件能够识别磁盘阵列、光纤交换机、IP交换机、磁带库、FC HBA卡、iSCSI HBA卡等各种各样与存储相关的设备,并通过存储管理服务,自动发现、部署和配置存储资源。

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图2 SNIA SMI-S标准

SMI- S标准发布以后,得到了大多数主要存储供应商的支持,截止2015年,已经超过500多个产品支持SMI-S标准。最新的标准是SMI-S v1.6.1,在SNIA官网能够下载到详细的规范,规范包括8篇文章,其中的一篇《Storage Management Technical Specification, Part 4 Block Devices》,长达1144页。仅仅关于Automated Storage Tiering的描述就长达77页。

在推行这一标准的过程中,SNIA也曾直言不讳地提到了它面临的问题:

1、SMI-S标准走向市场的时间漫长;

2、存储厂商研发新特性的过程中,规范的确立花费1年,厂商实施再需要6个月(笔者持怀疑态度),用户方接受并实施需要2年甚至遥遥无期;

3、需要加速标准走向用户的过程;

三、存储虚拟化实例剖析

下面我们以基于网络的存储虚拟化为例,详细剖析一下它是如何实现存储虚拟化的。

从市场上看,基于网络的存储虚拟化比较知名的有:EMC VPLEX、IBM SVC、HDS VSP、Symantec Storage Foundation等。他们都能或多或少的将其他厂商的存储纳入自己的存储平台之下进行管理。但这种管理,也只是将异构存储的逻辑卷做为一个外来设备使用,把它视为一个普通的存储容器,不知道它能提供多大的性能,也丧失了异构存储内嵌的丰富的软件特性,例如自动分级、快照、容灾等。

以IBM SVC为例,这个在2003年以前就诞生的存储技术,在存储虚拟化领域,在很长的一段时间内技术都比较领先。

如下图,IBM SVC针对其内部盘,按照RAID方式(如8块盘)创建出Mdisk,再将多个Mdisk形成存储池,在池上创建逻辑卷VDisk(Virtual Disk,现更名为Volume)。

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图3 IBM SVC中物理盘、逻辑卷、Mdisk、extent的关系

在IBM SVC这个存储管理体系下,也能管理异构存储,支持对HP (MSA, EVA, XP), EMC (CX, DMX), NetApp (FAS), Hitachi (AMS, WMS, 99xx系列) 和DELL(Compellent)等异构存储的虚拟化。以DELL Compellent为例,将Compellent逻辑卷纳入SVC之下,需要经过如下步骤:

1、业务停机;

2、在Compellent图形管理界面中,去掉卷与主机的映射关系(un-mapping);

3、在Compellent图形管理界面中,创建新的服务器对象:SVC Cluster;

4、在SVC图形管理界面中,执行MDisk发现操作;

5、将新发现的MDisk(其实就是Compellent逻辑卷)以Image Mode MDisk方式导入;

6、将这个Image Mode MDisk映射到原主机上;

无论是内部盘还是外部盘,IBM SVC都可以按照VDisk为单位,实施本地的数据复制服务(快照、克隆、镜像)。利用SVC,可以将被其虚拟化的低端存储,增加一些高级功能。不过,存储发展到现在,高端存储和中端存储的丰富的软件功能都已经逐渐下移到低端存储,SVC的这部分作用就意义不大了。

对于用户而言,基于网络的存储虚拟化,利旧,方便管理(只是少部分程度的),双活,容灾(例如,IBM SVC灾备端可以采用与SVC生产端不一样的存储品牌),仍有一定的现实意义。

四、存储标准化之互操作性

十几年前,存储行业里,有一个经常被提及的概念是互操作性,正是因为各家厂商的存储管理各自为政,缺乏互联互通,使得用户面临存储管理的巨大挑战,用户一直希望存储厂商解决互操作性:各家的存储管理软件都能管理并灵活调用其他异构存储的资源。

实际上,在SMI-S v1.6.1的标准 《Storage Management Technical Specification, Part 4 Block Devices》中,已经包含了对镜像、快照、克隆、容灾的描述,如下图所示。但时至今日,极少存储厂商的存储虚拟化平台可以驱动受管对象的这些高级软件功能。

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图4 SMI-S v1.6.1标准中对镜像、快照和克隆的描述

截止2015年底,逐渐有更多的存储厂商适配Hypervisor(VMware)或DCOS(OpenStack),越来越多地支持SMI-S标准。例如,EMC的许多型号的存储,也正式通过SMI-S的CIM,来支持OpenStack Cinder。下图即EMC使用其SMI-S Provider V4.6.1支持OpenStack Cinder的icehouse版本。这样,上层软件可经过Cinder在EMC存储上创建、删除、扩展或映射volume,创建或删除snapshot和clone等。

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图5 EMC利用SMI-S协议支持OpenStack Cinder

不过,十五年时间并不短暂。但是,基于网络的存储虚拟化(异构存储的管理)并未在用户实际环境中广泛的部署。原因在于存储厂商并没有投入足够的精力和财力去遵循这一标准呢。而深层次的原因就在于经济利益、投入产出比。存储厂商投入精力去改造自己,开放API出去,适配其他存储厂商的存储虚拟化平台,回报明显不大。而且,当存储厂商变成受管对象,也即被虚化后,它对于用户的重要性就下降了。所以单纯靠存储厂商与存储厂商之间,是很难解决互操作性的。

那么,这个互操作性谁来解决更合适呢?

答案是Hypervisor厂商、操作系统(OS) 厂商,或者类似于OpenStack、CloudStack的数据中心操作系统(Data Center Operating System,简称DCOS),或者云计算(Cloud)提供商、云管理软件提供商。用户只要构建软件定义的数据中心,必不可免的是,大多数存储资源都必须纳入到Hypervisor/OS/DCOS/Cloud的版图之内。在云计算、软件定义数据中心的日益兴盛的背景下,存储资源被虚机使用的规模将远大于被物理机使用。因此,存储厂商可以考虑与VMware、Hyper-V、Citrix XenServer、RedHat KVM、华为FusionSphere等Hypervisor厂商,以及OpenStack Cinder的互操作性。我们也看到Hypervisor厂商也在努力实现与存储的互联互通,例如 Microsoft System Center 2012就把SMI-S做为组成部分;再如,VMware vROps云管理软件利用SMI-S等协议进行存储分析。

赠书|什么是存储虚拟化?它与软件定义存储有何区别?

图6 VMware vROps利用SNIA SMI-S协议进行存储分析

……

---End---

软件定义存储包含了存储虚拟化,简单理解,可以认为软件定义存储=存储虚拟化+自动化,其实就是SDS的三步曲:抽象、池化和自动化。

或者参阅笔者参与编写的《软件定义存储:原理、实践与生态》一书。

赠书活动

为感谢广大读者的支持以及庆祝《软件定义存储:原理、实践与生态》一书第三次印刷,再次举行签名赠书活动。参与方法:

1.在本文末留言,发表对本文内容或对软件定义存储看法;

2.邀请朋友对您的留言点赞。

签名包括本书主编Peter Ye(叶毓睿),和本文作者Henry Zhang(张海宁,他同时是《区块链技术指南》的作者)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多