对象存储、文件存储和块存储区别为:存储设备不同、特点不同、缺点不同。
一、存储设备不同
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特点来对应即可。至于冷热、快慢、大小文件而言更接近于业务。但是因为存储系统是通用化实现,通常来说,需要尽量满足各种需求,而接口定义已经一定意义上就砍去了一些需求,如对象存储会以冷存储更多,大文件为主。