Curve核心组件之snapshotclone
1.32 MB
23 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档详细介绍了Curve核心组件SnapShotCloneServer的架构及功能,包括快照和克隆的实现过程。SnapShotCloneServer由快照克隆核心模块、任务管理层、核心模块等组成,支持快照和克隆任务的异步处理,并通过etcd和S3交互管理元数据和数据。文档还描述了快照和克隆的特点,如支持Lazy和非Lazy模式克隆、从快照回滚等,并详细阐述了快照和克隆的总体流程。 | ||
AI总结 | ||
## Curve核心组件之SnapshotClone总结
Curve的核心组件之一是SnapshotCloneServer,主要负责快照和克隆功能。以下是其核心内容的总结:
### CURVE基本架构
Curve的基本架构包括以下三个核心组件:
1. **元数据节点 (MDS)**:
- 负责管理和存储元数据信息。
- 感知集群状态并进行合理调度。
2. **数据节点 (Chunkserver)**:
- 负责数据存储。
- 确保副本一致性,使用Raft协议。
3. **客户端 (Client)**:
- 对元数据和数据进行增删改查操作。
- 与快照克隆服务器交互以实现快照和克隆功能。
### 快照和克隆的特点
1. **快照**:
- 支持快速创建卷的副本。
- 支持从快照回滚功能。
- 支持高可用,任务中断后能自动恢复。
2. **克隆**:
- 支持从快照克隆和从镜像(卷)克隆两种方式。
- 支持Lazy和非Lazy两种模式。
### 快照克隆服务器架构
1. **核心模块**:
- **SnapshotTaskManager & CloneTaskManager**:负责调度快照和克隆任务,并调用底层模块(如DataStore、MetaStore)实现具体功能。
- **SnapshotCore & CloneCore**:实现快照和克隆的核心逻辑。
- **SnapshotDataStore**:管理快照数据块,与S3交互,通过S3Adaptor存取S3中的对象。
- **SnapshotCloneMetaStore**:管理快照和克隆任务的元数据,与etcd交互存取元数据。
- **CurveClient**:封装Client接口,与MDS和ChunkServer交互。
- **SnapshotRef & CloneRef**:管理快照和克隆源卷的引用计数。
2. **接口**:
- **HttpService**:基于BRPC提供RESTful API的对外接口,区分同步和异步调用。
- **SnapshotService & CloneService**:负责接收上层请求,并调用Core层接口或创建任务。
### 快照实现流程
1. **总体流程**:
- 用户发起快照请求,生成并持久化快照任务到etcd。
- 创建内部快照并更新快照信息到etcd,允许读写。
- 转储快照元数据块(metaObject)和数据块(dataObject)。
- 删除内部快照及数据。
2. **快照数据读取情况**:
- 未写入数据:无snap file,直接读取chunk file。
- 已写入数据:触发CoW机制,生成snap file,合并读取。
- 未写入且无数据:返回NOTEXIST状态。
### 克隆实现流程
1. **总体流程**:
- 用户发起克隆请求,生成并持久化克隆任务到etcd。
- 创建临时克隆卷并分配空间。
- 创建CloneChunk并拷贝数据。
- 更新克隆卷状态为MetaInstalled或Ckoned。
2. **克隆卷状态变化**:
- 初始状态:用户不可见。
- Cloning:元数据安装成功,Lazy模式下可见。
- MetaInstalled:元数据安装完成,非Lazy模式不可见。
- Cloned:数据拷贝完成,提供所有服务。
Curve的快照克隆机制通过高效的架构和流程设计,支持快速、可靠的数据副本操作,是其存储系统的重要组件。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
11 页请下载阅读 -
文档评分