看盘古系统杂记

看视频 盘古:阿里云飞天分布式存储系统实践 过程中记的乱七八糟的东西。仅是个人笔记供以后查阅,没有参考价值,各位看官还是各自散去~

分布式和集群的区别:
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

块存储,典型设备:磁盘阵列,硬盘,虚拟硬盘。这种接口需要实现Linux的Block Device的接口。
文件存储,典型设备:FTP、NFS服务器,SamBa。通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的。
对象存储,典型设备:内置大容量硬盘的分布式服务器。也就是通常意义的键值存储。

分布式系统下的纠删码技术 – Erasure Code (EC)
为了数据丢失后能恢复,除了存放几份副本,还有另一种做法,就是利用纠删码把丢失的数据计算出来。与副本相比,纠删码的优点在于节省存储空间,缺点在于有计算开销而且修复需要一定时间。
例如,有k个数据块,则如果用副本的方式,至少就需要保存2k个数据块。而使用纠错码的方式,由于k元多项式需要k个方程就能解出来,因此只需要最少k+1个数据块(当然还需要用于计算的编码矩阵)。
现有的EC库:Jerasure库、Intel EC库、Hadoop 3.0的EC编码。其中Jerasure库是线程不安全的。
http://blog.csdn.net/u011026968/article/details/52295666 中关于求出丢失数据和code的例子(矩阵乘法、逆矩阵)。
定义:erasure code是一种技术,它可以将n份原始数据,增加m份数据(用来存储erasure编码),并能通过n+m份中的任意n份数据,还原为原始数据。

RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列。RAID阵列技术允许将一系列磁盘分组,以实现为数据保护而必需的数据冗余,以及为提高读写性能而形成的数据条带分布。
一共有0~6一共7种,这其中RAID 0、RAID1、RAID 5和RAID 6比较常用。由于RAID0完全没有数据安全保障(只加快读写性能,把数据分布在多个盘上,在读写时是以并行的方式对各硬盘同时进行操作),RAID1存储效率低(50%),而RAID5/RAID6也就分别支持最多1块和2块磁盘失效。因此还是使用EC纠错码比较高效可用。
而RAID 5/6由于复杂的算法,读取和写入速度测试时,表现会比其他RAID要差。

打开文件的O_APPEND标记:
fd = open(“./test.c”, O_WRONLY | O_APPEND);
在写文件时,无论先lseek到哪里,write的时候都是在文件结尾append内容。
在读文件时,lseek仍然有效果。因此对于刚打开的文件,seek到SEEK_CUR其实是0位置,而不是文件结尾。
实现apend only还可以用模拟fifo的方式。
常见的apend only的例子是syslog。

aka: also known as

写入存储时,根据是否有IO缓存,分两种方式:
Write-through(直写模式)在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。
Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。

Write-through方式,在读的时候不用检查缓存是否dirty,命中后可直接读。
Write-back方式,在读的时候要判断是否dirty。另外读和写结束后还要判断是否需要更新脏位标记(例如读后要标记非脏,写后要标记脏了来通知回写)。
具体流程参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值