阿里大数据平台核心技术_笔记1
分布式存储-笔记
- 需求
1.大存储容量
2.高吞吐量
3.数据高可靠
4.服务高可靠
5.高效运维
6.低成本 挑战
1.单机硬件/系统的不完美(小概率出错)
2.大规模下需要水平扩展(管理大量的机器)在大规模下小概率事件将成为常态,正确处理这些小概率事件是分布式存储的工程挑战
小概率事件
1 磁盘损坏,RAID卡充电放电中,失效,属于不稳定设备
2.网络故障
3.电源故障
4.数据错误
5.系统异常
6.热点
7.软件缺陷
8.误操作分布式存储系统
1.HDFS(GFS)
2.Ceph
3.Pangu–ali分布式存储系统重要的功能设计
1.读写流程
2.Qos ->服务质量与保障
3.Checksum
4.Replication ->数据复制,防止数据丢失
5.Rebalance ->数据平衡,重新将数据进行分布
6.Garbage collection ->垃圾回收
7.Erasure coding ->通用的数据压缩方法
写操作
链式写正常流程
1.Client想Master发起写入操作,在Master打开文件写
2.Master返回包含文件名的响应
3.从Client开始想ChunkServer按照链式写方式写入,即Client->CS1->CS2->..
4.从最后写入的一个CS开始按照写入的反顺序传回响应到client,这样一次写入完成特点:网络带宽占用较少,但是链条较长,写入较慢,延时较长
适合数据流量大,不注重延时(latency)的业务主从模式写流程
适合数据写入频繁、要求低延时的业务
数据接受CS分为Primary和Replica两种,Primary作为写操作的协调者和接收者,Replica只作为数据的接收者1.Client将数据发送给Primary,Primary将数据发送给所有的Replica
2.并等待所有拷贝都已经合并入内存Cache后,由Primary向Client返回确认消息
3.此时数据并没有写入成功,等所有数据都写入物理磁盘中,Replica向Primery发送刷入磁盘成功的消息
4.Primary写入成功后,将确认消息发送给Client
从Primary向Replica发送两份数据,占用两份数据流量,写入三个副本的情况下,只需要两跳即可到达Client,网络延迟较小,流量占用较大链式写入异常,当链式写入CS中,发现中间CS宕机,可选解决办法如下
- 则可以跳过异常CS向下一个CS发送数据,响应消息也跳过该异常CS。这样的异常处理,保证了上层数据写入的成功率,保证了上层业务的稳定性,但牺牲了数据安全
也可以从Master获取另一个新的CS,并将以后数据复制到CS4上,代替异常CS。这样会确保数据安全,但会造成写入延时,给上层业务带来毛刺
写异常处理的另一种方法-SEAL AND NEW,就是封存之前写入位置,创建新的写入位置,Pangu采用不定长Chunk写入方式
1.CS传递数据时,接收CS发生异常,链式返回异常到Client
2.Client通知Master异常,并将当前Meta恢复到写入数据前的Meta长度,并取回新的chunk写入位置,继续链式写入,造成需要更多的Meta管理
3.如果异常CS为磁盘损坏,可以通过SEAL AND NEW 发起Master异步写入操作,并不阻塞用户写入操作