虚拟化技术(2)——存储虚拟化

存储虚拟化

随着存储的需求呈螺旋式向上增长,公司内的存储服务器和阵列都无一例外地随之成倍增长。对于这种存储管理困境的一种解决办法便是存储虚拟化。存储虚拟化可以使管理程序员将不同的存储作为单个集合的资源来进行识别、配置和管理。存储虚拟化是存储整合的一个重要组成部分,它能减少管理问题,而且能够提高存储利用率,这样可以降低新增存储的费用。

权威机构S N I A(存储网络工业协会)给出的定义

“通过将存储系统/子系统的内部功能从应用程序、计算服务器、网络资源中进行抽象、隐藏或隔离,实现独立于应用程序、网络的存储与数据管理”。

存储虚拟化技术将底层存储设备进行抽象化统一管理,向服务器层屏蔽存储设备硬件的特殊性,而只保留其统一的逻辑特性,从而实现了存储系统的集中、统一、方便的管理。

与传统存储的比较

与传统存储相比,虚拟化存储的优点主要体现在:磁盘利用率高,传统存储技术的磁盘利用率一般只有30-70%,而采用虚拟化技术后的磁盘利用率高达70-90%;存储灵活,可以适应不同厂商、不同类别的异构存储平台,为存储资源管理提供了更好的灵活性;管理方便,提供了一个大容量存储系统集中管理的手段,避免了由于存储设备扩充所带来的管理方面的麻烦;性能更好,虚拟化存储系统可以很好地进行负载均衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,提高了系统的整体访问带宽。

分类

虚拟化存储有多种分类方法,从大的方面可以分为:根据在I/O路径中实现虚拟化的位置不同进行分类;根据控制路径和数据路径的不同进行分类。根据在I/O路径中实现虚拟化的位置不同,虚拟化存储可以分为主机的虚拟存储、网络的虚拟存储、存储设备的虚拟存储。根据控制路径和数据路径的不同,虚拟化存储分为对称虚拟化与不对称虚拟化。

优缺点

优点:

存储虚拟化也能够改进可用性。如果一个应用程序与某些特定的存储资源相联,那么任何对于这些资源的中断都将会降低该应用的可用性。通过存储虚拟化,应用程序就不会再与某个物理性的存储程序相联系了。

存储虚拟化可能帮助帮助存储容量扩增自动化。不需要手动的配置,存储虚拟化能够运用策略,分配更多的存储容量给所需的应用。存储虚拟化也可以允许存储资源在传送的过程上进行更改或者升级,这些操作都无需中断应用性能,减少了为修理和维护所需要的存储宕机时间。

缺点:

存储虚拟化的不利方面是额外增加的复杂性。存储层是存储环境新增的部分,随着虚拟产品打补丁和更新,必须进行管理和维护。同样,存储设备之间的互操作性和兼容性也会有所影响。在一些情况下,虚拟层可能会与存储系统的某些特性相干扰,比如远程复制。比如说,一个包含本地远程复制的存储阵列,当这个阵列被用在虚拟化环境时,也许就不能够再提供这种复制的服务。只有在实验室的试验和评估结果才能够显示出这种潜在的问题。

另一个问题就是一旦存储虚拟化实施后,重新恢复或是取消操作存在的困难。这并不是不可能,但是重新将应用与存储位置进行关联的过程很容易出错。专家们建议逐步实施局部的存储虚拟化,先在一个或几个应用中局部部署,然后再扩大至数据中心和整个公司内部。

三层模型

根据云存储系统的构成和特点,可将虚拟化存储的模型分为三层:物理设备虚拟化层、存储节点虚拟化层、存储区域网络虚拟化层。三层虚拟化存储模型大大降低了存储管理的复杂度,有效地封装了底层存储设备的复杂性和多样性,使系统具备了更好的扩展性和灵活性。用户只需将存储设备添加到存储池中并进行简单配置,就可以创建虚拟卷,而不必关注系统中单个设备的物理存储容量和存储介质的属性,从而实现统一的存储管理。

  • 物理设备虚拟化层

主要用来进行数据块级别的资源分配和管理,利用底层物理设备创建一个连续的逻辑地址空间,即存储池。根据物理设备的属性和用户的需求,存储池可以有多个不同的数据属性,例如读写特征、性能权重和可靠性等级。按需分配的存储设备作为一个逻辑卷管理器,可以从存储池中分配逻辑卷,动态地分配存储资源,并管理数据块的映射和转发。

  • 存储节点虚拟化层

可实现存储节点内部多个存储池之间的资源分配和管理,将一个或者多个按需分配的存储池整合为在存储节点范围内的统一的虚拟存储池。这个虚拟化层由存储节点虚拟模块在存储节点内部实现,对下管理按需分配的存储设备,对上支持存储区域网络虚拟化层。

  • 存储区域网络虚拟化层

可实现存储节点之间的资源分配和管理,集中地管理所有存储设备上的存储池,以组成一个统一的虚拟存储池。这个虚拟化层由虚拟存储管理模块在虚拟存储管理服务器上实现,以带外虚拟化方式管理虚拟存储系统的资源分配,为虚拟磁盘管理提供地址映射、查询等服务。

三种目前能够实现的存储虚拟化方法

存储虚拟化是物理存储的集合,也就是将多个网络存储设备集合成一个存储设备,这样就能简化存储管理。人们都在讨论实现存储虚拟化的最好方法,但是没有一种方法可以适用于任何环境。实际上,许多公司都是根据具体要求采用不同的架构方式。你需要比较各种方法,然后根据自身需要选择合适的存储虚拟化方法。下面简单地介绍带内、带外和独立路径存储虚拟化方法:

  • 带内(In-band)/对称存储虚拟化技术

带内方法主要在主服务器和存储设备之间实现虚拟功能,是传统的产品和存储系统经常采用的方法。 特征:带内/对称存储虚拟化技术采用x86软件或专有硬件以及软件存储系统,看起来就像是始于存储设备,终于主服务器。这是最常见的存储虚拟化形式。 优点:无需代理主机,相关部署实例和超高速缓存能够帮助实现各项性能,同时保持灵活性。 注意事项:数据通道中可能会存在一些性能问题 寻找:能够扩大查找范围、实现互操作功能,且不会使系统变得复杂和不稳定,也不会增加系统成本。 实例:传统的存储系统、产品,如IBM SVC、FalconStor软件公司和 DataCore 软件公司的相关产品。

  • 带外(Out-of-band)/非对称存储虚拟化技术

带外存储虚拟化设备安装在主机和存储之间的数据通道之外,因而主机中需要安装专门的软件。 特征:带外/非对称存储虚拟化技术可以减少带内存储所存在的性能问题。但是,带外存储需要依靠代理主机和元数据控制器访问存储设备,这样就使存储虚拟化变复杂了。 优点:扩展性能较好。 注意事项:逐渐被独立路径存储虚拟化技术取代。 寻找:在带内和独立路径技术之外,寻找稳定、适应能力强的供应商和解决方案。 实例:LSI StoreAge

  • 分离路径存储虚拟化技术

分离路径存储虚拟化技术综合了带内和带外技术的优点: 特征:分离路径存储虚拟化技术在与软件绑定的开关或者产品中采用存储服务模块或者适应器。 优点:部署更加灵活,解决了数据通道问题。 注意事项:提供给你软件的供应商还处于成长阶段。 寻找:寻找稳定的供应商、能够共存的扩展方案,同时支持不同的软件和硬件。 实例:LSI StoreAge, Incipient公司的相关产品, EMC 公司的 Invista, Fujitsu VS9000

实施存储虚拟化后移除有困难吗

如果在存储架构上的其中一层应用了存储虚拟化,那么移除或“退出”虚拟层有困难吗?要采取什么措施来提高成功率或减小放弃虚拟层的破坏性?

存储虚拟化对于公司是一个重要的的决定。对你所做的一定要谨慎,因为去掉虚拟化并不容易。一旦你部署了虚拟化环境,从存储到服务器以及物理存储之间是完全抽象的,IT存储管理员不知道存储是来源于哪里。几年来你可能要依赖存储虚拟化厂商的产品,因此,仔细挑选一个厂商是绝对重要的。

你可以退出存储虚拟化,但这是一个头疼的问题。你需要在某个地方备份你的数据,移除虚拟层,然后把数据备份到物理存储设备上。

应用

虚拟化存储在各种行业中已经开始了大规模应用。

这些应用包括:

数据中心:应用虚拟化技术提供计算和存储服务中心、网络管理中心、灾难恢复中心、IT资源租赁中心等服务。

电信行业:随着产业的发展,电信行业面临两方面的挑战,一方面降低IT架构的成本,另一方面提高IT架构的可用性。虚拟化技术正是解决这一问题有效办法。

银行证券保险行业:利用虚拟化进行容灾,采取“两地三中心”方案,即生产中心、同城灾备中心、异地灾备中心。同城灾备中心负责一般性灾难的防范,异地灾备中心用来防范大范围的灾难。利用虚拟化技术,可以在统一的虚拟化基础架构中,实现跨数据中心的虚拟化管理。

政府信息系统:政府数据存储系统的建设正受到前所未有的重视。系统利用先进的存储虚拟化技术,建立统一、标准、共享的数据资源存储平台,能够有效地管理庞大、繁多、复杂的数据及相关的设备,提高资源利用率,并建立起全面的数据安全保障体系。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏纯洁的微笑

面试为什么需要了解JVM

随着互联网的发展,高并发高可用、快速响应成为软件的必须,而JVM与这些有着密切关联。之前JVM系列好多都是一些由于STW影响到快速响应问题,忽然网站慢一下(抖动...

11110
来自专栏钱塘大数据

【钱塘号专栏】大神级程序员才知道的40个小技巧

1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎...

32570
来自专栏微信公众号:Java团长

以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)

本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的...

12810
来自专栏SDNLAB

网络功能虚拟化系列:NFV的开源软件包

本文系SDNLAB社区译者计划发布文章,SDNLAB将与国外优质媒体和个人进行长期的内容合作,带来更多的优质技术文章,本文是<<网络功能虚拟化:新兴的虚拟化网...

38780
来自专栏分布式关系数据库探索

分布式关系数据库探索 - NewSQL 演化过程

回味过去,展望未来,开始分布式数据库探索之旅,首先了解历史,本文大致梳理一下数据库发展过程,从1970年到2018年,数据库的发展过程,仅供参考,交流和学习,感...

61010
来自专栏企鹅号快讯

老鸟程序员才知道的40个小技巧

▲ 40条真言,希望对进阶中的程序朋友有所帮助。 1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注...

19680
来自专栏牛客网

百度 提前批C++ 一面 二面 三面

【每日一语】当你厌恶你身边的人,你表达厌恶最好的方式不是和他们争吵,而是自己勤快点儿,加把劲离开他们。那样,他们就永远从你的生活中消失,和死了差不多。

26330
来自专栏ThoughtWorks

ArchUnit,架构守护神 | 雷达哔哔哔

ArchUnit是一个基于 Java 的测试库,用于检查代码的结构特性,如包和类的依赖关系、注解验证,甚至还能检查代码分层是否一致。我们很喜欢 ArchUnit...

36620
来自专栏ThoughtWorks

流水线即代码|洞见

2016年11月份的技术雷达中给出了一个简明的定义:流水线即代码(Pipeline as Code)通过对持续集成/持续交付(CI/CD)运行工具进行编码而非配...

40950
来自专栏Python专栏

从《红色警戒:复兴》论MongoDB设计模式的重要性

18640

扫码关注云+社区

领取腾讯云代金券