Curve Cloud Native
CAPABILITY LEVEL CURVE COMMENT BASIC INSTALL Y (by Helm) automated application provisioning and configuration management SEAMLESS UPGRADES Y (by Helm) patch and minor version upgrads supported FULL LIFECYCLE Dashboard-driven configuration after minimal Curve installFeature list for cluster • CurveBS mirroring configured with CRDs • Different Curve clusters may share MDS and ETCD server • Replication between CRDsFeature list for CurveBS • CSI plugin for CurveBS • CurveBS (Cluster and Pool CRDs) • chunk server pods can run on arbitrary PVs(local storage) as an alternative to host path • Support automatically0 码力 | 9 页 | 2.85 MB | 5 月前3Curve for CNCF Main
RBD)Performance (vs. Ceph RBD)CurveBS Features • RAFT for data consistency • minor impaction when chunk server fails • Precreated chunk file for volume space mapping • high performance framework • Use bthread STORAGE/DISK FAILURE INFLUENCE without I/O disruption I/O jitter occasionally CAN SYNC WITH REMOTE DISK SERVER Y NI/O Jitter (vs. Ceph) 3 replicas with 9 nodes cluster each node has 20 x SSD, 2xE5-2660 v4 and mem FAULTS CASE CURVE I/O JITTER CEPH I/O JITTER COMMENT ONE DISK FAILURE 4s 7s ONE SERVER FAILURE 4s 7s SERVER RESPONSE VERY SLOW 4s unrecoverable frequently delay of disk i/o are very long NETWORK0 码力 | 21 页 | 4.56 MB | 5 月前3Raft在Curve存储中的工程实践
• braft是raft的一个实现,实现了raft的一致性协议和复制状态机,而且提供了一种通用的基础库。基 于braft,可以基于自己的业务逻辑构建自己的分布式系统。 • braft本身不提供server功能,需要业务自己实现状态机。 Node(一个raft实例) int init(const NodeOptions& options); void apply(const Task& task); Closure* done); void remove_peer(const PeerId& peer, Closure* done); void change_peers(const Configuration& new_peers, Closure* done); StateMachine void on_apply(::raft::Iterator& iter); void on_sn0 码力 | 29 页 | 2.20 MB | 5 月前3Curve文件系统元数据管理
现在假定文件系统有这样几个文件,根据上面的分片方式,parent为"/"和"/A/C"在server0上,parent为"/A"和"/A/D"在server1上,parent为"/B"在server2上。© XXX Page 12 of 24 元数据 server 0 server 1 server 2 inode信息 0 → inode / 300 → inode C 100 → 5.1.1 场景分析 查找:查找/A/C。 1、client给server0发送请求:parentid 0 + name "A",查询"A"的inodeid为100© XXX Page 13 of 24 2、client给server0发送请求:inode 100,查询的"A"的inode信息。 3、client给server1发送请求:parentid 100 + name "C",查询"C"的inode为300 4、client给server1发送请求:inode 300,查询"C"的inode信息。 创建:/A/C不在,创建/A/C 1、client给server0发送请求:parentid 0 + name "A",查询"A"的inodeid为100 2、client给server0发送请求:inode 100,查询的"A"的inode信息。 3、client给server1发送请求:parentid0 码力 | 24 页 | 204.67 KB | 5 月前3Curve核心组件之mds – 网易数帆
pool: 用于实现对机器资源进行物理隔离,server不能跨 Pool交互。运维上,建议以pool为单元进行物理资源的扩 容。 • zone: 故障隔离的基本单元,一般来说属于不同zone的机 器至少是部署在不同的机架,一个server必须归属于一个 zone。 • server: 用于抽象描述一台物理服务器,chunkserver必须 归属一个于server。 • Chunkserver: 用于抽象描述物理服务器上的一块物理磁盘 置文件: 集群有一个物理pool,由3个zone组成,每个zone有1台server。 在物理pool上,还创建了一个逻辑pool,逻辑pool使用3个zone,采用 3副本,有100个copyset。 cluster pool1 zone1 zone2 zone3 server1 server2 server3 192.168.0.1:8200 192.168.0.2:8200 192 cluster_map: servers: - name: server1 internalip: 192.168.0.1 internalport: 8200 externalip: 192.168.0.1 externalport: 8200 zone: zone1 physicalpool: pool1 - name: server2 internalip: 192.168.0.2 internalport:0 码力 | 23 页 | 1.74 MB | 5 月前3Curve元数据节点高可用
TODO()/context.Background()', the Campaign // will continue to be blocked for other keys to be deleted, unless server // returns a non-recoverable error (e.g. ErrCompacted). // Otherwise, until the context is not cancelled er建立的交互如下: ①与etcd server维持租约。这里涉及到租约的时间 LeaseTime,租约KeepAlive的时间间隔是1/3的LeaseTime nextKeepAlive := time.Now().Add((time.Duration(karesp.TTL) * time.Second) / 3.0) ②定期去etcd server中get leader/MDS1,看是否还存在。这里涉及到定期get的时间 etcd集群leader选举的超时时间 3s LeaseTime mds当选leader之后,与etcd集群维持租约的过期时间 租约的keepalive间隔为LeaseTime/3 etcd server端限制LeaseTime >= 1.5 * ElectionTimeout 10s PeriodicGetTime mds当选leader之后,去etcd集群get Leader/MDS1的时间间隔0 码力 | 30 页 | 2.42 MB | 5 月前3BRPC与UCX集成指南
●protobuf3 BRPC简介 ●Client/Server架构 ●使用Protobuf定义协议文件 –例如: echo.proto:4 BRPC简介 client server EchoRequest EchoResponse5 BRPC简介 ●Channel类 –代表一个连接,Client通过Channel发 送请求和接收应答 ●Server类 –代表一个服务器,可以注册不同的 接 接口服务,例如上面的EchoService6 BRPC SERVER7 BRPC SERVER8 BRPC client9 BRPC EndPoint EndPoint是一个代表通讯地址的数据结构, 是一个C++类。 字段: ip,port ●在Socket创建时需要提供EndPoint ●Socket::Connect时需要Remote EndPoint ●Accept的Socket可以获得Remote ●是创建socket的参数 ●主要成员: –fd 是socket文件句柄 –void (*on_edge_triggered_events)(Socket*) ●可读事件的回调函数16 Server创建Socket Listener 把系统调用创建的listen socket fd传给Socket::Create,获得一个Socket对象17 Socket Listener::OnNewConnections0 码力 | 66 页 | 16.29 MB | 5 月前3CurveFS Client 概要设计
mode_t mode, dev_t rdev); 这两个函数的功能是类似,都用来创建文件。 根据parent inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode 预分配一些空间?可先不做 mkdir© XXX Page 7 of 11 void (*mkdir) (fuse_req_t req, fuse_ino_t parent parent, const char *name, mode_t mode); 根据parent inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode forget void (*forget) (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup); 根据inodei inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode void (*readlink) (fuse_req_t req, fuse_ino_t ino); 根据inodeid,向mds查询创建inode的位置,去meta server获取inode结构,并缓存 从inode结构中取出link contents,调用f0 码力 | 11 页 | 487.92 KB | 5 月前3Curve质量监控与运维 - 网易数帆
MDS MDS MDS MDS MDS ChunkServer MDS MDS Client Daily reporter MDS MDS SnapshotClone Server HTTP采集 bvar数据 定时获取图表 并发送邮件 获取集群拓扑信息 Curve利用brpc内置的bvar组件生成监控指标,并 使用部署在docker的三个组件进行监控指标的处 理与展示: 20/33监控指标(metric)的生成 Curve使用brpc内置的bvar计数器类库,来生成监控指标,其特点是: thread local存储,减少了cache bouncing,性能开销极小; 支持在 brpc server 服务的端口上以web portal的方式导出和查询监控指标: 常用的bvar数据类型: bvar::Adder: 计数器,默认0, varname << N相当于varname ChunkServer、Etcd、物理节点等)。 2. Prometheus依据上述配置文件,发现相应服务。 3. Prometheus server以pull的方式,定期从Curve集群中 MDS、ChunkServer、Client等组件的brpc Server拉取 相应的监控指标,并存储在本地。 22/33监控指标的可视化 Curve通过Grafana实现监控指标的可视化,其展示效果如下: 0 码力 | 33 页 | 2.64 MB | 5 月前3OID CND Asia Slide: CurveFS
on I/O jitter delay ● Disk failure ● Server failure ● Server fake death ● Slow response Faults case curve i/o 抖动 Disk failure 4s Server failure 4s Server fake death 4s Slow response 1s frequentlyData to physically isolate machine resources Zone is the basic unit of fault isolation Server Indicates a physical server Chunkserver is a service instance on a physical serverCurve metadata organization0 码力 | 24 页 | 3.47 MB | 5 月前3
共 19 条
- 1
- 2