开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

Ceph 共享存储部署实例全部三个节点都启动了,节点02 03 不在

已解决

按照文档步骤执行后,发现mon02,mon03启动失败,查看日志为:Existing mon, trying to rejoin cluster... 后面修改容器的脚本

注释此行,直接将v2v1复制为2,代表是走V2协议, 以指定IP方式加入集群

#v2v1=$(ceph-conf -c /etc/ceph/${CLUSTER}.conf 'mon host' | tr ',' '\n' | grep -c ${MON_IP}) v2v1=2 重启后可以启动,但是在1号机执行:docker exec mon01 ceph -s时只有001,image.png 该怎么操作呢?

展开
收起
游客tmqeg2kxoxouo 2023-02-01 16:09:05 333 0
4 条回答
写回答
取消 提交回答
  • 采纳回答

    可能是由于mon02,mon03的IP地址没有添加到monmap中 可以按照我的步骤尝试解决一下:

    1. 在mon01上执行ceph mon getmap -o monmap.bin,将monmap保存到本地;

    2. 使用ceph-monmap-decode命令解码monmap.bin,将解码后的文件保存为monmap.json;

    3. 修改monmap.json文件,添加mon02,mon03的IP地址;

    4. 使用ceph-monmap-encode命令将monmap.json文件编码,生成新的monmap.bin文件;

    5. 将新的monmap.bin文件传输到mon01,mon02,mon03节点,并重命名为monmap;

    6. 在mon01,mon02,mon03节点上执行ceph-mon -i <mon_id> --mkfs --monmap monmap,将monmap文件加载到集群中;

    7. 重启mon02,mon03节点,完成Ceph共享存储部署实例的节点恢复。

    2023-02-01 17:04:06
    赞同 1 展开评论 打赏
  • 解决的办法是删除/usr/local/ceph/lib/mon目录,再重新启动,先将脚本拷贝出来:

    docker cp mon:/opt/ceph-container/bin/start_mon.sh .
    

    找到并修改以下内容:

    注释此行,直接将v2v1复制为2,代表是走V2协议, 以指定IP方式加入集群

    #v2v1=$(ceph-conf -c /etc/ceph/${CLUSTER}.conf 'mon host' | tr ',' '\n' | grep -c ${MON_IP})
    
    v2v1=2
    

    再将脚本复制至容器内:

    docker cp start_mon.sh mon:/opt/ceph-container/bin/start_mon.sh
    
    2023-02-01 22:08:59
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    重新运行这个两个节点试试

    2023-02-01 22:18:51
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    重启mon02,mon03节点试一试。

    2023-02-01 17:11:48
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载