Curve for CNCF Main
Curve can backup / sync data to slave cloud • When master cloud failure happens, Database service can move to the slave cloudData apps(middleware/bigdata/ai) • CurveFS can manage different storages native supportCloud native for CurveBS • CSI plugin for CurveBS • Deploy CurveBS as container service (in Plan) • Config CurveBS by (Cluster and Pool CRDs) in Kubernetes (in Plan) • Support Operator supportCloud native plan for CurveFS • CSI plugin for CurveFS (in Plan) • Deploy CurveFS as container service (in Plan) • Config CurveFS by (cluster and storage pools) CRDs in Kubernetes (in Plan) • Support0 码力 | 21 页 | 4.56 MB | 5 月前3Curve文件系统元数据Proto(接口定义)
string fsName = 2; } message DeleteFsInfoResponse { required MetaStatusCode statusCode = 1; } service MdsService { // fs interface rpc CreateFs(CreateFsRequest) returns (CreateFsResponse); uint64 inodeId = 2; } message DeleteInodeResponse { required MetaStatusCode statusCode = 1; } service MetaServerService { // dentry interface rpc GetDentry(GetDentryRequest) returns (GetDentryResponse); required uint32 fsId = 1; } message UnInitSpaceResponse { required SpaceStatusCode status = 1; } service SpaceAllocService { // space interface rpc InitSpace(InitSpaceRequest) returns (InitSpaceResponse);0 码力 | 15 页 | 80.33 KB | 5 月前3CurveFS ChunkID持久化
AllocateS3ChunkResponse 的状态码的类型为 FSStatusCode; proto/space.proto/service SpaceAllocService中的 rpc AllocateS3Chunk 复制到 proto/space.proto/service/MdsService中; curvefs/src/mds/mds_services.h MdsServiceImp类中增加0 码力 | 3 页 | 79.38 KB | 5 月前3OID CND Asia Slide: CurveFS
Zone is the basic unit of fault isolation Server Indicates a physical server Chunkserver is a service instance on a physical serverCurve metadata organization Curve maps virtual block devices to performance optimizations RAFT protocol Zero data copy pre-created file poolCURVE file system File service middleware Upper-layer applications can access file data in storage pools through interfaces such0 码力 | 24 页 | 3.47 MB | 5 月前3CurveFS对接S3方案设计
message UpdateInodeResponse {© XXX Page 7 of 11 required MetaStatusCode statusCode = 1; } service MetaServerService { rpc UpdateInodeS3Version(UpdateInodeS3VersionRequest) returns (UpdateIno AllocateS3ChunkResponse { required SpaceStatusCode status = 1; // required uint64 chunkId = 2; } service SpaceAllocService { // space interface rpc InitSpace(InitSpaceRequest) returns (InitSpaceResponse);0 码力 | 11 页 | 145.77 KB | 5 月前3Curve核心组件之snapshotclone
data object data object S3 Snap Task etcd mds client 3.获取快照元数据 datastore metastore http service clone Task user 快照元数据 2.创建内部快照 5.删除内部快照 快照数据 1.发起快照 SnapshotCloneServer 6.删除内部快照数据快照的元数据和数据组织 data object S3 Snap Task etcd MDS client 2.创建克隆卷 3.分配卷空间 7.拷贝数据 datastore metastore http service clone Task user 快照、克隆元数据 SnapshotCloneServer 1.发起克隆 5.8.9.更新元数据克隆卷状态变化 • 初始状态; • 正在安装元数据或拷贝数据中;0 码力 | 23 页 | 1.32 MB | 5 月前3Curve核心组件之chunkserver
括读写socket,rpc协议解析等。 ChunkServer架构RPC Service层是对外提供的一些RPC服 务的接口。包含的RPC服务有: • ChunkService。IO相关操作 • CliService。成员变更相关操作 • CopySetService。创建copyset等操 作 • RaftService。Braft内置的service, 完成raft成员之间的选举,日志复制, 安装快照等操作。0 码力 | 29 页 | 1.61 MB | 5 月前3Curve文件系统空间分配方案
extents = 2; // } message DeallocateSpaceResponse { required StatusCode status = 1; } service MetaServerService {© XXX Page 9 of 11 rpc AllocateSpace(AllocateSpaceRequest) returns (AllocateSpaceResponse);0 码力 | 11 页 | 159.17 KB | 5 月前3CurveFS Copyset与FS对应关系
1、需要提供copyset的创建功能 2、由copyset负责inode和dentry的管理 3、定期向mds上报心跳,并根据心跳结果执行配置变更 metaserver 子模块拆分 metaserver service:接受rpc请求 copyset:负责对元数据的持久化,主要是一致性协议raft的处理© XXX Page 18 of 19 metastore:负责元数据的内存部分的管理,负责选partition0 码力 | 19 页 | 383.29 KB | 5 月前3
共 9 条
- 1