1.3 软件定义存储
1.3.1 软件定义存储简介
软件定义存储(Software Defined Storage, SDS)是软件定义数据中心的一个核心组件。有别于传统的存储,软件定义存储提出了一种新的存储管理模式,使其能够满足软件定义数据中心以及云计算平台对存储提出的全新需求。
软件定义存储将异构存储硬件资源抽象化、池化并自动化。其为虚拟化环境提供了一个高效、敏捷、灵活的存储操作模型,将控制平面与数据平面分离。除了控制平面和数据平面的分离外,软件定义存储通过存储虚拟化还将物理存储与逻辑存储进行了解耦。通过软件定义的存储解决方案,用户可以在不增加工作量的情况下进行纵向和横向扩展。如图1-9所示。
图1-9 软件定义存储
软件定义存储是一种存储解决方案,其从以下三个角度将存储作为软件:
❑基于策略的管理:允许通过以应用程序为中心的策略来实现自动存储管理。
❑与数据服务无关的虚拟化硬件:允许在虚拟机级别对数据服务进行精细管理,不需要专用的硬件设备。
❑异构硬件资源抽象化:将存储资源(包括直连存储DAS、传统SAN、网络存储NAS)以资源池的形式提供给虚拟机。
为了更好地理解软件定义存储,我们引用了全球网络存储工业协会(Storage Network-ing Industry Association, SNIA)对其的定义:SDS允许异构或者专有的平台,但是该平台必须能够提供部署和管理其虚拟存储空间的自助服务接口。除此之外,SDS还应该包括以下内容:
❑自动化:简化管理,降低维护存储架构的成本。
❑标准接口:提供应用编程接口,用于管理、部署和维护存储设备与存储服务。
❑虚拟数据路径:提供块、文件和对象的接口,支持应用通过这些接口写入数据。
❑扩展性:无须中断应用,也能提供可靠性和性能的无缝扩展。
❑透明性:提供存储消费者对存储使用状况及成本的监控和管理。
1.3.2 与存储虚拟化的区别
近十几年,存储及其管理大致经历了三个阶段:软件与硬件的紧耦合;软件与硬件半耦合;软件与硬件松耦合。随着软件与硬件耦合程度的降低,存储硬件设备的管理越来越自动化,而存储服务也越来越灵活。但是,存储虚拟化并不等于软件定义存储,二者是存在本质区别的。存储虚拟化对控制层和数据层进行了抽象化,并且控制层抽象依赖于数据层抽象。而软件定义存储将控制层进行了抽象化,将抽象的控制层与数据层进行了分离,并提供接口给用户,用户可以使用接口定义自己的数据控制策略。
相比于存储虚拟化,软件定义存储有以下几个优点:
❑时间开销少,控制层与数据层分离,使得用户能够更加关注控制层,减少了数据层虚拟化的开销,而且使得用户操作更加灵活和方便。
❑数据层的可扩展性高,由于软件定义存储不需要关注数据存储方式,因此可扩展性更高,不仅可以跨不同的存储产品,而且可以跨数据中心。
❑数据监控性和数据安全性高,由于软件定义存储提供了足够的API调用底层的信息,因此数据监控更加方便,而且控制层不能影响数据层访问方式,数据存储的安全性增强。
❑隔离更易实现,当数据动态传递以及共享时,由于同一物理设备有其不同的数据层和对应的控制层,存储虚拟化对不同虚拟用户访问同一物理设备做隔离时不仅要在数据层隔离,而且要在控制层隔离;而软件定义存储由于共享同一个控制层,因此隔离操作时在控制层相对容易,其主要精力放在数据层隔离。