【简记】Operating System—— distributed system

来源:互联网 发布:加拿大预科知乎 编辑:程序博客网 时间:2024/04/30 10:07

ch16 分布式系统结构

分布式系统是一组不共事内存和时钟的处理器的集合,即每个处理器都有它自己的内存, 处理器之间的通信可通过各种通信网络加以实现。

使用分布式系统结构的四个动机:

  • 资源共享(主要是数据库or硬件设备)
  • 加快计算速度(可以并发计算)
  • 可靠性(一个站点出错,其他站点继续)
  • 通信

分布式操作系统的类型

1 网络操作系统

网络操作系统为那些了解机器多样性的用户提供一个环境,通过登录适当的远程机器或从远程机器传送数据到其自己机器的方式,来访问远程资源。

2 分布式操作系统

对于分布式操作系统,用户可以像访问本地资源一样来访问远程资源,从一个站点到另一站点的数据和程序迁移由分布式操作系统所控制。

  • 数据迁移
  • 计算迁移
  • 进程迁移:进程迁移是计算迁移的一个逻辑扩展。当一个进程被提交执行时,并不总是在它开始提交的站点上执行,进程的全部或部分可能在不同的站点上执行。

负载平衡: 进程( 或子进程〉可能被分散在网络上,从而平均工作负荷。
计算加速: 如果单个进程可以被分成能在不同站点上并发运行的多个子进程, 那么总的进程周转时间也许会缩短。
硬件偏好: 进程可能具有某些特征使得它更适合在某些特定的处理器上执行
软件偏好: 进程可能需要只在特定站点上才可用的软件,而该软件不能迁移,或它的迁移要比进程迁移昂贵。
数据存取 : 就像在计算迁移那样,如果计算所使用的数据非常多, 远程执行进程可能比传递所有的数据到本地更为有效.


ch17 分布式文件系统

DFS 是这样一个文件系统,它的客户机、服务器和存储设备都分散在分布式系统中的机器上. 因此,服务活动必须在网络上进行,系统有多个独立的存储设备, 而不是单一的集中式数据存储。


远程文件访问

可以用高速缓存方式来保证远程服务机制所期待的性能。在传统的文件系统中,缓存的基本原理在于减少磁盘的I/O (从而提高性能),而在DFS 中,目的在于既要减少网络通信量,也要减少磁盘I/O。

===
基本的缓存设计

如果满足访问请求所需的数据尚未缓存,这些数据的一个副本从服务器传到客户机系统,访问在缓存的副本上完成。此思想是在缓存中保留最近访问的磁盘块,从而使对同样信息的重复访问可以本地化处理,不再需要额外的网络通信。可以采用某种替换策略(如最少、最近使用)来解决缓存大小限制。

当一个存储的副本被更改后, 需要反映到到主副本上, 以保持相关的语义一致性。如何保持缓存副本与主副本之间的一致性是17.3.4小节所要讨论的缓存一致性问题。

===
缓存位置

主存储缓存具有自身的几个优点:

  • 主存储缓存允许工作站无盘化。
  • 从主存储缓存中可以比从磁盘缓存上更快地访问数据。
  • 目前的技术趋势是朝着更大、更便宜的主存储器发展,在得的性能加速将会超过磁盘缓存的优点。
  • 不管用户缓存位于何处,服务器缓存(用于加快磁盘I/O ) 将在主存储器中。如果在用户机器上也用主存储缓存,可以为服务器和用户建立一个单缓存机制。

===
缓存更新策略

用于将更改的数据块写回服务器的主副本的策略,对系统的性能和可靠性具有关键性的影响。

直写策略:一且有数据被放置在缓存中,就将它们写到磁盘上。当一个客户机系统崩溃后,几乎没有数据丢失。然而,此方法需要每次写访问等待, 直到信息被送到服务器,所以它导致较差的写性能。直写的缓存等同于使用远程服务来写访问,以及利用缓存进行只读访问。

延迟写策略:也被称为回写缓存,它对主副本的更新是延迟的。更新被写到缓存, 稍后才被写到服务器。相对于直写方法,此方法有两个优点。第一,由于是写到缓存,所以写访问完成得更快。第二,数据可在被写回之前被重写,此时只有最后的更新需要写。不足的是, 只要用户机崩溃,未写的数据就会丢失,所以延迟写方法存在可靠性问题。

===
一致性

如果客户机确定它的缓存数据己过时,那么这些缓存数据就不能再提供数据访问服务,而需要缓存该数据的一个最新副本。

两种方法用来验证缓存数据的有效性:

  • 客户机发起的方法:客户机发起一次有效性检查,它与服务器联系,并检查本地数据与主副本是否一致。有效性检查的频率是此方法的关键,并决定其产生的一致性语义。频率范围可以从每次访问前都进行一次检查到只对一个文件的第一次访问进行一次检查( 主要是在文件打开的时候)。相对于访问立即被缓存服务而言,伴随有效性检查的访问就被延迟了。作为选择,可在某个固定的时间间隔开始一次检查。有效性检查会增加网络和服务器的负载,这取决于它的频率。
  • 服务器发起的方法:服务器为每个客户机记录它缓存的文件(或文件的一部分) 。当服务器检测到一个潜在的不一致时,它必须有所反应。当两个不同的处于竞争状态的客户机缓存一个文件时,就会发生潜在的不一致性。如果实现UNIX语义,可以通过让服务器扮演一个积极的角色来解决这个潜在的不一致性。无论文件何时被打开,服务器都必须被告知,包括每一次打开后将要采取的模式( 读或写)。根据通知, 当服务器检测到一个文件在冲突状态下被同时打开,那么服务器使此文件的缓存失效。实际上,使缓存失效将导致转换到一个远程服务操作模式。

===
高速缓存和远程服务的比较

本质上,在缓存和远程服务之间的选择存在一个潜在的性能加强与简易性降低的矛盾,以下列举这两种方法的优缺点来做一比较:

  • 当使用缓存时,本地缓存能有效地处理许多远程访问。在文件访问模式中利用局部性原理使得缓存性能更好。因此,大多数远程访问就像在本地进行一样快捷。更进一步,只是偶尔与服务器连接,而不是每次访问都需如此,从而减少了服务器负载和网络通信,并且扩充的潜力也得到了提高。相反地,当使用远程服务方法时,每次远程访问都要跨越网络进行,结果可能产生网络阻塞、服务器超载,性能会如何也就显而易见了。
  • 网络总开销在传输大块数据时(就像在缓存中那样)要比对个别请求的一系列响应传输时( 就像在远程服务方法那样)低。而且,如果服务器知道请求总是针对大的、连续的数据段,而不是对随机的数据块,那么服务器上的磁盘访问程序可以被更好地优化。
  • Cache 一致性问题是缓存技术的主要缺点。对不常写入的访问模式,缓存技术是很有效的。但当写入频繁时,用来克服一致性问题的机制反而导致了大量诸如性能、网络流量以及服务器负荷的开销。
  • 因此缓存技术应在有本地磁盘或大主存的机器上实现。在无盘、小容量存储器的机器上的远程访问应通过远程服务方法来进行。
  • 在缓存技术中,由于数据在服务器和客户机之间整体传输,而不是响应一个特殊的文件操作需求,机器间的接口不同于上级的用户接口。另一方面,远程服务方式不过是本地文件系统接口在网络上的扩展,因此,机器间的接口反映了本地用户文件系统接口。

===
有状态服务和无状态服务

当客户机访问远程文件时,对服务器端的信息处理有两种方法: 一是服务器跟踪被每个客户机访问的每个文件, 二是服务器不必了解数据块的用途而直接提供客户机请求的数据块。前者提供的服务是有状态的,而后者是无状态的。

NFS 是一个无状态文件服务。

===
文件复制

在不同机器上的复制文件对提高有效性而言是有用的冗余。多机器复制也有益于提高性能,选择邻近的一个复制品来服务一个访问请求将使服务时问更短。

复制设计的基本条件是同一文件的不同副本应驻留在彼此故障独立的机器上,即一个副本的有效性不受其余副本有效性的影响。

与复制相关的主要问题是它们的更新。从用户的角度来看, 一个文件的副本表示的是同样的逻辑实体, 因此对任何副本的更新应影响到所有其他的副本。更明确地讲,当对文件剧本的访问被视为对副本的逻辑文件的虚拟访问时,必须保持相关的一致性语义。如果一致性并不是最主要的,它就可以为有效性和其他性能方面做出牺牲。

在容错范围内的权衡下,有两种选择,要么选择不情任何代价保持一致性,从而产生不确定的数据块的可能性,要么选择在某些( 希望是很少)灾难性错误的情况下,为了保证系统的继续运行而牺牲一致性。


AFS简介

被称为Venus 的进程缓存来自于Vice 的文件

有一种被称为回调(callback) 的支持此方法的机制可以显著地减少服务器接收的缓存确认请求数量。它按如下方式工作:
当一个客户机存储一个文件或目录时,服务器更新用于记录此存储的状态信息,称该客户机对该文件有一次回调。
服务器在允许另一客户机修改此文件之前通知该客户机。此时,我们说服务器移除前一个客户机的文件上的回调。
只有当文件具有一次回调时,客户机才可以使用缓存的文件来打开文件。如果客户机在修改一个文件之后关闭它,所有存储此文件的其他客户机丧失它们的回调。因此,当这些客户机随后打开该文件时,它们不得不从服务器那里获取一个新的版本。

文件的读和写直接通过内核完成,而不需要Venus 对存储的副本进行干预。当文件被关闭时, Venus 重获控制,井且如果文件己被局部修改,那它在相应的服务器上更新此文件。因此,只有在服务器打开那些不在缓存区或丧失它们的回调,以及关闭局部修改的文件时, Venus 和Vice 才有接触的机会。

阅读全文
0 0
原创粉丝点击