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

2018-12-10  本文已影响0人  AustinPup

环境配置


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(更多)个节点,不然会存在丢失数据;

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

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

无停机时间

停机时间

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

上一篇 下一篇

猜你喜欢

热点阅读