复制的数据库的固有问题是可能很难确定哪个数据库包含有效并且正确的数据。为了解决此问题,Solaris Volume Manager 使用多数一致算法。此算法要求大多数数据库副本彼此一致,然后才能声明其中任一副本有效。此算法还要求至少存在三个已创建的初始副本。只要三个副本中至少有两个可用,就可以取得一致。如果仅存在一个副本并且系统已崩溃,则可能会丢失所有的卷配置数据。
为了保护数据,只有当所有状态数据库副本中有一半可用时,Solaris Volume Manager 才会运行。因此,该算法可确保不会损坏数据。
多数一致算法可提供以下功能:
如果至少有一半状态数据库副本可用,则系统将继续运行。
如果少于一半的状态数据库副本可用,则系统将崩溃。
仅当全部状态数据库副本中的多数(半数 + 1)可用时,系统才能重新引导至多用户模式。
如果可用的状态数据库副本数量不足,则必须将系统引导至单用户模式,并且删除足够的已损坏副本或缺失副本以达到定额。请参见如何从状态数据库副本不足中恢复。
如果状态数据库副本总数为奇数,则 Solaris Volume Manager 会将该数字除以 2,然后将结果向下舍入到最接近的整数,再加上 1(一)以计算表示多数的数字。例如,在包含 7 个副本的系统上,表示多数的数字是 4(7 除以 2 为 3.5,向下舍入后为 3,再加1 为 4)。