分布式文件系统架构图
2021-10-14 15:32:33 0 举报
分布式文件系统架构图
作者其他创作
大纲/内容
心跳定时
心跳
粘包
刷完修改标记
editslog-201-300文件
editslog-401-500文件
正在刷盘
启动线程
清理
拆包简单的说就缓存起来直到读完为止
唤醒可以写
读取文件
读取文件所在机器信息(随机返回一台)
标记正在调度
文件名大小 文件名 文件大小 文件数据格式
内存文件目录树
写入
加锁操作
editslog文件
进行刷盘
editslog缓存区
全量上报
editslog-1-100文件
fsimage文件内存快照
粘包和拆包处理短链接,基本上不会有粘包拆包解决,增加一个文件大小的参数
上传文件双副本
ZooKeeper
扫描本地文件
写到缓冲
选择2个节点
恢复重启下发删除冗余数据
editslog-101-200文件
顺序写入
双缓冲
推送到主节点
小的话
校验重复写入元空间
扫描
客户端
调用失败重新换个节点
增量上报
EditLog
新增节点:1、一般多节点同时扩容(我们这是两台)立即解决资源紧张问题,新增数据立即转到新扩容的机器上2、rebalance-触发数据迁移,将其他节点的数据,迁移部分到新节点上
下发复制任务从一个节点复制一份永远保持有2分
从
新增一条editlog
DataNodeInfo注册信息存储信息
上传文件
定时
交换缓冲区
文件与存储节点映射表
定时checkpoint
避免重复注册
唤醒等待线程
启动注册
这里直接手动运维
wait(1s)
删除映射
调度刷盘
syncBuffer
拉取editslog
写入磁盘
异步同步
内存双缓冲
DataNode
分段存储
NameNode(主)
事务ID
清理旧文件
editslog-301-400文件
接受上传文件接口
获取文件接口
是否快速重启
触发落盘
重启
创建目录
获取
isSchedulingSync = true
拉取最新的
NameNode(备)
返回写入成功
保存
currentBuffer
刷磁盘
删除历史
故障清理
通过心跳机制下发
事务id大小
封装
0 条评论
下一页