Lecture #03 & #04

大数据和高性能计算基础

非并行I/O

上面每一个方块代表不同的进程,非并行是每一个进程通过通信的方式传给某一个进程,通过这个通信的进程再去读写文件和数据。数据通过一个进程聚合、分散。
这样的好处是只需要管理方便,坏处是性能差

独立并行I/O

每个进程独占自己的内存。这样的好处是很多个进程可以跑在很多的节点上,独立。缺点是会产生很多的文件,难于管理。

并行I/O

理想的方式,可以同时的读和写,但是是在一个文件中进行,共享一个文件。
从用户角度来讲,这样既有并行性,也易于管理。
从系统角度来讲, 跨多个I / O服务,文件系统旨在很好地执行并发写入和读取(并行/分布式文件系统)

数据管理和运行

§系统软件必须管理存储设备,提供对数据的访问。
§需要软件堆栈的组合:

  • 存储软件必须在存储上有效地放置数据和元数据后端
  • 用于在节点之间执行RPC的网络软件,批量数据传输(RDMA,双缓冲)
  • 分布式算法,以避免单点争用,故障恢复等。
  • 结合并行和分布式系统,网络,数据库和文件系统的技术和思想

ANL系统

逻辑上 硬件/软件 栈

硬件存储设备、并行分布式文件系统、并行软件模型、调用抽象化的并行库(例如机器学习一些库,还有图的处理,都已经有现成的库有并行的接口,用户可以直接调用)、应用。

BDAS,伯克利数据分析堆栈

Mesos(高性能管理资源软件,例如Rocks等),上面跑一下文件管理系统例如Hadoop,in-memery file system内存级速度的共享服务,掉电不会消除数据且性能很好,速度是下层的300倍。上层是一些并行编程模型,提供多种语言的接口。再上层是支持不同的库,包括机器学习和SQL的API。再上层就是应用

存储设备

永久性存储设备

§在没有电力的情况下保持数据
§与易失性(RAM)对比

  • 电容器泄漏电荷
  • 数据最终消失,除非定期刷新
    §与档案不同
    §世界上90%以上的新信息都存储在磁性媒体上

Magnetic Disk Drive 传统磁盘

包含很多机械结构,噪音大,容量小、容易坏、功耗大。
从驱动器写入或读取数据的请求显示为一系列块
§驱动器将逻辑块请求映射到柱面,磁头,扇区(CHS)
§头部移动到正确的轨道
§旋转磁盘到达请求的扇区

HDD最大的优势就是价格便宜,所以目前还是有很多应用市场

磁盘性能

读取时间大概有三部分组成:
Seek Time:将刺头移动到某一环track,寻道
Latency: 在某一环要旋转磁头到某一个位置,最好是0,最坏是完整的一转 Rotation
Access Time: 上面两个值再加上最终时间。

优化方案 缩短Latency

Latency随着转速的增大,他减少的时间会慢慢变得很不明显,所以硬盘很少有超过15000转的。

其他优化方案

优化sector的访问顺序,使得磁头旋转次数Rotation减少。以及操作系统学过的电梯调度算法等

其他存储

§直连存储(DAS)
§网络附加存储(NAS)
§存储区域网络(SAN)
§不同之处在于接口SATA 3.0、PCIE,协议和网络

接口、网络

直连存储

存储设备直接连接到服务器上,取决于你的接口。

网络附加存储

多个存储设备先连接到网络交换机不是直接放在机器里,然后通过交换机分配给不同的服务器。

存储区域网络

同样是挂在网络上,是以上两种的综合。

磁盘阵列

MTBF Mean time Between Failures
硬盘没有那么容易坏,但是也不是不会坏,MTBF的意思是,假如我一块磁盘用了1万个小时会坏一次,那么这个概率反过来讲,一万块磁盘,平均一个小时就会坏掉一个。

所以用磁盘阵列来提高磁盘的可靠性、同时提高性能。

RAID 0

只是为了性能,没有任何可靠性提升。硬件把数据切割成两块,分别存放,这样读取效率翻倍,但是一旦一块磁盘坏了,整个数据就废了。

RAID 1

只是为了可靠性,损失了利用率。完全镜像数据,充分冗余,坏掉一块也没关系,但是利用率大幅下降,性能上读取会稍有些提高,写入速率会慢一些,两块盘都写完才算写完。

RAID 3 4 5

使用校验码,在性能和可靠性上找到一个平衡点。
数据分割后,计算出一个校验码,将校验码存储在另一个地方。
3是在字节byte的层面上做这件事
4是在块block的层面上做这件事
3和4的瓶颈在于存放校验码的磁盘瓶颈,一旦更改数据,就会多次修改校验码磁盘。
5是在block上做,校验码不是放在一块磁盘上,分别放在其他磁盘。均衡磁盘负载。5的问题,写操作要更改校验码,还是会影响速度。
read-modify问题:操作是以block为单位的,如果数据全部改变,那么直接算出检验码覆盖写就可以。但是如果只改变一点,Small writes,就要先把其他的读出来,然后算出校验码再写入。small writes 比RAID0 要慢10倍。

RAID 6

两块不同校验方式的校验盘,允许两块磁盘坏掉。

RAID 1+0

先做数据镜像,然后做RAID 0 提高读取速率。

Solid State Drive 固态硬盘

大部分SSD使用的都是flash memory
安静、功耗小、性能高、未来的趋势
SLC:电压高低区分1和0,成本高。
MLC:一个电压Cell变化表达多个信息,容量大,但是不稳定,电压稍微变化,信息就会出错。

局限性:BLock Erasure和Wear out
Block Erasure Cell只能设置为0,不能设置为1,也就是1只能变到0,要变为1必须擦出整个数据单元,全变为1.重新来。
Flash Translation Layer FTL,减少等待时间,直接取另一块已经重制好的block来实现。

wear out 是指block擦除的寿命周期。

SSD目前的问题

上面的两个局限性问题,还有容量的问题。

你可能感兴趣的:(Lecture #03 & #04)