对象存储、文件存储和块存储区别为:存储设备不同、特点不同、缺点不同。
一、存储设备不同
1、对象存储:对象存储的对应存储设备为swift,键值存储。
2、文件存储:文件存储的对应存储设备为FTP、NFS服务器。
3、块存储:块存储的对应存储设备为cinder,硬盘。
二、特点不同
1、对象存储:对象存储的特点是具备块存储的高速以及文件存储的共享等特性。
2、文件存储:文件存储的特点是一个大文件夹,大家都可以获取文件。
3、块存储:块存储的特点是分区、格式化后,可以使用,与平常主机内置硬盘的方式完全无异。
三、缺点不同
1、对象存储:对象存储的缺点是不兼容多种模式并行。
2、文件存储:文件存储的缺点是传输速率低。
3、块存储:块存储的缺点是不能共享数据。
大数据时代,海量数据给企业带来存储扩展、数据共享、高效传输、成本和数据安全等一系列挑战,当数据存储达到PB级别,以NAS为代表的文件存储和以DAS、SAN为代表的块存储的设备在扩展性、运维成本等方面的缺点便凸显出来,直接导致后期设备维护成本大增,同时无法完全满足企业对海量存储数据可靠性、可用性、安全性等的指标要求。
而对象存储是一种新的网络存储架构。它规避了NAS和SAN的缺点却综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。以目前华云提供的对象存储来说,COS公有云对象存储服务、StorUltra™ 2.0对象存储面向私有云,而StorUltra™ 3.0混合云数据迁移服务针对数据流动,基于分布式架构的海量对象存储技术,拥有几乎无限的存储空间。同时通过数据多副本(默认配置三副本)和EC纠删码(Erasure Code)冗余技术,轻松实现10个9数据可靠性和3个9的数据可用性,满足出版传媒、医疗机构、科研院所、图书馆、运营商和大型国企等用户对重要数据容灾备份有较高要求的客户。
具体你可以看看这张图:
一、概念及区别
针对不同的应用场景,选择的分布式存储方案也会不同,因此有了对象存储、块存储、文件系统存储。这三者的主要区别在于它们的存储接口:
1. 对象存储:
也就是通常意义的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展,
2. 块存储:
这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,
3. 文件存储:
通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。
二、IO特点
按照这三种接口和其应用场景,很容易了解这三种类型的IO特点,括号里代表了它在非分布式情况下的对应:
1. 对象存储(键值数据库):
接口简单,一个对象我们可以看成一个文件,只能全写全读,通常以大文件为主,要求足够的IO带宽。
2. 块存储(硬盘):
它的IO特点与传统的硬盘是一致的,一个硬盘应该是能面向通用需求的,即能应付大文件读写,也能处理好小文件读写。但是硬盘的特点是容量大,热点明显。因此块存储主要可以应付热点问题。另外,块存储要求的延迟是最低的。
3. 文件存储(文件系统):
支持文件存储的接口的系统设计跟传统本地文件系统如Ext4这种的特点和难点是一致的,它比块存储具有更丰富的接口,需要考虑目录、文件属性等支持,实现一个支持并行化的文件存储应该是最困难的。但像HDFS、GFS这种自己定义标准的系统,可以通过根据实现来定义接口,会容易一点。
因此,这三种接口分别以非分布式情况下的键值数据库、硬盘和文件系统的IO特点来对应即可。至于冷热、快慢、大小文件而言更接近于业务。但是因为存储系统是通用化实现,通常来说,需要尽量满足各种需求,而接口定义已经一定意义上就砍去了一些需求,如对象存储会以冷存储更多,大文件为主。
先说说块存储吧,典型代表--SAN。对于用户来说,SAN好比是一块大磁盘,用户可以根据需要随意将SAN格式化成想要的文件系统来使用。SAN在网络中通过iSCSI(IPSAN)协议连接,属block及存储,但可扩展性较差。
再说说文件集存储,典型代表--NAS。对于用户来说,NAS好比是一个共享文件夹,文件系统已经存在,用户可以直接将自己的数据存放在NAS上。NAS以文件为传输协议,开销很大,不利于在高性能集群中使用。
而所谓对象存储,就是每个数据对应着一个唯一的id,在面向对象存储中,不再有类似文件系统的目录层级结构,完全扁平化存储,即可以根据对象的id直接定位到数据的位置,这一点类似SAN,而每个数据对象即包含元数据又包括存储数据,含有文件的概念,这一点类似NAS。除此之外,用户不必关系数据对象的安全性,数据恢复,自动负载平衡等等问题,这些均由对象存储系统自身完成。而且,面向对象存储还解决了SAN面临的有限扩充和NAS传输性能开销大问题,能够实现海量数据存储。
先说说块存储吧,典型代表--SAN。对于用户来说,SAN好比是一块大磁盘,用户可以根据需要随意将SAN格式化成想要的文件系统来使用。SAN在网络中通过iSCSI(IPSAN)协议连接,属block及存储,但可扩展性较差。
再说说文件集存储,典型代表--NAS。对于用户来说,NAS好比是一个共享文件夹,文件系统已经存在,用户可以直接将自己的数据存放在NAS上。NAS以文件为传输协议,开销很大,不利于在高性能集群中使用。
而所谓对象存储,就是每个数据对应着一个唯一的id,在面向对象存储中,不再有类似文件系统的目录层级结构,完全扁平化存储,即可以根据对象的id直接定位到数据的位置,这一点类似SAN,而每个数据对象即包含元数据又包括存储数据,含有文件的概念,这一点类似NAS。除此之外,用户不必关系数据对象的安全性,数据恢复,自动负载平衡等等问题,这些均由对象存储系统自身完成。而且,面向对象存储还解决了SAN面临的有限扩充和NAS传输性能开销大问题,能够实现海量数据存储。