高性能大数据分析的存储基础设施
传统HPC存储系统中的不足,使得这些系统不适合当前高性能计算架构和应用程序的需求。主要的缺陷:
- 集成来自多个供应商的技术栈:当前的存储系统使用来自不同供应商的技术栈中的不同组件,有他们缺乏设计和交付端到端HPC解决方案的能力,这大幅增加了系统的复杂性,并且使得类型测试和质量控制等很多方面变得非常困难。
- 配置和调优过程中有限的自动化:多供应商HPC系统通常会包含一个逐步安装的过程,由于涉及来自多家供应商的各种组件,因此该过程通常周期非常长、难度非常高。这一耗时的安装和配置过程可能会影响项目的期限。
- 缺少对管理软件的关注:管理软件时HPC存储系统中非常关键的组成部分,因为它在整个系统的顺利运行中起着非常重要的作用。
直连式存储
存储区域网络(SAN)通常被设计为一个客户端/服务器系统,服务器通过名为总线的互联介质的方式连接到一组存储设备上。在一些情况下,客户系统直接同存储设备通信。这些类型的存储架构中的客户端/服务器系统直接同存储设备通信(不要任何通信网络),被称为直连式存储(DAS)。高层架构如下:
上面给出的架构主要的三层,分别是:
层1:访问应用的客户端系统
他们通常使用某些类型的交换机或连接器来连接到应用服务器
层2:驻留应用的应用服务器应用服务器具有I/O控制器来控制住与连接的存储设备的输入/输出操作。I/O控制器被设计为根据用于连接到设备的具体接口开展工作。如果连接的存储设备支持不同类型的接口,则会为每种类型的接口提供一个I/O控制器。
层3:存储设备
用于保存运行在应用服务器中的应用所生成的数据。
DAS架构中的存储设备支持的流行I/O接口
小型计算机系统接口(SCSI):是由美国国家标准协会(ANSI)开发的流行的电子接口之一,并行SCSI(也被称为SCSI)是流行的存储接口之一。最新版本的SCSI被称作SCSI Ultra320,能提供320MB/s的数据传输。SCSI有一种名为SAS(Serial Attached SCSI,串行SCSI)的变体,执行串行传输。同SCSI相比,能够提供更好的性能以及可扩展性,数据传输速率最高可达6Gb/s
IDE/ATA:IDE部分指出用来连接到计算机的主板并同连接的设备进行通信的控制器的规范。ATA部分指出用于将存储设备连接到主板的接口。
DAS的缺点
- 静态配置:如果总线的配置需要动态改变来增加新的存储设备,从而解决I/O瓶颈,DAS架构不支持这种选择。
- 价格昂贵:DAS系统的维护非常昂贵
- 受限的可扩展性和支持的数据传输距离:DAS架构可扩展性受每个存储设备可用端口的数据的限制。
磁盘驱动器的RAID(独立磁盘冗余阵列)
RAID是用来组合一组磁盘并将它们用作单独存储设备的机制。目标是提高磁盘驱动器的性能和容错性。
- 分段:将要写入的数据划分到多个磁盘驱动器上,目的是通过均衡每个磁盘驱动器上的负载来提供磁盘驱动器的性能。
- 镜像:将数据的副本保存在多个磁盘中,目的是确保某块磁盘发生故障,其他磁盘中的数据也能够当做备份副本。
存储区域网络
将服务器同存储设备连接起来,这种类型的网被称为存储区域网络(SAN)。
这种专门用于访问存储设备的网路称作存储区域网络,使用专门的网络来处理存储设备流量有利于集中存储和管理,它为系统架构增加了大量可扩展性。大部分SAN所使用的的两种主要传输协议是光纤通道协议(FCP)和TCP/IP协议。基于他们所使用的协议,SAN被分为FC SAN和IP SAN。从存储设备中访问数据主要有三种方式:块级访问、文件访问、对象访问。高性能大数据应用程序主要使用基于对象的访问机制。
块级访问
数据的访问以块的方式来完成,块的大小是固定的,多数的场景下通常为512字节。
文件级访问
数据访问是以文件的形式来完成的,文件通过指定他们的名字路径来获取,常用于从文件服务器中访问文件。
对象级访问
数据是通过称作对象的大小不同的块的形式来访问,每个对象是一个容器,其中保存有数据及其相关联的属性,基于对象的访问机制对访问非结构化数据而言时最优的选择。原因
- 巨大的可扩展性
- 扁平的地址空间而不是层次化地址空间,能够提供更好的性能
- 能够保存同每个对象关联丰富的元数据
保存在基于对象的存储设备中的数据可以使用Web服务API来访问,例如表述性状态转移(REST)或简单对象访问协议(SOAP)。基于对象的存储设备执行并发读、写、文件加锁、权限管理时所引发的负担很小。
保存大数据的存储基础设施需求
由于大数据的特殊性,用于存储大数据的存储基础设施应当具有一些独特的特点。
存储区域网络技术以及它们对存储大数据的适合程度
- FC SAN
- IP SAN
- FCoE
更合适于大数据的存储选择
- 网络附属存储
- 云存储
- Hadoop分布式文件系统
- Google文件系统
- Panasas 文件系统
光纤通道存储区域网络
光纤通过存储区域网络(FC SAN)是受人们欢迎的存储区域网络技术之一,它使用光纤通道协议(FCP)进行高速数据传输。
FC SAN的主要组组成部分是:
- 客户端
- 支持FC协议的存储设备、存储阵列
- 利于传输的光纤
- 交换机、路由器
- 将应用服务器或主机系统连接到存储设备的主机总线适配器
FC SAN使用块级访问机制从存储设备中访问数据,通过提供非常高的数据传输速率来提供优秀的性能,但是构建基础设施的成本非常高。
互联网协议存储区域网络
互联网协议存储区域网络(IP SAN)也被称为iSCSI(SCSI over IP)。在这种网络中,存储设备是使用SCSI命令通过基于TCP/IP的网络来访问。以太网是用于数据传输的物理介质。以太网是一种成本效益高的选项,使得IP SAN比FC SAN更加流行。
iSCSI是大数据存储的首选技术:
- 使用1Gb或10Gb以太网传输,显著减低了网络复杂性
- 同FC SAN 相比,成本较低
- 由于提供了利用现有IP基础设施的选择,提供了更多的灵活性。
- 提供优良的心梗,多个支持iSCSI的存储阵列。
iSCSI的主要缺点是它不能够支持文件级访问。
以太网光纤通道
以太网光纤通道(FCoE)技术可以通过传统以太网封装和传输光纤通道数据帧,不需要使用以太网的默认转发模式。FCoE基础设施的主要组成是FCoE交换机,对LAN和SAN流量进行区分。
网络附属存储
网络附属存储(NAS)是可共享的存储设备、服务器,它执行保存文件的专用功能。NAS是专用可共享文件服务器。NAS是通过IP网络访问的,由于它具有最小的存储开销,所以它是首选的文件共享选项。NAS的一个主要的缺点是由于文件的共享以及其他相关数据操作通过相同的网络进行,所以经常产生性能瓶颈。
名为横向扩展NAS(scale-out NAS)的NAS变体正在变为大数据应用流行的存储选择。方式从其他存储磁盘阵列或其他存储设备增加新的磁盘。横向扩展NAS的这一可扩展特性使得它称为大数据应用的首先文件存储选项。
优点
- 可扩展性
- 增加灵活性
- 高性能
用于高性能大数据分析的流行文件系统
Google文件系统
GFS的一些关键特性使得它成为高性能数据应用的首选,这些特性是:
主要特性
- 能够保存大量文件,这些文件的规模可以非常大。保存在GFS中的最小文件规模是1GB。
- GFS是由大量商用服务器组件组成的,以集群模式部署,具有高度可扩展性。
- GFS具有in-memory架构,最适合于发部分的高新更大数据分析应用程序。
该架构的关键组成如下:
- GFS master 主服务器
- GFS chunkserver 块服务器
- GFS client 从文件系统中访问数据
GFS架构具有一种主从配置,使用一个GFS主服务器和多个块服务器,这些块服务器可以被多个客户端访问。文件以固定大小的块的形式保存在GFS中,每个块通过唯一的64位标识符来标识,该标识符也被称为块句柄。每个Linux中文件或块都将被赋予一个块句柄和字节范围,每个块在存储的时候会复制并存储到多个块服务器上,为保存在GFS中的数据提供更高的可靠性。
GFS主服务器中保存的元数据参数包括:
- 命名空间
- 访问控制信息
- 文件到块的映射
- 块的当前位置
GFS主服务器还执行如下的块管理任务
- 孤立块的垃圾收集
- 块在块服务器间的迁移
- 块租约管理
来自各个应用程序的GFS客户端使用GFS文件系统API来与GFS主服务器和块服务器进行通信,GFS客户端仅为了与元数据相关的操作才同GFS主服务器进行交互。
当GFS客户端希望访问一个文件时,客户端会向主服务器发送一个请求。主服务器将会搜索并获取同特定的块的位置相关联的文件名。然后客户端系统会通过访问特定的块服务器中的块的位置来获取该数据块。
Hadoop分布式文件系统
Apache Hadoop有两个主要的组件:
- 巨大的可扩展性:新节点可以无干扰的加入,也就是说,新的节点不需要改变现有的数据格式,也不需要改变现有的加载机制和应用程序。
- 成本收益高:Hadoop为商用的服务器提供了大数据处理能力。
- 灵活性:Hadoop没有任何模式结构,这有助于Hadoop保存和处理来自多种类型数据源的所有类型的数据。无论是结构化还是非结构化。
- 容错性:当集群中某个节点发生故障时,系统会将工作重定向到数据的另一个位置,并且在不损失性能的情况下继续进行处理。
HDFS架构
HDFS是一个大规模可扩展且容错的架构。架构的主要组成部分是NameNode和DataNode。这些节点采用主从配置,通常每个集群中会有一个NameNode,作为主节点并执行如下动作:
- 管理文件系统命名空间
- 管理安全性并控制客户端对文件的访问
Hadoop集群中的每个节点都是一个DataNode。这些节点跟踪连接到节点的存储。HDFS有文件系统命名空间,数据以文件的形式存储和提取。这些块可以分布到多个DataNode。所有与文件系统命名空间相关的操作由NameNode来处理。它们还跟踪从块到DataNode的映射。
HDFS
HDFS具有大规模并行性的主要原因在于命名空间和数据是分别存储的。元数据的操作速度非常快,而数据访问和传输操作需要较长的时间的才能完成。
Panasas
Panasas是一种高性能存储系统,可以作为使用POSIX接口访问的文件系统使用。Panasas是被大数据分析应用程序使用高性能分布式文件系统。采用集群设计,为多个同时访问文件系统的客户端提供可扩展性能。特性:
- per-file client-driven RAID
- 基于对象的存储
- 并行RAID重建
- 容错性
- Cache一致性
- 大规模可扩展能力
- 分布式元数据管理
Panasas文件系统概述
Panansas系统被设计为在巨大I/O负载下扩展并提供最优性能,并且它还提供了巨大的存储容量,范围可达数PB乃至更多。使用对象存储技术构建的,并且使用基于对象的存储设备来存储数据。Panasas存储集群中的关键组成是存储节点和管理节点。管理节点与存储节点的默认比例是1:10,当然也可以根据需要进行配置。存储节点具有对象存储,文件系统客户端会对他们进行访问并执行I/O操作。这些对象存储是在基于对象的存储设备上实现的。管理节点管理存储集群的各个方面。
每个文件被分割成两个或多个对象,从而提供冗余和高带宽访问,文件系统的语义是通过元数据管理器来实现的。客户端使用iSCSI/OSD协议访问对象存储、进行读写操作。I/O操作直接且并行在存储节点进行。客户端通过RPC同带外(out-of-band)元数据管理器交互,获得对保存文件的对象的访问能力和位置信息。
Panasas中的存储管理
访问Panasas的客户端系统有一个单一挂载点,通过它可以访问整个系统。客户端系统可以在/etc./fstab文件的帮助下了解集群管理器中元数据服务实例的位置。
有两个基本存储术语:BladeSet它是一个物理存储池,卷(volume)是一个逻辑配额树。
Luster文件系统
Luster是基于Linux的系统,使用基于内核的服务器模块来根据HPC应用程序的需要提供高性能。Luster提供的关键增值特性是可扩展性,可用来创建一个命名空间。
Luster特性理论极限文件系统大小512PB文件数量40亿每个文件的大小2.5PB总体性能7TB/s客户端数量>100000Luster文件系统架构
Luster组件功能元数据服务器MDS管理文件系统的元数据操作元数据存储目标MDT维护文件系统保存的所有文件的元数据信息的存储对象存储目标OST实际存储数据的位置,通常作为一个RAID阵列来维护对象存储服务器OSS负责管理OST的I/O传输的节点LNET负责从文件系统中抽象驱动器以及其他物理组件的网络层Luster客户端用于访问文件系统的客户端LNET 路由器用于进行网络编排或直接连接/远程客户端与工作站资源之间进行地址范围转换的节点工作过程
当客户端系统对文件系统执行写入操作时,文件系统首先会将写请求传递给MDS组件。MDS执行必要的用户身份以及文件的预期位置检查。基于目录或文件系统的设置。MSD提供一个OST列表作为响应,客户端可以使用该列表来写入文件。在写入操作的同时进行通信的模式是通过使用RDMA(远程直接内存访问)来完成的,它能够以最小的延迟提供非常好的性能。
为了实现大规模的并行,Luster利用分布式锁管理,能够处理数千个试图访问文件系统的客户端。每个组件运行一个Luster分布式锁管理器(LDLM)的实例。LDLM体用了一种机制确保数据一致的方式在文件系统中出现的所有OSS和OST节点上更新。
云存储简介
云存储并不是指某个具体的存储设备或技术,而是指大量存储设备和服务器的集。他们用于在云计算环境中保存数据。
特点:
- 资源池
- 按需提供容量
- 成本收益
云存储系统的架构模型
存储层
主要包含的存储设备包括:
- 光纤通道存储设备
- IP存储设备
- DAS存储设备
- 基于对象的存储设备
基础设施管理层
使用集群和网络等技术提供各种关键的功能,例如安全性、空间管理、备份、存储整合等。
- 备份:采用多个副本
- 灾难恢复
- 加密
- 压缩
- 聚集
应用接口层
提供各种借口或API来支持机构或使用的云存储用例。
访问层
不同的云存储服务提供供应商使用不同类型的访问机制。
云驱动有很多共供应商提供,用作访问云存储的入口。
主要的供应商:Microsoft Azure、Amazon S3、Amazon EC2、EMC Atoms等。云存储系统的重要要求之一就是,它应当允许数据在各种异构商用应用程序之前共享。为了确保数据在这些应用程序间平滑的共享,为数据实现多级别加锁非常重要。
存储虚拟化
存储虚拟化是确保不同异构类型存储设备被当做一个单独存储和管理的机制。这将支持统一内存管理,更容易的部署、整个存储基础设施的集成监控。存储虚拟化主要涉及将可用存储分给成虚拟卷。虚拟卷可以通过组合不同类型的存储设备来创建。
自动精简配置
当今的机构面临的主要挑战之一就是为各种应用程序分配的存储容量未被使用。虚拟配置是指按照实际需求来配置存储。在这种技术下,基于预测的需求将逻辑存储分配给应用程序。实际分配的存储是基于应用程序的当前需求来分配的,数量远远小于逻辑存储。
分层存储
它是一种对存储设备建立存储层次结构的机制,然后基于应用程序的性能和可用性要求,将用到的数据分别存储到该层次结构中。
云存储中使用的存储优化技术
重复数据删除:大幅减少存储需求,在哈希方法的帮助下。哈希方法基于文件的内容,为每个文件产生一个唯一的哈希值。然后同以后的哈希值集合进行比较,如果有先有先相同的哈希值,则不再进行存储。
可以在两个层级上执行:文件级和块级。
压缩:通过删除数据中存在空白来减少数据的数量。缺点是消耗计算周期。
云存储的优缺点
存储区域网络(SAN)和网路附属存储(NAS)等存储技术的优点包括高新能、高可用、使用行业标准接口的高可访问性。
缺点:
- 成本非常高
- 寿命有限
- 要求备份和恢复系统来确保数据得到完全的保护
- 在特性的环境条件下运行
- 要求存储人员来进行管理
- 运行和制冷会消耗大量电力。