avatar
Articles
119
Tags
131
Categories
17
首页
归档
标签
分类
咕咕
首页
归档
标签
分类

咕咕

Ceph Crimson 集群搭建指南
Created2025-01-12
当前 Ceph 集群搭建部署的方式主要有两种,一种是 CephAnsible ,另一种为 Cephadm ,由于目前社区推荐使用 Cephadm 进行部署,因此这里介绍通过 Cephadm 部署 Ceph Crimson 集群。通过 Cephadm 搭建集群需要用到 Ceph 的容器镜像,之后会将 Mon/Mgr/OSD 等组件运行在容器环境中,因为我们需要获取到 Ceph 的容器镜像,官方提供了一些 Ceph 的容器: https://quay.io/repository/ceph/ceph ,有些时候我们可能会对 Ceph 代码进行自定义修改,这时候就需要自定义的 Ceph 镜像,为此官方提供了基于 CentOS Stream 9 的容器打包脚本,我们可通过该脚本构建自定义的 Ceph 容器镜像。 操作步骤如下: 编译打包:编译 Ceph 并产出 RPM 安装包,之后搭建 Web 服务器提供 RPM 安装包的访问下载地址; 容器构建:基于上一步产出的 RPM 安装包,构建 Cephadm 依赖的 Ceph 镜像; 集群部署:基于上一步构建的 Ceph...
Ceph QoS 机制深入分析
Created2024-10-25
一、CephFS QoS社区的相关实现: 基于 tokenbucket 算法的目录 QoS : https://github.com/ceph/ceph/pull/29266 基于 dmclock 算法的 subvolume QoS : 来自日本的 line 公司提出的想法,https://github.com/ceph/ceph/pull/38506 , https://github.com/ceph/ceph/pull/52147 1.1、基于 TokenBucket 算法的目录 QoS该实现并未合并到主分支。 相关材料: 社区的原始PR: https://github.com/ceph/ceph/pull/29266 实现特点: 基于 TokenBucketThrottle 类在客户端侧实现的 TokenBucket 类型的 QoS,用于约束每个独立的客户端的访问请求; QoS 的限制粒度为每个独立的客户端,没有全局的QoS限制; 用于限制目录级别的操作 QoS; 支持 IOPS 和 BPS 的 QoS 限制,且支持突发流量; 仅支持 FUSE...
译 - The Google File System
Created2023-01-10|论文分布式
《The Google File System》 是由 Google 公司开发的分布式文件系统,旨在解决存储海量数据的问题。GFS 采用了一些独特的设计,如基于大块的文件存储、多副本存储和自动故障恢复等。GFS 能够支持高并发、高吞吐量的数据访问,并且具有良好的扩展性和可靠性。GFS 的设计思想已经被广泛应用于其他分布式存储系统的开发中,是分布式存储领域的重要里程碑之一。 摘要We have designed and implemented the Google File System, a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance while running on inexpensive commodity hardware, and it delivers high aggregate performance to a large number of...
Redis异地多活方案杂谈
Created2022-12-31|Redis异地多活
Redis 的异地多活是一种跨地域容灾、并提供低延迟访问的部署方案。业界提供了很多的构建思路,这里将对比一下这里方案,并详细介绍一下业界的设计与实现。 一、简介二、思考2.1、Redis异地多活的定位在使用 Redis 的异地多活部署方案之前,为了提供 Redis 集群的高可用,我们也会提供跨地域主从的部署方式,通过这种方式我们也能实现地域级别的容灾能力。考虑到业务在使用 Redis 前的关注点一般是:性能、延迟、可用性以及数据一致性,我们将通过这四个关键点来对比一下这两种方案的不同: 性能(高性能, QPS ): 跨地域主从:跨地域写性能较差,本地域读性能较好; 异地多活:本地域读写性能较好; 延迟(低延迟, Avg , P99 等): 跨地域主从:跨地域写延迟交高,本地域读延迟较低; 异地多活:本地域读写延迟较低; 可用性(高可用): 跨地域主从:集群间的容灾切换,存在主从切换的瞬时访问问题,满足高可用需求; 异地多活:集群内的主从故障切换,满足高可用需求; 数据一致性: 跨地域主从:提供 Redis...
Redis扩缩容演进史与奇思妙想
Created2022-12-13|Redis演进史
Redis 的扩缩容方案在 RedisCluster 中发生了很多的改造与优化,其中主要包括对于 Slot 和 Keys 映射关系的优化,从最初的跳表,到基数树,再到最新的柔性数组的相关优化。同时 Redis 的非社区Cluster 模式下的扩缩容在业界在诞生了很多有意思的设计思路,比如 Codis 提供的同步/异步迁移方案,选择性复制以及旁路扩缩容的迁移方案等。这篇文章将简略的描述一下当前业界实现的 Redis 的扩缩容方案。 一、简介这里主要描述的是 Redis 的横向扩缩容。 二、Redis 扩缩容演进史2.1、映射关系存储结构演进由于我们需要能够高效的依据 Slot 来找到对应的 Keys 信息,从而实现数据的迁移,因此我们需要记录 Slot 和 Keys 的映射关系,Redis 也在不断的优化这种存储结构,从而在实现高效遍历的时候又能够节省存储所带来的内存开销。 2.1.1、SkipList 存储结构 版本范围:3.0.0 ~ 3.2.13(以下分析基于 3.2.13 版本) 设计特点: 使用一个全局结构体变量(...
Redis持久化演进史与奇思妙想
Created2022-12-04|Redis演进史
目前 Redis 主要支持两种持久化的方式:RDB 和 AOF 。这两者在 Redis 的演进过程中也发生了很多有意思的变化。RDB 的数据格式也已经进行了十次版本迭代,AOF 从最初的 Rewrite 到 Redis 7.0.0 的 Multi-Part-AOF 也发生了很多的变化,这里将对每个版本进行详细的剖析,学习 Redis 的持久化演进历史。这篇文章主要借鉴于 Redis 持久化机制演进与百度智能云的实践 ,同时按照自己的理解绘制了一些示意图。 一、简介Redis 支持两种持久化的方式:RDB 和 AOF 。 二、Redis RDB 持久化演进史2.1、持久化的数据版本演进2.1.1、版本一 版本范围:2.0.0 ~ 2.2.15 (以下分析基于 2.2.15 版本) RDB版本号:0001 版本特点: 首次支持对五种数据类型数据的持久化; 持久化数据内容: 标记头尾信息; 多 DB 信息( REDIS_SELECTDB ); 过期时间属性(单位秒, REDIS_EXPIRETIME...
译 - Bitcoin: A Peer-to-Peer Electronic Cash System
Created2022-11-16|论文区块链比特币
《Bitcoin: A Peer-to-Peer Electronic Cash System》 翻译过来是《 比特币:一种点对点的电子现金系统》 ,这篇文章是比特币的发明人中本聪于 2008 年发表的比特币白皮书。这篇文章介绍了比特币的设计背景,讲述了比特币的工作原理,是加密货币,区块链领域必读的一篇文章,其中讲述了很多巧妙的构思。作者翻译水平有限,翻译的语句可能会有一些出入,建议有能力的读者还是去阅读一下原文。 0、摘要A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is...
Redis相关库学习 - LibMR
Created2022-10-22|Redis相关库
LibMR 是一款适用于 Redis 集群的 Map Reduce (分发Redis命令并获取结果)的依赖库。它基于 libevent 的事件机制,通过使用多个线程池来分发异步任务,目前已经被 RedisTimeSeries 等模块使用。 一、简介 GitHub 地址:https://github.com/RedisGears/LibMR 二、架构设计2.1、相关命令由于该依赖库在编译时可以设置自定义的 modulename ,因此可以避免在不同模块中使用的冲突。 modulename.INNERCOMMUNICATION : 从其他分片中获取消息; modulename.HELLO : 获取当前实例的集群id,仅集群模式下才可以调用; modulename.REFRESHCLUSTER : 更新当前集群的拓扑信息 modulename.CLUSTERSET : 强制设置集群的拓扑信息,该信息只会更改该依赖库中记录的拓扑信息,并不会影响实际的 Redis 集群; modulename.CLUSTERSETFROMSHARD : 与 *.CLUSTERSET...
RedisModule剖析 - RedisProtobuf
Created2022-10-07|RedisRedisModule
RedisProtobuf 是一款支持 Protobuf (目前仅支持Version 3) 的 Redis 模块,从而支持了较高级的嵌套数据结构,其设计灵感来自于 RedisJSON。 一、简介 GitHub 地址:https://github.com/sewenew/redis-protobuf 二、架构设计2.1、依赖库 Protobuf : 仅支持 version 3 ; 2.2、相关命令 pb.type : 获取指定 key 的消息类型; pb.set : 设置指定 key 的消息类型的内容信息,支持新增与变更; pb.get : 获取指定 key 的消息内容,支持 binary 和 json 的返回格式; pb.clear : 清除指定 key 的消息内容,支持指定路径; pb.len : 获取指定 key 的消息长度,支持指定路径; pb.append : 给指定 key 的特定路径中追加数据,目标路径的类型可以为 string/array ; pb.del : 删除指定 key ,或者删除指定 key 中 array/map 中的...
RedisModule剖析 - RedisRope
Created2022-10-04|RedisRedisModule
RedisRope 是一款可用于操作大型字符串数据(插入/拼接等变动)的 Redis 模块。它通过将一个独立的字符串拆分成多个Chunk中进行存储,从而实现了针对于大型字符串的多样写操作(插入/拼接等)的高效率,并通过引入 伸展树(Splay Tree) 的数据结构来保证数据读取的高效性。 一、简介 GitHub 地址:https://github.com/ekzhang/redis-rope 二、架构设计2.1、相关命令 rope.len : 获取特定 key 的长度; rope.get : 获取特定 key 指定索引处的字符; rope.getrange : 获取特定 key 指定范围内的字符串; rope.append : 给特定 key 追加字符串; rope.insert : 在特定 key 的指定索引处插入字符串; rope.delrange : 删除特定 key 指定范围内的字符串; rope.splice : 从源字符串中选出部分字符串并将其拼接到目标字符串中(高级操作); 2.2、数据结构// 自定义的 Module 数据类型pub...
12…12
avatar
bugwz
持续学习,持续进步
Articles
119
Tags
131
Categories
17
Announcement
This is my Blog
Recent Posts
Ceph Crimson 集群搭建指南
Ceph Crimson 集群搭建指南2025-01-12
Ceph QoS 机制深入分析
Ceph QoS 机制深入分析2024-10-25
译 - The Google File System
译 - The Google File System2023-01-10
Redis异地多活方案杂谈
Redis异地多活方案杂谈2022-12-31
Redis扩缩容演进史与奇思妙想
Redis扩缩容演进史与奇思妙想2022-12-13
Categories
  • Redis17
    • RedisCluster1
    • RedisModule10
    • 异地多活1
    • 演进史3
    • 特性1
    • 相关库1
  • 论文8
Tags
pptpd 信号 Netfilter 负载均衡 锁 PicGo Codis Base编码 Nginx 工具 RocksDB NoSQL FTP 进程 SSD Iptables MIUI 常用命令 C/C++ Count-Min Sketch 内存分配器 yum RPM Python 时序数据库 JSP Hardware 网络 区块链 Docker 信号量 SmartCache HAProxy 正则匹配 MacOS sar 高可用 LVS Memcached 代理服务器
Archives
  • January 2025 1
  • October 2024 1
  • January 2023 1
  • December 2022 3
  • November 2022 1
  • October 2022 5
  • September 2022 2
  • July 2022 1
Website Info
Article Count :
119
Unique Visitors :
Page Views :
Last Update :
©2019 - 2025 By bugwz
Framework Hexo 6.3.0|Theme Butterfly 5.3.5