一、软件定义存储
软件定义存储系统(Software Defined
Storage,SDS)是一种数据存储方式,它将所有与存储相关的管理和控制工作都放置在相对于物理存储硬件的外部软件中,通过软件存储功能与硬件的剥离,从而打破了传统存储设备厂商的技术壁垒。用户可以通过分布式、集群应用和负载均衡等技术,利用较经济的服务器,盘阵和高速网络通过软件集合起来高效协同工作,提供高可靠,高可扩展性,低成本的数据存储。分布式软件定义存储技术不是简单地将数据存储在某个或多个特定的存储设备节点上,而是通过网络将分散的存储设备资源统一管理,构件一个基于存储虚拟化的存储资源池,数据能够分散且准确的存储在存储资源池的任意设备上。
二、软件定义存储特征
1.异构存储设备统一管理
软件定义存储的最大的优势在于对异构存储设备的整合,不同类型的存储系统(如
NAS、SAN、对象存储等)以及不同厂商的存储设备可以实现快速的接入和统一管理。软件定义存储支持使用通用硬件,提升了存储设备搭建的普适性。
2.存储虚拟化
存储虚拟化使用过软件剥离和功能整合的方式将不同厂商不同型号的异构存储资源聚合形成一个共享的存储池,存储池包含的所有存储设备的存储容量可以充分的被外部应用灵活配置使用。存储虚拟化实现了数据跨异构存储设备的管理,当存储硬件发生故障进行数据迁移时,可以实现数据的跨设备无缝迁移,并方便管理。
3.丰富的数据接口
软件定义存储支持对外提供如文件系统接口(NFS、CIFS等)、块接口(iSCSI、FC等)、对象接口(S3、SWIFT等)以及可以供大数据分析的 HDFS
接口等丰富的数据接口类型。
4.存储设备自服务
软件定义存储支持通过定义标准的应用编程接口(API),进行存储的配置,满足应用程序和客户所需要的存储资源。存储自服务技术将极大地方便应用系统管理员对存储设备的配置和应用的集成,并有效地降低管理成本。
三、软件定义存储原理
2000年Eric
Brewer教授提出了著名的CAP理论,即:一个分布式系统不可能同时满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。2002年MIT的Seth
Gilbert和Nancy lynch两人证明了CAP理论的正确性。
因此在存储系统设计时,需要综合分析需求,有取舍的设计系统。对于采用分布式架构的软件定义存储系统而言,分区容错性(P)是基本需求,因此只有 CP 和 AP
两种选择。CP 模式保证分布在网络上不同节点数据的一致性,但对可用性支持不足,这类系统主要有
BigTable,HBASE,MongoDB,Redis,MemcacheDB,Berkeley DB 等。AP模式主要以实现“最终一致性(
EventualConsistency)”来确保可用性和分区容忍性,但弱化了数据一致性要求,典型系统包括 Dynamo,Tokyo
Cabinet,Cassandra,CouchDB,SimpleDB 等。
四、软件定义存储的优势
1.高可用
存储在系统中的数据,不会因为任何故障丢失。故障原因包括,磁盘故障、服务器硬件设备故障、操作系统崩溃、网络故障、电源故障等等。分布式系统具有容错性和自愈方法。
2.高扩展
扩展性既包括了系统规模和存储容量的可扩展,也包括了随着系统节点数增加的聚合数据访问带宽的线性扩展,还包括了基于功能丰富强大的底层API提供多种功能、支持多种应用的功能性可扩展。
3.高性能
通过条带化,将数据分布到不同节点、不同硬盘上,获得比本地硬盘更好的IO性能。
4.低成本
可以通过廉价x86服务器构建,对硬件可靠性要求低,系统自动处理硬件故障。
5.高自动化
数据的自动replication,自动re-balancing,自动failure detection 和自动failure
recovery。总体而言,这些自动化特性一方面保证了系统的高度可靠,一方面也保障了在系统规模扩大之后,其运维难度仍能保持在一个相对较低的水平。
更多行业知识,敬请关注三个皮匠报告行业知识栏目。
推荐阅读:《头豹研究院:2019年中国SDS软件定义存储行业市场研究(39页).pdf》
《计算机行业2022年策略报告:软件定义景气为先-211220(43页).pdf》
《专注网络创新技术:中国软件定义广域网(SD-WAN)生态与技术报告(65页).pdf》