免费智能真题库 > 历年试卷 > 系统架构设计师 > 2013年下半年 系统架构设计师 下午试卷 论文
  第4题      
  知识点:   安全性   存储系统   可靠性   可用性   网络存储   系统的可靠性   系统性能

 
分布式存储系统(Distributed Storage System)通常将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性可用性和存取效率,还易于扩展。
 
问题:4.1   请围绕“论分布式存储系统架构设计”论题,依次从以下三个方面进行论述。
1. 概要叙述你参与分析和开发的分布式存储系统项目以及你所承担的主要工作。
2. 简要说明在分布式存储系统架构设计中所使用的分布式存储技术及其实现机制,详细叙述你在具体项目中选用了哪种分布式存储技术,说明其原因和实施效果。
3. 冗余是提高分布式存储系统可靠性的主要方法,通常在分布式存储系统设计中可采用哪些冗余技术来提升系统的可靠性?你在具体项目中选用了哪种冗余技术?说明其原因和实施效果。
 
 
 

   知识点讲解    
   · 安全性    · 存储系统    · 可靠性    · 可用性    · 网络存储    · 系统的可靠性    · 系统性能
 
       安全性
        (1)可用性。可用性评价指标及测量,如下表所示。
        
        可用性评价指标及测量
        
        (2)完整性。完整性评价指标及测量,如下表所示。
        
        完整性评价指标及测量
        (3)保密性。保密性评价指标及测量,如下表所示。
        
        保密性评价指标及测量
        
 
       存储系统
               存储器的层次结构
               计算机的三层存储体系结构如下图所示。
               
               存储器层次结构示意框图
               三层存储结构是高速缓存(Cache)、主存储器(Main Memory,MM)和辅助存储器(外存储器)。若将CPU内部寄存器也看作存储器的一个层次,那么存储器的层次分为4层。若有些计算机没有高速缓存,那么存储器的层次分为两层,即只有主存和辅存。
               存储器的分类
               1)按位置分类
               存储器按位置分类,可分为内存和外存。
               (1)内存(主存):用来存储当前运行所需要的程序和数据,速度快,容量小。
               (2)外存(辅存):用来存储目前不参与运行的数据,容量大但速度慢。
               2)按材料分类
               存储器按材料分类,可分为磁存储器、半导体存储器和光存储器。
               (1)磁存储器:用磁性介质做成的,如磁芯、磁泡、磁盘、磁带等。
               (2)半导体存储器:根据所用元件又可分为双极型和MOS型;根据是否需要刷新又可分为静态和动态两类。
               (3)光存储器:由光学、电学和机械部件等组成,如光盘存储器。
               3)按工作方式分类
               存储器按工作方式分类,可分为读写存储器和只读存储器。
               (1)读写存储器:既能读取数据也能存入数据的存储器。
               (2)只读存储器:根据数据写入方式,又可细分为固定只读存储器、可编程只读存储器、可擦除可编程只读存储器、电擦除可编程只读存储器和闪速存储器。
               4)按访问方式分类
               存储器按访问方式分类,可分为按地址访问的存储器和按内容访问的存储器。
               5)按寻址方式分类
               存储器按寻址方式分类,可分为随机存储器、顺序存储器和直接存取存储器。
               (1)随机存储器(RandomAccessMemory,RAM):这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需时间都是相同的。
               (2)顺序存储器(SequentiallyAddressedMemory,SAM):访问数据所需时fi间与数据所在存储位置有关,磁带是典型的顺序存储器。
               (3)直接存取存储器(DirectAddressedMemory,DAM):采用介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取控制器,它对磁道的寻址是随机的,而在一个磁道内,则是顺序寻址。
               相联存储器
               相联存储器是一种按内容访问的存储器。其工作原理是把数据或数据的某一部分作为关键字,将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字。
               高速缓冲存储器(可简称为高速缓存或缓存)可用在相联存储器中,在虚拟存储器中用来作段表、页表或块表存储器,还可以用在数据库和知识库中。
               高速缓存
               高速缓存(Cache)是位于CPU和主存之间的高速存储子系统。采用高速缓存的主要目的是提高存储器的平均访问速度,使存储器的速度与CPU的速度相匹配。Cache的存在对程序员是透明的。其地址变换和数据块的替换算法均由硬件实现。通常Cache被集成到CPU内,以提高访问速度,其主要特点是容量小、速度快、成本高。
               1)Cache的组成
               Cache的组成如下图所示。Cache由两部分组成,即控制部分和缓存部分。缓存部分用来存放主存的部分复制信息。控制部分的功能是:判断CPU要访问的信息是否在Cache中,若在即为命中,若不在则没有命中。命中时直接对Cache寻址;未命中时,要按照替换原则,决定主存的一块信息放到Cache的哪一块里面。
               
               高速缓存的组成框图
               2)Cache中的地址映像方法
               因为处理机访问都是按主存地址访问的,而应从Cache中读写信息,因此这就需要地址映像,即把主存中的地址映射成Cache中的地址。地址映像的方法有3种,即直接映像、全相联映像和组相联映像。
               (1)直接映像就是主存的块与Cache中块的对应关系是固定的。主存中的块只能存放在Cache的相同块号中。因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中。一旦命中,以主存地址中的区内块号立即可得到要访问的Cache中的块。这种方式的优点是地址变换很简单,缺点是灵活性差。
               (2)全相联映像允许主存的任一块可以调入Cache的任何一块的空间中。在地址变换时,利用主存地址高位表示的主存块号与Cache中的主存块号进行比较,若相同则为命中。这种方式的优点是主存的块调入Cache的位置不受限制,十分灵活;其缺点是无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢。
               (3)组相联映像是前面两种方式的折中。具体做法是将Cache中的块再分成组。组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。这种方式下,通过直接映像方式来决定组号,在一组内再用全映像方式来决定Cache中的块号。由主存地址高位决定主存区号,与Cache中区号比较可决定是否命中。主存后面的地址即为组号,但组块号要根据全相联映像方式,由记录可以决定组内块号。
               3)替换算法
               选择替换算法的目标是使Cache获得最高的命中率。常用的替换算法有以下几种。
               (1)随机替换(RAND)算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
               (2)先进先出(FIFO)算法:将最先进入的Cache信息块替换出去。
               (3)近期最少使用(LRU)算法:将近期最少使用的Cache中的信息块替换出去。这种算法比先进先出算法要好些,但此法也不能保证过去不常用的将来也不常用。
               (4)优化替换(OPT)算法:先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换,达到最优的目的。
               4)Cache的性能分析
               若H为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache的等效访问时间ta
               ta=Htc+(1-H)tm
               使用Cache比不使用Cache的CPU访问存储器的速度提高的倍数r可以用下式求得,即
               
               虚拟存储器
               虚拟存储器是由主存、辅存、存储管理单元及操作系统中存储管理软件组成的存储系统。程序员使用该存储系统时,可以使用的内存空间远远大于主存的物理空间,但实际上并不存在那么大的主存,故称其为虚拟存储器。虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小,实际存储空间可以小于虚拟地址空间。从程序员的角度看,外存被看作逻辑存储空间,访问的地址是一个逻辑地址(虚地址),虚拟存储器使存储系统既具有相当于外存的容量又有接近于主存的访问速度。
               虚拟存储器的访问也涉及虚地址与实地址的映像、替换算法等,这与Cache中的类似。前面讲的地址映像以块为单位,而在虚拟存储器中,地址映像以页为单位。设计虚拟存储系统需考虑的指标是主存空间利用率和主存的命中率。按存储映像算法,可将虚拟存储器的管理方式分为以下3种。
               (1)页式虚拟存储器。以页为信息传送单位的虚拟存储器。为实现页式管理,须建立实页与虚页间的关系表,称为页表;在页表及变换软件的控制下,可将程序的虚拟地址变换为内存的实地址。页式虚拟存储器的优点是:页表硬件少,查表速度快;主存零头少。页式虚拟存储器的缺点是:分页无逻辑意义,不利于存储保护。
               (2)段式虚拟存储器。以程序的逻辑结构形成的段作为主存分配依据的一种管理方法。为实现段式管理,须建立段表;在段地址变换机构及软件的控制下,可将程序的虚拟地址变换为主存的实地址。段式虚拟存储器的优点是:段的界线分明;支持程序的模块化设计;易于对程序段的编译、修改和保护;便于多道程序的共享。段式虚拟存储器的主要缺点是:主存利用率不高,查表速度慢。
               (3)段页式虚拟存储器。这是将段式虚拟存储器和页式虚拟存储器结合的一种管理方式。在这种虚拟存储器中,程序按逻辑结构分段,每一段再分成若干大小固定的页。程序的调入调出是按页进行的,而程序又可按段实现保护。这种管理方式兼有两者的优点,但地址变换速度比较慢。
               外存储器
               外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,将其以文件为单位调入主存后方可访问。外存由磁表面存储器(如磁盘、磁带)及光盘存储器构成。
               1)磁盘存储器
               (1)磁盘存储器的构成。磁盘存储器由盘片、驱动器、控制器和接口组成。盘片用来存储信息;驱动器用于驱动磁头沿盘面径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,并且控制数据的写入和读出;控制器接收主机发来的命令,将它转换成磁盘驱动器的控制命令,并实现主机和驱动器之间数据格式的转换及数据传送,以控制驱动器的读写操作;接口是主机和磁盘存储器之间的连接逻辑。
               (2)磁盘存储器的种类。根据所用材质的不同,磁盘存储器分为软盘和硬盘。
               ①软盘。为了正确存储信息,将盘片划成许多同心圆,称为磁道,从外到里编号,最外一圈为0道,往内道号依次增加。沿径向的单位距离的磁道数称为道密度,单位为tpi。将一个磁道沿圆周等分为若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块。磁道上单位距离可记录的比特数称为位密度,单位为bpi。因为每条磁道上的扇区数相同,而每个扇区的大小又一样,所以每个磁道都记录同样多的信息。又因为里圈磁道的圆周比外圈磁道的圆周小,所以里圈磁道的位密度要比外圈磁道的位密度高。最内圈的位密度称为最大位密度。
               磁盘容量有两种指标:一种是非格式化容量,它是指一个磁盘所能存储的总位数;另一种是格式化容量,它是指各扇区中数据区容量的总和。计算公式分别为:
               非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度
               格式化容量=面数×(磁道数/面)×(扇区数/道)×(字节数/扇区)
               ②硬盘。按盘片是否固定、磁头是否移动等指标,硬盘可分为移动磁头固定盘片的磁盘存储器、固定磁头的磁盘存储器、移动磁头可换盘片的磁盘存储器和温彻斯特磁盘存储器(简称温盘)。一个硬盘驱动器内可装多个盘片,组成盘片组,每个盘片都配有一个独立的磁头。所以记录面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。文件存储在硬盘上时尽可能放在同一圆柱面上,或者放在相邻柱面上,这样可以缩短寻道时间。
               2)光盘存储器
               (1)光盘存储器的类型。根据性能和用途,可分为只读型光盘、只写一次型光盘和可擦除型光盘。
               (2)光盘存储器的组成及特点。光盘存储器由光学、电学和机械部件等组成。特点是:记录密度高;存储容量大;采用非接触式读写信息;信息可长期保存;采用多通道记录时数据传输率可超过200Mb/s;制造成本低;对机械结构的精度要求不高;存取时间较长。
               磁盘阵列技术
               磁盘阵列是由多台磁盘存储器组成的、快速大容量且高可靠的外存子系统。现在常见的廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks,RAID),就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现的。RAID技术分为几种不同的等级,分别可以提供不同的速度、安全性和性价比,如下表所示。
               
               廉价冗余磁盘阵列(RAID)
 
       可靠性
        (1)完备性。完备性评价指标及测量,如下表所示。
        
        完备性评价指标及测量
        (2)连续性。连续性评价指标及测量,如下表所示。
        
        连续性评价指标及测量
        
        (3)稳定性。稳定性评价指标及测量,如下表所示。
        
        稳定性评价指标及测量
        (4)有效性。有效性评价指标及测量,如下表所示。
        
        有效性评价指标及测量
        (5)可追溯性。可追溯性评价指标及测量,如下表所示。
        
        可追溯性评价指标及测量
        
 
       可用性
        可用性(Availability)是指合法许可的用户能够及时获取网络信息或服务的特性。例如,网站能够给用户提供正常的网页访问服务,防止拒绝服务攻击。可用性是常受关注的网络信息系统CIA三性之一,其中A代表可用性(Availability)。对于国家关键信息基础设施而言,可用性至关重要,如电力信息系统、电信信息系统等,要求保持业务连续性运行,尽可能避免中断服务。
 
       网络存储
        基于Windows、Linux和UNIX等操作系统的服务器称为开放系统,开放系统的数据存储方式如下图所示。
        
        开放系统的数据存储方式
        1)直连式存储
        直连式存储(Direct-Attached Storage, DAS)是在服务器外挂一组大容量磁盘,存储设备与服务器主机之间采用SCSI通道连接,带宽为10Mb/s、20Mb/s、40Mb/s和80Mb/s等。这种方式难以扩展存储容量,而且不支持数据容错功能,当服务器出现异常时,会造成数据丢失。
        2)网络接入存储
        网络接入存储(Network Attached Storage, NAS)是将存储设备连接到现有的网络上,来提供数据存储和文件访问服务的设备。NAS服务器是在专用主机上安装简化了的瘦操作系统的文件服务器。NAS服务器内置了与网络连接所需要的协议,可以直接联网,具有权限的用户可以通过网络来访问NAS服务器中的文件。
        3)存储区域网络
        存储区域网络(Storage Area Network, SAN)是一种连接存储设备和存储管理子系统的专用网络,专门提供数据存储和管理功能。SAN是一种特殊的高速网络,采用光纤通道实现互联,通过光纤通道交换机连接存储阵列和文件服务器主机。SAN不仅能提供大容量的存储数据,而且地域上可以分散部署,缓解了大量数据传输对局域网通信的影响。
 
       系统的可靠性
        系统的可靠性是只保证系统正常工作的能力。这是对系统的基本要求,系统在工作时,应当对所有可能发生的情况都予以考虑,并采取适当的防范措施,提高系统的可靠性。系统的可靠性主要分系统硬件和软件的可靠性。衡量系统可靠性的重要指标是系统的平均故障间隔时间(Mean Time Between Failure, MTBF)和平均维护时间(Mean Time To Repair,MTTR)。前者指平均的系统前后两次发生故障的间隔时间,后者指发生故障后平均没修复所需要的时间。系统平均故障间隔时间越长,系统可靠性就越高;系统平均维护时间越短,则说明系统的可维护性就越高。
        要提高系统的可靠性需要从多个方面进行考察,采取多种相应的措施,可以选用可靠性较高的设备;在设计中尽可能地避免出错,在程序中设置各种检验措施,防止误操作和非法使用;采取软件和硬件的各种安全保障措施和操作,例如,对输入数据进行完整性检验,建立运行日志和审计跟踪,规定文件存取权限以及定期备份,等等。
 
       系统性能
               系统性能定义和指标
               计算机系统性能指标以系统响应时间和作业吞吐量为代表。响应时间(Elapsed Time)是指用户从输入信息到服务器完成任务给出响应的时间,即计算机系统完成某一任务(程序)所花费的时间,比如存储器访问、输入/输出等待、操作系统开销等。作业吞吐量是整个服务器在单位时间内完成的任务量。假定用户不间断地输入请求,则在系统资源充裕的情况下,单个用户的吞吐量与响应时间成反比,即响应时间越短,吞吐量越大。为了缩短某一用户或服务的响应时间,可以分配给它更多的资源。性能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分配的系统资源,充分发挥系统能力,用尽量少的资源满足用户要求,达到为更多用户服务的目的。
               计算机性能的其他常用指标还包括MIPS (Million Instruction Per Second)和MFLOPS(Million Floating-point Instruction Per Second)。
               (1) MIPS=指令数/(执行时间×1000000)。
               其主要特点如下:
               ① MIPS大小和指令集有关,不同指令集的计算机间的MIPS不能比较。
               ②在同一台计算机上MIPS是变化的,因程序不同而变化。
               ③有时MIPS指标会出现矛盾。
               ④主要适用于带有硬件浮点处理器的计算机。
               ⑤MIPS中,除包含运算指令外,还包含取数、存数、转移等指令在内。
               ⑥MIPS只适宜于评估标量机。
               ⑦相对MIPS指相对参照机而言的MIPS,通常用VAX-11/780机处理能力为1MIPS。
               (2)MFLOPS=浮点指令数/(执行时间×1000000)。
               ①与机器和程序有关。
               ②测量浮点运算时,比MIPS准确。
               ③MFLOPS比较适宜于评估向量计算机。
               ④MFLOPS与MIPS关系:1MFLOPS≈3MIPS。
               ⑤MFLOPS仅仅只能用来衡量计算机浮点操作的性能,而不能体现计算机的整体性能。例如编译程序,不管计算机的性能有多好,它的MFLOPS不会太高。
               ⑥MFLOPS是基于操作而非指令的,所以它可以用来比较两种不同的计算机。
               ⑦MFLOPS依赖于操作类型。例如100%的浮点加要远快于100%的浮点除。
               ⑧单个程序的MFLOPS值并不能反映计算机的性能。
               系统性能评估
               计算机性能评价技术可用于开发中和开发后的系统评价。主要包括三种技术:分析技术、模拟技术、测量技术。
                      分析技术
                      分析技术是在一定假设条件下,计算机系统参数与性能指标参数之间存在着某种函数关系,按其工作负载的驱动条件列出方程,用数学方法求解。其特点是具有理论的严密性,节约人力和物力,可应用于设计中的系统。它的数学工具主要是利用排队论模型进行分析。
                      模拟技术
                      模拟技术首先是对于被评价系统的运行特性建立系统模型,按系统可能有的工作负载特性建立工作负载模型;随后编写模拟程序,模仿被评价系统的运行;设计模拟实验,依照评价目标,选择与目标有关因素,得出实验值,再进行统计、分析。其特点在于可应用于设计中或实际应用中的系统,可与分析技术相结合,构成一个混合系统。分析和模拟技术最后均需要通过测量技术验证。
                      测量技术
                      测量技术则是对于已投入使用的系统进行测量,通常采用不同层次的基准测试程序评估。其评估层次包括实际应用程序、核心程序、合成测试程序三个层次,但必须均为国际性组织认可的程序,同时需要对评估结果进行分析和统计以保证其准确性。
                      常用的国际认可的用来测试机器性能的测试基准测试程序(按评价准确性递减的顺序):
                      (1)实际的应用程序方法。
                      运行例如C编译程序、Tex、字处理软件、CAD工具等。
                      (2)核心基准程序方法。
                      从实际的程序中抽取少量关键循环程序段,并用它们来评价计算机的性能。
                      (3)简单基准测试程序。
                      简单基准测试程序通常只有10~100行而且运行结果是可以预知的。
                      (4)综合基准测试程序。
                      为了体现平均执行而人为编制的,类似于核心程序,没有任何用户真正运行综合基准测试程序。
   题号导航      2013年下半年 系统架构设计师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第4题    在手机中做本题