第一张图按照hostname发现主机,有两个报错,第二张图按照ip发现主机都没问题,麻烦老师帮忙解答一下,谢谢。
geq sdbservre2 和 sdbserver3 报 Host unreachalbe 错误是因为 sdbserver1 无法识别 sdbserver2 和 sdbserver3,原因应该是 sdbserver1 的 /etc/hosts 文件配置的不对,运行下cat /etc/hosts命令,把这三台虚拟机的 /etc/hosts文件截图贴出来看看。
扫描主机支持4种输入方式: 普通格式:sdbserver1 区间格式:sdbserver[1-3] 或者 192.168.1.[101-103] 逗号分隔:sdbserver1, sdbserver2, sdbserver3 换行分隔: sdbserver1 sdbserver2 sdbserver3
官网说明支持4种,有可能是虚拟机网络不是很稳定;
liweiqun 感谢回复! 我是用的应该是您介绍的第二种区间格式,使用hostname出现问题,使用区间IP没有问题。 虚拟机网络都装在本机,长ping也没丢包。 我打算尝试您介绍的第三和第四种方式以hostname再添加试试。
可以检查一下 /etc/hosts 文件中集群各个主机名和 ip 的映射是否正确
AarLeer 感谢回复! 三台虚拟机来自同一个镜像,该镜像已将三个主集名和IP做过映射,配置在/etc/hosts文件,检查了一下内容和格式似乎也没问题。 请问一下使用hostname或IP添加机器这两种方式都需要查hosts文件吗,是的话第二张图倒也可以看出来hosts内容似乎没问题。
geq 能通是 ping 的主机名还是 ip?
AarLeer ping的是ip。 另外今天又遇到了一个问题,三个节点IP是192.168.3.201-203,他们属于一个集群,部署的时候使用的两个分区组各三副本在3个节点。在sdbadmin下sdb进入巨杉shell,在201和202两个节点都可以进行db.foo.bar.insert()操作且插入内容不同A和B,插入后均可在这个节点查询到刚才插入的A和B全部内容。想问一下写操作不是只有在leader节点才能进行吗,为啥能在两个节点都成功进行插入操作。
geq 201与202上的db.foo.bar.insert()操作的这个 db 是怎么创建的?db它是连接的coord节点吧,coord节点会把插入请求发送给数据组的主(leader)节点的,所以写操作其实还是leader节点进行的。