环境配置
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' 来停止节点
- 升级所有节点
- 重启
网友评论