forked from opencurve/curveadm
    
        
        - 
                Notifications
    You must be signed in to change notification settings 
- Fork 2
dingofs cluster deployment
        dongwei edited this page Oct 29, 2025 
        ·
        3 revisions
      
    用户需导入部署集群和客户端所需的机器列表,以便在之后的各类配置文件中填写部署服务的主机名, 请确保在之后各类配置文件出现的主机名都已导入,详见主机管理。
$ vim hosts.yamlglobal:
  user: dingo
  ssh_port: 22
  private_key_file: /home/dingo/.ssh/id_rsa
hosts:
  - host: server-host1
    hostname: 10.0.1.1
  - host: server-host2
    hostname: 10.0.1.2
  - host: server-host3
    hostname: 10.0.1.3
  - host: client-host
    hostname: 10.0.1.4$ dingoadm hosts commit hosts.yaml我们根据常见的场景,给用户准备了不同的拓扑文件模板,用户可根据需求自行选择,并进行编辑调整:
关于拓扑文件中的各项配置项,请参考 DingoFS 集群拓扑。
$ vim topology.yamlkind: dingofs
global:
  log_dir: ${home}/dingofs/logs/${service_role}
  data_dir: ${home}/dingofs/data/${service_role}
  raft_dir: ${home}/dingofs/raft/${service_role}
  default_replica_num: 3
  variable:
    home: /tmp
    machine1: server-host1
    machine2: server-host2
    machine3: server-host3
coordinator_services:
  config:
    container_image: dingodatabase/dingo-store:latest
    server.port: 6500
    raft.port: 7500
  deploy:
    - host: ${machine1}
    - host: ${machine2}
    - host: ${machine3}
store_services:
  config:
    container_image: dingodatabase/dingo-store:latest
    server.port: 6600
    raft.port: 7600
  deploy:
    - host: ${machine1}
    - host: ${machine2}
    - host: ${machine3}
mds_services:
  config:
    container_image: dingodatabase/dingofs:latest
    server.port: 6900
  deploy:
    - host: ${machine1}
    - host: ${machine2} 
    - host: ${machine3}
executor_services:
  config:
    container_image: dingodatabase/dingo:latest
    port: 8765
    mysqlPort: 3307
  deploy:
    - host: ${machine1}$ dingoadm cluster add my-cluster -f topology.yaml$ dingoadm cluster checkout my-cluster$ dingoadm deploy如果部署成功,将会输出类似 Cluster 'my-cluster' successfully deployed ^_^. 的字样。
📢 注意:
部署时默认会运行预检模块来提前检测那些可能导致用户部署失败的因素,以提高用户部署的成功率,当出现预检失败时,用户需要根据报告的错误码以及其提供的解决方案一步步排除问题, 并最终通过所有预检。当然用户也可以通过添加
-k选项跳过预检,但是这是我们极其不推介的,因为这将给之后的实际部署留下隐患,并产生难以排查的问题。
$ dingoadm statusDingoAdm 默认会显示服务 ID、服务角色、主机地址、已部署的副本服务数量、容器 ID、运行状态:
Get Service Status: [OK]
cluster name     : my-cluster
cluster kind     : dingofs
mds     addr     : 10.0.1.1:6900,10.0.1.2:6900,10.0.1.3:6900
coordinator addr : 10.0.1.1:6500,10.0.1.2:6500,10.0.1.3:6500
Id            Role         Host          Instances  Container Id  Status          
--            ----         ----          ---------  ------------  ------          
a494b41bde22  coordinator  server-host1  1/1        7f940eb5acb4  Up About an hour
f9376ae0e5fe  coordinator  server-host2  1/1        05bb973a717a  Up About an hour
04cb36f05829  coordinator  server-host3  1/1        347d60486eb0  Up About an hour
e5042851a16f  store        server-host1  1/1        514e6e97294d  Up About an hour
b1603e984e1e  store        server-host2  1/1        1f22ed5595ae  Up About an hour
4c8fddc79b43  store        server-host3  1/1        98ea6278baac  Up About an hour
505da008b59c  mds          server-host1  1/1        37c05bbb39af  Up About an hour         
e7bfb934182b  mds          server-host2  1/1        044b56281928  Up About an hour         
1b322781339c  mds          server-host3  1/1        b00481b9872d  Up About an hour         
b576046290c3  executor     server-host1  1/1        041e6573ae6e  Up About an hour- 若想查看其余信息,如监听端口、日志目录、数据目录等,可添加 -v参数
- 对于同一台主机上的复制服务来说,其状态默认是折叠的,可添加 -s参数来显示每一个副本服务
集群服务正常运行,并不意味着集群的健康,所以我们在每一个容器内内置了 dingo 工具。
该工具不仅可以查询集群的健康状态,还提供了许多其他特性,如显示各组件详细状态、创建/删除文件系统等。
首先,我们需要进入任意一个服务容器内(服务 ID 可通过 dingoadm status 查看):
$ dingoadm enter <Id>在该容器内执行以下命令查看:
$ dingo status如果集群健康,在输出的最后会出现 cluster is healthy 的字样。
© 2024 Dingo Team. All Rights Reserved