块存储文件存储对象存储意义及差异

rayan rayan     2022-12-09     543

关键词:

本文转自:https://www.cnblogs.com/hukey/p/8323853.html

关于块存储、文件存储、对象存储方面的知识在知乎上看到了个很好的解答:https://www.zhihu.com/question/21536660

通俗易懂,查了些资料做了详细的补充。

 块存储

    典型设备:磁盘阵列、硬盘
    块存储主要是将裸磁盘空间整个映射给主机使用的。
    就是说例如:磁盘阵列里面有5块硬盘,然后可以通过划逻辑盘、做Raid、或者LVM等方式逻辑划分出N个逻辑的硬盘。但是逻辑盘和物理盘是两个完全不同的概念。假设每个硬盘100G,共有5个硬盘,划分为逻辑盘也为5个,每个100G,但是这5个逻辑盘和原来的5个物理盘意义完全不同了。例如第一个逻辑盘第一个20G可能来自物理盘1,第二个20G来自物理盘2,所以逻辑盘是多个物理盘逻辑虚构出来的硬盘。
    接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操作系统会识别到有5块硬盘,但是操作系统是无法区分到底是物理盘还是逻辑盘,它一概就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操作系统没区别,至少操作系统感知上没有区别的。
    在此方式下,操作系统还需要对挂载的裸硬盘进行分区、格式化后,才能使用,与平常主机内置的硬盘无差异。

    优点

    (1)这种方式的好处当然是因为通过了Raid与LVM等手段,对数据提供了保护;
    (2)可以将多块廉价的硬盘组合起来,称为一个大容量的逻辑盘对外提供服务,提高了容量;
    (3)写入数据时,由于是多块磁盘组合出来的逻辑盘,所以几块硬盘可以并行写入的,提升了读写效率;
    (4)很多时候块存储采用SAN架构组网,传输速度以及封装协议的原因,使得传输速度和读写效率得到提升

    缺点

    (1)采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要购买光纤交换机,造价成本高;
    (2)主机之间数据无法共享,在服务器不做集群的情况下,块存储裸盘映射给主机,在格式化使用后,对于主机来说相当于本地盘,那么主机A的本地盘根本不能给主机B去使用,无法共享数据
    (3)不利于不同操作系统主机间的数据共享:因为操作系统使用不同的文件系统,格式化后,不同的文件系统间的数据是共享不了的。 例如一台win7,文件系统是FAT32/NTFS,而linux是EXT4,EXT4是无法识别NTFS的文件系统的。

 文件存储

     典型设备:FTP、NFS服务器
    为了克服文件无法共享的问题,所以有了文件存储。
    文件存储也有软硬一体化的设备,但是其实一台普通的PC机,只要装上合适的操作系统和软件,就可以假设FTP与NFS服务了,架上该类服务之后的服务器,就是文件存储的一种了。
    主机A可以直接对文件存储进行文件的上传和下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了。

     优点

     (1)造价低:随便一台机器就可以,另外普通的以太网就可以,根本不需要专用的SAN网络,所以造价低
     (2)方便文件共享

     缺点

     (1)读写速率低,传输速率慢:以太网,上传下载速度较慢,另外所有读写都要1台服务器里面的硬盘来承受,相比起磁盘阵列动不动就十几上百块硬盘同时读写,速率慢了许多。

 对象存储

    典型设备:内置大容量硬盘的分布式服务器
    对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。
    之所以出现对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬各自的优点。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写块,利于共享的存储出来呢?于是就有了对象存储。
    
    首先,一个文件包含了属性(术语:metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(数据)。
    像FAT32这种文件系统,是直接将一份文件与metadata一起存储的,存储过程先将文件按照文件系统的最小块大小来打散(例如4M的文件,假设文件系统要求一个块4K,那么就将文件打散称为1000个小块),再写进硬盘里,过程中没有区分数据和metadata的。而每个块最后会告知你下一个要读取的块地址,然后一直这样顺序的按图索骥,最后完成整份文件的所有块的读取。
    这种情况下读写速率很慢,因为就算你有100个机械臂在读写,但是由于你只有读取到第一个块,才能知道下一个块在哪里,其实相当于只能有1个机械臂在实际工作。
    
    而对象存储则将元数据独立出来了,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息)而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪里OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。
    这时候由于是3台OSD同时对外传输数据,所以传输的速度就会加快了,当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。
    
    另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在共享方面的困难了,也解决了文件共享方面的问题
    所以对象存储的出现,很好的结合了块存储和文件存储的优点

为什么对象存储兼具块存储和文件存储的好处,还要使用块存储和文件存储呢?

    (1)有一类应用是需要存储直接裸盘映射的,例如数据库。因为数据需要存储楼盘映射给自己后,再根据自己的数据库文件系统来对裸盘进行格式化的,所以是不能够采用其他已经被格式化为某种文件系统的存储的。此类应用更合适使用块存储。
    (2)对象存储的成本比起普通的文件存储还要较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高。

 

 下图简要的总结了三者之间的差异:

技术图片

 

对象存储文件系统的关键技术是什么?

    (1)分布元数据
    (2)并发数据访问,对象存储体系结构定义了一个新的、更加智能化的磁盘接口OSD

什么是OSD?

存储局域网(SAN)和网络附加存储(NAS)是我们比较熟悉的两种主流网络存储架构,而对象存储是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备,简称:OSD

在存储对象中通过什么对象方式访问对象?

    在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问对象

OSD的主要功能是什么?

    (1)数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写;
    (2)智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能的支持对象的预取,从而可以优化磁盘的性能
    (3)每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。

 

补充:

关于第三点“对象存储”,答主的回答是有一些问题的,这种使用服务器本地磁盘搭建的存储是分布式存储的概念,也叫ServerSAN,比如VMware的VSAN,这都是块存储。对象存储是一个独立的存储设备,比如EMC的Centera,Atmos等,只不过对数据的管理和存储方式与普通块存储不同,比如EMC的VNX通过内嵌Atomos的VE(Virtual Edition)版本,就可以实现对象存储的功能了。
另外,准确来说,对象存储所存储的应该是非结构化数据,例如文本文档,图片,音乐,视频文件,博客文档等等,而不能简单的说是文件,这样容易让很多人和NAS这种NFS,CIFS文件系统共享存储区分不清楚。
另外对象存储并没有结合块存储和文件存储的优点,对象存储的出现实际上是为了更好的满足特定非结构化数据的存储要求的,比如监控视频,话务中心录音,单据扫描图片等,单个对象(文件)相对尺寸都比较大,它基本上可以说是一个归档系统,更多的是写入数据,但因为仍然有对这些数据的读取,所以才形成了所谓的对象存储,只是一个面向特定行业或者特定应用需求的产品。
另外关于块存储,文件存储,对象存储的区分只存在于概念层面,产品层面已经可以实现三者的统一融合了,也有这种网关式的设备,底层接块存储,将块存储的空间按照自己特定的方式组织,然后提供给主机。

块存储文件存储对象存储意义及差异

关于块存储、文件存储、对象存储方面的知识在知乎上看到了个很好的解答:https://www.zhihu.com/question/21536660通俗易懂,查了些资料做了详细的补充。 块存储   典型设备:磁盘阵列、硬盘   块存储主要是将裸磁盘... 查看详情

对象存储、文件存储和块存储有啥区别?

对象存储、文件存储和块存储区别为:存储设备不同、特点不同、缺点不同。一、存储设备不同1、对象存储:对象存储的对应存储设备为swift,键值存储。2、文件存储:文件存储的对应存储设备为FTP、NFS服务器。3、块存储:块... 查看详情

块存储文件存储和对象存储

一、块存储典型设备:磁盘阵列,硬盘块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻... 查看详情

磁盘工作原理文件系统及i节点块存储文件存储对象存储dasnas还有san

(一)磁盘工作原理650)this.width=650;"src="http://p.blog.csdn.net/images/p_blog_csdn_net/tianxueer/EntryImages/20080722/ae289682f25ea4ae6d811969.jpg"height="396"width="484"/>一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标、型号、序 查看详情

对象存储快存储文件存储的区别

 分布式存储的应用场景相对于其存储接口,现在流行分为三种:对象存储:也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3块存储:这种接口通常以QEMUDriver或者KernelModule的方式存... 查看详情

分布式存储的三种类型

参考技术A有关分布式存储的三个基本问题文件系统vs对象存储——选型和趋势块存储、文件存储、对象存储这三者的本质差别是什么分布式存储的应用场景相对于其存储接口,现在流行分为三种:对象存储:也就是通常意义的键值... 查看详情

存储服务分类:块存储、文件存储、对象存储

1、关于文件存储文件储存最具代表性的NAS,对于大多数用户来说,NAS就类似于一个共享文件夹,用户可以直接将数据放在NAS上,用于传输。同时,NAS是通过网络达成储存的目的,依附于TCP/IP网络协议栈,这也就是NAS存储于上文... 查看详情

块存储文件存储对象存储这三者的本质差别是什么

块存储:类似硬盘,需要挂载,可以分区,需要格式化,之后方可使用文件存储:用自己的文件系统组织文件,只要支持协议并有许可,就可以使用,通常是通过网络;对象存储:类似文件存储,但是有所区别。首先,不使用文... 查看详情

块存储文件存储和对象存储三者的区别

大家好,学习时间又到啦。今日我们来聊一聊块存储、文件存储和对象存储的区别。这个问题老生常谈了,在网上会出现许多的解释,可是大多数相对比较抽象一些,此次我选择用抽象和简易两种方式给各位分享... 查看详情

块存储、文件存储、对象存储这三者的本质差别是啥?

块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完... 查看详情

对象存储文件存储块存储这三者之间有什么区别?

...开视频、音乐、图片、文本、表格这样的数据文件,存储的价值是让我们可以保存我们重要的信息,以便我们需要的时候能够查找、观摩、学习。但是对于企业用户来说,尤其是大数据时代,数据的价值被提到了... 查看详情

杉岩:浅谈对象存储和块存储区别

什么是块存储数据被存储在固定大小的块内。块内只存储数据本身;Address就是块唯一的识别信息;对于块存储,没有metadata.当应用和数据都在本地的时候,性能会比较好;当应用和数据在地理位置上分离较远的时候,性能会较... 查看详情

对象存储网关radosgateway(rgw)(代码片段)

...ph中的位置1.Ceph的整体架构Ceph是一个统一的、分布式的的存储系统,具有优秀的性能、可靠性和可扩展性。Ceph支持对象存储(RADOSGW)、块存储(RBD)和文件存储(CephFS)。一个Ceph存储集群至少包含一个Cephmonitor、Cephmanager及CephO... 查看详情

块存储对象存储和文件系统:它们对容器而言意味着什么?

...,通常会使其感到惊讶的是,容器本身采用的是非永久性存储。当容器被移除时,容器的存储也被移除了。 当然,如果没有办法实现永久存储,则容器应用程序的使用将会非常受限。幸运的是,有些方法在容器化的环境中可以... 查看详情

ceph对象存储及客户端配置(代码片段)

一、对象存储介绍  作为文件系统的磁盘,操作系统不能直接访问对象存储。相反,它只能通过应用程序级别的API访问。Ceph是一种分布式对象存储系统,通过Ceph对象网关提供对象存储接口,也称为RADOS网关(RGW)接口,它构建在... 查看详情

信息以文件形式存储,文件用啥分类分层存放

...块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。文件存储会以文件和文件夹的层次结构来整理和呈现数据;块存储会将数据拆分到任意划分且大小相同的卷中;对象存储会管理... 查看详情

cephrbd块存储挂载及文件存储建立

一、rbd块存储挂载1创建一个OSDpool#cephosdpoolcreaterbd1128查询存储空间使用#cephdfGLOBAL:SIZEAVAILRAWUSED%RAWUSED480GiB474GiB6.12GiB1.28POOLS:NAMEIDUSED%USEDMAXAVAILOBJECTSvolumes1134B0150GiB5vms20B0150GiB0images30B0150GiB0rbd1414.3MiB0150GiB19rbd50B0150GiB0 2创建一个名... 查看详情

glusterfs(代码片段)

分布式存储已经研究很多年,但直到近年来,伴随着谷歌、亚马逊和阿里等互联网公司云计算和大数据应用的兴起,它才大规模应用到工程实践中。如谷歌的分布式文件系统GFS、分布式表格系统googleBigtable,亚马逊的对象存储AWS... 查看详情