精华内容
下载资源
问答
  • 块存储

    千次阅读 2014-03-04 14:14:42
    OpenStack的存储主要分为三大类,一是对象存储服务,Swift解决的问题,二是块设备存储服务,在OpenStack里主要是提供给虚拟机的作为“硬盘”的存储,这里又分为本地块存储和分布式块存储,Cinder项目正在解决相关的...
    在OpenStack中,存储是非常重要的一块,但是因为其提供方式的不同,即使是专业的工程师也会感到十分困惑。OpenStack的存储主要分为三大类,一是对象存储服务,Swift解决的问题,二是块设备存储服务,在OpenStack里主要是提供给虚拟机的作为“硬盘”的存储,这里又分为本地块存储和分布式块存储,Cinder项目正在解决相关的问题;第三类,数据库存储服务,Databases
     as a Service(DBaaS), 对应AWS里面的RDC,目前是一个正在孵化的项目,Trove,前身是Rackspace开源出来的RedDwarf。
    

    本文重点介绍块存储服务,UnitedStack OS的块存储是在OpenStack Cinder框架下开发的,开发过程中,我们对目前主流的块存储服务提供商和开源的块存储软件做了一个简要分析,希望能给从事块存储开发的工程师对于块存储一个全局的认识。

    块存储,简单来说就是提供了块设备存储的接口。用户需要把块存储卷附加到虚拟机(或者裸机)上后才可以与其交互。这些卷都是持久的: 它们可以被从运行实例上解除或者重新附加而数据保持完整不变。

    下面会先介绍常见的单机块设备工具来建立对块存储的初步印象。

    单机块存储

    首先一个硬盘是一个块设备,内核检测到硬盘然后在/dev/下会看到/dev/sda/。因为我们需要利用一个硬盘来得到不同的分区来做不同的事,通过fdisk工具得到/dev/sda1, /dev/sda2等,这种通过直接写入分区表来规定和切分硬盘,是最死板的分区方式。

    LVM & Device-mapper

    LVM是一种逻辑卷管理器,通过LVM来对硬盘创建逻辑卷组和得到逻辑卷来完成目的比fdisk方式更加弹性。LVM对于不太熟悉其机制的人看来可能会造成不小的开销,但是相对于LVM对来的易用性其映射机制的负载小的足以忽略(在snapshot的情况会有不小的负载)。

    LVM在大多数Linux使用者看来非常普通的工具,它同时也是OpenStack块存储项目的一种backend并且是默认的。通过LVM在每个主机创建Volume Group,通过Cinder(OpenStack块存储项目)的调度器可以在任何一个合适的主机(满足容量和其他要求)使用lvcreate创建一个块设备供Nova(OpenStack Computing项目)使用。

    Device-mapper是一种支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构。LVM是基于Device-mapper的用户程序实现。

    Device-mapper在内核中它通过一个模块化的Target Driver插件实现对IO请求的过滤或者重定向工作,当前已经实现的Target Driver插件包括软Raid、软加密、逻辑卷条带、多路径、镜像、快照等。整个 device mapper 机制由两部分组成–内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具。内核中主要提供完成这些策略所需要的机制。Device-mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,比如逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等,而具体过滤和重定向 IO 请求的工作由内核中相关代码完成。

    SAN & iSCSI

    在接触了单机下的逻辑卷管理后,你需要了解SAN,目前主流的企业级存储方式。

    大部分SAN使用SCSI协议在服务器和存储设备之间传输和沟通,通过在SCSI之上建立不同镜像层,可以实现存储网络的连接。常见的有iSCSIFCPFibre Channel over Ethernet等。

    SAN通常需要在专用存储设备中建立,而iSCSI是基于TCP/IP的SCSI映射,通过iSCSI协议和Linux iSCSI项目我们可以在常见的PC机上建立SAN存储。。

    如何建立在PC机上的SAN可以参考iSCSI建立,这篇文章的iSCSI target管理方式不太方便,通常利用targetcli管理target是及其方便的。targetcli可以直接建立和管理不同backstone类型的逻辑卷和不同的export方式,如建立ramdisk并且通过iSCSI export非常方便,操作方式见targetcli screencast Part 2 of 3: ISCSI – YouTube

    分布式块存储服务

    以上都是我们经常解除的单机下块存储环境,接下来开始本文的正式分享内容,包括公共云技术服务提供的块存储服务,开源的块存储框架和OpenStack目前对块存储的定义和支持情况。

    分布式块存储

    在面对极具弹性的存储需求和性能要求下,单机或者独立的SAN越来越不能满足企业的需要。如同数据库系统一样,块存储在scale up的瓶颈下也面临着scale out的需要。我们可以用以下几个特点来描述分布式块存储系统的概念:

    • 分布式块存储可以为任何物理机或者虚拟机提供持久化的块存储设备
    • 分布式块存储系统管理块设备的创建、删除和attach/deattach。
    • 分布式块存储支持强大的快照功能,快照可以用来恢复或者创建新的块设备
    • 分布式存储系统能够提供不同IO性能要求的块设备

    Amazon EBS & 阿里云磁盘

    Amazon作为领先的IAAS服务商,其API目前是IAAS的事实标准。Amazon EC2目前仍然一骑绝尘,在大多数方面远超其他IAAS服务商。通过Amazon EC2的产品介绍是快速了解Amazon EC2的捷径。

    EBS是Amazon提供的块存储服务,通过EBS,用户可以随时增删迁移volume和快照操作。

    Amazon EC2实例可以将根设备数据存储在Amazon EBS或者本地实例存储上。使用 Amazon EBS时,根设备中的数据将独立于实例的生命周期保留下来,使得在停止实例后仍可以重新启动使用,与笔记本电脑关机并在再次需要时重新启动相似。另一方面,本地实例存储仅在实例的生命周期内保留。这是启动实例的一种经济方式,因为数据没有存储到根设备中。

    Amazon EBS提供两种类型的卷,即标准卷和预配置IOPS卷。它们的性能特点和价格不同,可以根据应用程序的要求和预算定制所需的存储性能。

    标准卷可为要求有适度或突发式I/O的应用程序提供存储。这些卷平均可以提供大约 100 IOPS,最多可突增至数百 IOPS。标准卷也非常适合用作引导卷,其突发能力可提供快速的实例启动时间(通常十几秒)。

    预配置 IOPS 卷旨在为数据库等 I/O 密集型随机读写工作负载提供可预计的高性能。创建一个卷时,利用预置 IOPS 为卷确定 IOPS 速率,随之 Amazon EBS 在该卷的生命周期内提供该速率。Amazon EBS 目前支持每预配置 IOPS 卷最多 4000 个IOPS。您可以将多个条带式卷组合在一起,为您的应程程序提供每个Amazon EC2数千IOPS的能力。

    EBS可以在卷连接和使用期间实时拍摄快照。不过,快照只能捕获已写入Amazon EBS 卷的数据,不包含应用程序或操作系统已在本地缓存的数据。如果需要确保能为实例连接的卷获得一致的快照,需要先彻底地断开卷连接,再发出快照命令,然后重新连接卷。

    EBS快照目前可以跨regions增量备份,意味着EBS快照时间会大大缩短,从另一面增加了EBS使用的安全性。

    总的来说,Amazon EBS是目前IAAS服务商最引入注目的服务之一,目前的OpenStack、CloudStack等等其他开源框架都无法提供Amazon EBS对于的如此弹性和强大的服务。了解和使用Amazon EBS是学习IAAS块存储的最好手段。

    阿里云

    阿里云是国内的公共云计算服务商,不过这里阿里云目前的块存储服务较于Amazon EBS差的太远,阿里云磁盘目前仅支持在创建云主机的时候绑定云磁盘或者在升级云主机的进行云磁盘扩容,这从根本上就是传统的虚拟主机的特点而不是所谓的“云磁盘”。

    从目前的阿里云磁盘的限制:

    • 无法快速创建或删除volume,在进行扩容时需要升级云主机才能达到,而升级云主机只有在下月云主机套餐到期时才能生效(想起了中国移动套餐)
    • 一个云主机最多只能绑定3个云磁盘

    从阿里云磁盘目前的使用分析,阿里云磁盘系统目前还很不成熟,以下是我对阿里云磁盘实现的推测

    • 阿里云主机是跟磁盘绑定的,这意味着阿里云的云磁盘是local volume(因此性能还是挺可观的)。如果用户需要扩容、减少都是需要下个月更说明了这点,整个主机在扩容时去调度合适的有足够存储空间的host,然后进行扩容。
    • 阿里云磁盘是分布式块存储系统,但是由于其QoS无法保证和其他资源调度原因无法提供足够的块存储支持。

    演讲回顾:阿里云存储技术的演进,以及云服务用例最佳实践中了解到阿里云是基于自家的“盘古”系统,那么从实际使用来说,远没达到一般的分布式块存储系统的要求。

    Ceph & Sheepdog

    Ceph是开源实现的PB级分布式文件系统,通过其分布式对象存储机制为上层提供了文件接口、块存储接口和对象存储接口。Inktank是Ceph的主要支持商,也是目前Ceph开源社区的主要力量。

    1

    Ceph目前是OpenStack支持的Backend中一个不错的开源块存储实现系统(即Cinder项目backend driver之一),其实现分为三个部分: OSD, Monitor, MDS。OSD是底层对象存储系统,Monitor是集群管理系统,MDS是用来支持POSIX文件接口的Metadata Server。从Ceph的原始论文(Ceph: Reliable, Scalable, and High-Performance Distributed Storage)来看,Ceph专注于扩展性,高可用性和容错性。Ceph放弃了传统的Metadata查表方式(HDFS)而改用算法(CRUSH)去定位具体的block。

    利用Ceph提供的RULES可以弹性地制订存储策略和Pool选择,Monitor作为集群管理系统掌握了全部的Cluster Map,Client在没有Map的情况下需要先向Monitor请求得到,然后通过Object id计算相应的OSD Server。

    Ceph支持传统的POSIX文件接口,因此需要额外的MDS(Meatadata Server)支持文件元信息(Ceph的块存储和对象存储支持不需要MDS服务)。Ceph将Data和Metadata分离到两个服务上,跟传统的分布式系统如Lustre相比可以大大增强扩展性。在小文件读写上,Ceph读写文件会有[RTT*2],在每次open时,会先去Metadata Server查询一次,然后再去Object Server。除了Open操作外,Ceph在Delete上也有问题,它需要到Metadata Server擦除对应的Metadata,是n(2)复杂度。Ceph在Metadata上并非只有坏处,通过Metadata Server,像目录列表等目录操作为非常快速,远超GlusterFS等其他分布式文件系统的目录或文件元操作。

    利用Ceph可以作两种不同类型的“共享存储”支持:

    1. 利用CephFS作分布式系统,所有虚拟机的块设备直接使用CephFS的命名空间
    2. 使用Ceph RBD块设备接口,从Ceph Cluster中导出Volume作为块设备Attach到虚拟机。

    关于Ceph作为块存储项目的几个问题需要考虑:

    • Ceph在读写上不太稳定(有Btrfs的原因),目前Ceph官方推荐XFS作为底层文件系统
    • Ceph的扩展性和架构较复杂,如果需要介入Ceph,需要较长时间深入了解
    • Ceph的部署不够简易,目前Ceph的官方部署工具不太成熟,而对于的Pupet模块或者其他都没有公认的较好实现。
    • Ceph的稳定性依赖高版本Linux的一些特性,并且Ceph的rbd.ko在高版本中更具稳定性。

    Sheepdog

    Sheepdog是另一个分布式块存储系统实现,它与Ceph相比,最大优势就是代码短小好维护和hack的成本很小。Sheepdog也有很多Ceph不支持的特性,比如说Multi-Disk, Cluster-wide Snapshot等。

    Sheepdog主要有两部分,一个是集群管理,另一个是存储服务。集群管理目前使用Corosync或者Zookper来完成,其存储服务的特点是在Client和存储Host有Cache的实现可以大大减小数据流量。

    目前Sheepdog只在QEMU端提供Drive,而缺少library支持,这是Sheepdog目前最主要的问题。但是社区已经有相关的Blueprint在讨论这个问题。

    了解Sheepdog通过以下链接:

    目前Taobao是Sheepdog主要用户和社区贡献者,国内也有Startup参与Sheepdog的社区开发。

    Cinder

    OpenStack是目前流行的IAAS框架,提供了AWS类似的服务并且兼容其API。OpenStack Nova是计算服务,Swift是对象存储服务,Quantum是网络服务,Glance是镜像服务,Cinder是块存储服务,Keystone是身份认证服务,Horizon是Dashboard,另外还有Heat、Oslo、Ceilometer、Ironic等等项目。

    Cinder是OpenStack中提供类似于EBS块存储服务的API框架,它并没有实现对块设备的管理和实际服务提供,用来为后端不同的存储结构提供统一的接口与OpenStack进行整合,不同的块设备服务厂商在Cinder中实现其驱动支持。后端的存储可以是DAS,NAS,SAN,对象存储或者分布式文件系统。也就是说,Cinder的块存储数据完整性,可用性保障是由后端存储提供的。在CinderSupportMatrix中可以看到众多存储厂商如NetAPP、IBM、SolidFire、EMC和众多开源块存储系统对Cinder的支持,在这里我们也可以看到OpenStack是非常受欢迎的。

    2

    从上图我们也可以看到,Cinder只是提供了一层抽象,然后通过其后段支持的driver实现来发出命令来得到回应。关于块存储的分配信息以及选项配置等会被保存到OpenStack统一的DB中。

    目前Cinder项目支持的操作包括创建/删除Volume,创建/删除Snapshot,Clone Volume,将Volume制作成Image或者将Image导出到Volume,备份/恢复Volume和扩展Volume大小,不同的Backend会实现不同程度的操作,但基本的创建Volume和快照操作都是支持的。目前令人振奋的Amazon EBS的QoS机制已经在Cinder社区中得到广泛讨论,在经历近两个月的Patch Review之后,整个QoS机制即将正式进入Cinder项目。

    总结

    目前分布式块存储的实现仍然是由Amazon EBS领衔,其卓越稳定的读写性能、强大的增量快照和跨区域块设备迁移,以及令人惊叹的QoS控制都是目前开源或者其他商业实现无法比拟的。

    不过Amazon EBS始终不是公司私有存储的一部分,作为企业IT成本的重要部分,块存储正在发生改变。EMC在一个月前发布了其ViPR平台,并开放了其接口试图接纳其他厂商和开源实现。Nexenta在颠覆传统的的存储专有硬件,在其上软件实现原来只有专有SDN的能力,让企业客户完全摆脱存储与厂商的绑定。Inktank极力融合OpenStack并推动Ceph在OpenStack社区的影响力都说明了无论是目前的存储厂商还是开源社区都在极力推动整个分布式块存储的发展,存储专有设备的局限性正在进一步弱化了原有企业的存储架构。

    在分布式块存储和OpenStack之间我们可以打造更巩固的纽带,UnitedStack存储团队在开源存储的基础上,结合本地块存储和分布式块存储的优势,为UnitedStack OS提供一个通用的存储解决方案。

    参考资料

    展开全文
  • 对象存储与块存储

    千次阅读 2018-11-05 00:44:35
    什么是块存储 数据被存储在固定大小的块内。块内只存储数据本身;Address就是块唯一的识别信息;对于块存储,没有metadata. 当应用和数据都在本地的时候,性能会比较好;当应用和数据在地理位置上分离较远的时候,...

    什么是块存储

    数据被存储在固定大小的块内。块内只存储数据本身;Address就是块唯一的识别信息;对于块存储,没有metadata. 当应用和数据都在本地的时候,性能会比较好;当应用和数据在地理位置上分离较远的时候,性能会较差。
    常见的企业级块存储由SAN提供。

    适用场景:
    块存储适合用于事务型数据库。一个重要原因是块存储是强一致性的。

    什么是对象存储

    每个对象包括3个部分:

    • 数据本身
    • 可定制化的metadata,其类型和数量也没有限制
      包括“数据是什么”的上下文信息、用途、安全信息、等等。
    • 全局唯一标识符

    对象存储特点:

    1. 易于扩展:所有对象都是平级的,没有等级关系;对象的数目没有限制
    2. 易于分类和搜索:因为metadata tags,所以对象是自描述的

    适用场景:

    1. 易于搜索和易于扩展的特性,使得对象存储适用于存储非结构化的数据。比如,网盘存储的用户的音频、视频文件就是非结构化数据,因此,对象存储常常用来作为网盘的后端。
    2. 对象存储不支持增量地修改一个文件的某一个部分(而块存储支持)。组成一个文件的所有对象必须被当成一个整体来访问、更新、重写。这样会影响性能。因此,对象存储更适用于读多写少的场景。

    对象存储的缺点:
    对象存储是最终一致性的(块存储是强一致性的),因此,对象存储不能保证一次读请求返回的是最新版本的数据。(注:似乎Ceph是强一致性的,这里还有待再研究一下)

    块存储与对象存储的差异

    对象存储 块存储
    适合用场景 非结构化数据,尤其是读多写少的场景 结构化数据、事务型数据库
    一致性 最终一致性 强一致性
    扩展性 扩展无限制,可达PB级或更高 不易扩展
    分析性 易于搜索与获取数据 因没有metadata,不易搜索与获取数据
    存储位置 数据可以跨不同的地理位置存储 数据和应用的距离越远,性能越差

    另外,操作系统可以直接将块存储作为挂载的卷进行访问,而对象存储则无法在不显著降低性能的情况下进行访问。 因为块存储(例如重新映射卷)的存储管理开销很小,而对象存储的存储管理开销较大。

    (完)

    展开全文
  • 计算机存储的发展(块存储,文件存储,对象存储)

    万次阅读 多人点赞 2018-09-15 15:04:08
    块存储 DAS SAN 文件存储 块存储和文件存储异同: 对象存储 1、对象 2、对象存储设备 3、元数据服务器(Metadata Server,MDS) 4、对象存储系统的客户端Client 三者之间异同比较 参考文献 如果要实现一个...

    如果要实现一个计算机,那么这个计算机一定要有以下的三个部分构成:计算、存储和网络。计算一般指的是CPU和内存的搭配,存储一般就是指硬盘了,网络指的是网卡的管理和配置。

    本篇文章,主要讲解有关块存储、文件存储、对象存储这三者之间的对比。每一种存储都有对应的实现方法。

    块存储

    块存储又有两种常见的形式,DAS和SAN。DAS即直接连接存储(Direct Attached Storage),SAN即存储区域网络(Storage Area Network)。

    DAS

    块存储是我们最常用的一种存储模式。比如个人PC上的硬盘,服务器上的硬盘,外置设备通过SCSI或者FC接口直接连接到电脑上的。

    这种存储方式有一种很大的缺陷,其存储性能瓶颈来自于自家PC电脑或者服务器的卡槽的多少。比如我们的笔记本一般只能装一个硬盘+SSD基本上已经没有位置再做扩展了。也就是DAS的性能瓶颈来自于主板的卡槽数量。很难做scale out扩展(即横向扩展)。

    这里写图片描述

    事实上,这种DAS存储模式,一般在中小型企业汇总应用十分广泛。它更依赖主机的操作系统来实现数据的IO读写、数据管理、数据备份等工作。

    但是这种存储模式也存在一定的缺点。比如可管理性差、弹性扩展能力弱,难以跟上IT发展趋势等问题。举例来讲,一台服务器/电脑只会配备固定容量的DAS存储,那么如果容量不够用,存储空间太小,就很难从内部着手实现弹性扩展(外部扩展容量也存在弊端),如果存储空间太大还会导致资源浪费,这一点在服务器领域尤为明显。

    补充知识点:SCSI接口是什么


    SCSI(Small Computer System Interface)小型计算机系统接口,一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。

    SCSI是一种计算机系统接口的标准

    SCSI是一种I/O技术

    SCSI规范了一种并行的I/O总线和相关的协议

    SCSI的数据传输方式是以块的方式进行的

    SAN

    对于用户来说,SAN好比是一块大磁盘,用户可以根据需要随意将SAN格式化成想要的文件系统来使用。SAN在网络中通过iSCSI(IPSAN)协议连接,属block及存储,但可扩展性较差。

    根据SAN的实现形式来看,其实是通过光交换机,将各块硬盘连接起来,然后通过ISCSI协议来传递数据。

    在我看来,其实是通过FC交换机解决了机器主板只有几个卡槽的问题,利用FC交换机,就仿佛实现了这样一种机制,即我们拥有一个无限卡槽的主板,上面都是接口,你可以通过这个接口插上你的硬盘。

    SAN是一个采用网状通道(简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。

    我们可以从定义中看出,这是一个专用于企业级应用的存储方式。可以简单理解为一个在高度网络中,提供在计算机与存储系统之间的数据传输。
    这里写图片描述

    从理论上来讲,SAN支持数以百计的磁盘,提供了海量的存储空间,解决了大容量存储问题;从逻辑层面,这个海量空间可以按需要分成不同大小的LUN,再分配给服务器,也解决了只需要小容量存储的问题。

    可以说,SAN的出现,适应了信息化发展的大趋势,它将计算与存储分离,增强了存储扩张的弹性。毕竟如今联网设备越来越多,数据量越来越大,我们对存储需求也越来越强。SAN“拉帮结伙”的特性让存储弹性更大,更方便扩展容量。

    同时,介于独特的存储结构,SAN需要通过光纤交换机连接存储阵列和服务器,建立专用数据存储的网络。

    文件存储

    再说说文件集存储,典型代表–NAS。对于用户来说,NAS好比是一个共享文件夹,文件系统已经存在,用户可以直接将自己的数据存放在NAS上。NAS以文件为传输协议,开销很大,不利于在高性能集群中使用。

    NAS是一种通过网络达成存储目的的设备,NAS传输数据依靠的是TCP/IP网络协议栈,这是NAS存储于上文的DAS和SAN存储最大的不同之处。

    NAS是标准的文件级存储方法,采用网络技术(TCP/IP、ATM、FDDI),通过网络交换机连接存储系统和服务器主机来建立存储私网。其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。能够快速实现部门级存储容量需求与文件传输需求。

    这里写图片描述

    实现文件存储的方式有很多,其中比较常用的有以下的几种,并且经常运用在企业运用中。ftp协议、nfs协议、samba协议等。

    比较下块存储和文件存储的异同,举个例子而言,有三块硬盘,使用光交换机连接之后,把光交换机和服务器进行直接连接,服务器就会单纯的以为自己是有一块儿这么大的硬盘的,要使用的话,需要对这块硬盘进行分区,格式化为某种文件系统,然后就可以使用了;同样是三块硬盘,我分别把这三块硬盘装在主机A,B,C上,分区、格式化为某种文件系统,比如格式化为XFS文件系统,然后我以共享文件夹的形式把主机A的/data目录使用NFS共享给B和C,这就是文件存储。

    块存储和文件存储异同:

    • 数据传输方式不同:块存储依靠SCSI或者ISCSI接口,以块方式交换数据,数据传输速度快;文件存储依靠TCP/IP协议栈进行数据传输,网络带宽是I/O的性能瓶颈。

    • 文件系统的位置:NAS和SAN最本质的区别就是文件管理系统在哪里,如图所示,SAN结构中,文件管理系统(FS)分别在每一个应用服务器上面,而NAS则是每个应用服务器通过网络共享协议,使用同一个文件管理系统。即NAS和SAN存储系统的区别就是NAS有自已的文件管理系统。

    • 使用方式不同:块存储设备使用的时候,还需要进一步进行分区,将设备格式为某种文件系统才可以继续使用;而文件存储就相当于你多了一个共享文件夹,文件存储带着自己本身的文件系统。

    对象存储

    总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。

    • SAN(Storage Area Network)结构
      采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,如SGI的CXFS文件系统就是基于SAN实现高性能文件存储的,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
    • NAS(Network Attached Storage)结构
      它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。

    对象存储结构:

    核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。

    对象存储结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端):

    这里写图片描述

    1、对象

    对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。

    这里写图片描述

    对象的层次理解:
    这里写图片描述

    2、对象存储设备

    对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统,OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问。目前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:
    (1) 数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
    (2) 智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能。
    (3) 每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销。

    3、元数据服务器(Metadata Server,MDS)

    MDS控制Client与OSD对象的交互,主要提供以下几个功能:

    (1) 对象存储访问。

    MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问。

    (2) 文件和目录访问管理。

    MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。

    (3) Client Cache一致性。

    为了提高Client性能,在对象存储系统设计时通常支持Client方的Cache。由于引入Client方的Cache,带来了Cache一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cache,从而防止Cache不一致引发的问题。

    4、对象存储系统的客户端Client

    为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。

    对象存储文件系统的关键技术

    1、分布元数据 传统的存储结构元数据服务器通常提供两个主要功能。

    (1)为计算结点提供一个存储数据的逻辑视图(Virtual File System,VFS层),文件名列表及目录结构。

    (2)组织物理存储介质的数据分布(inode层)。对象存储结构将存储数据的逻辑视图与物理视图分开,并将负载分布,避免元数据服务器引起的瓶颈(如NAS系统)。元数据的VFS部分通常是元数据服务器的10%的负载,剩下的90%工作(inode部分)是在存储介质块的数据物理分布上完成的。在对象存储结构,inode工作分布到每个智能化的OSD,每个OSD负责管理数据分布和检索,这样90%的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能。另外,分布的元数据管理,在增加更多的OSD到系统中时,可以同时增加元数据的性能和系统存储容量。

    2、并发数据访问 对象存储体系结构定义了一个新的、更加智能化的磁盘接口OSD。OSD是与网络连接的设备,它自身包含存储介质,如磁盘或磁带,并具有足够的智能可以管理本地存储的数据。计算结点直接与OSD通信,访问它存储的数据,由于OSD具有智能,因此不需要文件服务器的介入。如果将文件系统的数据分布在多个OSD上,则聚合I/O速率和数据吞吐率将线性增长,对绝大多数Linux集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算结点是非常重要的。对象存储结构提供的性能是目前其它存储结构难以达到的,如ActiveScale对象存储文件系统的带宽可以达到10GB/s。

    三者之间异同比较

    存储类型 数据传输方式 适应场景 优点
    块存储 SCSI/ISCSI接口 小型机房 速度快
    文件存储 NFS/FTP等 局域网环境 可扩展性高
    对象存储 http协议 互联网环境,异地存储 速度快,且扩展性高,高可用

    对象存储相比块存储、文件存储的一个最本质的区别是无层次结构。我们都知道,一般的存储(比如你自己的PC的文件系统)是有一个目录树概念的,要找到一个文件需要先找到这个文件所属的目录。而对象存储是没有文件目录树这个概念的,所有的数据都在同一个层次中,仅仅通过数据的唯一地址标识来识别并查找数据。

    块存储: 是和主机打交道的, 如插一块硬盘
    文件存储: NAS, 网络存储, 用于多主机共享数据
    对象存储: 跟你自己开发的应用程序打交道, 如网盘

    参考文献

    NFS深入了解
    SI/iSCSI及SAS、NAS、SAN的基本介绍
    NAS网络存储与SAN、DAS的区别
    NFS工作原理
    什么是对象存储

    展开全文
  • 首先,我说下块存储块存储可以看作为是裸盘,最明显的特征是不能被操作系统直接访问。可以通过划分逻辑卷、做RAID、LVM(逻辑卷)等方式将它格式化,可以格式化为你所指定的文件系统(Ext3,Ext4,NTFS,FAT32等)...

    首先,我说下块存储。块存储可以看作为是裸盘,最明显的特征是不能被操作系统直接访问。可以通过划分逻辑卷、做RAID、LVM(逻辑卷)等方式将它格式化,可以格式化为你所指定的文件系统(Ext3,Ext4,NTFS,FAT32等),然后才可以被操作系统访问。常见的DAS、FC-SAN、IP-SAN都是块存储。

    优点:读写速度快(带宽和IOPS);缺点:太过于底层,不利于扩展,不能被共享;

    其次,与块存储对应的是文件存储。文件存储可以分为本地文件存储和网络文件存储。

    • 本地文件存储:ext3,ext4,NTFS,FAT32
    • 网络文件存储(NAS存储):CIFS,NFS

    文件存储最明显的特征是支持POSIX的文件访问接口:open、read、write、seek、close等;

    优点:便于扩展&共享;缺点:读写速度慢;

    对象存储,相对来说是比较新的一种存储。有一种说法是这样的,对象存储一定是分布式存储,因为分布式文件存储可能是分布式存储,而未必是对象存储。常见的对象存储的开源实现有Ceph的RADOS、Openstack的swift、AWS s3等;常见分布式文件系统有lustre、glusterfs、HDFS等;

    表面区别:对象存储支持的访问接口基本是restful接口,而分布式文件存储提供的是POSIX兼容的文件操作接口;

    本质区别:分布式文件存储文件组织方式为目录树,对象存储采用的是扁平的组织方式;对象存储不支持随机读取和写入,put和get都是针对整个文件。

    展开全文
  • 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。  首先,...
  • 上一篇介绍了传统存储的几个常用类型,本篇主要介绍云平台用到的常用存储类型,分别是文件存储、块存储和对象存储。 这种分类是以数据存储的方式来命名的,体现了不同的数据存储格式。文件存储会以文件和文件夹的...
  • 一、在SAN中,存储资源就像一块一块的硬盘,直接挂载在主机上,我们称之为块存储,操作对象是磁盘,存储协议是SCSI、FC。 1、在腾讯云创建一台云主机实例:块存储测试WEB01 2、控制台–云硬盘–购买数据盘 3、这块...
  • 对象存储、文件存储和块存储区别为:存储设备不同、特点不同、缺点不同。 1、存储设备不同 1、对象存储:对象存储的对应存储设备为swift,键值存储。 2、文件存储:文件存储的对应存储设备为FTP、NFS服务器。 3...
  • 首先,我们介绍这两种传统的存储... 以下列出的两种存储方式都是块存储类型:  1) DAS(Direct Attach STorage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的
  • 关于块存储、文件存储、...块存储 典型设备:磁盘阵列、硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的。 就是说例如:磁盘阵列里面有5块硬盘,然后可以通过划逻辑盘、做Raid、或者LVM等方式逻辑划分出N个...
  • 对象存储、块存储、文件系统存储概念与区别 https://www.cnblogs.com/zxiner/p/7141861.html 一、概念及区别 针对不同的应用场景,选择的分布式存储方案也会不同,因此有了对象存储、块存储、文件系统存储。这三...
  • 块存储、文件存储、对象存储

    千次阅读 2017-08-08 15:31:05
    块存储】 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种...
  • 分布式块存储架构

    千次阅读 2019-08-27 10:12:04
    块存储,简单来说就是提供了块设备存储的接口。用户需要把块存储卷附加到虚拟机(或者裸机)上后才可以与其交互。这些卷都是持久的,它们可以被从运行实例上 解除或者重新附加而数据保持完整不变。OpenStack 中的实例...
  • 块存储】 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等...
  • 文件存储 设备:FTP、NFS服务器 特点:一个大文件夹,大家都可以获取文件 优点:可以共享 缺点:传输速率低 ...块存储 ...特点:具备块存储的高速以及文件存储的共享等特性 优点:速率快,共享方
  • 块存储、文件存储、对象存储区别

    千次阅读 2018-04-23 20:41:51
    块存储典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块磁盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式...
  • 理解块存储、文件存储和对象存储的应用场景和选择# 应用场景(王豪迈(麦子迈|wheats))#  分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就是简单...
  • 本质是一样的,底层都是块存储,只是在对外接口上表现不一致,分别应用于不同的业务场景。 分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就是简单的...
  • 一、【块存储】 典型设备:磁盘阵列,硬盘  块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)...
  • 1、块存储 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种...
  • 工作6,7年了,在实际搭建私有云网络中常用NAS结构,而部署传统RAC集群的时候也需要配SAN网络,对这几种存储方式有...块存储 典型设备:磁盘阵列、硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的。 就是说例...
  • https://blog.csdn.net/enweitech/article/details/51445087 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象...
  • 阿里云目前主要提供三种数据存储产品,分别是:块存储、文件存储(NAS)和 对象存储(OSS) 三者区别如下: 块存储:是阿里云为ECS云服务器提供的块设备,高性能、低时延,满足随机读写,可以像使用物理硬盘一样...
  • 块存储的世界

    2016-06-15 10:15:02
    1 单机块存储 1.1 LVM & Device-mapper1.2 SAN & iSCSI 2 分布式块存储服务 2.1 分布式块存储2.2 Amazon EBS & 阿里云磁盘2.3 阿里云2.4 Ceph & Sheepdog2.5 Sheepdog2.6 Cinder 3 总结4...
  • 块存储 裸盘上划分逻辑卷,逻辑卷格式化成任意文件系统 支持多种文件系统,传输速度快,提供硬件容错机制 无法实现网络共享 FC-SAN,iSCSI 文件存储 在格式化的磁盘上存储文件 提供网络共享 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,398
精华内容 22,559
关键字:

块存储