
块存储和文件存储是我们更加熟悉的两种主流存储类型,对象存储(基于对象的存储)是一种新的网络存储体系结构,基于对象存储技术的设备是对象存储设备(Object-基于存储). 称为OSD.
首先,我们介绍这两种传统的存储类型. 一般来说,所有磁盘阵列均基于块模型,并且所有NAS产品都是文件级存储.
首先让我们看一下所谓的块级?什么是文件级别?
1. 块级概念:
块级别是指基于扇区的一个或我连续的扇区形成一个块,也称为物理块. 它位于文件系统和块设备(例如: 磁盘驱动器)之间.
2. 文件级概念:
文件级别是指文件系统. 单个文件可以由一个或多个逻辑块组成,并且逻辑块不是连续分布的. 逻辑块大于或等于物理块的整数倍,
3. 物理块与文件系统之间的关系:
映射关系: 扇区→物理块→逻辑块→文件系统
文件级备份:
文件级备份意味着当指定某些文件进行备份时,将首先搜索每个文件的逻辑块,然后是物理块. 由于逻辑块分散在物理块上,因此物理块也分散在不同的扇区上. 需要逐层向下查看,最后完成整个文件副本. 文件级备份非常耗时,效率低下,不是实时的,备份时间长并且是增量备份,单个文件的一小部分被修改,不仅修改了部分,而且整个文件都被备份了.
块级备份:
块级备份是指物理块复制,高效,实时性强,备份时间短,增量备份,仅备份修改后的物理块.
当前文件级备份工具:
Symantec NBU / BE备份软件,Commvault,CA分布式文件存储系统,Networker
当前块级备份工具:
FalconStor CDP,Recoverpoint,杭州新和CDP,Novell CDP
备份时间点的保留期:
传统备份软件(文件级备份),可以保留多个备份时间点并恢复粒度
CDP备份(块级备份),可以保留更少的备份时间点和更小的恢复粒度
[块存储]

典型设备: 磁盘阵列,硬盘,虚拟硬盘
[文件存储]
典型设备: FTP,NFS服务器,SamBa
[对象存储]
典型设备: 具有内置大容量硬盘的分布式服务器
与存储接口相比,分布式存储的应用场景现在分为三种类型:
对象存储: 通常也是键值存储. 它的界面是简单的GET,PUT,DEL和其他扩展,例如Qi Niu,You Pai,Swift,S3
块存储:
此接口通常以QEMU驱动程序或内核模块的形式存在. 该接口需要实现Linux的Block Device接口或QEMU提供的Block Driver接口,例如Sheepdog,AWS EBS和云硬盘. 阿里云的盘古系统和Ceph的RBD(RBD是Ceph的面向块的存储接口)
文件存储:
通常的意思是支持POSIX接口,这是传统文件系统(例如Ext4)的一种,但是区别在于分布式存储提供并行化功能,例如Ceph CephFS(CephFS是Ceph的面向文件的存储接口)但是,有时将非POSIX接口的GFS和HDFS文件存储接口归为此类.
1,块存储
下面列出的两种存储方式都是块存储类型:
1)DAS(DirectAttachSTorage): 它是一种直接连接到主机服务器的存储方法. 每个主机服务器都有一个独立的存储设备,每个主机服务器的存储设备无法相互通信. 它必须经过相对复杂的设置. 如果主机服务器属于不同的操作系统,则访问彼此的数据甚至更加复杂. 有些系统甚至无法访问它. 它通常用于数据交换量不大且性能要求不高的单个网络环境中. 可以说这是一项早期的技术实施.
2)SAN(存储区域网络): 这是一种将主机服务器与高速(光纤)网络连接的存储方法. 该系统将位于主机组的后端. SCSI,ESCON和光纤通道. 一般来说,SAN应用程序的特点是在需要高网络速度,高数据可靠性和安全性以及高性能数据共享的应用程序环境中,成本高,性能好. 例如,大数据量在电信和银行业中的关键应用. 它使用SCSI块I / O命令集通过磁盘或FC(光纤通道)级别的数据访问提供高性能的随机I / O和数据吞吐量. 它具有高带宽和低延迟的优点. 在计算中占有一席之地,但是由于SAN系统的价格较高且可伸缩性较差,因此它无法再满足数万个CPU规模的系统.
2. 文件存储
通常,NAS产品都是文件级存储. NAS(网络附加存储): 它是一组网络存储设备,通常直接连接到网络并提供数据访问服务. 一组NAS存储设备就像一个提供数据文件服务的系统. 例如,数据存储应用程序,例如教育,政府和企业.
它使用NFS或CIFS命令集来访问数据,使用文件作为传输协议,并通过TCP / IP实现网络存储. 它具有良好的可伸缩性,廉价的价格,并且易于用户管理. 例如,它当前在集群计算中使用. NFS文件系统,但NAS协议开销大,带宽低,时延大,不利于高性能集群的应用.
接下来,我们比较和分析DAS,NAS和SAN的三种技术:
表1三种技术的比较

为响应Linux群集对高性能存储系统和数据共享的需求,国际研究已开始研究新的存储体系结构和新的文件系统,希望有效地结合SAN和NAS系统的优势并支持直接访问磁盘以提高性能. 为了简化共享文件和元数据的管理,当前的对象存储系统已成为Linux集群系统高性能存储系统的研究热点,例如Panasas的Object Base Storage ClusterSystem和Cluster FileSystems的Lustre. 对象存储系统将在下面详细描述.
3. 对象存储
通常,对象存储既具有SAN高速直接访问磁盘的特性,又具有NAS的分布式共享特性.
核心是将数据路径(数据读取或写入)和控制路径(元数据)分开,并基于对象存储设备(基于对象的存储设备,OSD)构建存储系统. 可以自动管理上面的数据分布.
对象存储结构的各个部分(对象,对象存储设备,元数据服务器,对象存储系统的客户端):
3.1. 对象
对象是系统中数据存储的基本单位. 对象实际上是文件数据和一组属性信息(MetaData)的组合. 这些属性信息可以定义基于文件的RAID参数,数据分布和服务质量. 传统存储系统使用文件或块作为基本存储单元,而块存储系统还需要跟踪系统中每个块的属性,并且对象通过与存储系统进行通信来维护自己的属性. 在存储设备中,所有对象都有一个对象ID,并且可以通过对象ID OSD命令访问该对象. 通常有很多类型的对象. 存储设备上的根对象标识存储设备和设备的各种属性. 组对象是存储设备上共享资源管理策略的对象的集合.
3.2. 对象存储设备
对象存储设备具有一定的智能. 它具有自己的CPU,内存,网络和磁盘系统. OSD和同一块设备之间的区别不是存储介质,而是两者提供的访问接口. OSD的主要功能包括数据存储和安全访问. 目前,世界上通常采用刀片存储结构来实现对象存储设备. OSD提供了三个主要功能:
(1)数据存储. OSD管理对象数据并将其放置在标准磁盘系统上. OSD不提供块接口访问方法. 客户端在请求数据时使用对象ID和偏移量来读写数据.
(2)智能分配. OSD使用其自己的CPU和内存来优化数据分配并支持数据预取. 由于OSD可以智能地支持对象的预取,因此可以优化磁盘的性能.
(3)每个对象的元数据管理. OSD管理存储在其上的对象的元数据. 此元数据类似于传统的inode元数据,通常包括对象的数据块和对象的长度. 在传统的NAS系统中,这些元数据由文件服务器维护. 对象存储体系结构通过OSD完成了系统中的主要元数据管理,从而减少了客户端的开销.
3.3. 元数据服务器(MetadataServer,MDS)
MDS控制Client和OSD对象之间的交互,主要提供以下功能:
(1)对象存储访问.
MDS构造和管理描述每个文件分布的视图,从而允许客户端直接访问该对象. MDS使客户端能够访问文件中包含的对象. OSD将在接收每个请求之前验证此功能,然后才能对其进行访问.
(2)文件和目录访问管理.
MDS在存储系统上构建文件结构,包括配额控制,目录和文件的创建和删除以及访问控制.
(3)ClientCache一致性.
为了提高客户端的性能,通常在对象存储系统的设计中支持客户端缓存. 由于在客户端上引入了缓存,因此带来了缓存一致性问题. MDS支持基于客户端的文件缓存. 当Cache文件更改时,将通知客户端刷新Cache,从而防止由Cache不一致引起的问题.

3.4客户端对象存储系统的客户端
为了有效地支持客户端访问OSD上的对象,有必要在计算节点上实现对象存储系统的客户端,通常提供POSIX文件系统接口,以允许应用程序执行类似于标准文件的操作系统操作.
4. GlusterFS和对象存储
GlusterFS是目前最好的分布式存储系统系统之一,并且已经开始商业运作. 但是,当前GlusterFS 3.2.5版本不支持对象存储. 如果要实现大容量存储,则GlusterFS需要使用对象存储. 幸运的是,GlusterFS最近宣布支持对象存储. 它使用openstack对象存储系统swift的上层PUT,GET和其他接口快速支持对象存储.
-详细介绍
[块存储]
典型设备: 磁盘阵列,硬盘
块存储主要将整个裸磁盘空间映射到主机. 也就是说,例如,磁盘阵列中有5个硬盘(为方便起见,假设每个硬盘为1G),则可以划分逻辑磁盘,执行Raid或LVM(逻辑卷)操作,然后从逻辑上划分N个逻辑硬盘的其他方法. (假设划分的逻辑磁盘也是5个,每个逻辑磁盘也是1G,但是这5个1G逻辑磁盘的含义与原始的5个物理硬盘完全不同. 例如,在第一个逻辑硬盘A中,它可能是第一个200M来自物理硬盘1,第二个200M来自物理硬盘2,因此逻辑硬盘A是逻辑上由多个物理硬盘组成的硬盘. )
然后,块存储将使用映射方法将这些逻辑磁盘映射到主机. 主机上的操作系统将识别出有5个硬盘,但是操作系统无法区分是逻辑硬盘还是物理硬盘. 我认为它只是5个裸露的物理硬盘,与直接将物理硬盘连接到操作系统没有什么不同,至少在操作系统感知上没有区别.
通过这种方式,操作系统还需要先对已安装的裸硬盘驱动器进行分区和格式化,然后才能使用它,这与构建普通主机内部硬盘驱动器的方式完全相同.
好处:
1. 这种方法的好处当然是因为Raid和LVM等数据提供了保护.
2. 另外,可以组合使用多个廉价的硬盘以提供大容量的逻辑磁盘,以提供外部服务并增加容量.
3. 写入数据时,由于它是由多个磁盘组成的逻辑磁盘,因此可以并行写入多个磁盘,从而提高了读写效率.
4. 块存储多次采用SAN架构进行组网分布式文件存储系统,其传输速率和封装协议的原因使得传输速度和读写速率得到提高.
缺点:
1. 采用SAN架构时,有必要为主机购买额外的光纤通道卡以及光纤交换机,这很昂贵.
2. 主机之间的数据无法共享. 如果服务器未集群,则块存储裸磁盘将映射到主机,然后进行格式化以供使用,它等效于主机的本地磁盘. 主机B完全无法使用该磁盘,并且数据也无法共享.
3. 它不利于不同操作系统主机之间的数据共享: 另一个原因是操作系统使用不同的文件系统. 格式化后,无法在不同文件系统之间共享数据. 例如,一个安装了WIN7 / XP的文件系统是FAT32 / NTFS,而Linux是EXT4,EXT4无法识别NTFS文件系统. 就像插入Linux笔记本电脑的NTFS格式USB驱动器一样,它根本无法被识别. 因此,这不利于文件共享.
[文件存储]
典型设备: FTP,NFS服务器

为了解决上述文件无法共享的问题,可以使用文件存储.
也有用于文件存储的软件和硬件集成设备,但实际上,通常要带一台服务器/笔记本电脑,只要安装了适当的操作系统和软件,就可以设置FTP和NFS服务,并且服务器这样的服务就可以成立了. ,是一种文件存储.
主机A可以直接从文件存储中上载和下载文件. 与块存储不同,主机A不需要格式化文件存储,因为文件管理功能已经由文件存储本身完成.
好处:
1. 成本低: 仅一台机器就足够了. 另外,普通的以太网就足够了. 完全不需要专用的SAN网络,因此成本很低.
2. 促进文件共享: 例如,主机A(WIN7,NTFS文件系统),主机B(Linux,EXT4文件系统),并且想要将电影彼此复制,则将无法使用. 添加主机C(NFS服务器),然后可以先将A复制到C,然后再将C复制到B即可. (这些示例是肤浅的,请原谅...)
缺点:
读写速度慢,传输速度慢: 与拥有数百个硬盘的磁盘阵列相比,以太网,慢速的上传和下载速度以及所有读写操作必须由服务器中的硬盘承担同时读写,速度要慢得多.
[对象存储]
典型设备: 具有内置大容量硬盘的分布式服务器
对象存储最常用的解决方案是在多台服务器上安装大容量硬盘,然后安装对象存储软件,然后添加一些附加服务作为管理节点,并安装对象存储管理软件. 管理节点可以管理其他服务器以提供外部读写访问功能.
之所以出现对象存储,是为了克服块存储和文件存储的缺点,并提高它们各自的优势. 简而言之,块存储的读写速度很快,不利于共享,而文件存储的读写速度较慢,这有利于共享. 我可以快速阅读和写作,这对分享很有帮助吗?这样就有了对象存储.
首先,文件包含属性(称为元数据,元数据的术语,例如文件大小,修改时间,存储路径等)和内容(以下称为数据).
过去,像FAT32这样的文件系统直接将文件的数据与元数据一起存储. 存储过程首先根据文件系统的最小块大小(例如4M文件,假设文件系统要求为一个块为4K,然后将文件分成1000个小块)将文件破碎,然后将其写入硬盘磁盘,在此过程中数据和元数据之间没有区别. 每个块最终都会告诉您要读取的下一个块的地址,然后按照此顺序继续按照地图进行操作,最后完成整个文件中所有块的读取.
在这种情况下,读写速度非常慢,因为即使您有100条机械臂进行读写,但是由于您仅读取第一个块,所以您可以知道下一个块在哪里,相当于仅有一个实际起作用的机械臂.
对象存储区分隔元数据. 控制节点称为元数据服务器(服务器+对象存储管理软件),它主要负责存储对象的属性(主要是对象数据分散并存储在分布式服务器中的哪个单元信息中),以及另一个负责存储数据的分布式服务器称为OSD,它主要负责存储文件的数据部分. 当用户访问对象时,将首先访问元数据服务器. 元数据服务器仅负责存储对象的OSD的反馈. 假设反馈文件A存储在三个OSD中,则用户将再次直接访问这三个OSD服务器. 要读取数据.
由于3个OSD同时在向外传输数据,因此加快了传输速度. OSD服务器的数量越多,读写速度的提高就越大. 这样就达到了快速读写的目的.
另一方面,对象存储软件具有特殊的文件系统,因此OSD相当于文件服务器,因此不存在文件共享困难,并且也解决了文件共享问题.
因此,对象存储的出现结合了块存储和文件存储的优点.
最后,为什么对象存储同时具有块存储和文件存储的优点,为什么要使用块存储或文件存储?
1. 有一类应用程序需要存储直接的裸磁盘映射,例如. 因为需要存储映射到其自身的裸磁盘,然后根据其文件系统格式化裸磁盘,所以无法使用已格式化为特定文件系统的其他存储. 这样的应用程序更适合使用块存储.
2. 对象存储的成本仍然高于普通文件存储的成本. 需要购买特殊的对象存储软件和大容量硬盘. 如果数据量要求不大,仅用于文件共享,最好直接使用文件存储形式,性价比高.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-192828-1.html
前几天的报告还在说锐澳的成功的
如此说来