开发者学堂课程【高校精品课-长安大学 -基于混合式教学的云计算课程建设:2.2.2 物理资源层 存储系统】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1073/detail/15454
2.2.2 物理资源层 存储系统
主要内容:
四、存储系统的体系结构
五、基于数据块的存储系统
六、基于文件的存储系统
七、基于对象的存储系统
八、统一存储系统。
四、存储系统的体系结构
存储系统的体系结构是构件云基础架构时需要考虑的一个关键设计事项,云提供商必须选择适当的存储,确保有足够的容量来保持环境的整体性,存储系统的体系结构是基于数据访问方法,常见的存储系统形式包括:基于数据块的存储系统、基于文件的存储系统、基于对象的存储系统以及统一存储系统,统一存储系统的体系结构使用全部的三种数据访问方法及数据块、文件和对象。
云供应商可部署其中的一种或者多种类型的存储系统来满足不同应用程序的需求。
1.数据访问方法
数据可以从计算系统或者计算级群,通过数据块级、文件级和对象级方案进行访问,外部的存储系统可以与计算系统直接连接或通过网络与其连接,计算系统上的应用程序,使用底层的技术架构存储和访问数据,通常应用程序通过指定文件名和位置来请求数据,那么文件系统将文件属性映射到数据的逻辑数据块地址,并将该地址发送给存储系统,逻辑数据块地址使用线性地址来访问数据块,从而简化了寻址过程,逻辑数据块地址也称作 LBA ,那么存储系统它会将 LBA 转化为一种称为柱面磁头扇区,也就称作 CHS ,这种地址的物理地址,因为磁盘的物理上是用 CHS ,也就是 Cylinder 、 Header 、 Sector ,来定位它的物理地址。
所以存储系统会将 LBA ,LBA 是一个逻辑数据块地址,要把它转化为磁盘的 CHS 的物理地址,然后才能获取到数据,那么在数据快捷访问中,存储卷在创建后会分配给计算系统,存储卷它是一种逻辑的存储单元,它是由多个数据块组成的,通常它会基于 RAID 集进行创建,那么存储卷在分配给计算系统,用来承载创建的文件系统,那么在这种情况下,应用程序的数据请求会发送给文件系统,然后并转化为数据块级的请求。
(1)数据块级的请求:数据块级的请求就是逻辑数据块地址的请求,此数据块级的请求会通过网络发送给存储系统,存储系统接着会将逻辑数据块地址转化为 CHS 地址,并以数据块大小的单元来获取数据,这就是图中左边的这个数据块级的请求。
(2)文件级的请求:在文件级访问中,文件系统是在于存储相连的单独文件服务器上创建的,那么来自应用程序的文件请求,通常会通过网络发送给承载着文件系统的文件服务器,文件系统随后将文件集的请求转换为数据块级的地址,并将请求发送给存储以访问数据。
(3)对象级的请求:在对象级访问中,数据是以独立对象的形式通过网络加以访问,每个对象都有唯一的一个对象标识符,在这种情况下,应用程序的请求会发送给文件系统,文件系统与基于对象的存储设备 OSD 接口进行通讯,该接口接着会使用,唯一对象 ID 将对象级的请求通过网络发送给存储系统,存储系统有一个 OSD 对象存储设备的存储组件,负责管理对存储系统中对象的访问, OSD 存储组件将对象级请求转化为数据块级地址,然后将其发送给存储以访问数据。
五、基于数据块的存储系统
基于数据块的存储系统可以用来创建存储卷,并将其分配给计算系统,计算操作系统或者虚拟机管理程序发现这些存储卷时认为它们是本地的驱动器,可在这些存储卷上创建文件系统,比如在 Windows 环境中可以创建 NTFS 文件系统,该文件系统便可进行格式化并供应用程序使用,基于数据块的存储系统,通常包含4个关键组件:前端控制器缓存,后端控制器物理磁盘,前端控制器提供存储系统与计算系统之间的交互接口,通常在前端会配置冗余控制器以实现高可用,并且每个控制器会包含多个端口,每个前端控制器都具有为存储连接执行相应的传输协议,如光纤通道协议 FC SCSI 或者 FC OE , Fibre Channel over Ethernet ,那么前端控制器通过内部的数据总线来传送、发完缓存或从缓存发出的数据,缓存它是一种半导体存储器,用来暂时存放数据,以便缩短从计算系统满足 IO 请求所需的时间,缓存通过避免计算系统受到与磁盘驱动器有关的机械延迟影响,而改善了存储系统性能,计算系统发出请求后,如果在缓存中找到所请求的数据,则称为缓存命中,
那么这种情况下这些数据会直接发送给计算系统,如果在缓存中没有找到所请求的数据,这种情况就成为缓存未命中,此时必须从驱动器中读取这些数据,使用缓存的写入操作,可通过两种方法加以执行,回血法和止血法,在回血法中会将多项写入操作的数据放在缓存中,然后立即向计算系统发送针对每项写入操作的确认,也称作: The right back ,之后会将缓存中的数据写入磁盘;在止血方法中将数据放在缓存中后,立即将其写入到磁盘,然后向计算系统,发送确认,也称作: The right through ,后端控制器提供了缓存与物理磁盘之间的接口,数据从缓存发送到后端,然后再传送到目标磁盘,物理磁盘与后端的接口相连,在某些实施方案中,前端缓存和后端集成在一个被称为存储处理器或存储控制器的主板上。
六、基于文件的存储系统
基于文件的存储系统,又称为附网存储 NAS ( Network Attached Storage ),它是一种高性能的专用文件服务器,具有集成存储或连接到外部存储 NAS 使客户端得以通过 IP 网络共享文件,由于 NAS 支持 NFS 和 CFC 协议,因此 UNIX 客户端和 Windows 客户端都能够使用适当的访问和锁定机制,共享相同的文件, NFS 是称作叫Network File System ,就是网络文件系统,它是用于 Linux下面的,那么 NFS ,实际上可以认为是 NFS 在 Windows 下面的一个实现, NAS 系统具有集成的硬件和软件组成,其中、括处理器、内存、网卡,用于连接和管理物理磁盘资源的接口,为提供文件服务完优化的操作系统以及文件共享协议,NAS 系统可将分散的数据整合到一个大型的集中化数据池中,而该数据持可供易购客户端和应用程序服务器,通过网络进行访问和共享,从而将众多分散的通用服务器上的数据整合 NAS 中,可以使得管理工作更加高效,并是从利用率得到改善。
1.NAS 的部署选项
两种常见的那次部署选项,为传统的 NAS 系统,通常它是纵向扩展,还有一种横向扩展的 NAS 系统,这种传统的 NAS 解决方案能够扩展单个 NAS 系统的容量和性能,纵向扩展的这种 NAS 系统涉及到升级 NAS 的系统或向其添加 NAS 组件和存储;而横向扩展的 NAS 旨在满足快速增长的非结构化数据的需求,特别是这种大数据的领域,横向扩展的 NAS 可将多个处理和存储节点池化在一起,从而支持创建集群化的 NAS 系统,集群作为一个单个的 NAS系统运行,并采取集中管理的方式,那么只需要向集群增加节点,就可以增加集群的容量。
节点包含常见的服务组件,每个节点添加到集群中后,那么整个集群的磁盘缓存、处理器和网络的总容量就将会随之增加,横向扩展的 NAS 可创建在集群中的所有节点上运行的单一文件系统,随着节点的增加文件系统,也将动态地增长,并且数据将均匀地分布,或者重新分布在集群的所有节点。
七、基于对象的存储系统
基于对象的存储,是一种根据数据的内容或其他属性,这个其他属性不是文件的名称和位置的这种,文件系统中所说的属性,以对象形式存储文件数据的方法。对象包含用户数据,相关的元数据,比如大小、日期、所有权等以及用户定义的数据手续,比如保留期、访问模式或其他与业务相关的属性,由于元数据或属性更多,因此我们可以通过优化的方式搜索保留或删除对象,譬如,当患者的核磁共振扫描结果以文件形式存储在 NAS 系统中,元数据只是一些基本数据,可能包含诸如文件名、创建日期、所有者和文件类型等信息,这些信息都是文件系统的 namespace 的文件系统的里定义的文件的属性信息,而当一个对象的形式存储的时候,那么该对象的元素去组成部分,除了包含这些基本元数据之外,还可能包括一些额外的信息,例如患者的姓名、身份证号、主治医生的姓名,基于对象的存储系统中存储的每个对象都通过一个称作对象 ID 的唯一标识符加以标识,有了对象 ID ,无需指定存储位置,即可轻松访问对象,对象 ID 是通过对数据使用专门的算法生成的,可确保每一个对象都得到唯一标识,对对象进行的任何更改,都会导致生成新的对象 ID ,因此为满足法规要求或者法规遵从性要求,而需要进行长期的数据归档时基于对象的存储就是一个首选项,基于对象的存储系统,它采用一种扁平不分层的地质空间来存储数据,因此可以提供进行大规模扩展的灵活性。
云服务提供商之所以利用基于对象的存储系统来提供存储器服务的产品,就是因为这种存储系统,有其固有的安全性、可扩展性以及自动化数据管理的能力,基于对象的存储系统,通常通过 REST 和 SOAP 来支持 Web 服务访问。
有三个关键的一组件,节点、网络和存储,这种存储系统包含一个或多个节点,节点是指运行基于对象的存储系统的操作环境,并提供相应服务工作系统中存储检索和管理数据的服务器,基于对象的存储系统节点,有两项关键任务:元数据服务和存储服务,原数据服务负责根据文件的内容生成对象 ID ,此外它还用于维护对象 ID 和文件系统命名空间之间的映射,存储服务用于管理一组存储数据的驱动器,这些节点通过内部网络连接着存储,内部网络,既提供节点到节点的连接,也提供节点到存储的连接,应用程序服务器通过外部网络访问基于对象的存储节点来存储和检索数据,在某些实施方案中,元数据服务可能位于应用程序服务器或单独的服务器上,基于对象的存储提供了自动检测和修复损坏的对象,并向管理员提醒任何潜在问题的功能,它还提供供需报告和事件通知,一些基于对象的存储系统还支持存储优化技术,例如单实例存储,单实例存储就是指存储对象的一个实例,从而可优化可用容量。
八、统一存储系统
统一存储或多协议存储,这是一种在单个统一平台中整合数据块访问、文件访问和基于对象的访问的解决方案,它支持使用多种协议,例如 CIFS 、NFS 、 iSCSI 、 FC 、 FCoE 、 REST 、 SOAP 、 API 这种统一存储系统它是使用单一界面进行管理。
统一存储系统,包含以下关键组件:存储控制器、 NAS 机头、 OSD 节点和存储,存储控制器, NAS 机头和 OSD 节点可以单独呈现,也可以作为单个设备的一部分加以呈现,存储控制器通过各种协议实现对计算系统的数据块访问,它包含用于直接进行数据块访问前端接口,储控制器,还负责管理存储系统的后端存储池,控制器会配置存储卷,并将它们呈现给 NAS 机头和 OSD 节点以及计算系统, NAS 机头是一种以 NAS 客户端,为 NAS 客户端提供文件访问功能的专用文件服务器,机头通过存储控制器连接到存储,系统通常配备两个或更多个 NAS 机头,已具备冗余能力, NAS 机头会在所分配的卷上配置文件系统,创建 NFS 、 CIFS 或混合构想,并将这些共享导出到 NAS 客户端, OSD 节点也通过存储控制器来访问存储,分配给 OSD 节点的卷显示为物理磁盘, OSD 节点会对这些磁盘进行配置,从而使他们能够存储对象数据。