云存储主要技术路线选型比较
哪些应用场景适合云存储?存储虚拟化、分布式存储、对象存储这几种技术主要解决什么问题?技术产品选型如何考虑?
企业哪些应用场景适合借助云存储来实现?
传统 IT 环境中使用传统存储的困境有那些?那些应用场景是传统存储不能满足而必须借助云存储来实现的?
分享一:
1、虚拟机存储
虚拟机存储是云计算平台中运行的虚拟机以及虚拟机镜像的存储环境,主要特点包括:
1) 文件较大,一般为 10G 以上;
2) 单个虚拟机的 IOPS 和带宽要求低,一般在几十以内;
3) 可用性要求较高。
一般来说,在云计算环境下会存在大量的虚拟机,少则上千台,多则几万台甚至几十万台,虽然单台虚拟机所需资源较少,但是量变带来质变,整体对于存储的性能需求极高,该场景下为了满足所有虚拟机访问带来的带宽要求,使用传统存储的解决方案需要购置多套 SAN 或者 NAS 存储设备并分别部署,显然价格较贵。
云存储可构建统一的资源池,并能够动态扩展资源,并有效提升存储资源的管理和使用效率。结合虚拟机存储的使用特点,存储资源池可使用 SAS 接口的磁盘甚至 SATA 接口的磁盘。
2、非结构化数据存储
业务系统在运行过程中,一般会生成一些非结构化的数据,包括记录的系统运行日志、生成的一些临时文件等。该类型数据的特点包括:
1) 文件大小中等,一般几十 MB 到几百 MB 不等;
2) IOPS 和带宽要求低,一般是连续读写;
3) 可用性要求较高。
该类型的应用场景类似于虚拟机存储,差别主要在于虚拟机主要表现为随机访问,非结构化数据主要表现为连续访问。另外,该场景下的文件数量会非常大,文件大小也差别较大,从几 MB 到数 GB 都会有。
因此,云存储也可很好的满足上述要求,使用廉价 SAS 和 SATA 磁盘满足大规模非结构化数据的存储,并提供良好的扩展性。
3、数据库存储
业务系统运行过程中另外一个典型的存储应用就是关系型数据库,基本上所有的业务系统均需要存储用户基本信息、参数信息、业务交易信息等内容。结合数据库使用的不同场景,包括联机业务数据库、批量业务数据库和参数库,相关的主要特点如下:
1)联机业务数据库:面向实时交易业务处理过程中的数据存储和访问,主要特点包括业务访问并发量很高、实时性和可用性很高、每天数据量较大等,数据表内容可达到几千万甚至几亿条记录;
2)批量业务数据库:面向交易业务处理过程中的非实时数据处理,比如说基于历史数据的统计分析,主要特点包括业务访问并发量不高、访问数据量较多、实时性较高等;
3)参数库:面向业务处理过程中关联的用户信息、商户信息、业务参数等内容,主要特点包括数据增加缓慢、业务访问并发量不高、实时性较高等。
云存储结合固态硬盘 SSD 的应用,完全可以满足数据库应用场景下的带宽和 IOPS 方面的性能要求。
分享二:
首先说下传统存储(包括 DAS 存储、NAS 存储、SAN 存储等)的困境,主要是管理不方便,容量扩展麻烦,从成本上考虑硬件成本和维护成本都很高。
如果使用云存储,优点还是很明显的,开箱即用,扩容也比较简单。
至于哪些场景的话,主要是多媒体,音乐,图片,视频监控文件,软件,镜像,扫描件等其他海量文件的存储,这些都可以使用,主要还是易用性跟性价比。
分享三:
从架构来看,云存储比紧耦合设计的传统存储有更好的横向扩展性,这样在容量和性能上有更大的弹性,另外云存储采用的纠删码技术也可以提供较之于传统 RAID 更高的可靠性,可以应对多个数据节点的同时失效。再者基于 x86 架构的分布式云存储较之于传统机柜式存储有更灵活的部署方式。市面上的云存储普遍采用低速 sata 盘,实际上,对于没有高性能要求的非交易型系统,对于这些系统产生的海量非结构化数据,云存储是个不错的选择。另外,从对海量数据的处理性能上来看,尤其是存储容量在几百 TB,甚至是 PB 级,文件数量在千万、亿量级的时候,传统的 SAN 和 NAS 实际上已经有了瓶颈,而采用扁平化数据组织方式的对象存储就有了很明显的优势。
分享四:
云存储相对传统存储能解决的问题:
1.节点级的高可用;传统存储只解决硬盘级的故障,对设备整机损坏没有防护
2.整体接入性能随容量线性增长,多节点并发读写的模式;传统存储的 IO 性能随着扩展柜的增加呈抛物线分布
云存储的适用场景:
1.开源云计算的后端存储,如果上 openstack,cloudstack,通常后端会配分布式存储而不是 SAN 存储。
2.海量非结构化数据存储,对于数 PB 的数据的统一存储,通常需借助分布式文件系统。
3.海量小文件数据存储,对于文件规模上亿的存储场景,通常使用对象云存储,以获得更高的 IO 性能和扩展性。
分享五:
从不度的维度可以有很多场景,几乎上规模的容量、性能及文件数量要求的大前提下,基本上都可考虑采用云存储实现。从常规容量及性能维度来看,场景有海量存储需求(如多媒体存储)、对容量、读写性能有同步横向扩展需求(超算或高性能计算)等。从数据结构类型维度来看,如非结构化数据、大型数据库、虚拟机存储等。
云存储主要技术路线有哪些?各有哪些优缺点?
分享一:
存储虚拟化:
存储虚拟化更多是对传统块(FC SAN,IP SAN)的虚拟化。 其主要解决了企业内部传统存储资源无法有效进行存储资源整合和统一管理的难题。可以有效的提升整体存储资源的利用率和降低人员运维成本。
同时作为虚拟化网关,极大的方便了异构品牌平台存储间的数据集中和数据迁移。
很多存储虚拟化网关本身具有远超传统存储的企业级软件功能:比如thin,压缩,快照,clone,数据复制等。可以通过虚拟化网关进行统一的存储复制交付功能。
所以存储虚拟化的主要勇武之地还是在传统IT环境及私有云环境。自然面向的也是高IO负载,低读写延迟等重要应用业务环境,比如数据库。是对传统IT环境中企业存储阵列的一个补充和升华。
SDS软件定义分布式存储:
为什么对于分布式存储我要在开头加上“SDS软件定义呢”? 因为我们这里讨论的是云存储关联的分布式存储。
分布式存储早多少年即有之了,并且很多都耳熟能详。比如EMC 的VMAX 高端存储阵列就是一种紧耦合的专有硬件的,硬件和软件相集成的传统分布式存储阵列。比如IBM 的XIV 高存储阵列也是硬件和软件相集成的高密度容量的分布式存储阵列。这些传统分布式存储阵列具有传统高端存储的高IOPS,低读写延迟优点,同时有具有分布式存储多副本,节点冗余自恢复等特色。
再说一说SDS 软件定义分布式存储,这个是云里面,无论是公有云还是私有云都在炒的潮流。也是云存储的主流当家花旦。
一般的SDS 软件定义分布式存储产品功能协议支持都比较全:
A. 块block协议 给轻量级数据库,VM,提供高性能块裸设备。
B. 文件file协议提供类似NAS 的文件共享功能或是承载非IO性能密集型的应用。
C. 支持api调用存取object 对象,用来存储海量数据文件。
针对以上三个协议我要多说几句:
1、首先SDS分布式存储在block块协议这方面相比传统存储在高性能低延迟、成本控制及易管理维护方面没有任何优势。同样的一套oracle数据库采用传统存储TCO总体拥有成本方面有可能只是SDS分布式存储成本的1/2甚至更少,这个在以前可能是误区,可能大家都认为开源的,或是软件定义的自己DIY搭的东西是最便宜的,其实很多时候事实刚好相反,开源的DIY的东西反而可能是最昂贵的。
对于传统IO密集型数据库应用来说,当前较好的存储模式还是采用传统高端存储阵列,因为这就好比存储中的跑车法拉利,虽然价格贵,但是久经验证,在性能和稳定性方面可靠。
SDS分布式存储当前因为三副本等原因容量成本在超大规模以下场景成本优势不明显,甚至是劣势。性能方面还是只能适用于opentask、VM、轻量级数据库场景。块协议普遍存在IO输出不稳定、延迟高等缺点。另外一个缺点就是在企业级存储软件功能方面,比如快照、clone,复制等技术方面相较传统存储还不是十分成熟,无法在生产环境中应用。
但是SDS 软件定义分布式存储是未来的大方向,也是在逐渐成熟中,未来一统天下也未可知。
2.SDS 分布式存储在file文件协议这一块PK的对手也慢多的,像传统的NAS存储,越来越火的分布式或是集群文件系统,比如GlusterFS、GPFS 等,个人感觉这一块SDS分布式存储会抢占很多传统NAS的市场份额,毕竟很多使用NAS的应用在IO性能和延迟方面要求低很多, 使用分布式存储的file协议,可以解决NAS 产品scale-out横向扩展不足的缺点。NAS 能应用的很多场景,一款优秀的SDS分布存储file协议应该也可以满足。
3.对象协议。
这个放在下文对象存储中一起讨论。毕竟多数SDS 分布式存储的底层就是调用对象来存储和读取数据的。块block协议功能和file协议功能都是间接调用基于的对象来实现的。
对象存储:
其实这个没有什么好说的。对象存储的出现就是为解决了互联网上存储海量大数据的问题。比如存储万亿的视频、图片,照片等。比如进行海量的数据归档,数据备份等。现在很流行的用法就就是用对象存储存储海量非结构化数据,然后进行大数据分析。
优点:对象存储其采用key-volume的扁平化存储架构设计,使用简单,调用API就能进行数据存储和读取。可以存储海量数据,这点传统存储和NAS就没辙。在海量数据场景中你只能选择对象存储。如果传统SAN存储是跑车,NAS是货车,那么对象存储就是万亿吨海上集装箱大油轮。对对象存储来说,单个客户端的访问效率不高,延迟也很高。但是你架不住他海量并发呀,互联网上海量客户端并发访问,这个带宽和总体性能一下就上去了。
缺点:单个客户端访问效率低,延迟高。应用功能和场景受限。对象存储不支持随机读写操作,只能全读全写,其面向的是一次写入,多次读取的非结构化数据存储的需求场景。
企业在分布式存储技术上主要是解决那些问题?并且技术产品选型上应该如何考虑?
分享一:
SDS 软件定义分布式存储支持三种协议方式:
A. 块 block 协议 给轻量级数据库,VM,提供高性能块裸设备
B. 文件 file 协议提供类似 NAS 的文件共享功能或是承载非 IO 性能密集型的应用
C. 支持 api 调用存取 object 对象,用来存储海量数据文件
虽然 SDS 分布式存储有很多中,但是仔细分析会发现不同厂商的分布式存储都会有其清晰的市场定位和优势场景:
比如 solidfire 其主要定位就在块 block 协议,不提供 file 和 object 对象功能。其主要定位就是 7 成用来云 opentask,VM,2 成用在轻量级数据库比如 mongoDB,PG,1 成用来 IOPS 2W 左右的物理机。并且其核心设计里理念就是云里面保证 qos,单个 host 提供有限的 IO,其架构不适用于高带宽应用。 但其优势就是用丰富的 API,和云集成比较好。不能满足也不适合传统高性能数据库应用。
比如华为 Fusionstorage block 存储其定位也是在块 block ,主要提供高性能块存储,可以适用于一般的高性能数据库。但是也不支持 file 和 object 协议。其支持应用主机通过两种模式 SCSI 和 iSCSI 模式访问存储集群。
仔细分析其架构和 IO 传输路径会发现:单个主机在 iSCSI 访问模式下只能访问部分的存储节点,无法做到整个集群的 IO 并发响应。单个主机的 IO 路径和 IO 性能被限制在固定的几个存储节点,此模式下无法发挥出分布式存储的架构优势,总体使用方式类似传统 SAN 存储(这样还不如用传统存储来的高效和方便)。其他的分布式 IP SAN 存储只要使用 iSCSI 协议也都存在这样架构劣势。
Fusionstorage 采用 SCSI 模式访问存储集群时,才真正意义上做到对单个应用主机的 IO 处理的分布式并发处理响应。
所以说在玩分布式 IP SAN 存储时,对同一个存储产品,其支持的那种存储访问协议和模式的很重要。这甚至决定了你是把一套分布式存储当做传统存储在用,还是在真正意义上当做分布式存储在用。
比如 WOS 其定位就是 objec 对象海量文件使用场景,其在块 bolck 场景应用上就不行了。
还有 ceph 其 块,file,object 协议都能提供,但是总体上地位比较尴尬。 块协议方面比不上专业厂商的分布式存储,file 功能还不成熟。 object 也比不上专业做 object 的厂商。 但好在其是开源的。
所以首先要明白你的业务类型和存储适用场景。针对你的需求来选择不同的分布式存储来满足应用业务需求。
传统存储阵列分布式架构和 SDS 软件定义分布式存储架构的相同点和不同点?各自定位有何不同?
分享一:
两者都是分布式存储,主要是适用场景有所不同。
差异分三个层面说,
1.硬件形态:部分高端的传统分布式阵列还是控制器架构,而后者基本是直接跑在 x86 服务器上和计算融合在一起使用
2.冗余实现:有所不同,前者更多用纠删码;后者更多是做副本,也有先做 RAID 再做副本,纠删码比较少
3.产品的商业模式:前者属于一个完整的产品,通常来自传统存储公司或硬件设备厂商,例如 EMC 的Isilon,
后者主要给虚拟化提供支持,很少作为独立产品出现,更多来自软件厂商,例如现在 openstack 的各种后端存储,ceph,gluster,swift
前者优势是性能和可靠性,更适合专业的细分应用,比如广电行业的视频编辑应用、IO 密集型的数据库应用等;
后者的优势是弹性扩展、接口丰富、开源,主要是软件厂商在使用和维护
分享二:
这两者的第一个差异点是通用硬件和专有硬件。
SDS 明确定义是基于通用硬件,大部分情况下“通用硬件”是指 X86 服务器。如果用车子打比方那就是量产车,上 4S 店就能买到的丰田大众宝马奔驰。
而传统阵列通常是专有的控制器架构,常见都是双控或多控,所谓控制器是一个为存储产品的使命专门设计制造的专有设备,有时候你也可以理解为嵌入式的软硬件一体设备,为存储这种特殊用途定制。同样用汽车类比那就是特殊用途车,越野暴改车。
分布式架构都是基于多个硬件节点,利用软件和其内涵的分布式算法有机地揉和成一个系统,向外提供高可靠高并发的服务。和传统存储相比,两种的“基底”硬件明显是不同的。SDS 的硬件节点是通用型,自然硬件可靠性也比较一般。因此需要在软件和算法层面更多的考虑到硬件故障,上规模的产品通常在设计时就把设备节点故障当中常态处理,并不视为异常。而传统存储这边的硬件在可靠性上明显更强,对数据强一致性等指标更为重视。
从系统架构上看,SDS 有很多是对称式架构,所有节点配置都相同,标准化的硬件节点,像乐高积木一样自由增加,性能容量同步横向扩展。传统存储阵列做分布式还是非对称式多,构建系统有多种规格和角色设定的节点,甚至是异构的。这种系统一般必须有一个控制/管理节点,所谓“机头”或者“存储网关”,下面再挂接“后端存储”,即各类阵列,异构兼容。
由于固态存储的广泛应用,基于通用 X86 服务器的 SDS 也能通过多节点聚合得到很好的性能表现,因此传统存储在性能上的优势不再,两者都能提供给应用系统足够的性能。SDS 通常把原来依附于传统高端存储的企业级高级功能如快照克隆远程复制都提炼出来放到软件里,在某种程度上也提供了这些高级功能,但整体架构的变化,(SDS+计算虚拟化,两者再深度结合就变成 HCI 超融合架构),导致一些容灾备份实现机制有别于传统,提供了新的可能性,是否继续沿用旧机制值得关注。
从定位上来说,我认为传统存储阵列的分布式还是属于渐进式创新,在原来的传统 IT 环境基础上做的小步调整,和原有应用和系统配合度比较高,改动不大。扩展规模上相对来说小一点。如果有系统改造的需求,这类架构是可以考虑的。
而 SDS 还是有较大的变化,有点颠覆性创新的意思,架构变化较大,系统移植过去能够获得更好的扩展性,能够适应更大的系统规模,但是原来的旧系统很多无法利用。勉强连上也只能保证连通性,性能和高级功能就顾不上了,所以总体来说可能更适合新建的系统。
企业在存储虚拟化技术上主要是解决那些问题?并且技术产品选型上应该如何考虑?
分享一:
主要是解决:
1. 异构存储的集中管理
2. 存储资源的池化
3. 为存储自动化建设蓄力
4. 为云环境准备存储资源
5. 提高存储使用和运营效率
6. 数据的备份和分层
……
所以啊,主要考虑:
1. 兼容性
2. 易用性
3. 对于性能的提升
4. 附加功能够不够满足二期建设要求
5. 安全性
6. 价格。。。土豪无视
分享二:
补充一点。丰富的软件功能性能也是一个重要的考虑点。
就拿 svc 和 vplex 来对比。svc 在软件功能:thin,快照,clone,压缩,数据复制等软件功能方面全面并且强大。版本的 svc 甚至直接支持将自身数据和快照通过 s3 接口直接上传到云和对象存储,进行复制和备份。
而这些恰恰是 vplex 的短板。vplex 缺乏当今企业级存储必要的软件功能,甚至在这方面远落后于一般的存储阵列。如数据保护,压缩,分层,thin 等。更为奇葩的是竟然不支持在 vplex 上做快照,clone 和复制。
这让 vplex 仅仅只是一个虚拟化网关功能。无法做到在虚拟化层面,对存储软件功能进行整合和在虚拟化层对外提供一致存储软件功能。但是就是因为功能少,复杂度降低,在稳定性和性能方面比 svc 有优势。并且 svc 集群不是真整意义上的分布式架构,而是分多个 iog 组每个组内的两个节点是类似中端存储的主被模式。
总之如果你在存储虚拟化层不需要一些基本的软件功能,比如 thin,快照,clone 等,那你可以选择vplex 也可以选择 svc。
如果你想要一个完整的存储虚拟化解决方案。那么你没得选,只能选择 svc。
企业在应用对象存储技术主要是解决那些问题?并且技术产品选型上应该如何考虑?
分享一:
文件 NAS 存储的缺点:
读写速率低,传输速率慢:以太网,上传下载速度较慢,读写延迟比传统 SAN 存储高很多。
虽说也可以存储海量文件,但是因为 inode,目录层级的限制,单个目录深度和存储文件数量是有上限的,分层文件结构的命名空间有限,无法在真正意义上做到存储海量数据。
块或 SAN 存储的缺点:
1.采用 SAN 架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高。
2、主机之间的数据无法共享,在服务器不做集群的情况下,块存储裸盘映射给主机,再格式化使用后,对于主机来说相当于本地盘,那么主机 A 的本地盘根本不能给主机 B 去使用,共享数据受到很多限制。
3、一般都是集中使用方式,一个主机分好多的盘。扩展性方面是硬伤。单个应用容量及其容易到达单台存储容量上限的限制。
对象存储综合了 NAS 和 SAN 的优点,同时具有 SAN 的高速直接访问和 NAS 的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。最最重要的是其接近无限扩展能力的,可以在真正意义实现非结构话数据的海量存储。其扁平化的存入和读取数据对象方式,使其使用方式简单,应用通过标准 API 接口进行调用,十分契合互联网大数据的存储。
对象存储典型使用场景:
数据采集(情报、监视、侦察和合法拦截)
数据采集(视频监控)
数据备份、归档、版本管理
数据协同(公共数据平台)
数据源和数据分发(CDN)
对比传统存储解决方案的优势:
架构简洁,易于维护,经济高效
EB 级扩展能力
对象数量达万亿级
高性能
跨地域部署
分享二:
对象存储天生具备分布式的架构优势,扩展方便;另外它没有多层树级文件目录,采用查表式访问操作,小IO性能好,适用于海量小文件的应用模式。如果业务收益可以支撑 IT 投入,又有一定的研发维护能力,可以用开源对象存储方案自己搭建。
分享三:
1.解决跨地域多点协同数据访问
2.解决海量文件持续一次写入多次访问的问题
选型上考虑数据保护的等级和成本以及初期落地的量级等因素。
另外运维的管理能力和售后支持团队也需要做为考虑范围。
尽量选择经过经久考验的厂商品牌。
分布式存储和对象存储应用场景有哪些不同?
分享一:
通常,分布式存储和对象存储是包含关系,
分布式存储是一种存储节点的物理组织形态,
分布式存储可以提供块存储、文件存储和对象存储服务;
是相对传统单机集中存储的概念。
对象存储是一种逻辑上的存储访问接口,
是指采用 restful 框架进行数据访问的模式,本质上也是一种轻元数据、功能简化的文件存储,对象存储在物理上通常是分布式的形态。
看一下上图你就知道
传统存储的局是不是越来越小了?
分享一:
我说一下我个人的经验。
sds 软件定义存储,分布式存储和对象存储是未来大的趋势这个一定是对的。
传统存储在近几年还会是主流存储。
为什么?我只说快 block 这个方面。就拿我测试过得多家 sds 分布式块存储来说吧。国产 ceph,华为fusionstorage,solidfire,hedvig 等。他们有个共同的特点就是不够成熟。展示 PPT 的时候一个比一个能吹,让你觉得牛逼到爆。实际测试后基本见光死。
性能方面还是比传统存储有差距,io 稳定性方面也较差,当前阶段只能用在 io 性能要求不高的轻量型应用上面,生产先不要想,先在测试上用用,并且是 io 要求较低的测试应用。
还有一个缺陷就是存储软件功能方面非常不成熟,快照 clone,复制完全就是不能用,大多不支持一致性快照组。这些在传统存上平平常常的功能方案,你和 sds 软件的研发人员聊他们压根没有一致性快照组,对快照,clone 卷 overwrite 刷新这些概念。
分享二:
首先,如果定义为传统存储,并且固守原来的架构方式,甚至缺陷和不符合新型应用需求的特点,那么毫无疑问,它注定就是要被颠覆的,新技术打破传统,是历史的必然。
另一方面,传统存储有它本身优点,结合自身的优点,有它命脉的传承,比如闪存,存储存储化产品,其实某种程度上是在传统存储领域的拓展,是传统存储的进步和突破,是具备沿袭的特征的。