首页 > 其他分享 >Blobstore简介

Blobstore简介

时间:2022-11-26 19:02:43浏览次数:74  
标签:逻辑 简介 存储系统 Blobstore 集群 blob 应用

参考:https://spdk.io/doc/blob.html
Blobstore是一种持久的、断电安全的块分配器(block allocator)。它可以代替传统的文件系统,支持上层的存储服务。可以用于数据库(MySQL, RocksDB)、一些专门应用(SAN, NAS)或者分布式存储系统(ex. Ceph, Cassandra)等。Blobstore可以对块设备上一种叫“blob”的块群(groups of blocks)进行异步、非缓存(uncached)、平行的读写。blob通常很大,至少有几百KB,并且总是比块的大小要大。但是Blobstore不是为通用的存储系统设计的,它不支持POSIX。因此为了避免混淆,我们不用文件或者对象来称呼blob。 Blobstore是为下一代存储设计的,这种存储设备可以快速随机读写,也不需要垃圾回收。不过目前也可以在NAND上运行。

概念

Blobstore对存储系统进行了如下抽象
notion image
    1. 逻辑块(logical block)
磁盘被划分为许多逻辑块,每个逻辑块都有自己从0到N的顺序编号,逻辑块的大小一般是512B或者4KB.
    1. 页(page)
一页由固定数量的逻辑块组成,在创建Blobstore的时候就定好了。组成页的逻辑块总是连续的。每个页也有自己的从0到N的顺序编号。一页的大小一般是4K,所以实际中一般由1~8个块组成。SSD起码要能对页面大小的逻辑块进行原子读写操作。
    1. 集群(cluster)
一个集群由固定大小的页组成,在创建Blobstore的时候就定好了。组成集群的页总是连续的。每个集群也有自己的从0到N的顺序编号。一个集群的大小一般是1M,也就是256页。
    1. blob
一个blob是一个有序的集群列表。blob是通过应用来操作的,这些操作即使断电或者重启也可以继续。应用通过标识号来唯一确定一个blob。在读写的时候,应用给出一个blob内的偏移量来访问blob里面的页面。应用也可以通过键值对的形式存储blob的元数据,也叫做扩展属性(xattrs, extended attributes)
    1. Blobstore
经过应用初始化,支持Blobstore存取方式的SSD叫做“一个Blobstore”。Blobstore元数据确定的区域归这个Blobstore所有。   Blobstore具有原子性:
  1. 写数据时,原子性以一个页面为单位
  1. 设定、修改blob、Blobstore元数据的操作是原子的
在Blobstore的操作没法完成时,系统不会阻塞,而是会调用API提供的回调函数。Blobstore可以在设备上直接运行,也可以在设备的bdev层上运行  

标签:逻辑,简介,存储系统,Blobstore,集群,blob,应用
From: https://www.cnblogs.com/hushrush/p/16928040.html

相关文章

  • django模型的字段类型简介
    【django基础】django模型的字段类型简介说实在的,每一个框架基本都会用一套orm,只是各有各的标准,每次用起来都挺费劲的,所以还是要单独整理下AutoField—自增列=int......
  • java——数据库连接池——概念简介
        1.概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器......
  • K8s——简介
    Kubernetes是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。容器部署时代容器类似于VM,但是具有被放宽的隔离属性,可以在应......
  • Spring--AOP简介+入门案例
    AOP简介面向切面编程:在不惊动原始设计的基础上,进行功能增强各个要应用该功能的对象叫做连接点,那个功能叫做通知,表面上的代码没有发生变化,私下里发生变化的连接点,会出现切......
  • Python数据分析与科学计算之NumPy超细教程之第1部分 NumPy简介
    1.学习NumPy前置知识点1、Python基础语言2、重点Python内置数据结构:列表(list)、字符串(str)、元组(tuple)、集合(set)和字典(dict)。3、序列的索引和切片操作。4、列表推导式、集合推......
  • [Linux高并发服务器]进程间通信简介
    [Linux高并发服务器]进程间通信简介摘自​​牛客项目课Linux高并发服务器​​概念进程间通信IPC:InterProcessesCommunication为什么需要进程间通信进程是一个独立的资......
  • 一、css简介
    网页分成三部分结构(html)表现(css)行为(javascript)css​ -层叠样式表​ -网页实际上是一个多层的结构通过css可以分别为网页的每一层来设置样式,而最终我们能看到只是......
  • RabbitMQ简介
            RabbitMQ是一种消息队列,用于常见的进程通信。支持点对点,请求应答和发布订阅模式并且提供多种语言的支持。常见的java,c#,php都支持。常被用在异步处理,应用......
  • Apworks简介
    简介Apworks是一款基于Microsoft.NET的面向领域驱动的企业级应用程序开发框架,它适用于以领域模型为核心的企业级系统的开发和集成。Apworks不仅能够很好地支持经典的分层架......
  • 学习 vue3 第一天 vue3简介,创建vue3项目 Composition Api 初识
    前言:从今天开始来和大家一起学习vue3相信大家都不陌生,已经火了一段时间了,但是还是有不少人没有学习,那就跟着六扇老师来简单的入个门废话不多说,来开始今天的学习Vue3......