Raft在Curve存储中的工程实践高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 系统开源社区 社区运营 生态共建 开源共建 源码兜底 技术领先 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 • Leader:负责从客户端接受日志,把日志复制到其 他服务器,当保证安全性的时候告诉其他服务器应用 日志条目到他们的状态机中。 • Candidate: 发起选举。获取大多数选票的候选人将 成为领导者。 • Follower: 响应来自其他服务器的请求,如果接受不 到消息,就变成候选人并发起一次选举。 raft任期RAFT协议简介 raft复制状态机 1. leader收到客户端的请求。 2. leader把请求指令记录下来,写入日志,然后并⾏发 给其他的服务器,让他们复制这条⽇志。 3. 当这条⽇志条⽬被安全的复制,leader会应⽤这条⽇ 志条⽬到它的状态机中。 4. 然后把执⾏的结果返回给客户端。 • 提供命令在多个节点之间有序复制和执行,当多个节 点初始状态一致的时候,保证节点之间状态一致。0 码力 | 29 页 | 2.20 MB | 6 月前3
CurveFs 用户权限系统调研root@pubbeta1-nostest2:/tmp# cd fsmount bash: cd: fsmount: Permission denied© XXX Page 4 of 33 查阅资料发现这是fuse的一种安全策略,默认是只有filesystem owner拥有该文件系统的访问权限,如果想要其他用户有权访问,需要在挂载参数中指定‘-o allow-root’ 或'-o allow-other'以允许相应用 访问控制列表(ACL 或 POSIX ACL)是多用户系统的 。 与基本的 POSIX RWX 位相比,POSIX ACL 有助于对文件系统权限进行 的控制。可以针对用户(User)、群组(Group) 附加安全控制功能 更灵活、更细粒度 、默认属性掩码(umask)进行设置。 ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 在外存中具体存放的位置,以及如何从外存中读取和写入原始 ACL 内容。涉及到 VFS 和具体的物理文件系统,这里以Ext4文件系统为例说明。© XXX Page 28 of 33 在 Linux 操作系统中,如果libattr 功能在内核设置中被打开, ext2 、 ext3 、 ext4 、 JFS 、 ReiserFS 以及 XFS 文件系统都支持 。任何一个普通文件都可能包 扩展属性(简写为xattr0 码力 | 33 页 | 732.13 KB | 6 月前3
PFS SPDK: Storage Performance Development Kit1 基于SPDK的CurveBS PFS存储引擎10/17/22 2 Why ●为了减少使用cpu做内存copy,减少系统调用 ●发挥某些被操作系统屏蔽的功能,例如nvme write zero ●根据阿里《When Cloud Storage Meets RDMA》的说法 ●在100Gbps网络带宽时,内存带宽成为瓶颈 ●Intel Memory Latency Checker (MLC)测试得到的CPU内存带宽是 22 11 pfs_pwrite_zero ●在初始化curvebs时,需要创建chunk pool, 每一个chunk都要填零 ●chunk不再被卷使用时,需要回归chunk pool,为了安全也需要填0。 ●使用nvme的时候,可以直接使用nvme write zero命令,不需要传递 大块数据(全是0),减少了nvme传输带宽,而且nvme在垃圾回收上 可以优化,例如只是标记某块为00 码力 | 23 页 | 4.21 MB | 6 月前3
副本如何用CLup管理PolarDB│中启乘数科技(杭州)有限公司 数据赋能│价值创新 关于我 《PostgreSQL修炼之道:从小工到专家》的作者,中 启乘数科技联合创始人,PostgreSQL中国用户会常委。 从业近20年,拥有20年数据库、操作系统、存储领 域的工作经验,历任过阿里巴巴高级数据库专家、 网易研究院开发专家,从事过阿里巴巴Greenplum、 PostgreSQL、 MySQL数据库的架构设计和运维。 既熟悉数据库的,是最早的Oracle Clup管理界面-在Web界面中管理数据库-9- @ PolarDB环境准备创建PolarDB的要求 安装要求 需要有共享盘:盘的大小需要大于等于20GB CLup的高可用需要VIP 操作系统:CentOS7.X 盘要求有路径:/dev/nvmeXnY 机器需求 4台虚拟机器或物理机 1台做CLup管理节点:内存大于2GB 3台做数据库节点:内存需要大于4GB,最好有反亲和性,即能分布在不同的0 码力 | 34 页 | 3.59 MB | 6 月前3
Open Flags 调研FASYNC: 异步的,启用signal-driven I/O。 : 直接I/O,执行磁盘I/O时绕过缓冲区高速缓存,从用户空间直接将数据传递到文件或磁盘设备。 O_DIRECT : 使得32位操作系统对大文件支持(_FILE_OFFSET_BITS=64)。 O_LARGEFILE : 以目录形式打开,如果pathname不是一个目录则会打开失败。 O_DIRECTORY : 。 O_NOFOLLOW 操作。系统缓存位于VFS和真实文件系统之间,当虚拟文件系统读文件时,首先从缓存中查找要读取的文件内容是否存在缓存中,如果存在就直接从缓存中读取。对文 件进行写操作时也一样,首先写入到缓存中,然后由操作系统同步到块设备(如磁盘)中。对于通用块设备层来说要求io请求是块设备blocksize对齐的,对应buffered io在pagecache层做了对齐,对应direct_io需要用户层来保证。© XXX0 码力 | 23 页 | 524.47 KB | 6 月前3
PolarDB开源生态介绍 - 杭州Meetup 2022.10.15PolarDB开源生态 共建模式 国产化替代 应用软件 适配迁移 生态伙伴集成 • 云市场、云速搭 • 创新中心SaaS市场 • 云起实验室 接入云端销售 数据价值放大 • 基础设施 • 安全 • 管理维护 • 数据集成 • 开发协同 • ISV • 培训育人 • 商业服务 • ... 2022S1: 3500W曝光 150W学习人次 2万+实践体验 2K+持证人才 PolarDB开发大赛:0 码力 | 7 页 | 1.45 MB | 6 月前3
共 6 条
- 1













