consistency group,直译是一致性组,是Juno版本cinder新引进的一个概念。顾名思义,里面包含了两个意思,consistency(一致性)和group(组),如何体现的呢?处于数据保护或者是容灾的考虑,把一批存在公共操作的卷,在逻辑上划成一个组,用户可以非常方便的通过操作该组,不需要一个一个得去操作卷。所以针对的操作应该是做快照和做备份。
当前只有E公司的后端支持该特性,该blueprint估计也是E公司提出的。但个人认为在实际应用中还是十分有用的,属于通用的、公共的接口,能提升存储资源使用的效率
根据当前J版本代码的实现,修改点有:
增加了两张表:cgsnapshots,consistencygroups
增加了consistencygroup_id属性,主要在volume表和snapshot表;
增加了consistencygroups的配额;
提供了consistencygroup的创建、删除、查看的API;
提供了consistencygroup_snapshot的创建、删除、查看的API;
作者尚未实现对组备份的功能。在该blueprint的讨论中,作者也提到了后续要做的工作:
在heat层面上也应该理解卷的一致性组概念,应实现相应的接口;
在对一致性组做快照前,利用QEMU guest agent暂停GuestOS对文件系统的访问,等结束后再恢复;
支持一致性组的备份,包括在后端存储driver执行下实现对已经挂载卷的备份;
备份功能可以结合当前快照的实现来做,而heat上的尚处于八字没一撇的情况,而暂停GuestOS文件系统,则在进行中,见bp: https://wiki.openstack.org/wiki/Cinder/QuiescedSnapshotWithQemuGuestAgent