 副本如何用CLup管理PolarDB如何用CLup管理Polardb 4008878716 services@csudata.com http://www.csudata.com 中启乘数科技 @http://www.csudata.com │中启乘数科技(杭州)有限公司 数据赋能│价值创新 关于我 《PostgreSQL修炼之道:从小工到专家》的作者,中 启乘数科技联合创始人,PostgreSQL中国用户会常委。 从 @ 专业的PostgreSQL数据库管理平台 CLup介绍CLup产品介绍 网络 clup-agent 数据库主机1 clup-agent 数据库主机2 clup-agent 数据库主机n  CLup是什么?  实现PostgreSQL/PolarDB数据库的私有云 RDS产品  PostgreSQL/PolarDB集群统一管理、统一运 维。  PostgreS 实现对PostgreSQL/PolarDB的监控管理  对PostgreSQL/PolarDB的TopSQL的管理  架构说明  有一台机器上部署的CLup管理节点,这个管 理节点提供WEB管理界面统一管理所有的 PostgreSQL/PolarDB数据库。  每台数据库主机上部署clup-agent。CLup管 理节点通过clup-agent来管理这台机器上的 PostgreSQL/PolarDB数据库。0 码力 | 34 页 | 3.59 MB | 6 月前3 副本如何用CLup管理PolarDB如何用CLup管理Polardb 4008878716 services@csudata.com http://www.csudata.com 中启乘数科技 @http://www.csudata.com │中启乘数科技(杭州)有限公司 数据赋能│价值创新 关于我 《PostgreSQL修炼之道:从小工到专家》的作者,中 启乘数科技联合创始人,PostgreSQL中国用户会常委。 从 @ 专业的PostgreSQL数据库管理平台 CLup介绍CLup产品介绍 网络 clup-agent 数据库主机1 clup-agent 数据库主机2 clup-agent 数据库主机n  CLup是什么?  实现PostgreSQL/PolarDB数据库的私有云 RDS产品  PostgreSQL/PolarDB集群统一管理、统一运 维。  PostgreS 实现对PostgreSQL/PolarDB的监控管理  对PostgreSQL/PolarDB的TopSQL的管理  架构说明  有一台机器上部署的CLup管理节点,这个管 理节点提供WEB管理界面统一管理所有的 PostgreSQL/PolarDB数据库。  每台数据库主机上部署clup-agent。CLup管 理节点通过clup-agent来管理这台机器上的 PostgreSQL/PolarDB数据库。0 码力 | 34 页 | 3.59 MB | 6 月前3
 Curve文件系统元数据管理© XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 内存空间分配元数据 元数据持久化 元数据扩展 小文件优化 空间管理单位 数据持久化 其他© XXX Page 3 of 24 moosefs(mfs) 有元数据服务器 全内存 fsnode + name) segment kv → hashtable(key inode + offset) etcd 差 块设备,最小10GB segment + chunk raft 块设备的元数据管理 cephfs 3、各内存结构体 时间复杂度 空间复杂度 特点 可用实现 Btree 一个节点上保存多条数据,减少树的层次(4~5层),0 码力 | 24 页 | 204.67 KB | 6 月前3 Curve文件系统元数据管理© XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 内存空间分配元数据 元数据持久化 元数据扩展 小文件优化 空间管理单位 数据持久化 其他© XXX Page 3 of 24 moosefs(mfs) 有元数据服务器 全内存 fsnode + name) segment kv → hashtable(key inode + offset) etcd 差 块设备,最小10GB segment + chunk raft 块设备的元数据管理 cephfs 3、各内存结构体 时间复杂度 空间复杂度 特点 可用实现 Btree 一个节点上保存多条数据,减少树的层次(4~5层),0 码力 | 24 页 | 204.67 KB | 6 月前3
 Curve核心组件之Client - 网易数帆com/opencurve/curveCURVE基本架构 01 02 03 04 Client总体介绍 热升级NEBD总体介绍 新版本Client/NEBD性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 请求会被拆分成两个子请求:  ChunkIdx 1, off: 8M len 8M  ChunkIdx 2, off: 0 len 8MCLIENT IO流程 子请求由哪个chunkserver处理,依赖以 下信息:  逻辑chunk与物理chunk映射关系  物理chunk所属的复制组(copyset)  复制组所在的chunkserver列表  复制组的leader信息CLIENT 放入任务队列后,异步请求发起成功,返回用户 IO拆分线程 4. 从任务队列取出任务后进行拆分 5. 拆分过程依赖元数据,可能会通过MDSClient向 MDS获取 6. 拆分成的子请求放入队列CLIENT IO线程模型 IO分发线程 7. 从队列中取出子请求准备发送 8. 发送依赖复制组leader,可能会向 Chunkserver查询复制组leader 9. 发送写请求给Chunkserver0 码力 | 27 页 | 1.57 MB | 6 月前3 Curve核心组件之Client - 网易数帆com/opencurve/curveCURVE基本架构 01 02 03 04 Client总体介绍 热升级NEBD总体介绍 新版本Client/NEBD性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 请求会被拆分成两个子请求:  ChunkIdx 1, off: 8M len 8M  ChunkIdx 2, off: 0 len 8MCLIENT IO流程 子请求由哪个chunkserver处理,依赖以 下信息:  逻辑chunk与物理chunk映射关系  物理chunk所属的复制组(copyset)  复制组所在的chunkserver列表  复制组的leader信息CLIENT 放入任务队列后,异步请求发起成功,返回用户 IO拆分线程 4. 从任务队列取出任务后进行拆分 5. 拆分过程依赖元数据,可能会通过MDSClient向 MDS获取 6. 拆分成的子请求放入队列CLIENT IO线程模型 IO分发线程 7. 从队列中取出子请求准备发送 8. 发送依赖复制组leader,可能会向 Chunkserver查询复制组leader 9. 发送写请求给Chunkserver0 码力 | 27 页 | 1.57 MB | 6 月前3
 Curve核心组件之mds – 网易数帆MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查 • 快照克隆服务器MDS各个组件 MDS是中心节点,负责元数据管理、集群状态收集与调度。MDS包含以下几个部分: • Topology: 管理集群的 topo 元数据信息。 • Nameserver: 管理文件的元数据信息。 心跳模块。跟chunkserver进行交互,收集chunkserver上的负载信息、 copyset信息等。 • Scheduler: 调度模块。用于自动容错和负载均衡。TOPOLOGY topology用于管理和组织机器,利用底层机器的放置、网络的规划以面向业务提供如下功能和非功能需求。 1. 故障域的隔离:比如副本的放置分布在不同机器,不同机架,或是不同的交换机下面。 2. 隔离和共享:不同用户的数据可以实现固定物理资源的隔离和共享。 physicalpool: pool1 type: 0 replicasnum: 3 copysetnum: 100 zonenum: 3 scatterwidth: 0NAMESERVER NameServer管理namespace元数据信息,包括(更具体的信息可以查看curve/proto/nameserver2.proto): • FileInfo: 文件的信息。 • PageFileSegment:0 码力 | 23 页 | 1.74 MB | 6 月前3 Curve核心组件之mds – 网易数帆MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查 • 快照克隆服务器MDS各个组件 MDS是中心节点,负责元数据管理、集群状态收集与调度。MDS包含以下几个部分: • Topology: 管理集群的 topo 元数据信息。 • Nameserver: 管理文件的元数据信息。 心跳模块。跟chunkserver进行交互,收集chunkserver上的负载信息、 copyset信息等。 • Scheduler: 调度模块。用于自动容错和负载均衡。TOPOLOGY topology用于管理和组织机器,利用底层机器的放置、网络的规划以面向业务提供如下功能和非功能需求。 1. 故障域的隔离:比如副本的放置分布在不同机器,不同机架,或是不同的交换机下面。 2. 隔离和共享:不同用户的数据可以实现固定物理资源的隔离和共享。 physicalpool: pool1 type: 0 replicasnum: 3 copysetnum: 100 zonenum: 3 scatterwidth: 0NAMESERVER NameServer管理namespace元数据信息,包括(更具体的信息可以查看curve/proto/nameserver2.proto): • FileInfo: 文件的信息。 • PageFileSegment:0 码力 | 23 页 | 1.74 MB | 6 月前3
 CurveFs 用户权限系统调研问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID, SGID, STICKY) 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access Control Lists)的管理 ACL Access Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 allow-other'以允许相应用户有权访问该文件系统,如果挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配置项“user_allow_other”(该配置项是无值的)。详见libfuse官方文 档:https://github.com/libfuse/libfuse#security-implications # The file 结论:fuse挂载时使用'default_permissions' 和 ‘allow_other’ ;或者可以在用户态文件系统中自由的实现访问控制策略。 可以达到共享文件系统下的基于内核权限检查的文件访问控制 二、文件系统权限管理© XXX Page 16 of 33 // example in linux // --------- drwxr-xr-x 3 wanghai01 neteaseusers 4096 Jul0 码力 | 33 页 | 732.13 KB | 6 月前3 CurveFs 用户权限系统调研问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID, SGID, STICKY) 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access Control Lists)的管理 ACL Access Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 allow-other'以允许相应用户有权访问该文件系统,如果挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配置项“user_allow_other”(该配置项是无值的)。详见libfuse官方文 档:https://github.com/libfuse/libfuse#security-implications # The file 结论:fuse挂载时使用'default_permissions' 和 ‘allow_other’ ;或者可以在用户态文件系统中自由的实现访问控制策略。 可以达到共享文件系统下的基于内核权限检查的文件访问控制 二、文件系统权限管理© XXX Page 16 of 33 // example in linux // --------- drwxr-xr-x 3 wanghai01 neteaseusers 4096 Jul0 码力 | 33 页 | 732.13 KB | 6 月前3
 CurveFS方案设计性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 namespace 开发: a. 功能 软/硬链接:目前是都不支持的。软链接可以通过标识文件类型解决;由于 prefix list:list在通用文件系统中是很常见的操作,目前 curve 的元数据缓存使用的 lru cache,因此 list 只能依赖 etcd 的 range 获取方式。如果需要对 list 加速,需要新的缓存结构 c. 扩展性/可用性/可靠性 依赖于第三方kv存储,目前是etcd CurveFS 单机内存元数据设计 类似 fastcfs 和 moosefs 的元数据设计方式,采用通用的0 码力 | 14 页 | 619.32 KB | 6 月前3 CurveFS方案设计性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 namespace 开发: a. 功能 软/硬链接:目前是都不支持的。软链接可以通过标识文件类型解决;由于 prefix list:list在通用文件系统中是很常见的操作,目前 curve 的元数据缓存使用的 lru cache,因此 list 只能依赖 etcd 的 range 获取方式。如果需要对 list 加速,需要新的缓存结构 c. 扩展性/可用性/可靠性 依赖于第三方kv存储,目前是etcd CurveFS 单机内存元数据设计 类似 fastcfs 和 moosefs 的元数据设计方式,采用通用的0 码力 | 14 页 | 619.32 KB | 6 月前3
 curvefs client删除文件和目录功能设计1 当内核移除其inode cache时,会调用forget,此时lookup count需要减nlookup(forget的参数) 当umount时,所有lookup count减至0 不应该完全依赖forget接口去实现inode的移除,因为forget接口可能不会被内核调用(例如client崩溃) 相关调研 moosefs moosefs 未对接forget moosefs 实现了在m 优点: 通过meta文件系统来管理trash,更为优雅。© XXX Page 8 of 15 1. 2. 1. 2. 1. 1. 2. 3. 4. 5. 缺点: moosefs是单mds,所以不存在接口原子性的问题,这块要重新考虑,我们实现上会比moosefs复杂,需要引入一些额外的复杂性。 由于是按目录管理trash,那么必须是两个tras 。所以实际的内存和外存中的inode的删除机制,必须是在metaserver中实现的。client端只是 进行nlink-1的操作。 不能完全依赖forget接口的调用来移除inode,因为client可能会崩溃,也可能下线。所以实际移除inode只能依赖于metaserver,两种方式:chubaofs的简单粗暴放7天就删,或者moosefs使用session机 制来维护inode是否被打开。所以从这一点来看,0 码力 | 15 页 | 325.42 KB | 6 月前3 curvefs client删除文件和目录功能设计1 当内核移除其inode cache时,会调用forget,此时lookup count需要减nlookup(forget的参数) 当umount时,所有lookup count减至0 不应该完全依赖forget接口去实现inode的移除,因为forget接口可能不会被内核调用(例如client崩溃) 相关调研 moosefs moosefs 未对接forget moosefs 实现了在m 优点: 通过meta文件系统来管理trash,更为优雅。© XXX Page 8 of 15 1. 2. 1. 2. 1. 1. 2. 3. 4. 5. 缺点: moosefs是单mds,所以不存在接口原子性的问题,这块要重新考虑,我们实现上会比moosefs复杂,需要引入一些额外的复杂性。 由于是按目录管理trash,那么必须是两个tras 。所以实际的内存和外存中的inode的删除机制,必须是在metaserver中实现的。client端只是 进行nlink-1的操作。 不能完全依赖forget接口的调用来移除inode,因为client可能会崩溃,也可能下线。所以实际移除inode只能依赖于metaserver,两种方式:chubaofs的简单粗暴放7天就删,或者moosefs使用session机 制来维护inode是否被打开。所以从这一点来看,0 码力 | 15 页 | 325.42 KB | 6 月前3
 TGT服务器的优化• 通过NBD,只支持Linux • 通过SDK API,目前只支持Linux • PFS • 扩大使用范围 • 通过iSCSI支持更多系统,例如Windows, 类UNIX系统等,使用两项基础 技术 • TCP/IP • SCSI • 替代SAN • 可靠性、稳定性方面有自己的的特色,使用raft副本一致性和copyset概念可以自动 修复损坏的副本,并且可扩容。无论在可靠性、稳定性还是性价比方面都很有优势, --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是force unit 限制使用一个CPU。 • 管理平面不变。主线程里的事件循环及问题: 管理面是主线程,登录,增、删、改target,lun,session,connection,params 都在主线程,而target epoll 线程也要使用这些数据,多线程冲突,数据一 致性问题就来了对TGT的性能优化(续) • 为每一个target增加一把锁 • Target event loop (TEL)线程和管理面线程使用这把锁互斥0 码力 | 15 页 | 637.11 KB | 6 月前3 TGT服务器的优化• 通过NBD,只支持Linux • 通过SDK API,目前只支持Linux • PFS • 扩大使用范围 • 通过iSCSI支持更多系统,例如Windows, 类UNIX系统等,使用两项基础 技术 • TCP/IP • SCSI • 替代SAN • 可靠性、稳定性方面有自己的的特色,使用raft副本一致性和copyset概念可以自动 修复损坏的副本,并且可扩容。无论在可靠性、稳定性还是性价比方面都很有优势, --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是force unit 限制使用一个CPU。 • 管理平面不变。主线程里的事件循环及问题: 管理面是主线程,登录,增、删、改target,lun,session,connection,params 都在主线程,而target epoll 线程也要使用这些数据,多线程冲突,数据一 致性问题就来了对TGT的性能优化(续) • 为每一个target增加一把锁 • Target event loop (TEL)线程和管理面线程使用这把锁互斥0 码力 | 15 页 | 637.11 KB | 6 月前3
 Curve核心组件之chunkserverVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化Curve ChunkServer是数据节点, 对外提供数据读写和节点管理功 能,底层基于ext4文件系统,操 作实际的磁盘。 ChunkServer架构ChunkServer通过RPC网络层与client, MDS,其他ChunkServer通信。RPC 网络层是由brpc框架去完成的。包 ChunkServer架构CopysetNode封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 CopysetNode的创建、初始化、删除等 ChunkServer架构心跳模块有两方面的职责: 1、向MDS节点上报心跳,心跳中包括 ChunkServer本身的一些统计信息 2、解析0 码力 | 29 页 | 1.61 MB | 6 月前3 Curve核心组件之chunkserverVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化Curve ChunkServer是数据节点, 对外提供数据读写和节点管理功 能,底层基于ext4文件系统,操 作实际的磁盘。 ChunkServer架构ChunkServer通过RPC网络层与client, MDS,其他ChunkServer通信。RPC 网络层是由brpc框架去完成的。包 ChunkServer架构CopysetNode封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 CopysetNode的创建、初始化、删除等 ChunkServer架构心跳模块有两方面的职责: 1、向MDS节点上报心跳,心跳中包括 ChunkServer本身的一些统计信息 2、解析0 码力 | 29 页 | 1.61 MB | 6 月前3
 Curve核心组件之snapshotcloneSnapShotCloneServer 许超杰CURVE基本架构 01 02 03 04 快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 步接口调用, 同步接口调用直接调用Core层接口实现功能,异步接口创建Task, 并交由TaskManager调度。 SnapshotService & CloneService: • 任务管理层负责调度SnapshotTask和CloneTask,并向上提供如 cancel task等功能。 SnapshotTaskManager & CloneTaskManager: • 快照克 & CloneCore:快照克隆服务器架构 • SnapshotDataStore负责管理快照转储的数据块,通过调用 S3Adaptor(一个封装了s3 client的接口层)与S3交互,存取s3 中的对象。 SnapshotDataStore: • SnapshotCloneMetaStore负责管理快照和克隆任务等元数据, 通过调用etcdclient,与etcd存储交互,存取etcd中的快照和克隆0 码力 | 23 页 | 1.32 MB | 6 月前3 Curve核心组件之snapshotcloneSnapShotCloneServer 许超杰CURVE基本架构 01 02 03 04 快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 步接口调用, 同步接口调用直接调用Core层接口实现功能,异步接口创建Task, 并交由TaskManager调度。 SnapshotService & CloneService: • 任务管理层负责调度SnapshotTask和CloneTask,并向上提供如 cancel task等功能。 SnapshotTaskManager & CloneTaskManager: • 快照克 & CloneCore:快照克隆服务器架构 • SnapshotDataStore负责管理快照转储的数据块,通过调用 S3Adaptor(一个封装了s3 client的接口层)与S3交互,存取s3 中的对象。 SnapshotDataStore: • SnapshotCloneMetaStore负责管理快照和克隆任务等元数据, 通过调用etcdclient,与etcd存储交互,存取etcd中的快照和克隆0 码力 | 23 页 | 1.32 MB | 6 月前3
共 24 条
- 1
- 2
- 3













