如何自动配置Tarantool墨盒集群?

问题描述

我有一个在Tarantool墨盒上开发的应用程序。我的集群由12个Tarantool实例组成,该实例分为4个副本集(有些是路由器,有些是存储)。现在从头开始设置此群集,然后在Web UI管理员应用程序上手动配置此群集:创建副本集,引导存储,配置故障转移模式。 如何自动进行此配置?最好的方法是什么?

解决方法

有这样的工具:

,

您可以启动应包含在集群中的所有 tarantool 实例,通过 tarantoolctl 连接到其中一个实例并执行确定集群拓扑的脚本,通过 vshard 初始化分片,并配置故障转移模式(在示例中,通过等)。

cartridge = require('cartridge')
replicasets = { {
                    alias = 'router1',roles = { 'router','vshard-router','failover-coordinator' },join_servers = { { uri = '172.20.0.2:3301' } }
                },{
                    alias = 'router2',join_servers = { { uri = '172.20.0.3:3301' } }
                },{
                    alias = 'router3',join_servers = { { uri = '172.20.0.4:3301' } }
                },{
                    alias = 'storage1',roles = { 'storage','vshard-storage' },join_servers = { { uri = '172.20.0.2:3302' },{ uri = '172.20.0.3:3302' },{ uri = '172.20.0.4:3302' } }
                },{
                    alias = 'storage2',join_servers = { { uri = '172.20.0.3:3303' },{ uri = '172.20.0.2:3303' },{ uri = '172.20.0.4:3303' } }
                },{
                    alias = 'storage3',join_servers = { { uri = '172.20.0.4:3304' },{ uri = '172.20.0.2:3304' },{ uri = '172.20.0.3:3304' } }
                } }

cartridge.admin_edit_topology({ replicasets = replicasets })
cartridge.admin_bootstrap_vshard()
cartridge.failover_set_params({
    mode = 'stateful',state_provider = 'etcd2',etcd2_params = {
        prefix = '/',lock_delay = 10,endpoints = { '172.20.0.2:2379','172.20.0.3:2379','172.20.0.4:2379' }
    }
})