当前位置:网站首页>云存储硬核技术内幕——(13) 抓手,组合拳与闭环
云存储硬核技术内幕——(13) 抓手,组合拳与闭环
2022-08-04 15:37:00 【用户8289326】
在上期,我们提到了,Ceph存在一些经济性和可用性方面的缺陷:
- 物理硬盘损坏的时候,只能自动恢复到指定的单一物理硬盘,或手工替换新盘才能启动恢复;
- 单个物理磁盘空间耗尽的时候会引起整个集群停止工作;
- 集群规模过大时,集群分裂导致业务不可用的可能性大大增加;
因此,业界也出现了一系列其他分布式存储系统,最常见的是HDFS、GlusterFS和Openstack Swift。
HDFS是Hadoop生态的一部分,最初的设计用于hadoop处理的海量数据的持久化存储。
我们在前期提过,所有分布式存储系统都需要解决三个问题:
1、如何把整块的数据切分成小块?
2、应该把切分好的数据存到哪几个物理节点上的哪几块盘,当磁盘或节点故障的时候应当怎么办?
3、海量计算节点如何访问数据,访问的时候如何能够找到数据所在的目的节点和磁盘?
HDFS的解答是:
1、默认切成128MB的大块;
2、默认使用三副本保存,使用一致性哈希算法实现负载均衡(一致性哈希我们以后会介绍);
3、计算节点通过在节点上部署客户端,通过Posix接口(可以理解为NFS)进行访问。客户端需要去namenode获取到目标文件所在的节点和磁盘,再读取数据;
我们可以分析出HDFS的长处和缺陷:
擅长存储海量数据;支持数据冷-温-热分层;存取大文件时吞吐量可以随节点数线性扩展;
对大量中小文件(10MB以下)不友好,空间浪费严重;Namenode限制大量小文件存取的性能;
GlusterFS与HDFS有类似的地方,由于舍弃了namenode的设计,在一定程度上提升了小文件存取效率,但可能有一致性的问题。
对HDFS和GlusterFS有一定了解的同学可能会发现,HDFS/GlusterFS对计算节点提供的访问方式,与Ceph提供的挂载RBD块的访问方式有非常大的区别:
Ceph提供三种访问方式:块存储,文件存储,对象存储。
块存储我们在前面有了较为详细的拆解,Linux操作系统可以在块存储上自行建立文件系统,可以按逻辑块(扇区)方式对块进行访问。对于某些数据库(大家猜猜看有哪些),甚至可以绕过操作系统,直接访问块存储的扇区。
文件存储的访问方式为Posix接口。
什么是Posix接口呢?
我们知道,所有的Linux或Unix操作系统,对文件的操作有以下几种:
open(),返回的是文件fd(文件句柄,又称“抓手”);
read(),通过文件fd读取指定长度的内容;
write(),通过文件fd写入指定长度的内容;
ioctl(),通过文件fd对文件进行其他操作,如物理设备控制;
以上read/write/ioctl三个函数可以称为“组合拳”。
close(),调用文件fd关闭文件,此时才能保证写入的内容真正落盘,称为“闭环”。
有了这几个函数,就可以不需要关注存储底层逻辑,使用简单易懂的接口访问文件了。
因此,Linux对文件的读写,可以用一句话概括:
获取抓手,应用组合拳,抽离底层逻辑,形成闭环。
在NAS中,最小的资源分配单位是文件,而不是块。那么,如果需要在NAS存储上跑数据库,每次对数据库的写入,为了保证写入操作能落盘,都需要重复一次“获取抓手,应用组合拳,形成闭环”的过程,其开销是可想而知的。
HDFS和GlusterFS提供的都是NAS存储,可想而知地,用于数据库场合就不合适了。
因此,无论是私有云还是公有云,如果想把分布式存储应用到生产环境,需要满足下面几个条件:
1、提供高可靠的块存储,可分为高性能与低成本等不同种类;
2、块存储的扩容对整个集群的可用性不造成影响,性能可随着扩容线性扩展;
3、可以提供云盘快照等增强数据安全性的功能;
在下期,我们将用一个栗子来看看,生产与运营级别的分布式存储是如何满足这些条件的。
边栏推荐
猜你喜欢
随机推荐
Pisanix v0.2.0 发布|新增动态读写分离支持
视频字幕API接口文档
GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)
Many merchants mall system function and dismantling 24 - ping the strength distribution of members
第三章 Scala运算符
不需要服务器,教你仅用30行代码搞定实时健康码识别
素士科创板IPO撤单,雷军失去“电动牙刷第一股”
Roslyn 通过 nuget 统一管理信息
攻防视角下,初创企业安全实战经验分享
2022杭电多校4
MVCC实现过程
IP第十八天笔记
Why, when you added a unique index or create duplicate data?
Go Go 简单的很,标准库之 fmt 包的一键入门
普法教育结合VR全景,直观感受和学习法治精神
《2022 年上半年全球独角兽企业发展研究报告》发布——DEMO WORLD世界创新峰会圆满落幕
How to monitor code cyclomatic complexity by refactoring indicators
Summary of some pytorch knowledge points that have been updated for a long time
直播回放含 PPT 下载|基于 Flink & DeepRec 构建 Online Deep Learning
软件性能测试包括哪些内容?国内权威软件检测机构排名







