>科技>>正文

大师问答|分布式存储为什么不直接管理裸盘?

原标题:大师问答|分布式存储为什么不直接管理裸盘?

【问】:现在看到的大多数分布式存储中,数据最终还是存储为文件系统中的一个文件。为什么不能像ceph中bluestore一样,直接管理裸盘,避免文件系统的写放大等问题带来的性能损耗呢?

【大师】:一方面,直接管理裸盘需要自己开发一个管理裸盘的系统,这个投入和复杂度都比较高,一般公司搞不定,而且裸盘的需求一般在SSD介质和对性能要求高的场景,有些场景用了裸盘反而是过度设计。再一方面,ceph以前的版本存在写放大是因为写日志然后再写数据盘的问题,这样一个写被放大成2个 ,体现出来就是性能降低一倍。一般是block存储会用裸盘,其他方式因为没必要。

不过,有研发实力的情况下,还是要用裸盘。对象存储做的好,也是用裸盘的。

bluestore也不是完全的裸盘操作,metadata还是存在文件系统上。这也算是个讨巧的设计,这玩意本来就不是说要完全抛弃文件系统,主要是为了解决btr的写放大问题,同时又想要保留指针型的特性。对于用户来说,你做分布式看要干啥,数据填埋场的场景,真的没必要,本来就是一次写入,多次读取的场景,写优化没多大意义。如果是交易型的场景需就对写要求高些。

当然了,文件系统有个最大的难题是文件系统里头的IO和缓存难以由外头控制,性能体现出来就是抖,用裸盘有个好处就是什么都可以自己控制,在对性能和抖动要求都非常苛刻的场景还是要裸盘来搞定。

实际上,也不见得说是外部控制就一定抖,自己控制就不抖,这个没有绝对的,本质来说数据落盘还是需要文件系统来处理。当然NFS不也可以跑Oracle数据库吗。NFS跑Oracle数据库是可以跑,在功能上是没问题,但是还有别的问题,比如抖。

因此,ceph有他的特殊性,毕竟是全栈文件系统,要平衡的东西更多,你弄swift就没这么多事,没有SAN和NAS的包袱。

可是呢,ceph的毛病就是三合一 没有达到原生的最优化。比如用ceph跑数据库不太好搞不定吧。块、文件、对象都有其原生属性。

以前觉得ceph是朵奇葩,这两年看越来越觉得春天才刚刚开始,可是,ceph到底好在那里呢?众说纷纭,一是老能搭上热点的船,OpenStack搭一波,Data lake搭一波,AI又能搭一波,容器搭一波;二是命好;三是万金油。由此可见,ceph需要解决的问题也多。

一个非常形象的比喻:如果说块存储是跑车,文件存储是卡车,对象存储是渡轮,ceph就是变形金刚,一会变跑车,一会变卡车,一会变渡轮。但形态不同关注也不同,跑车关注极致性能,卡车性能差点,渡轮关注量。然而从极致性能到极致的量,就暗藏了很大的挑战。

所以,也有业内人士认为:开源ceph做对象存储的不错,其他如文件、块两个没有达到原生的能力。不是说ceph不好,而是说对于一般用户还是搞不定,开源的跟商业化的自然有差异。当然了,作为技术人员其实应该感谢ceph,使得技术人员不会因为 “平庸”而被辞退,感谢Sage Weil,带动一大波就业。

扩展知识:Sage Weil

Ceph是根据加州大学Santa Cruz分校的Sage Weil的博士论文所设计开发的新一代分布式文件系统软件。最早,Ceph是加州大学Santa Cruz分校的一个研究项目, 项目创始人就是Sage Weil。为此,Sage Weil也有着“Ceph之父”美誉。

本次答疑:常平、马总mushroom、Juernum、乐成祥

对此,你怎么看?

欢迎提问!返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
投诉
免费获取
今日搜狐热点
今日推荐