zoukankan      html  css  js  c++  java
  • Solaris SVM的majority consensus算法

    SVM的state database中包含了卷的配置和状态等重要信息,一旦state database全部损坏,理论上将丢失卷上的所有数据。为了保证state database的安全,SVM使用了冗余机制。即维护多个state database replica.

    在有多个state database replica的情况下,如果部分replica损坏,SVM难以判断究竟哪些是好的,哪些是坏的。为了解决这个问题,SVM采用了majority consensus算法。即:当多于半数的replica可用且一致,则认为这些replica是有效的。

    The majority consensus algorithm provides the following:

    • The system continues to run if at least half of the state database replicas are available.
    • The system panics if fewer than half of the state database replicas are available.
    • The system cannot reboot into multiuser mode unless a majority (half + 1) of the total number of state database replicas is available. If insufficient state database replicas are available, you must boot into single-user mode and delete enough of the corrupted or missing replicas to achieve a quorum.

    从上述机制可以看出,如果半数或以上replica不可用,将导致Solaris无法启动到多用户模式下。此时解决办法是启动到单用户下,然后删除损坏的replica.

    另一种解决方法是事先在/etc/system中设置set md:mirrored_root_flag = 1,此参数将让SVM在启动时忽略Quorum规则。但文档明确说明,Solaris不建议修改此参数,因为忽略Quorum规则的话,无法保证replica是有效的,因而无法确保卷的配置信息和状态信息准确,这意味着卷中的数据有损坏或丢失的风险。

  • 相关阅读:
    libuv 中文编程指南(一)序言
    一些鲜为人知却非常实用的数据结构
    libuv 中文编程指南(二)libuv 基础
    Zookeeper 的 Lua 绑定(二)
    高度怀疑
    不能没有你
    第一次看流星雨记
    调侃下蓝网队 我还是比较极端的 不要好 那就要坏吧
    摇滚校园
    守法公民
  • 原文地址:https://www.cnblogs.com/cqubityj/p/2259949.html
Copyright © 2011-2022 走看看