Curve文件系统元数据持久化方案设计
0 码力 | 12 页 | 384.47 KB | 5 月前文档详细阐述了Curve文件系统的元数据持久化方案设计,包括Raft Log和Raft Snapshot的持久化机制。Raft Log记录操作日志,包含类型、键值对及校验和等字段;Raft Snapshot将内存数据结构 dump 至文件,包含 CURVEFS 标识、版本号、键值对数量等部分。持久化文件采用小端序存储,利用 fork 子进程解决读写冲突。文档还探讨了Redis在持久化中的应用及其局限性,包括AOF和RDB的不足,以及 Redis Cluster与主从复制的高可用方案。最后提出了基于 multiraft 的持久化实现,并对 kodevs 和 Redis 的改造进行了权衡分析。Curve支持S3 数据缓存方案
0 码力 | 9 页 | 179.72 KB | 5 月前文档介绍了Curve支持S3数据缓存方案的设计与实现,旨在解决基于S3的daemon版本性能差的问题。通过引入缓存模块,优化了读写场景下的数据操作。设计包括读写缓存分离、两层元数据索引、缓存层级结构以及后台刷数据线程。详细描述了Write、Read、ReleaseCache、Flush和FsSync等流程,并通过POC测试验证了方案的有效性。该方案针对顺序读写和小IO性能进行了优化。Curve元数据节点高可用
0 码力 | 30 页 | 2.42 MB | 5 月前文档阐述了Curve元数据节点(MDS)的高可用方案,通过etcd的TTL和CAS机制实现leader选举和故障转移。MDS负责元数据管理和集群状态监控,其高可用设计确保在主节点故障时,备节点能够快速接管服务以减少中断时间。文档详细介绍了选主流程、异常情况处理方案以及各类故障的影响分析。CurveFs 用户权限系统调研
0 码力 | 33 页 | 732.13 KB | 5 月前文档调研了CurveFs用户权限系统的实现情况。测试发现,默认情况下CurveFs文件系统链路没有进行权限控制,但通过挂载参数'default_permissions'和'allow_other'可以启用内核基于模式的权限控制,使其与本地文件系统权限管理一致。 CurveFs支持文件权限、特殊权限、ACL、文件默认权限(umask)等特性,但不支持ACL扩展。为了避免普通用户删除非自己所属文件,建议将root节点mode设置为1777。测试结果表明,非root用户挂载需要在/etc/fuse.conf中配置'user_allow_other'。CurveFS方案设计
0 码力 | 14 页 | 619.32 KB | 5 月前该文档详细描述了CurveFS的方案设计,旨在为云原生场景提供高性能通用文件系统,重点支持数据库场景。通过调研多个开源分布式文件系统(如ChubaoFS、MooseFS、CephFS等),最终选择基于块设备构建CurveFS。文档详细阐述了元数据管理、空间分配、快照逻辑等关键点,并对元数据节点的高可用、高可扩展性、高可靠性等要求进行了分析。文档还包括了详细的开发计划及安排,确保实现满足数据库场景的文件接口需求。CurveFS Client 概要设计
0 码力 | 11 页 | 487.92 KB | 5 月前文档详细描述了CurveFS客户端的设计,其中客户端向上提供了fuse接口和lib库两层接口。Fuse接口主要实现了诸如init、destroy、lookup、write、read等功能。文档着重分析了关键接口如lookup和write的实现逻辑,并讨论了缓存设计,包括缓存组织方式、查找结构的选择、淘汰策略等。功能分析涵盖了文件系统元数据的缓存、与元数据服务器及块设备的交互,以及fuse接口的实现。模块划分包括fs cache、inode cache、dentry cache等模块。硬链接和部分高级接口暂时未实现。新一代云原生分布式存储
0 码力 | 29 页 | 2.46 MB | 5 月前文档介绍了分布式存储的发展、分类及其要素,重点对比了Ceph和Curve两种分布式存储系统。Ceph的架构简介及其在块存储中的应用场景和存在的问题,如一致性协议导致的性能差和容量不均衡问题。Curve则通过改进架构,解决了这些问题并实现了高可用性和高可扩展性,适用于数据库、Kafka等中间件场景。文档还介绍了分布式存储的核心要素,包括数据分布、可靠性、数据一致性和可扩展性等,并强调了其在云原生环境下的应用重要性。Raft在Curve存储中的工程实践
0 码力 | 29 页 | 2.20 MB | 5 月前文档介绍了Curve存储系统中对Raft协议的工程实践。Curve是一个高性能、稳定且易于运维的分布式存储系统,支持块存储和文件存储。文中详细说明了Raft协议在Curve块存储和文件存储中的应用,包括基于memory和rocksdb的存储引擎实现、快照机制的优化、配置变更的实现方案以及系统的容错和负载均衡特性。此外,还提到了Curve文件系统与块存储在实现细节上的差异,特别是在写日志、快照处理和存储引擎的选择方面。NJSD eBPF 技术文档 - 0924版本
0 码力 | 20 页 | 7.40 MB | 5 月前文档详细介绍了eBPF技术在Curve文件系统中的应用,主要包括通过eBPF优化Curve文件系统的客户端延迟问题,并与ld_preload方法进行对比。文档还阐述了eBPF在内核中的缓存读取机制,用于提升文件读取性能。Curve文件系统采用缓存技术以提升性能,并结合对象存储降低成本。此外,文档还涉及了eBPF的基础知识、基于FUSE的缓存设计、关键数据结构如Map映射,以及Curve社区的介绍和应用场景。Bazel
0 码力 | 6 页 | 4.69 MB | 5 月前文档记录了将Bazel升级到4.2.2的过程,并对Debian9、Debian10和Debian11系统提供了支持。文档详细描述了使用gcc和clang进行编译的配置方法,以及Docker镜像的制作过程。其中包括了在容器内外环境下进行构建和测试的具体命令,并提到了单元测试文件的修改。
共 39 条
- 1
- 2
- 3
- 4
关键词
Raft Snapshot Raft Log 持久化文件 Redis 校验和 缓存模块 元数据管理 读写缓存分离 Flush流程 异步刷数据 MDS etcd 高可用 leader election lease timeout 文件权限 ACL 挂载参数 特殊权限 umask CurveFS 空间分配 快照逻辑 分布式文件系统 CurveFS client fuse接口 meta server inode dentry 分布式存储 云原生 Curve Ceph 对象存储 Raft协议 Curve存储 块存储 文件存储 快照机制 eBPF Curve文件系统 FUSE Hook Map映射 Bazel Docker gcc clang Debian