菜鸟学Linux 第105篇笔记 海量存储解决



内容总览

大数据带来的挑战

传统存储SAN

分布式存储

多线程与进程执行模式

计算机五大部件变化

分布式系统的难点

分布式文件系统设计目标

分布式事务的模型及规范

CAP, BASE, 

集群内数据一致性算法实施过程案例

分布式应用(存储,计算)

mogilefs





DFS

大数据带来的挑战

数据采集(传感器)

数据存储(分布式)

数据搜索(计算, 索引)

数据共享(分布式存储的主节点)

数据传输(迁移数据在不同系统之间machine learning, data learning)

数据分析(分析算法可以自我进化)

数据可视化



传统存储SAN

问题

纵向扩展受陈列空间限制(升级设备)

横向扩展受交换设备限制

节点受文件系统限制



分布式存储

挑战

节点间通信

数据存储

数据空间平衡

容错

文件系统支持

分布式存储是分布式系统的一种



多线程与进程执行模式

互不通信的多线程模式

基于共享容器协同的多线程模式

通过事件协同的多线程模型



计算机五大部件变化

输入设备的变化

控制器的变化

透明代理(类似nginx, haproxy反向代理)

旁路模式(类似lvs)

名称服务

规则服务器

运算器的变化


存储器的变化

代理模型

旁路模型

规则服务

Master 原数据和值数据分开,原数据放在name node, 数据存放在数据节点中



分布式系统的难点

缺乏全局时钟

面对故障的独立性

处理单点故障(做冗余, 降低单点故障影响范围)

事务的挑战ACID Atomicity原子性, Consistency一致性, Isolation隔离性, Durability持久性

2PC(两段式提交), 最终一致, BASE, CAP, Paxos



分布式文件系统设计目标

访问透明

位置透明

并发透明

失效透明

硬件透明

可扩展性

复制透明

迁移透明



分布式事务的模型及规范

X/Open: XA

DTP: Distributed Transaction Processing Reference Mmodel

定义了三个组件

AP Application Program

RM Resource Manager

TM Transaction Manager



CAP (Consistency Availability P Tolerance of network Partition)

BASE

BA: Basically Available

S: Soft state, 软件状态,接受一段时间内的状态不同步

E: Eventually consistent 最终一致性



集群内数据一致性算法实施过程案例

Quorum, Vector Clock


Quorum

N 数据复制的节点量

R 成功读操作所依赖的最少节点数

W 成功写操作所依赖的最少节点数


W+R>N 强一致性



分布式应用

分布式计算

MapReduce: 分布式运算框架 (MapReduce)

分布式存储

GFS: Google File System  (HDFS)

BigTable: 列式数据库

HBase


Hadoop: 分布式计算+分布式存储



分布式存储

不能mount, 基于API进行存取

分布式文件系统

mount, VFS


GFS,HDFS 适合存储大文件

TFS 在名称节点上将元数据存储于关系型数据库中,文件数量不再受限于名称节点的内存空间

可以存储海量小文件

Lustre 重量级,企业级应用

GlusterFS 

MooseFS 轻量级,

Mogilefs 适合存储海量小图片 perl



Mogilefs的特性

工作在应用层

无单点 (tracker, mogstore, database(MySQL))

自动文件复制:复制的最小单位不是文件,而class

传输中立,无特殊协议;可以通过NFS或HTTP进行通信

简单的名称空间 域

不共享任何数据


Tracker功能

MogileFS的核心,是一个调度器, 服务进程为mogilefsd

职责: 删除、复制、监控、查询等


Database

存储元数据


mogstored 数据存储的位置, 通常是一个HTTP(webDAV)服务器

用来数据的创建、删除、获取。