分布式系统:系统协调种类
为了使分布式资源和服务进行有意义的交互,需要指定它们之间的同步基础,按物理时间或逻辑顺序。同步适用于网络和进程级别。在高级别上,同步类型包括:
1.同步:分布式系统的所有组件在时间上协调(作为锁定步骤或轮次)以相互同步。因果关系是明确获得的。示例包括典型的安全关键系统,例如需要可预测性和保证实时响应能力的飞机电传操纵。
2.异步:单独的实体以任意顺序执行步骤并以不同的速度运行。需要通过集体互动来确保事件的顺序。典型的例子是事务系统、数据库、网络爬虫等。
3.部分同步:某些限制适用于操作的顺序,但不存在锁步同步。典型的例子是SCADA控制系统或高价值交易股票系统,其中及时性对服务的正确性有影响。
4.2 可靠和安全的群组通信
组通信涉及可用于确保跨分布式实体可靠传递消息的通信架构。这些可以是简单的点对点直接消息传递,由适当的确认(ACKS和NACKS)支持,以实现可靠的交付。或者,可靠和安全的组播(原子、尽力而为、常规、统一、记录、顽固、概率、因果等)为了提供冗余通道或消息排序,可以与更复杂的发布-订阅形式的组通信一起使用。在这些方法中,可以对通道和消息进行加密或加密签名,尽管这需要更高的传输和处理开销。凭据管理,对称/非对称加密技术,PKI密码系统,安全密钥分发[44]的范围也属于这一类。参考阅读器以全面涵盖群通信原语。
4.3 协调属性
分布式系统的效用来自分散资源的协调编排,以产生集体有意义的功能。在讨论第4.4节中各种常用的协调模式之前,我们首先介绍共识、组成员和一致性的基本定义。
共识
非正式地说,共识涉及就价值观达成一致。例如,这些值可以是数据或进程ID。共识需要以下属性才能成立:
1.协议:所有好的流程都同意相同的价值。
2.有效性:约定的值是良好/有效的值。
3.终止:最终做出决定。
共识的具体类型取决于要解决的错误(崩溃、遗漏、拜占庭等)的语义。故障类型在第5节中讨论。
组成员身份和一致性:
成员资格是分布式系统中的关键“服务”属性,它决定了组成资源的集合,以及就有效参与者集(静态、动态、仲裁成员资格)和数据达成的协议的性质。从安全角度来看,这通常与服务的完整性属性有关。一致性有不同的细微差别,下面列出了突出的类型。请注意,基本假设始终是组成过程可以建模为确定性状态机。也就是说,执行特定的操作序列始终会导致相同的状态。
•强一致性模型:在这些模型中,参与者必须就要采取的一致行动顺序达成一致。因此,在决定论的假设下,这些过程可以保证达到一致的状态。
•严格一致性:在严格一致性中,只要在所有参与者中保持一致,就对观察到的操作顺序没有限制。
•线性化性:线性化模型本质上与观察到的动作顺序与其实时顺序相对应的额外约束严格一致。
强一致性模型广泛用于高风险上下文,其中数据中的任何不一致都可能导致可怕的后果。在这些情况下,一致性比可用性更重要,并且由于频繁同步,强制实施强一致性约束会导致系统中出现更多延迟。传统的关系数据库系统,如MySQL或微软的SQLServer,以及MongoDB或Google的Chubbylock服务等NoSQL数据库,都是实现这些强大功能的流行例子。
•弱一致性模型:在这些模型中,参与者不一定遵守相同的操作顺序。这可能会导致状态不一致,具体取决于观察到的订单必须满足的其他约束的性质。当然,这可能导致不一致的状态,可以通过冲突解决机制来处理。
1.顺序一致性:如果某个进程执行操作的顺序与其原始顺序相对应,则满足顺序一致性。在顺序词中,保留每个进程的顺序执行顺序。
2.因果一致性:因果一致性是通过将行为分为因果相关/依赖和不相关行为来实现的。在这种情况下,只需要保留因果相关行为的顺序。如果两个事件都访问同一个数据对象,并且其中至少有一个是写入事件,则它们具有因果关系。
3.最终一致性:在最终一致性中,没有必须通过观察者操作顺序满足的特殊约束。这一概念背后的想法是,参与者最终将通过遵守等效的行动顺序或诉诸昂贵的冲突解决机制来趋同到一致的状态。
随着互联网的出现,具有较弱一致性模型的系统变得流行,其中大规模的Web服务器必须容纳大量用户。为了实现这一目标,此类系统牺牲了强大的一致性保证,以实现其用户群的更高可用性。像亚马逊的Dynamo,Facebook的Cassandra这样的系统是众所周知的一致性保证薄弱的系统的例子。
思维导图下载:GB-T 39276-2020 网络产品和服务安全通用要求
原文始发于微信公众号(河南等级保护测评):分布式系统安全之分布式系统协调种类
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论