![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式存储
文章平均质量分 90
分布式存储相关
Charles Ray
现就职于某半导体公司。Software Programmer
展开
-
NVME创建namespace以及挂载SPDK
nvme 创建namespacenvme list (如果能查到说明没绑定到uio,绑定在linux下)列出设备/dev/nvme0的控制器号nvme list-ctrl /dev/nvme0查看某个盘的详细信息nvme id-ctrl /dev/nvme0列出某个设备的空间大小,单位是bytenvme id-ctrl /dev/nvme0 |grep nvm将名字空间与controller解绑(-c是controllerid, -n是namespace)这时还可以查到该原创 2021-11-26 17:50:54 · 5521 阅读 · 1 评论 -
存储的接口、总线和协议介绍与区分
存储协议https://blog.csdn.net/weixin_39700394/article/details/111171971?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.showsourcetag&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~def原创 2021-11-29 18:57:11 · 2903 阅读 · 3 评论 -
Raft协议简介
概述Raft是一种实现分布式共识的协议:也就是多个节点达成一致的协议。分布式存储系统的核心问题之一:维护多个副本的数据一致性。raft将一致性算法分为了几个部分,包括:领导选取(leader selection)、日志复制(log replication)、安全(safety)领导选举在多个Node中,我们要选举出一个来作为leader,这个leader用来和客户端交互,然后leader将接收到的数据,通知给其他Node。所以leader非常重要。那么我们如何选举出这个leader一个Node任原创 2022-04-20 16:49:56 · 1906 阅读 · 0 评论 -
伙伴算法原理简介
文章目录引出实现伙伴定义思想申请空间举例释放空间举例伙伴合并通过一个更具体例子来看优缺点优缺点内部碎片和外部碎片数据结构参考引出正好最近在做内存相关的一些开发也研究,看到了一个叫伙伴算法的东西,学习一下并做个分享。内存碎片:内存碎片就是内存被分割成很小很小的一些块,这些块虽然是空闲的,但是却小到无法使用。随着申请和释放次数的增加,内存将变得越来越不连续。最后,整个内存将只剩下碎片,即使有足够的空闲页框可以满足请求,但要分配一个大块的连续页框就可能无法满足,危害:浪费内存空间。我们需要尽量避免产生内原创 2022-04-03 16:09:07 · 5539 阅读 · 2 评论 -
linux存储协议栈简介
linux存储栈数据流程:应用程序通过系统调用发出一个写请求,最终的目的是要把数据写到磁盘上,文件系统来负责定位这个写请求的位置并将其转换成块设备需要的块,然后把这个请求发送到设备上。内存在这个过程中扮演了一个磁盘缓存的角色,把上下两个部分隔离成异步运行的两个过程,对上半部分来说,让数据一直留在内存中是最好的方式,因为没有办法预料到之后还会不会修改,如果需要对同一个位置频繁地进行修改,则与磁盘进行不断的数据同步是没有必要的。至于下半部分,数据从页面缓存(Page Cache)同步到磁盘上,发出的原创 2022-03-07 09:31:25 · 658 阅读 · 0 评论 -
文件系统简介
文章目录为什么要有文件系统如果没有文件系统什么是文件系统文件系统的三大作用:引出1.便于磁盘空间管理2. 方便数据组织和查找3. 提高磁盘利用率linux文件系统http://www.360doc.com/content/18/1117/00/99071_795394734.shtmlhttps://zhuanlan.zhihu.com/p/68904315为什么要有文件系统如果没有文件系统如果我们不在硬盘本身建立文件系统,我们要直接面对硬盘的扇区。先看看对于操作普通文件来说,意味着什么。比如原创 2021-12-08 11:51:45 · 1646 阅读 · 0 评论 -
分布式一致性算法—— 2PC与3PC
几个分布式算法分布式均衡算法:一致性hash,解决将数据均匀分布到不同机器,他考虑到了增加或者删除机器的情况,也有pg。但是没有在ceph中使用,一般在添加缓存服务器中使用。Consistent Hashing是为了解决单副本情况下的数据分布问题,比如说分布式缓存,并没有涉及多副本/EC场景,它类似于Ceph中object->PGs这段的工作;crush算法:解决将pg分布到OSD分布式一致性算法:paxos, raft: 解决所有节点具有一致性,也就是所有节点数据统一,解决选举leader问原创 2021-11-17 18:37:56 · 1432 阅读 · 0 评论 -
分布式均衡算法 —— 一致性哈希算法
一致性哈希算法https://www.zsythink.net/archives/1182https://blog.csdn.net/cywosp/article/details/23397179普通哈希算法,我们把一个数据,进行哈希算法得到哈希值,然后对服务器数取模。然后将该数均匀存储到相应的数据库服务器中。但是该算法存在一个缺陷,就是如果我们增加或者删除了服务器数量,那么我们取数的时候,很多原有的数据就无法找到了。这样就不能够取到正确的数。为了解决该问题,我们使用一致性哈希算法。形成环空间原创 2021-06-16 15:52:47 · 484 阅读 · 0 评论 -
SSD性能指标分析与FIO指标解读
文章目录SSD性能指标主要性能指标IOPS带宽(吞吐量)延迟条件指标访问方式队列深度(iodepth):fio指标解读配置参数.fio结果分析参考文档SSD性能指标主要性能指标IOPS每秒的IO数量。体现存储系统性能的最主要指标。现在主流的IOPS都在90K以上了(机械硬盘还在5K左右徘徊),比如模拟<4K>大小的文件读写。每秒最高能读或写90000个<4K>的文件;如果增加磁盘,则每秒IO数量就可以变多。比如增加相同的一块盘则IOPS就可以翻倍。带宽(吞吐量)每秒钟最大原创 2021-10-23 11:49:43 · 7689 阅读 · 0 评论 -
CAP理论简单理解
CAP理论解决:分布式系统中各个节点同步问题Consistency 一致性Availability 可用性Partition tolerance 分区容错性本质是:在分布式系统里,需要妥协。分区容错性G1和G2数据库存储数据,存储的是相同数据,当修改G1的值v0时,G2也应该被通知修改。这里G2的修改需要G1去通知。而G1与G2之间的通信很可能出现故障(比如分布在两地),这是无法避免的。也就是当网络故障了,系统依然可以访问,这就是分区容错性。所以分区容错性P一般是无法避免的P总是成立。CAP原创 2021-10-23 11:08:26 · 220 阅读 · 0 评论 -
集中式存储与分布式存储
SCSI接口小型计算机系统接口:就是计算机主机内部设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。iSCSI接口Internet小型计算机系统接口。iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线。FC(光纤通道,Fiber Channel)这种网络和以太网的区别就是:它用的是价格昂贵的光纤交换机,连接接口使用SCSI而不是IP协议。集中式存储三种:DAS,NAS,SAN区别:DAS里,操作系统,文件系统,存储是一个整体,类似于个人PC电脑。NAS里原创 2021-09-23 16:48:25 · 13890 阅读 · 1 评论 -
快照实现原理浅析
快照是完全可用的拷贝,但不是一份完整的拷贝。使用场景一:快照是一份完全可用的副本,那么,它完全可以被上层业务当做源数据。针对源数据,创建快照后,将快照卷映射给其他上层业务,可以用于数据挖掘和开发测试等工作,针对快照的读操作不影响源卷的数据。使用场景二:若因为各种原因(误操作、系统错误等)导致源数据损毁,那么,我们可以通过回滚(rollback)快照,将源数据恢复至快照创建时的状态(即t1时刻),这样,可以尽量降低数据损失(损失的数据,是t1到t2之间产生的数据)。cow写操作:创建快照以后,如果源原创 2021-08-22 22:50:29 · 3303 阅读 · 3 评论 -
Blobstore 介绍
存储服务层 BDALBDAL层:数据块抽象层。这一层可以使用blobstore技术,将下层都抽象成一个存储块。提供给上层进行存储。上层将BDAL当成一个整体的存储介质就可以了,直接把数据存储到该层。该层其实没有实质东西,相当于将低层抽象成一个整体对上层提供服务。块设备抽象,旨在等同于操作系统块存储层,该层通常位于传统内核存储堆栈中设备驱动程序的正上方。blobstore是BDAL层的具体技术实现。BDAL只是一个层的名称。通过上图可知,用户存储的数据,操作系统通过存储协议,比如SCSI或NVME将数.原创 2021-07-13 11:43:19 · 3898 阅读 · 0 评论 -
SPDK介绍
英特尔开发了SPDK(Storage Performance Development Kit),包含一套驱动程序,以及一整套端到端的存储参考架构。首先要明确spdk是一个框架,而不是一个分布式系统,spdk的基石是用户态(user space)、轮询(polled-mode)、异步(asynchronous)、无锁(lockless)。SPDK基于Nvme驱动提供了零拷贝、高并发直接从用户态访问ssd的特性。其最初的目的是为了优化块存储落盘。原创 2021-07-06 15:02:36 · 2701 阅读 · 0 评论