基本操作

存储节点由常见的文件协议组成,uldisk只负责通过这些协议读写存储节点。

存储节点需要通过后台添加,并执行挂载操作,才算完成接入。

对于存储节点的操作,一般有:

  • 添加
  • 挂载
  • 自动挂载
  • 卸载
  • 离线(健康检查)
  • 热迁移

添加

添加的流程很简单,设置类型和账号参数就行,如下图:

挂载

挂载需要一系列的操作才能完成,并且需要一个定时任务去检测存储位置的健康状态,并支持自动挂载。

挂载的基本流程,

如果存储节点的状态是未挂载,则进行挂载,
挂载执行的操作如下:

在数据库中将chunk标记为有效position清空所有文件遍历节点上的chunk删除chunk标记chunk状态生成挂载信息清理数据库中没有匹配到的chunk没有是否有挂载信息无效挂载信息是否有效有效无效有效chunk是否有效挂载挂载完成遍历完成后

自动挂载

如果存储节点的状态是离线(待挂载),则会进行自动挂载。

自动挂载的流程就是挂载的流程。

实际上,后台点击挂载后,可以将状态设置为待挂载,此时交由自动挂载进程去处理。

离线(健康检查)

会有一个后台进程,定时检查挂载文件,如果读写异常,则将该节点标记为离线,进入自动挂载流程。

同时热迁移功能开始工作,就像卸载流程产生的那样。

热迁移

热迁移的目的有两个:

  • 将chunk存放到最佳的position上(暂时不做)
  • 将失效的position的chunk迁移到健康的position上

原文标题:存储原理

原文文档:uldisk

原文地址:https://doc.ulthon.com/read/augushong/62b6da9ad8aa6/63350f7074c6f/zh-cn/1.0.0.html

原文平台:奥宏文档

1.0.0