Curve文件系统空间分配方案理,处理完成后,返回RPC。 空间分配器相关的RPC接口,及request/response定义如下。与 里的定义基本一致。 CurveFS Client 概要设计(已实现)#%E6%8E%A5%E5%8F%A3%E9%9C%80%E6%B1%82 syntax="proto2"; option cc_generic_services = true; enum StatusCode {0 码力 | 11 页 | 159.17 KB | 6 月前3
Curve核心组件之chunkserverCopysetNode的创建、初始化、删除等 ChunkServer架构心跳模块有两方面的职责: 1、向MDS节点上报心跳,心跳中包括 ChunkServer本身的一些统计信息 2、解析MDS的心跳response中的raft 成员变更信息,向CopysetNode发起变 更 ChunkServer架构ChunkOpRequest模块封装了对 ChunkService到达的I/O请求的实际处 理过程。请求到来时,封装一个 CS2的operator给这三个copyset ④ MDS通过RPC在CS2上创建copyset1,2,3这三个copyset ⑤ 假定三个copyset的leader都是CS3,在CS3的下一次心跳的 response中,下发第三步生成的三个operator ⑥ CS3收到change peer from CS1 to CS2的operator,给CS2同步 raft日志,当CS2成功赶上进度时,本次raft成员变更成功完成, 部分copyset,比如copyset1,2,3 ⑤ MDS通过RPC在CS1上创建copyset1,2,3这些copyset ⑥ 假定三个copyset的leader都是CS3,在CS3的下一次心跳的 response中,下发第四步生成的三个operator ⑦ CS3收到change peer from CS2 to CS1的operator,给CS1同步 raft日志,当CS1成功赶上进度时,本次raft成员变更成功完成,0 码力 | 29 页 | 1.61 MB | 6 月前3
Curve文件系统元数据Proto(接口定义)permissions and * limitations under the License. */ syntax="proto2"; package curvefs.mds; option cc_generic_services = true; enum FSStatusCode { OK = 0; // UNKNOWN_ERROR = 1; // and * limitations under the License. */ syntax="proto2"; package curvefs.metaserver; option cc_generic_services = true; enum MetaStatusCode { OK = 0; // UNKNOWN_ERROR = 1; // permissions and * limitations under the License. */ syntax="proto2"; package curvefs.space; option cc_generic_services = true; enum SpaceStatusCode { OK = 0; // UNKNOWN_ERROR = 1; //0 码力 | 15 页 | 80.33 KB | 6 月前3
OID CND Asia Slide: CurveFS● 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 availability analysis Copyset0 码力 | 24 页 | 3.47 MB | 6 月前3
Curve核心组件之Client - 网易数帆发送依赖复制组leader,可能会向 Chunkserver查询复制组leader 9. 发送写请求给Chunkserver BRPC线程 10.Chunkserver处理完成后返回RPC Response 11.用户请求的所有子请求完成后,调用 IOTracker::Done 12.调用异步请求回调,返回用户CLIENT IO请求重试 IO分发线程将拆分后的子请求通过RPC请求发往指定 kserver上,RPC有可能会失败,一般情况下 处理逻辑是sleep一个较短时间后重试,但是存在两种特殊的场景: Chunkserver Overload: 这种情况下,对应的RPC Response中返回的错误码是OVERLOAD,说明底层Chunkserver正在处理的 请求数量过多。按照一般重试逻辑,大概率情况下重试请求还是返回OVERLOAD,造成用户IO请求一直 无法返回。0 码力 | 27 页 | 1.57 MB | 6 月前3
CurveFS对接S3方案设计ChunkInfo的offset len,封装到request中,具体可见代码的处理逻辑。 4.根据request进一步获取到s3 object去读取对象,将结果保存在response中。 5.最后根据所有的response将buff整合,返回给上层0 码力 | 11 页 | 145.77 KB | 6 月前3
Curve元数据节点高可用leaderkeyrevision leaderSession *Session // leaderSession sessionnil hdr *pb.ResponseHeader // response } Election提供的方法如下:© XXX Page 4 of 30 1. // Campaign puts a value as eligible for the election leaderkeyleader func (e *Election) Key() string // leaderkeyrevision func (e *Election) Rev() int64 // response header func (e *Election) Header() *pb.ResponseHeader 我们主要是用其中两个方法:© XXX Page 5 of 30 1. 20 码力 | 30 页 | 2.42 MB | 6 月前3
Curve for CNCF MainCURVE 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 NETWORK LATENCY 50MS0 码力 | 21 页 | 4.56 MB | 6 月前3
Open Flags 调研com/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/+/refs/heads/jb-dev/sysroot/usr/include/asm-generic/fcntl.h https://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html https://xinqiu0 码力 | 23 页 | 524.47 KB | 6 月前3
共 9 条
- 1













