存储与观测
Yaostore
对象存储节点与磁盘管理
Yaostore 管理 RustFS 节点、存储池和成员盘。控制器保存布局与未完成操作,节点代理执行本机配置、进程和磁盘维护;S3 客户端直接访问 RustFS。它把日常对象读写与设备初始化、已有数据接管、扩池和退役等运维任务分开处理。
为对象存储追加容量 登记并准备新的成员盘,提交保留既有池顺序的完整布局,待相关节点应用后按原启停要求继续。扩池不主动搬迁旧对象;维护完成后读回已知对象,另行观察所需的数据迁移。
让存储维护与对象读写各走自己的路径
操作者登记节点与物理磁盘,声明存储池布局,再分别应用配置和授权启动。Controller 控制器长期保存登记、磁盘归属、期望配置与未结束的操作;每台节点上的 Agent 节点代理负责本机进程、挂载和实际执行。
节点共享一份运行镜像,在运行时取得不同配置。磁盘槽位和存储池调整无需重建镜像。客户端通过 S3 对象接口直接访问 RustFS;其 Console 管理界面处理用户、访问密钥、策略和对象,Yaostore 处理磁盘、进程与存储布局维护。
初始化与接管使用不同的证据
初始化针对明确授权的整块磁盘。节点代理在修改前固定设备身份与新标识,再创建分区和文件系统,检查实际结果与保存情况。设备未找到、身份不清楚或旧工作尚未结束,都不能被当作可以重新初始化的空盘。
接管旧盘要求独立保留的原成员信息。核对范围包含物理设备、磁盘与分区标识、文件系统、存储池、集群部署、成员盘标识,以及分组和组内位置。把盘上刚读到的值当成预期值,会失去识别接错设备的能力。接管不格式化,主机管理方仍需排除其他写入者。
| 任务 | 提交的依据 | 期望结果 |
|---|---|---|
| 新盘初始化 | 确切设备;明确允许清除原内容 | 形成新的分区、文件系统与归属记录 |
| 已有成员盘接管 | 独立取得的完整原成员预期 | 核对并保留原身份与对象内容 |
| 普通停止与重启 | 已有磁盘归属和配置 | 复用同一批盘,不重新格式化 |
从登记磁盘走到第一份可读回对象
准备集群时,需要节点身份、确切物理磁盘和完整存储池布局。新磁盘与已有成员盘的输入不同:新盘需要明确破坏性初始化授权,旧盘需要独立保存的原成员预期。两种工作都不能仅凭发现了一块磁盘就自动开始。
第一次设置集群先让所有必要节点应用配置并保持停止。确认这些工作已结束后,再单独授权启动;随后使用 S3 写入和读取一份预先知道内容的对象,确认客户端实际取得了对应字节。
登记并明确磁盘来源
把新盘初始化与旧盘接管分开,核对设备身份和操作权限。
应用停止态配置
节点先结束旧进程和相关写入,完成同步与配置应用,不提前启动新写入者。
启动并独立读回
通过明确启动操作进入服务状态,再从对象接口核对已知内容;管理回执不代替数据读回。
先结束旧写入,再应用新布局
首次建立集群,或用新控制器恢复完整集群时,先应用配置并保持停止,再由明确的启动操作允许服务运行。已有布局变更保留原来的启停要求:相关节点先停止旧写入者并完成同步,所有参与节点应用所需配置之后,再按原要求继续运行或保持停止。
追加存储池保留既有池的顺序和每组盘数,不主动搬迁已有数据。移除池之前,需要所有必要节点报告与目标相符的数据迁移完成结果。布局变化允许维护中断;同一主机上的池仍共享主机故障风险,不能仅凭多盘或多池推断持续可用。
提交、就绪和完成各有证据
再均衡和退役操作返回 RustFS 的提交结果。任务被接受只说明引擎确认了提交;移动进度与是否完成,需要随后独立查询。没有取得进度不是进度为零,无法取得结果也不能按拒绝或成功处理。
每个控制动作绑定节点、本次系统启动、代理实例和动作编号。相同动作重复送达时沿用原工作与结果,不延长执行期限或再次格式化。调用超时后,实际工作仍由原执行者负责直到结束;控制器重新打开存储后保留未决责任,失去联系本身不释放磁盘。
| 结果 | 建立的事实 | 下一步观察 |
|---|---|---|
| 配置已提交 | 期望布局已经持久化 | 节点实际配置与旧写入者是否结束 |
| 节点就绪 | 当前节点与配置对应的健康探测结果 | 具体布局与数据迁移状态 |
| 任务已接受(accepted) | 引擎确认了任务提交 | 独立查询进度或最终状态 |
恢复操作时,同时看结果与是否已经结束
调查未完成操作需要找到原节点、系统启动、代理实例和动作编号。这组身份决定当前观察属于哪次工作。相同编号再次送达沿用原执行;不同机器或不同启动的报告,不能接替原动作证明完成。
动作结果与执行结束分别记录。结果可能是成功、失败或未知,而“已结束”表示该动作不再持有尚未收尾的工作。仅收到失败或等待超时,不能推出写入者已经退出、挂载已释放,因而也不能据此启动冲突任务。
准入条件:原动作已经收尾
后续有冲突的资源操作,应以原动作真实结束以及当前资源权限为依据,而不是以等待方退出为依据。
不能推断:迁移任务已接收即数据已迁完
原生提交结果只证明任务接纳。移除目标池仍需与该目标相符的完成观察。
继续核对:控制端重开或连接恢复
找回持久保存的未决动作和磁盘归属,继续核对原执行者;失联本身不释放设备。
用请求与资源读数解释运行
请求分析分别呈现:S3 操作率、GET 读取与 PUT 写入的完成结果、成功请求延迟、HTTP 双向流量、进程 CPU 与常驻内存。HTTP 流量包含管理和探测请求;CPU 以一个逻辑核为基准,可超过百分之百;常驻内存是进程实际驻留内存,不是虚拟地址空间。
设计验证关注真实数据:保存一份已知对象,在扩池、停启和控制器中断后读回相同版本与字节;用错误成员预期检查接管拒绝;延迟旧写入者结束,检查新进程不会提前写入。遥测中断可以造成观察缺口,但不改变已获准的服务启停要求。