Skip to content

maintain dingo

dongwei edited this page Jan 17, 2026 · 1 revision

DingoCli 常见运维操作

查看集群列表

$ dingo cluster ls

若想显示集群详细信息,可添加 -v 选项,该选项将显示集群 ID集群 UUID集群创建时间集群描述等相关信息:

$ dingo cluster ls -v

切换集群

切换指定集群为当前管理集群。切换集群后,之后的操作都将作用于该集群。

$ dingo cluster checkout <cluster-name>

切换集群后,再次查看集群列表时,当前集群名前会出现 * 样图标,我们以此来确定当前操作集群。

添加集群

用户可在添加集群的同时指定集群拓扑文件,亦可先添加集群,之后再通过修改集群拓扑的方式提交集群拓扑:

$ dingo cluster add <cluster-name> [-f topology.yaml]

删除集群

$ dingo cluster rm <cluster-name>

⚠️ 警告:

删除集群后,该集群相关信息将全部被清除,请谨慎操作。dingo 支持同时管理多个集群,在不必要的情况下,请勿删除集群。

导出集群

我们可将当前集群信息保存为本地文件,通常我们在以下 2 种情况下需要导出集群:

  • 需将集群信息做定时备份,以防丢失
  • 与其他用户共享集群信息,以供其他用户操作集群
$ dingo cluster export <cluster-name> [-o database-file-path]

💡 提示:

导出的集群文件以集群 UUID 为键,该 UUID 全局唯一,值则主要保存了以下 2 类信息:

  • 集群的服务配置,即集群拓扑
  • 每个服务的相关信息,包括服务 ID、服务运行的容器 ID 等

导入集群

$ dingo cluster import <cluster-name> [-f database-file-path]

📢 注意:

  • 导入集群时指定的集群名不可与已存在的集群名重复,否则将导致导入失败
  • 导入集群时会将集群拓扑原封不动导入,所以可能会导致某些配置项失效,如 SSH 的私钥路径配置项 private_key_path, 遇到此类情况,用户可修改集群拓扑并提交后即可正常操作集群

查看集群拓扑

$ dingo config show

💡 提醒:

当本地拓扑文件丢失时,我们可以通过保存当前的集群拓扑来恢复:

$ dingo config show > topology.yaml

修改集群拓扑

修改本地集群拓扑:

$ vim topology.yaml

当我们修改了本地的拓扑文件后,需向 DingoCli 提交我们的修改,集群拓扑才能生效:

$ dingo config commit <topology.yaml>

💡 提醒:

在提交本地集群拓扑时,终端会显示本地集群拓扑与当期集群拓扑之间的差异,请仔细对比,以防错误提交。

对比集群拓扑

我们可通过以下命令来查看本地集群拓扑文件与当前集群拓扑之间的差异:

$ dingo config diff <topology.yaml>

查看集群状态

$ dingo status

DingoCli 默认会显示服务 ID、服务角色、主机名、已部署的复制服务数量、容器 ID、运行状态:

Get Service Status: [OK]

cluster name     : main
cluster kind     : dingofs
mds     addr     : 10.0.1.1:6900,10.0.1.1:6901,10.0.1.1:6902,10.0.1.2:6900,10.0.1.2:6901,10.0.1.2:6902,10.0.1.3:6900,10.0.1.3:6901,10.0.1.3:6902
coordinator addr : 10.0.1.1:6500,10.0.1.2:6500,10.0.1.3:6500

Id            Role         Host      Instances  Container Id  Status           
--            ----         ----      ---------  ------------  ------           
14afec85d524  coordinator  server-1  1/1        1989298f7872  Up About a minute
02f4392ccbbd  coordinator  server-2  1/1        50dd582fa61f  Up About a minute
2dbb38dc0048  coordinator  server-3  1/1        3d878bc0367c  Up About a minute
c540255acc6b  store        server-1  1/1        c3e3bc7bc241  Up About a minute
6a63d19c72e9  store        server-2  1/1        712eb46330fe  Up About a minute
4c085ede54e5  store        server-3  1/1        d7347c4bdd2d  Up About a minute
<instances>   mds          server-1  3/3        <instances>   RUNNING          
<instances>   mds          server-2  3/3        <instances>   RUNNING          
<instances>   mds          server-3  3/3        <instances>   RUNNING          
64cc3e66d5d4  executor     server-1  1/1        8e03929530d0  Up 41 seconds
  • 若想查看其余信息,如监听端口、日志目录、数据目录等,可添加 -v 参数
  • 对于同一台主机上的复制服务来说,其状态默认是折叠的,可添加 -s 参数来显示每一个副本服务

启动服务

$ dingo start

DingoCli 默认启动集群中的所有服务,如需启动指定服务,可通过添加以下 3 个选项来实现:

  • --id: 启动指定 id 的服务
  • --host: 启动指定主机的所有服务
  • --role: 启动指定角色的所有服务

以上 3 个选项可任意组合使用,服务对应的 idhostrole 可通过 dingo status 来查看。

示例 1: 启动 id 为 c9570c0d0252 的服务

$ dingo start --id c9570c0d0252

示例 2: 启动 10.0.1.1 这台主机上的所有 MDS 服务

$ dingo start --host 10.0.1.1 --role mds

停止服务

$ dingo stop

DingoCli 默认停止集群中的所有服务,如需停止指定服务,可通过添加以下 3 个选项来实现:

  • --id: 停止指定 id 的服务
  • --host: 停止指定主机的所有服务
  • --role: 停止指定角色的所有服务

以上 3 个选项可任意组合使用,服务对应的 idhostrole 可通过 dingo status 来查看。

示例 1: 停止 id 为 c9570c0d0252 的服务

$ dingo stop --id c9570c0d0252

示例 2: 停止 10.0.1.1 这台主机上的所有 MDS 服务

$ dingo stop --host 10.0.1.1 --role mds

⚠️ 警告:

停止服务可能造成集群不健康,导致客户端 IO 失败,请谨慎操作。

重启服务

$ dingo restart

DingoCli 默认重启集群中的所有服务,如需重启指定服务,可通过添加以下 3 个选项来实现:

  • --id: 重启指定 id 的服务
  • --host: 重启指定主机的所有服务
  • --role: 重启指定角色的所有服务

以上 3 个选项可任意组合使用,服务对应的 idhostrole 可通过 dingo status 来查看。

示例 1: 重启 id 为 c9570c0d0252 的服务

$ dingo restart --id c9570c0d0252

示例 2: 重启 10.0.1.1 这台主机上的所有 MDS 服务

$ dingo restart --host 10.0.1.1 --role mds

修改服务配置

在集群运行的过程中,我们可能需要修改服务的配置,并重启服务。具体操作步骤如下:

第 1 步:编辑本地集群拓扑文件,修改对应服务的配置项

$ vim topology.yaml

💡 提醒:

当本地拓扑文件丢失时,我们可以通过保存当前的集群拓扑来恢复:

$ dingo config show > topology.yaml

第 2 步:提交修改

$ dingo config commit topology.yaml

第 3 步:重新加载服务

$ dingo reload

DingoCli 默认重新加载集群中的所有服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现:

  • --id: 重新加载指定 id 的服务
  • --host: 重新加载指定主机的所有服务
  • --role: 重新加载指定角色的所有服务

以上 3 个选项可任意组合使用,服务对应的 idhostrole 可通过 dingo status 来查看。

示例 1:重新加载 id 为 c9570c0d0252 的服务

$ dingo reload --id c9570c0d0252

示例 2:重新加载 10.0.1.1 这台主机上的所有 MDS 服务

$ dingo reload --host 10.0.1.1 --role mds

💡 提醒:

命令 restartreload 的区别在于, reload 会根据当前集群拓扑的变更修改相应服务的配置,然后再重启服务, 而 restart 则只会简单的重启服务。

进入服务容器

我们可以远程进入服务容器内,查看服务进程、配置、日志、数据等信息:

$ dingo enter <id>

服务对应的 id 可通过 dingo status 来查看。

💡 提醒:

DingoCli 默认进入该服务的根目录,服务根目录包含了服务所需的所有文件,其目录结构如下:

/dingofs/mds  # 服务根目录
|-- conf      # 配置目录
|   `-- mds.conf
|-- data      # 数据目录
|-- logs      # 日志目录
|   `-- dingofs-mds.log.INFO.20220120-142115.6
`-- sbin      # 二进制目录
    `-- dingofs-mds

清理集群

$ dingo clean

DingoCli 默认清理集群中所有服务的所有对象,如需清理指定服务或对象,可通过添加以下 4 个选项来实现:

  • --id: 清理指定 id 所对应的服务
  • --host: 清理指定主机所对应的服务
  • --role: 清理指定角色所对应的服务
  • --only: 清理指定对象 (log: 日志,data: 数据,container: 容器)

以上 4 个选项可任意组合使用,服务对应的 idhostrole 可通过 dingo status 来查看。

示例 1:清理 id 为 c9570c0d0252 服务的所有对象

$ dingo clean --id c9570c0d0252

示例 2:清理所有 MDS 服务的日志和数据

$ dingo clean --role mds --only log,data

示例 3:清理 10.0.1.1 这台主机上 MDS 服务的所有对象

$ dingo clean --host 10.0.1.1 --role mds

📢 注意:

当清理服务容器时,请确保相应服务已停止,你可以使用 stop 命令来停止指定服务。

Clone this wiki locally