memsql-deploy叶节点始终失败

时间:2017-03-24 16:46:33

标签: memsql

在与memsql-deploy叶节点的主节点相同的主机上,始终以相同的错误失败。将操作切换到新机器也有同样的失败。

以下是部署主角色的步骤:

# memsql-ops memsql-deploy -a Af53bfb  -r master -P 3306 --community-edition
2017-03-24 16:15:54: Je5725b [INFO] Deploying MemSQL to 172.17.0.3:3306
2017-03-24 16:15:59: Je5725b [INFO] Installing MemSQL
2017-03-24 16:16:02: Je5725b [INFO] Finishing MemSQL Install
Waiting for MemSQL to start...
MemSQL successfully started

以下是部署master后添加叶节点的直接步骤:

# memsql-ops memsql-deploy -a Af53bfb  -r leaf -P 3308       
2017-03-24 16:16:43: J32c71f [INFO] Deploying MemSQL to 172.17.0.3:3308
2017-03-24 16:16:43: J32c71f [INFO] Installing MemSQL
2017-03-24 16:16:46: J32c71f [INFO] Finishing MemSQL Install
Waiting for MemSQL to start...
MemSQL failed to start: Failed to start MemSQL:

        set_mempolicy: Operation not permitted
setting membind: Operation not permitted

错误消息背后可能的原因是什么,以及我可以通过哪些方式找出根本原因或修复?

2 个答案:

答案 0 :(得分:0)

你能试试主人吗?

memsql-ops start
memsql-ops memsql-deploy --role master -P 3306 --community-edition

代理人:

memsql-ops start
memsql-ops follow -h <host of primary agent> -P <port of primary agent if configured to use one>
memsql-ops memsql-deploy --role leaf -P 3308 --community-edition  

答案 1 :(得分:0)

在Google上搜索了一天后,我相信我终于找到了此错误的根本原因。我觉得奇怪为什么之前没有人问过,因为它应该比我更频繁地发生。

此问题的真正原因是我在非NUMA计算机上根据MemSQL的最佳实践建议安装了numactl个包。这将有效地让除第一个之外的memsql节点尝试运行numactl子命令set_mempolicy 将各个MemSQL节点绑定到CPU 但是这个命令最终会失败。来自memsql-start的子命令memsql-deploymemsql-ops的节点开始都会失败。

解决方法非常简单,只需删除numactl即可。那一切都会好的。此解决方法特别适用于某些基于虚拟化的memsql部署,如 Docker