Curve Cloud Nativeperformance • Easiser operation • Cloud native • Curve is composed of two parts • Curve Block Storage (CurveBS) • CurveBS: a high performance cloud native distributed block storage • Curve File File System (CurveFS) • CurveFS: a high performance cloud native file system (Based on CurveBS / S3 compatible Storage)Operator capability Level OPERATOR CAPABILITY LEVEL CURVE COMMENT BASIC INSTALL Y Support horizontal/vertical scaling, auto config tuning, abnormal detection, schedule tuningCloud native Feature list • Features for Cluster • Features for CurveBS • Features for CurveFS • Features0 码力 | 9 页 | 2.85 MB | 6 月前3
Curve for CNCF MainCurve High performance Cloud native Distributed storage system https://www.opencurve.io/Agenda • What is Curve • Use Cases • CurveBS • Key Features • Comparing to Ceph • CurveFS • Comparing (CurveBS) • CurveBS: a high performance cloud native distributed block storage • Curve File System (CurveFS) • CurveFS: a high performance cloud native file systemUse Cases • Container • Database Glacier, aliyun EBS, aliyun OSS) or on-prem (baremetal, HDFS, OSS) and turns it into container-native storageDatabase • Database services orchestrated in the cloud • Curve can backup / sync data0 码力 | 21 页 | 4.56 MB | 6 月前3
OID CND Asia Slide: CurveFSCURVE: a High-performance Software-Defined storage for Cloud Native applications Xiang Dong Architect, Netease Hangzhou Research InstituteAgenda � Why develop storage Design objectives Achievements elastic block storage ● Requirements for file systemopen-source storage ● Requirements ○ Cloud Native ○ Easy operation and maintenance ○ High performance ● CEPH ○ Complex and Large amount of codes 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 frequentlyData0 码力 | 24 页 | 3.47 MB | 6 月前3
Curve Detail Introduction for CNCFperformance Cloud native Distributed storage system https://www.opencurve.io/Agenda • CurveBS Architecture • CurveBS Topology • CurveBS Data Organization • MetaData Server (MDS) • ChunkServer • CurveFS Write to S3 FlowCurveBS ArchitectureCurveBS TopologyCurveBS Data OrganizationMetaData Server(MDS)ChunkServerCurveBS I/O FlowClientCurveBS ConsiderationsCloud NativeCurveBS Roadmap • MultiRaft Cooperate with Alibaba to support high-performance polardb for postgresql using CurveBS • Cloud-native support for CurveBS • CurveBS clusters and related monitoring services can be configured using0 码力 | 23 页 | 6.53 MB | 6 月前3
Raft在Curve存储中的工程实践• braft是raft的一个实现,实现了raft的一致性协议和复制状态机,而且提供了一种通用的基础库。基 于braft,可以基于自己的业务逻辑构建自己的分布式系统。 • braft本身不提供server功能,需要业务自己实现状态机。 Node(一个raft实例) int init(const NodeOptions& options); void apply(const Task& task); Github:https://github.com/opencurve/curve • 公众号:OpenCurve • 用户群:添加微信号OpenCurve_bot可邀请加群 • Slack:workspace cloud-native.slack.com,channel #project_curve0 码力 | 29 页 | 2.20 MB | 6 月前3
TGT服务器的优化广泛支持的外部设备协议(块,磁带等)Curve云原生存储支持块设备 • 通过NBD,只支持Linux • 通过SDK API,目前只支持Linux • PFS • 扩大使用范围 • 通过iSCSI支持更多系统,例如Windows, 类UNIX系统等,使用两项基础 技术 • TCP/IP • SCSI • 替代SAN • 可靠性、稳定性方面有自己的的特色,使用raft副本一致性和copyset概念可以自动 修复 修复损坏的副本,并且可扩容。无论在可靠性、稳定性还是性价比方面都很有优势, 使用廉价硬件搭建。iSCSI软件 • Client端: iscsi initiator,系统自带 • Linux open-iscsi • Windows iSCSI 发起者 • 服务器端 • 必须是CurveBS原生支持的平台,因为需要curve原生接口,目前是LinuxiSCSI target服务器 • LINUX LILO • 一般用于输出内核本地块设备 logicalunit --op update --tid 1 --lun 1 --params disksize=auto • Initiator 重新发送SCSI READ CAPACITY命令 • Windows 磁盘管理器refresh • Linux open-iscsi, iscsiadm --mode node -RDPO & FUA • DPO是disable page out的缩写,FUA是force0 码力 | 15 页 | 637.11 KB | 6 月前3
Curve文件系统元数据管理现在假定文件系统有这样几个文件,根据上面的分片方式,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 | 6 月前3
Curve核心组件之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 | 6 月前3
Curve元数据节点高可用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 | 6 月前3
BRPC与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 | 6 月前3
共 21 条
- 1
- 2
- 3













