美文网首页
[Sheepdog] 集群管理: 良好实践

[Sheepdog] 集群管理: 良好实践

作者: AustinPup | 来源:发表于2018-12-10 16:08 被阅读0次

    环境配置


    Sheepdog 会打开很多文件描述符,部署规模越大就会需要越多的FDs,所以确认你的机器有足够高的文件打开数限制:
    ulimit -n
    缺省的1024是不合适的,建议用65536(有的机器可能达不到,尽可能最大吧);

    为了能调试崩溃的sheepdog实例,开启系统的dump corefiles (就是把当时当掉的内存内容dump到一个core文件里,方便后续跟踪)。缺省的core文件路径在/path/to/store/core,

    gdb /path/to/sheep /path/to/core_file
    (gdb console) bt full 
    

    总评

    sheepdog 使用一个"zone"概念来进行数据复制。默认配置中,每一个节点都可以看做一个zone,sheepdog复制vdi到zone 的数量是由复件的数量配置决定的,假设配置值是X;
    为了保证集群正常工作,不要一次杀掉X-1个zones, 恢复期未完成时也不能这么做。如果你一次杀掉X个节点,你可能遗漏掉一部分数据.
    如果你杀死整个区域,或者一次只杀死X个不同区域的几个sheep,那并不重要,它们总是会有一些对象,这些对象只被这些特定失效sheep持有而其他sheep上没有备份,此时便会存在某些数据丢失,只有不可访问对象的数量会有所不同。(云里雾里)
    0.4版本下会丢失数据,而在0.5版本下不会,但是只要zones没有被重启,你不能访问这些只存在失效zones的对象,VM会得到IO错误;
    确保你的UPS自动关闭脚本不要瞎玩。
    PS: 这段翻译有点云里雾里,大约意思如果数据复制数配置是X个的话,不要一次杀掉X-1(更多)个节点,不然会存在丢失数据;

    升级节点(某个节点过期了需要升级时的建议操作)

    如果你需要持久运行集群或者计划某些时候彻底关闭集群,下面的场景建议对你有帮助:

    无停机时间

    • 停掉该节点,升级重启
    • 必须等到recovery完成后,进行下一个节点
    • 全部节点完成后,运行'collie cluster cleanup', 用于清空recovery后一些不必要的数据;

    停机时间

    如果你有一个维护窗口期来全部停掉集群:

    • use'collie cluster shutdown' 来停止节点
    • 升级所有节点
    • 重启

    相关文章

      网友评论

          本文标题:[Sheepdog] 集群管理: 良好实践

          本文链接:https://www.haomeiwen.com/subject/nparhqtx.html