第A11章分布式共享存储器
分布式存储技术原理
分布式存储技术原理
分布式存储技术是一种将数据在多台独立的存储设备上分散存储的技术。
它主要通过将数据分割成较小的块,并将它们存储在不同的物理设备或节点上,以提高存储系统的性能、可靠性和可扩展性。
分布式存储技术的原理基于以下几个关键概念:
1. 数据分区:将数据切分成较小的块,并为每个块分配一个唯一的标识符。
这样做的目的是将数据分散到不同的存储节点上,以便提高并行处理的能力和系统的容错性。
2. 数据复制:为了增加数据的可靠性和可用性,分布式存储系统通常会对数据块进行多次复制,并将它们存储在不同的节点上。
这样,即使某个节点发生故障或网络中断,系统仍然可以从其他可用的副本中获取数据。
3. 数据一致性:在分布式存储系统中,由于数据块可能存在多个副本,节点之间必须保持数据的一致性。
这通常通过使用一致性协议(如Paxos或Raft)来实现,以确保所有节点上的数
据副本都是最新的。
4. 数据访问:分布式存储系统通常提供不同的访问接口,如块存储、文件系统或对象存储。
这些接口允许应用程序以各种方式访问和管理存储的数据。
5. 节点管理:分布式存储系统需要一种机制来管理存储节点的
加入和离开。
这包括节点的自动发现、负载均衡、数据迁移和故障恢复等功能。
总的来说,分布式存储技术通过将数据切分、复制和分散存储在多个节点上,以提高系统的性能、可用性和可扩展性。
通过使用一致性协议和节点管理机制,它还可以确保数据的一致性和容错性。
这些原理为现代大规模数据存储和处理系统提供了基础。
云计算——分布式存储 ppt课件
5.1.3 分布式存储的发展历史
4.21世纪的代表:Cassandra、HBase、MongoDB、DynamoDB (3) MongoDB:文档型数据库同键值(Key-Value)型的数据 库类似,是键值型数据库的升级版,允许嵌套键值,Value值是 结构化数据,数据库可以理解Value的内容,提供复杂的查询, 类似于RDBMS的查询条件。 (4) DynamoDB:Amazon公司的一个分布式存储引擎,是一 个经典的分布式Key-Value存储系统,具备去中心化、高可用性、 高扩展性的特点。
• 大型数据中心在数据存储和数据访问方面有着与先前的应用非常不同 的需求特征,主要包括:数据量庞大、访问的并发度高、文件数量巨 大、数据访问语义和访问接口不同于传统的文件系统、数据共享与数 据安全的保障越来越重要等。
28
云计算——分布 式存储
阶段
产生的技术 背景
负载特征
单机文件系统
分时操作系统 多用户共享 磁盘
• 为解决UNIX文件系统I/O性能低的问题,先后出现了1984年的快速文 件系统(Fast ,FFS)和1992年的日志结构文件系统(Log-Structured File,LFS)。
• 20世纪90年代至今,出现了很多单机文件系统。包括SGI公司于1994 年发布的XFS,以及Sun公司于2004年发布的ZFS。
24
云计算——分布式存储
• NFS(Network ,网络文件系统)由Sun公司在1984年开发,被认为是 第一个广泛应用的现代网络文件系统。NFS的设计目标是提供跨平台 的文件共享系统。由于NFS的实现和设计思想都相对简单,该协议很 快被纳入到RFC标准,并开始大量应用。然而,NFS单一服务器的结 构也决定了它的扩展性有限。
分布式存储解决方案
分布式存储解决方案目录一、内容概览 (2)1. 背景介绍 (3)2. 目标与意义 (3)二、分布式存储技术概述 (5)1. 分布式存储定义 (6)2. 分布式存储技术分类 (7)3. 分布式存储原理及特点 (8)三、分布式存储解决方案架构 (9)1. 整体架构设计 (10)1.1 硬件层 (12)1.2 软件层 (13)1.3 网络层 (14)2. 关键组件介绍 (15)2.1 数据节点 (16)2.2 控制节点 (18)2.3 存储节点 (19)2.4 其他辅助组件 (20)四、分布式存储解决方案核心技术 (22)1. 数据分片技术 (23)1.1 数据分片原理 (25)1.2 数据分片策略 (26)1.3 数据分片实例分析 (28)2. 数据复制与容错技术 (29)2.1 数据复制原理及策略 (31)2.2 容错机制与实现方法 (32)2.3 错误恢复过程 (34)3. 数据一致性技术 (35)3.1 数据一致性概念及重要性 (36)3.2 数据一致性协议与算法 (37)3.3 数据一致性维护与保障措施 (38)4. 负载均衡与性能优化技术 (39)4.1 负载均衡原理及策略 (41)4.2 性能优化方法与手段 (43)4.3 实例分析与展示 (43)五、分布式存储解决方案应用场景及案例分析 (44)1. 场景应用分类 (46)2. 具体案例分析报告展示 (47)一、内容概览分布式存储解决方案是一种旨在解决大规模数据存储和管理挑战的技术架构,它通过将数据分散存储在多个独立的节点上,提高数据的可用性、扩展性和容错能力。
本文档将全面介绍分布式存储系统的核心原理、架构设计、应用场景以及优势与挑战。
我们将从分布式存储的基本概念出发,阐述其相较于集中式存储的优势,如数据分布的均匀性、高可用性和可扩展性。
深入探讨分布式存储系统的关键组件,包括元数据管理、数据分布策略、负载均衡和容错机制等,并分析这些组件如何协同工作以保障数据的可靠存储和高效访问。
如何在分布式存储系统中实现跨平台数据共享(六)
如何在分布式存储系统中实现跨平台数据共享随着信息时代的迅猛发展,数据已经成为现代社会的重要资产。
而在今天的分布式存储系统中,如何实现跨平台数据共享成为了一个重要的课题。
在本文中,将探讨一些方法和策略,帮助实现这一目标。
1、了解分布式存储系统的特点分布式存储系统由多个节点组成,数据被分散存储在各个节点上。
这些节点可以是不同的硬件平台和操作系统。
要实现跨平台的数据共享,首先需要了解分布式存储系统的特点,包括节点之间的通信机制、数据的传输方式和存储格式等。
2、选择合适的数据共享协议为了实现跨平台的数据共享,需要选择一种合适的协议来进行数据传输和通信。
常见的数据共享协议包括HTTP、FTP、NFS等。
根据实际需求和平台特点,选择对应的协议。
3、设计统一的数据存储格式为了实现跨平台的数据共享,需要设计一种统一的数据存储格式。
这样,在不同的平台上读取和解析数据将变得更加方便。
可以使用XML、JSON等格式来存储数据,或者定义一种自定义的数据格式。
4、实现数据的转换和适配由于不同平台的数据格式可能存在差异,需要对数据进行转换和适配。
可以设计一个数据转换模块,负责将不同格式的数据转换为统一格式,并进行适当的兼容性处理。
这样,可以确保数据在不同平台上的正确读取和解析。
5、建立可靠的通信机制在分布式存储系统中,节点之间的通信是实现数据共享的关键。
建立一个可靠的通信机制,确保数据能够安全地传输和接收。
可以采用消息队列、RPC等技术来实现节点间的通信。
6、实现数据权限控制在分布式存储系统中,数据的安全性和权限控制非常重要。
需要设计一套完善的权限控制机制,确保只有被授权的用户可以访问和修改数据。
可以使用加密算法、访问控制列表等技术来实现数据的权限控制。
7、定期备份和恢复数据为了保证数据的安全性和可靠性,需要定期对数据进行备份并进行恢复。
可以使用分布式备份系统来实现数据的定期备份和恢复,避免数据丢失和损坏。
总结起来,实现跨平台的数据共享是一个复杂而重要的任务。
分布式共享存储器.
第六章分布式共享存储器在第一章中,我们看到存在着多处理机和多计算机这样两种多处理机系统。
在多处理机系统中,两个或更多的CPU共享一个存储器。
任何处理机上的任何进程只需将数据移入移出就可读写共享存储器中的数据。
而在多计算机系统中,每个CPU有各自的存储器,并不共享。
以农业为例,一个多处理机可以看作这样一个系统:一群猪(进程)用一个食槽(共享存储器)进食。
而多计算机则是每只猪拥有自己的食槽。
以教育为例,多处理机就是教室前面的一块黑板,所有学生都可以看到,而多计算机则是每个学生看自己的笔记本。
尽管这种区别看起来微不足道,其影响却是深远的。
其结果涉及到软件和硬件两个方面。
首先看看对硬件的影响。
设计一种使多个处理机同时使用同一存储器的机器是非常困难的。
如1.3.1节所述, 由于总线会成为一种瓶颈, 基于总线的多处理机总数就最多只能有几个。
1.3.2节介绍的交换式多处理机可应用于大系统,但相比之下过于昂贵、缓慢、复杂以及难维护。
相反,大的多计算机系统更易于建立。
单主板计算机(包含一个CPU,一个存储器,一个网络接口)可以相互连接在一起,而不受数量的限制。
许多生产商都提供包含数以千计处理机的多计算机系统。
从硬件设计者的角度看,多计算机系统比多处理机系统更优越。
现在看看它对软件的影响。
用于多处理机编程的技术很多。
为实现通信,一个进程把数据写到存储器,其它进程将之读出。
为保持同步,可以使用临界区(critical region),信号量或管程(monitor)提供必要的互斥。
很多文章都讨论了在共享存储器的计算机上实现通信与同步的问题。
在过去的20年中,每一本操作系统的教科书都有几个章节讨论这个问题。
简而言之,大量的理论和实践知识可用于多处理机编程。
对多计算机系统,情况正好相反。
通信一般使用消息传递,这使输入/输出更为抽象。
消息传递带来了许多复杂的问题,包括:流控制,信包丢失,缓冲区设置和拥塞。
尽管已提出了不同的解决方案,但消息传递的编程仍很复杂。
分布式存储系统方案
分布式存储系统方案随着互联网和大数据时代的到来,数据量的快速增长使得传统的中心化存储系统越来越无法满足存储和访问的需求。
为了解决这一问题,分布式存储系统应运而生。
在本文中,我将介绍一种常见且有效的分布式存储方案,用于解决大规模数据的存储和访问问题。
一、概述分布式存储系统是一种将数据分散存储在多个节点上的系统,每个节点都可以独立地存储和访问数据。
与传统的中心化存储系统不同,分布式存储系统具有更好的可扩展性、容错性和性能。
二、基本原理分布式存储系统方案的基本原理是将大量的数据分片存储在多个节点上,并通过一致性哈希等算法将数据均匀地分布在不同的节点上。
这样做不仅可以实现数据的分散存储,还可以实现数据的冗余备份,提高系统的容错性。
三、系统架构分布式存储系统一般由多个节点组成,每个节点承担着数据存储和访问的功能。
其中,有两个核心组件:数据管理器和数据节点。
1. 数据管理器数据管理器负责整个系统的数据管理和调度。
它负责将数据分片并存储在不同的数据节点上,同时监控各个节点的状态和数据一致性。
它还负责数据节点的动态扩容和故障恢复。
2. 数据节点数据节点是实际存储和访问数据的组件。
每个数据节点都有自己的存储空间,并负责存储和管理被分配到它上面的数据片。
同时,数据节点还负责响应来自用户的数据访问请求。
四、存储策略在分布式存储系统中,存储策略是非常重要的。
一个好的存储策略可以提高系统的性能和可靠性。
在选择存储策略时,需要考虑数据的大小、访问模式、容灾能力等因素。
1. 数据分片数据分片是指将大文件或者大对象分成若干个较小的数据块,分别存储在不同的数据节点上。
这样可以提高存储的并发度和系统的容错性。
2. 冗余备份冗余备份是指将数据的多个副本存储在不同的数据节点上,以提高数据的可靠性。
常见的备份策略有两份、三份等,可以根据实际需要进行选择。
五、数据访问在分布式存储系统中,数据的访问方式也是需要考虑的关键因素。
一个高效的数据访问机制可以提高系统的性能和用户的体验。
使用分布式文件系统在多台服务器上共享文件(一)
使用分布式文件系统在多台服务器上共享文件随着云计算和大数据时代的到来,分布式系统成为了计算机领域的热门话题。
分布式文件系统作为分布式系统的一个重要组成部分,被广泛应用于大规模数据存储和管理场景。
本文将探讨使用分布式文件系统在多台服务器上共享文件的方法和优势。
一、分布式文件系统概述分布式文件系统是一种能够将文件数据分散存储在多个服务器上的文件系统。
与传统的集中式文件系统相比,分布式文件系统能够提供更高的可扩展性、可靠性和性能。
在分布式文件系统中,使用分布式文件系统软件将文件数据切割成多个数据块,并在多台服务器上进行分散存储。
这些服务器之间通过网络连接进行通信和数据同步,从而实现文件的共享和访问。
二、分布式文件系统的组成一个典型的分布式文件系统由以下几个组成部分组成:1. 元数据服务器(Metadata Server):负责存储和管理文件的元数据信息,包括文件名、大小、权限等。
元数据服务器通常是单点故障,需要通过冗余备份来提高可靠性。
2. 数据服务器(Data Server):负责存储实际的文件数据块。
数据服务器可以有多台,可以通过数据冗余备份和负载均衡来提高可靠性和性能。
3. 客户端(Client):用户通过客户端来访问和操作分布式文件系统中的文件。
客户端与元数据服务器进行通信,获取文件的元数据信息,并从数据服务器上读取或写入文件数据。
三、分布式文件系统的工作原理当用户需要访问或操作分布式文件系统中的文件时,客户端首先与元数据服务器进行通信,获取文件的元数据信息。
元数据服务器告诉客户端文件的存储位置和数据块的分布情况。
客户端根据元数据信息,与相应的数据服务器进行通信,读取或写入文件数据。
数据服务器之间通过同步机制保持数据的一致性和完整性。
四、分布式文件系统的优势使用分布式文件系统在多台服务器上共享文件具有以下几个优势:1. 可扩展性:通过增加数据服务器,可以轻松扩展文件系统的存储容量和性能。
不需要单台服务器承载所有文件数据,分布式文件系统可以根据需求灵活调整存储资源。
使用分布式文件系统在多台服务器上共享文件(十)
使用分布式文件系统在多台服务器上共享文件引言随着云计算和大数据的发展,越来越多的企业和组织需要在多台服务器之间共享文件。
在传统的架构中,使用网络文件系统(NFS)或服务器消息块(SMB)等常见的文件共享协议来实现文件共享。
但是,这些传统的文件共享方式存在一些问题,比如单点故障、容量受限等。
为了解决这些问题,许多组织开始采用分布式文件系统来实现多台服务器之间的文件共享。
1. 分布式文件系统的概述分布式文件系统是一种将文件存储在多台服务器上,并通过网络协议实现文件共享的系统。
它将文件切分成多个块,并分散存储在各个服务器上。
这种分布式的存储方式可以大大提高系统的可扩展性和容错性。
2. 分布式文件系统的原理在分布式文件系统中,文件通常被分割成多个块,并在多台服务器之间进行存储。
每个服务器都有自己的文件系统,可以管理它所存储的文件块。
当客户端请求访问某个文件时,分布式文件系统会根据文件的块信息,从相应的服务器上获取块数据,并将其组合成完整的文件返回给客户端。
3. 分布式文件系统的优势可扩展性: 分布式文件系统可以根据需求动态添加服务器,从而扩展存储容量。
这使得系统能够应对不断增长的数据需求。
容错性: 分布式文件系统通过将文件数据分散存储在多台服务器上,可以避免单点故障。
即使某台服务器发生故障,数据仍然可以从其他服务器上获取。
高效性: 分布式文件系统采用了数据复制和缓存技术,可以加速文件的读取和写入操作。
同时,由于文件块的分散存储,系统可以并行读取多个块,提高了整体的读取性能。
4. 分布式文件系统的应用云存储: 许多云服务提供商使用分布式文件系统来存储用户上传的文件。
这样可以保证文件的安全性和可靠性,并且能够扩展存储容量以满足用户的需求。
大数据分析: 大数据分析通常需要处理大量的文件和数据,而分布式文件系统能够提供高性能和可扩展的存储支持,适合大规模的数据处理任务。
负载均衡: 在一些高负载的应用场景中,使用分布式文件系统可以将文件块分散存储在多台服务器上,实现负载均衡,提高系统的整体性能。
共享存储的基本概念和SNIA共享存储模型
共享存储的基本概念和SNIA共享存储模型共享存储的基本概念和SNIA共享存储模型共享存储是指多个计算机系统可以同时访问和共享相同的存储设备或数据存储空间的技术。
共享存储的出现,使得不同计算机系统之间可以方便地共享文件、数据库和应用程序等数据资源,提高了数据的可靠性、可用性和可扩展性,极大地方便了系统之间的协作和资源利用。
本文将介绍共享存储的基本概念,并详细介绍SNIA(Storage Networking Industry Association)共享存储模型。
一、共享存储的基本概念共享存储是指多个计算机系统通过网络或其他连接方式,访问相同的存储设备或数据存储空间。
传统上,计算机系统通过本地存储设备(如硬盘、内存等)访问数据,而共享存储则将数据从计算机系统解耦,实现分布式的存储访问。
共享存储可以被看作是一个中心存储池,各个计算机系统可以通过网络连接访问这个存储池,并且实现数据共享和协作。
共享存储的基本概念包括以下几个方面:1. 存储设备:共享存储通常使用专用的存储设备,如存储阵列(Storage Array)、网络附加存储(Network-Attached Storage,NAS)或磁带库等。
这些存储设备能够提供高速的数据传输和大容量的存储空间。
2. 存储网络:共享存储通过存储网络(Storage Area Network,SAN)或网络连接技术(如以太网)将存储设备和计算机系统连接起来。
存储网络能够提供高速、可靠的数据传输和访问控制。
3. 共享协议:共享存储需要支持特定的共享协议,如网络文件系统(Network File System,NFS)、共享块设备协议(如iSCSI)等。
这些共享协议定义了存储设备和计算机系统之间的通信规则和数据访问方式。
二、SNIA共享存储模型SNIA是一个全球性的存储网络行业协会,旨在推动存储网络技术的发展和标准化。
SNIA共享存储模型是SNIA提出的一种用于描述共享存储环境的模型,目的是为了提供一种标准化的共享存储架构,方便各个厂商和系统之间进行集成和兼容。
分布式共享存储系统分类
四、分布式共享存储系统分类为了得到编程简易性、低功耗性和可扩展性,分布式共享存储系统在物理分布的主存上实施共享主存模型。
因为DSM的共享地址空间分布在本地主存中,查找时必须对这些数据做访问,以决定是否需要的数据在本地主存中。
如果不在,系统必须获取数据到本地存储器中。
系统还必须以一个写访问来保持共享数据的一致性。
以上操作都能在软件、硬件和软硬件结合系统上实施。
所以根据可以将DSM系统分为三类:硬件DSM系统、软件DSM系统、软硬件结合DSM系统[2][11]。
4.1 硬件DSM系统硬件DSM系统能确保本地主存和处理器caches共享数据的自动复制。
这种方式能有效的支持细粒度共享。
硬件DSM系统采用专门的硬件在由高速互连网络连接的松散耦合系统上实现共享数据的分布、复制、移动以及一致性的维护。
由于有专门的硬件来执行,所以在硬件DSM系统中数据的移动和一致性维护所带来的开销比软件DSM系统小得多,因而系统性能较高。
但是,硬件实现的复杂性使得在硬件DSM系统中一些先进的一致性维护技术和减少访存延迟的方法很难实现。
而且硬件DSM系统的造价较高,因此硬件DSM系统适合于性能大于成本的大型计算机系统。
硬件DSM系统根据存储系统结构,硬件DSM系统中有三类尤其引起注意[2]:●高速缓存不统一的存储结构(CC-NUMA)●Cache只读的存储结构(COMA)●沉思型的存储系统(RMS)4.1.1 高速缓存不统一的存储结构(CC-NUMA)CC-NUMA系统静态地在本地集群主存分布共享虚拟主存地址空间,如图4.1所示,本地处理器和远节点处理器都能访问,但是会有不同的访问延时。
这种DSM 机制依靠从全映射到不同动态结构的不同地址目录,如单独或双向链表和树。
主要目的是通过减少地址目录存储得到高性能和好的扩展性。
为了最小化延时,数据的静态划分需要注意,以得到最大的本地访问频率。
性能指示器同样很依赖互联技术。
无效机制被用来提供一致性,而有些放松的存储一致性模型可以作为提供性能的来源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十一章 分布式共享存储器
11.1 基本概念
共享存储器中缓存一致性方法 探听协议的写操作:数据只能由所有者提供。有效块和无效块 在替换时可以简单地扔掉。重写块和共享重写块在替换时要写 回共享存储器,并把共享存储器设臵为所有者。如果对缓存块 进行写,而缓存块的状态是重写的,则写操作可以直接进行; 但是如果缓存块是共享重写、或有效,则必须向其他缓存器发 送“无效”信号,然后可以进行写操作;如果缓存块是无效的, 要从当前所有者那里取得数据块,再向其他缓存器发送“无效” 信号,然后可以进行写操作。
第十一章 分布式共享存储器
11.1 基本概念
共享存储器中缓存一致性方法 目录协议:在共享存储器中设臵存储器块的目录。当发生缓存 不命中时,先把请求转到此目录。通常目录项中包含所有权、 副本集(copyset)和该块的重写位。副本集指出该块数据在哪些 缓存器中有副本,可用位向量来实现。发生读未命中时,先检 查重写位,如果该块不处于重写状态,则共享存储器中的版本 是有效的,于是简单地返回该块,并对副本集信息进行更新; 如果该块的重写位臵位,则该块的所有者必须修改该块,并且 要更新共享存储器中的版本,向读者提供读副本。写未命中或 者从读权变成写权时,要求目录的副本集使其他副本无效。与 探听缓存方案不同,读副本的位臵都已经知道,因此,可以用 顺序方式而不是以广播方式发送“无效”报文。目录方案不要 求广播介质,但在每次缓存未命中时要增加一次查表。
第十一章 分布式共享存储器
11.1 基本概念
一致性语义 共享存储器中常使用的一些一致性语义 : (4) 弱一致性。程序员使用同步算符,使得对数据的多个操作组 来说是顺序一致性的。即不同进程的多个操作组可以认为是 按照某个顺序进行的,任何进程对这个顺序的观点是一样的。 但是操作组内的多个操作其他进程是不可见的。对同步算符 是顺序一致性的。 (5) 释放一致性。使用了“获得”和“释放”这两类同步算符, 对同步算符是处理机一致的。
第十一章 分布式共享存储器
11.1 基本概念
什么是分布式共享存储器系统
节点 本地存储器 节点 本地存储器 节点 本地存储器
„„
映像管理员
映像管理员
映像管理员
共享存储器
第十一章 分布式共享存储器
11.1 基本概念
为什么需要分布式共享存储器 DSM的计算模型和RPC的计算模型相比各有优缺点: 1) DSM的计算模型支持数据在系统内移动,使数据更容易访问。 2) RPC计算模型是把操作移到数据所在位臵。RPC不支持程序 利用其访问的局部性优点,对一块远程数据的每个操作都产 生通信,对数据的操作必须先定义好。但是RPC支持异构型。 3) DSM可把数据移到本地节点,允许程序利用其访问的局部性 优点,使用缓存器可以改善响应时间。移动性要求对数据位 臵进行跟踪;缓存要求解决各副本的一致性。当数据正向某 个主机移动时,不能对它进行处理。如果数据经常修改, RPC模型可能更好些。
迁移请求 顾客 如果数据块不在本地,则确定 位置,发送请求 传送数据块 “无效”报文 “无效”报文 接收块,广播“无效”报文 接收“无效”报文,使 块无效 接收请求,发送块 远程主机
第十一章 分布式共享存储器
11.2 实现DSM的算法
全复制算法
全复制算法允许数据块在进行写时也可以复制,因而它遵从了“多读者/ 多写者”(MRMW)协议。保持复制数据一致性的一种可能的方法是对所 有的写操作进行全局排序,而只对与发生在执行读操作节点上的写操作 相关的那些读操作进行排序 。
第十一章 分布式共享存储器
11.2 实现DSM的算法
读复制算法
对于一个当前不在本地的块中的一个数据项进行读操作时,先与远程节 点通信以获得那个块的一个只读副本,然后再进行读操作。若被执行写 操作的数据所在的块不在本地或在本地但主机无写权时,必须先使此块 在其他节点的所有副本无效,之后再进行写操作。
第十一章 分布式共享存储器
11.1 基本概念
为什么需要分布式共享存储器 与紧密耦合的多机系统相比,DSM系统具有以下特点: (1) 规模可扩充。在紧密耦合的多机系统中,由于各处理机共享 的是一个单一的物理存储器,主存访问都要经过一个集中环 节(例如总线)进行,这就限制了多机系统的规模(一般为几十 台处理机 ) 。 DSM 不存在这样的限制,可以扩充至很大的规 模(多至上千个节点)。 (2) 廉价。由于DSM系统可以用现有的硬件来构造,并且无需连 接共享存储器与处理机的复杂接口,因而DSM的构造成本要 低于紧密耦合的多机系统。 (3) 兼容性。在共享存储器多机系统上编写的程序原则上都可以 无需修改或稍加修改后转换到DSM系统上运行。
第十一章 分布式共享存储器
11.1 基本概念
什么是分布式共享存储器系统 分布式共享存储器系统是分布式操作系统中的一个资源管理部 件,它在没有物理上共享的存储器的分布式操作系统中实现了共 享存储器模式。这种共享存储器模式在分布式系统中提供了一个 可供系统内所有节点所共享的虚拟地址空间。程序设计者可以像 使用传统的存储器一样使用该虚拟地址空间。这种物理上分布逻 辑上共享的存储器就叫做分布式共享存储器(Distributed Shared Memory—DSM)。 每一个节点都可以拥有存储在共享空间的数据,数据的所有者也 可以跟随数据从一个节点移到另一个节点。当一个进程访问共享 地址空间中的数据时,映像管理员就把共享存储器地址变换到本 地地址或远程的物理存储器地址。
第十一章 分布式共享存储器
11.1 基本概念
DSM的设计与实现问题 (3) 同步原语。在并发访问下,光有缓存一致性协议还不能维持 共享数据一致性。尚需要同步原语对访问共享数据的活动进 行同步,例如信号灯、事件计数和锁等。 (4) 替换策略。在允许数据迁移的系统中,当共享数据占满了缓 存器的有效空间时,必须决定将那些数据转移出去并且放到 哪里去。 (5) 可扩充性。DSM系统比起紧密耦合系统来,一个重大的优点 是具有可扩充性。限制可扩充性有两个因素:集中的瓶颈(像 紧密耦合系统中的总线)和全局公用信息的操作及存储(如广 播报文或目录等)。
第十一章 分布式共享存储器
11.1 基本概念
为什么需要分布式共享存储器 从通信机制来看,DSM与报文传递方式有以下不同 : (3) 数据的局部性。在DSM中,新访问的数据项与其周围的数据 一起按块或按页移动,而不是只移动新访问的数据本身。根 据程序的局部性原理,这样可以大大地减小网络的通信开销。
第十一章 分布式共享存储器
11.1 基本概念
为什么需要分布式共享存储器 从通信机制来看,DSM与报文传递方式有以下不同 : (1) 访问的透明性。使用报文传递方式访问共享的数据变量时, 程序必须明确地使用节点地址信息和通信原语(如SEND和 RECEIVE)。而在DSM中系统提供了一种抽象的共享地址空间 从而隐匿了物理地址和通信细节,使得程序直接面向共享的 数据。 (2) 共享数据结构的复杂性和异构性。使用报文传递方式,由于 数据是在不同的地址空间之间传递,从而使得具有复杂数据 结构的数据难于在不同类型的计算机及进程之间传递。而在 DSM中,可以借助引用机制(reference)去实现上述数据访问, 复杂性与异构性的问题由引用机制去处理,从而进一步简化 了并行程序设计。
第十一章 分布式共享存储器
11.2 实现DSM的算法
算法使用的模型和环境
DSM 的四种算法 非复制 非迁移 迁移 中央服务员 迁移 复制 全复制 读复制
第十一章 分布式共享存储器
11.2 实现DSM的算法
中央服务员算法 使用一个中央服务员,负责为所有对共享数据的访问提供服务 并保持共享数据唯一的副本。读和写操作都包括由执行该操作 的进程向中央服务员发送请求报文,中央服务员执行请求并回 答,读操作时回答数据项,写操作时回答一个承认。
第十一章 分布式共享存储器
11.1 基本概念
DSM的设计与实现问题 (6) 异构性。如何实现对两个具有不同体系结构的机器的存储器 共享是个很困难的问题。两个机器甚至对基本数据类型(如整 数、浮点数等)都使用不同的表达方式。 (7) 数据定位和访问。为了在一个DSM系统中共享数据,应用程 序必须能找到并且检索所需要的数据。对于一个支持数据迁 移的系统,实现这一点就更为复杂。 (8) 颠簸。DSM系统特别容易出现颠簸,例如若两个节点对一个 数据项同时进行写,就可能产生以高速率来回传送数据的现 象(乒乓效应),使得任何实际工作都不能进行。
第十一章 分布式共享存储器
11.1 基本概念
一致性语义 共享存储器中常使用的一些一致性语义 : (1) 严格一致性。对一个数据项所进行的任何读操作所返回的值 总是对该数据项最近一次进行写操作的结果。 (2) 顺序一致性。所有进程对数据序的观点是一样的。 (3) 处理机一致性。不仅要求一个进程中的所有写操作能够以它 在该进程中出现的顺序被所有其他进程看见,还要求不同进 程对同一个数据项的写操作,应该被所有进程以相同的顺序 看见。
第十一章 分布式共享存储器
11.1 基本概念
共享存储器中缓存一致性方法 Berkeley探听协议数据块有四种状态:重写(dirty)、共享重写、 有效和无效: (1)无效。该缓存块不包含有效数据。 (2)有效。该缓存块中数据是有效的。 (3)重写。共享存储器中的数据是不正确的,该缓存块是唯一有 效的数据副本。该缓存块是数据的所有者。 (4)共享重写。共享存储器中的数据是不正确的,该缓存块是数 据的所有者,其他缓存中有同样的副本。
第十一章 分布式共享存储器
11.1 基本概念
DSM的设计与实现问题 (1) 共享地址空间结构和粒度。共享地址空间的结构指的是存储 器中共享数据的布局方法,它依赖于应用程序类型,地址空 间可以是平面的,分段的或物理的。粒度是指共享单元的大 小,可以是字节、字、页或复杂的数据结构,它也是可用的 并行性的度量,依赖于通信开销和应用程序表现的局部性类 型。结构和粒度是密切相关的。 (2) 缓存一致性协议。不同的协议有不同的假设,选择协议依赖 于存储器访问模式和支持环境。在写无效协议中,一块共享 数据可能有很多个只读副本,但仅有一个可写副本,每进行 一次写时,除了一个以外,其他副本均变成无效。在写更新 协议中。每次写都要对所有副本进行更新。