-
Notifications
You must be signed in to change notification settings - Fork 1
overview
DingoAdm 主要用于快速部署和运维DingoFS 集群。
-
快速部署 DingoFS 集群
用户在准备好集群拓扑文件的情况下,可一键完成整个集群的部署。
-
容器化服务
所有组件都运行在 Docker 容器内,解决各 Linux 发行版差异问题。
-
运维 DingoFS 集群
支持常见的运维操作,并支持一键升级服务、扩缩容集群。
-
同时管理多个集群
用户可同时管理多个DingoFS的集群,并可随时切换指定集群为当前管理集群
-
错误精确定位
我们为部署过程中出现的每一个错误分配了一个唯一的错误码,并针对每一个错误码给出了详细的解释,以及相关的解决方法。用户可通过错误码列表页面在线查询相关错误码。
![](image/dingoadm.png)
为实现多用户管理,DingoAdm 默认安装在当前用户主目录下的 .dingoadm
目录,其所有文件都保存在该目录下,包括:
文件 | 说明 |
---|---|
bin/dingoadm | 二进制文件 |
dingoadm.cfg | DingoAdm 配置文件,可配置日志等级、SSH 连接超时时间、sudo 权限等 |
CHANGELOG | 当前版本的更新日志 |
data/dingoadm.db | SQLite 数据库文件,所有持久化数据都保存在该文件中,包括集群名、集群拓扑、每个服务对应的容器 ID 等 |
logs | 日志目录,每执行一次命令都将会产生一个日志文件,并保存在该目录下 |
temp | 临时文件目录 |
/home/dingo/.dingoadm
├── bin
│ └── dingoadm
├── CHANGELOG
├── dingoadm.cfg
├── data
│ └── dingoadm.db
├── logs
│ ├── dingoadm-2022-01-17_17-07-57.log
│ └── dingoadm-2022-01-17_17-08-33.log
└── temp
我们将 DingoAdm 中所有需要持久化的数据都保存在 SQLite 数据库中, SQLite 是一个自给自足的、无服务器的、零配置的、事务性的 SQL 数据库, 一个完整的 SQLite 数据库就是一个文件。
数据库中主要保存了以下 4 类数据:
- 主机信息:包括各主机地址、SSH 端口、私钥路径等
- 集群信息:包括集群名、集群 UUID、以及每个集群对应的拓扑等
- 服务信息:服务 ID、服务对应的容器 ID
- 客户端信息:客户端 ID,客户端对应的容器 ID
💡 提示:
服务 ID 是根据集群拓扑生成的,在集群拓扑给定的情况下,我们会根据固定的规则为拓扑中的每一个服务生成一个唯一的 ID,即服务 ID 也是固定的。
根据服务 ID,在数据库中就可以查询到对应的容器 ID,而主机模块又保存了每个服务部署的主机 Host、SSH 私钥路径等信息,通过这些信息,我们就可以对服务对应的容器进行管理了。
为解决组件运行依赖问题,DingoFS 中的所有组件都运行在 Docker 容器内,我们将每个版本的全部组件、依赖、必要工具都打包进了同一个镜像,并发布至 Dcoker 公共仓库。
DingoAdm 通过 SSH 客户端连接到远端服务器,执行相关部署或管理命令,以及通过 Docker 客户端 Docker Cli 来管理服务容器。
© 2024 Dingo Team. All Rights Reserved